Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mAZCV-0004uz-98 for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Aug 2021 14:45:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mAZCT-0008Pi-3j for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Aug 2021 14:45:53 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mAZCS-0008Pa-JE for pgsql-hackers@lists.postgresql.org; Mon, 02 Aug 2021 14:45:52 +0000 Received: from smtp-fw-33001.amazon.com ([207.171.190.10]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mAZCN-0000AM-F3 for pgsql-hackers@postgresql.org; Mon, 02 Aug 2021 14:45:51 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1627915548; x=1659451548; h=to:cc:references:from:message-id:date:mime-version: in-reply-to:subject; bh=EFZWkGkw4+7sEA1LjOv13jRxZMPe4wCAm59WPyrIPr4=; b=g8aqEYxGH0Z7bwk3DwTlZGZ1rNDb15TP6gihonEJjdsnaHxwn/QIfBBY d6iYJ8b5yT/ssT1mlYj1ZiwT7VPNil4+7ngGf7i2LJyweAZl+yomswY77 SlHrCAtA7z/ncAt/21aLVN1H2MgvILgzHlGmyoa2aTi1ySy23xBr7TCdr k=; X-Amazon-filename: v22-0005-Doc-changes-describing-details-about-logical-dec.patch, v22-0004-New-TAP-test-for-logical-decoding-on-standby.patch, v22-0003-Allow-logical-decoding-on-standby.patch, v22-0002-Handle-logical-slot-conflicts-on-standby.patch, v22-0001-Add-info-in-WAL-records-in-preparation-for-logic.patch X-IronPort-AV: E=Sophos;i="5.84,289,1620691200"; d="scan'208,223";a="139469012" Subject: Re: Minimal logical decoding on standbys Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-2a-90c42d1d.us-west-2.amazon.com) ([10.43.8.2]) by smtp-border-fw-33001.sea14.amazon.com with ESMTP; 02 Aug 2021 14:45:36 +0000 Received: from EX13D03EUC003.ant.amazon.com (pdx1-ws-svc-p6-lb9-vlan3.pdx.amazon.com [10.236.137.198]) by email-inbound-relay-2a-90c42d1d.us-west-2.amazon.com (Postfix) with ESMTPS id C8B03A22AC; Mon, 2 Aug 2021 14:45:32 +0000 (UTC) Received: from 38f9d36c4abb.ant.amazon.com (10.43.160.85) by EX13D03EUC003.ant.amazon.com (10.43.164.192) with Microsoft SMTP Server (TLS) id 15.0.1497.23; Mon, 2 Aug 2021 14:45:27 +0000 To: Andres Freund CC: Ibrar Ahmed , Amit Khandekar , , Alvaro Herrera , tushar , "[pgdg] Robert Haas" , Rahila Syed , pgsql-hackers References: <6b9168e5-6a29-7fda-8903-cd50563fa84c@amazon.com> <20210406180231.qsnkyrgrm7gtxb73@alap3.anarazel.de> <20210407170954.xbovgh3xdrnogg7w@alap3.anarazel.de> <20210407203218.pestfxu7watrnog4@alap3.anarazel.de> <20210408034713.auf7oaxyymu2kc7n@alap3.anarazel.de> <26c6f320-98f0-253c-f8b5-df1e7c1f6315@amazon.com> <8d263a6b-a99f-0f9b-43ba-e8967c386f2b@amazon.com> <2feee395-959b-6d53-369a-c00f8f2fa6c5@amazon.com> <20210727172257.ekvkspdqaeh2etfg@alap3.anarazel.de> From: "Drouvot, Bertrand" Message-ID: <69aad0bf-697a-04e1-df6c-0920ec8fa528@amazon.com> Date: Mon, 2 Aug 2021 16:45:23 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.12.0 MIME-Version: 1.0 In-Reply-To: <20210727172257.ekvkspdqaeh2etfg@alap3.anarazel.de> Content-Type: multipart/mixed; boundary="------------A2B3C3F1A3D498E906D62BDD" Content-Language: en-US X-Originating-IP: [10.43.160.85] X-ClientProxiedBy: EX13P01UWB001.ant.amazon.com (10.43.161.59) To EX13D03EUC003.ant.amazon.com (10.43.164.192) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --------------A2B3C3F1A3D498E906D62BDD Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit Hi Andres, On 7/27/21 7:22 PM, Andres Freund wrote: > Hi, > > On 2021-07-27 09:23:48 +0200, Drouvot, Bertrand wrote: >> Thanks for the warning, rebase done and new v21 version attached. > Did you have a go at fixing the walsender race conditions I > (re-)discovered? Without fixing those I don't see this patch going in... Those new patches should be addressing all your previous code and TAP tests remarks, except those 2 for which I would need your input: 1. The first one is linked to your remarks: " > While working on this I found a, somewhat substantial, issue: > > When the primary is idle, on the standby logical decoding via walsender > will typically not process the records until further WAL writes come in > from the primary, or until a 10s lapsed. > > The problem is that WalSndWaitForWal() waits for the *replay* LSN to > increase, but gets woken up by walreceiver when new WAL has been > flushed. Which means that typically walsenders will get woken up at the > same time that the startup process will be - which means that by the > time the logical walsender checks GetXLogReplayRecPtr() it's unlikely > that the startup process already replayed the record and updated > XLogCtl->lastReplayedEndRecPtr. > > I think fixing this would require too invasive changes at this point. I > think we might be able to live with 10s delay issue for one release, but > it sure is ugly :(. This is indeed pretty painful. It's a lot more regularly occuring if you either have a slot disk, or you switch around the order of WakeupRecovery() and WalSndWakeup() XLogWalRcvFlush(). " Is that what you are referring to as the “walsender race conditions”? If so, do you already have in mind a way to handle this? (I thought you already had in mind a way to handle it so the question) 2. The second one is linked to your remark: "There's also no test 
for a recovery conflict due to row removal" Don't you think that the 
"vacuum full" conflict test is enough? if not, what kind of additional 
tests would you like to see? In the same time, I am attaching a new v22 as a rebase was needed since v21. Thanks Bertrand --------------A2B3C3F1A3D498E906D62BDD Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v22-0005-Doc-changes-describing-details-about-logical-dec.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v22-0005-Doc-changes-describing-details-about-logical-dec.pa"; filename*1="tch" RnJvbSA5OGNiNzA0ZTJkMzE5MGNhZTk0NDA1OTRkOWUyYTBhODcyMDIyZjhiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogTW9uLCAyIEF1ZyAyMDIxIDEzOjU5OjM0ICswMDAwClN1YmplY3Q6IFtQQVRD SCB2MjIgNS81XSBEb2MgY2hhbmdlcyBkZXNjcmliaW5nIGRldGFpbHMgYWJvdXQgbG9naWNh bAogZGVjb2RpbmcuCgpBdXRob3I6IEFuZHJlcyBGcmV1bmQgKGluIGFuIG9sZGVyIHZlcnNp b24pLCBBbWl0IEtoYW5kZWthciwgQmVydHJhbmQgRHJvdXZvdApSZXZpZXdlZC1CeTogQmVy dHJhbmQgRHJvdXZvdCwgQW5kcmVzIEZyZXVuZCwgUm9iZXJ0IEhhYXMsIEZhYnJpemlvIGRl IFJveWVzIE1lbGxvCi0tLQogZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5zZ21sIHwg MjEgKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMjEgaW5zZXJ0aW9u cygrKQogMTAwLjAlIGRvYy9zcmMvc2dtbC8KCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv bG9naWNhbGRlY29kaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbGRlY29kaW5nLnNn bWwKaW5kZXggODliODA5MGI3OS4uZjY2YmIwNGQyNyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2xvZ2ljYWxkZWNvZGluZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVj b2Rpbmcuc2dtbApAQCAtMzE2LDYgKzMxNiwyNyBAQCBwb3N0Z3Jlcz0jIHNlbGVjdCAqIGZy b20gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdyZWdyZXNzaW9uX3Nsb3QnLCBOVUxM LCBOVQogICAgICBtYXkgY29uc3VtZSBjaGFuZ2VzIGZyb20gYSBzbG90IGF0IGFueSBnaXZl biB0aW1lLgogICAgIDwvcGFyYT4KIAorICAgIDxwYXJhPgorICAgICBBIGxvZ2ljYWwgcmVw bGljYXRpb24gc2xvdCBjYW4gYWxzbyBiZSBjcmVhdGVkIG9uIGEgaG90IHN0YW5kYnkuIFRv IHByZXZlbnQKKyAgICAgPGNvbW1hbmQ+VkFDVVVNPC9jb21tYW5kPiBmcm9tIHJlbW92aW5n IHJlcXVpcmVkIHJvd3MgZnJvbSB0aGUgc3lzdGVtCisgICAgIGNhdGFsb2dzLCA8dmFybmFt ZT5ob3Rfc3RhbmRieV9mZWVkYmFjazwvdmFybmFtZT4gc2hvdWxkIGJlIHNldCBvbiB0aGUK KyAgICAgc3RhbmRieS4gSW4gc3BpdGUgb2YgdGhhdCwgaWYgYW55IHJlcXVpcmVkIHJvd3Mg Z2V0IHJlbW92ZWQsIHRoZSBzbG90IGdldHMKKyAgICAgaW52YWxpZGF0ZWQuIEl0J3MgaGln aGx5IHJlY29tbWVuZGVkIHRvIHVzZSBhIHBoeXNpY2FsIHNsb3QgYmV0d2VlbiB0aGUgcHJp bWFyeQorICAgICBhbmQgdGhlIHN0YW5kYnkuIE90aGVyd2lzZSwgaG90X3N0YW5kYnlfZmVl ZGJhY2sgd2lsbCB3b3JrLCBidXQgb25seSB3aGlsZSB0aGUgCisgICAgIGNvbm5lY3Rpb24g aXMgYWxpdmUgKGZvciBleGFtcGxlIGEgbm9kZSByZXN0YXJ0IHdvdWxkIGJyZWFrIGl0KS4g RXhpc3RpbmcgCisgICAgIGxvZ2ljYWwgc2xvdHMgb24gc3RhbmRieSBhbHNvIGdldCBpbnZh bGlkYXRlZCBpZiB3YWxfbGV2ZWwgb24gcHJpbWFyeSBpcyByZWR1Y2VkIHRvCisgICAgIGxl c3MgdGhhbiAnbG9naWNhbCcuCisgICAgPC9wYXJhPgorCisgICAgPHBhcmE+CisgICAgIEZv ciBhIGxvZ2ljYWwgc2xvdCB0byBiZSBjcmVhdGVkLCBpdCBidWlsZHMgYSBoaXN0b3JpYyBz bmFwc2hvdCwgZm9yIHdoaWNoCisgICAgIGluZm9ybWF0aW9uIG9mIGFsbCB0aGUgY3VycmVu dGx5IHJ1bm5pbmcgdHJhbnNhY3Rpb25zIGlzIGVzc2VudGlhbC4gT24KKyAgICAgcHJpbWFy eSwgdGhpcyBpbmZvcm1hdGlvbiBpcyBhdmFpbGFibGUsIGJ1dCBvbiBzdGFuZGJ5LCB0aGlz IGluZm9ybWF0aW9uCisgICAgIGhhcyB0byBiZSBvYnRhaW5lZCBmcm9tIHByaW1hcnkuIFNv LCBzbG90IGNyZWF0aW9uIG1heSB3YWl0IGZvciBzb21lCisgICAgIGFjdGl2aXR5IHRvIGhh cHBlbiBvbiB0aGUgcHJpbWFyeS4gSWYgdGhlIHByaW1hcnkgaXMgaWRsZSwgY3JlYXRpbmcg YQorICAgICBsb2dpY2FsIHNsb3Qgb24gc3RhbmRieSBtYXkgdGFrZSBhIG5vdGljZWFibGUg dGltZS4KKyAgICA8L3BhcmE+CisKICAgICA8Y2F1dGlvbj4KICAgICAgPHBhcmE+CiAgICAg ICBSZXBsaWNhdGlvbiBzbG90cyBwZXJzaXN0IGFjcm9zcyBjcmFzaGVzIGFuZCBrbm93IG5v dGhpbmcgYWJvdXQgdGhlIHN0YXRlCi0tIAoyLjE4LjQKCg== --------------A2B3C3F1A3D498E906D62BDD Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v22-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v22-0004-New-TAP-test-for-logical-decoding-on-standby.patch" RnJvbSAwMGJmMzFjN2JiMzY5MjkxY2U3Yzk4M2U1NzlmM2FiODYwZjE4YWU4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogTW9uLCAyIEF1ZyAyMDIxIDEzOjU4OjM4ICswMDAwClN1YmplY3Q6IFtQQVRD SCB2MjIgNC81XSBOZXcgVEFQIHRlc3QgZm9yIGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRi eS4KCkF1dGhvcjogQ3JhaWcgUmluZ2VyIChpbiBhbiBvbGRlciB2ZXJzaW9uKSwgQW1pdCBL aGFuZGVrYXIsIEJlcnRyYW5kIERyb3V2b3QKUmV2aWV3ZWQtQnk6IEJlcnRyYW5kIERyb3V2 b3QsIEFuZHJlcyBGcmV1bmQsIFJvYmVydCBIYWFzLCBGYWJyaXppbyBkZSBSb3llcyBNZWxs bwotLS0KIHNyYy90ZXN0L3BlcmwvUG9zdGdyZXNOb2RlLnBtICAgICAgICAgICAgICAgICB8 ICAzNyArKwogLi4uL3QvMDI2X3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZy5wbCAgICAgICAg IHwgNDI2ICsrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA0NjMgaW5zZXJ0 aW9ucygrKQogICA3LjIlIHNyYy90ZXN0L3BlcmwvCiAgOTIuNyUgc3JjL3Rlc3QvcmVjb3Zl cnkvdC8KCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9wZXJsL1Bvc3RncmVzTm9kZS5wbSBiL3Ny Yy90ZXN0L3BlcmwvUG9zdGdyZXNOb2RlLnBtCmluZGV4IDgxNThlYTViMmYuLmE4YzczOTI5 ZWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3BlcmwvUG9zdGdyZXNOb2RlLnBtCisrKyBiL3Ny Yy90ZXN0L3BlcmwvUG9zdGdyZXNOb2RlLnBtCkBAIC0yNjQ5LDYgKzI2NDksNDMgQEAgc3Vi IHBnX3JlY3Zsb2dpY2FsX3VwdG8KIAogPXBvZAogCis9aXRlbSAkbm9kZS0+Y3JlYXRlX2xv Z2ljYWxfc2xvdF9vbl9zdGFuZGJ5KHNlbGYsIG1hc3Rlciwgc2xvdF9uYW1lLCBkYm5hbWUp CisKK0NyZWF0ZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3Qgb24gZ2l2ZW4gc3RhbmRieQor Cis9Y3V0CisKK3N1YiBjcmVhdGVfbG9naWNhbF9zbG90X29uX3N0YW5kYnkKK3sKKwlteSAo JHNlbGYsICRtYXN0ZXIsICRzbG90X25hbWUsICRkYm5hbWUpID0gQF87CisJbXkgKCRzdGRv dXQsICRzdGRlcnIpOworCisJbXkgJGhhbmRsZTsKKworCSRoYW5kbGUgPSBJUEM6OlJ1bjo6 c3RhcnQoWydwZ19yZWN2bG9naWNhbCcsICctZCcsICRzZWxmLT5jb25uc3RyKCRkYm5hbWUp LCAnLVAnLCAndGVzdF9kZWNvZGluZycsICctUycsICRzbG90X25hbWUsICctLWNyZWF0ZS1z bG90J10sICc+JywgXCRzdGRvdXQsICcyPicsIFwkc3RkZXJyKTsKKworCSMgT25jZSBzbG90 IHJlc3RhcnRfbHNuIGlzIGNyZWF0ZWQsIHRoZSBzdGFuZGJ5IGxvb2tzIGZvciB4bF9ydW5u aW5nX3hhY3RzCisJIyBXQUwgcmVjb3JkIGZyb20gdGhlIHJlc3RhcnRfbHNuIG9ud2FyZHMu IFNvIGZpcnN0bHksIHdhaXQgdW50aWwgdGhlIHNsb3QKKwkjIHJlc3RhcnRfbHNuIGlzIGV2 YWx1YXRlZC4KKworCSRzZWxmLT5wb2xsX3F1ZXJ5X3VudGlsKAorCQkncG9zdGdyZXMnLCBx cVsKKwkJU0VMRUNUIHJlc3RhcnRfbHNuIElTIE5PVCBOVUxMCisJCUZST00gcGdfY2F0YWxv Zy5wZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnJHNsb3RfbmFtZScK KwldKSBvciBkaWUgInRpbWVkIG91dCB3YWl0aW5nIGZvciBsb2dpY2FsIHNsb3QgdG8gY2Fs Y3VsYXRlIGl0cyByZXN0YXJ0X2xzbiI7CisKKwkjIE5vdyBhcnJhbmdlIGZvciB0aGUgeGxf cnVubmluZ194YWN0cyByZWNvcmQgZm9yIHdoaWNoIHBnX3JlY3Zsb2dpY2FsCisJIyBpcyB3 YWl0aW5nLgorCSRtYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnQ0hFQ0tQT0lOVCcp OworCisJJGhhbmRsZS0+ZmluaXNoKCk7CisKKwlpcygkc2VsZi0+c2xvdCgkc2xvdF9uYW1l KS0+eydzbG90X3R5cGUnfSwgJ2xvZ2ljYWwnLCAkc2xvdF9uYW1lIC4gJyBvbiBzdGFuZGJ5 IGNyZWF0ZWQnKQorCQlvciBkaWUgImNvdWxkIG5vdCBjcmVhdGUgc2xvdCIgLiAkc2xvdF9u YW1lOworfQorCis9cG9kCisKID1iYWNrCiAKID1jdXQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlY292ZXJ5L3QvMDI2X3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZy5wbCBiL3NyYy90ZXN0 L3JlY292ZXJ5L3QvMDI2X3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZy5wbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5lMThmZmRiYTdmCi0tLSAvZGV2L251bGwK KysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMjZfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5n LnBsCkBAIC0wLDAgKzEsNDI2IEBACisjIGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRieSA6 IHRlc3QgbG9naWNhbCBkZWNvZGluZywKKyMgcmVjb3ZlcnkgY29uZmxpY3QgYW5kIHN0YW5k YnkgcHJvbW90aW9uLgorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOworCit1c2UgUG9z dGdyZXNOb2RlOwordXNlIFRlc3Q6Ok1vcmUgdGVzdHMgPT4gMzI7Cit1c2UgVGltZTo6SGlS ZXMgcXcodXNsZWVwKTsKKworbXkgKCRzdGRpbiwgJHN0ZG91dCwgJHN0ZGVyciwgJHJldCwg JGhhbmRsZSwgJHNsb3QpOworCitteSAkbm9kZV9wcmltYXJ5ID0gUG9zdGdyZXNOb2RlLT5u ZXcoJ3ByaW1hcnknKTsKK215ICRub2RlX3N0YW5kYnkgPSBQb3N0Z3Jlc05vZGUtPm5ldygn c3RhbmRieScpOworCisjIE5hbWUgZm9yIHRoZSBwaHlzaWNhbCBzbG90IG9uIHByaW1hcnkK K215ICRwcmltYXJ5X3Nsb3RuYW1lID0gJ3ByaW1hcnlfcGh5c2ljYWwnOworCisjIHJldHVy biB0aGUgc2l6ZSBvZiBsb2dmaWxlIG9mICRub2RlIGluIGJ5dGVzCitzdWIgZ2V0X2xvZ19z aXplCit7CisJbXkgKCRub2RlKSA9IEBfOworCisJcmV0dXJuIChzdGF0ICRub2RlLT5sb2dm aWxlKVs3XTsKK30KKworIyBmaW5kICRwYXQgaW4gbG9nZmlsZSBvZiAkbm9kZSBhZnRlciAk b2ZmLXRoIGJ5dGUKK3N1YiBmaW5kX2luX2xvZworeworCW15ICgkbm9kZSwgJHBhdCwgJG9m ZikgPSBAXzsKKworCSRvZmYgPSAwIHVubGVzcyBkZWZpbmVkICRvZmY7CisJbXkgJGxvZyA9 IFRlc3RMaWI6OnNsdXJwX2ZpbGUoJG5vZGUtPmxvZ2ZpbGUpOworCXJldHVybiAwIGlmIChs ZW5ndGgoJGxvZykgPD0gJG9mZik7CisKKwkkbG9nID0gc3Vic3RyKCRsb2csICRvZmYpOwor CisJcmV0dXJuICRsb2cgPX4gbS8kcGF0LzsKK30KKworIyBGZXRjaCB4bWluIGNvbHVtbnMg ZnJvbSBzbG90J3MgcGdfcmVwbGljYXRpb25fc2xvdHMgcm93LCBhZnRlciB3YWl0aW5nIGZv cgorIyBnaXZlbiBib29sZWFuIGNvbmRpdGlvbiB0byBiZSB0cnVlIHRvIGVuc3VyZSB3ZSd2 ZSByZWFjaGVkIGEgcXVpZXNjZW50IHN0YXRlLgorc3ViIHdhaXRfZm9yX3htaW5zCit7CisJ bXkgKCRub2RlLCAkc2xvdG5hbWUsICRjaGVja19leHByKSA9IEBfOworCisJJG5vZGUtPnBv bGxfcXVlcnlfdW50aWwoCisJCSdwb3N0Z3JlcycsIHFxWworCQlTRUxFQ1QgJGNoZWNrX2V4 cHIKKwkJRlJPTSBwZ19jYXRhbG9nLnBnX3JlcGxpY2F0aW9uX3Nsb3RzCisJCVdIRVJFIHNs b3RfbmFtZSA9ICckc2xvdG5hbWUnOworCV0pIG9yIGRpZSAiVGltZWQgb3V0IHdhaXRpbmcg Zm9yIHNsb3QgeG1pbnMgdG8gYWR2YW5jZSI7Cit9CisKKyMgQ3JlYXRlIHRoZSByZXF1aXJl ZCBsb2dpY2FsIHNsb3RzIG9uIHN0YW5kYnkuCitzdWIgY3JlYXRlX2xvZ2ljYWxfc2xvdHMK K3sKKwkkbm9kZV9zdGFuZGJ5LT5jcmVhdGVfbG9naWNhbF9zbG90X29uX3N0YW5kYnkoJG5v ZGVfcHJpbWFyeSwgJ2luYWN0aXZlc2xvdCcsICd0ZXN0ZGInKTsKKwkkbm9kZV9zdGFuZGJ5 LT5jcmVhdGVfbG9naWNhbF9zbG90X29uX3N0YW5kYnkoJG5vZGVfcHJpbWFyeSwgJ2FjdGl2 ZXNsb3QnLCAndGVzdGRiJyk7Cit9CisKKyMgQWNxdWlyZSBvbmUgb2YgdGhlIHN0YW5kYnkg bG9naWNhbCBzbG90cyBjcmVhdGVkIGJ5IGNyZWF0ZV9sb2dpY2FsX3Nsb3RzKCkuCisjIElu IGNhc2Ugd2FpdCBpcyB0cnVlIHdlIGFyZSB3YWl0aW5nIGZvciBhbiBhY3RpdmUgcGlkIG9u IHRoZSAnYWN0aXZlc2xvdCcgc2xvdC4KKyMgSWYgd2FpdCBpcyBub3QgdHJ1ZSBpdCBtZWFu cyB3ZSBhcmUgdGVzdGluZyBhIGtub3duIGZhaWx1cmUgc2NlbmFyaW8uCitzdWIgbWFrZV9z bG90X2FjdGl2ZQoreworCW15ICR3YWl0ID0gc2hpZnQ7CisJbXkgJHNsb3RfdXNlcl9oYW5k bGU7CisKKwlwcmludCAic3RhcnRpbmcgcGdfcmVjdmxvZ2ljYWxcbiI7CisJJHNsb3RfdXNl cl9oYW5kbGUgPSBJUEM6OlJ1bjo6c3RhcnQoWydwZ19yZWN2bG9naWNhbCcsICctZCcsICRu b2RlX3N0YW5kYnktPmNvbm5zdHIoJ3Rlc3RkYicpLCAnLVMnLCAnYWN0aXZlc2xvdCcsICct ZicsICctJywgJy0tbm8tbG9vcCcsICctLXN0YXJ0J10sICc+JywgXCRzdGRvdXQsICcyPics IFwkc3RkZXJyKTsKKworCWlmICgkd2FpdCkKKwkjIG1ha2Ugc3VyZSBhY3RpdmVzbG90IGlz IGluIHVzZQorCXsKKwkJJG5vZGVfc3RhbmRieS0+cG9sbF9xdWVyeV91bnRpbCgndGVzdGRi JywKKwkJCSJTRUxFQ1QgRVhJU1RTIChTRUxFQ1QgMSBGUk9NIHBnX3JlcGxpY2F0aW9uX3Ns b3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdhY3RpdmVzbG90JyBBTkQgYWN0aXZlX3BpZCBJUyBO T1QgTlVMTCkiCisJCSkgb3IgZGllICJzbG90IG5ldmVyIGJlY2FtZSBhY3RpdmUiOworCX0K KworCXJldHVybiAkc2xvdF91c2VyX2hhbmRsZTsKK30KKworIyBDaGVjayBpZiBhbGwgdGhl IHNsb3RzIG9uIHN0YW5kYnkgYXJlIGRyb3BwZWQuIFRoZXNlIGluY2x1ZGUgdGhlICdhY3Rp dmVzbG90JworIyB0aGF0IHdhcyBhY3F1aXJlZCBieSBtYWtlX3Nsb3RfYWN0aXZlKCksIGFu ZCB0aGUgbm9uLWFjdGl2ZSAnaW5hY3RpdmVzbG90Jy4KK3N1YiBjaGVja19zbG90c19kcm9w cGVkCit7CisJbXkgKCRzbG90X3VzZXJfaGFuZGxlKSA9IEBfOworCW15ICRyZXR1cm47CisK Kwlpcygkbm9kZV9zdGFuZGJ5LT5zbG90KCdpbmFjdGl2ZXNsb3QnKS0+eydzbG90X3R5cGUn fSwgJycsICdpbmFjdGl2ZXNsb3Qgb24gc3RhbmRieSBkcm9wcGVkJyk7CisJaXMoJG5vZGVf c3RhbmRieS0+c2xvdCgnYWN0aXZlc2xvdCcpLT57J3Nsb3RfdHlwZSd9LCAnJywgJ2FjdGl2 ZXNsb3Qgb24gc3RhbmRieSBkcm9wcGVkJyk7CisKKwkjIG91ciBjbGllbnQgc2hvdWxkJ3Zl IHRlcm1pbmF0ZWQgaW4gcmVzcG9uc2UgdG8gdGhlIHdhbHNlbmRlciBlcnJvcgorCSRzbG90 X3VzZXJfaGFuZGxlLT5maW5pc2g7CisJJHJldHVybiA9ICQ/OworCWNtcF9vaygkcmV0dXJu LCAiIT0iLCAwLCAicGdfcmVjdmxvZ2ljYWwgZXhpdGVkIG5vbi16ZXJvIik7CisJaWYgKCRy ZXR1cm4pIHsKKwkJbGlrZSgkc3RkZXJyLCBxci9jb25mbGljdCB3aXRoIHJlY292ZXJ5Lywg J3Nsb3QgaGF2ZSBiZWVuIGRyb3BwZWQnKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgSW5pdGlhbGl6ZSBwcmltYXJ5IG5vZGUKKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCiskbm9kZV9wcmltYXJ5LT5pbml0KGFsbG93c19z dHJlYW1pbmcgPT4gMSwgaGFzX2FyY2hpdmluZyA9PiAxKTsKKyRub2RlX3ByaW1hcnktPmFw cGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCBxeword2FsX2xldmVsID0gJ2xvZ2ljYWwn CittYXhfcmVwbGljYXRpb25fc2xvdHMgPSA0CittYXhfd2FsX3NlbmRlcnMgPSA0Citsb2df bWluX21lc3NhZ2VzID0gJ2RlYnVnMicKK2xvZ19lcnJvcl92ZXJib3NpdHkgPSB2ZXJib3Nl Cit9KTsKKyRub2RlX3ByaW1hcnktPmR1bXBfaW5mbzsKKyRub2RlX3ByaW1hcnktPnN0YXJ0 OworCiskbm9kZV9wcmltYXJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFbQ1JFQVRFIERBVEFCQVNF IHRlc3RkYl0pOworCiskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsIHFxW1NF TEVDVCAqIEZST00gcGdfY3JlYXRlX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJyRwcmlt YXJ5X3Nsb3RuYW1lJyk7XSk7CitteSAkYmFja3VwX25hbWUgPSAnYjEnOworJG5vZGVfcHJp bWFyeS0+YmFja3VwKCRiYWNrdXBfbmFtZSk7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisjIEluaXRpYWxpemUgc3RhbmRieSBub2RlCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor Ciskbm9kZV9zdGFuZGJ5LT5pbml0X2Zyb21fYmFja3VwKAorCSRub2RlX3ByaW1hcnksICRi YWNrdXBfbmFtZSwKKwloYXNfc3RyZWFtaW5nID0+IDEsCisJaGFzX3Jlc3RvcmluZyA9PiAx KTsKKyRub2RlX3N0YW5kYnktPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLAorCXFx W3ByaW1hcnlfc2xvdF9uYW1lID0gJyRwcmltYXJ5X3Nsb3RuYW1lJ10pOworJG5vZGVfc3Rh bmRieS0+c3RhcnQ7Ciskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0 YW5kYnksICdyZXBsYXknLCAkbm9kZV9wcmltYXJ5LT5sc24oJ2ZsdXNoJykpOworCisKKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFRl c3QgdGhhdCBsb2dpY2FsIGRlY29kaW5nIG9uIHRoZSBzdGFuZGJ5CisjIGJlaGF2ZXMgY29y cmVjdGx5LgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKworY3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKworJG5vZGVfcHJpbWFyeS0+c2Fm ZV9wc3FsKCd0ZXN0ZGInLCBxcVtDUkVBVEUgVEFCTEUgZGVjb2RpbmdfdGVzdCh4IGludGVn ZXIsIHkgdGV4dCk7XSk7Ciskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsIHFx W0lOU0VSVCBJTlRPIGRlY29kaW5nX3Rlc3QoeCx5KSBTRUxFQ1Qgcywgczo6dGV4dCBGUk9N IGdlbmVyYXRlX3NlcmllcygxLDEwKSBzO10pOworCiskbm9kZV9wcmltYXJ5LT53YWl0X2Zv cl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9wcmltYXJ5LT5sc24o J2ZsdXNoJykpOworCitteSAkcmVzdWx0ID0gJG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKCd0 ZXN0ZGInLAorCXFxW1NFTEVDVCBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ2FjdGl2 ZXNsb3QnLCBOVUxMLCBOVUxMKTtdKTsKKworIyB0ZXN0IGlmIGJhc2ljIGRlY29kaW5nIHdv cmtzCitpcyhzY2FsYXIobXkgQGZvb2JhciA9IHNwbGl0IC9eL20sICRyZXN1bHQpLAorCTE0 LCAnRGVjb2RpbmcgcHJvZHVjZWQgMTQgcm93cycpOworCisjIEluc2VydCBzb21lIHJvd3Mg YW5kIHZlcmlmeSB0aGF0IHdlIGdldCB0aGUgc2FtZSByZXN1bHRzIGZyb20gcGdfcmVjdmxv Z2ljYWwKKyMgYW5kIHRoZSBTUUwgaW50ZXJmYWNlLgorJG5vZGVfcHJpbWFyeS0+c2FmZV9w c3FsKCd0ZXN0ZGInLAorCXFxW0lOU0VSVCBJTlRPIGRlY29kaW5nX3Rlc3QoeCx5KSBTRUxF Q1Qgcywgczo6dGV4dCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDQpIHM7XQorKTsKKworbXkg JGV4cGVjdGVkID0gcXtCRUdJTgordGFibGUgcHVibGljLmRlY29kaW5nX3Rlc3Q6IElOU0VS VDogeFtpbnRlZ2VyXToxIHlbdGV4dF06JzEnCit0YWJsZSBwdWJsaWMuZGVjb2RpbmdfdGVz dDogSU5TRVJUOiB4W2ludGVnZXJdOjIgeVt0ZXh0XTonMicKK3RhYmxlIHB1YmxpYy5kZWNv ZGluZ190ZXN0OiBJTlNFUlQ6IHhbaW50ZWdlcl06MyB5W3RleHRdOiczJwordGFibGUgcHVi bGljLmRlY29kaW5nX3Rlc3Q6IElOU0VSVDogeFtpbnRlZ2VyXTo0IHlbdGV4dF06JzQnCitD T01NSVR9OworCiskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5k YnksICdyZXBsYXknLCAkbm9kZV9wcmltYXJ5LT5sc24oJ2ZsdXNoJykpOworCitteSAkc3Rk b3V0X3NxbCA9ICRub2RlX3N0YW5kYnktPnNhZmVfcHNxbCgndGVzdGRiJywKKwlxcVtTRUxF Q1QgZGF0YSBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9wZWVrX2NoYW5nZXMoJ2FjdGl2ZXNsb3Qn LCBOVUxMLCBOVUxMLCAnaW5jbHVkZS14aWRzJywgJzAnLCAnc2tpcC1lbXB0eS14YWN0cycs ICcxJyk7XQorKTsKKworaXMoJHN0ZG91dF9zcWwsICRleHBlY3RlZCwgJ2dvdCBleHBlY3Rl ZCBvdXRwdXQgZnJvbSBTUUwgZGVjb2Rpbmcgc2Vzc2lvbicpOworCitteSAkZW5kcG9zID0g JG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKCd0ZXN0ZGInLAorCSJTRUxFQ1QgbHNuIEZST00g cGdfbG9naWNhbF9zbG90X3BlZWtfY2hhbmdlcygnYWN0aXZlc2xvdCcsIE5VTEwsIE5VTEwp IE9SREVSIEJZIGxzbiBERVNDIExJTUlUIDE7IgorKTsKK3ByaW50ICJ3YWl0aW5nIHRvIHJl cGxheSAkZW5kcG9zXG4iOworCisjIEluc2VydCBzb21lIHJvd3MgYWZ0ZXIgJGVuZHBvcywg d2hpY2ggd2Ugd29uJ3QgcmVhZC4KKyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgndGVzdGRi JywKKwlxcVtJTlNFUlQgSU5UTyBkZWNvZGluZ190ZXN0KHgseSkgU0VMRUNUIHMsIHM6OnRl eHQgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoNSw1MCkgcztdCispOworCiskbm9kZV9wcmltYXJ5 LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9wcmlt YXJ5LT5sc24oJ2ZsdXNoJykpOworCitteSAkc3Rkb3V0X3JlY3YgPSAkbm9kZV9zdGFuZGJ5 LT5wZ19yZWN2bG9naWNhbF91cHRvKAorICAgICd0ZXN0ZGInLCAnYWN0aXZlc2xvdCcsICRl bmRwb3MsIDE4MCwKKyAgICAnaW5jbHVkZS14aWRzJyAgICAgPT4gJzAnLAorICAgICdza2lw LWVtcHR5LXhhY3RzJyA9PiAnMScpOworY2hvbXAoJHN0ZG91dF9yZWN2KTsKK2lzKCRzdGRv dXRfcmVjdiwgJGV4cGVjdGVkLAorICAgICdnb3Qgc2FtZSBleHBlY3RlZCBvdXRwdXQgZnJv bSBwZ19yZWN2bG9naWNhbCBkZWNvZGluZyBzZXNzaW9uJyk7CisKKyRub2RlX3N0YW5kYnkt PnBvbGxfcXVlcnlfdW50aWwoJ3Rlc3RkYicsCisJIlNFTEVDVCBFWElTVFMgKFNFTEVDVCAx IEZST00gcGdfcmVwbGljYXRpb25fc2xvdHMgV0hFUkUgc2xvdF9uYW1lID0gJ2FjdGl2ZXNs b3QnIEFORCBhY3RpdmVfcGlkIElTIE5VTEwpIgorKSBvciBkaWUgInNsb3QgbmV2ZXIgYmVj YW1lIGluYWN0aXZlIjsKKworJHN0ZG91dF9yZWN2ID0gJG5vZGVfc3RhbmRieS0+cGdfcmVj dmxvZ2ljYWxfdXB0bygKKyAgICAndGVzdGRiJywgJ2FjdGl2ZXNsb3QnLCAkZW5kcG9zLCAx ODAsCisgICAgJ2luY2x1ZGUteGlkcycgICAgID0+ICcwJywKKyAgICAnc2tpcC1lbXB0eS14 YWN0cycgPT4gJzEnKTsKK2Nob21wKCRzdGRvdXRfcmVjdik7Citpcygkc3Rkb3V0X3JlY3Ys ICcnLCAncGdfcmVjdmxvZ2ljYWwgYWNrbm93bGVkZ2VkIGNoYW5nZXMnKTsKKworJG5vZGVf cHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdDUkVBVEUgREFUQUJBU0Ugb3RoZXJk YicpOworCitpcyggJG5vZGVfcHJpbWFyeS0+cHNxbCgKKyAgICAgICAgJ290aGVyZGInLAor ICAgICAgICAiU0VMRUNUIGxzbiBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9wZWVrX2NoYW5nZXMo J2FjdGl2ZXNsb3QnLCBOVUxMLCBOVUxMKSBPUkRFUiBCWSBsc24gREVTQyBMSU1JVCAxOyIK KyAgICApLAorICAgIDMsCisgICAgJ3JlcGxheWluZyBsb2dpY2FsIHNsb3QgZnJvbSBhbm90 aGVyIGRhdGFiYXNlIGZhaWxzJyk7CisKKyMgZHJvcCB0aGUgbG9naWNhbCBzbG90cworJG5v ZGVfc3RhbmRieS0+cHNxbCgncG9zdGdyZXMnLCBxW1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0 aW9uX3Nsb3QoJ2luYWN0aXZlc2xvdCcpXSk7Ciskbm9kZV9zdGFuZGJ5LT5wc3FsKCdwb3N0 Z3JlcycsIHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnYWN0aXZlc2xvdCcp XSk7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisjIFJlY292ZXJ5IGNvbmZsaWN0OiBJbnZhbGlkYXRlIGNvbmZsaWN0aW5nIHNsb3Rz LCBpbmNsdWRpbmcgaW4tdXNlIHNsb3RzCisjIFNjZW5hcmlvIDEgOiBob3Rfc3RhbmRieV9m ZWVkYmFjayBvZmYKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisKK2NyZWF0ZV9sb2dpY2FsX3Nsb3RzKCk7CisKKyMgT25lIHdheSB0byBy ZXByb2R1Y2UgcmVjb3ZlcnkgY29uZmxpY3QgaXMgdG8gcnVuIFZBQ1VVTSBGVUxMIHdpdGgK KyMgaG90X3N0YW5kYnlfZmVlZGJhY2sgdHVybmVkIG9mZiBvbiB0aGUgc3RhbmRieS4KKyRu b2RlX3N0YW5kYnktPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLHFbCitob3Rfc3Rh bmRieV9mZWVkYmFjayA9IG9mZgorXSk7Ciskbm9kZV9zdGFuZGJ5LT5yZXN0YXJ0OworIyBl bnN1cmUgd2FscmVjZWl2ZXIgZmVlZGJhY2sgb2ZmIGJ5IHdhaXRpbmcgZm9yIGV4cGVjdGVk IHhtaW4gYW5kCisjIGNhdGFsb2dfeG1pbiBvbiBwcmltYXJ5LiBCb3RoIHNob3VsZCBiZSBO VUxMIHNpbmNlIGhzX2ZlZWRiYWNrIGlzIG9mZgord2FpdF9mb3JfeG1pbnMoJG5vZGVfcHJp bWFyeSwgJHByaW1hcnlfc2xvdG5hbWUsCisJCQkgICAieG1pbiBJUyBOVUxMIEFORCBjYXRh bG9nX3htaW4gSVMgTlVMTCIpOworCiskaGFuZGxlID0gbWFrZV9zbG90X2FjdGl2ZSgxKTsK KworIyBUaGlzIHNob3VsZCB0cmlnZ2VyIHRoZSBjb25mbGljdAorJG5vZGVfcHJpbWFyeS0+ c2FmZV9wc3FsKCd0ZXN0ZGInLCAnVkFDVVVNIEZVTEwnKTsKKworJG5vZGVfcHJpbWFyeS0+ d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfcHJpbWFy eS0+bHNuKCdmbHVzaCcpKTsKKworIyBtZXNzYWdlIHNob3VsZCBiZSBpc3N1ZWQKK29rKCBm aW5kX2luX2xvZygKKyAgICRub2RlX3N0YW5kYnksCisgICJpbnZhbGlkYXRpbmcgc2xvdCBc ImluYWN0aXZlc2xvdFwiIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGggcmVjb3ZlcnkiKSwK KyAgJ2luYWN0aXZlc2xvdCBzbG90IGludmFsaWRhdGlvbiBpcyBsb2dnZWQnKTsKKworb2so IGZpbmRfaW5fbG9nKAorICAgJG5vZGVfc3RhbmRieSwKKyAgImludmFsaWRhdGluZyBzbG90 IFwiYWN0aXZlc2xvdFwiIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGggcmVjb3ZlcnkiKSwK KyAgJ2FjdGl2ZXNsb3Qgc2xvdCBpbnZhbGlkYXRpb24gaXMgbG9nZ2VkJyk7CisKKyMgVmVy aWZ5IHRoYXQgcGdfc3RhdF9kYXRhYmFzZV9jb25mbGljdHMuY29uZmxfbG9naWNhbHNsb3Qg aGFzIGJlZW4gdXBkYXRlZAorb2soICRub2RlX3N0YW5kYnktPnBvbGxfcXVlcnlfdW50aWwo CisJJ3Bvc3RncmVzJywKKwkic2VsZWN0IChjb25mbF9sb2dpY2Fsc2xvdCA9IDIpIGZyb20g cGdfc3RhdF9kYXRhYmFzZV9jb25mbGljdHMgd2hlcmUgZGF0bmFtZSA9ICd0ZXN0ZGInIiwg J3QnKSwKKwknY29uZmxfbG9naWNhbHNsb3QgdXBkYXRlZCcpIG9yIGRpZSAiVGltZWQgb3V0 IHdhaXRpbmcgY29uZmxfbG9naWNhbHNsb3QgdG8gYmUgdXBkYXRlZCI7CisKKyRoYW5kbGUg PSBtYWtlX3Nsb3RfYWN0aXZlKDApOwordXNsZWVwKDEwMF8wMDApOworCisjIFdlIGFyZSBu b3QgYWJsZSB0byByZWFkIGZyb20gdGhlIHNsb3QgYXMgaXQgaGFzIGJlZW4gaW52YWxpZGF0 ZWQKK29rKCBmaW5kX2luX2xvZygKKyAgICRub2RlX3N0YW5kYnksCisgICJjYW5ub3QgcmVh ZCBmcm9tIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCBcImFjdGl2ZXNsb3RcIiIpLAorICAn Y2Fubm90IHJlYWQgZnJvbSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3QnKTsKKworIyBUdXJu IGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIGJhY2sgb24KKyRub2RlX3N0YW5kYnktPmFwcGVuZF9j b25mKCdwb3N0Z3Jlc3FsLmNvbmYnLHFbCitob3Rfc3RhbmRieV9mZWVkYmFjayA9IG9uCitd KTsKKyRub2RlX3N0YW5kYnktPnJlc3RhcnQ7CisKKyMgZW5zdXJlIHdhbHJlY2VpdmVyIGZl ZWRiYWNrIHNlbnQgYnkgd2FpdGluZyBmb3IgZXhwZWN0ZWQgeG1pbiBhbmQKKyMgY2F0YWxv Z194bWluIG9uIHByaW1hcnkuIFdpdGggaG90X3N0YW5kYnlfZmVlZGJhY2sgb24sIHhtaW4g c2hvdWxkIGFkdmFuY2UsCisjIGJ1dCBjYXRhbG9nX3htaW4gc2hvdWxkIHN0aWxsIHJlbWFp biBOVUxMIHNpbmNlIHRoZXJlIGlzIG5vIGxvZ2ljYWwgc2xvdC4KK3dhaXRfZm9yX3htaW5z KCRub2RlX3ByaW1hcnksICRwcmltYXJ5X3Nsb3RuYW1lLAorCQkJICAgInhtaW4gSVMgTk9U IE5VTEwgQU5EIGNhdGFsb2dfeG1pbiBJUyBOVUxMIik7CisKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFJlY292ZXJ5IGNvbmZsaWN0 OiBJbnZhbGlkYXRlIGNvbmZsaWN0aW5nIHNsb3RzLCBpbmNsdWRpbmcgaW4tdXNlIHNsb3Rz CisjIFNjZW5hcmlvIDIgOiBpbmNvcnJlY3Qgd2FsX2xldmVsIG9uIHByaW1hcnkuCisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIGdl dCB0aGUgcG9zaXRpb24gdG8gc2VhcmNoIGZyb20gaW4gdGhlIHN0YW5kYnkgbG9nZmlsZQor bXkgJGxvZ3N0YXJ0ID0gZ2V0X2xvZ19zaXplKCRub2RlX3N0YW5kYnkpOworCisjIGRyb3Ag dGhlIGxvZ2ljYWwgc2xvdHMKKyRub2RlX3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVzJywgcVtT RUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdpbmFjdGl2ZXNsb3QnKV0pOworJG5v ZGVfc3RhbmRieS0+cHNxbCgncG9zdGdyZXMnLCBxW1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0 aW9uX3Nsb3QoJ2FjdGl2ZXNsb3QnKV0pOworCitjcmVhdGVfbG9naWNhbF9zbG90cygpOwor CiskaGFuZGxlID0gbWFrZV9zbG90X2FjdGl2ZSgxKTsKKworIyBNYWtlIHByaW1hcnkgd2Fs X2xldmVsIHJlcGxpY2EuIFRoaXMgd2lsbCB0cmlnZ2VyIHNsb3QgY29uZmxpY3QuCiskbm9k ZV9wcmltYXJ5LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJyxxWword2FsX2xldmVs ID0gJ3JlcGxpY2EnCitdKTsKKyRub2RlX3ByaW1hcnktPnJlc3RhcnQ7CisKKyRub2RlX3By aW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2Rl X3ByaW1hcnktPmxzbignZmx1c2gnKSk7CisKKyMgbWVzc2FnZSBzaG91bGQgYmUgaXNzdWVk CitvayggZmluZF9pbl9sb2coCisgICAkbm9kZV9zdGFuZGJ5LAorICAiaW52YWxpZGF0aW5n IHNsb3QgXCJpbmFjdGl2ZXNsb3RcIiBiZWNhdXNlIGl0IGNvbmZsaWN0cyB3aXRoIHJlY292 ZXJ5IiwgJGxvZ3N0YXJ0KSwKKyAgJ2luYWN0aXZlc2xvdCBzbG90IGludmFsaWRhdGlvbiBp cyBsb2dnZWQnKTsKKworb2soIGZpbmRfaW5fbG9nKAorICAgJG5vZGVfc3RhbmRieSwKKyAg ImludmFsaWRhdGluZyBzbG90IFwiYWN0aXZlc2xvdFwiIGJlY2F1c2UgaXQgY29uZmxpY3Rz IHdpdGggcmVjb3ZlcnkiLCAkbG9nc3RhcnQpLAorICAnYWN0aXZlc2xvdCBzbG90IGludmFs aWRhdGlvbiBpcyBsb2dnZWQnKTsKKworIyBWZXJpZnkgdGhhdCBwZ19zdGF0X2RhdGFiYXNl X2NvbmZsaWN0cy5jb25mbF9sb2dpY2Fsc2xvdCBoYXMgYmVlbiB1cGRhdGVkCitvayggJG5v ZGVfc3RhbmRieS0+cG9sbF9xdWVyeV91bnRpbCgKKwkncG9zdGdyZXMnLAorCSJzZWxlY3Qg KGNvbmZsX2xvZ2ljYWxzbG90ID0gMikgZnJvbSBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0 cyB3aGVyZSBkYXRuYW1lID0gJ3Rlc3RkYiciLCAndCcpLAorCSdjb25mbF9sb2dpY2Fsc2xv dCB1cGRhdGVkJykgb3IgZGllICJUaW1lZCBvdXQgd2FpdGluZyBjb25mbF9sb2dpY2Fsc2xv dCB0byBiZSB1cGRhdGVkIjsKKworJGhhbmRsZSA9IG1ha2Vfc2xvdF9hY3RpdmUoMCk7Cit1 c2xlZXAoMTAwXzAwMCk7CisKK29rKCBmaW5kX2luX2xvZygKKyAgICRub2RlX3N0YW5kYnks CisgICJsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnkgcmVxdWlyZXMgd2FsX2xldmVsID49 IGxvZ2ljYWwgb24gbWFzdGVyIiwgJGxvZ3N0YXJ0KSwKKyAgJ2Nhbm5vdCBzdGFydCByZXBs aWNhdGlvbiBiZWNhdXNlIHdhbF9sZXZlbCA8IGxvZ2ljYWwgb24gbWFzdGVyJyk7CisKKyMg UmVzdG9yZSBwcmltYXJ5IHdhbF9sZXZlbAorJG5vZGVfcHJpbWFyeS0+YXBwZW5kX2NvbmYo J3Bvc3RncmVzcWwuY29uZicscVsKK3dhbF9sZXZlbCA9ICdsb2dpY2FsJworXSk7Ciskbm9k ZV9wcmltYXJ5LT5yZXN0YXJ0OworJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfY2F0Y2h1cCgk bm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVzaCcpKTsK KworJGhhbmRsZSA9IG1ha2Vfc2xvdF9hY3RpdmUoMCk7Cit1c2xlZXAoMTAwXzAwMCk7CisK KyMgYXMgdGhlIHNsb3QgaGFzIGJlZW4gaW52YWxpZGF0ZWQgd2Ugc2hvdWxkIG5vdCBiZSBh YmxlIHRvIHJlYWQKK29rKCBmaW5kX2luX2xvZygKKyAgICRub2RlX3N0YW5kYnksCisgICJj YW5ub3QgcmVhZCBmcm9tIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCBcImFjdGl2ZXNsb3Rc IiIsICRsb2dzdGFydCksCisgICdjYW5ub3QgcmVhZCBmcm9tIGxvZ2ljYWwgcmVwbGljYXRp b24gc2xvdCcpOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworIyBEUk9QIERBVEFCQVNFIHNob3VsZCBkcm9wcyBpdCdzIHNsb3RzLCBp bmNsdWRpbmcgYWN0aXZlIHNsb3RzLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKworJG5vZGVfc3RhbmRieS0+cHNxbCgncG9zdGdyZXMn LCBxW1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2luYWN0aXZlc2xvdCcpXSk7 Ciskbm9kZV9zdGFuZGJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFbU0VMRUNUIHBnX2Ryb3BfcmVw bGljYXRpb25fc2xvdCgnYWN0aXZlc2xvdCcpXSk7CitjcmVhdGVfbG9naWNhbF9zbG90cygp OworJGhhbmRsZSA9IG1ha2Vfc2xvdF9hY3RpdmUoMSk7CisjIENyZWF0ZSBhIHNsb3Qgb24g YSBkYXRhYmFzZSB0aGF0IHdvdWxkIG5vdCBiZSBkcm9wcGVkLiBUaGlzIHNsb3Qgc2hvdWxk IG5vdAorIyBnZXQgZHJvcHBlZC4KKyRub2RlX3N0YW5kYnktPmNyZWF0ZV9sb2dpY2FsX3Ns b3Rfb25fc3RhbmRieSgkbm9kZV9wcmltYXJ5LCAnb3RoZXJzbG90JywgJ3Bvc3RncmVzJyk7 CisKKyMgZHJvcGRiIG9uIHRoZSBwcmltYXJ5IHRvIHZlcmlmeSBzbG90cyBhcmUgZHJvcHBl ZCBvbiBzdGFuZGJ5Ciskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcVtE Uk9QIERBVEFCQVNFIHRlc3RkYl0pOworCiskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9jYXRj aHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9wcmltYXJ5LT5sc24oJ2ZsdXNo JykpOworCitpcygkbm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxW1NF TEVDVCBFWElTVFMoU0VMRUNUIDEgRlJPTSBwZ19kYXRhYmFzZSBXSEVSRSBkYXRuYW1lID0g J3Rlc3RkYicpXSksICdmJywKKwknZGF0YWJhc2UgZHJvcHBlZCBvbiBzdGFuZGJ5Jyk7CisK K2NoZWNrX3Nsb3RzX2Ryb3BwZWQoJGhhbmRsZSk7CisKK2lzKCRub2RlX3N0YW5kYnktPnNs b3QoJ290aGVyc2xvdCcpLT57J3Nsb3RfdHlwZSd9LCAnbG9naWNhbCcsCisJJ290aGVyc2xv dCBvbiBzdGFuZGJ5IG5vdCBkcm9wcGVkJyk7CisKKyMgQ2xlYW51cCA6IG1hbnVhbGx5IGRy b3AgdGhlIHNsb3QgdGhhdCB3YXMgbm90IGRyb3BwZWQuCiskbm9kZV9zdGFuZGJ5LT5wc3Fs KCdwb3N0Z3JlcycsIHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnb3RoZXJz bG90JyldKTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMgVGVzdCBzdGFuZGJ5IHByb21vdGlvbiBhbmQgbG9naWNhbCBkZWNvZGlu ZyBiZWhhdmlvcgorIyBhZnRlciB0aGUgc3RhbmRieSBnZXRzIHByb21vdGVkLgorIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworJG5vZGVf cHJpbWFyeS0+cHNxbCgncG9zdGdyZXMnLCBxW0NSRUFURSBEQVRBQkFTRSB0ZXN0ZGJdKTsK KyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbQ1JFQVRFIFRBQkxFIGRl Y29kaW5nX3Rlc3QoeCBpbnRlZ2VyLCB5IHRleHQpO10pOworCisjIGNyZWF0ZSB0aGUgbG9n aWNhbCBzbG90cworY3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKworIyBJbnNlcnQgc29tZSBy b3dzIGJlZm9yZSB0aGUgcHJvbW90aW9uCiskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Rl c3RkYicsCisJcXFbSU5TRVJUIElOVE8gZGVjb2RpbmdfdGVzdCh4LHkpIFNFTEVDVCBzLCBz Ojp0ZXh0IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsNCkgcztdCispOworCiskbm9kZV9wcmlt YXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9w cmltYXJ5LT5sc24oJ2ZsdXNoJykpOworCisjIHByb21vdGUKKyRub2RlX3N0YW5kYnktPnBy b21vdGU7CisKKyMgaW5zZXJ0IHNvbWUgcm93cyBvbiBwcm9tb3RlZCBzdGFuZGJ5Ciskbm9k ZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsCisJcXFbSU5TRVJUIElOVE8gZGVjb2Rp bmdfdGVzdCh4LHkpIFNFTEVDVCBzLCBzOjp0ZXh0IEZST00gZ2VuZXJhdGVfc2VyaWVzKDUs NykgcztdCispOworCisKKyRleHBlY3RlZCA9IHF7QkVHSU4KK3RhYmxlIHB1YmxpYy5kZWNv ZGluZ190ZXN0OiBJTlNFUlQ6IHhbaW50ZWdlcl06MSB5W3RleHRdOicxJwordGFibGUgcHVi bGljLmRlY29kaW5nX3Rlc3Q6IElOU0VSVDogeFtpbnRlZ2VyXToyIHlbdGV4dF06JzInCit0 YWJsZSBwdWJsaWMuZGVjb2RpbmdfdGVzdDogSU5TRVJUOiB4W2ludGVnZXJdOjMgeVt0ZXh0 XTonMycKK3RhYmxlIHB1YmxpYy5kZWNvZGluZ190ZXN0OiBJTlNFUlQ6IHhbaW50ZWdlcl06 NCB5W3RleHRdOic0JworQ09NTUlUCitCRUdJTgordGFibGUgcHVibGljLmRlY29kaW5nX3Rl c3Q6IElOU0VSVDogeFtpbnRlZ2VyXTo1IHlbdGV4dF06JzUnCit0YWJsZSBwdWJsaWMuZGVj b2RpbmdfdGVzdDogSU5TRVJUOiB4W2ludGVnZXJdOjYgeVt0ZXh0XTonNicKK3RhYmxlIHB1 YmxpYy5kZWNvZGluZ190ZXN0OiBJTlNFUlQ6IHhbaW50ZWdlcl06NyB5W3RleHRdOic3Jwor Q09NTUlUfTsKKworIyBjaGVjayB0aGF0IHdlIGFyZSBkZWNvZGluZyBwcmUgYW5kIHBvc3Qg cHJvbW90aW9uIGluc2VydGVkIHJvd3MKKyRzdGRvdXRfc3FsID0gJG5vZGVfc3RhbmRieS0+ c2FmZV9wc3FsKCd0ZXN0ZGInLAorCXFxW1NFTEVDVCBkYXRhIEZST00gcGdfbG9naWNhbF9z bG90X3BlZWtfY2hhbmdlcygnYWN0aXZlc2xvdCcsIE5VTEwsIE5VTEwsICdpbmNsdWRlLXhp ZHMnLCAnMCcsICdza2lwLWVtcHR5LXhhY3RzJywgJzEnKTtdCispOworCitpcygkc3Rkb3V0 X3NxbCwgJGV4cGVjdGVkLCAnZ290IGV4cGVjdGVkIG91dHB1dCBmcm9tIFNRTCBkZWNvZGlu ZyBzZXNzaW9uIG9uIHByb21vdGVkIHN0YW5kYnknKTsKLS0gCjIuMTguNAoK --------------A2B3C3F1A3D498E906D62BDD Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v22-0003-Allow-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v22-0003-Allow-logical-decoding-on-standby.patch" RnJvbSA5ZjRkYTdmNWVmMzRhZTZlNTkyMGNkYzNmMzQ1MTMzZGFiMWUyODJiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogTW9uLCAyIEF1ZyAyMDIxIDEzOjU2OjM2ICswMDAwClN1YmplY3Q6IFtQQVRD SCB2MjIgMy81XSBBbGxvdyBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnkuCgpBbGxvdyBh IGxvZ2ljYWwgc2xvdCB0byBiZSBjcmVhdGVkIG9uIHN0YW5kYnkuIFJlc3RyaWN0IGl0cyB1 c2FnZQpvciBpdHMgY3JlYXRpb24gaWYgd2FsX2xldmVsIG9uIHByaW1hcnkgaXMgbGVzcyB0 aGFuIGxvZ2ljYWwuCkR1cmluZyBzbG90IGNyZWF0aW9uLCBpdCdzIHJlc3RhcnRfbHNuIGlz IHNldCB0byB0aGUgbGFzdCByZXBsYXllZApMU04uIEVmZmVjdGl2ZWx5LCBhIGxvZ2ljYWwg c2xvdCBjcmVhdGlvbiBvbiBzdGFuZGJ5IHdhaXRzIGZvciBhbgp4bF9ydW5uaW5nX3hhY3Qg cmVjb3JkIHRvIGFycml2ZSBmcm9tIHByaW1hcnkuIENvbmZsaWN0aW5nIHNsb3RzCndvdWxk IGJlIGhhbmRsZWQgaW4gbmV4dCBjb21taXRzLgoKQXV0aG9yOiBBbmRyZXMgRnJldW5kIChp biBhbiBvbGRlciB2ZXJzaW9uKSwgQW1pdCBLaGFuZGVrYXIsIEJlcnRyYW5kIERyb3V2b3QK UmV2aWV3ZWQtQnk6IEJlcnRyYW5kIERyb3V2b3QsIEFuZHJlcyBGcmV1bmQsIFJvYmVydCBI YWFzLCBGYWJyaXppbyBkZSBSb3llcyBNZWxsbwotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3hsb2cuYyAgICAgICAgICAgICB8IDMzICsrKysrKysrKystCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS94bG9nZnVuY3MuYyAgICAgICAgfCAgMiArLQogc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0veGxvZ3V0aWxzLmMgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNr ZW5kL3Bvc3RtYXN0ZXIvY2hlY2twb2ludGVyLmMgICAgICAgICB8ICA0ICstCiBzcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jICAgICAgfCAyMiArKysrKysrLQog c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMgICAgIHwgMzcgKysr KysrLS0tLS0tCiAuLi4vcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVuY3MuYyAgICAg ICAgfCAgMiArLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jICAgICAgICAgICAg ICAgIHwgNTYgKysrKysrKysrKy0tLS0tLS0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v c2xvdGZ1bmNzLmMgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3dhbHJlY2VpdmVyLmMgICAgICAgICB8ICA0ICstCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlv bi93YWxyZWNlaXZlcmZ1bmNzLmMgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vd2Fsc2VuZGVyLmMgICAgICAgICAgIHwgMjYgKysrKysrLS0tCiBzcmMvaW5jbHVkZS9h Y2Nlc3MveGxvZy5oICAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogMTMgZmlsZXMgY2hh bmdlZCwgMTMyIGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQogIDE2LjclIHNyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtLwogIDMyLjclIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvCiAgNDUuMiUgc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vCiAgIDUuMyUgc3Jj LwoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwppbmRleCAxZmY3NzUxODU3Li5hNjUz ZjAxODRkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCkBAIC01MDgyLDYgKzUw ODIsMTcgQEAgTG9jYWxQcm9jZXNzQ29udHJvbEZpbGUoYm9vbCByZXNldCkKIAlSZWFkQ29u dHJvbEZpbGUoKTsKIH0KIAorLyoKKyAqIEdldCB0aGUgd2FsX2xldmVsIGZyb20gdGhlIGNv bnRyb2wgZmlsZS4gRm9yIGEgc3RhbmRieSwgdGhpcyB2YWx1ZSBzaG91bGQgYmUKKyAqIGNv bnNpZGVyZWQgYXMgaXRzIGFjdGl2ZSB3YWxfbGV2ZWwsIGJlY2F1c2UgaXQgbWF5IGJlIGRp ZmZlcmVudCBmcm9tIHdoYXQKKyAqIHdhcyBvcmlnaW5hbGx5IGNvbmZpZ3VyZWQgb24gc3Rh bmRieS4KKyAqLworV2FsTGV2ZWwKK0dldEFjdGl2ZVdhbExldmVsT25TdGFuZGJ5KHZvaWQp Cit7CisJcmV0dXJuIENvbnRyb2xGaWxlLT53YWxfbGV2ZWw7Cit9CisKIC8qCiAgKiBJbml0 aWFsaXphdGlvbiBvZiBzaGFyZWQgbWVtb3J5IGZvciBYTE9HCiAgKi8KQEAgLTk2MTQsNyAr OTYyNSw3IEBAIENyZWF0ZVJlc3RhcnRQb2ludChpbnQgZmxhZ3MpCiAJICogd2hpY2hldmVy IGlzIGxhdGVyLgogCSAqLwogCXJlY2VpdmVQdHIgPSBHZXRXYWxSY3ZGbHVzaFJlY1B0cihO VUxMLCBOVUxMKTsKLQlyZXBsYXlQdHIgPSBHZXRYTG9nUmVwbGF5UmVjUHRyKCZyZXBsYXlU TEkpOworCXJlcGxheVB0ciA9IEdldFhMb2dSZXBsYXlSZWNQdHIoJnJlcGxheVRMSSwgZmFs c2UpOwogCWVuZHB0ciA9IChyZWNlaXZlUHRyIDwgcmVwbGF5UHRyKSA/IHJlcGxheVB0ciA6 IHJlY2VpdmVQdHI7CiAJS2VlcExvZ1NlZyhlbmRwdHIsICZfbG9nU2VnTm8pOwogCWlmIChJ bnZhbGlkYXRlT2Jzb2xldGVSZXBsaWNhdGlvblNsb3RzKF9sb2dTZWdObykpCkBAIC0xMTc1 Miw3ICsxMTc2Myw3IEBAIHJlZ2lzdGVyX3BlcnNpc3RlbnRfYWJvcnRfYmFja3VwX2hhbmRs ZXIodm9pZCkKICAqIEV4cG9ydGVkIHRvIGFsbG93IFdBTFJlY2VpdmVyIHRvIHJlYWQgdGhl IHBvaW50ZXIgZGlyZWN0bHkuCiAgKi8KIFhMb2dSZWNQdHIKLUdldFhMb2dSZXBsYXlSZWNQ dHIoVGltZUxpbmVJRCAqcmVwbGF5VExJKQorR2V0WExvZ1JlcGxheVJlY1B0cihUaW1lTGlu ZUlEICpyZXBsYXlUTEksIGJvb2wgYXZvaWRfaGVhZGVyKQogewogCVhMb2dSZWNQdHIJcmVj cHRyOwogCVRpbWVMaW5lSUQJdGxpOwpAQCAtMTE3NjQsNiArMTE3NzUsMjQgQEAgR2V0WExv Z1JlcGxheVJlY1B0cihUaW1lTGluZUlEICpyZXBsYXlUTEkpCiAKIAlpZiAocmVwbGF5VExJ KQogCQkqcmVwbGF5VExJID0gdGxpOworCisJLyoKKwkgKiBSZXBsYXkgcG9pbnRlciBtYXkg cG9pbnQgb25lIHBhc3QgdGhlIGVuZCBvZiB0aGUgcmVjb3JkLiBJZiB0aGF0CisJICogaXMg YSBYTE9HIHBhZ2UgYm91bmRhcnksIGl0IHdpbGwgbm90IGJlIGEgdmFsaWQgTFNOIGZvciB0 aGUKKwkgKiBzdGFydCBvZiBhIHJlY29yZCwgc28gYnVtcCBpdCB1cCBwYXN0IHRoZSBwYWdl IGhlYWRlci4KKwkgKi8KKwlpZiAoYXZvaWRfaGVhZGVyICYmICFYUmVjT2ZmSXNWYWxpZChy ZWNwdHIpKQorCXsKKwkJaWYgKHJlY3B0ciAlIFhMT0dfQkxDS1NaICE9IDApCisJCQllbG9n KEVSUk9SLCAiaW52YWxpZCByZXBsYXkgcG9pbnRlciIpOworCisJCS8qIEZvciB0aGUgZmly c3QgcGFnZSBvZiBhIHNlZ21lbnQgZmlsZSwgaXQncyBhIGxvbmcgaGVhZGVyICovCisJCWlm IChYTG9nU2VnbWVudE9mZnNldChyZWNwdHIsIHdhbF9zZWdtZW50X3NpemUpID09IDApCisJ CQlyZWNwdHIgKz0gU2l6ZU9mWExvZ0xvbmdQSEQ7CisJCWVsc2UKKwkJCXJlY3B0ciArPSBT aXplT2ZYTG9nU2hvcnRQSEQ7CisJfQorCiAJcmV0dXJuIHJlY3B0cjsKIH0KIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2Z1bmNzLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nZnVuY3MuYwppbmRleCBiOThkZWI3MmVjLi5hMTcz ZjhkNmZjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nZnVu Y3MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nZnVuY3MuYwpAQCAt NDE3LDcgKzQxNyw3IEBAIHBnX2xhc3Rfd2FsX3JlcGxheV9sc24oUEdfRlVOQ1RJT05fQVJH UykKIHsKIAlYTG9nUmVjUHRyCXJlY3B0cjsKIAotCXJlY3B0ciA9IEdldFhMb2dSZXBsYXlS ZWNQdHIoTlVMTCk7CisJcmVjcHRyID0gR2V0WExvZ1JlcGxheVJlY1B0cihOVUxMLCBmYWxz ZSk7CiAKIAlpZiAocmVjcHRyID09IDApCiAJCVBHX1JFVFVSTl9OVUxMKCk7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ndXRpbHMuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2d1dGlscy5jCmluZGV4IGIxNzAyYmM2YmUuLjljYzJh MjE0NGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2d1dGls cy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2d1dGlscy5jCkBAIC04 NzAsNyArODcwLDcgQEAgcmVhZF9sb2NhbF94bG9nX3BhZ2UoWExvZ1JlYWRlclN0YXRlICpz dGF0ZSwgWExvZ1JlY1B0ciB0YXJnZXRQYWdlUHRyLAogCQlpZiAoIVJlY292ZXJ5SW5Qcm9n cmVzcygpKQogCQkJcmVhZF91cHRvID0gR2V0Rmx1c2hSZWNQdHIoKTsKIAkJZWxzZQotCQkJ cmVhZF91cHRvID0gR2V0WExvZ1JlcGxheVJlY1B0cigmVGhpc1RpbWVMaW5lSUQpOworCQkJ cmVhZF91cHRvID0gR2V0WExvZ1JlcGxheVJlY1B0cigmVGhpc1RpbWVMaW5lSUQsIGZhbHNl KTsKIAkJdGxpID0gVGhpc1RpbWVMaW5lSUQ7CiAKIAkJLyoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3Bvc3RtYXN0ZXIvY2hlY2twb2ludGVyLmMgYi9zcmMvYmFja2VuZC9wb3N0bWFz dGVyL2NoZWNrcG9pbnRlci5jCmluZGV4IGJjOWFjN2NjZmEuLjM5ZTRkYTZiMzUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvY2hlY2twb2ludGVyLmMKKysrIGIvc3Jj L2JhY2tlbmQvcG9zdG1hc3Rlci9jaGVja3BvaW50ZXIuYwpAQCAtNDM0LDcgKzQzNCw3IEBA IENoZWNrcG9pbnRlck1haW4odm9pZCkKIAkJCSAqLwogCQkJY2twdF9hY3RpdmUgPSB0cnVl OwogCQkJaWYgKGRvX3Jlc3RhcnRwb2ludCkKLQkJCQlja3B0X3N0YXJ0X3JlY3B0ciA9IEdl dFhMb2dSZXBsYXlSZWNQdHIoTlVMTCk7CisJCQkJY2twdF9zdGFydF9yZWNwdHIgPSBHZXRY TG9nUmVwbGF5UmVjUHRyKE5VTEwsIGZhbHNlKTsKIAkJCWVsc2UKIAkJCQlja3B0X3N0YXJ0 X3JlY3B0ciA9IEdldEluc2VydFJlY1B0cigpOwogCQkJY2twdF9zdGFydF90aW1lID0gbm93 OwpAQCAtNzk4LDcgKzc5OCw3IEBAIElzQ2hlY2twb2ludE9uU2NoZWR1bGUoZG91YmxlIHBy b2dyZXNzKQogCSAqIHZhbHVlIHRoYXQgd2FzIGluIGVmZmVjdCB3aGVuIHRoZSBXQUwgd2Fz IGdlbmVyYXRlZCkuCiAJICovCiAJaWYgKFJlY292ZXJ5SW5Qcm9ncmVzcygpKQotCQlyZWNw dHIgPSBHZXRYTG9nUmVwbGF5UmVjUHRyKE5VTEwpOworCQlyZWNwdHIgPSBHZXRYTG9nUmVw bGF5UmVjUHRyKE5VTEwsIGZhbHNlKTsKIAllbHNlCiAJCXJlY3B0ciA9IEdldEluc2VydFJl Y1B0cigpOwogCWVsYXBzZWRfeGxvZ3MgPSAoKChkb3VibGUpIChyZWNwdHIgLSBja3B0X3N0 YXJ0X3JlY3B0cikpIC8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvZGVjb2RlLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29k ZS5jCmluZGV4IDI4NzRkYzA2MTIuLmI4YmUwYzgzZWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC9kZWNvZGUuYwpAQCAtMjE1LDExICsyMTUsMzEgQEAgRGVjb2Rl WExvZ09wKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwgWExvZ1JlY29yZEJ1ZmZlciAq YnVmKQogCQkJICogY2FuIHJlc3RhcnQgZnJvbSB0aGVyZS4KIAkJCSAqLwogCQkJYnJlYWs7 CisJCWNhc2UgWExPR19QQVJBTUVURVJfQ0hBTkdFOgorCQl7CisJCQl4bF9wYXJhbWV0ZXJf Y2hhbmdlICp4bHJlYyA9CisJCQkJKHhsX3BhcmFtZXRlcl9jaGFuZ2UgKikgWExvZ1JlY0dl dERhdGEoYnVmLT5yZWNvcmQpOworCisJCQkvKgorCQkJICogSWYgd2FsX2xldmVsIG9uIHBy aW1hcnkgaXMgcmVkdWNlZCB0byBsZXNzIHRoYW4gbG9naWNhbCwgdGhlbiB3ZQorCQkJICog d2FudCB0byBwcmV2ZW50IGV4aXN0aW5nIGxvZ2ljYWwgc2xvdHMgZnJvbSBiZWluZyB1c2Vk LgorCQkJICogRXhpc3RpbmcgbG9naWNhbCBzbG90cyBvbiBzdGFuZGJ5IGdldCBpbnZhbGlk YXRlZCB3aGVuIHRoaXMgV0FMCisJCQkgKiByZWNvcmQgaXMgcmVwbGF5ZWQ7IGFuZCBmdXJ0 aGVyLCBzbG90IGNyZWF0aW9uIGZhaWxzIHdoZW4gdGhlCisJCQkgKiB3YWwgbGV2ZWwgaXMg bm90IHN1ZmZpY2llbnQ7IGJ1dCBhbGwgdGhlc2Ugb3BlcmF0aW9ucyBhcmUgbm90CisJCQkg KiBzeW5jaHJvbml6ZWQsIHNvIGEgbG9naWNhbCBzbG90IG1heSBjcmVlcCBpbiB3aGlsZSB0 aGUgd2FsX2xldmVsCisJCQkgKiBpcyBiZWluZyByZWR1Y2VkLiBIZW5jZSB0aGlzIGV4dHJh IGNoZWNrLgorCQkJICovCisJCQlpZiAoeGxyZWMtPndhbF9sZXZlbCA8IFdBTF9MRVZFTF9M T0dJQ0FMKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX09C SkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJCSBlcnJtc2coImxvZ2lj YWwgZGVjb2Rpbmcgb24gc3RhbmRieSByZXF1aXJlcyAiCisJCQkJCQkJCSJ3YWxfbGV2ZWwg Pj0gbG9naWNhbCBvbiBtYXN0ZXIiKSkpOworCQkJYnJlYWs7CisJCX0KIAkJY2FzZSBYTE9H X05PT1A6CiAJCWNhc2UgWExPR19ORVhUT0lEOgogCQljYXNlIFhMT0dfU1dJVENIOgogCQlj YXNlIFhMT0dfQkFDS1VQX0VORDoKLQkJY2FzZSBYTE9HX1BBUkFNRVRFUl9DSEFOR0U6CiAJ CWNhc2UgWExPR19SRVNUT1JFX1BPSU5UOgogCQljYXNlIFhMT0dfRlBXX0NIQU5HRToKIAkJ Y2FzZSBYTE9HX0ZQSV9GT1JfSElOVDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC9sb2dpY2FsLmMKaW5kZXggNjRiODI4MGMxMy4uYzEzNGZlZWY4OSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKKysrIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKQEAgLTExOSwyMyArMTE5 LDIyIEBAIENoZWNrTG9naWNhbERlY29kaW5nUmVxdWlyZW1lbnRzKHZvaWQpCiAJCQkJKGVy cmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCiAJCQkJ IGVycm1zZygibG9naWNhbCBkZWNvZGluZyByZXF1aXJlcyBhIGRhdGFiYXNlIGNvbm5lY3Rp b24iKSkpOwogCi0JLyogLS0tLQotCSAqIFRPRE86IFdlIGdvdCB0byBjaGFuZ2UgdGhhdCBz b21lZGF5IHNvb24uLi4KLQkgKgotCSAqIFRoZXJlJ3MgYmFzaWNhbGx5IHRocmVlIHRoaW5n cyBtaXNzaW5nIHRvIGFsbG93IHRoaXM6Ci0JICogMSkgV2UgbmVlZCB0byBiZSBhYmxlIHRv IGNvcnJlY3RseSBhbmQgcXVpY2tseSBpZGVudGlmeSB0aGUgdGltZWxpbmUgYQotCSAqCSAg TFNOIGJlbG9uZ3MgdG8KLQkgKiAyKSBXZSBuZWVkIHRvIGZvcmNlIGhvdF9zdGFuZGJ5X2Zl ZWRiYWNrIHRvIGJlIGVuYWJsZWQgYXQgYWxsIHRpbWVzIHNvCi0JICoJICB0aGUgcHJpbWFy eSBjYW5ub3QgcmVtb3ZlIHJvd3Mgd2UgbmVlZC4KLQkgKiAzKSBzdXBwb3J0IGRyb3BwaW5n IHJlcGxpY2F0aW9uIHNsb3RzIHJlZmVycmluZyB0byBhIGRhdGFiYXNlLCBpbgotCSAqCSAg ZGJhc2VfcmVkby4gVGhlcmUgY2FuJ3QgYmUgYW55IGFjdGl2ZSBvbmVzIGR1ZSB0byBIUyBy ZWNvdmVyeQotCSAqCSAgY29uZmxpY3RzLCBzbyB0aGF0IHNob3VsZCBiZSByZWxhdGl2ZWx5 IGVhc3kuCi0JICogLS0tLQotCSAqLwogCWlmIChSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKLQkJ ZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBP UlRFRCksCi0JCQkJIGVycm1zZygibG9naWNhbCBkZWNvZGluZyBjYW5ub3QgYmUgdXNlZCB3 aGlsZSBpbiByZWNvdmVyeSIpKSk7CisJeworCQkvKgorCQkgKiBUaGlzIGNoZWNrIG1heSBo YXZlIHJhY2UgY29uZGl0aW9ucywgYnV0IHdoZW5ldmVyCisJCSAqIFhMT0dfUEFSQU1FVEVS X0NIQU5HRSBpbmRpY2F0ZXMgdGhhdCB3YWxfbGV2ZWwgaGFzIGNoYW5nZWQsIHdlCisJCSAq IHZlcmlmeSB0aGF0IHRoZXJlIGFyZSBubyBleGlzdGluZyBsb2dpY2FsIHJlcGxpY2F0aW9u IHNsb3RzLiBBbmQgdG8KKwkJICogYXZvaWQgcmFjZXMgYXJvdW5kIGNyZWF0aW5nIGEgbmV3 IHNsb3QsCisJCSAqIENoZWNrTG9naWNhbERlY29kaW5nUmVxdWlyZW1lbnRzKCkgaXMgY2Fs bGVkIG9uY2UgYmVmb3JlIGNyZWF0aW5nCisJCSAqIHRoZSBzbG90LCBhbmQgb25jZSB3aGVu IGxvZ2ljYWwgZGVjb2RpbmcgaXMgaW5pdGlhbGx5IHN0YXJ0aW5nIHVwLgorCQkgKi8KKwkJ aWYgKEdldEFjdGl2ZVdhbExldmVsT25TdGFuZGJ5KCkgPCBXQUxfTEVWRUxfTE9HSUNBTCkK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9J Tl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJCQkgZXJybXNnKCJsb2dpY2FsIGRlY29kaW5n IG9uIHN0YW5kYnkgcmVxdWlyZXMgIgorCQkJCQkJCSJ3YWxfbGV2ZWwgPj0gbG9naWNhbCBv biBtYXN0ZXIiKSkpOworCX0KIH0KIAogLyoKQEAgLTMzMCw2ICszMjksMTIgQEAgQ3JlYXRl SW5pdERlY29kaW5nQ29udGV4dChjb25zdCBjaGFyICpwbHVnaW4sCiAJTG9naWNhbERlY29k aW5nQ29udGV4dCAqY3R4OwogCU1lbW9yeUNvbnRleHQgb2xkX2NvbnRleHQ7CiAKKwkvKgor CSAqIE9uIHN0YW5kYnksIHRoaXMgY2hlY2sgaXMgYWxzbyByZXF1aXJlZCB3aGlsZSBjcmVh dGluZyB0aGUgc2xvdC4gQ2hlY2sKKwkgKiB0aGUgY29tbWVudHMgaW4gdGhpcyBmdW5jdGlv bi4KKwkgKi8KKwlDaGVja0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVtZW50cygpOworCiAJLyog c2hvcnRlciBsaW5lcy4uLiAqLwogCXNsb3QgPSBNeVJlcGxpY2F0aW9uU2xvdDsKIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVuY3Mu YyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMKaW5k ZXggMWQ5NDAwZWE2My4uOTA2OWYzZTUwZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jCkBAIC0yMjMsNyArMjIzLDcgQEAgcGdf bG9naWNhbF9zbG90X2dldF9jaGFuZ2VzX2d1dHMoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8s IGJvb2wgY29uZmlybSwgYm9vbCBiaW4KIAlpZiAoIVJlY292ZXJ5SW5Qcm9ncmVzcygpKQog CQllbmRfb2Zfd2FsID0gR2V0Rmx1c2hSZWNQdHIoKTsKIAllbHNlCi0JCWVuZF9vZl93YWwg PSBHZXRYTG9nUmVwbGF5UmVjUHRyKCZUaGlzVGltZUxpbmVJRCk7CisJCWVuZF9vZl93YWwg PSBHZXRYTG9nUmVwbGF5UmVjUHRyKCZUaGlzVGltZUxpbmVJRCwgZmFsc2UpOwogCiAJUmVw bGljYXRpb25TbG90QWNxdWlyZShOYW1lU3RyKCpuYW1lKSwgdHJ1ZSk7CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3Nsb3QuYwppbmRleCA2ZTg5YmFiMjU1Li4yNTFhZjE3MjUzIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vc2xvdC5jCkBAIC0xMDg4LDM3ICsxMDg4LDI4IEBAIFJlcGxpY2F0aW9uU2xv dFJlc2VydmVXYWwodm9pZCkKIAkJLyoKIAkJICogRm9yIGxvZ2ljYWwgc2xvdHMgbG9nIGEg c3RhbmRieSBzbmFwc2hvdCBhbmQgc3RhcnQgbG9naWNhbCBkZWNvZGluZwogCQkgKiBhdCBl eGFjdGx5IHRoYXQgcG9zaXRpb24uIFRoYXQgYWxsb3dzIHRoZSBzbG90IHRvIHN0YXJ0IHVw IG1vcmUKLQkJICogcXVpY2tseS4KKwkJICogcXVpY2tseS4gQnV0IG9uIGEgc3RhbmRieSB3 ZSBjYW5ub3QgZG8gV0FMIHdyaXRlcywgc28ganVzdCB1c2UgdGhlCisJCSAqIHJlcGxheSBw b2ludGVyOyBlZmZlY3RpdmVseSwgYW4gYXR0ZW1wdCB0byBjcmVhdGUgYSBsb2dpY2FsIHNs b3Qgb24KKwkJICogc3RhbmRieSB3aWxsIGNhdXNlIGl0IHRvIHdhaXQgZm9yIGFuIHhsX3J1 bm5pbmdfeGFjdCByZWNvcmQgdG8gYmUKKwkJICogbG9nZ2VkIGluZGVwZW5kZW50bHkgb24g dGhlIHByaW1hcnksIHNvIHRoYXQgYSBzbmFwc2hvdCBjYW4gYmUgYnVpbHQKKwkJICogdXNp bmcgdGhlIHJlY29yZC4KIAkJICoKLQkJICogVGhhdCdzIG5vdCBuZWVkZWQgKG9yIGluZGVl ZCBoZWxwZnVsKSBmb3IgcGh5c2ljYWwgc2xvdHMgYXMgdGhleSdsbAotCQkgKiBzdGFydCBy ZXBsYXkgYXQgdGhlIGxhc3QgbG9nZ2VkIGNoZWNrcG9pbnQgYW55d2F5LiBJbnN0ZWFkIHJl dHVybgotCQkgKiB0aGUgbG9jYXRpb24gb2YgdGhlIGxhc3QgcmVkbyBMU04uIFdoaWxlIHRo YXQgc2xpZ2h0bHkgaW5jcmVhc2VzCi0JCSAqIHRoZSBjaGFuY2UgdGhhdCB3ZSBoYXZlIHRv IHJldHJ5LCBpdCdzIHdoZXJlIGEgYmFzZSBiYWNrdXAgaGFzIHRvCi0JCSAqIHN0YXJ0IHJl cGxheSBhdC4KKwkJICogTm9uZSBvZiB0aGlzIGlzIG5lZWRlZCAob3IgaW5kZWVkIGhlbHBm dWwpIGZvciBwaHlzaWNhbCBzbG90cyBhcworCQkgKiB0aGV5J2xsIHN0YXJ0IHJlcGxheSBh dCB0aGUgbGFzdCBsb2dnZWQgY2hlY2twb2ludCBhbnl3YXkuIEluc3RlYWQKKwkJICogcmV0 dXJuIHRoZSBsb2NhdGlvbiBvZiB0aGUgbGFzdCByZWRvIExTTi4gV2hpbGUgdGhhdCBzbGln aHRseQorCQkgKiBpbmNyZWFzZXMgdGhlIGNoYW5jZSB0aGF0IHdlIGhhdmUgdG8gcmV0cnks IGl0J3Mgd2hlcmUgYSBiYXNlIGJhY2t1cAorCQkgKiBoYXMgdG8gc3RhcnQgcmVwbGF5IGF0 LgogCQkgKi8KLQkJaWYgKCFSZWNvdmVyeUluUHJvZ3Jlc3MoKSAmJiBTbG90SXNMb2dpY2Fs KHNsb3QpKQotCQl7Ci0JCQlYTG9nUmVjUHRyCWZsdXNocHRyOwotCi0JCQkvKiBzdGFydCBh dCBjdXJyZW50IGluc2VydCBwb3NpdGlvbiAqLworCQlpZiAoU2xvdElzUGh5c2ljYWwoc2xv dCkpCisJCQlyZXN0YXJ0X2xzbiA9IEdldFJlZG9SZWNQdHIoKTsKKwkJZWxzZSBpZiAoUmVj b3ZlcnlJblByb2dyZXNzKCkpCisJCQlyZXN0YXJ0X2xzbiA9IEdldFhMb2dSZXBsYXlSZWNQ dHIoTlVMTCwgdHJ1ZSk7CisJCWVsc2UKIAkJCXJlc3RhcnRfbHNuID0gR2V0WExvZ0luc2Vy dFJlY1B0cigpOwotCQkJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7Ci0JCQlzbG90 LT5kYXRhLnJlc3RhcnRfbHNuID0gcmVzdGFydF9sc247Ci0JCQlTcGluTG9ja1JlbGVhc2Uo JnNsb3QtPm11dGV4KTsKLQotCQkJLyogbWFrZSBzdXJlIHdlIGhhdmUgZW5vdWdoIGluZm9y bWF0aW9uIHRvIHN0YXJ0ICovCi0JCQlmbHVzaHB0ciA9IExvZ1N0YW5kYnlTbmFwc2hvdCgp OwogCi0JCQkvKiBhbmQgbWFrZSBzdXJlIGl0J3MgZnN5bmNlZCB0byBkaXNrICovCi0JCQlY TG9nRmx1c2goZmx1c2hwdHIpOwotCQl9Ci0JCWVsc2UKLQkJewotCQkJcmVzdGFydF9sc24g PSBHZXRSZWRvUmVjUHRyKCk7Ci0JCQlTcGluTG9ja0FjcXVpcmUoJnNsb3QtPm11dGV4KTsK LQkJCXNsb3QtPmRhdGEucmVzdGFydF9sc24gPSByZXN0YXJ0X2xzbjsKLQkJCVNwaW5Mb2Nr UmVsZWFzZSgmc2xvdC0+bXV0ZXgpOwotCQl9CisJCVNwaW5Mb2NrQWNxdWlyZSgmc2xvdC0+ bXV0ZXgpOworCQlzbG90LT5kYXRhLnJlc3RhcnRfbHNuID0gcmVzdGFydF9sc247CisJCVNw aW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOwogCiAJCS8qIHByZXZlbnQgV0FMIHJlbW92 YWwgYXMgZmFzdCBhcyBwb3NzaWJsZSAqLwogCQlSZXBsaWNhdGlvblNsb3RzQ29tcHV0ZVJl cXVpcmVkTFNOKCk7CkBAIC0xMTM0LDYgKzExMjUsMTcgQEAgUmVwbGljYXRpb25TbG90UmVz ZXJ2ZVdhbCh2b2lkKQogCQlpZiAoWExvZ0dldExhc3RSZW1vdmVkU2Vnbm8oKSA8IHNlZ25v KQogCQkJYnJlYWs7CiAJfQorCisJaWYgKCFSZWNvdmVyeUluUHJvZ3Jlc3MoKSAmJiBTbG90 SXNMb2dpY2FsKHNsb3QpKQorCXsKKwkJWExvZ1JlY1B0cglmbHVzaHB0cjsKKworCQkvKiBt YWtlIHN1cmUgd2UgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gdG8gc3RhcnQgKi8KKwkJZmx1 c2hwdHIgPSBMb2dTdGFuZGJ5U25hcHNob3QoKTsKKworCQkvKiBhbmQgbWFrZSBzdXJlIGl0 J3MgZnN5bmNlZCB0byBkaXNrICovCisJCVhMb2dGbHVzaChmbHVzaHB0cik7CisJfQogfQog CiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYwppbmRleCAzMWU3NGQzODMy Li40OGQyNDQ0MmUyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90 ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYwpAQCAt NjM2LDcgKzYzNiw3IEBAIHBnX3JlcGxpY2F0aW9uX3Nsb3RfYWR2YW5jZShQR19GVU5DVElP Tl9BUkdTKQogCWlmICghUmVjb3ZlcnlJblByb2dyZXNzKCkpCiAJCW1vdmV0byA9IE1pbiht b3ZldG8sIEdldEZsdXNoUmVjUHRyKCkpOwogCWVsc2UKLQkJbW92ZXRvID0gTWluKG1vdmV0 bywgR2V0WExvZ1JlcGxheVJlY1B0cigmVGhpc1RpbWVMaW5lSUQpKTsKKwkJbW92ZXRvID0g TWluKG1vdmV0bywgR2V0WExvZ1JlcGxheVJlY1B0cigmVGhpc1RpbWVMaW5lSUQsIGZhbHNl KSk7CiAKIAkvKiBBY3F1aXJlIHRoZSBzbG90IHNvIHdlICJvd24iIGl0ICovCiAJUmVwbGlj YXRpb25TbG90QWNxdWlyZShOYW1lU3RyKCpzbG90bmFtZSksIHRydWUpOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMKaW5kZXggOWEyYmMzN2ZkNy4uNzRkM2ZhMGNm MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYwor KysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5jCkBAIC00MDcsNyAr NDA3LDcgQEAgV2FsUmVjZWl2ZXJNYWluKHZvaWQpCiAJCQlmaXJzdF9zdHJlYW0gPSBmYWxz ZTsKIAogCQkJLyogSW5pdGlhbGl6ZSBMb2dzdHJlYW1SZXN1bHQgYW5kIGJ1ZmZlcnMgZm9y IHByb2Nlc3NpbmcgbWVzc2FnZXMgKi8KLQkJCUxvZ3N0cmVhbVJlc3VsdC5Xcml0ZSA9IExv Z3N0cmVhbVJlc3VsdC5GbHVzaCA9IEdldFhMb2dSZXBsYXlSZWNQdHIoTlVMTCk7CisJCQlM b2dzdHJlYW1SZXN1bHQuV3JpdGUgPSBMb2dzdHJlYW1SZXN1bHQuRmx1c2ggPSBHZXRYTG9n UmVwbGF5UmVjUHRyKE5VTEwsIGZhbHNlKTsKIAkJCWluaXRTdHJpbmdJbmZvKCZyZXBseV9t ZXNzYWdlKTsKIAkJCWluaXRTdHJpbmdJbmZvKCZpbmNvbWluZ19tZXNzYWdlKTsKIApAQCAt MTA3Miw3ICsxMDcyLDcgQEAgWExvZ1dhbFJjdlNlbmRSZXBseShib29sIGZvcmNlLCBib29s IHJlcXVlc3RSZXBseSkKIAkvKiBDb25zdHJ1Y3QgYSBuZXcgbWVzc2FnZSAqLwogCXdyaXRl UHRyID0gTG9nc3RyZWFtUmVzdWx0LldyaXRlOwogCWZsdXNoUHRyID0gTG9nc3RyZWFtUmVz dWx0LkZsdXNoOwotCWFwcGx5UHRyID0gR2V0WExvZ1JlcGxheVJlY1B0cihOVUxMKTsKKwlh cHBseVB0ciA9IEdldFhMb2dSZXBsYXlSZWNQdHIoTlVMTCwgZmFsc2UpOwogCiAJcmVzZXRT dHJpbmdJbmZvKCZyZXBseV9tZXNzYWdlKTsKIAlwcV9zZW5kYnl0ZSgmcmVwbHlfbWVzc2Fn ZSwgJ3InKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2Vp dmVyZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyZnVuY3Mu YwppbmRleCA2ZjBhY2JmZGVmLi5mMjY0YjcxZjczIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlcmZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vd2FscmVjZWl2ZXJmdW5jcy5jCkBAIC0zNzIsNyArMzcyLDcgQEAgR2V0UmVw bGljYXRpb25BcHBseURlbGF5KHZvaWQpCiAJcmVjZWl2ZVB0ciA9IHdhbHJjdi0+Zmx1c2hl ZFVwdG87CiAJU3BpbkxvY2tSZWxlYXNlKCZ3YWxyY3YtPm11dGV4KTsKIAotCXJlcGxheVB0 ciA9IEdldFhMb2dSZXBsYXlSZWNQdHIoTlVMTCk7CisJcmVwbGF5UHRyID0gR2V0WExvZ1Jl cGxheVJlY1B0cihOVUxMLCBmYWxzZSk7CiAKIAlpZiAocmVjZWl2ZVB0ciA9PSByZXBsYXlQ dHIpCiAJCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v d2Fsc2VuZGVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYwppbmRl eCBkMGUyNDdiMTA0Li5kYTI1MzNlMWM5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi93YWxzZW5kZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxz ZW5kZXIuYwpAQCAtMTE3NCw2ICsxMTc0LDE2IEBAIFN0YXJ0TG9naWNhbFJlcGxpY2F0aW9u KFN0YXJ0UmVwbGljYXRpb25DbWQgKmNtZCkKIAkJZ290X1NUT1BQSU5HID0gdHJ1ZTsKIAl9 CiAKKwkvKgorCSAqIEluIGNhc2Ugb2YgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5IGl0 IG1heSBiZSB0aGF0IFRoaXNUaW1lTGluZUlECisJICogaXMgbm90IHNldCB5ZXQuCisJICog SW5kZWVkIHdlIGFyZSBub3QgZ29pbmcgdGhyb3VnaCBJbml0WExPR0FjY2VzcyBvbiBhIFN0 YW5kYnkgYW5kCisJICogaXQgbWF5IGFsc28gYmUgdGhhdCBJZGVudGlmeVN5c3RlbSBoYXMg bm90IGJlZW4gY2FsbGVkIHlldC4KKwkgKiBTbyBsZXQncyBnZXQgaXQgdGhyb3VnaCBHZXRY TG9nUmVwbGF5UmVjUHRyKCkuCisJICovCisJaWYgKFRoaXNUaW1lTGluZUlEID09IDApCisJ CSh2b2lkKSBHZXRYTG9nUmVwbGF5UmVjUHRyKCZUaGlzVGltZUxpbmVJRCwgZmFsc2UpOwor CiAJLyoKIAkgKiBDcmVhdGUgb3VyIGRlY29kaW5nIGNvbnRleHQsIG1ha2luZyBpdCBzdGFy dCBhdCB0aGUgcHJldmlvdXNseSBhY2snZWQKIAkgKiBwb3NpdGlvbi4KQEAgLTEzOTgsNyAr MTQwOCw3IEBAIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBsb2MpCiAJaWYgKCFSZWNv dmVyeUluUHJvZ3Jlc3MoKSkKIAkJUmVjZW50Rmx1c2hQdHIgPSBHZXRGbHVzaFJlY1B0cigp OwogCWVsc2UKLQkJUmVjZW50Rmx1c2hQdHIgPSBHZXRYTG9nUmVwbGF5UmVjUHRyKE5VTEwp OworCQlSZWNlbnRGbHVzaFB0ciA9IEdldFhMb2dSZXBsYXlSZWNQdHIoTlVMTCwgZmFsc2Up OwogCiAJZm9yICg7OykKIAl7CkBAIC0xNDMyLDcgKzE0NDIsNyBAQCBXYWxTbmRXYWl0Rm9y V2FsKFhMb2dSZWNQdHIgbG9jKQogCQlpZiAoIVJlY292ZXJ5SW5Qcm9ncmVzcygpKQogCQkJ UmVjZW50Rmx1c2hQdHIgPSBHZXRGbHVzaFJlY1B0cigpOwogCQllbHNlCi0JCQlSZWNlbnRG bHVzaFB0ciA9IEdldFhMb2dSZXBsYXlSZWNQdHIoTlVMTCk7CisJCQlSZWNlbnRGbHVzaFB0 ciA9IEdldFhMb2dSZXBsYXlSZWNQdHIoTlVMTCwgZmFsc2UpOwogCiAJCS8qCiAJCSAqIElm IHBvc3RtYXN0ZXIgYXNrZWQgdXMgdG8gc3RvcCwgZG9uJ3Qgd2FpdCBhbnltb3JlLgpAQCAt Mjg5OCwxMCArMjkwOCwxMiBAQCBYTG9nU2VuZExvZ2ljYWwodm9pZCkKIAkgKiBJZiBmaXJz dCB0aW1lIHRocm91Z2ggaW4gdGhpcyBzZXNzaW9uLCBpbml0aWFsaXplIGZsdXNoUHRyLiAg T3RoZXJ3aXNlLAogCSAqIHdlIG9ubHkgbmVlZCB0byB1cGRhdGUgZmx1c2hQdHIgaWYgRW5k UmVjUHRyIGlzIHBhc3QgaXQuCiAJICovCi0JaWYgKGZsdXNoUHRyID09IEludmFsaWRYTG9n UmVjUHRyKQotCQlmbHVzaFB0ciA9IEdldEZsdXNoUmVjUHRyKCk7Ci0JZWxzZSBpZiAobG9n aWNhbF9kZWNvZGluZ19jdHgtPnJlYWRlci0+RW5kUmVjUHRyID49IGZsdXNoUHRyKQotCQlm bHVzaFB0ciA9IEdldEZsdXNoUmVjUHRyKCk7CisJaWYgKGZsdXNoUHRyID09IEludmFsaWRY TG9nUmVjUHRyIHx8CisJCWxvZ2ljYWxfZGVjb2RpbmdfY3R4LT5yZWFkZXItPkVuZFJlY1B0 ciA+PSBmbHVzaFB0cikKKwl7CisJCWZsdXNoUHRyID0gKGFtX2Nhc2NhZGluZ193YWxzZW5k ZXIgPworCQkJCQlHZXRTdGFuZGJ5Rmx1c2hSZWNQdHIoKSA6IEdldEZsdXNoUmVjUHRyKCkp OworCX0KIAogCS8qIElmIEVuZFJlY1B0ciBpcyBzdGlsbCBwYXN0IG91ciBmbHVzaFB0ciwg aXQgbWVhbnMgd2UgY2F1Z2h0IHVwLiAqLwogCWlmIChsb2dpY2FsX2RlY29kaW5nX2N0eC0+ cmVhZGVyLT5FbmRSZWNQdHIgPj0gZmx1c2hQdHIpCkBAIC0yOTkwLDcgKzMwMDIsNyBAQCBH ZXRTdGFuZGJ5Rmx1c2hSZWNQdHIodm9pZCkKIAkgKi8KIAogCXJlY2VpdmVQdHIgPSBHZXRX YWxSY3ZGbHVzaFJlY1B0cihOVUxMLCAmcmVjZWl2ZVRMSSk7Ci0JcmVwbGF5UHRyID0gR2V0 WExvZ1JlcGxheVJlY1B0cigmcmVwbGF5VExJKTsKKwlyZXBsYXlQdHIgPSBHZXRYTG9nUmVw bGF5UmVjUHRyKCZyZXBsYXlUTEksIGZhbHNlKTsKIAogCVRoaXNUaW1lTGluZUlEID0gcmVw bGF5VExJOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oIGIvc3Jj L2luY2x1ZGUvYWNjZXNzL3hsb2cuaAppbmRleCAwYThlZGU3MDBkLi4xZDQ0NjM3YmVmIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCisrKyBiL3NyYy9pbmNsdWRl L2FjY2Vzcy94bG9nLmgKQEAgLTI4Miw3ICsyODIsNyBAQCBleHRlcm4gYm9vbCBIb3RTdGFu ZGJ5QWN0aXZlKHZvaWQpOwogZXh0ZXJuIGJvb2wgSG90U3RhbmRieUFjdGl2ZUluUmVwbGF5 KHZvaWQpOwogZXh0ZXJuIGJvb2wgWExvZ0luc2VydEFsbG93ZWQodm9pZCk7CiBleHRlcm4g dm9pZCBHZXRYTG9nUmVjZWlwdFRpbWUoVGltZXN0YW1wVHogKnJ0aW1lLCBib29sICpmcm9t U3RyZWFtKTsKLWV4dGVybiBYTG9nUmVjUHRyIEdldFhMb2dSZXBsYXlSZWNQdHIoVGltZUxp bmVJRCAqcmVwbGF5VExJKTsKK2V4dGVybiBYTG9nUmVjUHRyIEdldFhMb2dSZXBsYXlSZWNQ dHIoVGltZUxpbmVJRCAqcmVwbGF5VExJLCBib29sIGF2b2lkX2hlYWRlcik7CiBleHRlcm4g WExvZ1JlY1B0ciBHZXRYTG9nSW5zZXJ0UmVjUHRyKHZvaWQpOwogZXh0ZXJuIFhMb2dSZWNQ dHIgR2V0WExvZ1dyaXRlUmVjUHRyKHZvaWQpOwogZXh0ZXJuIFJlY292ZXJ5UGF1c2VTdGF0 ZSBHZXRSZWNvdmVyeVBhdXNlU3RhdGUodm9pZCk7CkBAIC0yOTksNiArMjk5LDcgQEAgZXh0 ZXJuIFNpemUgWExPR1NobWVtU2l6ZSh2b2lkKTsKIGV4dGVybiB2b2lkIFhMT0dTaG1lbUlu aXQodm9pZCk7CiBleHRlcm4gdm9pZCBCb290U3RyYXBYTE9HKHZvaWQpOwogZXh0ZXJuIHZv aWQgTG9jYWxQcm9jZXNzQ29udHJvbEZpbGUoYm9vbCByZXNldCk7CitleHRlcm4gV2FsTGV2 ZWwgR2V0QWN0aXZlV2FsTGV2ZWxPblN0YW5kYnkodm9pZCk7CiBleHRlcm4gdm9pZCBTdGFy dHVwWExPRyh2b2lkKTsKIGV4dGVybiB2b2lkIFNodXRkb3duWExPRyhpbnQgY29kZSwgRGF0 dW0gYXJnKTsKIGV4dGVybiB2b2lkIEluaXRYTE9HQWNjZXNzKHZvaWQpOwotLSAKMi4xOC40 Cgo= --------------A2B3C3F1A3D498E906D62BDD Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v22-0002-Handle-logical-slot-conflicts-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v22-0002-Handle-logical-slot-conflicts-on-standby.patch" RnJvbSBjMzA2YjkzODQxODY4YzU2ZGRjMTQ5ZmYwODliMTNjN2M2YThjZjYyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogTW9uLCAyIEF1ZyAyMDIxIDEzOjU1OjQ1ICswMDAwClN1YmplY3Q6IFtQQVRD SCB2MjIgMi81XSBIYW5kbGUgbG9naWNhbCBzbG90IGNvbmZsaWN0cyBvbiBzdGFuZGJ5LgoK RHVyaW5nIFdBTCByZXBsYXkgb24gc3RhbmRieSwgd2hlbiBzbG90IGNvbmZsaWN0IGlzIGlk ZW50aWZpZWQsCmludmFsaWRhdGUgc3VjaCBzbG90cy4gQWxzbyBkbyB0aGUgc2FtZSB0aGlu ZyBpZiB3YWxfbGV2ZWwgb24gbWFzdGVyCmlzIHJlZHVjZWQgdG8gYmVsb3cgbG9naWNhbCBh bmQgdGhlcmUgYXJlIGV4aXN0aW5nIGxvZ2ljYWwgc2xvdHMKb24gc3RhbmRieS4gSW50cm9k dWNlIGEgbmV3IFByb2NTaWduYWxSZWFzb24gdmFsdWUgZm9yIHNsb3QKY29uZmxpY3QgcmVj b3ZlcnkuIEFycmFuZ2UgZm9yIGEgbmV3IHBnX3N0YXRfZ2V0X2FjdGl2aXR5IGZpZWxkOgpj b25mbF9sb2dpY2Fsc2xvdC4KCkF1dGhvcjogQW5kcmVzIEZyZXVuZCAoaW4gYW4gb2xkZXIg dmVyc2lvbiksIEFtaXQgS2hhbmRla2FyLCBCZXJ0cmFuZCBEcm91dm90ClJldmlld2VkLUJ5 OiBCZXJ0cmFuZCBEcm91dm90LCBBbmRyZXMgRnJldW5kLCBSb2JlcnQgSGFhcywgRmFicml6 aW8gZGUgUm95ZXMgTWVsbG8KLS0tCiBkb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sICAg ICAgICAgICAgICAgICAgfCAgMTAgKwogc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhs b2cuYyAgICAgICAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNo X3hsb2cuYyAgICAgICAgICAgfCAgIDMgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hl YXBhbS5jICAgICAgICAgICAgICB8ICAxMCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL25idHJl ZS9uYnR4bG9nLmMgICAgICAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9hY2Nlc3Mvc3Bn aXN0L3NwZ3hsb2cuYyAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0veGxvZy5jICAgICAgICAgICAgIHwgIDEzICsrCiBzcmMvYmFja2VuZC9jYXRhbG9n L3N5c3RlbV92aWV3cy5zcWwgICAgICAgICAgfCAgIDMgKy0KIHNyYy9iYWNrZW5kL3Bvc3Rt YXN0ZXIvcGdzdGF0LmMgICAgICAgICAgICAgICB8ICAyMCArKwogLi4uL3JlcGxpY2F0aW9u L2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMgICAgICAgIHwgICA3ICstCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9zbG90LmMgICAgICAgICAgICAgICAgfCAyMDkgKysrKysrKysrKysrKysr KysrCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyAgICAgICAgICAgfCAg IDggKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMgICAgICAgICAgIHwg ICA0ICsKIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwuYyAgICAgICAgICB8 ICAgMyArCiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMgICAgICAgICAgICAg fCAgMTEgKy0KIHNyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyAgICAgICAgICAgICAgICAg ICB8ICAyMiArKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgICAgICAg ICAgIHwgIDE2ICsrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAg ICAgICAgfCAgIDUgKwogc3JjL2luY2x1ZGUvcGdzdGF0LmggICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaCAgICAgICAg ICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaCAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvc3RvcmFnZS9zdGFuZGJ5LmggICAgICAg ICAgICAgICAgIHwgICA0ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91 dCAgICAgICAgICAgfCAgIDMgKy0KIDIzIGZpbGVzIGNoYW5nZWQsIDM1MSBpbnNlcnRpb25z KCspLCAxNSBkZWxldGlvbnMoLSkKICAgNC4xJSBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC8K ICAgNC43JSBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS8KICAgNS4xJSBzcmMvYmFja2Vu ZC9hY2Nlc3MvCiAgIDQuMyUgc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci8KICAgMy41JSBzcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsLwogIDUyLjIlIHNyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uLwogICA1LjYlIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjLwogICA3LjElIHNyYy9i YWNrZW5kL3Rjb3AvCiAgIDMuNiUgc3JjL2JhY2tlbmQvCiAgIDYuMyUgc3JjL2luY2x1ZGUv CgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbCBiL2RvYy9zcmMv c2dtbC9tb25pdG9yaW5nLnNnbWwKaW5kZXggNzRhNThhOTE2Yy4uNjA3MmVlZTczZSAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvbW9uaXRvcmluZy5zZ21sCkBAIC00MDM0LDYgKzQwMzQsMTYgQEAgU0VMRUNUIHBpZCwg d2FpdF9ldmVudF90eXBlLCB3YWl0X2V2ZW50IEZST00gcGdfc3RhdF9hY3Rpdml0eSBXSEVS RSB3YWl0X2V2ZW50IGkKICAgICAgICBkZWFkbG9ja3MKICAgICAgIDwvcGFyYT48L2VudHJ5 PgogICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+Y29uZmxfbG9naWNhbHNsb3Q8L3N0cnVjdGZpZWxkPiA8dHlwZT5i aWdpbnQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOdW1i ZXIgb2YgcXVlcmllcyBpbiB0aGlzIGRhdGFiYXNlIHRoYXQgaGF2ZSBiZWVuIGNhbmNlbGVk IGR1ZSB0bworICAgICAgIGxvZ2ljYWwgc2xvdHMKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KICAgICA8L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYwppbmRleCA0NmFlZTZmMmE5Li41OTYzZTYz OWQ4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMKQEAgLTE5NSw3ICsxOTUs OCBAQCBnaXN0UmVkb0RlbGV0ZVJlY29yZChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAog CQlYTG9nUmVjR2V0QmxvY2tUYWcocmVjb3JkLCAwLCAmcm5vZGUsIE5VTEwsIE5VTEwpOwog Ci0JCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhsZGF0YS0+bGF0ZXN0 UmVtb3ZlZFhpZCwgcm5vZGUpOworCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFw c2hvdCh4bGRhdGEtPmxhdGVzdFJlbW92ZWRYaWQsCisJCQkJCQkJCQkJCXhsZGF0YS0+b25D YXRhbG9nVGFibGUsIHJub2RlKTsKIAl9CiAKIAlpZiAoWExvZ1JlYWRCdWZmZXJGb3JSZWRv KHJlY29yZCwgMCwgJmJ1ZmZlcikgPT0gQkxLX05FRURTX1JFRE8pCkBAIC0zOTUsNiArMzk2 LDcgQEAgZ2lzdFJlZG9QYWdlUmV1c2UoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJICov CiAJaWYgKEluSG90U3RhbmRieSkKIAkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25h cHNob3RGdWxsWGlkKHhscmVjLT5sYXRlc3RSZW1vdmVkRnVsbFhpZCwKKwkJCQkJCQkJCQkJ CSAgIHhscmVjLT5vbkNhdGFsb2dUYWJsZSwKIAkJCQkJCQkJCQkJCSAgIHhscmVjLT5ub2Rl KTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaF94bG9n LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoX3hsb2cuYwppbmRleCAyNzQ3NWZj YmQ2Li5lNWM2MTI0NDAwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9o YXNoX3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoX3hsb2cuYwpA QCAtMTAwMiw3ICsxMDAyLDggQEAgaGFzaF94bG9nX3ZhY3V1bV9vbmVfcGFnZShYTG9nUmVh ZGVyU3RhdGUgKnJlY29yZCkKIAkJUmVsRmlsZU5vZGUgcm5vZGU7CiAKIAkJWExvZ1JlY0dl dEJsb2NrVGFnKHJlY29yZCwgMCwgJnJub2RlLCBOVUxMLCBOVUxMKTsKLQkJUmVzb2x2ZVJl Y292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxkYXRhLT5sYXRlc3RSZW1vdmVkWGlkLCBy bm9kZSk7CisJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhsZGF0YS0+ bGF0ZXN0UmVtb3ZlZFhpZCwKKwkJCQkJCQkJCQkJeGxkYXRhLT5vbkNhdGFsb2dUYWJsZSwg cm5vZGUpOwogCX0KIAogCWFjdGlvbiA9IFhMb2dSZWFkQnVmZmVyRm9yUmVkb0V4dGVuZGVk KHJlY29yZCwgMCwgUkJNX05PUk1BTCwgdHJ1ZSwgJmJ1ZmZlcik7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbS5jCmluZGV4IDQwMTlhMjEyMmUuLjc1Y2E1Zjc5ZjQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC04NDE5LDcgKzg0MTksOCBAQCBoZWFwX3hsb2dfcHJ1 bmUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJICogbm8gcXVlcmllcyBydW5uaW5nIGZv ciB3aGljaCB0aGUgcmVtb3ZlZCB0dXBsZXMgYXJlIHN0aWxsIHZpc2libGUuCiAJICovCiAJ aWYgKEluSG90U3RhbmRieSkKLQkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNo b3QoeGxyZWMtPmxhdGVzdFJlbW92ZWRYaWQsIHJub2RlKTsKKwkJUmVzb2x2ZVJlY292ZXJ5 Q29uZmxpY3RXaXRoU25hcHNob3QoeGxyZWMtPmxhdGVzdFJlbW92ZWRYaWQsCisJCQkJCQkJ CQkJCXhscmVjLT5vbkNhdGFsb2dUYWJsZSwgcm5vZGUpOwogCiAJLyoKIAkgKiBJZiB3ZSBo YXZlIGEgZnVsbC1wYWdlIGltYWdlLCByZXN0b3JlIGl0ICh1c2luZyBhIGNsZWFudXAgbG9j aykgYW5kCkBAIC04NTg3LDcgKzg1ODgsOSBAQCBoZWFwX3hsb2dfdmlzaWJsZShYTG9nUmVh ZGVyU3RhdGUgKnJlY29yZCkKIAkgKiByYXRoZXIgdGhhbiBraWxsaW5nIHRoZSB0cmFuc2Fj dGlvbiBvdXRyaWdodC4KIAkgKi8KIAlpZiAoSW5Ib3RTdGFuZGJ5KQotCQlSZXNvbHZlUmVj b3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+Y3V0b2ZmX3hpZCwgcm5vZGUpOwor CQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+Y3V0b2ZmX3hp ZCwKKwkJCQkJCQkJCQkJeGxyZWMtPm9uQ2F0YWxvZ1RhYmxlLAorCQkJCQkJCQkJCQlybm9k ZSk7CiAKIAkvKgogCSAqIFJlYWQgdGhlIGhlYXAgcGFnZSwgaWYgaXQgc3RpbGwgZXhpc3Rz LiBJZiB0aGUgaGVhcCBmaWxlIGhhcyBkcm9wcGVkIG9yCkBAIC04NzI0LDcgKzg3MjcsOCBA QCBoZWFwX3hsb2dfZnJlZXplX3BhZ2UoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCVRy YW5zYWN0aW9uSWRSZXRyZWF0KGxhdGVzdFJlbW92ZWRYaWQpOwogCiAJCVhMb2dSZWNHZXRC bG9ja1RhZyhyZWNvcmQsIDAsICZybm9kZSwgTlVMTCwgTlVMTCk7Ci0JCVJlc29sdmVSZWNv dmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KGxhdGVzdFJlbW92ZWRYaWQsIHJub2RlKTsKKwkJ UmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QobGF0ZXN0UmVtb3ZlZFhpZCwK KwkJCQkJCQkJCQkJeGxyZWMtPm9uQ2F0YWxvZ1RhYmxlLCBybm9kZSk7CiAJfQogCiAJaWYg KFhMb2dSZWFkQnVmZmVyRm9yUmVkbyhyZWNvcmQsIDAsICZidWZmZXIpID09IEJMS19ORUVE U19SRURPKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR4bG9n LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHhsb2cuYwppbmRleCA3ODZjMDhj MGNlLi40MWI3ZWM4ZTJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVl L25idHhsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHhsb2cuYwpA QCAtNjY4LDcgKzY2OCw4IEBAIGJ0cmVlX3hsb2dfZGVsZXRlKFhMb2dSZWFkZXJTdGF0ZSAq cmVjb3JkKQogCiAJCVhMb2dSZWNHZXRCbG9ja1RhZyhyZWNvcmQsIDAsICZybm9kZSwgTlVM TCwgTlVMTCk7CiAKLQkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxy ZWMtPmxhdGVzdFJlbW92ZWRYaWQsIHJub2RlKTsKKwkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxp Y3RXaXRoU25hcHNob3QoeGxyZWMtPmxhdGVzdFJlbW92ZWRYaWQsCisJCQkJCQkJCQkJCXhs cmVjLT5vbkNhdGFsb2dUYWJsZSwgcm5vZGUpOwogCX0KIAogCS8qCkBAIC0xMDA2LDYgKzEw MDcsNyBAQCBidHJlZV94bG9nX3JldXNlX3BhZ2UoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQp CiAKIAlpZiAoSW5Ib3RTdGFuZGJ5KQogCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhT bmFwc2hvdEZ1bGxYaWQoeGxyZWMtPmxhdGVzdFJlbW92ZWRGdWxsWGlkLAorCQkJCQkJCQkJ CQkJICAgeGxyZWMtPm9uQ2F0YWxvZ1RhYmxlLAogCQkJCQkJCQkJCQkJICAgeGxyZWMtPm5v ZGUpOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3hs b2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BneGxvZy5jCmluZGV4IDNkZmQy YWEzMTcuLmFkZDRkYTRlNzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdp c3Qvc3BneGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BneGxvZy5j CkBAIC04ODEsNiArODgxLDcgQEAgc3BnUmVkb1ZhY3V1bVJlZGlyZWN0KFhMb2dSZWFkZXJT dGF0ZSAqcmVjb3JkKQogCiAJCQlYTG9nUmVjR2V0QmxvY2tUYWcocmVjb3JkLCAwLCAmbm9k ZSwgTlVMTCwgTlVMTCk7CiAJCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hv dCh4bGRhdGEtPm5ld2VzdFJlZGlyZWN0WGlkLAorCQkJCQkJCQkJCQkJeGxkYXRhLT5vbkNh dGFsb2dUYWJsZSwKIAkJCQkJCQkJCQkJCW5vZGUpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0veGxvZy5jCmluZGV4IGY4NGMwYmIwMWUuLjFmZjc3NTE4NTcgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYworKysgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKQEAgLTEwMzk3LDYgKzEwMzk3LDE5IEBAIHhsb2df cmVkbyhYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJLyogVXBkYXRlIG91ciBjb3B5IG9m IHRoZSBwYXJhbWV0ZXJzIGluIHBnX2NvbnRyb2wgKi8KIAkJbWVtY3B5KCZ4bHJlYywgWExv Z1JlY0dldERhdGEocmVjb3JkKSwgc2l6ZW9mKHhsX3BhcmFtZXRlcl9jaGFuZ2UpKTsKIAor CQkvKgorCQkgKiBJbnZhbGlkYXRlIGxvZ2ljYWwgc2xvdHMgaWYgd2UgYXJlIGluIGhvdCBz dGFuZGJ5IGFuZCB0aGUgcHJpbWFyeSBkb2VzIG5vdAorCQkgKiBoYXZlIGEgV0FMIGxldmVs IHN1ZmZpY2llbnQgZm9yIGxvZ2ljYWwgZGVjb2RpbmcuIE5vIG5lZWQgdG8gc2VhcmNoCisJ CSAqIGZvciBwb3RlbnRpYWxseSBjb25mbGljdGluZyBsb2dpY2FsbHkgc2xvdHMgaWYgc3Rh bmRieSBpcyBydW5uaW5nCisJCSAqIHdpdGggd2FsX2xldmVsIGxvd2VyIHRoYW4gbG9naWNh bCwgYmVjYXVzZSBpbiB0aGF0IGNhc2UsIHdlIHdvdWxkCisJCSAqIGhhdmUgZWl0aGVyIGRp c2FsbG93ZWQgY3JlYXRpb24gb2YgbG9naWNhbCBzbG90cyBvciBpbnZhbGlkYXRlZCBleGlz dGluZworCQkgKiBvbmVzLgorCQkgKi8KKwkJaWYgKEluUmVjb3ZlcnkgJiYgSW5Ib3RTdGFu ZGJ5ICYmCisJCQl4bHJlYy53YWxfbGV2ZWwgPCBXQUxfTEVWRUxfTE9HSUNBTCAmJgorCQkJ d2FsX2xldmVsID49IFdBTF9MRVZFTF9MT0dJQ0FMKQorCQkJSW52YWxpZGF0ZUNvbmZsaWN0 aW5nTG9naWNhbFJlcGxpY2F0aW9uU2xvdHMoSW52YWxpZE9pZCxJbnZhbGlkVHJhbnNhY3Rp b25JZCk7CisKIAkJTFdMb2NrQWNxdWlyZShDb250cm9sRmlsZUxvY2ssIExXX0VYQ0xVU0lW RSk7CiAJCUNvbnRyb2xGaWxlLT5NYXhDb25uZWN0aW9ucyA9IHhscmVjLk1heENvbm5lY3Rp b25zOwogCQlDb250cm9sRmlsZS0+bWF4X3dvcmtlcl9wcm9jZXNzZXMgPSB4bHJlYy5tYXhf d29ya2VyX3Byb2Nlc3NlczsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lz dGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApp bmRleCA1NWY2ZTM3MTFkLi5jZDFmYzg4ZDE3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j YXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0 ZW1fdmlld3Muc3FsCkBAIC0xMDIwLDcgKzEwMjAsOCBAQCBDUkVBVEUgVklFVyBwZ19zdGF0 X2RhdGFiYXNlX2NvbmZsaWN0cyBBUwogICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29u ZmxpY3RfbG9jayhELm9pZCkgQVMgY29uZmxfbG9jaywKICAgICAgICAgICAgIHBnX3N0YXRf Z2V0X2RiX2NvbmZsaWN0X3NuYXBzaG90KEQub2lkKSBBUyBjb25mbF9zbmFwc2hvdCwKICAg ICAgICAgICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2J1ZmZlcnBpbihELm9pZCkgQVMg Y29uZmxfYnVmZmVycGluLAotICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rf c3RhcnR1cF9kZWFkbG9jayhELm9pZCkgQVMgY29uZmxfZGVhZGxvY2sKKyAgICAgICAgICAg IHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2soRC5vaWQpIEFTIGNv bmZsX2RlYWRsb2NrLAorICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfbG9n aWNhbHNsb3QoRC5vaWQpIEFTIGNvbmZsX2xvZ2ljYWxzbG90CiAgICAgRlJPTSBwZ19kYXRh YmFzZSBEOwogCiBDUkVBVEUgVklFVyBwZ19zdGF0X3VzZXJfZnVuY3Rpb25zIEFTCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jIGIvc3JjL2JhY2tlbmQv cG9zdG1hc3Rlci9wZ3N0YXQuYwppbmRleCAxMTcwMmYyYTgwLi41NTZhNTE1NjA4IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jCisrKyBiL3NyYy9iYWNr ZW5kL3Bvc3RtYXN0ZXIvcGdzdGF0LmMKQEAgLTE4NjMsNiArMTg2MywyMiBAQCBwZ3N0YXRf cmVwb3J0X3JlcGxzbG90X2Ryb3AoY29uc3QgY2hhciAqc2xvdG5hbWUpCiAJcGdzdGF0X3Nl bmQoJm1zZywgc2l6ZW9mKFBnU3RhdF9Nc2dSZXBsU2xvdCkpOwogfQogCisvKiAtLS0tLS0t LS0tCisgKiBwZ3N0YXRfcmVwb3J0X3JlcGxzbG90X2NvbmZsaWN0KCkKKyAqIFRlbGwgdGhl IGNvbGxlY3RvciBhYm91dCBhIGxvZ2ljYWwgc2xvdCBiZWluZyBjb25mbGljdGluZworICog d2l0aCByZWNvdmVyeS4KKyAqIC0tLS0tLS0tLS0KKyAqLwordm9pZAorcGdzdGF0X3JlcG9y dF9yZXBsc2xvdF9jb25mbGljdChPaWQgZGJvaWQpCit7CisJUGdTdGF0X01zZ1JlY292ZXJ5 Q29uZmxpY3QgbXNnOworCXBnc3RhdF9zZXRoZWFkZXIoJm1zZy5tX2hkciwgUEdTVEFUX01U WVBFX1JFQ09WRVJZQ09ORkxJQ1QpOworCW1zZy5tX2RhdGFiYXNlaWQgPSBkYm9pZDsKKwlt c2cubV9yZWFzb24gPSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UOwor CXBnc3RhdF9zZW5kKCZtc2csIHNpemVvZihtc2cpKTsKK30KKwogLyogLS0tLS0tLS0tLQog ICogcGdzdGF0X3BpbmcoKSAtCiAgKgpAQCAtMzQ4OSw2ICszNTA1LDcgQEAgcmVzZXRfZGJl bnRyeV9jb3VudGVycyhQZ1N0YXRfU3RhdERCRW50cnkgKmRiZW50cnkpCiAJZGJlbnRyeS0+ bl9jb25mbGljdF90YWJsZXNwYWNlID0gMDsKIAlkYmVudHJ5LT5uX2NvbmZsaWN0X2xvY2sg PSAwOwogCWRiZW50cnktPm5fY29uZmxpY3Rfc25hcHNob3QgPSAwOworCWRiZW50cnktPm5f Y29uZmxpY3RfbG9naWNhbHNsb3QgPSAwOwogCWRiZW50cnktPm5fY29uZmxpY3RfYnVmZmVy cGluID0gMDsKIAlkYmVudHJ5LT5uX2NvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2sgPSAwOwog CWRiZW50cnktPm5fdGVtcF9maWxlcyA9IDA7CkBAIC01NDI1LDYgKzU0NDIsOSBAQCBwZ3N0 YXRfcmVjdl9yZWNvdmVyeWNvbmZsaWN0KFBnU3RhdF9Nc2dSZWNvdmVyeUNvbmZsaWN0ICpt c2csIGludCBsZW4pCiAJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TTkFQU0hP VDoKIAkJCWRiZW50cnktPm5fY29uZmxpY3Rfc25hcHNob3QrKzsKIAkJCWJyZWFrOworCQlj YXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1Q6CisJCQlkYmVudHJ5 LT5uX2NvbmZsaWN0X2xvZ2ljYWxzbG90Kys7CisJCQlicmVhazsKIAkJY2FzZSBQUk9DU0lH X1JFQ09WRVJZX0NPTkZMSUNUX0JVRkZFUlBJTjoKIAkJCWRiZW50cnktPm5fY29uZmxpY3Rf YnVmZmVycGluKys7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jCmluZGV4IDFmMzhjNWIzM2UuLjFkOTQwMGVhNjMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1 bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVu Y3MuYwpAQCAtMjQxLDExICsyNDEsMTQgQEAgcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2Vz X2d1dHMoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJvb2wgY29uZmlybSwgYm9vbCBiaW4K IAogCQkvKgogCQkgKiBBZnRlciB0aGUgc2FuaXR5IGNoZWNrcyBpbiBDcmVhdGVEZWNvZGlu Z0NvbnRleHQsIG1ha2Ugc3VyZSB0aGUKLQkJICogcmVzdGFydF9sc24gaXMgdmFsaWQuICBB dm9pZCAiY2Fubm90IGdldCBjaGFuZ2VzIiB3b3JkaW5nIGluIHRoaXMKKwkJICogcmVzdGFy dF9sc24gaXMgdmFsaWQgb3IgYm90aCB4bWluIGFuZCBjYXRhbG9nX3htaW4gYXJlIHZhbGlk LgorCQkgKiBBdm9pZCAiY2Fubm90IGdldCBjaGFuZ2VzIiB3b3JkaW5nIGluIHRoaXMKIAkJ ICogZXJybXNnIGJlY2F1c2UgdGhhdCdkIGJlIGNvbmZ1c2luZ2x5IGFtYmlndW91cyBhYm91 dCBubyBjaGFuZ2VzCiAJCSAqIGJlaW5nIGF2YWlsYWJsZS4KIAkJICovCi0JCWlmIChYTG9n UmVjUHRySXNJbnZhbGlkKE15UmVwbGljYXRpb25TbG90LT5kYXRhLnJlc3RhcnRfbHNuKSkK KwkJaWYgKFhMb2dSZWNQdHJJc0ludmFsaWQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEucmVz dGFydF9sc24pCisJCQl8fCAoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKE15UmVwbGljYXRpb25T bG90LT5kYXRhLnhtaW4pCisJCQkJJiYgIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKE15UmVwbGlj YXRpb25TbG90LT5kYXRhLmNhdGFsb2dfeG1pbikpKQogCQkJZXJlcG9ydChFUlJPUiwKIAkJ CQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSks CiAJCQkJCSBlcnJtc2coImNhbiBubyBsb25nZXIgZ2V0IGNoYW5nZXMgZnJvbSByZXBsaWNh dGlvbiBzbG90IFwiJXNcIiIsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9zbG90LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKaW5kZXggMzNlOWFj YWI0YS4uNmU4OWJhYjI1NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v c2xvdC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwpAQCAtMTMzOCw2 ICsxMzM4LDIxNSBAQCByZXN0YXJ0OgogCXJldHVybiBpbnZhbGlkYXRlZDsKIH0KIAorLyoK KyAqIEhlbHBlciBmb3IgSW52YWxpZGF0ZUNvbmZsaWN0aW5nTG9naWNhbFJlcGxpY2F0aW9u U2xvdCAtLSBhY3F1aXJlcyB0aGUgZ2l2ZW4gc2xvdAorICogYW5kIG1hcmsgaXQgaW52YWxp ZCwgaWYgbmVjZXNzYXJ5IGFuZCBwb3NzaWJsZS4KKyAqCisgKiBSZXR1cm5zIHdoZXRoZXIg UmVwbGljYXRpb25TbG90Q29udHJvbExvY2sgd2FzIHJlbGVhc2VkIGluIHRoZSBpbnRlcmlt IChhbmQKKyAqIGluIHRoYXQgY2FzZSB3ZSdyZSBub3QgaG9sZGluZyB0aGUgbG9jayBhdCBy ZXR1cm4sIG90aGVyd2lzZSB3ZSBhcmUpLgorICoKKyAqIFRoaXMgaXMgaW5oZXJlbnRseSBy YWN5LCBiZWNhdXNlIHdlIHJlbGVhc2UgdGhlIExXTG9jaworICogZm9yIHN5c2NhbGxzLCBz byBjYWxsZXIgbXVzdCByZXN0YXJ0IGlmIHdlIHJldHVybiB0cnVlLgorICovCitzdGF0aWMg Ym9vbAorSW52YWxpZGF0ZVBvc3NpYmx5Q29uZmxpY3RpbmdMb2dpY2FsUmVwbGljYXRpb25T bG90KFJlcGxpY2F0aW9uU2xvdCAqcywgVHJhbnNhY3Rpb25JZCB4aWQpCit7CisJaW50CQls YXN0X3NpZ25hbGVkX3BpZCA9IDA7CisJYm9vbAlyZWxlYXNlZF9sb2NrID0gZmFsc2U7CisK Kwlmb3IgKDs7KQorCXsKKwkJVHJhbnNhY3Rpb25JZCBzbG90X3htaW47CisJCVRyYW5zYWN0 aW9uSWQgc2xvdF9jYXRhbG9nX3htaW47CisJCU5hbWVEYXRhCXNsb3RuYW1lOworCQlpbnQJ CQlhY3RpdmVfcGlkID0gMDsKKworCQlBc3NlcnQoTFdMb2NrSGVsZEJ5TWVJbk1vZGUoUmVw bGljYXRpb25TbG90Q29udHJvbExvY2ssIExXX1NIQVJFRCkpOworCisJCWlmICghcy0+aW5f dXNlKQorCQl7CisJCQlpZiAocmVsZWFzZWRfbG9jaykKKwkJCQlMV0xvY2tSZWxlYXNlKFJl cGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrKTsKKwkJCWJyZWFrOworCQl9CisKKwkJLyoKKwkJ ICogQ2hlY2sgaWYgdGhlIHNsb3QgbmVlZHMgdG8gYmUgaW52YWxpZGF0ZWQuIElmIGl0IG5l ZWRzIHRvIGJlCisJCSAqIGludmFsaWRhdGVkLCBhbmQgaXMgbm90IGN1cnJlbnRseSBhY3F1 aXJlZCwgYWNxdWlyZSBpdCBhbmQgbWFyayBpdAorCQkgKiBhcyBoYXZpbmcgYmVlbiBpbnZh bGlkYXRlZC4gV2UgZG8gdGhpcyB3aXRoIHRoZSBzcGlubG9jayBoZWxkIHRvCisJCSAqIGF2 b2lkIHJhY2UgY29uZGl0aW9ucyAtLSBmb3IgZXhhbXBsZSB0aGUgeG1pbihzKSBjb3VsZCBt b3ZlIGZvcndhcmQKKwkJICogLCBvciB0aGUgc2xvdCBjb3VsZCBiZSBkcm9wcGVkLgorCQkg Ki8KKwkJU3BpbkxvY2tBY3F1aXJlKCZzLT5tdXRleCk7CisKKwkJc2xvdF94bWluID0gcy0+ ZGF0YS54bWluOworCQlzbG90X2NhdGFsb2dfeG1pbiA9IHMtPmRhdGEuY2F0YWxvZ194bWlu OworCisJCS8qCisJCSAqIElmIHRoZSBzbG90IGlzIGFscmVhZHkgaW52YWxpZCBvciBpcyBu b3QgY29uZmxpY3RpbmcsIHdlIGRvbid0IG5lZWQgdG8KKwkJICogZG8gYW55dGhpbmcuCisJ CSAqLworCisJCS8qIHNsb3QgaGFzIGJlZW4gaW52YWxpZGF0ZWQgKi8KKwkJaWYgKCghVHJh bnNhY3Rpb25JZElzVmFsaWQoc2xvdF94bWluKSAmJiAhVHJhbnNhY3Rpb25JZElzVmFsaWQo c2xvdF9jYXRhbG9nX3htaW4pKQorCQkJfHwKKwkJLyoKKwkJICogd2UgYXJlIG5vdCBmb3Jj aW5nIGZvciBpbnZhbGlkYXRpb24gYmVjYXVzZSB0aGUgeGlkIGlzIHZhbGlkCisJCSAqIGFu ZCB0aGlzIGlzIGEgbm9uIGNvbmZsaWN0aW5nIHNsb3QKKwkJICovCisJCQkoVHJhbnNhY3Rp b25JZElzVmFsaWQoeGlkKSAmJiAhKAorCQkJCShUcmFuc2FjdGlvbklkSXNWYWxpZChzbG90 X3htaW4pICYmIFRyYW5zYWN0aW9uSWRQcmVjZWRlc09yRXF1YWxzKHNsb3RfeG1pbiwgeGlk KSkKKwkJCQl8fAorCQkJCShUcmFuc2FjdGlvbklkSXNWYWxpZChzbG90X2NhdGFsb2dfeG1p bikgJiYgVHJhbnNhY3Rpb25JZFByZWNlZGVzT3JFcXVhbHMoc2xvdF9jYXRhbG9nX3htaW4s IHhpZCkpCisJCQkJKSkKKwkJCSkKKwkJeworCQkJU3BpbkxvY2tSZWxlYXNlKCZzLT5tdXRl eCk7CisJCQlpZiAocmVsZWFzZWRfbG9jaykKKwkJCQlMV0xvY2tSZWxlYXNlKFJlcGxpY2F0 aW9uU2xvdENvbnRyb2xMb2NrKTsKKwkJCWJyZWFrOworCQl9CisKKwkJc2xvdG5hbWUgPSBz LT5kYXRhLm5hbWU7CisJCWFjdGl2ZV9waWQgPSBzLT5hY3RpdmVfcGlkOworCisJCS8qCisJ CSAqIElmIHRoZSBzbG90IGNhbiBiZSBhY3F1aXJlZCwgZG8gc28gYW5kIG1hcmsgaXQgaW52 YWxpZGF0ZWQKKwkJICogaW1tZWRpYXRlbHkuICBPdGhlcndpc2Ugd2UnbGwgc2lnbmFsIHRo ZSBvd25pbmcgcHJvY2VzcywgYmVsb3csIGFuZAorCQkgKiByZXRyeS4KKwkJICovCisJCWlm IChhY3RpdmVfcGlkID09IDApCisJCXsKKwkJCU15UmVwbGljYXRpb25TbG90ID0gczsKKwkJ CXMtPmFjdGl2ZV9waWQgPSBNeVByb2NQaWQ7CisJCQlzLT5kYXRhLnhtaW4gPSBJbnZhbGlk VHJhbnNhY3Rpb25JZDsKKwkJCXMtPmRhdGEuY2F0YWxvZ194bWluID0gSW52YWxpZFRyYW5z YWN0aW9uSWQ7CisJCX0KKworCQlTcGluTG9ja1JlbGVhc2UoJnMtPm11dGV4KTsKKworCQlp ZiAoYWN0aXZlX3BpZCAhPSAwKQorCQl7CisJCQkvKgorCQkJICogUHJlcGFyZSB0aGUgc2xl ZXAgb24gdGhlIHNsb3QncyBjb25kaXRpb24gdmFyaWFibGUgYmVmb3JlCisJCQkgKiByZWxl YXNpbmcgdGhlIGxvY2ssIHRvIGNsb3NlIGEgcG9zc2libGUgcmFjZSBjb25kaXRpb24gaWYg dGhlCisJCQkgKiBzbG90IGlzIHJlbGVhc2VkIGJlZm9yZSB0aGUgc2xlZXAgYmVsb3cuCisJ CQkgKi8KKworCQkJQ29uZGl0aW9uVmFyaWFibGVQcmVwYXJlVG9TbGVlcCgmcy0+YWN0aXZl X2N2KTsKKworCQkJTFdMb2NrUmVsZWFzZShSZXBsaWNhdGlvblNsb3RDb250cm9sTG9jayk7 CisJCQlyZWxlYXNlZF9sb2NrID0gdHJ1ZTsKKworCQkJLyoKKwkJCSAqIFNpZ25hbCB0byB0 ZXJtaW5hdGUgdGhlIHByb2Nlc3MgdGhhdCBvd25zIHRoZSBzbG90LCBpZiB3ZQorCQkJICog aGF2ZW4ndCBhbHJlYWR5IHNpZ25hbGxlZCBpdC4gIChBdm9pZGFuY2Ugb2YgcmVwZWF0ZWQK KwkJCSAqIHNpZ25hbGxpbmcgaXMgdGhlIG9ubHkgcmVhc29uIGZvciB0aGVyZSB0byBiZSBh IGxvb3AgaW4gdGhpcworCQkJICogcm91dGluZTsgb3RoZXJ3aXNlIHdlIGNvdWxkIHJlbHkg b24gY2FsbGVyJ3MgcmVzdGFydCBsb29wLikKKwkJCSAqCisJCQkgKiBUaGVyZSBpcyB0aGUg cmFjZSBjb25kaXRpb24gdGhhdCBvdGhlciBwcm9jZXNzIG1heSBvd24gdGhlIHNsb3QKKwkJ CSAqIGFmdGVyIGl0cyBjdXJyZW50IG93bmVyIHByb2Nlc3MgaXMgdGVybWluYXRlZCBhbmQg YmVmb3JlIHRoaXMKKwkJCSAqIHByb2Nlc3Mgb3ducyBpdC4gVG8gaGFuZGxlIHRoYXQsIHdl IHNpZ25hbCBvbmx5IGlmIHRoZSBQSUQgb2YKKwkJCSAqIHRoZSBvd25pbmcgcHJvY2VzcyBo YXMgY2hhbmdlZCBmcm9tIHRoZSBwcmV2aW91cyB0aW1lLiAoVGhpcworCQkJICogbG9naWMg YXNzdW1lcyB0aGF0IHRoZSBzYW1lIFBJRCBpcyBub3QgcmV1c2VkIHZlcnkgcXVpY2tseS4p CisJCQkgKi8KKwkJCWlmIChsYXN0X3NpZ25hbGVkX3BpZCAhPSBhY3RpdmVfcGlkKQorCQkJ eworCQkJCWVyZXBvcnQoTE9HLAorCQkJCQkJKGVycm1zZygidGVybWluYXRpbmcgcHJvY2Vz cyAlZCBiZWNhdXNlIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGNvbmZsaWN0cyB3aXRoIHJl Y292ZXJ5IiwKKwkJCQkJCQkJYWN0aXZlX3BpZCwgTmFtZVN0cihzbG90bmFtZSkpKSk7CisK KwkJCQkodm9pZCkga2lsbChhY3RpdmVfcGlkLCBTSUdURVJNKTsKKwkJCQlsYXN0X3NpZ25h bGVkX3BpZCA9IGFjdGl2ZV9waWQ7CisJCQl9CisKKwkJCS8qIFdhaXQgdW50aWwgdGhlIHNs b3QgaXMgcmVsZWFzZWQuICovCisJCQlDb25kaXRpb25WYXJpYWJsZVNsZWVwKCZzLT5hY3Rp dmVfY3YsCisJCQkJCQkJCQlXQUlUX0VWRU5UX1JFUExJQ0FUSU9OX1NMT1RfRFJPUCk7CisK KwkJCS8qCisJCQkgKiBSZS1hY3F1aXJlIGxvY2sgYW5kIHN0YXJ0IG92ZXI7IHdlIGV4cGVj dCB0byBpbnZhbGlkYXRlIHRoZQorCQkJICogc2xvdCBuZXh0IHRpbWUgKHVubGVzcyBhbm90 aGVyIHByb2Nlc3MgYWNxdWlyZXMgdGhlIHNsb3QgaW4gdGhlCisJCQkgKiBtZWFudGltZSku CisJCQkgKi8KKwkJCUxXTG9ja0FjcXVpcmUoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2ss IExXX1NIQVJFRCk7CisJCQljb250aW51ZTsKKwkJfQorCQllbHNlCisJCXsKKwkJCS8qCisJ CQkgKiBXZSBob2xkIHRoZSBzbG90IG5vdyBhbmQgaGF2ZSBhbHJlYWR5IGludmFsaWRhdGVk IGl0OyBmbHVzaCBpdAorCQkJICogdG8gZW5zdXJlIHRoYXQgc3RhdGUgcGVyc2lzdHMuCisJ CQkgKgorCQkJICogRG9uJ3Qgd2FudCB0byBob2xkIFJlcGxpY2F0aW9uU2xvdENvbnRyb2xM b2NrIGFjcm9zcyBmaWxlCisJCQkgKiBzeXN0ZW0gb3BlcmF0aW9ucywgc28gcmVsZWFzZSBp dCBub3cgYnV0IGJlIHN1cmUgdG8gdGVsbCBjYWxsZXIKKwkJCSAqIHRvIHJlc3RhcnQgZnJv bSBzY3JhdGNoLgorCQkJICovCisJCQlMV0xvY2tSZWxlYXNlKFJlcGxpY2F0aW9uU2xvdENv bnRyb2xMb2NrKTsKKwkJCXJlbGVhc2VkX2xvY2sgPSB0cnVlOworCisJCQkvKiBNYWtlIHN1 cmUgdGhlIGludmFsaWRhdGVkIHN0YXRlIHBlcnNpc3RzIGFjcm9zcyBzZXJ2ZXIgcmVzdGFy dCAqLworCQkJUmVwbGljYXRpb25TbG90TWFya0RpcnR5KCk7CisJCQlSZXBsaWNhdGlvblNs b3RTYXZlKCk7CisJCQlSZXBsaWNhdGlvblNsb3RSZWxlYXNlKCk7CisJCQlwZ3N0YXRfcmVw b3J0X3JlcGxzbG90X2NvbmZsaWN0KHMtPmRhdGEuZGF0YWJhc2UpOworCisJCQllcmVwb3J0 KExPRywKKwkJCQkJKGVycm1zZygiaW52YWxpZGF0aW5nIHNsb3QgXCIlc1wiIGJlY2F1c2Ug aXQgY29uZmxpY3RzIHdpdGggcmVjb3ZlcnkiLCBOYW1lU3RyKHNsb3RuYW1lKSkpKTsKKwor CQkJLyogZG9uZSB3aXRoIHRoaXMgc2xvdCBmb3Igbm93ICovCisJCQlicmVhazsKKwkJfQor CX0KKworCUFzc2VydCghcmVsZWFzZWRfbG9jayA9PSBMV0xvY2tIZWxkQnlNZUluTW9kZShS ZXBsaWNhdGlvblNsb3RDb250cm9sTG9jaywgTFdfU0hBUkVEKSk7CisKKwlyZXR1cm4gcmVs ZWFzZWRfbG9jazsKK30KKworLyoKKyAqIFJlc29sdmUgcmVjb3ZlcnkgY29uZmxpY3RzIHdp dGggbG9naWNhbCBzbG90cy4KKyAqCisgKiBXaGVuIHhpZCBpcyB2YWxpZCwgaXQgbWVhbnMg dGhhdCB3ZSBhcmUgYWJvdXQgdG8gcmVtb3ZlIHJvd3Mgb2xkZXIgdGhhbiB4aWQuCisgKiBU aGVyZWZvcmUgd2UgbmVlZCB0byBpbnZhbGlkYXRlIHNsb3RzIHRoYXQgZGVwZW5kIG9uIHNl ZWluZyB0aG9zZSByb3dzLgorICogV2hlbiB4aWQgaXMgaW52YWxpZCwgaW52YWxpZGF0ZSBh bGwgbG9naWNhbCBzbG90cy4gVGhpcyBpcyByZXF1aXJlZCB3aGVuIHRoZQorICogbWFzdGVy IHdhbF9sZXZlbCBpcyBzZXQgYmFjayB0byByZXBsaWNhLCBzbyBleGlzdGluZyBsb2dpY2Fs IHNsb3RzIG5lZWQgdG8KKyAqIGJlIGludmFsaWRhdGVkLgorICovCit2b2lkCitJbnZhbGlk YXRlQ29uZmxpY3RpbmdMb2dpY2FsUmVwbGljYXRpb25TbG90cyhPaWQgZGJvaWQsIFRyYW5z YWN0aW9uSWQgeGlkKQoreworCisJQXNzZXJ0KG1heF9yZXBsaWNhdGlvbl9zbG90cyA+PSAw KTsKKworCWlmIChtYXhfcmVwbGljYXRpb25fc2xvdHMgPT0gMCkKKwkJcmV0dXJuOworcmVz dGFydDoKKwlMV0xvY2tBY3F1aXJlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrLCBMV19T SEFSRUQpOworCWZvciAoaW50IGkgPSAwOyBpIDwgbWF4X3JlcGxpY2F0aW9uX3Nsb3RzOyBp KyspCisJeworCQlSZXBsaWNhdGlvblNsb3QgKnMgPSAmUmVwbGljYXRpb25TbG90Q3RsLT5y ZXBsaWNhdGlvbl9zbG90c1tpXTsKKworCQlpZiAoIXMtPmluX3VzZSkKKwkJCWNvbnRpbnVl OworCisJCS8qIFdlIGFyZSBvbmx5IGRlYWxpbmcgd2l0aCAqbG9naWNhbCogc2xvdCBjb25m bGljdHMuICovCisJCWlmICghU2xvdElzTG9naWNhbChzKSkKKwkJCWNvbnRpbnVlOworCisJ CS8qIG5vdCBvdXIgZGF0YWJhc2UgYW5kIHdlIGRvbid0IHdhbnQgYWxsIHRoZSBkYXRhYmFz ZSwgc2tpcCAqLworCQlpZiAocy0+ZGF0YS5kYXRhYmFzZSAhPSBkYm9pZCAmJiBUcmFuc2Fj dGlvbklkSXNWYWxpZCh4aWQpKQorCQkJY29udGludWU7CisKKwkJaWYgKEludmFsaWRhdGVQ b3NzaWJseUNvbmZsaWN0aW5nTG9naWNhbFJlcGxpY2F0aW9uU2xvdChzLCB4aWQpKQorCQl7 CisJCQkvKiBpZiB0aGUgbG9jayB3YXMgcmVsZWFzZWQsIHdlIG5lZWQgdG8gcmVzdGFydCBm cm9tIHNjcmF0Y2ggKi8KKwkJCWdvdG8gcmVzdGFydDsKKwkJfQorCX0KKwlMV0xvY2tSZWxl YXNlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrKTsKK30KKwogLyoKICAqIEZsdXNoIGFs bCByZXBsaWNhdGlvbiBzbG90cyB0byBkaXNrLgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v d2Fsc2VuZGVyLmMKaW5kZXggM2NhMmExMTM4OS4uZDBlMjQ3YjEwNCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKKysrIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKQEAgLTExNDcsNiArMTE0NywxNCBAQCBTdGFydExv Z2ljYWxSZXBsaWNhdGlvbihTdGFydFJlcGxpY2F0aW9uQ21kICpjbWQpCiAKIAlSZXBsaWNh dGlvblNsb3RBY3F1aXJlKGNtZC0+c2xvdG5hbWUsIHRydWUpOwogCisJaWYgKCFUcmFuc2Fj dGlvbklkSXNWYWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS54bWluKQorCQkgJiYgIVRy YW5zYWN0aW9uSWRJc1ZhbGlkKE15UmVwbGljYXRpb25TbG90LT5kYXRhLmNhdGFsb2dfeG1p bikpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9U X0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJIGVycm1zZygiY2Fubm90IHJlYWQgZnJv bSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIiwKKwkJCQkJCWNtZC0+c2xvdG5h bWUpLAorCQkJCSBlcnJkZXRhaWwoIlRoaXMgc2xvdCBoYXMgYmVlbiBpbnZhbGlkYXRlZCBi ZWNhdXNlIGl0IHdhcyBjb25mbGljdGluZyB3aXRoIHJlY292ZXJ5LiIpKSk7CisKIAlpZiAo WExvZ1JlY1B0cklzSW52YWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5yZXN0YXJ0X2xz bikpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9U X0lOX1BSRVJFUVVJU0lURV9TVEFURSksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9y YWdlL2lwYy9wcm9jYXJyYXkuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJh eS5jCmluZGV4IGM3ODE2ZmNmYjMuLjBjNTU1YTM5MGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2Uv aXBjL3Byb2NhcnJheS5jCkBAIC0zNDQzLDYgKzM0NDMsMTAgQEAgU2lnbmFsVmlydHVhbFRy YW5zYWN0aW9uKFZpcnR1YWxUcmFuc2FjdGlvbklkIHZ4aWQsIFByb2NTaWduYWxSZWFzb24g c2lnbW9kZSwKIAogCQlHRVRfVlhJRF9GUk9NX1BHUFJPQyhwcm9jdnhpZCwgKnByb2MpOwog CisJCS8qCisJCSAqIE5vdGU6IHZ4aWQubG9jYWxUcmFuc2FjdGlvbklkIGNhbiBiZSBpbnZh bGlkLCB3aGljaCBtZWFucyB0aGUKKwkJICogcmVxdWVzdCBpcyB0byBzaWduYWwgdGhlIHBp ZCB0aGF0IGlzIG5vdCBydW5uaW5nIGEgdHJhbnNhY3Rpb24uCisJCSAqLwogCQlpZiAocHJv Y3Z4aWQuYmFja2VuZElkID09IHZ4aWQuYmFja2VuZElkICYmCiAJCQlwcm9jdnhpZC5sb2Nh bFRyYW5zYWN0aW9uSWQgPT0gdnhpZC5sb2NhbFRyYW5zYWN0aW9uSWQpCiAJCXsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwuYyBiL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwuYwppbmRleCBkZWZiNzVhYTI2Li4zMTVkNWEx ZTMzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMK KysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jCkBAIC02NzMsNiAr NjczLDkgQEAgcHJvY3NpZ25hbF9zaWd1c3IxX2hhbmRsZXIoU0lHTkFMX0FSR1MpCiAJaWYg KENoZWNrUHJvY1NpZ25hbChQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9UKSkK IAkJUmVjb3ZlcnlDb25mbGljdEludGVycnVwdChQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNU X1NOQVBTSE9UKTsKIAorCWlmIChDaGVja1Byb2NTaWduYWwoUFJPQ1NJR19SRUNPVkVSWV9D T05GTElDVF9MT0dJQ0FMU0xPVCkpCisJCVJlY292ZXJ5Q29uZmxpY3RJbnRlcnJ1cHQoUFJP Q1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVCk7CisKIAlpZiAoQ2hlY2tQcm9j U2lnbmFsKFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU1RBUlRVUF9ERUFETE9DSykpCiAJ CVJlY292ZXJ5Q29uZmxpY3RJbnRlcnJ1cHQoUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9T VEFSVFVQX0RFQURMT0NLKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9p cGMvc3RhbmRieS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jCmluZGV4 IDA3NzI1MWMxYTYuLjI4MTIxZjA2NTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvaXBjL3N0YW5kYnkuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5 LmMKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJ1dGlscy9wc19zdGF0dXMuaCIKICNp bmNsdWRlICJ1dGlscy90aW1lb3V0LmgiCiAjaW5jbHVkZSAidXRpbHMvdGltZXN0YW1wLmgi CisjaW5jbHVkZSAicmVwbGljYXRpb24vc2xvdC5oIgogCiAvKiBVc2VyLXNldHRhYmxlIEdV QyBwYXJhbWV0ZXJzICovCiBpbnQJCQl2YWN1dW1fZGVmZXJfY2xlYW51cF9hZ2U7CkBAIC00 NDAsNyArNDQxLDggQEAgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoVmlydHVhbFhJRHMo VmlydHVhbFRyYW5zYWN0aW9uSWQgKndhaXRsaXN0LAogfQogCiB2b2lkCi1SZXNvbHZlUmVj b3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdChUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRY aWQsIFJlbEZpbGVOb2RlIG5vZGUpCitSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFw c2hvdChUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQsCisJCQkJCQkJCQlib29sIG9u Q2F0YWxvZ1RhYmxlLCBSZWxGaWxlTm9kZSBub2RlKQogewogCVZpcnR1YWxUcmFuc2FjdGlv bklkICpiYWNrZW5kczsKIApAQCAtNDY1LDYgKzQ2Nyw5IEBAIFJlc29sdmVSZWNvdmVyeUNv bmZsaWN0V2l0aFNuYXBzaG90KFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCwgUmVs RmlsZU5vZGUKIAkJCQkJCQkJCQkgICBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBT SE9ULAogCQkJCQkJCQkJCSAgIFdBSVRfRVZFTlRfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNI T1QsCiAJCQkJCQkJCQkJICAgdHJ1ZSk7CisKKwlpZiAob25DYXRhbG9nVGFibGUpCisJCUlu dmFsaWRhdGVDb25mbGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlvblNsb3RzKG5vZGUuZGJOb2Rl LCBsYXRlc3RSZW1vdmVkWGlkKTsKIH0KIAogLyoKQEAgLTQ3Myw3ICs0NzgsNyBAQCBSZXNv bHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdChUcmFuc2FjdGlvbklkIGxhdGVzdFJl bW92ZWRYaWQsIFJlbEZpbGVOb2RlCiAgKi8KIHZvaWQKIFJlc29sdmVSZWNvdmVyeUNvbmZs aWN0V2l0aFNuYXBzaG90RnVsbFhpZChGdWxsVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVk RnVsbFhpZCwKLQkJCQkJCQkJCQkgICBSZWxGaWxlTm9kZSBub2RlKQorCQkJCQkJCQkJCSAg IGJvb2wgb25DYXRhbG9nVGFibGUsIFJlbEZpbGVOb2RlIG5vZGUpCiB7CiAJLyoKIAkgKiBS ZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCBvcGVyYXRlcyBvbiAzMi1iaXQg VHJhbnNhY3Rpb25JZHMsCkBAIC00OTEsNyArNDk2LDcgQEAgUmVzb2x2ZVJlY292ZXJ5Q29u ZmxpY3RXaXRoU25hcHNob3RGdWxsWGlkKEZ1bGxUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92 ZWRGdWxsWGkKIAkJVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkOwogCiAJCWxhdGVz dFJlbW92ZWRYaWQgPSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQobGF0ZXN0UmVtb3ZlZEZ1 bGxYaWQpOwotCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdChsYXRlc3RS ZW1vdmVkWGlkLCBub2RlKTsKKwkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNo b3QobGF0ZXN0UmVtb3ZlZFhpZCwgb25DYXRhbG9nVGFibGUsIG5vZGUpOwogCX0KIH0KIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jIGIvc3JjL2JhY2tlbmQv dGNvcC9wb3N0Z3Jlcy5jCmluZGV4IDUzMGNhYTUyMGIuLmZjMDAzMjk5ZGMgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYworKysgYi9zcmMvYmFja2VuZC90Y29w L3Bvc3RncmVzLmMKQEAgLTI0NjcsNiArMjQ2Nyw5IEBAIGVycmRldGFpbF9yZWNvdmVyeV9j b25mbGljdCh2b2lkKQogCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNI T1Q6CiAJCQllcnJkZXRhaWwoIlVzZXIgcXVlcnkgbWlnaHQgaGF2ZSBuZWVkZWQgdG8gc2Vl IHJvdyB2ZXJzaW9ucyB0aGF0IG11c3QgYmUgcmVtb3ZlZC4iKTsKIAkJCWJyZWFrOworCQlj YXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1Q6CisJCQllcnJkZXRh aWwoIlVzZXIgd2FzIHVzaW5nIHRoZSBsb2dpY2FsIHNsb3QgdGhhdCBtdXN0IGJlIGRyb3Bw ZWQuIik7CisJCQlicmVhazsKIAkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NU QVJUVVBfREVBRExPQ0s6CiAJCQllcnJkZXRhaWwoIlVzZXIgdHJhbnNhY3Rpb24gY2F1c2Vk IGJ1ZmZlciBkZWFkbG9jayB3aXRoIHJlY292ZXJ5LiIpOwogCQkJYnJlYWs7CkBAIC0zMDM3 LDYgKzMwNDAsMjUgQEAgUmVjb3ZlcnlDb25mbGljdEludGVycnVwdChQcm9jU2lnbmFsUmVh c29uIHJlYXNvbikKIAkJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0NLOgog CQkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1RBQkxFU1BBQ0U6CiAJCQljYXNl IFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1Q6CisJCQljYXNlIFBST0NTSUdf UkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1Q6CisJCQkJLyoKKwkJCQkgKiBGb3IgY29u ZmxpY3RzIHRoYXQgcmVxdWlyZSBhIGxvZ2ljYWwgc2xvdCB0byBiZSBpbnZhbGlkYXRlZCwg dGhlCisJCQkJICogcmVxdWlyZW1lbnQgaXMgZm9yIHRoZSBzaWduYWwgcmVjZWl2ZXIgdG8g cmVsZWFzZSB0aGUgc2xvdCwKKwkJCQkgKiBzbyB0aGF0IGl0IGNvdWxkIGJlIGludmFsaWRh dGVkIGJ5IHRoZSBzaWduYWwgc2VuZGVyLiBTbyBmb3IKKwkJCQkgKiBub3JtYWwgYmFja2Vu ZHMsIHRoZSB0cmFuc2FjdGlvbiBzaG91bGQgYmUgYWJvcnRlZCwganVzdAorCQkJCSAqIGxp a2UgZm9yIG90aGVyIHJlY292ZXJ5IGNvbmZsaWN0cy4gQnV0IGlmIGl0J3Mgd2Fsc2VuZGVy IG9uCisJCQkJICogc3RhbmRieSwgdGhlbiBpdCBoYXMgdG8gYmUga2lsbGVkIHNvIGFzIHRv IHJlbGVhc2UgYW4KKwkJCQkgKiBhY3F1aXJlZCBsb2dpY2FsIHNsb3QuCisJCQkJICovCisJ CQkJaWYgKGFtX2Nhc2NhZGluZ193YWxzZW5kZXIgJiYKKwkJCQkJcmVhc29uID09IFBST0NT SUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QgJiYKKwkJCQkJTXlSZXBsaWNhdGlv blNsb3QgJiYgU2xvdElzTG9naWNhbChNeVJlcGxpY2F0aW9uU2xvdCkpCisJCQkJeworCQkJ CQlSZWNvdmVyeUNvbmZsaWN0UGVuZGluZyA9IHRydWU7CisJCQkJCVF1ZXJ5Q2FuY2VsUGVu ZGluZyA9IHRydWU7CisJCQkJCUludGVycnVwdFBlbmRpbmcgPSB0cnVlOworCQkJCQlicmVh azsKKwkJCQl9CiAKIAkJCQkvKgogCQkJCSAqIElmIHdlIGFyZW4ndCBpbiBhIHRyYW5zYWN0 aW9uIGFueSBsb25nZXIgdGhlbiBpZ25vcmUuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRm dW5jcy5jCmluZGV4IGYwZTA5ZWFlNGQuLjVkYjBhMjk3NDAgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9wZ3N0YXRmdW5jcy5jCkBAIC0xNTAwLDYgKzE1MDAsMjEgQEAgcGdfc3RhdF9nZXRf ZGJfY29uZmxpY3Rfc25hcHNob3QoUEdfRlVOQ1RJT05fQVJHUykKIAlQR19SRVRVUk5fSU5U NjQocmVzdWx0KTsKIH0KIAorRGF0dW0KK3BnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvZ2lj YWxzbG90KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJZGJpZCA9IFBHX0dFVEFSR19P SUQoMCk7CisJaW50NjQJCXJlc3VsdDsKKwlQZ1N0YXRfU3RhdERCRW50cnkgKmRiZW50cnk7 CisKKwlpZiAoKGRiZW50cnkgPSBwZ3N0YXRfZmV0Y2hfc3RhdF9kYmVudHJ5KGRiaWQpKSA9 PSBOVUxMKQorCQlyZXN1bHQgPSAwOworCWVsc2UKKwkJcmVzdWx0ID0gKGludDY0KSAoZGJl bnRyeS0+bl9jb25mbGljdF9sb2dpY2Fsc2xvdCk7CisKKwlQR19SRVRVUk5fSU5UNjQocmVz dWx0KTsKK30KKwogRGF0dW0KIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2J1ZmZlcnBpbihQ R19GVU5DVElPTl9BUkdTKQogewpAQCAtMTU0Myw2ICsxNTU4LDcgQEAgcGdfc3RhdF9nZXRf ZGJfY29uZmxpY3RfYWxsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXJlc3VsdCA9IChpbnQ2NCkg KGRiZW50cnktPm5fY29uZmxpY3RfdGFibGVzcGFjZSArCiAJCQkJCQkgIGRiZW50cnktPm5f Y29uZmxpY3RfbG9jayArCiAJCQkJCQkgIGRiZW50cnktPm5fY29uZmxpY3Rfc25hcHNob3Qg KworCQkJCQkJICBkYmVudHJ5LT5uX2NvbmZsaWN0X2xvZ2ljYWxzbG90ICsKIAkJCQkJCSAg ZGJlbnRyeS0+bl9jb25mbGljdF9idWZmZXJwaW4gKwogCQkJCQkJICBkYmVudHJ5LT5uX2Nv bmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2spOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApp bmRleCA4Y2QwMjUyMDgyLi42ZGZjZmE5ODNmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5k YXQKQEAgLTU0MzgsNiArNTQzOCwxMSBAQAogICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9k Yl9jb25mbGljdF9zbmFwc2hvdCcsIHByb3ZvbGF0aWxlID0+ICdzJywKICAgcHJvcGFyYWxs ZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29pZCcs CiAgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc25hcHNob3QnIH0sCit7 IG9pZCA9PiAnNDU0NCcsCisgIGRlc2NyID0+ICdzdGF0aXN0aWNzOiByZWNvdmVyeSBjb25m bGljdHMgaW4gZGF0YWJhc2UgY2F1c2VkIGJ5IGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCcs CisgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90Jywg cHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUg PT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKKyAgcHJvc3JjID0+ICdwZ19zdGF0 X2dldF9kYl9jb25mbGljdF9sb2dpY2Fsc2xvdCcgfSwKIHsgb2lkID0+ICczMDY4JywKICAg ZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IHJlY292ZXJ5IGNvbmZsaWN0cyBpbiBkYXRhYmFzZSBj YXVzZWQgYnkgc2hhcmVkIGJ1ZmZlciBwaW4nLAogICBwcm9uYW1lID0+ICdwZ19zdGF0X2dl dF9kYl9jb25mbGljdF9idWZmZXJwaW4nLCBwcm92b2xhdGlsZSA9PiAncycsCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaCBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCmluZGV4 IDk2MTJjMGE2YzIuLjUyNjIzYjRiZTkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bnc3Rh dC5oCisrKyBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCkBAIC03NDMsNiArNzQzLDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXREQkVudHJ5CiAJUGdTdGF0X0NvdW50ZXIgbl9jb25m bGljdF90YWJsZXNwYWNlOwogCVBnU3RhdF9Db3VudGVyIG5fY29uZmxpY3RfbG9jazsKIAlQ Z1N0YXRfQ291bnRlciBuX2NvbmZsaWN0X3NuYXBzaG90OworCVBnU3RhdF9Db3VudGVyIG5f Y29uZmxpY3RfbG9naWNhbHNsb3Q7CiAJUGdTdGF0X0NvdW50ZXIgbl9jb25mbGljdF9idWZm ZXJwaW47CiAJUGdTdGF0X0NvdW50ZXIgbl9jb25mbGljdF9zdGFydHVwX2RlYWRsb2NrOwog CVBnU3RhdF9Db3VudGVyIG5fdGVtcF9maWxlczsKQEAgLTEwMTEsNiArMTAxMiw3IEBAIGV4 dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfY2hlY2tzdW1fZmFpbHVyZSh2b2lkKTsKIGV4dGVy biB2b2lkIHBnc3RhdF9yZXBvcnRfcmVwbHNsb3QoY29uc3QgUGdTdGF0X1N0YXRSZXBsU2xv dEVudHJ5ICpyZXBTbG90U3RhdCk7CiBleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X3JlcGxz bG90X2NyZWF0ZShjb25zdCBjaGFyICpzbG90bmFtZSk7CiBleHRlcm4gdm9pZCBwZ3N0YXRf cmVwb3J0X3JlcGxzbG90X2Ryb3AoY29uc3QgY2hhciAqc2xvdG5hbWUpOworZXh0ZXJuIHZv aWQgcGdzdGF0X3JlcG9ydF9yZXBsc2xvdF9jb25mbGljdChPaWQgZGJPaWQpOwogCiBleHRl cm4gdm9pZCBwZ3N0YXRfaW5pdGlhbGl6ZSh2b2lkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xv dC5oCmluZGV4IGUzMmZiODVkYjguLjQ3Nzk2MTdjZDcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3JlcGxpY2F0aW9uL3Nsb3QuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9z bG90LmgKQEAgLTIxNCw2ICsyMTQsNyBAQCBleHRlcm4gWExvZ1JlY1B0ciBSZXBsaWNhdGlv blNsb3RzQ29tcHV0ZUxvZ2ljYWxSZXN0YXJ0TFNOKHZvaWQpOwogZXh0ZXJuIGJvb2wgUmVw bGljYXRpb25TbG90c0NvdW50REJTbG90cyhPaWQgZGJvaWQsIGludCAqbnNsb3RzLCBpbnQg Km5hY3RpdmUpOwogZXh0ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90c0Ryb3BEQlNsb3RzKE9p ZCBkYm9pZCk7CiBleHRlcm4gYm9vbCBJbnZhbGlkYXRlT2Jzb2xldGVSZXBsaWNhdGlvblNs b3RzKFhMb2dTZWdObyBvbGRlc3RTZWdubyk7CitleHRlcm4gdm9pZCBJbnZhbGlkYXRlQ29u ZmxpY3RpbmdMb2dpY2FsUmVwbGljYXRpb25TbG90cyhPaWQgZGJvaWQsIFRyYW5zYWN0aW9u SWQgeGlkKTsKIGV4dGVybiBSZXBsaWNhdGlvblNsb3QgKlNlYXJjaE5hbWVkUmVwbGljYXRp b25TbG90KGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgbmVlZF9sb2NrKTsKIGV4dGVybiB2b2lk IFJlcGxpY2F0aW9uU2xvdE5hbWVGb3JUYWJsZXN5bmMoT2lkIHN1Ym9pZCwgT2lkIHJlbGlk LCBjaGFyICpzeW5jc2xvdG5hbWUsIGludCBzenNsb3QpOwogZXh0ZXJuIHZvaWQgUmVwbGlj YXRpb25TbG90RHJvcEF0UHViTm9kZShXYWxSZWNlaXZlckNvbm4gKndyY29ubiwgY2hhciAq c2xvdG5hbWUsIGJvb2wgbWlzc2luZ19vayk7CkBAIC0yMjMsNCArMjI0LDYgQEAgZXh0ZXJu IHZvaWQgQ2hlY2tQb2ludFJlcGxpY2F0aW9uU2xvdHModm9pZCk7CiAKIGV4dGVybiB2b2lk IENoZWNrU2xvdFJlcXVpcmVtZW50cyh2b2lkKTsKIAorZXh0ZXJuIHZvaWQgUmVzb2x2ZVJl Y292ZXJ5Q29uZmxpY3RXaXRoTG9naWNhbFNsb3RzKE9pZCBkYm9pZCwgVHJhbnNhY3Rpb25J ZCB4aWQsIGNoYXIgKnJlYXNvbik7CisKICNlbmRpZgkJCQkJCQkvKiBTTE9UX0ggKi8KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oIGIvc3JjL2luY2x1 ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmgKaW5kZXggZWVjMTg2YmUyZS4uZjg2YjA3MGRiYyAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmgKKysrIGIvc3Jj L2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmgKQEAgLTQxLDYgKzQxLDcgQEAgdHlwZWRl ZiBlbnVtCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9UQUJMRVNQQUNFLAogCVBST0NT SUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9DSywKIAlQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNU X1NOQVBTSE9ULAorCVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QsCiAJ UFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9CVUZGRVJQSU4sCiAJUFJPQ1NJR19SRUNPVkVS WV9DT05GTElDVF9TVEFSVFVQX0RFQURMT0NLLAogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9zdG9yYWdlL3N0YW5kYnkuaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5oCmlu ZGV4IDM4ZmQ4NWE0MzEuLjNiYTE4ODIyMTYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3N0 b3JhZ2Uvc3RhbmRieS5oCisrKyBiL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5oCkBA IC0zMCw5ICszMCw5IEBAIGV4dGVybiB2b2lkIEluaXRSZWNvdmVyeVRyYW5zYWN0aW9uRW52 aXJvbm1lbnQodm9pZCk7CiBleHRlcm4gdm9pZCBTaHV0ZG93blJlY292ZXJ5VHJhbnNhY3Rp b25FbnZpcm9ubWVudCh2b2lkKTsKIAogZXh0ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29u ZmxpY3RXaXRoU25hcHNob3QoVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkLAotCQkJ CQkJCQkJCQkJUmVsRmlsZU5vZGUgbm9kZSk7CisJCQkJCQkJCQkJCQlib29sIG9uQ2F0YWxv Z1RhYmxlLCBSZWxGaWxlTm9kZSBub2RlKTsKIGV4dGVybiB2b2lkIFJlc29sdmVSZWNvdmVy eUNvbmZsaWN0V2l0aFNuYXBzaG90RnVsbFhpZChGdWxsVHJhbnNhY3Rpb25JZCBsYXRlc3RS ZW1vdmVkRnVsbFhpZCwKLQkJCQkJCQkJCQkJCQkgICBSZWxGaWxlTm9kZSBub2RlKTsKKwkJ CQkJCQkJCQkJCQkgICBib29sIG9uQ2F0YWxvZ1RhYmxlLCBSZWxGaWxlTm9kZSBub2RlKTsK IGV4dGVybiB2b2lkIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFRhYmxlc3BhY2UoT2lk IHRzaWQpOwogZXh0ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoRGF0YWJh c2UoT2lkIGRiaWQpOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4 IGU1YWIxMTI3NWQuLjY2ZjI4YjY0OWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVs ZXMub3V0CkBAIC0xODcxLDcgKzE4NzEsOCBAQCBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0 c3wgU0VMRUNUIGQub2lkIEFTIGRhdGlkLAogICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0 X2xvY2soZC5vaWQpIEFTIGNvbmZsX2xvY2ssCiAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxp Y3Rfc25hcHNob3QoZC5vaWQpIEFTIGNvbmZsX3NuYXBzaG90LAogICAgIHBnX3N0YXRfZ2V0 X2RiX2NvbmZsaWN0X2J1ZmZlcnBpbihkLm9pZCkgQVMgY29uZmxfYnVmZmVycGluLAotICAg IHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2soZC5vaWQpIEFTIGNv bmZsX2RlYWRsb2NrCisgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc3RhcnR1cF9kZWFk bG9jayhkLm9pZCkgQVMgY29uZmxfZGVhZGxvY2ssCisgICAgcGdfc3RhdF9nZXRfZGJfY29u ZmxpY3RfbG9naWNhbHNsb3QoZC5vaWQpIEFTIGNvbmZsX2xvZ2ljYWxzbG90CiAgICBGUk9N IHBnX2RhdGFiYXNlIGQ7CiBwZ19zdGF0X2dzc2FwaXwgU0VMRUNUIHMucGlkLAogICAgIHMu Z3NzX2F1dGggQVMgZ3NzX2F1dGhlbnRpY2F0ZWQsCi0tIAoyLjE4LjQKCg== --------------A2B3C3F1A3D498E906D62BDD Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v22-0001-Add-info-in-WAL-records-in-preparation-for-logic.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v22-0001-Add-info-in-WAL-records-in-preparation-for-logic.pa"; filename*1="tch" RnJvbSBjMDgzZTk1OGZiMjA4ZDg1ZDAxMjc0MWIxZTE5YjM4MjgwNWM0ODhjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogTW9uLCAyIEF1ZyAyMDIxIDEzOjQ3OjA3ICswMDAwClN1YmplY3Q6IFtQQVRD SCB2MjIgMS81XSBBZGQgaW5mbyBpbiBXQUwgcmVjb3JkcyBpbiBwcmVwYXJhdGlvbiBmb3Ig bG9naWNhbAogc2xvdCBjb25mbGljdCBoYW5kbGluZy4KCldoZW4gYSBXQUwgcmVwbGF5IG9u IHN0YW5kYnkgaW5kaWNhdGVzIHRoYXQgYSBjYXRhbG9nIHRhYmxlIHR1cGxlIGlzCnRvIGJl IGRlbGV0ZWQgYnkgYW4geGlkIHRoYXQgaXMgZ3JlYXRlciB0aGFuIGEgbG9naWNhbCBzbG90 J3MKY2F0YWxvZ194bWluLCB0aGVuIHRoYXQgbWVhbnMgdGhlIHNsb3QncyBjYXRhbG9nX3ht aW4gY29uZmxpY3RzIHdpdGgKdGhlIHhpZCwgYW5kIHdlIG5lZWQgdG8gaGFuZGxlIHRoZSBj b25mbGljdC4gIFdoaWxlIHN1YnNlcXVlbnQgY29tbWl0cwp3aWxsIGRvIHRoZSBhY3R1YWwg Y29uZmxpY3QgaGFuZGxpbmcsIHRoaXMgY29tbWl0IGFkZHMgYSBuZXcgZmllbGQKb25DYXRh bG9nVGFibGUgaW4gc3VjaCBXQUwgcmVjb3JkcywgdGhhdCBpcyB0cnVlIGZvciBjYXRhbG9n IHRhYmxlcywKc28gYXMgdG8gYXJyYW5nZSBmb3IgY29uZmxpY3QgaGFuZGxpbmcuCgpBdXRo b3I6IEFuZHJlcyBGcmV1bmQgKGluIGFuIG9sZGVyIHZlcnNpb24pLCBBbWl0IEtoYW5kZWth ciwgQmVydHJhbmQgRHJvdXZvdApSZXZpZXdlZC1CeTogQmVydHJhbmQgRHJvdXZvdCwgQW5k cmVzIEZyZXVuZCwgUm9iZXJ0IEhhYXMsIEZhYnJpemlvIGRlIFJveWVzIE1lbGxvCi0tLQog c3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdC5jICAgICAgICAgIHwgIDIgKy0KIHNyYy9i YWNrZW5kL2FjY2Vzcy9naXN0L2dpc3RidWlsZC5jICAgICB8ICAyICstCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5jICAgICAgfCAgNCArKy0tCiBzcmMvYmFja2VuZC9h Y2Nlc3MvZ2lzdC9naXN0eGxvZy5jICAgICAgfCAgNCArKystCiBzcmMvYmFja2VuZC9hY2Nl c3MvaGFzaC9oYXNoaW5zZXJ0LmMgICAgfCAgMSArCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9oZWFwYW0uYyAgICAgICAgfCAgNCArKystCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9w cnVuZWhlYXAuYyAgICAgfCAgMSArCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmls aXR5bWFwLmMgfCAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRwYWdlLmMg ICAgIHwgMTIgKysrKysrKysrLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3Zh Y3V1bS5jICAgfCAgOCArKysrKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2Nh Y2hlLmMgICAgIHwgMTUgKysrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS9hY2Nlc3MvZ2lz dF9wcml2YXRlLmggICAgICAgfCAgNiArKystLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9naXN0 eGxvZy5oICAgICAgICAgICB8ICAzICsrLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hhc2hfeGxv Zy5oICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgg ICAgICAgIHwgIDUgKysrKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9uYnR4bG9nLmggICAgICAg ICAgICB8ICAyICsrCiBzcmMvaW5jbHVkZS9hY2Nlc3Mvc3BneGxvZy5oICAgICAgICAgICAg fCAgMSArCiBzcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCAgICAgICAgICAgfCAgMSAr CiBzcmMvaW5jbHVkZS91dGlscy9yZWwuaCAgICAgICAgICAgICAgICAgfCAgOSArKysrKysr KysKIDE5IGZpbGVzIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygt KQogIDE3LjklIHNyYy9iYWNrZW5kL2FjY2Vzcy9naXN0LwogIDEzLjElIHNyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwLwogIDE0LjUlIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvCiAgIDgu OSUgc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC8KICAgNy4yJSBzcmMvYmFja2VuZC91dGls cy9jYWNoZS8KICAxOS42JSBzcmMvaW5jbHVkZS9hY2Nlc3MvCiAgMTYuNiUgc3JjL2luY2x1 ZGUvdXRpbHMvCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdC5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdC5jCmluZGV4IDA2ODNmNDJjMjUuLmI2 ZTYzNDBjM2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3QuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0LmMKQEAgLTM0OCw3ICszNDgsNyBA QCBnaXN0cGxhY2V0b3BhZ2UoUmVsYXRpb24gcmVsLCBTaXplIGZyZWVzcGFjZSwgR0lTVFNU QVRFICpnaXN0c3RhdGUsCiAJCWZvciAoOyBwdHI7IHB0ciA9IHB0ci0+bmV4dCkKIAkJewog CQkJLyogQWxsb2NhdGUgbmV3IHBhZ2UgKi8KLQkJCXB0ci0+YnVmZmVyID0gZ2lzdE5ld0J1 ZmZlcihyZWwpOworCQkJcHRyLT5idWZmZXIgPSBnaXN0TmV3QnVmZmVyKGhlYXBSZWwsIHJl bCk7CiAJCQlHSVNUSW5pdEJ1ZmZlcihwdHItPmJ1ZmZlciwgKGlzX2xlYWYpID8gRl9MRUFG IDogMCk7CiAJCQlwdHItPnBhZ2UgPSBCdWZmZXJHZXRQYWdlKHB0ci0+YnVmZmVyKTsKIAkJ CXB0ci0+YmxvY2suYmxrbm8gPSBCdWZmZXJHZXRCbG9ja051bWJlcihwdHItPmJ1ZmZlcik7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0YnVpbGQuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3RidWlsZC5jCmluZGV4IGJhYWQyOGMwOWYuLjZk OTQ4NTQ4YzMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3RidWls ZC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3RidWlsZC5jCkBAIC0yOTAs NyArMjkwLDcgQEAgZ2lzdGJ1aWxkKFJlbGF0aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LCBJ bmRleEluZm8gKmluZGV4SW5mbykKIAkJUGFnZQkJcGFnZTsKIAogCQkvKiBpbml0aWFsaXpl IHRoZSByb290IHBhZ2UgKi8KLQkJYnVmZmVyID0gZ2lzdE5ld0J1ZmZlcihpbmRleCk7CisJ CWJ1ZmZlciA9IGdpc3ROZXdCdWZmZXIoaGVhcCwgaW5kZXgpOwogCQlBc3NlcnQoQnVmZmVy R2V0QmxvY2tOdW1iZXIoYnVmZmVyKSA9PSBHSVNUX1JPT1RfQkxLTk8pOwogCQlwYWdlID0g QnVmZmVyR2V0UGFnZShidWZmZXIpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvZ2lzdC9naXN0dXRpbC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHV0aWwu YwppbmRleCA0M2JhMDNiNmViLi4xZDFlMjExMTJjIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0 L2dpc3R1dGlsLmMKQEAgLTgyMCw3ICs4MjAsNyBAQCBnaXN0Y2hlY2twYWdlKFJlbGF0aW9u IHJlbCwgQnVmZmVyIGJ1ZikKICAqIENhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgaW5pdGlh bGl6aW5nIHRoZSBwYWdlIGJ5IGNhbGxpbmcgR0lTVEluaXRCdWZmZXIKICAqLwogQnVmZmVy Ci1naXN0TmV3QnVmZmVyKFJlbGF0aW9uIHIpCitnaXN0TmV3QnVmZmVyKFJlbGF0aW9uIGhl YXBSZWwsIFJlbGF0aW9uIHIpCiB7CiAJQnVmZmVyCQlidWZmZXI7CiAJYm9vbAkJbmVlZExv Y2s7CkBAIC04NjQsNyArODY0LDcgQEAgZ2lzdE5ld0J1ZmZlcihSZWxhdGlvbiByKQogCQkJ CSAqIHBhZ2UncyBkZWxldGVYaWQuCiAJCQkJICovCiAJCQkJaWYgKFhMb2dTdGFuZGJ5SW5m b0FjdGl2ZSgpICYmIFJlbGF0aW9uTmVlZHNXQUwocikpCi0JCQkJCWdpc3RYTG9nUGFnZVJl dXNlKHIsIGJsa25vLCBHaXN0UGFnZUdldERlbGV0ZVhpZChwYWdlKSk7CisJCQkJCWdpc3RY TG9nUGFnZVJldXNlKGhlYXBSZWwsIHIsIGJsa25vLCBHaXN0UGFnZUdldERlbGV0ZVhpZChw YWdlKSk7CiAKIAkJCQlyZXR1cm4gYnVmZmVyOwogCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0 L2dpc3R4bG9nLmMKaW5kZXggNjQ2NGNiOTI4MS4uNDZhZWU2ZjJhOSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvZ2lzdC9naXN0eGxvZy5jCkBAIC01OTYsNyArNTk2LDggQEAgZ2lzdFhMb2dBc3Np Z25MU04odm9pZCkKICAqIFdyaXRlIFhMT0cgcmVjb3JkIGFib3V0IHJldXNlIG9mIGEgZGVs ZXRlZCBwYWdlLgogICovCiB2b2lkCi1naXN0WExvZ1BhZ2VSZXVzZShSZWxhdGlvbiByZWws IEJsb2NrTnVtYmVyIGJsa25vLCBGdWxsVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlk KQorZ2lzdFhMb2dQYWdlUmV1c2UoUmVsYXRpb24gaGVhcFJlbCwgUmVsYXRpb24gcmVsLAor CQkJCSAgQmxvY2tOdW1iZXIgYmxrbm8sIEZ1bGxUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92 ZWRYaWQpCiB7CiAJZ2lzdHhsb2dQYWdlUmV1c2UgeGxyZWNfcmV1c2U7CiAKQEAgLTYwNyw2 ICs2MDgsNyBAQCBnaXN0WExvZ1BhZ2VSZXVzZShSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVy IGJsa25vLCBGdWxsVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdgogCSAqLwogCiAJLyogWExP RyBzdHVmZiAqLworCXhscmVjX3JldXNlLm9uQ2F0YWxvZ1RhYmxlID0gUmVsYXRpb25Jc0Fj Y2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhoZWFwUmVsKTsKIAl4bHJlY19yZXVzZS5ub2Rl ID0gcmVsLT5yZF9ub2RlOwogCXhscmVjX3JldXNlLmJsb2NrID0gYmxrbm87CiAJeGxyZWNf cmV1c2UubGF0ZXN0UmVtb3ZlZEZ1bGxYaWQgPSBsYXRlc3RSZW1vdmVkWGlkOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaGluc2VydC5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hhc2gvaGFzaGluc2VydC5jCmluZGV4IGQyNTRhMDBiNmEuLmNlMjIzYjJj MTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hpbnNlcnQuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoaW5zZXJ0LmMKQEAgLTM5OCw2ICsz OTgsNyBAQCBfaGFzaF92YWN1dW1fb25lX3BhZ2UoUmVsYXRpb24gcmVsLCBSZWxhdGlvbiBo cmVsLCBCdWZmZXIgbWV0YWJ1ZiwgQnVmZmVyIGJ1ZikKIAkJCXhsX2hhc2hfdmFjdXVtX29u ZV9wYWdlIHhscmVjOwogCQkJWExvZ1JlY1B0cglyZWNwdHI7CiAKKwkJCXhscmVjLm9uQ2F0 YWxvZ1RhYmxlID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhocmVs KTsKIAkJCXhscmVjLmxhdGVzdFJlbW92ZWRYaWQgPSBsYXRlc3RSZW1vdmVkWGlkOwogCQkJ eGxyZWMubnR1cGxlcyA9IG5kZWxldGFibGU7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt LmMKaW5kZXggMjQzMzk5OGYzOS4uNDAxOWEyMTIyZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv aGVhcGFtLmMKQEAgLTc5NDEsNiArNzk0MSw3IEBAIGxvZ19oZWFwX2ZyZWV6ZShSZWxhdGlv biByZWxuLCBCdWZmZXIgYnVmZmVyLCBUcmFuc2FjdGlvbklkIGN1dG9mZl94aWQsCiAJLyog bm9yIHdoZW4gdGhlcmUgYXJlIG5vIHR1cGxlcyB0byBmcmVlemUgKi8KIAlBc3NlcnQobnR1 cGxlcyA+IDApOwogCisJeGxyZWMub25DYXRhbG9nVGFibGUgPSBSZWxhdGlvbklzQWNjZXNz aWJsZUluTG9naWNhbERlY29kaW5nKHJlbG4pOwogCXhscmVjLmN1dG9mZl94aWQgPSBjdXRv ZmZfeGlkOwogCXhscmVjLm50dXBsZXMgPSBudHVwbGVzOwogCkBAIC03OTcxLDcgKzc5NzIs NyBAQCBsb2dfaGVhcF9mcmVlemUoUmVsYXRpb24gcmVsbiwgQnVmZmVyIGJ1ZmZlciwgVHJh bnNhY3Rpb25JZCBjdXRvZmZfeGlkLAogICogaGVhcF9idWZmZXIsIGlmIG5lY2Vzc2FyeS4K ICAqLwogWExvZ1JlY1B0cgotbG9nX2hlYXBfdmlzaWJsZShSZWxGaWxlTm9kZSBybm9kZSwg QnVmZmVyIGhlYXBfYnVmZmVyLCBCdWZmZXIgdm1fYnVmZmVyLAorbG9nX2hlYXBfdmlzaWJs ZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBoZWFwX2J1ZmZlciwgQnVmZmVyIHZtX2J1ZmZlciwK IAkJCQkgVHJhbnNhY3Rpb25JZCBjdXRvZmZfeGlkLCB1aW50OCB2bWZsYWdzKQogewogCXhs X2hlYXBfdmlzaWJsZSB4bHJlYzsKQEAgLTc5ODEsNiArNzk4Miw3IEBAIGxvZ19oZWFwX3Zp c2libGUoUmVsRmlsZU5vZGUgcm5vZGUsIEJ1ZmZlciBoZWFwX2J1ZmZlciwgQnVmZmVyIHZt X2J1ZmZlciwKIAlBc3NlcnQoQnVmZmVySXNWYWxpZChoZWFwX2J1ZmZlcikpOwogCUFzc2Vy dChCdWZmZXJJc1ZhbGlkKHZtX2J1ZmZlcikpOwogCisJeGxyZWMub25DYXRhbG9nVGFibGUg PSBSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nKHJlbCk7CiAJeGxyZWMu Y3V0b2ZmX3hpZCA9IGN1dG9mZl94aWQ7CiAJeGxyZWMuZmxhZ3MgPSB2bWZsYWdzOwogCVhM b2dCZWdpbkluc2VydCgpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv cHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRl eCAxNWNhMWIzMDRhLi4wNTkwYjcwNTNjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVu ZWhlYXAuYwpAQCAtMzIzLDYgKzMyMyw3IEBAIGhlYXBfcGFnZV9wcnVuZShSZWxhdGlvbiBy ZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJCXhscmVjLmxhdGVzdFJlbW92ZWRYaWQgPSBw cnN0YXRlLmxhdGVzdFJlbW92ZWRYaWQ7CiAJCQl4bHJlYy5ucmVkaXJlY3RlZCA9IHByc3Rh dGUubnJlZGlyZWN0ZWQ7CiAJCQl4bHJlYy5uZGVhZCA9IHByc3RhdGUubmRlYWQ7CisJCQl4 bHJlYy5vbkNhdGFsb2dUYWJsZSA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVj b2RpbmcocmVsYXRpb24pOwogCiAJCQlYTG9nQmVnaW5JbnNlcnQoKTsKIAkJCVhMb2dSZWdp c3RlckRhdGEoKGNoYXIgKikgJnhscmVjLCBTaXplT2ZIZWFwUHJ1bmUpOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCmluZGV4IDExNGZiYmRkMzAuLjI1OTc2 MzZiZjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHlt YXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMKQEAg LTI4Miw3ICsyODIsNyBAQCB2aXNpYmlsaXR5bWFwX3NldChSZWxhdGlvbiByZWwsIEJsb2Nr TnVtYmVyIGhlYXBCbGssIEJ1ZmZlciBoZWFwQnVmLAogCQkJaWYgKFhMb2dSZWNQdHJJc0lu dmFsaWQocmVjcHRyKSkKIAkJCXsKIAkJCQlBc3NlcnQoIUluUmVjb3ZlcnkpOwotCQkJCXJl Y3B0ciA9IGxvZ19oZWFwX3Zpc2libGUocmVsLT5yZF9ub2RlLCBoZWFwQnVmLCB2bUJ1ZiwK KwkJCQlyZWNwdHIgPSBsb2dfaGVhcF92aXNpYmxlKHJlbCwgaGVhcEJ1Ziwgdm1CdWYsCiAJ CQkJCQkJCQkJICBjdXRvZmZfeGlkLCBmbGFncyk7CiAKIAkJCQkvKgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRwYWdlLmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvbmJ0cmVlL25idHBhZ2UuYwppbmRleCBlYmVjOGZhNWI4Li4yZDI3YTNmOTc0IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHBhZ2UuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHBhZ2UuYwpAQCAtMzYsNiArMzYsNyBAQAogI2lu Y2x1ZGUgInV0aWxzL21lbWRlYnVnLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIK ICNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hl LmgiCiAKIHN0YXRpYyBCVE1ldGFQYWdlRGF0YSAqX2J0X2dldG1ldGEoUmVsYXRpb24gcmVs LCBCdWZmZXIgbWV0YWJ1Zik7CiBzdGF0aWMgdm9pZCBfYnRfbG9nX3JldXNlX3BhZ2UoUmVs YXRpb24gcmVsLCBCbG9ja051bWJlciBibGtubywKQEAgLTQzLDcgKzQ0LDggQEAgc3RhdGlj IHZvaWQgX2J0X2xvZ19yZXVzZV9wYWdlKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgYmxr bm8sCiBzdGF0aWMgdm9pZCBfYnRfZGVsaXRlbXNfZGVsZXRlKFJlbGF0aW9uIHJlbCwgQnVm ZmVyIGJ1ZiwKIAkJCQkJCQkJVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkLAogCQkJ CQkJCQlPZmZzZXROdW1iZXIgKmRlbGV0YWJsZSwgaW50IG5kZWxldGFibGUsCi0JCQkJCQkJ CUJUVmFjdXVtUG9zdGluZyAqdXBkYXRhYmxlLCBpbnQgbnVwZGF0YWJsZSk7CisJCQkJCQkJ CUJUVmFjdXVtUG9zdGluZyAqdXBkYXRhYmxlLCBpbnQgbnVwZGF0YWJsZSwKKwkJCQkJCQkJ UmVsYXRpb24gaGVhcFJlbCk7CiBzdGF0aWMgY2hhciAqX2J0X2RlbGl0ZW1zX3VwZGF0ZShC VFZhY3V1bVBvc3RpbmcgKnVwZGF0YWJsZSwgaW50IG51cGRhdGFibGUsCiAJCQkJCQkJCSBP ZmZzZXROdW1iZXIgKnVwZGF0ZWRvZmZzZXRzLAogCQkJCQkJCQkgU2l6ZSAqdXBkYXRlZGJ1 ZmxlbiwgYm9vbCBuZWVkc3dhbCk7CkBAIC04MzYsNiArODM4LDcgQEAgX2J0X2xvZ19yZXVz ZV9wYWdlKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIEZ1bGxUcmFuc2FjdGlv bklkIHNhZmV4aWQpCiAJICovCiAKIAkvKiBYTE9HIHN0dWZmICovCisJeGxyZWNfcmV1c2Uu b25DYXRhbG9nVGFibGUgPSBnZXRfcmVsX2xvZ2ljYWxfY2F0YWxvZyhyZWwtPnJkX2luZGV4 LT5pbmRyZWxpZCk7CiAJeGxyZWNfcmV1c2Uubm9kZSA9IHJlbC0+cmRfbm9kZTsKIAl4bHJl Y19yZXVzZS5ibG9jayA9IGJsa25vOwogCXhscmVjX3JldXNlLmxhdGVzdFJlbW92ZWRGdWxs WGlkID0gc2FmZXhpZDsKQEAgLTEyOTYsNyArMTI5OSw4IEBAIF9idF9kZWxpdGVtc192YWN1 dW0oUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogc3RhdGljIHZvaWQKIF9idF9kZWxpdGVt c19kZWxldGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLCBUcmFuc2FjdGlvbklkIGxhdGVz dFJlbW92ZWRYaWQsCiAJCQkJCU9mZnNldE51bWJlciAqZGVsZXRhYmxlLCBpbnQgbmRlbGV0 YWJsZSwKLQkJCQkJQlRWYWN1dW1Qb3N0aW5nICp1cGRhdGFibGUsIGludCBudXBkYXRhYmxl KQorCQkJCQlCVFZhY3V1bVBvc3RpbmcgKnVwZGF0YWJsZSwgaW50IG51cGRhdGFibGUsCisJ CQkJCVJlbGF0aW9uIGhlYXBSZWwpCiB7CiAJUGFnZQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2Uo YnVmKTsKIAlCVFBhZ2VPcGFxdWUgb3BhcXVlOwpAQCAtMTM1OCw2ICsxMzYyLDggQEAgX2J0 X2RlbGl0ZW1zX2RlbGV0ZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsIFRyYW5zYWN0aW9u SWQgbGF0ZXN0UmVtb3ZlZFhpZCwKIAkJWExvZ1JlY1B0cglyZWNwdHI7CiAJCXhsX2J0cmVl X2RlbGV0ZSB4bHJlY19kZWxldGU7CiAKKwkJeGxyZWNfZGVsZXRlLm9uQ2F0YWxvZ1RhYmxl ID0KKwkJCVJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcoaGVhcFJlbCk7 CiAJCXhscmVjX2RlbGV0ZS5sYXRlc3RSZW1vdmVkWGlkID0gbGF0ZXN0UmVtb3ZlZFhpZDsK IAkJeGxyZWNfZGVsZXRlLm5kZWxldGVkID0gbmRlbGV0YWJsZTsKIAkJeGxyZWNfZGVsZXRl Lm51cGRhdGVkID0gbnVwZGF0YWJsZTsKQEAgLTE2ODUsNyArMTY5MSw3IEBAIF9idF9kZWxp dGVtc19kZWxldGVfY2hlY2soUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLCBSZWxhdGlvbiBo ZWFwUmVsLAogCiAJLyogUGh5c2ljYWxseSBkZWxldGUgdHVwbGVzIChvciBUSURzKSB1c2lu ZyBkZWxldGFibGUgKG9yIHVwZGF0YWJsZSkgKi8KIAlfYnRfZGVsaXRlbXNfZGVsZXRlKHJl bCwgYnVmLCBsYXRlc3RSZW1vdmVkWGlkLCBkZWxldGFibGUsIG5kZWxldGFibGUsCi0JCQkJ CQl1cGRhdGFibGUsIG51cGRhdGFibGUpOworCQkJCQkJdXBkYXRhYmxlLCBudXBkYXRhYmxl LCBoZWFwUmVsKTsKIAogCS8qIGJlIHRpZHkgKi8KIAlmb3IgKGludCBpID0gMDsgaSA8IG51 cGRhdGFibGU7IGkrKykKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qv c3BndmFjdXVtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jCmlu ZGV4IDc2ZmIwMzc0YzQuLjMxODY4ODVkMTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lz dC9zcGd2YWN1dW0uYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgInN0b3JhZ2UvaW5k ZXhmc20uaCIKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9z bmFwbWdyLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAKIAogLyogRW50cnkg aW4gcGVuZGluZy1saXN0IG9mIFRJRHMgd2UgbmVlZCB0byByZXZpc2l0ICovCkBAIC01MDMs NiArNTA0LDEzIEBAIHZhY3V1bVJlZGlyZWN0QW5kUGxhY2Vob2xkZXIoUmVsYXRpb24gaW5k ZXgsIEJ1ZmZlciBidWZmZXIpCiAJc3BneGxvZ1ZhY3V1bVJlZGlyZWN0IHhscmVjOwogCUds b2JhbFZpc1N0YXRlICp2aXN0ZXN0OwogCisJLyoKKwkgKiBUaGVyZSBpcyBubyBjaGFuY2Ug b2YgZW5kbGVzcyByZWN1cnNpb24gZXZlbiB3aGVuIHdlIGFyZSBkb2luZyBjYXRhbG9nCisJ ICogYWNjZXNlcyBoZXJlOyBiZWNhdXNlLCBzcGdpc3QgaXMgbmV2ZXIgdXNlZCBmb3IgY2F0 YWxvZ3MuIENoZWNrCisJICogY29tbWVudHMgaW4gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxv Z2ljYWxEZWNvZGluZygpLgorCSAqLworCXhscmVjLm9uQ2F0YWxvZ1RhYmxlID0gZ2V0X3Jl bF9sb2dpY2FsX2NhdGFsb2coaW5kZXgtPnJkX2luZGV4LT5pbmRyZWxpZCk7CisKIAl4bHJl Yy5uVG9QbGFjZWhvbGRlciA9IDA7CiAJeGxyZWMubmV3ZXN0UmVkaXJlY3RYaWQgPSBJbnZh bGlkVHJhbnNhY3Rpb25JZDsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2Fj aGUvbHN5c2NhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwpp bmRleCA0ZWJhYTU1MmEyLi4yZmRhMjM4ODcwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91 dGlscy9jYWNoZS9sc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9s c3lzY2FjaGUuYwpAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy9oYXNoLmgi CiAjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgogI2luY2x1ZGUgImFjY2Vzcy9u YnRyZWUuaCIKKyNpbmNsdWRlICJhY2Nlc3MvdGFibGUuaCIKICNpbmNsdWRlICJib290c3Ry YXAvYm9vdHN0cmFwLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX2FtLmgiCkBAIC0yMDYyLDYgKzIwNjMsMjAgQEAgZ2V0X3JlbF9w ZXJzaXN0ZW5jZShPaWQgcmVsaWQpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorYm9vbAorZ2V0 X3JlbF9sb2dpY2FsX2NhdGFsb2coT2lkIHJlbGlkKQoreworCWJvb2wJcmVzOworCVJlbGF0 aW9uIHJlbDsKKworCS8qIGFzc3VtZSBwcmV2aW91c2x5IGxvY2tlZCAqLworCXJlbCA9IHRh YmxlX29wZW4ocmVsaWQsIE5vTG9jayk7CisJcmVzID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJ bkxvZ2ljYWxEZWNvZGluZyhyZWwpOworCXRhYmxlX2Nsb3NlKHJlbCwgTm9Mb2NrKTsKKwor CXJldHVybiByZXM7Cit9CisKIAogLyoJCQkJLS0tLS0tLS0tLSBUUkFOU0ZPUk0gQ0FDSEUg LS0tLS0tLS0tLQkJCQkJCSAqLwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv Z2lzdF9wcml2YXRlLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdF9wcml2YXRlLmgKaW5k ZXggNTUzZDM2NGUyZC4uYTBmNDAxNTU1NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNj ZXNzL2dpc3RfcHJpdmF0ZS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0X3ByaXZh dGUuaApAQCAtNDQwLDggKzQ0MCw4IEBAIGV4dGVybiBYTG9nUmVjUHRyIGdpc3RYTG9nUGFn ZURlbGV0ZShCdWZmZXIgYnVmZmVyLAogCQkJCQkJCQkJIEZ1bGxUcmFuc2FjdGlvbklkIHhp ZCwgQnVmZmVyIHBhcmVudEJ1ZmZlciwKIAkJCQkJCQkJCSBPZmZzZXROdW1iZXIgZG93bmxp bmtPZmZzZXQpOwogCi1leHRlcm4gdm9pZCBnaXN0WExvZ1BhZ2VSZXVzZShSZWxhdGlvbiBy ZWwsIEJsb2NrTnVtYmVyIGJsa25vLAotCQkJCQkJCSAgRnVsbFRyYW5zYWN0aW9uSWQgbGF0 ZXN0UmVtb3ZlZFhpZCk7CitleHRlcm4gdm9pZCBnaXN0WExvZ1BhZ2VSZXVzZShSZWxhdGlv biBoZWFwUmVsLCBSZWxhdGlvbiByZWwsCisJCQkJICBCbG9ja051bWJlciBibGtubywgRnVs bFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCk7CiAKIGV4dGVybiBYTG9nUmVjUHRy IGdpc3RYTG9nVXBkYXRlKEJ1ZmZlciBidWZmZXIsCiAJCQkJCQkJCSBPZmZzZXROdW1iZXIg KnRvZGVsZXRlLCBpbnQgbnRvZGVsZXRlLApAQCAtNDg1LDcgKzQ4NSw3IEBAIGV4dGVybiBi b29sIGdpc3Rwcm9wZXJ0eShPaWQgaW5kZXhfb2lkLCBpbnQgYXR0bm8sCiBleHRlcm4gYm9v bCBnaXN0Zml0cGFnZShJbmRleFR1cGxlICppdHZlYywgaW50IGxlbik7CiBleHRlcm4gYm9v bCBnaXN0bm9zcGFjZShQYWdlIHBhZ2UsIEluZGV4VHVwbGUgKml0dmVjLCBpbnQgbGVuLCBP ZmZzZXROdW1iZXIgdG9kZWxldGUsIFNpemUgZnJlZXNwYWNlKTsKIGV4dGVybiB2b2lkIGdp c3RjaGVja3BhZ2UoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmKTsKLWV4dGVybiBCdWZmZXIg Z2lzdE5ld0J1ZmZlcihSZWxhdGlvbiByKTsKK2V4dGVybiBCdWZmZXIgZ2lzdE5ld0J1ZmZl cihSZWxhdGlvbiBoZWFwUmVsLCBSZWxhdGlvbiByKTsKIGV4dGVybiBib29sIGdpc3RQYWdl UmVjeWNsYWJsZShQYWdlIHBhZ2UpOwogZXh0ZXJuIHZvaWQgZ2lzdGZpbGxidWZmZXIoUGFn ZSBwYWdlLCBJbmRleFR1cGxlICppdHVwLCBpbnQgbGVuLAogCQkJCQkJICAgT2Zmc2V0TnVt YmVyIG9mZik7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdHhsb2cuaCBi L3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0eGxvZy5oCmluZGV4IGZkNTE0NGYyNTguLjczOTk5 ZGRjNzAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0eGxvZy5oCisrKyBi L3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0eGxvZy5oCkBAIC00OSw5ICs0OSw5IEBAIHR5cGVk ZWYgc3RydWN0IGdpc3R4bG9nUGFnZVVwZGF0ZQogICovCiB0eXBlZGVmIHN0cnVjdCBnaXN0 eGxvZ0RlbGV0ZQogeworCWJvb2wJCW9uQ2F0YWxvZ1RhYmxlOwogCVRyYW5zYWN0aW9uSWQg bGF0ZXN0UmVtb3ZlZFhpZDsKIAl1aW50MTYJCW50b2RlbGV0ZTsJCS8qIG51bWJlciBvZiBk ZWxldGVkIG9mZnNldHMgKi8KLQogCS8qCiAJICogSW4gcGF5bG9hZCBvZiBibGsgMCA6IHRv ZGVsZXRlIE9mZnNldE51bWJlcnMKIAkgKi8KQEAgLTk3LDYgKzk3LDcgQEAgdHlwZWRlZiBz dHJ1Y3QgZ2lzdHhsb2dQYWdlRGVsZXRlCiAgKi8KIHR5cGVkZWYgc3RydWN0IGdpc3R4bG9n UGFnZVJldXNlCiB7CisJYm9vbAkJb25DYXRhbG9nVGFibGU7CiAJUmVsRmlsZU5vZGUgbm9k ZTsKIAlCbG9ja051bWJlciBibG9jazsKIAlGdWxsVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1v dmVkRnVsbFhpZDsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oYXNoX3hsb2cu aCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oYXNoX3hsb2cuaAppbmRleCA0MzUzYTMyZGJiLi45 NGMzMjkyYzFlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGFzaF94bG9nLmgK KysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hhc2hfeGxvZy5oCkBAIC0yNTAsNiArMjUwLDcg QEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGFzaF9pbml0X2JpdG1hcF9wYWdlCiAgKi8KIHR5cGVk ZWYgc3RydWN0IHhsX2hhc2hfdmFjdXVtX29uZV9wYWdlCiB7CisJYm9vbAkJb25DYXRhbG9n VGFibGU7CiAJVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkOwogCWludAkJCW50dXBs ZXM7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oIGIv c3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKaW5kZXggMjdkYjQ4MTg0ZS4uZWJh NDhiMGFlZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgK KysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKQEAgLTI0Miw2ICsyNDIs NyBAQCB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX3VwZGF0ZQogICovCiB0eXBlZGVmIHN0cnVj dCB4bF9oZWFwX3BydW5lCiB7CisJYm9vbCAgICAgIG9uQ2F0YWxvZ1RhYmxlOwogCVRyYW5z YWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZDsKIAl1aW50MTYJCW5yZWRpcmVjdGVkOwogCXVp bnQxNgkJbmRlYWQ7CkBAIC0zMzgsNiArMzM5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGVh cF9mcmVlemVfdHVwbGUKICAqLwogdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9mcmVlemVfcGFn ZQogeworCWJvb2wJCW9uQ2F0YWxvZ1RhYmxlOwogCVRyYW5zYWN0aW9uSWQgY3V0b2ZmX3hp ZDsKIAl1aW50MTYJCW50dXBsZXM7CiB9IHhsX2hlYXBfZnJlZXplX3BhZ2U7CkBAIC0zNTIs NiArMzU0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9mcmVlemVfcGFnZQogICovCiB0 eXBlZGVmIHN0cnVjdCB4bF9oZWFwX3Zpc2libGUKIHsKKwlib29sCQlvbkNhdGFsb2dUYWJs ZTsKIAlUcmFuc2FjdGlvbklkIGN1dG9mZl94aWQ7CiAJdWludDgJCWZsYWdzOwogfSB4bF9o ZWFwX3Zpc2libGU7CkBAIC00MTMsNyArNDE2LDcgQEAgZXh0ZXJuIGJvb2wgaGVhcF9wcmVw YXJlX2ZyZWV6ZV90dXBsZShIZWFwVHVwbGVIZWFkZXIgdHVwbGUsCiAJCQkJCQkJCQkgIGJv b2wgKnRvdGFsbHlfZnJvemVuKTsKIGV4dGVybiB2b2lkIGhlYXBfZXhlY3V0ZV9mcmVlemVf dHVwbGUoSGVhcFR1cGxlSGVhZGVyIHR1cGxlLAogCQkJCQkJCQkJICB4bF9oZWFwX2ZyZWV6 ZV90dXBsZSAqeGxyZWNfdHApOwotZXh0ZXJuIFhMb2dSZWNQdHIgbG9nX2hlYXBfdmlzaWJs ZShSZWxGaWxlTm9kZSBybm9kZSwgQnVmZmVyIGhlYXBfYnVmZmVyLAorZXh0ZXJuIFhMb2dS ZWNQdHIgbG9nX2hlYXBfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBoZWFwX2J1ZmZl ciwKIAkJCQkJCQkJICAgQnVmZmVyIHZtX2J1ZmZlciwgVHJhbnNhY3Rpb25JZCBjdXRvZmZf eGlkLCB1aW50OCBmbGFncyk7CiAKICNlbmRpZgkJCQkJCQkvKiBIRUFQQU1fWExPR19IICov CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvbmJ0eGxvZy5oIGIvc3JjL2luY2x1 ZGUvYWNjZXNzL25idHhsb2cuaAppbmRleCAwZjc3MzE4NTZiLi5iMTVhYTQ3ZjFiIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvbmJ0eGxvZy5oCisrKyBiL3NyYy9pbmNsdWRl L2FjY2Vzcy9uYnR4bG9nLmgKQEAgLTE4NSw2ICsxODUsNyBAQCB0eXBlZGVmIHN0cnVjdCB4 bF9idHJlZV9kZWR1cAogICovCiB0eXBlZGVmIHN0cnVjdCB4bF9idHJlZV9yZXVzZV9wYWdl CiB7CisJYm9vbCAgICAgICAgb25DYXRhbG9nVGFibGU7CiAJUmVsRmlsZU5vZGUgbm9kZTsK IAlCbG9ja051bWJlciBibG9jazsKIAlGdWxsVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVk RnVsbFhpZDsKQEAgLTIzMiw2ICsyMzMsNyBAQCB0eXBlZGVmIHN0cnVjdCB4bF9idHJlZV92 YWN1dW0KIAogdHlwZWRlZiBzdHJ1Y3QgeGxfYnRyZWVfZGVsZXRlCiB7CisJYm9vbAkJb25D YXRhbG9nVGFibGU7CiAJVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkOwogCXVpbnQx NgkJbmRlbGV0ZWQ7CiAJdWludDE2CQludXBkYXRlZDsKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2FjY2Vzcy9zcGd4bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3BneGxvZy5oCmlu ZGV4IDY5NDA1YjU3NTAuLjA2YjkxZjRkMDQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9zcGd4bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3NwZ3hsb2cuaApAQCAt MjM3LDYgKzIzNyw3IEBAIHR5cGVkZWYgc3RydWN0IHNwZ3hsb2dWYWN1dW1Sb290CiAKIHR5 cGVkZWYgc3RydWN0IHNwZ3hsb2dWYWN1dW1SZWRpcmVjdAogeworCWJvb2wJCW9uQ2F0YWxv Z1RhYmxlOwogCXVpbnQxNgkJblRvUGxhY2Vob2xkZXI7IC8qIG51bWJlciBvZiByZWRpcmVj dHMgdG8gbWFrZSBwbGFjZWhvbGRlcnMgKi8KIAlPZmZzZXROdW1iZXIgZmlyc3RQbGFjZWhv bGRlcjsJLyogZmlyc3QgcGxhY2Vob2xkZXIgdHVwbGUgdG8gcmVtb3ZlICovCiAJVHJhbnNh Y3Rpb25JZCBuZXdlc3RSZWRpcmVjdFhpZDsJLyogbmV3ZXN0IFhJRCBvZiByZW1vdmVkIHJl ZGlyZWN0cyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgg Yi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAppbmRleCA3Nzg3MWFhZWZjLi5lMmE1 ZWZlZDMwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAorKysg Yi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaApAQCAtMTM5LDYgKzEzOSw3IEBAIGV4 dGVybiBjaGFyIGdldF9yZWxfcmVsa2luZChPaWQgcmVsaWQpOwogZXh0ZXJuIGJvb2wgZ2V0 X3JlbF9yZWxpc3BhcnRpdGlvbihPaWQgcmVsaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmVsX3Rh Ymxlc3BhY2UoT2lkIHJlbGlkKTsKIGV4dGVybiBjaGFyIGdldF9yZWxfcGVyc2lzdGVuY2Uo T2lkIHJlbGlkKTsKK2V4dGVybiBib29sIGdldF9yZWxfbG9naWNhbF9jYXRhbG9nKE9pZCBy ZWxpZCk7CiBleHRlcm4gT2lkCWdldF90cmFuc2Zvcm1fZnJvbXNxbChPaWQgdHlwaWQsIE9p ZCBsYW5naWQsIExpc3QgKnRyZnR5cGVzKTsKIGV4dGVybiBPaWQJZ2V0X3RyYW5zZm9ybV90 b3NxbChPaWQgdHlwaWQsIE9pZCBsYW5naWQsIExpc3QgKnRyZnR5cGVzKTsKIGV4dGVybiBi b29sIGdldF90eXBpc2RlZmluZWQoT2lkIHR5cGlkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3V0aWxzL3JlbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKaW5kZXggYjRmYWEx YzEyMy4uNjQ4YWVhY2Q3OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgK KysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNs dWRlICJzdG9yYWdlL3NtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9yZWxjYWNoZS5oIgogI2lu Y2x1ZGUgInV0aWxzL3JlbHRyaWdnZXIuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2NhdGFsb2cu aCIKIAogCiAvKgpAQCAtMzY1LDYgKzM2Niw5IEBAIHR5cGVkZWYgc3RydWN0IFN0ZFJkT3B0 aW9ucwogICogUmVsYXRpb25Jc1VzZWRBc0NhdGFsb2dUYWJsZQogICoJCVJldHVybnMgd2hl dGhlciB0aGUgcmVsYXRpb24gc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYSBjYXRhbG9nIHRhYmxl CiAgKgkJZnJvbSB0aGUgcG92IG9mIGxvZ2ljYWwgZGVjb2RpbmcuICBOb3RlIG11bHRpcGxl IGV2YWwgb2YgYXJndW1lbnQhCisgKgkJVGhpcyBkZWZpbml0aW9uIHNob3VsZCBub3QgaW52 b2tlIGFueXRoaW5nIHRoYXQgcGVyZm9ybXMgY2F0YWxvZworICoJCWFjY2Vzczsgb3RoZXJ3 aXNlIGl0IG1heSBjYXVzZSBpbmZpbml0ZSByZWN1cnNpb24uIENoZWNrIHRoZSBjb21tZW50 cworICoJCWluIFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcoKSBmb3Ig ZGV0YWlscy4KICAqLwogI2RlZmluZSBSZWxhdGlvbklzVXNlZEFzQ2F0YWxvZ1RhYmxlKHJl bGF0aW9uKQlcCiAJKChyZWxhdGlvbiktPnJkX29wdGlvbnMgJiYgXApAQCAtNjUzLDYgKzY1 NywxMSBAQCBSZWxhdGlvbkdldFNtZ3IoUmVsYXRpb24gcmVsKQogICogUmVsYXRpb25Jc0Fj Y2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZwogICoJCVRydWUgaWYgd2UgbmVlZCB0byBsb2cg ZW5vdWdoIGluZm9ybWF0aW9uIHRvIGhhdmUgYWNjZXNzIHZpYQogICoJCWRlY29kaW5nIHNu YXBzaG90LgorICoJCVRoaXMgZGVmaW5pdGlvbiBzaG91bGQgbm90IGludm9rZSBhbnl0aGlu ZyB0aGF0IHBlcmZvcm1zIGNhdGFsb2cKKyAqCQlhY2Nlc3MuIE90aGVyd2lzZSwgZS5nLiBs b2dnaW5nIGEgV0FMIGVudHJ5IGZvciBjYXRhbG9nIHJlbGF0aW9uIG1heQorICoJCWludm9r ZSB0aGlzIGZ1bmN0aW9uLCB3aGljaCB3aWxsIGluIHR1cm4gZG8gY2F0YWxvZyBhY2Nlc3Ms IHdoaWNoIG1heQorICoJCWluIHR1cm4gY2F1c2UgYW5vdGhlciBzaW1pbGFyIFdBTCBlbnRy eSB0byBiZSBsb2dnZWQsIGxlYWRpbmcgdG8KKyAqCQlpbmZpbml0ZSByZWN1cnNpb24uCiAg Ki8KICNkZWZpbmUgUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWxh dGlvbikgXAogCShYTG9nTG9naWNhbEluZm9BY3RpdmUoKSAmJiBcCi0tIAoyLjE4LjQKCg== --------------A2B3C3F1A3D498E906D62BDD--