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 9B926C4167B for ; Mon, 27 Nov 2023 07:32:01 +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:References:MIME-Version:Message-ID:Date :Subject:In-Reply-To:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=HqkwVR36mVM091d7XAOPgPrlxrBsvqEBPG5n2fXpvyE=; b=QyVt7ka+k67Ej/ W8PjSKfb75cQAow59igz/+OFOfyW0gCw0aju1bHCGpLLf7jkKtZeFYZpdKVjfB5h5Raw8dYtLElaA qtsl2pnbrh0mrWmsv9NMdO9iAMV1xbgFc9U01BDJ1gCxvGkC/qg6rVcR2tu4Hm1xwviAASFBKiiz/ B3PvvhcpQhFkRF0j8v4VRbw1GHt3Hyk9VgFf2p6pw5DPSbha55078XS32E2A5H3jqu136XBoRdAmn BPUMZKO7uiiO7bNS56BOL0kj/rtlPyKRbYj3TMnCuwDFH7cHvvy/FNzsIWQkQ3klShp+3gWrspUTv cESMPIRhCvSxj01+pCMA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r7W5U-001k2x-1m; Mon, 27 Nov 2023 07:31:24 +0000 Received: from mailout2.samsung.com ([203.254.224.25]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r7W5O-001k1X-06 for linux-arm-kernel@lists.infradead.org; Mon, 27 Nov 2023 07:31:22 +0000 Received: from epcas5p4.samsung.com (unknown [182.195.41.42]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20231127073110epoutp02ba4e8cba942b3545d887ad2b20ab9922~bamXlePIE1656616566epoutp02l for ; Mon, 27 Nov 2023 07:31:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20231127073110epoutp02ba4e8cba942b3545d887ad2b20ab9922~bamXlePIE1656616566epoutp02l DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1701070270; bh=/O7GxW4+OPp3iltiCjpDj2tV+gbFG4XP70pxdSz2jC0=; h=From:To:Cc:In-Reply-To:Subject:Date:References:From; b=D9qSeFpqYh+2Xs5HD14tiNbi2vGyXLvG2QX8pi574ndpQKmjlYa6dV1euWLN0Cy4k hRk5N5YXnWh+dKU1Lr8nQm3IZG2DyPLXtpTUgkuI43m7CAeRdS7Ox5vWpbmslOOAnv eCs9xUt/O0MDKcQa6LZQe8TG5MuBYEcTU+UTgW6s= Received: from epsnrtp3.localdomain (unknown [182.195.42.164]) by epcas5p2.samsung.com (KnoxPortal) with ESMTP id 20231127073109epcas5p23dfbea83edaed63d60886d785aeadc5c~bamW-KVrZ0286702867epcas5p2R; Mon, 27 Nov 2023 07:31:09 +0000 (GMT) Received: from epsmges5p2new.samsung.com (unknown [182.195.38.174]) by epsnrtp3.localdomain (Postfix) with ESMTP id 4Sdy1l5Jrfz4x9QQ; Mon, 27 Nov 2023 07:31:07 +0000 (GMT) Received: from epcas5p2.samsung.com ( [182.195.41.40]) by epsmges5p2new.samsung.com (Symantec Messaging Gateway) with SMTP id 7C.95.10009.BB544656; Mon, 27 Nov 2023 16:31:07 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p4.samsung.com (KnoxPortal) with ESMTPA id 20231127070013epcas5p4e967991cccb1908ddf010ec13e758d27~baLWtSliN3195231952epcas5p4j; Mon, 27 Nov 2023 07:00:13 +0000 (GMT) Received: from epsmgmc1p1new.samsung.com (unknown [182.195.42.40]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20231127070013epsmtrp223d6e8de69b418d4a77ab914f7b707f4~baLWr9ppJ0136401364epsmtrp2N; Mon, 27 Nov 2023 07:00:13 +0000 (GMT) X-AuditID: b6c32a4a-ff1ff70000002719-f8-656445bbd991 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgmc1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id CE.9B.07368.D7E34656; Mon, 27 Nov 2023 16:00:13 +0900 (KST) Received: from FDSFTE308 (unknown [107.122.81.79]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20231127070009epsmtip2ee6eb1275ef80b60cbb58bcc79c204e8~baLTMJN6S2484424844epsmtip2u; Mon, 27 Nov 2023 07:00:09 +0000 (GMT) From: "Aakarsh Jain" To: "'Nicolas Dufresne'" , , , , Cc: , , , , , , , , , , , , , , , , , , "'Smitha T Murthy'" In-Reply-To: Subject: RE: [Patch v4 04/11] media: s5p-mfc: Add YV12 and I420 multiplanar format support Date: Mon, 27 Nov 2023 12:30:08 +0530 Message-ID: <0fe401da20ff$5e47e410$1ad7ac30$@samsung.com> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQLm4twfZx4yvmLB3iF6RxvUJv+HzQIF15oBArq90LwDAvliPK42GgUg Content-Language: en-in X-Brightmail-Tracker: H4sIAAAAAAAAA01Te0xTVxzmPtpbWAt3WMOBMYd3aoYGaBW6wwbOB+qNkkC2bDhHUpv2Dgil bdrilG2BqUzF4kYCQZpSmSBjWIYrlneXymMNjQ/wgeB4iwHF6KDo0Mm20paN/77f73zf+X7f 7+RwsMAyIoSTodAyaoVETrH98MbO8Hci2nbJGEHv6Q3Q9vQKDseMjWxYuTCFwtFKJw47GiwE NFmvo/BHu40Fz3VdZ8GmKxM4HLS1oLCvbBiHZ6bHMWi+38+C449S4K1WAxvqLllY8OyNX1FY 1zVMwAt3+1BYbX6FwjlHCwbPW+YJmG/tIuDxb6pY2wBtMpoQ+m7VHEa36IcJurL9IUqba0+x 6aH+djbdUJVLN0yfxuj87pc4feZyLUL/fbScoJ3mNbTjmZNI5h3IjEtnJDJGHcYopEpZhiIt ntr3kXinOEYkEEYIY+G7VJhCksXEUwmJyRG7M+SuDVBhhyTybFcrWaLRUFFb49TKbC0Tlq7U aOMpRiWTq6JVkRpJliZbkRapYLTvCQWCzTEu4sHM9NmJNpaq+xJ22GbZn4cMVWEFiC8HkNGg rsFBFCB+nECyDQEj1lHMU8whYKZmhO0pniPAftzMWpaMdZayPAdWBPT9ZvfqpxDQ/7wFWWKx ySgw6tC5WXyyGQHONoubhZE/4aCpy8ReYvmSe8Girtx97yoyFeRN33RjnFwPnBajaxIOh0fG gt4C8VKbR74Oesom8SWMkZtA9Q8z3hRh4MWDareUT+4GJ0pfsjycIND9QucOBMibvqD12gLq ESSAorkpwoNXgUf2y14cApxPrGwPloL75x96DeSgvr0Y9+APgO22AV+aDSPDQX1rlKf9Jihx /Ix6fP1B4V+TXiseaDYu4w3AMLTgXWMo6Lx4AfkeofQroulXRNOviKD/360CwWuRYEalyUpj NDGqzQrmi//eXKrMMiPuP7JxbzMyPvZHZAeCcpAOBHAwis+LnJUygTyZ5EgOo1aK1dlyRtOB xLjWXYSFrJYqXZ9MoRULo2MF0SKRKDp2i0hIBfFm8stlgWSaRMtkMoyKUS/rUI5vSB7KjzNK J6b25X7un3XQkBv8OMhQ3zApqFFBwXzkfu7tq5u+OnVCln9uC78ixqcwY/CVLjfY8uXItDF/ +56TtSMVXEoKkmdFGfNzg70V/HULobeuHr3z9cSaUGFeglNZ7HibE7SjYNTZNHHD5v+dL5MU f2/2NYPVssd/e89TxdpSbriP/1rQ09f4ccm3o5/dW59YpyldrU/ZZbUXGwYuvp+nj9HxdazC nHb7QNOxfxLqD+ew7swPl9T3c00B204uEqaBx6k48mHAofnf3wjX2X2Qs/RbkwF+z8R/Di0+ +IUbl3ikhtj6adGapHVPnOMHUnk8urB3ljy2s98ylZRyzVHG/YTCNekS4UZMrZH8C1vk5n2s BAAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpkleLIzCtJLcpLzFFi42LZdlhJXrfWLiXVYPEpVYsD7w+yWDyYt43N YvGP50wW9xd/ZrE4tHkru8WaveeYLJYfP8BqMf/IOVaL7QcfsVjcPLCTyeLizLssFn0vHjJb bHp8jdXi4atwi8u75rBZ9GzYymox4/w+Jou1R+6yWyy9fpHJYtmmP0wWn07tZLZYtPULu0Xr 3iPsFi2NS1gdJDzWzFvD6HF9ySdmj52z7rJ7LN7zkslj06pONo871/aweWxeUu+x+UU3s0fr 0V8sHn1bVjF6/Guay+7xeZOcx6mvn9kDeKO4bFJSczLLUov07RK4Mu5sWsBWMHM5U8XJqVPZ Ghg3vWPsYuTkkBAwkXhweDprFyMXh5DAbkaJXfdusEAkZCT+tx1jh7CFJVb+e84OUfSUUeLX qylg3WwC+hL3T/WAdYsI7GGUWL59FxtIgllgN4vEgbuSEB3/GSW2zvgENpZTwEvib89cVhBb WCBK4sTFF2BxFgFVic9b5zF3MXJw8ApYSlzoigcJ8woISpyc+YQFYqa2xNObT+HsZQtfM0Nc pyDx8+kysJEiAm4S7dN/sULUiEsc/dnDPIFReBaSUbOQjJqFZNQsJC0LGFlWMUqmFhTnpucm GxYY5qWW6xUn5haX5qXrJefnbmIEpxItjR2M9+b/0zvEyMTBeIhRgoNZSYRX72NyqhBvSmJl VWpRfnxRaU5q8SFGaQ4WJXFewxmzU4QE0hNLUrNTUwtSi2CyTBycUg1MR95eiJe98l5d1nbO nQ7eLfPU/px4VCK/KbdX0dghJbFtdbdF/MaL+ROns2w20tqTcuS3K7fdTIX6dcePb/t9PWf9 0T+KX3Juihk5rEq1cb7N/NIn8pH7v2nntuxLsmZQztrnHFBr/5mdX2L+bJHjMbpbz+1n3rZ2 p1RC2cyUO+tFpqorzjLIMz9Q5LjTXvbIr+nH54cLPBHVTYsveOM0dylX3craW6x625SMpov4 N5wOXSvl4vMnWO2HtOSRD87ezl96Wr+zC0xseV527Fp/zkev5bFGbH8Df/dYHvhh0hyV5Wpy 8LfLFh6uhuCsmeFCLz5Jhc6x8NH4u156z0+HuBT3jUsrFPZ3PQms9rVWYinOSDTUYi4qTgQA SQo3qpQDAAA= X-CMS-MailID: 20231127070013epcas5p4e967991cccb1908ddf010ec13e758d27 X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20231025102243epcas5p1cdd0eb385d2381943d6d194eec3a569d References: <20231025102216.50480-1-aakarsh.jain@samsung.com> <20231025102216.50480-5-aakarsh.jain@samsung.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231126_233118_552078_1CD4D820 X-CRM114-Status: GOOD ( 10.28 ) X-BeenThere: linux-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgTmljb2xhcywKCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiBGcm9tOiBOaWNvbGFz IER1ZnJlc25lIDxuaWNvbGFzQG5kdWZyZXNuZS5jYT4KPiBTZW50OiAyMyBOb3ZlbWJlciAyMDIz IDIyOjU2Cj4gVG86IEFha2Fyc2ggSmFpbiA8YWFrYXJzaC5qYWluQHNhbXN1bmcuY29tPjsgbGlu dXgtYXJtLQo+IGtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnOyBsaW51eC1tZWRpYUB2Z2VyLmtl cm5lbC5vcmc7IGxpbnV4LQo+IGtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IGRldmljZXRyZWVAdmdl ci5rZXJuZWwub3JnCj4gQ2M6IG0uc3p5cHJvd3NraUBzYW1zdW5nLmNvbTsgYW5kcnplai5oYWpk YUBpbnRlbC5jb207Cj4gbWNoZWhhYkBrZXJuZWwub3JnOyBodmVya3VpbC1jaXNjb0B4czRhbGwu bmw7Cj4ga3J6eXN6dG9mLmtvemxvd3NraStkdEBsaW5hcm8ub3JnOyBkaWxsb24ubWluZmVpQGdt YWlsLmNvbTsKPiBkYXZpZC5wbG93bWFuQHJhc3BiZXJyeXBpLmNvbTsgbWFyay5ydXRsYW5kQGFy bS5jb207Cj4gcm9iaCtkdEBrZXJuZWwub3JnOyBjb25vcitkdEBrZXJuZWwub3JnOyBsaW51eC1z YW1zdW5nLQo+IHNvY0B2Z2VyLmtlcm5lbC5vcmc7IGFuZGlAZXRlemlhbi5vcmc7IGdvc3QuZGV2 QHNhbXN1bmcuY29tOwo+IGFsaW0uYWtodGFyQHNhbXN1bmcuY29tOyBhc3dhbmkucmVkZHlAc2Ft c3VuZy5jb207Cj4gcGFua2FqLmR1YmV5QHNhbXN1bmcuY29tOyBhamF5a3VtYXIucnNAc2Ftc3Vu Zy5jb207IGxpbnV4LQo+IGZzZEB0ZXNsYS5jb207IFNtaXRoYSBUIE11cnRoeSA8c21pdGhhdG11 cnRoeUBnbWFpbC5jb20+Cj4gU3ViamVjdDogUmU6IFtQYXRjaCB2NCAwNC8xMV0gbWVkaWE6IHM1 cC1tZmM6IEFkZCBZVjEyIGFuZCBJNDIwIG11bHRpcGxhbmFyCj4gZm9ybWF0IHN1cHBvcnQKPiAK PiBMZSBtZXJjcmVkaSAyNSBvY3RvYnJlIDIwMjMgw6AgMTU6NTIgKzA1MzAsIEFha2Fyc2ggSmFp biBhIMOpY3JpdCA6DQo+ID4gWVYxMiBhbmQgSTQyMCBmb3JtYXQgKDMtcGxhbmUpIHN1cHBvcnQg aXMgYWRkZWQuIFN0cmlkZSBpbmZvcm1hdGlvbiBpcw0KPiA+IGFkZGVkIHRvIGFsbCBmb3JtYXRz IGFuZCBwbGFuZXMgc2luY2UgaXQgaXMgbmVjZXNzYXJ5IGZvciBZVjEyL0k0MjANCj4gPiB3aGlj aCBhcmUgZGlmZmVyZW50IGZyb20gd2lkdGguDQo+ID4NCj4gPiBDYzogbGludXgtZnNkQHRlc2xh LmNvbQ0KPiA+IFNpZ25lZC1vZmYtYnk6IFNtaXRoYSBUIE11cnRoeSA8c21pdGhhdG11cnRoeUBn bWFpbC5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogQWFrYXJzaCBKYWluIDxhYWthcnNoLmphaW5A c2Ftc3VuZy5jb20+DQo+ID4gLS0tDQo+ID4gIC4uLi9wbGF0Zm9ybS9zYW1zdW5nL3M1cC1tZmMv cmVncy1tZmMtdjEyLmggICB8ICAgMiArDQo+ID4gIC4uLi9wbGF0Zm9ybS9zYW1zdW5nL3M1cC1t ZmMvcmVncy1tZmMtdjcuaCAgICB8ICAgMSArDQo+ID4gIC4uLi9wbGF0Zm9ybS9zYW1zdW5nL3M1 cC1tZmMvcmVncy1tZmMtdjguaCAgICB8ICAgMyArDQo+ID4gIC4uLi9wbGF0Zm9ybS9zYW1zdW5n L3M1cC1tZmMvczVwX21mY19jb21tb24uaCB8ICAgNCArDQo+ID4gIC4uLi9wbGF0Zm9ybS9zYW1z dW5nL3M1cC1tZmMvczVwX21mY19kZWMuYyAgICB8ICA0NSArKysrLQ0KPiA+ICAuLi4vcGxhdGZv cm0vc2Ftc3VuZy9zNXAtbWZjL3M1cF9tZmNfZW5jLmMgICAgfCAgODYgKysrKysrKy0tDQo+ID4g IC4uLi9wbGF0Zm9ybS9zYW1zdW5nL3M1cC1tZmMvczVwX21mY19vcHIuaCAgICB8ICAgNiArLQ0K PiA+ICAuLi4vcGxhdGZvcm0vc2Ftc3VuZy9zNXAtbWZjL3M1cF9tZmNfb3ByX3Y1LmMgfCAgMTIg Ky0NCj4gPiAuLi4vcGxhdGZvcm0vc2Ftc3VuZy9zNXAtbWZjL3M1cF9tZmNfb3ByX3Y2LmMgfCAx NjgNCj4gKysrKysrKysrKysrKysrLS0tDQo+ID4gIDkgZmlsZXMgY2hhbmdlZCwgMjgxIGluc2Vy dGlvbnMoKyksIDQ2IGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv bWVkaWEvcGxhdGZvcm0vc2Ftc3VuZy9zNXAtbWZjL3JlZ3MtbWZjLXYxMi5oDQo+ID4gYi9kcml2 ZXJzL21lZGlhL3BsYXRmb3JtL3NhbXN1bmcvczVwLW1mYy9yZWdzLW1mYy12MTIuaA0KPiA+IGlu ZGV4IDZjNjhhNDUwODJkMC4uNzA0NjRmNDdjMWY5IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMv bWVkaWEvcGxhdGZvcm0vc2Ftc3VuZy9zNXAtbWZjL3JlZ3MtbWZjLXYxMi5oDQo+ID4gKysrIGIv ZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zYW1zdW5nL3M1cC1tZmMvcmVncy1tZmMtdjEyLmgNCj4g PiBAQCAtMjYsNiArMjYsOCBAQA0KPiA+ICAjZGVmaW5lIE1GQ19WRVJTSU9OX1YxMgkJCTB4QzAN Cj4gPiAgI2RlZmluZSBNRkNfTlVNX1BPUlRTX1YxMgkJMQ0KPiA+ICAjZGVmaW5lIFM1UF9GSU1W X0NPREVDX1ZQOV9FTkMJCTI3DQo+ID4gKyNkZWZpbmUgTUZDX0NIUk9NQV9QQURfQllURVNfVjEy ICAgICAgICAyNTYNCj4gPiArI2RlZmluZSBTNVBfRklNVl9EX0FMSUdOX1BMQU5FX1NJWkVfVjEy IDI1Ng0KPiA+DQo+ID4gIC8qIEVuY29kZXIgYnVmZmVyIHNpemUgZm9yIE1GQ3YxMiAqLw0KPiA+ ICAjZGVmaW5lIEVOQ19WMTIwX0JBU0VfU0laRSh4LCB5KSBcDQo+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbWVkaWEvcGxhdGZvcm0vc2Ftc3VuZy9zNXAtbWZjL3JlZ3MtbWZjLXY3LmgNCj4gPiBi L2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc2Ftc3VuZy9zNXAtbWZjL3JlZ3MtbWZjLXY3LmgNCj4g PiBpbmRleCA0YTdhZGZkYWEzNTkuLjUwZjliZjA2MDNjMSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2 ZXJzL21lZGlhL3BsYXRmb3JtL3NhbXN1bmcvczVwLW1mYy9yZWdzLW1mYy12Ny5oDQo+ID4gKysr IGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zYW1zdW5nL3M1cC1tZmMvcmVncy1tZmMtdjcuaA0K PiA+IEBAIC0yNCw2ICsyNCw3IEBADQo+ID4NCj4gPiAgI2RlZmluZSBTNVBfRklNVl9FX0VOQ09E RURfU09VUkNFX0ZJUlNUX0FERFJfVjcNCj4gCTB4ZmE3MA0KPiA+ICAjZGVmaW5lIFM1UF9GSU1W X0VfRU5DT0RFRF9TT1VSQ0VfU0VDT05EX0FERFJfVjcNCj4gCTB4ZmE3NA0KPiA+ICsjZGVmaW5l IFM1UF9GSU1WX0VfRU5DT0RFRF9TT1VSQ0VfVEhJUkRfQUREUl9WNw0KPiAJMHhmYTc4DQo+ID4N Cj4gPiAgI2RlZmluZSBTNVBfRklNVl9FX1ZQOF9PUFRJT05TX1Y3CQkJMHhmZGIwDQo+ID4gICNk ZWZpbmUgUzVQX0ZJTVZfRV9WUDhfRklMVEVSX09QVElPTlNfVjcJCTB4ZmRiNA0KPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3NhbXN1bmcvczVwLW1mYy9yZWdzLW1mYy12 OC5oDQo+ID4gYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3NhbXN1bmcvczVwLW1mYy9yZWdzLW1m Yy12OC5oDQo+ID4gaW5kZXggMTYyZTNjN2U5MjBmLi4wZWY5ZWIyZGZmMjIgMTAwNjQ0DQo+ID4g LS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zYW1zdW5nL3M1cC1tZmMvcmVncy1tZmMtdjgu aA0KPiA+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc2Ftc3VuZy9zNXAtbWZjL3JlZ3Mt bWZjLXY4LmgNCj4gPiBAQCAtMTcsMTMgKzE3LDE2IEBADQo+ID4gICNkZWZpbmUgUzVQX0ZJTVZf RF9NSU5fU0NSQVRDSF9CVUZGRVJfU0laRV9WOAkweGYxMDgNCj4gPiAgI2RlZmluZSBTNVBfRklN Vl9EX0ZJUlNUX1BMQU5FX0RQQl9TSVpFX1Y4CTB4ZjE0NA0KPiA+ICAjZGVmaW5lIFM1UF9GSU1W X0RfU0VDT05EX1BMQU5FX0RQQl9TSVpFX1Y4CTB4ZjE0OA0KPiA+ICsjZGVmaW5lIFM1UF9GSU1W X0RfVEhJUkRfUExBTkVfRFBCX1NJWkVfVjgJMHhmMTRDDQo+ID4gICNkZWZpbmUgUzVQX0ZJTVZf RF9NVl9CVUZGRVJfU0laRV9WOAkJMHhmMTUwDQo+ID4NCj4gPiAgI2RlZmluZSBTNVBfRklNVl9E X0ZJUlNUX1BMQU5FX0RQQl9TVFJJREVfU0laRV9WOAkweGYxMzgNCj4gPiAgI2RlZmluZSBTNVBf RklNVl9EX1NFQ09ORF9QTEFORV9EUEJfU1RSSURFX1NJWkVfVjgNCj4gCTB4ZjEzYw0KPiA+ICsj ZGVmaW5lIFM1UF9GSU1WX0RfVEhJUkRfUExBTkVfRFBCX1NUUklERV9TSVpFX1Y4DQo+IAkweGYx NDANCj4gPg0KPiA+ICAjZGVmaW5lIFM1UF9GSU1WX0RfRklSU1RfUExBTkVfRFBCX1Y4CQkweGYx NjANCj4gPiAgI2RlZmluZSBTNVBfRklNVl9EX1NFQ09ORF9QTEFORV9EUEJfVjgJCTB4ZjI2MA0K PiA+ICsjZGVmaW5lIFM1UF9GSU1WX0RfVEhJUkRfUExBTkVfRFBCX1Y4CQkweGYzNjANCj4gPiAg I2RlZmluZSBTNVBfRklNVl9EX01WX0JVRkZFUl9WOAkJCTB4ZjQ2MA0KPiA+DQo+ID4gICNkZWZp bmUgUzVQX0ZJTVZfRF9OVU1fTVZfVjgJCQkweGYxMzQNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS9zYW1zdW5nL3M1cC1tZmMvczVwX21mY19jb21tb24uaA0KPiA+IGIv ZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zYW1zdW5nL3M1cC1tZmMvczVwX21mY19jb21tb24uaA0K PiA+IGluZGV4IGRkMmU5Zjc3MDRhYi4uOWEzOWNjY2ZlMDAyIDEwMDY0NA0KPiA+IC0tLSBhL2Ry aXZlcnMvbWVkaWEvcGxhdGZvcm0vc2Ftc3VuZy9zNXAtbWZjL3M1cF9tZmNfY29tbW9uLmgNCj4g PiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3NhbXN1bmcvczVwLW1mYy9zNXBfbWZjX2Nv bW1vbi5oDQo+ID4gQEAgLTU2LDYgKzU2LDcgQEANCj4gPiAgI2RlZmluZSBNRkNfTk9fSU5TVEFO Q0VfU0VUCS0xDQo+ID4gICNkZWZpbmUgTUZDX0VOQ19DQVBfUExBTkVfQ09VTlQJMQ0KPiA+ICAj ZGVmaW5lIE1GQ19FTkNfT1VUX1BMQU5FX0NPVU5UCTINCj4gPiArI2RlZmluZSBWQjJfTUFYX1BM QU5FX0NPVU5UCTMNCj4gPiAgI2RlZmluZSBTVFVGRl9CWVRFCQk0DQo+ID4gICNkZWZpbmUgTUZD X01BWF9DVFJMUwkJMTI4DQo+ID4NCj4gPiBAQCAtMTgxLDYgKzE4Miw3IEBAIHN0cnVjdCBzNXBf bWZjX2J1ZiB7DQo+ID4gIAkJc3RydWN0IHsNCj4gPiAgCQkJc2l6ZV90IGx1bWE7DQo+ID4gIAkJ CXNpemVfdCBjaHJvbWE7DQo+ID4gKwkJCXNpemVfdCBjaHJvbWFfMTsNCj4gPiAgCQl9IHJhdzsN Cj4gPiAgCQlzaXplX3Qgc3RyZWFtOw0KPiA+ICAJfSBjb29raWU7DQo+ID4gQEAgLTY1Nyw2ICs2 NTksNyBAQCBzdHJ1Y3QgczVwX21mY19jdHggew0KPiA+DQo+ID4gIAlpbnQgbHVtYV9zaXplOw0K PiA+ICAJaW50IGNocm9tYV9zaXplOw0KPiA+ICsJaW50IGNocm9tYV9zaXplXzE7DQo+ID4gIAlp bnQgbXZfc2l6ZTsNCj4gPg0KPiA+ICAJdW5zaWduZWQgbG9uZyBjb25zdW1lZF9zdHJlYW07DQo+ ID4gQEAgLTcyMiw2ICs3MjUsNyBAQCBzdHJ1Y3QgczVwX21mY19jdHggew0KPiA+ICAJc2l6ZV90 IHNjcmF0Y2hfYnVmX3NpemU7DQo+ID4gIAlpbnQgaXNfMTBiaXQ7DQo+ID4gIAlpbnQgaXNfNDIy Ow0KPiA+ICsJaW50IHN0cmlkZVtWQjJfTUFYX1BMQU5FX0NPVU5UXTsNCj4gPiAgfTsNCj4gPg0K PiA+ICAvKg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3NhbXN1bmcv czVwLW1mYy9zNXBfbWZjX2RlYy5jDQo+ID4gYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3NhbXN1 bmcvczVwLW1mYy9zNXBfbWZjX2RlYy5jDQo+ID4gaW5kZXggZTIxOWNiY2Q4NmQ1Li4zMTdmNzk2 ZmZmYTEgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zYW1zdW5nL3M1 cC1tZmMvczVwX21mY19kZWMuYw0KPiA+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc2Ft c3VuZy9zNXAtbWZjL3M1cF9tZmNfZGVjLmMNCj4gPiBAQCAtNTYsNiArNTYsMjAgQEAgc3RhdGlj IHN0cnVjdCBzNXBfbWZjX2ZtdCBmb3JtYXRzW10gPSB7DQo+ID4gIAkJLm51bV9wbGFuZXMJPSAy LA0KPiA+ICAJCS52ZXJzaW9ucwk9IE1GQ19WNlBMVVNfQklUUywNCj4gPiAgCX0sDQo+ID4gKwl7 DQo+ID4gKwkJLmZvdXJjYyAgICAgICAgID0gVjRMMl9QSVhfRk1UX1lVVjQyME0sDQo+ID4gKwkJ LmNvZGVjX21vZGUgICAgID0gUzVQX01GQ19DT0RFQ19OT05FLA0KPiA+ICsJCS50eXBlICAgICAg ICAgICA9IE1GQ19GTVRfUkFXLA0KPiA+ICsJCS5udW1fcGxhbmVzICAgICA9IDMsDQo+ID4gKwkJ LnZlcnNpb25zICAgICAgID0gTUZDX1YxMl9CSVQsDQo+ID4gKwl9LA0KPiA+ICsJew0KPiA+ICsJ CS5mb3VyY2MgICAgICAgICA9IFY0TDJfUElYX0ZNVF9ZVlU0MjBNLA0KPiA+ICsJCS5jb2RlY19t b2RlICAgICA9IFM1UF9NRkNfQ09ERUNfTk9ORSwNCj4gPiArCQkudHlwZSAgICAgICAgICAgPSBN RkNfRk1UX1JBVywNCj4gPiArCQkubnVtX3BsYW5lcyAgICAgPSAzLA0KPiA+ICsJCS52ZXJzaW9u cyAgICAgICA9IE1GQ19WMTJfQklUDQo+ID4gKwl9LA0KPiA+ICAJew0KPiA+ICAJCS5mb3VyY2MJ CT0gVjRMMl9QSVhfRk1UX0gyNjQsDQo+ID4gIAkJLmNvZGVjX21vZGUJPSBTNVBfTUZDX0NPREVD X0gyNjRfREVDLA0KPiA+IEBAIC0zNTksMTAgKzM3MywxNSBAQCBzdGF0aWMgaW50IHZpZGlvY19n X2ZtdChzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwNCj4gc3RydWN0IHY0bDJfZm9ybWF0 ICpmKQ0KPiA+ICAJCS8qIFNldCBwaXhlbGZvcm1hdCB0byB0aGUgZm9ybWF0IGluIHdoaWNoIE1G Qw0KPiA+ICAJCSAgIG91dHB1dHMgdGhlIGRlY29kZWQgZnJhbWUgKi8NCj4gPiAgCQlwaXhfbXAt PnBpeGVsZm9ybWF0ID0gY3R4LT5kc3RfZm10LT5mb3VyY2M7DQo+ID4gLQkJcGl4X21wLT5wbGFu ZV9mbXRbMF0uYnl0ZXNwZXJsaW5lID0gY3R4LT5idWZfd2lkdGg7DQo+ID4gKwkJcGl4X21wLT5w bGFuZV9mbXRbMF0uYnl0ZXNwZXJsaW5lID0gY3R4LT5zdHJpZGVbMF07DQo+ID4gIAkJcGl4X21w LT5wbGFuZV9mbXRbMF0uc2l6ZWltYWdlID0gY3R4LT5sdW1hX3NpemU7DQo+ID4gLQkJcGl4X21w LT5wbGFuZV9mbXRbMV0uYnl0ZXNwZXJsaW5lID0gY3R4LT5idWZfd2lkdGg7DQo+ID4gKwkJcGl4 X21wLT5wbGFuZV9mbXRbMV0uYnl0ZXNwZXJsaW5lID0gY3R4LT5zdHJpZGVbMV07DQo+ID4gIAkJ cGl4X21wLT5wbGFuZV9mbXRbMV0uc2l6ZWltYWdlID0gY3R4LT5jaHJvbWFfc2l6ZTsNCj4gPiAr CQlpZiAoY3R4LT5kc3RfZm10LT5mb3VyY2MgPT0gVjRMMl9QSVhfRk1UX1lVVjQyME0gfHwNCj4g PiArCQkJCWN0eC0+ZHN0X2ZtdC0+Zm91cmNjID09DQo+IFY0TDJfUElYX0ZNVF9ZVlU0MjBNKSB7 DQo+ID4gKwkJCXBpeF9tcC0+cGxhbmVfZm10WzJdLmJ5dGVzcGVybGluZSA9IGN0eC0+c3RyaWRl WzJdOw0KPiA+ICsJCQlwaXhfbXAtPnBsYW5lX2ZtdFsyXS5zaXplaW1hZ2UgPSBjdHgtDQo+ID5j aHJvbWFfc2l6ZV8xOw0KPiA+ICsJCX0NCj4gPiAgCX0gZWxzZSBpZiAoZi0+dHlwZSA9PSBWNEwy X0JVRl9UWVBFX1ZJREVPX09VVFBVVF9NUExBTkUpIHsNCj4gPiAgCQkvKiBUaGlzIGlzIHJ1biBv biBPVVRQVVQNCj4gPiAgCQkgICBUaGUgYnVmZmVyIGNvbnRhaW5zIGNvbXByZXNzZWQgaW1hZ2Ug QEAgLTkzNyw2ICs5NTYsOQ0KPiBAQCBzdGF0aWMNCj4gPiBpbnQgczVwX21mY19xdWV1ZV9zZXR1 cChzdHJ1Y3QgdmIyX3F1ZXVlICp2cSwNCj4gPiAgCQkgICB2cS0+dHlwZSA9PSBWNEwyX0JVRl9U WVBFX1ZJREVPX0NBUFRVUkVfTVBMQU5FKSB7DQo+ID4gIAkJLyogT3V0cHV0IHBsYW5lIGNvdW50 IGlzIDIgLSBvbmUgZm9yIFkgYW5kIG9uZSBmb3IgQ2JDciAqLw0KPiA+ICAJCSpwbGFuZV9jb3Vu dCA9IDI7DQo+ID4gKwkJaWYgKGN0eC0+ZHN0X2ZtdC0+Zm91cmNjID09IFY0TDJfUElYX0ZNVF9Z VVY0MjBNIHx8DQo+ID4gKwkJCQljdHgtPmRzdF9mbXQtPmZvdXJjYyA9PQ0KPiBWNEwyX1BJWF9G TVRfWVZVNDIwTSkNCj4gPiArCQkJKnBsYW5lX2NvdW50ID0gMzsNCj4gDQo+IEkgZG9uJ3QgdXN1 YWxseSBpbnRlcmZlcmUsIHRoaXMgaXMgeW91ciBkcml2ZXIgdG8gbWFpbnRhaW4sIGJ1dCB0aGlz IGJlY29tZXMNCj4gaG9ycmlibHkgbWVzc3kuIEhhdmUgeW91IGNvbnNpZGVyIGRlLWhhcmRjb2Rp bmcgYSBsaXR0bGUgYW5kIGVuY2Fwc3VsYXRlIHBlcg0KPiBIVyBmb3JtYXQgZGV0YWlscyBpbnRv IGEgQyBzdHJ1Y3R1cmUgPyBEcml2ZXJzIHRoZXNlIGRheXMgdHJ5IHRvIG1ha2Ugc3VyZSBvZg0K PiB2NGwyLSBjb21tb24gbGlicmFyeSwgd2hpY2ggYXMgYSBtYXR0ZXIgb2YgZmFjdCBrbm93cyB0 aGF0IFlVVjQyME0gYW5kDQo+IFlWVTQyME0gaGF2ZSAzIHBsYWNlcywgc28gdGhhdCB5b3UgZG9u J3QgaGF2ZSB0byBkdXBsaWNhdGUgaXQgaW4geW91ciBkcml2ZXIuDQo+IA0KPiByZWdhcmRzLA0K PiBOaWNvbGFzDQoNClRoYW5rcyBmb3IgcG9pbnRpbmcgb3V0Lg0KV2UgY291bGQgaGF2ZSBkb25l IGl0IGluIHRoaXMgd2F5ICcgKnBsYW5lX2NvdW50ID0gY3R4LT5kc3RfZm10LT5udW1fcGxhbmVz JyBhbHNvLg0KQW55d2F5LCB3aWxsIG1ha2UgdXNlIG9mICcgdjRsMi0gY29tbW9uIGxpYnJhcnkg JyBmb3IgZ2V0dGluZyB0aGUgcGxhbmVzIGNvdW50IGhlcmUgaW4gbmV4dCBzZXJpZXMuDQoNClRo YW5rcyBmb3IgdGhlIHJldmlldy4NCj4gDQo+ID4gIAkJLyogU2V0dXAgYnVmZmVyIGNvdW50ICov DQo+ID4gIAkJaWYgKCpidWZfY291bnQgPCBjdHgtPnBiX2NvdW50KQ0KPiA+ICAJCQkqYnVmX2Nv dW50ID0gY3R4LT5wYl9jb3VudDsNCj4gPiBAQCAtOTU1LDEyICs5NzcsMTcgQEAgc3RhdGljIGlu dCBzNXBfbWZjX3F1ZXVlX3NldHVwKHN0cnVjdA0KPiB2YjJfcXVldWUgKnZxLA0KPiA+ICAJICAg IHZxLT50eXBlID09IFY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRV9NUExBTkUpIHsNCj4gPiAg CQlwc2l6ZVswXSA9IGN0eC0+bHVtYV9zaXplOw0KPiA+ICAJCXBzaXplWzFdID0gY3R4LT5jaHJv bWFfc2l6ZTsNCj4gPiAtDQo+ID4gKwkJaWYgKGN0eC0+ZHN0X2ZtdC0+Zm91cmNjID09IFY0TDJf UElYX0ZNVF9ZVVY0MjBNIHx8DQo+ID4gKwkJCQljdHgtPmRzdF9mbXQtPmZvdXJjYyA9PQ0KPiBW NEwyX1BJWF9GTVRfWVZVNDIwTSkNCj4gPiArCQkJcHNpemVbMl0gPSBjdHgtPmNocm9tYV9zaXpl XzE7DQo+ID4gIAkJaWYgKElTX01GQ1Y2X1BMVVMoZGV2KSkNCj4gPiAgCQkJYWxsb2NfZGV2c1sw XSA9IGN0eC0+ZGV2LT5tZW1fZGV2W0JBTktfTF9DVFhdOw0KPiA+ICAJCWVsc2UNCj4gPiAgCQkJ YWxsb2NfZGV2c1swXSA9IGN0eC0+ZGV2LT5tZW1fZGV2W0JBTktfUl9DVFhdOw0KPiA+ICAJCWFs bG9jX2RldnNbMV0gPSBjdHgtPmRldi0+bWVtX2RldltCQU5LX0xfQ1RYXTsNCj4gPiArCQlpZiAo Y3R4LT5kc3RfZm10LT5mb3VyY2MgPT0gVjRMMl9QSVhfRk1UX1lVVjQyME0gfHwNCj4gPiArCQkJ CWN0eC0+ZHN0X2ZtdC0+Zm91cmNjID09DQo+IFY0TDJfUElYX0ZNVF9ZVlU0MjBNKQ0KPiA+ICsJ CQlhbGxvY19kZXZzWzJdID0gY3R4LT5kZXYtPm1lbV9kZXZbQkFOS19MX0NUWF07DQo+ID4gIAl9 IGVsc2UgaWYgKHZxLT50eXBlID09IFY0TDJfQlVGX1RZUEVfVklERU9fT1VUUFVUX01QTEFORSAm Jg0KPiA+ICAJCSAgIGN0eC0+c3RhdGUgPT0gTUZDSU5TVF9JTklUKSB7DQo+ID4gIAkJcHNpemVb MF0gPSBjdHgtPmRlY19zcmNfYnVmX3NpemU7DQo+ID4gQEAgLTk5NCwxMiArMTAyMSwyNCBAQCBz dGF0aWMgaW50IHM1cF9tZmNfYnVmX2luaXQoc3RydWN0IHZiMl9idWZmZXINCj4gKnZiKQ0KPiA+ ICAJCQltZmNfZXJyKCJQbGFuZSBidWZmZXIgKENBUFRVUkUpIGlzIHRvbyBzbWFsbFxuIik7DQo+ ID4gIAkJCXJldHVybiAtRUlOVkFMOw0KPiA+ICAJCX0NCj4gPiArCQlpZiAoY3R4LT5kc3RfZm10 LT5mb3VyY2MgPT0gVjRMMl9QSVhfRk1UX1lVVjQyME0gfHwNCj4gPiArCQkJCWN0eC0+ZHN0X2Zt dC0+Zm91cmNjID09DQo+IFY0TDJfUElYX0ZNVF9ZVlU0MjBNKSB7DQo+ID4gKwkJCWlmICh2YjJf cGxhbmVfc2l6ZSh2YiwgMikgPCBjdHgtPmNocm9tYV9zaXplXzEpIHsNCj4gPiArCQkJCW1mY19l cnIoIlBsYW5lIGJ1ZmZlciAoQ0FQVFVSRSkgaXMgdG9vDQo+IHNtYWxsXG4iKTsNCj4gPiArCQkJ CXJldHVybiAtRUlOVkFMOw0KPiA+ICsJCQl9DQo+ID4gKwkJfQ0KPiA+ICAJCWkgPSB2Yi0+aW5k ZXg7DQo+ID4gIAkJY3R4LT5kc3RfYnVmc1tpXS5iID0gdmJ1ZjsNCj4gPiAgCQljdHgtPmRzdF9i dWZzW2ldLmNvb2tpZS5yYXcubHVtYSA9DQo+ID4NCj4gCXZiMl9kbWFfY29udGlnX3BsYW5lX2Rt YV9hZGRyKHZiLCAwKTsNCj4gPiAgCQljdHgtPmRzdF9idWZzW2ldLmNvb2tpZS5yYXcuY2hyb21h ID0NCj4gPg0KPiAJdmIyX2RtYV9jb250aWdfcGxhbmVfZG1hX2FkZHIodmIsIDEpOw0KPiA+ICsJ CWlmIChjdHgtPmRzdF9mbXQtPmZvdXJjYyA9PSBWNEwyX1BJWF9GTVRfWVVWNDIwTSB8fA0KPiA+ ICsJCQkJY3R4LT5kc3RfZm10LT5mb3VyY2MgPT0NCj4gVjRMMl9QSVhfRk1UX1lWVTQyME0pIHsN Cj4gPiArCQkJY3R4LT5kc3RfYnVmc1tpXS5jb29raWUucmF3LmNocm9tYV8xID0NCj4gPiArDQo+ IAl2YjJfZG1hX2NvbnRpZ19wbGFuZV9kbWFfYWRkcih2YiwgMik7DQo+ID4gKwkJfQ0KPiA+ICAJ CWN0eC0+ZHN0X2J1ZnNfY250Kys7DQo+ID4gIAl9IGVsc2UgaWYgKHZxLT50eXBlID09IFY0TDJf QlVGX1RZUEVfVklERU9fT1VUUFVUX01QTEFORSkgew0KPiA+ICAJCWlmIChJU19FUlJfT1JfTlVM TChFUlJfUFRSKA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3NhbXN1 bmcvczVwLW1mYy9zNXBfbWZjX2VuYy5jDQo+ID4gYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Nh bXN1bmcvczVwLW1mYy9zNXBfbWZjX2VuYy5jDQo+ID4gaW5kZXggZTRkNmU3YzExN2I1Li4wZWVj MDRlYjNlZjMgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zYW1zdW5n L3M1cC1tZmMvczVwX21mY19lbmMuYw0KPiA+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0v c2Ftc3VuZy9zNXAtbWZjL3M1cF9tZmNfZW5jLmMNCj4gPiBAQCAtNTksNiArNTksMjAgQEAgc3Rh dGljIHN0cnVjdCBzNXBfbWZjX2ZtdCBmb3JtYXRzW10gPSB7DQo+ID4gIAkJLm51bV9wbGFuZXMJ PSAyLA0KPiA+ICAJCS52ZXJzaW9ucwk9IE1GQ19WNlBMVVNfQklUUywNCj4gPiAgCX0sDQo+ID4g Kwl7DQo+ID4gKwkJLmZvdXJjYyAgICAgICAgID0gVjRMMl9QSVhfRk1UX1lVVjQyME0sDQo+ID4g KwkJLmNvZGVjX21vZGUgICAgID0gUzVQX01GQ19DT0RFQ19OT05FLA0KPiA+ICsJCS50eXBlICAg ICAgICAgICA9IE1GQ19GTVRfUkFXLA0KPiA+ICsJCS5udW1fcGxhbmVzICAgICA9IDMsDQo+ID4g KwkJLnZlcnNpb25zICAgICAgID0gTUZDX1YxMl9CSVQsDQo+ID4gKwl9LA0KPiA+ICsJew0KPiA+ ICsJCS5mb3VyY2MgICAgICAgICA9IFY0TDJfUElYX0ZNVF9ZVlU0MjBNLA0KPiA+ICsJCS5jb2Rl Y19tb2RlICAgICA9IFM1UF9NRkNfQ09ERUNfTk9ORSwNCj4gPiArCQkudHlwZSAgICAgICAgICAg PSBNRkNfRk1UX1JBVywNCj4gPiArCQkubnVtX3BsYW5lcyAgICAgPSAzLA0KPiA+ICsJCS52ZXJz aW9ucyAgICAgICA9IE1GQ19WMTJfQklULA0KPiA+ICsJfSwNCj4gPiAgCXsNCj4gPiAgCQkuZm91 cmNjCQk9IFY0TDJfUElYX0ZNVF9IMjY0LA0KPiA+ICAJCS5jb2RlY19tb2RlCT0gUzVQX01GQ19D T0RFQ19IMjY0X0VOQywNCj4gPiBAQCAtMTE5MywxNCArMTIwNywyMCBAQCBzdGF0aWMgaW50IGVu Y19wcmVfZnJhbWVfc3RhcnQoc3RydWN0DQo+IHM1cF9tZmNfY3R4ICpjdHgpDQo+ID4gIAlzdHJ1 Y3QgczVwX21mY19kZXYgKmRldiA9IGN0eC0+ZGV2Ow0KPiA+ICAJc3RydWN0IHM1cF9tZmNfYnVm ICpkc3RfbWI7DQo+ID4gIAlzdHJ1Y3QgczVwX21mY19idWYgKnNyY19tYjsNCj4gPiAtCXVuc2ln bmVkIGxvbmcgc3JjX3lfYWRkciwgc3JjX2NfYWRkciwgZHN0X2FkZHI7DQo+ID4gKwl1bnNpZ25l ZCBsb25nIHNyY195X2FkZHIsIHNyY19jX2FkZHIsIHNyY19jXzFfYWRkciwgZHN0X2FkZHI7DQo+ ID4gIAl1bnNpZ25lZCBpbnQgZHN0X3NpemU7DQo+ID4NCj4gPiAgCXNyY19tYiA9IGxpc3RfZW50 cnkoY3R4LT5zcmNfcXVldWUubmV4dCwgc3RydWN0IHM1cF9tZmNfYnVmLCBsaXN0KTsNCj4gPiAg CXNyY195X2FkZHIgPSB2YjJfZG1hX2NvbnRpZ19wbGFuZV9kbWFfYWRkcigmc3JjX21iLT5iLQ0K PiA+dmIyX2J1ZiwgMCk7DQo+ID4gIAlzcmNfY19hZGRyID0gdmIyX2RtYV9jb250aWdfcGxhbmVf ZG1hX2FkZHIoJnNyY19tYi0+Yi0NCj4gPnZiMl9idWYsIDEpOw0KPiA+ICsJaWYgKGN0eC0+c3Jj X2ZtdC0+Zm91cmNjID09IFY0TDJfUElYX0ZNVF9ZVVY0MjBNIHx8DQo+ID4gKwkJCWN0eC0+c3Jj X2ZtdC0+Zm91cmNjID09IFY0TDJfUElYX0ZNVF9ZVlU0MjBNKQ0KPiA+ICsJCXNyY19jXzFfYWRk ciA9DQo+ID4gKwkJCXZiMl9kbWFfY29udGlnX3BsYW5lX2RtYV9hZGRyKCZzcmNfbWItPmItDQo+ ID52YjJfYnVmLCAyKTsNCj4gPiArCWVsc2UNCj4gPiArCQlzcmNfY18xX2FkZHIgPSAwOw0KPiA+ ICAJczVwX21mY19od19jYWxsKGRldi0+bWZjX29wcywgc2V0X2VuY19mcmFtZV9idWZmZXIsIGN0 eCwNCj4gPiAtCQkJCQkJCXNyY195X2FkZHIsDQo+IHNyY19jX2FkZHIpOw0KPiA+ICsJCQkJCXNy Y195X2FkZHIsIHNyY19jX2FkZHIsDQo+IHNyY19jXzFfYWRkcik7DQo+ID4NCj4gPiAgCWRzdF9t YiA9IGxpc3RfZW50cnkoY3R4LT5kc3RfcXVldWUubmV4dCwgc3RydWN0IHM1cF9tZmNfYnVmLCBs aXN0KTsNCj4gPiAgCWRzdF9hZGRyID0gdmIyX2RtYV9jb250aWdfcGxhbmVfZG1hX2FkZHIoJmRz dF9tYi0+Yi0NCj4gPnZiMl9idWYsIDApOyBAQA0KPiA+IC0xMjE1LDggKzEyMzUsOCBAQCBzdGF0 aWMgaW50IGVuY19wb3N0X2ZyYW1lX3N0YXJ0KHN0cnVjdCBzNXBfbWZjX2N0eA0KPiA+ICpjdHgp ICB7DQo+ID4gIAlzdHJ1Y3QgczVwX21mY19kZXYgKmRldiA9IGN0eC0+ZGV2Ow0KPiA+ICAJc3Ry dWN0IHM1cF9tZmNfYnVmICptYl9lbnRyeTsNCj4gPiAtCXVuc2lnbmVkIGxvbmcgZW5jX3lfYWRk ciA9IDAsIGVuY19jX2FkZHIgPSAwOw0KPiA+IC0JdW5zaWduZWQgbG9uZyBtYl95X2FkZHIsIG1i X2NfYWRkcjsNCj4gPiArCXVuc2lnbmVkIGxvbmcgZW5jX3lfYWRkciA9IDAsIGVuY19jX2FkZHIg PSAwLCBlbmNfY18xX2FkZHIgPSAwOw0KPiA+ICsJdW5zaWduZWQgbG9uZyBtYl95X2FkZHIsIG1i X2NfYWRkciwgbWJfY18xX2FkZHI7DQo+ID4gIAlpbnQgc2xpY2VfdHlwZTsNCj4gPiAgCXVuc2ln bmVkIGludCBzdHJtX3NpemU7DQo+ID4gIAlib29sIHNyY19yZWFkeTsNCj4gPiBAQCAtMTIyOSwx NCArMTI0OSwyMSBAQCBzdGF0aWMgaW50IGVuY19wb3N0X2ZyYW1lX3N0YXJ0KHN0cnVjdA0KPiBz NXBfbWZjX2N0eCAqY3R4KQ0KPiA+ICAJCSAgbWZjX3JlYWQoZGV2LCBTNVBfRklNVl9FTkNfU0lf UElDX0NOVCkpOw0KPiA+ICAJaWYgKHNsaWNlX3R5cGUgPj0gMCkgew0KPiA+ICAJCXM1cF9tZmNf aHdfY2FsbChkZXYtPm1mY19vcHMsIGdldF9lbmNfZnJhbWVfYnVmZmVyLA0KPiBjdHgsDQo+ID4g LQkJCQkmZW5jX3lfYWRkciwgJmVuY19jX2FkZHIpOw0KPiA+ICsJCQkJJmVuY195X2FkZHIsICZl bmNfY19hZGRyLA0KPiAmZW5jX2NfMV9hZGRyKTsNCj4gPiAgCQlsaXN0X2Zvcl9lYWNoX2VudHJ5 KG1iX2VudHJ5LCAmY3R4LT5zcmNfcXVldWUsIGxpc3QpIHsNCj4gPiAgCQkJbWJfeV9hZGRyID0g dmIyX2RtYV9jb250aWdfcGxhbmVfZG1hX2FkZHIoDQo+ID4gIAkJCQkJJm1iX2VudHJ5LT5iLT52 YjJfYnVmLCAwKTsNCj4gPiAgCQkJbWJfY19hZGRyID0gdmIyX2RtYV9jb250aWdfcGxhbmVfZG1h X2FkZHIoDQo+ID4gIAkJCQkJJm1iX2VudHJ5LT5iLT52YjJfYnVmLCAxKTsNCj4gPiAtCQkJaWYg KChlbmNfeV9hZGRyID09IG1iX3lfYWRkcikgJiYNCj4gPiAtCQkJCQkJKGVuY19jX2FkZHIgPT0g bWJfY19hZGRyKSkNCj4gew0KPiA+ICsJCQlpZiAoY3R4LT5zcmNfZm10LT5mb3VyY2MgPT0NCj4g VjRMMl9QSVhfRk1UX1lVVjQyME0gfHwNCj4gPiArCQkJCWN0eC0+c3JjX2ZtdC0+Zm91cmNjID09 DQo+IFY0TDJfUElYX0ZNVF9ZVlU0MjBNKQ0KPiA+ICsJCQkJbWJfY18xX2FkZHIgPQ0KPiB2YjJf ZG1hX2NvbnRpZ19wbGFuZV9kbWFfYWRkcg0KPiA+ICsJCQkJCQkoJm1iX2VudHJ5LT5iLT52YjJf YnVmLA0KPiAyKTsNCj4gPiArCQkJZWxzZQ0KPiA+ICsJCQkJbWJfY18xX2FkZHIgPSAwOw0KPiA+ ICsJCQlpZiAoKGVuY195X2FkZHIgPT0gbWJfeV9hZGRyKQ0KPiA+ICsJCQkJCSYmIChlbmNfY19h ZGRyID09IG1iX2NfYWRkcikNCj4gPiArCQkJCQkmJiAoZW5jX2NfMV9hZGRyID09DQo+IG1iX2Nf MV9hZGRyKSkgew0KPiA+ICAJCQkJbGlzdF9kZWwoJm1iX2VudHJ5LT5saXN0KTsNCj4gPiAgCQkJ CWN0eC0+c3JjX3F1ZXVlX2NudC0tOw0KPiA+ICAJCQkJdmIyX2J1ZmZlcl9kb25lKCZtYl9lbnRy eS0+Yi0+dmIyX2J1ZiwNCj4gPiBAQCAtMTI0OSw4ICsxMjc2LDE1IEBAIHN0YXRpYyBpbnQgZW5j X3Bvc3RfZnJhbWVfc3RhcnQoc3RydWN0DQo+IHM1cF9tZmNfY3R4ICpjdHgpDQo+ID4gIAkJCQkJ Jm1iX2VudHJ5LT5iLT52YjJfYnVmLCAwKTsNCj4gPiAgCQkJbWJfY19hZGRyID0gdmIyX2RtYV9j b250aWdfcGxhbmVfZG1hX2FkZHIoDQo+ID4gIAkJCQkJJm1iX2VudHJ5LT5iLT52YjJfYnVmLCAx KTsNCj4gPiAtCQkJaWYgKChlbmNfeV9hZGRyID09IG1iX3lfYWRkcikgJiYNCj4gPiAtCQkJCQkJ KGVuY19jX2FkZHIgPT0gbWJfY19hZGRyKSkNCj4gew0KPiA+ICsJCQlpZiAoY3R4LT5zcmNfZm10 LT5mb3VyY2MgPT0NCj4gVjRMMl9QSVhfRk1UX1lVVjQyME0gfHwNCj4gPiArCQkJCWN0eC0+c3Jj X2ZtdC0+Zm91cmNjID09DQo+IFY0TDJfUElYX0ZNVF9ZVlU0MjBNKQ0KPiA+ICsJCQkJbWJfY18x X2FkZHIgPQ0KPiB2YjJfZG1hX2NvbnRpZ19wbGFuZV9kbWFfYWRkcigNCj4gPiArCQkJCQkJJm1i X2VudHJ5LT5iLT52YjJfYnVmLCAyKTsNCj4gPiArCQkJZWxzZQ0KPiA+ICsJCQkJbWJfY18xX2Fk ZHIgPSAwOw0KPiA+ICsJCQlpZiAoKGVuY195X2FkZHIgPT0gbWJfeV9hZGRyKQ0KPiA+ICsJCQkJ CSYmIChlbmNfY19hZGRyID09IG1iX2NfYWRkcikNCj4gPiArCQkJCQkmJiAoZW5jX2NfMV9hZGRy ID09DQo+IG1iX2NfMV9hZGRyKSkgew0KPiA+ICAJCQkJbGlzdF9kZWwoJm1iX2VudHJ5LT5saXN0 KTsNCj4gPiAgCQkJCWN0eC0+cmVmX3F1ZXVlX2NudC0tOw0KPiA+ICAJCQkJdmIyX2J1ZmZlcl9k b25lKCZtYl9lbnRyeS0+Yi0+dmIyX2J1ZiwNCj4gPiBAQCAtMTM4MSwxMCArMTQxNSwxNSBAQCBz dGF0aWMgaW50IHZpZGlvY19nX2ZtdChzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZA0KPiAqcHJpdiwg c3RydWN0IHY0bDJfZm9ybWF0ICpmKQ0KPiA+ICAJCXBpeF9mbXRfbXAtPnBpeGVsZm9ybWF0ID0g Y3R4LT5zcmNfZm10LT5mb3VyY2M7DQo+ID4gIAkJcGl4X2ZtdF9tcC0+bnVtX3BsYW5lcyA9IGN0 eC0+c3JjX2ZtdC0+bnVtX3BsYW5lczsNCj4gPg0KPiA+IC0JCXBpeF9mbXRfbXAtPnBsYW5lX2Zt dFswXS5ieXRlc3BlcmxpbmUgPSBjdHgtPmJ1Zl93aWR0aDsNCj4gPiArCQlwaXhfZm10X21wLT5w bGFuZV9mbXRbMF0uYnl0ZXNwZXJsaW5lID0gY3R4LT5zdHJpZGVbMF07DQo+ID4gIAkJcGl4X2Zt dF9tcC0+cGxhbmVfZm10WzBdLnNpemVpbWFnZSA9IGN0eC0+bHVtYV9zaXplOw0KPiA+IC0JCXBp eF9mbXRfbXAtPnBsYW5lX2ZtdFsxXS5ieXRlc3BlcmxpbmUgPSBjdHgtPmJ1Zl93aWR0aDsNCj4g PiArCQlwaXhfZm10X21wLT5wbGFuZV9mbXRbMV0uYnl0ZXNwZXJsaW5lID0gY3R4LT5zdHJpZGVb MV07DQo+ID4gIAkJcGl4X2ZtdF9tcC0+cGxhbmVfZm10WzFdLnNpemVpbWFnZSA9IGN0eC0+Y2hy b21hX3NpemU7DQo+ID4gKwkJaWYgKGN0eC0+c3JjX2ZtdC0+Zm91cmNjID09IFY0TDJfUElYX0ZN VF9ZVVY0MjBNIHx8DQo+ID4gKwkJCQljdHgtPnNyY19mbXQtPmZvdXJjYyA9PQ0KPiBWNEwyX1BJ WF9GTVRfWVZVNDIwTSkgew0KPiA+ICsJCQlwaXhfZm10X21wLT5wbGFuZV9mbXRbMl0uYnl0ZXNw ZXJsaW5lID0gY3R4LQ0KPiA+c3RyaWRlWzJdOw0KPiA+ICsJCQlwaXhfZm10X21wLT5wbGFuZV9m bXRbMl0uc2l6ZWltYWdlID0gY3R4LQ0KPiA+Y2hyb21hX3NpemVfMTsNCj4gPiArCQl9DQo+ID4g IAl9IGVsc2Ugew0KPiA+ICAJCW1mY19lcnIoImludmFsaWQgYnVmIHR5cGVcbiIpOw0KPiA+ICAJ CXJldHVybiAtRUlOVkFMOw0KPiA+IEBAIC0xNDY4LDkgKzE1MDcsMTQgQEAgc3RhdGljIGludCB2 aWRpb2Nfc19mbXQoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQNCj4gPiAqcHJpdiwgc3RydWN0IHY0 bDJfZm9ybWF0ICpmKQ0KPiA+DQo+ID4gIAkJczVwX21mY19od19jYWxsKGRldi0+bWZjX29wcywg ZW5jX2NhbGNfc3JjX3NpemUsIGN0eCk7DQo+ID4gIAkJcGl4X2ZtdF9tcC0+cGxhbmVfZm10WzBd LnNpemVpbWFnZSA9IGN0eC0+bHVtYV9zaXplOw0KPiA+IC0JCXBpeF9mbXRfbXAtPnBsYW5lX2Zt dFswXS5ieXRlc3BlcmxpbmUgPSBjdHgtPmJ1Zl93aWR0aDsNCj4gPiArCQlwaXhfZm10X21wLT5w bGFuZV9mbXRbMF0uYnl0ZXNwZXJsaW5lID0gY3R4LT5zdHJpZGVbMF07DQo+ID4gIAkJcGl4X2Zt dF9tcC0+cGxhbmVfZm10WzFdLnNpemVpbWFnZSA9IGN0eC0+Y2hyb21hX3NpemU7DQo+ID4gLQkJ cGl4X2ZtdF9tcC0+cGxhbmVfZm10WzFdLmJ5dGVzcGVybGluZSA9IGN0eC0+YnVmX3dpZHRoOw0K PiA+ICsJCXBpeF9mbXRfbXAtPnBsYW5lX2ZtdFsxXS5ieXRlc3BlcmxpbmUgPSBjdHgtPnN0cmlk ZVsxXTsNCj4gPiArCQlpZiAoY3R4LT5zcmNfZm10LT5mb3VyY2MgPT0gVjRMMl9QSVhfRk1UX1lV VjQyME0gfHwNCj4gPiArCQkJCWN0eC0+c3JjX2ZtdC0+Zm91cmNjID09DQo+IFY0TDJfUElYX0ZN VF9ZVlU0MjBNKSB7DQo+ID4gKwkJCXBpeF9mbXRfbXAtPnBsYW5lX2ZtdFsyXS5ieXRlc3Blcmxp bmUgPSBjdHgtDQo+ID5zdHJpZGVbMl07DQo+ID4gKwkJCXBpeF9mbXRfbXAtPnBsYW5lX2ZtdFsy XS5zaXplaW1hZ2UgPSBjdHgtDQo+ID5jaHJvbWFfc2l6ZV8xOw0KPiA+ICsJCX0NCj4gPg0KPiA+ ICAJCWN0eC0+c3JjX2J1ZnNfY250ID0gMDsNCj4gPiAgCQljdHgtPm91dHB1dF9zdGF0ZSA9IFFV RVVFX0ZSRUU7DQo+ID4gQEAgLTI0MTQsMTAgKzI0NTgsMTYgQEAgc3RhdGljIGludCBzNXBfbWZj X3F1ZXVlX3NldHVwKHN0cnVjdA0KPiA+IHZiMl9xdWV1ZSAqdnEsDQo+ID4NCj4gPiAgCQlwc2l6 ZVswXSA9IGN0eC0+bHVtYV9zaXplOw0KPiA+ICAJCXBzaXplWzFdID0gY3R4LT5jaHJvbWFfc2l6 ZTsNCj4gPiArCQlpZiAoY3R4LT5zcmNfZm10LT5mb3VyY2MgPT0gVjRMMl9QSVhfRk1UX1lVVjQy ME0gfHwNCj4gPiArCQkJCWN0eC0+c3JjX2ZtdC0+Zm91cmNjID09DQo+IFY0TDJfUElYX0ZNVF9Z VlU0MjBNKQ0KPiA+ICsJCQlwc2l6ZVsyXSA9IGN0eC0+Y2hyb21hX3NpemVfMTsNCj4gPg0KPiA+ ICAJCWlmIChJU19NRkNWNl9QTFVTKGRldikpIHsNCj4gPiAgCQkJYWxsb2NfZGV2c1swXSA9IGN0 eC0+ZGV2LT5tZW1fZGV2W0JBTktfTF9DVFhdOw0KPiA+ICAJCQlhbGxvY19kZXZzWzFdID0gY3R4 LT5kZXYtPm1lbV9kZXZbQkFOS19MX0NUWF07DQo+ID4gKwkJCWlmIChjdHgtPnNyY19mbXQtPmZv dXJjYyA9PQ0KPiBWNEwyX1BJWF9GTVRfWVVWNDIwTSB8fA0KPiA+ICsJCQkJY3R4LT5zcmNfZm10 LT5mb3VyY2MgPT0NCj4gVjRMMl9QSVhfRk1UX1lWVTQyME0pDQo+ID4gKwkJCQlhbGxvY19kZXZz WzJdID0gY3R4LT5kZXYtDQo+ID5tZW1fZGV2W0JBTktfTF9DVFhdOw0KPiA+ICAJCX0gZWxzZSB7 DQo+ID4gIAkJCWFsbG9jX2RldnNbMF0gPSBjdHgtPmRldi0+bWVtX2RldltCQU5LX1JfQ1RYXTsN Cj4gPiAgCQkJYWxsb2NfZGV2c1sxXSA9IGN0eC0+ZGV2LT5tZW1fZGV2W0JBTktfUl9DVFhdOw0K PiBAQCAtMjQ1Niw2ICsyNTA2LDEwDQo+ID4gQEAgc3RhdGljIGludCBzNXBfbWZjX2J1Zl9pbml0 KHN0cnVjdCB2YjJfYnVmZmVyICp2YikNCj4gPg0KPiAJdmIyX2RtYV9jb250aWdfcGxhbmVfZG1h X2FkZHIodmIsIDApOw0KPiA+ICAJCWN0eC0+c3JjX2J1ZnNbaV0uY29va2llLnJhdy5jaHJvbWEg PQ0KPiA+DQo+IAl2YjJfZG1hX2NvbnRpZ19wbGFuZV9kbWFfYWRkcih2YiwgMSk7DQo+ID4gKwkJ aWYgKGN0eC0+c3JjX2ZtdC0+Zm91cmNjID09IFY0TDJfUElYX0ZNVF9ZVVY0MjBNIHx8DQo+ID4g KwkJCQljdHgtPnNyY19mbXQtPmZvdXJjYyA9PQ0KPiBWNEwyX1BJWF9GTVRfWVZVNDIwTSkNCj4g PiArCQkJY3R4LT5zcmNfYnVmc1tpXS5jb29raWUucmF3LmNocm9tYV8xID0NCj4gPiArDQo+IAl2 YjJfZG1hX2NvbnRpZ19wbGFuZV9kbWFfYWRkcih2YiwgMik7DQo+ID4gIAkJY3R4LT5zcmNfYnVm c19jbnQrKzsNCj4gPiAgCX0gZWxzZSB7DQo+ID4gIAkJbWZjX2VycigiaW52YWxpZCBxdWV1ZSB0 eXBlOiAlZFxuIiwgdnEtPnR5cGUpOyBAQCAtMjQ5Myw2DQo+ICsyNTQ3LDEyDQo+ID4gQEAgc3Rh dGljIGludCBzNXBfbWZjX2J1Zl9wcmVwYXJlKHN0cnVjdCB2YjJfYnVmZmVyICp2YikNCj4gPiAg CQkJbWZjX2VycigicGxhbmUgc2l6ZSBpcyB0b28gc21hbGwgZm9yIG91dHB1dFxuIik7DQo+ID4g IAkJCXJldHVybiAtRUlOVkFMOw0KPiA+ICAJCX0NCj4gPiArCQlpZiAoKGN0eC0+c3JjX2ZtdC0+ Zm91cmNjID09IFY0TDJfUElYX0ZNVF9ZVVY0MjBNIHx8DQo+ID4gKwkJICAgICBjdHgtPnNyY19m bXQtPmZvdXJjYyA9PSBWNEwyX1BJWF9GTVRfWVZVNDIwTSkgJiYNCj4gPiArCQkgICAgKHZiMl9w bGFuZV9zaXplKHZiLCAyKSA8IGN0eC0+Y2hyb21hX3NpemVfMSkpIHsNCj4gPiArCQkJbWZjX2Vy cigicGxhbmUgc2l6ZSBpcyB0b28gc21hbGwgZm9yIG91dHB1dFxuIik7DQo+ID4gKwkJCXJldHVy biAtRUlOVkFMOw0KPiA+ICsJCX0NCj4gPiAgCX0gZWxzZSB7DQo+ID4gIAkJbWZjX2VycigiaW52 YWxpZCBxdWV1ZSB0eXBlOiAlZFxuIiwgdnEtPnR5cGUpOw0KPiA+ICAJCXJldHVybiAtRUlOVkFM Ow0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3NhbXN1bmcvczVwLW1m Yy9zNXBfbWZjX29wci5oDQo+ID4gYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3NhbXN1bmcvczVw LW1mYy9zNXBfbWZjX29wci5oDQo+ID4gaW5kZXggODdhYzU2NzU2YTE2Li43YzVlODUxYzgxOTEg MTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zYW1zdW5nL3M1cC1tZmMv czVwX21mY19vcHIuaA0KPiA+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc2Ftc3VuZy9z NXAtbWZjL3M1cF9tZmNfb3ByLmgNCj4gPiBAQCAtMjkzLDkgKzI5MywxMSBAQCBzdHJ1Y3QgczVw X21mY19od19vcHMgew0KPiA+ICAJaW50ICgqc2V0X2VuY19zdHJlYW1fYnVmZmVyKShzdHJ1Y3Qg czVwX21mY19jdHggKmN0eCwNCj4gPiAgCQkJdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBp bnQgc2l6ZSk7DQo+ID4gIAl2b2lkICgqc2V0X2VuY19mcmFtZV9idWZmZXIpKHN0cnVjdCBzNXBf bWZjX2N0eCAqY3R4LA0KPiA+IC0JCQl1bnNpZ25lZCBsb25nIHlfYWRkciwgdW5zaWduZWQgbG9u ZyBjX2FkZHIpOw0KPiA+ICsJCQl1bnNpZ25lZCBsb25nIHlfYWRkciwgdW5zaWduZWQgbG9uZyBj X2FkZHIsDQo+ID4gKwkJCXVuc2lnbmVkIGxvbmcgY18xX2FkZHIpOw0KPiA+ICAJdm9pZCAoKmdl dF9lbmNfZnJhbWVfYnVmZmVyKShzdHJ1Y3QgczVwX21mY19jdHggKmN0eCwNCj4gPiAtCQkJdW5z aWduZWQgbG9uZyAqeV9hZGRyLCB1bnNpZ25lZCBsb25nICpjX2FkZHIpOw0KPiA+ICsJCQl1bnNp Z25lZCBsb25nICp5X2FkZHIsIHVuc2lnbmVkIGxvbmcgKmNfYWRkciwNCj4gPiArCQkJdW5zaWdu ZWQgbG9uZyAqY18xX2FkZHIpOw0KPiA+ICAJdm9pZCAoKnRyeV9ydW4pKHN0cnVjdCBzNXBfbWZj X2RldiAqZGV2KTsNCj4gPiAgCXZvaWQgKCpjbGVhcl9pbnRfZmxhZ3MpKHN0cnVjdCBzNXBfbWZj X2RldiAqZGV2KTsNCj4gPiAgCWludCAoKmdldF9kc3BsX3lfYWRyKShzdHJ1Y3QgczVwX21mY19k ZXYgKmRldik7IGRpZmYgLS1naXQNCj4gPiBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc2Ftc3Vu Zy9zNXAtbWZjL3M1cF9tZmNfb3ByX3Y1LmMNCj4gPiBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0v c2Ftc3VuZy9zNXAtbWZjL3M1cF9tZmNfb3ByX3Y1LmMNCj4gPiBpbmRleCAyOGEwNmRjMzQzZmQu LmZjZmFmMTI1YTVhMSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Nh bXN1bmcvczVwLW1mYy9zNXBfbWZjX29wcl92NS5jDQo+ID4gKysrIGIvZHJpdmVycy9tZWRpYS9w bGF0Zm9ybS9zYW1zdW5nL3M1cC1tZmMvczVwX21mY19vcHJfdjUuYw0KPiA+IEBAIC01MTYsNyAr NTE2LDggQEAgc3RhdGljIGludA0KPiBzNXBfbWZjX3NldF9lbmNfc3RyZWFtX2J1ZmZlcl92NShz dHJ1Y3QNCj4gPiBzNXBfbWZjX2N0eCAqY3R4LCAgfQ0KPiA+DQo+ID4gIHN0YXRpYyB2b2lkIHM1 cF9tZmNfc2V0X2VuY19mcmFtZV9idWZmZXJfdjUoc3RydWN0IHM1cF9tZmNfY3R4ICpjdHgsDQo+ ID4gLQkJdW5zaWduZWQgbG9uZyB5X2FkZHIsIHVuc2lnbmVkIGxvbmcgY19hZGRyKQ0KPiA+ICsJ CXVuc2lnbmVkIGxvbmcgeV9hZGRyLCB1bnNpZ25lZCBsb25nIGNfYWRkciwNCj4gPiArCQl1bnNp Z25lZCBsb25nIGNfMV9hZGRyKQ0KPiA+ICB7DQo+ID4gIAlzdHJ1Y3QgczVwX21mY19kZXYgKmRl diA9IGN0eC0+ZGV2Ow0KPiA+DQo+ID4gQEAgLTUyNSw3ICs1MjYsOCBAQCBzdGF0aWMgdm9pZA0K PiBzNXBfbWZjX3NldF9lbmNfZnJhbWVfYnVmZmVyX3Y1KHN0cnVjdA0KPiA+IHM1cF9tZmNfY3R4 ICpjdHgsICB9DQo+ID4NCj4gPiAgc3RhdGljIHZvaWQgczVwX21mY19nZXRfZW5jX2ZyYW1lX2J1 ZmZlcl92NShzdHJ1Y3QgczVwX21mY19jdHggKmN0eCwNCj4gPiAtCQl1bnNpZ25lZCBsb25nICp5 X2FkZHIsIHVuc2lnbmVkIGxvbmcgKmNfYWRkcikNCj4gPiArCQl1bnNpZ25lZCBsb25nICp5X2Fk ZHIsIHVuc2lnbmVkIGxvbmcgKmNfYWRkciwNCj4gPiArCQl1bnNpZ25lZCBsb25nICpjXzFfYWRk cikNCj4gPiAgew0KPiA+ICAJc3RydWN0IHM1cF9tZmNfZGV2ICpkZXYgPSBjdHgtPmRldjsNCj4g Pg0KPiA+IEBAIC0xMjEwLDcgKzEyMTIsNyBAQCBzdGF0aWMgaW50IHM1cF9tZmNfcnVuX2VuY19m cmFtZShzdHJ1Y3QNCj4gczVwX21mY19jdHggKmN0eCkNCj4gPiAgCWlmIChsaXN0X2VtcHR5KCZj dHgtPnNyY19xdWV1ZSkpIHsNCj4gPiAgCQkvKiBzZW5kIG51bGwgZnJhbWUgKi8NCj4gPiAgCQlz NXBfbWZjX3NldF9lbmNfZnJhbWVfYnVmZmVyX3Y1KGN0eCwgZGV2LQ0KPiA+ZG1hX2Jhc2VbQkFO S19SX0NUWF0sDQo+ID4gLQkJCQkJCWRldi0NCj4gPmRtYV9iYXNlW0JBTktfUl9DVFhdKTsNCj4g PiArCQkJCQkJZGV2LQ0KPiA+ZG1hX2Jhc2VbQkFOS19SX0NUWF0sIDApOw0KPiA+ICAJCXNyY19t YiA9IE5VTEw7DQo+ID4gIAl9IGVsc2Ugew0KPiA+ICAJCXNyY19tYiA9IGxpc3RfZW50cnkoY3R4 LT5zcmNfcXVldWUubmV4dCwgc3RydWN0DQo+IHM1cF9tZmNfYnVmLCBAQA0KPiA+IC0xMjIwLDcg KzEyMjIsNyBAQCBzdGF0aWMgaW50IHM1cF9tZmNfcnVuX2VuY19mcmFtZShzdHJ1Y3QgczVwX21m Y19jdHgNCj4gKmN0eCkNCj4gPiAgCQkJLyogc2VuZCBudWxsIGZyYW1lICovDQo+ID4gIAkJCXM1 cF9tZmNfc2V0X2VuY19mcmFtZV9idWZmZXJfdjUoY3R4LA0KPiA+ICAJCQkJCQlkZXYtDQo+ID5k bWFfYmFzZVtCQU5LX1JfQ1RYXSwNCj4gPiAtCQkJCQkJZGV2LQ0KPiA+ZG1hX2Jhc2VbQkFOS19S X0NUWF0pOw0KPiA+ICsJCQkJCQlkZXYtDQo+ID5kbWFfYmFzZVtCQU5LX1JfQ1RYXSwgMCk7DQo+ ID4gIAkJCWN0eC0+c3RhdGUgPSBNRkNJTlNUX0ZJTklTSElORzsNCj4gPiAgCQl9IGVsc2Ugew0K PiA+ICAJCQlzcmNfeV9hZGRyID0gdmIyX2RtYV9jb250aWdfcGxhbmVfZG1hX2FkZHIoDQo+IEBA IC0xMjI4LDcgKzEyMzAsNyBAQA0KPiA+IHN0YXRpYyBpbnQgczVwX21mY19ydW5fZW5jX2ZyYW1l KHN0cnVjdCBzNXBfbWZjX2N0eCAqY3R4KQ0KPiA+ICAJCQlzcmNfY19hZGRyID0gdmIyX2RtYV9j b250aWdfcGxhbmVfZG1hX2FkZHIoDQo+ID4gIAkJCQkJJnNyY19tYi0+Yi0+dmIyX2J1ZiwgMSk7 DQo+ID4gIAkJCXM1cF9tZmNfc2V0X2VuY19mcmFtZV9idWZmZXJfdjUoY3R4LCBzcmNfeV9hZGRy LA0KPiA+IC0JCQkJCQkJCXNyY19jX2FkZHIpOw0KPiA+ICsJCQkJCQkJCXNyY19jX2FkZHIsDQo+ IDApOw0KPiA+ICAJCQlpZiAoc3JjX21iLT5mbGFncyAmIE1GQ19CVUZfRkxBR19FT1MpDQo+ID4g IAkJCQljdHgtPnN0YXRlID0gTUZDSU5TVF9GSU5JU0hJTkc7DQo+ID4gIAkJfQ0KPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3NhbXN1bmcvczVwLW1mYy9zNXBfbWZjX29w cl92Ni5jDQo+ID4gYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3NhbXN1bmcvczVwLW1mYy9zNXBf bWZjX29wcl92Ni5jDQo+ID4gaW5kZXggZmIzZjA3MTg4MjFkLi5lNTc5Yzc2NWU5MDIgMTAwNjQ0 DQo+ID4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zYW1zdW5nL3M1cC1tZmMvczVwX21m Y19vcHJfdjYuYw0KPiA+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc2Ftc3VuZy9zNXAt bWZjL3M1cF9tZmNfb3ByX3Y2LmMNCj4gPiBAQCAtNDk0LDE2ICs0OTQsNDMgQEAgc3RhdGljIHZv aWQgczVwX21mY19kZWNfY2FsY19kcGJfc2l6ZV92NihzdHJ1Y3QNCj4gczVwX21mY19jdHggKmN0 eCkNCj4gPiAgCXN0cnVjdCBzNXBfbWZjX2RldiAqZGV2ID0gY3R4LT5kZXY7DQo+ID4gIAljdHgt PmJ1Zl93aWR0aCA9IEFMSUdOKGN0eC0+aW1nX3dpZHRoLA0KPiBTNVBfRklNVl9OVjEyTVRfSEFM SUdOX1Y2KTsNCj4gPiAgCWN0eC0+YnVmX2hlaWdodCA9IEFMSUdOKGN0eC0+aW1nX2hlaWdodCwN Cj4gUzVQX0ZJTVZfTlYxMk1UX1ZBTElHTl9WNik7DQo+ID4gKwljdHgtPmNocm9tYV9zaXplXzEg PSAwOw0KPiA+ICAJbWZjX2RlYnVnKDIsICJTRVEgRG9uZTogTW92aWUgZGltZW5zaW9ucyAlZHgl ZCxcbiINCj4gPiAgCQkJImJ1ZmZlciBkaW1lbnNpb25zOiAlZHglZFxuIiwgY3R4LT5pbWdfd2lk dGgsDQo+ID4gIAkJCWN0eC0+aW1nX2hlaWdodCwgY3R4LT5idWZfd2lkdGgsIGN0eC0+YnVmX2hl aWdodCk7DQo+ID4NCj4gPiAtCWN0eC0+bHVtYV9zaXplID0gY2FsY19wbGFuZShjdHgtPmltZ193 aWR0aCwgY3R4LT5pbWdfaGVpZ2h0KTsNCj4gPiAtCWN0eC0+Y2hyb21hX3NpemUgPSBjYWxjX3Bs YW5lKGN0eC0+aW1nX3dpZHRoLCAoY3R4LT5pbWdfaGVpZ2h0ID4+DQo+IDEpKTsNCj4gPiArCXN3 aXRjaCAoY3R4LT5kc3RfZm10LT5mb3VyY2MpIHsNCj4gPiArCWNhc2UgVjRMMl9QSVhfRk1UX05W MTJNOg0KPiA+ICsJY2FzZSBWNEwyX1BJWF9GTVRfTlYyMU06DQo+ID4gKwkJY3R4LT5zdHJpZGVb MF0gPSBBTElHTihjdHgtPmltZ193aWR0aCwNCj4gPiArCQkJCQlTNVBfRklNVl9OVjEyTVRfSEFM SUdOX1Y2KTsNCj4gPiArCQljdHgtPnN0cmlkZVsxXSA9IEFMSUdOKGN0eC0+aW1nX3dpZHRoLA0K PiA+ICsJCQkJCVM1UF9GSU1WX05WMTJNVF9IQUxJR05fVjYpOw0KPiA+ICsJCWN0eC0+bHVtYV9z aXplID0gY2FsY19wbGFuZShjdHgtPnN0cmlkZVswXSwgY3R4LT5pbWdfaGVpZ2h0KTsNCj4gPiAr CQljdHgtPmNocm9tYV9zaXplID0gY2FsY19wbGFuZShjdHgtPnN0cmlkZVsxXSwNCj4gPiArCQkJ CQkoY3R4LT5pbWdfaGVpZ2h0IC8gMikpOw0KPiA+ICsJCWJyZWFrOw0KPiA+ICsJY2FzZSBWNEwy X1BJWF9GTVRfWVVWNDIwTToNCj4gPiArCWNhc2UgVjRMMl9QSVhfRk1UX1lWVTQyME06DQo+ID4g KwkJY3R4LT5zdHJpZGVbMF0gPSBBTElHTihjdHgtPmltZ193aWR0aCwNCj4gPiArCQkJCQlTNVBf RklNVl9OVjEyTVRfSEFMSUdOX1Y2KTsNCj4gPiArCQljdHgtPnN0cmlkZVsxXSA9IEFMSUdOKGN0 eC0+aW1nX3dpZHRoIC8gMiwNCj4gPiArCQkJCQlTNVBfRklNVl9OVjEyTVRfSEFMSUdOX1Y2KTsN Cj4gPiArCQljdHgtPnN0cmlkZVsyXSA9IEFMSUdOKGN0eC0+aW1nX3dpZHRoIC8gMiwNCj4gPiAr CQkJCQlTNVBfRklNVl9OVjEyTVRfSEFMSUdOX1Y2KTsNCj4gPiArCQljdHgtPmx1bWFfc2l6ZSA9 IGNhbGNfcGxhbmUoY3R4LT5zdHJpZGVbMF0sIGN0eC0+aW1nX2hlaWdodCk7DQo+ID4gKwkJY3R4 LT5jaHJvbWFfc2l6ZSA9IGNhbGNfcGxhbmUoY3R4LT5zdHJpZGVbMV0sDQo+ID4gKwkJCQkJKGN0 eC0+aW1nX2hlaWdodCAvIDIpKTsNCj4gPiArCQljdHgtPmNocm9tYV9zaXplXzEgPSBjYWxjX3Bs YW5lKGN0eC0+c3RyaWRlWzJdLA0KPiA+ICsJCQkJCShjdHgtPmltZ19oZWlnaHQgLyAyKSk7DQo+ ID4gKwkJYnJlYWs7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICAJaWYgKElTX01GQ1Y4X1BMVVMoY3R4 LT5kZXYpKSB7DQo+ID4gIAkJLyogTUZDdjggbmVlZHMgYWRkaXRpb25hbCA2NCBieXRlcyBmb3Ig bHVtYSxjaHJvbWEgZHBiKi8NCj4gPiAgCQljdHgtPmx1bWFfc2l6ZSArPSBTNVBfRklNVl9EX0FM SUdOX1BMQU5FX1NJWkVfVjg7DQo+ID4gIAkJY3R4LT5jaHJvbWFfc2l6ZSArPSBTNVBfRklNVl9E X0FMSUdOX1BMQU5FX1NJWkVfVjg7DQo+ID4gKwkJY3R4LT5jaHJvbWFfc2l6ZV8xICs9DQo+IFM1 UF9GSU1WX0RfQUxJR05fUExBTkVfU0laRV9WODsNCj4gPiAgCX0NCj4gPg0KPiA+ICAJaWYgKGN0 eC0+Y29kZWNfbW9kZSA9PSBTNVBfTUZDX0NPREVDX0gyNjRfREVDIHx8IEBAIC01MzQsMTUNCj4g KzU2MSw1Mw0KPiA+IEBAIHN0YXRpYyB2b2lkIHM1cF9tZmNfZW5jX2NhbGNfc3JjX3NpemVfdjYo c3RydWN0IHM1cF9tZmNfY3R4ICpjdHgpDQo+ID4gIAltYl93aWR0aCA9IE1CX1dJRFRIKGN0eC0+ aW1nX3dpZHRoKTsNCj4gPiAgCW1iX2hlaWdodCA9IE1CX0hFSUdIVChjdHgtPmltZ19oZWlnaHQp Ow0KPiA+DQo+ID4gLQljdHgtPmJ1Zl93aWR0aCA9IEFMSUdOKGN0eC0+aW1nX3dpZHRoLA0KPiBT NVBfRklNVl9OVjEyTV9IQUxJR05fVjYpOw0KPiA+IC0JY3R4LT5sdW1hX3NpemUgPSBBTElHTigo bWJfd2lkdGggKiBtYl9oZWlnaHQpICogMjU2LCAyNTYpOw0KPiA+IC0JY3R4LT5jaHJvbWFfc2l6 ZSA9IEFMSUdOKChtYl93aWR0aCAqIG1iX2hlaWdodCkgKiAxMjgsIDI1Nik7DQo+ID4gLQ0KPiA+ IC0JLyogTUZDdjcgbmVlZHMgcGFkIGJ5dGVzIGZvciBMdW1hIGFuZCBDaHJvbWEgKi8NCj4gPiAt CWlmIChJU19NRkNWN19QTFVTKGN0eC0+ZGV2KSkgew0KPiA+ICsJaWYgKElTX01GQ1YxMihjdHgt PmRldikpIHsNCj4gPiArCQlzd2l0Y2ggKGN0eC0+c3JjX2ZtdC0+Zm91cmNjKSB7DQo+ID4gKwkJ Y2FzZSBWNEwyX1BJWF9GTVRfTlYxMk06DQo+ID4gKwkJY2FzZSBWNEwyX1BJWF9GTVRfTlYyMU06 DQo+ID4gKwkJCWN0eC0+c3RyaWRlWzBdID0gQUxJR04oY3R4LT5pbWdfd2lkdGgsDQo+ID4gKw0K PiAJUzVQX0ZJTVZfTlYxMk1fSEFMSUdOX1Y2KTsNCj4gPiArCQkJY3R4LT5zdHJpZGVbMV0gPSBB TElHTihjdHgtPmltZ193aWR0aCwNCj4gPiArDQo+IAlTNVBfRklNVl9OVjEyTV9IQUxJR05fVjYp Ow0KPiA+ICsJCQljdHgtPmx1bWFfc2l6ZSA9IGN0eC0+c3RyaWRlWzBdICoNCj4gPiArCQkJCQkJ QUxJR04oY3R4LT5pbWdfaGVpZ2h0LCAxNik7DQo+ID4gKwkJCWN0eC0+Y2hyb21hX3NpemUgPSAg Y3R4LT5zdHJpZGVbMF0gKg0KPiA+ICsJCQkJCQlBTElHTihjdHgtPmltZ19oZWlnaHQgLyAyLA0K PiAxNik7DQo+ID4gKwkJCWJyZWFrOw0KPiA+ICsJCWNhc2UgVjRMMl9QSVhfRk1UX1lVVjQyME06 DQo+ID4gKwkJY2FzZSBWNEwyX1BJWF9GTVRfWVZVNDIwTToNCj4gPiArCQkJY3R4LT5zdHJpZGVb MF0gPSBBTElHTihjdHgtPmltZ193aWR0aCwNCj4gPiArDQo+IAlTNVBfRklNVl9OVjEyTV9IQUxJ R05fVjYpOw0KPiA+ICsJCQljdHgtPnN0cmlkZVsxXSA9IEFMSUdOKGN0eC0+aW1nX3dpZHRoIC8g MiwNCj4gPiArDQo+IAlTNVBfRklNVl9OVjEyTV9IQUxJR05fVjYpOw0KPiA+ICsJCQljdHgtPnN0 cmlkZVsyXSA9IEFMSUdOKGN0eC0+aW1nX3dpZHRoIC8gMiwNCj4gPiArDQo+IAlTNVBfRklNVl9O VjEyTV9IQUxJR05fVjYpOw0KPiA+ICsJCQljdHgtPmx1bWFfc2l6ZSA9IGN0eC0+c3RyaWRlWzBd ICoNCj4gPiArCQkJCQkJQUxJR04oY3R4LT5pbWdfaGVpZ2h0LCAxNik7DQo+ID4gKwkJCWN0eC0+ Y2hyb21hX3NpemUgPSAgY3R4LT5zdHJpZGVbMV0gKg0KPiA+ICsJCQkJCQlBTElHTihjdHgtPmlt Z19oZWlnaHQgLyAyLA0KPiAxNik7DQo+ID4gKwkJCWN0eC0+Y2hyb21hX3NpemVfMSA9ICBjdHgt PnN0cmlkZVsyXSAqDQo+ID4gKwkJCQkJCUFMSUdOKGN0eC0+aW1nX2hlaWdodCAvIDIsDQo+IDE2 KTsNCj4gPiArCQkJYnJlYWs7DQo+ID4gKwkJfQ0KPiA+ICAJCWN0eC0+bHVtYV9zaXplICs9IE1G Q19MVU1BX1BBRF9CWVRFU19WNzsNCj4gPiAtCQljdHgtPmNocm9tYV9zaXplICs9IE1GQ19DSFJP TUFfUEFEX0JZVEVTX1Y3Ow0KPiA+ICsJCWN0eC0+Y2hyb21hX3NpemUgKz0gTUZDX0NIUk9NQV9Q QURfQllURVNfVjEyOw0KPiA+ICsJCWN0eC0+Y2hyb21hX3NpemVfMSArPSBNRkNfQ0hST01BX1BB RF9CWVRFU19WMTI7DQo+ID4gKwl9IGVsc2Ugew0KPiA+ICsJCWN0eC0+YnVmX3dpZHRoID0gQUxJ R04oY3R4LT5pbWdfd2lkdGgsDQo+ID4gKwkJCQkJUzVQX0ZJTVZfTlYxMk1fSEFMSUdOX1Y2KTsN Cj4gPiArCQljdHgtPnN0cmlkZVswXSA9IGN0eC0+YnVmX3dpZHRoOw0KPiA+ICsJCWN0eC0+c3Ry aWRlWzFdID0gY3R4LT5idWZfd2lkdGg7DQo+ID4gKwkJY3R4LT5sdW1hX3NpemUgPSBBTElHTigo bWJfd2lkdGggKiBtYl9oZWlnaHQpICogMjU2LA0KPiAyNTYpOw0KPiA+ICsJCWN0eC0+Y2hyb21h X3NpemUgPSBBTElHTigobWJfd2lkdGggKiBtYl9oZWlnaHQpICogMTI4LA0KPiAyNTYpOw0KPiA+ ICsJCWN0eC0+Y2hyb21hX3NpemVfMSA9IDA7DQo+ID4gKwkJLyogTUZDdjcgbmVlZHMgcGFkIGJ5 dGVzIGZvciBMdW1hIGFuZCBDaHJvbWEgKi8NCj4gPiArCQlpZiAoSVNfTUZDVjdfUExVUyhjdHgt PmRldikpIHsNCj4gPiArCQkJY3R4LT5sdW1hX3NpemUgKz0gTUZDX0xVTUFfUEFEX0JZVEVTX1Y3 Ow0KPiA+ICsJCQljdHgtPmNocm9tYV9zaXplICs9IE1GQ19MVU1BX1BBRF9CWVRFU19WNzsNCj4g PiArCQl9DQo+ID4gIAl9DQo+ID4gKw0KPiA+ICB9DQo+ID4NCj4gPiAgLyogU2V0IHJlZ2lzdGVy cyBmb3IgZGVjb2Rpbmcgc3RyZWFtIGJ1ZmZlciAqLyBAQCAtNTg4LDE1ICs2NTMsMjEgQEANCj4g PiBzdGF0aWMgaW50IHM1cF9tZmNfc2V0X2RlY19mcmFtZV9idWZmZXJfdjYoc3RydWN0IHM1cF9t ZmNfY3R4ICpjdHgpDQo+ID4gIAl3cml0ZWwoY3R4LT50b3RhbF9kcGJfY291bnQsIG1mY19yZWdz LT5kX251bV9kcGIpOw0KPiA+ICAJd3JpdGVsKGN0eC0+bHVtYV9zaXplLCBtZmNfcmVncy0+ZF9m aXJzdF9wbGFuZV9kcGJfc2l6ZSk7DQo+ID4gIAl3cml0ZWwoY3R4LT5jaHJvbWFfc2l6ZSwgbWZj X3JlZ3MtPmRfc2Vjb25kX3BsYW5lX2RwYl9zaXplKTsNCj4gPiAtDQo+ID4gKwlpZiAoY3R4LT5k c3RfZm10LT5mb3VyY2MgPT0gVjRMMl9QSVhfRk1UX1lVVjQyME0gfHwNCj4gPiArCQkJY3R4LT5k c3RfZm10LT5mb3VyY2MgPT0gVjRMMl9QSVhfRk1UX1lWVTQyME0pDQo+ID4gKwkJd3JpdGVsKGN0 eC0+Y2hyb21hX3NpemVfMSwgbWZjX3JlZ3MtDQo+ID5kX3RoaXJkX3BsYW5lX2RwYl9zaXplKTsN Cj4gPiAgCXdyaXRlbChidWZfYWRkcjEsIG1mY19yZWdzLT5kX3NjcmF0Y2hfYnVmZmVyX2FkZHIp Ow0KPiA+ICAJd3JpdGVsKGN0eC0+c2NyYXRjaF9idWZfc2l6ZSwgbWZjX3JlZ3MtPmRfc2NyYXRj aF9idWZmZXJfc2l6ZSk7DQo+ID4NCj4gPiAgCWlmIChJU19NRkNWOF9QTFVTKGRldikpIHsNCj4g PiAtCQl3cml0ZWwoY3R4LT5pbWdfd2lkdGgsDQo+ID4gKwkJd3JpdGVsKGN0eC0+c3RyaWRlWzBd LA0KPiA+ICAJCQltZmNfcmVncy0+ZF9maXJzdF9wbGFuZV9kcGJfc3RyaWRlX3NpemUpOw0KPiA+ IC0JCXdyaXRlbChjdHgtPmltZ193aWR0aCwNCj4gPiArCQl3cml0ZWwoY3R4LT5zdHJpZGVbMV0s DQo+ID4gIAkJCW1mY19yZWdzLT5kX3NlY29uZF9wbGFuZV9kcGJfc3RyaWRlX3NpemUpOw0KPiA+ ICsJCWlmIChjdHgtPmRzdF9mbXQtPmZvdXJjYyA9PSBWNEwyX1BJWF9GTVRfWVVWNDIwTSB8fA0K PiA+ICsJCQkJY3R4LT5kc3RfZm10LT5mb3VyY2MgPT0NCj4gVjRMMl9QSVhfRk1UX1lWVTQyME0p DQo+ID4gKwkJCXdyaXRlbChjdHgtPnN0cmlkZVsyXSwNCj4gPiArCQkJCW1mY19yZWdzLT5kX3Ro aXJkX3BsYW5lX2RwYl9zdHJpZGVfc2l6ZSk7DQo+ID4gIAl9DQo+ID4NCj4gPiAgCWJ1Zl9hZGRy MSArPSBjdHgtPnNjcmF0Y2hfYnVmX3NpemU7DQo+ID4gQEAgLTYyNSw2ICs2OTYsMTMgQEAgc3Rh dGljIGludA0KPiBzNXBfbWZjX3NldF9kZWNfZnJhbWVfYnVmZmVyX3Y2KHN0cnVjdCBzNXBfbWZj X2N0eCAqY3R4KQ0KPiA+ICAJCQkJCWN0eC0+ZHN0X2J1ZnNbaV0uY29va2llLnJhdy5jaHJvbWEp Ow0KPiA+ICAJCXdyaXRlbChjdHgtPmRzdF9idWZzW2ldLmNvb2tpZS5yYXcuY2hyb21hLA0KPiA+ ICAJCQkJbWZjX3JlZ3MtPmRfc2Vjb25kX3BsYW5lX2RwYiArIGkgKiA0KTsNCj4gPiArCQlpZiAo Y3R4LT5kc3RfZm10LT5mb3VyY2MgPT0gVjRMMl9QSVhfRk1UX1lVVjQyME0gfHwNCj4gPiArCQkJ CWN0eC0+ZHN0X2ZtdC0+Zm91cmNjID09DQo+IFY0TDJfUElYX0ZNVF9ZVlU0MjBNKSB7DQo+ID4g KwkJCW1mY19kZWJ1ZygyLCAiXHRDaHJvbWFfMSAlZDogJXp4XG4iLCBpLA0KPiA+ICsJCQkJCWN0 eC0NCj4gPmRzdF9idWZzW2ldLmNvb2tpZS5yYXcuY2hyb21hXzEpOw0KPiA+ICsJCQl3cml0ZWwo Y3R4LT5kc3RfYnVmc1tpXS5jb29raWUucmF3LmNocm9tYV8xLA0KPiA+ICsJCQkJCW1mY19yZWdz LT5kX3RoaXJkX3BsYW5lX2RwYiArIGkgKg0KPiA0KTsNCj4gPiArCQl9DQo+ID4gIAl9DQo+ID4g IAlpZiAoY3R4LT5jb2RlY19tb2RlID09IFM1UF9NRkNfQ09ERUNfSDI2NF9ERUMgfHwNCj4gPiAg CQkJY3R4LT5jb2RlY19tb2RlID09DQo+IFM1UF9NRkNfQ09ERUNfSDI2NF9NVkNfREVDIHx8IEBA IC02ODMsMjANCj4gPiArNzYxLDI0IEBAIHN0YXRpYyBpbnQgczVwX21mY19zZXRfZW5jX3N0cmVh bV9idWZmZXJfdjYoc3RydWN0DQo+ID4gczVwX21mY19jdHggKmN0eCwgIH0NCj4gPg0KPiA+ICBz dGF0aWMgdm9pZCBzNXBfbWZjX3NldF9lbmNfZnJhbWVfYnVmZmVyX3Y2KHN0cnVjdCBzNXBfbWZj X2N0eCAqY3R4LA0KPiA+IC0JCXVuc2lnbmVkIGxvbmcgeV9hZGRyLCB1bnNpZ25lZCBsb25nIGNf YWRkcikNCj4gPiArCQl1bnNpZ25lZCBsb25nIHlfYWRkciwgdW5zaWduZWQgbG9uZyBjX2FkZHIs DQo+ID4gKwkJdW5zaWduZWQgbG9uZyBjXzFfYWRkcikNCj4gPiAgew0KPiA+ICAJc3RydWN0IHM1 cF9tZmNfZGV2ICpkZXYgPSBjdHgtPmRldjsNCj4gPiAgCWNvbnN0IHN0cnVjdCBzNXBfbWZjX3Jl Z3MgKm1mY19yZWdzID0gZGV2LT5tZmNfcmVnczsNCj4gPg0KPiA+ICAJd3JpdGVsKHlfYWRkciwg bWZjX3JlZ3MtPmVfc291cmNlX2ZpcnN0X3BsYW5lX2FkZHIpOw0KPiA+ICAJd3JpdGVsKGNfYWRk ciwgbWZjX3JlZ3MtPmVfc291cmNlX3NlY29uZF9wbGFuZV9hZGRyKTsNCj4gPiArCXdyaXRlbChj XzFfYWRkciwgbWZjX3JlZ3MtPmVfc291cmNlX3RoaXJkX3BsYW5lX2FkZHIpOw0KPiA+DQo+ID4g IAltZmNfZGVidWcoMiwgImVuYyBzcmMgeSBidWYgYWRkcjogMHglMDhseFxuIiwgeV9hZGRyKTsN Cj4gPiAgCW1mY19kZWJ1ZygyLCAiZW5jIHNyYyBjIGJ1ZiBhZGRyOiAweCUwOGx4XG4iLCBjX2Fk ZHIpOw0KPiA+ICsJbWZjX2RlYnVnKDIsICJlbmMgc3JjIGNyIGJ1ZiBhZGRyOiAweCUwOGx4XG4i LCBjXzFfYWRkcik7DQo+ID4gIH0NCj4gPg0KPiA+ICBzdGF0aWMgdm9pZCBzNXBfbWZjX2dldF9l bmNfZnJhbWVfYnVmZmVyX3Y2KHN0cnVjdCBzNXBfbWZjX2N0eCAqY3R4LA0KPiA+IC0JCXVuc2ln bmVkIGxvbmcgKnlfYWRkciwgdW5zaWduZWQgbG9uZyAqY19hZGRyKQ0KPiA+ICsJCXVuc2lnbmVk IGxvbmcgKnlfYWRkciwgdW5zaWduZWQgbG9uZyAqY19hZGRyLA0KPiA+ICsJCXVuc2lnbmVkIGxv bmcgKmNfMV9hZGRyKQ0KPiA+ICB7DQo+ID4gIAlzdHJ1Y3QgczVwX21mY19kZXYgKmRldiA9IGN0 eC0+ZGV2Ow0KPiA+ICAJY29uc3Qgc3RydWN0IHM1cF9tZmNfcmVncyAqbWZjX3JlZ3MgPSBkZXYt Pm1mY19yZWdzOyBAQCAtNzA0LDEyDQo+ID4gKzc4NiwxNyBAQCBzdGF0aWMgdm9pZCBzNXBfbWZj X2dldF9lbmNfZnJhbWVfYnVmZmVyX3Y2KHN0cnVjdA0KPiA+IHM1cF9tZmNfY3R4ICpjdHgsDQo+ ID4NCj4gPiAgCSp5X2FkZHIgPSByZWFkbChtZmNfcmVncy0+ZV9lbmNvZGVkX3NvdXJjZV9maXJz dF9wbGFuZV9hZGRyKTsNCj4gPiAgCSpjX2FkZHIgPSByZWFkbChtZmNfcmVncy0NCj4gPmVfZW5j b2RlZF9zb3VyY2Vfc2Vjb25kX3BsYW5lX2FkZHIpOw0KPiA+ICsJaWYgKGN0eC0+c3JjX2ZtdC0+ Zm91cmNjID09IFY0TDJfUElYX0ZNVF9ZVVY0MjBNIHx8DQo+ID4gKwkJCWN0eC0+c3JjX2ZtdC0+ Zm91cmNjID09IFY0TDJfUElYX0ZNVF9ZVlU0MjBNKQ0KPiA+ICsJCSpjXzFfYWRkciA9IHJlYWRs KG1mY19yZWdzLQ0KPiA+ZV9lbmNvZGVkX3NvdXJjZV90aGlyZF9wbGFuZV9hZGRyKTsNCj4gPiAr CWVsc2UNCj4gPiArCQkqY18xX2FkZHIgPSAwOw0KPiA+DQo+ID4gIAllbmNfcmVjb25feV9hZGRy ID0gcmVhZGwobWZjX3JlZ3MtPmVfcmVjb25fbHVtYV9kcGJfYWRkcik7DQo+ID4gIAllbmNfcmVj b25fY19hZGRyID0gcmVhZGwobWZjX3JlZ3MtPmVfcmVjb25fY2hyb21hX2RwYl9hZGRyKTsNCj4g Pg0KPiA+ICAJbWZjX2RlYnVnKDIsICJyZWNvbiB5IGFkZHI6IDB4JTA4bHggeV9hZGRyOiAweCUw OGx4XG4iLA0KPiBlbmNfcmVjb25feV9hZGRyLCAqeV9hZGRyKTsNCj4gPiAtCW1mY19kZWJ1Zygy LCAicmVjb24gYyBhZGRyOiAweCUwOGx4XG4iLCBlbmNfcmVjb25fY19hZGRyKTsNCj4gPiArCW1m Y19kZWJ1ZygyLCAicmVjb24gYyBhZGRyOiAweCUwOGx4IGNfYWRkcjogMHglMDhseFxuIiwNCj4g PiArZW5jX3JlY29uX2NfYWRkciwgKmNfYWRkcik7DQo+ID4gIH0NCj4gPg0KPiA+ICAvKiBTZXQg ZW5jb2RpbmcgcmVmICYgY29kZWMgYnVmZmVyICovIEBAIC04ODYsNiArOTczLDIwIEBAIHN0YXRp YyBpbnQNCj4gPiBzNXBfbWZjX3NldF9lbmNfcGFyYW1zKHN0cnVjdCBzNXBfbWZjX2N0eCAqY3R4 KQ0KPiA+ICAJCXdyaXRlbChyZWcsIG1mY19yZWdzLT5lX2VuY19vcHRpb25zKTsNCj4gPiAgCQkv KiAwOiBOVjEyKENiQ3IpLCAxOiBOVjIxKENyQ2IpICovDQo+ID4gIAkJd3JpdGVsKDB4MCwgbWZj X3JlZ3MtPnBpeGVsX2Zvcm1hdCk7DQo+ID4gKwl9IGVsc2UgaWYgKGN0eC0+c3JjX2ZtdC0+Zm91 cmNjID09IFY0TDJfUElYX0ZNVF9ZVlU0MjBNKSB7DQo+ID4gKwkJLyogMDogTGluZWFyLCAxOiAy RCB0aWxlZCovDQo+ID4gKwkJcmVnID0gcmVhZGwobWZjX3JlZ3MtPmVfZW5jX29wdGlvbnMpOw0K PiA+ICsJCXJlZyAmPSB+KDB4MSA8PCA3KTsNCj4gPiArCQl3cml0ZWwocmVnLCBtZmNfcmVncy0+ ZV9lbmNfb3B0aW9ucyk7DQo+ID4gKwkJLyogMjogWVYxMihDckNiKSwgMzogSTQyMChDckNiKSAq Lw0KPiA+ICsJCXdyaXRlbCgweDIsIG1mY19yZWdzLT5waXhlbF9mb3JtYXQpOw0KPiA+ICsJfSBl bHNlIGlmIChjdHgtPnNyY19mbXQtPmZvdXJjYyA9PSBWNEwyX1BJWF9GTVRfWVVWNDIwTSkgew0K PiA+ICsJCS8qIDA6IExpbmVhciwgMTogMkQgdGlsZWQqLw0KPiA+ICsJCXJlZyA9IHJlYWRsKG1m Y19yZWdzLT5lX2VuY19vcHRpb25zKTsNCj4gPiArCQlyZWcgJj0gfigweDEgPDwgNyk7DQo+ID4g KwkJd3JpdGVsKHJlZywgbWZjX3JlZ3MtPmVfZW5jX29wdGlvbnMpOw0KPiA+ICsJCS8qIDI6IFlW MTIoQ3JDYiksIDM6IEk0MjAoQ3JDYikgKi8NCj4gPiArCQl3cml0ZWwoMHgzLCBtZmNfcmVncy0+ cGl4ZWxfZm9ybWF0KTsNCj4gPiAgCX0NCj4gPg0KPiA+ICAJLyogbWVtb3J5IHN0cnVjdHVyZSBy ZWNvbi4gZnJhbWUgKi8NCj4gPiBAQCAtMTY5Niw4ICsxNzk3LDEyIEBAIHN0YXRpYyBpbnQgczVw X21mY19pbml0X2RlY29kZV92NihzdHJ1Y3QNCj4gczVwX21mY19jdHggKmN0eCkNCj4gPiAgCWVs c2UNCj4gPiAgCQl3cml0ZWwocmVnLCBtZmNfcmVncy0+ZF9kZWNfb3B0aW9ucyk7DQo+ID4NCj4g PiAtCS8qIDA6IE5WMTIoQ2JDciksIDE6IE5WMjEoQ3JDYikgKi8NCj4gPiAtCWlmIChjdHgtPmRz dF9mbXQtPmZvdXJjYyA9PSBWNEwyX1BJWF9GTVRfTlYyMU0pDQo+ID4gKwkvKiAwOiBOVjEyKENi Q3IpLCAxOiBOVjIxKENyQ2IpLCAyOiBZVjEyKENyQ2IpLCAzOiBJNDIwKENiQ3IpICovDQo+ID4g KwlpZiAoY3R4LT5kc3RfZm10LT5mb3VyY2MgPT0gVjRMMl9QSVhfRk1UX1lVVjQyME0pDQo+ID4g KwkJd3JpdGVsKDB4MywgbWZjX3JlZ3MtPnBpeGVsX2Zvcm1hdCk7DQo+ID4gKwllbHNlIGlmIChj dHgtPmRzdF9mbXQtPmZvdXJjYyA9PSBWNEwyX1BJWF9GTVRfWVZVNDIwTSkNCj4gPiArCQl3cml0 ZWwoMHgyLCBtZmNfcmVncy0+cGl4ZWxfZm9ybWF0KTsNCj4gPiArCWVsc2UgaWYgKGN0eC0+ZHN0 X2ZtdC0+Zm91cmNjID09IFY0TDJfUElYX0ZNVF9OVjIxTSkNCj4gPiAgCQl3cml0ZWwoMHgxLCBt ZmNfcmVncy0+cGl4ZWxfZm9ybWF0KTsNCj4gPiAgCWVsc2UNCj4gPiAgCQl3cml0ZWwoMHgwLCBt ZmNfcmVncy0+cGl4ZWxfZm9ybWF0KTsgQEAgLTE3ODEsOCArMTg4NiwxMg0KPiBAQCBzdGF0aWMN Cj4gPiBpbnQgczVwX21mY19pbml0X2VuY29kZV92NihzdHJ1Y3QgczVwX21mY19jdHggKmN0eCkN Cj4gPg0KPiA+ICAJLyogU2V0IHN0cmlkZSBsZW5ndGhzIGZvciB2NyAmIGFib3ZlICovDQo+ID4g IAlpZiAoSVNfTUZDVjdfUExVUyhkZXYpKSB7DQo+ID4gLQkJd3JpdGVsKGN0eC0+aW1nX3dpZHRo LCBtZmNfcmVncy0NCj4gPmVfc291cmNlX2ZpcnN0X3BsYW5lX3N0cmlkZSk7DQo+ID4gLQkJd3Jp dGVsKGN0eC0+aW1nX3dpZHRoLCBtZmNfcmVncy0NCj4gPmVfc291cmNlX3NlY29uZF9wbGFuZV9z dHJpZGUpOw0KPiA+ICsJCXdyaXRlbChjdHgtPnN0cmlkZVswXSwgbWZjX3JlZ3MtDQo+ID5lX3Nv dXJjZV9maXJzdF9wbGFuZV9zdHJpZGUpOw0KPiA+ICsJCXdyaXRlbChjdHgtPnN0cmlkZVsxXSwg bWZjX3JlZ3MtDQo+ID5lX3NvdXJjZV9zZWNvbmRfcGxhbmVfc3RyaWRlKTsNCj4gPiArCQlpZiAo Y3R4LT5zcmNfZm10LT5mb3VyY2MgPT0gVjRMMl9QSVhfRk1UX1lVVjQyME0gfHwNCj4gPiArCQkJ CWN0eC0+c3JjX2ZtdC0+Zm91cmNjID09DQo+IFY0TDJfUElYX0ZNVF9ZVlU0MjBNKQ0KPiA+ICsJ CQl3cml0ZWwoY3R4LT5zdHJpZGVbMl0sDQo+ID4gKwkJCQkJbWZjX3JlZ3MtDQo+ID5lX3NvdXJj ZV90aGlyZF9wbGFuZV9zdHJpZGUpOw0KPiA+ICAJfQ0KPiA+DQo+ID4gIAl3cml0ZWwoY3R4LT5p bnN0X25vLCBtZmNfcmVncy0+aW5zdGFuY2VfaWQpOyBAQCAtMTg5MSw3ICsyMDAwLDcNCj4gQEAN Cj4gPiBzdGF0aWMgaW5saW5lIGludCBzNXBfbWZjX3J1bl9lbmNfZnJhbWUoc3RydWN0IHM1cF9t ZmNfY3R4ICpjdHgpDQo+ID4gIAlzdHJ1Y3QgczVwX21mY19kZXYgKmRldiA9IGN0eC0+ZGV2Ow0K PiA+ICAJc3RydWN0IHM1cF9tZmNfYnVmICpkc3RfbWI7DQo+ID4gIAlzdHJ1Y3QgczVwX21mY19i dWYgKnNyY19tYjsNCj4gPiAtCXVuc2lnbmVkIGxvbmcgc3JjX3lfYWRkciwgc3JjX2NfYWRkciwg ZHN0X2FkZHI7DQo+ID4gKwl1bnNpZ25lZCBsb25nIHNyY195X2FkZHIsIHNyY19jX2FkZHIsIHNy Y19jXzFfYWRkciwgZHN0X2FkZHI7DQo+ID4gIAkvKg0KPiA+ICAJdW5zaWduZWQgaW50IHNyY195 X3NpemUsIHNyY19jX3NpemU7DQo+ID4gIAkqLw0KPiA+IEBAIC0xOTA5LDIyICsyMDE4LDI5IEBA IHN0YXRpYyBpbmxpbmUgaW50IHM1cF9tZmNfcnVuX2VuY19mcmFtZShzdHJ1Y3QNCj4gPiBzNXBf bWZjX2N0eCAqY3R4KQ0KPiA+DQo+ID4gIAlpZiAobGlzdF9lbXB0eSgmY3R4LT5zcmNfcXVldWUp KSB7DQo+ID4gIAkJLyogc2VuZCBudWxsIGZyYW1lICovDQo+ID4gLQkJczVwX21mY19zZXRfZW5j X2ZyYW1lX2J1ZmZlcl92NihjdHgsIDAsIDApOw0KPiA+ICsJCXM1cF9tZmNfc2V0X2VuY19mcmFt ZV9idWZmZXJfdjYoY3R4LCAwLCAwLCAwKTsNCj4gPiAgCQlzcmNfbWIgPSBOVUxMOw0KPiA+ICAJ fSBlbHNlIHsNCj4gPiAgCQlzcmNfbWIgPSBsaXN0X2VudHJ5KGN0eC0+c3JjX3F1ZXVlLm5leHQs IHN0cnVjdA0KPiBzNXBfbWZjX2J1ZiwgbGlzdCk7DQo+ID4gIAkJc3JjX21iLT5mbGFncyB8PSBN RkNfQlVGX0ZMQUdfVVNFRDsNCj4gPiAgCQlpZiAoc3JjX21iLT5iLT52YjJfYnVmLnBsYW5lc1sw XS5ieXRlc3VzZWQgPT0gMCkgew0KPiA+IC0JCQlzNXBfbWZjX3NldF9lbmNfZnJhbWVfYnVmZmVy X3Y2KGN0eCwgMCwgMCk7DQo+ID4gKwkJCXM1cF9tZmNfc2V0X2VuY19mcmFtZV9idWZmZXJfdjYo Y3R4LCAwLCAwLCAwKTsNCj4gPiAgCQkJY3R4LT5zdGF0ZSA9IE1GQ0lOU1RfRklOSVNISU5HOw0K PiA+ICAJCX0gZWxzZSB7DQo+ID4gIAkJCXNyY195X2FkZHIgPQ0KPiB2YjJfZG1hX2NvbnRpZ19w bGFuZV9kbWFfYWRkcigmc3JjX21iLT5iLT52YjJfYnVmLCAwKTsNCj4gPiAgCQkJc3JjX2NfYWRk ciA9DQo+IHZiMl9kbWFfY29udGlnX3BsYW5lX2RtYV9hZGRyKCZzcmNfbWItPmItPnZiMl9idWYs DQo+ID4gMSk7DQo+ID4gKwkJCWlmIChjdHgtPnNyY19mbXQtPmZvdXJjYyA9PQ0KPiBWNEwyX1BJ WF9GTVRfWVVWNDIwTSB8fA0KPiA+ICsJCQkJY3R4LT5zcmNfZm10LT5mb3VyY2MgPT0NCj4gVjRM Ml9QSVhfRk1UX1lWVTQyME0pDQo+ID4gKwkJCQlzcmNfY18xX2FkZHIgPQ0KPiB2YjJfZG1hX2Nv bnRpZ19wbGFuZV9kbWFfYWRkcg0KPiA+ICsJCQkJCQkoJnNyY19tYi0+Yi0+dmIyX2J1ZiwgMik7 DQo+ID4gKwkJCWVsc2UNCj4gPiArCQkJCXNyY19jXzFfYWRkciA9IDA7DQo+ID4NCj4gPiAgCQkJ bWZjX2RlYnVnKDIsICJlbmMgc3JjIHkgYWRkcjogMHglMDhseFxuIiwNCj4gc3JjX3lfYWRkcik7 DQo+ID4gIAkJCW1mY19kZWJ1ZygyLCAiZW5jIHNyYyBjIGFkZHI6IDB4JTA4bHhcbiIsDQo+IHNy Y19jX2FkZHIpOw0KPiA+DQo+ID4gLQkJCXM1cF9tZmNfc2V0X2VuY19mcmFtZV9idWZmZXJfdjYo Y3R4LCBzcmNfeV9hZGRyLA0KPiBzcmNfY19hZGRyKTsNCj4gPiArCQkJczVwX21mY19zZXRfZW5j X2ZyYW1lX2J1ZmZlcl92NihjdHgsIHNyY195X2FkZHIsDQo+ID4gKwkJCQkJCXNyY19jX2FkZHIs IHNyY19jXzFfYWRkcik7DQo+ID4gIAkJCWlmIChzcmNfbWItPmZsYWdzICYgTUZDX0JVRl9GTEFH X0VPUykNCj4gPiAgCQkJCWN0eC0+c3RhdGUgPSBNRkNJTlNUX0ZJTklTSElORzsNCj4gPiAgCQl9 DQo+ID4gQEAgLTI0NTAsNiArMjU2Niw4IEBAIGNvbnN0IHN0cnVjdCBzNXBfbWZjX3JlZ3MNCj4g KnM1cF9tZmNfaW5pdF9yZWdzX3Y2X3BsdXMoc3RydWN0IHM1cF9tZmNfZGV2ICpkZXYpDQo+ID4g IAkJCVM1UF9GSU1WX0VfRU5DT0RFRF9TT1VSQ0VfRklSU1RfQUREUl9WNyk7DQo+ID4gIAlSKGVf ZW5jb2RlZF9zb3VyY2Vfc2Vjb25kX3BsYW5lX2FkZHIsDQo+ID4NCj4gCVM1UF9GSU1WX0VfRU5D T0RFRF9TT1VSQ0VfU0VDT05EX0FERFJfVjcpOw0KPiA+ICsJUihlX2VuY29kZWRfc291cmNlX3Ro aXJkX3BsYW5lX2FkZHIsDQo+ID4gKwkJCVM1UF9GSU1WX0VfRU5DT0RFRF9TT1VSQ0VfVEhJUkRf QUREUl9WNyk7DQo+ID4gIAlSKGVfdnA4X29wdGlvbnMsIFM1UF9GSU1WX0VfVlA4X09QVElPTlNf VjcpOw0KPiA+DQo+ID4gIAlpZiAoIUlTX01GQ1Y4X1BMVVMoZGV2KSkNCj4gPiBAQCAtMjQ2NCwx NiArMjU4MiwyMCBAQCBjb25zdCBzdHJ1Y3QgczVwX21mY19yZWdzDQo+ICpzNXBfbWZjX2luaXRf cmVnc192Nl9wbHVzKHN0cnVjdCBzNXBfbWZjX2RldiAqZGV2KQ0KPiA+ICAJUihkX2NwYl9idWZm ZXJfb2Zmc2V0LCBTNVBfRklNVl9EX0NQQl9CVUZGRVJfT0ZGU0VUX1Y4KTsNCj4gPiAgCVIoZF9m aXJzdF9wbGFuZV9kcGJfc2l6ZSwNCj4gUzVQX0ZJTVZfRF9GSVJTVF9QTEFORV9EUEJfU0laRV9W OCk7DQo+ID4gIAlSKGRfc2Vjb25kX3BsYW5lX2RwYl9zaXplLA0KPiBTNVBfRklNVl9EX1NFQ09O RF9QTEFORV9EUEJfU0laRV9WOCk7DQo+ID4gKwlSKGRfdGhpcmRfcGxhbmVfZHBiX3NpemUsDQo+ IFM1UF9GSU1WX0RfVEhJUkRfUExBTkVfRFBCX1NJWkVfVjgpOw0KPiA+ICAJUihkX3NjcmF0Y2hf YnVmZmVyX2FkZHIsDQo+IFM1UF9GSU1WX0RfU0NSQVRDSF9CVUZGRVJfQUREUl9WOCk7DQo+ID4g IAlSKGRfc2NyYXRjaF9idWZmZXJfc2l6ZSwgUzVQX0ZJTVZfRF9TQ1JBVENIX0JVRkZFUl9TSVpF X1Y4KTsNCj4gPiAgCVIoZF9maXJzdF9wbGFuZV9kcGJfc3RyaWRlX3NpemUsDQo+ID4gIAkJCVM1 UF9GSU1WX0RfRklSU1RfUExBTkVfRFBCX1NUUklERV9TSVpFX1Y4KTsNCj4gPiAgCVIoZF9zZWNv bmRfcGxhbmVfZHBiX3N0cmlkZV9zaXplLA0KPiA+DQo+IAlTNVBfRklNVl9EX1NFQ09ORF9QTEFO RV9EUEJfU1RSSURFX1NJWkVfVjgpOw0KPiA+ICsJUihkX3RoaXJkX3BsYW5lX2RwYl9zdHJpZGVf c2l6ZSwNCj4gPiArCQkJUzVQX0ZJTVZfRF9USElSRF9QTEFORV9EUEJfU1RSSURFX1NJWkVfVjgp Ow0KPiA+ICAJUihkX212X2J1ZmZlcl9zaXplLCBTNVBfRklNVl9EX01WX0JVRkZFUl9TSVpFX1Y4 KTsNCj4gPiAgCVIoZF9udW1fbXYsIFM1UF9GSU1WX0RfTlVNX01WX1Y4KTsNCj4gPiAgCVIoZF9m aXJzdF9wbGFuZV9kcGIsIFM1UF9GSU1WX0RfRklSU1RfUExBTkVfRFBCX1Y4KTsNCj4gPiAgCVIo ZF9zZWNvbmRfcGxhbmVfZHBiLCBTNVBfRklNVl9EX1NFQ09ORF9QTEFORV9EUEJfVjgpOw0KPiA+ ICsJUihkX3RoaXJkX3BsYW5lX2RwYiwgUzVQX0ZJTVZfRF9USElSRF9QTEFORV9EUEJfVjgpOw0K PiA+ICAJUihkX212X2J1ZmZlciwgUzVQX0ZJTVZfRF9NVl9CVUZGRVJfVjgpOw0KPiA+ICAJUihk X2luaXRfYnVmZmVyX29wdGlvbnMsIFM1UF9GSU1WX0RfSU5JVF9CVUZGRVJfT1BUSU9OU19WOCk7 DQo+ID4gIAlSKGRfYXZhaWxhYmxlX2RwYl9mbGFnX2xvd2VyLA0KPiA+IFM1UF9GSU1WX0RfQVZB SUxBQkxFX0RQQl9GTEFHX0xPV0VSX1Y4KTsNCg0KDQoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0Cmxp bnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK