From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 676EDC25B4E for ; Tue, 24 Jan 2023 15:22:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:Cc:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=tQWLziCN0/QpLpvnyUeFdzNUooQyIwLimJCfWQSrL0M=; b=wPb+fbcTK1EBf0 OLwvjJlV0BjhYBefi+20ChB3a6TDOrkhP1iNaSYpPjwtZBHKgiLjLBja+ZARFk1P2fbSAJW2O8Rrq r9nF+lVmpX0OYJYe5zsyRv5OfXlLd7y/w0w0YbBXSWUQ7voWaVf3WHBVMzz8+zjTpGmKiQbU+AtaY cnk8zXqGZ9WDJlf6tVmAYT1AuftocC0hzejVHJ8+4GtX5IIUQMXulPveOVDaCrCKQPI2wjlECByh1 bPpEfouj/Vx9NrDgKvkQfDWVseuxXO0Al7xjuhf0ihnzBBVxNRQ3QJd0gtojThQzk3UEIl0pHyK9E hUmrUGDmr2EcRLHJu6Gw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pKL7f-004UXm-8E; Tue, 24 Jan 2023 15:22:07 +0000 Received: from mail-qt1-x832.google.com ([2607:f8b0:4864:20::832]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pKL7S-004UTw-Nl for linux-amlogic@lists.infradead.org; Tue, 24 Jan 2023 15:21:57 +0000 Received: by mail-qt1-x832.google.com with SMTP id a25so13281478qto.10 for ; Tue, 24 Jan 2023 07:21:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ndufresne-ca.20210112.gappssmtp.com; s=20210112; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=bFtQtLadQA2ObcCEDcCQRG86nPrii76lpgh8cpV608w=; b=M39BAm0x1RztCQqVhf/0+ID8Gg2xQ78qACXZjlCdw8RUM5yu1MuJD4qBdr5s05rn41 AEZ3YbVKNMS8U9G+RW8OZTg49sw6mGSo5f9q9uSRgGs9sI7qNwUL0akHRchXjj7HP7Qm NFQLuYsRqBLywh4P7PQ1SsMERkaZBhDsIUjpLoUgtlTbm0f9L8iUeLwUS/BGkaGiDM/X 2ABXo4iGwQ2hZFtFErqAWCQEocxVMQZjkSMdePNOcGClDlQzKkGJBbDtPwAc6NeGDQCq SVRnb7xMPMQeuFtnsiI+5+JXQKxs1qW7WMMsKFlSXEXt29yjJEHpQ45BVfJXMjfkC81l nyJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=bFtQtLadQA2ObcCEDcCQRG86nPrii76lpgh8cpV608w=; b=ZP6CZZ5QoV0/iXxnIo31e4KwR841ewZSPrBRRoD9SKvOUmUw7oQPw1lBWa5odmiZXX HZ0vwK3ct1465rY2oFFfItQvnwmqV2G2pW8JzzvRtso2v+EK7geHXcR1TbQzJsYWvgCE 5aViNLodDWfIWnSZ8vUlBjGZwj1wo/0JsMssBji6VevVdxF8BKHr7pwTzPJNhROx3B2c p9aidb1r7t7GqLS/JPeppEpkF/h/S1aIvJn8rgn+1HDJrR6+K3EciRv/chHaCZ5y0PjF MXniOr19zQO4w7S12h3rBuZfn1W0xsxmQpeQapNuBJglFrDbDu4k0cpdyEOdwlWGJne5 lFww== X-Gm-Message-State: AFqh2kpzW69lJRUuFKw889bKbyfUmQsu6zVfnoep2g16Y3DrNq5Dgnnu 4fedwhdZTe0drnw6u6z9ABdh+Q== X-Google-Smtp-Source: AMrXdXtSUsvDcDMy39sAFtjgmmenhdJfbJjeprDK80NlfaErNGRRy61YhjLOSVPt+0EprC9CKD2J8w== X-Received: by 2002:a05:622a:4816:b0:3b6:2b4f:aad5 with SMTP id fb22-20020a05622a481600b003b62b4faad5mr45652021qtb.0.1674573711244; Tue, 24 Jan 2023 07:21:51 -0800 (PST) Received: from nicolas-tpx395.localdomain (192-222-136-102.qc.cable.ebox.net. [192.222.136.102]) by smtp.gmail.com with ESMTPSA id o3-20020ac80243000000b003a6a19ee4f0sm1412209qtg.33.2023.01.24.07.21.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Jan 2023 07:21:50 -0800 (PST) Message-ID: <6ff68c4bea9d48980853e9af9db1fc0bf13976ae.camel@ndufresne.ca> Subject: Re: [PATCH v2 1/2] media: meson: vdec: implement 10bit bitstream handling From: Nicolas Dufresne To: Christian Hewitt , Neil Armstrong , Mauro Carvalho Chehab , Greg Kroah-Hartman , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , linux-media@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-staging@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Benjamin Roszak Date: Tue, 24 Jan 2023 10:21:49 -0500 In-Reply-To: <20230124034058.3407235-2-christianshewitt@gmail.com> References: <20230124034058.3407235-1-christianshewitt@gmail.com> <20230124034058.3407235-2-christianshewitt@gmail.com> User-Agent: Evolution 3.46.2 (3.46.2-1.fc37) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230124_072154_789694_C7B342C5 X-CRM114-Status: GOOD ( 25.02 ) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org SGksCgpMZSBtYXJkaSAyNCBqYW52aWVyIDIwMjMgw6AgMDM6NDAgKzAwMDAsIENocmlzdGlhbiBI ZXdpdHQgYSDDqWNyaXTCoDoKPiBGcm9tOiBCZW5qYW1pbiBSb3N6YWsgPGJlbmphbWluNTQ1QGdt YWlsLmNvbT4KPiAKPiBJbiBvcmRlciB0byBzdXBwb3J0IDEwYml0IGJpdHN0cmVhbSBkZWNvZGlu ZywgYnVmZmVycyBhbmQgTU1VCj4gaGFuZGxpbmcgbXVzdCBiZSBjbGVhbmVkIHVwIHRvIHN1cHBv cnQgZWl0aGVyIGRvd25zY2FsZSBvdXRwdXQKPiBmcm9tIGNvbXByZXNzZWQgMTBiaXQgZGVjb2Rp bmcgdG8gdW5jb21wcmVzc2VkIDhiaXQgTlYxMiBvdXRwdXQKPiBvciB0byBjb21wcmVzc2VkIDEw Yml0IHByb3ByaWV0YXJ5IGVuY29kZWQgZnJhbWUgZm9ybWF0LgoKSSB1bmRlcnN0YW5kIHRoaXMg aXMgc3RlcCBmb3J3YXJkLCBhbmQgYWdyZWUgd2l0aCB0aGUgcGF0Y2hlcyBpbiBnZW5lcmFsLCB0 aG91Z2gKSSdkIGxpa2UgdG8ga25vdyBpZiB3ZSBjYW4gZXhwZWN0IDEwYml0IHNlY29uZGFyeSBi dWZmZXJzIGluIHRoZSBmdXR1cmUgPyBPciBpcwp0aGUgQU1GQkMgdGhhdCBvbmx5IDEwYml0IGZv cm1hdCBzdXBwb3J0ZWQgPyBTaG91bGQgYmUgZXhwZWN0IHRoZSAxMGJpdCBmb3JtYXQKZGVmaW5p dGlvbiB0byBiZSBhZGRlZCBsYXRlciA/Cgo+IAo+IEZvciB0aGF0LCAiYW0yMWMiIG5hbWUgaXMg bW92ZWQgdG8gImFtZmJjIiB0byByZWZsZWN0IHRoZSB1cHN0cmVhbQo+IEFtbG9naWMgQ29tcHJl c3NlZCBmcmFtZWJ1ZmZlciBtb2RpZmllciBuYW1pbmcuCj4gCj4gQ29tcHJlc3NlZCBmcmFtZSBi dWZmZXJzIGFsbG9jYXRpb24gaXMgYWxzbyBjbGVhbmVkIHVwIHNvIGl0Cj4gY2FuIGJlIHNoYXJl ZCB3aXRoIHRoZSBIRVZDIGRlY29kZXIgaW1wbGVtZW50YXRpb24uCj4gCj4gU2lnbmVkLW9mZi1i eTogQmVuamFtaW4gUm9zemFrIDxiZW5qYW1pbjU0NUBnbWFpbC5jb20+Cj4gU2lnbmVkLW9mZi1i eTogQ2hyaXN0aWFuIEhld2l0dCA8Y2hyaXN0aWFuc2hld2l0dEBnbWFpbC5jb20+Cj4gLS0tCj4g IGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9tZXNvbi92ZGVjL2NvZGVjX2gyNjQuYyB8ICAgMyArLQo+ ICAuLi4vbWVkaWEvbWVzb24vdmRlYy9jb2RlY19oZXZjX2NvbW1vbi5jICAgICAgfCAxNjEgKysr KysrKysrKystLS0tLS0tCj4gIC4uLi9tZWRpYS9tZXNvbi92ZGVjL2NvZGVjX2hldmNfY29tbW9u LmggICAgICB8ICAgMyArLQo+ICBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvbWVzb24vdmRlYy9jb2Rl Y192cDkuYyAgfCAgMzUgKystLQo+ICBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvbWVzb24vdmRlYy9l c3BhcnNlci5jICAgfCAgIDEgKwo+ICBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvbWVzb24vdmRlYy92 ZGVjLmggICAgICAgfCAgIDEgKwo+ICAuLi4vc3RhZ2luZy9tZWRpYS9tZXNvbi92ZGVjL3ZkZWNf aGVscGVycy5jICAgfCAgNDQgKysrLS0KPiAgLi4uL3N0YWdpbmcvbWVkaWEvbWVzb24vdmRlYy92 ZGVjX2hlbHBlcnMuaCAgIHwgIDEwICstCj4gIDggZmlsZXMgY2hhbmdlZCwgMTYxIGluc2VydGlv bnMoKyksIDk3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcv bWVkaWEvbWVzb24vdmRlYy9jb2RlY19oMjY0LmMgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvbWVz b24vdmRlYy9jb2RlY19oMjY0LmMKPiBpbmRleCBjNjExMjhmYzRiYjkuLmQ1M2M5YTQ2NGJkZSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvbWVzb24vdmRlYy9jb2RlY19oMjY0 LmMKPiArKysgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvbWVzb24vdmRlYy9jb2RlY19oMjY0LmMK PiBAQCAtMzUzLDcgKzM1Myw4IEBAIHN0YXRpYyB2b2lkIGNvZGVjX2gyNjRfc3JjX2NoYW5nZShz dHJ1Y3QgYW12ZGVjX3Nlc3Npb24gKnNlc3MpCj4gIAkJZnJhbWVfd2lkdGgsIGZyYW1lX2hlaWdo dCwgY3JvcF9yaWdodCwgY3JvcF9ib3R0b20pOwo+ICAKPiAgCWNvZGVjX2gyNjRfc2V0X3Bhcihz ZXNzKTsKPiAtCWFtdmRlY19zcmNfY2hhbmdlKHNlc3MsIGZyYW1lX3dpZHRoLCBmcmFtZV9oZWln aHQsIGgyNjQtPm1heF9yZWZzICsgNSk7Cj4gKwlhbXZkZWNfc3JjX2NoYW5nZShzZXNzLCBmcmFt ZV93aWR0aCwgZnJhbWVfaGVpZ2h0LAo+ICsJCQkgIGgyNjQtPm1heF9yZWZzICsgNSwgOCk7Cj4g IH0KPiAgCj4gIC8qCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9tZXNvbi92 ZGVjL2NvZGVjX2hldmNfY29tbW9uLmMgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvbWVzb24vdmRl Yy9jb2RlY19oZXZjX2NvbW1vbi5jCj4gaW5kZXggMDMxNWNjMDkxMWNkLi4xYzc0YjQ4MzdkY2Ig MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL21lc29uL3ZkZWMvY29kZWNfaGV2 Y19jb21tb24uYwo+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9tZXNvbi92ZGVjL2NvZGVj X2hldmNfY29tbW9uLmMKPiBAQCAtMzAsOCArMzAsMTEgQEAgY29uc3QgdTE2IHZkZWNfaGV2Y19w YXJzZXJfY21kW10gPSB7Cj4gIHZvaWQgY29kZWNfaGV2Y19zZXR1cF9kZWNvZGVfaGVhZChzdHJ1 Y3QgYW12ZGVjX3Nlc3Npb24gKnNlc3MsIGludCBpc18xMGJpdCkKPiAgewo+ICAJc3RydWN0IGFt dmRlY19jb3JlICpjb3JlID0gc2Vzcy0+Y29yZTsKPiAtCXUzMiBib2R5X3NpemUgPSBhbXZkZWNf YW0yMWNfYm9keV9zaXplKHNlc3MtPndpZHRoLCBzZXNzLT5oZWlnaHQpOwo+IC0JdTMyIGhlYWRf c2l6ZSA9IGFtdmRlY19hbTIxY19oZWFkX3NpemUoc2Vzcy0+d2lkdGgsIHNlc3MtPmhlaWdodCk7 Cj4gKwl1MzIgdXNlX21tdSA9IGNvZGVjX2hldmNfdXNlX21tdShjb3JlLT5wbGF0Zm9ybS0+cmV2 aXNpb24sCj4gKwkJCQkJIHNlc3MtPnBpeGZtdF9jYXAsIGlzXzEwYml0KTsKPiArCXUzMiBib2R5 X3NpemUgPSBhbXZkZWNfYW1mYmNfYm9keV9zaXplKHNlc3MtPndpZHRoLCBzZXNzLT5oZWlnaHQs Cj4gKwkJCQkJICAgICAgIGlzXzEwYml0LCB1c2VfbW11KTsKPiArCXUzMiBoZWFkX3NpemUgPSBh bXZkZWNfYW1mYmNfaGVhZF9zaXplKHNlc3MtPndpZHRoLCBzZXNzLT5oZWlnaHQpOwo+ICAKPiAg CWlmICghY29kZWNfaGV2Y191c2VfZmJjKHNlc3MtPnBpeGZtdF9jYXAsIGlzXzEwYml0KSkgewo+ ICAJCS8qIEVuYWJsZSAyLXBsYW5lIHJlZmVyZW5jZSByZWFkIG1vZGUgKi8KPiBAQCAtMzksOSAr NDIsMTcgQEAgdm9pZCBjb2RlY19oZXZjX3NldHVwX2RlY29kZV9oZWFkKHN0cnVjdCBhbXZkZWNf c2Vzc2lvbiAqc2VzcywgaW50IGlzXzEwYml0KQo+ICAJCXJldHVybjsKPiAgCX0KPiAgCj4gKwkv KiBlbmFibGUgbWVtIHNhdmluZyBtb2RlIGZvciA4LWJpdCAqLwo+ICsJaWYgKCFpc18xMGJpdCkK PiArCQlhbXZkZWNfd3JpdGVfZG9zX2JpdHMoY29yZSwgSEVWQ19TQU9fQ1RSTDUsIEJJVCg5KSk7 Cj4gKwllbHNlCj4gKwkJYW12ZGVjX2NsZWFyX2Rvc19iaXRzKGNvcmUsIEhFVkNfU0FPX0NUUkw1 LCBCSVQoOSkpOwo+ICsKPiAgCWlmIChjb2RlY19oZXZjX3VzZV9tbXUoY29yZS0+cGxhdGZvcm0t PnJldmlzaW9uLAo+ICAJCQkgICAgICAgc2Vzcy0+cGl4Zm10X2NhcCwgaXNfMTBiaXQpKQo+ICAJ CWFtdmRlY193cml0ZV9kb3MoY29yZSwgSEVWQ0RfTVBQX0RFQ09NUF9DVEwxLCBCSVQoNCkpOwo+ ICsJZWxzZSBpZiAoIWlzXzEwYml0KQo+ICsJCWFtdmRlY193cml0ZV9kb3MoY29yZSwgSEVWQ0Rf TVBQX0RFQ09NUF9DVEwxLCBCSVQoMykpOwo+ICAJZWxzZQo+ICAJCWFtdmRlY193cml0ZV9kb3Mo Y29yZSwgSEVWQ0RfTVBQX0RFQ09NUF9DVEwxLCAwKTsKPiAgCj4gQEAgLTczLDcgKzg0LDcgQEAg c3RhdGljIHZvaWQgY29kZWNfaGV2Y19zZXR1cF9idWZmZXJzX2d4YmIoc3RydWN0IGFtdmRlY19z ZXNzaW9uICpzZXNzLAo+ICAKPiAgCQlpZHggPSB2Yi0+aW5kZXg7Cj4gIAo+IC0JCWlmIChjb2Rl Y19oZXZjX3VzZV9kb3duc2FtcGxlKHNlc3MtPnBpeGZtdF9jYXAsIGlzXzEwYml0KSkKPiArCQlp ZiAoY29kZWNfaGV2Y191c2VfZmJjKHNlc3MtPnBpeGZtdF9jYXAsIGlzXzEwYml0KSkKPiAgCQkJ YnVmX3lfcGFkZHIgPSBjb21tLT5mYmNfYnVmZmVyX3BhZGRyW2lkeF07Cj4gIAkJZWxzZQo+ICAJ CQlidWZfeV9wYWRkciA9IHZiMl9kbWFfY29udGlnX3BsYW5lX2RtYV9hZGRyKHZiLCAwKTsKPiBA QCAtMTE0LDggKzEyNSw4IEBAIHN0YXRpYyB2b2lkIGNvZGVjX2hldmNfc2V0dXBfYnVmZmVyc19n eGwoc3RydWN0IGFtdmRlY19zZXNzaW9uICpzZXNzLAo+ICB7Cj4gIAlzdHJ1Y3QgYW12ZGVjX2Nv cmUgKmNvcmUgPSBzZXNzLT5jb3JlOwo+ICAJc3RydWN0IHY0bDJfbTJtX2J1ZmZlciAqYnVmOwo+ IC0JdTMyIHJldmlzaW9uID0gY29yZS0+cGxhdGZvcm0tPnJldmlzaW9uOwo+ICAJdTMyIHBpeGZt dF9jYXAgPSBzZXNzLT5waXhmbXRfY2FwOwo+ICsJY29uc3QgdTMyIHJldmlzaW9uID0gY29yZS0+ cGxhdGZvcm0tPnJldmlzaW9uOwo+ICAJaW50IGk7Cj4gIAo+ICAJYW12ZGVjX3dyaXRlX2Rvcyhj b3JlLCBIRVZDRF9NUFBfQU5DMkFYSV9UQkxfQ09ORl9BRERSLAo+IEBAIC0xMjcsMTIgKzEzOCwx NCBAQCBzdGF0aWMgdm9pZCBjb2RlY19oZXZjX3NldHVwX2J1ZmZlcnNfZ3hsKHN0cnVjdCBhbXZk ZWNfc2Vzc2lvbiAqc2VzcywKPiAgCQlkbWFfYWRkcl90IGJ1Zl91dl9wYWRkciA9IDA7Cj4gIAkJ dTMyIGlkeCA9IHZiLT5pbmRleDsKPiAgCj4gLQkJaWYgKGNvZGVjX2hldmNfdXNlX21tdShyZXZp c2lvbiwgcGl4Zm10X2NhcCwgaXNfMTBiaXQpKQo+IC0JCQlidWZfeV9wYWRkciA9IGNvbW0tPm1t dV9oZWFkZXJfcGFkZHJbaWR4XTsKPiAtCQllbHNlIGlmIChjb2RlY19oZXZjX3VzZV9kb3duc2Ft cGxlKHBpeGZtdF9jYXAsIGlzXzEwYml0KSkKPiAtCQkJYnVmX3lfcGFkZHIgPSBjb21tLT5mYmNf YnVmZmVyX3BhZGRyW2lkeF07Cj4gLQkJZWxzZQo+ICsJCWlmIChjb2RlY19oZXZjX3VzZV9kb3du c2FtcGxlKHBpeGZtdF9jYXAsIGlzXzEwYml0KSkgewo+ICsJCQlpZiAoY29kZWNfaGV2Y191c2Vf bW11KHJldmlzaW9uLCBwaXhmbXRfY2FwLCBpc18xMGJpdCkpCj4gKwkJCQlidWZfeV9wYWRkciA9 IGNvbW0tPm1tdV9oZWFkZXJfcGFkZHJbaWR4XTsKPiArCQkJZWxzZQo+ICsJCQkJYnVmX3lfcGFk ZHIgPSBjb21tLT5mYmNfYnVmZmVyX3BhZGRyW2lkeF07Cj4gKwkJfSBlbHNlIHsKPiAgCQkJYnVm X3lfcGFkZHIgPSB2YjJfZG1hX2NvbnRpZ19wbGFuZV9kbWFfYWRkcih2YiwgMCk7Cj4gKwkJfQo+ ICAKPiAgCQlhbXZkZWNfd3JpdGVfZG9zKGNvcmUsIEhFVkNEX01QUF9BTkMyQVhJX1RCTF9EQVRB LAo+ICAJCQkJIGJ1Zl95X3BhZGRyID4+IDUpOwo+IEBAIC0xNTAsNjAgKzE2Myw2NyBAQCBzdGF0 aWMgdm9pZCBjb2RlY19oZXZjX3NldHVwX2J1ZmZlcnNfZ3hsKHN0cnVjdCBhbXZkZWNfc2Vzc2lv biAqc2VzcywKPiAgCQlhbXZkZWNfd3JpdGVfZG9zKGNvcmUsIEhFVkNEX01QUF9BTkNfQ0FOVkFT X0RBVEFfQUREUiwgMCk7Cj4gIH0KPiAgCj4gLXZvaWQgY29kZWNfaGV2Y19mcmVlX2ZiY19idWZm ZXJzKHN0cnVjdCBhbXZkZWNfc2Vzc2lvbiAqc2VzcywKPiArdm9pZCBjb2RlY19oZXZjX2ZyZWVf bW11X2hlYWRlcnMoc3RydWN0IGFtdmRlY19zZXNzaW9uICpzZXNzLAo+ICAJCQkJIHN0cnVjdCBj b2RlY19oZXZjX2NvbW1vbiAqY29tbSkKPiAgewo+ICAJc3RydWN0IGRldmljZSAqZGV2ID0gc2Vz cy0+Y29yZS0+ZGV2Owo+IC0JdTMyIGFtMjFfc2l6ZSA9IGFtdmRlY19hbTIxY19zaXplKHNlc3Mt PndpZHRoLCBzZXNzLT5oZWlnaHQpOwo+ICAJaW50IGk7Cj4gIAo+ICAJZm9yIChpID0gMDsgaSA8 IE1BWF9SRUZfUElDX05VTTsgKytpKSB7Cj4gLQkJaWYgKGNvbW0tPmZiY19idWZmZXJfdmFkZHJb aV0pIHsKPiAtCQkJZG1hX2ZyZWVfY29oZXJlbnQoZGV2LCBhbTIxX3NpemUsCj4gLQkJCQkJICBj b21tLT5mYmNfYnVmZmVyX3ZhZGRyW2ldLAo+IC0JCQkJCSAgY29tbS0+ZmJjX2J1ZmZlcl9wYWRk cltpXSk7Cj4gLQkJCWNvbW0tPmZiY19idWZmZXJfdmFkZHJbaV0gPSBOVUxMOwo+ICsJCWlmIChj b21tLT5tbXVfaGVhZGVyX3ZhZGRyW2ldKSB7Cj4gKwkJCWRtYV9mcmVlX2NvaGVyZW50KGRldiwg TU1VX0NPTVBSRVNTX0hFQURFUl9TSVpFLAo+ICsJCQkJCSAgY29tbS0+bW11X2hlYWRlcl92YWRk cltpXSwKPiArCQkJCQkgIGNvbW0tPm1tdV9oZWFkZXJfcGFkZHJbaV0pOwo+ICsJCQljb21tLT5t bXVfaGVhZGVyX3ZhZGRyW2ldID0gTlVMTDsKPiAgCQl9Cj4gIAl9Cj4gIH0KPiAtRVhQT1JUX1NZ TUJPTF9HUEwoY29kZWNfaGV2Y19mcmVlX2ZiY19idWZmZXJzKTsKPiArRVhQT1JUX1NZTUJPTF9H UEwoY29kZWNfaGV2Y19mcmVlX21tdV9oZWFkZXJzKTsKPiAgCj4gLXN0YXRpYyBpbnQgY29kZWNf aGV2Y19hbGxvY19mYmNfYnVmZmVycyhzdHJ1Y3QgYW12ZGVjX3Nlc3Npb24gKnNlc3MsCj4gK3N0 YXRpYyBpbnQgY29kZWNfaGV2Y19hbGxvY19tbXVfaGVhZGVycyhzdHJ1Y3QgYW12ZGVjX3Nlc3Np b24gKnNlc3MsCj4gIAkJCQkJc3RydWN0IGNvZGVjX2hldmNfY29tbW9uICpjb21tKQo+ICB7Cj4g IAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBzZXNzLT5jb3JlLT5kZXY7Cj4gIAlzdHJ1Y3QgdjRsMl9t Mm1fYnVmZmVyICpidWY7Cj4gLQl1MzIgYW0yMV9zaXplID0gYW12ZGVjX2FtMjFjX3NpemUoc2Vz cy0+d2lkdGgsIHNlc3MtPmhlaWdodCk7Cj4gIAo+ICAJdjRsMl9tMm1fZm9yX2VhY2hfZHN0X2J1 ZihzZXNzLT5tMm1fY3R4LCBidWYpIHsKPiAgCQl1MzIgaWR4ID0gYnVmLT52Yi52YjJfYnVmLmlu ZGV4Owo+ICAJCWRtYV9hZGRyX3QgcGFkZHI7Cj4gLQkJdm9pZCAqdmFkZHIgPSBkbWFfYWxsb2Nf Y29oZXJlbnQoZGV2LCBhbTIxX3NpemUsICZwYWRkciwKPiAtCQkJCQkJIEdGUF9LRVJORUwpOwo+ ICsJCXZvaWQgKnZhZGRyID0gZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgTU1VX0NPTVBSRVNTX0hF QURFUl9TSVpFLAo+ICsJCQkJCQkgJnBhZGRyLCBHRlBfS0VSTkVMKTsKPiAgCQlpZiAoIXZhZGRy KSB7Cj4gLQkJCWNvZGVjX2hldmNfZnJlZV9mYmNfYnVmZmVycyhzZXNzLCBjb21tKTsKPiArCQkJ Y29kZWNfaGV2Y19mcmVlX21tdV9oZWFkZXJzKHNlc3MsIGNvbW0pOwo+ICAJCQlyZXR1cm4gLUVO T01FTTsKPiAgCQl9Cj4gIAo+IC0JCWNvbW0tPmZiY19idWZmZXJfdmFkZHJbaWR4XSA9IHZhZGRy Owo+IC0JCWNvbW0tPmZiY19idWZmZXJfcGFkZHJbaWR4XSA9IHBhZGRyOwo+ICsJCWNvbW0tPm1t dV9oZWFkZXJfdmFkZHJbaWR4XSA9IHZhZGRyOwo+ICsJCWNvbW0tPm1tdV9oZWFkZXJfcGFkZHJb aWR4XSA9IHBhZGRyOwo+ICAJfQo+ICAKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC12b2lkIGNv ZGVjX2hldmNfZnJlZV9tbXVfaGVhZGVycyhzdHJ1Y3QgYW12ZGVjX3Nlc3Npb24gKnNlc3MsCj4g K3ZvaWQgY29kZWNfaGV2Y19mcmVlX2ZiY19idWZmZXJzKHN0cnVjdCBhbXZkZWNfc2Vzc2lvbiAq c2VzcywKPiAgCQkJCSBzdHJ1Y3QgY29kZWNfaGV2Y19jb21tb24gKmNvbW0pCj4gIHsKPiAgCXN0 cnVjdCBkZXZpY2UgKmRldiA9IHNlc3MtPmNvcmUtPmRldjsKPiArCXUzMiB1c2VfbW11Owo+ICsJ dTMyIGFtMjFfc2l6ZTsKPiAgCWludCBpOwo+ICAKPiArCXVzZV9tbXUgPSBjb2RlY19oZXZjX3Vz ZV9tbXUoc2Vzcy0+Y29yZS0+cGxhdGZvcm0tPnJldmlzaW9uLAo+ICsJCQkJICAgICBzZXNzLT5w aXhmbXRfY2FwLAo+ICsJCQkJc2Vzcy0+Yml0ZGVwdGggPT0gMTAgPyAxIDogMCk7Cj4gKwo+ICsJ YW0yMV9zaXplID0gYW12ZGVjX2FtZmJjX3NpemUoc2Vzcy0+d2lkdGgsIHNlc3MtPmhlaWdodCwK PiArCQkJCSAgICAgIHNlc3MtPmJpdGRlcHRoID09IDEwID8gMSA6IDAsIHVzZV9tbXUpOwo+ICsK PiAgCWZvciAoaSA9IDA7IGkgPCBNQVhfUkVGX1BJQ19OVU07ICsraSkgewo+IC0JCWlmIChjb21t LT5tbXVfaGVhZGVyX3ZhZGRyW2ldKSB7Cj4gLQkJCWRtYV9mcmVlX2NvaGVyZW50KGRldiwgTU1V X0NPTVBSRVNTX0hFQURFUl9TSVpFLAo+IC0JCQkJCSAgY29tbS0+bW11X2hlYWRlcl92YWRkcltp XSwKPiAtCQkJCQkgIGNvbW0tPm1tdV9oZWFkZXJfcGFkZHJbaV0pOwo+IC0JCQljb21tLT5tbXVf aGVhZGVyX3ZhZGRyW2ldID0gTlVMTDsKPiArCQlpZiAoY29tbS0+ZmJjX2J1ZmZlcl92YWRkcltp XSkgewo+ICsJCQlkbWFfZnJlZV9jb2hlcmVudChkZXYsIGFtMjFfc2l6ZSwKPiArCQkJCQkgIGNv bW0tPmZiY19idWZmZXJfdmFkZHJbaV0sCj4gKwkJCQkJICBjb21tLT5mYmNfYnVmZmVyX3BhZGRy W2ldKTsKPiArCQkJY29tbS0+ZmJjX2J1ZmZlcl92YWRkcltpXSA9IE5VTEw7Cj4gIAkJfQo+ICAJ fQo+ICAKPiBAQCAtMjEzLDMzICsyMzMsNTAgQEAgdm9pZCBjb2RlY19oZXZjX2ZyZWVfbW11X2hl YWRlcnMoc3RydWN0IGFtdmRlY19zZXNzaW9uICpzZXNzLAo+ICAJCQkJICBjb21tLT5tbXVfbWFw X3BhZGRyKTsKPiAgCQljb21tLT5tbXVfbWFwX3ZhZGRyID0gTlVMTDsKPiAgCX0KPiArCj4gKwlj b2RlY19oZXZjX2ZyZWVfbW11X2hlYWRlcnMoc2VzcywgY29tbSk7Cj4gIH0KPiAtRVhQT1JUX1NZ TUJPTF9HUEwoY29kZWNfaGV2Y19mcmVlX21tdV9oZWFkZXJzKTsKPiArRVhQT1JUX1NZTUJPTF9H UEwoY29kZWNfaGV2Y19mcmVlX2ZiY19idWZmZXJzKTsKPiAgCj4gLXN0YXRpYyBpbnQgY29kZWNf aGV2Y19hbGxvY19tbXVfaGVhZGVycyhzdHJ1Y3QgYW12ZGVjX3Nlc3Npb24gKnNlc3MsCj4gK3N0 YXRpYyBpbnQgY29kZWNfaGV2Y19hbGxvY19mYmNfYnVmZmVycyhzdHJ1Y3QgYW12ZGVjX3Nlc3Np b24gKnNlc3MsCj4gIAkJCQkJc3RydWN0IGNvZGVjX2hldmNfY29tbW9uICpjb21tKQo+ICB7Cj4g IAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBzZXNzLT5jb3JlLT5kZXY7Cj4gIAlzdHJ1Y3QgdjRsMl9t Mm1fYnVmZmVyICpidWY7Cj4gKwl1MzIgdXNlX21tdTsKPiArCXUzMiBhbTIxX3NpemU7Cj4gKwlj b25zdCB1MzIgcmV2aXNpb24gPSBzZXNzLT5jb3JlLT5wbGF0Zm9ybS0+cmV2aXNpb247Cj4gKwlj b25zdCB1MzIgaXNfMTBiaXQgPSBzZXNzLT5iaXRkZXB0aCA9PSAxMCA/IDEgOiAwOwo+ICsJaW50 IHJldDsKPiAgCj4gLQljb21tLT5tbXVfbWFwX3ZhZGRyID0gZG1hX2FsbG9jX2NvaGVyZW50KGRl diwgTU1VX01BUF9TSVpFLAo+IC0JCQkJCQkgJmNvbW0tPm1tdV9tYXBfcGFkZHIsCj4gLQkJCQkJ CSBHRlBfS0VSTkVMKTsKPiAtCWlmICghY29tbS0+bW11X21hcF92YWRkcikKPiAtCQlyZXR1cm4g LUVOT01FTTsKPiArCXVzZV9tbXUgPSBjb2RlY19oZXZjX3VzZV9tbXUocmV2aXNpb24sIHNlc3Mt PnBpeGZtdF9jYXAsCj4gKwkJCQkgICAgIGlzXzEwYml0KTsKPiArCj4gKwlhbTIxX3NpemUgPSBh bXZkZWNfYW1mYmNfc2l6ZShzZXNzLT53aWR0aCwgc2Vzcy0+aGVpZ2h0LAo+ICsJCQkJICAgICAg aXNfMTBiaXQsIHVzZV9tbXUpOwo+ICAKPiAgCXY0bDJfbTJtX2Zvcl9lYWNoX2RzdF9idWYoc2Vz cy0+bTJtX2N0eCwgYnVmKSB7Cj4gIAkJdTMyIGlkeCA9IGJ1Zi0+dmIudmIyX2J1Zi5pbmRleDsK PiAgCQlkbWFfYWRkcl90IHBhZGRyOwo+IC0JCXZvaWQgKnZhZGRyID0gZG1hX2FsbG9jX2NvaGVy ZW50KGRldiwgTU1VX0NPTVBSRVNTX0hFQURFUl9TSVpFLAo+IC0JCQkJCQkgJnBhZGRyLCBHRlBf S0VSTkVMKTsKPiArCj4gKwkJdm9pZCAqdmFkZHIgPSBkbWFfYWxsb2NfY29oZXJlbnQoZGV2LCBh bTIxX3NpemUsICZwYWRkciwKPiArCQkJCQkJIEdGUF9LRVJORUwpOwo+ICAJCWlmICghdmFkZHIp IHsKPiAtCQkJY29kZWNfaGV2Y19mcmVlX21tdV9oZWFkZXJzKHNlc3MsIGNvbW0pOwo+ICsJCQlj b2RlY19oZXZjX2ZyZWVfZmJjX2J1ZmZlcnMoc2VzcywgY29tbSk7Cj4gIAkJCXJldHVybiAtRU5P TUVNOwo+ICAJCX0KPiAgCj4gLQkJY29tbS0+bW11X2hlYWRlcl92YWRkcltpZHhdID0gdmFkZHI7 Cj4gLQkJY29tbS0+bW11X2hlYWRlcl9wYWRkcltpZHhdID0gcGFkZHI7Cj4gKwkJY29tbS0+ZmJj X2J1ZmZlcl92YWRkcltpZHhdID0gdmFkZHI7Cj4gKwkJY29tbS0+ZmJjX2J1ZmZlcl9wYWRkcltp ZHhdID0gcGFkZHI7Cj4gKwl9Cj4gKwo+ICsJaWYgKGNvZGVjX2hldmNfdXNlX21tdShyZXZpc2lv biwgc2Vzcy0+cGl4Zm10X2NhcCwgaXNfMTBiaXQpICYmCj4gKwkgICAgY29kZWNfaGV2Y191c2Vf ZG93bnNhbXBsZShzZXNzLT5waXhmbXRfY2FwLCBpc18xMGJpdCkpIHsKPiArCQlyZXQgPSBjb2Rl Y19oZXZjX2FsbG9jX21tdV9oZWFkZXJzKHNlc3MsIGNvbW0pOwo+ICsJCWlmIChyZXQpIHsKPiAr CQkJY29kZWNfaGV2Y19mcmVlX2ZiY19idWZmZXJzKHNlc3MsIGNvbW0pOwo+ICsJCQlyZXR1cm4g cmV0Owo+ICsJCX0KPiAgCX0KPiAgCj4gIAlyZXR1cm4gMDsKPiBAQCAtMjUwLDIxICsyODcsMjQg QEAgaW50IGNvZGVjX2hldmNfc2V0dXBfYnVmZmVycyhzdHJ1Y3QgYW12ZGVjX3Nlc3Npb24gKnNl c3MsCj4gIAkJCSAgICAgaW50IGlzXzEwYml0KQo+ICB7Cj4gIAlzdHJ1Y3QgYW12ZGVjX2NvcmUg KmNvcmUgPSBzZXNzLT5jb3JlOwo+ICsJc3RydWN0IGRldmljZSAqZGV2ID0gY29yZS0+ZGV2Owo+ ICAJaW50IHJldDsKPiAgCj4gLQlpZiAoY29kZWNfaGV2Y191c2VfZG93bnNhbXBsZShzZXNzLT5w aXhmbXRfY2FwLCBpc18xMGJpdCkpIHsKPiAtCQlyZXQgPSBjb2RlY19oZXZjX2FsbG9jX2ZiY19i dWZmZXJzKHNlc3MsIGNvbW0pOwo+IC0JCWlmIChyZXQpCj4gLQkJCXJldHVybiByZXQ7Cj4gKwlp ZiAoY29kZWNfaGV2Y191c2VfbW11KGNvcmUtPnBsYXRmb3JtLT5yZXZpc2lvbiwKPiArCQkJICAg ICAgIHNlc3MtPnBpeGZtdF9jYXAsIGlzXzEwYml0KSkgewo+ICsJCWNvbW0tPm1tdV9tYXBfdmFk ZHIgPSBkbWFfYWxsb2NfY29oZXJlbnQoZGV2LCBNTVVfTUFQX1NJWkUsCj4gKwkJCQkJCQkgJmNv bW0tPm1tdV9tYXBfcGFkZHIsCj4gKwkJCQkJCQkgR0ZQX0tFUk5FTCk7Cj4gKwkJaWYgKCFjb21t LT5tbXVfbWFwX3ZhZGRyKQo+ICsJCQlyZXR1cm4gLUVOT01FTTsKPiAgCX0KPiAgCj4gIAlpZiAo Y29kZWNfaGV2Y191c2VfbW11KGNvcmUtPnBsYXRmb3JtLT5yZXZpc2lvbiwKPiAtCQkJICAgICAg IHNlc3MtPnBpeGZtdF9jYXAsIGlzXzEwYml0KSkgewo+IC0JCXJldCA9IGNvZGVjX2hldmNfYWxs b2NfbW11X2hlYWRlcnMoc2VzcywgY29tbSk7Cj4gLQkJaWYgKHJldCkgewo+IC0JCQljb2RlY19o ZXZjX2ZyZWVfZmJjX2J1ZmZlcnMoc2VzcywgY29tbSk7Cj4gKwkJCSAgICAgICBzZXNzLT5waXhm bXRfY2FwLCBpc18xMGJpdCkgfHwKPiArCSAgICBjb2RlY19oZXZjX3VzZV9kb3duc2FtcGxlKHNl c3MtPnBpeGZtdF9jYXAsIGlzXzEwYml0KSkgewo+ICsJCXJldCA9IGNvZGVjX2hldmNfYWxsb2Nf ZmJjX2J1ZmZlcnMoc2VzcywgY29tbSk7Cj4gKwkJaWYgKHJldCkKPiAgCQkJcmV0dXJuIHJldDsK PiAtCQl9Cj4gIAl9Cj4gIAo+ICAJaWYgKGNvcmUtPnBsYXRmb3JtLT5yZXZpc2lvbiA9PSBWREVD X1JFVklTSU9OX0dYQkIpCj4gQEAgLTI3OCwxOSArMzE4LDI0IEBAIEVYUE9SVF9TWU1CT0xfR1BM KGNvZGVjX2hldmNfc2V0dXBfYnVmZmVycyk7Cj4gIAo+ICB2b2lkIGNvZGVjX2hldmNfZmlsbF9t bXVfbWFwKHN0cnVjdCBhbXZkZWNfc2Vzc2lvbiAqc2VzcywKPiAgCQkJICAgICBzdHJ1Y3QgY29k ZWNfaGV2Y19jb21tb24gKmNvbW0sCj4gLQkJCSAgICAgc3RydWN0IHZiMl9idWZmZXIgKnZiKQo+ ICsJCQkgICAgIHN0cnVjdCB2YjJfYnVmZmVyICp2YiwKPiArCQkJICAgICB1MzIgaXNfMTBiaXQp Cj4gIHsKPiAtCXUzMiBzaXplID0gYW12ZGVjX2FtMjFjX3NpemUoc2Vzcy0+d2lkdGgsIHNlc3Mt PmhlaWdodCk7Cj4gLQl1MzIgbmJfcGFnZXMgPSBzaXplIC8gUEFHRV9TSVpFOwo+ICsJdTMyIHVz ZV9tbXU7Cj4gKwl1MzIgc2l6ZTsKPiArCXUzMiBuYl9wYWdlczsKPiAgCXUzMiAqbW11X21hcCA9 IGNvbW0tPm1tdV9tYXBfdmFkZHI7Cj4gIAl1MzIgZmlyc3RfcGFnZTsKPiAgCXUzMiBpOwo+ICAK PiAtCWlmIChzZXNzLT5waXhmbXRfY2FwID09IFY0TDJfUElYX0ZNVF9OVjEyTSkKPiAtCQlmaXJz dF9wYWdlID0gY29tbS0+ZmJjX2J1ZmZlcl9wYWRkclt2Yi0+aW5kZXhdID4+IFBBR0VfU0hJRlQ7 Cj4gLQllbHNlCj4gLQkJZmlyc3RfcGFnZSA9IHZiMl9kbWFfY29udGlnX3BsYW5lX2RtYV9hZGRy KHZiLCAwKSA+PiBQQUdFX1NISUZUOwo+ICsJdXNlX21tdSA9IGNvZGVjX2hldmNfdXNlX21tdShz ZXNzLT5jb3JlLT5wbGF0Zm9ybS0+cmV2aXNpb24sCj4gKwkJCQkgICAgIHNlc3MtPnBpeGZtdF9j YXAsIGlzXzEwYml0KTsKPiArCj4gKwlzaXplID0gYW12ZGVjX2FtZmJjX3NpemUoc2Vzcy0+d2lk dGgsIHNlc3MtPmhlaWdodCwgaXNfMTBiaXQsCj4gKwkJCQkgdXNlX21tdSk7Cj4gIAo+ICsJbmJf cGFnZXMgPSBzaXplIC8gUEFHRV9TSVpFOwo+ICsJZmlyc3RfcGFnZSA9IGNvbW0tPmZiY19idWZm ZXJfcGFkZHJbdmItPmluZGV4XSA+PiBQQUdFX1NISUZUOwo+ICAJZm9yIChpID0gMDsgaSA8IG5i X3BhZ2VzOyArK2kpCj4gIAkJbW11X21hcFtpXSA9IGZpcnN0X3BhZ2UgKyBpOwo+ICB9Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9tZXNvbi92ZGVjL2NvZGVjX2hldmNfY29t bW9uLmggYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvbWVzb24vdmRlYy9jb2RlY19oZXZjX2NvbW1v bi5oCj4gaW5kZXggY2YwNzJiOGE5ZGEyLi4xM2Y5ZjFkOTBhOTQgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9zdGFnaW5nL21lZGlhL21lc29uL3ZkZWMvY29kZWNfaGV2Y19jb21tb24uaAo+ICsrKyBi L2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9tZXNvbi92ZGVjL2NvZGVjX2hldmNfY29tbW9uLmgKPiBA QCAtNjQsNiArNjQsNyBAQCBpbnQgY29kZWNfaGV2Y19zZXR1cF9idWZmZXJzKHN0cnVjdCBhbXZk ZWNfc2Vzc2lvbiAqc2VzcywKPiAgCj4gIHZvaWQgY29kZWNfaGV2Y19maWxsX21tdV9tYXAoc3Ry dWN0IGFtdmRlY19zZXNzaW9uICpzZXNzLAo+ICAJCQkgICAgIHN0cnVjdCBjb2RlY19oZXZjX2Nv bW1vbiAqY29tbSwKPiAtCQkJICAgICBzdHJ1Y3QgdmIyX2J1ZmZlciAqdmIpOwo+ICsJCQkgICAg IHN0cnVjdCB2YjJfYnVmZmVyICp2YiwKPiArCQkJICAgICB1MzIgaXNfMTBiaXQpOwo+ICAKPiAg I2VuZGlmCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9tZXNvbi92ZGVjL2Nv ZGVjX3ZwOS5jIGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL21lc29uL3ZkZWMvY29kZWNfdnA5LmMK PiBpbmRleCAzOTRkZjU3NjE1NTYuLjhlM2JiZjBkYjRiMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L3N0YWdpbmcvbWVkaWEvbWVzb24vdmRlYy9jb2RlY192cDkuYwo+ICsrKyBiL2RyaXZlcnMvc3Rh Z2luZy9tZWRpYS9tZXNvbi92ZGVjL2NvZGVjX3ZwOS5jCj4gQEAgLTQ1OCwxMiArNDU4LDYgQEAg c3RydWN0IGNvZGVjX3ZwOSB7Cj4gIAlzdHJ1Y3QgbGlzdF9oZWFkIHJlZl9mcmFtZXNfbGlzdDsK PiAgCXUzMiBmcmFtZXNfbnVtOwo+ICAKPiAtCS8qIEluIGNhc2Ugb2YgZG93bnNhbXBsaW5nIChk ZWNvZGluZyB3aXRoIEZCQyBidXQgb3V0cHV0dGluZyBpbiBOVjEyTSksCj4gLQkgKiB3ZSBuZWVk IHRvIGFsbG9jYXRlIGFkZGl0aW9uYWwgYnVmZmVycyBmb3IgRkJDLgo+IC0JICovCj4gLQl2b2lk ICAgICAgKmZiY19idWZmZXJfdmFkZHJbTUFYX1JFRl9QSUNfTlVNXTsKPiAtCWRtYV9hZGRyX3Qg ZmJjX2J1ZmZlcl9wYWRkcltNQVhfUkVGX1BJQ19OVU1dOwo+IC0KPiAgCWludCByZWZfZnJhbWVf bWFwW1JFRl9GUkFNRVNdOwo+ICAJaW50IG5leHRfcmVmX2ZyYW1lX21hcFtSRUZfRlJBTUVTXTsK PiAgCXN0cnVjdCB2cDlfZnJhbWUgKmZyYW1lX3JlZnNbUkVGU19QRVJfRlJBTUVdOwo+IEBAIC05 MDEsMTEgKzg5NSw4IEBAIHN0YXRpYyB2b2lkIGNvZGVjX3ZwOV9zZXRfc2FvKHN0cnVjdCBhbXZk ZWNfc2Vzc2lvbiAqc2VzcywKPiAgCQlidWZfeV9wYWRkciA9Cj4gIAkJICAgICAgIHZiMl9kbWFf Y29udGlnX3BsYW5lX2RtYV9hZGRyKHZiLCAwKTsKPiAgCj4gLQlpZiAoY29kZWNfaGV2Y191c2Vf ZmJjKHNlc3MtPnBpeGZtdF9jYXAsIHZwOS0+aXNfMTBiaXQpKSB7Cj4gLQkJdmFsID0gYW12ZGVj X3JlYWRfZG9zKGNvcmUsIEhFVkNfU0FPX0NUUkw1KSAmIH4weGZmMDIwMDsKPiAtCQlhbXZkZWNf d3JpdGVfZG9zKGNvcmUsIEhFVkNfU0FPX0NUUkw1LCB2YWwpOwo+ICsJaWYgKGNvZGVjX2hldmNf dXNlX2ZiYyhzZXNzLT5waXhmbXRfY2FwLCB2cDktPmlzXzEwYml0KSkKPiAgCQlhbXZkZWNfd3Jp dGVfZG9zKGNvcmUsIEhFVkNfQ01fQk9EWV9TVEFSVF9BRERSLCBidWZfeV9wYWRkcik7Cj4gLQl9 Cj4gIAo+ICAJaWYgKHNlc3MtPnBpeGZtdF9jYXAgPT0gVjRMMl9QSVhfRk1UX05WMTJNKSB7Cj4g IAkJYnVmX3lfcGFkZHIgPQo+IEBAIC05MjAsOCArOTExLDEzIEBAIHN0YXRpYyB2b2lkIGNvZGVj X3ZwOV9zZXRfc2FvKHN0cnVjdCBhbXZkZWNfc2Vzc2lvbiAqc2VzcywKPiAgCj4gIAlpZiAoY29k ZWNfaGV2Y191c2VfbW11KGNvcmUtPnBsYXRmb3JtLT5yZXZpc2lvbiwgc2Vzcy0+cGl4Zm10X2Nh cCwKPiAgCQkJICAgICAgIHZwOS0+aXNfMTBiaXQpKSB7Cj4gLQkJYW12ZGVjX3dyaXRlX2Rvcyhj b3JlLCBIRVZDX0NNX0hFQURFUl9TVEFSVF9BRERSLAo+IC0JCQkJIHZwOS0+Y29tbW9uLm1tdV9o ZWFkZXJfcGFkZHJbdmItPmluZGV4XSk7Cj4gKwkJZG1hX2FkZHJfdCBoZWFkZXJfYWRyOwo+ICsK PiArCQlpZiAoY29kZWNfaGV2Y191c2VfZG93bnNhbXBsZShzZXNzLT5waXhmbXRfY2FwLCB2cDkt PmlzXzEwYml0KSkKPiArCQkJaGVhZGVyX2FkciA9IHZwOS0+Y29tbW9uLm1tdV9oZWFkZXJfcGFk ZHJbdmItPmluZGV4XTsKPiArCQllbHNlCj4gKwkJCWhlYWRlcl9hZHIgPSB2YjJfZG1hX2NvbnRp Z19wbGFuZV9kbWFfYWRkcih2YiwgMCk7Cj4gKwkJYW12ZGVjX3dyaXRlX2Rvcyhjb3JlLCBIRVZD X0NNX0hFQURFUl9TVEFSVF9BRERSLCBoZWFkZXJfYWRyKTsKPiAgCQkvKiB1c2UgSEVWQ19DTV9I RUFERVJfU1RBUlRfQUREUiAqLwo+ICAJCWFtdmRlY193cml0ZV9kb3NfYml0cyhjb3JlLCBIRVZD X1NBT19DVFJMNSwgQklUKDEwKSk7Cj4gIAl9Cj4gQEAgLTExNDgsOSArMTE0NCwxMyBAQCBzdGF0 aWMgdm9pZCBjb2RlY192cDlfc2V0X21jKHN0cnVjdCBhbXZkZWNfc2Vzc2lvbiAqc2VzcywKPiAg ewo+ICAJc3RydWN0IGFtdmRlY19jb3JlICpjb3JlID0gc2Vzcy0+Y29yZTsKPiAgCXUzMiBzY2Fs ZSA9IDA7Cj4gKwl1MzIgdXNlX21tdTsKPiAgCXUzMiBzejsKPiAgCWludCBpOwo+ICAKPiArCXVz ZV9tbXUgPSBjb2RlY19oZXZjX3VzZV9tbXUoY29yZS0+cGxhdGZvcm0tPnJldmlzaW9uLAo+ICsJ CQkJICAgICBzZXNzLT5waXhmbXRfY2FwLCB2cDktPmlzXzEwYml0KTsKPiArCj4gIAlhbXZkZWNf d3JpdGVfZG9zKGNvcmUsIEhFVkNEX01QUF9BTkNfQ0FOVkFTX0FDQ0NPTkZJR19BRERSLCAxKTsK PiAgCWNvZGVjX3ZwOV9zZXRfcmVmcyhzZXNzLCB2cDkpOwo+ICAJYW12ZGVjX3dyaXRlX2Rvcyhj b3JlLCBIRVZDRF9NUFBfQU5DX0NBTlZBU19BQ0NDT05GSUdfQUREUiwKPiBAQCAtMTE2Niw4ICsx MTY2LDkgQEAgc3RhdGljIHZvaWQgY29kZWNfdnA5X3NldF9tYyhzdHJ1Y3QgYW12ZGVjX3Nlc3Np b24gKnNlc3MsCj4gIAkJICAgIHZwOS0+ZnJhbWVfcmVmc1tpXS0+aGVpZ2h0ICE9IHZwOS0+aGVp Z2h0KQo+ICAJCQlzY2FsZSA9IDE7Cj4gIAo+IC0JCXN6ID0gYW12ZGVjX2FtMjFjX2JvZHlfc2l6 ZSh2cDktPmZyYW1lX3JlZnNbaV0tPndpZHRoLAo+IC0JCQkJCSAgICB2cDktPmZyYW1lX3JlZnNb aV0tPmhlaWdodCk7Cj4gKwkJc3ogPSBhbXZkZWNfYW1mYmNfYm9keV9zaXplKHZwOS0+ZnJhbWVf cmVmc1tpXS0+d2lkdGgsCj4gKwkJCQkJICAgIHZwOS0+ZnJhbWVfcmVmc1tpXS0+aGVpZ2h0LAo+ ICsJCQkJCSAgICB2cDktPmlzXzEwYml0LCB1c2VfbW11KTsKPiAgCj4gIAkJYW12ZGVjX3dyaXRl X2Rvcyhjb3JlLCBWUDlEX01QUF9SRUZJTkZPX0RBVEEsCj4gIAkJCQkgdnA5LT5mcmFtZV9yZWZz W2ldLT53aWR0aCk7Cj4gQEAgLTEyODMsNyArMTI4NCw4IEBAIHN0YXRpYyB2b2lkIGNvZGVjX3Zw OV9wcm9jZXNzX2ZyYW1lKHN0cnVjdCBhbXZkZWNfc2Vzc2lvbiAqc2VzcykKPiAgCWlmIChjb2Rl Y19oZXZjX3VzZV9tbXUoY29yZS0+cGxhdGZvcm0tPnJldmlzaW9uLCBzZXNzLT5waXhmbXRfY2Fw LAo+ICAJCQkgICAgICAgdnA5LT5pc18xMGJpdCkpCj4gIAkJY29kZWNfaGV2Y19maWxsX21tdV9t YXAoc2VzcywgJnZwOS0+Y29tbW9uLAo+IC0JCQkJCSZ2cDktPmN1cl9mcmFtZS0+dmJ1Zi0+dmIy X2J1Zik7Cj4gKwkJCQkJJnZwOS0+Y3VyX2ZyYW1lLT52YnVmLT52YjJfYnVmLAo+ICsJCQkJCXZw OS0+aXNfMTBiaXQpOwo+ICAKPiAgCWludHJhX29ubHkgPSBwYXJhbS0+cC5zaG93X2ZyYW1lID8g MCA6IHBhcmFtLT5wLmludHJhX29ubHk7Cj4gIAo+IEBAIC0yMTMwLDcgKzIxMzIsOCBAQCBzdGF0 aWMgaXJxcmV0dXJuX3QgY29kZWNfdnA5X3RocmVhZGVkX2lzcihzdHJ1Y3QgYW12ZGVjX3Nlc3Np b24gKnNlc3MpCj4gIAo+ICAJY29kZWNfdnA5X2ZldGNoX3JwbShzZXNzKTsKPiAgCWlmIChjb2Rl Y192cDlfcHJvY2Vzc19ycG0odnA5KSkgewo+IC0JCWFtdmRlY19zcmNfY2hhbmdlKHNlc3MsIHZw OS0+d2lkdGgsIHZwOS0+aGVpZ2h0LCAxNik7Cj4gKwkJYW12ZGVjX3NyY19jaGFuZ2Uoc2Vzcywg dnA5LT53aWR0aCwgdnA5LT5oZWlnaHQsIDE2LAo+ICsJCQkJICB2cDktPmlzXzEwYml0ID8gMTAg OiA4KTsKPiAgCj4gIAkJLyogTm8gZnJhbWUgaXMgYWN0dWFsbHkgcHJvY2Vzc2VkICovCj4gIAkJ dnA5LT5jdXJfZnJhbWUgPSBOVUxMOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvbWVk aWEvbWVzb24vdmRlYy9lc3BhcnNlci5jIGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL21lc29uL3Zk ZWMvZXNwYXJzZXIuYwo+IGluZGV4IDE5MDRkNTg4NzVhZC4uM2NkMjlhYjRmOTc5IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9tZXNvbi92ZGVjL2VzcGFyc2VyLmMKPiArKysg Yi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvbWVzb24vdmRlYy9lc3BhcnNlci5jCj4gQEAgLTMyMCw2 ICszMjAsNyBAQCBlc3BhcnNlcl9xdWV1ZShzdHJ1Y3QgYW12ZGVjX3Nlc3Npb24gKnNlc3MsIHN0 cnVjdCB2YjJfdjRsMl9idWZmZXIgKnZidWYpCj4gIAkJaWYgKGVzcGFyc2VyX3ZpZmlmb19nZXRf ZnJlZV9zcGFjZShzZXNzKSA8IHBheWxvYWRfc2l6ZSB8fAo+ICAJCSAgICBhdG9taWNfcmVhZCgm c2Vzcy0+ZXNwYXJzZXJfcXVldWVkX2J1ZnMpID49IG51bV9kc3RfYnVmcykKPiAgCQkJcmV0dXJu IC1FQUdBSU47Cj4gKwo+ICAJfSBlbHNlIGlmIChlc3BhcnNlcl92aWZpZm9fZ2V0X2ZyZWVfc3Bh Y2Uoc2VzcykgPCBwYXlsb2FkX3NpemUpIHsKPiAgCQlyZXR1cm4gLUVBR0FJTjsKPiAgCX0KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL21lc29uL3ZkZWMvdmRlYy5oIGIvZHJp dmVycy9zdGFnaW5nL21lZGlhL21lc29uL3ZkZWMvdmRlYy5oCj4gaW5kZXggMDkwNmI4ZmI1Y2M2 Li5hNDgxNzBmZTRjZmYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL21lc29u L3ZkZWMvdmRlYy5oCj4gKysrIGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL21lc29uL3ZkZWMvdmRl Yy5oCj4gQEAgLTI0NCw2ICsyNDQsNyBAQCBzdHJ1Y3QgYW12ZGVjX3Nlc3Npb24gewo+ICAJdTMy IHdpZHRoOwo+ICAJdTMyIGhlaWdodDsKPiAgCXUzMiBjb2xvcnNwYWNlOwo+ICsJdTMyIGJpdGRl cHRoOwo+ICAJdTggeWNiY3JfZW5jOwo+ICAJdTggcXVhbnRpemF0aW9uOwo+ICAJdTggeGZlcl9m dW5jOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvbWVzb24vdmRlYy92ZGVj X2hlbHBlcnMuYyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9tZXNvbi92ZGVjL3ZkZWNfaGVscGVy cy5jCj4gaW5kZXggN2QyYTc1NjUzMjUwLi5mZWY3NjE0MmYwYzUgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9zdGFnaW5nL21lZGlhL21lc29uL3ZkZWMvdmRlY19oZWxwZXJzLmMKPiArKysgYi9kcml2 ZXJzL3N0YWdpbmcvbWVkaWEvbWVzb24vdmRlYy92ZGVjX2hlbHBlcnMuYwo+IEBAIC01MCwzMiAr NTAsNDAgQEAgdm9pZCBhbXZkZWNfd3JpdGVfcGFyc2VyKHN0cnVjdCBhbXZkZWNfY29yZSAqY29y ZSwgdTMyIHJlZywgdTMyIHZhbCkKPiAgfQo+ICBFWFBPUlRfU1lNQk9MX0dQTChhbXZkZWNfd3Jp dGVfcGFyc2VyKTsKPiAgCj4gLS8qIDQgS2lCIHBlciA2NHgzMiBibG9jayAqLwo+IC11MzIgYW12 ZGVjX2FtMjFjX2JvZHlfc2l6ZSh1MzIgd2lkdGgsIHUzMiBoZWlnaHQpCj4gKy8qIEFNRkJDIGJv ZHkgaXMgbWFkZSBvdXQgb2YgNjR4MzIgYmxvY2tzIHdpdGggdmFyeWluZyBibG9jayBzaXplICov Cj4gK3UzMiBhbXZkZWNfYW1mYmNfYm9keV9zaXplKHUzMiB3aWR0aCwgdTMyIGhlaWdodCwgdTMy IGlzXzEwYml0LCB1MzIgdXNlX21tdSkKPiAgewo+ICAJdTMyIHdpZHRoXzY0ID0gQUxJR04od2lk dGgsIDY0KSAvIDY0Owo+ICAJdTMyIGhlaWdodF8zMiA9IEFMSUdOKGhlaWdodCwgMzIpIC8gMzI7 Cj4gKwl1MzIgYmxrX3NpemUgPSA0MDk2Owo+ICAKPiAtCXJldHVybiBTWl80SyAqIHdpZHRoXzY0 ICogaGVpZ2h0XzMyOwo+ICsJaWYgKCFpc18xMGJpdCkgewo+ICsJCWlmICh1c2VfbW11KQo+ICsJ CQlibGtfc2l6ZSA9IDMyMDA7Cj4gKwkJZWxzZQo+ICsJCQlibGtfc2l6ZSA9IDMwNzI7Cj4gKwl9 Cj4gKwo+ICsJcmV0dXJuIGJsa19zaXplICogd2lkdGhfNjQgKiBoZWlnaHRfMzI7Cj4gIH0KPiAt RVhQT1JUX1NZTUJPTF9HUEwoYW12ZGVjX2FtMjFjX2JvZHlfc2l6ZSk7Cj4gK0VYUE9SVF9TWU1C T0xfR1BMKGFtdmRlY19hbWZiY19ib2R5X3NpemUpOwo+ICAKPiAgLyogMzIgYnl0ZXMgcGVyIDEy OHg2NCBibG9jayAqLwo+IC11MzIgYW12ZGVjX2FtMjFjX2hlYWRfc2l6ZSh1MzIgd2lkdGgsIHUz MiBoZWlnaHQpCj4gK3UzMiBhbXZkZWNfYW1mYmNfaGVhZF9zaXplKHUzMiB3aWR0aCwgdTMyIGhl aWdodCkKPiAgewo+ICAJdTMyIHdpZHRoXzEyOCA9IEFMSUdOKHdpZHRoLCAxMjgpIC8gMTI4Owo+ ICAJdTMyIGhlaWdodF82NCA9IEFMSUdOKGhlaWdodCwgNjQpIC8gNjQ7Cj4gIAo+ICAJcmV0dXJu IDMyICogd2lkdGhfMTI4ICogaGVpZ2h0XzY0Owo+ICB9Cj4gLUVYUE9SVF9TWU1CT0xfR1BMKGFt dmRlY19hbTIxY19oZWFkX3NpemUpOwo+ICtFWFBPUlRfU1lNQk9MX0dQTChhbXZkZWNfYW1mYmNf aGVhZF9zaXplKTsKPiAgCj4gLXUzMiBhbXZkZWNfYW0yMWNfc2l6ZSh1MzIgd2lkdGgsIHUzMiBo ZWlnaHQpCj4gK3UzMiBhbXZkZWNfYW1mYmNfc2l6ZSh1MzIgd2lkdGgsIHUzMiBoZWlnaHQsIHUz MiBpc18xMGJpdCwgdTMyIHVzZV9tbXUpCj4gIHsKPiAtCXJldHVybiBBTElHTihhbXZkZWNfYW0y MWNfYm9keV9zaXplKHdpZHRoLCBoZWlnaHQpICsKPiAtCQkgICAgIGFtdmRlY19hbTIxY19oZWFk X3NpemUod2lkdGgsIGhlaWdodCksIFNaXzY0Syk7Cj4gKwlyZXR1cm4gQUxJR04oYW12ZGVjX2Ft ZmJjX2JvZHlfc2l6ZSh3aWR0aCwgaGVpZ2h0LCBpc18xMGJpdCwgdXNlX21tdSkgKwo+ICsJCSAg ICAgYW12ZGVjX2FtZmJjX2hlYWRfc2l6ZSh3aWR0aCwgaGVpZ2h0KSwgU1pfNjRLKTsKPiAgfQo+ IC1FWFBPUlRfU1lNQk9MX0dQTChhbXZkZWNfYW0yMWNfc2l6ZSk7Cj4gK0VYUE9SVF9TWU1CT0xf R1BMKGFtdmRlY19hbWZiY19zaXplKTsKPiAgCj4gIHN0YXRpYyBpbnQgY2FudmFzX2FsbG9jKHN0 cnVjdCBhbXZkZWNfc2Vzc2lvbiAqc2VzcywgdTggKmNhbnZhc19pZCkKPiAgewo+IEBAIC00NDAs NyArNDQ4LDcgQEAgdm9pZCBhbXZkZWNfc2V0X3Bhcl9mcm9tX2RhcihzdHJ1Y3QgYW12ZGVjX3Nl c3Npb24gKnNlc3MsCj4gIEVYUE9SVF9TWU1CT0xfR1BMKGFtdmRlY19zZXRfcGFyX2Zyb21fZGFy KTsKPiAgCj4gIHZvaWQgYW12ZGVjX3NyY19jaGFuZ2Uoc3RydWN0IGFtdmRlY19zZXNzaW9uICpz ZXNzLCB1MzIgd2lkdGgsCj4gLQkJICAgICAgIHUzMiBoZWlnaHQsIHUzMiBkcGJfc2l6ZSkKPiAr CQkgICAgICAgdTMyIGhlaWdodCwgdTMyIGRwYl9zaXplLCB1MzIgYml0ZGVwdGgpCj4gIHsKPiAg CXN0YXRpYyBjb25zdCBzdHJ1Y3QgdjRsMl9ldmVudCBldiA9IHsKPiAgCQkudHlwZSA9IFY0TDJf RVZFTlRfU09VUkNFX0NIQU5HRSwKPiBAQCAtNDQ4LDI1ICs0NTYsMjcgQEAgdm9pZCBhbXZkZWNf c3JjX2NoYW5nZShzdHJ1Y3QgYW12ZGVjX3Nlc3Npb24gKnNlc3MsIHUzMiB3aWR0aCwKPiAgCj4g IAl2NGwyX2N0cmxfc19jdHJsKHNlc3MtPmN0cmxfbWluX2J1Zl9jYXB0dXJlLCBkcGJfc2l6ZSk7 Cj4gIAo+ICsJc2Vzcy0+Yml0ZGVwdGggPSBiaXRkZXB0aDsKPiArCj4gIAkvKgo+ICAJICogQ2hl Y2sgaWYgdGhlIGNhcHR1cmUgcXVldWUgaXMgYWxyZWFkeSBjb25maWd1cmVkIHdlbGwgZm9yIG91 cgo+IC0JICogdXNlY2FzZS4gSWYgc28sIGtlZXAgZGVjb2Rpbmcgd2l0aCBpdCBhbmQgZG8gbm90 IHNlbmQgdGhlIGV2ZW50Cj4gKwkgKiB1c2VjYXNlLiBJZiBzbywga2VlcCBkZWNvZGluZyB3aXRo IGl0Lgo+ICAJICovCj4gIAlpZiAoc2Vzcy0+c3RyZWFtb25fY2FwICYmCj4gIAkgICAgc2Vzcy0+ d2lkdGggPT0gd2lkdGggJiYKPiAgCSAgICBzZXNzLT5oZWlnaHQgPT0gaGVpZ2h0ICYmCj4gIAkg ICAgZHBiX3NpemUgPD0gc2Vzcy0+bnVtX2RzdF9idWZzKSB7Cj4gIAkJc2Vzcy0+Zm10X291dC0+ Y29kZWNfb3BzLT5yZXN1bWUoc2Vzcyk7Cj4gLQkJcmV0dXJuOwo+ICsJfSBlbHNlIHsKPiArCQlz ZXNzLT5zdGF0dXMgPSBTVEFUVVNfTkVFRFNfUkVTVU1FOwo+ICsJCXNlc3MtPmNoYW5nZWRfZm9y bWF0ID0gMDsKPiAgCX0KPiAgCj4gLQlzZXNzLT5jaGFuZ2VkX2Zvcm1hdCA9IDA7Cj4gIAlzZXNz LT53aWR0aCA9IHdpZHRoOwo+ICAJc2Vzcy0+aGVpZ2h0ID0gaGVpZ2h0Owo+IC0Jc2Vzcy0+c3Rh dHVzID0gU1RBVFVTX05FRURTX1JFU1VNRTsKPiAgCj4gLQlkZXZfZGJnKHNlc3MtPmNvcmUtPmRl diwgIlJlcy4gY2hhbmdlZCAoJXV4JXUpLCBEUEIgc2l6ZSAldVxuIiwKPiAtCQl3aWR0aCwgaGVp Z2h0LCBkcGJfc2l6ZSk7Cj4gKwlkZXZfZGJnKHNlc3MtPmNvcmUtPmRldiwgIlJlcy4gY2hhbmdl ZCAoJXV4JXUpLCBEUEIgJXUsIGJpdGRlcHRoICV1XG4iLAo+ICsJCXdpZHRoLCBoZWlnaHQsIGRw Yl9zaXplLCBiaXRkZXB0aCk7Cj4gIAl2NGwyX2V2ZW50X3F1ZXVlX2ZoKCZzZXNzLT5maCwgJmV2 KTsKPiAgfQo+ICBFWFBPUlRfU1lNQk9MX0dQTChhbXZkZWNfc3JjX2NoYW5nZSk7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9tZXNvbi92ZGVjL3ZkZWNfaGVscGVycy5oIGIv ZHJpdmVycy9zdGFnaW5nL21lZGlhL21lc29uL3ZkZWMvdmRlY19oZWxwZXJzLmgKPiBpbmRleCA0 YmYzZTYxZDA4MWIuLjFhNzExNjc5ZDI2YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcv bWVkaWEvbWVzb24vdmRlYy92ZGVjX2hlbHBlcnMuaAo+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9t ZWRpYS9tZXNvbi92ZGVjL3ZkZWNfaGVscGVycy5oCj4gQEAgLTI3LDkgKzI3LDEwIEBAIHZvaWQg YW12ZGVjX2NsZWFyX2Rvc19iaXRzKHN0cnVjdCBhbXZkZWNfY29yZSAqY29yZSwgdTMyIHJlZywg dTMyIHZhbCk7Cj4gIHUzMiBhbXZkZWNfcmVhZF9wYXJzZXIoc3RydWN0IGFtdmRlY19jb3JlICpj b3JlLCB1MzIgcmVnKTsKPiAgdm9pZCBhbXZkZWNfd3JpdGVfcGFyc2VyKHN0cnVjdCBhbXZkZWNf Y29yZSAqY29yZSwgdTMyIHJlZywgdTMyIHZhbCk7Cj4gIAo+IC11MzIgYW12ZGVjX2FtMjFjX2Jv ZHlfc2l6ZSh1MzIgd2lkdGgsIHUzMiBoZWlnaHQpOwo+IC11MzIgYW12ZGVjX2FtMjFjX2hlYWRf c2l6ZSh1MzIgd2lkdGgsIHUzMiBoZWlnaHQpOwo+IC11MzIgYW12ZGVjX2FtMjFjX3NpemUodTMy IHdpZHRoLCB1MzIgaGVpZ2h0KTsKPiArLyogSGVscGVycyBmb3IgdGhlIEFtbG9naWMgY29tcHJl c3NlZCBmcmFtZWJ1ZmZlciBmb3JtYXQgKi8KPiArdTMyIGFtdmRlY19hbWZiY19ib2R5X3NpemUo dTMyIHdpZHRoLCB1MzIgaGVpZ2h0LCB1MzIgaXNfMTBiaXQsIHUzMiB1c2VfbW11KTsKPiArdTMy IGFtdmRlY19hbWZiY19oZWFkX3NpemUodTMyIHdpZHRoLCB1MzIgaGVpZ2h0KTsKPiArdTMyIGFt dmRlY19hbWZiY19zaXplKHUzMiB3aWR0aCwgdTMyIGhlaWdodCwgdTMyIGlzXzEwYml0LCB1MzIg dXNlX21tdSk7Cj4gIAo+ICAvKioKPiAgICogYW12ZGVjX2RzdF9idWZfZG9uZV9pZHgoKSAtIFNp Z25hbCB0aGF0IGEgYnVmZmVyIGlzIGRvbmUgZGVjb2RpbmcKPiBAQCAtNzcsOSArNzgsMTAgQEAg dm9pZCBhbXZkZWNfc2V0X3Bhcl9mcm9tX2RhcihzdHJ1Y3QgYW12ZGVjX3Nlc3Npb24gKnNlc3Ms Cj4gICAqIEB3aWR0aDogcGljdHVyZSB3aWR0aCBkZXRlY3RlZCBieSB0aGUgaGFyZHdhcmUKPiAg ICogQGhlaWdodDogcGljdHVyZSBoZWlnaHQgZGV0ZWN0ZWQgYnkgdGhlIGhhcmR3YXJlCj4gICAq IEBkcGJfc2l6ZTogRGVjb2RlZCBQaWN0dXJlIEJ1ZmZlciBzaXplICg9IGFtb3VudCBvZiBidWZm ZXJzIGZvciBkZWNvZGluZykKPiArICogQGJpdGRlcHRoOiBCaXQgZGVwdGggKHVzdWFsbHkgMTAg b3IgOCkgb2YgdGhlIGNvZGVkIGNvbnRlbnQKPiAgICovCj4gIHZvaWQgYW12ZGVjX3NyY19jaGFu Z2Uoc3RydWN0IGFtdmRlY19zZXNzaW9uICpzZXNzLCB1MzIgd2lkdGgsCj4gLQkJICAgICAgIHUz MiBoZWlnaHQsIHUzMiBkcGJfc2l6ZSk7Cj4gKwkJICAgICAgIHUzMiBoZWlnaHQsIHUzMiBkcGJf c2l6ZSwgdTMyIGJpdGRlcHRoKTsKPiAgCj4gIC8qKgo+ICAgKiBhbXZkZWNfYWJvcnQoKSAtIEFi b3J0IHRoZSBjdXJyZW50IGRlY29kaW5nIHNlc3Npb24KCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hbWxvZ2ljIG1haWxpbmcgbGlzdApsaW51 eC1hbWxvZ2ljQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcv bWFpbG1hbi9saXN0aW5mby9saW51eC1hbWxvZ2ljCg==