Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rki3i-00EkrF-9o for pgsql-hackers@arkaria.postgresql.org; Thu, 14 Mar 2024 10:11:35 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rki3f-00GNQ2-PD for pgsql-hackers@arkaria.postgresql.org; Thu, 14 Mar 2024 10:11:32 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rki3e-00GNPu-Tr for pgsql-hackers@lists.postgresql.org; Thu, 14 Mar 2024 10:11:31 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rki3X-004RQD-HM for pgsql-hackers@postgresql.org; Thu, 14 Mar 2024 10:11:29 +0000 Received: from [172.30.0.166] (unknown [172.30.0.166]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: a.lepikhov@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id 166FAE20E87; Thu, 14 Mar 2024 13:11:17 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1710411081; bh=T7xKlFNXwUlunvsuZ9wqvwQkKCyovqWhLxvFnZRkmzo=; h=Message-ID:Date:User-Agent:Subject:To:Cc:References:From: In-Reply-To:From; b=DwxwW8fS1lGL7o26BMS+gj0UjudULCb96G4gK7YpsDUgiW64VUQZOrVak4L/xmxq5 yHjKLGH3k3TecDoF0f8RZX+SAe0Xq6/JrWqO0zX0oBhtTEHi6UOsa/Mu/fUxGOR//M QNbMbq7DRopNRktGDD1Qjqnew1pmwZnDMuHLkijw2FVc3G1hJuAO2Q0yLIZoGMjqbq 3Ed8j/DZWgdDFwxlRsyawFB9fitlrWs0yFSUPmM/6esYA0u2Vwo+3sf8lLS9DL+nyq QORnyUp2mP02fX3Kq7ZFMpCNMA8aMnOOeDhIEECsj+biqt64m105aoT2Pi62/tVfRJ wIJQAhFxVTviA== Content-Type: multipart/mixed; boundary="------------ot4UMvF7us6Ssw3ZcD2JHooW" Message-ID: <67bd918d-285e-44d2-a207-f52d9a4c35e6@postgrespro.ru> Date: Thu, 14 Mar 2024 17:11:15 +0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: POC, WIP: OR-clause support for indexes To: Alexander Korotkov Cc: jian he , Alena Rybakina , Robert Haas , pgsql-hackers@postgresql.org, Peter Geoghegan , "Finnerty, Jim" , Marcos Pegoraro , teodor@sigaev.ru, Tomas Vondra , Peter Eisentraut , Ranier Vilela References: <567ED6CA.2040504@sigaev.ru> <54009ba5-4aea-4344-a30d-e3558a59e2a9@postgrespro.ru> <380e5683-cdfd-4220-ab9b-7cccb9d3e480@postgrespro.ru> <7389d0dd-05d5-41b7-a12d-2e73f939f851@postgrespro.ru> <74e3c8bc-dccd-45e5-ad2d-6a6e96fc5864@postgrespro.ru> Content-Language: en-US From: Andrei Lepikhov Organization: Postgres Professional In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------ot4UMvF7us6Ssw3ZcD2JHooW Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 14/3/2024 16:31, Alexander Korotkov wrote: > On Wed, Mar 13, 2024 at 2:16 PM Andrei Lepikhov > > wrote: > > On 13/3/2024 18:05, Alexander Korotkov wrote: > > > On Wed, Mar 13, 2024 at 7:52 AM Andrei Lepikhov > > > Given all of the above, I think moving transformation to the > > > canonicalize_qual() would be the right way to go. > > Ok, I will try to move the code. > > I have no idea about the timings so far. I recall the last time I got > > bogged down in tons of duplicated code. I hope with an almost-ready > > sketch, it will be easier. > > Thank you!  I'll be looking forward to the updated patch. Okay, I moved the 0001-* patch to the prepqual.c module. See it in the attachment. I treat it as a transient patch. It has positive outcomes as well as negative ones. The most damaging result you can see in the partition_prune test: partition pruning, in some cases, moved to the executor initialization stage. I guess, we should avoid it somehow in the next version. -- regards, Andrei Lepikhov Postgres Professional --------------ot4UMvF7us6Ssw3ZcD2JHooW Content-Type: text/plain; charset=UTF-8; name="v22-1-0001-Transform-OR-clauses-to-ANY-expression.patch" Content-Disposition: attachment; filename="v22-1-0001-Transform-OR-clauses-to-ANY-expression.patch" Content-Transfer-Encoding: base64 RnJvbSAxNzBmNjg3MTU0MDAyNWQwZDE2ODM3NTA0NDJlN2FmOTAyYjExYTQwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogRnJpLCAyIEZlYiAyMDI0IDIyOjAxOjA5ICswMzAwClN1Ympl Y3Q6IFtQQVRDSCAxLzJdIFRyYW5zZm9ybSBPUiBjbGF1c2VzIHRvIEFOWSBleHByZXNzaW9u LgoKUmVwbGFjZSAoZXhwciBvcCBDMSkgT1IgKGV4cHIgb3AgQzIpIC4uLiB3aXRoIGV4cHIg b3AgQU5ZKEFSUkFZW0MxLCBDMiwgLi4uXSkgb24gdGhlCnByZWxpbWluYXJ5IHN0YWdlIG9m IG9wdGltaXphdGlvbiB3aGVuIHdlIGFyZSBzdGlsbCB3b3JraW5nIHdpdGggdGhlCmV4cHJl c3Npb24gdHJlZS4KSGVyZSBDPFg+IGlzIGEgY29uc3RhbnQgZXhwcmVzc2lvbiwgJ2V4cHIn IGlzIG5vbi1jb25zdGFudCBleHByZXNzaW9uLCAnb3AnIGlzCmFuIG9wZXJhdG9yIHdoaWNo IHJldHVybnMgYm9vbGVhbiByZXN1bHQgYW5kIGhhcyBhIGNvbW11dGVyIChmb3IgdGhlIGNh c2Ugb2YKcmV2ZXJzZSBvcmRlciBvZiBjb25zdGFudCBhbmQgbm9uLWNvbnN0YW50IHBhcnRz IG9mIHRoZSBleHByZXNzaW9uLApsaWtlICdDWCBvcCBleHByJykuClNvbWV0aW1lcyBpdCBj YW4gbGVhZCB0byBub3Qgb3B0aW1hbCBwbGFuLiBCdXQgd2UgdGhpbmsgaXQgaXMgYmV0dGVy IHRvIGhhdmUKYXJyYXkgb2YgZWxlbWVudHMgaW5zdGVhZCBvZiBhIGxvdCBvZiBPUiBjbGF1 c2VzLiBIZXJlIGlzIGEgcm9vbSBmb3IgZnVydGhlcgpvcHRpbWl6YXRpb25zIG9uIGRlY29t cG9zaW5nIHRoYXQgYXJyYXkgaW50byBtb3JlIG9wdGltYWwgcGFydHMuCkF1dGhvcnM6IEFs ZW5hIFJ5YmFraW5hIDxsZW5hLnJpYmFja2luYUB5YW5kZXgucnU+LCBBbmRyZXkgTGVwaWto b3YgPGEubGVwaWtob3ZAcG9zdGdyZXNwcm8ucnU+ClJldmlld2VkLWJ5OiBQZXRlciBHZW9n aGVnYW4gPHBnQGJvd3QuaWU+LCBSYW5pZXIgVmlsZWxhIDxyYW5pZXIudmZAZ21haWwuY29t PgpSZXZpZXdlZC1ieTogQWxleGFuZGVyIEtvcm90a292IDxhZWtvcm90a292QGdtYWlsLmNv bT4sIFJvYmVydCBIYWFzIDxyb2JlcnRtaGFhc0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBq aWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+Ci0tLQogLi4uL3Bvc3RncmVz X2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0ICAgIHwgICA4ICstCiBkb2Mvc3JjL3Nn bWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAgICAgICAgfCAgMTcgKwogc3JjL2JhY2tl bmQvbm9kZXMvcXVlcnlqdW1ibGVmdW5jcy5jICAgICAgICAgIHwgIDI3ICsrCiBzcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwcXVhbC5jICAgICAgICAgfCAzNzEgKysrKysrKysr KysrKysrKystCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAg ICAgfCAgMTEgKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2Ft cGxlIHwgICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL3F1ZXJ5anVtYmxlLmggICAgICAgICAg ICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9vcHRpbWl6ZXIvb3B0aW1pemVyLmggICAgICAg ICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfaW5kZXgu b3V0ICAgIHwgMTU2ICsrKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4u b3V0ICAgICAgICAgICAgfCAgNjIgKystCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Bh cnRpdGlvbl9wcnVuZS5vdXQgfCAyMzUgKysrKysrKysrLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc3RhdHNfZXh0Lm91dCAgICAgICB8ICAxMiArLQogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zeXN2aWV3cy5vdXQgICAgICAgIHwgICAzICstCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3RpZHNjYW4ub3V0ICAgICAgICAgfCAgMTkgKy0KIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2NyZWF0ZV9pbmRleC5zcWwgICAgICAgICB8ICAzNSArKwogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvam9pbi5zcWwgICAgICAgICAgICAgICAgIHwgIDEwICsKIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9wcnVuZS5zcWwgICAgICB8ICAyMiArKwogc3JjL3Rl c3QvcmVncmVzcy9zcWwvdGlkc2Nhbi5zcWwgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy90 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgMiArCiAxOSBm aWxlcyBjaGFuZ2VkLCA5MzkgaW5zZXJ0aW9ucygrKSwgNjEgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91 dCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKaW5k ZXggNThhNjAzYWM1Ni4uYTk2NWI0M2NjNiAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jl c19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAorKysgYi9jb250cmliL3Bvc3RncmVz X2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CkBAIC04ODM4LDE4ICs4ODM4LDE4IEBA IGluc2VydCBpbnRvIHV0cnRlc3QgdmFsdWVzICgyLCAncXV4Jyk7CiAtLSBDaGVjayBjYXNl IHdoZXJlIHRoZSBmb3JlaWduIHBhcnRpdGlvbiBpcyBhIHN1YnBsYW4gdGFyZ2V0IHJlbAog ZXhwbGFpbiAodmVyYm9zZSwgY29zdHMgb2ZmKQogdXBkYXRlIHV0cnRlc3Qgc2V0IGEgPSAx IHdoZXJlIGEgPSAxIG9yIGEgPSAyIHJldHVybmluZyAqOwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgVXBkYXRlIG9uIHB1YmxpYy51dHJ0 ZXN0CiAgICBPdXRwdXQ6IHV0cnRlc3RfMS5hLCB1dHJ0ZXN0XzEuYgogICAgRm9yZWlnbiBV cGRhdGUgb24gcHVibGljLnJlbXAgdXRydGVzdF8xCiAgICBVcGRhdGUgb24gcHVibGljLmxv Y3AgdXRydGVzdF8yCiAgICAtPiAgQXBwZW5kCiAgICAgICAgICAtPiAgRm9yZWlnbiBVcGRh dGUgb24gcHVibGljLnJlbXAgdXRydGVzdF8xCi0gICAgICAgICAgICAgICBSZW1vdGUgU1FM OiBVUERBVEUgcHVibGljLmxvY3QgU0VUIGEgPSAxIFdIRVJFICgoKGEgPSAxKSBPUiAoYSA9 IDIpKSkgUkVUVVJOSU5HIGEsIGIKKyAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFVQREFU RSBwdWJsaWMubG9jdCBTRVQgYSA9IDEgV0hFUkUgKChhID0gQU5ZICgnezEsMn0nOjppbnRl Z2VyW10pKSkgUkVUVVJOSU5HIGEsIGIKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwdWJs aWMubG9jcCB1dHJ0ZXN0XzIKICAgICAgICAgICAgICAgIE91dHB1dDogMSwgdXRydGVzdF8y LnRhYmxlb2lkLCB1dHJ0ZXN0XzIuY3RpZCwgTlVMTDo6cmVjb3JkCi0gICAgICAgICAgICAg ICBGaWx0ZXI6ICgodXRydGVzdF8yLmEgPSAxKSBPUiAodXRydGVzdF8yLmEgPSAyKSkKKyAg ICAgICAgICAgICAgIEZpbHRlcjogKHV0cnRlc3RfMi5hID0gQU5ZICgnezEsMn0nOjppbnRl Z2VyW10pKQogKDEwIHJvd3MpCiAKIC0tIFRoZSBuZXcgdmFsdWVzIGFyZSBjb25jYXRlbmF0 ZWQgd2l0aCAnIHRyaWdnZXJlZCAhJwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NvbmZp Zy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IDY1YTZlNmM0MDguLjJk ZTZhZTMwMWEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKQEAgLTU0NzIsNiArNTQ3MiwyMyBAQCBBTlkgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bV9zeW5jPC9yZXBsYWNlYWJsZT4gKCA8 cmVwbGFjZWFibGUgY2xhc3M9IgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0 ZW50cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3VjLWVuYWJsZS1vci10cmFuc2Zv cm1hdGlvbiIgeHJlZmxhYmVsPSJlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24iPgorICAgICAg PHRlcm0+PHZhcm5hbWU+ZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uPC92YXJuYW1lPiAoPHR5 cGU+Ym9vbGVhbjwvdHlwZT4pCisgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgPHByaW1h cnk+PHZhcm5hbWU+ZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uPC92YXJuYW1lPiBjb25maWd1 cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgICA8L2luZGV4dGVybT4KKyAgICAg IDwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgRW5h YmxlcyBvciBkaXNhYmxlcyB0aGUgcXVlcnkgcGxhbm5lcidzIGFiaWxpdHkgdG8gbG9va3Vw IGFuZCBncm91cCBtdWx0aXBsZQorICAgICAgICBzaW1pbGFyIE9SIGV4cHJlc3Npb25zIHRv IEFOWSAoPHhyZWYgbGlua2VuZD0iZnVuY3Rpb25zLWNvbXBhcmlzb25zLWFueS1zb21lIi8+ KSBleHByZXNzaW9ucy4KKyAgICAgICAgVGhlIGdyb3VwaW5nIHRlY2huaXF1ZSBvZiB0aGlz IHRyYW5zZm9ybWF0aW9uIGlzIGJhc2VkIG9uIHRoZSBlcXVpdmFsZW5jZSBvZiB2YXJpYWJs ZSBzaWRlcy4KKyAgICAgICAgT25lIHNpZGUgb2Ygc3VjaCBhbiBleHByZXNzaW9uIG11c3Qg YmUgYSBjb25zdGFudCBjbGF1c2UsIGFuZCB0aGUgb3RoZXIgbXVzdCBjb250YWluIGEgdmFy aWFibGUgY2xhdXNlLgorICAgICAgICBUaGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD5vbjwvbGl0 ZXJhbD4uCisgICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFy bGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1lbmFibGUtcGFyYWxs ZWwtYXBwZW5kIiB4cmVmbGFiZWw9ImVuYWJsZV9wYXJhbGxlbF9hcHBlbmQiPgogICAgICAg PHRlcm0+PHZhcm5hbWU+ZW5hYmxlX3BhcmFsbGVsX2FwcGVuZDwvdmFybmFtZT4gKDx0eXBl PmJvb2xlYW48L3R5cGU+KQogICAgICAgPGluZGV4dGVybT4KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL25vZGVzL3F1ZXJ5anVtYmxlZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL3F1 ZXJ5anVtYmxlZnVuY3MuYwppbmRleCAyYzExNmM4NzI4Li4wYzViNGEwMTFiIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9xdWVyeWp1bWJsZWZ1bmNzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvbm9kZXMvcXVlcnlqdW1ibGVmdW5jcy5jCkBAIC0xNDEsNiArMTQxLDMzIEBAIEp1 bWJsZVF1ZXJ5KFF1ZXJ5ICpxdWVyeSkKIAlyZXR1cm4ganN0YXRlOwogfQogCitKdW1ibGVT dGF0ZSAqCitKdW1ibGVFeHByKEV4cHIgKmV4cHIsIHVpbnQ2NCAqcXVlcnlJZCkKK3sKKwlK dW1ibGVTdGF0ZSAqanN0YXRlID0gTlVMTDsKKworCUFzc2VydChxdWVyeUlkICE9IE5VTEwp OworCisJanN0YXRlID0gKEp1bWJsZVN0YXRlICopIHBhbGxvYyhzaXplb2YoSnVtYmxlU3Rh dGUpKTsKKworCS8qIFNldCB1cCB3b3Jrc3BhY2UgZm9yIHF1ZXJ5IGp1bWJsaW5nICovCisJ anN0YXRlLT5qdW1ibGUgPSAodW5zaWduZWQgY2hhciAqKSBwYWxsb2MoSlVNQkxFX1NJWkUp OworCWpzdGF0ZS0+anVtYmxlX2xlbiA9IDA7CisJanN0YXRlLT5jbG9jYXRpb25zX2J1Zl9z aXplID0gMzI7CisJanN0YXRlLT5jbG9jYXRpb25zID0gKExvY2F0aW9uTGVuICopCisJCXBh bGxvYyhqc3RhdGUtPmNsb2NhdGlvbnNfYnVmX3NpemUgKiBzaXplb2YoTG9jYXRpb25MZW4p KTsKKwlqc3RhdGUtPmNsb2NhdGlvbnNfY291bnQgPSAwOworCWpzdGF0ZS0+aGlnaGVzdF9l eHRlcm5fcGFyYW1faWQgPSAwOworCisJLyogQ29tcHV0ZSBxdWVyeSBJRCAqLworCV9qdW1i bGVOb2RlKGpzdGF0ZSwgKE5vZGUgKikgZXhwcik7CisJKnF1ZXJ5SWQgPSBEYXR1bUdldFVJ bnQ2NChoYXNoX2FueV9leHRlbmRlZChqc3RhdGUtPmp1bWJsZSwKKwkJCQkJCQkJCQkJCWpz dGF0ZS0+anVtYmxlX2xlbiwKKwkJCQkJCQkJCQkJCTApKTsKKworCXJldHVybiBqc3RhdGU7 Cit9CisKIC8qCiAgKiBFbmFibGVzIHF1ZXJ5IGlkZW50aWZpZXIgY29tcHV0YXRpb24uCiAg KgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcHF1YWwuYyBi L3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBxdWFsLmMKaW5kZXggY2JjZjgzZjg0 Ny4uN2VlNTg1ZGM4OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAv cHJlcHF1YWwuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwcXVhbC5j CkBAIC0zMSwxNiArMzEsMjUgQEAKIAogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKKyNpbmNs dWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0 b3IuaCIKKyNpbmNsdWRlICJjb21tb24vaGFzaGZuLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFr ZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCisjaW5jbHVkZSAibm9k ZXMvcXVlcnlqdW1ibGUuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvb3B0aW1pemVyLmgiCisj aW5jbHVkZSAicGFyc2VyL3BhcnNlX2NvZXJjZS5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJz ZV9vcGVyLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRp bHMvc3lzY2FjaGUuaCIKIAorYm9vbAkJZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uID0gdHJ1 ZTsKIAogc3RhdGljIExpc3QgKnB1bGxfYW5kcyhMaXN0ICphbmRsaXN0KTsKIHN0YXRpYyBM aXN0ICpwdWxsX29ycyhMaXN0ICpvcmxpc3QpOwogc3RhdGljIEV4cHIgKmZpbmRfZHVwbGlj YXRlX29ycyhFeHByICpxdWFsLCBib29sIGlzX2NoZWNrKTsKIHN0YXRpYyBFeHByICpwcm9j ZXNzX2R1cGxpY2F0ZV9vcnMoTGlzdCAqb3JsaXN0KTsKK3N0YXRpYyBMaXN0ICpvcl90cmFu c2Zvcm1hdGlvbihMaXN0ICpvcmxpc3QpOwogCiAKIC8qCkBAIC0yNjYsNiArMjc1LDM1NCBA QCBuZWdhdGVfY2xhdXNlKE5vZGUgKm5vZGUpCiAJcmV0dXJuIChOb2RlICopIG1ha2Vfbm90 Y2xhdXNlKChFeHByICopIG5vZGUpOwogfQogCit0eXBlZGVmIHN0cnVjdCBPckNsYXVzZUdy b3VwS2V5Cit7CisJTm9kZVRhZwl0eXBlOworCisJRXhwciAgICpleHByOyAvKiBQb2ludGVy IHRvIHRoZSBleHByZXNzaW9uIHRyZWUgd2hpY2ggaGFzIGJlZW4gYSBzb3VyY2UgZm9yCisJ CQkJCXRoZSBoYXNoa2V5IHZhbHVlICovCisJT2lkCQlvcG5vOworCU9pZAkJY29uc3R0eXBl OworCU9pZAkJaW5wdXRjb2xsaWQ7IC8qIFhYWDogQ291bGQgd2UgbG9va3VwIGZvciBjb21t b24gY29sbGF0aW9uPyAqLworfSBPckNsYXVzZUdyb3VwS2V5OworCit0eXBlZGVmIHN0cnVj dCBPckNsYXVzZUdyb3VwRW50cnkKK3sKKwlPckNsYXVzZUdyb3VwS2V5CWtleTsKKworCUxp c3QJCQkgICAqY29uc3RzOworCUxpc3QgCQkJICAgKmV4cHJzOworfSBPckNsYXVzZUdyb3Vw RW50cnk7CisKKy8qCisgKiBIYXNoIGZ1bmN0aW9uIHRvIGZpbmQgY2FuZGlkYXRlIGNsYXVz ZXMuCisgKi8KK3N0YXRpYyB1aW50MzIKK29yY2xhdXNlX2hhc2goY29uc3Qgdm9pZCAqZGF0 YSwgU2l6ZSBrZXlzaXplKQoreworCU9yQ2xhdXNlR3JvdXBLZXkgICAqa2V5ID0gKE9yQ2xh dXNlR3JvdXBLZXkgKikgZGF0YTsKKwl1aW50NjQJCQkJZXhwckhhc2g7CisKKwlBc3NlcnQo a2V5c2l6ZSA9PSBzaXplb2YoT3JDbGF1c2VHcm91cEtleSkpOworCUFzc2VydChJc0EoZGF0 YSwgSW52YWxpZCkpOworCisJKHZvaWQpIEp1bWJsZUV4cHIoa2V5LT5leHByLCAmZXhwckhh c2gpOworCisJcmV0dXJuIGhhc2hfY29tYmluZSgodWludDMyKSBleHBySGFzaCwKKwkJCQkJ CWhhc2hfY29tYmluZSgodWludDMyKSBrZXktPm9wbm8sCisJCQkJCQkJaGFzaF9jb21iaW5l KCh1aW50MzIpIGtleS0+Y29uc3R0eXBlLAorCQkJCQkJCQkJCSAodWludDMyKSBrZXktPmlu cHV0Y29sbGlkKSkpOworfQorCitzdGF0aWMgdm9pZCAqCitvcmNsYXVzZV9rZXljb3B5KHZv aWQgKmRlc3QsIGNvbnN0IHZvaWQgKnNyYywgU2l6ZSBrZXlzaXplKQoreworCU9yQ2xhdXNl R3JvdXBLZXkgKnNyY19rZXkgPSAoT3JDbGF1c2VHcm91cEtleSAqKSBzcmM7CisJT3JDbGF1 c2VHcm91cEtleSAqZHN0X2tleSA9IChPckNsYXVzZUdyb3VwS2V5ICopIGRlc3Q7CisKKwlB c3NlcnQoc2l6ZW9mKE9yQ2xhdXNlR3JvdXBLZXkpID09IGtleXNpemUpOworCUFzc2VydChJ c0Eoc3JjLCBJbnZhbGlkKSk7CisKKwlkc3Rfa2V5LT50eXBlID0gVF9JbnZhbGlkOworCWRz dF9rZXktPmV4cHIgPSBzcmNfa2V5LT5leHByOworCWRzdF9rZXktPm9wbm8gPSBzcmNfa2V5 LT5vcG5vOworCWRzdF9rZXktPmNvbnN0dHlwZSA9IHNyY19rZXktPmNvbnN0dHlwZTsKKwlk c3Rfa2V5LT5pbnB1dGNvbGxpZCA9IHNyY19rZXktPmlucHV0Y29sbGlkOworCisJcmV0dXJu IGRzdF9rZXk7Cit9CisKKy8qCisgKiBEeW5haGFzaCBtYXRjaCBmdW5jdGlvbiB0byB1c2Ug aW4gb3JfZ3JvdXBfaHRhYgorICovCitzdGF0aWMgaW50CitvcmNsYXVzZV9tYXRjaChjb25z dCB2b2lkICpkYXRhMSwgY29uc3Qgdm9pZCAqZGF0YTIsIFNpemUga2V5c2l6ZSkKK3sKKwlP ckNsYXVzZUdyb3VwS2V5ICAgKmtleTEgPSAoT3JDbGF1c2VHcm91cEtleSAqKSBkYXRhMTsK KwlPckNsYXVzZUdyb3VwS2V5ICAgKmtleTIgPSAoT3JDbGF1c2VHcm91cEtleSAqKSBkYXRh MjsKKworCUFzc2VydChzaXplb2YoT3JDbGF1c2VHcm91cEtleSkgPT0ga2V5c2l6ZSk7CisJ QXNzZXJ0KElzQShrZXkxLCBJbnZhbGlkKSk7CisJQXNzZXJ0KElzQShrZXkyLCBJbnZhbGlk KSk7CisKKwlpZiAoa2V5MS0+b3BubyA9PSBrZXkyLT5vcG5vICYmCisJCWtleTEtPmNvbnN0 dHlwZSA9PSBrZXkyLT5jb25zdHR5cGUgJiYKKwkJa2V5MS0+aW5wdXRjb2xsaWQgPT0ga2V5 Mi0+aW5wdXRjb2xsaWQgJiYKKwkJZXF1YWwoa2V5MS0+ZXhwciwga2V5Mi0+ZXhwcikpCisJ CXJldHVybiAwOworCisJcmV0dXJuIDE7Cit9CisKKy8qCisgKiBvcl90cmFuc2Zvcm1hdGlv biAtCisgKgkgIERpc2NvdmVyIHRoZSBhcmdzIG9mIGFuIE9SIGV4cHJlc3Npb24gYW5kIHRy eSB0byBncm91cCBzaW1pbGFyIE9SCisgKgkgIGV4cHJlc3Npb25zIHRvIGFuIEFOWSBvcGVy YXRpb24uCisgKgkgIFRyYW5zZm9ybWF0aW9uIG11c3QgYmUgYWxyZWFkeSBkb25lIG9uIGlu cHV0IGFyZ3MgbGlzdCBiZWZvcmUgdGhlIGNhbGwuCisgKgkgIFRyYW5zZm9ybWF0aW9uIGdy b3VwcyB0d28tc2lkZWQgZXF1YWxpdHkgb3BlcmF0aW9ucy4gT25lIHNpZGUgb2Ygc3VjaCBh bgorICoJICBvcGVyYXRpb24gbXVzdCBiZSBwbGFpbiBjb25zdGFudCBvciBjb25zdGFudCBl eHByZXNzaW9uLiBUaGUgb3RoZXIgc2lkZSBvZgorICoJICB0aGUgY2xhdXNlIG11c3QgYmUg YSB2YXJpYWJsZSBleHByZXNzaW9uIHdpdGhvdXQgdm9sYXRpbGUgZnVuY3Rpb25zLgorICoJ ICBUaGUgZ3JvdXBpbmcgdGVjaG5pcXVlIGlzIGJhc2VkIG9uIGFuIGVxdWl2YWxlbmNlIG9m IHZhcmlhYmxlIHNpZGVzIG9mIHRoZQorICoJICBleHByZXNzaW9uOiB1c2luZyBxdWVyeUlk IGFuZCBlcXVhbCgpIHJvdXRpbmUsIGl0IGdyb3VwcyBjb25zdGFudCBzaWRlcyBvZgorICoJ ICBzaW1pbGFyIGNsYXVzZXMgaW50byBhbiBhcnJheS4gQWZ0ZXIgdGhlIGdyb3VwaW5nIHBy b2NlZHVyZSwgZWFjaCBjb3VwbGUKKyAqCSAgKCd2YXJpYWJsZSBleHByZXNzaW9uJyBhbmQg J2NvbnN0YW50IGFycmF5JykgZm9ybSBhIG5ldyBTQU9QIG9wZXJhdGlvbiwKKyAqCSAgd2hp Y2ggaXMgYWRkZWQgdG8gdGhlIGFyZ3MgbGlzdCBvZiB0aGUgcmV0dXJuaW5nIGV4cHJlc3Np b24uCisgKgorICoJICBOT1RFOiBmdW5jdGlvbiByZXR1cm5zIE9SIEJvb2xFeHByIGlmIG1v cmUgdGhhbiBvbmUgY2xhdXNlIGFyZSBkZXRlY3RlZCBpbgorICoJICB0aGUgZmluYWwgYXJn cyBsaXN0LCBvciBTY2FsYXJBcnJheU9wRXhwciBpZiBhbGwgYXJncyB3ZXJlIGdyb3VwZWQg aW50bworICoJICB0aGUgc2luZ2xlIFNBT1AgZXhwcmVzc2lvbi4KKyAqLworc3RhdGljIExp c3QgKgorb3JfdHJhbnNmb3JtYXRpb24oTGlzdCAqb3JsaXN0KQoreworCUxpc3QJCQkJICAg Km5ld29ybGlzdCA9IE5JTDsKKwlMaXN0CQkJCSAgICplbnRyaWVzID0gTklMOworCUxpc3RD ZWxsCQkJICAgKmxjOworCUhBU0hDVEwJCQkJCWluZm87CisJSFRBQiAJCQkJICAgKm9yX2dy b3VwX2h0YWIgPSBOVUxMOworCWludCAJCQkJCWxlbl9vcnMgPSBsaXN0X2xlbmd0aChvcmxp c3QpOworCU9yQ2xhdXNlR3JvdXBFbnRyeQkgICAqZW50cnkgPSBOVUxMOworCisJQXNzZXJ0 KGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbiAmJiBsZW5fb3JzID4gMSk7CisKKwlNZW1TZXQo JmluZm8sIDAsIHNpemVvZihpbmZvKSk7CisJaW5mby5rZXlzaXplID0gc2l6ZW9mKE9yQ2xh dXNlR3JvdXBLZXkpOworCWluZm8uZW50cnlzaXplID0gc2l6ZW9mKE9yQ2xhdXNlR3JvdXBF bnRyeSk7CisJaW5mby5oYXNoID0gb3JjbGF1c2VfaGFzaDsKKwlpbmZvLmtleWNvcHkgPSBv cmNsYXVzZV9rZXljb3B5OworCWluZm8ubWF0Y2ggPSBvcmNsYXVzZV9tYXRjaDsKKwlvcl9n cm91cF9odGFiID0gaGFzaF9jcmVhdGUoIk9SIEdyb3VwcyIsCisJCQkJCQkJCWxlbl9vcnMs CisJCQkJCQkJCSZpbmZvLAorCQkJCQkJCQlIQVNIX0VMRU0gfCBIQVNIX0ZVTkNUSU9OIHwg SEFTSF9DT01QQVJFIHwgSEFTSF9LRVlDT1BZKTsKKworCWZvcmVhY2gobGMsIG9ybGlzdCkK Kwl7CisJCU5vZGUJCQkJICAgKm9ycXVhbCA9IGxmaXJzdChsYyk7CisJCU5vZGUJCQkJICAg KmNvbnN0X2V4cHI7CisJCU5vZGUJCQkJICAgKm5jb25zdF9leHByOworCQlPckNsYXVzZUdy b3VwS2V5CQloYXNoa2V5OworCQlib29sCQkJCQlmb3VuZDsKKwkJT2lkCQkJCQkJb3BubzsK KwkJT2lkCQkJCQkJY29uc3R0eXBlOworCQlOb2RlCQkJCSAgICpsZWZ0b3AsICpyaWdodG9w OworCisJCWlmICghSXNBKG9ycXVhbCwgT3BFeHByKSkKKwkJeworCQkJZW50cmllcyA9IGxh cHBlbmQoZW50cmllcywgb3JxdWFsKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJb3BubyA9 ICgoT3BFeHByICopIG9ycXVhbCktPm9wbm87CisJCWlmIChnZXRfb3BfcmV0dHlwZShvcG5v KSAhPSBCT09MT0lEKQorCQl7CisJCQkvKiBPbmx5IG9wZXJhdG9yIHJldHVybmluZyBib29s ZWFuIHN1aXRzIE9SIC0+IEFOWSB0cmFuc2Zvcm1hdGlvbiAqLworCQkJZW50cmllcyA9IGxh cHBlbmQoZW50cmllcywgb3JxdWFsKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJLyoKKwkJ ICogRGV0ZWN0IHRoZSBjb25zdGFudCBzaWRlIG9mIHRoZSBjbGF1c2UuIFJlY2FsbCBub24t Y29uc3RhbnQKKwkJICogZXhwcmVzc2lvbiBjYW4gYmUgbWFkZSBub3Qgb25seSB3aXRoIFZh cnMsIGJ1dCBhbHNvIHdpdGggUGFyYW1zLAorCQkgKiB3aGljaCBpcyBub3QgYm9uZGVkIHdp dGggYW55IHJlbGF0aW9uLiBUaHVzLCB3ZSBkZXRlY3QgdGhlIGNvbnN0CisJCSAqIHNpZGUg LSBpZiBhbm90aGVyIHNpZGUgaXMgY29uc3RhbnQgdG9vLCB0aGUgb3JxdWFsIGNvdWxkbid0 IGJlCisJCSAqIGFuIE9wRXhwci4KKwkJICogR2V0IHBvaW50ZXJzIHRvIGNvbnN0YW50IGFu ZCBleHByZXNzaW9uIHNpZGVzIG9mIHRoZSBxdWFsLgorCQkgKi8KKwkJbGVmdG9wID0gZ2V0 X2xlZnRvcChvcnF1YWwpOworCQlpZiAoSXNBKGxlZnRvcCwgUmVsYWJlbFR5cGUpKQorCQkJ bGVmdG9wID0gKE5vZGUgKikgKChSZWxhYmVsVHlwZSAqKSBsZWZ0b3ApLT5hcmc7CisJCXJp Z2h0b3AgPSBnZXRfcmlnaHRvcChvcnF1YWwpOworCQlpZiAoSXNBKHJpZ2h0b3AsIFJlbGFi ZWxUeXBlKSkKKwkJCXJpZ2h0b3AgPSAoTm9kZSAqKSAoKFJlbGFiZWxUeXBlICopIHJpZ2h0 b3ApLT5hcmc7CisKKwkJaWYgKElzQShsZWZ0b3AsIENvbnN0KSkKKwkJeworCQkJb3BubyA9 IGdldF9jb21tdXRhdG9yKG9wbm8pOworCisJCQlpZiAoIU9pZElzVmFsaWQob3BubykpCisJ CQl7CisJCQkJLyogY29tbXV0YXRvciBkb2Vzbid0IGV4aXN0LCB3ZSBjYW4ndCByZXZlcnNl IHRoZSBvcmRlciAqLworCQkJCWVudHJpZXMgPSBsYXBwZW5kKGVudHJpZXMsIG9ycXVhbCk7 CisJCQkJY29udGludWU7CisJCQl9CisKKwkJCW5jb25zdF9leHByID0gZ2V0X3JpZ2h0b3Ao b3JxdWFsKTsKKwkJCWNvbnN0X2V4cHIgPSBnZXRfbGVmdG9wKG9ycXVhbCk7CisJCX0KKwkJ ZWxzZSBpZiAoSXNBKHJpZ2h0b3AsIENvbnN0KSkKKwkJeworCQkJY29uc3RfZXhwciA9IGdl dF9yaWdodG9wKG9ycXVhbCk7CisJCQluY29uc3RfZXhwciA9IGdldF9sZWZ0b3Aob3JxdWFs KTsKKwkJfQorCQllbHNlCisJCXsKKwkJCWVudHJpZXMgPSBsYXBwZW5kKGVudHJpZXMsIG9y cXVhbCk7CisJCQljb250aW51ZTsKKwkJfQorCisJCS8qCisJCSAqIFRyYW5zZm9ybWF0aW9u IG9ubHkgd29ya3Mgd2l0aCBib3RoIHNpZGUgdHlwZSBpcyBub3QKKwkJICogeyBhcnJheSB8 IGNvbXBvc2l0ZSB8IGRvbWFpbiB8IHJlY29yZCB9LgorCQkgKiBBbHNvLCBmb3JiaWQgaXQg Zm9yIHZvbGF0aWxlIGV4cHJlc3Npb25zLgorCQkgKi8KKwkJY29uc3R0eXBlID0gZXhwclR5 cGUoY29uc3RfZXhwcik7CisJCWlmICh0eXBlX2lzX3Jvd3R5cGUoZXhwclR5cGUoY29uc3Rf ZXhwcikpIHx8CisJCQl0eXBlX2lzX3Jvd3R5cGUoY29uc3R0eXBlKSB8fAorCQkJY29udGFp bl92b2xhdGlsZV9mdW5jdGlvbnMoKE5vZGUgKikgbmNvbnN0X2V4cHIpKQorCQl7CisJCQll bnRyaWVzID0gbGFwcGVuZChlbnRyaWVzLCBvcnF1YWwpOworCQkJY29udGludWU7CisJCX0K KworCQkvKgorCQkqIEF0IHRoaXMgcG9pbnQgd2UgZGVmaW5pdGVseSBoYXZlIGEgdHJhbnNm b3JtYWJsZSBjbGF1c2UuCisJCSogQ2xhc3NpZnkgaXQgYW5kIGFkZCBpbnRvIHNwZWNpZmlj IGdyb3VwIG9mIGNsYXVzZXMsIG9yIGNyZWF0ZSBuZXcKKwkJKiBncm91cC4KKwkJKi8KKwkJ aGFzaGtleS50eXBlID0gVF9JbnZhbGlkOworCQloYXNoa2V5LmV4cHIgPSAoRXhwciAqKSBu Y29uc3RfZXhwcjsKKwkJaGFzaGtleS5vcG5vID0gb3BubzsKKwkJaGFzaGtleS5jb25zdHR5 cGUgPSBjb25zdHR5cGU7CisJCWhhc2hrZXkuaW5wdXRjb2xsaWQgPSBleHByQ29sbGF0aW9u KGNvbnN0X2V4cHIpOworCQllbnRyeSA9IGhhc2hfc2VhcmNoKG9yX2dyb3VwX2h0YWIsICZo YXNoa2V5LCBIQVNIX0VOVEVSLCAmZm91bmQpOworCisJCWlmICh1bmxpa2VseShmb3VuZCkp CisJCXsKKwkJCWVudHJ5LT5jb25zdHMgPSBsYXBwZW5kKGVudHJ5LT5jb25zdHMsIGNvbnN0 X2V4cHIpOworCQkJZW50cnktPmV4cHJzID0gbGFwcGVuZChlbnRyeS0+ZXhwcnMsIG9ycXVh bCk7CisJCX0KKwkJZWxzZQorCQl7CisJCQllbnRyeS0+Y29uc3RzID0gbGlzdF9tYWtlMShj b25zdF9leHByKTsKKwkJCWVudHJ5LT5leHBycyA9IGxpc3RfbWFrZTEob3JxdWFsKTsKKwor CQkJLyoKKwkJCSAqIEFkZCB0aGUgZW50cnkgdG8gdGhlIGxpc3QuIEl0IGlzIG5lZWRlZCBl eGNsdXNpdmVseSB0byBtYW5hZ2UgdGhlCisJCQkgKiBwcm9ibGVtIHdpdGggdGhlIG9yZGVy IG9mIHRyYW5zZm9ybWVkIGNsYXVzZXMgaW4gZXhwbGFpbi4KKwkJCSAqIEhhc2ggdmFsdWUg Y2FuIGRlcGVuZCBvbiB0aGUgcGxhdGZvcm0gYW5kIHZlcnNpb24uIEhlbmNlLAorCQkJICog c2VxdWVudGFsIHNjYW4gb2YgdGhlIGhhc2ggdGFibGUgd291bGQgcHJvbmUgdG8gY2hhbmdl IHRoZSBvcmRlcgorCQkJICogb2YgY2xhdXNlcyBpbiBsaXN0cyBhbmQsIGFzIGEgcmVzdWx0 LCBicmVhayByZWdyZXNzaW9uIHRlc3RzCisJCQkgKiBhY2NpZGVudGlhbGx5LgorCQkJICov CisJCQllbnRyaWVzID0gbGFwcGVuZChlbnRyaWVzLCBlbnRyeSk7CisJCX0KKwl9CisKKwkv KiBMZXQncyBjb252ZXJ0IGVhY2ggZ3JvdXAgb2YgY2xhdXNlcyB0byBhbiBJTiBvcGVyYXRp b24uICovCisKKwkvKgorCSAqIEdvIHRocm91Z2ggdGhlIGxpc3Qgb2YgZ3JvdXBzIGFuZCBj b252ZXJ0IGVhY2gsIHdoZXJlIG51bWJlciBvZgorCSAqIGNvbnN0cyBtb3JlIHRoYW4gMS4g dHJpdmlhbCBncm91cHMgbW92ZSB0byBPUi1saXN0IGFnYWluCisJICovCisJZm9yZWFjaCAo bGMsIGVudHJpZXMpCisJeworCQlPaWQJCQkJICAgIHNjYWxhcl90eXBlOworCQlPaWQJCQkJ CWFycmF5X3R5cGU7CisKKwkJaWYgKCFJc0EobGZpcnN0KGxjKSwgSW52YWxpZCkpCisJCXsK KwkJCW5ld29ybGlzdCA9IGxhcHBlbmQobmV3b3JsaXN0LCBsZmlyc3QobGMpKTsKKwkJCWNv bnRpbnVlOworCQl9CisKKwkJZW50cnkgPSAoT3JDbGF1c2VHcm91cEVudHJ5ICopIGxmaXJz dChsYyk7CisKKwkJQXNzZXJ0KGxpc3RfbGVuZ3RoKGVudHJ5LT5jb25zdHMpID4gMCk7CisJ CUFzc2VydChsaXN0X2xlbmd0aChlbnRyeS0+ZXhwcnMpID09IGxpc3RfbGVuZ3RoKGVudHJ5 LT5jb25zdHMpKTsKKworCQlpZiAobGlzdF9sZW5ndGgoZW50cnktPmNvbnN0cykgPT0gMSkK KwkJeworCQkJLyoKKwkJCSAqIE9ubHkgb25lIGVsZW1lbnQgcmV0dXJucyBvcmlnaW4gZXhw cmVzc2lvbiBpbnRvIHRoZSBCb29sRXhwciBhcmdzCisJCQkgKiBsaXN0IHVuY2hhbmdlZC4K KwkJCSAqLworCQkJbGlzdF9mcmVlKGVudHJ5LT5jb25zdHMpOworCQkJbmV3b3JsaXN0ID0g bGlzdF9jb25jYXQobmV3b3JsaXN0LCBlbnRyeS0+ZXhwcnMpOworCQkJY29udGludWU7CisJ CX0KKworCQkvKgorCQkgKiBEbyB0aGUgdHJhbnNmb3JtYXRpb24uCisJCSAqLworCisJCXNj YWxhcl90eXBlID0gZW50cnktPmtleS5jb25zdHR5cGU7CisJCWFycmF5X3R5cGUgPSBPaWRJ c1ZhbGlkKHNjYWxhcl90eXBlKSA/IGdldF9hcnJheV90eXBlKHNjYWxhcl90eXBlKSA6CisJ CQkJCQkJCQkJCSAgIEludmFsaWRPaWQ7CisKKwkJaWYgKE9pZElzVmFsaWQoYXJyYXlfdHlw ZSkpCisJCXsKKwkJCS8qCisJCQkgKiBPSzogY29lcmNlIGFsbCB0aGUgcmlnaHQtaGFuZCBu b24tVmFyIGlucHV0cyB0byB0aGUgY29tbW9uCisJCQkgKiB0eXBlIGFuZCBidWlsZCBhbiBB cnJheUV4cHIgZm9yIHRoZW0uCisJCQkgKi8KKwkJCUxpc3QJCQkgICAqYWV4cHJzID0gTklM OworCQkJQXJyYXlFeHByCQkgICAqbmV3YSA9IE5VTEw7CisJCQlTY2FsYXJBcnJheU9wRXhw ciAgKnNhb3BleHByID0gTlVMTDsKKwkJCUhlYXBUdXBsZQkJCW9wZXJ0dXA7CisJCQlGb3Jt X3BnX29wZXJhdG9yCW9wZXJmb3JtOworCQkJTGlzdAkJCSAgICpuYW1lbGlzdCA9IE5JTDsK KworCQkJZm9yZWFjaChsYywgZW50cnktPmNvbnN0cykKKwkJCXsKKwkJCQlOb2RlICpub2Rl ID0gKE5vZGUgKikgbGZpcnN0KGxjKTsKKworCQkJCW5vZGUgPSBjb2VyY2VfdG9fY29tbW9u X3R5cGUoTlVMTCwgbm9kZSwgc2NhbGFyX3R5cGUsCisJCQkJCQkJCQkJCSAiT1IgQU5ZIFRy YW5zZm9ybWF0aW9uIik7CisJCQkJYWV4cHJzID0gbGFwcGVuZChhZXhwcnMsIG5vZGUpOwor CQkJfQorCisJCQluZXdhID0gbWFrZU5vZGUoQXJyYXlFeHByKTsKKwkJCS8qIGFycmF5X2Nv bGxpZCB3aWxsIGJlIHNldCBieSBwYXJzZV9jb2xsYXRlLmMgKi8KKwkJCW5ld2EtPmVsZW1l bnRfdHlwZWlkID0gc2NhbGFyX3R5cGU7CisJCQluZXdhLT5hcnJheV90eXBlaWQgPSBhcnJh eV90eXBlOworCQkJbmV3YS0+bXVsdGlkaW1zID0gZmFsc2U7CisJCQluZXdhLT5lbGVtZW50 cyA9IGFleHByczsKKwkJCW5ld2EtPmxvY2F0aW9uID0gLTE7CisKKwkJCW9wZXJ0dXAgPSBT ZWFyY2hTeXNDYWNoZTEoT1BFUk9JRCwKKwkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShl bnRyeS0+a2V5Lm9wbm8pKTsKKwkJCWlmICghSGVhcFR1cGxlSXNWYWxpZChvcGVydHVwKSkK KwkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igb3BlcmF0b3IgJXUi LAorCQkJCQkgZW50cnktPmtleS5vcG5vKTsKKworCQkJb3BlcmZvcm0gPSAoRm9ybV9wZ19v cGVyYXRvcikgR0VUU1RSVUNUKG9wZXJ0dXApOworCQkJaWYgKCFPcGVyYXRvcklzVmlzaWJs ZShlbnRyeS0+a2V5Lm9wbm8pKQorCQkJCW5hbWVsaXN0ID0gbGFwcGVuZChuYW1lbGlzdCwg bWFrZVN0cmluZyhnZXRfbmFtZXNwYWNlX25hbWUob3BlcmZvcm0tPm9wcm5hbWVzcGFjZSkp KTsKKworCQkJbmFtZWxpc3QgPSBsYXBwZW5kKG5hbWVsaXN0LCBtYWtlU3RyaW5nKHBzdHJk dXAoTmFtZVN0cihvcGVyZm9ybS0+b3BybmFtZSkpKSk7CisJCQlSZWxlYXNlU3lzQ2FjaGUo b3BlcnR1cCk7CisKKwkJCXNhb3BleHByID0KKwkJCQkoU2NhbGFyQXJyYXlPcEV4cHIgKikK KwkJCQkJbWFrZV9zY2FsYXJfYXJyYXlfb3AoTlVMTCwKKwkJCQkJCQkJCQkgbmFtZWxpc3Qs CisJCQkJCQkJCQkJIHRydWUsCisJCQkJCQkJCQkJIChOb2RlICopIGVudHJ5LT5rZXkuZXhw ciwKKwkJCQkJCQkJCQkgKE5vZGUgKikgbmV3YSwKKwkJCQkJCQkJCQkgLTEpOworCQkJc2Fv cGV4cHItPmlucHV0Y29sbGlkID0gZW50cnktPmtleS5pbnB1dGNvbGxpZDsKKworCQkJbmV3 b3JsaXN0ID0gbGFwcGVuZChuZXdvcmxpc3QsICh2b2lkICopIHNhb3BleHByKTsKKwkJfQor CQllbHNlCisJCXsKKwkJCS8qCisJCQkgKiBJZiB0aGUgY29uc3Qgbm9kZSAocmlnaHQgc2lk ZSBvZiBvcGVyYXRvciBleHByZXNzaW9uKSAncyB0eXBlCisJCQkgKiAgZG9uJ3QgaGF2ZSDi gJx0cnVl4oCdIGFycmF5IHR5cGUsIHRoZW4gd2UgY2Fubm5vdCBkbyB0aGUgdHJhbnNmb3Jt YXRpb24uCisJCQkgKiBXZSBzaW1wbHkgY29uY2F0ZW5hdGUgdGhlIGV4cHJlc3Npb24gbm9k ZS4KKwkJCSAqCisJCQkgKi8KKwkJCWxpc3RfZnJlZShlbnRyeS0+Y29uc3RzKTsKKwkJCW5l d29ybGlzdCA9IGxpc3RfY29uY2F0KG5ld29ybGlzdCwgZW50cnktPmV4cHJzKTsKKwkJfQor CX0KKwloYXNoX2Rlc3Ryb3kob3JfZ3JvdXBfaHRhYik7CisJbGlzdF9mcmVlKGVudHJpZXMp OworCisJLyogT25lIG1vcmUgdHJpY2s6IGFzc2VtYmxlIGNvcnJlY3QgY2xhdXNlICovCisJ cmV0dXJuIG5ld29ybGlzdDsKK30KIAogLyoKICAqIGNhbm9uaWNhbGl6ZV9xdWFsCkBAIC02 MDQsNyArOTYxLDE1IEBAIHByb2Nlc3NfZHVwbGljYXRlX29ycyhMaXN0ICpvcmxpc3QpCiAJ ICogSWYgbm8gd2lubmVycywgd2UgY2FuJ3QgdHJhbnNmb3JtIHRoZSBPUgogCSAqLwogCWlm ICh3aW5uZXJzID09IE5JTCkKLQkJcmV0dXJuIG1ha2Vfb3JjbGF1c2Uob3JsaXN0KTsKKwl7 CisJCS8qIE1ha2UgYW4gYXR0ZW1wdCB0byBncm91cCBzaW1pbGFyIE9SIGNsYXVzZXMgaW50 byBBTlkgb3BlcmF0aW9uICovCisJCWlmIChlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24gJiYg bGlzdF9sZW5ndGgob3JsaXN0KSA+IDEpCisJCQlvcmxpc3QgPSBvcl90cmFuc2Zvcm1hdGlv bihvcmxpc3QpOworCisJCS8qIFRyYW5zZm9ybWF0aW9uIGNvdWxkIGdyb3VwIGFsbCBPUiBj bGF1c2VzIHRvIGEgc2luZ2xlIFNBT1AgKi8KKwkJcmV0dXJuIChsaXN0X2xlbmd0aChvcmxp c3QpID09IDEpID8KKwkJCQkJCQkoRXhwciAqKSBsaW5pdGlhbChvcmxpc3QpIDogbWFrZV9v cmNsYXVzZShvcmxpc3QpOworCX0KIAogCS8qCiAJICogR2VuZXJhdGUgbmV3IE9SIGxpc3Qg Y29uc2lzdGluZyBvZiB0aGUgcmVtYWluaW5nIHN1Yi1jbGF1c2VzLgpAQCAtNjUxLDYgKzEw MTYsMTAgQEAgcHJvY2Vzc19kdXBsaWNhdGVfb3JzKExpc3QgKm9ybGlzdCkKIAkJfQogCX0K IAorCS8qIE1ha2UgYW4gYXR0ZW1wdCB0byBncm91cCBzaW1pbGFyIE9SIGNsYXVzZXMgaW50 byBBTlkgb3BlcmF0aW9uICovCisJaWYgKGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbiAmJiBs aXN0X2xlbmd0aChuZXdvcmxpc3QpID4gMSkKKwkJbmV3b3JsaXN0ID0gb3JfdHJhbnNmb3Jt YXRpb24obmV3b3JsaXN0KTsKKwogCS8qCiAJICogQXBwZW5kIHJlZHVjZWQgT1IgdG8gdGhl IHdpbm5lcnMgbGlzdCwgaWYgaXQncyBub3QgZGVnZW5lcmF0ZSwgaGFuZGxpbmcKIAkgKiB0 aGUgc3BlY2lhbCBjYXNlIG9mIG9uZSBlbGVtZW50IGNvcnJlY3RseSAoY2FuIHRoYXQgcmVh bGx5IGhhcHBlbj8pLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwppbmRleCA1 N2Q5ZGU0ZGQ5Li5kNGYwODJlYzYyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9t aXNjL2d1Y190YWJsZXMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJs ZXMuYwpAQCAtMTAyNiw2ICsxMDI2LDE3IEBAIHN0cnVjdCBjb25maWdfYm9vbCBDb25maWd1 cmVOYW1lc0Jvb2xbXSA9CiAJCXRydWUsCiAJCU5VTEwsIE5VTEwsIE5VTEwKIAl9LAorCXsK KwkJeyJlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24iLCBQR0NfVVNFUlNFVCwgUVVFUllfVFVO SU5HX09USEVSLAorCQkJZ2V0dGV4dF9ub29wKCJUcmFuc2Zvcm0gYSBzZXF1ZW5jZSBvZiBP UiBjbGF1c2VzIHRvIGFuIGFycmF5IGV4cHJlc3Npb24uIiksCisJCQlnZXR0ZXh0X25vb3Ao IlRoZSBwbGFubmVyIHdpbGwgcmVwbGFjZSBleHByZXNzaW9uIGxpa2UgJ3g9YzEgT1IgeD1j MiAuLiciCisJCQkJCQkgInRvIHRoZSBleHByZXNzaW9uICd4ID0gQU5ZKEFSUkFZW2MxLGMy LC4uXSknIiksCisJCQlHVUNfRVhQTEFJTgorCQl9LAorCQkmZW5hYmxlX29yX3RyYW5zZm9y bWF0aW9uLAorCQl0cnVlLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwKIAl7CiAJCS8qCiAJ CSAqIE5vdCBmb3IgZ2VuZXJhbCB1c2UgLS0tIHVzZWQgYnkgU0VUIFNFU1NJT04gQVVUSE9S SVpBVElPTiBhbmQgU0VUCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bv c3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVz cWwuY29uZi5zYW1wbGUKaW5kZXggMjI0NGVlNTJmNy4uNTI0NTE2NTkzZiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQpAQCAtMzkx LDYgKzM5MSw3IEBACiAjIC0gUGxhbm5lciBNZXRob2QgQ29uZmlndXJhdGlvbiAtCiAKICNl bmFibGVfYXN5bmNfYXBwZW5kID0gb24KKyNlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24gPSBv bgogI2VuYWJsZV9iaXRtYXBzY2FuID0gb24KICNlbmFibGVfZ2F0aGVybWVyZ2UgPSBvbgog I2VuYWJsZV9oYXNoYWdnID0gb24KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3F1 ZXJ5anVtYmxlLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9xdWVyeWp1bWJsZS5oCmluZGV4IGYx YzU1YzgwNjcuLmE5YWUwNDhhZjUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3F1 ZXJ5anVtYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcXVlcnlqdW1ibGUuaApAQCAt NjUsNiArNjUsNyBAQCBleHRlcm4gUEdETExJTVBPUlQgaW50IGNvbXB1dGVfcXVlcnlfaWQ7 CiAKIGV4dGVybiBjb25zdCBjaGFyICpDbGVhblF1ZXJ5dGV4dChjb25zdCBjaGFyICpxdWVy eSwgaW50ICpsb2NhdGlvbiwgaW50ICpsZW4pOwogZXh0ZXJuIEp1bWJsZVN0YXRlICpKdW1i bGVRdWVyeShRdWVyeSAqcXVlcnkpOworZXh0ZXJuIEp1bWJsZVN0YXRlICpKdW1ibGVFeHBy KEV4cHIgKmV4cHIsIHVpbnQ2NCAqcXVlcnlJZCk7CiBleHRlcm4gdm9pZCBFbmFibGVRdWVy eUlkKHZvaWQpOwogCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBxdWVyeV9pZF9lbmFibGVk OwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL29wdGltaXplci5oIGIvc3Jj L2luY2x1ZGUvb3B0aW1pemVyL29wdGltaXplci5oCmluZGV4IDdiNjNjNWNmNzEuLjMyZWVj MGIyN2MgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaAor KysgYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvb3B0aW1pemVyLmgKQEAgLTEzMyw2ICsxMzMs OCBAQCBleHRlcm4gdm9pZCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llcyhOb2RlICpxdWVy eSwKIAogLyogaW4gcHJlcC9wcmVwcXVhbC5jOiAqLwogCitleHRlcm4gUEdETExJTVBPUlQg Ym9vbCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb247CisKIGV4dGVybiBOb2RlICpuZWdhdGVf Y2xhdXNlKE5vZGUgKm5vZGUpOwogZXh0ZXJuIEV4cHIgKmNhbm9uaWNhbGl6ZV9xdWFsKEV4 cHIgKnF1YWwsIGJvb2wgaXNfY2hlY2spOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2NyZWF0ZV9pbmRleC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2NyZWF0ZV9pbmRleC5vdXQKaW5kZXggNzBhYjQ3YTkyZi4uZDE0NGFlZWMyYSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfaW5kZXgub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2luZGV4Lm91dApAQCAtMTgz OCwxOCArMTgzOCw1MCBAQCBEUk9QIFRBQkxFIG9uZWtfd2l0aF9udWxsOwogRVhQTEFJTiAo Q09TVFMgT0ZGKQogU0VMRUNUICogRlJPTSB0ZW5rMQogICBXSEVSRSB0aG91c2FuZCA9IDQy IEFORCAodGVudGhvdXMgPSAxIE9SIHRlbnRob3VzID0gMyBPUiB0ZW50aG91cyA9IDQyKTsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotIEJpdG1hcCBIZWFwIFNjYW4gb24gdGVuazEKLSAgIFJlY2hlY2sgQ29uZDog KCgodGhvdXNhbmQgPSA0MikgQU5EICh0ZW50aG91cyA9IDEpKSBPUiAoKHRob3VzYW5kID0g NDIpIEFORCAodGVudGhvdXMgPSAzKSkgT1IgKCh0aG91c2FuZCA9IDQyKSBBTkQgKHRlbnRo b3VzID0gNDIpKSkKLSAgIC0+ICBCaXRtYXBPcgotICAgICAgICAgLT4gIEJpdG1hcCBJbmRl eCBTY2FuIG9uIHRlbmsxX3Rob3VzX3RlbnRob3VzCi0gICAgICAgICAgICAgICBJbmRleCBD b25kOiAoKHRob3VzYW5kID0gNDIpIEFORCAodGVudGhvdXMgPSAxKSkKLSAgICAgICAgIC0+ ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV90aG91c190ZW50aG91cwotICAgICAgICAg ICAgICAgSW5kZXggQ29uZDogKCh0aG91c2FuZCA9IDQyKSBBTkQgKHRlbnRob3VzID0gMykp Ci0gICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhv dXMKLSAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICgodGhvdXNhbmQgPSA0MikgQU5EICh0 ZW50aG91cyA9IDQyKSkKLSg5IHJvd3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIEluZGV4IFNjYW4gdXNpbmcgdGVuazFfdGhvdXNfdGVudGhvdXMgb24g dGVuazEKKyAgIEluZGV4IENvbmQ6ICgodGhvdXNhbmQgPSA0MikgQU5EICh0ZW50aG91cyA9 IEFOWSAoQVJSQVlbMSwgMywgNDJdKSkpCisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRl bmsxCisgIFdIRVJFIHRob3VzYW5kID0gNDIgQU5EICh0ZW50aG91cyA9IDEgT1IgdGVudGhv dXMgPSAzIE9SIHRlbnRob3VzID0gNDIpOworIHVuaXF1ZTEgfCB1bmlxdWUyIHwgdHdvIHwg Zm91ciB8IHRlbiB8IHR3ZW50eSB8IGh1bmRyZWQgfCB0aG91c2FuZCB8IHR3b3Rob3VzYW5k IHwgZml2ZXRob3VzIHwgdGVudGhvdXMgfCBvZGQgfCBldmVuIHwgc3RyaW5ndTEgfCBzdHJp bmd1MiB8IHN0cmluZzQgCistLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tKy0tLS0tLSstLS0t LSstLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0KKyAgICAgIDQyIHwgICAgNTUzMCB8ICAgMCB8ICAgIDIgfCAgIDIgfCAgICAgIDIg fCAgICAgIDQyIHwgICAgICAgNDIgfCAgICAgICAgICA0MiB8ICAgICAgICA0MiB8ICAgICAg IDQyIHwgIDg0IHwgICA4NSB8IFFCQUFBQSAgIHwgU0VJQUFBICAgfCBPT09PeHgKKygxIHJv dykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIEZST00gdGVuazEK KyAgV0hFUkUgaHVuZHJlZCA9IDQyIEFORCAodGhvdXNhbmQgPSA0MiBPUiB0aG91c2FuZCA9 IDk5KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gdGVuazEKKyAgICAg ICAgIFJlY2hlY2sgQ29uZDogKChodW5kcmVkID0gNDIpIEFORCAodGhvdXNhbmQgPSBBTlkg KEFSUkFZWzQyLCA5OV0pKSkKKyAgICAgICAgIC0+ICBCaXRtYXBBbmQKKyAgICAgICAgICAg ICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV9odW5kcmVkCisgICAgICAgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAoaHVuZHJlZCA9IDQyKQorICAgICAgICAgICAgICAg LT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3Rob3VzX3RlbnRob3VzCisgICAgICAg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAodGhvdXNhbmQgPSBBTlkgKEFSUkFZWzQyLCA5 OV0pKQorKDggcm93cykKKworU0VMRUNUIGNvdW50KCopIEZST00gdGVuazEKKyAgV0hFUkUg aHVuZHJlZCA9IDQyIEFORCAodGhvdXNhbmQgPSA0MiBPUiB0aG91c2FuZCA9IDk5KTsKKyBj b3VudCAKKy0tLS0tLS0KKyAgICAxMAorKDEgcm93KQorCitTRVQgZW5hYmxlX29yX3RyYW5z Zm9ybWF0aW9uID0gb247CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgKiBGUk9NIHRl bmsxCisgIFdIRVJFIHRob3VzYW5kID0gNDIgQU5EICh0ZW50aG91cyA9IDEgT1IgdGVudGhv dXMgPSAzIE9SIHRlbnRob3VzID0gNDIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBJbmRleCBTY2FuIHVzaW5nIHRlbmsxX3Rob3VzX3RlbnRob3VzIG9u IHRlbmsxCisgICBJbmRleCBDb25kOiAoKHRob3VzYW5kID0gNDIpIEFORCAodGVudGhvdXMg PSBBTlkgKEFSUkFZWzEsIDMsIDQyXSkpKQorKDIgcm93cykKIAogU0VMRUNUICogRlJPTSB0 ZW5rMQogICBXSEVSRSB0aG91c2FuZCA9IDQyIEFORCAodGVudGhvdXMgPSAxIE9SIHRlbnRo b3VzID0gMyBPUiB0ZW50aG91cyA9IDQyKTsKQEAgLTE4NjEsMjggKzE4OTMsMTE2IEBAIFNF TEVDVCAqIEZST00gdGVuazEKIEVYUExBSU4gKENPU1RTIE9GRikKIFNFTEVDVCBjb3VudCgq KSBGUk9NIHRlbmsxCiAgIFdIRVJFIGh1bmRyZWQgPSA0MiBBTkQgKHRob3VzYW5kID0gNDIg T1IgdGhvdXNhbmQgPSA5OSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2Nh biBvbiB0ZW5rMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoKGh1bmRyZWQgPSA0MikgQU5E ICh0aG91c2FuZCA9IEFOWSAoQVJSQVlbNDIsIDk5XSkpKQorICAgICAgICAgLT4gIEJpdG1h cEFuZAorICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX2h1 bmRyZWQKKyAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChodW5kcmVkID0gNDIp CisgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhvdXNf dGVudGhvdXMKKyAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh0aG91c2FuZCA9 IEFOWSAoQVJSQVlbNDIsIDk5XSkpCisoOCByb3dzKQorCitTRUxFQ1QgY291bnQoKikgRlJP TSB0ZW5rMQorICBXSEVSRSBodW5kcmVkID0gNDIgQU5EICh0aG91c2FuZCA9IDQyIE9SIHRo b3VzYW5kID0gOTkpOworIGNvdW50IAorLS0tLS0tLQorICAgIDEwCisoMSByb3cpCisKK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCisgIFdIRVJF IGh1bmRyZWQgPSA0MiBBTkQgKHRob3VzYW5kIDwgNDIgT1IgdGhvdXNhbmQgPCA5OSBPUiA0 MyA+IHRob3VzYW5kIE9SIDQyID4gdGhvdXNhbmQpOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0 ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gdGVuazEKKyAgICAgICAgIFJlY2hlY2sg Q29uZDogKChodW5kcmVkID0gNDIpIEFORCAodGhvdXNhbmQgPCBBTlkgKEFSUkFZWzQyLCA5 OSwgNDMsIDQyXSkpKQorICAgICAgICAgLT4gIEJpdG1hcEFuZAorICAgICAgICAgICAgICAg LT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX2h1bmRyZWQKKyAgICAgICAgICAgICAg ICAgICAgIEluZGV4IENvbmQ6IChodW5kcmVkID0gNDIpCisgICAgICAgICAgICAgICAtPiAg Qml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMKKyAgICAgICAgICAg ICAgICAgICAgIEluZGV4IENvbmQ6ICh0aG91c2FuZCA8IEFOWSAoQVJSQVlbNDIsIDk5LCA0 MywgNDJdKSkKKyg4IHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3Vu dCgqKSBGUk9NIHRlbmsxCisgIFdIRVJFIHRob3VzYW5kID0gNDIgQU5EICh0ZW50aG91cyA9 IDEgT1IgdGVudGhvdXMgPSAzKSBPUiB0aG91c2FuZCA9IDQxOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNj YW4gb24gdGVuazEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKCgodGhvdXNhbmQgPSA0Mikg QU5EICh0ZW50aG91cyA9IEFOWSAoQVJSQVlbMSwgM10pKSkgT1IgKHRob3VzYW5kID0gNDEp KQorICAgICAgICAgLT4gIEJpdG1hcE9yCisgICAgICAgICAgICAgICAtPiAgQml0bWFwIElu ZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMKKyAgICAgICAgICAgICAgICAgICAg IEluZGV4IENvbmQ6ICgodGhvdXNhbmQgPSA0MikgQU5EICh0ZW50aG91cyA9IEFOWSAoQVJS QVlbMSwgM10pKSkKKyAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0 ZW5rMV90aG91c190ZW50aG91cworICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KHRob3VzYW5kID0gNDEpCisoOCByb3dzKQorCitTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5r MQorICBXSEVSRSB0aG91c2FuZCA9IDQyIEFORCAodGVudGhvdXMgPSAxIE9SIHRlbnRob3Vz ID0gMykgT1IgdGhvdXNhbmQgPSA0MTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAxMAorKDEg cm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5r MQorICBXSEVSRSBodW5kcmVkID0gNDIgQU5EICh0aG91c2FuZCA9IDQyIE9SIHRob3VzYW5k ID0gOTkgT1IgdGVudGhvdXMgPCAyKSBPUiB0aG91c2FuZCA9IDQxOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gdGVu azEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKCgoaHVuZHJlZCA9IDQyKSBBTkQgKCh0aG91 c2FuZCA9IEFOWSAoQVJSQVlbNDIsIDk5XSkpIE9SICh0ZW50aG91cyA8IDIpKSkgT1IgKHRo b3VzYW5kID0gNDEpKQorICAgICAgICAgLT4gIEJpdG1hcE9yCisgICAgICAgICAgICAgICAt PiAgQml0bWFwQW5kCisgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNj YW4gb24gdGVuazFfaHVuZHJlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXgg Q29uZDogKGh1bmRyZWQgPSA0MikKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBCaXRtYXBP cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9u IHRlbmsxX3Rob3VzX3RlbnRob3VzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJbmRleCBDb25kOiAodGhvdXNhbmQgPSBBTlkgKEFSUkFZWzQyLCA5OV0pKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3Ro b3VzX3RlbnRob3VzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBD b25kOiAodGVudGhvdXMgPCAyKQorICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBT Y2FuIG9uIHRlbmsxX3Rob3VzX3RlbnRob3VzCisgICAgICAgICAgICAgICAgICAgICBJbmRl eCBDb25kOiAodGhvdXNhbmQgPSA0MSkKKygxNCByb3dzKQorCitTRUxFQ1QgY291bnQoKikg RlJPTSB0ZW5rMQorICBXSEVSRSBodW5kcmVkID0gNDIgQU5EICh0aG91c2FuZCA9IDQyIE9S IHRob3VzYW5kID0gOTkgT1IgdGVudGhvdXMgPCAyKSBPUiB0aG91c2FuZCA9IDQxOworIGNv dW50IAorLS0tLS0tLQorICAgIDIwCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikK K1NFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCisgIFdIRVJFIGh1bmRyZWQgPSA0MiBBTkQg KHRob3VzYW5kID0gNDIgT1IgdGhvdXNhbmQgPSA0MSBPUiB0aG91c2FuZCA9IDk5IEFORCB0 ZW50aG91cyA9IDIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgQWdncmVnYXRlCiAg ICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiB0ZW5rMQotICAgICAgICAgUmVjaGVjayBDb25k OiAoKGh1bmRyZWQgPSA0MikgQU5EICgodGhvdXNhbmQgPSA0MikgT1IgKHRob3VzYW5kID0g OTkpKSkKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKChodW5kcmVkID0gNDIpIEFORCAoKHRo b3VzYW5kID0gQU5ZIChBUlJBWVs0MiwgNDFdKSkgT1IgKCh0aG91c2FuZCA9IDk5KSBBTkQg KHRlbnRob3VzID0gMikpKSkKICAgICAgICAgIC0+ICBCaXRtYXBBbmQKICAgICAgICAgICAg ICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV9odW5kcmVkCiAgICAgICAgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAoaHVuZHJlZCA9IDQyKQogICAgICAgICAgICAgICAg LT4gIEJpdG1hcE9yCiAgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNj YW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAg IEluZGV4IENvbmQ6ICh0aG91c2FuZCA9IDQyKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgSW5kZXggQ29uZDogKHRob3VzYW5kID0gQU5ZIChBUlJBWVs0MiwgNDFdKSkKICAgICAg ICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV90aG91c190 ZW50aG91cwotICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHRob3Vz YW5kID0gOTkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoKHRo b3VzYW5kID0gOTkpIEFORCAodGVudGhvdXMgPSAyKSkKICgxMSByb3dzKQogCiBTRUxFQ1Qg Y291bnQoKikgRlJPTSB0ZW5rMQotICBXSEVSRSBodW5kcmVkID0gNDIgQU5EICh0aG91c2Fu ZCA9IDQyIE9SIHRob3VzYW5kID0gOTkpOworICBXSEVSRSBodW5kcmVkID0gNDIgQU5EICh0 aG91c2FuZCA9IDQyIE9SIHRob3VzYW5kID0gNDEgT1IgdGhvdXNhbmQgPSA5OSBBTkQgdGVu dGhvdXMgPSAyKTsKICBjb3VudCAKIC0tLS0tLS0KICAgICAxMAogKDEgcm93KQogCitSRVNF VCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb247CiAtLQogLS0gQ2hlY2sgYmVoYXZpb3Igd2l0 aCBkdXBsaWNhdGUgaW5kZXggY29sdW1uIGNvbnRlbnRzCiAtLQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvam9pbi5vdXQKaW5kZXggOTYwNTQwMDAyMS4uMzM2ODYyOWM5YyAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0CkBAIC00MjEwLDEwICs0MjEwLDEwIEBAIGV4cGxh aW4gKGNvc3RzIG9mZikKIHNlbGVjdCAqIGZyb20gdGVuazEgYSBqb2luIHRlbmsxIGIgb24K ICAgKGEudW5pcXVlMSA9IDEgYW5kIGIudW5pcXVlMSA9IDIpIG9yCiAgICgoYS51bmlxdWUy ID0gMyBvciBhLnVuaXF1ZTIgPSA3KSBhbmQgYi5odW5kcmVkID0gNCk7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBOZXN0ZWQgTG9vcAotICAgSm9pbiBGaWx0 ZXI6ICgoKGEudW5pcXVlMSA9IDEpIEFORCAoYi51bmlxdWUxID0gMikpIE9SICgoKGEudW5p cXVlMiA9IDMpIE9SIChhLnVuaXF1ZTIgPSA3KSkgQU5EIChiLmh1bmRyZWQgPSA0KSkpCisg ICBKb2luIEZpbHRlcjogKCgoYS51bmlxdWUxID0gMSkgQU5EIChiLnVuaXF1ZTEgPSAyKSkg T1IgKChhLnVuaXF1ZTIgPSBBTlkgKEFSUkFZWzMsIDddKSkgQU5EIChiLmh1bmRyZWQgPSA0 KSkpCiAgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiB0ZW5rMSBiCiAgICAgICAgICBSZWNo ZWNrIENvbmQ6ICgodW5pcXVlMSA9IDIpIE9SIChodW5kcmVkID0gNCkpCiAgICAgICAgICAt PiAgQml0bWFwT3IKQEAgLTQyMjMsMTYgKzQyMjMsNjQgQEAgc2VsZWN0ICogZnJvbSB0ZW5r MSBhIGpvaW4gdGVuazEgYiBvbgogICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGh1bmRyZWQgPSA0KQogICAgLT4gIE1hdGVyaWFsaXplCiAgICAgICAgICAtPiAgQml0bWFw IEhlYXAgU2NhbiBvbiB0ZW5rMSBhCi0gICAgICAgICAgICAgICBSZWNoZWNrIENvbmQ6ICgo dW5pcXVlMSA9IDEpIE9SICh1bmlxdWUyID0gMykgT1IgKHVuaXF1ZTIgPSA3KSkKKyAgICAg ICAgICAgICAgIFJlY2hlY2sgQ29uZDogKCh1bmlxdWUxID0gMSkgT1IgKHVuaXF1ZTIgPSBB TlkgKEFSUkFZWzMsIDddKSkpCiAgICAgICAgICAgICAgICAtPiAgQml0bWFwT3IKICAgICAg ICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV91bmlxdWUx CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMSA9IDEp CiAgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFf dW5pcXVlMgotICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1 ZTIgPSAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1 ZTIgPSBBTlkgKEFSUkFZWzMsIDddKSkKKygxNyByb3dzKQorCitTRVQgZW5hYmxlX29yX3Ry YW5zZm9ybWF0aW9uID0gb247CitleHBsYWluIChjb3N0cyBvZmYpCitzZWxlY3QgKiBmcm9t IHRlbmsxIGEgam9pbiB0ZW5rMSBiIG9uCisgIChhLnVuaXF1ZTEgPSAxIGFuZCBiLnVuaXF1 ZTEgPSAyKSBvcgorICAoKGEudW5pcXVlMiA9IDMgb3IgYS51bmlxdWUyID0gNykgYW5kIGIu aHVuZHJlZCA9IDQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgTmVzdGVkIExvb3AKKyAgIEpvaW4gRmls dGVyOiAoKChhLnVuaXF1ZTEgPSAxKSBBTkQgKGIudW5pcXVlMSA9IDIpKSBPUiAoKGEudW5p cXVlMiA9IEFOWSAoQVJSQVlbMywgN10pKSBBTkQgKGIuaHVuZHJlZCA9IDQpKSkKKyAgIC0+ ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRlbmsxIGIKKyAgICAgICAgIFJlY2hlY2sgQ29uZDog KCh1bmlxdWUxID0gMikgT1IgKGh1bmRyZWQgPSA0KSkKKyAgICAgICAgIC0+ICBCaXRtYXBP cgorICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3VuaXF1 ZTEKKyAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUxID0gMikKKyAg ICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV9odW5kcmVkCisg ICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoaHVuZHJlZCA9IDQpCisgICAtPiAg TWF0ZXJpYWxpemUKKyAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRlbmsxIGEK KyAgICAgICAgICAgICAgIFJlY2hlY2sgQ29uZDogKCh1bmlxdWUxID0gMSkgT1IgKHVuaXF1 ZTIgPSBBTlkgKEFSUkFZWzMsIDddKSkpCisgICAgICAgICAgICAgICAtPiAgQml0bWFwT3IK KyAgICAgICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV91 bmlxdWUxCisgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVl MSA9IDEpCiAgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24g dGVuazFfdW5pcXVlMgotICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KHVuaXF1ZTIgPSA3KQotKDE5IHJvd3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAodW5pcXVlMiA9IEFOWSAoQVJSQVlbMywgN10pKQorKDE3IHJvd3MpCisK K2V4cGxhaW4gKGNvc3RzIG9mZikKK3NlbGVjdCAqIGZyb20gdGVuazEgYSBqb2luIHRlbmsx IGIgb24KKyAgKGEudW5pcXVlMSA8IDIwIG9yIGEudW5pcXVlMSA9IDMgb3IgYS51bmlxdWUx ID0gMSBhbmQgYi51bmlxdWUxID0gMikgb3IKKyAgKChhLnVuaXF1ZTIgPSAzIG9yIGEudW5p cXVlMiA9IDcpIGFuZCBiLmh1bmRyZWQgPSA0KTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIE5lc3RlZCBMb29wCisgICBKb2luIEZpbHRlcjogKChhLnVuaXF1 ZTEgPCAyMCkgT1IgKGEudW5pcXVlMSA9IDMpIE9SICgoYS51bmlxdWUxID0gMSkgQU5EIChi LnVuaXF1ZTEgPSAyKSkgT1IgKChhLnVuaXF1ZTIgPSBBTlkgKEFSUkFZWzMsIDddKSkgQU5E IChiLmh1bmRyZWQgPSA0KSkpCisgICAtPiAgU2VxIFNjYW4gb24gdGVuazEgYgorICAgLT4g IE1hdGVyaWFsaXplCisgICAgICAgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiB0ZW5rMSBh CisgICAgICAgICAgICAgICBSZWNoZWNrIENvbmQ6ICgodW5pcXVlMSA8IDIwKSBPUiAodW5p cXVlMSA9IDMpIE9SICh1bmlxdWUxID0gMSkgT1IgKHVuaXF1ZTIgPSBBTlkgKEFSUkFZWzMs IDddKSkpCisgICAgICAgICAgICAgICAtPiAgQml0bWFwT3IKKyAgICAgICAgICAgICAgICAg ICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV91bmlxdWUxCisgICAgICAgICAg ICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMSA8IDIwKQorICAgICAgICAg ICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3VuaXF1ZTEKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUxID0gMykKKyAg ICAgICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV91bmlx dWUxCisgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMSA9 IDEpCisgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVu azFfdW5pcXVlMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHVu aXF1ZTIgPSBBTlkgKEFSUkFZWzMsIDddKSkKKygxNSByb3dzKQogCitSRVNFVCBlbmFibGVf b3JfdHJhbnNmb3JtYXRpb247CiAtLQogLS0gdGVzdCBwbGFjZW1lbnQgb2YgbW92YWJsZSBx dWFscyBpbiBhIHBhcmFtZXRlcml6ZWQgam9pbiB0cmVlCiAtLQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fcHJ1bmUub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fcHJ1bmUub3V0CmluZGV4IGJmMDY1N2I5ZjIu LmNlNmQ2ZjQwZmIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFy dGl0aW9uX3BydW5lLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRp dGlvbl9wcnVuZS5vdXQKQEAgLTgyLDI1ICs4Miw1MSBAQCBleHBsYWluIChjb3N0cyBvZmYp IHNlbGVjdCAqIGZyb20gbHAgd2hlcmUgYSBpcyBudWxsOwogKDIgcm93cykKIAogZXhwbGFp biAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgPSAnYScgb3IgYSA9ICdj JzsKLSAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogIEFwcGVuZAorICAgU3VicGxhbnMgUmVtb3ZlZDogNAogICAgLT4gIFNlcSBTY2Fu IG9uIGxwX2FkIGxwXzEKLSAgICAgICAgIEZpbHRlcjogKChhID0gJ2EnOjpicGNoYXIpIE9S IChhID0gJ2MnOjpicGNoYXIpKQorICAgICAgICAgRmlsdGVyOiAoYSA9IEFOWSAoJ3thLGN9 Jzo6YnBjaGFyW10pKQogICAgLT4gIFNlcSBTY2FuIG9uIGxwX2JjIGxwXzIKLSAgICAgICAg IEZpbHRlcjogKChhID0gJ2EnOjpicGNoYXIpIE9SIChhID0gJ2MnOjpicGNoYXIpKQotKDUg cm93cykKKyAgICAgICAgIEZpbHRlcjogKGEgPSBBTlkgKCd7YSxjfSc6OmJwY2hhcltdKSkK Kyg2IHJvd3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVy ZSBhIGlzIG5vdCBudWxsIGFuZCAoYSA9ICdhJyBvciBhID0gJ2MnKTsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBBcHBlbmQKKyAgIFN1YnBsYW5zIFJlbW92ZWQ6 IDMKICAgIC0+ICBTZXEgU2NhbiBvbiBscF9hZCBscF8xCi0gICAgICAgICBGaWx0ZXI6ICgo YSBJUyBOT1QgTlVMTCkgQU5EICgoYSA9ICdhJzo6YnBjaGFyKSBPUiAoYSA9ICdjJzo6YnBj aGFyKSkpCisgICAgICAgICBGaWx0ZXI6ICgoYSBJUyBOT1QgTlVMTCkgQU5EIChhID0gQU5Z ICgne2EsY30nOjpicGNoYXJbXSkpKQogICAgLT4gIFNlcSBTY2FuIG9uIGxwX2JjIGxwXzIK LSAgICAgICAgIEZpbHRlcjogKChhIElTIE5PVCBOVUxMKSBBTkQgKChhID0gJ2EnOjpicGNo YXIpIE9SIChhID0gJ2MnOjpicGNoYXIpKSkKLSg1IHJvd3MpCisgICAgICAgICBGaWx0ZXI6 ICgoYSBJUyBOT1QgTlVMTCkgQU5EIChhID0gQU5ZICgne2EsY30nOjpicGNoYXJbXSkpKQor KDYgcm93cykKKworU0VUIGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbiA9IG9uOworZXhwbGFp biAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgPSAnYScgb3IgYSA9ICdj JzsKKyAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFwcGVu ZAorICAgU3VicGxhbnMgUmVtb3ZlZDogNAorICAgLT4gIFNlcSBTY2FuIG9uIGxwX2FkIGxw XzEKKyAgICAgICAgIEZpbHRlcjogKGEgPSBBTlkgKCd7YSxjfSc6OmJwY2hhcltdKSkKKyAg IC0+ICBTZXEgU2NhbiBvbiBscF9iYyBscF8yCisgICAgICAgICBGaWx0ZXI6IChhID0gQU5Z ICgne2EsY30nOjpicGNoYXJbXSkpCisoNiByb3dzKQogCitleHBsYWluIChjb3N0cyBvZmYp IHNlbGVjdCAqIGZyb20gbHAgd2hlcmUgYSBpcyBub3QgbnVsbCBhbmQgKGEgPSAnYScgb3Ig YSA9ICdjJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFwcGVuZAor ICAgU3VicGxhbnMgUmVtb3ZlZDogMworICAgLT4gIFNlcSBTY2FuIG9uIGxwX2FkIGxwXzEK KyAgICAgICAgIEZpbHRlcjogKChhIElTIE5PVCBOVUxMKSBBTkQgKGEgPSBBTlkgKCd7YSxj fSc6OmJwY2hhcltdKSkpCisgICAtPiAgU2VxIFNjYW4gb24gbHBfYmMgbHBfMgorICAgICAg ICAgRmlsdGVyOiAoKGEgSVMgTk9UIE5VTEwpIEFORCAoYSA9IEFOWSAoJ3thLGN9Jzo6YnBj aGFyW10pKSkKKyg2IHJvd3MpCisKK1JFU0VUIGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbjsK IGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIDw+ICdnJzsK ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC01MTUsMTEgKzU0MSwxMyBAQCBleHBsYWluIChj b3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPD0gMzE7CiAoMjcgcm93cykK IAogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhID0gMSBv ciBhID0gNzsKLSAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFNlcSBTY2FuIG9uIHJscDIgcmxwCi0gICBGaWx0 ZXI6ICgoYSA9IDEpIE9SIChhID0gNykpCi0oMiByb3dzKQorICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAgIFN1YnBsYW5zIFJlbW92 ZWQ6IDEKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHAyIHJscF8xCisgICAgICAgICBGaWx0ZXI6 IChhID0gQU5ZICgnezEsN30nOjppbnRlZ2VyW10pKQorKDQgcm93cykKIAogZXhwbGFpbiAo Y29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhID0gMSBvciBiID0gJ2FiJzsK ICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAg ICAKQEAgLTU5NiwxNCArNjI0LDE1IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICog ZnJvbSBybHAgd2hlcmUgYSA8IDEgb3IgKGEgPiAyMCBhbmQgYSA8IDI1KTsKIAogLS0gd2hl cmUgY2xhdXNlIGNvbnRyYWRpY3RzIHN1Yi1wYXJ0aXRpb24ncyBjb25zdHJhaW50CiBleHBs YWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPSAyMCBvciBhID0g NDA7Ci0gICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBBcHBlbmQKKyAgIFN1YnBsYW5zIFJl bW92ZWQ6IDIKICAgIC0+ICBTZXEgU2NhbiBvbiBybHA0XzEgcmxwXzEKLSAgICAgICAgIEZp bHRlcjogKChhID0gMjApIE9SIChhID0gNDApKQorICAgICAgICAgRmlsdGVyOiAoYSA9IEFO WSAoJ3syMCw0MH0nOjppbnRlZ2VyW10pKQogICAgLT4gIFNlcSBTY2FuIG9uIHJscDVfZGVm YXVsdCBybHBfMgotICAgICAgICAgRmlsdGVyOiAoKGEgPSAyMCkgT1IgKGEgPSA0MCkpCi0o NSByb3dzKQorICAgICAgICAgRmlsdGVyOiAoYSA9IEFOWSAoJ3syMCw0MH0nOjppbnRlZ2Vy W10pKQorKDYgcm93cykKIAogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJs cDMgd2hlcmUgYSA9IDIwOyAgIC8qIGVtcHR5ICovCiAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgIApAQCAtNjcxLDYgKzcwMCwxNjYgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3Qg KiBmcm9tIHJscCB3aGVyZSAoYSA9IDEgYW5kIGEgPSAzKSBvciAoYSA+IDEgYW5kIGEgPQog ICAgICAgICAgRmlsdGVyOiAoKChhID0gMSkgQU5EIChhID0gMykpIE9SICgoYSA+IDEpIEFO RCAoYSA9IDE1KSkpCiAoMTEgcm93cykKIAorU0VUIGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlv biA9IG9uOworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBh ID0gMSBvciBhID0gNzsKKyAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgQXBwZW5kCisgICBTdWJwbGFucyBSZW1vdmVkOiAxCisgICAtPiAgU2VxIFNj YW4gb24gcmxwMiBybHBfMQorICAgICAgICAgRmlsdGVyOiAoYSA9IEFOWSAoJ3sxLDd9Jzo6 aW50ZWdlcltdKSkKKyg0IHJvd3MpCisKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICog ZnJvbSBybHAgd2hlcmUgYSA9IDEgb3IgYiA9ICdhYic7CisgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQXBwZW5kCisgICAt PiAgU2VxIFNjYW4gb24gcmxwMSBybHBfMQorICAgICAgICAgRmlsdGVyOiAoKGEgPSAxKSBP UiAoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4dCkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwMiBy bHBfMgorICAgICAgICAgRmlsdGVyOiAoKGEgPSAxKSBPUiAoKGIpOjp0ZXh0ID0gJ2FiJzo6 dGV4dCkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwM2FiY2QgcmxwXzMKKyAgICAgICAgIEZp bHRlcjogKChhID0gMSkgT1IgKChiKTo6dGV4dCA9ICdhYic6OnRleHQpKQorICAgLT4gIFNl cSBTY2FuIG9uIHJscDRfMSBybHBfNAorICAgICAgICAgRmlsdGVyOiAoKGEgPSAxKSBPUiAo KGIpOjp0ZXh0ID0gJ2FiJzo6dGV4dCkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwNF8yIHJs cF81CisgICAgICAgICBGaWx0ZXI6ICgoYSA9IDEpIE9SICgoYik6OnRleHQgPSAnYWInOjp0 ZXh0KSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHA0X2RlZmF1bHQgcmxwXzYKKyAgICAgICAg IEZpbHRlcjogKChhID0gMSkgT1IgKChiKTo6dGV4dCA9ICdhYic6OnRleHQpKQorICAgLT4g IFNlcSBTY2FuIG9uIHJscDVfMSBybHBfNworICAgICAgICAgRmlsdGVyOiAoKGEgPSAxKSBP UiAoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4dCkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwNV9k ZWZhdWx0IHJscF84CisgICAgICAgICBGaWx0ZXI6ICgoYSA9IDEpIE9SICgoYik6OnRleHQg PSAnYWInOjp0ZXh0KSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHBfZGVmYXVsdF8xMCBybHBf OQorICAgICAgICAgRmlsdGVyOiAoKGEgPSAxKSBPUiAoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4 dCkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwX2RlZmF1bHRfMzAgcmxwXzEwCisgICAgICAg ICBGaWx0ZXI6ICgoYSA9IDEpIE9SICgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSkKKyAgIC0+ ICBTZXEgU2NhbiBvbiBybHBfZGVmYXVsdF9udWxsIHJscF8xMQorICAgICAgICAgRmlsdGVy OiAoKGEgPSAxKSBPUiAoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4dCkpCisgICAtPiAgU2VxIFNj YW4gb24gcmxwX2RlZmF1bHRfZGVmYXVsdCBybHBfMTIKKyAgICAgICAgIEZpbHRlcjogKChh ID0gMSkgT1IgKChiKTo6dGV4dCA9ICdhYic6OnRleHQpKQorKDI1IHJvd3MpCisKK2V4cGxh aW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA+IDIwIGFuZCBhIDwg Mjc7CisgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAgIC0+ICBT ZXEgU2NhbiBvbiBybHA0XzEgcmxwXzEKKyAgICAgICAgIEZpbHRlcjogKChhID4gMjApIEFO RCAoYSA8IDI3KSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHA0XzIgcmxwXzIKKyAgICAgICAg IEZpbHRlcjogKChhID4gMjApIEFORCAoYSA8IDI3KSkKKyg1IHJvd3MpCisKK2V4cGxhaW4g KGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA9IDI5OworICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBTZXEgU2NhbiBvbiBybHA0X2RlZmF1bHQgcmxwCisgICBGaWx0ZXI6IChhID0gMjkpCiso MiByb3dzKQorCitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJl IGEgPj0gMjk7CisgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFw cGVuZAorICAgLT4gIFNlcSBTY2FuIG9uIHJscDRfZGVmYXVsdCBybHBfMQorICAgICAgICAg RmlsdGVyOiAoYSA+PSAyOSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHA1XzEgcmxwXzIKKyAg ICAgICAgIEZpbHRlcjogKGEgPj0gMjkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwNV9kZWZh dWx0IHJscF8zCisgICAgICAgICBGaWx0ZXI6IChhID49IDI5KQorICAgLT4gIFNlcSBTY2Fu IG9uIHJscF9kZWZhdWx0XzMwIHJscF80CisgICAgICAgICBGaWx0ZXI6IChhID49IDI5KQor ICAgLT4gIFNlcSBTY2FuIG9uIHJscF9kZWZhdWx0X2RlZmF1bHQgcmxwXzUKKyAgICAgICAg IEZpbHRlcjogKGEgPj0gMjkpCisoMTEgcm93cykKKworZXhwbGFpbiAoY29zdHMgb2ZmKSBz ZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhIDwgMSBvciAoYSA+IDIwIGFuZCBhIDwgMjUpOwor ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBBcHBlbmQKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHAxIHJscF8xCisgICAgICAgICBG aWx0ZXI6ICgoYSA8IDEpIE9SICgoYSA+IDIwKSBBTkQgKGEgPCAyNSkpKQorICAgLT4gIFNl cSBTY2FuIG9uIHJscDRfMSBybHBfMgorICAgICAgICAgRmlsdGVyOiAoKGEgPCAxKSBPUiAo KGEgPiAyMCkgQU5EIChhIDwgMjUpKSkKKyg1IHJvd3MpCisKK2V4cGxhaW4gKGNvc3RzIG9m Zikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA9IDIwIG9yIGEgPSA0MDsKKyAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFwcGVuZAorICAg U3VicGxhbnMgUmVtb3ZlZDogMgorICAgLT4gIFNlcSBTY2FuIG9uIHJscDRfMSBybHBfMQor ICAgICAgICAgRmlsdGVyOiAoYSA9IEFOWSAoJ3syMCw0MH0nOjppbnRlZ2VyW10pKQorICAg LT4gIFNlcSBTY2FuIG9uIHJscDVfZGVmYXVsdCBybHBfMgorICAgICAgICAgRmlsdGVyOiAo YSA9IEFOWSAoJ3syMCw0MH0nOjppbnRlZ2VyW10pKQorKDYgcm93cykKKworZXhwbGFpbiAo Y29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscDMgd2hlcmUgYSA9IDIwOyAgIC8qIGVtcHR5 ICovCisgICAgICAgIFFVRVJZIFBMQU4gICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBSZXN1bHQKKyAgIE9uZS1UaW1lIEZpbHRlcjogZmFsc2UKKygyIHJvd3MpCisK K2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA+IDEgYW5k IGEgPSAxMDsJLyogb25seSBkZWZhdWx0ICovCisgICAgICAgICAgICBRVUVSWSBQTEFOICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNj YW4gb24gcmxwX2RlZmF1bHRfMTAgcmxwCisgICBGaWx0ZXI6ICgoYSA+IDEpIEFORCAoYSA9 IDEwKSkKKygyIHJvd3MpCisKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBy bHAgd2hlcmUgYSA+IDEgYW5kIGEgPj0xNTsJLyogcmxwMyBvbndhcmRzLCBpbmNsdWRpbmcg ZGVmYXVsdCAqLworICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IEFwcGVuZAorICAgLT4gIFNlcSBTY2FuIG9uIHJscDNhYmNkIHJscF8xCisgICAgICAgICBG aWx0ZXI6ICgoYSA+IDEpIEFORCAoYSA+PSAxNSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxw M2VmZ2ggcmxwXzIKKyAgICAgICAgIEZpbHRlcjogKChhID4gMSkgQU5EIChhID49IDE1KSkK KyAgIC0+ICBTZXEgU2NhbiBvbiBybHAzbnVsbHh5IHJscF8zCisgICAgICAgICBGaWx0ZXI6 ICgoYSA+IDEpIEFORCAoYSA+PSAxNSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwM19kZWZh dWx0IHJscF80CisgICAgICAgICBGaWx0ZXI6ICgoYSA+IDEpIEFORCAoYSA+PSAxNSkpCisg ICAtPiAgU2VxIFNjYW4gb24gcmxwNF8xIHJscF81CisgICAgICAgICBGaWx0ZXI6ICgoYSA+ IDEpIEFORCAoYSA+PSAxNSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwNF8yIHJscF82Cisg ICAgICAgICBGaWx0ZXI6ICgoYSA+IDEpIEFORCAoYSA+PSAxNSkpCisgICAtPiAgU2VxIFNj YW4gb24gcmxwNF9kZWZhdWx0IHJscF83CisgICAgICAgICBGaWx0ZXI6ICgoYSA+IDEpIEFO RCAoYSA+PSAxNSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwNV8xIHJscF84CisgICAgICAg ICBGaWx0ZXI6ICgoYSA+IDEpIEFORCAoYSA+PSAxNSkpCisgICAtPiAgU2VxIFNjYW4gb24g cmxwNV9kZWZhdWx0IHJscF85CisgICAgICAgICBGaWx0ZXI6ICgoYSA+IDEpIEFORCAoYSA+ PSAxNSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwX2RlZmF1bHRfMzAgcmxwXzEwCisgICAg ICAgICBGaWx0ZXI6ICgoYSA+IDEpIEFORCAoYSA+PSAxNSkpCisgICAtPiAgU2VxIFNjYW4g b24gcmxwX2RlZmF1bHRfZGVmYXVsdCBybHBfMTEKKyAgICAgICAgIEZpbHRlcjogKChhID4g MSkgQU5EIChhID49IDE1KSkKKygyMyByb3dzKQorCitleHBsYWluIChjb3N0cyBvZmYpIHNl bGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPSAxIGFuZCBhID0gMzsJLyogZW1wdHkgKi8KKyAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFJlc3VsdAorICAgT25lLVRpbWUgRmlsdGVyOiBmYWxzZQorKDIgcm93cykKKworZXhwbGFp biAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSAoYSA9IDEgYW5kIGEgPSAz KSBvciAoYSA+IDEgYW5kIGEgPSAxNSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgQXBwZW5kCisgICAtPiAgU2VxIFNjYW4gb24gcmxwMiBybHBfMQorICAgICAgICAgRmls dGVyOiAoKChhID0gMSkgQU5EIChhID0gMykpIE9SICgoYSA+IDEpIEFORCAoYSA9IDE1KSkp CisgICAtPiAgU2VxIFNjYW4gb24gcmxwM2FiY2QgcmxwXzIKKyAgICAgICAgIEZpbHRlcjog KCgoYSA9IDEpIEFORCAoYSA9IDMpKSBPUiAoKGEgPiAxKSBBTkQgKGEgPSAxNSkpKQorICAg LT4gIFNlcSBTY2FuIG9uIHJscDNlZmdoIHJscF8zCisgICAgICAgICBGaWx0ZXI6ICgoKGEg PSAxKSBBTkQgKGEgPSAzKSkgT1IgKChhID4gMSkgQU5EIChhID0gMTUpKSkKKyAgIC0+ICBT ZXEgU2NhbiBvbiBybHAzbnVsbHh5IHJscF80CisgICAgICAgICBGaWx0ZXI6ICgoKGEgPSAx KSBBTkQgKGEgPSAzKSkgT1IgKChhID4gMSkgQU5EIChhID0gMTUpKSkKKyAgIC0+ICBTZXEg U2NhbiBvbiBybHAzX2RlZmF1bHQgcmxwXzUKKyAgICAgICAgIEZpbHRlcjogKCgoYSA9IDEp IEFORCAoYSA9IDMpKSBPUiAoKGEgPiAxKSBBTkQgKGEgPSAxNSkpKQorKDExIHJvd3MpCisK K1JFU0VUIGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbjsKIC0tIG11bHRpLWNvbHVtbiBrZXlz CiBjcmVhdGUgdGFibGUgbWMzcCAoYSBpbnQsIGIgaW50LCBjIGludCkgcGFydGl0aW9uIGJ5 IHJhbmdlIChhLCBhYnMoYiksIGMpOwogY3JlYXRlIHRhYmxlIG1jM3BfZGVmYXVsdCBwYXJ0 aXRpb24gb2YgbWMzcCBkZWZhdWx0OwpAQCAtMjA3MiwxMCArMjI2MSwxMCBAQCBleHBsYWlu IChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gaHAgd2hlcmUgYSA9IDEgYW5kIGIgPSAnYWJj ZGUnOwogCiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gaHAgd2hlcmUgYSA9 IDEgYW5kIGIgPSAnYWJjZGUnIGFuZAogICAoYyA9IDIgb3IgYyA9IDMpOwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgU2VxIFNjYW4gb24gaHAyIGhwCi0gICBG aWx0ZXI6ICgoYSA9IDEpIEFORCAoYiA9ICdhYmNkZSc6OnRleHQpIEFORCAoKGMgPSAyKSBP UiAoYyA9IDMpKSkKKyAgIEZpbHRlcjogKChjID0gQU5ZICgnezIsM30nOjppbnRlZ2VyW10p KSBBTkQgKGEgPSAxKSBBTkQgKGIgPSAnYWJjZGUnOjp0ZXh0KSkKICgyIHJvd3MpCiAKIGRy b3AgdGFibGUgaHAyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z dGF0c19leHQub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0c19leHQub3V0 CmluZGV4IDEwOTAzYmRhYjAuLjZmNTViOWUzZWMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc3RhdHNfZXh0Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3N0YXRzX2V4dC5vdXQKQEAgLTEzMjIsMTkgKzEzMjIsMTkgQEAgU0VMRUNUICog RlJPTSBjaGVja19lc3RpbWF0ZWRfcm93cygnU0VMRUNUICogRlJPTSBmdW5jdGlvbmFsX2Rl cGVuZGVuY2llcyBXSEVSRQogU0VMRUNUICogRlJPTSBjaGVja19lc3RpbWF0ZWRfcm93cygn U0VMRUNUICogRlJPTSBmdW5jdGlvbmFsX2RlcGVuZGVuY2llcyBXSEVSRSAoYSA9IDEgT1Ig YSA9IDUxKSBBTkQgYiA9ICcnMScnJyk7CiAgZXN0aW1hdGVkIHwgYWN0dWFsIAogLS0tLS0t LS0tLS0rLS0tLS0tLS0KLSAgICAgICAgOTkgfCAgICAxMDAKKyAgICAgICAxMDAgfCAgICAx MDAKICgxIHJvdykKIAogU0VMRUNUICogRlJPTSBjaGVja19lc3RpbWF0ZWRfcm93cygnU0VM RUNUICogRlJPTSBmdW5jdGlvbmFsX2RlcGVuZGVuY2llcyBXSEVSRSAoYSA9IDEgT1IgYSA9 IDUxKSBBTkQgKGIgPSAnJzEnJyBPUiBiID0gJycyJycpJyk7CiAgZXN0aW1hdGVkIHwgYWN0 dWFsIAogLS0tLS0tLS0tLS0rLS0tLS0tLS0KLSAgICAgICAgOTkgfCAgICAxMDAKKyAgICAg ICAxMDAgfCAgICAxMDAKICgxIHJvdykKIAogU0VMRUNUICogRlJPTSBjaGVja19lc3RpbWF0 ZWRfcm93cygnU0VMRUNUICogRlJPTSBmdW5jdGlvbmFsX2RlcGVuZGVuY2llcyBXSEVSRSAo YSA9IDEgT1IgYSA9IDIgT1IgYSA9IDUxIE9SIGEgPSA1MikgQU5EIChiID0gJycxJycgT1Ig YiA9ICcnMicnKScpOwogIGVzdGltYXRlZCB8IGFjdHVhbCAKIC0tLS0tLS0tLS0tKy0tLS0t LS0tCi0gICAgICAgMTk3IHwgICAgMjAwCisgICAgICAgMjAwIHwgICAgMjAwCiAoMSByb3cp CiAKIC0tIE9SIGNsYXVzZXMgcmVmZXJlbmNpbmcgZGlmZmVyZW50IGF0dHJpYnV0ZXMgYXJl IGluY29tcGF0aWJsZQpAQCAtMTY2NCwxOSArMTY2NCwxOSBAQCBTRUxFQ1QgKiBGUk9NIGNo ZWNrX2VzdGltYXRlZF9yb3dzKCdTRUxFQ1QgKiBGUk9NIGZ1bmN0aW9uYWxfZGVwZW5kZW5j aWVzIFdIRVJFCiBTRUxFQ1QgKiBGUk9NIGNoZWNrX2VzdGltYXRlZF9yb3dzKCdTRUxFQ1Qg KiBGUk9NIGZ1bmN0aW9uYWxfZGVwZW5kZW5jaWVzIFdIRVJFICgoYSAqIDIpID0gMiBPUiAo YSAqIDIpID0gMTAyKSBBTkQgdXBwZXIoYikgPSAnJzEnJycpOwogIGVzdGltYXRlZCB8IGFj dHVhbCAKIC0tLS0tLS0tLS0tKy0tLS0tLS0tCi0gICAgICAgIDk5IHwgICAgMTAwCisgICAg ICAgMTAwIHwgICAgMTAwCiAoMSByb3cpCiAKIFNFTEVDVCAqIEZST00gY2hlY2tfZXN0aW1h dGVkX3Jvd3MoJ1NFTEVDVCAqIEZST00gZnVuY3Rpb25hbF9kZXBlbmRlbmNpZXMgV0hFUkUg KChhICogMikgPSAyIE9SIChhICogMikgPSAxMDIpIEFORCAodXBwZXIoYikgPSAnJzEnJyBP UiB1cHBlcihiKSA9ICcnMicnKScpOwogIGVzdGltYXRlZCB8IGFjdHVhbCAKIC0tLS0tLS0t LS0tKy0tLS0tLS0tCi0gICAgICAgIDk5IHwgICAgMTAwCisgICAgICAgMTAwIHwgICAgMTAw CiAoMSByb3cpCiAKIFNFTEVDVCAqIEZST00gY2hlY2tfZXN0aW1hdGVkX3Jvd3MoJ1NFTEVD VCAqIEZST00gZnVuY3Rpb25hbF9kZXBlbmRlbmNpZXMgV0hFUkUgKChhICogMikgPSAyIE9S IChhICogMikgPSA0IE9SIChhICogMikgPSAxMDIgT1IgKGEgKiAyKSA9IDEwNCkgQU5EICh1 cHBlcihiKSA9ICcnMScnIE9SIHVwcGVyKGIpID0gJycyJycpJyk7CiAgZXN0aW1hdGVkIHwg YWN0dWFsIAogLS0tLS0tLS0tLS0rLS0tLS0tLS0KLSAgICAgICAxOTcgfCAgICAyMDAKKyAg ICAgICAyMDAgfCAgICAyMDAKICgxIHJvdykKIAogLS0gT1IgY2xhdXNlcyByZWZlcmVuY2lu ZyBkaWZmZXJlbnQgYXR0cmlidXRlcwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zeXN2aWV3cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N5c3Zp ZXdzLm91dAppbmRleCA5YmU3YWNhMmI4Li4xZjkwMjliNWIyIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N5c3ZpZXdzLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3N5c3ZpZXdzLm91dApAQCAtMTI0LDYgKzEyNCw3IEBAIHNlbGVjdCBu YW1lLCBzZXR0aW5nIGZyb20gcGdfc2V0dGluZ3Mgd2hlcmUgbmFtZSBsaWtlICdlbmFibGUl JzsKICBlbmFibGVfbWVtb2l6ZSAgICAgICAgICAgICAgICAgfCBvbgogIGVuYWJsZV9tZXJn ZWpvaW4gICAgICAgICAgICAgICB8IG9uCiAgZW5hYmxlX25lc3Rsb29wICAgICAgICAgICAg ICAgIHwgb24KKyBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24gICAgICAgfCBvbgogIGVuYWJs ZV9wYXJhbGxlbF9hcHBlbmQgICAgICAgICB8IG9uCiAgZW5hYmxlX3BhcmFsbGVsX2hhc2gg ICAgICAgICAgIHwgb24KICBlbmFibGVfcGFydGl0aW9uX3BydW5pbmcgICAgICAgfCBvbgpA QCAtMTM0LDcgKzEzNSw3IEBAIHNlbGVjdCBuYW1lLCBzZXR0aW5nIGZyb20gcGdfc2V0dGlu Z3Mgd2hlcmUgbmFtZSBsaWtlICdlbmFibGUlJzsKICBlbmFibGVfc2Vxc2NhbiAgICAgICAg ICAgICAgICAgfCBvbgogIGVuYWJsZV9zb3J0ICAgICAgICAgICAgICAgICAgICB8IG9uCiAg ZW5hYmxlX3RpZHNjYW4gICAgICAgICAgICAgICAgIHwgb24KLSgyMyByb3dzKQorKDI0IHJv d3MpCiAKIC0tIFRoZXJlIGFyZSBhbHdheXMgd2FpdCBldmVudCBkZXNjcmlwdGlvbnMgZm9y IHZhcmlvdXMgdHlwZXMuCiBzZWxlY3QgdHlwZSwgY291bnQoKikgPiAwIGFzIG9rIEZST00g cGdfd2FpdF9ldmVudHMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv dGlkc2Nhbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RpZHNjYW4ub3V0Cmlu ZGV4IGYxMzNiNWE0YWMuLjQ3ODJjYjNlMDYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvdGlkc2Nhbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC90aWRzY2FuLm91dApAQCAtNDYsNyArNDYsNyBAQCBTRUxFQ1QgY3RpZCwgKiBGUk9NIHRp ZHNjYW4gV0hFUkUgY3RpZCA9ICcoMCwyKScgT1IgJygwLDEpJyA9IGN0aWQ7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg IAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICBUaWQgU2NhbiBvbiB0aWRzY2FuCi0gICBUSUQgQ29uZDogKChjdGlk ID0gJygwLDIpJzo6dGlkKSBPUiAoJygwLDEpJzo6dGlkID0gY3RpZCkpCisgICBUSUQgQ29u ZDogKGN0aWQgPSBBTlkgKEFSUkFZWycoMCwyKSc6OnRpZCwgJygwLDEpJzo6dGlkXSkpCiAo MiByb3dzKQogCiBTRUxFQ1QgY3RpZCwgKiBGUk9NIHRpZHNjYW4gV0hFUkUgY3RpZCA9ICco MCwyKScgT1IgJygwLDEpJyA9IGN0aWQ7CkBAIC01Niw2ICs1NiwyMyBAQCBTRUxFQ1QgY3Rp ZCwgKiBGUk9NIHRpZHNjYW4gV0hFUkUgY3RpZCA9ICcoMCwyKScgT1IgJygwLDEpJyA9IGN0 aWQ7CiAgKDAsMikgfCAgMgogKDIgcm93cykKIAorU0VUIGVuYWJsZV9vcl90cmFuc2Zvcm1h dGlvbiA9IG9uOworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGN0aWQsICogRlJPTSB0 aWRzY2FuIFdIRVJFIGN0aWQgPSAnKDAsMiknIE9SICcoMCwxKScgPSBjdGlkOworICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgVGlkIFNjYW4gb24gdGlkc2NhbgorICAgVElEIENvbmQ6IChjdGlk ID0gQU5ZIChBUlJBWVsnKDAsMiknOjp0aWQsICcoMCwxKSc6OnRpZF0pKQorKDIgcm93cykK KworU0VMRUNUIGN0aWQsICogRlJPTSB0aWRzY2FuIFdIRVJFIGN0aWQgPSAnKDAsMiknIE9S ICcoMCwxKScgPSBjdGlkOworIGN0aWQgIHwgaWQgCistLS0tLS0tKy0tLS0KKyAoMCwxKSB8 ICAxCisgKDAsMikgfCAgMgorKDIgcm93cykKKworUkVTRVQgZW5hYmxlX29yX3RyYW5zZm9y bWF0aW9uOwogLS0gY3RpZCA9IFNjYWxhckFycmF5T3AgLSBpbXBsZW1lbnRlZCBhcyB0aWRz Y2FuCiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgY3RpZCwgKiBGUk9NIHRpZHNjYW4g V0hFUkUgY3RpZCA9IEFOWShBUlJBWVsnKDAsMSknLCAnKDAsMiknXTo6dGlkW10pOwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2luZGV4LnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9pbmRleC5zcWwKaW5kZXggZDQ5Y2U5ZjMwMC4uNTZm ZGUxNWJjMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2luZGV4 LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfaW5kZXguc3FsCkBAIC03 MzcsNiArNzM3LDQxIEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCiBTRUxFQ1QgY291 bnQoKikgRlJPTSB0ZW5rMQogICBXSEVSRSBodW5kcmVkID0gNDIgQU5EICh0aG91c2FuZCA9 IDQyIE9SIHRob3VzYW5kID0gOTkpOwogCitTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9u ID0gb247CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgKiBGUk9NIHRlbmsxCisgIFdI RVJFIHRob3VzYW5kID0gNDIgQU5EICh0ZW50aG91cyA9IDEgT1IgdGVudGhvdXMgPSAzIE9S IHRlbnRob3VzID0gNDIpOworU0VMRUNUICogRlJPTSB0ZW5rMQorICBXSEVSRSB0aG91c2Fu ZCA9IDQyIEFORCAodGVudGhvdXMgPSAxIE9SIHRlbnRob3VzID0gMyBPUiB0ZW50aG91cyA9 IDQyKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIEZST00gdGVu azEKKyAgV0hFUkUgaHVuZHJlZCA9IDQyIEFORCAodGhvdXNhbmQgPSA0MiBPUiB0aG91c2Fu ZCA9IDk5KTsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCisgIFdIRVJFIGh1bmRyZWQg PSA0MiBBTkQgKHRob3VzYW5kID0gNDIgT1IgdGhvdXNhbmQgPSA5OSk7CitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQorICBXSEVSRSBodW5kcmVk ID0gNDIgQU5EICh0aG91c2FuZCA8IDQyIE9SIHRob3VzYW5kIDwgOTkgT1IgNDMgPiB0aG91 c2FuZCBPUiA0MiA+IHRob3VzYW5kKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNU IGNvdW50KCopIEZST00gdGVuazEKKyAgV0hFUkUgdGhvdXNhbmQgPSA0MiBBTkQgKHRlbnRo b3VzID0gMSBPUiB0ZW50aG91cyA9IDMpIE9SIHRob3VzYW5kID0gNDE7CitTRUxFQ1QgY291 bnQoKikgRlJPTSB0ZW5rMQorICBXSEVSRSB0aG91c2FuZCA9IDQyIEFORCAodGVudGhvdXMg PSAxIE9SIHRlbnRob3VzID0gMykgT1IgdGhvdXNhbmQgPSA0MTsKKworRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIEZST00gdGVuazEKKyAgV0hFUkUgaHVuZHJlZCA9 IDQyIEFORCAodGhvdXNhbmQgPSA0MiBPUiB0aG91c2FuZCA9IDk5IE9SIHRlbnRob3VzIDwg MikgT1IgdGhvdXNhbmQgPSA0MTsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCisgIFdI RVJFIGh1bmRyZWQgPSA0MiBBTkQgKHRob3VzYW5kID0gNDIgT1IgdGhvdXNhbmQgPSA5OSBP UiB0ZW50aG91cyA8IDIpIE9SIHRob3VzYW5kID0gNDE7CisKK0VYUExBSU4gKENPU1RTIE9G RikKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCisgIFdIRVJFIGh1bmRyZWQgPSA0MiBB TkQgKHRob3VzYW5kID0gNDIgT1IgdGhvdXNhbmQgPSA0MSBPUiB0aG91c2FuZCA9IDk5IEFO RCB0ZW50aG91cyA9IDIpOworU0VMRUNUIGNvdW50KCopIEZST00gdGVuazEKKyAgV0hFUkUg aHVuZHJlZCA9IDQyIEFORCAodGhvdXNhbmQgPSA0MiBPUiB0aG91c2FuZCA9IDQxIE9SIHRo b3VzYW5kID0gOTkgQU5EIHRlbnRob3VzID0gMik7CitSRVNFVCBlbmFibGVfb3JfdHJhbnNm b3JtYXRpb247CisKIC0tCiAtLSBDaGVjayBiZWhhdmlvciB3aXRoIGR1cGxpY2F0ZSBpbmRl eCBjb2x1bW4gY29udGVudHMKIC0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9qb2luLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pvaW4uc3FsCmluZGV4IGM0YzZj N2I4YmEuLjE2NjM2MDgwNDMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pv aW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pvaW4uc3FsCkBAIC0xNDA4LDYg KzE0MDgsMTYgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKQogc2VsZWN0ICogZnJvbSB0ZW5rMSBh IGpvaW4gdGVuazEgYiBvbgogICAoYS51bmlxdWUxID0gMSBhbmQgYi51bmlxdWUxID0gMikg b3IKICAgKChhLnVuaXF1ZTIgPSAzIG9yIGEudW5pcXVlMiA9IDcpIGFuZCBiLmh1bmRyZWQg PSA0KTsKK1NFVCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24gPSBvbjsKK2V4cGxhaW4gKGNv c3RzIG9mZikKK3NlbGVjdCAqIGZyb20gdGVuazEgYSBqb2luIHRlbmsxIGIgb24KKyAgKGEu dW5pcXVlMSA9IDEgYW5kIGIudW5pcXVlMSA9IDIpIG9yCisgICgoYS51bmlxdWUyID0gMyBv ciBhLnVuaXF1ZTIgPSA3KSBhbmQgYi5odW5kcmVkID0gNCk7CitleHBsYWluIChjb3N0cyBv ZmYpCitzZWxlY3QgKiBmcm9tIHRlbmsxIGEgam9pbiB0ZW5rMSBiIG9uCisgIChhLnVuaXF1 ZTEgPCAyMCBvciBhLnVuaXF1ZTEgPSAzIG9yIGEudW5pcXVlMSA9IDEgYW5kIGIudW5pcXVl MSA9IDIpIG9yCisgICgoYS51bmlxdWUyID0gMyBvciBhLnVuaXF1ZTIgPSA3KSBhbmQgYi5o dW5kcmVkID0gNCk7CitSRVNFVCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb247CiAKIC0tCiAt LSB0ZXN0IHBsYWNlbWVudCBvZiBtb3ZhYmxlIHF1YWxzIGluIGEgcGFyYW1ldGVyaXplZCBq b2luIHRyZWUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9w cnVuZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25fcHJ1bmUuc3FsCmlu ZGV4IGEwOWIyN2Q4MjAuLjk3MTdjOGM4MzUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3BhcnRpdGlvbl9wcnVuZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cGFydGl0aW9uX3BydW5lLnNxbApAQCAtMjEsNiArMjEsMTIgQEAgZXhwbGFpbiAoY29zdHMg b2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgaXMgbm90IG51bGw7CiBleHBsYWluIChj b3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbHAgd2hlcmUgYSBpcyBudWxsOwogZXhwbGFpbiAo Y29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgPSAnYScgb3IgYSA9ICdjJzsK IGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIGlzIG5vdCBu dWxsIGFuZCAoYSA9ICdhJyBvciBhID0gJ2MnKTsKKworU0VUIGVuYWJsZV9vcl90cmFuc2Zv cm1hdGlvbiA9IG9uOworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdo ZXJlIGEgPSAnYScgb3IgYSA9ICdjJzsKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICog ZnJvbSBscCB3aGVyZSBhIGlzIG5vdCBudWxsIGFuZCAoYSA9ICdhJyBvciBhID0gJ2MnKTsK K1JFU0VUIGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbjsKKwogZXhwbGFpbiAoY29zdHMgb2Zm KSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgPD4gJ2cnOwogZXhwbGFpbiAoY29zdHMgb2Zm KSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgPD4gJ2EnIGFuZCBhIDw+ICdkJzsKIGV4cGxh aW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIG5vdCBpbiAoJ2EnLCAn ZCcpOwpAQCAtOTksNiArMTA1LDIyIEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICog ZnJvbSBybHAgd2hlcmUgYSA+IDEgYW5kIGEgPj0xNTsJLyogcmxwMyBvbndhcmRzLCBpCiBl eHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPSAxIGFuZCBh ID0gMzsJLyogZW1wdHkgKi8KIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBy bHAgd2hlcmUgKGEgPSAxIGFuZCBhID0gMykgb3IgKGEgPiAxIGFuZCBhID0gMTUpOwogCisK K1NFVCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24gPSBvbjsKK2V4cGxhaW4gKGNvc3RzIG9m Zikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA9IDEgb3IgYSA9IDc7CitleHBsYWluIChj b3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPSAxIG9yIGIgPSAnYWInOwor ZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhID4gMjAgYW5k IGEgPCAyNzsKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUg YSA9IDI5OworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBh ID49IDI5OworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBh IDwgMSBvciAoYSA+IDIwIGFuZCBhIDwgMjUpOworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxl Y3QgKiBmcm9tIHJscCB3aGVyZSBhID0gMjAgb3IgYSA9IDQwOworZXhwbGFpbiAoY29zdHMg b2ZmKSBzZWxlY3QgKiBmcm9tIHJscDMgd2hlcmUgYSA9IDIwOyAgIC8qIGVtcHR5ICovCitl eHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPiAxIGFuZCBh ID0gMTA7CS8qIG9ubHkgZGVmYXVsdCAqLworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3Qg KiBmcm9tIHJscCB3aGVyZSBhID4gMSBhbmQgYSA+PTE1OwkvKiBybHAzIG9ud2FyZHMsIGlu Y2x1ZGluZyBkZWZhdWx0ICovCitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20g cmxwIHdoZXJlIGEgPSAxIGFuZCBhID0gMzsJLyogZW1wdHkgKi8KK2V4cGxhaW4gKGNvc3Rz IG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgKGEgPSAxIGFuZCBhID0gMykgb3IgKGEg PiAxIGFuZCBhID0gMTUpOworUkVTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uOworCiAt LSBtdWx0aS1jb2x1bW4ga2V5cwogY3JlYXRlIHRhYmxlIG1jM3AgKGEgaW50LCBiIGludCwg YyBpbnQpIHBhcnRpdGlvbiBieSByYW5nZSAoYSwgYWJzKGIpLCBjKTsKIGNyZWF0ZSB0YWJs ZSBtYzNwX2RlZmF1bHQgcGFydGl0aW9uIG9mIG1jM3AgZGVmYXVsdDsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RpZHNjYW4uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvdGlkc2Nhbi5zcWwKaW5kZXggMzEzZTBmYjliNi4uMDQ5OWJlZGI5ZSAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdGlkc2Nhbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvdGlkc2Nhbi5zcWwKQEAgLTIyLDYgKzIyLDEyIEBAIEVYUExBSU4gKENPU1RT IE9GRikKIFNFTEVDVCBjdGlkLCAqIEZST00gdGlkc2NhbiBXSEVSRSBjdGlkID0gJygwLDIp JyBPUiAnKDAsMSknID0gY3RpZDsKIFNFTEVDVCBjdGlkLCAqIEZST00gdGlkc2NhbiBXSEVS RSBjdGlkID0gJygwLDIpJyBPUiAnKDAsMSknID0gY3RpZDsKIAorU0VUIGVuYWJsZV9vcl90 cmFuc2Zvcm1hdGlvbiA9IG9uOworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGN0aWQs ICogRlJPTSB0aWRzY2FuIFdIRVJFIGN0aWQgPSAnKDAsMiknIE9SICcoMCwxKScgPSBjdGlk OworU0VMRUNUIGN0aWQsICogRlJPTSB0aWRzY2FuIFdIRVJFIGN0aWQgPSAnKDAsMiknIE9S ICcoMCwxKScgPSBjdGlkOworUkVTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uOworCiAt LSBjdGlkID0gU2NhbGFyQXJyYXlPcCAtIGltcGxlbWVudGVkIGFzIHRpZHNjYW4KIEVYUExB SU4gKENPU1RTIE9GRikKIFNFTEVDVCBjdGlkLCAqIEZST00gdGlkc2NhbiBXSEVSRSBjdGlk ID0gQU5ZKEFSUkFZWycoMCwxKScsICcoMCwyKSddOjp0aWRbXSk7CmRpZmYgLS1naXQgYS9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90 eXBlZGVmcy5saXN0CmluZGV4IGFhN2EyNWI4ZjguLmM2MDI3YzU4OGQgMTAwNjQ0Ci0tLSBh L3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CkBAIC0xNjU3LDYgKzE2NTcsOCBAQCBOdW1lcmljVmFyCiBP TV91aW50MzIKIE9QCiBPU0FQZXJHcm91cFN0YXRlCitPckNsYXVzZUdyb3VwRW50cnkKK09y Q2xhdXNlR3JvdXBLZXkKIE9TQVBlclF1ZXJ5U3RhdGUKIE9TSW5mbwogT1NTTENpcGhlcgot LSAKMi40NC4wCgo= --------------ot4UMvF7us6Ssw3ZcD2JHooW--