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 1r6MuF-000fNb-Ut for pgsql-hackers@arkaria.postgresql.org; Fri, 24 Nov 2023 03:31:04 +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 1r6MuD-007CHO-Dj for pgsql-hackers@arkaria.postgresql.org; Fri, 24 Nov 2023 03:31:01 +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 1r6MuC-007CHG-J0 for pgsql-hackers@lists.postgresql.org; Fri, 24 Nov 2023 03:31:01 +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 1r6Mu2-0074qT-CZ for pgsql-hackers@postgresql.org; Fri, 24 Nov 2023 03:30:59 +0000 Received: from [10.10.20.88] (node-6s3.pool-101-109.dynamic.totinternet.net [101.109.34.83]) (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 9157BE21040; Fri, 24 Nov 2023 06:30:42 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1700796646; bh=/MgsNQ9oodoJu8cRm+yXmAfRc8sHQg4oPmAjlOtFJjI=; h=Message-ID:Date:User-Agent:Subject:From:To:Cc:References: In-Reply-To:From; b=zYJSpTyHgPIj/6HnvFUWoewG0PZkGiDnAnMzK1uHSmZqSZwsQX7e+17KnhexAbjwf fGTFFL0GVhllCUF8pvZmhZGYjdcnuqcL2e9sjybijGHT7xhP8QnmASdPiUy1pUY2P+ rpMsNJCye8KnIfyMtru4BqF/6e56Yk4MxHPHoccKbNAXwRuqnPFMMTIyx5gaQqFeKq 88iIsKd04P7DQZMJLJR+dWpF878tkS7FYbDB7Px7vcqMKNVByPZQntPbwmeE0xFTXN AS/Xd1HM4yMoHZ3dxMyX+yyJ3kbDh9XwgVP77F0DCniuSkxFj8G36xnbIqFX0g5WyL qmVA5J/GHCwsQ== Content-Type: multipart/mixed; boundary="------------wJfho040adl7zt6sdD8iDRD9" Message-ID: Date: Fri, 24 Nov 2023 10:30:39 +0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: POC, WIP: OR-clause support for indexes From: Andrei Lepikhov To: Alena Rybakina , pgsql-hackers@postgresql.org Cc: Peter Geoghegan , Robert Haas , "Finnerty, Jim" , Marcos Pegoraro , teodor@sigaev.ru, Ranier Vilela , Tomas Vondra , Peter Eisentraut , Alexander Korotkov References: <567ED6CA.2040504@sigaev.ru> <89fb769c-7d45-f0c5-a9b3-b706c9661c57@postgrespro.ru> <668892c1-fb11-3a79-ce5e-1c194b7b3263@postgrespro.ru> <16a7e3aa-24c0-4986-8820-ea2857bd7b6b@postgrespro.ru> <421656a9-5df7-41bb-9d58-1c1edbd5dc3e@postgrespro.ru> <28c727ba-5260-42a8-88b0-4ecdeeca6ef8@postgrespro.ru> <4c1c2c0b-802f-45ae-a7cd-007bfd8957cf@postgrespro.ru> <52f0d302-7963-452f-8c5a-f66d261514eb@postgrespro.ru> <43ad8a48-b980-410d-a83c-5beebf82a4ed@postgrespro.ru> Content-Language: en-US Organization: Postgres Professional In-Reply-To: <43ad8a48-b980-410d-a83c-5beebf82a4ed@postgrespro.ru> 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. --------------wJfho040adl7zt6sdD8iDRD9 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 23/11/2023 16:23, Andrei Lepikhov wrote: > This code changes tests in many places. But, as I see it, it mostly > demonstrates the positive effect of the transformation. I found out that the postgres_fdw tests were impacted by the feature. Fix it, because the patch is on the commitfest and passes buildfarm. Taking advantage of this, I suppressed the expression evaluation procedure to make regression test changes more clear. -- regards, Andrei Lepikhov Postgres Professional --------------wJfho040adl7zt6sdD8iDRD9 Content-Type: text/plain; charset=UTF-8; name="v11-1-0001-Transform-OR-clause-to-ANY-expressions.patch" Content-Disposition: attachment; filename="v11-1-0001-Transform-OR-clause-to-ANY-expressions.patch" Content-Transfer-Encoding: base64 RnJvbSBlMjliMzVkMzQ0NWQ5ODUyZjNlY2I5Y2RhYTRmMjMxYzcyMzM0OTczIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmV5IFYuIExlcGlraG92IiA8YS5sZXBpa2hv dkBwb3N0Z3Jlc3Byby5ydT4KRGF0ZTogVGh1LCAyMyBOb3YgMjAyMyAxNjowMDoxMyArMDcw MApTdWJqZWN0OiBbUEFUQ0hdIFRyYW5zZm9ybSBPUiBjbGF1c2UgdG8gQU5ZIGV4cHJlc3Np b25zLgoKUmVwbGFjZSAoWD1OMSkgT1IgKFg9TjIpIC4uLiB3aXRoIFggPSBBTlkoTjEsIE4y KSBvbiB0aGUgcHJlbGltaW5hcnkgc3RhZ2Ugb2YKb3B0aW1pemF0aW9uIHdoZW4gd2UgYXJl IHN0aWxsIHdvcmtpbmcgd2l0aCBhIHRyZWUgZXhwcmVzc2lvbi4KU29tZXRpbWVzIGl0IGNh biBsZWFkIHRvIG5vdCBvcHRpbWFsIHBsYW4uIEJ1dCB3ZSB0aGluayBpdCBpcyBiZXR0ZXIg dG8gaGF2ZQphcnJheSBvZiBlbGVtZW50cyBpbnN0ZWFkIG9mIGEgbG90IG9mIE9SIGNsYXVz ZXMuIEhlcmUgaXMgYSByb29tIGZvciBmdXJ0aGVyCm9wdGltaXphdGlvbnMgb24gZGVjb21w b3NpbmcgdGhhdCBhcnJheSBpbnRvIG1vcmUgb3B0aW1hbCBwYXJ0cy4KLS0tCiAuLi4vcG9z dGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQgICAgfCAgIDggKy0KIHNyYy9i YWNrZW5kL25vZGVzL3F1ZXJ5anVtYmxlZnVuY3MuYyAgICAgICAgICB8ICAzMCArKwogc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgICAgICAgICAgIHwgMjg0ICsrKysr KysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgICAg ICAgICAgIHwgIDEwICsKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25m LnNhbXBsZSB8ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9xdWVyeWp1bWJsZS5oICAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCAgICAg ICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2lu ZGV4Lm91dCAgICB8IDE0MSArKysrKysrLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Z3VjLm91dCAgICAgICAgICAgICB8ICAgMyArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9pbmhlcml0Lm91dCAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2pvaW4ub3V0ICAgICAgICAgICAgfCAgNjIgKysrLQogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wYXJ0aXRpb25fcHJ1bmUub3V0IHwgMjE1ICsrKysrKysrKysrLS0KIHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAgICAgICB8ICAgNCArLQogc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0c19leHQub3V0ICAgICAgIHwgIDEyICstCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N5c3ZpZXdzLm91dCAgICAgICAgfCAgIDMgKy0K IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdGlkc2Nhbi5vdXQgICAgICAgICB8ICAyMyAr LQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2luZGV4LnNxbCAgICAgICAgIHwgIDMy ICsrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9qb2luLnNxbCAgICAgICAgICAgICAgICAgfCAg MTAgKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX3BydW5lLnNxbCAgICAgIHwg IDIyICsrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC90aWRzY2FuLnNxbCAgICAgICAgICAgICAg fCAgIDYgKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAg IHwgICAyICsKIDIxIGZpbGVzIGNoYW5nZWQsIDgxMCBpbnNlcnRpb25zKCspLCA2MiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9w b3N0Z3Jlc19mZHcub3V0IGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdy ZXNfZmR3Lm91dAppbmRleCA2NGJjYzY2YjhkLi5hODQ0MmYwOGFhIDEwMDY0NAotLS0gYS9j b250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CisrKyBiL2Nv bnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKQEAgLTg1Mzcs MTggKzg1MzcsMTggQEAgaW5zZXJ0IGludG8gdXRydGVzdCB2YWx1ZXMgKDIsICdxdXgnKTsK IC0tIENoZWNrIGNhc2Ugd2hlcmUgdGhlIGZvcmVpZ24gcGFydGl0aW9uIGlzIGEgc3VicGxh biB0YXJnZXQgcmVsCiBleHBsYWluICh2ZXJib3NlLCBjb3N0cyBvZmYpCiB1cGRhdGUgdXRy dGVzdCBzZXQgYSA9IDEgd2hlcmUgYSA9IDEgb3IgYSA9IDIgcmV0dXJuaW5nICo7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBVcGRhdGUg b24gcHVibGljLnV0cnRlc3QKICAgIE91dHB1dDogdXRydGVzdF8xLmEsIHV0cnRlc3RfMS5i CiAgICBGb3JlaWduIFVwZGF0ZSBvbiBwdWJsaWMucmVtcCB1dHJ0ZXN0XzEKICAgIFVwZGF0 ZSBvbiBwdWJsaWMubG9jcCB1dHJ0ZXN0XzIKICAgIC0+ICBBcHBlbmQKICAgICAgICAgIC0+ ICBGb3JlaWduIFVwZGF0ZSBvbiBwdWJsaWMucmVtcCB1dHJ0ZXN0XzEKLSAgICAgICAgICAg ICAgIFJlbW90ZSBTUUw6IFVQREFURSBwdWJsaWMubG9jdCBTRVQgYSA9IDEgV0hFUkUgKCgo YSA9IDEpIE9SIChhID0gMikpKSBSRVRVUk5JTkcgYSwgYgorICAgICAgICAgICAgICAgUmVt b3RlIFNRTDogVVBEQVRFIHB1YmxpYy5sb2N0IFNFVCBhID0gMSBXSEVSRSAoKGEgPSBBTlkg KCd7MSwyfSc6OmludGVnZXJbXSkpKSBSRVRVUk5JTkcgYSwgYgogICAgICAgICAgLT4gIFNl cSBTY2FuIG9uIHB1YmxpYy5sb2NwIHV0cnRlc3RfMgogICAgICAgICAgICAgICAgT3V0cHV0 OiAxLCB1dHJ0ZXN0XzIudGFibGVvaWQsIHV0cnRlc3RfMi5jdGlkLCBOVUxMOjpyZWNvcmQK LSAgICAgICAgICAgICAgIEZpbHRlcjogKCh1dHJ0ZXN0XzIuYSA9IDEpIE9SICh1dHJ0ZXN0 XzIuYSA9IDIpKQorICAgICAgICAgICAgICAgRmlsdGVyOiAodXRydGVzdF8yLmEgPSBBTlkg KCd7MSwyfSc6OmludGVnZXJbXSkpCiAoMTAgcm93cykKIAogLS0gVGhlIG5ldyB2YWx1ZXMg YXJlIGNvbmNhdGVuYXRlZCB3aXRoICcgdHJpZ2dlcmVkICEnCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9ub2Rlcy9xdWVyeWp1bWJsZWZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9x dWVyeWp1bWJsZWZ1bmNzLmMKaW5kZXggMjgxOTA3YTRkOC4uOTkyMDdhODY3MCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvcXVlcnlqdW1ibGVmdW5jcy5jCisrKyBiL3NyYy9i YWNrZW5kL25vZGVzL3F1ZXJ5anVtYmxlZnVuY3MuYwpAQCAtMTM1LDYgKzEzNSwzNiBAQCBK dW1ibGVRdWVyeShRdWVyeSAqcXVlcnkpCiAJcmV0dXJuIGpzdGF0ZTsKIH0KIAorSnVtYmxl U3RhdGUgKgorSnVtYmxlRXhwcihFeHByICpleHByLCB1aW50NjQgKnF1ZXJ5SWQpCit7CisJ SnVtYmxlU3RhdGUgKmpzdGF0ZSA9IE5VTEw7CisKKwlBc3NlcnQocXVlcnlJZCAhPSBOVUxM KTsKKworCWpzdGF0ZSA9IChKdW1ibGVTdGF0ZSAqKSBwYWxsb2Moc2l6ZW9mKEp1bWJsZVN0 YXRlKSk7CisKKwkvKiBTZXQgdXAgd29ya3NwYWNlIGZvciBxdWVyeSBqdW1ibGluZyAqLwor CWpzdGF0ZS0+anVtYmxlID0gKHVuc2lnbmVkIGNoYXIgKikgcGFsbG9jKEpVTUJMRV9TSVpF KTsKKwlqc3RhdGUtPmp1bWJsZV9sZW4gPSAwOworCWpzdGF0ZS0+Y2xvY2F0aW9uc19idWZf c2l6ZSA9IDMyOworCWpzdGF0ZS0+Y2xvY2F0aW9ucyA9IChMb2NhdGlvbkxlbiAqKQorCQlw YWxsb2MoanN0YXRlLT5jbG9jYXRpb25zX2J1Zl9zaXplICogc2l6ZW9mKExvY2F0aW9uTGVu KSk7CisJanN0YXRlLT5jbG9jYXRpb25zX2NvdW50ID0gMDsKKwlqc3RhdGUtPmhpZ2hlc3Rf ZXh0ZXJuX3BhcmFtX2lkID0gMDsKKworCS8qIENvbXB1dGUgcXVlcnkgSUQgKi8KKwlfanVt YmxlTm9kZShqc3RhdGUsIChOb2RlICopIGV4cHIpOworCSpxdWVyeUlkID0gRGF0dW1HZXRV SW50NjQoaGFzaF9hbnlfZXh0ZW5kZWQoanN0YXRlLT5qdW1ibGUsCisJCQkJCQkJCQkJCQlq c3RhdGUtPmp1bWJsZV9sZW4sCisJCQkJCQkJCQkJCQkwKSk7CisKKwlpZiAoKnF1ZXJ5SWQg PT0gVUlOVDY0Q09OU1QoMCkpCisJCSpxdWVyeUlkID0gVUlOVDY0Q09OU1QoMSk7CisKKwly ZXR1cm4ganN0YXRlOworfQorCiAvKgogICogRW5hYmxlcyBxdWVyeSBpZGVudGlmaWVyIGNv bXB1dGF0aW9uLgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9l eHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IDY0YzU4MmMz NDQuLmI2OTM4MWNjNDUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9l eHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtMjIsNiAr MjIsNyBAQAogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2Vm dW5jcy5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgorI2luY2x1ZGUgIm5vZGVz L3F1ZXJ5anVtYmxlLmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL29wdGltaXplci5oIgogI2lu Y2x1ZGUgInBhcnNlci9hbmFseXplLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2FnZy5o IgpAQCAtNDMsNiArNDQsNyBAQAogCiAvKiBHVUMgcGFyYW1ldGVycyAqLwogYm9vbAkJVHJh bnNmb3JtX251bGxfZXF1YWxzID0gZmFsc2U7Citib29sCQllbmFibGVfb3JfdHJhbnNmb3Jt YXRpb24gPSB0cnVlOwogCiAKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1FeHByUmVjdXJzZShQ YXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpOwpAQCAtOTksNiArMTAxLDI4NiBAQCBz dGF0aWMgRXhwciAqbWFrZV9kaXN0aW5jdF9vcChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3Qg Km9wbmFtZSwKIHN0YXRpYyBOb2RlICptYWtlX251bGx0ZXN0X2Zyb21fZGlzdGluY3QoUGFy c2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCSBBX0V4cHIgKmRpc3RpbmN0YSwgTm9kZSAq YXJnKTsKIAordHlwZWRlZiBzdHJ1Y3QgT3JDbGF1c2VHcm91cEVudHJ5Cit7CisJTm9kZQkJ ICAgKm5vZGU7CisJTGlzdAkJICAgKmNvbnN0czsKKwlPaWQJCQkJc2NhbGFyX3R5cGU7CisJ T2lkCQkJCW9wbm87CisJTGlzdCAJCSAgICpleHByczsKK30gT3JDbGF1c2VHcm91cEVudHJ5 OworCit0eXBlZGVmIHN0cnVjdCBPckNsYXVzZUdyb3VwRW50cmllcworeworCXVpbnQ2NAlo YXNoa2V5OworCUxpc3QgICAqbGlzdDsKK30gT3JDbGF1c2VHcm91cEVudHJpZXM7CisKK3N0 YXRpYyBOb2RlICoKK3RyYW5zZm9ybUJvb2xFeHByT3IoUGFyc2VTdGF0ZSAqcHN0YXRlLCBC b29sRXhwciAqZXhwcikKK3sKKwlMaXN0CQkJCSAgICpvcl9saXN0ID0gTklMOworCUxpc3RD ZWxsCQkJICAgKmxjOworCUhBU0hDVEwJCQkJCWluZm87CisJSFRBQiAJCQkJICAgKm9yX2dy b3VwX2h0YWIgPSBOVUxMOworCWludCAJCQkJCWxlbl9vcnMgPSBsaXN0X2xlbmd0aChleHBy LT5hcmdzKTsKKwlIQVNIX1NFUV9TVEFUVVMJCQloYXNoX3NlcTsKKwlPckNsYXVzZUdyb3Vw RW50cmllcyAgICplbnRyaWVzOworCisJLyogSWYgdGhpcyBpcyBub3QgYW4gJ09SJyBleHBy ZXNzaW9uLCBza2lwIHRoZSB0cmFuc2Zvcm1hdGlvbiAqLworCWlmICghZW5hYmxlX29yX3Ry YW5zZm9ybWF0aW9uIHx8IGV4cHItPmJvb2xvcCAhPSBPUl9FWFBSIHx8IGxlbl9vcnMgPCAy KQorCQlyZXR1cm4gdHJhbnNmb3JtQm9vbEV4cHIocHN0YXRlLCAoQm9vbEV4cHIgKikgZXhw cik7CisKKwlNZW1TZXQoJmluZm8sIDAsIHNpemVvZihpbmZvKSk7CisJaW5mby5rZXlzaXpl ID0gc2l6ZW9mKHVpbnQ2NCk7CisJaW5mby5lbnRyeXNpemUgPSBzaXplb2YoT3JDbGF1c2VH cm91cEVudHJpZXMpOworCW9yX2dyb3VwX2h0YWIgPSBoYXNoX2NyZWF0ZSgiT1IgR3JvdXBz IiwKKwkJCQkJCQkJbGVuX29ycywKKwkJCQkJCQkJJmluZm8sCisJCQkJCQkJCUhBU0hfRUxF TSB8IEhBU0hfQkxPQlMpOworCisJZm9yZWFjaChsYywgZXhwci0+YXJncykKKwl7CisJCU5v ZGUJCQkJICAgKmFyZyA9IGxmaXJzdChsYyk7CisJCU5vZGUJCQkJICAgKm9ycXVhbDsKKwkJ Tm9kZQkJCQkgICAqY29uc3RfZXhwcjsKKwkJTm9kZQkJCQkgICAqbmNvbnN0X2V4cHI7CisJ CU9yQ2xhdXNlR3JvdXBFbnRyaWVzICAgKmVudHJpZXM7CisJCU9yQ2xhdXNlR3JvdXBFbnRy eQkgICAqZW50cnkgPSBOVUxMOworCQlib29sCQkJCQlmb3VuZDsKKwkJdWludDY0CQkJCQlo YXNoOworCisJCS8qIEF0IGZpcnN0LCB0cmFuc2Zvcm0gdGhlIGFyZyBhbmQgZXZhbHVhdGUg Y29uc3RhbnQgZXhwcmVzc2lvbnMuICovCisJCW9ycXVhbCA9IHRyYW5zZm9ybUV4cHJSZWN1 cnNlKHBzdGF0ZSwgKE5vZGUgKikgYXJnKTsKKwkJb3JxdWFsID0gY29lcmNlX3RvX2Jvb2xl YW4ocHN0YXRlLCBvcnF1YWwsICJPUiIpOworCisJCWlmICghSXNBKG9ycXVhbCwgT3BFeHBy KSkKKwkJeworCQkJb3JfbGlzdCA9IGxhcHBlbmQob3JfbGlzdCwgb3JxdWFsKTsKKwkJCWNv bnRpbnVlOworCQl9CisKKwkJLyoKKwkJICogRGV0ZWN0IHRoZSBjb25zdGFudCBzaWRlIG9m IHRoZSBjbGF1c2UuIFJlY2FsbCBub24tY29uc3RhbnQKKwkJICogZXhwcmVzc2lvbiBjYW4g YmUgbWFkZSBub3Qgb25seSB3aXRoIFZhcnMsIGJ1dCBhbHNvIHdpdGggUGFyYW1zLAorCQkg KiB3aGljaCBpcyBub3QgYm9uZGVkIHdpdGggYW55IHJlbGF0aW9uLiBUaHVzLCB3ZSBkZXRl Y3QgdGhlIGNvbnN0CisJCSAqIHNpZGUgLSBpZiBhbm90aGVyIHNpZGUgaXMgY29uc3RhbnQg dG9vLCB0aGUgb3JxdWFsIGNvdWxkbid0IGJlCisJCSAqIGFuIE9wRXhwci4KKwkJICogR2V0 IHBvaW50ZXJzIHRvIGNvbnN0YW50IGFuZCBleHByZXNzaW9uIHNpZGVzIG9mIHRoZSBxdWFs LgorCQkgKi8KKwkJaWYgKElzQShnZXRfbGVmdG9wKG9ycXVhbCksIENvbnN0KSkKKwkJewor CQkJbmNvbnN0X2V4cHIgPSBnZXRfcmlnaHRvcChvcnF1YWwpOworCQkJY29uc3RfZXhwciA9 IGdldF9sZWZ0b3Aob3JxdWFsKTsKKwkJfQorCQllbHNlIGlmIChJc0EoZ2V0X3JpZ2h0b3Ao b3JxdWFsKSwgQ29uc3QpKQorCQl7CisJCQljb25zdF9leHByID0gZ2V0X3JpZ2h0b3Aob3Jx dWFsKTsKKwkJCW5jb25zdF9leHByID0gZ2V0X2xlZnRvcChvcnF1YWwpOworCQl9CisJCWVs c2UKKwkJeworCQkJb3JfbGlzdCA9IGxhcHBlbmQob3JfbGlzdCwgb3JxdWFsKTsKKwkJCWNv bnRpbnVlOworCQl9CisKKwkJaWYgKCFvcF9tZXJnZWpvaW5hYmxlKCgoT3BFeHByICopIG9y cXVhbCktPm9wbm8sIGV4cHJUeXBlKG5jb25zdF9leHByKSkpCisJCXsKKwkJCW9yX2xpc3Qg PSBsYXBwZW5kKG9yX2xpc3QsIG9ycXVhbCk7CisJCQljb250aW51ZTsKKwkJfQorCisJCSh2 b2lkKSBKdW1ibGVFeHByKChFeHByICopIG5jb25zdF9leHByLCAmaGFzaCk7CisKKwkJLyoK KwkJKiBBdCB0aGlzIHBvaW50IHdlIGRlZmluaXRlbHkgaGF2ZSBhIHRyYW5zZm9ybWFibGUg Y2xhdXNlLgorCQkqIENsYXNzaWZ5IGl0IGFuZCBhZGQgaW50byBzcGVjaWZpYyBncm91cCBv ZiBjbGF1c2VzLCBvciBjcmVhdGUgbmV3CisJCSogZ3JvdXAuCisJCSogVE9ETzogdG8gbWFu YWdlIGNvbXBsZXhpdHkgaW4gdGhlIGNhc2Ugb2YgbWFueSBkaWZmZXJlbnQgY2xhdXNlcwor CQkqIChYMT1DMSkgT1IgKFgyPUMyIE9SKSAuLi4gKFhOID0gQ04pIHdlIGNvdWxkIGludmVu dCBzb21ldGhpbmcKKwkJKiBsaWtlIGEgaGFzaCB0YWJsZS4gQnV0IGFsc28gd2UgYmVsaWV2 ZSwgdGhhdCB0aGUgY2FzZSBvZiBtYW55CisJCSogZGlmZmVyZW50IHZhcmlhYmxlIHNpZGVz IGlzIHZlcnkgcmFyZS4KKwkJKi8KKwkJZW50cmllcyA9IGhhc2hfc2VhcmNoKG9yX2dyb3Vw X2h0YWIsICZoYXNoLCBIQVNIX0VOVEVSLCAmZm91bmQpOworCisJCWlmICh1bmxpa2VseShm b3VuZCkpCisJCXsKKwkJCUxpc3RDZWxsICpsYzE7CisKKwkJCUFzc2VydChlbnRyaWVzLT5s aXN0ICE9IE5VTEwpOworCisJCQkvKgorCQkJICogVHJ5IHRvIGZpbmQgdGhlIHNhbWUgZXhw cmVzc2lvbiBpbiB0aGUgbGlzdCBvZiBleHByZXNzaW9ucyB3aXRoCisJCQkgKiB0aGUgc2Ft ZSBoYXNoIHZhbHVlCisJCQkgKi8KKwkJCWZvcmVhY2gobGMxLCBlbnRyaWVzLT5saXN0KQor CQkJeworCQkJCU9yQ2xhdXNlR3JvdXBFbnRyeSAqZWxlbSA9IChPckNsYXVzZUdyb3VwRW50 cnkgKikgbGZpcnN0KGxjMSk7CisKKwkJCQlpZiAoZXF1YWwobmNvbnN0X2V4cHIsIGVsZW0t Pm5vZGUpKQorCQkJCXsKKwkJCQkJZW50cnkgPSBlbGVtOworCQkJCQllbnRyeS0+Y29uc3Rz ID0gbGFwcGVuZChlbnRyeS0+Y29uc3RzLCBjb25zdF9leHByKTsKKwkJCQkJZW50cnktPmV4 cHJzID0gbGFwcGVuZChlbnRyeS0+ZXhwcnMsIG9ycXVhbCk7CisJCQkJCWJyZWFrOworCQkJ CX0KKwkJCX0KKworCQkJaWYgKGVudHJ5ICE9IE5VTEwpCisJCQl7CisJCQkJLyoKKwkJCQkg KiBUaGUgY2xhdXNlIGNsYXNzaWZpZWQgc3VjY2Vzc2Z1bGx5IGFuZCBhZGRlZCBpbnRvIGV4 aXN0ZWQKKwkJCQkgKiBjbGF1c2UgZ3JvdXAuCisJCQkJICovCisJCQkJY29udGludWU7CisJ CQl9CisKKwkJCWZvdW5kID0gZmFsc2U7CisJCX0KKwkJZWxzZQorCQkJLyogUHJlcGFyZSBm b3IgYWRkaW5nIHRvIHRoZSBsaXN0IHRoZSBmaXJzdCBlbGVtZW50ICovCisJCQllbnRyaWVz LT5saXN0ID0gTklMOworCisJCWlmICghZm91bmQpCisJCXsKKwkJCUFzc2VydChlbnRyeSA9 PSBOVUxMKTsKKworCQkJZW50cnkgPSBwYWxsb2Moc2l6ZW9mKE9yQ2xhdXNlR3JvdXBFbnRy eSkpOworCQkJZW50cnktPm5vZGUgPSBuY29uc3RfZXhwcjsKKwkJCWVudHJ5LT5jb25zdHMg PSBsaXN0X21ha2UxKGNvbnN0X2V4cHIpOworCQkJZW50cnktPmV4cHJzID0gbGlzdF9tYWtl MShvcnF1YWwpOworCQkJZW50cmllcy0+bGlzdCA9IGxhcHBlbmQoZW50cmllcy0+bGlzdCwg ZW50cnkpOworCQl9CisJfQorCisJaWYgKGxpc3RfbGVuZ3RoKG9yX2xpc3QpID09IGxlbl9v cnMpCisJeworCQkvKgorCQkqIE5vIGFueSB0cmFuc2Zvcm1hdGlvbnMgcG9zc2libGUgd2l0 aCB0aGlzIGxpc3Qgb2YgYXJndW1lbnRzLiBIZXJlIHdlCisJCSogYWxyZWFkeSBtYWRlIGFs bCB1bmRlcmx5aW5nIHRyYW5zZm9ybWF0aW9ucy4gVGh1cywganVzdCByZXR1cm4gdGhlCisJ CSogdHJhbnNmb3JtZWQgYm9vbCBleHByZXNzaW9uLgorCQkqLworCQloYXNoX2Rlc3Ryb3ko b3JfZ3JvdXBfaHRhYik7CisJCXJldHVybiAoTm9kZSAqKSBtYWtlQm9vbEV4cHIoT1JfRVhQ Uiwgb3JfbGlzdCwgZXhwci0+bG9jYXRpb24pOworCX0KKworCWhhc2hfc2VxX2luaXQoJmhh c2hfc2VxLCBvcl9ncm91cF9odGFiKTsKKworCS8qIExldCdzIGNvbnZlcnQgZWFjaCBncm91 cCBvZiBjbGF1c2VzIHRvIGFuIElOIG9wZXJhdGlvbi4gKi8KKworCS8qCisJICogR28gdGhy b3VnaCB0aGUgbGlzdCBvZiBncm91cHMgYW5kIGNvbnZlcnQgZWFjaCwgd2hlcmUgbnVtYmVy IG9mCisJKiBjb25zdHMgbW9yZSB0aGFuIDEuIHRyaXZpYWwgZ3JvdXBzIG1vdmUgdG8gT1It bGlzdCBhZ2FpbgorCSovCisKKwl3aGlsZSAoKGVudHJpZXMgPSAoT3JDbGF1c2VHcm91cEVu dHJpZXMgKikgaGFzaF9zZXFfc2VhcmNoKCZoYXNoX3NlcSkpICE9IE5VTEwpCisJeworCQlM aXN0Q2VsbCAqbGMxOworCisJCWZvcmVhY2gobGMxLCBlbnRyaWVzLT5saXN0KQorCQl7CisJ CQlPckNsYXVzZUdyb3VwRW50cnkgKmdlbnRyeSA9IChPckNsYXVzZUdyb3VwRW50cnkgKikg bGZpcnN0KGxjMSk7CisJCQlMaXN0CQkJICAgKmFsbGV4cHJzOworCQkJT2lkCQkJCSAgICBz Y2FsYXJfdHlwZTsKKwkJCU9pZAkJCQkJYXJyYXlfdHlwZTsKKworCQkJQXNzZXJ0KGxpc3Rf bGVuZ3RoKGdlbnRyeS0+Y29uc3RzKSA+IDApOworCQkJQXNzZXJ0KGxpc3RfbGVuZ3RoKGdl bnRyeS0+ZXhwcnMpID09IGxpc3RfbGVuZ3RoKGdlbnRyeS0+Y29uc3RzKSk7CisKKwkJCWlm IChsaXN0X2xlbmd0aChnZW50cnktPmNvbnN0cykgPT0gMSkKKwkJCXsKKwkJCQkvKgorCQkJ CSAqIE9ubHkgb25lIGVsZW1lbnQgaW4gdGhlIGNsYXNzLiBSZXR1cm4gcmluZm8gaW50byB0 aGUgQm9vbEV4cHIKKwkJCQkgKiBhcmdzIGxpc3QgdW5jaGFuZ2VkLgorCQkJCSAqLworCQkJ CWxpc3RfZnJlZShnZW50cnktPmNvbnN0cyk7CisJCQkJb3JfbGlzdCA9IGxpc3RfY29uY2F0 KG9yX2xpc3QsIGdlbnRyeS0+ZXhwcnMpOworCQkJCWNvbnRpbnVlOworCQkJfQorCisJCQkv KgorCQkJICogRG8gdGhlIHRyYW5zZm9ybWF0aW9uLgorCQkJICoKKwkJCSAqIEZpcnN0IG9m IGFsbCwgdHJ5IHRvIHNlbGVjdCBhIGNvbW1vbiB0eXBlIGZvciB0aGUgYXJyYXkgZWxlbWVu dHMuCisJCQkgKiBOb3RlIHRoYXQgc2luY2UgdGhlIExIUycgdHlwZSBpcyBmaXJzdCBpbiB0 aGUgbGlzdCwgaXQgd2lsbCBiZQorCQkJICogcHJlZmVycmVkIHdoZW4gdGhlcmUgaXMgZG91 YnQgKGVnLCB3aGVuIGFsbCB0aGUgUkhTIGl0ZW1zIGFyZQorCQkJICogdW5rbm93biBsaXRl cmFscykuCisJCQkgKgorCQkJICogTm90ZTogdXNlIGxpc3RfY29uY2F0IGhlcmUgbm90IGxj b25zLCB0byBhdm9pZCBkYW1hZ2luZyBybm9udmFycy4KKwkJCSAqCisJCQkgKiBBcyBhIHNv dXJjZSBvZiBpbnNpZGVzLCB1c2UgbWFrZV9zY2FsYXJfYXJyYXlfb3AoKQorCQkJICovCisJ CQlhbGxleHBycyA9IGxpc3RfY29uY2F0KGxpc3RfbWFrZTEoZ2VudHJ5LT5ub2RlKSwgZ2Vu dHJ5LT5jb25zdHMpOworCQkJc2NhbGFyX3R5cGUgPSBzZWxlY3RfY29tbW9uX3R5cGUoTlVM TCwgYWxsZXhwcnMsIE5VTEwsIE5VTEwpOworCisJCQlpZiAoc2NhbGFyX3R5cGUgIT0gUkVD T1JET0lEICYmIE9pZElzVmFsaWQoc2NhbGFyX3R5cGUpKQorCQkJCWFycmF5X3R5cGUgPSBn ZXRfYXJyYXlfdHlwZShzY2FsYXJfdHlwZSk7CisJCQllbHNlCisJCQkJYXJyYXlfdHlwZSA9 IEludmFsaWRPaWQ7CisKKwkJCWlmIChhcnJheV90eXBlICE9IEludmFsaWRPaWQpCisJCQl7 CisJCQkJLyoKKwkJCQkgKiBPSzogY29lcmNlIGFsbCB0aGUgcmlnaHQtaGFuZCBub24tVmFy IGlucHV0cyB0byB0aGUgY29tbW9uCisJCQkJICogdHlwZSBhbmQgYnVpbGQgYW4gQXJyYXlF eHByIGZvciB0aGVtLgorCQkJCSAqLworCQkJCUxpc3QJCQkgICAqYWV4cHJzID0gTklMOwor CQkJCUFycmF5RXhwcgkJICAgKm5ld2EgPSBOVUxMOworCQkJCVNjYWxhckFycmF5T3BFeHBy ICAqc2FvcGV4cHIgPSBOVUxMOworCQkJCUxpc3RDZWxsICpsOworCisJCQkJYWV4cHJzID0g TklMOworCisJCQkJZm9yZWFjaChsLCBnZW50cnktPmNvbnN0cykKKwkJCQl7CisJCQkJCU5v ZGUJICAgKnJleHByID0gKE5vZGUgKikgbGZpcnN0KGwpOworCisJCQkJCXJleHByID0gY29l cmNlX3RvX2NvbW1vbl90eXBlKHBzdGF0ZSwgcmV4cHIsCisJCQkJCQkJCQkJCQlzY2FsYXJf dHlwZSwKKwkJCQkJCQkJCQkJCSJJTiIpOworCQkJCQlhZXhwcnMgPSBsYXBwZW5kKGFleHBy cywgcmV4cHIpOworCQkJCX0KKworCQkJCW5ld2EgPSBtYWtlTm9kZShBcnJheUV4cHIpOwor CQkJCS8qIGFycmF5X2NvbGxpZCB3aWxsIGJlIHNldCBieSBwYXJzZV9jb2xsYXRlLmMgKi8K KwkJCQluZXdhLT5lbGVtZW50X3R5cGVpZCA9IHNjYWxhcl90eXBlOworCQkJCW5ld2EtPmFy cmF5X3R5cGVpZCA9IGFycmF5X3R5cGU7CisJCQkJbmV3YS0+bXVsdGlkaW1zID0gZmFsc2U7 CisJCQkJbmV3YS0+ZWxlbWVudHMgPSBhZXhwcnM7CisJCQkJbmV3YS0+bG9jYXRpb24gPSAt MTsKKworCQkJCXNhb3BleHByID0KKwkJCQkJKFNjYWxhckFycmF5T3BFeHByICopCisJCQkJ CQltYWtlX3NjYWxhcl9hcnJheV9vcChwc3RhdGUsCisJCQkJCQkJCQkJCSBsaXN0X21ha2Ux KG1ha2VTdHJpbmcoKGNoYXIgKikgIj0iKSksCisJCQkJCQkJCQkJCSB0cnVlLAorCQkJCQkJ CQkJCQkgZ2VudHJ5LT5ub2RlLAorCQkJCQkJCQkJCQkgKE5vZGUgKikgbmV3YSwKKwkJCQkJ CQkJCQkJIC0xKTsKKworCQkJCW9yX2xpc3QgPSBsYXBwZW5kKG9yX2xpc3QsICh2b2lkICop IHNhb3BleHByKTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQkvKgorCQkJCSAqIFRoaXMg cGFydCB3b3JrcyBvbiBpbnRhcnJheSB0ZXN0IChPUiB0aGVyZSBpcyBtYWRlIG9uCisJCQkJ ICogZWxlbWVudHMgb2YgYSBjdXN0b20gdHlwZSkKKwkJCQkgKi8KKwkJCQlsaXN0X2ZyZWUo Z2VudHJ5LT5jb25zdHMpOworCQkJCW9yX2xpc3QgPSBsaXN0X2NvbmNhdChvcl9saXN0LCBn ZW50cnktPmV4cHJzKTsKKwkJCX0KKwkJfQorCQlsaXN0X2ZyZWUoZW50cmllcy0+bGlzdCk7 CisJCWVudHJpZXMtPmxpc3QgPSBOSUw7CisJCWhhc2hfc2VhcmNoKG9yX2dyb3VwX2h0YWIs ICZlbnRyaWVzLT5oYXNoa2V5LCBIQVNIX1JFTU9WRSwgTlVMTCk7CisJfQorCWhhc2hfZGVz dHJveShvcl9ncm91cF9odGFiKTsKKworCS8qIE9uZSBtb3JlIHRyaWNrOiBhc3NlbWJsZSBj b3JyZWN0IGNsYXVzZSAqLworCXJldHVybiAoTm9kZSAqKSAoKGxpc3RfbGVuZ3RoKG9yX2xp c3QpID4gMSkgPworCQkJCQkgbWFrZUJvb2xFeHByKE9SX0VYUFIsIG9yX2xpc3QsIGV4cHIt PmxvY2F0aW9uKSA6CisJCQkJCSBsaW5pdGlhbChvcl9saXN0KSk7Cit9CiAKIC8qCiAgKiB0 cmFuc2Zvcm1FeHByIC0KQEAgLTIxMiw3ICs0OTQsNyBAQCB0cmFuc2Zvcm1FeHByUmVjdXJz ZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAJCQl9CiAKIAkJY2FzZSBUX0Jv b2xFeHByOgotCQkJcmVzdWx0ID0gdHJhbnNmb3JtQm9vbEV4cHIocHN0YXRlLCAoQm9vbEV4 cHIgKikgZXhwcik7CisJCQlyZXN1bHQgPSB0cmFuc2Zvcm1Cb29sRXhwck9yKHBzdGF0ZSwg KEJvb2xFeHByICopIGV4cHIpOwogCQkJYnJlYWs7CiAKIAkJY2FzZSBUX0Z1bmNDYWxsOgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgYi9zcmMv YmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwppbmRleCBiNzY0ZWY2OTk4Li4yY2E4 YTIxY2FmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtMTA0OCw2 ICsxMDQ4LDE2IEBAIHN0cnVjdCBjb25maWdfYm9vbCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9 CiAJCXRydWUsCiAJCU5VTEwsIE5VTEwsIE5VTEwKIAl9LAorCXsKKwkJeyJlbmFibGVfb3Jf dHJhbnNmb3JtYXRpb24iLCBQR0NfVVNFUlNFVCwgUVVFUllfVFVOSU5HX09USEVSLAorCQkJ Z2V0dGV4dF9ub29wKCJUcmFuc2Zvcm0gYSBzZXF1ZW5jZSBvZiBPUiBjbGF1c2VzIHRvIGFu IElOIGV4cHJlc3Npb24uIiksCisJCQlnZXR0ZXh0X25vb3AoIlRoZSBwbGFubmVyIHdpbGwg cmVwbGFjZSBjbGF1c2VzIGxpa2UgJ3g9YzEgT1IgeD1jMiAuLiIKKwkJCQkJCSAidG8gdGhl IGNsYXVzZSAneCBJTiAoYzEsYzIsLi4uKSciKQorCQl9LAorCQkmZW5hYmxlX29yX3RyYW5z Zm9ybWF0aW9uLAorCQl0cnVlLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwKIAl7CiAJCS8q CiAJCSAqIE5vdCBmb3IgZ2VuZXJhbCB1c2UgLS0tIHVzZWQgYnkgU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiBhbmQgU0VUCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNj L3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3Rn cmVzcWwuY29uZi5zYW1wbGUKaW5kZXggZTQ4YzA2NmE1Yi4uMjZiZWUzMGFkMyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQpAQCAt MzcxLDYgKzM3MSw3IEBACiAjIC0gUGxhbm5lciBNZXRob2QgQ29uZmlndXJhdGlvbiAtCiAK ICNlbmFibGVfYXN5bmNfYXBwZW5kID0gb24KKyNlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24g PSBvbgogI2VuYWJsZV9iaXRtYXBzY2FuID0gb24KICNlbmFibGVfZ2F0aGVybWVyZ2UgPSBv bgogI2VuYWJsZV9oYXNoYWdnID0gb24KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVz L3F1ZXJ5anVtYmxlLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9xdWVyeWp1bWJsZS5oCmluZGV4 IDA3NjkwODFjN2EuLjRhYWEzMWFhODAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L3F1ZXJ5anVtYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcXVlcnlqdW1ibGUuaApA QCAtNjUsNiArNjUsNyBAQCBleHRlcm4gUEdETExJTVBPUlQgaW50IGNvbXB1dGVfcXVlcnlf aWQ7CiAKIGV4dGVybiBjb25zdCBjaGFyICpDbGVhblF1ZXJ5dGV4dChjb25zdCBjaGFyICpx dWVyeSwgaW50ICpsb2NhdGlvbiwgaW50ICpsZW4pOwogZXh0ZXJuIEp1bWJsZVN0YXRlICpK dW1ibGVRdWVyeShRdWVyeSAqcXVlcnkpOworZXh0ZXJuIEp1bWJsZVN0YXRlICpKdW1ibGVF eHByKEV4cHIgKmV4cHIsIHVpbnQ2NCAqcXVlcnlJZCk7CiBleHRlcm4gdm9pZCBFbmFibGVR dWVyeUlkKHZvaWQpOwogCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBxdWVyeV9pZF9lbmFi bGVkOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCBiL3Ny Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKaW5kZXggN2QzOGNhNzVmNy4uM2E4N2Rl MDI4NSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAorKysg Yi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCkBAIC0xNyw2ICsxNyw3IEBACiAK IC8qIEdVQyBwYXJhbWV0ZXJzICovCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBUcmFuc2Zv cm1fbnVsbF9lcXVhbHM7CitleHRlcm4gUEdETExJTVBPUlQgYm9vbCBlbmFibGVfb3JfdHJh bnNmb3JtYXRpb247CiAKIGV4dGVybiBOb2RlICp0cmFuc2Zvcm1FeHByKFBhcnNlU3RhdGUg KnBzdGF0ZSwgTm9kZSAqZXhwciwgUGFyc2VFeHByS2luZCBleHByS2luZCk7CiAKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2luZGV4Lm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2luZGV4Lm91dAppbmRleCBhY2ZkOWQx ZjRmLi4zYmI0YmJjYTQ4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2NyZWF0ZV9pbmRleC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVh dGVfaW5kZXgub3V0CkBAIC0xODM4LDE4ICsxODM4LDUwIEBAIERST1AgVEFCTEUgb25la193 aXRoX251bGw7CiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgKiBGUk9NIHRlbmsxCiAg IFdIRVJFIHRob3VzYW5kID0gNDIgQU5EICh0ZW50aG91cyA9IDEgT1IgdGVudGhvdXMgPSAz IE9SIHRlbnRob3VzID0gNDIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gQml0bWFwIEhlYXAgU2NhbiBvbiB0ZW5r MQotICAgUmVjaGVjayBDb25kOiAoKCh0aG91c2FuZCA9IDQyKSBBTkQgKHRlbnRob3VzID0g MSkpIE9SICgodGhvdXNhbmQgPSA0MikgQU5EICh0ZW50aG91cyA9IDMpKSBPUiAoKHRob3Vz YW5kID0gNDIpIEFORCAodGVudGhvdXMgPSA0MikpKQotICAgLT4gIEJpdG1hcE9yCi0gICAg ICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMKLSAg ICAgICAgICAgICAgIEluZGV4IENvbmQ6ICgodGhvdXNhbmQgPSA0MikgQU5EICh0ZW50aG91 cyA9IDEpKQotICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3Rob3Vz X3RlbnRob3VzCi0gICAgICAgICAgICAgICBJbmRleCBDb25kOiAoKHRob3VzYW5kID0gNDIp IEFORCAodGVudGhvdXMgPSAzKSkKLSAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBv biB0ZW5rMV90aG91c190ZW50aG91cwotICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKCh0 aG91c2FuZCA9IDQyKSBBTkQgKHRlbnRob3VzID0gNDIpKQotKDkgcm93cykKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgSW5kZXggU2Nh biB1c2luZyB0ZW5rMV90aG91c190ZW50aG91cyBvbiB0ZW5rMQorICAgSW5kZXggQ29uZDog KCh0aG91c2FuZCA9IDQyKSBBTkQgKHRlbnRob3VzID0gQU5ZICgnezEsMyw0Mn0nOjppbnRl Z2VyW10pKSkKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVuazEKKyAgV0hFUkUgdGhv dXNhbmQgPSA0MiBBTkQgKHRlbnRob3VzID0gMSBPUiB0ZW50aG91cyA9IDMgT1IgdGVudGhv dXMgPSA0Mik7CisgdW5pcXVlMSB8IHVuaXF1ZTIgfCB0d28gfCBmb3VyIHwgdGVuIHwgdHdl bnR5IHwgaHVuZHJlZCB8IHRob3VzYW5kIHwgdHdvdGhvdXNhbmQgfCBmaXZldGhvdXMgfCB0 ZW50aG91cyB8IG9kZCB8IGV2ZW4gfCBzdHJpbmd1MSB8IHN0cmluZ3UyIHwgc3RyaW5nNCAK Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0rLS0tLS0tKy0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLSstLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorICAgICAgNDIg fCAgICA1NTMwIHwgICAwIHwgICAgMiB8ICAgMiB8ICAgICAgMiB8ICAgICAgNDIgfCAgICAg ICA0MiB8ICAgICAgICAgIDQyIHwgICAgICAgIDQyIHwgICAgICAgNDIgfCAgODQgfCAgIDg1 IHwgUUJBQUFBICAgfCBTRUlBQUEgICB8IE9PT094eAorKDEgcm93KQorCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQorICBXSEVSRSBodW5kcmVk ID0gNDIgQU5EICh0aG91c2FuZCA9IDQyIE9SIHRob3VzYW5kID0gOTkpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRlbmsxCisgICAgICAg ICBSZWNoZWNrIENvbmQ6ICgoaHVuZHJlZCA9IDQyKSBBTkQgKHRob3VzYW5kID0gQU5ZICgn ezQyLDk5fSc6OmludGVnZXJbXSkpKQorICAgICAgICAgLT4gIEJpdG1hcEFuZAorICAgICAg ICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX2h1bmRyZWQKKyAgICAg ICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChodW5kcmVkID0gNDIpCisgICAgICAgICAg ICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMKKyAg ICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh0aG91c2FuZCA9IEFOWSAoJ3s0Miw5 OX0nOjppbnRlZ2VyW10pKQorKDggcm93cykKKworU0VMRUNUIGNvdW50KCopIEZST00gdGVu azEKKyAgV0hFUkUgaHVuZHJlZCA9IDQyIEFORCAodGhvdXNhbmQgPSA0MiBPUiB0aG91c2Fu ZCA9IDk5KTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAxMAorKDEgcm93KQorCitTRVQgZW5h YmxlX29yX3RyYW5zZm9ybWF0aW9uID0gb247CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxF Q1QgKiBGUk9NIHRlbmsxCisgIFdIRVJFIHRob3VzYW5kID0gNDIgQU5EICh0ZW50aG91cyA9 IDEgT1IgdGVudGhvdXMgPSAzIE9SIHRlbnRob3VzID0gNDIpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBJbmRleCBTY2FuIHVzaW5n IHRlbmsxX3Rob3VzX3RlbnRob3VzIG9uIHRlbmsxCisgICBJbmRleCBDb25kOiAoKHRob3Vz YW5kID0gNDIpIEFORCAodGVudGhvdXMgPSBBTlkgKCd7MSwzLDQyfSc6OmludGVnZXJbXSkp KQorKDIgcm93cykKIAogU0VMRUNUICogRlJPTSB0ZW5rMQogICBXSEVSRSB0aG91c2FuZCA9 IDQyIEFORCAodGVudGhvdXMgPSAxIE9SIHRlbnRob3VzID0gMyBPUiB0ZW50aG91cyA9IDQy KTsKQEAgLTE4NjEsMjggKzE4OTMsMTAxIEBAIFNFTEVDVCAqIEZST00gdGVuazEKIEVYUExB SU4gKENPU1RTIE9GRikKIFNFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCiAgIFdIRVJFIGh1 bmRyZWQgPSA0MiBBTkQgKHRob3VzYW5kID0gNDIgT1IgdGhvdXNhbmQgPSA5OSk7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICBBZ2dyZWdhdGUKICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRlbmsx Ci0gICAgICAgICBSZWNoZWNrIENvbmQ6ICgoaHVuZHJlZCA9IDQyKSBBTkQgKCh0aG91c2Fu ZCA9IDQyKSBPUiAodGhvdXNhbmQgPSA5OSkpKQorICAgICAgICAgUmVjaGVjayBDb25kOiAo KGh1bmRyZWQgPSA0MikgQU5EICh0aG91c2FuZCA9IEFOWSAoJ3s0Miw5OX0nOjppbnRlZ2Vy W10pKSkKKyAgICAgICAgIC0+ICBCaXRtYXBBbmQKKyAgICAgICAgICAgICAgIC0+ICBCaXRt YXAgSW5kZXggU2NhbiBvbiB0ZW5rMV9odW5kcmVkCisgICAgICAgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAoaHVuZHJlZCA9IDQyKQorICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJ bmRleCBTY2FuIG9uIHRlbmsxX3Rob3VzX3RlbnRob3VzCisgICAgICAgICAgICAgICAgICAg ICBJbmRleCBDb25kOiAodGhvdXNhbmQgPSBBTlkgKCd7NDIsOTl9Jzo6aW50ZWdlcltdKSkK Kyg4IHJvd3MpCisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCisgIFdIRVJFIGh1bmRy ZWQgPSA0MiBBTkQgKHRob3VzYW5kID0gNDIgT1IgdGhvdXNhbmQgPSA5OSk7CisgY291bnQg CistLS0tLS0tCisgICAgMTAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUIGNvdW50KCopIEZST00gdGVuazEKKyAgV0hFUkUgdGhvdXNhbmQgPSA0MiBBTkQgKHRl bnRob3VzID0gMSBPUiB0ZW50aG91cyA9IDMpIE9SIHRob3VzYW5kID0gNDE7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUK KyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRlbmsxCisgICAgICAgICBSZWNoZWNrIENv bmQ6ICgoKHRob3VzYW5kID0gNDIpIEFORCAodGVudGhvdXMgPSBBTlkgKCd7MSwzfSc6Omlu dGVnZXJbXSkpKSBPUiAodGhvdXNhbmQgPSA0MSkpCisgICAgICAgICAtPiAgQml0bWFwT3IK KyAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV90aG91c190 ZW50aG91cworICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKCh0aG91c2FuZCA9 IDQyKSBBTkQgKHRlbnRob3VzID0gQU5ZICgnezEsM30nOjppbnRlZ2VyW10pKSkKKyAgICAg ICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV90aG91c190ZW50aG91 cworICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHRob3VzYW5kID0gNDEpCiso OCByb3dzKQorCitTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQorICBXSEVSRSB0aG91c2Fu ZCA9IDQyIEFORCAodGVudGhvdXMgPSAxIE9SIHRlbnRob3VzID0gMykgT1IgdGhvdXNhbmQg PSA0MTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAxMAorKDEgcm93KQorCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQorICBXSEVSRSBodW5kcmVk ID0gNDIgQU5EICh0aG91c2FuZCA9IDQyIE9SIHRob3VzYW5kID0gOTkgT1IgdGVudGhvdXMg PCAyKSBPUiB0aG91c2FuZCA9IDQxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiB0ZW5rMQor ICAgICAgICAgUmVjaGVjayBDb25kOiAoKChodW5kcmVkID0gNDIpIEFORCAoKHRlbnRob3Vz IDwgMikgT1IgKHRob3VzYW5kID0gQU5ZICgnezQyLDk5fSc6OmludGVnZXJbXSkpKSkgT1Ig KHRob3VzYW5kID0gNDEpKQorICAgICAgICAgLT4gIEJpdG1hcE9yCisgICAgICAgICAgICAg ICAtPiAgQml0bWFwQW5kCisgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4 IFNjYW4gb24gdGVuazFfaHVuZHJlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5k ZXggQ29uZDogKGh1bmRyZWQgPSA0MikKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBCaXRt YXBPcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2Fu IG9uIHRlbmsxX3Rob3VzX3RlbnRob3VzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJbmRleCBDb25kOiAodGVudGhvdXMgPCAyKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3Rob3VzX3RlbnRob3VzCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodGhvdXNhbmQg PSBBTlkgKCd7NDIsOTl9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgICAgICAgIC0+ICBCaXRt YXAgSW5kZXggU2NhbiBvbiB0ZW5rMV90aG91c190ZW50aG91cworICAgICAgICAgICAgICAg ICAgICAgSW5kZXggQ29uZDogKHRob3VzYW5kID0gNDEpCisoMTQgcm93cykKKworU0VMRUNU IGNvdW50KCopIEZST00gdGVuazEKKyAgV0hFUkUgaHVuZHJlZCA9IDQyIEFORCAodGhvdXNh bmQgPSA0MiBPUiB0aG91c2FuZCA9IDk5IE9SIHRlbnRob3VzIDwgMikgT1IgdGhvdXNhbmQg PSA0MTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAyMAorKDEgcm93KQorCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQorICBXSEVSRSBodW5kcmVk ID0gNDIgQU5EICh0aG91c2FuZCA9IDQyIE9SIHRob3VzYW5kID0gNDEgT1IgdGhvdXNhbmQg PSA5OSBBTkQgdGVudGhvdXMgPSAyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiB0ZW5r MQorICAgICAgICAgUmVjaGVjayBDb25kOiAoKGh1bmRyZWQgPSA0MikgQU5EICgoKHRob3Vz YW5kID0gOTkpIEFORCAodGVudGhvdXMgPSAyKSkgT1IgKHRob3VzYW5kID0gQU5ZICgnezQy LDQxfSc6OmludGVnZXJbXSkpKSkKICAgICAgICAgIC0+ICBCaXRtYXBBbmQKICAgICAgICAg ICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV9odW5kcmVkCiAgICAgICAg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAoaHVuZHJlZCA9IDQyKQogICAgICAgICAgICAg ICAgLT4gIEJpdG1hcE9yCiAgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4 IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgIEluZGV4IENvbmQ6ICh0aG91c2FuZCA9IDQyKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgSW5kZXggQ29uZDogKCh0aG91c2FuZCA9IDk5KSBBTkQgKHRlbnRob3VzID0gMikp CiAgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFf dGhvdXNfdGVudGhvdXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6 ICh0aG91c2FuZCA9IDk5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29u ZDogKHRob3VzYW5kID0gQU5ZICgnezQyLDQxfSc6OmludGVnZXJbXSkpCiAoMTEgcm93cykK IAogU0VMRUNUIGNvdW50KCopIEZST00gdGVuazEKLSAgV0hFUkUgaHVuZHJlZCA9IDQyIEFO RCAodGhvdXNhbmQgPSA0MiBPUiB0aG91c2FuZCA9IDk5KTsKKyAgV0hFUkUgaHVuZHJlZCA9 IDQyIEFORCAodGhvdXNhbmQgPSA0MiBPUiB0aG91c2FuZCA9IDQxIE9SIHRob3VzYW5kID0g OTkgQU5EIHRlbnRob3VzID0gMik7CiAgY291bnQgCiAtLS0tLS0tCiAgICAgMTAKICgxIHJv dykKIAorUkVTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uOwogLS0KIC0tIENoZWNrIGJl aGF2aW9yIHdpdGggZHVwbGljYXRlIGluZGV4IGNvbHVtbiBjb250ZW50cwogLS0KZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3VjLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZ3VjLm91dAppbmRleCAxMjdjOTUzMjk3Li4wZjJiMWIxNjIwIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2d1Yy5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ndWMub3V0CkBAIC04NjEsNyArODYxLDggQEAgU0VM RUNUIG5hbWUgRlJPTSB0YWJfc2V0dGluZ3NfZmxhZ3MKICAgICAgICAgICAgbmFtZSAgICAg ICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZGVmYXVsdF9zdGF0aXN0 aWNzX3RhcmdldAotKDEgcm93KQorIGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbgorKDIgcm93 cykKIAogLS0gUnVudGltZS1jb21wdXRlZCBHVUNzIHNob3VsZCBiZSBwYXJ0IG9mIHRoZSBw cmVzZXQgY2F0ZWdvcnkuCiBTRUxFQ1QgbmFtZSBGUk9NIHRhYl9zZXR0aW5nc19mbGFncwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbmhlcml0Lm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW5oZXJpdC5vdXQKaW5kZXggMGYxYWE4MzFmNi4u MTc4MTI1MDEyMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbmhl cml0Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2luaGVyaXQub3V0CkBA IC0yNTYwLDcgKzI1NjAsNyBAQCBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20g bGlzdF9wYXJ0ZWQgd2hlcmUgYSA9ICdhYicgb3IgYSBpbiAobnVsbCwgJ2NkJwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBT ZXEgU2NhbiBvbiBwYXJ0X2FiX2NkIGxpc3RfcGFydGVkCi0gICBGaWx0ZXI6ICgoKGEpOjp0 ZXh0ID0gJ2FiJzo6dGV4dCkgT1IgKChhKTo6dGV4dCA9IEFOWSAoJ3tOVUxMLGNkfSc6OnRl eHRbXSkpKQorICAgRmlsdGVyOiAoKChhKTo6dGV4dCA9IEFOWSAoJ3tOVUxMLGNkfSc6OnRl eHRbXSkpIE9SICgoYSk6OnRleHQgPSAnYWInOjp0ZXh0KSkKICgyIHJvd3MpCiAKIGV4cGxh aW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBsaXN0X3BhcnRlZCB3aGVyZSBhID0gJ2Fi JzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0CmluZGV4IDJjNzMyNzAxNDMuLmU5 NTJlNTQwMWYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dApAQCAtNDIxMCwx MCArNDIxMCwxMCBAQCBleHBsYWluIChjb3N0cyBvZmYpCiBzZWxlY3QgKiBmcm9tIHRlbmsx IGEgam9pbiB0ZW5rMSBiIG9uCiAgIChhLnVuaXF1ZTEgPSAxIGFuZCBiLnVuaXF1ZTEgPSAy KSBvcgogICAoKGEudW5pcXVlMiA9IDMgb3IgYS51bmlxdWUyID0gNykgYW5kIGIuaHVuZHJl ZCA9IDQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICBOZXN0ZWQgTG9vcAotICAgSm9pbiBGaWx0ZXI6ICgoKGEudW5pcXVlMSA9IDEp IEFORCAoYi51bmlxdWUxID0gMikpIE9SICgoKGEudW5pcXVlMiA9IDMpIE9SIChhLnVuaXF1 ZTIgPSA3KSkgQU5EIChiLmh1bmRyZWQgPSA0KSkpCisgICBKb2luIEZpbHRlcjogKCgoYS51 bmlxdWUxID0gMSkgQU5EIChiLnVuaXF1ZTEgPSAyKSkgT1IgKChhLnVuaXF1ZTIgPSBBTlkg KCd7Myw3fSc6OmludGVnZXJbXSkpIEFORCAoYi5odW5kcmVkID0gNCkpKQogICAgLT4gIEJp dG1hcCBIZWFwIFNjYW4gb24gdGVuazEgYgogICAgICAgICAgUmVjaGVjayBDb25kOiAoKHVu aXF1ZTEgPSAyKSBPUiAoaHVuZHJlZCA9IDQpKQogICAgICAgICAgLT4gIEJpdG1hcE9yCkBA IC00MjIzLDE2ICs0MjIzLDY0IEBAIHNlbGVjdCAqIGZyb20gdGVuazEgYSBqb2luIHRlbmsx IGIgb24KICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChodW5kcmVkID0gNCkK ICAgIC0+ICBNYXRlcmlhbGl6ZQogICAgICAgICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24g dGVuazEgYQotICAgICAgICAgICAgICAgUmVjaGVjayBDb25kOiAoKHVuaXF1ZTEgPSAxKSBP UiAodW5pcXVlMiA9IDMpIE9SICh1bmlxdWUyID0gNykpCisgICAgICAgICAgICAgICBSZWNo ZWNrIENvbmQ6ICgodW5pcXVlMSA9IDEpIE9SICh1bmlxdWUyID0gQU5ZICgnezMsN30nOjpp bnRlZ2VyW10pKSkKICAgICAgICAgICAgICAgIC0+ICBCaXRtYXBPcgogICAgICAgICAgICAg ICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3VuaXF1ZTEKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUxID0gMSkKICAgICAg ICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV91bmlxdWUy Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMiA9IDMp CisgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMiA9IEFO WSAoJ3szLDd9Jzo6aW50ZWdlcltdKSkKKygxNyByb3dzKQorCitTRVQgZW5hYmxlX29yX3Ry YW5zZm9ybWF0aW9uID0gb247CitleHBsYWluIChjb3N0cyBvZmYpCitzZWxlY3QgKiBmcm9t IHRlbmsxIGEgam9pbiB0ZW5rMSBiIG9uCisgIChhLnVuaXF1ZTEgPSAxIGFuZCBiLnVuaXF1 ZTEgPSAyKSBvcgorICAoKGEudW5pcXVlMiA9IDMgb3IgYS51bmlxdWUyID0gNykgYW5kIGIu aHVuZHJlZCA9IDQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBOZXN0ZWQgTG9v cAorICAgSm9pbiBGaWx0ZXI6ICgoKGEudW5pcXVlMSA9IDEpIEFORCAoYi51bmlxdWUxID0g MikpIE9SICgoYS51bmlxdWUyID0gQU5ZICgnezMsN30nOjppbnRlZ2VyW10pKSBBTkQgKGIu aHVuZHJlZCA9IDQpKSkKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRlbmsxIGIKKyAg ICAgICAgIFJlY2hlY2sgQ29uZDogKCh1bmlxdWUxID0gMikgT1IgKGh1bmRyZWQgPSA0KSkK KyAgICAgICAgIC0+ICBCaXRtYXBPcgorICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRl eCBTY2FuIG9uIHRlbmsxX3VuaXF1ZTEKKyAgICAgICAgICAgICAgICAgICAgIEluZGV4IENv bmQ6ICh1bmlxdWUxID0gMikKKyAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2Nh biBvbiB0ZW5rMV9odW5kcmVkCisgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAo aHVuZHJlZCA9IDQpCisgICAtPiAgTWF0ZXJpYWxpemUKKyAgICAgICAgIC0+ICBCaXRtYXAg SGVhcCBTY2FuIG9uIHRlbmsxIGEKKyAgICAgICAgICAgICAgIFJlY2hlY2sgQ29uZDogKCh1 bmlxdWUxID0gMSkgT1IgKHVuaXF1ZTIgPSBBTlkgKCd7Myw3fSc6OmludGVnZXJbXSkpKQor ICAgICAgICAgICAgICAgLT4gIEJpdG1hcE9yCisgICAgICAgICAgICAgICAgICAgICAtPiAg Qml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdW5pcXVlMQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTEgPSAxKQogICAgICAgICAgICAgICAgICAg ICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3VuaXF1ZTIKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUyID0gNykKLSgxOSByb3dzKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTIgPSBBTlkg KCd7Myw3fSc6OmludGVnZXJbXSkpCisoMTcgcm93cykKKworZXhwbGFpbiAoY29zdHMgb2Zm KQorc2VsZWN0ICogZnJvbSB0ZW5rMSBhIGpvaW4gdGVuazEgYiBvbgorICAoYS51bmlxdWUx IDwgMjAgb3IgYS51bmlxdWUxID0gMyBvciBhLnVuaXF1ZTEgPSAxIGFuZCBiLnVuaXF1ZTEg PSAyKSBvcgorICAoKGEudW5pcXVlMiA9IDMgb3IgYS51bmlxdWUyID0gNykgYW5kIGIuaHVu ZHJlZCA9IDQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBOZXN0ZWQgTG9vcAorICAgSm9pbiBGaWx0ZXI6ICgoYS51bmlxdWUxIDwg MjApIE9SICgoYS51bmlxdWUxID0gMSkgQU5EIChiLnVuaXF1ZTEgPSAyKSkgT1IgKChhLnVu aXF1ZTIgPSBBTlkgKCd7Myw3fSc6OmludGVnZXJbXSkpIEFORCAoYi5odW5kcmVkID0gNCkp IE9SIChhLnVuaXF1ZTEgPSAzKSkKKyAgIC0+ICBTZXEgU2NhbiBvbiB0ZW5rMSBiCisgICAt PiAgTWF0ZXJpYWxpemUKKyAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRlbmsx IGEKKyAgICAgICAgICAgICAgIFJlY2hlY2sgQ29uZDogKCh1bmlxdWUxIDwgMjApIE9SICh1 bmlxdWUxID0gMSkgT1IgKHVuaXF1ZTIgPSBBTlkgKCd7Myw3fSc6OmludGVnZXJbXSkpIE9S ICh1bmlxdWUxID0gMykpCisgICAgICAgICAgICAgICAtPiAgQml0bWFwT3IKKyAgICAgICAg ICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV91bmlxdWUxCisg ICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMSA8IDIwKQor ICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3Vu aXF1ZTEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUx ID0gMSkKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0 ZW5rMV91bmlxdWUyCisgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAo dW5pcXVlMiA9IEFOWSAoJ3szLDd9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgICAgICAgICAg ICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV91bmlxdWUxCisgICAgICAgICAg ICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMSA9IDMpCisoMTUgcm93cykK IAorUkVTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uOwogLS0KIC0tIHRlc3QgcGxhY2Vt ZW50IG9mIG1vdmFibGUgcXVhbHMgaW4gYSBwYXJhbWV0ZXJpemVkIGpvaW4gdHJlZQogLS0K ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3BydW5l Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3BydW5lLm91dApp bmRleCA5YTRjNDhjMDU1Li4xNGEyNTRmYmE3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9wcnVuZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wYXJ0aXRpb25fcHJ1bmUub3V0CkBAIC04MiwyNSArODIsNDcgQEAgZXhw bGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgaXMgbnVsbDsKICgy IHJvd3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBh ID0gJ2EnIG9yIGEgPSAnYyc7Ci0gICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICBBcHBlbmQKICAgIC0+ICBTZXEgU2NhbiBvbiBscF9h ZCBscF8xCi0gICAgICAgICBGaWx0ZXI6ICgoYSA9ICdhJzo6YnBjaGFyKSBPUiAoYSA9ICdj Jzo6YnBjaGFyKSkKKyAgICAgICAgIEZpbHRlcjogKGEgPSBBTlkgKCd7YSxjfSc6OmJwY2hh cltdKSkKICAgIC0+ICBTZXEgU2NhbiBvbiBscF9iYyBscF8yCi0gICAgICAgICBGaWx0ZXI6 ICgoYSA9ICdhJzo6YnBjaGFyKSBPUiAoYSA9ICdjJzo6YnBjaGFyKSkKKyAgICAgICAgIEZp bHRlcjogKGEgPSBBTlkgKCd7YSxjfSc6OmJwY2hhcltdKSkKICg1IHJvd3MpCiAKIGV4cGxh aW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIGlzIG5vdCBudWxsIGFu ZCAoYSA9ICdhJyBvciBhID0gJ2MnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICBBcHBlbmQKICAgIC0+ICBTZXEgU2NhbiBvbiBscF9hZCBscF8xCi0gICAgICAg ICBGaWx0ZXI6ICgoYSBJUyBOT1QgTlVMTCkgQU5EICgoYSA9ICdhJzo6YnBjaGFyKSBPUiAo YSA9ICdjJzo6YnBjaGFyKSkpCisgICAgICAgICBGaWx0ZXI6ICgoYSBJUyBOT1QgTlVMTCkg QU5EIChhID0gQU5ZICgne2EsY30nOjpicGNoYXJbXSkpKQogICAgLT4gIFNlcSBTY2FuIG9u IGxwX2JjIGxwXzIKLSAgICAgICAgIEZpbHRlcjogKChhIElTIE5PVCBOVUxMKSBBTkQgKChh ID0gJ2EnOjpicGNoYXIpIE9SIChhID0gJ2MnOjpicGNoYXIpKSkKKyAgICAgICAgIEZpbHRl cjogKChhIElTIE5PVCBOVUxMKSBBTkQgKGEgPSBBTlkgKCd7YSxjfSc6OmJwY2hhcltdKSkp CiAoNSByb3dzKQogCitTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uID0gb247CitleHBs YWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbHAgd2hlcmUgYSA9ICdhJyBvciBhID0g J2MnOworICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQXBw ZW5kCisgICAtPiAgU2VxIFNjYW4gb24gbHBfYWQgbHBfMQorICAgICAgICAgRmlsdGVyOiAo YSA9IEFOWSAoJ3thLGN9Jzo6YnBjaGFyW10pKQorICAgLT4gIFNlcSBTY2FuIG9uIGxwX2Jj IGxwXzIKKyAgICAgICAgIEZpbHRlcjogKGEgPSBBTlkgKCd7YSxjfSc6OmJwY2hhcltdKSkK Kyg1IHJvd3MpCisKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVy ZSBhIGlzIG5vdCBudWxsIGFuZCAoYSA9ICdhJyBvciBhID0gJ2MnKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQXBwZW5kCisgICAtPiAgU2VxIFNjYW4gb24gbHBf YWQgbHBfMQorICAgICAgICAgRmlsdGVyOiAoKGEgSVMgTk9UIE5VTEwpIEFORCAoYSA9IEFO WSAoJ3thLGN9Jzo6YnBjaGFyW10pKSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBscF9iYyBscF8y CisgICAgICAgICBGaWx0ZXI6ICgoYSBJUyBOT1QgTlVMTCkgQU5EIChhID0gQU5ZICgne2Es Y30nOjpicGNoYXJbXSkpKQorKDUgcm93cykKKworUkVTRVQgZW5hYmxlX29yX3RyYW5zZm9y bWF0aW9uOwogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEg PD4gJ2cnOwogICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgCiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTUxNSwxMCArNTM3LDEwIEBAIGV4 cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA8PSAzMTsKICgy NyByb3dzKQogCiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJl IGEgPSAxIG9yIGEgPSA3OwotICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogIFNlcSBTY2FuIG9uIHJscDIgcmxwCi0gICBGaWx0ZXI6ICgoYSA9IDEp IE9SIChhID0gNykpCisgICBGaWx0ZXI6IChhID0gQU5ZICgnezEsN30nOjppbnRlZ2VyW10p KQogKDIgcm93cykKIAogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3 aGVyZSBhID0gMSBvciBiID0gJ2FiJzsKQEAgLTU5NiwxMyArNjE4LDEzIEBAIGV4cGxhaW4g KGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA8IDEgb3IgKGEgPiAyMCBh bmQgYSA8IDI1KTsKIAogLS0gd2hlcmUgY2xhdXNlIGNvbnRyYWRpY3RzIHN1Yi1wYXJ0aXRp b24ncyBjb25zdHJhaW50CiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxw IHdoZXJlIGEgPSAyMCBvciBhID0gNDA7Ci0gICAgICAgICAgICAgICBRVUVSWSBQTEFOICAg ICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBB cHBlbmQKICAgIC0+ICBTZXEgU2NhbiBvbiBybHA0XzEgcmxwXzEKLSAgICAgICAgIEZpbHRl cjogKChhID0gMjApIE9SIChhID0gNDApKQorICAgICAgICAgRmlsdGVyOiAoYSA9IEFOWSAo J3syMCw0MH0nOjppbnRlZ2VyW10pKQogICAgLT4gIFNlcSBTY2FuIG9uIHJscDVfZGVmYXVs dCBybHBfMgotICAgICAgICAgRmlsdGVyOiAoKGEgPSAyMCkgT1IgKGEgPSA0MCkpCisgICAg ICAgICBGaWx0ZXI6IChhID0gQU5ZICgnezIwLDQwfSc6OmludGVnZXJbXSkpCiAoNSByb3dz KQogCiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwMyB3aGVyZSBhID0g MjA7ICAgLyogZW1wdHkgKi8KQEAgLTY3MSw2ICs2OTMsMTYzIEBAIGV4cGxhaW4gKGNvc3Rz IG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgKGEgPSAxIGFuZCBhID0gMykgb3IgKGEg PiAxIGFuZCBhID0KICAgICAgICAgIEZpbHRlcjogKCgoYSA9IDEpIEFORCAoYSA9IDMpKSBP UiAoKGEgPiAxKSBBTkQgKGEgPSAxNSkpKQogKDExIHJvd3MpCiAKK1NFVCBlbmFibGVfb3Jf dHJhbnNmb3JtYXRpb24gPSBvbjsKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJv bSBybHAgd2hlcmUgYSA9IDEgb3IgYSA9IDc7CisgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFNlcSBTY2FuIG9uIHJscDIgcmxwCisgICBGaWx0ZXI6IChhID0gQU5ZICgn ezEsN30nOjppbnRlZ2VyW10pKQorKDIgcm93cykKKworZXhwbGFpbiAoY29zdHMgb2ZmKSBz ZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhID0gMSBvciBiID0gJ2FiJzsKKyAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBl bmQKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHAxIHJscF8xCisgICAgICAgICBGaWx0ZXI6ICgo YSA9IDEpIE9SICgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSkKKyAgIC0+ICBTZXEgU2NhbiBv biBybHAyIHJscF8yCisgICAgICAgICBGaWx0ZXI6ICgoYSA9IDEpIE9SICgoYik6OnRleHQg PSAnYWInOjp0ZXh0KSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHAzYWJjZCBybHBfMworICAg ICAgICAgRmlsdGVyOiAoKGEgPSAxKSBPUiAoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4dCkpCisg ICAtPiAgU2VxIFNjYW4gb24gcmxwNF8xIHJscF80CisgICAgICAgICBGaWx0ZXI6ICgoYSA9 IDEpIE9SICgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBy bHA0XzIgcmxwXzUKKyAgICAgICAgIEZpbHRlcjogKChhID0gMSkgT1IgKChiKTo6dGV4dCA9 ICdhYic6OnRleHQpKQorICAgLT4gIFNlcSBTY2FuIG9uIHJscDRfZGVmYXVsdCBybHBfNgor ICAgICAgICAgRmlsdGVyOiAoKGEgPSAxKSBPUiAoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4dCkp CisgICAtPiAgU2VxIFNjYW4gb24gcmxwNV8xIHJscF83CisgICAgICAgICBGaWx0ZXI6ICgo YSA9IDEpIE9SICgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSkKKyAgIC0+ICBTZXEgU2NhbiBv biBybHA1X2RlZmF1bHQgcmxwXzgKKyAgICAgICAgIEZpbHRlcjogKChhID0gMSkgT1IgKChi KTo6dGV4dCA9ICdhYic6OnRleHQpKQorICAgLT4gIFNlcSBTY2FuIG9uIHJscF9kZWZhdWx0 XzEwIHJscF85CisgICAgICAgICBGaWx0ZXI6ICgoYSA9IDEpIE9SICgoYik6OnRleHQgPSAn YWInOjp0ZXh0KSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHBfZGVmYXVsdF8zMCBybHBfMTAK KyAgICAgICAgIEZpbHRlcjogKChhID0gMSkgT1IgKChiKTo6dGV4dCA9ICdhYic6OnRleHQp KQorICAgLT4gIFNlcSBTY2FuIG9uIHJscF9kZWZhdWx0X251bGwgcmxwXzExCisgICAgICAg ICBGaWx0ZXI6ICgoYSA9IDEpIE9SICgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSkKKyAgIC0+ ICBTZXEgU2NhbiBvbiBybHBfZGVmYXVsdF9kZWZhdWx0IHJscF8xMgorICAgICAgICAgRmls dGVyOiAoKGEgPSAxKSBPUiAoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4dCkpCisoMjUgcm93cykK KworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhID4gMjAg YW5kIGEgPCAyNzsKKyAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFwcGVuZAor ICAgLT4gIFNlcSBTY2FuIG9uIHJscDRfMSBybHBfMQorICAgICAgICAgRmlsdGVyOiAoKGEg PiAyMCkgQU5EIChhIDwgMjcpKQorICAgLT4gIFNlcSBTY2FuIG9uIHJscDRfMiBybHBfMgor ICAgICAgICAgRmlsdGVyOiAoKGEgPiAyMCkgQU5EIChhIDwgMjcpKQorKDUgcm93cykKKwor ZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhID0gMjk7Cisg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFNlcSBTY2FuIG9uIHJscDRfZGVmYXVsdCBybHAKKyAgIEZpbHRlcjogKGEg PSAyOSkKKygyIHJvd3MpCisKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBy bHAgd2hlcmUgYSA+PSAyOTsKKyAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgQXBwZW5kCisgICAtPiAgU2VxIFNjYW4gb24gcmxwNF9kZWZhdWx0IHJscF8xCisg ICAgICAgICBGaWx0ZXI6IChhID49IDI5KQorICAgLT4gIFNlcSBTY2FuIG9uIHJscDVfMSBy bHBfMgorICAgICAgICAgRmlsdGVyOiAoYSA+PSAyOSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBy bHA1X2RlZmF1bHQgcmxwXzMKKyAgICAgICAgIEZpbHRlcjogKGEgPj0gMjkpCisgICAtPiAg U2VxIFNjYW4gb24gcmxwX2RlZmF1bHRfMzAgcmxwXzQKKyAgICAgICAgIEZpbHRlcjogKGEg Pj0gMjkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwX2RlZmF1bHRfZGVmYXVsdCBybHBfNQor ICAgICAgICAgRmlsdGVyOiAoYSA+PSAyOSkKKygxMSByb3dzKQorCitleHBsYWluIChjb3N0 cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPCAxIG9yIChhID4gMjAgYW5kIGEg PCAyNSk7CisgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIEFwcGVuZAorICAgLT4gIFNlcSBTY2FuIG9uIHJscDEgcmxwXzEKKyAg ICAgICAgIEZpbHRlcjogKChhIDwgMSkgT1IgKChhID4gMjApIEFORCAoYSA8IDI1KSkpCisg ICAtPiAgU2VxIFNjYW4gb24gcmxwNF8xIHJscF8yCisgICAgICAgICBGaWx0ZXI6ICgoYSA8 IDEpIE9SICgoYSA+IDIwKSBBTkQgKGEgPCAyNSkpKQorKDUgcm93cykKKworZXhwbGFpbiAo Y29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhID0gMjAgb3IgYSA9IDQwOwor ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQXBw ZW5kCisgICAtPiAgU2VxIFNjYW4gb24gcmxwNF8xIHJscF8xCisgICAgICAgICBGaWx0ZXI6 IChhID0gQU5ZICgnezIwLDQwfSc6OmludGVnZXJbXSkpCisgICAtPiAgU2VxIFNjYW4gb24g cmxwNV9kZWZhdWx0IHJscF8yCisgICAgICAgICBGaWx0ZXI6IChhID0gQU5ZICgnezIwLDQw fSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVj dCAqIGZyb20gcmxwMyB3aGVyZSBhID0gMjA7ICAgLyogZW1wdHkgKi8KKyAgICAgICAgUVVF UlkgUExBTiAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFJlc3VsdAor ICAgT25lLVRpbWUgRmlsdGVyOiBmYWxzZQorKDIgcm93cykKKworZXhwbGFpbiAoY29zdHMg b2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhID4gMSBhbmQgYSA9IDEwOwkvKiBvbmx5 IGRlZmF1bHQgKi8KKyAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBybHBfZGVmYXVs dF8xMCBybHAKKyAgIEZpbHRlcjogKChhID4gMSkgQU5EIChhID0gMTApKQorKDIgcm93cykK KworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhID4gMSBh bmQgYSA+PTE1OwkvKiBybHAzIG9ud2FyZHMsIGluY2x1ZGluZyBkZWZhdWx0ICovCisgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQXBwZW5kCisgICAtPiAg U2VxIFNjYW4gb24gcmxwM2FiY2QgcmxwXzEKKyAgICAgICAgIEZpbHRlcjogKChhID4gMSkg QU5EIChhID49IDE1KSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHAzZWZnaCBybHBfMgorICAg ICAgICAgRmlsdGVyOiAoKGEgPiAxKSBBTkQgKGEgPj0gMTUpKQorICAgLT4gIFNlcSBTY2Fu IG9uIHJscDNudWxseHkgcmxwXzMKKyAgICAgICAgIEZpbHRlcjogKChhID4gMSkgQU5EIChh ID49IDE1KSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHAzX2RlZmF1bHQgcmxwXzQKKyAgICAg ICAgIEZpbHRlcjogKChhID4gMSkgQU5EIChhID49IDE1KSkKKyAgIC0+ICBTZXEgU2NhbiBv biBybHA0XzEgcmxwXzUKKyAgICAgICAgIEZpbHRlcjogKChhID4gMSkgQU5EIChhID49IDE1 KSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHA0XzIgcmxwXzYKKyAgICAgICAgIEZpbHRlcjog KChhID4gMSkgQU5EIChhID49IDE1KSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHA0X2RlZmF1 bHQgcmxwXzcKKyAgICAgICAgIEZpbHRlcjogKChhID4gMSkgQU5EIChhID49IDE1KSkKKyAg IC0+ICBTZXEgU2NhbiBvbiBybHA1XzEgcmxwXzgKKyAgICAgICAgIEZpbHRlcjogKChhID4g MSkgQU5EIChhID49IDE1KSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHA1X2RlZmF1bHQgcmxw XzkKKyAgICAgICAgIEZpbHRlcjogKChhID4gMSkgQU5EIChhID49IDE1KSkKKyAgIC0+ICBT ZXEgU2NhbiBvbiBybHBfZGVmYXVsdF8zMCBybHBfMTAKKyAgICAgICAgIEZpbHRlcjogKChh ID4gMSkgQU5EIChhID49IDE1KSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHBfZGVmYXVsdF9k ZWZhdWx0IHJscF8xMQorICAgICAgICAgRmlsdGVyOiAoKGEgPiAxKSBBTkQgKGEgPj0gMTUp KQorKDIzIHJvd3MpCisKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAg d2hlcmUgYSA9IDEgYW5kIGEgPSAzOwkvKiBlbXB0eSAqLworICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgUmVzdWx0CisgICBPbmUt VGltZSBGaWx0ZXI6IGZhbHNlCisoMiByb3dzKQorCitleHBsYWluIChjb3N0cyBvZmYpIHNl bGVjdCAqIGZyb20gcmxwIHdoZXJlIChhID0gMSBhbmQgYSA9IDMpIG9yIChhID4gMSBhbmQg YSA9IDE1KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAgIC0+ ICBTZXEgU2NhbiBvbiBybHAyIHJscF8xCisgICAgICAgICBGaWx0ZXI6ICgoKGEgPSAxKSBB TkQgKGEgPSAzKSkgT1IgKChhID4gMSkgQU5EIChhID0gMTUpKSkKKyAgIC0+ICBTZXEgU2Nh biBvbiBybHAzYWJjZCBybHBfMgorICAgICAgICAgRmlsdGVyOiAoKChhID0gMSkgQU5EIChh ID0gMykpIE9SICgoYSA+IDEpIEFORCAoYSA9IDE1KSkpCisgICAtPiAgU2VxIFNjYW4gb24g cmxwM2VmZ2ggcmxwXzMKKyAgICAgICAgIEZpbHRlcjogKCgoYSA9IDEpIEFORCAoYSA9IDMp KSBPUiAoKGEgPiAxKSBBTkQgKGEgPSAxNSkpKQorICAgLT4gIFNlcSBTY2FuIG9uIHJscDNu dWxseHkgcmxwXzQKKyAgICAgICAgIEZpbHRlcjogKCgoYSA9IDEpIEFORCAoYSA9IDMpKSBP UiAoKGEgPiAxKSBBTkQgKGEgPSAxNSkpKQorICAgLT4gIFNlcSBTY2FuIG9uIHJscDNfZGVm YXVsdCBybHBfNQorICAgICAgICAgRmlsdGVyOiAoKChhID0gMSkgQU5EIChhID0gMykpIE9S ICgoYSA+IDEpIEFORCAoYSA9IDE1KSkpCisoMTEgcm93cykKKworUkVTRVQgZW5hYmxlX29y X3RyYW5zZm9ybWF0aW9uOwogLS0gbXVsdGktY29sdW1uIGtleXMKIGNyZWF0ZSB0YWJsZSBt YzNwIChhIGludCwgYiBpbnQsIGMgaW50KSBwYXJ0aXRpb24gYnkgcmFuZ2UgKGEsIGFicyhi KSwgYyk7CiBjcmVhdGUgdGFibGUgbWMzcF9kZWZhdWx0IHBhcnRpdGlvbiBvZiBtYzNwIGRl ZmF1bHQ7CkBAIC0xOTMzLDEwICsyMTEyLDEwIEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgc2Vs ZWN0ICogZnJvbSBocCB3aGVyZSBhID0gMSBhbmQgYiA9ICdhYmNkZSc7CiAKIGV4cGxhaW4g KGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBocCB3aGVyZSBhID0gMSBhbmQgYiA9ICdhYmNk ZScgYW5kCiAgIChjID0gMiBvciBjID0gMyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICBTZXEgU2NhbiBvbiBocDIgaHAKLSAgIEZpbHRlcjogKChhID0gMSkg QU5EIChiID0gJ2FiY2RlJzo6dGV4dCkgQU5EICgoYyA9IDIpIE9SIChjID0gMykpKQorICAg RmlsdGVyOiAoKGMgPSBBTlkgKCd7MiwzfSc6OmludGVnZXJbXSkpIEFORCAoYSA9IDEpIEFO RCAoYiA9ICdhYmNkZSc6OnRleHQpKQogKDIgcm93cykKIAogZHJvcCB0YWJsZSBocDI7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IDE0NDJjNDNkOWMuLjNiZWY5 NjkzMjggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0yNDcxLDcg KzI0NzEsNyBAQCBwZ19zdGF0c3wgU0VMRUNUIG4ubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAog ICAgICBKT0lOIHBnX2NsYXNzIGMgT04gKChjLm9pZCA9IHMuc3RhcmVsaWQpKSkKICAgICAg Sk9JTiBwZ19hdHRyaWJ1dGUgYSBPTiAoKChjLm9pZCA9IGEuYXR0cmVsaWQpIEFORCAoYS5h dHRudW0gPSBzLnN0YWF0dG51bSkpKSkKICAgICAgTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBu IE9OICgobi5vaWQgPSBjLnJlbG5hbWVzcGFjZSkpKQotICBXSEVSRSAoKE5PVCBhLmF0dGlz ZHJvcHBlZCkgQU5EIGhhc19jb2x1bW5fcHJpdmlsZWdlKGMub2lkLCBhLmF0dG51bSwgJ3Nl bGVjdCc6OnRleHQpIEFORCAoKGMucmVscm93c2VjdXJpdHkgPSBmYWxzZSkgT1IgKE5PVCBy b3dfc2VjdXJpdHlfYWN0aXZlKGMub2lkKSkpKTsKKyAgV0hFUkUgKChOT1QgYS5hdHRpc2Ry b3BwZWQpIEFORCBoYXNfY29sdW1uX3ByaXZpbGVnZShjLm9pZCwgYS5hdHRudW0sICdzZWxl Y3QnOjp0ZXh0KSBBTkQgKChOT1Qgcm93X3NlY3VyaXR5X2FjdGl2ZShjLm9pZCkpIE9SIChj LnJlbHJvd3NlY3VyaXR5ID0gZmFsc2UpKSk7CiBwZ19zdGF0c19leHR8IFNFTEVDVCBjbi5u c3BuYW1lIEFTIHNjaGVtYW5hbWUsCiAgICAgYy5yZWxuYW1lIEFTIHRhYmxlbmFtZSwKICAg ICBzbi5uc3BuYW1lIEFTIHN0YXRpc3RpY3Nfc2NoZW1hbmFtZSwKQEAgLTI1MDIsNyArMjUw Miw3IEBAIHBnX3N0YXRzX2V4dHwgU0VMRUNUIGNuLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwK ICAgV0hFUkUgKChOT1QgKEVYSVNUUyAoIFNFTEVDVCAxCiAgICAgICAgICAgIEZST00gKHVu bmVzdChzLnN0eGtleXMpIGsoaykKICAgICAgICAgICAgICBKT0lOIHBnX2F0dHJpYnV0ZSBh IE9OICgoKGEuYXR0cmVsaWQgPSBzLnN0eHJlbGlkKSBBTkQgKGEuYXR0bnVtID0gay5rKSkp KQotICAgICAgICAgIFdIRVJFIChOT1QgaGFzX2NvbHVtbl9wcml2aWxlZ2UoYy5vaWQsIGEu YXR0bnVtLCAnc2VsZWN0Jzo6dGV4dCkpKSkpIEFORCAoKGMucmVscm93c2VjdXJpdHkgPSBm YWxzZSkgT1IgKE5PVCByb3dfc2VjdXJpdHlfYWN0aXZlKGMub2lkKSkpKTsKKyAgICAgICAg ICBXSEVSRSAoTk9UIGhhc19jb2x1bW5fcHJpdmlsZWdlKGMub2lkLCBhLmF0dG51bSwgJ3Nl bGVjdCc6OnRleHQpKSkpKSBBTkQgKChOT1Qgcm93X3NlY3VyaXR5X2FjdGl2ZShjLm9pZCkp IE9SIChjLnJlbHJvd3NlY3VyaXR5ID0gZmFsc2UpKSk7CiBwZ19zdGF0c19leHRfZXhwcnN8 IFNFTEVDVCBjbi5uc3BuYW1lIEFTIHNjaGVtYW5hbWUsCiAgICAgYy5yZWxuYW1lIEFTIHRh YmxlbmFtZSwKICAgICBzbi5uc3BuYW1lIEFTIHN0YXRpc3RpY3Nfc2NoZW1hbmFtZSwKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHNfZXh0Lm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHNfZXh0Lm91dAppbmRleCBhNDMwMTUzYjIy Li42NTlkNzEyZjc1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0 YXRzX2V4dC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0c19leHQu b3V0CkBAIC0xMzIyLDE5ICsxMzIyLDE5IEBAIFNFTEVDVCAqIEZST00gY2hlY2tfZXN0aW1h dGVkX3Jvd3MoJ1NFTEVDVCAqIEZST00gZnVuY3Rpb25hbF9kZXBlbmRlbmNpZXMgV0hFUkUK IFNFTEVDVCAqIEZST00gY2hlY2tfZXN0aW1hdGVkX3Jvd3MoJ1NFTEVDVCAqIEZST00gZnVu Y3Rpb25hbF9kZXBlbmRlbmNpZXMgV0hFUkUgKGEgPSAxIE9SIGEgPSA1MSkgQU5EIGIgPSAn JzEnJycpOwogIGVzdGltYXRlZCB8IGFjdHVhbCAKIC0tLS0tLS0tLS0tKy0tLS0tLS0tCi0g ICAgICAgIDk5IHwgICAgMTAwCisgICAgICAgMTAwIHwgICAgMTAwCiAoMSByb3cpCiAKIFNF TEVDVCAqIEZST00gY2hlY2tfZXN0aW1hdGVkX3Jvd3MoJ1NFTEVDVCAqIEZST00gZnVuY3Rp b25hbF9kZXBlbmRlbmNpZXMgV0hFUkUgKGEgPSAxIE9SIGEgPSA1MSkgQU5EIChiID0gJycx JycgT1IgYiA9ICcnMicnKScpOwogIGVzdGltYXRlZCB8IGFjdHVhbCAKIC0tLS0tLS0tLS0t Ky0tLS0tLS0tCi0gICAgICAgIDk5IHwgICAgMTAwCisgICAgICAgMTAwIHwgICAgMTAwCiAo MSByb3cpCiAKIFNFTEVDVCAqIEZST00gY2hlY2tfZXN0aW1hdGVkX3Jvd3MoJ1NFTEVDVCAq IEZST00gZnVuY3Rpb25hbF9kZXBlbmRlbmNpZXMgV0hFUkUgKGEgPSAxIE9SIGEgPSAyIE9S IGEgPSA1MSBPUiBhID0gNTIpIEFORCAoYiA9ICcnMScnIE9SIGIgPSAnJzInJyknKTsKICBl c3RpbWF0ZWQgfCBhY3R1YWwgCiAtLS0tLS0tLS0tLSstLS0tLS0tLQotICAgICAgIDE5NyB8 ICAgIDIwMAorICAgICAgIDIwMCB8ICAgIDIwMAogKDEgcm93KQogCiAtLSBPUiBjbGF1c2Vz IHJlZmVyZW5jaW5nIGRpZmZlcmVudCBhdHRyaWJ1dGVzIGFyZSBpbmNvbXBhdGlibGUKQEAg LTE2NjQsMTkgKzE2NjQsMTkgQEAgU0VMRUNUICogRlJPTSBjaGVja19lc3RpbWF0ZWRfcm93 cygnU0VMRUNUICogRlJPTSBmdW5jdGlvbmFsX2RlcGVuZGVuY2llcyBXSEVSRQogU0VMRUNU ICogRlJPTSBjaGVja19lc3RpbWF0ZWRfcm93cygnU0VMRUNUICogRlJPTSBmdW5jdGlvbmFs X2RlcGVuZGVuY2llcyBXSEVSRSAoKGEgKiAyKSA9IDIgT1IgKGEgKiAyKSA9IDEwMikgQU5E IHVwcGVyKGIpID0gJycxJycnKTsKICBlc3RpbWF0ZWQgfCBhY3R1YWwgCiAtLS0tLS0tLS0t LSstLS0tLS0tLQotICAgICAgICA5OSB8ICAgIDEwMAorICAgICAgIDEwMCB8ICAgIDEwMAog KDEgcm93KQogCiBTRUxFQ1QgKiBGUk9NIGNoZWNrX2VzdGltYXRlZF9yb3dzKCdTRUxFQ1Qg KiBGUk9NIGZ1bmN0aW9uYWxfZGVwZW5kZW5jaWVzIFdIRVJFICgoYSAqIDIpID0gMiBPUiAo YSAqIDIpID0gMTAyKSBBTkQgKHVwcGVyKGIpID0gJycxJycgT1IgdXBwZXIoYikgPSAnJzIn JyknKTsKICBlc3RpbWF0ZWQgfCBhY3R1YWwgCiAtLS0tLS0tLS0tLSstLS0tLS0tLQotICAg ICAgICA5OSB8ICAgIDEwMAorICAgICAgIDEwMCB8ICAgIDEwMAogKDEgcm93KQogCiBTRUxF Q1QgKiBGUk9NIGNoZWNrX2VzdGltYXRlZF9yb3dzKCdTRUxFQ1QgKiBGUk9NIGZ1bmN0aW9u YWxfZGVwZW5kZW5jaWVzIFdIRVJFICgoYSAqIDIpID0gMiBPUiAoYSAqIDIpID0gNCBPUiAo YSAqIDIpID0gMTAyIE9SIChhICogMikgPSAxMDQpIEFORCAodXBwZXIoYikgPSAnJzEnJyBP UiB1cHBlcihiKSA9ICcnMicnKScpOwogIGVzdGltYXRlZCB8IGFjdHVhbCAKIC0tLS0tLS0t LS0tKy0tLS0tLS0tCi0gICAgICAgMTk3IHwgICAgMjAwCisgICAgICAgMjAwIHwgICAgMjAw CiAoMSByb3cpCiAKIC0tIE9SIGNsYXVzZXMgcmVmZXJlbmNpbmcgZGlmZmVyZW50IGF0dHJp YnV0ZXMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3lzdmlld3Mu b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zeXN2aWV3cy5vdXQKaW5kZXggMjcx MzEzZWJmOC4uYzZjNmI5ZmI4ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zeXN2aWV3cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zeXN2 aWV3cy5vdXQKQEAgLTEyMyw2ICsxMjMsNyBAQCBzZWxlY3QgbmFtZSwgc2V0dGluZyBmcm9t IHBnX3NldHRpbmdzIHdoZXJlIG5hbWUgbGlrZSAnZW5hYmxlJSc7CiAgZW5hYmxlX21lbW9p emUgICAgICAgICAgICAgICAgIHwgb24KICBlbmFibGVfbWVyZ2Vqb2luICAgICAgICAgICAg ICAgfCBvbgogIGVuYWJsZV9uZXN0bG9vcCAgICAgICAgICAgICAgICB8IG9uCisgZW5hYmxl X29yX3RyYW5zZm9ybWF0aW9uICAgICAgIHwgb24KICBlbmFibGVfcGFyYWxsZWxfYXBwZW5k ICAgICAgICAgfCBvbgogIGVuYWJsZV9wYXJhbGxlbF9oYXNoICAgICAgICAgICB8IG9uCiAg ZW5hYmxlX3BhcnRpdGlvbl9wcnVuaW5nICAgICAgIHwgb24KQEAgLTEzMyw3ICsxMzQsNyBA QCBzZWxlY3QgbmFtZSwgc2V0dGluZyBmcm9tIHBnX3NldHRpbmdzIHdoZXJlIG5hbWUgbGlr ZSAnZW5hYmxlJSc7CiAgZW5hYmxlX3NlcXNjYW4gICAgICAgICAgICAgICAgIHwgb24KICBl bmFibGVfc29ydCAgICAgICAgICAgICAgICAgICAgfCBvbgogIGVuYWJsZV90aWRzY2FuICAg ICAgICAgICAgICAgICB8IG9uCi0oMjIgcm93cykKKygyMyByb3dzKQogCiAtLSBUaGVyZSBh cmUgYWx3YXlzIHdhaXQgZXZlbnQgZGVzY3JpcHRpb25zIGZvciB2YXJpb3VzIHR5cGVzLgog c2VsZWN0IHR5cGUsIGNvdW50KCopID4gMCBhcyBvayBGUk9NIHBnX3dhaXRfZXZlbnRzCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RpZHNjYW4ub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC90aWRzY2FuLm91dAppbmRleCBmMTMzYjVhNGFjLi4y YTA3OWU5OTZiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RpZHNj YW4ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdGlkc2Nhbi5vdXQKQEAg LTQzLDEwICs0MywyNiBAQCBTRUxFQ1QgY3RpZCwgKiBGUk9NIHRpZHNjYW4gV0hFUkUgJygw LDEpJyA9IGN0aWQ7CiAtLSBPUidkIGNsYXVzZXMKIEVYUExBSU4gKENPU1RTIE9GRikKIFNF TEVDVCBjdGlkLCAqIEZST00gdGlkc2NhbiBXSEVSRSBjdGlkID0gJygwLDIpJyBPUiAnKDAs MSknID0gY3RpZDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFRpZCBTY2FuIG9uIHRp ZHNjYW4KKyAgIFRJRCBDb25kOiAoY3RpZCA9IEFOWSAoJ3siKDAsMikiLCIoMCwxKSJ9Jzo6 dGlkW10pKQorKDIgcm93cykKKworU0VMRUNUIGN0aWQsICogRlJPTSB0aWRzY2FuIFdIRVJF IGN0aWQgPSAnKDAsMiknIE9SICcoMCwxKScgPSBjdGlkOworIGN0aWQgIHwgaWQgCistLS0t LS0tKy0tLS0KKyAoMCwxKSB8ICAxCisgKDAsMikgfCAgMgorKDIgcm93cykKKworU0VUIGVu YWJsZV9vcl90cmFuc2Zvcm1hdGlvbiA9IG9uOworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUIGN0aWQsICogRlJPTSB0aWRzY2FuIFdIRVJFIGN0aWQgPSAnKDAsMiknIE9SICcoMCwx KScgPSBjdGlkOworICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogIFRpZCBTY2FuIG9uIHRpZHNjYW4KLSAgIFRJRCBDb25kOiAo KGN0aWQgPSAnKDAsMiknOjp0aWQpIE9SICgnKDAsMSknOjp0aWQgPSBjdGlkKSkKKyAgIFRJ RCBDb25kOiAoY3RpZCA9IEFOWSAoJ3siKDAsMikiLCIoMCwxKSJ9Jzo6dGlkW10pKQogKDIg cm93cykKIAogU0VMRUNUIGN0aWQsICogRlJPTSB0aWRzY2FuIFdIRVJFIGN0aWQgPSAnKDAs MiknIE9SICcoMCwxKScgPSBjdGlkOwpAQCAtNTYsNiArNzIsNyBAQCBTRUxFQ1QgY3RpZCwg KiBGUk9NIHRpZHNjYW4gV0hFUkUgY3RpZCA9ICcoMCwyKScgT1IgJygwLDEpJyA9IGN0aWQ7 CiAgKDAsMikgfCAgMgogKDIgcm93cykKIAorUkVTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0 aW9uOwogLS0gY3RpZCA9IFNjYWxhckFycmF5T3AgLSBpbXBsZW1lbnRlZCBhcyB0aWRzY2Fu CiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgY3RpZCwgKiBGUk9NIHRpZHNjYW4gV0hF UkUgY3RpZCA9IEFOWShBUlJBWVsnKDAsMSknLCAnKDAsMiknXTo6dGlkW10pOwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2luZGV4LnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9pbmRleC5zcWwKaW5kZXggZDQ5Y2U5ZjMwMC4uNDhiYjFi YzBhMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2luZGV4LnNx bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfaW5kZXguc3FsCkBAIC03Mzcs NiArNzM3LDM4IEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCiBTRUxFQ1QgY291bnQo KikgRlJPTSB0ZW5rMQogICBXSEVSRSBodW5kcmVkID0gNDIgQU5EICh0aG91c2FuZCA9IDQy IE9SIHRob3VzYW5kID0gOTkpOwogCitTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uID0g b247CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgKiBGUk9NIHRlbmsxCisgIFdIRVJF IHRob3VzYW5kID0gNDIgQU5EICh0ZW50aG91cyA9IDEgT1IgdGVudGhvdXMgPSAzIE9SIHRl bnRob3VzID0gNDIpOworU0VMRUNUICogRlJPTSB0ZW5rMQorICBXSEVSRSB0aG91c2FuZCA9 IDQyIEFORCAodGVudGhvdXMgPSAxIE9SIHRlbnRob3VzID0gMyBPUiB0ZW50aG91cyA9IDQy KTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIEZST00gdGVuazEK KyAgV0hFUkUgaHVuZHJlZCA9IDQyIEFORCAodGhvdXNhbmQgPSA0MiBPUiB0aG91c2FuZCA9 IDk5KTsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCisgIFdIRVJFIGh1bmRyZWQgPSA0 MiBBTkQgKHRob3VzYW5kID0gNDIgT1IgdGhvdXNhbmQgPSA5OSk7CisKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCisgIFdIRVJFIHRob3VzYW5k ID0gNDIgQU5EICh0ZW50aG91cyA9IDEgT1IgdGVudGhvdXMgPSAzKSBPUiB0aG91c2FuZCA9 IDQxOworU0VMRUNUIGNvdW50KCopIEZST00gdGVuazEKKyAgV0hFUkUgdGhvdXNhbmQgPSA0 MiBBTkQgKHRlbnRob3VzID0gMSBPUiB0ZW50aG91cyA9IDMpIE9SIHRob3VzYW5kID0gNDE7 CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCisg IFdIRVJFIGh1bmRyZWQgPSA0MiBBTkQgKHRob3VzYW5kID0gNDIgT1IgdGhvdXNhbmQgPSA5 OSBPUiB0ZW50aG91cyA8IDIpIE9SIHRob3VzYW5kID0gNDE7CitTRUxFQ1QgY291bnQoKikg RlJPTSB0ZW5rMQorICBXSEVSRSBodW5kcmVkID0gNDIgQU5EICh0aG91c2FuZCA9IDQyIE9S IHRob3VzYW5kID0gOTkgT1IgdGVudGhvdXMgPCAyKSBPUiB0aG91c2FuZCA9IDQxOworCitF WFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQorICBXSEVS RSBodW5kcmVkID0gNDIgQU5EICh0aG91c2FuZCA9IDQyIE9SIHRob3VzYW5kID0gNDEgT1Ig dGhvdXNhbmQgPSA5OSBBTkQgdGVudGhvdXMgPSAyKTsKK1NFTEVDVCBjb3VudCgqKSBGUk9N IHRlbmsxCisgIFdIRVJFIGh1bmRyZWQgPSA0MiBBTkQgKHRob3VzYW5kID0gNDIgT1IgdGhv dXNhbmQgPSA0MSBPUiB0aG91c2FuZCA9IDk5IEFORCB0ZW50aG91cyA9IDIpOworUkVTRVQg ZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uOworCiAtLQogLS0gQ2hlY2sgYmVoYXZpb3Igd2l0 aCBkdXBsaWNhdGUgaW5kZXggY29sdW1uIGNvbnRlbnRzCiAtLQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvam9pbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qb2lu LnNxbAppbmRleCA4YThhNjNiZDJmLi41NWQ3ZTJhZTdkIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9qb2luLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qb2lu LnNxbApAQCAtMTQwOCw2ICsxNDA4LDE2IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikKIHNlbGVj dCAqIGZyb20gdGVuazEgYSBqb2luIHRlbmsxIGIgb24KICAgKGEudW5pcXVlMSA9IDEgYW5k IGIudW5pcXVlMSA9IDIpIG9yCiAgICgoYS51bmlxdWUyID0gMyBvciBhLnVuaXF1ZTIgPSA3 KSBhbmQgYi5odW5kcmVkID0gNCk7CitTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uID0g b247CitleHBsYWluIChjb3N0cyBvZmYpCitzZWxlY3QgKiBmcm9tIHRlbmsxIGEgam9pbiB0 ZW5rMSBiIG9uCisgIChhLnVuaXF1ZTEgPSAxIGFuZCBiLnVuaXF1ZTEgPSAyKSBvcgorICAo KGEudW5pcXVlMiA9IDMgb3IgYS51bmlxdWUyID0gNykgYW5kIGIuaHVuZHJlZCA9IDQpOwor ZXhwbGFpbiAoY29zdHMgb2ZmKQorc2VsZWN0ICogZnJvbSB0ZW5rMSBhIGpvaW4gdGVuazEg YiBvbgorICAoYS51bmlxdWUxIDwgMjAgb3IgYS51bmlxdWUxID0gMyBvciBhLnVuaXF1ZTEg PSAxIGFuZCBiLnVuaXF1ZTEgPSAyKSBvcgorICAoKGEudW5pcXVlMiA9IDMgb3IgYS51bmlx dWUyID0gNykgYW5kIGIuaHVuZHJlZCA9IDQpOworUkVTRVQgZW5hYmxlX29yX3RyYW5zZm9y bWF0aW9uOwogCiAtLQogLS0gdGVzdCBwbGFjZW1lbnQgb2YgbW92YWJsZSBxdWFscyBpbiBh IHBhcmFtZXRlcml6ZWQgam9pbiB0cmVlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9wYXJ0aXRpb25fcHJ1bmUuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0 aW9uX3BydW5lLnNxbAppbmRleCA3YmYzOTIwODI3Li4xZTI3MGFlOWMwIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25fcHJ1bmUuc3FsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9wcnVuZS5zcWwKQEAgLTIxLDYgKzIxLDEyIEBA IGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIGlzIG5vdCBu dWxsOwogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgaXMg bnVsbDsKIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhID0g J2EnIG9yIGEgPSAnYyc7CiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbHAg d2hlcmUgYSBpcyBub3QgbnVsbCBhbmQgKGEgPSAnYScgb3IgYSA9ICdjJyk7CisKK1NFVCBl bmFibGVfb3JfdHJhbnNmb3JtYXRpb24gPSBvbjsKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2Vs ZWN0ICogZnJvbSBscCB3aGVyZSBhID0gJ2EnIG9yIGEgPSAnYyc7CitleHBsYWluIChjb3N0 cyBvZmYpIHNlbGVjdCAqIGZyb20gbHAgd2hlcmUgYSBpcyBub3QgbnVsbCBhbmQgKGEgPSAn YScgb3IgYSA9ICdjJyk7CitSRVNFVCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb247CisKIGV4 cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIDw+ICdnJzsKIGV4 cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIDw+ICdhJyBhbmQg YSA8PiAnZCc7CiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbHAgd2hlcmUg YSBub3QgaW4gKCdhJywgJ2QnKTsKQEAgLTk5LDYgKzEwNSwyMiBAQCBleHBsYWluIChjb3N0 cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPiAxIGFuZCBhID49MTU7CS8qIHJs cDMgb253YXJkcywgaQogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3 aGVyZSBhID0gMSBhbmQgYSA9IDM7CS8qIGVtcHR5ICovCiBleHBsYWluIChjb3N0cyBvZmYp IHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIChhID0gMSBhbmQgYSA9IDMpIG9yIChhID4gMSBh bmQgYSA9IDE1KTsKIAorCitTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uID0gb247Citl eHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPSAxIG9yIGEg PSA3OworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhID0g MSBvciBiID0gJ2FiJzsKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAg d2hlcmUgYSA+IDIwIGFuZCBhIDwgMjc7CitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAq IGZyb20gcmxwIHdoZXJlIGEgPSAyOTsKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICog ZnJvbSBybHAgd2hlcmUgYSA+PSAyOTsKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICog ZnJvbSBybHAgd2hlcmUgYSA8IDEgb3IgKGEgPiAyMCBhbmQgYSA8IDI1KTsKK2V4cGxhaW4g KGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA9IDIwIG9yIGEgPSA0MDsK K2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAzIHdoZXJlIGEgPSAyMDsg ICAvKiBlbXB0eSAqLworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3 aGVyZSBhID4gMSBhbmQgYSA9IDEwOwkvKiBvbmx5IGRlZmF1bHQgKi8KK2V4cGxhaW4gKGNv c3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA+IDEgYW5kIGEgPj0xNTsJLyog cmxwMyBvbndhcmRzLCBpbmNsdWRpbmcgZGVmYXVsdCAqLworZXhwbGFpbiAoY29zdHMgb2Zm KSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhID0gMSBhbmQgYSA9IDM7CS8qIGVtcHR5ICov CitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIChhID0gMSBh bmQgYSA9IDMpIG9yIChhID4gMSBhbmQgYSA9IDE1KTsKK1JFU0VUIGVuYWJsZV9vcl90cmFu c2Zvcm1hdGlvbjsKKwogLS0gbXVsdGktY29sdW1uIGtleXMKIGNyZWF0ZSB0YWJsZSBtYzNw IChhIGludCwgYiBpbnQsIGMgaW50KSBwYXJ0aXRpb24gYnkgcmFuZ2UgKGEsIGFicyhiKSwg Yyk7CiBjcmVhdGUgdGFibGUgbWMzcF9kZWZhdWx0IHBhcnRpdGlvbiBvZiBtYzNwIGRlZmF1 bHQ7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC90aWRzY2FuLnNxbCBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3RpZHNjYW4uc3FsCmluZGV4IDMxM2UwZmI5YjYuLjA0OTli ZWRiOWUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RpZHNjYW4uc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RpZHNjYW4uc3FsCkBAIC0yMiw2ICsyMiwxMiBA QCBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgY3RpZCwgKiBGUk9NIHRpZHNjYW4gV0hF UkUgY3RpZCA9ICcoMCwyKScgT1IgJygwLDEpJyA9IGN0aWQ7CiBTRUxFQ1QgY3RpZCwgKiBG Uk9NIHRpZHNjYW4gV0hFUkUgY3RpZCA9ICcoMCwyKScgT1IgJygwLDEpJyA9IGN0aWQ7CiAK K1NFVCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24gPSBvbjsKK0VYUExBSU4gKENPU1RTIE9G RikKK1NFTEVDVCBjdGlkLCAqIEZST00gdGlkc2NhbiBXSEVSRSBjdGlkID0gJygwLDIpJyBP UiAnKDAsMSknID0gY3RpZDsKK1NFTEVDVCBjdGlkLCAqIEZST00gdGlkc2NhbiBXSEVSRSBj dGlkID0gJygwLDIpJyBPUiAnKDAsMSknID0gY3RpZDsKK1JFU0VUIGVuYWJsZV9vcl90cmFu c2Zvcm1hdGlvbjsKKwogLS0gY3RpZCA9IFNjYWxhckFycmF5T3AgLSBpbXBsZW1lbnRlZCBh cyB0aWRzY2FuCiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgY3RpZCwgKiBGUk9NIHRp ZHNjYW4gV0hFUkUgY3RpZCA9IEFOWShBUlJBWVsnKDAsMSknLCAnKDAsMiknXTo6dGlkW10p OwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMv dG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCBkYmEzNDk4YTEzLi5iMjAwMzYz ZDRlIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysg Yi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMTY0MSw2ICsxNjQxLDgg QEAgTnVtZXJpY1ZhcgogT01fdWludDMyCiBPUAogT1NBUGVyR3JvdXBTdGF0ZQorT3JDbGF1 c2VHcm91cEVudHJpZXMKK09yQ2xhdXNlR3JvdXBFbnRyeQogT1NBUGVyUXVlcnlTdGF0ZQog T1NJbmZvCiBPU1NMQ2lwaGVyCi0tIAoyLjQzLjAKCg== --------------wJfho040adl7zt6sdD8iDRD9--