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 1oU2fG-0000Ta-Ra for pgsql-hackers@arkaria.postgresql.org; Fri, 02 Sep 2022 09:08:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oU2fF-0004Xo-Nh for pgsql-hackers@arkaria.postgresql.org; Fri, 02 Sep 2022 09:08:37 +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 1oU2e0-0001La-6h for pgsql-hackers@lists.postgresql.org; Fri, 02 Sep 2022 09:07:20 +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 1oU2dy-00017S-0O for pgsql-hackers@lists.postgresql.org; Fri, 02 Sep 2022 09:07:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1662109638; x=1693645638; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to; bh=3V4vTDQ5BSmcbqT/FmOaEVNMiCPkbs6ECRIDiy3l0sQ=; b=s/mv8knYUps6vn4npwsluYtg0pANRofDMdRPB6slYbZzyG8+Xt1YgEIq Uc5M8dRd/mJC+UBTe/yVLmIhctBiU5WbBerpwAKUPvbEQf1NvpfyGkCet 6SRdqa6d2IAf/PbEOzg86Gvfem+He9+/vtMfdbTOHY5rkty4yqWYPYa8M o=; X-Amazon-filename: v3-0001-JumbleQuery-on-Call-and-Set.patch X-IronPort-AV: E=Sophos;i="5.93,283,1654560000"; d="scan'208,217";a="222878990" Received: from iad12-co-svc-p1-lb1-vlan3.amazon.com (HELO email-inbound-relay-pdx-2c-7d0c7241.us-west-2.amazon.com) ([10.43.8.6]) by smtp-border-fw-33001.sea14.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Sep 2022 09:07:00 +0000 Received: from EX13D03EUC003.ant.amazon.com (pdx1-ws-svc-p6-lb9-vlan3.pdx.amazon.com [10.236.137.198]) by email-inbound-relay-pdx-2c-7d0c7241.us-west-2.amazon.com (Postfix) with ESMTPS id 7CED244BA5; Fri, 2 Sep 2022 09:06:58 +0000 (UTC) Received: from [192.168.28.89] (10.43.160.191) by EX13D03EUC003.ant.amazon.com (10.43.164.192) with Microsoft SMTP Server (TLS) id 15.0.1497.38; Fri, 2 Sep 2022 09:06:54 +0000 Content-Type: multipart/mixed; boundary="------------10KCN04mR0A6m0kqXKi79BTn" Message-ID: <09c04aba-7f12-e524-20f7-3f92c1479fdf@amazon.com> Date: Fri, 2 Sep 2022 11:06:50 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.2.0 Subject: Re: [PATCH] Query Jumbling for CALL and SET utility statements Content-Language: en-US To: "Imseih (AWS), Sami" , "Schneider (AWS), Jeremy" , Andres Freund CC: PostgreSQL Hackers , Peter Eisentraut , Pavel Stehule , Nikolay Samokhvalov References: <36e5bffe-e989-194f-85c8-06e7bc88e6f7@amazon.com> <20220831160839.wseeotr7rckucpmv@awork3.anarazel.de> <46ca04f9-1e37-c862-9a28-c5dffaee412f@amazon.com> <20220831190604.l2luuhj3xkau7dvk@awork3.anarazel.de> From: "Drouvot, Bertrand" In-Reply-To: X-Originating-IP: [10.43.160.191] X-ClientProxiedBy: EX13D08UWC001.ant.amazon.com (10.43.162.110) 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 --------------10KCN04mR0A6m0kqXKi79BTn Content-Type: multipart/alternative; boundary="------------j0stH2R5DDAWvpr7sFHkX0x0" --------------j0stH2R5DDAWvpr7sFHkX0x0 Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit Hi, On 9/1/22 5:13 PM, Imseih (AWS), Sami wrote: > > > Please find attached v2 as an attempt to do so. > > +1 to the idea. > Thanks for looking at it! > I think it will be better to evaluate jstate instead of > > JUMBLE_UTILITY, such as: > > if (query->utilityStmt && !jstate) > > instead of > > if (query->utilityStmt && !JUMBLE_UTILITY(query->utilityStmt)) > > This will allow for support of potentially other utility statements > > In the future without having to teach pg_stat_statements about them. > > If a jstate is set for the utility statements, pgss will do the right > thing. > Fair point, thanks! v3 including this change is attached. Thanks, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services:https://aws.amazon.com --------------j0stH2R5DDAWvpr7sFHkX0x0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: 8bit

Hi,

On 9/1/22 5:13 PM, Imseih (AWS), Sami wrote:

> Please find attached v2 as an attempt to do so.

+1 to the idea.

Thanks for looking at it!

I think it will be better to evaluate jstate instead of

JUMBLE_UTILITY, such as:

 

if (query->utilityStmt && !jstate)

 

instead of

 

if (query->utilityStmt && !JUMBLE_UTILITY(query->utilityStmt))

 

This will allow for support of potentially other utility statements

In the future without having to teach pg_stat_statements about them.

If a jstate is set for the utility statements, pgss will do the right thing.

 

 

Fair point, thanks!

v3 including this change is attached.

Thanks,

--
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
--------------j0stH2R5DDAWvpr7sFHkX0x0-- --------------10KCN04mR0A6m0kqXKi79BTn Content-Type: text/plain; charset="UTF-8"; name="v3-0001-JumbleQuery-on-Call-and-Set.patch" Content-Disposition: attachment; filename="v3-0001-JumbleQuery-on-Call-and-Set.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3BnX3N0 YXRfc3RhdGVtZW50cy5vdXQgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3Rl ZC9wZ19zdGF0X3N0YXRlbWVudHMub3V0CmluZGV4IGZmMDE2NmZiOWQuLmUxODM0YjA3ODIg MTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3BnX3N0 YXRfc3RhdGVtZW50cy5vdXQKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvZXhw ZWN0ZWQvcGdfc3RhdF9zdGF0ZW1lbnRzLm91dApAQCAtMjcyLDcgKzI3Miw3IEBAIEZST00g cGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiOwogIHdhbF9y ZWNvcmRzID4gJDIgYXMgd2FsX3JlY29yZHNfZ2VuZXJhdGVkLCAgICAgICAgICAgICAgICt8 ICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgfCAKICB3YWxfcmVjb3JkcyA+PSByb3dzIGFzIHdhbF9yZWNvcmRzX2dlX3Jvd3Mg ICAgICAgICAgICAgICArfCAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgIHwgCiAgRlJPTSBwZ19zdGF0X3N0YXRlbWVudHMgT1JE RVIgQlkgcXVlcnkgQ09MTEFURSAiQyIgICAgICAgIHwgICAgICAgfCAgICAgIHwgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8IAotIFNFVCBwZ19zdGF0 X3N0YXRlbWVudHMudHJhY2tfdXRpbGl0eSA9IEZBTFNFICAgICAgICAgICAgICB8ICAgICAx IHwgICAgMCB8IGYgICAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgICAg fCB0CisgU0VUIHBnX3N0YXRfc3RhdGVtZW50cy50cmFja191dGlsaXR5ID0gJDEgICAgICAg ICAgICAgICAgIHwgICAgIDEgfCAgICAwIHwgZiAgICAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgICAgICAgICB8IHQKICBVUERBVEUgcGdzc190ZXN0IFNFVCBiID0gJDEgV0hF UkUgYSA+ICQyICAgICAgICAgICAgICAgICAgfCAgICAgMSB8ICAgIDMgfCB0ICAgICAgICAg ICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAgICAgIHwgdAogKDcgcm93cykKIApAQCAt NDIzLDYgKzQyMywxNDcgQEAgU0VMRUNUIHF1ZXJ5LCBjYWxscywgcm93cyBGUk9NIHBnX3N0 YXRfc3RhdGVtZW50cyBPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKICBTRUxFQ1QgcXVl cnksIGNhbGxzLCByb3dzIEZST00gcGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5 IENPTExBVEUgIkMiIHwgICAgIDAgfCAgICAwCiAoNiByb3dzKQogCistLSBQTC9wZ1NRTCBw cm9jZWR1cmUgYW5kIHBnX3N0YXRfc3RhdGVtZW50cy50cmFjayA9IHRvcAorQ1JFQVRFIFBS T0NFRFVSRSBNSU5VU19UV08oaSBJTlRFR0VSKSBBUyAkJAorREVDTEFSRQorICByIElOVEVH RVI7CitCRUdJTgorICBTRUxFQ1QgKGkgLSAxIC0gMS4wKTo6SU5URUdFUiBJTlRPIHI7CitF TkQ7ICQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgUFJPQ0VEVVJFIFNVTV9UV08oaSBJ TlRFR0VSLCBqIElOVEVHRVIpIEFTICQkCitERUNMQVJFCisgIHIgSU5URUdFUjsKK0JFR0lO CisgIFNFTEVDVCAoaiArIGopOjpJTlRFR0VSIElOVE8gcjsKK0VORDsgJCQgTEFOR1VBR0Ug cGxwZ3NxbDsKK1NFVCBwZ19zdGF0X3N0YXRlbWVudHMudHJhY2sgPSAndG9wJzsKK1NFVCBw Z19zdGF0X3N0YXRlbWVudHMudHJhY2tfdXRpbGl0eSA9IFRSVUU7CitTRUxFQ1QgcGdfc3Rh dF9zdGF0ZW1lbnRzX3Jlc2V0KCk7CisgcGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0IAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworQ0FMTCBNSU5VU19UV08o Myk7CitDQUxMIE1JTlVTX1RXTyg3KTsKK0NBTEwgU1VNX1RXTygzLCA4KTsKK0NBTEwgU1VN X1RXTyg3LCA1KTsKK1NFTEVDVCBxdWVyeSwgY2FsbHMsIHJvd3MgRlJPTSBwZ19zdGF0X3N0 YXRlbWVudHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyI7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBxdWVyeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IGNhbGxzIHwgcm93cyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tKy0tLS0tLQorIENBTEwgTUlOVVNfVFdPKCQxKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMiB8ICAgIDAKKyBD QUxMIFNVTV9UV08oJDEsICQyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDIgfCAgICAwCisgU0VMRUNUIHBnX3N0YXRf c3RhdGVtZW50c19yZXNldCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAxIHwgICAgMQorIFNFTEVDVCBxdWVyeSwgY2FsbHMsIHJvd3MgRlJP TSBwZ19zdGF0X3N0YXRlbWVudHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyIgfCAgICAg MCB8ICAgIDAKKyg0IHJvd3MpCisKKy0tIEVuc3VyZSBDQUxMIGlzIHRyYWNrZWQgZXZlbiBp ZiBwZ19zdGF0X3N0YXRlbWVudHMudHJhY2tfdXRpbGl0eSBpcyBGQUxTRQorU0VUIHBnX3N0 YXRfc3RhdGVtZW50cy50cmFja191dGlsaXR5ID0gRkFMU0U7CitTRUxFQ1QgcGdfc3RhdF9z dGF0ZW1lbnRzX3Jlc2V0KCk7CisgcGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0IAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworQ0FMTCBNSU5VU19UV08oMyk7 CitDQUxMIE1JTlVTX1RXTyg3KTsKK0NBTEwgU1VNX1RXTygzLCA4KTsKK0NBTEwgU1VNX1RX Tyg3LCA1KTsKK1NFTEVDVCBxdWVyeSwgY2FsbHMsIHJvd3MgRlJPTSBwZ19zdGF0X3N0YXRl bWVudHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyI7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBxdWVyeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IGNhbGxzIHwgcm93cyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t Ky0tLS0tLQorIENBTEwgTUlOVVNfVFdPKCQxKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMiB8ICAgIDAKKyBDQUxM IFNVTV9UV08oJDEsICQyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgIDIgfCAgICAwCisgU0VMRUNUIHBnX3N0YXRfc3Rh dGVtZW50c19yZXNldCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAxIHwgICAgMQorIFNFTEVDVCBxdWVyeSwgY2FsbHMsIHJvd3MgRlJPTSBw Z19zdGF0X3N0YXRlbWVudHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyIgfCAgICAgMCB8 ICAgIDAKKyg0IHJvd3MpCisKK1NFVCBwZ19zdGF0X3N0YXRlbWVudHMudHJhY2tfdXRpbGl0 eSA9IFRSVUU7CistLSBQTC9wZ1NRTCBwcm9jZWR1cmUgYW5kIHBnX3N0YXRfc3RhdGVtZW50 cy50cmFjayA9IGFsbAorLS0gd2UgZHJvcCBhbmQgcmVjcmVhdGUgdGhlIHByb2NlZHVyZXMg dG8gYXZvaWQgYW55IGNhY2hpbmcgZnVubmllcworU0VUIHBnX3N0YXRfc3RhdGVtZW50cy50 cmFja191dGlsaXR5ID0gRkFMU0U7CitEUk9QIFBST0NFRFVSRSBNSU5VU19UV08oSU5URUdF Uik7CitEUk9QIFBST0NFRFVSRSBTVU1fVFdPKElOVEVHRVIsIElOVEVHRVIpOworQ1JFQVRF IFBST0NFRFVSRSBNSU5VU19UV08oaSBJTlRFR0VSKSBBUyAkJAorREVDTEFSRQorICByIElO VEVHRVI7CitCRUdJTgorICBTRUxFQ1QgKGkgLSAxIC0gMS4wKTo6SU5URUdFUiBJTlRPIHI7 CitFTkQ7ICQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgUFJPQ0VEVVJFIFNVTV9UV08o aSBJTlRFR0VSLCBqIElOVEVHRVIpIEFTICQkCitERUNMQVJFCisgIHIgSU5URUdFUjsKK0JF R0lOCisgIFNFTEVDVCAoaiArIGopOjpJTlRFR0VSIElOVE8gcjsKK0VORDsgJCQgTEFOR1VB R0UgcGxwZ3NxbDsKK1NFVCBwZ19zdGF0X3N0YXRlbWVudHMudHJhY2sgPSAnYWxsJzsKK1NF VCBwZ19zdGF0X3N0YXRlbWVudHMudHJhY2tfdXRpbGl0eSA9IFRSVUU7CitTRUxFQ1QgcGdf c3RhdF9zdGF0ZW1lbnRzX3Jlc2V0KCk7CisgcGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0IAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworQ0FMTCBNSU5VU19U V08oMyk7CitDQUxMIE1JTlVTX1RXTyg3KTsKK0NBTEwgU1VNX1RXTygzLCA4KTsKK0NBTEwg U1VNX1RXTyg3LCA1KTsKK1NFTEVDVCBxdWVyeSwgY2FsbHMsIHJvd3MgRlJPTSBwZ19zdGF0 X3N0YXRlbWVudHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyI7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBxdWVyeSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IGNhbGxzIHwgcm93cyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tKy0tLS0tLQorIENBTEwgTUlOVVNfVFdPKCQxKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMiB8ICAgIDAK KyBDQUxMIFNVTV9UV08oJDEsICQyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDIgfCAgICAwCisgU0VMRUNUIChpIC0g JDIgLSAkMyk6OklOVEVHRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAyIHwgICAgMgorIFNFTEVDVCAoaiArIGopOjpJTlRFR0VSICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgMiB8ICAgIDIKKyBTRUxFQ1QgcGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0KCkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDEgfCAgICAxCisg U0VMRUNUIHF1ZXJ5LCBjYWxscywgcm93cyBGUk9NIHBnX3N0YXRfc3RhdGVtZW50cyBPUkRF UiBCWSBxdWVyeSBDT0xMQVRFICJDIiB8ICAgICAwIHwgICAgMAorKDYgcm93cykKKworLS0g RW5zdXJlIENBTEwgaXMgdHJhY2tlZCBldmVuIGlmIHBnX3N0YXRfc3RhdGVtZW50cy50cmFj a191dGlsaXR5IGlzIEZBTFNFCitTRVQgcGdfc3RhdF9zdGF0ZW1lbnRzLnRyYWNrX3V0aWxp dHkgPSBGQUxTRTsKK1NFTEVDVCBwZ19zdGF0X3N0YXRlbWVudHNfcmVzZXQoKTsKKyBwZ19z dGF0X3N0YXRlbWVudHNfcmVzZXQgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAor KDEgcm93KQorCitDQUxMIE1JTlVTX1RXTygzKTsKK0NBTEwgTUlOVVNfVFdPKDcpOworQ0FM TCBTVU1fVFdPKDMsIDgpOworQ0FMTCBTVU1fVFdPKDcsIDUpOworU0VMRUNUIHF1ZXJ5LCBj YWxscywgcm93cyBGUk9NIHBnX3N0YXRfc3RhdGVtZW50cyBPUkRFUiBCWSBxdWVyeSBDT0xM QVRFICJDIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY2FsbHMgfCByb3dzIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tCisgQ0FMTCBNSU5VU19UV08o JDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAyIHwgICAgMAorIENBTEwgU1VNX1RXTygkMSwgJDIpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg MiB8ICAgIDAKKyBTRUxFQ1QgKGkgLSAxIC0gMS4wKTo6SU5URUdFUiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDIgfCAgICAyCisgU0VM RUNUIChqICsgaik6OklOVEVHRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAyIHwgICAgMgorIFNFTEVDVCBwZ19zdGF0X3N0 YXRlbWVudHNfcmVzZXQoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgMSB8ICAgIDEKKyBTRUxFQ1QgcXVlcnksIGNhbGxzLCByb3dzIEZST00g cGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiIHwgICAgIDAg fCAgICAwCisoNiByb3dzKQorCitTRVQgcGdfc3RhdF9zdGF0ZW1lbnRzLnRyYWNrX3V0aWxp dHkgPSBUUlVFOworLS0gU0VUCitTRUxFQ1QgcGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0KCk7 CisgcGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAKKygxIHJvdykKKworc2V0IGVuYWJsZV9zZXFzY2FuPWZhbHNlOworc2V0IGVuYWJs ZV9zZXFzY2FuPXRydWU7CitzZXQgc2VxX3BhZ2VfY29zdD0yLjA7CitzZXQgc2VxX3BhZ2Vf Y29zdD0xLjA7CitTRUxFQ1QgcXVlcnksIGNhbGxzLCByb3dzIEZST00gcGdfc3RhdF9zdGF0 ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcXVlcnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCBjYWxscyB8IHJvd3MgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LSstLS0tLS0KKyBTRUxFQ1QgcGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0KCkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDEgfCAgICAxCisgU0VM RUNUIHF1ZXJ5LCBjYWxscywgcm93cyBGUk9NIHBnX3N0YXRfc3RhdGVtZW50cyBPUkRFUiBC WSBxdWVyeSBDT0xMQVRFICJDIiB8ICAgICAwIHwgICAgMAorIHNldCBlbmFibGVfc2Vxc2Nh bj0kMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgMiB8ICAgIDAKKyBzZXQgc2VxX3BhZ2VfY29zdD0kMSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDIg fCAgICAwCisoNCByb3dzKQorCitTRVQgcGdfc3RhdF9zdGF0ZW1lbnRzLnRyYWNrX3V0aWxp dHkgPSBGQUxTRTsKIC0tCiAtLSBxdWVyaWVzIHdpdGggbG9ja2luZyBjbGF1c2VzCiAtLQpk aWZmIC0tZ2l0IGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1l bnRzLmMgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMu YwppbmRleCBiYTg2OGYwZGU5Li42MmRlOWI5MzI1IDEwMDY0NAotLS0gYS9jb250cmliL3Bn X3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYworKysgYi9jb250cmliL3Bn X3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYwpAQCAtMTA2LDYgKzEwNiwx MSBAQCBzdGF0aWMgY29uc3QgdWludDMyIFBHU1NfUEdfTUFKT1JfVkVSU0lPTiA9IFBHX1ZF UlNJT05fTlVNIC8gMTAwOwogI2RlZmluZSBQR1NTX0hBTkRMRURfVVRJTElUWShuKQkJKCFJ c0EobiwgRXhlY3V0ZVN0bXQpICYmIFwKIAkJCQkJCQkJCSFJc0EobiwgUHJlcGFyZVN0bXQp ICYmIFwKIAkJCQkJCQkJCSFJc0EobiwgRGVhbGxvY2F0ZVN0bXQpKQorLyoKKyAqIEZvcmNl IHRyYWNrIHRob3NlIHV0aWxpdHkgc3RhdGVtZW50cworICogd2hhdGV2ZXIgdGhlIHZhbHVl IG9mIHBnc3NfdHJhY2tfdXRpbGl0eSBpcy4KKyAqLworI2RlZmluZSBGT1JDRV9UUkFDS19V VElMSVRZKG4pCShJc0EobiwgQ2FsbFN0bXQpKQogCiAvKgogICogRXh0ZW5zaW9uIHZlcnNp b24gbnVtYmVyLCBmb3Igc3VwcG9ydGluZyBvbGRlciBleHRlbnNpb24gdmVyc2lvbnMnIG9i amVjdHMKQEAgLTgzMiw3ICs4MzcsNyBAQCBwZ3NzX3Bvc3RfcGFyc2VfYW5hbHl6ZShQYXJz ZVN0YXRlICpwc3RhdGUsIFF1ZXJ5ICpxdWVyeSwgSnVtYmxlU3RhdGUgKmpzdGF0ZSkKIAkg KiBpbmhlcml0IGZyb20gdGhlIHVuZGVybHlpbmcgc3RhdGVtZW50J3Mgb25lIChleGNlcHQg REVBTExPQ0FURSB3aGljaCBpcwogCSAqIGVudGlyZWx5IHVudHJhY2tlZCkuCiAJICovCi0J aWYgKHF1ZXJ5LT51dGlsaXR5U3RtdCkKKwlpZiAocXVlcnktPnV0aWxpdHlTdG10ICYmICFq c3RhdGUpCiAJewogCQlpZiAocGdzc190cmFja191dGlsaXR5ICYmICFQR1NTX0hBTkRMRURf VVRJTElUWShxdWVyeS0+dXRpbGl0eVN0bXQpKQogCQkJcXVlcnktPnF1ZXJ5SWQgPSBVSU5U NjRDT05TVCgwKTsKQEAgLTEwOTcsNyArMTEwMiw4IEBAIHBnc3NfUHJvY2Vzc1V0aWxpdHko UGxhbm5lZFN0bXQgKnBzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKIAkgKiB0aGF0 IHVzZXIgY29uZmlndXJlZCBhbm90aGVyIGV4dGVuc2lvbiB0byBoYW5kbGUgdXRpbGl0eSBz dGF0ZW1lbnRzCiAJICogb25seS4KIAkgKi8KLQlpZiAocGdzc19lbmFibGVkKGV4ZWNfbmVz dGVkX2xldmVsKSAmJiBwZ3NzX3RyYWNrX3V0aWxpdHkpCisJaWYgKHBnc3NfZW5hYmxlZChl eGVjX25lc3RlZF9sZXZlbCkgJiYKKwkJKHBnc3NfdHJhY2tfdXRpbGl0eSB8fCBGT1JDRV9U UkFDS19VVElMSVRZKHBhcnNldHJlZSkpKQogCQlwc3RtdC0+cXVlcnlJZCA9IFVJTlQ2NENP TlNUKDApOwogCiAJLyoKQEAgLTExMTQsNyArMTEyMCw4IEBAIHBnc3NfUHJvY2Vzc1V0aWxp dHkoUGxhbm5lZFN0bXQgKnBzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKIAkgKgog CSAqIExpa2V3aXNlLCB3ZSBkb24ndCB0cmFjayBleGVjdXRpb24gb2YgREVBTExPQ0FURS4K IAkgKi8KLQlpZiAocGdzc190cmFja191dGlsaXR5ICYmIHBnc3NfZW5hYmxlZChleGVjX25l c3RlZF9sZXZlbCkgJiYKKwlpZiAoKHBnc3NfdHJhY2tfdXRpbGl0eSB8fCBGT1JDRV9UUkFD S19VVElMSVRZKHBhcnNldHJlZSkpICYmCisJCXBnc3NfZW5hYmxlZChleGVjX25lc3RlZF9s ZXZlbCkgJiYKIAkJUEdTU19IQU5ETEVEX1VUSUxJVFkocGFyc2V0cmVlKSkKIAl7CiAJCWlu c3RyX3RpbWUJc3RhcnQ7CmRpZmYgLS1naXQgYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50 cy9zcWwvcGdfc3RhdF9zdGF0ZW1lbnRzLnNxbCBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1l bnRzL3NxbC9wZ19zdGF0X3N0YXRlbWVudHMuc3FsCmluZGV4IGEwMWYxODM3MjcuLjkyMzU5 ZjAxODQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3NxbC9wZ19z dGF0X3N0YXRlbWVudHMuc3FsCisrKyBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3Nx bC9wZ19zdGF0X3N0YXRlbWVudHMuc3FsCkBAIC0yMDEsNiArMjAxLDkyIEBAIFNFTEVDVCBQ TFVTX09ORSgxKTsKIAogU0VMRUNUIHF1ZXJ5LCBjYWxscywgcm93cyBGUk9NIHBnX3N0YXRf c3RhdGVtZW50cyBPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKIAorLS0gUEwvcGdTUUwg cHJvY2VkdXJlIGFuZCBwZ19zdGF0X3N0YXRlbWVudHMudHJhY2sgPSB0b3AKK0NSRUFURSBQ Uk9DRURVUkUgTUlOVVNfVFdPKGkgSU5URUdFUikgQVMgJCQKK0RFQ0xBUkUKKyAgciBJTlRF R0VSOworQkVHSU4KKyAgU0VMRUNUIChpIC0gMSAtIDEuMCk6OklOVEVHRVIgSU5UTyByOwor RU5EOyAkJCBMQU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgUFJPQ0VEVVJFIFNVTV9UV08o aSBJTlRFR0VSLCBqIElOVEVHRVIpIEFTICQkCitERUNMQVJFCisgIHIgSU5URUdFUjsKK0JF R0lOCisgIFNFTEVDVCAoaiArIGopOjpJTlRFR0VSIElOVE8gcjsKK0VORDsgJCQgTEFOR1VB R0UgcGxwZ3NxbDsKKworU0VUIHBnX3N0YXRfc3RhdGVtZW50cy50cmFjayA9ICd0b3AnOwor U0VUIHBnX3N0YXRfc3RhdGVtZW50cy50cmFja191dGlsaXR5ID0gVFJVRTsKK1NFTEVDVCBw Z19zdGF0X3N0YXRlbWVudHNfcmVzZXQoKTsKK0NBTEwgTUlOVVNfVFdPKDMpOworQ0FMTCBN SU5VU19UV08oNyk7CitDQUxMIFNVTV9UV08oMywgOCk7CitDQUxMIFNVTV9UV08oNywgNSk7 CisKK1NFTEVDVCBxdWVyeSwgY2FsbHMsIHJvd3MgRlJPTSBwZ19zdGF0X3N0YXRlbWVudHMg T1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyI7CisKKy0tIEVuc3VyZSBDQUxMIGlzIHRyYWNr ZWQgZXZlbiBpZiBwZ19zdGF0X3N0YXRlbWVudHMudHJhY2tfdXRpbGl0eSBpcyBGQUxTRQor U0VUIHBnX3N0YXRfc3RhdGVtZW50cy50cmFja191dGlsaXR5ID0gRkFMU0U7CitTRUxFQ1Qg cGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0KCk7CitDQUxMIE1JTlVTX1RXTygzKTsKK0NBTEwg TUlOVVNfVFdPKDcpOworQ0FMTCBTVU1fVFdPKDMsIDgpOworQ0FMTCBTVU1fVFdPKDcsIDUp OworU0VMRUNUIHF1ZXJ5LCBjYWxscywgcm93cyBGUk9NIHBnX3N0YXRfc3RhdGVtZW50cyBP UkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKK1NFVCBwZ19zdGF0X3N0YXRlbWVudHMudHJh Y2tfdXRpbGl0eSA9IFRSVUU7CisKKy0tIFBML3BnU1FMIHByb2NlZHVyZSBhbmQgcGdfc3Rh dF9zdGF0ZW1lbnRzLnRyYWNrID0gYWxsCistLSB3ZSBkcm9wIGFuZCByZWNyZWF0ZSB0aGUg cHJvY2VkdXJlcyB0byBhdm9pZCBhbnkgY2FjaGluZyBmdW5uaWVzCitTRVQgcGdfc3RhdF9z dGF0ZW1lbnRzLnRyYWNrX3V0aWxpdHkgPSBGQUxTRTsKK0RST1AgUFJPQ0VEVVJFIE1JTlVT X1RXTyhJTlRFR0VSKTsKK0RST1AgUFJPQ0VEVVJFIFNVTV9UV08oSU5URUdFUiwgSU5URUdF Uik7CisKK0NSRUFURSBQUk9DRURVUkUgTUlOVVNfVFdPKGkgSU5URUdFUikgQVMgJCQKK0RF Q0xBUkUKKyAgciBJTlRFR0VSOworQkVHSU4KKyAgU0VMRUNUIChpIC0gMSAtIDEuMCk6OklO VEVHRVIgSU5UTyByOworRU5EOyAkJCBMQU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgUFJP Q0VEVVJFIFNVTV9UV08oaSBJTlRFR0VSLCBqIElOVEVHRVIpIEFTICQkCitERUNMQVJFCisg IHIgSU5URUdFUjsKK0JFR0lOCisgIFNFTEVDVCAoaiArIGopOjpJTlRFR0VSIElOVE8gcjsK K0VORDsgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VUIHBnX3N0YXRfc3RhdGVtZW50cy50 cmFjayA9ICdhbGwnOworU0VUIHBnX3N0YXRfc3RhdGVtZW50cy50cmFja191dGlsaXR5ID0g VFJVRTsKK1NFTEVDVCBwZ19zdGF0X3N0YXRlbWVudHNfcmVzZXQoKTsKK0NBTEwgTUlOVVNf VFdPKDMpOworQ0FMTCBNSU5VU19UV08oNyk7CitDQUxMIFNVTV9UV08oMywgOCk7CitDQUxM IFNVTV9UV08oNywgNSk7CisKK1NFTEVDVCBxdWVyeSwgY2FsbHMsIHJvd3MgRlJPTSBwZ19z dGF0X3N0YXRlbWVudHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyI7CisKKy0tIEVuc3Vy ZSBDQUxMIGlzIHRyYWNrZWQgZXZlbiBpZiBwZ19zdGF0X3N0YXRlbWVudHMudHJhY2tfdXRp bGl0eSBpcyBGQUxTRQorU0VUIHBnX3N0YXRfc3RhdGVtZW50cy50cmFja191dGlsaXR5ID0g RkFMU0U7CitTRUxFQ1QgcGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0KCk7CitDQUxMIE1JTlVT X1RXTygzKTsKK0NBTEwgTUlOVVNfVFdPKDcpOworQ0FMTCBTVU1fVFdPKDMsIDgpOworQ0FM TCBTVU1fVFdPKDcsIDUpOworU0VMRUNUIHF1ZXJ5LCBjYWxscywgcm93cyBGUk9NIHBnX3N0 YXRfc3RhdGVtZW50cyBPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKK1NFVCBwZ19zdGF0 X3N0YXRlbWVudHMudHJhY2tfdXRpbGl0eSA9IFRSVUU7CisKKy0tIFNFVAorU0VMRUNUIHBn X3N0YXRfc3RhdGVtZW50c19yZXNldCgpOworc2V0IGVuYWJsZV9zZXFzY2FuPWZhbHNlOwor c2V0IGVuYWJsZV9zZXFzY2FuPXRydWU7CitzZXQgc2VxX3BhZ2VfY29zdD0yLjA7CitzZXQg c2VxX3BhZ2VfY29zdD0xLjA7CisKK1NFTEVDVCBxdWVyeSwgY2FsbHMsIHJvd3MgRlJPTSBw Z19zdGF0X3N0YXRlbWVudHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyI7CisKK1NFVCBw Z19zdGF0X3N0YXRlbWVudHMudHJhY2tfdXRpbGl0eSA9IEZBTFNFOworCiAtLQogLS0gcXVl cmllcyB3aXRoIGxvY2tpbmcgY2xhdXNlcwogLS0KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9wZ3N0YXRzdGF0ZW1lbnRzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcGdzdGF0c3RhdGVtZW50 cy5zZ21sCmluZGV4IGVjZjZjZDZiZjMuLmIxZjQwN2U3OTQgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9wZ3N0YXRzdGF0ZW1lbnRzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Bnc3Rh dHN0YXRlbWVudHMuc2dtbApAQCAtNDkyLDcgKzQ5Miw3IEBACiAgICBzdHJ1Y3R1cmVzIGFj Y29yZGluZyB0byBhbiBpbnRlcm5hbCBoYXNoIGNhbGN1bGF0aW9uLiAgVHlwaWNhbGx5LCB0 d28KICAgIHF1ZXJpZXMgd2lsbCBiZSBjb25zaWRlcmVkIHRoZSBzYW1lIGZvciB0aGlzIHB1 cnBvc2UgaWYgdGhleSBhcmUKICAgIHNlbWFudGljYWxseSBlcXVpdmFsZW50IGV4Y2VwdCBm b3IgdGhlIHZhbHVlcyBvZiBsaXRlcmFsIGNvbnN0YW50cwotICAgYXBwZWFyaW5nIGluIHRo ZSBxdWVyeS4gIFV0aWxpdHkgY29tbWFuZHMgKHRoYXQgaXMsIGFsbCBvdGhlciBjb21tYW5k cykKKyAgIGFwcGVhcmluZyBpbiB0aGUgcXVlcnkuICBVdGlsaXR5IGNvbW1hbmRzICh0aGF0 IGlzLCBhbGwgb3RoZXIgY29tbWFuZHMpIGV4Y2VwdCBDQUxMIGFuZCBTRVQKICAgIGFyZSBj b21wYXJlZCBzdHJpY3RseSBvbiB0aGUgYmFzaXMgb2YgdGhlaXIgdGV4dHVhbCBxdWVyeSBz dHJpbmdzLCBob3dldmVyLgogICA8L3BhcmE+CiAKQEAgLTc4MSw5ICs3ODEsMTAgQEAKICAg ICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgPHZhcm5hbWU+cGdfc3RhdF9zdGF0 ZW1lbnRzLnRyYWNrX3V0aWxpdHk8L3Zhcm5hbWU+IGNvbnRyb2xzIHdoZXRoZXIKLSAgICAg IHV0aWxpdHkgY29tbWFuZHMgYXJlIHRyYWNrZWQgYnkgdGhlIG1vZHVsZS4gIFV0aWxpdHkg Y29tbWFuZHMgYXJlCisgICAgICBtb3N0IHV0aWxpdHkgY29tbWFuZHMgYXJlIHRyYWNrZWQg YnkgdGhlIG1vZHVsZS4gIFV0aWxpdHkgY29tbWFuZHMgYXJlCiAgICAgICBhbGwgdGhvc2Ug b3RoZXIgdGhhbiA8Y29tbWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+LCA8Y29tbWFuZD5JTlNFUlQ8 L2NvbW1hbmQ+LAotICAgICAgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiBhbmQgPGNvbW1h bmQ+REVMRVRFPC9jb21tYW5kPi4KKyAgICAgIDxjb21tYW5kPlVQREFURTwvY29tbWFuZD4g YW5kIDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4sIGJ1dCB0aGlzIHBhcmFtZXRlciBkb2Vz IG5vdCBkaXNhYmxlCisgICAgICB0cmFja2luZyBvZiBQUkVQQVJFLCBFWEVDVVRFIG9yIENB TEwuCiAgICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA8bGl0ZXJhbD5vbjwvbGl0ZXJhbD4u CiAgICAgICBPbmx5IHN1cGVydXNlcnMgY2FuIGNoYW5nZSB0aGlzIHNldHRpbmcuCiAgICAg IDwvcGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcXVlcnlqdW1i bGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcXVlcnlqdW1ibGUuYwppbmRleCBhNjc0 ODdlNWZlLi4xMWE1N2Q3NjE2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNj L3F1ZXJ5anVtYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9xdWVyeWp1bWJs ZS5jCkBAIC0xMDQsNyArMTA0LDcgQEAgSnVtYmxlUXVlcnkoUXVlcnkgKnF1ZXJ5LCBjb25z dCBjaGFyICpxdWVyeXRleHQpCiAKIAlBc3NlcnQoSXNRdWVyeUlkRW5hYmxlZCgpKTsKIAot CWlmIChxdWVyeS0+dXRpbGl0eVN0bXQpCisJaWYgKHF1ZXJ5LT51dGlsaXR5U3RtdCAmJiAh SlVNQkxFX1VUSUxJVFkocXVlcnktPnV0aWxpdHlTdG10KSkKIAl7CiAJCXF1ZXJ5LT5xdWVy eUlkID0gY29tcHV0ZV91dGlsaXR5X3F1ZXJ5X2lkKHF1ZXJ5dGV4dCwKIAkJCQkJCQkJCQkJ CSAgcXVlcnktPnN0bXRfbG9jYXRpb24sCkBAIC0yNDAsMTAgKzI0MCwxMSBAQCBzdGF0aWMg dm9pZAogSnVtYmxlUXVlcnlJbnRlcm5hbChKdW1ibGVTdGF0ZSAqanN0YXRlLCBRdWVyeSAq cXVlcnkpCiB7CiAJQXNzZXJ0KElzQShxdWVyeSwgUXVlcnkpKTsKLQlBc3NlcnQocXVlcnkt PnV0aWxpdHlTdG10ID09IE5VTEwpOworCUFzc2VydChxdWVyeS0+dXRpbGl0eVN0bXQgPT0g TlVMTCB8fCBKVU1CTEVfVVRJTElUWShxdWVyeS0+dXRpbGl0eVN0bXQpKTsKIAogCUFQUF9K VU1CKHF1ZXJ5LT5jb21tYW5kVHlwZSk7CiAJLyogcmVzdWx0UmVsYXRpb24gaXMgdXN1YWxs eSBwcmVkaWN0YWJsZSBmcm9tIGNvbW1hbmRUeXBlICovCisJSnVtYmxlRXhwcihqc3RhdGUs IChOb2RlICopIHF1ZXJ5LT51dGlsaXR5U3RtdCk7CiAJSnVtYmxlRXhwcihqc3RhdGUsIChO b2RlICopIHF1ZXJ5LT5jdGVMaXN0KTsKIAlKdW1ibGVSYW5nZVRhYmxlKGpzdGF0ZSwgcXVl cnktPnJ0YWJsZSk7CiAJSnVtYmxlRXhwcihqc3RhdGUsIChOb2RlICopIHF1ZXJ5LT5qb2lu dHJlZSk7CkBAIC0zODMsNiArMzg0LDMwIEBAIEp1bWJsZUV4cHIoSnVtYmxlU3RhdGUgKmpz dGF0ZSwgTm9kZSAqbm9kZSkKIAkJCQlBUFBfSlVNQih2YXItPnZhcmxldmVsc3VwKTsKIAkJ CX0KIAkJCWJyZWFrOworCQljYXNlIFRfQ2FsbFN0bXQ6CisJCQl7CisJCQkJQ2FsbFN0bXQg ICAqc3RtdCA9IChDYWxsU3RtdCAqKSBub2RlOworCQkJCUZ1bmNFeHByICAgKmV4cHIgPSBz dG10LT5mdW5jZXhwcjsKKworCQkJCUFQUF9KVU1CKGV4cHItPmZ1bmNpZCk7CisJCQkJSnVt YmxlRXhwcihqc3RhdGUsIChOb2RlICopIGV4cHItPmFyZ3MpOworCQkJfQorCQkJYnJlYWs7 CisJCWNhc2UgVF9WYXJpYWJsZVNldFN0bXQ6CisJCQl7CisJCQkJVmFyaWFibGVTZXRTdG10 ICpzdG10ID0gKFZhcmlhYmxlU2V0U3RtdCAqKSBub2RlOworCisJCQkJQVBQX0pVTUJfU1RS SU5HKHN0bXQtPm5hbWUpOworCQkJCUp1bWJsZUV4cHIoanN0YXRlLCAoTm9kZSAqKSBzdG10 LT5hcmdzKTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIFRfQV9Db25zdDoKKwkJCXsKKwkJ CQlpbnQJCQlsb2MgPSAoKGNvbnN0IEFfQ29uc3QgKikgbm9kZSktPmxvY2F0aW9uOworCisJ CQkJUmVjb3JkQ29uc3RMb2NhdGlvbihqc3RhdGUsIGxvYyk7CisJCQl9CisJCQlicmVhazsK IAkJY2FzZSBUX0NvbnN0OgogCQkJewogCQkJCUNvbnN0CSAgICpjID0gKENvbnN0ICopIG5v ZGU7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9xdWVyeWp1bWJsZS5oIGIvc3Jj L2luY2x1ZGUvdXRpbHMvcXVlcnlqdW1ibGUuaAppbmRleCAzYzJkOWJlYWIyLi5jYWRhOWEx ZWQzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9xdWVyeWp1bWJsZS5oCisrKyBi L3NyYy9pbmNsdWRlL3V0aWxzL3F1ZXJ5anVtYmxlLmgKQEAgLTE4LDYgKzE4LDEyIEBACiAK ICNkZWZpbmUgSlVNQkxFX1NJWkUJCQkJMTAyNAkvKiBxdWVyeSBzZXJpYWxpemF0aW9uIGJ1 ZmZlciBzaXplICovCiAKKy8qCisgKiBKdW1ibGUgdGhvc2UgdXRpbGl0eSBzdGF0ZW1lbnRz CisgKi8KKyNkZWZpbmUgSlVNQkxFX1VUSUxJVFkobikJKElzQShuLCBDYWxsU3RtdCkgfHwg XAorCQkJCQkJCUlzQShuLCBWYXJpYWJsZVNldFN0bXQpKQorCiAvKgogICogU3RydWN0IGZv ciB0cmFja2luZyBsb2NhdGlvbnMvbGVuZ3RocyBvZiBjb25zdGFudHMgZHVyaW5nIG5vcm1h bGl6YXRpb24KICAqLwo= --------------10KCN04mR0A6m0kqXKi79BTn--