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 1r7WZW-005h0K-9c for pgsql-hackers@arkaria.postgresql.org; Mon, 27 Nov 2023 08:02:27 +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 1r7WZT-00BWBJ-Dd for pgsql-hackers@arkaria.postgresql.org; Mon, 27 Nov 2023 08:02:23 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r7WZS-00BWBB-S7 for pgsql-hackers@lists.postgresql.org; Mon, 27 Nov 2023 08:02:23 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r7WZO-008kco-Pc for pgsql-hackers@postgresql.org; Mon, 27 Nov 2023 08:02:22 +0000 Received: from [192.168.1.37] (ppp-58-11-30-90.revip2.asianet.co.th [58.11.30.90]) (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 2754EE20E22; Mon, 27 Nov 2023 11:02:12 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1701072137; bh=kMkUsYpoEUhnF+nBDfXyHZprmrI694LApH1PC90KzWY=; h=Message-ID:Date:User-Agent:Subject:To:Cc:References:From: In-Reply-To:From; b=7cUIIJrwKgPN4JmZJgHr6mx+38ypvQL8tlah/9VlBAeaY/LeamfqsY3jeEsUJOcvX O8oqCwFMc1WwAJvwPdQbvAAqdpbLxEP07+x9QBsSDywdaQppInttLzcuUuLHBumJJN zMjjiFyqg8eKDNqcHtjv1CLV7FRBDa8l/jCJ7MBsHuQFaBpoj3qjLlKjidFDlIIJTM xzP6oSZnmOyGABOJmnNjNJ4Wii34D35Eb1CubBi/pVN2OZIn5KcU6kZqd6Zyyned/9 NvTKM3LrL05v5IKYArIo5vZftE3IHVXic+kC98aAm/Yc7gLAYyVqGir3la8IJ5ZS9s KEUcdOVxiaeIA== Content-Type: multipart/mixed; boundary="------------TRlJb6xhAVg5P5y0KG0fw75Q" Message-ID: <04ef16eb-46c1-4ce7-9f68-d1c80ef0be81@postgrespro.ru> Date: Mon, 27 Nov 2023 15:02:09 +0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: POC, WIP: OR-clause support for indexes To: Alexander Korotkov , Alena Rybakina Cc: pgsql-hackers@postgresql.org, Peter Geoghegan , Robert Haas , "Finnerty, Jim" , Marcos Pegoraro , teodor@sigaev.ru, Ranier Vilela , Tomas Vondra , Peter Eisentraut References: <567ED6CA.2040504@sigaev.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 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. --------------TRlJb6xhAVg5P5y0KG0fw75Q Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 25/11/2023 08:23, Alexander Korotkov wrote: > I think patch certainly gets better in this aspect. One thing I can't > understand is why do we use home-grown code for resolving > hash-collisions. You can just define custom hash and match functions > in HASHCTL. Even if we need to avoid repeated JumbleExpr calls, we > still can save pre-calculated hash value into hash entry and use > custom hash and match. This doesn't imply us to write our own > collision-resolving code. Thanks, it was an insightful suggestion. I implemented it, and the code has become shorter (see attachment). -- regards, Andrei Lepikhov Postgres Professional --------------TRlJb6xhAVg5P5y0KG0fw75Q Content-Type: text/plain; charset=UTF-8; name="v12-0001-Transform-OR-clause-to-ANY-expressions.patch" Content-Disposition: attachment; filename="v12-0001-Transform-OR-clause-to-ANY-expressions.patch" Content-Transfer-Encoding: base64 RnJvbSA4YTQzZjViNTBiZTZjYjQzMTA0NmFiMzUyZmJjYjliZGQzZTQzNzZjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmV5IFYuIExlcGlraG92IiA8YS5sZXBpa2hv dkBwb3N0Z3Jlc3Byby5ydT4KRGF0ZTogVGh1LCAyMyBOb3YgMjAyMyAxNjowMDoxMyArMDcw MApTdWJqZWN0OiBbUEFUQ0hdIFRyYW5zZm9ybSBPUiBjbGF1c2UgdG8gQU5ZIGV4cHJlc3Np b25zLgoKUmVwbGFjZSAoWD1OMSkgT1IgKFg9TjIpIC4uLiB3aXRoIFggPSBBTlkoTjEsIE4y KSBvbiB0aGUgcHJlbGltaW5hcnkgc3RhZ2Ugb2YKb3B0aW1pemF0aW9uIHdoZW4gd2UgYXJl IHN0aWxsIHdvcmtpbmcgd2l0aCBhIHRyZWUgZXhwcmVzc2lvbi4KU29tZXRpbWVzIGl0IGNh biBsZWFkIHRvIG5vdCBvcHRpbWFsIHBsYW4uIEJ1dCB3ZSB0aGluayBpdCBpcyBiZXR0ZXIg dG8gaGF2ZQphcnJheSBvZiBlbGVtZW50cyBpbnN0ZWFkIG9mIGEgbG90IG9mIE9SIGNsYXVz ZXMuIEhlcmUgaXMgYSByb29tIGZvciBmdXJ0aGVyCm9wdGltaXphdGlvbnMgb24gZGVjb21w b3NpbmcgdGhhdCBhcnJheSBpbnRvIG1vcmUgb3B0aW1hbCBwYXJ0cy4KLS0tCiAuLi4vcG9z dGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQgICAgfCAgIDggKy0KIHNyYy9i YWNrZW5kL25vZGVzL3F1ZXJ5anVtYmxlZnVuY3MuYyAgICAgICAgICB8ICAzMCArKwogc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgICAgICAgICAgIHwgMjgzICsrKysr KysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgICAg ICAgICAgIHwgIDEwICsKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25m LnNhbXBsZSB8ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9xdWVyeWp1bWJsZS5oICAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCAgICAg ICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2lu ZGV4Lm91dCAgICB8IDE0MSArKysrKysrLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Z3VjLm91dCAgICAgICAgICAgICB8ICAgMyArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9pbmhlcml0Lm91dCAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2pvaW4ub3V0ICAgICAgICAgICAgfCAgNjIgKysrLQogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wYXJ0aXRpb25fcHJ1bmUub3V0IHwgMjU3ICsrKysrKysrKysrKystLS0KIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAgICAgICB8ICAgNCArLQog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0c19leHQub3V0ICAgICAgIHwgIDEyICst CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N5c3ZpZXdzLm91dCAgICAgICAgfCAgIDMg Ky0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdGlkc2Nhbi5vdXQgICAgICAgICB8ICAy MyArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2luZGV4LnNxbCAgICAgICAgIHwg IDMyICsrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9qb2luLnNxbCAgICAgICAgICAgICAgICAg fCAgMTAgKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX3BydW5lLnNxbCAgICAg IHwgIDIyICsrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC90aWRzY2FuLnNxbCAgICAgICAgICAg ICAgfCAgIDYgKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAg ICAgIHwgICAyICsKIDIxIGZpbGVzIGNoYW5nZWQsIDgzMCBpbnNlcnRpb25zKCspLCA4MyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3Rl ZC9wb3N0Z3Jlc19mZHcub3V0IGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9z dGdyZXNfZmR3Lm91dAppbmRleCAyMmNhZTM3YTFlLi5mZGZlY2Q1MWM3IDEwMDY0NAotLS0g YS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CisrKyBi L2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKQEAgLTg1 MzcsMTggKzg1MzcsMTggQEAgaW5zZXJ0IGludG8gdXRydGVzdCB2YWx1ZXMgKDIsICdxdXgn KTsKIC0tIENoZWNrIGNhc2Ugd2hlcmUgdGhlIGZvcmVpZ24gcGFydGl0aW9uIGlzIGEgc3Vi cGxhbiB0YXJnZXQgcmVsCiBleHBsYWluICh2ZXJib3NlLCBjb3N0cyBvZmYpCiB1cGRhdGUg dXRydGVzdCBzZXQgYSA9IDEgd2hlcmUgYSA9IDEgb3IgYSA9IDIgcmV0dXJuaW5nICo7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBVcGRh dGUgb24gcHVibGljLnV0cnRlc3QKICAgIE91dHB1dDogdXRydGVzdF8xLmEsIHV0cnRlc3Rf MS5iCiAgICBGb3JlaWduIFVwZGF0ZSBvbiBwdWJsaWMucmVtcCB1dHJ0ZXN0XzEKICAgIFVw ZGF0ZSBvbiBwdWJsaWMubG9jcCB1dHJ0ZXN0XzIKICAgIC0+ICBBcHBlbmQKICAgICAgICAg IC0+ICBGb3JlaWduIFVwZGF0ZSBvbiBwdWJsaWMucmVtcCB1dHJ0ZXN0XzEKLSAgICAgICAg ICAgICAgIFJlbW90ZSBTUUw6IFVQREFURSBwdWJsaWMubG9jdCBTRVQgYSA9IDEgV0hFUkUg KCgoYSA9IDEpIE9SIChhID0gMikpKSBSRVRVUk5JTkcgYSwgYgorICAgICAgICAgICAgICAg UmVtb3RlIFNRTDogVVBEQVRFIHB1YmxpYy5sb2N0IFNFVCBhID0gMSBXSEVSRSAoKGEgPSBB TlkgKCd7MSwyfSc6OmludGVnZXJbXSkpKSBSRVRVUk5JTkcgYSwgYgogICAgICAgICAgLT4g IFNlcSBTY2FuIG9uIHB1YmxpYy5sb2NwIHV0cnRlc3RfMgogICAgICAgICAgICAgICAgT3V0 cHV0OiAxLCB1dHJ0ZXN0XzIudGFibGVvaWQsIHV0cnRlc3RfMi5jdGlkLCBOVUxMOjpyZWNv cmQKLSAgICAgICAgICAgICAgIEZpbHRlcjogKCh1dHJ0ZXN0XzIuYSA9IDEpIE9SICh1dHJ0 ZXN0XzIuYSA9IDIpKQorICAgICAgICAgICAgICAgRmlsdGVyOiAodXRydGVzdF8yLmEgPSBB TlkgKCd7MSwyfSc6OmludGVnZXJbXSkpCiAoMTAgcm93cykKIAogLS0gVGhlIG5ldyB2YWx1 ZXMgYXJlIGNvbmNhdGVuYXRlZCB3aXRoICcgdHJpZ2dlcmVkICEnCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9ub2Rlcy9xdWVyeWp1bWJsZWZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rl cy9xdWVyeWp1bWJsZWZ1bmNzLmMKaW5kZXggMjgxOTA3YTRkOC4uOTkyMDdhODY3MCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvcXVlcnlqdW1ibGVmdW5jcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL25vZGVzL3F1ZXJ5anVtYmxlZnVuY3MuYwpAQCAtMTM1LDYgKzEzNSwzNiBA QCBKdW1ibGVRdWVyeShRdWVyeSAqcXVlcnkpCiAJcmV0dXJuIGpzdGF0ZTsKIH0KIAorSnVt YmxlU3RhdGUgKgorSnVtYmxlRXhwcihFeHByICpleHByLCB1aW50NjQgKnF1ZXJ5SWQpCit7 CisJSnVtYmxlU3RhdGUgKmpzdGF0ZSA9IE5VTEw7CisKKwlBc3NlcnQocXVlcnlJZCAhPSBO VUxMKTsKKworCWpzdGF0ZSA9IChKdW1ibGVTdGF0ZSAqKSBwYWxsb2Moc2l6ZW9mKEp1bWJs ZVN0YXRlKSk7CisKKwkvKiBTZXQgdXAgd29ya3NwYWNlIGZvciBxdWVyeSBqdW1ibGluZyAq LworCWpzdGF0ZS0+anVtYmxlID0gKHVuc2lnbmVkIGNoYXIgKikgcGFsbG9jKEpVTUJMRV9T SVpFKTsKKwlqc3RhdGUtPmp1bWJsZV9sZW4gPSAwOworCWpzdGF0ZS0+Y2xvY2F0aW9uc19i dWZfc2l6ZSA9IDMyOworCWpzdGF0ZS0+Y2xvY2F0aW9ucyA9IChMb2NhdGlvbkxlbiAqKQor CQlwYWxsb2MoanN0YXRlLT5jbG9jYXRpb25zX2J1Zl9zaXplICogc2l6ZW9mKExvY2F0aW9u TGVuKSk7CisJanN0YXRlLT5jbG9jYXRpb25zX2NvdW50ID0gMDsKKwlqc3RhdGUtPmhpZ2hl c3RfZXh0ZXJuX3BhcmFtX2lkID0gMDsKKworCS8qIENvbXB1dGUgcXVlcnkgSUQgKi8KKwlf anVtYmxlTm9kZShqc3RhdGUsIChOb2RlICopIGV4cHIpOworCSpxdWVyeUlkID0gRGF0dW1H ZXRVSW50NjQoaGFzaF9hbnlfZXh0ZW5kZWQoanN0YXRlLT5qdW1ibGUsCisJCQkJCQkJCQkJ CQlqc3RhdGUtPmp1bWJsZV9sZW4sCisJCQkJCQkJCQkJCQkwKSk7CisKKwlpZiAoKnF1ZXJ5 SWQgPT0gVUlOVDY0Q09OU1QoMCkpCisJCSpxdWVyeUlkID0gVUlOVDY0Q09OU1QoMSk7CisK KwlyZXR1cm4ganN0YXRlOworfQorCiAvKgogICogRW5hYmxlcyBxdWVyeSBpZGVudGlmaWVy IGNvbXB1dGF0aW9uLgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IDY0YzU4 MmMzNDQuLjBmMjExNmE2ZjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtMjIs NiArMjIsNyBAQAogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21h a2VmdW5jcy5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgorI2luY2x1ZGUgIm5v ZGVzL3F1ZXJ5anVtYmxlLmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL29wdGltaXplci5oIgog I2luY2x1ZGUgInBhcnNlci9hbmFseXplLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2Fn Zy5oIgpAQCAtNDMsNiArNDQsNyBAQAogCiAvKiBHVUMgcGFyYW1ldGVycyAqLwogYm9vbAkJ VHJhbnNmb3JtX251bGxfZXF1YWxzID0gZmFsc2U7Citib29sCQllbmFibGVfb3JfdHJhbnNm b3JtYXRpb24gPSB0cnVlOwogCiAKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1FeHByUmVjdXJz ZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpOwpAQCAtOTksNiArMTAxLDI4NSBA QCBzdGF0aWMgRXhwciAqbWFrZV9kaXN0aW5jdF9vcChQYXJzZVN0YXRlICpwc3RhdGUsIExp c3QgKm9wbmFtZSwKIHN0YXRpYyBOb2RlICptYWtlX251bGx0ZXN0X2Zyb21fZGlzdGluY3Qo UGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCSBBX0V4cHIgKmRpc3RpbmN0YSwgTm9k ZSAqYXJnKTsKIAordHlwZWRlZiBzdHJ1Y3QgT3JDbGF1c2VHcm91cEtleQoreworCUV4cHIg ICAqZXhwcjsgLyogUG9pbnRlciB0byB0aGUgZXhwcmVzc2lvbiB0cmVlIHdoaWNoIGhhcyBi ZWVuIGEgc291cmNlIGZvcgorCQkJCQl0aGUgaGFzaGtleSB2YWx1ZSAqLworfSBPckNsYXVz ZUdyb3VwS2V5OworCit0eXBlZGVmIHN0cnVjdCBPckNsYXVzZUdyb3VwRW50cnkKK3sKKwlP ckNsYXVzZUdyb3VwS2V5IGtleTsKKworCU5vZGUJCSAgICpub2RlOworCUxpc3QJCSAgICpj b25zdHM7CisJT2lkCQkJCXNjYWxhcl90eXBlOworCU9pZAkJCQlvcG5vOworCUxpc3QgCQkg ICAqZXhwcnM7Cit9IE9yQ2xhdXNlR3JvdXBFbnRyeTsKKworLyoKKyAqIEhhc2ggZnVuY3Rp b24gdGhhdCdzIGNvbXBhdGlibGUgd2l0aCBndWNfbmFtZV9jb21wYXJlCisgKi8KK3N0YXRp YyB1aW50MzIKK29yY2xhdXNlX2hhc2goY29uc3Qgdm9pZCAqZGF0YSwgU2l6ZSBrZXlzaXpl KQoreworCU9yQ2xhdXNlR3JvdXBLZXkgICAqa2V5ID0gKE9yQ2xhdXNlR3JvdXBLZXkgKikg ZGF0YTsKKwl1aW50NjQJCQkJaGFzaDsKKworCSh2b2lkKSBKdW1ibGVFeHByKGtleS0+ZXhw ciwgJmhhc2gpOworCXJldHVybiBoYXNoOworfQorCitzdGF0aWMgdm9pZCAqCitvcmNsYXVz ZV9rZXljb3B5KHZvaWQgKmRlc3QsIGNvbnN0IHZvaWQgKnNyYywgU2l6ZSBrZXlzaXplKQor eworCU9yQ2xhdXNlR3JvdXBLZXkgKnNyY19rZXkgPSAoT3JDbGF1c2VHcm91cEtleSAqKSBz cmM7CisJT3JDbGF1c2VHcm91cEtleSAqZHN0X2tleSA9IChPckNsYXVzZUdyb3VwS2V5ICop IGRlc3Q7CisKKwlBc3NlcnQoc2l6ZW9mKE9yQ2xhdXNlR3JvdXBLZXkpID09IGtleXNpemUp OworCisJZHN0X2tleS0+ZXhwciA9IHNyY19rZXktPmV4cHI7CisJcmV0dXJuIGRzdF9rZXk7 Cit9CisKKy8qCisgKiBEeW5haGFzaCBtYXRjaCBmdW5jdGlvbiB0byB1c2UgaW4gZ3VjX2hh c2h0YWIKKyAqLworc3RhdGljIGludAorb3JjbGF1c2VfbWF0Y2goY29uc3Qgdm9pZCAqZGF0 YTEsIGNvbnN0IHZvaWQgKmRhdGEyLCBTaXplIGtleXNpemUpCit7CisJT3JDbGF1c2VHcm91 cEtleSAgICprZXkxID0gKE9yQ2xhdXNlR3JvdXBLZXkgKikgZGF0YTE7CisJT3JDbGF1c2VH cm91cEtleSAgICprZXkyID0gKE9yQ2xhdXNlR3JvdXBLZXkgKikgZGF0YTI7CisKKwlBc3Nl cnQoc2l6ZW9mKE9yQ2xhdXNlR3JvdXBLZXkpID09IGtleXNpemUpOworCisJaWYgKGVxdWFs KGtleTEtPmV4cHIsIGtleTItPmV4cHIpKQorCQlyZXR1cm4gMDsKKworCXJldHVybiAxOwor fQorCitzdGF0aWMgTm9kZSAqCit0cmFuc2Zvcm1Cb29sRXhwck9yKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQm9vbEV4cHIgKmV4cHIpCit7CisJTGlzdAkJCQkgICAqb3JfbGlzdCA9IE5JTDsK KwlMaXN0Q2VsbAkJCSAgICpsYzsKKwlIQVNIQ1RMCQkJCQlpbmZvOworCUhUQUIgCQkJCSAg ICpvcl9ncm91cF9odGFiID0gTlVMTDsKKwlpbnQgCQkJCQlsZW5fb3JzID0gbGlzdF9sZW5n dGgoZXhwci0+YXJncyk7CisJSEFTSF9TRVFfU1RBVFVTCQkJaGFzaF9zZXE7CisJT3JDbGF1 c2VHcm91cEVudHJ5CSAgICplbnRyeSA9IE5VTEw7CisKKwkvKiBJZiB0aGlzIGlzIG5vdCBh biAnT1InIGV4cHJlc3Npb24sIHNraXAgdGhlIHRyYW5zZm9ybWF0aW9uICovCisJaWYgKCFl bmFibGVfb3JfdHJhbnNmb3JtYXRpb24gfHwgZXhwci0+Ym9vbG9wICE9IE9SX0VYUFIgfHwg bGVuX29ycyA8IDIpCisJCXJldHVybiB0cmFuc2Zvcm1Cb29sRXhwcihwc3RhdGUsIChCb29s RXhwciAqKSBleHByKTsKKworCU1lbVNldCgmaW5mbywgMCwgc2l6ZW9mKGluZm8pKTsKKwlp bmZvLmtleXNpemUgPSBzaXplb2YoT3JDbGF1c2VHcm91cEtleSk7CisJaW5mby5lbnRyeXNp emUgPSBzaXplb2YoT3JDbGF1c2VHcm91cEVudHJ5KTsKKwlpbmZvLmhhc2ggPSBvcmNsYXVz ZV9oYXNoOworCWluZm8ua2V5Y29weSA9IG9yY2xhdXNlX2tleWNvcHk7CisJaW5mby5tYXRj aCA9IG9yY2xhdXNlX21hdGNoOworCW9yX2dyb3VwX2h0YWIgPSBoYXNoX2NyZWF0ZSgiT1Ig R3JvdXBzIiwKKwkJCQkJCQkJbGVuX29ycywKKwkJCQkJCQkJJmluZm8sCisJCQkJCQkJCUhB U0hfRUxFTSB8IEhBU0hfRlVOQ1RJT04gfCBIQVNIX0NPTVBBUkUgfCBIQVNIX0tFWUNPUFkp OworCisJZm9yZWFjaChsYywgZXhwci0+YXJncykKKwl7CisJCU5vZGUJCQkJICAgKmFyZyA9 IGxmaXJzdChsYyk7CisJCU5vZGUJCQkJICAgKm9ycXVhbDsKKwkJTm9kZQkJCQkgICAqY29u c3RfZXhwcjsKKwkJTm9kZQkJCQkgICAqbmNvbnN0X2V4cHI7CisJCU9yQ2xhdXNlR3JvdXBL ZXkJCWhhc2hrZXk7CisJCWJvb2wJCQkJCWZvdW5kOworCisJCS8qIEF0IGZpcnN0LCB0cmFu c2Zvcm0gdGhlIGFyZyBhbmQgZXZhbHVhdGUgY29uc3RhbnQgZXhwcmVzc2lvbnMuICovCisJ CW9ycXVhbCA9IHRyYW5zZm9ybUV4cHJSZWN1cnNlKHBzdGF0ZSwgKE5vZGUgKikgYXJnKTsK KwkJb3JxdWFsID0gY29lcmNlX3RvX2Jvb2xlYW4ocHN0YXRlLCBvcnF1YWwsICJPUiIpOwor CisJCWlmICghSXNBKG9ycXVhbCwgT3BFeHByKSkKKwkJeworCQkJb3JfbGlzdCA9IGxhcHBl bmQob3JfbGlzdCwgb3JxdWFsKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJLyoKKwkJICog RGV0ZWN0IHRoZSBjb25zdGFudCBzaWRlIG9mIHRoZSBjbGF1c2UuIFJlY2FsbCBub24tY29u c3RhbnQKKwkJICogZXhwcmVzc2lvbiBjYW4gYmUgbWFkZSBub3Qgb25seSB3aXRoIFZhcnMs IGJ1dCBhbHNvIHdpdGggUGFyYW1zLAorCQkgKiB3aGljaCBpcyBub3QgYm9uZGVkIHdpdGgg YW55IHJlbGF0aW9uLiBUaHVzLCB3ZSBkZXRlY3QgdGhlIGNvbnN0CisJCSAqIHNpZGUgLSBp ZiBhbm90aGVyIHNpZGUgaXMgY29uc3RhbnQgdG9vLCB0aGUgb3JxdWFsIGNvdWxkbid0IGJl CisJCSAqIGFuIE9wRXhwci4KKwkJICogR2V0IHBvaW50ZXJzIHRvIGNvbnN0YW50IGFuZCBl eHByZXNzaW9uIHNpZGVzIG9mIHRoZSBxdWFsLgorCQkgKi8KKwkJaWYgKElzQShnZXRfbGVm dG9wKG9ycXVhbCksIENvbnN0KSkKKwkJeworCQkJbmNvbnN0X2V4cHIgPSBnZXRfcmlnaHRv cChvcnF1YWwpOworCQkJY29uc3RfZXhwciA9IGdldF9sZWZ0b3Aob3JxdWFsKTsKKwkJfQor CQllbHNlIGlmIChJc0EoZ2V0X3JpZ2h0b3Aob3JxdWFsKSwgQ29uc3QpKQorCQl7CisJCQlj b25zdF9leHByID0gZ2V0X3JpZ2h0b3Aob3JxdWFsKTsKKwkJCW5jb25zdF9leHByID0gZ2V0 X2xlZnRvcChvcnF1YWwpOworCQl9CisJCWVsc2UKKwkJeworCQkJb3JfbGlzdCA9IGxhcHBl bmQob3JfbGlzdCwgb3JxdWFsKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJaWYgKCFvcF9t ZXJnZWpvaW5hYmxlKCgoT3BFeHByICopIG9ycXVhbCktPm9wbm8sIGV4cHJUeXBlKG5jb25z dF9leHByKSkpCisJCXsKKwkJCW9yX2xpc3QgPSBsYXBwZW5kKG9yX2xpc3QsIG9ycXVhbCk7 CisJCQljb250aW51ZTsKKwkJfQorCisJCS8qCisJCSogQXQgdGhpcyBwb2ludCB3ZSBkZWZp bml0ZWx5IGhhdmUgYSB0cmFuc2Zvcm1hYmxlIGNsYXVzZS4KKwkJKiBDbGFzc2lmeSBpdCBh bmQgYWRkIGludG8gc3BlY2lmaWMgZ3JvdXAgb2YgY2xhdXNlcywgb3IgY3JlYXRlIG5ldwor CQkqIGdyb3VwLgorCQkqIFRPRE86IHRvIG1hbmFnZSBjb21wbGV4aXR5IGluIHRoZSBjYXNl IG9mIG1hbnkgZGlmZmVyZW50IGNsYXVzZXMKKwkJKiAoWDE9QzEpIE9SIChYMj1DMiBPUikg Li4uIChYTiA9IENOKSB3ZSBjb3VsZCBpbnZlbnQgc29tZXRoaW5nCisJCSogbGlrZSBhIGhh c2ggdGFibGUuIEJ1dCBhbHNvIHdlIGJlbGlldmUsIHRoYXQgdGhlIGNhc2Ugb2YgbWFueQor CQkqIGRpZmZlcmVudCB2YXJpYWJsZSBzaWRlcyBpcyB2ZXJ5IHJhcmUuCisJCSovCisJCWhh c2hrZXkuZXhwciA9IChFeHByICopIG5jb25zdF9leHByOworCQllbnRyeSA9IGhhc2hfc2Vh cmNoKG9yX2dyb3VwX2h0YWIsICZoYXNoa2V5LCBIQVNIX0VOVEVSLCAmZm91bmQpOworCisJ CWlmICh1bmxpa2VseShmb3VuZCkpCisJCXsKKwkJCWVudHJ5LT5jb25zdHMgPSBsYXBwZW5k KGVudHJ5LT5jb25zdHMsIGNvbnN0X2V4cHIpOworCQkJZW50cnktPmV4cHJzID0gbGFwcGVu ZChlbnRyeS0+ZXhwcnMsIG9ycXVhbCk7CisJCX0KKwkJZWxzZQorCQl7CisJCQllbnRyeS0+ bm9kZSA9IG5jb25zdF9leHByOworCQkJZW50cnktPmNvbnN0cyA9IGxpc3RfbWFrZTEoY29u c3RfZXhwcik7CisJCQllbnRyeS0+ZXhwcnMgPSBsaXN0X21ha2UxKG9ycXVhbCk7CisJCX0K Kwl9CisKKwlpZiAobGlzdF9sZW5ndGgob3JfbGlzdCkgPT0gbGVuX29ycykKKwl7CisJCS8q CisJCSogTm8gYW55IHRyYW5zZm9ybWF0aW9ucyBwb3NzaWJsZSB3aXRoIHRoaXMgbGlzdCBv ZiBhcmd1bWVudHMuIEhlcmUgd2UKKwkJKiBhbHJlYWR5IG1hZGUgYWxsIHVuZGVybHlpbmcg dHJhbnNmb3JtYXRpb25zLiBUaHVzLCBqdXN0IHJldHVybiB0aGUKKwkJKiB0cmFuc2Zvcm1l ZCBib29sIGV4cHJlc3Npb24uCisJCSovCisJCWhhc2hfZGVzdHJveShvcl9ncm91cF9odGFi KTsKKwkJcmV0dXJuIChOb2RlICopIG1ha2VCb29sRXhwcihPUl9FWFBSLCBvcl9saXN0LCBl eHByLT5sb2NhdGlvbik7CisJfQorCisJaGFzaF9zZXFfaW5pdCgmaGFzaF9zZXEsIG9yX2dy b3VwX2h0YWIpOworCisJLyogTGV0J3MgY29udmVydCBlYWNoIGdyb3VwIG9mIGNsYXVzZXMg dG8gYW4gSU4gb3BlcmF0aW9uLiAqLworCisJLyoKKwkgKiBHbyB0aHJvdWdoIHRoZSBsaXN0 IG9mIGdyb3VwcyBhbmQgY29udmVydCBlYWNoLCB3aGVyZSBudW1iZXIgb2YKKwkqIGNvbnN0 cyBtb3JlIHRoYW4gMS4gdHJpdmlhbCBncm91cHMgbW92ZSB0byBPUi1saXN0IGFnYWluCisJ Ki8KKworCXdoaWxlICgoZW50cnkgPSAoT3JDbGF1c2VHcm91cEVudHJ5ICopIGhhc2hfc2Vx X3NlYXJjaCgmaGFzaF9zZXEpKSAhPSBOVUxMKQorCXsKKwkJTGlzdAkJCSAgICphbGxleHBy czsKKwkJT2lkCQkJCSAgICBzY2FsYXJfdHlwZTsKKwkJT2lkCQkJCQlhcnJheV90eXBlOwor CisJCUFzc2VydChsaXN0X2xlbmd0aChlbnRyeS0+Y29uc3RzKSA+IDApOworCQlBc3NlcnQo bGlzdF9sZW5ndGgoZW50cnktPmV4cHJzKSA9PSBsaXN0X2xlbmd0aChlbnRyeS0+Y29uc3Rz KSk7CisKKwkJaWYgKGxpc3RfbGVuZ3RoKGVudHJ5LT5jb25zdHMpID09IDEpCisJCXsKKwkJ CS8qCisJCQkgKiBPbmx5IG9uZSBlbGVtZW50IGluIHRoZSBjbGFzcy4gUmV0dXJuIHJpbmZv IGludG8gdGhlIEJvb2xFeHByCisJCQkgKiBhcmdzIGxpc3QgdW5jaGFuZ2VkLgorCQkJICov CisJCQlsaXN0X2ZyZWUoZW50cnktPmNvbnN0cyk7CisJCQlvcl9saXN0ID0gbGlzdF9jb25j YXQob3JfbGlzdCwgZW50cnktPmV4cHJzKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJLyoK KwkJICogRG8gdGhlIHRyYW5zZm9ybWF0aW9uLgorCQkgKgorCQkgKiBGaXJzdCBvZiBhbGws IHRyeSB0byBzZWxlY3QgYSBjb21tb24gdHlwZSBmb3IgdGhlIGFycmF5IGVsZW1lbnRzLgor CQkgKiBOb3RlIHRoYXQgc2luY2UgdGhlIExIUycgdHlwZSBpcyBmaXJzdCBpbiB0aGUgbGlz dCwgaXQgd2lsbCBiZQorCQkgKiBwcmVmZXJyZWQgd2hlbiB0aGVyZSBpcyBkb3VidCAoZWcs IHdoZW4gYWxsIHRoZSBSSFMgaXRlbXMgYXJlCisJCSAqIHVua25vd24gbGl0ZXJhbHMpLgor CQkgKgorCQkgKiBOb3RlOiB1c2UgbGlzdF9jb25jYXQgaGVyZSBub3QgbGNvbnMsIHRvIGF2 b2lkIGRhbWFnaW5nIHJub252YXJzLgorCQkgKgorCQkgKiBBcyBhIHNvdXJjZSBvZiBpbnNp ZGVzLCB1c2UgbWFrZV9zY2FsYXJfYXJyYXlfb3AoKQorCQkgKi8KKwkJYWxsZXhwcnMgPSBs aXN0X2NvbmNhdChsaXN0X21ha2UxKGVudHJ5LT5ub2RlKSwgZW50cnktPmNvbnN0cyk7CisJ CXNjYWxhcl90eXBlID0gc2VsZWN0X2NvbW1vbl90eXBlKE5VTEwsIGFsbGV4cHJzLCBOVUxM LCBOVUxMKTsKKworCQlpZiAoc2NhbGFyX3R5cGUgIT0gUkVDT1JET0lEICYmIE9pZElzVmFs aWQoc2NhbGFyX3R5cGUpKQorCQkJYXJyYXlfdHlwZSA9IGdldF9hcnJheV90eXBlKHNjYWxh cl90eXBlKTsKKwkJZWxzZQorCQkJYXJyYXlfdHlwZSA9IEludmFsaWRPaWQ7CisKKwkJaWYg KGFycmF5X3R5cGUgIT0gSW52YWxpZE9pZCkKKwkJeworCQkJLyoKKwkJCSAqIE9LOiBjb2Vy Y2UgYWxsIHRoZSByaWdodC1oYW5kIG5vbi1WYXIgaW5wdXRzIHRvIHRoZSBjb21tb24KKwkJ CSAqIHR5cGUgYW5kIGJ1aWxkIGFuIEFycmF5RXhwciBmb3IgdGhlbS4KKwkJCSAqLworCQkJ TGlzdAkJCSAgICphZXhwcnMgPSBOSUw7CisJCQlBcnJheUV4cHIJCSAgICpuZXdhID0gTlVM TDsKKwkJCVNjYWxhckFycmF5T3BFeHByICAqc2FvcGV4cHIgPSBOVUxMOworCQkJTGlzdENl bGwJCSAgICpsOworCisJCQlhZXhwcnMgPSBOSUw7CisKKwkJCWZvcmVhY2gobCwgZW50cnkt PmNvbnN0cykKKwkJCXsKKwkJCQlOb2RlCSAgICpyZXhwciA9IChOb2RlICopIGxmaXJzdChs KTsKKworCQkJCXJleHByID0gY29lcmNlX3RvX2NvbW1vbl90eXBlKHBzdGF0ZSwgcmV4cHIs CisJCQkJCQkJCQkJCSAgc2NhbGFyX3R5cGUsCisJCQkJCQkJCQkJCSAgIklOIik7CisJCQkJ YWV4cHJzID0gbGFwcGVuZChhZXhwcnMsIHJleHByKTsKKwkJCX0KKworCQkJbmV3YSA9IG1h a2VOb2RlKEFycmF5RXhwcik7CisJCQkvKiBhcnJheV9jb2xsaWQgd2lsbCBiZSBzZXQgYnkg cGFyc2VfY29sbGF0ZS5jICovCisJCQluZXdhLT5lbGVtZW50X3R5cGVpZCA9IHNjYWxhcl90 eXBlOworCQkJbmV3YS0+YXJyYXlfdHlwZWlkID0gYXJyYXlfdHlwZTsKKwkJCW5ld2EtPm11 bHRpZGltcyA9IGZhbHNlOworCQkJbmV3YS0+ZWxlbWVudHMgPSBhZXhwcnM7CisJCQluZXdh LT5sb2NhdGlvbiA9IC0xOworCisJCQlzYW9wZXhwciA9CisJCQkJKFNjYWxhckFycmF5T3BF eHByICopCisJCQkJCW1ha2Vfc2NhbGFyX2FycmF5X29wKHBzdGF0ZSwKKwkJCQkJCQkJCQkg bGlzdF9tYWtlMShtYWtlU3RyaW5nKChjaGFyICopICI9IikpLAorCQkJCQkJCQkJCSB0cnVl LAorCQkJCQkJCQkJCSBlbnRyeS0+bm9kZSwKKwkJCQkJCQkJCQkgKE5vZGUgKikgbmV3YSwK KwkJCQkJCQkJCQkgLTEpOworCisJCQlvcl9saXN0ID0gbGFwcGVuZChvcl9saXN0LCAodm9p ZCAqKSBzYW9wZXhwcik7CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKgorCQkJICogVGhpcyBw YXJ0IHdvcmtzIG9uIGludGFycmF5IHRlc3QgKE9SIHRoZXJlIGlzIG1hZGUgb24KKwkJCSAq IGVsZW1lbnRzIG9mIGEgY3VzdG9tIHR5cGUpCisJCQkgKi8KKwkJCWxpc3RfZnJlZShlbnRy eS0+Y29uc3RzKTsKKwkJCW9yX2xpc3QgPSBsaXN0X2NvbmNhdChvcl9saXN0LCBlbnRyeS0+ ZXhwcnMpOworCQl9CisJCWhhc2hfc2VhcmNoKG9yX2dyb3VwX2h0YWIsICZlbnRyeS0+a2V5 LCBIQVNIX1JFTU9WRSwgTlVMTCk7CisJfQorCWhhc2hfZGVzdHJveShvcl9ncm91cF9odGFi KTsKKworCS8qIE9uZSBtb3JlIHRyaWNrOiBhc3NlbWJsZSBjb3JyZWN0IGNsYXVzZSAqLwor CXJldHVybiAoTm9kZSAqKSAoKGxpc3RfbGVuZ3RoKG9yX2xpc3QpID4gMSkgPworCQkJCQkg bWFrZUJvb2xFeHByKE9SX0VYUFIsIG9yX2xpc3QsIGV4cHItPmxvY2F0aW9uKSA6CisJCQkJ CSBsaW5pdGlhbChvcl9saXN0KSk7Cit9CiAKIC8qCiAgKiB0cmFuc2Zvcm1FeHByIC0KQEAg LTIxMiw3ICs0OTMsNyBAQCB0cmFuc2Zvcm1FeHByUmVjdXJzZShQYXJzZVN0YXRlICpwc3Rh dGUsIE5vZGUgKmV4cHIpCiAJCQl9CiAKIAkJY2FzZSBUX0Jvb2xFeHByOgotCQkJcmVzdWx0 ID0gdHJhbnNmb3JtQm9vbEV4cHIocHN0YXRlLCAoQm9vbEV4cHIgKikgZXhwcik7CisJCQly ZXN1bHQgPSB0cmFuc2Zvcm1Cb29sRXhwck9yKHBzdGF0ZSwgKEJvb2xFeHByICopIGV4cHIp OwogCQkJYnJlYWs7CiAKIAkJY2FzZSBUX0Z1bmNDYWxsOgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgYi9zcmMvYmFja2VuZC91dGlscy9taXNj L2d1Y190YWJsZXMuYwppbmRleCBiNzY0ZWY2OTk4Li4yY2E4YTIxY2FmIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtMTA0OCw2ICsxMDQ4LDE2IEBAIHN0cnVj dCBjb25maWdfYm9vbCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9CiAJCXRydWUsCiAJCU5VTEws IE5VTEwsIE5VTEwKIAl9LAorCXsKKwkJeyJlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24iLCBQ R0NfVVNFUlNFVCwgUVVFUllfVFVOSU5HX09USEVSLAorCQkJZ2V0dGV4dF9ub29wKCJUcmFu c2Zvcm0gYSBzZXF1ZW5jZSBvZiBPUiBjbGF1c2VzIHRvIGFuIElOIGV4cHJlc3Npb24uIiks CisJCQlnZXR0ZXh0X25vb3AoIlRoZSBwbGFubmVyIHdpbGwgcmVwbGFjZSBjbGF1c2VzIGxp a2UgJ3g9YzEgT1IgeD1jMiAuLiIKKwkJCQkJCSAidG8gdGhlIGNsYXVzZSAneCBJTiAoYzEs YzIsLi4uKSciKQorCQl9LAorCQkmZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uLAorCQl0cnVl LAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwKIAl7CiAJCS8qCiAJCSAqIE5vdCBmb3IgZ2Vu ZXJhbCB1c2UgLS0tIHVzZWQgYnkgU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiBhbmQgU0VU CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5z YW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUK aW5kZXggZTQ4YzA2NmE1Yi4uMjZiZWUzMGFkMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQpAQCAtMzcxLDYgKzM3MSw3IEBACiAj IC0gUGxhbm5lciBNZXRob2QgQ29uZmlndXJhdGlvbiAtCiAKICNlbmFibGVfYXN5bmNfYXBw ZW5kID0gb24KKyNlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24gPSBvbgogI2VuYWJsZV9iaXRt YXBzY2FuID0gb24KICNlbmFibGVfZ2F0aGVybWVyZ2UgPSBvbgogI2VuYWJsZV9oYXNoYWdn ID0gb24KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3F1ZXJ5anVtYmxlLmggYi9z cmMvaW5jbHVkZS9ub2Rlcy9xdWVyeWp1bWJsZS5oCmluZGV4IDA3NjkwODFjN2EuLjRhYWEz MWFhODAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3F1ZXJ5anVtYmxlLmgKKysr IGIvc3JjL2luY2x1ZGUvbm9kZXMvcXVlcnlqdW1ibGUuaApAQCAtNjUsNiArNjUsNyBAQCBl eHRlcm4gUEdETExJTVBPUlQgaW50IGNvbXB1dGVfcXVlcnlfaWQ7CiAKIGV4dGVybiBjb25z dCBjaGFyICpDbGVhblF1ZXJ5dGV4dChjb25zdCBjaGFyICpxdWVyeSwgaW50ICpsb2NhdGlv biwgaW50ICpsZW4pOwogZXh0ZXJuIEp1bWJsZVN0YXRlICpKdW1ibGVRdWVyeShRdWVyeSAq cXVlcnkpOworZXh0ZXJuIEp1bWJsZVN0YXRlICpKdW1ibGVFeHByKEV4cHIgKmV4cHIsIHVp bnQ2NCAqcXVlcnlJZCk7CiBleHRlcm4gdm9pZCBFbmFibGVRdWVyeUlkKHZvaWQpOwogCiBl eHRlcm4gUEdETExJTVBPUlQgYm9vbCBxdWVyeV9pZF9lbmFibGVkOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9w YXJzZV9leHByLmgKaW5kZXggN2QzOGNhNzVmNy4uM2E4N2RlMDI4NSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2VfZXhwci5oCkBAIC0xNyw2ICsxNyw3IEBACiAKIC8qIEdVQyBwYXJhbWV0ZXJz ICovCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBUcmFuc2Zvcm1fbnVsbF9lcXVhbHM7Citl eHRlcm4gUEdETExJTVBPUlQgYm9vbCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb247CiAKIGV4 dGVybiBOb2RlICp0cmFuc2Zvcm1FeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhw ciwgUGFyc2VFeHByS2luZCBleHByS2luZCk7CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2luZGV4Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvY3JlYXRlX2luZGV4Lm91dAppbmRleCBhY2ZkOWQxZjRmLi4zYmI0YmJjYTQ4IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9pbmRleC5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfaW5kZXgub3V0CkBAIC0x ODM4LDE4ICsxODM4LDUwIEBAIERST1AgVEFCTEUgb25la193aXRoX251bGw7CiBFWFBMQUlO IChDT1NUUyBPRkYpCiBTRUxFQ1QgKiBGUk9NIHRlbmsxCiAgIFdIRVJFIHRob3VzYW5kID0g NDIgQU5EICh0ZW50aG91cyA9IDEgT1IgdGVudGhvdXMgPSAzIE9SIHRlbnRob3VzID0gNDIp OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0gQml0bWFwIEhlYXAgU2NhbiBvbiB0ZW5rMQotICAgUmVjaGVjayBDb25k OiAoKCh0aG91c2FuZCA9IDQyKSBBTkQgKHRlbnRob3VzID0gMSkpIE9SICgodGhvdXNhbmQg PSA0MikgQU5EICh0ZW50aG91cyA9IDMpKSBPUiAoKHRob3VzYW5kID0gNDIpIEFORCAodGVu dGhvdXMgPSA0MikpKQotICAgLT4gIEJpdG1hcE9yCi0gICAgICAgICAtPiAgQml0bWFwIElu ZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMKLSAgICAgICAgICAgICAgIEluZGV4 IENvbmQ6ICgodGhvdXNhbmQgPSA0MikgQU5EICh0ZW50aG91cyA9IDEpKQotICAgICAgICAg LT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3Rob3VzX3RlbnRob3VzCi0gICAgICAg ICAgICAgICBJbmRleCBDb25kOiAoKHRob3VzYW5kID0gNDIpIEFORCAodGVudGhvdXMgPSAz KSkKLSAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV90aG91c190ZW50 aG91cwotICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKCh0aG91c2FuZCA9IDQyKSBBTkQg KHRlbnRob3VzID0gNDIpKQotKDkgcm93cykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgSW5kZXggU2NhbiB1c2luZyB0ZW5rMV90aG91 c190ZW50aG91cyBvbiB0ZW5rMQorICAgSW5kZXggQ29uZDogKCh0aG91c2FuZCA9IDQyKSBB TkQgKHRlbnRob3VzID0gQU5ZICgnezEsMyw0Mn0nOjppbnRlZ2VyW10pKSkKKygyIHJvd3Mp CisKK1NFTEVDVCAqIEZST00gdGVuazEKKyAgV0hFUkUgdGhvdXNhbmQgPSA0MiBBTkQgKHRl bnRob3VzID0gMSBPUiB0ZW50aG91cyA9IDMgT1IgdGVudGhvdXMgPSA0Mik7CisgdW5pcXVl MSB8IHVuaXF1ZTIgfCB0d28gfCBmb3VyIHwgdGVuIHwgdHdlbnR5IHwgaHVuZHJlZCB8IHRo b3VzYW5kIHwgdHdvdGhvdXNhbmQgfCBmaXZldGhvdXMgfCB0ZW50aG91cyB8IG9kZCB8IGV2 ZW4gfCBzdHJpbmd1MSB8IHN0cmluZ3UyIHwgc3RyaW5nNCAKKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0rLS0tLS0tKy0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLSstLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorICAgICAgNDIgfCAgICA1NTMwIHwgICAwIHwg ICAgMiB8ICAgMiB8ICAgICAgMiB8ICAgICAgNDIgfCAgICAgICA0MiB8ICAgICAgICAgIDQy IHwgICAgICAgIDQyIHwgICAgICAgNDIgfCAgODQgfCAgIDg1IHwgUUJBQUFBICAgfCBTRUlB QUEgICB8IE9PT094eAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qg Y291bnQoKikgRlJPTSB0ZW5rMQorICBXSEVSRSBodW5kcmVkID0gNDIgQU5EICh0aG91c2Fu ZCA9IDQyIE9SIHRob3VzYW5kID0gOTkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRlbmsxCisgICAgICAgICBSZWNoZWNrIENvbmQ6ICgo aHVuZHJlZCA9IDQyKSBBTkQgKHRob3VzYW5kID0gQU5ZICgnezQyLDk5fSc6OmludGVnZXJb XSkpKQorICAgICAgICAgLT4gIEJpdG1hcEFuZAorICAgICAgICAgICAgICAgLT4gIEJpdG1h cCBJbmRleCBTY2FuIG9uIHRlbmsxX2h1bmRyZWQKKyAgICAgICAgICAgICAgICAgICAgIElu ZGV4IENvbmQ6IChodW5kcmVkID0gNDIpCisgICAgICAgICAgICAgICAtPiAgQml0bWFwIElu ZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMKKyAgICAgICAgICAgICAgICAgICAg IEluZGV4IENvbmQ6ICh0aG91c2FuZCA9IEFOWSAoJ3s0Miw5OX0nOjppbnRlZ2VyW10pKQor KDggcm93cykKKworU0VMRUNUIGNvdW50KCopIEZST00gdGVuazEKKyAgV0hFUkUgaHVuZHJl ZCA9IDQyIEFORCAodGhvdXNhbmQgPSA0MiBPUiB0aG91c2FuZCA9IDk5KTsKKyBjb3VudCAK Ky0tLS0tLS0KKyAgICAxMAorKDEgcm93KQorCitTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0 aW9uID0gb247CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgKiBGUk9NIHRlbmsxCisg IFdIRVJFIHRob3VzYW5kID0gNDIgQU5EICh0ZW50aG91cyA9IDEgT1IgdGVudGhvdXMgPSAz IE9SIHRlbnRob3VzID0gNDIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBJbmRleCBTY2FuIHVzaW5nIHRlbmsxX3Rob3VzX3RlbnRo b3VzIG9uIHRlbmsxCisgICBJbmRleCBDb25kOiAoKHRob3VzYW5kID0gNDIpIEFORCAodGVu dGhvdXMgPSBBTlkgKCd7MSwzLDQyfSc6OmludGVnZXJbXSkpKQorKDIgcm93cykKIAogU0VM RUNUICogRlJPTSB0ZW5rMQogICBXSEVSRSB0aG91c2FuZCA9IDQyIEFORCAodGVudGhvdXMg PSAxIE9SIHRlbnRob3VzID0gMyBPUiB0ZW50aG91cyA9IDQyKTsKQEAgLTE4NjEsMjggKzE4 OTMsMTAxIEBAIFNFTEVDVCAqIEZST00gdGVuazEKIEVYUExBSU4gKENPU1RTIE9GRikKIFNF TEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCiAgIFdIRVJFIGh1bmRyZWQgPSA0MiBBTkQgKHRo b3VzYW5kID0gNDIgT1IgdGhvdXNhbmQgPSA5OSk7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBBZ2dyZWdh dGUKICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRlbmsxCi0gICAgICAgICBSZWNoZWNr IENvbmQ6ICgoaHVuZHJlZCA9IDQyKSBBTkQgKCh0aG91c2FuZCA9IDQyKSBPUiAodGhvdXNh bmQgPSA5OSkpKQorICAgICAgICAgUmVjaGVjayBDb25kOiAoKGh1bmRyZWQgPSA0MikgQU5E ICh0aG91c2FuZCA9IEFOWSAoJ3s0Miw5OX0nOjppbnRlZ2VyW10pKSkKKyAgICAgICAgIC0+ ICBCaXRtYXBBbmQKKyAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0 ZW5rMV9odW5kcmVkCisgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoaHVuZHJl ZCA9IDQyKQorICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsx X3Rob3VzX3RlbnRob3VzCisgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodGhv dXNhbmQgPSBBTlkgKCd7NDIsOTl9Jzo6aW50ZWdlcltdKSkKKyg4IHJvd3MpCisKK1NFTEVD VCBjb3VudCgqKSBGUk9NIHRlbmsxCisgIFdIRVJFIGh1bmRyZWQgPSA0MiBBTkQgKHRob3Vz YW5kID0gNDIgT1IgdGhvdXNhbmQgPSA5OSk7CisgY291bnQgCistLS0tLS0tCisgICAgMTAK KygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIEZST00g dGVuazEKKyAgV0hFUkUgdGhvdXNhbmQgPSA0MiBBTkQgKHRlbnRob3VzID0gMSBPUiB0ZW50 aG91cyA9IDMpIE9SIHRob3VzYW5kID0gNDE7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVh cCBTY2FuIG9uIHRlbmsxCisgICAgICAgICBSZWNoZWNrIENvbmQ6ICgoKHRob3VzYW5kID0g NDIpIEFORCAodGVudGhvdXMgPSBBTlkgKCd7MSwzfSc6OmludGVnZXJbXSkpKSBPUiAodGhv dXNhbmQgPSA0MSkpCisgICAgICAgICAtPiAgQml0bWFwT3IKKyAgICAgICAgICAgICAgIC0+ ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV90aG91c190ZW50aG91cworICAgICAgICAg ICAgICAgICAgICAgSW5kZXggQ29uZDogKCh0aG91c2FuZCA9IDQyKSBBTkQgKHRlbnRob3Vz ID0gQU5ZICgnezEsM30nOjppbnRlZ2VyW10pKSkKKyAgICAgICAgICAgICAgIC0+ICBCaXRt YXAgSW5kZXggU2NhbiBvbiB0ZW5rMV90aG91c190ZW50aG91cworICAgICAgICAgICAgICAg ICAgICAgSW5kZXggQ29uZDogKHRob3VzYW5kID0gNDEpCisoOCByb3dzKQorCitTRUxFQ1Qg Y291bnQoKikgRlJPTSB0ZW5rMQorICBXSEVSRSB0aG91c2FuZCA9IDQyIEFORCAodGVudGhv dXMgPSAxIE9SIHRlbnRob3VzID0gMykgT1IgdGhvdXNhbmQgPSA0MTsKKyBjb3VudCAKKy0t LS0tLS0KKyAgICAxMAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qg Y291bnQoKikgRlJPTSB0ZW5rMQorICBXSEVSRSBodW5kcmVkID0gNDIgQU5EICh0aG91c2Fu ZCA9IDQyIE9SIHRob3VzYW5kID0gOTkgT1IgdGVudGhvdXMgPCAyKSBPUiB0aG91c2FuZCA9 IDQxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRl CisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiB0ZW5rMQorICAgICAgICAgUmVjaGVjayBD b25kOiAoKChodW5kcmVkID0gNDIpIEFORCAoKHRlbnRob3VzIDwgMikgT1IgKHRob3VzYW5k ID0gQU5ZICgnezQyLDk5fSc6OmludGVnZXJbXSkpKSkgT1IgKHRob3VzYW5kID0gNDEpKQor ICAgICAgICAgLT4gIEJpdG1hcE9yCisgICAgICAgICAgICAgICAtPiAgQml0bWFwQW5kCisg ICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfaHVu ZHJlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGh1bmRyZWQg PSA0MikKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBCaXRtYXBPcgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3Rob3VzX3Rl bnRob3VzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAo dGVudGhvdXMgPCAyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJ bmRleCBTY2FuIG9uIHRlbmsxX3Rob3VzX3RlbnRob3VzCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAodGhvdXNhbmQgPSBBTlkgKCd7NDIsOTl9Jzo6 aW50ZWdlcltdKSkKKyAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0 ZW5rMV90aG91c190ZW50aG91cworICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KHRob3VzYW5kID0gNDEpCisoMTQgcm93cykKKworU0VMRUNUIGNvdW50KCopIEZST00gdGVu azEKKyAgV0hFUkUgaHVuZHJlZCA9IDQyIEFORCAodGhvdXNhbmQgPSA0MiBPUiB0aG91c2Fu ZCA9IDk5IE9SIHRlbnRob3VzIDwgMikgT1IgdGhvdXNhbmQgPSA0MTsKKyBjb3VudCAKKy0t LS0tLS0KKyAgICAyMAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qg Y291bnQoKikgRlJPTSB0ZW5rMQorICBXSEVSRSBodW5kcmVkID0gNDIgQU5EICh0aG91c2Fu ZCA9IDQyIE9SIHRob3VzYW5kID0gNDEgT1IgdGhvdXNhbmQgPSA5OSBBTkQgdGVudGhvdXMg PSAyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVn YXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiB0ZW5rMQorICAgICAgICAgUmVjaGVj ayBDb25kOiAoKGh1bmRyZWQgPSA0MikgQU5EICgoKHRob3VzYW5kID0gOTkpIEFORCAodGVu dGhvdXMgPSAyKSkgT1IgKHRob3VzYW5kID0gQU5ZICgnezQyLDQxfSc6OmludGVnZXJbXSkp KSkKICAgICAgICAgIC0+ICBCaXRtYXBBbmQKICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAg SW5kZXggU2NhbiBvbiB0ZW5rMV9odW5kcmVkCiAgICAgICAgICAgICAgICAgICAgICBJbmRl eCBDb25kOiAoaHVuZHJlZCA9IDQyKQogICAgICAgICAgICAgICAgLT4gIEJpdG1hcE9yCiAg ICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhv dXNfdGVudGhvdXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh0 aG91c2FuZCA9IDQyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KCh0aG91c2FuZCA9IDk5KSBBTkQgKHRlbnRob3VzID0gMikpCiAgICAgICAgICAgICAgICAg ICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh0aG91c2FuZCA9IDk5KQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHRob3VzYW5kID0gQU5Z ICgnezQyLDQxfSc6OmludGVnZXJbXSkpCiAoMTEgcm93cykKIAogU0VMRUNUIGNvdW50KCop IEZST00gdGVuazEKLSAgV0hFUkUgaHVuZHJlZCA9IDQyIEFORCAodGhvdXNhbmQgPSA0MiBP UiB0aG91c2FuZCA9IDk5KTsKKyAgV0hFUkUgaHVuZHJlZCA9IDQyIEFORCAodGhvdXNhbmQg PSA0MiBPUiB0aG91c2FuZCA9IDQxIE9SIHRob3VzYW5kID0gOTkgQU5EIHRlbnRob3VzID0g Mik7CiAgY291bnQgCiAtLS0tLS0tCiAgICAgMTAKICgxIHJvdykKIAorUkVTRVQgZW5hYmxl X29yX3RyYW5zZm9ybWF0aW9uOwogLS0KIC0tIENoZWNrIGJlaGF2aW9yIHdpdGggZHVwbGlj YXRlIGluZGV4IGNvbHVtbiBjb250ZW50cwogLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZ3VjLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3Vj Lm91dAppbmRleCAxMjdjOTUzMjk3Li4wZjJiMWIxNjIwIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2d1Yy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ndWMub3V0CkBAIC04NjEsNyArODYxLDggQEAgU0VMRUNUIG5hbWUgRlJPTSB0YWJf c2V0dGluZ3NfZmxhZ3MKICAgICAgICAgICAgbmFtZSAgICAgICAgICAgIAogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgZGVmYXVsdF9zdGF0aXN0aWNzX3RhcmdldAotKDEgcm93 KQorIGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbgorKDIgcm93cykKIAogLS0gUnVudGltZS1j b21wdXRlZCBHVUNzIHNob3VsZCBiZSBwYXJ0IG9mIHRoZSBwcmVzZXQgY2F0ZWdvcnkuCiBT RUxFQ1QgbmFtZSBGUk9NIHRhYl9zZXR0aW5nc19mbGFncwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9pbmhlcml0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvaW5oZXJpdC5vdXQKaW5kZXggMGYxYWE4MzFmNi4uMTc4MTI1MDEyMiAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbmhlcml0Lm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2luaGVyaXQub3V0CkBAIC0yNTYwLDcgKzI1NjAsNyBA QCBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbGlzdF9wYXJ0ZWQgd2hlcmUg YSA9ICdhYicgb3IgYSBpbiAobnVsbCwgJ2NkJwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBTZXEgU2NhbiBvbiBwYXJ0X2Fi X2NkIGxpc3RfcGFydGVkCi0gICBGaWx0ZXI6ICgoKGEpOjp0ZXh0ID0gJ2FiJzo6dGV4dCkg T1IgKChhKTo6dGV4dCA9IEFOWSAoJ3tOVUxMLGNkfSc6OnRleHRbXSkpKQorICAgRmlsdGVy OiAoKChhKTo6dGV4dCA9IEFOWSAoJ3tOVUxMLGNkfSc6OnRleHRbXSkpIE9SICgoYSk6OnRl eHQgPSAnYWInOjp0ZXh0KSkKICgyIHJvd3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZikgc2Vs ZWN0ICogZnJvbSBsaXN0X3BhcnRlZCB3aGVyZSBhID0gJ2FiJzsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2pvaW4ub3V0CmluZGV4IDJjNzMyNzAxNDMuLmU5NTJlNTQwMWYgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9qb2luLm91dApAQCAtNDIxMCwxMCArNDIxMCwxMCBAQCBleHBs YWluIChjb3N0cyBvZmYpCiBzZWxlY3QgKiBmcm9tIHRlbmsxIGEgam9pbiB0ZW5rMSBiIG9u CiAgIChhLnVuaXF1ZTEgPSAxIGFuZCBiLnVuaXF1ZTEgPSAyKSBvcgogICAoKGEudW5pcXVl MiA9IDMgb3IgYS51bmlxdWUyID0gNykgYW5kIGIuaHVuZHJlZCA9IDQpOwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBOZXN0ZWQgTG9v cAotICAgSm9pbiBGaWx0ZXI6ICgoKGEudW5pcXVlMSA9IDEpIEFORCAoYi51bmlxdWUxID0g MikpIE9SICgoKGEudW5pcXVlMiA9IDMpIE9SIChhLnVuaXF1ZTIgPSA3KSkgQU5EIChiLmh1 bmRyZWQgPSA0KSkpCisgICBKb2luIEZpbHRlcjogKCgoYS51bmlxdWUxID0gMSkgQU5EIChi LnVuaXF1ZTEgPSAyKSkgT1IgKChhLnVuaXF1ZTIgPSBBTlkgKCd7Myw3fSc6OmludGVnZXJb XSkpIEFORCAoYi5odW5kcmVkID0gNCkpKQogICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24g dGVuazEgYgogICAgICAgICAgUmVjaGVjayBDb25kOiAoKHVuaXF1ZTEgPSAyKSBPUiAoaHVu ZHJlZCA9IDQpKQogICAgICAgICAgLT4gIEJpdG1hcE9yCkBAIC00MjIzLDE2ICs0MjIzLDY0 IEBAIHNlbGVjdCAqIGZyb20gdGVuazEgYSBqb2luIHRlbmsxIGIgb24KICAgICAgICAgICAg ICAgICAgICAgIEluZGV4IENvbmQ6IChodW5kcmVkID0gNCkKICAgIC0+ICBNYXRlcmlhbGl6 ZQogICAgICAgICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gdGVuazEgYQotICAgICAgICAg ICAgICAgUmVjaGVjayBDb25kOiAoKHVuaXF1ZTEgPSAxKSBPUiAodW5pcXVlMiA9IDMpIE9S ICh1bmlxdWUyID0gNykpCisgICAgICAgICAgICAgICBSZWNoZWNrIENvbmQ6ICgodW5pcXVl MSA9IDEpIE9SICh1bmlxdWUyID0gQU5ZICgnezMsN30nOjppbnRlZ2VyW10pKSkKICAgICAg ICAgICAgICAgIC0+ICBCaXRtYXBPcgogICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1h cCBJbmRleCBTY2FuIG9uIHRlbmsxX3VuaXF1ZTEKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEluZGV4IENvbmQ6ICh1bmlxdWUxID0gMSkKICAgICAgICAgICAgICAgICAgICAgIC0+ ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV91bmlxdWUyCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMiA9IDMpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMiA9IEFOWSAoJ3szLDd9Jzo6aW50ZWdl cltdKSkKKygxNyByb3dzKQorCitTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uID0gb247 CitleHBsYWluIChjb3N0cyBvZmYpCitzZWxlY3QgKiBmcm9tIHRlbmsxIGEgam9pbiB0ZW5r MSBiIG9uCisgIChhLnVuaXF1ZTEgPSAxIGFuZCBiLnVuaXF1ZTEgPSAyKSBvcgorICAoKGEu dW5pcXVlMiA9IDMgb3IgYS51bmlxdWUyID0gNykgYW5kIGIuaHVuZHJlZCA9IDQpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBOZXN0ZWQgTG9vcAorICAgSm9pbiBGaWx0ZXI6 ICgoKGEudW5pcXVlMSA9IDEpIEFORCAoYi51bmlxdWUxID0gMikpIE9SICgoYS51bmlxdWUy ID0gQU5ZICgnezMsN30nOjppbnRlZ2VyW10pKSBBTkQgKGIuaHVuZHJlZCA9IDQpKSkKKyAg IC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRlbmsxIGIKKyAgICAgICAgIFJlY2hlY2sgQ29u ZDogKCh1bmlxdWUxID0gMikgT1IgKGh1bmRyZWQgPSA0KSkKKyAgICAgICAgIC0+ICBCaXRt YXBPcgorICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3Vu aXF1ZTEKKyAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUxID0gMikK KyAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV9odW5kcmVk CisgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoaHVuZHJlZCA9IDQpCisgICAt PiAgTWF0ZXJpYWxpemUKKyAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRlbmsx IGEKKyAgICAgICAgICAgICAgIFJlY2hlY2sgQ29uZDogKCh1bmlxdWUxID0gMSkgT1IgKHVu aXF1ZTIgPSBBTlkgKCd7Myw3fSc6OmludGVnZXJbXSkpKQorICAgICAgICAgICAgICAgLT4g IEJpdG1hcE9yCisgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4g b24gdGVuazFfdW5pcXVlMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29u ZDogKHVuaXF1ZTEgPSAxKQogICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRl eCBTY2FuIG9uIHRlbmsxX3VuaXF1ZTIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIElu ZGV4IENvbmQ6ICh1bmlxdWUyID0gNykKLSgxOSByb3dzKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTIgPSBBTlkgKCd7Myw3fSc6OmludGVnZXJb XSkpCisoMTcgcm93cykKKworZXhwbGFpbiAoY29zdHMgb2ZmKQorc2VsZWN0ICogZnJvbSB0 ZW5rMSBhIGpvaW4gdGVuazEgYiBvbgorICAoYS51bmlxdWUxIDwgMjAgb3IgYS51bmlxdWUx ID0gMyBvciBhLnVuaXF1ZTEgPSAxIGFuZCBiLnVuaXF1ZTEgPSAyKSBvcgorICAoKGEudW5p cXVlMiA9IDMgb3IgYS51bmlxdWUyID0gNykgYW5kIGIuaHVuZHJlZCA9IDQpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBOZXN0ZWQg TG9vcAorICAgSm9pbiBGaWx0ZXI6ICgoYS51bmlxdWUxIDwgMjApIE9SICgoYS51bmlxdWUx ID0gMSkgQU5EIChiLnVuaXF1ZTEgPSAyKSkgT1IgKChhLnVuaXF1ZTIgPSBBTlkgKCd7Myw3 fSc6OmludGVnZXJbXSkpIEFORCAoYi5odW5kcmVkID0gNCkpIE9SIChhLnVuaXF1ZTEgPSAz KSkKKyAgIC0+ICBTZXEgU2NhbiBvbiB0ZW5rMSBiCisgICAtPiAgTWF0ZXJpYWxpemUKKyAg ICAgICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRlbmsxIGEKKyAgICAgICAgICAgICAg IFJlY2hlY2sgQ29uZDogKCh1bmlxdWUxIDwgMjApIE9SICh1bmlxdWUxID0gMSkgT1IgKHVu aXF1ZTIgPSBBTlkgKCd7Myw3fSc6OmludGVnZXJbXSkpIE9SICh1bmlxdWUxID0gMykpCisg ICAgICAgICAgICAgICAtPiAgQml0bWFwT3IKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBC aXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV91bmlxdWUxCisgICAgICAgICAgICAgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMSA8IDIwKQorICAgICAgICAgICAgICAgICAg ICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3VuaXF1ZTEKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUxID0gMSkKKyAgICAgICAgICAg ICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV91bmlxdWUyCisgICAg ICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMiA9IEFOWSAoJ3sz LDd9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5k ZXggU2NhbiBvbiB0ZW5rMV91bmlxdWUxCisgICAgICAgICAgICAgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAodW5pcXVlMSA9IDMpCisoMTUgcm93cykKIAorUkVTRVQgZW5hYmxlX29y X3RyYW5zZm9ybWF0aW9uOwogLS0KIC0tIHRlc3QgcGxhY2VtZW50IG9mIG1vdmFibGUgcXVh bHMgaW4gYSBwYXJhbWV0ZXJpemVkIGpvaW4gdHJlZQogLS0KZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3BydW5lLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3BydW5lLm91dAppbmRleCA5YTRjNDhjMDU1Li45 Yjc4Y2Q5ZDc0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRp dGlvbl9wcnVuZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRp b25fcHJ1bmUub3V0CkBAIC04MiwyNSArODIsNDcgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKSBz ZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgaXMgbnVsbDsKICgyIHJvd3MpCiAKIGV4cGxhaW4g KGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhID0gJ2EnIG9yIGEgPSAnYyc7 Ci0gICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICBBcHBlbmQKICAgIC0+ICBTZXEgU2NhbiBvbiBscF9hZCBscF8xCi0gICAgICAgICBG aWx0ZXI6ICgoYSA9ICdhJzo6YnBjaGFyKSBPUiAoYSA9ICdjJzo6YnBjaGFyKSkKKyAgICAg ICAgIEZpbHRlcjogKGEgPSBBTlkgKCd7YSxjfSc6OmJwY2hhcltdKSkKICAgIC0+ICBTZXEg U2NhbiBvbiBscF9iYyBscF8yCi0gICAgICAgICBGaWx0ZXI6ICgoYSA9ICdhJzo6YnBjaGFy KSBPUiAoYSA9ICdjJzo6YnBjaGFyKSkKKyAgICAgICAgIEZpbHRlcjogKGEgPSBBTlkgKCd7 YSxjfSc6OmJwY2hhcltdKSkKICg1IHJvd3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZikgc2Vs ZWN0ICogZnJvbSBscCB3aGVyZSBhIGlzIG5vdCBudWxsIGFuZCAoYSA9ICdhJyBvciBhID0g J2MnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAg IC0+ICBTZXEgU2NhbiBvbiBscF9hZCBscF8xCisgICAgICAgICBGaWx0ZXI6ICgoYSBJUyBO T1QgTlVMTCkgQU5EIChhID0gQU5ZICgne2EsY30nOjpicGNoYXJbXSkpKQorICAgLT4gIFNl cSBTY2FuIG9uIGxwX2JjIGxwXzIKKyAgICAgICAgIEZpbHRlcjogKChhIElTIE5PVCBOVUxM KSBBTkQgKGEgPSBBTlkgKCd7YSxjfSc6OmJwY2hhcltdKSkpCisoNSByb3dzKQorCitTRVQg ZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uID0gb247CitleHBsYWluIChjb3N0cyBvZmYpIHNl bGVjdCAqIGZyb20gbHAgd2hlcmUgYSA9ICdhJyBvciBhID0gJ2MnOworICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgQXBwZW5kCiAgICAtPiAgU2VxIFNj YW4gb24gbHBfYWQgbHBfMQotICAgICAgICAgRmlsdGVyOiAoKGEgSVMgTk9UIE5VTEwpIEFO RCAoKGEgPSAnYSc6OmJwY2hhcikgT1IgKGEgPSAnYyc6OmJwY2hhcikpKQorICAgICAgICAg RmlsdGVyOiAoYSA9IEFOWSAoJ3thLGN9Jzo6YnBjaGFyW10pKQogICAgLT4gIFNlcSBTY2Fu IG9uIGxwX2JjIGxwXzIKLSAgICAgICAgIEZpbHRlcjogKChhIElTIE5PVCBOVUxMKSBBTkQg KChhID0gJ2EnOjpicGNoYXIpIE9SIChhID0gJ2MnOjpicGNoYXIpKSkKKyAgICAgICAgIEZp bHRlcjogKGEgPSBBTlkgKCd7YSxjfSc6OmJwY2hhcltdKSkKICg1IHJvd3MpCiAKK2V4cGxh aW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIGlzIG5vdCBudWxsIGFu ZCAoYSA9ICdhJyBvciBhID0gJ2MnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgQXBwZW5kCisgICAtPiAgU2VxIFNjYW4gb24gbHBfYWQgbHBfMQorICAgICAgICAg RmlsdGVyOiAoKGEgSVMgTk9UIE5VTEwpIEFORCAoYSA9IEFOWSAoJ3thLGN9Jzo6YnBjaGFy W10pKSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBscF9iYyBscF8yCisgICAgICAgICBGaWx0ZXI6 ICgoYSBJUyBOT1QgTlVMTCkgQU5EIChhID0gQU5ZICgne2EsY30nOjpicGNoYXJbXSkpKQor KDUgcm93cykKKworUkVTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uOwogZXhwbGFpbiAo Y29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgPD4gJ2cnOwogICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KQEAgLTUxNSwxMCArNTM3LDEwIEBAIGV4cGxhaW4gKGNvc3RzIG9mZikg c2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA8PSAzMTsKICgyNyByb3dzKQogCiBleHBsYWlu IChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPSAxIG9yIGEgPSA3Owot ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFNlcSBT Y2FuIG9uIHJscDIgcmxwCi0gICBGaWx0ZXI6ICgoYSA9IDEpIE9SIChhID0gNykpCisgICBG aWx0ZXI6IChhID0gQU5ZICgnezEsN30nOjppbnRlZ2VyW10pKQogKDIgcm93cykKIAogZXhw bGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhID0gMSBvciBiID0g J2FiJzsKQEAgLTUyNiwyOSArNTQ4LDI5IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0 ICogZnJvbSBybHAgd2hlcmUgYSA9IDEgb3IgYiA9ICdhYic7CiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgQXBwZW5kCiAgICAt PiAgU2VxIFNjYW4gb24gcmxwMSBybHBfMQotICAgICAgICAgRmlsdGVyOiAoKGEgPSAxKSBP UiAoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4dCkpCisgICAgICAgICBGaWx0ZXI6ICgoKGIpOjp0 ZXh0ID0gJ2FiJzo6dGV4dCkgT1IgKGEgPSAxKSkKICAgIC0+ICBTZXEgU2NhbiBvbiBybHAy IHJscF8yCi0gICAgICAgICBGaWx0ZXI6ICgoYSA9IDEpIE9SICgoYik6OnRleHQgPSAnYWIn Ojp0ZXh0KSkKKyAgICAgICAgIEZpbHRlcjogKCgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSBP UiAoYSA9IDEpKQogICAgLT4gIFNlcSBTY2FuIG9uIHJscDNhYmNkIHJscF8zCi0gICAgICAg ICBGaWx0ZXI6ICgoYSA9IDEpIE9SICgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSkKKyAgICAg ICAgIEZpbHRlcjogKCgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSBPUiAoYSA9IDEpKQogICAg LT4gIFNlcSBTY2FuIG9uIHJscDRfMSBybHBfNAotICAgICAgICAgRmlsdGVyOiAoKGEgPSAx KSBPUiAoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4dCkpCisgICAgICAgICBGaWx0ZXI6ICgoKGIp Ojp0ZXh0ID0gJ2FiJzo6dGV4dCkgT1IgKGEgPSAxKSkKICAgIC0+ICBTZXEgU2NhbiBvbiBy bHA0XzIgcmxwXzUKLSAgICAgICAgIEZpbHRlcjogKChhID0gMSkgT1IgKChiKTo6dGV4dCA9 ICdhYic6OnRleHQpKQorICAgICAgICAgRmlsdGVyOiAoKChiKTo6dGV4dCA9ICdhYic6OnRl eHQpIE9SIChhID0gMSkpCiAgICAtPiAgU2VxIFNjYW4gb24gcmxwNF9kZWZhdWx0IHJscF82 Ci0gICAgICAgICBGaWx0ZXI6ICgoYSA9IDEpIE9SICgoYik6OnRleHQgPSAnYWInOjp0ZXh0 KSkKKyAgICAgICAgIEZpbHRlcjogKCgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSBPUiAoYSA9 IDEpKQogICAgLT4gIFNlcSBTY2FuIG9uIHJscDVfMSBybHBfNwotICAgICAgICAgRmlsdGVy OiAoKGEgPSAxKSBPUiAoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4dCkpCisgICAgICAgICBGaWx0 ZXI6ICgoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4dCkgT1IgKGEgPSAxKSkKICAgIC0+ICBTZXEg U2NhbiBvbiBybHA1X2RlZmF1bHQgcmxwXzgKLSAgICAgICAgIEZpbHRlcjogKChhID0gMSkg T1IgKChiKTo6dGV4dCA9ICdhYic6OnRleHQpKQorICAgICAgICAgRmlsdGVyOiAoKChiKTo6 dGV4dCA9ICdhYic6OnRleHQpIE9SIChhID0gMSkpCiAgICAtPiAgU2VxIFNjYW4gb24gcmxw X2RlZmF1bHRfMTAgcmxwXzkKLSAgICAgICAgIEZpbHRlcjogKChhID0gMSkgT1IgKChiKTo6 dGV4dCA9ICdhYic6OnRleHQpKQorICAgICAgICAgRmlsdGVyOiAoKChiKTo6dGV4dCA9ICdh Yic6OnRleHQpIE9SIChhID0gMSkpCiAgICAtPiAgU2VxIFNjYW4gb24gcmxwX2RlZmF1bHRf MzAgcmxwXzEwCi0gICAgICAgICBGaWx0ZXI6ICgoYSA9IDEpIE9SICgoYik6OnRleHQgPSAn YWInOjp0ZXh0KSkKKyAgICAgICAgIEZpbHRlcjogKCgoYik6OnRleHQgPSAnYWInOjp0ZXh0 KSBPUiAoYSA9IDEpKQogICAgLT4gIFNlcSBTY2FuIG9uIHJscF9kZWZhdWx0X251bGwgcmxw XzExCi0gICAgICAgICBGaWx0ZXI6ICgoYSA9IDEpIE9SICgoYik6OnRleHQgPSAnYWInOjp0 ZXh0KSkKKyAgICAgICAgIEZpbHRlcjogKCgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSBPUiAo YSA9IDEpKQogICAgLT4gIFNlcSBTY2FuIG9uIHJscF9kZWZhdWx0X2RlZmF1bHQgcmxwXzEy Ci0gICAgICAgICBGaWx0ZXI6ICgoYSA9IDEpIE9SICgoYik6OnRleHQgPSAnYWInOjp0ZXh0 KSkKKyAgICAgICAgIEZpbHRlcjogKCgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSBPUiAoYSA9 IDEpKQogKDI1IHJvd3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBy bHAgd2hlcmUgYSA+IDIwIGFuZCBhIDwgMjc7CkBAIC01OTYsMTMgKzYxOCwxMyBAQCBleHBs YWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPCAxIG9yIChhID4g MjAgYW5kIGEgPCAyNSk7CiAKIC0tIHdoZXJlIGNsYXVzZSBjb250cmFkaWN0cyBzdWItcGFy dGl0aW9uJ3MgY29uc3RyYWludAogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9t IHJscCB3aGVyZSBhID0gMjAgb3IgYSA9IDQwOwotICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgQXBwZW5kCiAgICAtPiAgU2VxIFNjYW4gb24gcmxwNF8xIHJscF8xCi0gICAgICAgICBG aWx0ZXI6ICgoYSA9IDIwKSBPUiAoYSA9IDQwKSkKKyAgICAgICAgIEZpbHRlcjogKGEgPSBB TlkgKCd7MjAsNDB9Jzo6aW50ZWdlcltdKSkKICAgIC0+ICBTZXEgU2NhbiBvbiBybHA1X2Rl ZmF1bHQgcmxwXzIKLSAgICAgICAgIEZpbHRlcjogKChhID0gMjApIE9SIChhID0gNDApKQor ICAgICAgICAgRmlsdGVyOiAoYSA9IEFOWSAoJ3syMCw0MH0nOjppbnRlZ2VyW10pKQogKDUg cm93cykKIAogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscDMgd2hlcmUg YSA9IDIwOyAgIC8qIGVtcHR5ICovCkBAIC02NzEsNiArNjkzLDE2MyBAQCBleHBsYWluIChj b3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIChhID0gMSBhbmQgYSA9IDMpIG9y IChhID4gMSBhbmQgYSA9CiAgICAgICAgICBGaWx0ZXI6ICgoKGEgPSAxKSBBTkQgKGEgPSAz KSkgT1IgKChhID4gMSkgQU5EIChhID0gMTUpKSkKICgxMSByb3dzKQogCitTRVQgZW5hYmxl X29yX3RyYW5zZm9ybWF0aW9uID0gb247CitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAq IGZyb20gcmxwIHdoZXJlIGEgPSAxIG9yIGEgPSA3OworICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBybHAyIHJscAorICAgRmlsdGVyOiAoYSA9IEFO WSAoJ3sxLDd9Jzo6aW50ZWdlcltdKSkKKygyIHJvd3MpCisKK2V4cGxhaW4gKGNvc3RzIG9m Zikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA9IDEgb3IgYiA9ICdhYic7CisgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg QXBwZW5kCisgICAtPiAgU2VxIFNjYW4gb24gcmxwMSBybHBfMQorICAgICAgICAgRmlsdGVy OiAoKChiKTo6dGV4dCA9ICdhYic6OnRleHQpIE9SIChhID0gMSkpCisgICAtPiAgU2VxIFNj YW4gb24gcmxwMiBybHBfMgorICAgICAgICAgRmlsdGVyOiAoKChiKTo6dGV4dCA9ICdhYic6 OnRleHQpIE9SIChhID0gMSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwM2FiY2QgcmxwXzMK KyAgICAgICAgIEZpbHRlcjogKCgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSBPUiAoYSA9IDEp KQorICAgLT4gIFNlcSBTY2FuIG9uIHJscDRfMSBybHBfNAorICAgICAgICAgRmlsdGVyOiAo KChiKTo6dGV4dCA9ICdhYic6OnRleHQpIE9SIChhID0gMSkpCisgICAtPiAgU2VxIFNjYW4g b24gcmxwNF8yIHJscF81CisgICAgICAgICBGaWx0ZXI6ICgoKGIpOjp0ZXh0ID0gJ2FiJzo6 dGV4dCkgT1IgKGEgPSAxKSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHA0X2RlZmF1bHQgcmxw XzYKKyAgICAgICAgIEZpbHRlcjogKCgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSBPUiAoYSA9 IDEpKQorICAgLT4gIFNlcSBTY2FuIG9uIHJscDVfMSBybHBfNworICAgICAgICAgRmlsdGVy OiAoKChiKTo6dGV4dCA9ICdhYic6OnRleHQpIE9SIChhID0gMSkpCisgICAtPiAgU2VxIFNj YW4gb24gcmxwNV9kZWZhdWx0IHJscF84CisgICAgICAgICBGaWx0ZXI6ICgoKGIpOjp0ZXh0 ID0gJ2FiJzo6dGV4dCkgT1IgKGEgPSAxKSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHBfZGVm YXVsdF8xMCBybHBfOQorICAgICAgICAgRmlsdGVyOiAoKChiKTo6dGV4dCA9ICdhYic6OnRl eHQpIE9SIChhID0gMSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwX2RlZmF1bHRfMzAgcmxw XzEwCisgICAgICAgICBGaWx0ZXI6ICgoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4dCkgT1IgKGEg PSAxKSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHBfZGVmYXVsdF9udWxsIHJscF8xMQorICAg ICAgICAgRmlsdGVyOiAoKChiKTo6dGV4dCA9ICdhYic6OnRleHQpIE9SIChhID0gMSkpCisg ICAtPiAgU2VxIFNjYW4gb24gcmxwX2RlZmF1bHRfZGVmYXVsdCBybHBfMTIKKyAgICAgICAg IEZpbHRlcjogKCgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSBPUiAoYSA9IDEpKQorKDI1IHJv d3MpCisKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA+ IDIwIGFuZCBhIDwgMjc7CisgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBl bmQKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHA0XzEgcmxwXzEKKyAgICAgICAgIEZpbHRlcjog KChhID4gMjApIEFORCAoYSA8IDI3KSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHA0XzIgcmxw XzIKKyAgICAgICAgIEZpbHRlcjogKChhID4gMjApIEFORCAoYSA8IDI3KSkKKyg1IHJvd3Mp CisKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA9IDI5 OworICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBybHA0X2RlZmF1bHQgcmxwCisgICBGaWx0ZXI6 IChhID0gMjkpCisoMiByb3dzKQorCitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZy b20gcmxwIHdoZXJlIGEgPj0gMjk7CisgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIEFwcGVuZAorICAgLT4gIFNlcSBTY2FuIG9uIHJscDRfZGVmYXVsdCBybHBf MQorICAgICAgICAgRmlsdGVyOiAoYSA+PSAyOSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHA1 XzEgcmxwXzIKKyAgICAgICAgIEZpbHRlcjogKGEgPj0gMjkpCisgICAtPiAgU2VxIFNjYW4g b24gcmxwNV9kZWZhdWx0IHJscF8zCisgICAgICAgICBGaWx0ZXI6IChhID49IDI5KQorICAg LT4gIFNlcSBTY2FuIG9uIHJscF9kZWZhdWx0XzMwIHJscF80CisgICAgICAgICBGaWx0ZXI6 IChhID49IDI5KQorICAgLT4gIFNlcSBTY2FuIG9uIHJscF9kZWZhdWx0X2RlZmF1bHQgcmxw XzUKKyAgICAgICAgIEZpbHRlcjogKGEgPj0gMjkpCisoMTEgcm93cykKKworZXhwbGFpbiAo Y29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhIDwgMSBvciAoYSA+IDIwIGFu ZCBhIDwgMjUpOworICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHAxIHJscF8x CisgICAgICAgICBGaWx0ZXI6ICgoYSA8IDEpIE9SICgoYSA+IDIwKSBBTkQgKGEgPCAyNSkp KQorICAgLT4gIFNlcSBTY2FuIG9uIHJscDRfMSBybHBfMgorICAgICAgICAgRmlsdGVyOiAo KGEgPCAxKSBPUiAoKGEgPiAyMCkgQU5EIChhIDwgMjUpKSkKKyg1IHJvd3MpCisKK2V4cGxh aW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA9IDIwIG9yIGEgPSA0 MDsKKyAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IEFwcGVuZAorICAgLT4gIFNlcSBTY2FuIG9uIHJscDRfMSBybHBfMQorICAgICAgICAgRmls dGVyOiAoYSA9IEFOWSAoJ3syMCw0MH0nOjppbnRlZ2VyW10pKQorICAgLT4gIFNlcSBTY2Fu IG9uIHJscDVfZGVmYXVsdCBybHBfMgorICAgICAgICAgRmlsdGVyOiAoYSA9IEFOWSAoJ3sy MCw0MH0nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworZXhwbGFpbiAoY29zdHMgb2ZmKSBz ZWxlY3QgKiBmcm9tIHJscDMgd2hlcmUgYSA9IDIwOyAgIC8qIGVtcHR5ICovCisgICAgICAg IFFVRVJZIFBMQU4gICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBSZXN1 bHQKKyAgIE9uZS1UaW1lIEZpbHRlcjogZmFsc2UKKygyIHJvd3MpCisKK2V4cGxhaW4gKGNv c3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA+IDEgYW5kIGEgPSAxMDsJLyog b25seSBkZWZhdWx0ICovCisgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcmxwX2Rl ZmF1bHRfMTAgcmxwCisgICBGaWx0ZXI6ICgoYSA+IDEpIEFORCAoYSA9IDEwKSkKKygyIHJv d3MpCisKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA+ IDEgYW5kIGEgPj0xNTsJLyogcmxwMyBvbndhcmRzLCBpbmNsdWRpbmcgZGVmYXVsdCAqLwor ICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFwcGVuZAorICAg LT4gIFNlcSBTY2FuIG9uIHJscDNhYmNkIHJscF8xCisgICAgICAgICBGaWx0ZXI6ICgoYSA+ IDEpIEFORCAoYSA+PSAxNSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwM2VmZ2ggcmxwXzIK KyAgICAgICAgIEZpbHRlcjogKChhID4gMSkgQU5EIChhID49IDE1KSkKKyAgIC0+ICBTZXEg U2NhbiBvbiBybHAzbnVsbHh5IHJscF8zCisgICAgICAgICBGaWx0ZXI6ICgoYSA+IDEpIEFO RCAoYSA+PSAxNSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwM19kZWZhdWx0IHJscF80Cisg ICAgICAgICBGaWx0ZXI6ICgoYSA+IDEpIEFORCAoYSA+PSAxNSkpCisgICAtPiAgU2VxIFNj YW4gb24gcmxwNF8xIHJscF81CisgICAgICAgICBGaWx0ZXI6ICgoYSA+IDEpIEFORCAoYSA+ PSAxNSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwNF8yIHJscF82CisgICAgICAgICBGaWx0 ZXI6ICgoYSA+IDEpIEFORCAoYSA+PSAxNSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwNF9k ZWZhdWx0IHJscF83CisgICAgICAgICBGaWx0ZXI6ICgoYSA+IDEpIEFORCAoYSA+PSAxNSkp CisgICAtPiAgU2VxIFNjYW4gb24gcmxwNV8xIHJscF84CisgICAgICAgICBGaWx0ZXI6ICgo YSA+IDEpIEFORCAoYSA+PSAxNSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwNV9kZWZhdWx0 IHJscF85CisgICAgICAgICBGaWx0ZXI6ICgoYSA+IDEpIEFORCAoYSA+PSAxNSkpCisgICAt PiAgU2VxIFNjYW4gb24gcmxwX2RlZmF1bHRfMzAgcmxwXzEwCisgICAgICAgICBGaWx0ZXI6 ICgoYSA+IDEpIEFORCAoYSA+PSAxNSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwX2RlZmF1 bHRfZGVmYXVsdCBybHBfMTEKKyAgICAgICAgIEZpbHRlcjogKChhID4gMSkgQU5EIChhID49 IDE1KSkKKygyMyByb3dzKQorCitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20g cmxwIHdoZXJlIGEgPSAxIGFuZCBhID0gMzsJLyogZW1wdHkgKi8KKyAgICAgICAgUVVFUlkg UExBTiAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFJlc3VsdAorICAg T25lLVRpbWUgRmlsdGVyOiBmYWxzZQorKDIgcm93cykKKworZXhwbGFpbiAoY29zdHMgb2Zm KSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSAoYSA9IDEgYW5kIGEgPSAzKSBvciAoYSA+IDEg YW5kIGEgPSAxNSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQXBwZW5kCisg ICAtPiAgU2VxIFNjYW4gb24gcmxwMiBybHBfMQorICAgICAgICAgRmlsdGVyOiAoKChhID0g MSkgQU5EIChhID0gMykpIE9SICgoYSA+IDEpIEFORCAoYSA9IDE1KSkpCisgICAtPiAgU2Vx IFNjYW4gb24gcmxwM2FiY2QgcmxwXzIKKyAgICAgICAgIEZpbHRlcjogKCgoYSA9IDEpIEFO RCAoYSA9IDMpKSBPUiAoKGEgPiAxKSBBTkQgKGEgPSAxNSkpKQorICAgLT4gIFNlcSBTY2Fu IG9uIHJscDNlZmdoIHJscF8zCisgICAgICAgICBGaWx0ZXI6ICgoKGEgPSAxKSBBTkQgKGEg PSAzKSkgT1IgKChhID4gMSkgQU5EIChhID0gMTUpKSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBy bHAzbnVsbHh5IHJscF80CisgICAgICAgICBGaWx0ZXI6ICgoKGEgPSAxKSBBTkQgKGEgPSAz KSkgT1IgKChhID4gMSkgQU5EIChhID0gMTUpKSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHAz X2RlZmF1bHQgcmxwXzUKKyAgICAgICAgIEZpbHRlcjogKCgoYSA9IDEpIEFORCAoYSA9IDMp KSBPUiAoKGEgPiAxKSBBTkQgKGEgPSAxNSkpKQorKDExIHJvd3MpCisKK1JFU0VUIGVuYWJs ZV9vcl90cmFuc2Zvcm1hdGlvbjsKIC0tIG11bHRpLWNvbHVtbiBrZXlzCiBjcmVhdGUgdGFi bGUgbWMzcCAoYSBpbnQsIGIgaW50LCBjIGludCkgcGFydGl0aW9uIGJ5IHJhbmdlIChhLCBh YnMoYiksIGMpOwogY3JlYXRlIHRhYmxlIG1jM3BfZGVmYXVsdCBwYXJ0aXRpb24gb2YgbWMz cCBkZWZhdWx0OwpAQCAtODkzLDIzICsxMDcyLDIzIEBAIGV4cGxhaW4gKGNvc3RzIG9mZikg c2VsZWN0ICogZnJvbSBtYzNwIHdoZXJlIGEgPSAxIG9yIGFicyhiKSA9IDEgb3IgYyA9IDE7 CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICBBcHBlbmQKICAgIC0+ICBTZXEgU2NhbiBvbiBtYzNwMCBtYzNwXzEKLSAgICAgICAg IEZpbHRlcjogKChhID0gMSkgT1IgKGFicyhiKSA9IDEpIE9SIChjID0gMSkpCisgICAgICAg ICBGaWx0ZXI6ICgoYyA9IDEpIE9SIChhID0gMSkgT1IgKGFicyhiKSA9IDEpKQogICAgLT4g IFNlcSBTY2FuIG9uIG1jM3AxIG1jM3BfMgotICAgICAgICAgRmlsdGVyOiAoKGEgPSAxKSBP UiAoYWJzKGIpID0gMSkgT1IgKGMgPSAxKSkKKyAgICAgICAgIEZpbHRlcjogKChjID0gMSkg T1IgKGEgPSAxKSBPUiAoYWJzKGIpID0gMSkpCiAgICAtPiAgU2VxIFNjYW4gb24gbWMzcDIg bWMzcF8zCi0gICAgICAgICBGaWx0ZXI6ICgoYSA9IDEpIE9SIChhYnMoYikgPSAxKSBPUiAo YyA9IDEpKQorICAgICAgICAgRmlsdGVyOiAoKGMgPSAxKSBPUiAoYSA9IDEpIE9SIChhYnMo YikgPSAxKSkKICAgIC0+ICBTZXEgU2NhbiBvbiBtYzNwMyBtYzNwXzQKLSAgICAgICAgIEZp bHRlcjogKChhID0gMSkgT1IgKGFicyhiKSA9IDEpIE9SIChjID0gMSkpCisgICAgICAgICBG aWx0ZXI6ICgoYyA9IDEpIE9SIChhID0gMSkgT1IgKGFicyhiKSA9IDEpKQogICAgLT4gIFNl cSBTY2FuIG9uIG1jM3A0IG1jM3BfNQotICAgICAgICAgRmlsdGVyOiAoKGEgPSAxKSBPUiAo YWJzKGIpID0gMSkgT1IgKGMgPSAxKSkKKyAgICAgICAgIEZpbHRlcjogKChjID0gMSkgT1Ig KGEgPSAxKSBPUiAoYWJzKGIpID0gMSkpCiAgICAtPiAgU2VxIFNjYW4gb24gbWMzcDUgbWMz cF82Ci0gICAgICAgICBGaWx0ZXI6ICgoYSA9IDEpIE9SIChhYnMoYikgPSAxKSBPUiAoYyA9 IDEpKQorICAgICAgICAgRmlsdGVyOiAoKGMgPSAxKSBPUiAoYSA9IDEpIE9SIChhYnMoYikg PSAxKSkKICAgIC0+ICBTZXEgU2NhbiBvbiBtYzNwNiBtYzNwXzcKLSAgICAgICAgIEZpbHRl cjogKChhID0gMSkgT1IgKGFicyhiKSA9IDEpIE9SIChjID0gMSkpCisgICAgICAgICBGaWx0 ZXI6ICgoYyA9IDEpIE9SIChhID0gMSkgT1IgKGFicyhiKSA9IDEpKQogICAgLT4gIFNlcSBT Y2FuIG9uIG1jM3A3IG1jM3BfOAotICAgICAgICAgRmlsdGVyOiAoKGEgPSAxKSBPUiAoYWJz KGIpID0gMSkgT1IgKGMgPSAxKSkKKyAgICAgICAgIEZpbHRlcjogKChjID0gMSkgT1IgKGEg PSAxKSBPUiAoYWJzKGIpID0gMSkpCiAgICAtPiAgU2VxIFNjYW4gb24gbWMzcF9kZWZhdWx0 IG1jM3BfOQotICAgICAgICAgRmlsdGVyOiAoKGEgPSAxKSBPUiAoYWJzKGIpID0gMSkgT1Ig KGMgPSAxKSkKKyAgICAgICAgIEZpbHRlcjogKChjID0gMSkgT1IgKGEgPSAxKSBPUiAoYWJz KGIpID0gMSkpCiAoMTkgcm93cykKIAogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBm cm9tIG1jM3Agd2hlcmUgKGEgPSAxIGFuZCBhYnMoYikgPSAxKSBvciAoYSA9IDEwIGFuZCBh YnMoYikgPSAxMCk7CkBAIC0xOTMzLDEwICsyMTEyLDEwIEBAIGV4cGxhaW4gKGNvc3RzIG9m Zikgc2VsZWN0ICogZnJvbSBocCB3aGVyZSBhID0gMSBhbmQgYiA9ICdhYmNkZSc7CiAKIGV4 cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBocCB3aGVyZSBhID0gMSBhbmQgYiA9 ICdhYmNkZScgYW5kCiAgIChjID0gMiBvciBjID0gMyk7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICBTZXEgU2NhbiBvbiBocDIgaHAKLSAgIEZpbHRlcjogKChh ID0gMSkgQU5EIChiID0gJ2FiY2RlJzo6dGV4dCkgQU5EICgoYyA9IDIpIE9SIChjID0gMykp KQorICAgRmlsdGVyOiAoKGMgPSBBTlkgKCd7MiwzfSc6OmludGVnZXJbXSkpIEFORCAoYSA9 IDEpIEFORCAoYiA9ICdhYmNkZSc6OnRleHQpKQogKDIgcm93cykKIAogZHJvcCB0YWJsZSBo cDI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IDA1MDcwMzkzYjku LmM5MjdjMjFkZDQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVs ZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0y NDk1LDcgKzI0OTUsNyBAQCBwZ19zdGF0c3wgU0VMRUNUIG4ubnNwbmFtZSBBUyBzY2hlbWFu YW1lLAogICAgICBKT0lOIHBnX2NsYXNzIGMgT04gKChjLm9pZCA9IHMuc3RhcmVsaWQpKSkK ICAgICAgSk9JTiBwZ19hdHRyaWJ1dGUgYSBPTiAoKChjLm9pZCA9IGEuYXR0cmVsaWQpIEFO RCAoYS5hdHRudW0gPSBzLnN0YWF0dG51bSkpKSkKICAgICAgTEVGVCBKT0lOIHBnX25hbWVz cGFjZSBuIE9OICgobi5vaWQgPSBjLnJlbG5hbWVzcGFjZSkpKQotICBXSEVSRSAoKE5PVCBh LmF0dGlzZHJvcHBlZCkgQU5EIGhhc19jb2x1bW5fcHJpdmlsZWdlKGMub2lkLCBhLmF0dG51 bSwgJ3NlbGVjdCc6OnRleHQpIEFORCAoKGMucmVscm93c2VjdXJpdHkgPSBmYWxzZSkgT1Ig KE5PVCByb3dfc2VjdXJpdHlfYWN0aXZlKGMub2lkKSkpKTsKKyAgV0hFUkUgKChOT1QgYS5h dHRpc2Ryb3BwZWQpIEFORCBoYXNfY29sdW1uX3ByaXZpbGVnZShjLm9pZCwgYS5hdHRudW0s ICdzZWxlY3QnOjp0ZXh0KSBBTkQgKChOT1Qgcm93X3NlY3VyaXR5X2FjdGl2ZShjLm9pZCkp IE9SIChjLnJlbHJvd3NlY3VyaXR5ID0gZmFsc2UpKSk7CiBwZ19zdGF0c19leHR8IFNFTEVD VCBjbi5uc3BuYW1lIEFTIHNjaGVtYW5hbWUsCiAgICAgYy5yZWxuYW1lIEFTIHRhYmxlbmFt ZSwKICAgICBzbi5uc3BuYW1lIEFTIHN0YXRpc3RpY3Nfc2NoZW1hbmFtZSwKQEAgLTI1MjYs NyArMjUyNiw3IEBAIHBnX3N0YXRzX2V4dHwgU0VMRUNUIGNuLm5zcG5hbWUgQVMgc2NoZW1h bmFtZSwKICAgV0hFUkUgKChOT1QgKEVYSVNUUyAoIFNFTEVDVCAxCiAgICAgICAgICAgIEZS T00gKHVubmVzdChzLnN0eGtleXMpIGsoaykKICAgICAgICAgICAgICBKT0lOIHBnX2F0dHJp YnV0ZSBhIE9OICgoKGEuYXR0cmVsaWQgPSBzLnN0eHJlbGlkKSBBTkQgKGEuYXR0bnVtID0g ay5rKSkpKQotICAgICAgICAgIFdIRVJFIChOT1QgaGFzX2NvbHVtbl9wcml2aWxlZ2UoYy5v aWQsIGEuYXR0bnVtLCAnc2VsZWN0Jzo6dGV4dCkpKSkpIEFORCAoKGMucmVscm93c2VjdXJp dHkgPSBmYWxzZSkgT1IgKE5PVCByb3dfc2VjdXJpdHlfYWN0aXZlKGMub2lkKSkpKTsKKyAg ICAgICAgICBXSEVSRSAoTk9UIGhhc19jb2x1bW5fcHJpdmlsZWdlKGMub2lkLCBhLmF0dG51 bSwgJ3NlbGVjdCc6OnRleHQpKSkpKSBBTkQgKChOT1Qgcm93X3NlY3VyaXR5X2FjdGl2ZShj Lm9pZCkpIE9SIChjLnJlbHJvd3NlY3VyaXR5ID0gZmFsc2UpKSk7CiBwZ19zdGF0c19leHRf ZXhwcnN8IFNFTEVDVCBjbi5uc3BuYW1lIEFTIHNjaGVtYW5hbWUsCiAgICAgYy5yZWxuYW1l IEFTIHRhYmxlbmFtZSwKICAgICBzbi5uc3BuYW1lIEFTIHN0YXRpc3RpY3Nfc2NoZW1hbmFt ZSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHNfZXh0Lm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHNfZXh0Lm91dAppbmRleCBhNDMw MTUzYjIyLi42NTlkNzEyZjc1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3N0YXRzX2V4dC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0 c19leHQub3V0CkBAIC0xMzIyLDE5ICsxMzIyLDE5IEBAIFNFTEVDVCAqIEZST00gY2hlY2tf ZXN0aW1hdGVkX3Jvd3MoJ1NFTEVDVCAqIEZST00gZnVuY3Rpb25hbF9kZXBlbmRlbmNpZXMg V0hFUkUKIFNFTEVDVCAqIEZST00gY2hlY2tfZXN0aW1hdGVkX3Jvd3MoJ1NFTEVDVCAqIEZS T00gZnVuY3Rpb25hbF9kZXBlbmRlbmNpZXMgV0hFUkUgKGEgPSAxIE9SIGEgPSA1MSkgQU5E IGIgPSAnJzEnJycpOwogIGVzdGltYXRlZCB8IGFjdHVhbCAKIC0tLS0tLS0tLS0tKy0tLS0t LS0tCi0gICAgICAgIDk5IHwgICAgMTAwCisgICAgICAgMTAwIHwgICAgMTAwCiAoMSByb3cp CiAKIFNFTEVDVCAqIEZST00gY2hlY2tfZXN0aW1hdGVkX3Jvd3MoJ1NFTEVDVCAqIEZST00g ZnVuY3Rpb25hbF9kZXBlbmRlbmNpZXMgV0hFUkUgKGEgPSAxIE9SIGEgPSA1MSkgQU5EIChi ID0gJycxJycgT1IgYiA9ICcnMicnKScpOwogIGVzdGltYXRlZCB8IGFjdHVhbCAKIC0tLS0t LS0tLS0tKy0tLS0tLS0tCi0gICAgICAgIDk5IHwgICAgMTAwCisgICAgICAgMTAwIHwgICAg MTAwCiAoMSByb3cpCiAKIFNFTEVDVCAqIEZST00gY2hlY2tfZXN0aW1hdGVkX3Jvd3MoJ1NF TEVDVCAqIEZST00gZnVuY3Rpb25hbF9kZXBlbmRlbmNpZXMgV0hFUkUgKGEgPSAxIE9SIGEg PSAyIE9SIGEgPSA1MSBPUiBhID0gNTIpIEFORCAoYiA9ICcnMScnIE9SIGIgPSAnJzInJykn KTsKICBlc3RpbWF0ZWQgfCBhY3R1YWwgCiAtLS0tLS0tLS0tLSstLS0tLS0tLQotICAgICAg IDE5NyB8ICAgIDIwMAorICAgICAgIDIwMCB8ICAgIDIwMAogKDEgcm93KQogCiAtLSBPUiBj bGF1c2VzIHJlZmVyZW5jaW5nIGRpZmZlcmVudCBhdHRyaWJ1dGVzIGFyZSBpbmNvbXBhdGli bGUKQEAgLTE2NjQsMTkgKzE2NjQsMTkgQEAgU0VMRUNUICogRlJPTSBjaGVja19lc3RpbWF0 ZWRfcm93cygnU0VMRUNUICogRlJPTSBmdW5jdGlvbmFsX2RlcGVuZGVuY2llcyBXSEVSRQog U0VMRUNUICogRlJPTSBjaGVja19lc3RpbWF0ZWRfcm93cygnU0VMRUNUICogRlJPTSBmdW5j dGlvbmFsX2RlcGVuZGVuY2llcyBXSEVSRSAoKGEgKiAyKSA9IDIgT1IgKGEgKiAyKSA9IDEw MikgQU5EIHVwcGVyKGIpID0gJycxJycnKTsKICBlc3RpbWF0ZWQgfCBhY3R1YWwgCiAtLS0t LS0tLS0tLSstLS0tLS0tLQotICAgICAgICA5OSB8ICAgIDEwMAorICAgICAgIDEwMCB8ICAg IDEwMAogKDEgcm93KQogCiBTRUxFQ1QgKiBGUk9NIGNoZWNrX2VzdGltYXRlZF9yb3dzKCdT RUxFQ1QgKiBGUk9NIGZ1bmN0aW9uYWxfZGVwZW5kZW5jaWVzIFdIRVJFICgoYSAqIDIpID0g MiBPUiAoYSAqIDIpID0gMTAyKSBBTkQgKHVwcGVyKGIpID0gJycxJycgT1IgdXBwZXIoYikg PSAnJzInJyknKTsKICBlc3RpbWF0ZWQgfCBhY3R1YWwgCiAtLS0tLS0tLS0tLSstLS0tLS0t LQotICAgICAgICA5OSB8ICAgIDEwMAorICAgICAgIDEwMCB8ICAgIDEwMAogKDEgcm93KQog CiBTRUxFQ1QgKiBGUk9NIGNoZWNrX2VzdGltYXRlZF9yb3dzKCdTRUxFQ1QgKiBGUk9NIGZ1 bmN0aW9uYWxfZGVwZW5kZW5jaWVzIFdIRVJFICgoYSAqIDIpID0gMiBPUiAoYSAqIDIpID0g NCBPUiAoYSAqIDIpID0gMTAyIE9SIChhICogMikgPSAxMDQpIEFORCAodXBwZXIoYikgPSAn JzEnJyBPUiB1cHBlcihiKSA9ICcnMicnKScpOwogIGVzdGltYXRlZCB8IGFjdHVhbCAKIC0t LS0tLS0tLS0tKy0tLS0tLS0tCi0gICAgICAgMTk3IHwgICAgMjAwCisgICAgICAgMjAwIHwg ICAgMjAwCiAoMSByb3cpCiAKIC0tIE9SIGNsYXVzZXMgcmVmZXJlbmNpbmcgZGlmZmVyZW50 IGF0dHJpYnV0ZXMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3lz dmlld3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zeXN2aWV3cy5vdXQKaW5k ZXggMjcxMzEzZWJmOC4uYzZjNmI5ZmI4ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zeXN2aWV3cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zeXN2aWV3cy5vdXQKQEAgLTEyMyw2ICsxMjMsNyBAQCBzZWxlY3QgbmFtZSwgc2V0dGlu ZyBmcm9tIHBnX3NldHRpbmdzIHdoZXJlIG5hbWUgbGlrZSAnZW5hYmxlJSc7CiAgZW5hYmxl X21lbW9pemUgICAgICAgICAgICAgICAgIHwgb24KICBlbmFibGVfbWVyZ2Vqb2luICAgICAg ICAgICAgICAgfCBvbgogIGVuYWJsZV9uZXN0bG9vcCAgICAgICAgICAgICAgICB8IG9uCisg ZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uICAgICAgIHwgb24KICBlbmFibGVfcGFyYWxsZWxf YXBwZW5kICAgICAgICAgfCBvbgogIGVuYWJsZV9wYXJhbGxlbF9oYXNoICAgICAgICAgICB8 IG9uCiAgZW5hYmxlX3BhcnRpdGlvbl9wcnVuaW5nICAgICAgIHwgb24KQEAgLTEzMyw3ICsx MzQsNyBAQCBzZWxlY3QgbmFtZSwgc2V0dGluZyBmcm9tIHBnX3NldHRpbmdzIHdoZXJlIG5h bWUgbGlrZSAnZW5hYmxlJSc7CiAgZW5hYmxlX3NlcXNjYW4gICAgICAgICAgICAgICAgIHwg b24KICBlbmFibGVfc29ydCAgICAgICAgICAgICAgICAgICAgfCBvbgogIGVuYWJsZV90aWRz Y2FuICAgICAgICAgICAgICAgICB8IG9uCi0oMjIgcm93cykKKygyMyByb3dzKQogCiAtLSBU aGVyZSBhcmUgYWx3YXlzIHdhaXQgZXZlbnQgZGVzY3JpcHRpb25zIGZvciB2YXJpb3VzIHR5 cGVzLgogc2VsZWN0IHR5cGUsIGNvdW50KCopID4gMCBhcyBvayBGUk9NIHBnX3dhaXRfZXZl bnRzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RpZHNjYW4ub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90aWRzY2FuLm91dAppbmRleCBmMTMzYjVh NGFjLi4yYTA3OWU5OTZiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3RpZHNjYW4ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdGlkc2Nhbi5v dXQKQEAgLTQzLDEwICs0MywyNiBAQCBTRUxFQ1QgY3RpZCwgKiBGUk9NIHRpZHNjYW4gV0hF UkUgJygwLDEpJyA9IGN0aWQ7CiAtLSBPUidkIGNsYXVzZXMKIEVYUExBSU4gKENPU1RTIE9G RikKIFNFTEVDVCBjdGlkLCAqIEZST00gdGlkc2NhbiBXSEVSRSBjdGlkID0gJygwLDIpJyBP UiAnKDAsMSknID0gY3RpZDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFRpZCBTY2Fu IG9uIHRpZHNjYW4KKyAgIFRJRCBDb25kOiAoY3RpZCA9IEFOWSAoJ3siKDAsMikiLCIoMCwx KSJ9Jzo6dGlkW10pKQorKDIgcm93cykKKworU0VMRUNUIGN0aWQsICogRlJPTSB0aWRzY2Fu IFdIRVJFIGN0aWQgPSAnKDAsMiknIE9SICcoMCwxKScgPSBjdGlkOworIGN0aWQgIHwgaWQg CistLS0tLS0tKy0tLS0KKyAoMCwxKSB8ICAxCisgKDAsMikgfCAgMgorKDIgcm93cykKKwor U0VUIGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbiA9IG9uOworRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIGN0aWQsICogRlJPTSB0aWRzY2FuIFdIRVJFIGN0aWQgPSAnKDAsMiknIE9S ICcoMCwxKScgPSBjdGlkOworICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFRpZCBTY2FuIG9uIHRpZHNjYW4KLSAgIFRJRCBD b25kOiAoKGN0aWQgPSAnKDAsMiknOjp0aWQpIE9SICgnKDAsMSknOjp0aWQgPSBjdGlkKSkK KyAgIFRJRCBDb25kOiAoY3RpZCA9IEFOWSAoJ3siKDAsMikiLCIoMCwxKSJ9Jzo6dGlkW10p KQogKDIgcm93cykKIAogU0VMRUNUIGN0aWQsICogRlJPTSB0aWRzY2FuIFdIRVJFIGN0aWQg PSAnKDAsMiknIE9SICcoMCwxKScgPSBjdGlkOwpAQCAtNTYsNiArNzIsNyBAQCBTRUxFQ1Qg Y3RpZCwgKiBGUk9NIHRpZHNjYW4gV0hFUkUgY3RpZCA9ICcoMCwyKScgT1IgJygwLDEpJyA9 IGN0aWQ7CiAgKDAsMikgfCAgMgogKDIgcm93cykKIAorUkVTRVQgZW5hYmxlX29yX3RyYW5z Zm9ybWF0aW9uOwogLS0gY3RpZCA9IFNjYWxhckFycmF5T3AgLSBpbXBsZW1lbnRlZCBhcyB0 aWRzY2FuCiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgY3RpZCwgKiBGUk9NIHRpZHNj YW4gV0hFUkUgY3RpZCA9IEFOWShBUlJBWVsnKDAsMSknLCAnKDAsMiknXTo6dGlkW10pOwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2luZGV4LnNxbCBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9pbmRleC5zcWwKaW5kZXggZDQ5Y2U5ZjMwMC4u NDhiYjFiYzBhMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2lu ZGV4LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfaW5kZXguc3FsCkBA IC03MzcsNiArNzM3LDM4IEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCiBTRUxFQ1Qg Y291bnQoKikgRlJPTSB0ZW5rMQogICBXSEVSRSBodW5kcmVkID0gNDIgQU5EICh0aG91c2Fu ZCA9IDQyIE9SIHRob3VzYW5kID0gOTkpOwogCitTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0 aW9uID0gb247CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgKiBGUk9NIHRlbmsxCisg IFdIRVJFIHRob3VzYW5kID0gNDIgQU5EICh0ZW50aG91cyA9IDEgT1IgdGVudGhvdXMgPSAz IE9SIHRlbnRob3VzID0gNDIpOworU0VMRUNUICogRlJPTSB0ZW5rMQorICBXSEVSRSB0aG91 c2FuZCA9IDQyIEFORCAodGVudGhvdXMgPSAxIE9SIHRlbnRob3VzID0gMyBPUiB0ZW50aG91 cyA9IDQyKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIEZST00g dGVuazEKKyAgV0hFUkUgaHVuZHJlZCA9IDQyIEFORCAodGhvdXNhbmQgPSA0MiBPUiB0aG91 c2FuZCA9IDk5KTsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCisgIFdIRVJFIGh1bmRy ZWQgPSA0MiBBTkQgKHRob3VzYW5kID0gNDIgT1IgdGhvdXNhbmQgPSA5OSk7CisKK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCisgIFdIRVJFIHRo b3VzYW5kID0gNDIgQU5EICh0ZW50aG91cyA9IDEgT1IgdGVudGhvdXMgPSAzKSBPUiB0aG91 c2FuZCA9IDQxOworU0VMRUNUIGNvdW50KCopIEZST00gdGVuazEKKyAgV0hFUkUgdGhvdXNh bmQgPSA0MiBBTkQgKHRlbnRob3VzID0gMSBPUiB0ZW50aG91cyA9IDMpIE9SIHRob3VzYW5k ID0gNDE7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHRl bmsxCisgIFdIRVJFIGh1bmRyZWQgPSA0MiBBTkQgKHRob3VzYW5kID0gNDIgT1IgdGhvdXNh bmQgPSA5OSBPUiB0ZW50aG91cyA8IDIpIE9SIHRob3VzYW5kID0gNDE7CitTRUxFQ1QgY291 bnQoKikgRlJPTSB0ZW5rMQorICBXSEVSRSBodW5kcmVkID0gNDIgQU5EICh0aG91c2FuZCA9 IDQyIE9SIHRob3VzYW5kID0gOTkgT1IgdGVudGhvdXMgPCAyKSBPUiB0aG91c2FuZCA9IDQx OworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQor ICBXSEVSRSBodW5kcmVkID0gNDIgQU5EICh0aG91c2FuZCA9IDQyIE9SIHRob3VzYW5kID0g NDEgT1IgdGhvdXNhbmQgPSA5OSBBTkQgdGVudGhvdXMgPSAyKTsKK1NFTEVDVCBjb3VudCgq KSBGUk9NIHRlbmsxCisgIFdIRVJFIGh1bmRyZWQgPSA0MiBBTkQgKHRob3VzYW5kID0gNDIg T1IgdGhvdXNhbmQgPSA0MSBPUiB0aG91c2FuZCA9IDk5IEFORCB0ZW50aG91cyA9IDIpOwor UkVTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uOworCiAtLQogLS0gQ2hlY2sgYmVoYXZp b3Igd2l0aCBkdXBsaWNhdGUgaW5kZXggY29sdW1uIGNvbnRlbnRzCiAtLQpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvam9pbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9qb2luLnNxbAppbmRleCA4YThhNjNiZDJmLi41NWQ3ZTJhZTdkIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9qb2luLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9qb2luLnNxbApAQCAtMTQwOCw2ICsxNDA4LDE2IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikK IHNlbGVjdCAqIGZyb20gdGVuazEgYSBqb2luIHRlbmsxIGIgb24KICAgKGEudW5pcXVlMSA9 IDEgYW5kIGIudW5pcXVlMSA9IDIpIG9yCiAgICgoYS51bmlxdWUyID0gMyBvciBhLnVuaXF1 ZTIgPSA3KSBhbmQgYi5odW5kcmVkID0gNCk7CitTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0 aW9uID0gb247CitleHBsYWluIChjb3N0cyBvZmYpCitzZWxlY3QgKiBmcm9tIHRlbmsxIGEg am9pbiB0ZW5rMSBiIG9uCisgIChhLnVuaXF1ZTEgPSAxIGFuZCBiLnVuaXF1ZTEgPSAyKSBv cgorICAoKGEudW5pcXVlMiA9IDMgb3IgYS51bmlxdWUyID0gNykgYW5kIGIuaHVuZHJlZCA9 IDQpOworZXhwbGFpbiAoY29zdHMgb2ZmKQorc2VsZWN0ICogZnJvbSB0ZW5rMSBhIGpvaW4g dGVuazEgYiBvbgorICAoYS51bmlxdWUxIDwgMjAgb3IgYS51bmlxdWUxID0gMyBvciBhLnVu aXF1ZTEgPSAxIGFuZCBiLnVuaXF1ZTEgPSAyKSBvcgorICAoKGEudW5pcXVlMiA9IDMgb3Ig YS51bmlxdWUyID0gNykgYW5kIGIuaHVuZHJlZCA9IDQpOworUkVTRVQgZW5hYmxlX29yX3Ry YW5zZm9ybWF0aW9uOwogCiAtLQogLS0gdGVzdCBwbGFjZW1lbnQgb2YgbW92YWJsZSBxdWFs cyBpbiBhIHBhcmFtZXRlcml6ZWQgam9pbiB0cmVlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9wYXJ0aXRpb25fcHJ1bmUuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cGFydGl0aW9uX3BydW5lLnNxbAppbmRleCA3YmYzOTIwODI3Li4xZTI3MGFlOWMwIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25fcHJ1bmUuc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9wcnVuZS5zcWwKQEAgLTIxLDYgKzIx LDEyIEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIGlz IG5vdCBudWxsOwogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJl IGEgaXMgbnVsbDsKIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVy ZSBhID0gJ2EnIG9yIGEgPSAnYyc7CiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZy b20gbHAgd2hlcmUgYSBpcyBub3QgbnVsbCBhbmQgKGEgPSAnYScgb3IgYSA9ICdjJyk7CisK K1NFVCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24gPSBvbjsKK2V4cGxhaW4gKGNvc3RzIG9m Zikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhID0gJ2EnIG9yIGEgPSAnYyc7CitleHBsYWlu IChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbHAgd2hlcmUgYSBpcyBub3QgbnVsbCBhbmQg KGEgPSAnYScgb3IgYSA9ICdjJyk7CitSRVNFVCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb247 CisKIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIDw+ICdn JzsKIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIDw+ICdh JyBhbmQgYSA8PiAnZCc7CiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbHAg d2hlcmUgYSBub3QgaW4gKCdhJywgJ2QnKTsKQEAgLTk5LDYgKzEwNSwyMiBAQCBleHBsYWlu IChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPiAxIGFuZCBhID49MTU7 CS8qIHJscDMgb253YXJkcywgaQogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9t IHJscCB3aGVyZSBhID0gMSBhbmQgYSA9IDM7CS8qIGVtcHR5ICovCiBleHBsYWluIChjb3N0 cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIChhID0gMSBhbmQgYSA9IDMpIG9yIChh ID4gMSBhbmQgYSA9IDE1KTsKIAorCitTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uID0g b247CitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPSAx IG9yIGEgPSA3OworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVy ZSBhID0gMSBvciBiID0gJ2FiJzsKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJv bSBybHAgd2hlcmUgYSA+IDIwIGFuZCBhIDwgMjc7CitleHBsYWluIChjb3N0cyBvZmYpIHNl bGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPSAyOTsKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2Vs ZWN0ICogZnJvbSBybHAgd2hlcmUgYSA+PSAyOTsKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2Vs ZWN0ICogZnJvbSBybHAgd2hlcmUgYSA8IDEgb3IgKGEgPiAyMCBhbmQgYSA8IDI1KTsKK2V4 cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA9IDIwIG9yIGEg PSA0MDsKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAzIHdoZXJlIGEg PSAyMDsgICAvKiBlbXB0eSAqLworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9t IHJscCB3aGVyZSBhID4gMSBhbmQgYSA9IDEwOwkvKiBvbmx5IGRlZmF1bHQgKi8KK2V4cGxh aW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA+IDEgYW5kIGEgPj0x NTsJLyogcmxwMyBvbndhcmRzLCBpbmNsdWRpbmcgZGVmYXVsdCAqLworZXhwbGFpbiAoY29z dHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhID0gMSBhbmQgYSA9IDM7CS8qIGVt cHR5ICovCitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIChh ID0gMSBhbmQgYSA9IDMpIG9yIChhID4gMSBhbmQgYSA9IDE1KTsKK1JFU0VUIGVuYWJsZV9v cl90cmFuc2Zvcm1hdGlvbjsKKwogLS0gbXVsdGktY29sdW1uIGtleXMKIGNyZWF0ZSB0YWJs ZSBtYzNwIChhIGludCwgYiBpbnQsIGMgaW50KSBwYXJ0aXRpb24gYnkgcmFuZ2UgKGEsIGFi cyhiKSwgYyk7CiBjcmVhdGUgdGFibGUgbWMzcF9kZWZhdWx0IHBhcnRpdGlvbiBvZiBtYzNw IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC90aWRzY2FuLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RpZHNjYW4uc3FsCmluZGV4IDMxM2UwZmI5YjYu LjA0OTliZWRiOWUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RpZHNjYW4u c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RpZHNjYW4uc3FsCkBAIC0yMiw2ICsy MiwxMiBAQCBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgY3RpZCwgKiBGUk9NIHRpZHNj YW4gV0hFUkUgY3RpZCA9ICcoMCwyKScgT1IgJygwLDEpJyA9IGN0aWQ7CiBTRUxFQ1QgY3Rp ZCwgKiBGUk9NIHRpZHNjYW4gV0hFUkUgY3RpZCA9ICcoMCwyKScgT1IgJygwLDEpJyA9IGN0 aWQ7CiAKK1NFVCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24gPSBvbjsKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBjdGlkLCAqIEZST00gdGlkc2NhbiBXSEVSRSBjdGlkID0gJygw LDIpJyBPUiAnKDAsMSknID0gY3RpZDsKK1NFTEVDVCBjdGlkLCAqIEZST00gdGlkc2NhbiBX SEVSRSBjdGlkID0gJygwLDIpJyBPUiAnKDAsMSknID0gY3RpZDsKK1JFU0VUIGVuYWJsZV9v cl90cmFuc2Zvcm1hdGlvbjsKKwogLS0gY3RpZCA9IFNjYWxhckFycmF5T3AgLSBpbXBsZW1l bnRlZCBhcyB0aWRzY2FuCiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgY3RpZCwgKiBG Uk9NIHRpZHNjYW4gV0hFUkUgY3RpZCA9IEFOWShBUlJBWVsnKDAsMSknLCAnKDAsMiknXTo6 dGlkW10pOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3Qg Yi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCA4NmE5ODg2ZDRmLi5k OWE3ZDljMjg0IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMTY0Miw2ICsx NjQyLDggQEAgTnVtZXJpY1ZhcgogT01fdWludDMyCiBPUAogT1NBUGVyR3JvdXBTdGF0ZQor T3JDbGF1c2VHcm91cEVudHJ5CitPckNsYXVzZUdyb3VwS2V5CiBPU0FQZXJRdWVyeVN0YXRl CiBPU0luZm8KIE9TU0xDaXBoZXIKLS0gCjIuNDMuMAoK --------------TRlJb6xhAVg5P5y0KG0fw75Q--