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 1rkzkv-00GvKi-GZ for pgsql-hackers@arkaria.postgresql.org; Fri, 15 Mar 2024 05:05:23 +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 1rkzks-005vy7-4P for pgsql-hackers@arkaria.postgresql.org; Fri, 15 Mar 2024 05:05:18 +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 1rkzkr-005vvA-9z for pgsql-hackers@lists.postgresql.org; Fri, 15 Mar 2024 05:05:18 +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 1rkzkk-004a83-EK for pgsql-hackers@postgresql.org; Fri, 15 Mar 2024 05:05:16 +0000 Received: from [172.30.8.38] (unknown [172.30.8.38]) (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 B7D61E20E58; Fri, 15 Mar 2024 08:05:04 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1710479107; bh=A6z10lKFy6gLqY5Hn7RjxUHnS9w+gnVEi+uzAv81T8Q=; h=Message-ID:Date:User-Agent:Subject:To:Cc:References:From: In-Reply-To:From; b=QyEtf1wgjxVBjX6pFVCqM+l9BJLM9Gu3dnXAIvGpSYmdxbM9Pg/8S7lUnzzbxBzRr noOCd8mN4v+E3Gr1tmttHKg5Idetng8OPJaIs7lKwUyXkqZFdiChHCkQvVY7GAwCgg 8ZleWx/LksHUzkoSJqiCIUp0K57qakRgY/nQUP5eiAdpZN8O3FzNY9lUb7ZNMfJ4HQ fdcy4KTAMlTL+IyEbMBeHd0PXjlcW2gxQYesreUxOvAWtuj8oAZ5+m0TVguLvG5e8B Cqzceogc5Q+x1EM1CSgBGd1qBAcAAVFWsdF3dRJ/aHXyHxYqCMOQHaAnpX3U9VtdkP KYI8e1rKrsrjA== Content-Type: multipart/mixed; boundary="------------K7tUxcMVmeZ760HeehjMUO6F" Message-ID: Date: Fri, 15 Mar 2024 12:05:02 +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> <380e5683-cdfd-4220-ab9b-7cccb9d3e480@postgrespro.ru> <7389d0dd-05d5-41b7-a12d-2e73f939f851@postgrespro.ru> <74e3c8bc-dccd-45e5-ad2d-6a6e96fc5864@postgrespro.ru> <67bd918d-285e-44d2-a207-f52d9a4c35e6@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. --------------K7tUxcMVmeZ760HeehjMUO6F Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 14/3/2024 17:39, Alexander Korotkov wrote: > Thank you, Andrei. Looks like a very undesirable side effect. Do you > have any idea why it happens? Partition pruning should work correctly > for both transformed and non-transformed quals, why does > transformation hurt it? Now we have the v23-0001-* patch with all issues resolved. The last one which caused execution stage pruning was about necessity to evaluate SAOP expression right after transformation. In previous version the core executed it on transformed expressions. > As you can see this case is not related to partial indexes. Just no > index selective for the whole query. However, splitting scan by the > OR qual lets use a combination of two selective indexes. Thanks for the case. I will try to resolve it. -- regards, Andrei Lepikhov Postgres Professional --------------K7tUxcMVmeZ760HeehjMUO6F Content-Type: text/plain; charset=UTF-8; name="v23-0001-Transform-OR-clauses-to-ANY-expression.patch" Content-Disposition: attachment; filename="v23-0001-Transform-OR-clauses-to-ANY-expression.patch" Content-Transfer-Encoding: base64 RnJvbSAxNTZjMDBjODIwYTM4ZTVlMTg1NmYwNzM2M2FmODdiMzEwOWI1ZDc3IE1vbiBTZXAg 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 a2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwcXVhbC5jICAgICAgICAgfCAzNzQgKysrKysrKysr KysrKysrKystCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAg ICAgfCAgMTEgKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2Ft cGxlIHwgICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL3F1ZXJ5anVtYmxlLmggICAgICAgICAg ICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9vcHRpbWl6ZXIvb3B0aW1pemVyLmggICAgICAg ICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfaW5kZXgu b3V0ICAgIHwgMTU2ICsrKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4u b3V0ICAgICAgICAgICAgfCAgNjIgKystCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Bh cnRpdGlvbl9wcnVuZS5vdXQgfCAyMTUgKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zdGF0c19leHQub3V0ICAgICAgIHwgIDEyICstCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3N5c3ZpZXdzLm91dCAgICAgICAgfCAgIDMgKy0KIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvdGlkc2Nhbi5vdXQgICAgICAgICB8ICAyMyArLQogc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY3JlYXRlX2luZGV4LnNxbCAgICAgICAgIHwgIDM1ICsrCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9qb2luLnNxbCAgICAgICAgICAgICAgICAgfCAgMTAgKwogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcGFydGl0aW9uX3BydW5lLnNxbCAgICAgIHwgIDIyICsrCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC90aWRzY2FuLnNxbCAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICAyICsKIDE5IGZp bGVzIGNoYW5nZWQsIDkyOSBpbnNlcnRpb25zKCspLCA1OCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0 IGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAppbmRl eCA1OGE2MDNhYzU2Li5hOTY1YjQzY2M2IDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVz X2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CisrKyBiL2NvbnRyaWIvcG9zdGdyZXNf ZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKQEAgLTg4MzgsMTggKzg4MzgsMTggQEAg aW5zZXJ0IGludG8gdXRydGVzdCB2YWx1ZXMgKDIsICdxdXgnKTsKIC0tIENoZWNrIGNhc2Ug d2hlcmUgdGhlIGZvcmVpZ24gcGFydGl0aW9uIGlzIGEgc3VicGxhbiB0YXJnZXQgcmVsCiBl eHBsYWluICh2ZXJib3NlLCBjb3N0cyBvZmYpCiB1cGRhdGUgdXRydGVzdCBzZXQgYSA9IDEg d2hlcmUgYSA9IDEgb3IgYSA9IDIgcmV0dXJuaW5nICo7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBVcGRhdGUgb24gcHVibGljLnV0cnRl c3QKICAgIE91dHB1dDogdXRydGVzdF8xLmEsIHV0cnRlc3RfMS5iCiAgICBGb3JlaWduIFVw ZGF0ZSBvbiBwdWJsaWMucmVtcCB1dHJ0ZXN0XzEKICAgIFVwZGF0ZSBvbiBwdWJsaWMubG9j cCB1dHJ0ZXN0XzIKICAgIC0+ICBBcHBlbmQKICAgICAgICAgIC0+ICBGb3JlaWduIFVwZGF0 ZSBvbiBwdWJsaWMucmVtcCB1dHJ0ZXN0XzEKLSAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6 IFVQREFURSBwdWJsaWMubG9jdCBTRVQgYSA9IDEgV0hFUkUgKCgoYSA9IDEpIE9SIChhID0g MikpKSBSRVRVUk5JTkcgYSwgYgorICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogVVBEQVRF IHB1YmxpYy5sb2N0IFNFVCBhID0gMSBXSEVSRSAoKGEgPSBBTlkgKCd7MSwyfSc6OmludGVn ZXJbXSkpKSBSRVRVUk5JTkcgYSwgYgogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHB1Ymxp Yy5sb2NwIHV0cnRlc3RfMgogICAgICAgICAgICAgICAgT3V0cHV0OiAxLCB1dHJ0ZXN0XzIu dGFibGVvaWQsIHV0cnRlc3RfMi5jdGlkLCBOVUxMOjpyZWNvcmQKLSAgICAgICAgICAgICAg IEZpbHRlcjogKCh1dHJ0ZXN0XzIuYSA9IDEpIE9SICh1dHJ0ZXN0XzIuYSA9IDIpKQorICAg ICAgICAgICAgICAgRmlsdGVyOiAodXRydGVzdF8yLmEgPSBBTlkgKCd7MSwyfSc6OmludGVn ZXJbXSkpCiAoMTAgcm93cykKIAogLS0gVGhlIG5ldyB2YWx1ZXMgYXJlIGNvbmNhdGVuYXRl ZCB3aXRoICcgdHJpZ2dlcmVkICEnCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmln LnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggNjVhNmU2YzQwOC4uMmRl NmFlMzAxYSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtNTQ3Miw2ICs1NDcyLDIzIEBAIEFOWSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtX3N5bmM8L3JlcGxhY2VhYmxlPiAoIDxy ZXBsYWNlYWJsZSBjbGFzcz0iCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3Rl bnRyeT4KIAorICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtZW5hYmxlLW9yLXRyYW5zZm9y bWF0aW9uIiB4cmVmbGFiZWw9ImVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbiI+CisgICAgICA8 dGVybT48dmFybmFtZT5lbmFibGVfb3JfdHJhbnNmb3JtYXRpb248L3Zhcm5hbWU+ICg8dHlw ZT5ib29sZWFuPC90eXBlPikKKyAgICAgICA8aW5kZXh0ZXJtPgorICAgICAgICA8cHJpbWFy eT48dmFybmFtZT5lbmFibGVfb3JfdHJhbnNmb3JtYXRpb248L3Zhcm5hbWU+IGNvbmZpZ3Vy YXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAg PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBFbmFi bGVzIG9yIGRpc2FibGVzIHRoZSBxdWVyeSBwbGFubmVyJ3MgYWJpbGl0eSB0byBsb29rdXAg YW5kIGdyb3VwIG11bHRpcGxlCisgICAgICAgIHNpbWlsYXIgT1IgZXhwcmVzc2lvbnMgdG8g QU5ZICg8eHJlZiBsaW5rZW5kPSJmdW5jdGlvbnMtY29tcGFyaXNvbnMtYW55LXNvbWUiLz4p IGV4cHJlc3Npb25zLgorICAgICAgICBUaGUgZ3JvdXBpbmcgdGVjaG5pcXVlIG9mIHRoaXMg dHJhbnNmb3JtYXRpb24gaXMgYmFzZWQgb24gdGhlIGVxdWl2YWxlbmNlIG9mIHZhcmlhYmxl IHNpZGVzLgorICAgICAgICBPbmUgc2lkZSBvZiBzdWNoIGFuIGV4cHJlc3Npb24gbXVzdCBi ZSBhIGNvbnN0YW50IGNsYXVzZSwgYW5kIHRoZSBvdGhlciBtdXN0IGNvbnRhaW4gYSB2YXJp YWJsZSBjbGF1c2UuCisgICAgICAgIFRoZSBkZWZhdWx0IGlzIDxsaXRlcmFsPm9uPC9saXRl cmFsPi4KKyAgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJs aXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3VjLWVuYWJsZS1wYXJhbGxl bC1hcHBlbmQiIHhyZWZsYWJlbD0iZW5hYmxlX3BhcmFsbGVsX2FwcGVuZCI+CiAgICAgICA8 dGVybT48dmFybmFtZT5lbmFibGVfcGFyYWxsZWxfYXBwZW5kPC92YXJuYW1lPiAoPHR5cGU+ Ym9vbGVhbjwvdHlwZT4pCiAgICAgICA8aW5kZXh0ZXJtPgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvbm9kZXMvcXVlcnlqdW1ibGVmdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvcXVl cnlqdW1ibGVmdW5jcy5jCmluZGV4IDJjMTE2Yzg3MjguLjBjNWI0YTAxMWIgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL25vZGVzL3F1ZXJ5anVtYmxlZnVuY3MuYworKysgYi9zcmMvYmFj a2VuZC9ub2Rlcy9xdWVyeWp1bWJsZWZ1bmNzLmMKQEAgLTE0MSw2ICsxNDEsMzMgQEAgSnVt YmxlUXVlcnkoUXVlcnkgKnF1ZXJ5KQogCXJldHVybiBqc3RhdGU7CiB9CiAKK0p1bWJsZVN0 YXRlICoKK0p1bWJsZUV4cHIoRXhwciAqZXhwciwgdWludDY0ICpxdWVyeUlkKQoreworCUp1 bWJsZVN0YXRlICpqc3RhdGUgPSBOVUxMOworCisJQXNzZXJ0KHF1ZXJ5SWQgIT0gTlVMTCk7 CisKKwlqc3RhdGUgPSAoSnVtYmxlU3RhdGUgKikgcGFsbG9jKHNpemVvZihKdW1ibGVTdGF0 ZSkpOworCisJLyogU2V0IHVwIHdvcmtzcGFjZSBmb3IgcXVlcnkganVtYmxpbmcgKi8KKwlq c3RhdGUtPmp1bWJsZSA9ICh1bnNpZ25lZCBjaGFyICopIHBhbGxvYyhKVU1CTEVfU0laRSk7 CisJanN0YXRlLT5qdW1ibGVfbGVuID0gMDsKKwlqc3RhdGUtPmNsb2NhdGlvbnNfYnVmX3Np emUgPSAzMjsKKwlqc3RhdGUtPmNsb2NhdGlvbnMgPSAoTG9jYXRpb25MZW4gKikKKwkJcGFs bG9jKGpzdGF0ZS0+Y2xvY2F0aW9uc19idWZfc2l6ZSAqIHNpemVvZihMb2NhdGlvbkxlbikp OworCWpzdGF0ZS0+Y2xvY2F0aW9uc19jb3VudCA9IDA7CisJanN0YXRlLT5oaWdoZXN0X2V4 dGVybl9wYXJhbV9pZCA9IDA7CisKKwkvKiBDb21wdXRlIHF1ZXJ5IElEICovCisJX2p1bWJs ZU5vZGUoanN0YXRlLCAoTm9kZSAqKSBleHByKTsKKwkqcXVlcnlJZCA9IERhdHVtR2V0VUlu dDY0KGhhc2hfYW55X2V4dGVuZGVkKGpzdGF0ZS0+anVtYmxlLAorCQkJCQkJCQkJCQkJanN0 YXRlLT5qdW1ibGVfbGVuLAorCQkJCQkJCQkJCQkJMCkpOworCisJcmV0dXJuIGpzdGF0ZTsK K30KKwogLyoKICAqIEVuYWJsZXMgcXVlcnkgaWRlbnRpZmllciBjb21wdXRhdGlvbi4KICAq CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwcXVhbC5jIGIv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcHF1YWwuYwppbmRleCBjYmNmODNmODQ3 Li5hMTI3ZGFmZWM3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9w cmVwcXVhbC5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBxdWFsLmMK QEAgLTMxLDE2ICszMSwyNSBAQAogCiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAorI2luY2x1 ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGVyYXRv ci5oIgorI2luY2x1ZGUgImNvbW1vbi9oYXNoZm4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtl ZnVuY3MuaCIKICNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKKyNpbmNsdWRlICJub2Rl cy9xdWVyeWp1bWJsZS5oIgogI2luY2x1ZGUgIm9wdGltaXplci9vcHRpbWl6ZXIuaCIKKyNp bmNsdWRlICJwYXJzZXIvcGFyc2VfY29lcmNlLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNl X29wZXIuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGls cy9zeXNjYWNoZS5oIgogCitib29sCQllbmFibGVfb3JfdHJhbnNmb3JtYXRpb24gPSB0cnVl OwogCiBzdGF0aWMgTGlzdCAqcHVsbF9hbmRzKExpc3QgKmFuZGxpc3QpOwogc3RhdGljIExp c3QgKnB1bGxfb3JzKExpc3QgKm9ybGlzdCk7CiBzdGF0aWMgRXhwciAqZmluZF9kdXBsaWNh dGVfb3JzKEV4cHIgKnF1YWwsIGJvb2wgaXNfY2hlY2spOwogc3RhdGljIEV4cHIgKnByb2Nl c3NfZHVwbGljYXRlX29ycyhMaXN0ICpvcmxpc3QpOworc3RhdGljIExpc3QgKm9yX3RyYW5z Zm9ybWF0aW9uKExpc3QgKm9ybGlzdCk7CiAKIAogLyoKQEAgLTI2Niw2ICsyNzUsMzU3IEBA IG5lZ2F0ZV9jbGF1c2UoTm9kZSAqbm9kZSkKIAlyZXR1cm4gKE5vZGUgKikgbWFrZV9ub3Rj bGF1c2UoKEV4cHIgKikgbm9kZSk7CiB9CiAKK3R5cGVkZWYgc3RydWN0IE9yQ2xhdXNlR3Jv dXBLZXkKK3sKKwlOb2RlVGFnCXR5cGU7CisKKwlFeHByICAgKmV4cHI7IC8qIFBvaW50ZXIg dG8gdGhlIGV4cHJlc3Npb24gdHJlZSB3aGljaCBoYXMgYmVlbiBhIHNvdXJjZSBmb3IKKwkJ CQkJdGhlIGhhc2hrZXkgdmFsdWUgKi8KKwlPaWQJCW9wbm87CisJT2lkCQljb25zdHR5cGU7 CisJT2lkCQlpbnB1dGNvbGxpZDsgLyogWFhYOiBDb3VsZCB3ZSBsb29rdXAgZm9yIGNvbW1v biBjb2xsYXRpb24/ICovCit9IE9yQ2xhdXNlR3JvdXBLZXk7CisKK3R5cGVkZWYgc3RydWN0 IE9yQ2xhdXNlR3JvdXBFbnRyeQoreworCU9yQ2xhdXNlR3JvdXBLZXkJa2V5OworCisJTGlz dAkJCSAgICpjb25zdHM7CisJTGlzdCAJCQkgICAqZXhwcnM7Cit9IE9yQ2xhdXNlR3JvdXBF bnRyeTsKKworLyoKKyAqIEhhc2ggZnVuY3Rpb24gdG8gZmluZCBjYW5kaWRhdGUgY2xhdXNl cy4KKyAqLworc3RhdGljIHVpbnQzMgorb3JjbGF1c2VfaGFzaChjb25zdCB2b2lkICpkYXRh LCBTaXplIGtleXNpemUpCit7CisJT3JDbGF1c2VHcm91cEtleSAgICprZXkgPSAoT3JDbGF1 c2VHcm91cEtleSAqKSBkYXRhOworCXVpbnQ2NAkJCQlleHBySGFzaDsKKworCUFzc2VydChr ZXlzaXplID09IHNpemVvZihPckNsYXVzZUdyb3VwS2V5KSk7CisJQXNzZXJ0KElzQShkYXRh LCBJbnZhbGlkKSk7CisKKwkodm9pZCkgSnVtYmxlRXhwcihrZXktPmV4cHIsICZleHBySGFz aCk7CisKKwlyZXR1cm4gaGFzaF9jb21iaW5lKCh1aW50MzIpIGV4cHJIYXNoLAorCQkJCQkJ aGFzaF9jb21iaW5lKCh1aW50MzIpIGtleS0+b3BubywKKwkJCQkJCQloYXNoX2NvbWJpbmUo KHVpbnQzMikga2V5LT5jb25zdHR5cGUsCisJCQkJCQkJCQkJICh1aW50MzIpIGtleS0+aW5w dXRjb2xsaWQpKSk7Cit9CisKK3N0YXRpYyB2b2lkICoKK29yY2xhdXNlX2tleWNvcHkodm9p ZCAqZGVzdCwgY29uc3Qgdm9pZCAqc3JjLCBTaXplIGtleXNpemUpCit7CisJT3JDbGF1c2VH cm91cEtleSAqc3JjX2tleSA9IChPckNsYXVzZUdyb3VwS2V5ICopIHNyYzsKKwlPckNsYXVz ZUdyb3VwS2V5ICpkc3Rfa2V5ID0gKE9yQ2xhdXNlR3JvdXBLZXkgKikgZGVzdDsKKworCUFz c2VydChzaXplb2YoT3JDbGF1c2VHcm91cEtleSkgPT0ga2V5c2l6ZSk7CisJQXNzZXJ0KElz QShzcmMsIEludmFsaWQpKTsKKworCWRzdF9rZXktPnR5cGUgPSBUX0ludmFsaWQ7CisJZHN0 X2tleS0+ZXhwciA9IHNyY19rZXktPmV4cHI7CisJZHN0X2tleS0+b3BubyA9IHNyY19rZXkt Pm9wbm87CisJZHN0X2tleS0+Y29uc3R0eXBlID0gc3JjX2tleS0+Y29uc3R0eXBlOworCWRz dF9rZXktPmlucHV0Y29sbGlkID0gc3JjX2tleS0+aW5wdXRjb2xsaWQ7CisKKwlyZXR1cm4g ZHN0X2tleTsKK30KKworLyoKKyAqIER5bmFoYXNoIG1hdGNoIGZ1bmN0aW9uIHRvIHVzZSBp biBvcl9ncm91cF9odGFiCisgKi8KK3N0YXRpYyBpbnQKK29yY2xhdXNlX21hdGNoKGNvbnN0 IHZvaWQgKmRhdGExLCBjb25zdCB2b2lkICpkYXRhMiwgU2l6ZSBrZXlzaXplKQoreworCU9y Q2xhdXNlR3JvdXBLZXkgICAqa2V5MSA9IChPckNsYXVzZUdyb3VwS2V5ICopIGRhdGExOwor CU9yQ2xhdXNlR3JvdXBLZXkgICAqa2V5MiA9IChPckNsYXVzZUdyb3VwS2V5ICopIGRhdGEy OworCisJQXNzZXJ0KHNpemVvZihPckNsYXVzZUdyb3VwS2V5KSA9PSBrZXlzaXplKTsKKwlB c3NlcnQoSXNBKGtleTEsIEludmFsaWQpKTsKKwlBc3NlcnQoSXNBKGtleTIsIEludmFsaWQp KTsKKworCWlmIChrZXkxLT5vcG5vID09IGtleTItPm9wbm8gJiYKKwkJa2V5MS0+Y29uc3R0 eXBlID09IGtleTItPmNvbnN0dHlwZSAmJgorCQlrZXkxLT5pbnB1dGNvbGxpZCA9PSBrZXky LT5pbnB1dGNvbGxpZCAmJgorCQllcXVhbChrZXkxLT5leHByLCBrZXkyLT5leHByKSkKKwkJ cmV0dXJuIDA7CisKKwlyZXR1cm4gMTsKK30KKworLyoKKyAqIG9yX3RyYW5zZm9ybWF0aW9u IC0KKyAqCSAgRGlzY292ZXIgdGhlIGFyZ3Mgb2YgYW4gT1IgZXhwcmVzc2lvbiBhbmQgdHJ5 IHRvIGdyb3VwIHNpbWlsYXIgT1IKKyAqCSAgZXhwcmVzc2lvbnMgdG8gYW4gU0FPUCBvcGVy YXRpb24uCisgKgkgIFRyYW5zZm9ybWF0aW9uIGdyb3VwcyB0d28tc2lkZWQgZXF1YWxpdHkg b3BlcmF0aW9ucy4gT25lIHNpZGUgb2Ygc3VjaCBhbgorICoJICBvcGVyYXRpb24gbXVzdCBi ZSBwbGFpbiBjb25zdGFudCBvciBjb25zdGFudCBleHByZXNzaW9uLiBUaGUgb3RoZXIgc2lk ZSBvZgorICoJICB0aGUgY2xhdXNlIG11c3QgYmUgYSB2YXJpYWJsZSBleHByZXNzaW9uIHdp dGhvdXQgdm9sYXRpbGUgZnVuY3Rpb25zLgorICoJICBUbyBncm91cCBxdWFscywgaW5wdXRj b2xsaWQsIG9wbm8gYW5kIGNvbnN0eXBlIG9mIHRoZSBPUiBPcEV4cHIgcXVhbHMgbXVzdAor ICoJICBiZSBlcXVhbCB0b28uCisgKgkgIFRoZSBncm91cGluZyB0ZWNobmlxdWUgaXMgYmFz ZWQgb24gYW4gZXF1aXZhbGVuY2Ugb2YgdmFyaWFibGUgc2lkZXMgb2YgdGhlCisgKgkgIGV4 cHJlc3Npb246IHVzaW5nIHF1ZXJ5SWQgYW5kIGVxdWFsKCkgcm91dGluZSwgaXQgZ3JvdXBz IGNvbnN0YW50IHNpZGVzIG9mCisgKgkgIHNpbWlsYXIgY2xhdXNlcyBpbnRvIGFuIGFycmF5 LiBBZnRlciB0aGUgZ3JvdXBpbmcgcHJvY2VkdXJlLCBlYWNoIGNvdXBsZQorICoJICAoJ3Zh cmlhYmxlIGV4cHJlc3Npb24nIGFuZCAnY29uc3RhbnQgYXJyYXknKSBmb3JtIGEgbmV3IFNB T1Agb3BlcmF0aW9uLAorICoJICB3aGljaCBpcyBhZGRlZCB0byB0aGUgYXJncyBsaXN0IG9m IHRoZSByZXR1cm5pbmcgZXhwcmVzc2lvbi4KKyAqLworc3RhdGljIExpc3QgKgorb3JfdHJh bnNmb3JtYXRpb24oTGlzdCAqb3JsaXN0KQoreworCUxpc3QJCQkJICAgKm5ld29ybGlzdCA9 IE5JTDsKKwlMaXN0CQkJCSAgICplbnRyaWVzID0gTklMOworCUxpc3RDZWxsCQkJICAgKmxj OworCUhBU0hDVEwJCQkJCWluZm87CisJSFRBQiAJCQkJICAgKm9yX2dyb3VwX2h0YWIgPSBO VUxMOworCWludCAJCQkJCWxlbl9vcnMgPSBsaXN0X2xlbmd0aChvcmxpc3QpOworCU9yQ2xh dXNlR3JvdXBFbnRyeQkgICAqZW50cnkgPSBOVUxMOworCisJQXNzZXJ0KGVuYWJsZV9vcl90 cmFuc2Zvcm1hdGlvbiAmJiBsZW5fb3JzID4gMSk7CisKKwlNZW1TZXQoJmluZm8sIDAsIHNp emVvZihpbmZvKSk7CisJaW5mby5rZXlzaXplID0gc2l6ZW9mKE9yQ2xhdXNlR3JvdXBLZXkp OworCWluZm8uZW50cnlzaXplID0gc2l6ZW9mKE9yQ2xhdXNlR3JvdXBFbnRyeSk7CisJaW5m by5oYXNoID0gb3JjbGF1c2VfaGFzaDsKKwlpbmZvLmtleWNvcHkgPSBvcmNsYXVzZV9rZXlj b3B5OworCWluZm8ubWF0Y2ggPSBvcmNsYXVzZV9tYXRjaDsKKwlvcl9ncm91cF9odGFiID0g aGFzaF9jcmVhdGUoIk9SIEdyb3VwcyIsCisJCQkJCQkJCWxlbl9vcnMsCisJCQkJCQkJCSZp bmZvLAorCQkJCQkJCQlIQVNIX0VMRU0gfCBIQVNIX0ZVTkNUSU9OIHwgSEFTSF9DT01QQVJF IHwgSEFTSF9LRVlDT1BZKTsKKworCWZvcmVhY2gobGMsIG9ybGlzdCkKKwl7CisJCU5vZGUJ CQkJICAgKm9ycXVhbCA9IGxmaXJzdChsYyk7CisJCU5vZGUJCQkJICAgKmNvbnN0X2V4cHI7 CisJCU5vZGUJCQkJICAgKm5jb25zdF9leHByOworCQlPckNsYXVzZUdyb3VwS2V5CQloYXNo a2V5OworCQlib29sCQkJCQlmb3VuZDsKKwkJT2lkCQkJCQkJb3BubzsKKwkJT2lkCQkJCQkJ Y29uc3R0eXBlOworCQlOb2RlCQkJCSAgICpsZWZ0b3AsICpyaWdodG9wOworCisJCWlmICgh SXNBKG9ycXVhbCwgT3BFeHByKSkKKwkJeworCQkJZW50cmllcyA9IGxhcHBlbmQoZW50cmll cywgb3JxdWFsKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJb3BubyA9ICgoT3BFeHByICop IG9ycXVhbCktPm9wbm87CisJCWlmIChnZXRfb3BfcmV0dHlwZShvcG5vKSAhPSBCT09MT0lE KQorCQl7CisJCQkvKiBPbmx5IG9wZXJhdG9yIHJldHVybmluZyBib29sZWFuIHN1aXRzIE9S IC0+IEFOWSB0cmFuc2Zvcm1hdGlvbiAqLworCQkJZW50cmllcyA9IGxhcHBlbmQoZW50cmll cywgb3JxdWFsKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJLyoKKwkJICogRGV0ZWN0IHRo ZSBjb25zdGFudCBzaWRlIG9mIHRoZSBjbGF1c2UuIFJlY2FsbCBub24tY29uc3RhbnQKKwkJ ICogZXhwcmVzc2lvbiBjYW4gYmUgbWFkZSBub3Qgb25seSB3aXRoIFZhcnMsIGJ1dCBhbHNv IHdpdGggUGFyYW1zLAorCQkgKiB3aGljaCBpcyBub3QgYm9uZGVkIHdpdGggYW55IHJlbGF0 aW9uLiBUaHVzLCB3ZSBkZXRlY3QgdGhlIGNvbnN0CisJCSAqIHNpZGUgLSBpZiBhbm90aGVy IHNpZGUgaXMgY29uc3RhbnQgdG9vLCB0aGUgb3JxdWFsIGNvdWxkbid0IGJlCisJCSAqIGFu IE9wRXhwci4KKwkJICogR2V0IHBvaW50ZXJzIHRvIGNvbnN0YW50IGFuZCBleHByZXNzaW9u IHNpZGVzIG9mIHRoZSBxdWFsLgorCQkgKi8KKwkJbGVmdG9wID0gZ2V0X2xlZnRvcChvcnF1 YWwpOworCQlpZiAoSXNBKGxlZnRvcCwgUmVsYWJlbFR5cGUpKQorCQkJbGVmdG9wID0gKE5v ZGUgKikgKChSZWxhYmVsVHlwZSAqKSBsZWZ0b3ApLT5hcmc7CisJCXJpZ2h0b3AgPSBnZXRf cmlnaHRvcChvcnF1YWwpOworCQlpZiAoSXNBKHJpZ2h0b3AsIFJlbGFiZWxUeXBlKSkKKwkJ CXJpZ2h0b3AgPSAoTm9kZSAqKSAoKFJlbGFiZWxUeXBlICopIHJpZ2h0b3ApLT5hcmc7CisK KwkJaWYgKElzQShsZWZ0b3AsIENvbnN0KSkKKwkJeworCQkJb3BubyA9IGdldF9jb21tdXRh dG9yKG9wbm8pOworCisJCQlpZiAoIU9pZElzVmFsaWQob3BubykpCisJCQl7CisJCQkJLyog Y29tbXV0YXRvciBkb2Vzbid0IGV4aXN0LCB3ZSBjYW4ndCByZXZlcnNlIHRoZSBvcmRlciAq LworCQkJCWVudHJpZXMgPSBsYXBwZW5kKGVudHJpZXMsIG9ycXVhbCk7CisJCQkJY29udGlu dWU7CisJCQl9CisKKwkJCW5jb25zdF9leHByID0gZ2V0X3JpZ2h0b3Aob3JxdWFsKTsKKwkJ CWNvbnN0X2V4cHIgPSBnZXRfbGVmdG9wKG9ycXVhbCk7CisJCX0KKwkJZWxzZSBpZiAoSXNB KHJpZ2h0b3AsIENvbnN0KSkKKwkJeworCQkJY29uc3RfZXhwciA9IGdldF9yaWdodG9wKG9y cXVhbCk7CisJCQluY29uc3RfZXhwciA9IGdldF9sZWZ0b3Aob3JxdWFsKTsKKwkJfQorCQll bHNlCisJCXsKKwkJCWVudHJpZXMgPSBsYXBwZW5kKGVudHJpZXMsIG9ycXVhbCk7CisJCQlj b250aW51ZTsKKwkJfQorCisJCS8qCisJCSAqIFRyYW5zZm9ybWF0aW9uIG9ubHkgd29ya3Mg d2l0aCBib3RoIHNpZGUgdHlwZSBpcyBub3QKKwkJICogeyBhcnJheSB8IGNvbXBvc2l0ZSB8 IGRvbWFpbiB8IHJlY29yZCB9LgorCQkgKiBBbHNvLCBmb3JiaWQgaXQgZm9yIHZvbGF0aWxl IGV4cHJlc3Npb25zLgorCQkgKi8KKwkJY29uc3R0eXBlID0gZXhwclR5cGUoY29uc3RfZXhw cik7CisJCWlmICh0eXBlX2lzX3Jvd3R5cGUoZXhwclR5cGUoY29uc3RfZXhwcikpIHx8CisJ CQl0eXBlX2lzX3Jvd3R5cGUoY29uc3R0eXBlKSB8fAorCQkJY29udGFpbl92b2xhdGlsZV9m dW5jdGlvbnMoKE5vZGUgKikgbmNvbnN0X2V4cHIpKQorCQl7CisJCQllbnRyaWVzID0gbGFw cGVuZChlbnRyaWVzLCBvcnF1YWwpOworCQkJY29udGludWU7CisJCX0KKworCQkvKgorCQkq IEF0IHRoaXMgcG9pbnQgd2UgZGVmaW5pdGVseSBoYXZlIGEgdHJhbnNmb3JtYWJsZSBjbGF1 c2UuCisJCSogQ2xhc3NpZnkgaXQgYW5kIGFkZCBpbnRvIHNwZWNpZmljIGdyb3VwIG9mIGNs YXVzZXMsIG9yIGNyZWF0ZSBuZXcKKwkJKiBncm91cC4KKwkJKi8KKwkJaGFzaGtleS50eXBl ID0gVF9JbnZhbGlkOworCQloYXNoa2V5LmV4cHIgPSAoRXhwciAqKSBuY29uc3RfZXhwcjsK KwkJaGFzaGtleS5vcG5vID0gb3BubzsKKwkJaGFzaGtleS5jb25zdHR5cGUgPSBjb25zdHR5 cGU7CisJCWhhc2hrZXkuaW5wdXRjb2xsaWQgPSBleHByQ29sbGF0aW9uKGNvbnN0X2V4cHIp OworCQllbnRyeSA9IGhhc2hfc2VhcmNoKG9yX2dyb3VwX2h0YWIsICZoYXNoa2V5LCBIQVNI X0VOVEVSLCAmZm91bmQpOworCisJCWlmICh1bmxpa2VseShmb3VuZCkpCisJCXsKKwkJCWVu dHJ5LT5jb25zdHMgPSBsYXBwZW5kKGVudHJ5LT5jb25zdHMsIGNvbnN0X2V4cHIpOworCQkJ ZW50cnktPmV4cHJzID0gbGFwcGVuZChlbnRyeS0+ZXhwcnMsIG9ycXVhbCk7CisJCX0KKwkJ ZWxzZQorCQl7CisJCQllbnRyeS0+Y29uc3RzID0gbGlzdF9tYWtlMShjb25zdF9leHByKTsK KwkJCWVudHJ5LT5leHBycyA9IGxpc3RfbWFrZTEob3JxdWFsKTsKKworCQkJLyoKKwkJCSAq IEFkZCB0aGUgZW50cnkgdG8gdGhlIGxpc3QuIEl0IGlzIG5lZWRlZCBleGNsdXNpdmVseSB0 byBtYW5hZ2UgdGhlCisJCQkgKiBwcm9ibGVtIHdpdGggdGhlIG9yZGVyIG9mIHRyYW5zZm9y bWVkIGNsYXVzZXMgaW4gZXhwbGFpbi4KKwkJCSAqIEhhc2ggdmFsdWUgY2FuIGRlcGVuZCBv biB0aGUgcGxhdGZvcm0gYW5kIHZlcnNpb24uIEhlbmNlLAorCQkJICogc2VxdWVudGFsIHNj YW4gb2YgdGhlIGhhc2ggdGFibGUgd291bGQgcHJvbmUgdG8gY2hhbmdlIHRoZSBvcmRlcgor CQkJICogb2YgY2xhdXNlcyBpbiBsaXN0cyBhbmQsIGFzIGEgcmVzdWx0LCBicmVhayByZWdy ZXNzaW9uIHRlc3RzCisJCQkgKiBhY2NpZGVudGlhbGx5LgorCQkJICovCisJCQllbnRyaWVz ID0gbGFwcGVuZChlbnRyaWVzLCBlbnRyeSk7CisJCX0KKwl9CisKKwkvKiBMZXQncyBjb252 ZXJ0IGVhY2ggZ3JvdXAgb2YgY2xhdXNlcyB0byBhbiBJTiBvcGVyYXRpb24uICovCisKKwkv KgorCSAqIEdvIHRocm91Z2ggdGhlIGxpc3Qgb2YgZ3JvdXBzIGFuZCBjb252ZXJ0IGVhY2gs IHdoZXJlIG51bWJlciBvZgorCSAqIGNvbnN0cyBtb3JlIHRoYW4gMS4gdHJpdmlhbCBncm91 cHMgbW92ZSB0byBPUi1saXN0IGFnYWluCisJICovCisJZm9yZWFjaCAobGMsIGVudHJpZXMp CisJeworCQlPaWQJCQkJICAgIHNjYWxhcl90eXBlOworCQlPaWQJCQkJCWFycmF5X3R5cGU7 CisKKwkJaWYgKCFJc0EobGZpcnN0KGxjKSwgSW52YWxpZCkpCisJCXsKKwkJCW5ld29ybGlz dCA9IGxhcHBlbmQobmV3b3JsaXN0LCBsZmlyc3QobGMpKTsKKwkJCWNvbnRpbnVlOworCQl9 CisKKwkJZW50cnkgPSAoT3JDbGF1c2VHcm91cEVudHJ5ICopIGxmaXJzdChsYyk7CisKKwkJ QXNzZXJ0KGxpc3RfbGVuZ3RoKGVudHJ5LT5jb25zdHMpID4gMCk7CisJCUFzc2VydChsaXN0 X2xlbmd0aChlbnRyeS0+ZXhwcnMpID09IGxpc3RfbGVuZ3RoKGVudHJ5LT5jb25zdHMpKTsK KworCQlpZiAobGlzdF9sZW5ndGgoZW50cnktPmNvbnN0cykgPT0gMSkKKwkJeworCQkJLyoK KwkJCSAqIE9ubHkgb25lIGVsZW1lbnQgcmV0dXJucyBvcmlnaW4gZXhwcmVzc2lvbiBpbnRv IHRoZSBCb29sRXhwciBhcmdzCisJCQkgKiBsaXN0IHVuY2hhbmdlZC4KKwkJCSAqLworCQkJ bGlzdF9mcmVlKGVudHJ5LT5jb25zdHMpOworCQkJbmV3b3JsaXN0ID0gbGlzdF9jb25jYXQo bmV3b3JsaXN0LCBlbnRyeS0+ZXhwcnMpOworCQkJY29udGludWU7CisJCX0KKworCQkvKgor CQkgKiBEbyB0aGUgdHJhbnNmb3JtYXRpb24uCisJCSAqLworCisJCXNjYWxhcl90eXBlID0g ZW50cnktPmtleS5jb25zdHR5cGU7CisJCWFycmF5X3R5cGUgPSBPaWRJc1ZhbGlkKHNjYWxh cl90eXBlKSA/IGdldF9hcnJheV90eXBlKHNjYWxhcl90eXBlKSA6CisJCQkJCQkJCQkJCSAg IEludmFsaWRPaWQ7CisKKwkJaWYgKE9pZElzVmFsaWQoYXJyYXlfdHlwZSkpCisJCXsKKwkJ CS8qCisJCQkgKiBPSzogY29lcmNlIGFsbCB0aGUgcmlnaHQtaGFuZCBub24tVmFyIGlucHV0 cyB0byB0aGUgY29tbW9uCisJCQkgKiB0eXBlIGFuZCBidWlsZCBhbiBBcnJheUV4cHIgZm9y IHRoZW0uCisJCQkgKi8KKwkJCUxpc3QJCQkgICAqYWV4cHJzID0gTklMOworCQkJQXJyYXlF eHByCQkgICAqbmV3YSA9IE5VTEw7CisJCQlTY2FsYXJBcnJheU9wRXhwciAgKnNhb3BleHBy ID0gTlVMTDsKKwkJCUhlYXBUdXBsZQkJCW9wZXJ0dXA7CisJCQlGb3JtX3BnX29wZXJhdG9y CW9wZXJmb3JtOworCQkJTGlzdAkJCSAgICpuYW1lbGlzdCA9IE5JTDsKKworCQkJZm9yZWFj aChsYywgZW50cnktPmNvbnN0cykKKwkJCXsKKwkJCQlOb2RlICpub2RlID0gKE5vZGUgKikg bGZpcnN0KGxjKTsKKworCQkJCW5vZGUgPSBjb2VyY2VfdG9fY29tbW9uX3R5cGUoTlVMTCwg bm9kZSwgc2NhbGFyX3R5cGUsCisJCQkJCQkJCQkJCSAiT1IgQU5ZIFRyYW5zZm9ybWF0aW9u Iik7CisJCQkJYWV4cHJzID0gbGFwcGVuZChhZXhwcnMsIG5vZGUpOworCQkJfQorCisJCQlu ZXdhID0gbWFrZU5vZGUoQXJyYXlFeHByKTsKKwkJCS8qIGFycmF5X2NvbGxpZCB3aWxsIGJl IHNldCBieSBwYXJzZV9jb2xsYXRlLmMgKi8KKwkJCW5ld2EtPmVsZW1lbnRfdHlwZWlkID0g c2NhbGFyX3R5cGU7CisJCQluZXdhLT5hcnJheV90eXBlaWQgPSBhcnJheV90eXBlOworCQkJ bmV3YS0+bXVsdGlkaW1zID0gZmFsc2U7CisJCQluZXdhLT5lbGVtZW50cyA9IGFleHByczsK KwkJCW5ld2EtPmxvY2F0aW9uID0gLTE7CisKKwkJCS8qCisJCQkgKiBUcnkgdG8gY2FzdCB0 aGlzIGV4cHJlc3Npb24gdG8gQ29uc3QuIER1ZSB0byBjdXJyZW50IHN0cmljdAorCQkJICog dHJhbnNmb3JtYXRpb24gcnVsZXMgaXQgc2hvdWxkIGJlIGRvbmUgW2FsbW9zdF0gZXZlcnkg dGltZS4KKwkJCSAqLworCQkJbmV3YSA9IChBcnJheUV4cHIgKikgZXZhbF9jb25zdF9leHBy ZXNzaW9ucyhOVUxMLCAoTm9kZSAqKSBuZXdhKTsKKworCQkJb3BlcnR1cCA9IFNlYXJjaFN5 c0NhY2hlMShPUEVST0lELAorCQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKGVudHJ5LT5r ZXkub3BubykpOworCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKG9wZXJ0dXApKQorCQkJCWVs b2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBvcGVyYXRvciAldSIsCisJCQkJ CSBlbnRyeS0+a2V5Lm9wbm8pOworCisJCQlvcGVyZm9ybSA9IChGb3JtX3BnX29wZXJhdG9y KSBHRVRTVFJVQ1Qob3BlcnR1cCk7CisJCQlpZiAoIU9wZXJhdG9ySXNWaXNpYmxlKGVudHJ5 LT5rZXkub3BubykpCisJCQkJbmFtZWxpc3QgPSBsYXBwZW5kKG5hbWVsaXN0LCBtYWtlU3Ry aW5nKGdldF9uYW1lc3BhY2VfbmFtZShvcGVyZm9ybS0+b3BybmFtZXNwYWNlKSkpOworCisJ CQluYW1lbGlzdCA9IGxhcHBlbmQobmFtZWxpc3QsIG1ha2VTdHJpbmcocHN0cmR1cChOYW1l U3RyKG9wZXJmb3JtLT5vcHJuYW1lKSkpKTsKKwkJCVJlbGVhc2VTeXNDYWNoZShvcGVydHVw KTsKKworCQkJc2FvcGV4cHIgPQorCQkJCShTY2FsYXJBcnJheU9wRXhwciAqKQorCQkJCQlt YWtlX3NjYWxhcl9hcnJheV9vcChOVUxMLAorCQkJCQkJCQkJCSBuYW1lbGlzdCwKKwkJCQkJ CQkJCQkgdHJ1ZSwKKwkJCQkJCQkJCQkgKE5vZGUgKikgZW50cnktPmtleS5leHByLAorCQkJ CQkJCQkJCSAoTm9kZSAqKSBuZXdhLAorCQkJCQkJCQkJCSAtMSk7CisJCQlzYW9wZXhwci0+ aW5wdXRjb2xsaWQgPSBlbnRyeS0+a2V5LmlucHV0Y29sbGlkOworCisJCQluZXdvcmxpc3Qg PSBsYXBwZW5kKG5ld29ybGlzdCwgKHZvaWQgKikgc2FvcGV4cHIpOworCQl9CisJCWVsc2UK KwkJeworCQkJLyoKKwkJCSAqIElmIHRoZSBjb25zdCBub2RlIChyaWdodCBzaWRlIG9mIG9w ZXJhdG9yIGV4cHJlc3Npb24pICdzIHR5cGUKKwkJCSAqICBkb24ndCBoYXZlIOKAnHRydWXi gJ0gYXJyYXkgdHlwZSwgdGhlbiB3ZSBjYW5ubm90IGRvIHRoZSB0cmFuc2Zvcm1hdGlvbi4K KwkJCSAqIFdlIHNpbXBseSBjb25jYXRlbmF0ZSB0aGUgZXhwcmVzc2lvbiBub2RlLgorCQkJ ICoKKwkJCSAqLworCQkJbGlzdF9mcmVlKGVudHJ5LT5jb25zdHMpOworCQkJbmV3b3JsaXN0 ID0gbGlzdF9jb25jYXQobmV3b3JsaXN0LCBlbnRyeS0+ZXhwcnMpOworCQl9CisJfQorCWhh c2hfZGVzdHJveShvcl9ncm91cF9odGFiKTsKKwlsaXN0X2ZyZWUoZW50cmllcyk7CisKKwkv KiBPbmUgbW9yZSB0cmljazogYXNzZW1ibGUgY29ycmVjdCBjbGF1c2UgKi8KKwlyZXR1cm4g bmV3b3JsaXN0OworfQogCiAvKgogICogY2Fub25pY2FsaXplX3F1YWwKQEAgLTYwNCw3ICs5 NjQsMTUgQEAgcHJvY2Vzc19kdXBsaWNhdGVfb3JzKExpc3QgKm9ybGlzdCkKIAkgKiBJZiBu byB3aW5uZXJzLCB3ZSBjYW4ndCB0cmFuc2Zvcm0gdGhlIE9SCiAJICovCiAJaWYgKHdpbm5l cnMgPT0gTklMKQotCQlyZXR1cm4gbWFrZV9vcmNsYXVzZShvcmxpc3QpOworCXsKKwkJLyog TWFrZSBhbiBhdHRlbXB0IHRvIGdyb3VwIHNpbWlsYXIgT1IgY2xhdXNlcyBpbnRvIEFOWSBv cGVyYXRpb24gKi8KKwkJaWYgKGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbiAmJiBsaXN0X2xl bmd0aChvcmxpc3QpID4gMSkKKwkJCW9ybGlzdCA9IG9yX3RyYW5zZm9ybWF0aW9uKG9ybGlz dCk7CisKKwkJLyogVHJhbnNmb3JtYXRpb24gY291bGQgZ3JvdXAgYWxsIE9SIGNsYXVzZXMg dG8gYSBzaW5nbGUgU0FPUCAqLworCQlyZXR1cm4gKGxpc3RfbGVuZ3RoKG9ybGlzdCkgPT0g MSkgPworCQkJCQkJCShFeHByICopIGxpbml0aWFsKG9ybGlzdCkgOiBtYWtlX29yY2xhdXNl KG9ybGlzdCk7CisJfQogCiAJLyoKIAkgKiBHZW5lcmF0ZSBuZXcgT1IgbGlzdCBjb25zaXN0 aW5nIG9mIHRoZSByZW1haW5pbmcgc3ViLWNsYXVzZXMuCkBAIC02NTEsNiArMTAxOSwxMCBA QCBwcm9jZXNzX2R1cGxpY2F0ZV9vcnMoTGlzdCAqb3JsaXN0KQogCQl9CiAJfQogCisJLyog TWFrZSBhbiBhdHRlbXB0IHRvIGdyb3VwIHNpbWlsYXIgT1IgY2xhdXNlcyBpbnRvIEFOWSBv cGVyYXRpb24gKi8KKwlpZiAoZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uICYmIGxpc3RfbGVu Z3RoKG5ld29ybGlzdCkgPiAxKQorCQluZXdvcmxpc3QgPSBvcl90cmFuc2Zvcm1hdGlvbihu ZXdvcmxpc3QpOworCiAJLyoKIAkgKiBBcHBlbmQgcmVkdWNlZCBPUiB0byB0aGUgd2lubmVy cyBsaXN0LCBpZiBpdCdzIG5vdCBkZWdlbmVyYXRlLCBoYW5kbGluZwogCSAqIHRoZSBzcGVj aWFsIGNhc2Ugb2Ygb25lIGVsZW1lbnQgY29ycmVjdGx5IChjYW4gdGhhdCByZWFsbHkgaGFw cGVuPykuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4IDU3ZDlkZTRk ZDkuLmQ0ZjA4MmVjNjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3Vj X3RhYmxlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCkBA IC0xMDI2LDYgKzEwMjYsMTcgQEAgc3RydWN0IGNvbmZpZ19ib29sIENvbmZpZ3VyZU5hbWVz Qm9vbFtdID0KIAkJdHJ1ZSwKIAkJTlVMTCwgTlVMTCwgTlVMTAogCX0sCisJeworCQl7ImVu YWJsZV9vcl90cmFuc2Zvcm1hdGlvbiIsIFBHQ19VU0VSU0VULCBRVUVSWV9UVU5JTkdfT1RI RVIsCisJCQlnZXR0ZXh0X25vb3AoIlRyYW5zZm9ybSBhIHNlcXVlbmNlIG9mIE9SIGNsYXVz ZXMgdG8gYW4gYXJyYXkgZXhwcmVzc2lvbi4iKSwKKwkJCWdldHRleHRfbm9vcCgiVGhlIHBs YW5uZXIgd2lsbCByZXBsYWNlIGV4cHJlc3Npb24gbGlrZSAneD1jMSBPUiB4PWMyIC4uJyIK KwkJCQkJCSAidG8gdGhlIGV4cHJlc3Npb24gJ3ggPSBBTlkoQVJSQVlbYzEsYzIsLi5dKSci KSwKKwkJCUdVQ19FWFBMQUlOCisJCX0sCisJCSZlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24s CisJCXRydWUsCisJCU5VTEwsIE5VTEwsIE5VTEwKKwl9LAogCXsKIAkJLyoKIAkJICogTm90 IGZvciBnZW5lcmFsIHVzZSAtLS0gdXNlZCBieSBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9O IGFuZCBTRVQKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNx bC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25m LnNhbXBsZQppbmRleCAyMjQ0ZWU1MmY3Li41MjQ1MTY1OTNmIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBAIC0zOTEsNiArMzkx LDcgQEAKICMgLSBQbGFubmVyIE1ldGhvZCBDb25maWd1cmF0aW9uIC0KIAogI2VuYWJsZV9h c3luY19hcHBlbmQgPSBvbgorI2VuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbiA9IG9uCiAjZW5h YmxlX2JpdG1hcHNjYW4gPSBvbgogI2VuYWJsZV9nYXRoZXJtZXJnZSA9IG9uCiAjZW5hYmxl X2hhc2hhZ2cgPSBvbgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcXVlcnlqdW1i bGUuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3F1ZXJ5anVtYmxlLmgKaW5kZXggZjFjNTVjODA2 Ny4uYTlhZTA0OGFmNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcXVlcnlqdW1i bGUuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9xdWVyeWp1bWJsZS5oCkBAIC02NSw2ICs2 NSw3IEBAIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgY29tcHV0ZV9xdWVyeV9pZDsKIAogZXh0 ZXJuIGNvbnN0IGNoYXIgKkNsZWFuUXVlcnl0ZXh0KGNvbnN0IGNoYXIgKnF1ZXJ5LCBpbnQg KmxvY2F0aW9uLCBpbnQgKmxlbik7CiBleHRlcm4gSnVtYmxlU3RhdGUgKkp1bWJsZVF1ZXJ5 KFF1ZXJ5ICpxdWVyeSk7CitleHRlcm4gSnVtYmxlU3RhdGUgKkp1bWJsZUV4cHIoRXhwciAq ZXhwciwgdWludDY0ICpxdWVyeUlkKTsKIGV4dGVybiB2b2lkIEVuYWJsZVF1ZXJ5SWQodm9p ZCk7CiAKIGV4dGVybiBQR0RMTElNUE9SVCBib29sIHF1ZXJ5X2lkX2VuYWJsZWQ7CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvb3B0aW1pemVyLmggYi9zcmMvaW5jbHVk ZS9vcHRpbWl6ZXIvb3B0aW1pemVyLmgKaW5kZXggN2I2M2M1Y2Y3MS4uMzJlZWMwYjI3YyAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL29wdGltaXplci5oCisrKyBiL3Ny Yy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaApAQCAtMTMzLDYgKzEzMyw4IEBAIGV4 dGVybiB2b2lkIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzKE5vZGUgKnF1ZXJ5LAogCiAv KiBpbiBwcmVwL3ByZXBxdWFsLmM6ICovCiAKK2V4dGVybiBQR0RMTElNUE9SVCBib29sIGVu YWJsZV9vcl90cmFuc2Zvcm1hdGlvbjsKKwogZXh0ZXJuIE5vZGUgKm5lZ2F0ZV9jbGF1c2Uo Tm9kZSAqbm9kZSk7CiBleHRlcm4gRXhwciAqY2Fub25pY2FsaXplX3F1YWwoRXhwciAqcXVh bCwgYm9vbCBpc19jaGVjayk7CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvY3JlYXRlX2luZGV4Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3Jl YXRlX2luZGV4Lm91dAppbmRleCA3MGFiNDdhOTJmLi42NmU5YTM5NWUwIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9pbmRleC5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfaW5kZXgub3V0CkBAIC0xODM4LDE4ICsx ODM4LDUwIEBAIERST1AgVEFCTEUgb25la193aXRoX251bGw7CiBFWFBMQUlOIChDT1NUUyBP RkYpCiBTRUxFQ1QgKiBGUk9NIHRlbmsxCiAgIFdIRVJFIHRob3VzYW5kID0gNDIgQU5EICh0 ZW50aG91cyA9IDEgT1IgdGVudGhvdXMgPSAzIE9SIHRlbnRob3VzID0gNDIpOwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0gQml0bWFwIEhlYXAgU2NhbiBvbiB0ZW5rMQotICAgUmVjaGVjayBDb25kOiAoKCh0aG91 c2FuZCA9IDQyKSBBTkQgKHRlbnRob3VzID0gMSkpIE9SICgodGhvdXNhbmQgPSA0MikgQU5E ICh0ZW50aG91cyA9IDMpKSBPUiAoKHRob3VzYW5kID0gNDIpIEFORCAodGVudGhvdXMgPSA0 MikpKQotICAgLT4gIEJpdG1hcE9yCi0gICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4g b24gdGVuazFfdGhvdXNfdGVudGhvdXMKLSAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICgo dGhvdXNhbmQgPSA0MikgQU5EICh0ZW50aG91cyA9IDEpKQotICAgICAgICAgLT4gIEJpdG1h cCBJbmRleCBTY2FuIG9uIHRlbmsxX3Rob3VzX3RlbnRob3VzCi0gICAgICAgICAgICAgICBJ bmRleCBDb25kOiAoKHRob3VzYW5kID0gNDIpIEFORCAodGVudGhvdXMgPSAzKSkKLSAgICAg ICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV90aG91c190ZW50aG91cwotICAg ICAgICAgICAgICAgSW5kZXggQ29uZDogKCh0aG91c2FuZCA9IDQyKSBBTkQgKHRlbnRob3Vz ID0gNDIpKQotKDkgcm93cykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgSW5kZXggU2NhbiB1c2luZyB0ZW5rMV90aG91c190ZW50aG91 cyBvbiB0ZW5rMQorICAgSW5kZXggQ29uZDogKCh0aG91c2FuZCA9IDQyKSBBTkQgKHRlbnRo b3VzID0gQU5ZICgnezEsMyw0Mn0nOjppbnRlZ2VyW10pKSkKKygyIHJvd3MpCisKK1NFTEVD VCAqIEZST00gdGVuazEKKyAgV0hFUkUgdGhvdXNhbmQgPSA0MiBBTkQgKHRlbnRob3VzID0g MSBPUiB0ZW50aG91cyA9IDMgT1IgdGVudGhvdXMgPSA0Mik7CisgdW5pcXVlMSB8IHVuaXF1 ZTIgfCB0d28gfCBmb3VyIHwgdGVuIHwgdHdlbnR5IHwgaHVuZHJlZCB8IHRob3VzYW5kIHwg dHdvdGhvdXNhbmQgfCBmaXZldGhvdXMgfCB0ZW50aG91cyB8IG9kZCB8IGV2ZW4gfCBzdHJp bmd1MSB8IHN0cmluZ3UyIHwgc3RyaW5nNCAKKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0r LS0tLS0tKy0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLSstLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLQorICAgICAgNDIgfCAgICA1NTMwIHwgICAwIHwgICAgMiB8ICAg MiB8ICAgICAgMiB8ICAgICAgNDIgfCAgICAgICA0MiB8ICAgICAgICAgIDQyIHwgICAgICAg IDQyIHwgICAgICAgNDIgfCAgODQgfCAgIDg1IHwgUUJBQUFBICAgfCBTRUlBQUEgICB8IE9P T094eAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikg RlJPTSB0ZW5rMQorICBXSEVSRSBodW5kcmVkID0gNDIgQU5EICh0aG91c2FuZCA9IDQyIE9S IHRob3VzYW5kID0gOTkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAg SGVhcCBTY2FuIG9uIHRlbmsxCisgICAgICAgICBSZWNoZWNrIENvbmQ6ICgoaHVuZHJlZCA9 IDQyKSBBTkQgKHRob3VzYW5kID0gQU5ZICgnezQyLDk5fSc6OmludGVnZXJbXSkpKQorICAg ICAgICAgLT4gIEJpdG1hcEFuZAorICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBT Y2FuIG9uIHRlbmsxX2h1bmRyZWQKKyAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6 IChodW5kcmVkID0gNDIpCisgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4g b24gdGVuazFfdGhvdXNfdGVudGhvdXMKKyAgICAgICAgICAgICAgICAgICAgIEluZGV4IENv bmQ6ICh0aG91c2FuZCA9IEFOWSAoJ3s0Miw5OX0nOjppbnRlZ2VyW10pKQorKDggcm93cykK KworU0VMRUNUIGNvdW50KCopIEZST00gdGVuazEKKyAgV0hFUkUgaHVuZHJlZCA9IDQyIEFO RCAodGhvdXNhbmQgPSA0MiBPUiB0aG91c2FuZCA9IDk5KTsKKyBjb3VudCAKKy0tLS0tLS0K KyAgICAxMAorKDEgcm93KQorCitTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uID0gb247 CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgKiBGUk9NIHRlbmsxCisgIFdIRVJFIHRo b3VzYW5kID0gNDIgQU5EICh0ZW50aG91cyA9IDEgT1IgdGVudGhvdXMgPSAzIE9SIHRlbnRo b3VzID0gNDIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBJbmRleCBTY2FuIHVzaW5nIHRlbmsxX3Rob3VzX3RlbnRob3VzIG9uIHRl bmsxCisgICBJbmRleCBDb25kOiAoKHRob3VzYW5kID0gNDIpIEFORCAodGVudGhvdXMgPSBB TlkgKCd7MSwzLDQyfSc6OmludGVnZXJbXSkpKQorKDIgcm93cykKIAogU0VMRUNUICogRlJP TSB0ZW5rMQogICBXSEVSRSB0aG91c2FuZCA9IDQyIEFORCAodGVudGhvdXMgPSAxIE9SIHRl bnRob3VzID0gMyBPUiB0ZW50aG91cyA9IDQyKTsKQEAgLTE4NjEsMjggKzE4OTMsMTE2IEBA IFNFTEVDVCAqIEZST00gdGVuazEKIEVYUExBSU4gKENPU1RTIE9GRikKIFNFTEVDVCBjb3Vu dCgqKSBGUk9NIHRlbmsxCiAgIFdIRVJFIGh1bmRyZWQgPSA0MiBBTkQgKHRob3VzYW5kID0g NDIgT1IgdGhvdXNhbmQgPSA5OSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRlbmsxCisgICAgICAgICBSZWNoZWNrIENvbmQ6ICgo aHVuZHJlZCA9IDQyKSBBTkQgKHRob3VzYW5kID0gQU5ZICgnezQyLDk5fSc6OmludGVnZXJb XSkpKQorICAgICAgICAgLT4gIEJpdG1hcEFuZAorICAgICAgICAgICAgICAgLT4gIEJpdG1h cCBJbmRleCBTY2FuIG9uIHRlbmsxX2h1bmRyZWQKKyAgICAgICAgICAgICAgICAgICAgIElu ZGV4IENvbmQ6IChodW5kcmVkID0gNDIpCisgICAgICAgICAgICAgICAtPiAgQml0bWFwIElu ZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMKKyAgICAgICAgICAgICAgICAgICAg IEluZGV4IENvbmQ6ICh0aG91c2FuZCA9IEFOWSAoJ3s0Miw5OX0nOjppbnRlZ2VyW10pKQor KDggcm93cykKKworU0VMRUNUIGNvdW50KCopIEZST00gdGVuazEKKyAgV0hFUkUgaHVuZHJl ZCA9IDQyIEFORCAodGhvdXNhbmQgPSA0MiBPUiB0aG91c2FuZCA9IDk5KTsKKyBjb3VudCAK Ky0tLS0tLS0KKyAgICAxMAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxF Q1QgY291bnQoKikgRlJPTSB0ZW5rMQorICBXSEVSRSBodW5kcmVkID0gNDIgQU5EICh0aG91 c2FuZCA8IDQyIE9SIHRob3VzYW5kIDwgOTkgT1IgNDMgPiB0aG91c2FuZCBPUiA0MiA+IHRo b3VzYW5kKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0 bWFwIEhlYXAgU2NhbiBvbiB0ZW5rMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoKGh1bmRy ZWQgPSA0MikgQU5EICh0aG91c2FuZCA8IEFOWSAoJ3s0Miw5OSw0Myw0Mn0nOjppbnRlZ2Vy W10pKSkKKyAgICAgICAgIC0+ICBCaXRtYXBBbmQKKyAgICAgICAgICAgICAgIC0+ICBCaXRt YXAgSW5kZXggU2NhbiBvbiB0ZW5rMV9odW5kcmVkCisgICAgICAgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAoaHVuZHJlZCA9IDQyKQorICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJ bmRleCBTY2FuIG9uIHRlbmsxX3Rob3VzX3RlbnRob3VzCisgICAgICAgICAgICAgICAgICAg ICBJbmRleCBDb25kOiAodGhvdXNhbmQgPCBBTlkgKCd7NDIsOTksNDMsNDJ9Jzo6aW50ZWdl cltdKSkKKyg4IHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgq KSBGUk9NIHRlbmsxCisgIFdIRVJFIHRob3VzYW5kID0gNDIgQU5EICh0ZW50aG91cyA9IDEg T1IgdGVudGhvdXMgPSAzKSBPUiB0aG91c2FuZCA9IDQxOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0 bWFwIEhlYXAgU2NhbiBvbiB0ZW5rMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoKCh0aG91 c2FuZCA9IDQyKSBBTkQgKHRlbnRob3VzID0gQU5ZICgnezEsM30nOjppbnRlZ2VyW10pKSkg T1IgKHRob3VzYW5kID0gNDEpKQorICAgICAgICAgLT4gIEJpdG1hcE9yCisgICAgICAgICAg ICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMKKyAg ICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICgodGhvdXNhbmQgPSA0MikgQU5EICh0 ZW50aG91cyA9IEFOWSAoJ3sxLDN9Jzo6aW50ZWdlcltdKSkpCisgICAgICAgICAgICAgICAt PiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMKKyAgICAgICAg ICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh0aG91c2FuZCA9IDQxKQorKDggcm93cykKKwor U0VMRUNUIGNvdW50KCopIEZST00gdGVuazEKKyAgV0hFUkUgdGhvdXNhbmQgPSA0MiBBTkQg KHRlbnRob3VzID0gMSBPUiB0ZW50aG91cyA9IDMpIE9SIHRob3VzYW5kID0gNDE7CisgY291 bnQgCistLS0tLS0tCisgICAgMTAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIGNvdW50KCopIEZST00gdGVuazEKKyAgV0hFUkUgaHVuZHJlZCA9IDQyIEFORCAo dGhvdXNhbmQgPSA0MiBPUiB0aG91c2FuZCA9IDk5IE9SIHRlbnRob3VzIDwgMikgT1IgdGhv dXNhbmQgPSA0MTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFn Z3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gdGVuazEKKyAgICAgICAgIFJl Y2hlY2sgQ29uZDogKCgoaHVuZHJlZCA9IDQyKSBBTkQgKCh0aG91c2FuZCA9IEFOWSAoJ3s0 Miw5OX0nOjppbnRlZ2VyW10pKSBPUiAodGVudGhvdXMgPCAyKSkpIE9SICh0aG91c2FuZCA9 IDQxKSkKKyAgICAgICAgIC0+ICBCaXRtYXBPcgorICAgICAgICAgICAgICAgLT4gIEJpdG1h cEFuZAorICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRl bmsxX2h1bmRyZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICho dW5kcmVkID0gNDIpCisgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwT3IKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV90 aG91c190ZW50aG91cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXgg Q29uZDogKHRob3VzYW5kID0gQU5ZICgnezQyLDk5fSc6OmludGVnZXJbXSkpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhv dXNfdGVudGhvdXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENv bmQ6ICh0ZW50aG91cyA8IDIpCisgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNj YW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMKKyAgICAgICAgICAgICAgICAgICAgIEluZGV4 IENvbmQ6ICh0aG91c2FuZCA9IDQxKQorKDE0IHJvd3MpCisKK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHRlbmsxCisgIFdIRVJFIGh1bmRyZWQgPSA0MiBBTkQgKHRob3VzYW5kID0gNDIgT1Ig dGhvdXNhbmQgPSA5OSBPUiB0ZW50aG91cyA8IDIpIE9SIHRob3VzYW5kID0gNDE7CisgY291 bnQgCistLS0tLS0tCisgICAgMjAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIGNvdW50KCopIEZST00gdGVuazEKKyAgV0hFUkUgaHVuZHJlZCA9IDQyIEFORCAo dGhvdXNhbmQgPSA0MiBPUiB0aG91c2FuZCA9IDQxIE9SIHRob3VzYW5kID0gOTkgQU5EIHRl bnRob3VzID0gMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog IEFnZ3JlZ2F0ZQogICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gdGVuazEKLSAgICAgICAg IFJlY2hlY2sgQ29uZDogKChodW5kcmVkID0gNDIpIEFORCAoKHRob3VzYW5kID0gNDIpIE9S ICh0aG91c2FuZCA9IDk5KSkpCisgICAgICAgICBSZWNoZWNrIENvbmQ6ICgoaHVuZHJlZCA9 IDQyKSBBTkQgKCh0aG91c2FuZCA9IEFOWSAoJ3s0Miw0MX0nOjppbnRlZ2VyW10pKSBPUiAo KHRob3VzYW5kID0gOTkpIEFORCAodGVudGhvdXMgPSAyKSkpKQogICAgICAgICAgLT4gIEJp dG1hcEFuZAogICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsx X2h1bmRyZWQKICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChodW5kcmVkID0g NDIpCiAgICAgICAgICAgICAgICAtPiAgQml0bWFwT3IKICAgICAgICAgICAgICAgICAgICAg IC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV90aG91c190ZW50aG91cwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHRob3VzYW5kID0gNDIpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodGhvdXNhbmQgPSBBTlkgKCd7 NDIsNDF9Jzo6aW50ZWdlcltdKSkKICAgICAgICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAg SW5kZXggU2NhbiBvbiB0ZW5rMV90aG91c190ZW50aG91cwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKHRob3VzYW5kID0gOTkpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAoKHRob3VzYW5kID0gOTkpIEFORCAodGVudGhvdXMg PSAyKSkKICgxMSByb3dzKQogCiBTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQotICBXSEVS RSBodW5kcmVkID0gNDIgQU5EICh0aG91c2FuZCA9IDQyIE9SIHRob3VzYW5kID0gOTkpOwor ICBXSEVSRSBodW5kcmVkID0gNDIgQU5EICh0aG91c2FuZCA9IDQyIE9SIHRob3VzYW5kID0g NDEgT1IgdGhvdXNhbmQgPSA5OSBBTkQgdGVudGhvdXMgPSAyKTsKICBjb3VudCAKIC0tLS0t LS0KICAgICAxMAogKDEgcm93KQogCitSRVNFVCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb247 CiAtLQogLS0gQ2hlY2sgYmVoYXZpb3Igd2l0aCBkdXBsaWNhdGUgaW5kZXggY29sdW1uIGNv bnRlbnRzCiAtLQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2lu Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQKaW5kZXggOTYwNTQw MDAyMS4uZDgwMThiZWY0ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9qb2luLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0CkBA IC00MjEwLDEwICs0MjEwLDEwIEBAIGV4cGxhaW4gKGNvc3RzIG9mZikKIHNlbGVjdCAqIGZy b20gdGVuazEgYSBqb2luIHRlbmsxIGIgb24KICAgKGEudW5pcXVlMSA9IDEgYW5kIGIudW5p cXVlMSA9IDIpIG9yCiAgICgoYS51bmlxdWUyID0gMyBvciBhLnVuaXF1ZTIgPSA3KSBhbmQg Yi5odW5kcmVkID0gNCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogIE5lc3RlZCBMb29wCi0gICBKb2luIEZpbHRlcjogKCgoYS51bmlx dWUxID0gMSkgQU5EIChiLnVuaXF1ZTEgPSAyKSkgT1IgKCgoYS51bmlxdWUyID0gMykgT1Ig KGEudW5pcXVlMiA9IDcpKSBBTkQgKGIuaHVuZHJlZCA9IDQpKSkKKyAgIEpvaW4gRmlsdGVy OiAoKChhLnVuaXF1ZTEgPSAxKSBBTkQgKGIudW5pcXVlMSA9IDIpKSBPUiAoKGEudW5pcXVl MiA9IEFOWSAoJ3szLDd9Jzo6aW50ZWdlcltdKSkgQU5EIChiLmh1bmRyZWQgPSA0KSkpCiAg ICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiB0ZW5rMSBiCiAgICAgICAgICBSZWNoZWNrIENv bmQ6ICgodW5pcXVlMSA9IDIpIE9SIChodW5kcmVkID0gNCkpCiAgICAgICAgICAtPiAgQml0 bWFwT3IKQEAgLTQyMjMsMTYgKzQyMjMsNjQgQEAgc2VsZWN0ICogZnJvbSB0ZW5rMSBhIGpv aW4gdGVuazEgYiBvbgogICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGh1bmRy ZWQgPSA0KQogICAgLT4gIE1hdGVyaWFsaXplCiAgICAgICAgICAtPiAgQml0bWFwIEhlYXAg U2NhbiBvbiB0ZW5rMSBhCi0gICAgICAgICAgICAgICBSZWNoZWNrIENvbmQ6ICgodW5pcXVl MSA9IDEpIE9SICh1bmlxdWUyID0gMykgT1IgKHVuaXF1ZTIgPSA3KSkKKyAgICAgICAgICAg ICAgIFJlY2hlY2sgQ29uZDogKCh1bmlxdWUxID0gMSkgT1IgKHVuaXF1ZTIgPSBBTlkgKCd7 Myw3fSc6OmludGVnZXJbXSkpKQogICAgICAgICAgICAgICAgLT4gIEJpdG1hcE9yCiAgICAg ICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdW5pcXVl MQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTEgPSAx KQogICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsx X3VuaXF1ZTIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlx dWUyID0gMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlx dWUyID0gQU5ZICgnezMsN30nOjppbnRlZ2VyW10pKQorKDE3IHJvd3MpCisKK1NFVCBlbmFi bGVfb3JfdHJhbnNmb3JtYXRpb24gPSBvbjsKK2V4cGxhaW4gKGNvc3RzIG9mZikKK3NlbGVj dCAqIGZyb20gdGVuazEgYSBqb2luIHRlbmsxIGIgb24KKyAgKGEudW5pcXVlMSA9IDEgYW5k IGIudW5pcXVlMSA9IDIpIG9yCisgICgoYS51bmlxdWUyID0gMyBvciBhLnVuaXF1ZTIgPSA3 KSBhbmQgYi5odW5kcmVkID0gNCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIE5l c3RlZCBMb29wCisgICBKb2luIEZpbHRlcjogKCgoYS51bmlxdWUxID0gMSkgQU5EIChiLnVu aXF1ZTEgPSAyKSkgT1IgKChhLnVuaXF1ZTIgPSBBTlkgKCd7Myw3fSc6OmludGVnZXJbXSkp IEFORCAoYi5odW5kcmVkID0gNCkpKQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gdGVu azEgYgorICAgICAgICAgUmVjaGVjayBDb25kOiAoKHVuaXF1ZTEgPSAyKSBPUiAoaHVuZHJl ZCA9IDQpKQorICAgICAgICAgLT4gIEJpdG1hcE9yCisgICAgICAgICAgICAgICAtPiAgQml0 bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdW5pcXVlMQorICAgICAgICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKHVuaXF1ZTEgPSAyKQorICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJ bmRleCBTY2FuIG9uIHRlbmsxX2h1bmRyZWQKKyAgICAgICAgICAgICAgICAgICAgIEluZGV4 IENvbmQ6IChodW5kcmVkID0gNCkKKyAgIC0+ICBNYXRlcmlhbGl6ZQorICAgICAgICAgLT4g IEJpdG1hcCBIZWFwIFNjYW4gb24gdGVuazEgYQorICAgICAgICAgICAgICAgUmVjaGVjayBD b25kOiAoKHVuaXF1ZTEgPSAxKSBPUiAodW5pcXVlMiA9IEFOWSAoJ3szLDd9Jzo6aW50ZWdl cltdKSkpCisgICAgICAgICAgICAgICAtPiAgQml0bWFwT3IKKyAgICAgICAgICAgICAgICAg ICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV91bmlxdWUxCisgICAgICAgICAg ICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMSA9IDEpCiAgICAgICAgICAg ICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdW5pcXVlMgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTIgPSA3KQotKDE5 IHJvd3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVl MiA9IEFOWSAoJ3szLDd9Jzo6aW50ZWdlcltdKSkKKygxNyByb3dzKQorCitleHBsYWluIChj b3N0cyBvZmYpCitzZWxlY3QgKiBmcm9tIHRlbmsxIGEgam9pbiB0ZW5rMSBiIG9uCisgIChh LnVuaXF1ZTEgPCAyMCBvciBhLnVuaXF1ZTEgPSAzIG9yIGEudW5pcXVlMSA9IDEgYW5kIGIu dW5pcXVlMSA9IDIpIG9yCisgICgoYS51bmlxdWUyID0gMyBvciBhLnVuaXF1ZTIgPSA3KSBh bmQgYi5odW5kcmVkID0gNCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIE5lc3RlZCBMb29wCisgICBKb2luIEZpbHRlcjogKChhLnVu aXF1ZTEgPCAyMCkgT1IgKGEudW5pcXVlMSA9IDMpIE9SICgoYS51bmlxdWUxID0gMSkgQU5E IChiLnVuaXF1ZTEgPSAyKSkgT1IgKChhLnVuaXF1ZTIgPSBBTlkgKCd7Myw3fSc6OmludGVn ZXJbXSkpIEFORCAoYi5odW5kcmVkID0gNCkpKQorICAgLT4gIFNlcSBTY2FuIG9uIHRlbmsx IGIKKyAgIC0+ICBNYXRlcmlhbGl6ZQorICAgICAgICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4g b24gdGVuazEgYQorICAgICAgICAgICAgICAgUmVjaGVjayBDb25kOiAoKHVuaXF1ZTEgPCAy MCkgT1IgKHVuaXF1ZTEgPSAzKSBPUiAodW5pcXVlMSA9IDEpIE9SICh1bmlxdWUyID0gQU5Z ICgnezMsN30nOjppbnRlZ2VyW10pKSkKKyAgICAgICAgICAgICAgIC0+ICBCaXRtYXBPcgor ICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3Vu aXF1ZTEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUx IDwgMjApCisgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24g dGVuazFfdW5pcXVlMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KHVuaXF1ZTEgPSAzKQorICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBT Y2FuIG9uIHRlbmsxX3VuaXF1ZTEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4 IENvbmQ6ICh1bmlxdWUxID0gMSkKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAg SW5kZXggU2NhbiBvbiB0ZW5rMV91bmlxdWUyCisgICAgICAgICAgICAgICAgICAgICAgICAg ICBJbmRleCBDb25kOiAodW5pcXVlMiA9IEFOWSAoJ3szLDd9Jzo6aW50ZWdlcltdKSkKKygx NSByb3dzKQogCitSRVNFVCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb247CiAtLQogLS0gdGVz dCBwbGFjZW1lbnQgb2YgbW92YWJsZSBxdWFscyBpbiBhIHBhcmFtZXRlcml6ZWQgam9pbiB0 cmVlCiAtLQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRp b25fcHJ1bmUub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fcHJ1 bmUub3V0CmluZGV4IGJmMDY1N2I5ZjIuLjFlMTUzYzNiYjUgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3BydW5lLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9wcnVuZS5vdXQKQEAgLTgyLDI1ICs4Miw0 NyBAQCBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbHAgd2hlcmUgYSBpcyBu dWxsOwogKDIgcm93cykKIAogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxw IHdoZXJlIGEgPSAnYScgb3IgYSA9ICdjJzsKLSAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEFwcGVuZAogICAgLT4gIFNlcSBTY2Fu IG9uIGxwX2FkIGxwXzEKLSAgICAgICAgIEZpbHRlcjogKChhID0gJ2EnOjpicGNoYXIpIE9S IChhID0gJ2MnOjpicGNoYXIpKQorICAgICAgICAgRmlsdGVyOiAoYSA9IEFOWSAoJ3thLGN9 Jzo6YnBjaGFyW10pKQogICAgLT4gIFNlcSBTY2FuIG9uIGxwX2JjIGxwXzIKLSAgICAgICAg IEZpbHRlcjogKChhID0gJ2EnOjpicGNoYXIpIE9SIChhID0gJ2MnOjpicGNoYXIpKQorICAg ICAgICAgRmlsdGVyOiAoYSA9IEFOWSAoJ3thLGN9Jzo6YnBjaGFyW10pKQogKDUgcm93cykK IAogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgaXMgbm90 IG51bGwgYW5kIChhID0gJ2EnIG9yIGEgPSAnYycpOwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogIEFwcGVuZAogICAgLT4gIFNlcSBTY2FuIG9uIGxwX2FkIGxwXzEK LSAgICAgICAgIEZpbHRlcjogKChhIElTIE5PVCBOVUxMKSBBTkQgKChhID0gJ2EnOjpicGNo YXIpIE9SIChhID0gJ2MnOjpicGNoYXIpKSkKKyAgICAgICAgIEZpbHRlcjogKChhIElTIE5P VCBOVUxMKSBBTkQgKGEgPSBBTlkgKCd7YSxjfSc6OmJwY2hhcltdKSkpCiAgICAtPiAgU2Vx IFNjYW4gb24gbHBfYmMgbHBfMgotICAgICAgICAgRmlsdGVyOiAoKGEgSVMgTk9UIE5VTEwp IEFORCAoKGEgPSAnYSc6OmJwY2hhcikgT1IgKGEgPSAnYyc6OmJwY2hhcikpKQorICAgICAg ICAgRmlsdGVyOiAoKGEgSVMgTk9UIE5VTEwpIEFORCAoYSA9IEFOWSAoJ3thLGN9Jzo6YnBj aGFyW10pKSkKICg1IHJvd3MpCiAKK1NFVCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24gPSBv bjsKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhID0gJ2En IG9yIGEgPSAnYyc7CisgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBBcHBlbmQKKyAgIC0+ICBTZXEgU2NhbiBvbiBscF9hZCBscF8xCisgICAgICAgICBG aWx0ZXI6IChhID0gQU5ZICgne2EsY30nOjpicGNoYXJbXSkpCisgICAtPiAgU2VxIFNjYW4g b24gbHBfYmMgbHBfMgorICAgICAgICAgRmlsdGVyOiAoYSA9IEFOWSAoJ3thLGN9Jzo6YnBj aGFyW10pKQorKDUgcm93cykKKworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9t IGxwIHdoZXJlIGEgaXMgbm90IG51bGwgYW5kIChhID0gJ2EnIG9yIGEgPSAnYycpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAgIC0+ICBTZXEgU2Nh biBvbiBscF9hZCBscF8xCisgICAgICAgICBGaWx0ZXI6ICgoYSBJUyBOT1QgTlVMTCkgQU5E IChhID0gQU5ZICgne2EsY30nOjpicGNoYXJbXSkpKQorICAgLT4gIFNlcSBTY2FuIG9uIGxw X2JjIGxwXzIKKyAgICAgICAgIEZpbHRlcjogKChhIElTIE5PVCBOVUxMKSBBTkQgKGEgPSBB TlkgKCd7YSxjfSc6OmJwY2hhcltdKSkpCisoNSByb3dzKQorCitSRVNFVCBlbmFibGVfb3Jf dHJhbnNmb3JtYXRpb247CiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbHAg d2hlcmUgYSA8PiAnZyc7CiAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAK IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTE1LDEwICs1Mzcs MTAgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhIDw9 IDMxOwogKDI3IHJvd3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBy bHAgd2hlcmUgYSA9IDEgb3IgYSA9IDc7Ci0gICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgU2VxIFNjYW4gb24gcmxwMiBybHAKLSAgIEZpbHRlcjog KChhID0gMSkgT1IgKGEgPSA3KSkKKyAgIEZpbHRlcjogKGEgPSBBTlkgKCd7MSw3fSc6Omlu dGVnZXJbXSkpCiAoMiByb3dzKQogCiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZy b20gcmxwIHdoZXJlIGEgPSAxIG9yIGIgPSAnYWInOwpAQCAtNTk2LDEzICs2MTgsMTMgQEAg ZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhIDwgMSBvciAo YSA+IDIwIGFuZCBhIDwgMjUpOwogCiAtLSB3aGVyZSBjbGF1c2UgY29udHJhZGljdHMgc3Vi LXBhcnRpdGlvbidzIGNvbnN0cmFpbnQKIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICog ZnJvbSBybHAgd2hlcmUgYSA9IDIwIG9yIGEgPSA0MDsKLSAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogIEFwcGVuZAogICAgLT4gIFNlcSBTY2FuIG9uIHJscDRfMSBybHBfMQotICAgICAg ICAgRmlsdGVyOiAoKGEgPSAyMCkgT1IgKGEgPSA0MCkpCisgICAgICAgICBGaWx0ZXI6IChh ID0gQU5ZICgnezIwLDQwfSc6OmludGVnZXJbXSkpCiAgICAtPiAgU2VxIFNjYW4gb24gcmxw NV9kZWZhdWx0IHJscF8yCi0gICAgICAgICBGaWx0ZXI6ICgoYSA9IDIwKSBPUiAoYSA9IDQw KSkKKyAgICAgICAgIEZpbHRlcjogKGEgPSBBTlkgKCd7MjAsNDB9Jzo6aW50ZWdlcltdKSkK ICg1IHJvd3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAzIHdo ZXJlIGEgPSAyMDsgICAvKiBlbXB0eSAqLwpAQCAtNjcxLDYgKzY5MywxNjMgQEAgZXhwbGFp biAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSAoYSA9IDEgYW5kIGEgPSAz KSBvciAoYSA+IDEgYW5kIGEgPQogICAgICAgICAgRmlsdGVyOiAoKChhID0gMSkgQU5EIChh ID0gMykpIE9SICgoYSA+IDEpIEFORCAoYSA9IDE1KSkpCiAoMTEgcm93cykKIAorU0VUIGVu YWJsZV9vcl90cmFuc2Zvcm1hdGlvbiA9IG9uOworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxl Y3QgKiBmcm9tIHJscCB3aGVyZSBhID0gMSBvciBhID0gNzsKKyAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcmxwMiBybHAKKyAgIEZpbHRlcjogKGEg PSBBTlkgKCd7MSw3fSc6OmludGVnZXJbXSkpCisoMiByb3dzKQorCitleHBsYWluIChjb3N0 cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPSAxIG9yIGIgPSAnYWInOworICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIEFwcGVuZAorICAgLT4gIFNlcSBTY2FuIG9uIHJscDEgcmxwXzEKKyAgICAgICAgIEZp bHRlcjogKChhID0gMSkgT1IgKChiKTo6dGV4dCA9ICdhYic6OnRleHQpKQorICAgLT4gIFNl cSBTY2FuIG9uIHJscDIgcmxwXzIKKyAgICAgICAgIEZpbHRlcjogKChhID0gMSkgT1IgKChi KTo6dGV4dCA9ICdhYic6OnRleHQpKQorICAgLT4gIFNlcSBTY2FuIG9uIHJscDNhYmNkIHJs cF8zCisgICAgICAgICBGaWx0ZXI6ICgoYSA9IDEpIE9SICgoYik6OnRleHQgPSAnYWInOjp0 ZXh0KSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHA0XzEgcmxwXzQKKyAgICAgICAgIEZpbHRl cjogKChhID0gMSkgT1IgKChiKTo6dGV4dCA9ICdhYic6OnRleHQpKQorICAgLT4gIFNlcSBT Y2FuIG9uIHJscDRfMiBybHBfNQorICAgICAgICAgRmlsdGVyOiAoKGEgPSAxKSBPUiAoKGIp Ojp0ZXh0ID0gJ2FiJzo6dGV4dCkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwNF9kZWZhdWx0 IHJscF82CisgICAgICAgICBGaWx0ZXI6ICgoYSA9IDEpIE9SICgoYik6OnRleHQgPSAnYWIn Ojp0ZXh0KSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHA1XzEgcmxwXzcKKyAgICAgICAgIEZp bHRlcjogKChhID0gMSkgT1IgKChiKTo6dGV4dCA9ICdhYic6OnRleHQpKQorICAgLT4gIFNl cSBTY2FuIG9uIHJscDVfZGVmYXVsdCBybHBfOAorICAgICAgICAgRmlsdGVyOiAoKGEgPSAx KSBPUiAoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4dCkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxw X2RlZmF1bHRfMTAgcmxwXzkKKyAgICAgICAgIEZpbHRlcjogKChhID0gMSkgT1IgKChiKTo6 dGV4dCA9ICdhYic6OnRleHQpKQorICAgLT4gIFNlcSBTY2FuIG9uIHJscF9kZWZhdWx0XzMw IHJscF8xMAorICAgICAgICAgRmlsdGVyOiAoKGEgPSAxKSBPUiAoKGIpOjp0ZXh0ID0gJ2Fi Jzo6dGV4dCkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwX2RlZmF1bHRfbnVsbCBybHBfMTEK KyAgICAgICAgIEZpbHRlcjogKChhID0gMSkgT1IgKChiKTo6dGV4dCA9ICdhYic6OnRleHQp KQorICAgLT4gIFNlcSBTY2FuIG9uIHJscF9kZWZhdWx0X2RlZmF1bHQgcmxwXzEyCisgICAg ICAgICBGaWx0ZXI6ICgoYSA9IDEpIE9SICgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSkKKygy NSByb3dzKQorCitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJl IGEgPiAyMCBhbmQgYSA8IDI3OworICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg QXBwZW5kCisgICAtPiAgU2VxIFNjYW4gb24gcmxwNF8xIHJscF8xCisgICAgICAgICBGaWx0 ZXI6ICgoYSA+IDIwKSBBTkQgKGEgPCAyNykpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwNF8y IHJscF8yCisgICAgICAgICBGaWx0ZXI6ICgoYSA+IDIwKSBBTkQgKGEgPCAyNykpCisoNSBy b3dzKQorCitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEg PSAyOTsKKyAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcmxwNF9kZWZhdWx0IHJscAorICAgRmls dGVyOiAoYSA9IDI5KQorKDIgcm93cykKKworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3Qg KiBmcm9tIHJscCB3aGVyZSBhID49IDI5OworICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHA0X2RlZmF1bHQg cmxwXzEKKyAgICAgICAgIEZpbHRlcjogKGEgPj0gMjkpCisgICAtPiAgU2VxIFNjYW4gb24g cmxwNV8xIHJscF8yCisgICAgICAgICBGaWx0ZXI6IChhID49IDI5KQorICAgLT4gIFNlcSBT Y2FuIG9uIHJscDVfZGVmYXVsdCBybHBfMworICAgICAgICAgRmlsdGVyOiAoYSA+PSAyOSkK KyAgIC0+ICBTZXEgU2NhbiBvbiBybHBfZGVmYXVsdF8zMCBybHBfNAorICAgICAgICAgRmls dGVyOiAoYSA+PSAyOSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHBfZGVmYXVsdF9kZWZhdWx0 IHJscF81CisgICAgICAgICBGaWx0ZXI6IChhID49IDI5KQorKDExIHJvd3MpCisKK2V4cGxh aW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA8IDEgb3IgKGEgPiAy MCBhbmQgYSA8IDI1KTsKKyAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgQXBwZW5kCisgICAtPiAgU2VxIFNjYW4gb24gcmxwMSBy bHBfMQorICAgICAgICAgRmlsdGVyOiAoKGEgPCAxKSBPUiAoKGEgPiAyMCkgQU5EIChhIDwg MjUpKSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHA0XzEgcmxwXzIKKyAgICAgICAgIEZpbHRl cjogKChhIDwgMSkgT1IgKChhID4gMjApIEFORCAoYSA8IDI1KSkpCisoNSByb3dzKQorCitl eHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPSAyMCBvciBh ID0gNDA7CisgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBBcHBlbmQKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHA0XzEgcmxwXzEKKyAgICAgICAg IEZpbHRlcjogKGEgPSBBTlkgKCd7MjAsNDB9Jzo6aW50ZWdlcltdKSkKKyAgIC0+ICBTZXEg U2NhbiBvbiBybHA1X2RlZmF1bHQgcmxwXzIKKyAgICAgICAgIEZpbHRlcjogKGEgPSBBTlkg KCd7MjAsNDB9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK2V4cGxhaW4gKGNvc3RzIG9m Zikgc2VsZWN0ICogZnJvbSBybHAzIHdoZXJlIGEgPSAyMDsgICAvKiBlbXB0eSAqLworICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg UmVzdWx0CisgICBPbmUtVGltZSBGaWx0ZXI6IGZhbHNlCisoMiByb3dzKQorCitleHBsYWlu IChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPiAxIGFuZCBhID0gMTA7 CS8qIG9ubHkgZGVmYXVsdCAqLworICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHJs cF9kZWZhdWx0XzEwIHJscAorICAgRmlsdGVyOiAoKGEgPiAxKSBBTkQgKGEgPSAxMCkpCiso MiByb3dzKQorCitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJl IGEgPiAxIGFuZCBhID49MTU7CS8qIHJscDMgb253YXJkcywgaW5jbHVkaW5nIGRlZmF1bHQg Ki8KKyAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQK KyAgIC0+ICBTZXEgU2NhbiBvbiBybHAzYWJjZCBybHBfMQorICAgICAgICAgRmlsdGVyOiAo KGEgPiAxKSBBTkQgKGEgPj0gMTUpKQorICAgLT4gIFNlcSBTY2FuIG9uIHJscDNlZmdoIHJs cF8yCisgICAgICAgICBGaWx0ZXI6ICgoYSA+IDEpIEFORCAoYSA+PSAxNSkpCisgICAtPiAg U2VxIFNjYW4gb24gcmxwM251bGx4eSBybHBfMworICAgICAgICAgRmlsdGVyOiAoKGEgPiAx KSBBTkQgKGEgPj0gMTUpKQorICAgLT4gIFNlcSBTY2FuIG9uIHJscDNfZGVmYXVsdCBybHBf NAorICAgICAgICAgRmlsdGVyOiAoKGEgPiAxKSBBTkQgKGEgPj0gMTUpKQorICAgLT4gIFNl cSBTY2FuIG9uIHJscDRfMSBybHBfNQorICAgICAgICAgRmlsdGVyOiAoKGEgPiAxKSBBTkQg KGEgPj0gMTUpKQorICAgLT4gIFNlcSBTY2FuIG9uIHJscDRfMiBybHBfNgorICAgICAgICAg RmlsdGVyOiAoKGEgPiAxKSBBTkQgKGEgPj0gMTUpKQorICAgLT4gIFNlcSBTY2FuIG9uIHJs cDRfZGVmYXVsdCBybHBfNworICAgICAgICAgRmlsdGVyOiAoKGEgPiAxKSBBTkQgKGEgPj0g MTUpKQorICAgLT4gIFNlcSBTY2FuIG9uIHJscDVfMSBybHBfOAorICAgICAgICAgRmlsdGVy OiAoKGEgPiAxKSBBTkQgKGEgPj0gMTUpKQorICAgLT4gIFNlcSBTY2FuIG9uIHJscDVfZGVm YXVsdCBybHBfOQorICAgICAgICAgRmlsdGVyOiAoKGEgPiAxKSBBTkQgKGEgPj0gMTUpKQor ICAgLT4gIFNlcSBTY2FuIG9uIHJscF9kZWZhdWx0XzMwIHJscF8xMAorICAgICAgICAgRmls dGVyOiAoKGEgPiAxKSBBTkQgKGEgPj0gMTUpKQorICAgLT4gIFNlcSBTY2FuIG9uIHJscF9k ZWZhdWx0X2RlZmF1bHQgcmxwXzExCisgICAgICAgICBGaWx0ZXI6ICgoYSA+IDEpIEFORCAo YSA+PSAxNSkpCisoMjMgcm93cykKKworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBm cm9tIHJscCB3aGVyZSBhID0gMSBhbmQgYSA9IDM7CS8qIGVtcHR5ICovCisgICAgICAgIFFV RVJZIFBMQU4gICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBSZXN1bHQK KyAgIE9uZS1UaW1lIEZpbHRlcjogZmFsc2UKKygyIHJvd3MpCisKK2V4cGxhaW4gKGNvc3Rz IG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgKGEgPSAxIGFuZCBhID0gMykgb3IgKGEg PiAxIGFuZCBhID0gMTUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFwcGVu ZAorICAgLT4gIFNlcSBTY2FuIG9uIHJscDIgcmxwXzEKKyAgICAgICAgIEZpbHRlcjogKCgo YSA9IDEpIEFORCAoYSA9IDMpKSBPUiAoKGEgPiAxKSBBTkQgKGEgPSAxNSkpKQorICAgLT4g IFNlcSBTY2FuIG9uIHJscDNhYmNkIHJscF8yCisgICAgICAgICBGaWx0ZXI6ICgoKGEgPSAx KSBBTkQgKGEgPSAzKSkgT1IgKChhID4gMSkgQU5EIChhID0gMTUpKSkKKyAgIC0+ICBTZXEg U2NhbiBvbiBybHAzZWZnaCBybHBfMworICAgICAgICAgRmlsdGVyOiAoKChhID0gMSkgQU5E IChhID0gMykpIE9SICgoYSA+IDEpIEFORCAoYSA9IDE1KSkpCisgICAtPiAgU2VxIFNjYW4g b24gcmxwM251bGx4eSBybHBfNAorICAgICAgICAgRmlsdGVyOiAoKChhID0gMSkgQU5EIChh ID0gMykpIE9SICgoYSA+IDEpIEFORCAoYSA9IDE1KSkpCisgICAtPiAgU2VxIFNjYW4gb24g cmxwM19kZWZhdWx0IHJscF81CisgICAgICAgICBGaWx0ZXI6ICgoKGEgPSAxKSBBTkQgKGEg PSAzKSkgT1IgKChhID4gMSkgQU5EIChhID0gMTUpKSkKKygxMSByb3dzKQorCitSRVNFVCBl bmFibGVfb3JfdHJhbnNmb3JtYXRpb247CiAtLSBtdWx0aS1jb2x1bW4ga2V5cwogY3JlYXRl IHRhYmxlIG1jM3AgKGEgaW50LCBiIGludCwgYyBpbnQpIHBhcnRpdGlvbiBieSByYW5nZSAo YSwgYWJzKGIpLCBjKTsKIGNyZWF0ZSB0YWJsZSBtYzNwX2RlZmF1bHQgcGFydGl0aW9uIG9m IG1jM3AgZGVmYXVsdDsKQEAgLTIwNzIsMTAgKzIyNTEsMTAgQEAgZXhwbGFpbiAoY29zdHMg b2ZmKSBzZWxlY3QgKiBmcm9tIGhwIHdoZXJlIGEgPSAxIGFuZCBiID0gJ2FiY2RlJzsKIAog ZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGhwIHdoZXJlIGEgPSAxIGFuZCBi ID0gJ2FiY2RlJyBhbmQKICAgKGMgPSAyIG9yIGMgPSAzKTsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogIFNlcSBTY2FuIG9uIGhwMiBocAotICAgRmlsdGVyOiAo KGEgPSAxKSBBTkQgKGIgPSAnYWJjZGUnOjp0ZXh0KSBBTkQgKChjID0gMikgT1IgKGMgPSAz KSkpCisgICBGaWx0ZXI6ICgoYyA9IEFOWSAoJ3syLDN9Jzo6aW50ZWdlcltdKSkgQU5EIChh ID0gMSkgQU5EIChiID0gJ2FiY2RlJzo6dGV4dCkpCiAoMiByb3dzKQogCiBkcm9wIHRhYmxl IGhwMjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHNfZXh0 Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHNfZXh0Lm91dAppbmRleCAx MDkwM2JkYWIwLi42ZjU1YjllM2VjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3N0YXRzX2V4dC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z dGF0c19leHQub3V0CkBAIC0xMzIyLDE5ICsxMzIyLDE5IEBAIFNFTEVDVCAqIEZST00gY2hl Y2tfZXN0aW1hdGVkX3Jvd3MoJ1NFTEVDVCAqIEZST00gZnVuY3Rpb25hbF9kZXBlbmRlbmNp ZXMgV0hFUkUKIFNFTEVDVCAqIEZST00gY2hlY2tfZXN0aW1hdGVkX3Jvd3MoJ1NFTEVDVCAq IEZST00gZnVuY3Rpb25hbF9kZXBlbmRlbmNpZXMgV0hFUkUgKGEgPSAxIE9SIGEgPSA1MSkg QU5EIGIgPSAnJzEnJycpOwogIGVzdGltYXRlZCB8IGFjdHVhbCAKIC0tLS0tLS0tLS0tKy0t LS0tLS0tCi0gICAgICAgIDk5IHwgICAgMTAwCisgICAgICAgMTAwIHwgICAgMTAwCiAoMSBy b3cpCiAKIFNFTEVDVCAqIEZST00gY2hlY2tfZXN0aW1hdGVkX3Jvd3MoJ1NFTEVDVCAqIEZS T00gZnVuY3Rpb25hbF9kZXBlbmRlbmNpZXMgV0hFUkUgKGEgPSAxIE9SIGEgPSA1MSkgQU5E IChiID0gJycxJycgT1IgYiA9ICcnMicnKScpOwogIGVzdGltYXRlZCB8IGFjdHVhbCAKIC0t LS0tLS0tLS0tKy0tLS0tLS0tCi0gICAgICAgIDk5IHwgICAgMTAwCisgICAgICAgMTAwIHwg ICAgMTAwCiAoMSByb3cpCiAKIFNFTEVDVCAqIEZST00gY2hlY2tfZXN0aW1hdGVkX3Jvd3Mo J1NFTEVDVCAqIEZST00gZnVuY3Rpb25hbF9kZXBlbmRlbmNpZXMgV0hFUkUgKGEgPSAxIE9S IGEgPSAyIE9SIGEgPSA1MSBPUiBhID0gNTIpIEFORCAoYiA9ICcnMScnIE9SIGIgPSAnJzIn JyknKTsKICBlc3RpbWF0ZWQgfCBhY3R1YWwgCiAtLS0tLS0tLS0tLSstLS0tLS0tLQotICAg ICAgIDE5NyB8ICAgIDIwMAorICAgICAgIDIwMCB8ICAgIDIwMAogKDEgcm93KQogCiAtLSBP UiBjbGF1c2VzIHJlZmVyZW5jaW5nIGRpZmZlcmVudCBhdHRyaWJ1dGVzIGFyZSBpbmNvbXBh dGlibGUKQEAgLTE2NjQsMTkgKzE2NjQsMTkgQEAgU0VMRUNUICogRlJPTSBjaGVja19lc3Rp bWF0ZWRfcm93cygnU0VMRUNUICogRlJPTSBmdW5jdGlvbmFsX2RlcGVuZGVuY2llcyBXSEVS RQogU0VMRUNUICogRlJPTSBjaGVja19lc3RpbWF0ZWRfcm93cygnU0VMRUNUICogRlJPTSBm dW5jdGlvbmFsX2RlcGVuZGVuY2llcyBXSEVSRSAoKGEgKiAyKSA9IDIgT1IgKGEgKiAyKSA9 IDEwMikgQU5EIHVwcGVyKGIpID0gJycxJycnKTsKICBlc3RpbWF0ZWQgfCBhY3R1YWwgCiAt LS0tLS0tLS0tLSstLS0tLS0tLQotICAgICAgICA5OSB8ICAgIDEwMAorICAgICAgIDEwMCB8 ICAgIDEwMAogKDEgcm93KQogCiBTRUxFQ1QgKiBGUk9NIGNoZWNrX2VzdGltYXRlZF9yb3dz KCdTRUxFQ1QgKiBGUk9NIGZ1bmN0aW9uYWxfZGVwZW5kZW5jaWVzIFdIRVJFICgoYSAqIDIp ID0gMiBPUiAoYSAqIDIpID0gMTAyKSBBTkQgKHVwcGVyKGIpID0gJycxJycgT1IgdXBwZXIo YikgPSAnJzInJyknKTsKICBlc3RpbWF0ZWQgfCBhY3R1YWwgCiAtLS0tLS0tLS0tLSstLS0t LS0tLQotICAgICAgICA5OSB8ICAgIDEwMAorICAgICAgIDEwMCB8ICAgIDEwMAogKDEgcm93 KQogCiBTRUxFQ1QgKiBGUk9NIGNoZWNrX2VzdGltYXRlZF9yb3dzKCdTRUxFQ1QgKiBGUk9N IGZ1bmN0aW9uYWxfZGVwZW5kZW5jaWVzIFdIRVJFICgoYSAqIDIpID0gMiBPUiAoYSAqIDIp ID0gNCBPUiAoYSAqIDIpID0gMTAyIE9SIChhICogMikgPSAxMDQpIEFORCAodXBwZXIoYikg PSAnJzEnJyBPUiB1cHBlcihiKSA9ICcnMicnKScpOwogIGVzdGltYXRlZCB8IGFjdHVhbCAK IC0tLS0tLS0tLS0tKy0tLS0tLS0tCi0gICAgICAgMTk3IHwgICAgMjAwCisgICAgICAgMjAw IHwgICAgMjAwCiAoMSByb3cpCiAKIC0tIE9SIGNsYXVzZXMgcmVmZXJlbmNpbmcgZGlmZmVy ZW50IGF0dHJpYnV0ZXMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c3lzdmlld3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zeXN2aWV3cy5vdXQK aW5kZXggOWJlN2FjYTJiOC4uMWY5MDI5YjViMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zeXN2aWV3cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zeXN2aWV3cy5vdXQKQEAgLTEyNCw2ICsxMjQsNyBAQCBzZWxlY3QgbmFtZSwgc2V0 dGluZyBmcm9tIHBnX3NldHRpbmdzIHdoZXJlIG5hbWUgbGlrZSAnZW5hYmxlJSc7CiAgZW5h YmxlX21lbW9pemUgICAgICAgICAgICAgICAgIHwgb24KICBlbmFibGVfbWVyZ2Vqb2luICAg ICAgICAgICAgICAgfCBvbgogIGVuYWJsZV9uZXN0bG9vcCAgICAgICAgICAgICAgICB8IG9u CisgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uICAgICAgIHwgb24KICBlbmFibGVfcGFyYWxs ZWxfYXBwZW5kICAgICAgICAgfCBvbgogIGVuYWJsZV9wYXJhbGxlbF9oYXNoICAgICAgICAg ICB8IG9uCiAgZW5hYmxlX3BhcnRpdGlvbl9wcnVuaW5nICAgICAgIHwgb24KQEAgLTEzNCw3 ICsxMzUsNyBAQCBzZWxlY3QgbmFtZSwgc2V0dGluZyBmcm9tIHBnX3NldHRpbmdzIHdoZXJl IG5hbWUgbGlrZSAnZW5hYmxlJSc7CiAgZW5hYmxlX3NlcXNjYW4gICAgICAgICAgICAgICAg IHwgb24KICBlbmFibGVfc29ydCAgICAgICAgICAgICAgICAgICAgfCBvbgogIGVuYWJsZV90 aWRzY2FuICAgICAgICAgICAgICAgICB8IG9uCi0oMjMgcm93cykKKygyNCByb3dzKQogCiAt LSBUaGVyZSBhcmUgYWx3YXlzIHdhaXQgZXZlbnQgZGVzY3JpcHRpb25zIGZvciB2YXJpb3Vz IHR5cGVzLgogc2VsZWN0IHR5cGUsIGNvdW50KCopID4gMCBhcyBvayBGUk9NIHBnX3dhaXRf ZXZlbnRzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RpZHNjYW4u b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90aWRzY2FuLm91dAppbmRleCBmMTMz YjVhNGFjLi4yYTA3OWU5OTZiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3RpZHNjYW4ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdGlkc2Nh bi5vdXQKQEAgLTQzLDEwICs0MywyNiBAQCBTRUxFQ1QgY3RpZCwgKiBGUk9NIHRpZHNjYW4g V0hFUkUgJygwLDEpJyA9IGN0aWQ7CiAtLSBPUidkIGNsYXVzZXMKIEVYUExBSU4gKENPU1RT IE9GRikKIFNFTEVDVCBjdGlkLCAqIEZST00gdGlkc2NhbiBXSEVSRSBjdGlkID0gJygwLDIp JyBPUiAnKDAsMSknID0gY3RpZDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFRpZCBT Y2FuIG9uIHRpZHNjYW4KKyAgIFRJRCBDb25kOiAoY3RpZCA9IEFOWSAoJ3siKDAsMikiLCIo MCwxKSJ9Jzo6dGlkW10pKQorKDIgcm93cykKKworU0VMRUNUIGN0aWQsICogRlJPTSB0aWRz Y2FuIFdIRVJFIGN0aWQgPSAnKDAsMiknIE9SICcoMCwxKScgPSBjdGlkOworIGN0aWQgIHwg aWQgCistLS0tLS0tKy0tLS0KKyAoMCwxKSB8ICAxCisgKDAsMikgfCAgMgorKDIgcm93cykK KworU0VUIGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbiA9IG9uOworRVhQTEFJTiAoQ09TVFMg T0ZGKQorU0VMRUNUIGN0aWQsICogRlJPTSB0aWRzY2FuIFdIRVJFIGN0aWQgPSAnKDAsMikn IE9SICcoMCwxKScgPSBjdGlkOworICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFRpZCBTY2FuIG9uIHRpZHNjYW4KLSAgIFRJ RCBDb25kOiAoKGN0aWQgPSAnKDAsMiknOjp0aWQpIE9SICgnKDAsMSknOjp0aWQgPSBjdGlk KSkKKyAgIFRJRCBDb25kOiAoY3RpZCA9IEFOWSAoJ3siKDAsMikiLCIoMCwxKSJ9Jzo6dGlk W10pKQogKDIgcm93cykKIAogU0VMRUNUIGN0aWQsICogRlJPTSB0aWRzY2FuIFdIRVJFIGN0 aWQgPSAnKDAsMiknIE9SICcoMCwxKScgPSBjdGlkOwpAQCAtNTYsNiArNzIsNyBAQCBTRUxF Q1QgY3RpZCwgKiBGUk9NIHRpZHNjYW4gV0hFUkUgY3RpZCA9ICcoMCwyKScgT1IgJygwLDEp JyA9IGN0aWQ7CiAgKDAsMikgfCAgMgogKDIgcm93cykKIAorUkVTRVQgZW5hYmxlX29yX3Ry YW5zZm9ybWF0aW9uOwogLS0gY3RpZCA9IFNjYWxhckFycmF5T3AgLSBpbXBsZW1lbnRlZCBh cyB0aWRzY2FuCiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgY3RpZCwgKiBGUk9NIHRp ZHNjYW4gV0hFUkUgY3RpZCA9IEFOWShBUlJBWVsnKDAsMSknLCAnKDAsMiknXTo6dGlkW10p OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2luZGV4LnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9pbmRleC5zcWwKaW5kZXggZDQ5Y2U5ZjMw MC4uNTZmZGUxNWJjMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRl X2luZGV4LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfaW5kZXguc3Fs CkBAIC03MzcsNiArNzM3LDQxIEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCiBTRUxF Q1QgY291bnQoKikgRlJPTSB0ZW5rMQogICBXSEVSRSBodW5kcmVkID0gNDIgQU5EICh0aG91 c2FuZCA9IDQyIE9SIHRob3VzYW5kID0gOTkpOwogCitTRVQgZW5hYmxlX29yX3RyYW5zZm9y bWF0aW9uID0gb247CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgKiBGUk9NIHRlbmsx CisgIFdIRVJFIHRob3VzYW5kID0gNDIgQU5EICh0ZW50aG91cyA9IDEgT1IgdGVudGhvdXMg PSAzIE9SIHRlbnRob3VzID0gNDIpOworU0VMRUNUICogRlJPTSB0ZW5rMQorICBXSEVSRSB0 aG91c2FuZCA9IDQyIEFORCAodGVudGhvdXMgPSAxIE9SIHRlbnRob3VzID0gMyBPUiB0ZW50 aG91cyA9IDQyKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIEZS T00gdGVuazEKKyAgV0hFUkUgaHVuZHJlZCA9IDQyIEFORCAodGhvdXNhbmQgPSA0MiBPUiB0 aG91c2FuZCA9IDk5KTsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCisgIFdIRVJFIGh1 bmRyZWQgPSA0MiBBTkQgKHRob3VzYW5kID0gNDIgT1IgdGhvdXNhbmQgPSA5OSk7CitFWFBM QUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQorICBXSEVSRSBo dW5kcmVkID0gNDIgQU5EICh0aG91c2FuZCA8IDQyIE9SIHRob3VzYW5kIDwgOTkgT1IgNDMg PiB0aG91c2FuZCBPUiA0MiA+IHRob3VzYW5kKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIGNvdW50KCopIEZST00gdGVuazEKKyAgV0hFUkUgdGhvdXNhbmQgPSA0MiBBTkQg KHRlbnRob3VzID0gMSBPUiB0ZW50aG91cyA9IDMpIE9SIHRob3VzYW5kID0gNDE7CitTRUxF Q1QgY291bnQoKikgRlJPTSB0ZW5rMQorICBXSEVSRSB0aG91c2FuZCA9IDQyIEFORCAodGVu dGhvdXMgPSAxIE9SIHRlbnRob3VzID0gMykgT1IgdGhvdXNhbmQgPSA0MTsKKworRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIEZST00gdGVuazEKKyAgV0hFUkUgaHVu ZHJlZCA9IDQyIEFORCAodGhvdXNhbmQgPSA0MiBPUiB0aG91c2FuZCA9IDk5IE9SIHRlbnRo b3VzIDwgMikgT1IgdGhvdXNhbmQgPSA0MTsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsx CisgIFdIRVJFIGh1bmRyZWQgPSA0MiBBTkQgKHRob3VzYW5kID0gNDIgT1IgdGhvdXNhbmQg PSA5OSBPUiB0ZW50aG91cyA8IDIpIE9SIHRob3VzYW5kID0gNDE7CisKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCisgIFdIRVJFIGh1bmRyZWQg PSA0MiBBTkQgKHRob3VzYW5kID0gNDIgT1IgdGhvdXNhbmQgPSA0MSBPUiB0aG91c2FuZCA9 IDk5IEFORCB0ZW50aG91cyA9IDIpOworU0VMRUNUIGNvdW50KCopIEZST00gdGVuazEKKyAg V0hFUkUgaHVuZHJlZCA9IDQyIEFORCAodGhvdXNhbmQgPSA0MiBPUiB0aG91c2FuZCA9IDQx IE9SIHRob3VzYW5kID0gOTkgQU5EIHRlbnRob3VzID0gMik7CitSRVNFVCBlbmFibGVfb3Jf dHJhbnNmb3JtYXRpb247CisKIC0tCiAtLSBDaGVjayBiZWhhdmlvciB3aXRoIGR1cGxpY2F0 ZSBpbmRleCBjb2x1bW4gY29udGVudHMKIC0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9qb2luLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pvaW4uc3FsCmluZGV4 IGM0YzZjN2I4YmEuLjE2NjM2MDgwNDMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2pvaW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pvaW4uc3FsCkBAIC0x NDA4LDYgKzE0MDgsMTYgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKQogc2VsZWN0ICogZnJvbSB0 ZW5rMSBhIGpvaW4gdGVuazEgYiBvbgogICAoYS51bmlxdWUxID0gMSBhbmQgYi51bmlxdWUx ID0gMikgb3IKICAgKChhLnVuaXF1ZTIgPSAzIG9yIGEudW5pcXVlMiA9IDcpIGFuZCBiLmh1 bmRyZWQgPSA0KTsKK1NFVCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24gPSBvbjsKK2V4cGxh aW4gKGNvc3RzIG9mZikKK3NlbGVjdCAqIGZyb20gdGVuazEgYSBqb2luIHRlbmsxIGIgb24K KyAgKGEudW5pcXVlMSA9IDEgYW5kIGIudW5pcXVlMSA9IDIpIG9yCisgICgoYS51bmlxdWUy ID0gMyBvciBhLnVuaXF1ZTIgPSA3KSBhbmQgYi5odW5kcmVkID0gNCk7CitleHBsYWluIChj b3N0cyBvZmYpCitzZWxlY3QgKiBmcm9tIHRlbmsxIGEgam9pbiB0ZW5rMSBiIG9uCisgIChh LnVuaXF1ZTEgPCAyMCBvciBhLnVuaXF1ZTEgPSAzIG9yIGEudW5pcXVlMSA9IDEgYW5kIGIu dW5pcXVlMSA9IDIpIG9yCisgICgoYS51bmlxdWUyID0gMyBvciBhLnVuaXF1ZTIgPSA3KSBh bmQgYi5odW5kcmVkID0gNCk7CitSRVNFVCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb247CiAK IC0tCiAtLSB0ZXN0IHBsYWNlbWVudCBvZiBtb3ZhYmxlIHF1YWxzIGluIGEgcGFyYW1ldGVy aXplZCBqb2luIHRyZWUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRp dGlvbl9wcnVuZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25fcHJ1bmUu c3FsCmluZGV4IGEwOWIyN2Q4MjAuLjk3MTdjOGM4MzUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9wcnVuZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcGFydGl0aW9uX3BydW5lLnNxbApAQCAtMjEsNiArMjEsMTIgQEAgZXhwbGFpbiAo Y29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgaXMgbm90IG51bGw7CiBleHBs YWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbHAgd2hlcmUgYSBpcyBudWxsOwogZXhw bGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgPSAnYScgb3IgYSA9 ICdjJzsKIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIGlz IG5vdCBudWxsIGFuZCAoYSA9ICdhJyBvciBhID0gJ2MnKTsKKworU0VUIGVuYWJsZV9vcl90 cmFuc2Zvcm1hdGlvbiA9IG9uOworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9t IGxwIHdoZXJlIGEgPSAnYScgb3IgYSA9ICdjJzsKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2Vs ZWN0ICogZnJvbSBscCB3aGVyZSBhIGlzIG5vdCBudWxsIGFuZCAoYSA9ICdhJyBvciBhID0g J2MnKTsKK1JFU0VUIGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbjsKKwogZXhwbGFpbiAoY29z dHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgPD4gJ2cnOwogZXhwbGFpbiAoY29z dHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgPD4gJ2EnIGFuZCBhIDw+ICdkJzsK IGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIG5vdCBpbiAo J2EnLCAnZCcpOwpAQCAtOTksNiArMTA1LDIyIEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgc2Vs ZWN0ICogZnJvbSBybHAgd2hlcmUgYSA+IDEgYW5kIGEgPj0xNTsJLyogcmxwMyBvbndhcmRz LCBpCiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPSAx IGFuZCBhID0gMzsJLyogZW1wdHkgKi8KIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICog ZnJvbSBybHAgd2hlcmUgKGEgPSAxIGFuZCBhID0gMykgb3IgKGEgPiAxIGFuZCBhID0gMTUp OwogCisKK1NFVCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24gPSBvbjsKK2V4cGxhaW4gKGNv c3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA9IDEgb3IgYSA9IDc7CitleHBs YWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPSAxIG9yIGIgPSAn YWInOworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhID4g MjAgYW5kIGEgPCAyNzsKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAg d2hlcmUgYSA9IDI5OworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3 aGVyZSBhID49IDI5OworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3 aGVyZSBhIDwgMSBvciAoYSA+IDIwIGFuZCBhIDwgMjUpOworZXhwbGFpbiAoY29zdHMgb2Zm KSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhID0gMjAgb3IgYSA9IDQwOworZXhwbGFpbiAo Y29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscDMgd2hlcmUgYSA9IDIwOyAgIC8qIGVtcHR5 ICovCitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPiAx IGFuZCBhID0gMTA7CS8qIG9ubHkgZGVmYXVsdCAqLworZXhwbGFpbiAoY29zdHMgb2ZmKSBz ZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhID4gMSBhbmQgYSA+PTE1OwkvKiBybHAzIG9ud2Fy ZHMsIGluY2x1ZGluZyBkZWZhdWx0ICovCitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAq IGZyb20gcmxwIHdoZXJlIGEgPSAxIGFuZCBhID0gMzsJLyogZW1wdHkgKi8KK2V4cGxhaW4g KGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgKGEgPSAxIGFuZCBhID0gMykg b3IgKGEgPiAxIGFuZCBhID0gMTUpOworUkVTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9u OworCiAtLSBtdWx0aS1jb2x1bW4ga2V5cwogY3JlYXRlIHRhYmxlIG1jM3AgKGEgaW50LCBi IGludCwgYyBpbnQpIHBhcnRpdGlvbiBieSByYW5nZSAoYSwgYWJzKGIpLCBjKTsKIGNyZWF0 ZSB0YWJsZSBtYzNwX2RlZmF1bHQgcGFydGl0aW9uIG9mIG1jM3AgZGVmYXVsdDsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RpZHNjYW4uc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvdGlkc2Nhbi5zcWwKaW5kZXggMzEzZTBmYjliNi4uMDQ5OWJlZGI5ZSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdGlkc2Nhbi5zcWwKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvdGlkc2Nhbi5zcWwKQEAgLTIyLDYgKzIyLDEyIEBAIEVYUExBSU4g KENPU1RTIE9GRikKIFNFTEVDVCBjdGlkLCAqIEZST00gdGlkc2NhbiBXSEVSRSBjdGlkID0g JygwLDIpJyBPUiAnKDAsMSknID0gY3RpZDsKIFNFTEVDVCBjdGlkLCAqIEZST00gdGlkc2Nh biBXSEVSRSBjdGlkID0gJygwLDIpJyBPUiAnKDAsMSknID0gY3RpZDsKIAorU0VUIGVuYWJs ZV9vcl90cmFuc2Zvcm1hdGlvbiA9IG9uOworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNU IGN0aWQsICogRlJPTSB0aWRzY2FuIFdIRVJFIGN0aWQgPSAnKDAsMiknIE9SICcoMCwxKScg PSBjdGlkOworU0VMRUNUIGN0aWQsICogRlJPTSB0aWRzY2FuIFdIRVJFIGN0aWQgPSAnKDAs MiknIE9SICcoMCwxKScgPSBjdGlkOworUkVTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9u OworCiAtLSBjdGlkID0gU2NhbGFyQXJyYXlPcCAtIGltcGxlbWVudGVkIGFzIHRpZHNjYW4K IEVYUExBSU4gKENPU1RTIE9GRikKIFNFTEVDVCBjdGlkLCAqIEZST00gdGlkc2NhbiBXSEVS RSBjdGlkID0gQU5ZKEFSUkFZWycoMCwxKScsICcoMCwyKSddOjp0aWRbXSk7CmRpZmYgLS1n aXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGFhN2EyNWI4ZjguLmM2MDI3YzU4OGQgMTAwNjQ0 Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0xNjU3LDYgKzE2NTcsOCBAQCBOdW1lcmlj VmFyCiBPTV91aW50MzIKIE9QCiBPU0FQZXJHcm91cFN0YXRlCitPckNsYXVzZUdyb3VwRW50 cnkKK09yQ2xhdXNlR3JvdXBLZXkKIE9TQVBlclF1ZXJ5U3RhdGUKIE9TSW5mbwogT1NTTENp cGhlcgotLSAKMi40NC4wCgo= --------------K7tUxcMVmeZ760HeehjMUO6F--