From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 4490 invoked from network); 23 Feb 2022 00:01:35 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 23 Feb 2022 00:01:35 -0000 Content-Type: multipart/mixed; boundary="===============4326357967151946992==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_openshot=3A_update_to_2=2E6=2E1=2E?= To: ml@inbox.vuxu.org From: tibequadorian Reply-to: ml@inbox.vuxu.org Message-ID: Date: Wed, 23 Feb 2022 01:01:35 +0100 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============4326357967151946992== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IHRpYmVxdWFkb3JpYW4gYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL3Rp YmVxdWFkb3JpYW4vdm9pZC1wYWNrYWdlcyBvcGVuc2hvdApodHRwczovL2dpdGh1Yi5jb20vdm9p ZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzU3OTgKCm9wZW5zaG90OiB1cGRhdGUgdG8gMi42 LjEuCjwhLS0gVW5jb21tZW50IHJlbGV2YW50IHNlY3Rpb25zIGFuZCBkZWxldGUgb3B0aW9ucyB3 aGljaCBhcmUgbm90IGFwcGxpY2FibGUgLS0+DQoNCiMjIyMgVGVzdGluZyB0aGUgY2hhbmdlcw0K LSBJIHRlc3RlZCB0aGUgY2hhbmdlcyBpbiB0aGlzIFBSOiAqKmJyaWVmbHkqKg0KDQo8IS0tDQoj IyMjIE5ldyBwYWNrYWdlDQotIFRoaXMgbmV3IHBhY2thZ2UgY29uZm9ybXMgdG8gdGhlIFtxdWFs aXR5IHJlcXVpcmVtZW50c10oaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9ibG9iL21hc3Rlci9NYW51YWwubWQjcXVhbGl0eS1yZXF1aXJlbWVudHMpOiAqKllFUyoq fCoqTk8qKg0KLS0+DQoNCjwhLS0gTm90ZTogSWYgdGhlIGJ1aWxkIGlzIGxpa2VseSB0byB0YWtl IG1vcmUgdGhhbiAyIGhvdXJzLCBwbGVhc2UgW3NraXAgQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS92 b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI2NvbnRp bnVvdXMtaW50ZWdyYXRpb24pDQphbmQgdGVzdCBhdCBsZWFzdCBvbmUgbmF0aXZlIGJ1aWxkIGFu ZCwgaWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUgY3Jvc3MgYnVpbGQuDQpJZ25vcmUgdGhpcyBz ZWN0aW9uIGlmIHRoaXMgUFIgaXMgbm90IHNraXBwaW5nIENJLg0KLS0+DQo8IS0tIA0KIyMjIyBM b2NhbCBidWlsZCB0ZXN0aW5nDQotIEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZvciBteSBuYXRp dmUgYXJjaGl0ZWN0dXJlLCAoQVJDSC1MSUJDKQ0KLSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBm b3IgdGhlc2UgYXJjaGl0ZWN0dXJlcyAoaWYgc3VwcG9ydGVkLiBtYXJrIGNyb3NzYnVpbGRzKToN CiAgLSBhYXJjaDY0LW11c2wNCiAgLSBhcm12N2wNCiAgLSBhcm12NmwtbXVzbA0KLS0+DQoKCkEg cGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2Fn ZXMvcHVsbC8zNTc5OC5wYXRjaCBpcyBhdHRhY2hlZA== --===============4326357967151946992== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-openshot-35798.patch" RnJvbSA1ZWY5MjI1Njk4OTI3NTg0MWU4NWYyOTdmNWJmMGIwZTRlMmIxZjRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB0aWJlcXVhZG9yaWFuIDx0aWJlcXVhZG9yaWFuQHBvc3Rlby5k ZT4KRGF0ZTogV2VkLCAyMyBGZWIgMjAyMiAwMDo0MTozOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MS8zXSBsaWJvcGVuc2hvdC1hdWRpbzogdXBkYXRlIHRvIDAuMi4yLgoKLS0tCiBjb21tb24vc2hs aWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogLi4uL2xpYm9wZW5z aG90LWF1ZGlvL3BhdGNoZXMvZml4LW11c2wucGF0Y2ggIHwgODYgKysrKysrKysrKy0tLS0tLS0t LQogc3JjcGtncy9saWJvcGVuc2hvdC1hdWRpby90ZW1wbGF0ZSAgICAgICAgICAgIHwgIDcgKy0K IDMgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggMzJiZWZjOTJkNjQx Li5jNjZiNGZiZTY3MDAgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3No bGlicwpAQCAtMjU5Nyw3ICsyNTk3LDcgQEAgbGliYXgyNWlvLnNvLjAgbGliYXgyNS0wLjAuMTJy YzRfMQogbGlibWlsbC5zby4xOCBsaWJtaWxsLTEuMTRfMQogbGliZ2VzLTEuMC5zby4wIGdzdDEt ZWRpdGluZy1zZXJ2aWNlcy0xLjYuMl8xCiBsaWJ5a25lb21nci5zby4wIGxpYnlrbmVvbWdyLTAu MS44XzEKLWxpYm9wZW5zaG90LWF1ZGlvLnNvLjcgbGlib3BlbnNob3QtYXVkaW8tMC4yLjBfMQor bGlib3BlbnNob3QtYXVkaW8uc28uOCBsaWJvcGVuc2hvdC1hdWRpby0wLjIuMl8xCiBsaWJvcGVu c2hvdC5zby4xOSBsaWJvcGVuc2hvdC0wLjIuNV8zCiBsaWJwcXh4LTYuMy5zbyBsaWJwcXh4LTYu My4zXzEKIGxpYm5kcGkuc28uMyBuZHBpLTMuNF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYm9w ZW5zaG90LWF1ZGlvL3BhdGNoZXMvZml4LW11c2wucGF0Y2ggYi9zcmNwa2dzL2xpYm9wZW5zaG90 LWF1ZGlvL3BhdGNoZXMvZml4LW11c2wucGF0Y2gKaW5kZXggYjVmMTc4ZDkyZDhhLi41MzIyNDhj ODYyMTcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGlib3BlbnNob3QtYXVkaW8vcGF0Y2hlcy9maXgt bXVzbC5wYXRjaAorKysgYi9zcmNwa2dzL2xpYm9wZW5zaG90LWF1ZGlvL3BhdGNoZXMvZml4LW11 c2wucGF0Y2gKQEAgLTEsNDAgKzEsNDYgQEAKLS0tLSBhL0p1Y2VMaWJyYXJ5Q29kZS9tb2R1bGVz L2p1Y2VfY29yZS9qdWNlX2NvcmUuY3BwCTIwMTYtMDgtMzAgMDY6MjQ6MjcuMDAwMDAwMDAwICsw MjAwCi0rKysgYi9KdWNlTGlicmFyeUNvZGUvbW9kdWxlcy9qdWNlX2NvcmUvanVjZV9jb3JlLmNw cAkyMDE2LTEyLTEyIDE0OjUzOjIzLjUzMjYxMzM3OCArMDEwMAotQEAgLTk3LDcgKzk3LDcgQEAK LSAgI2luY2x1ZGUgPG5ldC9pZi5oPg0KLSAgI2luY2x1ZGUgPHN5cy9pb2N0bC5oPg0KLSANCi0t ICNpZiAhIEpVQ0VfQU5EUk9JRA0KLSsgI2lmICEgSlVDRV9BTkRST0lEICYmIGRlZmluZWQoX19H TElCQ19fKQ0KLSAgICNpbmNsdWRlIDxleGVjaW5mby5oPg0KLSAgI2VuZGlmDQotICNlbmRpZg0K LS0tLSBhL0p1Y2VMaWJyYXJ5Q29kZS9tb2R1bGVzL2p1Y2VfY29yZS9zeXN0ZW0vanVjZV9TeXN0 ZW1TdGF0cy5jcHAJMjAxNi0wOC0zMCAwNjoyNDoyNy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL0p1 Y2VMaWJyYXJ5Q29kZS9tb2R1bGVzL2p1Y2VfY29yZS9zeXN0ZW0vanVjZV9TeXN0ZW1TdGF0cy5j cHAJMjAxNi0xMi0xMiAxNDo1ODozNS45ODg5ODYwMzAgKzAxMDAKLUBAIC0xMzQsNiArMTM0LDgg QEAKLSAgICAgICAgIH0NCi0gICAgIH0NCi0gDQotKyAgICNlbGlmICFkZWZpbmVkKF9fR0xJQkNf XykNCi0rICAgIGphc3NlcnRmYWxzZTsgLy8gc29ycnksIG5vdCBpbXBsZW1lbnRlZCB5ZXQhDQot ICAgICNlbHNlDQotICAgICB2b2lkKiBzdGFja1sxMjhdOw0KLSAgICAgaW50IGZyYW1lcyA9IGJh Y2t0cmFjZSAoc3RhY2ssIG51bUVsZW1lbnRzSW5BcnJheSAoc3RhY2spKTsNCi0tLS0gYS9KdWNl TGlicmFyeUNvZGUvbW9kdWxlcy9qdWNlX2NvcmUvbmF0aXZlL2p1Y2VfbGludXhfU3lzdGVtU3Rh dHMuY3BwCTIwMTYtMDgtMzAgMDY6MjQ6MjcuMDAwMDAwMDAwICswMjAwCi0rKysgYi9KdWNlTGli cmFyeUNvZGUvbW9kdWxlcy9qdWNlX2NvcmUvbmF0aXZlL2p1Y2VfbGludXhfU3lzdGVtU3RhdHMu Y3BwCTIwMTYtMTItMTIgMTU6MDc6MzUuMDQ2NjA3Nzg4ICswMTAwCi1AQCAtMTQyLDggKzE0Miwx NSBAQAotICAgICByZXR1cm4gcmVzdWx0Ow0KLSB9DQotIA0KLSsjaWYgZGVmaW5lZChfX0dMSUJD X18pDQotIFN0cmluZyBTeXN0ZW1TdGF0czo6Z2V0VXNlckxhbmd1YWdlKCkgICAgeyByZXR1cm4g Z2V0TG9jYWxlVmFsdWUgKF9OTF9JREVOVElGSUNBVElPTl9MQU5HVUFHRSk7IH0NCi0gU3RyaW5n IFN5c3RlbVN0YXRzOjpnZXRVc2VyUmVnaW9uKCkgICAgICB7IHJldHVybiBnZXRMb2NhbGVWYWx1 ZSAoX05MX0lERU5USUZJQ0FUSU9OX1RFUlJJVE9SWSk7IH0NCi0rI2Vsc2UNCi0rLy8gVGhlIGlk ZW50aWZpZXJzIF9OTF9JTkRFTlRJRklDQVRJT05fTEFOR1VBR0UgYW5kIF9URVJSSVJUT1JZIGFy ZSBub3QgZGVmaW5lZCBpbiBtdXNsIGxpYmMuDQotKy8vIFRPRE86IEZpbmQgYSBiZXR0ZXIgZml4 IHRoYW4ganVzdCByZXR1cm5pbmcgbm9uc2Vuc2UuIEluc3BlY3QgZW52KCJMQU5HIikgcGVyaGFw cz8NCi0rU3RyaW5nIFN5c3RlbVN0YXRzOjpnZXRVc2VyTGFuZ3VhZ2UoKSAgICB7IHJldHVybiBT dHJpbmcoImVuIik7IH0NCi0rU3RyaW5nIFN5c3RlbVN0YXRzOjpnZXRVc2VyUmVnaW9uKCkgICAg ICB7IHJldHVybiBTdHJpbmcoIlVTIik7IH0NCi0rI2VuZGlmDQotIFN0cmluZyBTeXN0ZW1TdGF0 czo6Z2V0RGlzcGxheUxhbmd1YWdlKCkgeyByZXR1cm4gZ2V0VXNlckxhbmd1YWdlKCkgKyAiLSIg KyBnZXRVc2VyUmVnaW9uKCk7IH0NCi0gDQotIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorZGlm ZiAtLWdpdCBhL0p1Y2VMaWJyYXJ5Q29kZS9tb2R1bGVzL2p1Y2VfY29yZS9qdWNlX2NvcmUuY3Bw IGIvSnVjZUxpYnJhcnlDb2RlL21vZHVsZXMvanVjZV9jb3JlL2p1Y2VfY29yZS5jcHAKK2luZGV4 IDhiYWM4MTIuLmUyM2I0MjIgMTAwNjQ0CistLS0gYS9KdWNlTGlicmFyeUNvZGUvbW9kdWxlcy9q dWNlX2NvcmUvanVjZV9jb3JlLmNwcAorKysrIGIvSnVjZUxpYnJhcnlDb2RlL21vZHVsZXMvanVj ZV9jb3JlL2p1Y2VfY29yZS5jcHAKK0BAIC05Miw3ICs5Miw3IEBACisgICNpbmNsdWRlIDxuZXQv aWYuaD4KKyAgI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorIAorLSAjaWYgISBKVUNFX0FORFJPSUQK KysgI2lmICEgSlVDRV9BTkRST0lEICYmIGRlZmluZWQoX19HTElCQ19fKQorICAgI2luY2x1ZGUg PGV4ZWNpbmZvLmg+CisgICNlbmRpZgorICNlbmRpZgorZGlmZiAtLWdpdCBhL0p1Y2VMaWJyYXJ5 Q29kZS9tb2R1bGVzL2p1Y2VfY29yZS9uYXRpdmUvanVjZV9saW51eF9TeXN0ZW1TdGF0cy5jcHAg Yi9KdWNlTGlicmFyeUNvZGUvbW9kdWxlcy9qdWNlX2NvcmUvbmF0aXZlL2p1Y2VfbGludXhfU3lz dGVtU3RhdHMuY3BwCitpbmRleCAyZDdmYWEzLi5mMTMyNDA1IDEwMDY0NAorLS0tIGEvSnVjZUxp YnJhcnlDb2RlL21vZHVsZXMvanVjZV9jb3JlL25hdGl2ZS9qdWNlX2xpbnV4X1N5c3RlbVN0YXRz LmNwcAorKysrIGIvSnVjZUxpYnJhcnlDb2RlL21vZHVsZXMvanVjZV9jb3JlL25hdGl2ZS9qdWNl X2xpbnV4X1N5c3RlbVN0YXRzLmNwcAorQEAgLTEzOSw4ICsxMzksMTUgQEAgc3RhdGljIFN0cmlu ZyBnZXRMb2NhbGVWYWx1ZSAobmxfaXRlbSBrZXkpCisgICAgIHJldHVybiByZXN1bHQ7CisgfQor IAorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyBTdHJpbmcgU3lzdGVtU3RhdHM6OmdldFVzZXJM YW5ndWFnZSgpICAgICB7IHJldHVybiBnZXRMb2NhbGVWYWx1ZSAoX05MX0lERU5USUZJQ0FUSU9O X0xBTkdVQUdFKTsgfQorIFN0cmluZyBTeXN0ZW1TdGF0czo6Z2V0VXNlclJlZ2lvbigpICAgICAg IHsgcmV0dXJuIGdldExvY2FsZVZhbHVlIChfTkxfSURFTlRJRklDQVRJT05fVEVSUklUT1JZKTsg fQorKyNlbHNlCisrLy8gVGhlIGlkZW50aWZpZXJzIF9OTF9JTkRFTlRJRklDQVRJT05fTEFOR1VB R0UgYW5kIF9URVJSSVJUT1JZIGFyZSBub3QgZGVmaW5lZCBpbiBtdXNsIGxpYmMuCisrLy8gVE9E TzogRmluZCBhIGJldHRlciBmaXggdGhhbiBqdXN0IHJldHVybmluZyBub25zZW5zZS4gSW5zcGVj dCBlbnYoIkxBTkciKSBwZXJoYXBzPworK1N0cmluZyBTeXN0ZW1TdGF0czo6Z2V0VXNlckxhbmd1 YWdlKCkgICAgIHsgcmV0dXJuIFN0cmluZygiZW4iKTsgfQorK1N0cmluZyBTeXN0ZW1TdGF0czo6 Z2V0VXNlclJlZ2lvbigpICAgICAgIHsgcmV0dXJuIFN0cmluZygiVVMiKTsgfQorKyNlbmRpZgor IFN0cmluZyBTeXN0ZW1TdGF0czo6Z2V0RGlzcGxheUxhbmd1YWdlKCkgIHsgcmV0dXJuIGdldFVz ZXJMYW5ndWFnZSgpICsgIi0iICsgZ2V0VXNlclJlZ2lvbigpOyB9CisgCisgLy89PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KK2RpZmYgLS1naXQgYS9KdWNlTGlicmFyeUNvZGUvbW9kdWxlcy9qdWNlX2Nv cmUvc3lzdGVtL2p1Y2VfU3lzdGVtU3RhdHMuY3BwIGIvSnVjZUxpYnJhcnlDb2RlL21vZHVsZXMv anVjZV9jb3JlL3N5c3RlbS9qdWNlX1N5c3RlbVN0YXRzLmNwcAoraW5kZXggNzU3ZWEyNC4uNmI2 MWUxNiAxMDA2NDQKKy0tLSBhL0p1Y2VMaWJyYXJ5Q29kZS9tb2R1bGVzL2p1Y2VfY29yZS9zeXN0 ZW0vanVjZV9TeXN0ZW1TdGF0cy5jcHAKKysrKyBiL0p1Y2VMaWJyYXJ5Q29kZS9tb2R1bGVzL2p1 Y2VfY29yZS9zeXN0ZW0vanVjZV9TeXN0ZW1TdGF0cy5jcHAKK0BAIC0xMzgsNyArMTM4LDcgQEAg U3RyaW5nIFN5c3RlbVN0YXRzOjpnZXRTdGFja0JhY2t0cmFjZSgpCisgeworICAgICBTdHJpbmcg cmVzdWx0OworIAorLSAgICNpZiBKVUNFX0FORFJPSUQgfHwgSlVDRV9NSU5HVworKyAgICNpZiBK VUNFX0FORFJPSUQgfHwgSlVDRV9NSU5HVyB8fCAhZGVmaW5lZChfX0dMSUJDX18pCisgICAgIGph c3NlcnRmYWxzZTsgLy8gc29ycnksIG5vdCBpbXBsZW1lbnRlZCB5ZXQhCisgCisgICAgI2VsaWYg SlVDRV9XSU5ET1dTCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYm9wZW5zaG90LWF1ZGlvL3RlbXBs YXRlIGIvc3JjcGtncy9saWJvcGVuc2hvdC1hdWRpby90ZW1wbGF0ZQppbmRleCA1NmMzMzBlYWZj ZjEuLjI1NGY4YjYyODNiZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9saWJvcGVuc2hvdC1hdWRpby90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYm9wZW5zaG90LWF1ZGlvL3RlbXBsYXRlCkBAIC0xLDYg KzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGlib3BlbnNob3QtYXVkaW8nCiBwa2duYW1l PWxpYm9wZW5zaG90LWF1ZGlvCi12ZXJzaW9uPTAuMi4wCit2ZXJzaW9uPTAuMi4yCiByZXZpc2lv bj0xCiBidWlsZF9zdHlsZT1jbWFrZQogaG9zdG1ha2VkZXBlbmRzPSJkb3h5Z2VuIgpAQCAtMTEs NyArMTEsNyBAQCBtYWludGFpbmVyPSJTcGVuY2VyIEhpbGwgPHNwZW5jZXJuaDc3QGdtYWlsLmNv bT4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHVi LmNvbS9PcGVuU2hvdC9saWJvcGVuc2hvdC1hdWRpbyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRo dWIuY29tL09wZW5TaG90L2xpYm9wZW5zaG90LWF1ZGlvL2FyY2hpdmUvdiR7dmVyc2lvbn0udGFy Lmd6IgotY2hlY2tzdW09OTM3ZmY0ZjFjMmRmYjhhYjVkNTZhZDg1YmVhY2FhMjlkZmQ1YTc5YWYw ZDljZjY0NzM4NjAzNGZlOTg4MjMwOQorY2hlY2tzdW09NjZiZWRmZGEwZDhkNDMwNTk4YjIxYmMy ZGRlNmMwMDE2YTc1OGE2YzgzNDY3ZDAyNzNhOWQ2OTJkZTEwYmFhZgogCiBpZiBbICIkWEJQU19U QVJHRVRfTk9fQVRPTUlDOCIgXTsgdGhlbgogCW1ha2VkZXBlbmRzKz0iIGxpYmF0b21pYy1kZXZl bCIKQEAgLTIwLDkgKzIwLDEwIEBAIGZpCiAKIGxpYm9wZW5zaG90LWF1ZGlvLWRldmVsX3BhY2th Z2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgotCWRlcGVuZHMrPSIg JHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCWRlcGVuZHMrPSIgJHtzb3Vy Y2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IGFsc2EtbGliLWRldmVsIHpsaWItZGV2ZWwi CiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCisJCXZtb3ZlIHVzci9saWIv Y21ha2UKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAl9CiB9CgpGcm9tIDc1ZjgxNDViM2YwMTE4 MjY0NWYxZGY1NTc5MWE1ZWQ4NjRiMzQ3ZDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IHRpYmVxdWFkb3JpYW4gPHRpYmVxdWFkb3JpYW5AcG9zdGVvLmRlPgpEYXRlOiBXZWQsIDIzIEZl YiAyMDIyIDAwOjQyOjM3ICswMTAwClN1YmplY3Q6IFtQQVRDSCAyLzNdIGxpYm9wZW5zaG90OiB1 cGRhdGUgdG8gMC4yLjcuCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAyICstCiAuLi4vcGF0Y2hlcy9BVl9HRVRfQ09ERUNfQ09OVEVYVC1tYWNy by5wYXRjaCAgfCAzNCAtLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2xpYm9wZW5zaG90L3Bh dGNoZXMvZml4LW11c2wucGF0Y2ggICAgfCAzNCArKysrKysrKysrKysrKysrKysrCiBzcmNwa2dz L2xpYm9wZW5zaG90L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgfCAxNiArKysrKy0tLS0KIDQg ZmlsZXMgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwgNDEgZGVsZXRpb25zKC0pCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9saWJvcGVuc2hvdC9wYXRjaGVzL0FWX0dFVF9DT0RFQ19DT05U RVhULW1hY3JvLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saWJvcGVuc2hvdC9w YXRjaGVzL2ZpeC1tdXNsLnBhdGNoCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1v bi9zaGxpYnMKaW5kZXggYzY2YjRmYmU2NzAwLi5kMzM5MTE1ZGRhMzkgMTAwNjQ0Ci0tLSBhL2Nv bW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMjU5OCw3ICsyNTk4LDcgQEAgbGli bWlsbC5zby4xOCBsaWJtaWxsLTEuMTRfMQogbGliZ2VzLTEuMC5zby4wIGdzdDEtZWRpdGluZy1z ZXJ2aWNlcy0xLjYuMl8xCiBsaWJ5a25lb21nci5zby4wIGxpYnlrbmVvbWdyLTAuMS44XzEKIGxp Ym9wZW5zaG90LWF1ZGlvLnNvLjggbGlib3BlbnNob3QtYXVkaW8tMC4yLjJfMQotbGlib3BlbnNo b3Quc28uMTkgbGlib3BlbnNob3QtMC4yLjVfMworbGlib3BlbnNob3Quc28uMjEgbGlib3BlbnNo b3QtMC4yLjdfMQogbGlicHF4eC02LjMuc28gbGlicHF4eC02LjMuM18xCiBsaWJuZHBpLnNvLjMg bmRwaS0zLjRfMQogbGlibG9nLnNvIGFuZHJvaWQtc3R1ZGlvLTMuMC4xXzEKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvbGlib3BlbnNob3QvcGF0Y2hlcy9BVl9HRVRfQ09ERUNfQ09OVEVYVC1tYWNyby5w YXRjaCBiL3NyY3BrZ3MvbGlib3BlbnNob3QvcGF0Y2hlcy9BVl9HRVRfQ09ERUNfQ09OVEVYVC1t YWNyby5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTZjNjQwYThlMTFlLi4w MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9saWJvcGVuc2hvdC9wYXRjaGVzL0FWX0dFVF9DT0RF Q19DT05URVhULW1hY3JvLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotLS0t IGEvaW5jbHVkZS9GRm1wZWdVdGlsaXRpZXMuaAkyMDIwLTAzLTAzIDA5OjAwOjA2LjAwMDAwMDAw MCArMDEwMAotKysrIGIvaW5jbHVkZS9GRm1wZWdVdGlsaXRpZXMuaAkyMDIwLTA4LTE5IDE3OjA0 OjU4LjUzNTgwNjc0NCArMDIwMAotQEAgLTE2MywxMSArMTYzLDEwIEBACi0gCQkjZGVmaW5lIEFW X0ZSRUVfQ09OVEVYVChhdl9jb250ZXh0KSBhdmNvZGVjX2ZyZWVfY29udGV4dCgmYXZfY29udGV4 dCkKLSAJCSNkZWZpbmUgQVZfR0VUX0NPREVDX1RZUEUoYXZfc3RyZWFtKSBhdl9zdHJlYW0tPmNv ZGVjcGFyLT5jb2RlY190eXBlCi0gCQkjZGVmaW5lIEFWX0ZJTkRfREVDT0RFUl9DT0RFQ19JRChh dl9zdHJlYW0pIGF2X3N0cmVhbS0+Y29kZWNwYXItPmNvZGVjX2lkCi0tCQlhdXRvIEFWX0dFVF9D T0RFQ19DT05URVhUID0gW10oQVZTdHJlYW0qIGF2X3N0cmVhbSwgQVZDb2RlYyogYXZfY29kZWMp IHsgXAotLQkJCUFWQ29kZWNDb250ZXh0ICpjb250ZXh0ID0gYXZjb2RlY19hbGxvY19jb250ZXh0 Myhhdl9jb2RlYyk7IFwKLS0JCQlhdmNvZGVjX3BhcmFtZXRlcnNfdG9fY29udGV4dChjb250ZXh0 LCBhdl9zdHJlYW0tPmNvZGVjcGFyKTsgXAotLQkJCXJldHVybiBjb250ZXh0OyBcCi0tCQl9Owot KwkJI2RlZmluZSBBVl9HRVRfQ09ERUNfQ09OVEVYVChhdl9zdHJlYW0sIGF2X2NvZGVjKSBcCi0r CQkJKHsgQVZDb2RlY0NvbnRleHQgKmNvbnRleHQgPSBhdmNvZGVjX2FsbG9jX2NvbnRleHQzKGF2 X2NvZGVjKTsgXAotKwkJCSAgIGF2Y29kZWNfcGFyYW1ldGVyc190b19jb250ZXh0KGNvbnRleHQs IGF2X3N0cmVhbS0+Y29kZWNwYXIpOyBcCi0rCQkJICAgY29udGV4dDsgfSkKLSAJCSNkZWZpbmUg QVZfR0VUX0NPREVDX1BBUl9DT05URVhUKGF2X3N0cmVhbSwgYXZfY29kZWMpIGF2X2NvZGVjOwot IAkJI2RlZmluZSBBVl9HRVRfQ09ERUNfRlJPTV9TVFJFQU0oYXZfc3RyZWFtLGNvZGVjX2luKQot IAkJI2RlZmluZSBBVl9HRVRfQ09ERUNfQVRUUklCVVRFUyhhdl9zdHJlYW0sIGF2X2NvbnRleHQp IGF2X3N0cmVhbS0+Y29kZWNwYXIKLUBAIC0xOTksMTEgKzE5OCwxMCBAQAotIAkJI2RlZmluZSBB Vl9GUkVFX0NPTlRFWFQoYXZfY29udGV4dCkgYXZjb2RlY19mcmVlX2NvbnRleHQoJmF2X2NvbnRl eHQpCi0gCQkjZGVmaW5lIEFWX0dFVF9DT0RFQ19UWVBFKGF2X3N0cmVhbSkgYXZfc3RyZWFtLT5j b2RlY3Bhci0+Y29kZWNfdHlwZQotIAkJI2RlZmluZSBBVl9GSU5EX0RFQ09ERVJfQ09ERUNfSUQo YXZfc3RyZWFtKSBhdl9zdHJlYW0tPmNvZGVjcGFyLT5jb2RlY19pZAotLQkJYXV0byBBVl9HRVRf Q09ERUNfQ09OVEVYVCA9IFtdKEFWU3RyZWFtKiBhdl9zdHJlYW0sIEFWQ29kZWMqIGF2X2NvZGVj KSB7IFwKLS0JCQlBVkNvZGVjQ29udGV4dCAqY29udGV4dCA9IGF2Y29kZWNfYWxsb2NfY29udGV4 dDMoYXZfY29kZWMpOyBcCi0tCQkJYXZjb2RlY19wYXJhbWV0ZXJzX3RvX2NvbnRleHQoY29udGV4 dCwgYXZfc3RyZWFtLT5jb2RlY3Bhcik7IFwKLS0JCQlyZXR1cm4gY29udGV4dDsgXAotLQkJfTsK LSsJCSNkZWZpbmUgQVZfR0VUX0NPREVDX0NPTlRFWFQoYXZfc3RyZWFtLCBhdl9jb2RlYykgXAot KwkJCSh7IEFWQ29kZWNDb250ZXh0ICpjb250ZXh0ID0gYXZjb2RlY19hbGxvY19jb250ZXh0Myhh dl9jb2RlYyk7IFwKLSsJCQkgICBhdmNvZGVjX3BhcmFtZXRlcnNfdG9fY29udGV4dChjb250ZXh0 LCBhdl9zdHJlYW0tPmNvZGVjcGFyKTsgXAotKwkJCSAgIGNvbnRleHQ7IH0pCi0gCQkjZGVmaW5l IEFWX0dFVF9DT0RFQ19QQVJfQ09OVEVYVChhdl9zdHJlYW0sIGF2X2NvZGVjKSBhdl9jb2RlYzsK LSAJCSNkZWZpbmUgQVZfR0VUX0NPREVDX0ZST01fU1RSRUFNKGF2X3N0cmVhbSxjb2RlY19pbikK LSAJCSNkZWZpbmUgQVZfR0VUX0NPREVDX0FUVFJJQlVURVMoYXZfc3RyZWFtLCBhdl9jb250ZXh0 KSBhdl9zdHJlYW0tPmNvZGVjcGFyCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYm9wZW5zaG90L3Bh dGNoZXMvZml4LW11c2wucGF0Y2ggYi9zcmNwa2dzL2xpYm9wZW5zaG90L3BhdGNoZXMvZml4LW11 c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42NzQyNGE4 NDgwODYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYm9wZW5zaG90L3BhdGNoZXMvZml4 LW11c2wucGF0Y2gKQEAgLTAsMCArMSwzNCBAQAorZGlmZiAtLWdpdCBhL2V4YW1wbGVzL0NNYWtl TGlzdHMudHh0IGIvZXhhbXBsZXMvQ01ha2VMaXN0cy50eHQKK2luZGV4IGJkZTc0NGQ3Li5kMDc5 MjRmYiAxMDA2NDQKKy0tLSBhL2V4YW1wbGVzL0NNYWtlTGlzdHMudHh0CisrKysgYi9leGFtcGxl cy9DTWFrZUxpc3RzLnR4dAorQEAgLTM5LDExICszOSwxOSBAQCBmaWxlKFRPX05BVElWRV9QQVRI ICIke1BST0pFQ1RfU09VUkNFX0RJUn0vZXhhbXBsZXMvIiBURVNUX01FRElBX1BBVEgpCisgdGFy Z2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMob3BlbnNob3QtZXhhbXBsZSBQUklWQVRFCisgCS1EVEVT VF9NRURJQV9QQVRIPSIke1RFU1RfTUVESUFfUEFUSH0iICkKKyAKKytmaW5kX2xpYnJhcnkoRVhF Q0lORk9fRk9VTkQgZXhlY2luZm8pCisrCisgIyBMaW5rIHRlc3QgZXhlY3V0YWJsZSB0byB0aGUg bmV3IGxpYnJhcnkKKyB0YXJnZXRfbGlua19saWJyYXJpZXMob3BlbnNob3QtZXhhbXBsZSBvcGVu c2hvdCkKKytpZihFWEVDSU5GT19GT1VORCkKKysJdGFyZ2V0X2xpbmtfbGlicmFyaWVzKG9wZW5z aG90LWV4YW1wbGUgZXhlY2luZm8pCisrZW5kaWYoKQorIAorIGFkZF9leGVjdXRhYmxlKG9wZW5z aG90LWh0bWwtZXhhbXBsZSBFeGFtcGxlSHRtbC5jcHApCisgdGFyZ2V0X2xpbmtfbGlicmFyaWVz KG9wZW5zaG90LWh0bWwtZXhhbXBsZSBvcGVuc2hvdCBRdDU6Okd1aSkKKytpZihFWEVDSU5GT19G T1VORCkKKysJdGFyZ2V0X2xpbmtfbGlicmFyaWVzKG9wZW5zaG90LWh0bWwtZXhhbXBsZSBleGVj aW5mbykKKytlbmRpZigpCisgCisgIyMjIyMjIyMjIyMjIyMjIFBMQVlFUiBFWEVDVVRBQkxFICMj IyMjIyMjIyMjIyMjIyMKKyAjIENyZWF0ZSB0ZXN0IGV4ZWN1dGFibGUKK0BAIC01Myw2ICs2MSw5 IEBAIHNldF90YXJnZXRfcHJvcGVydGllcyhvcGVuc2hvdC1wbGF5ZXIgUFJPUEVSVElFUyBBVVRP TU9DIE9OKQorIAorICMgTGluayB0ZXN0IGV4ZWN1dGFibGUgdG8gdGhlIG5ldyBsaWJyYXJ5Cisg dGFyZ2V0X2xpbmtfbGlicmFyaWVzKG9wZW5zaG90LXBsYXllciBvcGVuc2hvdCkKKytpZihFWEVD SU5GT19GT1VORCkKKysJdGFyZ2V0X2xpbmtfbGlicmFyaWVzKG9wZW5zaG90LXBsYXllciBleGVj aW5mbykKKytlbmRpZigpCisgCisgIyMjIyMjIyMjIyMjIyMjIFRFU1QgQkxBQ0tNQUdJQyBDQVBU VVJFIEFQUCAjIyMjIyMjIyMjIyMjIyMjCisgaWYgKEJMQUNLTUFHSUNfRk9VTkQpCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xpYm9wZW5zaG90L3RlbXBsYXRlIGIvc3JjcGtncy9saWJvcGVuc2hvdC90 ZW1wbGF0ZQppbmRleCBiNTk0NzIxMDViMzUuLjI3NGYwOGU5OTI1MSAxMDA2NDQKLS0tIGEvc3Jj cGtncy9saWJvcGVuc2hvdC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYm9wZW5zaG90L3RlbXBs YXRlCkBAIC0xLDExICsxLDExIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJvcGVuc2hvdCcK IHBrZ25hbWU9bGlib3BlbnNob3QKLXZlcnNpb249MC4yLjUKLXJldmlzaW9uPTYKLWFyY2hzPSJp Njg2IHg4Nl82NCBwcGM2NGxlIgordmVyc2lvbj0wLjIuNworcmV2aXNpb249MQogYnVpbGRfc3R5 bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSItREVOQUJMRV9SVUJZPU9GRiAtRFVTRV9TWVNURU1f SlNPTkNQUD1PTiIgIyBCdWlsZHMgZmFpbCB3aXRoIFJ1YnktMi40LjEKLWhvc3RtYWtlZGVwZW5k cz0ic3dpZyBkb3h5Z2VuIHJ1YnkgcHl0aG9uMyBwa2ctY29uZmlnIgorIyBCdWlsZHMgZmFpbCB3 aXRoIFJ1YnktMi40LjEKK2NvbmZpZ3VyZV9hcmdzPSItREVOQUJMRV9SVUJZPU9GRiAtRFVTRV9T WVNURU1fSlNPTkNQUD1PTiIKK2hvc3RtYWtlZGVwZW5kcz0ic3dpZyBkb3h5Z2VuIHJ1YnkgcHl0 aG9uMyBwa2ctY29uZmlnIHF0NS1xbWFrZSBxdDUtaG9zdC10b29scyIKIG1ha2VkZXBlbmRzPSJw eXRob24zLWRldmVsIGZmbXBlZy1kZXZlbCBsaWJtYWdpY2stZGV2ZWwgcXQ1LWRldmVsIGxpYmdv bXAtZGV2ZWwKICBsaWJvcGVuc2hvdC1hdWRpby1kZXZlbCBxdDUtbXVsdGltZWRpYS1kZXZlbCB1 bml0dGVzdC1jcHAgemVyb21xLWRldmVsIGNwcHptcQogIGpzb25jcHAtZGV2ZWwiCkBAIC0xNSwx MCArMTUsMTQgQEAgbWFpbnRhaW5lcj0iU3BlbmNlciBIaWxsIDxzcGVuY2Vybmg3N0BnbWFpbC5j b20+IgogbGljZW5zZT0iTEdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRo dWIuY29tL09wZW5TaG90L2xpYm9wZW5zaG90IgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5j b20vT3BlblNob3QvbGlib3BlbnNob3QvYXJjaGl2ZS92JHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVj a3N1bT04YWU3ZDIyNmZiZDJlZmJjODRkYTRmN2Q5ZDhjN2YzY2M5NjE2ZTRkZTQ2ZTEyMzNlM2Iw YTg0YWMwYTQyOWJjCitjaGVja3N1bT01NjhlYWI2ZDY5ZDQ2OWM1Zjc0NWYwZTI1Mzg3Y2E1ZTAw MGY3YzI4YmU0ODQxN2IwZDc3NzA1NzdhYzc0YTI4CiAjIEZJWE1FOiB0ZXN0cyBzZWdmYXVsdAog bWFrZV9jaGVjaz1leHRlbmRlZAogCitpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSBtdXNsIF07 IHRoZW4KKwltYWtlZGVwZW5kcys9IiBsaWJleGVjaW5mby1kZXZlbCIKK2ZpCisKIGxpYm9wZW5z aG90LWRldmVsX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVz IgogCXBrZ19pbnN0YWxsKCkgewoKRnJvbSBiMGZlZDk3OTIwMmI1ZmY0ZTM4OTQwN2JkMzE0ZDdj OWM2YWQwYWZmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiB0aWJlcXVhZG9yaWFuIDx0 aWJlcXVhZG9yaWFuQHBvc3Rlby5kZT4KRGF0ZTogV2VkLCAyMyBGZWIgMjAyMiAwMDo0Mjo1MSAr MDEwMApTdWJqZWN0OiBbUEFUQ0ggMy8zXSBvcGVuc2hvdDogdXBkYXRlIHRvIDIuNi4xLgoKLS0t CiAuLi4vb3BlbnNob3QvcGF0Y2hlcy8wMDAxLXZpZGVvX3dpZGdldC5wYXRjaCAgfCAgIDc0ICsK IC4uLi9wYXRjaGVzLzAwMDItcHl0aG9uMy4xMF9pbnQucGF0Y2ggICAgICAgICB8IDE5OTMgKysr KysrKysrKysrKysrKysKIHNyY3BrZ3Mvb3BlbnNob3QvdGVtcGxhdGUgICAgICAgICAgICAgICAg ICAgICB8ICAgMTIgKy0KIDMgZmlsZXMgY2hhbmdlZCwgMjA3MyBpbnNlcnRpb25zKCspLCA2IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbnNob3QvcGF0Y2hlcy8w MDAxLXZpZGVvX3dpZGdldC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbnNo b3QvcGF0Y2hlcy8wMDAyLXB5dGhvbjMuMTBfaW50LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9vcGVuc2hvdC9wYXRjaGVzLzAwMDEtdmlkZW9fd2lkZ2V0LnBhdGNoIGIvc3JjcGtncy9vcGVu c2hvdC9wYXRjaGVzLzAwMDEtdmlkZW9fd2lkZ2V0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uNWU5M2Q3NjRjNGJmCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9vcGVuc2hvdC9wYXRjaGVzLzAwMDEtdmlkZW9fd2lkZ2V0LnBhdGNoCkBAIC0wLDAgKzEs NzQgQEAKK0Zyb20gOTc0OGExMzI2OGQ2NmE1OTQ5YWViYzk3MDYzN2I1OTAzNzU2ZDAxOCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEpvbmF0aGFuIFRob21hcyA8am9uYXRoYW5Ab3Bl bnNob3Qub3JnPgorRGF0ZTogVGh1LCA3IE9jdCAyMDIxIDEzOjUzOjA5IC0wNTAwCitTdWJqZWN0 OiBbUEFUQ0hdIFN1cHBvcnQgZm9yIHByZXZpZXdpbmcgYW5hbW9ycGhpYyB2aWRlbyBwcm9maWxl cywgaW5jbHVkaW5nIGEKKyBmZXcgY29kZSBjbGVhbi11cHMuCisKKy0tLQorIHNyYy93aW5kb3dz L3ZpZGVvX3dpZGdldC5weSB8IDIyICsrKysrKystLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hh bmdlZCwgNyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3Ny Yy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weSBiL3NyYy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weQor aW5kZXggNzMyNjU5OGQzLi44NDJkZWIzYmEgMTAwNjQ0CistLS0gYS9zcmMvd2luZG93cy92aWRl b193aWRnZXQucHkKKysrKyBiL3NyYy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weQorQEAgLTc3LDI4 ICs3NywyMCBAQCBkZWYgY2hhbmdlZChzZWxmLCBhY3Rpb24pOgorICAgICAgICAgICAgIGlmIGFj dGlvbi50eXBlID09ICJsb2FkIiBhbmQgYWN0aW9uLnZhbHVlcy5nZXQoInBpeGVsX3JhdGlvIik6 CisgICAgICAgICAgICAgICAgIHBpeGVsX3JhdGlvX2NoYW5nZWQgPSBUcnVlCisgICAgICAgICAg ICAgICAgIHNlbGYucGl4ZWxfcmF0aW8gPSBvcGVuc2hvdC5GcmFjdGlvbigKKy0gICAgICAgICAg ICAgICAgICAgIGFjdGlvbi52YWx1ZXMuZ2V0KCJwaXhlbF9yYXRpbyIpLmdldCgibnVtIiwgMTYp LAorLSAgICAgICAgICAgICAgICAgICAgYWN0aW9uLnZhbHVlcy5nZXQoInBpeGVsX3JhdGlvIiku Z2V0KCJkZW4iLCA5KSkKKysgICAgICAgICAgICAgICAgICAgIGFjdGlvbi52YWx1ZXMuZ2V0KCJw aXhlbF9yYXRpbyIpLmdldCgibnVtIiwgMSksCisrICAgICAgICAgICAgICAgICAgICBhY3Rpb24u dmFsdWVzLmdldCgicGl4ZWxfcmF0aW8iKS5nZXQoImRlbiIsIDEpKQorICAgICAgICAgICAgICAg ICBsb2cuaW5mbygKKyAgICAgICAgICAgICAgICAgICAgICJTZXQgdmlkZW8gd2lkZ2V0IHBpeGVs IGFzcGVjdCByYXRpbyB0bzogJXMiLAorICAgICAgICAgICAgICAgICAgICAgc2VsZi5waXhlbF9y YXRpby5Ub0Zsb2F0KCkpCisgICAgICAgICAgICAgZWxpZiBhY3Rpb24ua2V5IGFuZCBhY3Rpb24u a2V5WzBdID09ICJwaXhlbF9yYXRpbyI6CisgICAgICAgICAgICAgICAgIHBpeGVsX3JhdGlvX2No YW5nZWQgPSBUcnVlCisgICAgICAgICAgICAgICAgIHNlbGYucGl4ZWxfcmF0aW8gPSBvcGVuc2hv dC5GcmFjdGlvbigKKy0gICAgICAgICAgICAgICAgICAgIGFjdGlvbi52YWx1ZXMuZ2V0KCJudW0i LCAxNiksCistICAgICAgICAgICAgICAgICAgICBhY3Rpb24udmFsdWVzLmdldCgiZGVuIiwgOSkp CisrICAgICAgICAgICAgICAgICAgICBhY3Rpb24udmFsdWVzLmdldCgibnVtIiwgMSksCisrICAg ICAgICAgICAgICAgICAgICBhY3Rpb24udmFsdWVzLmdldCgiZGVuIiwgMSkpCisgICAgICAgICAg ICAgICAgIGxvZy5pbmZvKAorICAgICAgICAgICAgICAgICAgICAgIlVwZGF0ZTogU2V0IHZpZGVv IHdpZGdldCBwaXhlbCBhc3BlY3QgcmF0aW8gdG86ICVzIiwKKyAgICAgICAgICAgICAgICAgICAg IHNlbGYucGl4ZWxfcmF0aW8uVG9GbG9hdCgpKQorIAorLSAgICAgICAgICAgICMgVXBkYXRlIG1h eCBzaXplICh0byBzaXplIG9mIHZpZGVvIHByZXZpZXcgdmlld3BvcnQpCistICAgICAgICAgICAg aWYgZGlzcGxheV9yYXRpb19jaGFuZ2VkIG9yIHBpeGVsX3JhdGlvX2NoYW5nZWQ6CistICAgICAg ICAgICAgICAgIHRpbWVsaW5lID0gZ2V0X2FwcCgpLndpbmRvdy50aW1lbGluZV9zeW5jLnRpbWVs aW5lCistICAgICAgICAgICAgICAgIHRpbWVsaW5lLlNldE1heFNpemUoCistICAgICAgICAgICAg ICAgICAgICByb3VuZChzZWxmLndpZHRoKCkgKiBzZWxmLnBpeGVsX3JhdGlvLlRvRmxvYXQoKSks CistICAgICAgICAgICAgICAgICAgICByb3VuZChzZWxmLmhlaWdodCgpICogc2VsZi5waXhlbF9y YXRpby5Ub0Zsb2F0KCkpCistICAgICAgICAgICAgICAgICAgICApCistCisgCisgICAgIGRlZiBk cmF3VHJhbnNmb3JtSGFuZGxlcihzZWxmLCBwYWludGVyLCBzeCwgc3ksIHNvdXJjZV93aWR0aCwg c291cmNlX2hlaWdodCwgb3JpZ2luX3gsIG9yaWdpbl95LAorICAgICAgeDE9Tm9uZSwgeTE9Tm9u ZSwgeDI9Tm9uZSwgeTI9Tm9uZSwgcm90YXRpb24gPSBOb25lKToKK0BAIC0yMzYsNyArMjI4LDcg QEAgZGVmIHBhaW50RXZlbnQoc2VsZiwgZXZlbnQsICphcmdzKToKKyAgICAgICAgICAgICAjIERl dGVybWluZSBvcmlnaW5hbCBzaXplIG9mIGNsaXAncyByZWFkZXIKKyAgICAgICAgICAgICBzb3Vy Y2Vfd2lkdGggPSBzZWxmLnRyYW5zZm9ybWluZ19jbGlwLmRhdGFbJ3JlYWRlciddWyd3aWR0aCdd CisgICAgICAgICAgICAgc291cmNlX2hlaWdodCA9IHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuZGF0 YVsncmVhZGVyJ11bJ2hlaWdodCddCistICAgICAgICAgICAgc291cmNlX3NpemUgPSBRU2l6ZShz b3VyY2Vfd2lkdGgsIHNvdXJjZV9oZWlnaHQpCisrICAgICAgICAgICAgc291cmNlX3NpemUgPSBR U2l6ZShzb3VyY2Vfd2lkdGgsIHNvdXJjZV9oZWlnaHQgKiBzZWxmLnBpeGVsX3JhdGlvLlJlY2lw cm9jYWwoKS5Ub0RvdWJsZSgpKQorIAorICAgICAgICAgICAgICMgRGV0ZXJtaW5lIHNjYWxlIG9m IGNsaXAKKyAgICAgICAgICAgICBzY2FsZSA9IHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuZGF0YVsn c2NhbGUnXQorQEAgLTQwNSw3ICszOTcsNyBAQCBkZWYgcGFpbnRFdmVudChzZWxmLCBldmVudCwg KmFyZ3MpOgorICAgICAgICAgc2VsZi5tdXRleC51bmxvY2soKQorIAorICAgICBkZWYgY2VudGVy ZWRWaWV3cG9ydChzZWxmLCB3aWR0aCwgaGVpZ2h0KToKKy0gICAgICAgICIiIiBDYWxjdWxhdGUg c2l6ZSBvZiB2aWV3cG9ydCB0byBtYWludGFpbiBhcHNlY3QgcmF0aW8gIiIiCisrICAgICAgICAi IiIgQ2FsY3VsYXRlIHNpemUgb2Ygdmlld3BvcnQgdG8gbWFpbnRhaW4gYXNwZWN0IHJhdGlvICIi IgorIAorICAgICAgICAgIyBDYWxjdWxhdGUgcGFkZGluZworICAgICAgICAgdG9wX3BhZGRpbmcg PSAoaGVpZ2h0IC0gKGhlaWdodCAqIHNlbGYuem9vbSkpIC8gMi4wCitAQCAtNDE2LDcgKzQwOCw3 IEBAIGRlZiBjZW50ZXJlZFZpZXdwb3J0KHNlbGYsIHdpZHRoLCBoZWlnaHQpOgorICAgICAgICAg aGVpZ2h0ID0gaGVpZ2h0ICogc2VsZi56b29tCisgCisgICAgICAgICAjIENhbGN1bGF0ZSB3aGlj aCBkaXJlY3Rpb24gdG8gc2NhbGUgKGZvciBwZXJmZWN0IGNlbnRlcmluZykKKy0gICAgICAgIGFz cGVjdFJhdGlvID0gc2VsZi5hc3BlY3RfcmF0aW8uVG9GbG9hdCgpICogc2VsZi5waXhlbF9yYXRp by5Ub0Zsb2F0KCkKKysgICAgICAgIGFzcGVjdFJhdGlvID0gc2VsZi5hc3BlY3RfcmF0aW8uVG9G bG9hdCgpCisgICAgICAgICBoZWlnaHRGcm9tV2lkdGggPSB3aWR0aCAvIGFzcGVjdFJhdGlvCisg ICAgICAgICB3aWR0aEZyb21IZWlnaHQgPSBoZWlnaHQgKiBhc3BlY3RSYXRpbworIApkaWZmIC0t Z2l0IGEvc3JjcGtncy9vcGVuc2hvdC9wYXRjaGVzLzAwMDItcHl0aG9uMy4xMF9pbnQucGF0Y2gg Yi9zcmNwa2dzL29wZW5zaG90L3BhdGNoZXMvMDAwMi1weXRob24zLjEwX2ludC5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhmNmRjNTNkYmY0MAotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbnNob3QvcGF0Y2hlcy8wMDAyLXB5dGhvbjMuMTBfaW50 LnBhdGNoCkBAIC0wLDAgKzEsMTk5MyBAQAorRnJvbSBhMzA4ODUwMzUwMGU3OTg3N2NlOTg1ZTQ3 ODRmNzU0NzhkOWI3OTJlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogIkZlUkQgKEZy YW5rIERhbmEpIiA8ZmVyZG55Y0BnbWFpbC5jb20+CitEYXRlOiBNb24sIDIwIFNlcCAyMDIxIDA1 OjM2OjE5IC0wNDAwCitTdWJqZWN0OiBbUEFUQ0ggMS82XSBQcmVmZXJlbmNlczogRml4IGxvZ2dp bmcgY2FsbHMKKworLS0tCisgc3JjL2xhdW5jaC5weSAgICAgICAgICAgICAgfCAgMiArLQorIHNy Yy93aW5kb3dzL3ByZWZlcmVuY2VzLnB5IHwgMTggKysrKysrKysrKystLS0tLS0tCisgMiBmaWxl cyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0 IGEvc3JjL2xhdW5jaC5weSBiL3NyYy9sYXVuY2gucHkKK2luZGV4IDlmYzYwMGIyMy4uYjYxNGU5 YmM3IDEwMDc1NQorLS0tIGEvc3JjL2xhdW5jaC5weQorKysrIGIvc3JjL2xhdW5jaC5weQorQEAg LTQxLDcgKzQxLDcgQEAKKyAgIiIiCisgCisgaW1wb3J0IHN5cworLWltcG9ydCBvcy5wYXRoCisr aW1wb3J0IG9zCisgaW1wb3J0IGFyZ3BhcnNlCisgCisgZnJvbSBQeVF0NS5RdENvcmUgaW1wb3J0 IFF0CitkaWZmIC0tZ2l0IGEvc3JjL3dpbmRvd3MvcHJlZmVyZW5jZXMucHkgYi9zcmMvd2luZG93 cy9wcmVmZXJlbmNlcy5weQoraW5kZXggYmY3ZDY3YjBjLi4zMjVmNDk2YjMgMTAwNjQ0CistLS0g YS9zcmMvd2luZG93cy9wcmVmZXJlbmNlcy5weQorKysrIGIvc3JjL3dpbmRvd3MvcHJlZmVyZW5j ZXMucHkKK0BAIC0xMDIsNyArMTAyLDcgQEAgZGVmIF9faW5pdF9fKHNlbGYpOgorIAorICAgICBk ZWYgdHh0U2VhcmNoX2NoYW5nZWQoc2VsZik6CisgICAgICAgICAiIiJ0ZXh0Q2hhbmdlZCBldmVu dCBoYW5kbGVyIGZvciBzZWFyY2ggYm94IiIiCistICAgICAgICBsb2cuaW5mbygiU2VhcmNoIGZv ciAlcyIgJSBzZWxmLnR4dFNlYXJjaC50ZXh0KCkpCisrICAgICAgICBsb2cuaW5mbygiU2VhcmNo IGZvciAlcyIsIHNlbGYudHh0U2VhcmNoLnRleHQoKSkKKyAKKyAgICAgICAgICMgUG9wdWxhdGUg cHJlZmVyZW5jZXMKKyAgICAgICAgIHNlbGYuUG9wdWxhdGUoZmlsdGVyPXNlbGYudHh0U2VhcmNo LnRleHQoKSkKK0BAIC0zMTcsNyArMzE3LDcgQEAgZGVmIFBvcHVsYXRlKHNlbGYsIGZpbHRlcj0i Iik6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZV9saXN0LnJlbW92ZSh2 YWx1ZV9pdGVtKQorIAorICAgICAgICAgICAgICAgICAgICAgICAgICMgUmVtb3ZlIGhhcmR3YXJl IG1vZGUgaXRlbXMgd2hpY2ggY2Fubm90IGRlY29kZSB0aGUgZXhhbXBsZSB2aWRlbworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZygiUHJlcGFyaW5nIHRvIHRlc3QgaGFyZHdhcmUg ZGVjb2Rpbmc6ICVzIiAlICh2YWx1ZV9saXN0KSkKKysgICAgICAgICAgICAgICAgICAgICAgICBs b2cuZGVidWcoIlByZXBhcmluZyB0byB0ZXN0IGhhcmR3YXJlIGRlY29kaW5nOiAlcyIsIHZhbHVl X2xpc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHZhbHVlX2l0ZW0gaW4gbGlzdCh2 YWx1ZV9saXN0KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHZhbHVlX2l0ZW1b InZhbHVlIl0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5vdCBzZWxmLnRlc3RI YXJkd2FyZURlY29kZSh2YWx1ZV9saXN0LCB2LCAwKQorQEAgLTQ3MCw3ICs0NzAsNyBAQCBkZWYg Ym9vbF92YWx1ZV9jaGFuZ2VkKHNlbGYsIHdpZGdldCwgcGFyYW0sIHN0YXRlKToKKyAgICAgICAg ICMgVHJpZ2dlciBzcGVjaWZpYyBhY3Rpb25zCisgICAgICAgICBpZiBwYXJhbVsic2V0dGluZyJd ID09ICJkZWJ1Zy1tb2RlIjoKKyAgICAgICAgICAgICAjIFVwZGF0ZSBkZWJ1ZyBzZXR0aW5nIG9m IHRpbWVsaW5lCistICAgICAgICAgICAgbG9nLmluZm8oIlNldHRpbmcgZGVidWctbW9kZSB0byAl cyIgJSAoc3RhdGUgPT0gUXQuQ2hlY2tlZCkpCisrICAgICAgICAgICAgbG9nLmluZm8oIlNldHRp bmcgZGVidWctbW9kZSB0byAlcyIsIHN0YXRlID09IFF0LkNoZWNrZWQpCisgICAgICAgICAgICAg ZGVidWdfZW5hYmxlZCA9IChzdGF0ZSA9PSBRdC5DaGVja2VkKQorIAorICAgICAgICAgICAgICMg RW5hYmxlIC8gRGlzYWJsZSBsb2dnZXIKK0BAIC01MjgsNyArNTI4LDkgQEAgZGVmIHRleHRfdmFs dWVfY2hhbmdlZChzZWxmLCB3aWRnZXQsIHBhcmFtLCB2YWx1ZT1Ob25lKToKKyAgICAgICAgIGlm IHBhcmFtLmdldCgiY2F0ZWdvcnkiKSA9PSAiS2V5Ym9hcmQiOgorICAgICAgICAgICAgIHByZXZp b3VzX3ZhbHVlID0gdmFsdWUKKyAgICAgICAgICAgICB2YWx1ZSA9IFFLZXlTZXF1ZW5jZSh2YWx1 ZSkudG9TdHJpbmcoKQorLSAgICAgICAgICAgIGxvZy5pbmZvKCJQYXJzaW5nIGtleWJvYXJkIG1h cHBpbmcgdmlhIFFLZXlTZXF1ZW5jZSBmcm9tICVzIHRvICVzIiAlIChwcmV2aW91c192YWx1ZSwg dmFsdWUpKQorKyAgICAgICAgICAgIGxvZy5pbmZvKAorKyAgICAgICAgICAgICAgICAiUGFyc2lu ZyBrZXlib2FyZCBtYXBwaW5nIHZpYSBRS2V5U2VxdWVuY2UgZnJvbSAlcyB0byAlcyIsCisrICAg ICAgICAgICAgICAgIHByZXZpb3VzX3ZhbHVlLCB2YWx1ZSkKKyAKKyAgICAgICAgICMgU2F2ZSBz ZXR0aW5nCisgICAgICAgICBzZWxmLnMuc2V0KHBhcmFtWyJzZXR0aW5nIl0sIHZhbHVlKQorQEAg LTYwNCwxMSArNjA2LDEzIEBAIGRlZiB0ZXN0SGFyZHdhcmVEZWNvZGUoc2VsZiwgYWxsX2RlY29k ZXJzLCBkZWNvZGVyLCBkZWNvZGVyX2NhcmQ9IjAiKToKKyAgICAgICAgICAgICBpZiByZWFkZXIu R2V0RnJhbWUoMCkuQ2hlY2tQaXhlbCgwLCAwLCAyLCAxMzMsIDI1NSwgMjU1LCA1KToKKyAgICAg ICAgICAgICAgICAgaXNfc3VwcG9ydGVkID0gVHJ1ZQorICAgICAgICAgICAgICAgICBzZWxmLmhh cmR3YXJlX3Rlc3RzX2NhcmRzW2RlY29kZXJfY2FyZF0uYXBwZW5kKGludChkZWNvZGVyKSkKKy0g ICAgICAgICAgICAgICAgbG9nLmRlYnVnKCJTdWNjZXNzZnVsIGhhcmR3YXJlIGRlY29kZXIhICVz ICglcy0lcykiICUgKGRlY29kZXJfbmFtZSwgZGVjb2RlciwgZGVjb2Rlcl9jYXJkKSkKKysgICAg ICAgICAgICAgICAgbG9nLmRlYnVnKAorKyAgICAgICAgICAgICAgICAgICAgIlN1Y2Nlc3NmdWwg aGFyZHdhcmUgZGVjb2RlciEgJXMgKCVzLSVzKSIsCisrICAgICAgICAgICAgICAgICAgICBkZWNv ZGVyX25hbWUsIGRlY29kZXIsIGRlY29kZXJfY2FyZCkKKyAgICAgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgICAgICBsb2cuZGVidWcoCisgICAgICAgICAgICAgICAgICAgICAiQ2hlY2tQaXhl bCBmYWlsZWQgdGVzdGluZyBoYXJkd2FyZSBkZWNvZGluZyAoaS5lLiB3cm9uZyBjb2xvciBmb3Vu ZCk6ICVzICglcy0lcykiLAorLSAgICAgICAgICAgICAgICAgICAgKGRlY29kZXJfbmFtZSwgZGVj b2RlciwgZGVjb2Rlcl9jYXJkKSkKKysgICAgICAgICAgICAgICAgICAgIGRlY29kZXJfbmFtZSwg ZGVjb2RlciwgZGVjb2Rlcl9jYXJkKQorIAorICAgICAgICAgICAgIHJlYWRlci5DbG9zZSgpCisg ICAgICAgICAgICAgY2xpcC5DbG9zZSgpCitAQCAtNjE2LDcgKzYyMCw3IEBAIGRlZiB0ZXN0SGFy ZHdhcmVEZWNvZGUoc2VsZiwgYWxsX2RlY29kZXJzLCBkZWNvZGVyLCBkZWNvZGVyX2NhcmQ9IjAi KToKKyAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAgbG9nLmRlYnVnKAor ICAgICAgICAgICAgICAgICAiRXhjZXB0aW9uIHRyeWluZyB0byB0ZXN0IGhhcmR3YXJlIGRlY29k aW5nICh0aGlzIGlzIGV4cGVjdGVkKTogJXMgKCVzLSVzKSIsCistICAgICAgICAgICAgICAgIChk ZWNvZGVyX25hbWUsIGRlY29kZXIsIGRlY29kZXJfY2FyZCkpCisrICAgICAgICAgICAgICAgIGRl Y29kZXJfbmFtZSwgZGVjb2RlciwgZGVjb2Rlcl9jYXJkKQorIAorICAgICAgICAgIyBSZXN1bWUg Y3VycmVudCBzZXR0aW5ncworICAgICAgICAgb3BlbnNob3QuU2V0dGluZ3MuSW5zdGFuY2UoKS5I QVJEV0FSRV9ERUNPREVSID0gY3VycmVudF9kZWNvZGVyCisKK0Zyb20gMWIxNDg5NmQyMDU3ZGY4 MGIwYjIwYmEyMmUxMzgwYmE5ZTliZDZlNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 ICJGZVJEIChGcmFuayBEYW5hKSIgPGZlcmRueWNAZ21haWwuY29tPgorRGF0ZTogVGh1LCA0IE5v diAyMDIxIDIxOjAxOjM5IC0wNDAwCitTdWJqZWN0OiBbUEFUQ0ggMi82XSBFbmZvcmNlIGludGVn ZXIgZnVuY3Rpb24gYXJndW1lbnRzCisKKy0tLQorIHNyYy93aW5kb3dzL2V4cG9ydC5weSAgICAg ICAgICAgICAgICAgICAgIHwgICA4ICstCisgc3JjL3dpbmRvd3MvbW9kZWxzL3Byb3BlcnRpZXNf bW9kZWwucHkgICAgfCAgMzQgKy0KKyBzcmMvd2luZG93cy9wcm9jZXNzX2VmZmVjdC5weSAgICAg ICAgICAgICB8ICAgMiArLQorIHNyYy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weSAgICAgICAgICAg ICAgIHwgNTk2ICsrKysrKysrKysrKysrLS0tLS0tLS0KKyBzcmMvd2luZG93cy92aWV3cy9lZmZl Y3RzX2xpc3R2aWV3LnB5ICAgICB8ICAgNyArLQorIHNyYy93aW5kb3dzL3ZpZXdzL2VmZmVjdHNf dHJlZXZpZXcucHkgICAgIHwgICA3ICstCisgc3JjL3dpbmRvd3Mvdmlld3MvZW1vamlzX2xpc3R2 aWV3LnB5ICAgICAgfCAgIDcgKy0KKyBzcmMvd2luZG93cy92aWV3cy9maWxlc19saXN0dmlldy5w eSAgICAgICB8ICAgNyArLQorIHNyYy93aW5kb3dzL3ZpZXdzL2ZpbGVzX3RyZWV2aWV3LnB5ICAg ICAgIHwgICA3ICstCisgc3JjL3dpbmRvd3Mvdmlld3MvcHJvcGVydGllc190YWJsZXZpZXcucHkg fCAgMzggKy0KKyBzcmMvd2luZG93cy92aWV3cy90cmFuc2l0aW9uc19saXN0dmlldy5weSB8ICAg NyArLQorIHNyYy93aW5kb3dzL3ZpZXdzL3RyYW5zaXRpb25zX3RyZWV2aWV3LnB5IHwgICA3ICst Cisgc3JjL3dpbmRvd3Mvdmlld3MvdHV0b3JpYWwucHkgICAgICAgICAgICAgfCAgMTQgKy0KKyAx MyBmaWxlcyBjaGFuZ2VkLCA0NzYgaW5zZXJ0aW9ucygrKSwgMjY1IGRlbGV0aW9ucygtKQorCitk aWZmIC0tZ2l0IGEvc3JjL3dpbmRvd3MvZXhwb3J0LnB5IGIvc3JjL3dpbmRvd3MvZXhwb3J0LnB5 CitpbmRleCBhNjI0ZWIyZTIuLjY0NjFhZmIyNSAxMDA2NDQKKy0tLSBhL3NyYy93aW5kb3dzL2V4 cG9ydC5weQorKysrIGIvc3JjL3dpbmRvd3MvZXhwb3J0LnB5CitAQCAtMjkwLDcgKzI5MCw3IEBA IGRlZiB1cGRhdGVQcm9ncmVzc0JhcihzZWxmLCB0aXRsZV9tZXNzYWdlLCBzdGFydF9mcmFtZSwg ZW5kX2ZyYW1lLCBjdXJyZW50X2ZyYW1lCisgICAgICAgICAgICAgcGVyY2VudGFnZV9zdHJpbmcg PSBmb3JtYXRfb2ZfcHJvZ3Jlc3Nfc3RyaW5nICUgKCggY3VycmVudF9mcmFtZSAtIHN0YXJ0X2Zy YW1lICkgLyAoIGVuZF9mcmFtZSAtIHN0YXJ0X2ZyYW1lICkgKiAxMDApCisgICAgICAgICBlbHNl OgorICAgICAgICAgICAgIHBlcmNlbnRhZ2Vfc3RyaW5nID0gIjEwMCUiCistICAgICAgICBzZWxm LnByb2dyZXNzRXhwb3J0VmlkZW8uc2V0VmFsdWUoY3VycmVudF9mcmFtZSkKKysgICAgICAgIHNl bGYucHJvZ3Jlc3NFeHBvcnRWaWRlby5zZXRWYWx1ZShpbnQoY3VycmVudF9mcmFtZSkpCisgICAg ICAgICBzZWxmLnByb2dyZXNzRXhwb3J0VmlkZW8uc2V0Rm9ybWF0KHBlcmNlbnRhZ2Vfc3RyaW5n KQorICAgICAgICAgc2VsZi5zZXRXaW5kb3dUaXRsZSgiJXMgJXMiICUgKHBlcmNlbnRhZ2Vfc3Ry aW5nLCB0aXRsZV9tZXNzYWdlKSkKKyAKK0BAIC02OTAsOSArNjkwLDkgQEAgZGVmIHRpdGxlc3Ry aW5nKHNlYywgZnBzLCBtZXNzKToKKyAgICAgICAgIGZwc19lbmNvZGUgPSAwCisgCisgICAgICAg ICAjIEluaXQgcHJvZ3Jlc3MgYmFyCistICAgICAgICBzZWxmLnByb2dyZXNzRXhwb3J0VmlkZW8u c2V0TWluaW11bShzZWxmLnR4dFN0YXJ0RnJhbWUudmFsdWUoKSkKKy0gICAgICAgIHNlbGYucHJv Z3Jlc3NFeHBvcnRWaWRlby5zZXRNYXhpbXVtKHNlbGYudHh0RW5kRnJhbWUudmFsdWUoKSkKKy0g ICAgICAgIHNlbGYucHJvZ3Jlc3NFeHBvcnRWaWRlby5zZXRWYWx1ZShzZWxmLnR4dFN0YXJ0RnJh bWUudmFsdWUoKSkKKysgICAgICAgIHNlbGYucHJvZ3Jlc3NFeHBvcnRWaWRlby5zZXRNaW5pbXVt KGludChzZWxmLnR4dFN0YXJ0RnJhbWUudmFsdWUoKSkpCisrICAgICAgICBzZWxmLnByb2dyZXNz RXhwb3J0VmlkZW8uc2V0TWF4aW11bShpbnQoc2VsZi50eHRFbmRGcmFtZS52YWx1ZSgpKSkKKysg ICAgICAgIHNlbGYucHJvZ3Jlc3NFeHBvcnRWaWRlby5zZXRWYWx1ZShpbnQoc2VsZi50eHRTdGFy dEZyYW1lLnZhbHVlKCkpKQorIAorICAgICAgICAgIyBQcm9tcHQgZXJyb3IgbWVzc2FnZQorICAg ICAgICAgaWYgc2VsZi50eHRTdGFydEZyYW1lLnZhbHVlKCkgPT0gc2VsZi50eHRFbmRGcmFtZS52 YWx1ZSgpOgorZGlmZiAtLWdpdCBhL3NyYy93aW5kb3dzL21vZGVscy9wcm9wZXJ0aWVzX21vZGVs LnB5IGIvc3JjL3dpbmRvd3MvbW9kZWxzL3Byb3BlcnRpZXNfbW9kZWwucHkKK2luZGV4IGMzMjM2 ZWQ4NC4uNDA4OTdmNjQyIDEwMDY0NAorLS0tIGEvc3JjL3dpbmRvd3MvbW9kZWxzL3Byb3BlcnRp ZXNfbW9kZWwucHkKKysrKyBiL3NyYy93aW5kb3dzL21vZGVscy9wcm9wZXJ0aWVzX21vZGVsLnB5 CitAQCAtNDE0LDggKzQxNCw4IEBAIGRlZiB2YWx1ZV91cGRhdGVkKHNlbGYsIGl0ZW0sIGludGVy cG9sYXRpb249LTEsIHZhbHVlPU5vbmUsIGludGVycG9sYXRpb25fZGV0YWlsCisgICAgICAgICAg ICAgbmV3X3ZhbHVlID0gTm9uZQorIAorICAgICAgICAgbG9nLmluZm8oCistICAgICAgICAgICAg IiVzIGZvciAlcyBjaGFuZ2VkIHRvICVzIGF0IGZyYW1lICVzIHdpdGggaW50ZXJwb2xhdGlvbjog JXMgYXQgY2xvc2VzdCB4OiAlcyIKKy0gICAgICAgICAgICAlIChwcm9wZXJ0eV9rZXksIGNsaXBf aWQsIG5ld192YWx1ZSwgc2VsZi5mcmFtZV9udW1iZXIsIGludGVycG9sYXRpb24sIGNsb3Nlc3Rf cG9pbnRfeCkpCisrICAgICAgICAgICAgIiVzIGZvciAlcyBjaGFuZ2VkIHRvICVzIGF0IGZyYW1l ICVzIHdpdGggaW50ZXJwb2xhdGlvbjogJXMgYXQgY2xvc2VzdCB4OiAlcyIsCisrICAgICAgICAg ICAgcHJvcGVydHlfa2V5LCBjbGlwX2lkLCBuZXdfdmFsdWUsIHNlbGYuZnJhbWVfbnVtYmVyLCBp bnRlcnBvbGF0aW9uLCBjbG9zZXN0X3BvaW50X3gpCisgCisgICAgICAgICAjIEZpbmQgdGhpcyBj bGlwCisgICAgICAgICBjID0gTm9uZQorQEAgLTUxOCwzNSArNTE4LDM1IEBAIGRlZiB2YWx1ZV91 cGRhdGVkKHNlbGYsIGl0ZW0sIGludGVycG9sYXRpb249LTEsIHZhbHVlPU5vbmUsIGludGVycG9s YXRpb25fZGV0YWlsCisgICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg ICAgICAgICAgY2xpcF9kYXRhW3Byb3BlcnR5X2tleV0gPSBpbnQobmV3X3ZhbHVlKQorICAgICAg ICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleDoKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsb2cud2FybignSW52YWxpZCBJbnRlZ2VyIHZhbHVlIHBhc3NlZCB0byBwcm9wZXJ0 eTogJXMnICUgZXgpCisrICAgICAgICAgICAgICAgICAgICAgICAgbG9nLndhcm4oJ0ludmFsaWQg SW50ZWdlciB2YWx1ZSBwYXNzZWQgdG8gcHJvcGVydHknLCBleGNfaW5mbz0xKQorIAorICAgICAg ICAgICAgICAgICBlbGlmIHByb3BlcnR5X3R5cGUgPT0gImZsb2F0IjoKKyAgICAgICAgICAgICAg ICAgICAgIGNsaXBfdXBkYXRlZCA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgIHRyeToKKyAg ICAgICAgICAgICAgICAgICAgICAgICBjbGlwX2RhdGFbcHJvcGVydHlfa2V5XSA9IGZsb2F0KG5l d192YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXg6Cist ICAgICAgICAgICAgICAgICAgICAgICAgbG9nLndhcm4oJ0ludmFsaWQgRmxvYXQgdmFsdWUgcGFz c2VkIHRvIHByb3BlcnR5OiAlcycgJSBleCkKKysgICAgICAgICAgICAgICAgICAgICAgICBsb2cu d2FybignSW52YWxpZCBGbG9hdCB2YWx1ZSBwYXNzZWQgdG8gcHJvcGVydHknLCBleGNfaW5mbz0x KQorIAorICAgICAgICAgICAgICAgICBlbGlmIHByb3BlcnR5X3R5cGUgPT0gImJvb2wiOgorICAg ICAgICAgICAgICAgICAgICAgY2xpcF91cGRhdGVkID0gVHJ1ZQorICAgICAgICAgICAgICAgICAg ICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBfZGF0YVtwcm9wZXJ0eV9rZXld ID0gYm9vbChuZXdfdmFsdWUpCisgICAgICAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9u IGFzIGV4OgorLSAgICAgICAgICAgICAgICAgICAgICAgIGxvZy53YXJuKCdJbnZhbGlkIEJvb2xl YW4gdmFsdWUgcGFzc2VkIHRvIHByb3BlcnR5OiAlcycgJSBleCkKKysgICAgICAgICAgICAgICAg ICAgICAgICBsb2cud2FybignSW52YWxpZCBCb29sZWFuIHZhbHVlIHBhc3NlZCB0byBwcm9wZXJ0 eScsIGV4Y19pbmZvPTEpCisgCisgICAgICAgICAgICAgICAgIGVsaWYgcHJvcGVydHlfdHlwZSA9 PSAic3RyaW5nIjoKKyAgICAgICAgICAgICAgICAgICAgIGNsaXBfdXBkYXRlZCA9IFRydWUKKyAg ICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwX2Rh dGFbcHJvcGVydHlfa2V5XSA9IHN0cihuZXdfdmFsdWUpCistICAgICAgICAgICAgICAgICAgICBl eGNlcHQgRXhjZXB0aW9uIGFzIGV4OgorLSAgICAgICAgICAgICAgICAgICAgICAgIGxvZy53YXJu KCdJbnZhbGlkIFN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gcHJvcGVydHk6ICVzJyAlIGV4KQorKyAg ICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKysgICAgICAgICAgICAgICAgICAg ICAgICBsb2cud2FybignSW52YWxpZCBTdHJpbmcgdmFsdWUgcGFzc2VkIHRvIHByb3BlcnR5Jywg ZXhjX2luZm89MSkKKyAKKyAgICAgICAgICAgICAgICAgZWxpZiBwcm9wZXJ0eV90eXBlIGluIFsi Zm9udCIsICJjYXB0aW9uIl06CisgICAgICAgICAgICAgICAgICAgICBjbGlwX3VwZGF0ZWQgPSBU cnVlCisgICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICAg Y2xpcF9kYXRhW3Byb3BlcnR5X2tleV0gPSBzdHIobmV3X3ZhbHVlKQorLSAgICAgICAgICAgICAg ICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleDoKKy0gICAgICAgICAgICAgICAgICAgICAgICBs b2cud2FybignSW52YWxpZCBGb250L0NhcHRpb24gdmFsdWUgcGFzc2VkIHRvIHByb3BlcnR5OiAl cycgJSBleCkKKysgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisrICAgICAg ICAgICAgICAgICAgICAgICAgbG9nLndhcm4oJ0ludmFsaWQgRm9udC9DYXB0aW9uIHZhbHVlIHBh c3NlZCB0byBwcm9wZXJ0eScsIGV4Y19pbmZvPTEpCisgCisgICAgICAgICAgICAgICAgIGVsaWYg cHJvcGVydHlfdHlwZSA9PSAicmVhZGVyIjoKKyAgICAgICAgICAgICAgICAgICAgICMgVHJhbnNp dGlvbgorQEAgLTU1Nyw4ICs1NTcsOCBAQCBkZWYgdmFsdWVfdXBkYXRlZChzZWxmLCBpdGVtLCBp bnRlcnBvbGF0aW9uPS0xLCB2YWx1ZT1Ob25lLCBpbnRlcnBvbGF0aW9uX2RldGFpbAorICAgICAg ICAgICAgICAgICAgICAgICAgIGNsaXBfZGF0YVtwcm9wZXJ0eV9rZXldID0ganNvbi5sb2Fkcyhj bGlwX29iamVjdC5SZWFkZXIoKS5Kc29uKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgY2xp cF9vYmplY3QuQ2xvc2UoKQorICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBfb2JqZWN0ID0g Tm9uZQorLSAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleDoKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsb2cud2FybignSW52YWxpZCBSZWFkZXIgdmFsdWUgcGFzc2Vk IHRvIHByb3BlcnR5OiAlcyAoJXMpJyAlICh2YWx1ZSwgZXgpKQorKyAgICAgICAgICAgICAgICAg ICAgZXhjZXB0IEV4Y2VwdGlvbjoKKysgICAgICAgICAgICAgICAgICAgICAgICBsb2cud2Fybign SW52YWxpZCBSZWFkZXIgdmFsdWUgcGFzc2VkIHRvIHByb3BlcnR5OiAlcyAoJXMpJywgdmFsdWUs IGV4Y19pbmZvPTEpCisgCisgICAgICAgICAgICAgIyBSZWR1Y2UgIyBvZiBjbGlwIHByb3BlcnRp ZXMgd2UgYXJlIHNhdmluZyAocGVyZm9ybWFuY2UgYm9vc3QpCisgICAgICAgICAgICAgY2xpcF9k YXRhID0ge3Byb3BlcnR5X2tleTogY2xpcF9kYXRhLmdldChwcm9wZXJ0eV9rZXkpfQorQEAgLTY4 OCw5ICs2ODgsOSBAQCBkZWYgc2V0X3Byb3BlcnR5KHNlbGYsIHByb3BlcnR5LCBmaWx0ZXIsIGMs IGl0ZW1fdHlwZSwgb2JqZWN0X2lkPU5vbmUpOgorIAorICAgICAgICAgICAgIGlmIHR5cGUgPT0g ImNvbG9yIjoKKyAgICAgICAgICAgICAgICAgIyBDb2xvciBuZWVkcyB0byBiZSBoYW5kbGVkIHNw ZWNpYWwKKy0gICAgICAgICAgICAgICAgcmVkID0gcHJvcGVydHlbMV1bInJlZCJdWyJ2YWx1ZSJd CistICAgICAgICAgICAgICAgIGdyZWVuID0gcHJvcGVydHlbMV1bImdyZWVuIl1bInZhbHVlIl0K Ky0gICAgICAgICAgICAgICAgYmx1ZSA9IHByb3BlcnR5WzFdWyJibHVlIl1bInZhbHVlIl0KKysg ICAgICAgICAgICAgICAgcmVkID0gaW50KHByb3BlcnR5WzFdWyJyZWQiXVsidmFsdWUiXSkKKysg ICAgICAgICAgICAgICAgZ3JlZW4gPSBpbnQocHJvcGVydHlbMV1bImdyZWVuIl1bInZhbHVlIl0p CisrICAgICAgICAgICAgICAgIGJsdWUgPSBpbnQocHJvcGVydHlbMV1bImJsdWUiXVsidmFsdWUi XSkKKyAgICAgICAgICAgICAgICAgY29sLnNldEJhY2tncm91bmQoUUNvbG9yKHJlZCwgZ3JlZW4s IGJsdWUpKQorIAorICAgICAgICAgICAgIGlmIHJlYWRvbmx5IG9yIHR5cGUgaW4gWyJjb2xvciIs ICJmb250IiwgImNhcHRpb24iXSBvciBjaG9pY2VzIG9yIGxhYmVsID09ICJUcmFjayI6CitAQCAt Nzg5LDkgKzc4OSw5IEBAIGRlZiBzZXRfcHJvcGVydHkoc2VsZiwgcHJvcGVydHksIGZpbHRlciwg YywgaXRlbV90eXBlLCBvYmplY3RfaWQ9Tm9uZSk6CisgCisgICAgICAgICAgICAgaWYgdHlwZSA9 PSAiY29sb3IiOgorICAgICAgICAgICAgICAgICAjIFVwZGF0ZSB0aGUgY29sb3IgYmFzZWQgb24g dGhlIGNvbG9yIGN1cnZlcworLSAgICAgICAgICAgICAgICByZWQgPSBwcm9wZXJ0eVsxXVsicmVk Il1bInZhbHVlIl0KKy0gICAgICAgICAgICAgICAgZ3JlZW4gPSBwcm9wZXJ0eVsxXVsiZ3JlZW4i XVsidmFsdWUiXQorLSAgICAgICAgICAgICAgICBibHVlID0gcHJvcGVydHlbMV1bImJsdWUiXVsi dmFsdWUiXQorKyAgICAgICAgICAgICAgICByZWQgPSBpbnQocHJvcGVydHlbMV1bInJlZCJdWyJ2 YWx1ZSJdKQorKyAgICAgICAgICAgICAgICBncmVlbiA9IGludChwcm9wZXJ0eVsxXVsiZ3JlZW4i XVsidmFsdWUiXSkKKysgICAgICAgICAgICAgICAgYmx1ZSA9IGludChwcm9wZXJ0eVsxXVsiYmx1 ZSJdWyJ2YWx1ZSJdKQorICAgICAgICAgICAgICAgICBjb2wuc2V0QmFja2dyb3VuZChRQ29sb3Io cmVkLCBncmVlbiwgYmx1ZSkpCisgCisgICAgICAgICAgICAgIyBVcGRhdGUgaGVscGVyIGRpY3Rp b25hcnkKK2RpZmYgLS1naXQgYS9zcmMvd2luZG93cy9wcm9jZXNzX2VmZmVjdC5weSBiL3NyYy93 aW5kb3dzL3Byb2Nlc3NfZWZmZWN0LnB5CitpbmRleCBlNGYzMTIwYzAuLmVhMGMyOTQ2ZSAxMDA2 NDQKKy0tLSBhL3NyYy93aW5kb3dzL3Byb2Nlc3NfZWZmZWN0LnB5CisrKysgYi9zcmMvd2luZG93 cy9wcm9jZXNzX2VmZmVjdC5weQorQEAgLTM1Miw3ICszNTIsNyBAQCBkZWYgYWNjZXB0KHNlbGYp OgorICAgICAgICAgd2hpbGUobm90IHByb2Nlc3NpbmcuSXNEb25lKCkgKToKKyAgICAgICAgICAg ICAjIHVwZGF0ZSBwcm9ncmVzc2JhcgorICAgICAgICAgICAgIHByb2dyZXNzaW9uU3RhdHVzID0g cHJvY2Vzc2luZy5HZXRQcm9ncmVzcygpCistICAgICAgICAgICAgc2VsZi5wcm9ncmVzc0Jhci5z ZXRWYWx1ZShwcm9ncmVzc2lvblN0YXR1cykKKysgICAgICAgICAgICBzZWxmLnByb2dyZXNzQmFy LnNldFZhbHVlKGludChwcm9ncmVzc2lvblN0YXR1cykpCisgICAgICAgICAgICAgdGltZS5zbGVl cCgwLjAxKQorIAorICAgICAgICAgICAgICMgUHJvY2VzcyBhbnkgcXVldWVkIGV2ZW50cworZGlm ZiAtLWdpdCBhL3NyYy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weSBiL3NyYy93aW5kb3dzL3ZpZGVv X3dpZGdldC5weQoraW5kZXggZDVjODlhMjA0Li5mMzM2OTZjNWMgMTAwNjQ0CistLS0gYS9zcmMv d2luZG93cy92aWRlb193aWRnZXQucHkKKysrKyBiL3NyYy93aW5kb3dzL3ZpZGVvX3dpZGdldC5w eQorQEAgLTI1LDggKzI1LDExIEBACisgIGFsb25nIHdpdGggT3BlblNob3QgTGlicmFyeS4gIElm IG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAgIiIiCisgCisraW1w b3J0IGpzb24KKysKKyBmcm9tIFB5UXQ1LlF0Q29yZSBpbXBvcnQgKAorLSAgICBRdCwgUUNvcmVB cHBsaWNhdGlvbiwgUVBvaW50RiwgUVBvaW50LCBRUmVjdCwgUVJlY3RGLCBRU2l6ZSwgUU11dGV4 LCBRVGltZXIKKysgICAgUXQsIFFDb3JlQXBwbGljYXRpb24sIFFNdXRleCwgUVRpbWVyLAorKyAg ICBRUG9pbnQsIFFQb2ludEYsIFFTaXplLCBRU2l6ZUYsIFFSZWN0LCBRUmVjdEYsCisgKQorIGZy b20gUHlRdDUuUXRHdWkgaW1wb3J0ICgKKyAgICAgUVRyYW5zZm9ybSwgUVBhaW50ZXIsIFFJY29u LCBRQ29sb3IsIFFQZW4sIFFCcnVzaCwgUUN1cnNvciwgUUltYWdlLCBRUmVnaW9uCitAQCAtNDEs OCArNDQsNiBAQAorIGZyb20gY2xhc3Nlcy5hcHAgaW1wb3J0IGdldF9hcHAKKyBmcm9tIGNsYXNz ZXMucXVlcnkgaW1wb3J0IENsaXAsIEVmZmVjdAorIAorLWltcG9ydCBqc29uCistCisgCisgY2xh c3MgVmlkZW9XaWRnZXQoUVdpZGdldCwgdXBkYXRlcy5VcGRhdGVJbnRlcmZhY2UpOgorICAgICAi IiIgQSBRV2lkZ2V0IHVzZWQgb24gdGhlIHZpZGVvIGRpc3BsYXkgd2lkZ2V0ICIiIgorQEAgLTg2 LDM3ICs4Nyw2OCBAQCBkZWYgY2hhbmdlZChzZWxmLCBhY3Rpb24pOgorICAgICAgICAgICAgICAg ICAgICAgc2VsZi5waXhlbF9yYXRpby5Ub0Zsb2F0KCkpCisgCisgCistICAgIGRlZiBkcmF3VHJh bnNmb3JtSGFuZGxlcihzZWxmLCBwYWludGVyLCBzeCwgc3ksIHNvdXJjZV93aWR0aCwgc291cmNl X2hlaWdodCwgb3JpZ2luX3gsIG9yaWdpbl95LAorLSAgICAgeDE9Tm9uZSwgeTE9Tm9uZSwgeDI9 Tm9uZSwgeTI9Tm9uZSwgcm90YXRpb24gPSBOb25lKToKKysgICAgZGVmIGRyYXdUcmFuc2Zvcm1I YW5kbGVyKAorKyAgICAgICAgc2VsZiwgcGFpbnRlciwgc3gsIHN5LCBzb3VyY2Vfd2lkdGgsIHNv dXJjZV9oZWlnaHQsCisrICAgICAgICBvcmlnaW5feCwgb3JpZ2luX3ksCisrICAgICAgICB4MT1O b25lLCB5MT1Ob25lLCB4Mj1Ob25lLCB5Mj1Ob25lLCByb3RhdGlvbiA9IE5vbmUKKysgICAgKToK KyAgICAgICAgICMgRHJhdyB0cmFuc2Zvcm0gY29ybmVycyBhbmQgY2VudGVyIG9yaWdpbiBjaXJj bGUKKyAgICAgICAgICMgQ29ybmVyIHNpemUKKyAgICAgICAgIGNzID0gc2VsZi5jcworICAgICAg ICAgb3MgPSAxMi4wCisgCisrICAgICAgICBjc3ggPSBjcyAvIHN4CisrICAgICAgICBjc3kgPSBj cyAvIHN5CisrCisgICAgICAgICAjIFJvdGF0ZSB0aGUgdHJhbnNmb3JtIGhhbmRsZXIKKyAgICAg ICAgIGlmIHJvdGF0aW9uOgorLSAgICAgICAgICAgIGJib3hfY2VudGVyX3ggPSAoKCh4MSpzb3Vy Y2Vfd2lkdGggKyB4Mipzb3VyY2Vfd2lkdGgpIC8gMi4wKSApIC0gKCAob3MvMikgL3N4KQorLSAg ICAgICAgICAgIGJib3hfY2VudGVyX3kgPSAoKCh5MSpzb3VyY2VfaGVpZ2h0ICsgeTIqc291cmNl X2hlaWdodCkgLyAyLjApICkgLSAoIChvcy8yKSAvc3kpCisrICAgICAgICAgICAgYmJveF9jZW50 ZXJfeCA9ICgoeDEqc291cmNlX3dpZHRoICsgeDIqc291cmNlX3dpZHRoKSAvIDIuMCkgLSAoKG9z IC8gMikgLyBzeCkKKysgICAgICAgICAgICBiYm94X2NlbnRlcl95ID0gKCh5MSpzb3VyY2VfaGVp Z2h0ICsgeTIqc291cmNlX2hlaWdodCkgLyAyLjApIC0gKChvcyAvIDIpIC8gc3kpCisgICAgICAg ICAgICAgcGFpbnRlci50cmFuc2xhdGUoYmJveF9jZW50ZXJfeCwgYmJveF9jZW50ZXJfeSkKKyAg ICAgICAgICAgICBwYWludGVyLnJvdGF0ZShyb3RhdGlvbikKKyAgICAgICAgICAgICBwYWludGVy LnRyYW5zbGF0ZSgtYmJveF9jZW50ZXJfeCwgLWJib3hfY2VudGVyX3kpCisgCistICAgICAgICBp Zih4MSBhbmQgeTEgYW5kIHgyIGFuZCB5Mik6CisrICAgICAgICBpZiBhbGwoW3gxLCB5MSwgeDIs IHkyXSk6CisgICAgICAgICAgICAgIyBDYWxjdWxhdGUgYm91bmRzIG9mIGNsaXAKKy0gICAgICAg ICAgICBzZWxmLmNsaXBCb3VuZHMgPSBRUmVjdEYoUVBvaW50Rih4MSpzb3VyY2Vfd2lkdGgsIHkx KnNvdXJjZV9oZWlnaHQpLCBRUG9pbnRGKHgyKnNvdXJjZV93aWR0aCwgeTIqc291cmNlX2hlaWdo dCkpCisrICAgICAgICAgICAgc2VsZi5jbGlwQm91bmRzID0gUVJlY3RGKAorKyAgICAgICAgICAg ICAgICBRUG9pbnRGKHgxICogc291cmNlX3dpZHRoLCB5MSAqIHNvdXJjZV9oZWlnaHQpLAorKyAg ICAgICAgICAgICAgICBRUG9pbnRGKHgyICogc291cmNlX3dpZHRoLCB5MiAqIHNvdXJjZV9oZWln aHQpCisrICAgICAgICAgICAgKQorICAgICAgICAgICAgICMgQ2FsY3VsYXRlIDQgY29ybmVycyBj b29yZGluYXRlcworLSAgICAgICAgICAgIHNlbGYudG9wTGVmdEhhbmRsZSA9IFFSZWN0Rih4MSpz b3VyY2Vfd2lkdGggLShjcy9zeC8yLjApLCB5MSpzb3VyY2VfaGVpZ2h0LShjcy9zeS8yLjApLCBj cy9zeCwgY3Mvc3kpCistICAgICAgICAgICAgc2VsZi50b3BSaWdodEhhbmRsZSA9IFFSZWN0Rih4 Mipzb3VyY2Vfd2lkdGgtKGNzL3N4LzIuMCksIHkxKnNvdXJjZV9oZWlnaHQtKGNzL3N5LzIuMCks IGNzL3N4LCBjcy9zeSkKKy0gICAgICAgICAgICBzZWxmLmJvdHRvbUxlZnRIYW5kbGUgPSBRUmVj dEYoeDEqc291cmNlX3dpZHRoIC0oY3Mvc3gvMi4wKSwgeTIqc291cmNlX2hlaWdodC0oY3Mvc3kv Mi4wKSwgY3Mvc3gsIGNzL3N5KQorLSAgICAgICAgICAgIHNlbGYuYm90dG9tUmlnaHRIYW5kbGUg PSBRUmVjdEYoeDIqc291cmNlX3dpZHRoLShjcy9zeC8yLjApLCB5Mipzb3VyY2VfaGVpZ2h0LShj cy9zeS8yLjApLCBjcy9zeCwgY3Mvc3kpCisrICAgICAgICAgICAgc2VsZi50b3BMZWZ0SGFuZGxl ID0gUVJlY3RGKAorKyAgICAgICAgICAgICAgICB4MSAqIHNvdXJjZV93aWR0aCAtIChjc3ggLyAy LjApLAorKyAgICAgICAgICAgICAgICB5MSAqIHNvdXJjZV9oZWlnaHQgLSAoY3N5IC8gMi4wKSwK KysgICAgICAgICAgICAgICAgY3N4LAorKyAgICAgICAgICAgICAgICBjc3kpCisrICAgICAgICAg ICAgc2VsZi50b3BSaWdodEhhbmRsZSA9IFFSZWN0RigKKysgICAgICAgICAgICAgICAgeDIgKiBz b3VyY2Vfd2lkdGggLSAoY3N4IC8gMi4wKSwKKysgICAgICAgICAgICAgICAgeTEgKiBzb3VyY2Vf aGVpZ2h0IC0gKGNzeSAvIDIuMCksCisrICAgICAgICAgICAgICAgIGNzeCwKKysgICAgICAgICAg ICAgICAgY3N5KQorKyAgICAgICAgICAgIHNlbGYuYm90dG9tTGVmdEhhbmRsZSA9IFFSZWN0RigK KysgICAgICAgICAgICAgICAgeDEgKiBzb3VyY2Vfd2lkdGggLSAoY3N4IC8gMi4wKSwKKysgICAg ICAgICAgICAgICAgeTIgKiBzb3VyY2VfaGVpZ2h0IC0gKGNzeSAvIDIuMCksCisrICAgICAgICAg ICAgICAgIGNzeCwKKysgICAgICAgICAgICAgICAgY3N5KQorKyAgICAgICAgICAgIHNlbGYuYm90 dG9tUmlnaHRIYW5kbGUgPSBRUmVjdEYoCisrICAgICAgICAgICAgICAgIHgyICogc291cmNlX3dp ZHRoIC0gKGNzeCAvIDIuMCksCisrICAgICAgICAgICAgICAgIHkyICogc291cmNlX2hlaWdodCAt IChjc3kgLyAyLjApLAorKyAgICAgICAgICAgICAgICBjc3gsCisrICAgICAgICAgICAgICAgIGNz eSkKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgIyBDYWxjdWxhdGUgYm91bmRzIG9mIGNs aXAKKy0gICAgICAgICAgICBzZWxmLmNsaXBCb3VuZHMgPSBRUmVjdEYoUVBvaW50RigwLjAsIDAu MCksIFFQb2ludEYoc291cmNlX3dpZHRoLCBzb3VyY2VfaGVpZ2h0KSkKKysgICAgICAgICAgICBz ZWxmLmNsaXBCb3VuZHMgPSBRUmVjdEYoCisrICAgICAgICAgICAgICAgIFFQb2ludEYoMC4wLCAw LjApLAorKyAgICAgICAgICAgICAgICBRUG9pbnRGKHNvdXJjZV93aWR0aCwgc291cmNlX2hlaWdo dCkpCisgICAgICAgICAgICAgIyBDYWxjdWxhdGUgNCBjb3JuZXJzIGNvb3JkaW5hdGVzCistICAg ICAgICAgICAgc2VsZi50b3BMZWZ0SGFuZGxlID0gUVJlY3RGKC1jcy9zeC8yLjAsIC1jcy9zeS8y LjAsIGNzL3N4LCBjcy9zeSkKKy0gICAgICAgICAgICBzZWxmLnRvcFJpZ2h0SGFuZGxlID0gUVJl Y3RGKHNvdXJjZV93aWR0aCAtIChjcy9zeCkgKyBjcy9zeC8yLjAsIC1jcy9zeS8yLjAsIGNzL3N4 LCBjcy9zeSkKKy0gICAgICAgICAgICBzZWxmLmJvdHRvbUxlZnRIYW5kbGUgPSBRUmVjdEYoLWNz L3N4LzIuMCwgc291cmNlX2hlaWdodCAtIChjcy9zeSkgKyBjcy9zeS8yLjAsIGNzL3N4LCBjcy9z eSkKKy0gICAgICAgICAgICBzZWxmLmJvdHRvbVJpZ2h0SGFuZGxlID0gUVJlY3RGKHNvdXJjZV93 aWR0aCAtIChjcy9zeCkgKyBjcy9zeC8yLjAsIHNvdXJjZV9oZWlnaHQgLSAoY3Mvc3kpICsgY3Mv c3kvMi4wLCBjcy9zeCwgY3Mvc3kpCisrICAgICAgICAgICAgc2VsZi50b3BMZWZ0SGFuZGxlID0g UVJlY3RGKAorKyAgICAgICAgICAgICAgICAtY3N4IC8gMi4wLCAtY3N5IC8gMi4wLCBjc3gsIGNz eSkKKysgICAgICAgICAgICBzZWxmLnRvcFJpZ2h0SGFuZGxlID0gUVJlY3RGKAorKyAgICAgICAg ICAgICAgICBzb3VyY2Vfd2lkdGggLSBjc3ggLyAyLjAsIC1jc3kgLyAyLjAsIGNzeCwgY3N5KQor KyAgICAgICAgICAgIHNlbGYuYm90dG9tTGVmdEhhbmRsZSA9IFFSZWN0RigKKysgICAgICAgICAg ICAgICAgLWNzeCAvIDIuMCwgc291cmNlX2hlaWdodCAtIGNzeSAvIDIuMCwgY3N4LCBjc3kpCisr ICAgICAgICAgICAgc2VsZi5ib3R0b21SaWdodEhhbmRsZSA9IFFSZWN0RigKKysgICAgICAgICAg ICAgICAgc291cmNlX3dpZHRoIC0gY3N4IC8gMi4wLCBzb3VyY2VfaGVpZ2h0IC0gY3N5IC8gMi4w LCBjc3gsIGNzeSkKKyAKKyAgICAgICAgICMgRHJhdyA0IGNvcm5lcnMKKyAgICAgICAgIHBlbiA9 IFFQZW4oUUJydXNoKFFDb2xvcigiIzUzYTBlZCIpKSwgMS41KQorQEAgLTEyNyw0NyArMTU5LDEx MCBAQCBkZWYgZHJhd1RyYW5zZm9ybUhhbmRsZXIoc2VsZiwgcGFpbnRlciwgc3gsIHN5LCBzb3Vy Y2Vfd2lkdGgsIHNvdXJjZV9oZWlnaHQsIG9yaQorICAgICAgICAgcGFpbnRlci5kcmF3UmVjdChz ZWxmLmJvdHRvbUxlZnRIYW5kbGUpCisgICAgICAgICBwYWludGVyLmRyYXdSZWN0KHNlbGYuYm90 dG9tUmlnaHRIYW5kbGUpCisgCistICAgICAgICBpZih4MSBhbmQgeTEgYW5kIHgyIGFuZCB5Mik6 CisrICAgICAgICBpZiBhbGwoW3gxLCB5MSwgeDIsIHkyXSk6CisgICAgICAgICAgICAgIyBDYWxj dWxhdGUgNCBzaWRlIGNvb3JkaW5hdGVzCistICAgICAgICAgICAgc2VsZi50b3BIYW5kbGUgPSBR UmVjdEYoKCh4MSpzb3VyY2Vfd2lkdGgreDIqc291cmNlX3dpZHRoKSAvIDIuMCkgLSAoY3Mvc3gv Mi4wKSwgKHkxKnNvdXJjZV9oZWlnaHQpLWNzL3N5LzIuMCwgY3Mvc3gsIGNzL3N5KQorLSAgICAg ICAgICAgIHNlbGYuYm90dG9tSGFuZGxlID0gUVJlY3RGKCgoeDEqc291cmNlX3dpZHRoK3gyKnNv dXJjZV93aWR0aCkgLyAyLjApIC0gKGNzL3N4LzIuMCksICh5Mipzb3VyY2VfaGVpZ2h0KS0oIGNz L3N5LzIuMCksIGNzL3N4LCBjcy9zeSkKKy0gICAgICAgICAgICBzZWxmLmxlZnRIYW5kbGUgPSBR UmVjdEYoKHgxKnNvdXJjZV93aWR0aCktKGNzL3N4LzIuMCksICgoeTEqc291cmNlX2hlaWdodCt5 Mipzb3VyY2VfaGVpZ2h0KSAvIDIuMCkgLSAoY3Mvc3kvMi4wKSwgY3Mvc3gsIGNzL3N5KQorLSAg ICAgICAgICAgIHNlbGYucmlnaHRIYW5kbGUgPSBRUmVjdEYoKHgyKnNvdXJjZV93aWR0aCkgLSAo Y3Mvc3gpICsgY3Mvc3gvMi4wLCAoKHkxKnNvdXJjZV9oZWlnaHQreTIqc291cmNlX2hlaWdodCkg LyAyLjApIC0gKGNzL3N5LzIuMCksIGNzL3N4LCBjcy9zeSkKKysgICAgICAgICAgICBzZWxmLnRv cEhhbmRsZSA9IFFSZWN0RigKKysgICAgICAgICAgICAgICAgKCh4MSArIHgyKSAqIHNvdXJjZV93 aWR0aCAtIGNzeCkgLyAyLjAsCisrICAgICAgICAgICAgICAgICh5MSAqIHNvdXJjZV9oZWlnaHQp IC0gY3N5IC8gMi4wLAorKyAgICAgICAgICAgICAgICBjc3gsCisrICAgICAgICAgICAgICAgIGNz eSkKKysgICAgICAgICAgICBzZWxmLmJvdHRvbUhhbmRsZSA9IFFSZWN0RigKKysgICAgICAgICAg ICAgICAgKCh4MSArIHgyKSAqIHNvdXJjZV93aWR0aCAtIGNzeCkgLyAyLjAsCisrICAgICAgICAg ICAgICAgICh5MiAqIHNvdXJjZV9oZWlnaHQpIC0gY3N5IC8gMi4wLAorKyAgICAgICAgICAgICAg ICBjc3gsCisrICAgICAgICAgICAgICAgIGNzeSkKKysgICAgICAgICAgICBzZWxmLmxlZnRIYW5k bGUgPSBRUmVjdEYoCisrICAgICAgICAgICAgICAgICh4MSAqIHNvdXJjZV93aWR0aCkgLSBjc3gg LyAyLjAsCisrICAgICAgICAgICAgICAgICgoeTEgKyB5MikgKiBzb3VyY2VfaGVpZ2h0IC0gY3N5 KSAvIDIuMCwKKysgICAgICAgICAgICAgICAgY3N4LAorKyAgICAgICAgICAgICAgICBjc3kpCisr ICAgICAgICAgICAgc2VsZi5yaWdodEhhbmRsZSA9IFFSZWN0RigKKysgICAgICAgICAgICAgICAg KHgyICogc291cmNlX3dpZHRoKSAtIGNzeCAvIDIuMCwKKysgICAgICAgICAgICAgICAgKCh5MSAr IHkyKSAqIHNvdXJjZV9oZWlnaHQgLSBjc3kpIC8gMi4wLAorKyAgICAgICAgICAgICAgICBjc3gs IGNzeSkKKyAKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgIyBDYWxjdWxhdGUgNCBzaWRl IGNvb3JkaW5hdGVzCistICAgICAgICAgICAgc2VsZi50b3BIYW5kbGUgPSBRUmVjdEYoKHNvdXJj ZV93aWR0aCAvIDIuMCkgLSAoY3Mvc3gvMi4wKSwgLWNzL3N5LzIuMCwgY3Mvc3gsIGNzL3N5KQor LSAgICAgICAgICAgIHNlbGYuYm90dG9tSGFuZGxlID0gUVJlY3RGKChzb3VyY2Vfd2lkdGggLyAy LjApIC0gKGNzL3N4LzIuMCksIHNvdXJjZV9oZWlnaHQgLSAoY3Mvc3kpICsgY3Mvc3kvMi4wLCBj cy9zeCwgY3Mvc3kpCistICAgICAgICAgICAgc2VsZi5sZWZ0SGFuZGxlID0gUVJlY3RGKC1jcy9z eC8yLjAsIChzb3VyY2VfaGVpZ2h0IC8gMi4wKSAtIChjcy9zeS8yLjApLCBjcy9zeCwgY3Mvc3kp CistICAgICAgICAgICAgc2VsZi5yaWdodEhhbmRsZSA9IFFSZWN0Rihzb3VyY2Vfd2lkdGggLSAo Y3Mvc3gpICsgY3Mvc3gvMi4wLCAoc291cmNlX2hlaWdodCAvIDIuMCkgLSAoY3Mvc3kvMi4wKSwg Y3Mvc3gsIGNzL3N5KQorKyAgICAgICAgICAgIHNlbGYudG9wSGFuZGxlID0gUVJlY3RGKAorKyAg ICAgICAgICAgICAgICAoc291cmNlX3dpZHRoIC0gY3N4KSAvIDIuMCwKKysgICAgICAgICAgICAg ICAgLWNzeSAvIDIuMCwKKysgICAgICAgICAgICAgICAgY3N4LAorKyAgICAgICAgICAgICAgICBj c3kpCisrICAgICAgICAgICAgc2VsZi5ib3R0b21IYW5kbGUgPSBRUmVjdEYoCisrICAgICAgICAg ICAgICAgIChzb3VyY2Vfd2lkdGggLSBjc3gpIC8gMi4wLAorKyAgICAgICAgICAgICAgICBzb3Vy Y2VfaGVpZ2h0IC0gKGNzeSAvIDIuMCksCisrICAgICAgICAgICAgICAgIGNzeCwKKysgICAgICAg ICAgICAgICAgY3N5KQorKyAgICAgICAgICAgIHNlbGYubGVmdEhhbmRsZSA9IFFSZWN0RigKKysg ICAgICAgICAgICAgICAgLWNzeCAvIDIuMCwKKysgICAgICAgICAgICAgICAgKHNvdXJjZV9oZWln aHQgLSBjc3kpIC8gMi4wLAorKyAgICAgICAgICAgICAgICBjc3gsCisrICAgICAgICAgICAgICAg IGNzeSkKKysgICAgICAgICAgICBzZWxmLnJpZ2h0SGFuZGxlID0gUVJlY3RGKAorKyAgICAgICAg ICAgICAgICBzb3VyY2Vfd2lkdGggLSAoY3N4IC8gMi4wKSwKKysgICAgICAgICAgICAgICAgKHNv dXJjZV9oZWlnaHQgLSBjc3kpIC8gMi4wLAorKyAgICAgICAgICAgICAgICBjc3gsCisrICAgICAg ICAgICAgICAgIGNzeSkKKyAKKyAgICAgICAgICMgQ2FsY3VsYXRlIHNoZWFyIGhhbmRsZXMKKy0g ICAgICAgIHNlbGYudG9wU2hlYXJIYW5kbGUgPSBRUmVjdEYoc2VsZi50b3BMZWZ0SGFuZGxlLngo KSwgc2VsZi50b3BMZWZ0SGFuZGxlLnkoKSwgc2VsZi5jbGlwQm91bmRzLndpZHRoKCksIHNlbGYu dG9wTGVmdEhhbmRsZS5oZWlnaHQoKSkKKy0gICAgICAgIHNlbGYubGVmdFNoZWFySGFuZGxlID0g UVJlY3RGKHNlbGYudG9wTGVmdEhhbmRsZS54KCksIHNlbGYudG9wTGVmdEhhbmRsZS55KCksIHNl bGYudG9wTGVmdEhhbmRsZS53aWR0aCgpLCBzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkpCistICAg ICAgICBzZWxmLnJpZ2h0U2hlYXJIYW5kbGUgPSBRUmVjdEYoc2VsZi50b3BSaWdodEhhbmRsZS54 KCksIHNlbGYudG9wUmlnaHRIYW5kbGUueSgpLCBzZWxmLnRvcFJpZ2h0SGFuZGxlLndpZHRoKCks IHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSkKKy0gICAgICAgIHNlbGYuYm90dG9tU2hlYXJIYW5k bGUgPSBRUmVjdEYoc2VsZi5ib3R0b21MZWZ0SGFuZGxlLngoKSwgc2VsZi5ib3R0b21MZWZ0SGFu ZGxlLnkoKSwgc2VsZi5jbGlwQm91bmRzLndpZHRoKCksIHNlbGYudG9wTGVmdEhhbmRsZS5oZWln aHQoKSkKKysgICAgICAgIHNlbGYudG9wU2hlYXJIYW5kbGUgPSBRUmVjdEYoCisrICAgICAgICAg ICAgc2VsZi50b3BMZWZ0SGFuZGxlLngoKSwKKysgICAgICAgICAgICBzZWxmLnRvcExlZnRIYW5k bGUueSgpLAorKyAgICAgICAgICAgIHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpLAorKyAgICAgICAg ICAgIHNlbGYudG9wTGVmdEhhbmRsZS5oZWlnaHQoKSkKKysgICAgICAgIHNlbGYubGVmdFNoZWFy SGFuZGxlID0gUVJlY3RGKAorKyAgICAgICAgICAgIHNlbGYudG9wTGVmdEhhbmRsZS54KCksCisr ICAgICAgICAgICAgc2VsZi50b3BMZWZ0SGFuZGxlLnkoKSwKKysgICAgICAgICAgICBzZWxmLnRv cExlZnRIYW5kbGUud2lkdGgoKSwKKysgICAgICAgICAgICBzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0 KCkpCisrICAgICAgICBzZWxmLnJpZ2h0U2hlYXJIYW5kbGUgPSBRUmVjdEYoCisrICAgICAgICAg ICAgc2VsZi50b3BSaWdodEhhbmRsZS54KCksCisrICAgICAgICAgICAgc2VsZi50b3BSaWdodEhh bmRsZS55KCksCisrICAgICAgICAgICAgc2VsZi50b3BSaWdodEhhbmRsZS53aWR0aCgpLAorKyAg ICAgICAgICAgIHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSkKKysgICAgICAgIHNlbGYuYm90dG9t U2hlYXJIYW5kbGUgPSBRUmVjdEYoCisrICAgICAgICAgICAgc2VsZi5ib3R0b21MZWZ0SGFuZGxl LngoKSwKKysgICAgICAgICAgICBzZWxmLmJvdHRvbUxlZnRIYW5kbGUueSgpLAorKyAgICAgICAg ICAgIHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpLAorKyAgICAgICAgICAgIHNlbGYudG9wTGVmdEhh bmRsZS5oZWlnaHQoKSkKKyAKKyAgICAgICAgICMgRHJhdyA0IHNpZGVzIChjZW50ZXJlZCkKKy0g ICAgICAgIHBhaW50ZXIuZHJhd1JlY3Qoc2VsZi50b3BIYW5kbGUpCistICAgICAgICBwYWludGVy LmRyYXdSZWN0KHNlbGYuYm90dG9tSGFuZGxlKQorLSAgICAgICAgcGFpbnRlci5kcmF3UmVjdChz ZWxmLmxlZnRIYW5kbGUpCistICAgICAgICBwYWludGVyLmRyYXdSZWN0KHNlbGYucmlnaHRIYW5k bGUpCistICAgICAgICBwYWludGVyLmRyYXdSZWN0KHNlbGYuY2xpcEJvdW5kcykKKysgICAgICAg IHBhaW50ZXIuZHJhd1JlY3RzKFsKKysgICAgICAgICAgICBzZWxmLnRvcEhhbmRsZSwKKysgICAg ICAgICAgICBzZWxmLmJvdHRvbUhhbmRsZSwKKysgICAgICAgICAgICBzZWxmLmxlZnRIYW5kbGUs CisrICAgICAgICAgICAgc2VsZi5yaWdodEhhbmRsZSwKKysgICAgICAgICAgICBzZWxmLmNsaXBC b3VuZHMsCisrICAgICAgICAgICAgXSkKKyAKKyAgICAgICAgICMgQ2FsY3VsYXRlIGNlbnRlciBj b29yZGluYXRlCistICAgICAgICBpZih4MSBhbmQgeTEgYW5kIHgyIGFuZCB5Mik6CisrICAgICAg ICBpZiBhbGwoW3gxLCB5MSwgeDIsIHkyXSk6CisgICAgICAgICAgICAgY3MgPSA1LjAKKyAgICAg ICAgICAgICBvcyA9IDcuMAorLSAgICAgICAgICAgIHNlbGYuY2VudGVySGFuZGxlID0gUVJlY3RG KCAoKCh4MSpzb3VyY2Vfd2lkdGgreDIqc291cmNlX3dpZHRoKSAvIDIuMCkgKSAtIChvcy9zeCks ICgoKHkxKnNvdXJjZV9oZWlnaHQreTIqc291cmNlX2hlaWdodCkgLyAyLjApICkgLSAob3Mvc3kp LCBvcy9zeCoyLjAsIG9zL3N5KjIuMCkKKysgICAgICAgICAgICBzZWxmLmNlbnRlckhhbmRsZSA9 IFFSZWN0RigKKysgICAgICAgICAgICAgICAgKCh4MSArIHgyKSAqIHNvdXJjZV93aWR0aCAvIDIu MCkgLSAob3MgLyBzeCksCisrICAgICAgICAgICAgICAgICgoeTEgKyB5MikgKiBzb3VyY2VfaGVp Z2h0IC8gMi4wKSAtIChvcyAvIHN5KSwKKysgICAgICAgICAgICAgICAgb3MgLyBzeCAqIDIuMCwK KysgICAgICAgICAgICAgICAgb3MgLyBzeSAqIDIuMAorKyAgICAgICAgICAgICkKKyAgICAgICAg IGVsc2U6CistICAgICAgICAgICAgc2VsZi5jZW50ZXJIYW5kbGUgPSBRUmVjdEYoKHNvdXJjZV93 aWR0aCAqIG9yaWdpbl94KSAtIChvcy9zeCksIChzb3VyY2VfaGVpZ2h0ICogb3JpZ2luX3kpIC0g KG9zL3N5KSwgb3Mvc3gqMi4wLCBvcy9zeSoyLjApCisrICAgICAgICAgICAgc2VsZi5jZW50ZXJI YW5kbGUgPSBRUmVjdEYoCisrICAgICAgICAgICAgICAgIHNvdXJjZV93aWR0aCAqIG9yaWdpbl94 IC0gKG9zIC8gc3gpLAorKyAgICAgICAgICAgICAgICBzb3VyY2VfaGVpZ2h0ICogb3JpZ2luX3kg LSAob3MgLyBzeSksCisrICAgICAgICAgICAgICAgIG9zIC8gc3ggKiAyLjAsCisrICAgICAgICAg ICAgICAgIG9zIC8gc3kgKiAyLjApCisgCisgICAgICAgICAjIERyYXcgb3JpZ2luCisgICAgICAg ICBwYWludGVyLmRyYXdFbGxpcHNlKHNlbGYuY2VudGVySGFuZGxlKQorLSAgICAgICAgcGFpbnRl ci5kcmF3TGluZShzZWxmLmNlbnRlckhhbmRsZS54KCkgKyAoc2VsZi5jZW50ZXJIYW5kbGUud2lk dGgoKS8yLjApLCBzZWxmLmNlbnRlckhhbmRsZS55KCkgKyAoc2VsZi5jZW50ZXJIYW5kbGUuaGVp Z2h0KCkvMi4wKSAtIHNlbGYuY2VudGVySGFuZGxlLmhlaWdodCgpLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmNlbnRlckhhbmRsZS54KCkgKyAoc2VsZi5jZW50ZXJIYW5kbGUu d2lkdGgoKS8yLjApLCBzZWxmLmNlbnRlckhhbmRsZS55KCkgKyAoc2VsZi5jZW50ZXJIYW5kbGUu aGVpZ2h0KCkvMi4wKSArIHNlbGYuY2VudGVySGFuZGxlLmhlaWdodCgpKQorLSAgICAgICAgcGFp bnRlci5kcmF3TGluZShzZWxmLmNlbnRlckhhbmRsZS54KCkgKyAoc2VsZi5jZW50ZXJIYW5kbGUu d2lkdGgoKS8yLjApIC0gc2VsZi5jZW50ZXJIYW5kbGUud2lkdGgoKSwgc2VsZi5jZW50ZXJIYW5k bGUueSgpICsgKHNlbGYuY2VudGVySGFuZGxlLmhlaWdodCgpLzIuMCksCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuY2VudGVySGFuZGxlLngoKSArIChzZWxmLmNlbnRlckhhbmRs ZS53aWR0aCgpLzIuMCkgKyBzZWxmLmNlbnRlckhhbmRsZS53aWR0aCgpLCBzZWxmLmNlbnRlckhh bmRsZS55KCkgKyAoc2VsZi5jZW50ZXJIYW5kbGUuaGVpZ2h0KCkvMi4wKSkKKysKKysgICAgICAg ICMgRHJhdyBjcm9zcyBhdCBvcmlnaW4gY2VudGVyLCBleHRlbmRpbmcgYmV5b25kIGVsbGlwc2Ug YnkgMjUlCisrICAgICAgICBjZW50ZXIgPSBzZWxmLmNlbnRlckhhbmRsZS5jZW50ZXIoKQorKyAg ICAgICAgaGFsZlcgPSBRUG9pbnRGKHNlbGYuY2VudGVySGFuZGxlLndpZHRoKCkgKiAwLjc1LCAw KQorKyAgICAgICAgaGFsZkggPSBRUG9pbnRGKDAsIHNlbGYuY2VudGVySGFuZGxlLmhlaWdodCgp ICogMC43NSkKKysgICAgICAgIHBhaW50ZXIuZHJhd0xpbmVzKAorKyAgICAgICAgICAgIGNlbnRl ciAtIGhhbGZXLCBjZW50ZXIgKyBoYWxmVywKKysgICAgICAgICAgICBjZW50ZXIgLSBoYWxmSCwg Y2VudGVyICsgaGFsZkgsCisrICAgICAgICApCisgCisgICAgICAgICAjIFJlbW92ZSB0cmFuc2Zv cm0KKyAgICAgICAgIHBhaW50ZXIucmVzZXRUcmFuc2Zvcm0oKQorQEAgLTE3OSw3ICsyNzQsMTEg QEAgZGVmIHBhaW50RXZlbnQoc2VsZiwgZXZlbnQsICphcmdzKToKKyAKKyAgICAgICAgICMgUGFp bnQgY3VzdG9tIGZyYW1lIGltYWdlIG9uIFFXaWRnZXQKKyAgICAgICAgIHBhaW50ZXIgPSBRUGFp bnRlcihzZWxmKQorLSAgICAgICAgcGFpbnRlci5zZXRSZW5kZXJIaW50cyhRUGFpbnRlci5BbnRp YWxpYXNpbmcgfCBRUGFpbnRlci5TbW9vdGhQaXhtYXBUcmFuc2Zvcm0gfCBRUGFpbnRlci5UZXh0 QW50aWFsaWFzaW5nLCBUcnVlKQorKyAgICAgICAgcGFpbnRlci5zZXRSZW5kZXJIaW50cygKKysg ICAgICAgICAgICBRUGFpbnRlci5BbnRpYWxpYXNpbmcKKysgICAgICAgICAgICB8IFFQYWludGVy LlNtb290aFBpeG1hcFRyYW5zZm9ybQorKyAgICAgICAgICAgIHwgUVBhaW50ZXIuVGV4dEFudGlh bGlhc2luZywKKysgICAgICAgICAgICBUcnVlKQorIAorICAgICAgICAgIyBGaWxsIHRoZSB3aG9s ZSB3aWRnZXQgd2l0aCB0aGUgc29saWQgY29sb3IKKyAgICAgICAgIHBhaW50ZXIuZmlsbFJlY3Qo ZXZlbnQucmVjdCgpLCBRQ29sb3IoIiMxOTE5MTkiKSkKK0BAIC0xOTEsNyArMjkwLDcgQEAgZGVm IHBhaW50RXZlbnQoc2VsZiwgZXZlbnQsICphcmdzKToKKyAgICAgICAgICAgICAjIERSQVcgRlJB TUUKKyAgICAgICAgICAgICAjIENhbGN1bGF0ZSBuZXcgZnJhbWUgaW1hZ2Ugc2l6ZSwgbWFpbnRh aW5pbmcgYXNwZWN0IHJhdGlvCisgICAgICAgICAgICAgcGl4U2l6ZSA9IHNlbGYuY3VycmVudF9p bWFnZS5zaXplKCkKKy0gICAgICAgICAgICBwaXhTaXplLnNjYWxlKGV2ZW50LnJlY3QoKS53aWR0 aCgpLCBldmVudC5yZWN0KCkuaGVpZ2h0KCksIFF0LktlZXBBc3BlY3RSYXRpbykKKysgICAgICAg ICAgICBwaXhTaXplLnNjYWxlKGV2ZW50LnJlY3QoKS5zaXplKCksIFF0LktlZXBBc3BlY3RSYXRp bykKKyAgICAgICAgICAgICBzZWxmLmN1cnJfZnJhbWVfc2l6ZSA9IHBpeFNpemUKKyAKKyAgICAg ICAgICAgICAjIFNjYWxlIGltYWdlICh0YWtlIGludG8gYWNjb3VudCBkaXNwbGF5IHNjYWxpbmcg Zm9yIEhpZ2ggRFBJIG1vbml0b3JzKQorQEAgLTIyMywxMyArMzIyLDE5IEBAIGRlZiBwYWludEV2 ZW50KHNlbGYsIGV2ZW50LCAqYXJncyk6CisgICAgICAgICAgICAgIyBEZXRlcm1pbmUgb3JpZ2lu YWwgc2l6ZSBvZiBjbGlwJ3MgcmVhZGVyCisgICAgICAgICAgICAgc291cmNlX3dpZHRoID0gc2Vs Zi50cmFuc2Zvcm1pbmdfY2xpcC5kYXRhWydyZWFkZXInXVsnd2lkdGgnXQorICAgICAgICAgICAg IHNvdXJjZV9oZWlnaHQgPSBzZWxmLnRyYW5zZm9ybWluZ19jbGlwLmRhdGFbJ3JlYWRlciddWydo ZWlnaHQnXQorLSAgICAgICAgICAgIHNvdXJjZV9zaXplID0gUVNpemUoc291cmNlX3dpZHRoLCBz b3VyY2VfaGVpZ2h0ICogc2VsZi5waXhlbF9yYXRpby5SZWNpcHJvY2FsKCkuVG9Eb3VibGUoKSkK KysgICAgICAgICAgICBwaXhlbF9hZGp1c3QgPSBzZWxmLnBpeGVsX3JhdGlvLlJlY2lwcm9jYWwo KS5Ub0RvdWJsZSgpCisrICAgICAgICAgICAgc291cmNlX3NpemUgPSBRU2l6ZSgKKysgICAgICAg ICAgICAgICAgaW50KHNvdXJjZV93aWR0aCksCisrICAgICAgICAgICAgICAgIGludChzb3VyY2Vf aGVpZ2h0ICogcGl4ZWxfYWRqdXN0KSkKKyAKKyAgICAgICAgICAgICAjIERldGVybWluZSBzY2Fs ZSBvZiBjbGlwCisgICAgICAgICAgICAgc2NhbGUgPSBzZWxmLnRyYW5zZm9ybWluZ19jbGlwLmRh dGFbJ3NjYWxlJ10KKyAKKyAgICAgICAgICAgICAjIFNldCBzY2FsZSBhcyBTVFJFVENIIGlmIHRo ZSBjbGlwIGlzIGF0dGFjaGVkIHRvIGFuIG9iamVjdAorLSAgICAgICAgICAgIGlmIChyYXdfcHJv cGVydGllcy5nZXQoJ3BhcmVudE9iamVjdElkJykuZ2V0KCdtZW1vJykgIT0gJ05vbmUnIGFuZCBs ZW4ocmF3X3Byb3BlcnRpZXMuZ2V0KCdwYXJlbnRPYmplY3RJZCcpLmdldCgnbWVtbycpKSA+IDAg KToKKysgICAgICAgICAgICBpZiAoCisrICAgICAgICAgICAgICAgICAgICByYXdfcHJvcGVydGll cy5nZXQoJ3BhcmVudE9iamVjdElkJykuZ2V0KCdtZW1vJykgIT0gJ05vbmUnCisrICAgICAgICAg ICAgICAgICAgICBhbmQgbGVuKHJhd19wcm9wZXJ0aWVzLmdldCgncGFyZW50T2JqZWN0SWQnKS5n ZXQoJ21lbW8nKSkgPiAwCisrICAgICAgICAgICAgKToKKyAgICAgICAgICAgICAgICAgc2NhbGUg PSBvcGVuc2hvdC5TQ0FMRV9TVFJFVENICisgCisgICAgICAgICAgICAgaWYgc2NhbGUgPT0gb3Bl bnNob3QuU0NBTEVfRklUOgorQEAgLTIzOSwxMiArMzQ0LDcgQEAgZGVmIHBhaW50RXZlbnQoc2Vs ZiwgZXZlbnQsICphcmdzKToKKyAgICAgICAgICAgICAgICAgc291cmNlX3NpemUuc2NhbGUocGxh eWVyX3dpZHRoLCBwbGF5ZXJfaGVpZ2h0LCBRdC5JZ25vcmVBc3BlY3RSYXRpbykKKyAKKyAgICAg ICAgICAgICBlbGlmIHNjYWxlID09IG9wZW5zaG90LlNDQUxFX0NST1A6CistICAgICAgICAgICAg ICAgIHdpZHRoX3NpemUgPSBRU2l6ZShwbGF5ZXJfd2lkdGgsIHJvdW5kKHBsYXllcl93aWR0aCAv IChmbG9hdChzb3VyY2Vfd2lkdGgpIC8gZmxvYXQoc291cmNlX2hlaWdodCkpKSkKKy0gICAgICAg ICAgICAgICAgaGVpZ2h0X3NpemUgPSBRU2l6ZShyb3VuZChwbGF5ZXJfaGVpZ2h0IC8gKGZsb2F0 KHNvdXJjZV9oZWlnaHQpIC8gZmxvYXQoc291cmNlX3dpZHRoKSkpLCBwbGF5ZXJfaGVpZ2h0KQor LSAgICAgICAgICAgICAgICBpZiB3aWR0aF9zaXplLndpZHRoKCkgPj0gcGxheWVyX3dpZHRoIGFu ZCB3aWR0aF9zaXplLmhlaWdodCgpID49IHBsYXllcl9oZWlnaHQ6CistICAgICAgICAgICAgICAg ICAgICBzb3VyY2Vfc2l6ZS5zY2FsZSh3aWR0aF9zaXplLndpZHRoKCksIHdpZHRoX3NpemUuaGVp Z2h0KCksIFF0LktlZXBBc3BlY3RSYXRpbykKKy0gICAgICAgICAgICAgICAgZWxzZToKKy0gICAg ICAgICAgICAgICAgICAgIHNvdXJjZV9zaXplLnNjYWxlKGhlaWdodF9zaXplLndpZHRoKCksIGhl aWdodF9zaXplLmhlaWdodCgpLCBRdC5LZWVwQXNwZWN0UmF0aW8pCisrICAgICAgICAgICAgICAg IHNvdXJjZV9zaXplLnNjYWxlKHBsYXllcl93aWR0aCwgcGxheWVyX2hlaWdodCwgUXQuS2VlcEFz cGVjdFJhdGlvQnlFeHBhbmRpbmcpCisgCisgICAgICAgICAgICAgIyBHZXQgbmV3IHNvdXJjZSB3 aWR0aCAvIGhlaWdodCAoYWZ0ZXIgc2NhbGluZyBtb2RlIGFwcGxpZWQpCisgICAgICAgICAgICAg c291cmNlX3dpZHRoID0gc291cmNlX3NpemUud2lkdGgoKQorQEAgLTI4NSw5ICszODUsNiBAQCBk ZWYgcGFpbnRFdmVudChzZWxmLCBldmVudCwgKmFyZ3MpOgorICAgICAgICAgICAgICAgICB4ICs9 IHBsYXllcl93aWR0aCAtIHNjYWxlZF9zb3VyY2Vfd2lkdGggICMgcmlnaHQKKyAgICAgICAgICAg ICAgICAgeSArPSAocGxheWVyX2hlaWdodCAtIHNjYWxlZF9zb3VyY2VfaGVpZ2h0KSAgIyBib3R0 b20KKyAKKy0gICAgICAgICAgICAjIFRyYWNrIGdyYXZpdHkgc3RhcnRpbmcgY29vcmRpbmF0ZQor LSAgICAgICAgICAgIHNlbGYuZ3Jhdml0eV9wb2ludCA9IFFQb2ludEYoeCwgeSkKKy0KKyAgICAg ICAgICAgICAjIEFkanVzdCB4LHkgZm9yIGxvY2F0aW9uCisgICAgICAgICAgICAgeF9vZmZzZXQg PSByYXdfcHJvcGVydGllcy5nZXQoJ2xvY2F0aW9uX3gnKS5nZXQoJ3ZhbHVlJykKKyAgICAgICAg ICAgICB5X29mZnNldCA9IHJhd19wcm9wZXJ0aWVzLmdldCgnbG9jYXRpb25feScpLmdldCgndmFs dWUnKQorQEAgLTMyOSw3ICs0MjYsNiBAQCBkZWYgcGFpbnRFdmVudChzZWxmLCBldmVudCwgKmFy Z3MpOgorICAgICAgICAgICAgICAgICAgICAgcmF3X3Byb3BlcnRpZXNfZWZmZWN0ID0ganNvbi5s b2FkcyhzZWxmLnRyYW5zZm9ybWluZ19lZmZlY3Rfb2JqZWN0LlByb3BlcnRpZXNKU09OKGNsaXBf ZnJhbWVfbnVtYmVyKSkKKyAgICAgICAgICAgICAgICAgICAgICMgR2V0IHByb3BlcnRpZXMgZm9y IHRoZSBmaXJzdCBvYmplY3QgaW4gZGljdC4gUHJvcGVydGllc0pTT04gc2hvdWxkIHJldHVybiBv bmUgb2JqZWN0IGF0IHRoZSB0aW1lCisgICAgICAgICAgICAgICAgICAgICB0bXAgPSByYXdfcHJv cGVydGllc19lZmZlY3QuZ2V0KCdvYmplY3RzJykKKy0gICAgICAgICAgICAgICAgICAgIHRtcDIg PSB0bXAua2V5cygpCisgICAgICAgICAgICAgICAgICAgICBvYmpfaWQgPSBsaXN0KHRtcC5rZXlz KCkpWzBdCisgICAgICAgICAgICAgICAgICAgICByYXdfcHJvcGVydGllc19lZmZlY3QgPSByYXdf cHJvcGVydGllc19lZmZlY3QuZ2V0KCdvYmplY3RzJykuZ2V0KG9ial9pZCkKKyAKK0BAIC0zNDIs MTAgKzQzOCwxOSBAQCBkZWYgcGFpbnRFdmVudChzZWxmLCBldmVudCwgKmFyZ3MpOgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB5MSA9IHJhd19wcm9wZXJ0aWVzX2VmZmVjdFsneTEnXVsn dmFsdWUnXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiA9IHJhd19wcm9wZXJ0aWVz X2VmZmVjdFsneDInXVsndmFsdWUnXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MiA9 IHJhd19wcm9wZXJ0aWVzX2VmZmVjdFsneTInXVsndmFsdWUnXQorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmRyYXdUcmFuc2Zvcm1IYW5kbGVyKHBhaW50ZXIsIHN4LCBzeSwgc291 cmNlX3dpZHRoLCBzb3VyY2VfaGVpZ2h0LCBvcmlnaW5feCwgb3JpZ2luX3ksCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB4MSwgeTEsIHgyLCB5Miwgcm90YXRpb24pCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZHJhd1RyYW5zZm9ybUhhbmRsZXIoCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwYWludGVyLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3gsIHN5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291 cmNlX3dpZHRoLCBzb3VyY2VfaGVpZ2h0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb3JpZ2luX3gsIG9yaWdpbl95LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg eDEsIHkxLCB4MiwgeTIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3RhdGlv bikKKyAgICAgICAgICAgICBlbHNlOgorLSAgICAgICAgICAgICAgICBzZWxmLmRyYXdUcmFuc2Zv cm1IYW5kbGVyKHBhaW50ZXIsIHN4LCBzeSwgc291cmNlX3dpZHRoLCBzb3VyY2VfaGVpZ2h0LCBv cmlnaW5feCwgb3JpZ2luX3kpCisrICAgICAgICAgICAgICAgIHNlbGYuZHJhd1RyYW5zZm9ybUhh bmRsZXIoCisrICAgICAgICAgICAgICAgICAgICBwYWludGVyLAorKyAgICAgICAgICAgICAgICAg ICAgc3gsIHN5LAorKyAgICAgICAgICAgICAgICAgICAgc291cmNlX3dpZHRoLCBzb3VyY2VfaGVp Z2h0LAorKyAgICAgICAgICAgICAgICAgICAgb3JpZ2luX3gsIG9yaWdpbl95KQorIAorICAgICAg ICAgaWYgc2VsZi5yZWdpb25fZW5hYmxlZDoKKyAgICAgICAgICAgICAjIFBhaW50IHJlZ2lvbiBz ZWxlY3RvciBvbnRvIHZpZGVvIHByZXZpZXcKK0BAIC0zNzYsMTEgKzQ4MSwyMSBAQCBkZWYgcGFp bnRFdmVudChzZWxmLCBldmVudCwgKmFyZ3MpOgorICAgICAgICAgICAgICAgICBwZW4gPSBRUGVu KFFCcnVzaChRQ29sb3IoIiM1M2EwZWQiKSksIDEuNSkKKyAgICAgICAgICAgICAgICAgcGVuLnNl dENvc21ldGljKFRydWUpCisgICAgICAgICAgICAgICAgIHBhaW50ZXIuc2V0UGVuKHBlbikKKy0g ICAgICAgICAgICAgICAgcGFpbnRlci5kcmF3UmVjdChzZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUu eCgpIC0gKGNzLzIuMC9zZWxmLnpvb20pLCBzZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUueSgpIC0g KGNzLzIuMC9zZWxmLnpvb20pLCBzZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUud2lkdGgoKSAvIHNl bGYuem9vbSwgc2VsZi5yZWdpb25Ub3BMZWZ0SGFuZGxlLmhlaWdodCgpIC8gc2VsZi56b29tKQor LSAgICAgICAgICAgICAgICBwYWludGVyLmRyYXdSZWN0KHNlbGYucmVnaW9uQm90dG9tUmlnaHRI YW5kbGUueCgpIC0gKGNzLzIuMC9zZWxmLnpvb20pLCBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFu ZGxlLnkoKSAtIChjcy8yLjAvc2VsZi56b29tKSwgc2VsZi5yZWdpb25Cb3R0b21SaWdodEhhbmRs ZS53aWR0aCgpIC8gc2VsZi56b29tLCBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlLmhlaWdo dCgpIC8gc2VsZi56b29tKQorLSAgICAgICAgICAgICAgICByZWdpb25fcmVjdCA9IFFSZWN0Rihz ZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUueCgpLCBzZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUueSgp LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlZ2lvbkJv dHRvbVJpZ2h0SGFuZGxlLngoKSAtIHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZS54KCksCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVnaW9uQm90dG9tUmln aHRIYW5kbGUueSgpIC0gc2VsZi5yZWdpb25Ub3BMZWZ0SGFuZGxlLnkoKSkKKysgICAgICAgICAg ICAgICAgcGFpbnRlci5kcmF3UmVjdCgKKysgICAgICAgICAgICAgICAgICAgIHNlbGYucmVnaW9u VG9wTGVmdEhhbmRsZS54KCkgLSAoY3MgLyAyLjAgLyBzZWxmLnpvb20pLAorKyAgICAgICAgICAg ICAgICAgICAgc2VsZi5yZWdpb25Ub3BMZWZ0SGFuZGxlLnkoKSAtIChjcyAvIDIuMCAvIHNlbGYu em9vbSksCisrICAgICAgICAgICAgICAgICAgICBzZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUud2lk dGgoKSAvIHNlbGYuem9vbSwKKysgICAgICAgICAgICAgICAgICAgIHNlbGYucmVnaW9uVG9wTGVm dEhhbmRsZS5oZWlnaHQoKSAvIHNlbGYuem9vbSkKKysgICAgICAgICAgICAgICAgcGFpbnRlci5k cmF3UmVjdCgKKysgICAgICAgICAgICAgICAgICAgIHNlbGYucmVnaW9uQm90dG9tUmlnaHRIYW5k bGUueCgpIC0gKGNzIC8gMi4wIC8gc2VsZi56b29tKSwKKysgICAgICAgICAgICAgICAgICAgIHNl bGYucmVnaW9uQm90dG9tUmlnaHRIYW5kbGUueSgpIC0gKGNzIC8gMi4wIC8gc2VsZi56b29tKSwK KysgICAgICAgICAgICAgICAgICAgIHNlbGYucmVnaW9uQm90dG9tUmlnaHRIYW5kbGUud2lkdGgo KSAvIHNlbGYuem9vbSwKKysgICAgICAgICAgICAgICAgICAgIHNlbGYucmVnaW9uQm90dG9tUmln aHRIYW5kbGUuaGVpZ2h0KCkgLyBzZWxmLnpvb20pCisrICAgICAgICAgICAgICAgIHJlZ2lvbl9y ZWN0ID0gUVJlY3RGKAorKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWdpb25Ub3BMZWZ0SGFu ZGxlLngoKSwKKysgICAgICAgICAgICAgICAgICAgIHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZS55 KCksCisrICAgICAgICAgICAgICAgICAgICBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlLngo KSAtIHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZS54KCksCisrICAgICAgICAgICAgICAgICAgICBz ZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlLnkoKSAtIHNlbGYucmVnaW9uVG9wTGVmdEhhbmRs ZS55KCkpCisgICAgICAgICAgICAgICAgIHBhaW50ZXIuZHJhd1JlY3QocmVnaW9uX3JlY3QpCisg CisgICAgICAgICAgICAgIyBSZW1vdmUgdHJhbnNmb3JtCitAQCAtMzk0LDIzICs1MDksMTUgQEAg ZGVmIHBhaW50RXZlbnQoc2VsZiwgZXZlbnQsICphcmdzKToKKyAgICAgZGVmIGNlbnRlcmVkVmll d3BvcnQoc2VsZiwgd2lkdGgsIGhlaWdodCk6CisgICAgICAgICAiIiIgQ2FsY3VsYXRlIHNpemUg b2Ygdmlld3BvcnQgdG8gbWFpbnRhaW4gYXNwZWN0IHJhdGlvICIiIgorIAorLSAgICAgICAgIyBD YWxjdWxhdGUgcGFkZGluZworLSAgICAgICAgdG9wX3BhZGRpbmcgPSAoaGVpZ2h0IC0gKGhlaWdo dCAqIHNlbGYuem9vbSkpIC8gMi4wCistICAgICAgICBsZWZ0X3BhZGRpbmcgPSAod2lkdGggLSAo d2lkdGggKiBzZWxmLnpvb20pKSAvIDIuMAorKyAgICAgICAgd2luZG93X3NpemUgPSBRU2l6ZUYo d2lkdGgsIGhlaWdodCkKKysgICAgICAgIHdpbmRvd19yZWN0ID0gUVJlY3RGKFFQb2ludEYoMCwg MCksIHdpbmRvd19zaXplKQorIAorLSAgICAgICAgIyBBZGp1c3QgcGFyYW1ldGVycyB0byB6b29t CistICAgICAgICB3aWR0aCA9IHdpZHRoICogc2VsZi56b29tCistICAgICAgICBoZWlnaHQgPSBo ZWlnaHQgKiBzZWxmLnpvb20KKysgICAgICAgIGFzcGVjdFJhdGlvID0gc2VsZi5hc3BlY3RfcmF0 aW8uVG9GbG9hdCgpICogc2VsZi5waXhlbF9yYXRpby5Ub0Zsb2F0KCkKKysgICAgICAgIHZpZXdw b3J0X3NpemUgPSBRU2l6ZUYoYXNwZWN0UmF0aW8sIDEpLnNjYWxlZCh3aW5kb3dfc2l6ZSwgUXQu S2VlcEFzcGVjdFJhdGlvKQorKyAgICAgICAgdmlld3BvcnRfcmVjdCA9IFFSZWN0RihRUG9pbnRG KDAsIDApLCB2aWV3cG9ydF9zaXplKQorKyAgICAgICAgdmlld3BvcnRfcmVjdC5tb3ZlQ2VudGVy KHdpbmRvd19yZWN0LmNlbnRlcigpKQorIAorLSAgICAgICAgIyBDYWxjdWxhdGUgd2hpY2ggZGly ZWN0aW9uIHRvIHNjYWxlIChmb3IgcGVyZmVjdCBjZW50ZXJpbmcpCistICAgICAgICBhc3BlY3RS YXRpbyA9IHNlbGYuYXNwZWN0X3JhdGlvLlRvRmxvYXQoKQorLSAgICAgICAgaGVpZ2h0RnJvbVdp ZHRoID0gd2lkdGggLyBhc3BlY3RSYXRpbworLSAgICAgICAgd2lkdGhGcm9tSGVpZ2h0ID0gaGVp Z2h0ICogYXNwZWN0UmF0aW8KKy0KKy0gICAgICAgIGlmIGhlaWdodEZyb21XaWR0aCA8PSBoZWln aHQ6CistICAgICAgICAgICAgcmV0dXJuIFFSZWN0KGxlZnRfcGFkZGluZywgKChoZWlnaHQgLSBo ZWlnaHRGcm9tV2lkdGgpIC8gMikgKyB0b3BfcGFkZGluZywgd2lkdGgsIGhlaWdodEZyb21XaWR0 aCkKKy0gICAgICAgIGVsc2U6CistICAgICAgICAgICAgcmV0dXJuIFFSZWN0KCgod2lkdGggLSB3 aWR0aEZyb21IZWlnaHQpIC8gMi4wKSArIGxlZnRfcGFkZGluZywgdG9wX3BhZGRpbmcsIHdpZHRo RnJvbUhlaWdodCwgaGVpZ2h0KQorKyAgICAgICAgcmV0dXJuIHZpZXdwb3J0X3JlY3QudG9SZWN0 KCkKKyAKKyAgICAgZGVmIHByZXNlbnQoc2VsZiwgaW1hZ2UsICphcmdzKToKKyAgICAgICAgICIi IiBQcmVzZW50IHRoZSBjdXJyZW50IGZyYW1lICIiIgorQEAgLTQ0OCwxMiArNTU1LDE2IEBAIGRl ZiBtb3VzZVJlbGVhc2VFdmVudChzZWxmLCBldmVudCk6CisgICAgICAgICAjIFRoaXMgY2FuIGJl IHVzZWQgb3RoZXIgd2lkZ2V0cyB0byBkaXNwbGF5IHRoZSBzZWxlY3RlZCByZWdpb24KKyAgICAg ICAgIGlmIHNlbGYucmVnaW9uX2VuYWJsZWQ6CisgICAgICAgICAgICAgIyBHZXQgcmVnaW9uIGNv b3JkaW5hdGVzCistICAgICAgICAgICAgcmVnaW9uX3JlY3QgPSBRUmVjdEYoc2VsZi5yZWdpb25U b3BMZWZ0SGFuZGxlLngoKSwgc2VsZi5yZWdpb25Ub3BMZWZ0SGFuZGxlLnkoKSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlLngo KSAtIHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZS54KCksCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5yZWdpb25Cb3R0b21SaWdodEhhbmRsZS55KCkgLSBzZWxmLnJlZ2lv blRvcExlZnRIYW5kbGUueSgpKS5ub3JtYWxpemVkKCkKKysgICAgICAgICAgICByZWdpb25fcmVj dCA9IFFSZWN0RigKKysgICAgICAgICAgICAgICAgc2VsZi5yZWdpb25Ub3BMZWZ0SGFuZGxlLngo KSwKKysgICAgICAgICAgICAgICAgc2VsZi5yZWdpb25Ub3BMZWZ0SGFuZGxlLnkoKSwKKysgICAg ICAgICAgICAgICAgc2VsZi5yZWdpb25Cb3R0b21SaWdodEhhbmRsZS54KCkgLSBzZWxmLnJlZ2lv blRvcExlZnRIYW5kbGUueCgpLAorKyAgICAgICAgICAgICAgICBzZWxmLnJlZ2lvbkJvdHRvbVJp Z2h0SGFuZGxlLnkoKSAtIHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZS55KCkKKysgICAgICAgICAg ICApLm5vcm1hbGl6ZWQoKQorIAorICAgICAgICAgICAgICMgTWFwIHJlZ2lvbiAoZHVlIHRvIHpv b21pbmcpCistICAgICAgICAgICAgbWFwcGVkX3JlZ2lvbl9yZWN0ID0gc2VsZi5yZWdpb25fdHJh bnNmb3JtLm1hcFRvUG9seWdvbihyZWdpb25fcmVjdC50b1JlY3QoKSkuYm91bmRpbmdSZWN0KCkK KysgICAgICAgICAgICBtYXBwZWRfcmVnaW9uX3JlY3QgPSBzZWxmLnJlZ2lvbl90cmFuc2Zvcm0u bWFwVG9Qb2x5Z29uKAorKyAgICAgICAgICAgICAgICByZWdpb25fcmVjdC50b1JlY3QoKSkuYm91 bmRpbmdSZWN0KCkKKyAKKyAgICAgICAgICAgICAjIFJlbmRlciBhIHNjYWxlZCB2ZXJzaW9uIG9m IHRoZSByZWdpb24gKGFzIGEgUUltYWdlKQorICAgICAgICAgICAgICMgVE9ETzogR3JhYiBoaWdo ZXIgcXVhbGl0eSBwaXhtYXAgZnJvbSB0aGUgUVdpZGdldCwgYXMgdGhpcyBtZXRob2Qgc2VlbXMg dG8gYmUgMS8yIHJlc29sdXRpb24KK0BAIC00NjEsMTQgKzU3MiwyNSBAQCBkZWYgbW91c2VSZWxl YXNlRXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAgICAgIHNjYWxlID0gMy4wCisgCisgICAg ICAgICAgICAgIyBNYXAgcmVjdCB0byB0cmFuc2Zvcm0gKGZvciBzY2FsaW5nIHZpZGVvIGVsZW1l bnRzKQorLSAgICAgICAgICAgIG1hcHBlZF9yZWdpb25fcmVjdCA9IFFSZWN0KG1hcHBlZF9yZWdp b25fcmVjdC54KCksIG1hcHBlZF9yZWdpb25fcmVjdC55KCksIG1hcHBlZF9yZWdpb25fcmVjdC53 aWR0aCgpICogc2NhbGUsIG1hcHBlZF9yZWdpb25fcmVjdC5oZWlnaHQoKSAqIHNjYWxlKQorKyAg ICAgICAgICAgIG1hcHBlZF9yZWdpb25fcmVjdCA9IFFSZWN0KAorKyAgICAgICAgICAgICAgICBt YXBwZWRfcmVnaW9uX3JlY3QueCgpLAorKyAgICAgICAgICAgICAgICBtYXBwZWRfcmVnaW9uX3Jl Y3QueSgpLAorKyAgICAgICAgICAgICAgICBpbnQobWFwcGVkX3JlZ2lvbl9yZWN0LndpZHRoKCkg KiBzY2FsZSksCisrICAgICAgICAgICAgICAgIGludChtYXBwZWRfcmVnaW9uX3JlY3QuaGVpZ2h0 KCkgKiBzY2FsZSkpCisgCisgICAgICAgICAgICAgIyBSZW5kZXIgUVdpZGdldCBvbnRvIHNjYWxl ZCBRSW1hZ2UKKy0gICAgICAgICAgICBzZWxmLnJlZ2lvbl9xaW1hZ2UgPSBRSW1hZ2UobWFwcGVk X3JlZ2lvbl9yZWN0LndpZHRoKCksIG1hcHBlZF9yZWdpb25fcmVjdC5oZWlnaHQoKSwgUUltYWdl LkZvcm1hdF9SR0JBODg4OCkKKysgICAgICAgICAgICBzZWxmLnJlZ2lvbl9xaW1hZ2UgPSBRSW1h Z2UoCisrICAgICAgICAgICAgICAgIG1hcHBlZF9yZWdpb25fcmVjdC5zaXplKCksIFFJbWFnZS5G b3JtYXRfUkdCQTg4ODgpCisgICAgICAgICAgICAgcmVnaW9uX3BhaW50ZXIgPSBRUGFpbnRlcihz ZWxmLnJlZ2lvbl9xaW1hZ2UpCistICAgICAgICAgICAgcmVnaW9uX3BhaW50ZXIuc2V0UmVuZGVy SGludHMoUVBhaW50ZXIuQW50aWFsaWFzaW5nIHwgUVBhaW50ZXIuU21vb3RoUGl4bWFwVHJhbnNm b3JtIHwgUVBhaW50ZXIuVGV4dEFudGlhbGlhc2luZywgVHJ1ZSkKKysgICAgICAgICAgICByZWdp b25fcGFpbnRlci5zZXRSZW5kZXJIaW50cygKKysgICAgICAgICAgICAgICAgUVBhaW50ZXIuQW50 aWFsaWFzaW5nCisrICAgICAgICAgICAgICAgIHwgUVBhaW50ZXIuU21vb3RoUGl4bWFwVHJhbnNm b3JtCisrICAgICAgICAgICAgICAgIHwgUVBhaW50ZXIuVGV4dEFudGlhbGlhc2luZywKKysgICAg ICAgICAgICAgICAgVHJ1ZSkKKyAgICAgICAgICAgICByZWdpb25fcGFpbnRlci5zY2FsZShzY2Fs ZSwgc2NhbGUpCistICAgICAgICAgICAgc2VsZi5yZW5kZXIocmVnaW9uX3BhaW50ZXIsIFFQb2lu dCgwLDApLCBRUmVnaW9uKG1hcHBlZF9yZWdpb25fcmVjdCwgUVJlZ2lvbi5SZWN0YW5nbGUpKQor KyAgICAgICAgICAgIHNlbGYucmVuZGVyKAorKyAgICAgICAgICAgICAgICByZWdpb25fcGFpbnRl ciwgUVBvaW50KDAsIDApLAorKyAgICAgICAgICAgICAgICBRUmVnaW9uKG1hcHBlZF9yZWdpb25f cmVjdCwgUVJlZ2lvbi5SZWN0YW5nbGUpKQorICAgICAgICAgICAgIHJlZ2lvbl9wYWludGVyLmVu ZCgpCisgCisgICAgICAgICAjIEluZm9ybSBVcGRhdGVNYW5hZ2VyIHRvIGFjY2VwdCB1cGRhdGVz LCBhbmQgb25seSBzdG9yZSBvdXIgZmluYWwgdXBkYXRlCitAQCAtNDg0LDcgKzYwNiw4IEBAIGRl ZiBtb3VzZVJlbGVhc2VFdmVudChzZWxmLCBldmVudCk6CisgICAgIGRlZiByb3RhdGVDdXJzb3Io c2VsZiwgcGl4bWFwLCByb3RhdGlvbiwgc2hlYXJfeCwgc2hlYXJfeSk6CisgICAgICAgICAiIiJS b3RhdGUgY3Vyc29yIGJhc2VkIG9uIHRoZSBjdXJyZW50IHRyYW5zZm9ybSIiIgorICAgICAgICAg cm90YXRlZF9waXhtYXAgPSBwaXhtYXAudHJhbnNmb3JtZWQoCistICAgICAgICAgICAgUVRyYW5z Zm9ybSgpLnJvdGF0ZShyb3RhdGlvbikuc2hlYXIoc2hlYXJfeCwgc2hlYXJfeSkuc2NhbGUoMC44 LCAwLjgpLCBRdC5TbW9vdGhUcmFuc2Zvcm1hdGlvbikKKysgICAgICAgICAgICBRVHJhbnNmb3Jt KCkucm90YXRlKHJvdGF0aW9uKS5zaGVhcihzaGVhcl94LCBzaGVhcl95KS5zY2FsZSgwLjgsIDAu OCksCisrICAgICAgICAgICAgUXQuU21vb3RoVHJhbnNmb3JtYXRpb24pCisgICAgICAgICByZXR1 cm4gUUN1cnNvcihyb3RhdGVkX3BpeG1hcCkKKyAKKyAgICAgZGVmIGdldFRyYW5zZm9ybU1vZGUo c2VsZiwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3ksIGV2ZW50KToKK0BAIC02MjcsNiArNzUw LDEwIEBAIGRlZiBtb3VzZU1vdmVFdmVudChzZWxmLCBldmVudCk6CisgCisgICAgICAgICAgICAg IyBUcmFuc2Zvcm0gY2xpcCBvYmplY3QKKyAgICAgICAgICAgICBpZiBzZWxmLnRyYW5zZm9ybV9t b2RlOgorKworKyAgICAgICAgICAgICAgICB4X21vdGlvbiA9IGV2ZW50LnBvcygpLngoKSAtIHNl bGYubW91c2VfcG9zaXRpb24ueCgpCisrICAgICAgICAgICAgICAgIHlfbW90aW9uID0gZXZlbnQu cG9zKCkueSgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi55KCkKKysKKyAgICAgICAgICAgICAgICAg aWYgc2VsZi50cmFuc2Zvcm1fbW9kZSA9PSAnb3JpZ2luJzoKKyAgICAgICAgICAgICAgICAgICAg ICMgR2V0IGN1cnJlbnQga2V5ZnJhbWUgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgIG9yaWdp bl94ID0gcmF3X3Byb3BlcnRpZXMuZ2V0KCdvcmlnaW5feCcpLmdldCgndmFsdWUnKQorQEAgLTYz NSw4ICs3NjIsOCBAQCBkZWYgbW91c2VNb3ZlRXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAg ICAgICAgICAgICAgc2NhbGVfeSA9IHJhd19wcm9wZXJ0aWVzLmdldCgnc2NhbGVfeScpLmdldCgn dmFsdWUnKQorIAorICAgICAgICAgICAgICAgICAgICAgIyBDYWxjdWxhdGUgbmV3IGxvY2F0aW9u IGNvb3JkaW5hdGVzCistICAgICAgICAgICAgICAgICAgICBvcmlnaW5feCArPSAoZXZlbnQucG9z KCkueCgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54KCkpIC8gKHNlbGYuY2xpcEJvdW5kcy53aWR0 aCgpICogc2NhbGVfeCkKKy0gICAgICAgICAgICAgICAgICAgIG9yaWdpbl95ICs9IChldmVudC5w b3MoKS55KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLnkoKSkgLyAoc2VsZi5jbGlwQm91bmRzLmhl aWdodCgpICogc2NhbGVfeSkKKysgICAgICAgICAgICAgICAgICAgIG9yaWdpbl94ICs9IHhfbW90 aW9uIC8gKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpICogc2NhbGVfeCkKKysgICAgICAgICAgICAg ICAgICAgIG9yaWdpbl95ICs9IHlfbW90aW9uIC8gKHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSAq IHNjYWxlX3kpCisgCisgICAgICAgICAgICAgICAgICAgICAjIENvbnN0cmFpbiB0byBjbGlwCisg ICAgICAgICAgICAgICAgICAgICBpZiBvcmlnaW5feCA8IDAuMDoKK0BAIC02NDgsOCArNzc1LDEz IEBAIGRlZiBtb3VzZU1vdmVFdmVudChzZWxmLCBldmVudCk6CisgICAgICAgICAgICAgICAgICAg ICBpZiBvcmlnaW5feSA+IDEuMDoKKyAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5feSA9 IDEuMAorICAgICAgICAgICAgICAgICAgICAgIyBVcGRhdGUga2V5ZnJhbWUgdmFsdWUgKG9yIGNy ZWF0ZSBuZXcgb25lKQorLSAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVDbGlwUHJvcGVy dHkoc2VsZi50cmFuc2Zvcm1pbmdfY2xpcC5pZCwgY2xpcF9mcmFtZV9udW1iZXIsICdvcmlnaW5f eCcsIG9yaWdpbl94LCByZWZyZXNoPUZhbHNlKQorLSAgICAgICAgICAgICAgICAgICAgc2VsZi51 cGRhdGVDbGlwUHJvcGVydHkoc2VsZi50cmFuc2Zvcm1pbmdfY2xpcC5pZCwgY2xpcF9mcmFtZV9u dW1iZXIsICdvcmlnaW5feScsIG9yaWdpbl95KQorKyAgICAgICAgICAgICAgICAgICAgc2VsZi51 cGRhdGVDbGlwUHJvcGVydHkoCisrICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50cmFuc2Zv cm1pbmdfY2xpcC5pZCwgY2xpcF9mcmFtZV9udW1iZXIsCisrICAgICAgICAgICAgICAgICAgICAg ICAgJ29yaWdpbl94Jywgb3JpZ2luX3gsCisrICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVz aD1GYWxzZSkKKysgICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlQ2xpcFByb3BlcnR5KAor KyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuaWQsIGNsaXBf ZnJhbWVfbnVtYmVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICdvcmlnaW5feScsIG9yaWdp bl95KQorIAorICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ2xv Y2F0aW9uJzoKKyAgICAgICAgICAgICAgICAgICAgICMgR2V0IGN1cnJlbnQga2V5ZnJhbWUgdmFs dWUKK0BAIC02NTcsMTIgKzc4OSwxNyBAQCBkZWYgbW91c2VNb3ZlRXZlbnQoc2VsZiwgZXZlbnQp OgorICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb25feSA9IHJhd19wcm9wZXJ0aWVzLmdldCgn bG9jYXRpb25feScpLmdldCgndmFsdWUnKQorIAorICAgICAgICAgICAgICAgICAgICAgIyBDYWxj dWxhdGUgbmV3IGxvY2F0aW9uIGNvb3JkaW5hdGVzCistICAgICAgICAgICAgICAgICAgICBsb2Nh dGlvbl94ICs9IChldmVudC5wb3MoKS54KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLngoKSkgLyB2 aWV3cG9ydF9yZWN0LndpZHRoKCkKKy0gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uX3kgKz0g KGV2ZW50LnBvcygpLnkoKSAtIHNlbGYubW91c2VfcG9zaXRpb24ueSgpKSAvIHZpZXdwb3J0X3Jl Y3QuaGVpZ2h0KCkKKysgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uX3ggKz0geF9tb3Rpb24g LyB2aWV3cG9ydF9yZWN0LndpZHRoKCkKKysgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uX3kg Kz0geV9tb3Rpb24gLyB2aWV3cG9ydF9yZWN0LmhlaWdodCgpCisgCisgICAgICAgICAgICAgICAg ICAgICAjIFVwZGF0ZSBrZXlmcmFtZSB2YWx1ZSAob3IgY3JlYXRlIG5ldyBvbmUpCistICAgICAg ICAgICAgICAgICAgICBzZWxmLnVwZGF0ZUNsaXBQcm9wZXJ0eShzZWxmLnRyYW5zZm9ybWluZ19j bGlwLmlkLCBjbGlwX2ZyYW1lX251bWJlciwgJ2xvY2F0aW9uX3gnLCBsb2NhdGlvbl94LCByZWZy ZXNoPUZhbHNlKQorLSAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVDbGlwUHJvcGVydHko c2VsZi50cmFuc2Zvcm1pbmdfY2xpcC5pZCwgY2xpcF9mcmFtZV9udW1iZXIsICdsb2NhdGlvbl95 JywgbG9jYXRpb25feSkKKysgICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlQ2xpcFByb3Bl cnR5KAorKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuaWQs IGNsaXBfZnJhbWVfbnVtYmVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICdsb2NhdGlvbl94 JywgbG9jYXRpb25feCwKKysgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoPUZhbHNlKQor KyAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVDbGlwUHJvcGVydHkoCisrICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1pbmdfY2xpcC5pZCwgY2xpcF9mcmFtZV9udW1i ZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgJ2xvY2F0aW9uX3knLCBsb2NhdGlvbl95KQor IAorICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NoZWFyX3Rv cCc6CisgICAgICAgICAgICAgICAgICAgICAjIEdldCBjdXJyZW50IGtleWZyYW1lIHNoZWFyIHZh bHVlCitAQCAtNjcyLDExICs4MDksMTMgQEAgZGVmIG1vdXNlTW92ZUV2ZW50KHNlbGYsIGV2ZW50 KToKKyAgICAgICAgICAgICAgICAgICAgICMgQ2FsY3VsYXRlIG5ldyBsb2NhdGlvbiBjb29yZGlu YXRlcworICAgICAgICAgICAgICAgICAgICAgYXNwZWN0X3JhdGlvID0gKHNlbGYuY2xpcEJvdW5k cy53aWR0aCgpIC8gc2VsZi5jbGlwQm91bmRzLmhlaWdodCgpKSAqIDIuMAorICAgICAgICAgICAg ICAgICAgICAgc2hlYXJfeCAtPSAoCistICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucG9z KCkueCgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54KCkpIC8gKAorKyAgICAgICAgICAgICAgICAg ICAgICAgIHhfbW90aW9uKSAvICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5jbGlw Qm91bmRzLndpZHRoKCkgKiBzY2FsZV94KSAvIGFzcGVjdF9yYXRpbykKKyAKKyAgICAgICAgICAg ICAgICAgICAgICMgVXBkYXRlIGtleWZyYW1lIHZhbHVlIChvciBjcmVhdGUgbmV3IG9uZSkKKy0g ICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlQ2xpcFByb3BlcnR5KHNlbGYudHJhbnNmb3Jt aW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLCAnc2hlYXJfeCcsIHNoZWFyX3gpCisrICAg ICAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZUNsaXBQcm9wZXJ0eSgKKysgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnRyYW5zZm9ybWluZ19jbGlwLmlkLCBjbGlwX2ZyYW1lX251bWJlciwK KysgICAgICAgICAgICAgICAgICAgICAgICAnc2hlYXJfeCcsIHNoZWFyX3gpCisgCisgICAgICAg ICAgICAgICAgIGVsaWYgc2VsZi50cmFuc2Zvcm1fbW9kZSA9PSAnc2hlYXJfYm90dG9tJzoKKyAg ICAgICAgICAgICAgICAgICAgICMgR2V0IGN1cnJlbnQga2V5ZnJhbWUgc2hlYXIgdmFsdWUKK0BA IC02ODYsMTEgKzgyNSwxMyBAQCBkZWYgbW91c2VNb3ZlRXZlbnQoc2VsZiwgZXZlbnQpOgorICAg ICAgICAgICAgICAgICAgICAgIyBDYWxjdWxhdGUgbmV3IGxvY2F0aW9uIGNvb3JkaW5hdGVzCisg ICAgICAgICAgICAgICAgICAgICBhc3BlY3RfcmF0aW8gPSAoc2VsZi5jbGlwQm91bmRzLndpZHRo KCkgLyBzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkpICogMi4wCisgICAgICAgICAgICAgICAgICAg ICBzaGVhcl94ICs9ICgKKy0gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wb3MoKS54KCkg LSBzZWxmLm1vdXNlX3Bvc2l0aW9uLngoKSkgLyAoCisrICAgICAgICAgICAgICAgICAgICAgICAg eF9tb3Rpb24pIC8gKAorICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLmNsaXBCb3VuZHMu d2lkdGgoKSAqIHNjYWxlX3gpIC8gYXNwZWN0X3JhdGlvKQorIAorICAgICAgICAgICAgICAgICAg ICAgIyBVcGRhdGUga2V5ZnJhbWUgdmFsdWUgKG9yIGNyZWF0ZSBuZXcgb25lKQorLSAgICAgICAg ICAgICAgICAgICAgc2VsZi51cGRhdGVDbGlwUHJvcGVydHkoc2VsZi50cmFuc2Zvcm1pbmdfY2xp cC5pZCwgY2xpcF9mcmFtZV9udW1iZXIsICdzaGVhcl94Jywgc2hlYXJfeCkKKysgICAgICAgICAg ICAgICAgICAgIHNlbGYudXBkYXRlQ2xpcFByb3BlcnR5KAorKyAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICdzaGVhcl94Jywgc2hlYXJfeCkKKyAKKyAgICAgICAgICAgICAg ICAgZWxpZiBzZWxmLnRyYW5zZm9ybV9tb2RlID09ICdzaGVhcl9sZWZ0JzoKKyAgICAgICAgICAg ICAgICAgICAgICMgR2V0IGN1cnJlbnQga2V5ZnJhbWUgc2hlYXIgdmFsdWUKK0BAIC03MDEsMTEg Kzg0MiwxMyBAQCBkZWYgbW91c2VNb3ZlRXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAgICAg ICAgICAgICAgYXNwZWN0X3JhdGlvID0gKAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu Y2xpcEJvdW5kcy5oZWlnaHQoKSAvIHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpKSAqIDIuMAorICAg ICAgICAgICAgICAgICAgICAgc2hlYXJfeSAtPSAoCistICAgICAgICAgICAgICAgICAgICAgICAg ZXZlbnQucG9zKCkueSgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi55KCkpIC8gKAorKyAgICAgICAg ICAgICAgICAgICAgICAgIHlfbW90aW9uKSAvICgKKyAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkgKiBzY2FsZV95IC8gYXNwZWN0X3JhdGlvKQorIAorICAg ICAgICAgICAgICAgICAgICAgIyBVcGRhdGUga2V5ZnJhbWUgdmFsdWUgKG9yIGNyZWF0ZSBuZXcg b25lKQorLSAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVDbGlwUHJvcGVydHkoc2VsZi50 cmFuc2Zvcm1pbmdfY2xpcC5pZCwgY2xpcF9mcmFtZV9udW1iZXIsICdzaGVhcl95Jywgc2hlYXJf eSkKKysgICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlQ2xpcFByb3BlcnR5KAorKyAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVf bnVtYmVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICdzaGVhcl95Jywgc2hlYXJfeSkKKyAK KyAgICAgICAgICAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybV9tb2RlID09ICdzaGVhcl9yaWdo dCc6CisgICAgICAgICAgICAgICAgICAgICAjIEdldCBjdXJyZW50IGtleWZyYW1lIHNoZWFyIHZh bHVlCitAQCAtNzEzLDEzICs4NTYsMTYgQEAgZGVmIG1vdXNlTW92ZUV2ZW50KHNlbGYsIGV2ZW50 KToKKyAgICAgICAgICAgICAgICAgICAgIHNoZWFyX3kgPSByYXdfcHJvcGVydGllcy5nZXQoJ3No ZWFyX3knKS5nZXQoJ3ZhbHVlJykKKyAKKyAgICAgICAgICAgICAgICAgICAgICMgQ2FsY3VsYXRl IG5ldyBsb2NhdGlvbiBjb29yZGluYXRlcworLSAgICAgICAgICAgICAgICAgICAgYXNwZWN0X3Jh dGlvID0gKHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSAvIHNlbGYuY2xpcEJvdW5kcy53aWR0aCgp KSAqIDIuMAorKyAgICAgICAgICAgICAgICAgICAgYXNwZWN0X3JhdGlvID0gKAorKyAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSAvIHNlbGYuY2xpcEJvdW5k cy53aWR0aCgpKSAqIDIuMAorICAgICAgICAgICAgICAgICAgICAgc2hlYXJfeSArPSAoCistICAg ICAgICAgICAgICAgICAgICAgICAgZXZlbnQucG9zKCkueSgpIC0gc2VsZi5tb3VzZV9wb3NpdGlv bi55KCkpIC8gKAorKyAgICAgICAgICAgICAgICAgICAgICAgIHlfbW90aW9uKSAvICgKKyAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkgKiBzY2FsZV95IC8g YXNwZWN0X3JhdGlvKQorIAorICAgICAgICAgICAgICAgICAgICAgIyBVcGRhdGUga2V5ZnJhbWUg dmFsdWUgKG9yIGNyZWF0ZSBuZXcgb25lKQorLSAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRh dGVDbGlwUHJvcGVydHkoc2VsZi50cmFuc2Zvcm1pbmdfY2xpcC5pZCwgY2xpcF9mcmFtZV9udW1i ZXIsICdzaGVhcl95Jywgc2hlYXJfeSkKKysgICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRl Q2xpcFByb3BlcnR5KAorKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtaW5n X2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICdz aGVhcl95Jywgc2hlYXJfeSkKKyAKKyAgICAgICAgICAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9y bV9tb2RlID09ICdyb3RhdGlvbic6CisgICAgICAgICAgICAgICAgICAgICAjIEdldCBjdXJyZW50 IHJvdGF0aW9uIGtleWZyYW1lIHZhbHVlCitAQCAtNzI4LDcxICs4NzQsNjggQEAgZGVmIG1vdXNl TW92ZUV2ZW50KHNlbGYsIGV2ZW50KToKKyAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgPSBt YXgoZmxvYXQocmF3X3Byb3BlcnRpZXMuZ2V0KCdzY2FsZV95JykuZ2V0KCd2YWx1ZScpKSwgMC4w MDEpCisgCisgICAgICAgICAgICAgICAgICAgICAjIENhbGN1bGF0ZSBuZXcgbG9jYXRpb24gY29v cmRpbmF0ZXMKKy0gICAgICAgICAgICAgICAgICAgIGlzX29uX2xlZnQgPSBldmVudC5wb3MoKS54 KCkgPCBzZWxmLm9yaWdpbkhhbmRsZS54KCkKKysgICAgICAgICAgICAgICAgICAgIGlzX29uX3Jp Z2h0ID0gZXZlbnQucG9zKCkueCgpID4gc2VsZi5vcmlnaW5IYW5kbGUueCgpCisgICAgICAgICAg ICAgICAgICAgICBpc19vbl90b3AgPSBldmVudC5wb3MoKS55KCkgPCBzZWxmLm9yaWdpbkhhbmRs ZS55KCkKKyAKKy0gICAgICAgICAgICAgICAgICAgIGlmIGlzX29uX3RvcDoKKy0gICAgICAgICAg ICAgICAgICAgICAgICByb3RhdGlvbiArPSAoCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGV2ZW50LnBvcygpLngoKSAtIHNlbGYubW91c2VfcG9zaXRpb24ueCgpKSAvICgKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpICogc2NhbGVfeCkg LyA5MCkKKy0gICAgICAgICAgICAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgICAgICAgICAg ICAgcm90YXRpb24gLT0gKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wb3Mo KS54KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLngoKSkgLyAoCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChzZWxmLmNsaXBCb3VuZHMud2lkdGgoKSAqIHNjYWxlX3gpIC8gOTApCistCist ICAgICAgICAgICAgICAgICAgICBpZiBpc19vbl9sZWZ0OgorLSAgICAgICAgICAgICAgICAgICAg ICAgIHJvdGF0aW9uIC09ICgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucG9z KCkueSgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi55KCkpIC8gKAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoc2VsZi5jbGlwQm91bmRzLmhlaWdodCgpICogc2NhbGVfeSkgLyA5MCkKKy0g ICAgICAgICAgICAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRp b24gKz0gKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wb3MoKS55KCkgLSBz ZWxmLm1vdXNlX3Bvc2l0aW9uLnkoKSkgLyAoCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IChzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkgKiBzY2FsZV95KSAvIDkwKQorKyAgICAgICAgICAg ICAgICAgICAgeF9hZGp1c3QgPSB4X21vdGlvbiAvICgoc2VsZi5jbGlwQm91bmRzLndpZHRoKCkg KiBzY2FsZV94KSAvIDkwKQorKyAgICAgICAgICAgICAgICAgICAgcm90YXRpb24gKz0gKHhfYWRq dXN0IGlmIGlzX29uX3RvcCBlbHNlIC14X2FkanVzdCkKKysKKysgICAgICAgICAgICAgICAgICAg IHlfYWRqdXN0ID0geV9tb3Rpb24gLyAoKHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSAqIHNjYWxl X3kpIC8gOTApCisrICAgICAgICAgICAgICAgICAgICByb3RhdGlvbiArPSAoeV9hZGp1c3QgaWYg aXNfb25fcmlnaHQgZWxzZSAteV9hZGp1c3QpCisgCisgICAgICAgICAgICAgICAgICAgICAjIFVw ZGF0ZSBrZXlmcmFtZSB2YWx1ZSAob3IgY3JlYXRlIG5ldyBvbmUpCistICAgICAgICAgICAgICAg ICAgICBzZWxmLnVwZGF0ZUNsaXBQcm9wZXJ0eShzZWxmLnRyYW5zZm9ybWluZ19jbGlwLmlkLCBj bGlwX2ZyYW1lX251bWJlciwgJ3JvdGF0aW9uJywgcm90YXRpb24pCisrICAgICAgICAgICAgICAg ICAgICBzZWxmLnVwZGF0ZUNsaXBQcm9wZXJ0eSgKKysgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnRyYW5zZm9ybWluZ19jbGlwLmlkLAorKyAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBf ZnJhbWVfbnVtYmVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICdyb3RhdGlvbicsIHJvdGF0 aW9uKQorIAorICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUuc3RhcnRz d2l0aCgnc2NhbGVfJyk6CisgICAgICAgICAgICAgICAgICAgICAjIEdldCBjdXJyZW50IHNjYWxl IGtleWZyYW1lIHZhbHVlCisgICAgICAgICAgICAgICAgICAgICBzY2FsZV94ID0gbWF4KGZsb2F0 KHJhd19wcm9wZXJ0aWVzLmdldCgnc2NhbGVfeCcpLmdldCgndmFsdWUnKSksIDAuMDAxKQorICAg ICAgICAgICAgICAgICAgICAgc2NhbGVfeSA9IG1heChmbG9hdChyYXdfcHJvcGVydGllcy5nZXQo J3NjYWxlX3knKS5nZXQoJ3ZhbHVlJykpLCAwLjAwMSkKKyAKKysgICAgICAgICAgICAgICAgICAg IGhhbGZfdyA9IHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpIC8gMi4wCisrICAgICAgICAgICAgICAg ICAgICBoYWxmX2ggPSBzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkgLyAyLjAKKysKKyAgICAgICAg ICAgICAgICAgICAgIGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX3RvcF9yaWdodCc6 CistICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeCArPSAoZXZlbnQucG9zKCkueCgpIC0g c2VsZi5tb3VzZV9wb3NpdGlvbi54KCkpIC8gKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpIC8gMi4w KQorLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgLT0gKGV2ZW50LnBvcygpLnkoKSAt IHNlbGYubW91c2VfcG9zaXRpb24ueSgpKSAvIChzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkgLyAy LjApCisrICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeCArPSB4X21vdGlvbiAvIGhhbGZf dworKyAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgLT0geV9tb3Rpb24gLyBoYWxmX2gK KyAgICAgICAgICAgICAgICAgICAgIGVsaWYgc2VsZi50cmFuc2Zvcm1fbW9kZSA9PSAnc2NhbGVf Ym90dG9tX3JpZ2h0JzoKKy0gICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94ICs9IChldmVu dC5wb3MoKS54KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLngoKSkgLyAoc2VsZi5jbGlwQm91bmRz LndpZHRoKCkgLyAyLjApCistICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeSArPSAoZXZl bnQucG9zKCkueSgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi55KCkpIC8gKHNlbGYuY2xpcEJvdW5k cy5oZWlnaHQoKSAvIDIuMCkKKysgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94ICs9IHhf bW90aW9uIC8gaGFsZl93CisrICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeSArPSB5X21v dGlvbiAvIGhhbGZfaAorICAgICAgICAgICAgICAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybV9t b2RlID09ICdzY2FsZV90b3BfbGVmdCc6CistICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVf eCAtPSAoZXZlbnQucG9zKCkueCgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54KCkpIC8gKHNlbGYu Y2xpcEJvdW5kcy53aWR0aCgpIC8gMi4wKQorLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxl X3kgLT0gKGV2ZW50LnBvcygpLnkoKSAtIHNlbGYubW91c2VfcG9zaXRpb24ueSgpKSAvIChzZWxm LmNsaXBCb3VuZHMuaGVpZ2h0KCkgLyAyLjApCisrICAgICAgICAgICAgICAgICAgICAgICAgc2Nh bGVfeCAtPSB4X21vdGlvbiAvIGhhbGZfdworKyAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxl X3kgLT0geV9tb3Rpb24gLyBoYWxmX2gKKyAgICAgICAgICAgICAgICAgICAgIGVsaWYgc2VsZi50 cmFuc2Zvcm1fbW9kZSA9PSAnc2NhbGVfYm90dG9tX2xlZnQnOgorLSAgICAgICAgICAgICAgICAg ICAgICAgIHNjYWxlX3ggLT0gKGV2ZW50LnBvcygpLngoKSAtIHNlbGYubW91c2VfcG9zaXRpb24u eCgpKSAvIChzZWxmLmNsaXBCb3VuZHMud2lkdGgoKSAvIDIuMCkKKy0gICAgICAgICAgICAgICAg ICAgICAgICBzY2FsZV95ICs9IChldmVudC5wb3MoKS55KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9u LnkoKSkgLyAoc2VsZi5jbGlwQm91bmRzLmhlaWdodCgpIC8gMi4wKQorKyAgICAgICAgICAgICAg ICAgICAgICAgIHNjYWxlX3ggLT0geF9tb3Rpb24gLyBoYWxmX3cKKysgICAgICAgICAgICAgICAg ICAgICAgICBzY2FsZV95ICs9IHlfbW90aW9uIC8gaGFsZl9oCisgICAgICAgICAgICAgICAgICAg ICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX3RvcCc6CistICAgICAgICAgICAg ICAgICAgICAgICAgc2NhbGVfeSAtPSAoZXZlbnQucG9zKCkueSgpIC0gc2VsZi5tb3VzZV9wb3Np dGlvbi55KCkpIC8gKHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSAvIDIuMCkKKysgICAgICAgICAg ICAgICAgICAgICAgICBzY2FsZV95IC09IHlfbW90aW9uIC8gaGFsZl9oCisgICAgICAgICAgICAg ICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX2JvdHRvbSc6CistICAg ICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeSArPSAoZXZlbnQucG9zKCkueSgpIC0gc2VsZi5t b3VzZV9wb3NpdGlvbi55KCkpIC8gKHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSAvIDIuMCkKKysg ICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95ICs9IHlfbW90aW9uIC8gaGFsZl9oCisgICAg ICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX2xlZnQn OgorLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3ggLT0gKGV2ZW50LnBvcygpLngoKSAt IHNlbGYubW91c2VfcG9zaXRpb24ueCgpKSAvIChzZWxmLmNsaXBCb3VuZHMud2lkdGgoKSAvIDIu MCkKKysgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94IC09IHhfbW90aW9uIC8gaGFsZl93 CisgICAgICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxl X3JpZ2h0JzoKKy0gICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94ICs9IChldmVudC5wb3Mo KS54KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLngoKSkgLyAoc2VsZi5jbGlwQm91bmRzLndpZHRo KCkgLyAyLjApCisrICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeCArPSB4X21vdGlvbiAv IGhhbGZfdworIAorICAgICAgICAgICAgICAgICAgICAgaWYgaW50KFFDb3JlQXBwbGljYXRpb24u aW5zdGFuY2UoKS5rZXlib2FyZE1vZGlmaWVycygpICYgUXQuQ29udHJvbE1vZGlmaWVyKSA+IDA6 CisgICAgICAgICAgICAgICAgICAgICAgICAgIyBJZiBDVFJMIGtleSBpcyBwcmVzc2VkLCBmaXgg dGhlIHNjYWxlX3kgdG8gdGhlIGNvcnJlY3QgYXNwZWN0IHJhdGlvbgorLSAgICAgICAgICAgICAg ICAgICAgICAgIGlmIHNjYWxlX3ggYW5kIHNjYWxlX3k6CisrICAgICAgICAgICAgICAgICAgICAg ICAgaWYgc2NhbGVfeDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeSA9IHNj YWxlX3gKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHNjYWxlX3k6CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNjYWxlX3ggPSBzY2FsZV95CistICAgICAgICAgICAgICAgICAg ICAgICAgZWxpZiBzY2FsZV94OgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95 ID0gc2NhbGVfeAorIAorICAgICAgICAgICAgICAgICAgICAgIyBVcGRhdGUga2V5ZnJhbWUgdmFs dWUgKG9yIGNyZWF0ZSBuZXcgb25lKQorICAgICAgICAgICAgICAgICAgICAgYm90aF9zY2FsZWQg PSBzY2FsZV94ICE9IDAuMDAxIGFuZCBzY2FsZV95ICE9IDAuMDAxCisgICAgICAgICAgICAgICAg ICAgICBpZiBzY2FsZV94ICE9IDAuMDAxOgorLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu dXBkYXRlQ2xpcFByb3BlcnR5KHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVf bnVtYmVyLCAnc2NhbGVfeCcsIHNjYWxlX3gsIHJlZnJlc2g9KG5vdCBib3RoX3NjYWxlZCkpCisr ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVDbGlwUHJvcGVydHkoCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuaWQsIGNsaXBfZnJh bWVfbnVtYmVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NhbGVfeCcsIHNjYWxl X3gsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2g9KG5vdCBib3RoX3NjYWxl ZCkpCisgICAgICAgICAgICAgICAgICAgICBpZiBzY2FsZV95ICE9IDAuMDAxOgorLSAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlQ2xpcFByb3BlcnR5KHNlbGYudHJhbnNmb3JtaW5n X2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLCAnc2NhbGVfeScsIHNjYWxlX3kpCisrICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVDbGlwUHJvcGVydHkoCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVt YmVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NhbGVfeScsIHNjYWxlX3kpCisg CisgICAgICAgICAgICAgIyBGb3JjZSByZS1wYWludAorICAgICAgICAgICAgIHNlbGYudXBkYXRl KCkKK0BAIC04MDMsMTYgKzk0NiwyOSBAQCBkZWYgbW91c2VNb3ZlRXZlbnQoc2VsZiwgZXZlbnQp OgorICAgICAgICAgICAgIGNzID0gc2VsZi5jcworIAorICAgICAgICAgICAgICMgQWRqdXN0IGV4 aXN0aW5nIHJlZ2lvbiBjb29yZGluYXRlcyAoaWYgYW55KQorLSAgICAgICAgICAgIGlmIG5vdCBz ZWxmLm1vdXNlX2RyYWdnaW5nIGFuZCBzZWxmLnJlc2l6ZV9idXR0b24uaXNWaXNpYmxlKCkgYW5k IHNlbGYucmVzaXplX2J1dHRvbi5yZWN0KCkuY29udGFpbnMoZXZlbnQucG9zKCkpOgorKyAgICAg ICAgICAgIGlmIChub3Qgc2VsZi5tb3VzZV9kcmFnZ2luZworKyAgICAgICAgICAgICAgICBhbmQg c2VsZi5yZXNpemVfYnV0dG9uLmlzVmlzaWJsZSgpCisrICAgICAgICAgICAgICAgIGFuZCBzZWxm LnJlc2l6ZV9idXR0b24ucmVjdCgpLmNvbnRhaW5zKGV2ZW50LnBvcygpKQorKyAgICAgICAgICAg ICk6CisgICAgICAgICAgICAgICAgICMgTW91c2Ugb3ZlciByZXNpemUgYnV0dG9uIChhbmQgbm90 IGN1cnJlbnRseSBkcmFnZ2luZykKKyAgICAgICAgICAgICAgICAgc2VsZi5zZXRDdXJzb3IoUXQu QXJyb3dDdXJzb3IpCistICAgICAgICAgICAgZWxpZiBzZWxmLnJlZ2lvbl90cmFuc2Zvcm0gYW5k IHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZSBhbmQgc2VsZi5yZWdpb25fdHJhbnNmb3JtLm1hcFRv UG9seWdvbihzZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUudG9SZWN0KCkpLmNvbnRhaW5zUG9pbnQo ZXZlbnQucG9zKCksIFF0Lk9kZEV2ZW5GaWxsKToKKysgICAgICAgICAgICBlbGlmICgKKysgICAg ICAgICAgICAgICAgICAgIHNlbGYucmVnaW9uX3RyYW5zZm9ybQorKyAgICAgICAgICAgICAgICAg ICAgYW5kIHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZQorKyAgICAgICAgICAgICAgICAgICAgYW5k IHNlbGYucmVnaW9uX3RyYW5zZm9ybS5tYXBUb1BvbHlnb24oCisrICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5yZWdpb25Ub3BMZWZ0SGFuZGxlLnRvUmVjdCgpKS5jb250YWluc1BvaW50KGV2 ZW50LnBvcygpLCBRdC5PZGRFdmVuRmlsbCkKKysgICAgICAgICAgICAgICAgICAgICk6CisgICAg ICAgICAgICAgICAgIGlmIG5vdCBzZWxmLnJlZ2lvbl9tb2RlIG9yIHNlbGYucmVnaW9uX21vZGUg PT0gJ3NjYWxlX3RvcF9sZWZ0JzoKKyAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2V0Q3Vyc29y KHNlbGYucm90YXRlQ3Vyc29yKHNlbGYuY3Vyc29ycy5nZXQoJ3Jlc2l6ZV9mZGlhZycpLCAwLCAw LCAwKSkKKyAgICAgICAgICAgICAgICAgIyBTZXQgdGhlIHJlZ2lvbiBtb2RlCisgICAgICAgICAg ICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnJlZ2lvbl9tb2RlOgor ICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWdpb25fbW9kZSA9ICdzY2FsZV90b3BfbGVmdCcK Ky0gICAgICAgICAgICBlbGlmIHNlbGYucmVnaW9uX3RyYW5zZm9ybSBhbmQgc2VsZi5yZWdpb25C b3R0b21SaWdodEhhbmRsZSBhbmQgc2VsZi5yZWdpb25fdHJhbnNmb3JtLm1hcFRvUG9seWdvbihz ZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlLnRvUmVjdCgpKS5jb250YWluc1BvaW50KGV2ZW50 LnBvcygpLCBRdC5PZGRFdmVuRmlsbCk6CisrICAgICAgICAgICAgZWxpZiAoCisrICAgICAgICAg ICAgICAgICAgICBzZWxmLnJlZ2lvbl90cmFuc2Zvcm0KKysgICAgICAgICAgICAgICAgICAgIGFu ZCBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlCisrICAgICAgICAgICAgICAgICAgICBhbmQg c2VsZi5yZWdpb25fdHJhbnNmb3JtLm1hcFRvUG9seWdvbigKKysgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlLnRvUmVjdCgpKS5jb250YWluc1BvaW50 KGV2ZW50LnBvcygpLCBRdC5PZGRFdmVuRmlsbCkKKysgICAgICAgICAgICAgICAgICAgICk6Cisg ICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLnJlZ2lvbl9tb2RlIG9yIHNlbGYucmVnaW9uX21v ZGUgPT0gJ3NjYWxlX2JvdHRvbV9yaWdodCc6CisgICAgICAgICAgICAgICAgICAgICBzZWxmLnNl dEN1cnNvcihzZWxmLnJvdGF0ZUN1cnNvcihzZWxmLmN1cnNvcnMuZ2V0KCdyZXNpemVfZmRpYWcn KSwgMCwgMCwgMCkpCisgICAgICAgICAgICAgICAgICMgU2V0IHRoZSByZWdpb24gbW9kZQorQEAg LTgyNCwxMyArOTgwLDI1IEBAIGRlZiBtb3VzZU1vdmVFdmVudChzZWxmLCBldmVudCk6CisgICAg ICAgICAgICAgIyBJbml0aWFsaXplIG5ldyByZWdpb24gY29vcmRpbmF0ZXMgYXQgY3VycmVudCBl dmVudC5wb3MoKQorICAgICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBz ZWxmLnJlZ2lvbl9tb2RlOgorICAgICAgICAgICAgICAgICBzZWxmLnJlZ2lvbl9tb2RlID0gJ3Nj YWxlX2JvdHRvbV9yaWdodCcKKy0gICAgICAgICAgICAgICAgc2VsZi5yZWdpb25Ub3BMZWZ0SGFu ZGxlID0gUVJlY3RGKHNlbGYucmVnaW9uX3RyYW5zZm9ybV9pbnZlcnRlZC5tYXAoZXZlbnQucG9z KCkpLngoKSwgc2VsZi5yZWdpb25fdHJhbnNmb3JtX2ludmVydGVkLm1hcChldmVudC5wb3MoKSku eSgpLCBjcywgY3MpCistICAgICAgICAgICAgICAgIHNlbGYucmVnaW9uQm90dG9tUmlnaHRIYW5k bGUgPSBRUmVjdEYoc2VsZi5yZWdpb25fdHJhbnNmb3JtX2ludmVydGVkLm1hcChldmVudC5wb3Mo KSkueCgpLCBzZWxmLnJlZ2lvbl90cmFuc2Zvcm1faW52ZXJ0ZWQubWFwKGV2ZW50LnBvcygpKS55 KCksIGNzLCBjcykKKysgICAgICAgICAgICAgICAgc2VsZi5yZWdpb25Ub3BMZWZ0SGFuZGxlID0g UVJlY3RGKAorKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWdpb25fdHJhbnNmb3JtX2ludmVy dGVkLm1hcChldmVudC5wb3MoKSkueCgpLAorKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWdp b25fdHJhbnNmb3JtX2ludmVydGVkLm1hcChldmVudC5wb3MoKSkueSgpLAorKyAgICAgICAgICAg ICAgICAgICAgY3MsIGNzKQorKyAgICAgICAgICAgICAgICBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0 SGFuZGxlID0gUVJlY3RGKAorKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWdpb25fdHJhbnNm b3JtX2ludmVydGVkLm1hcChldmVudC5wb3MoKSkueCgpLAorKyAgICAgICAgICAgICAgICAgICAg c2VsZi5yZWdpb25fdHJhbnNmb3JtX2ludmVydGVkLm1hcChldmVudC5wb3MoKSkueSgpLAorKyAg ICAgICAgICAgICAgICAgICAgY3MsIGNzKQorIAorICAgICAgICAgICAgICMgTW92ZSBleGlzdGlu ZyByZWdpb24gY29vcmRpbmF0ZXMKKyAgICAgICAgICAgICBpZiBzZWxmLm1vdXNlX2RyYWdnaW5n OgorLSAgICAgICAgICAgICAgICBkaWZmX3ggPSBzZWxmLnJlZ2lvbl90cmFuc2Zvcm1faW52ZXJ0 ZWQubWFwKGV2ZW50LnBvcygpKS54KCkgLSBzZWxmLnJlZ2lvbl90cmFuc2Zvcm1faW52ZXJ0ZWQu bWFwKHNlbGYubW91c2VfcG9zaXRpb24pLngoKQorLSAgICAgICAgICAgICAgICBkaWZmX3kgPSBz ZWxmLnJlZ2lvbl90cmFuc2Zvcm1faW52ZXJ0ZWQubWFwKGV2ZW50LnBvcygpKS55KCkgLSBzZWxm LnJlZ2lvbl90cmFuc2Zvcm1faW52ZXJ0ZWQubWFwKHNlbGYubW91c2VfcG9zaXRpb24pLnkoKQor KyAgICAgICAgICAgICAgICBkaWZmX3ggPSBpbnQoCisrICAgICAgICAgICAgICAgICAgICBzZWxm LnJlZ2lvbl90cmFuc2Zvcm1faW52ZXJ0ZWQubWFwKGV2ZW50LnBvcygpKS54KCkKKysgICAgICAg ICAgICAgICAgICAgIC0gc2VsZi5yZWdpb25fdHJhbnNmb3JtX2ludmVydGVkLm1hcChzZWxmLm1v dXNlX3Bvc2l0aW9uKS54KCkKKysgICAgICAgICAgICAgICAgKQorKyAgICAgICAgICAgICAgICBk aWZmX3kgPSBpbnQoCisrICAgICAgICAgICAgICAgICAgICBzZWxmLnJlZ2lvbl90cmFuc2Zvcm1f aW52ZXJ0ZWQubWFwKGV2ZW50LnBvcygpKS55KCkKKysgICAgICAgICAgICAgICAgICAgIC0gc2Vs Zi5yZWdpb25fdHJhbnNmb3JtX2ludmVydGVkLm1hcChzZWxmLm1vdXNlX3Bvc2l0aW9uKS55KCkK KysgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICBpZiBzZWxmLnJlZ2lvbl9tb2Rl ID09ICdzY2FsZV90b3BfbGVmdCc6CisgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlZ2lvblRv cExlZnRIYW5kbGUuYWRqdXN0KGRpZmZfeCwgZGlmZl95LCBkaWZmX3gsIGRpZmZfeSkKKyAgICAg ICAgICAgICAgICAgZWxpZiBzZWxmLnJlZ2lvbl9tb2RlID09ICdzY2FsZV9ib3R0b21fcmlnaHQn OgorQEAgLTg1OSwxMiArMTAyNywxMSBAQCBkZWYgbW91c2VNb3ZlRXZlbnQoc2VsZiwgZXZlbnQp OgorICAgICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnRyYW5z Zm9ybV9tb2RlOgorICAgICAgICAgICAgICAgICBzZWxmLm9yaWdpbmFsX2NsaXBfZGF0YSA9IHNl bGYudHJhbnNmb3JtaW5nX2NsaXAuZGF0YQorIAorLQorLQorICAgICAgICAgICAgIGlmIHNlbGYu dHJhbnNmb3JtaW5nX2VmZmVjdF9vYmplY3QuaW5mby5oYXNfdHJhY2tlZF9vYmplY3Q6CisgICAg ICAgICAgICAgICAgICMgR2V0IHByb3BlcnRpZXMgb2YgZWZmZWN0IGF0IGN1cnJlbnQgZnJhbWUK KyAgICAgICAgICAgICAgICAgcmF3X3Byb3BlcnRpZXMgPSBqc29uLmxvYWRzKHNlbGYudHJhbnNm b3JtaW5nX2VmZmVjdF9vYmplY3QuUHJvcGVydGllc0pTT04oY2xpcF9mcmFtZV9udW1iZXIpKQor LSAgICAgICAgICAgICAgICAgIyBHZXQgcHJvcGVydGllcyBmb3IgdGhlIGZpcnN0IG9iamVjdCBp biBkaWN0LiBQcm9wZXJ0aWVzSlNPTiBzaG91bGQgcmV0dXJuIG9uZSBvYmplY3QgYXQgdGhlIHRp bWUKKysgICAgICAgICAgICAgICAgIyBHZXQgcHJvcGVydGllcyBmb3IgdGhlIGZpcnN0IG9iamVj dCBpbiBkaWN0LgorKyAgICAgICAgICAgICAgICAjIFByb3BlcnRpZXNKU09OIHNob3VsZCByZXR1 cm4gb25lIG9iamVjdCBhdCB0aGUgdGltZQorICAgICAgICAgICAgICAgICBvYmpfaWQgPSBsaXN0 KHJhd19wcm9wZXJ0aWVzLmdldCgnb2JqZWN0cycpLmtleXMoKSlbMF0KKyAgICAgICAgICAgICAg ICAgcmF3X3Byb3BlcnRpZXMgPSByYXdfcHJvcGVydGllcy5nZXQoJ29iamVjdHMnKS5nZXQob2Jq X2lkKQorIAorQEAgLTg3OCwxOCArMTA0NSwyOCBAQCBkZWYgbW91c2VNb3ZlRXZlbnQoc2VsZiwg ZXZlbnQpOgorICAgICAgICAgICAgICAgICAjIFRyYW5zZm9ybSBlZmZlY3Qgb2JqZWN0CisgICAg ICAgICAgICAgICAgIGlmIHNlbGYudHJhbnNmb3JtX21vZGU6CisgCisrICAgICAgICAgICAgICAg ICAgICB4X21vdGlvbiA9IGV2ZW50LnBvcygpLngoKSAtIHNlbGYubW91c2VfcG9zaXRpb24ueCgp CisrICAgICAgICAgICAgICAgICAgICB5X21vdGlvbiA9IGV2ZW50LnBvcygpLnkoKSAtIHNlbGYu bW91c2VfcG9zaXRpb24ueSgpCisrCisgICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLnRyYW5z Zm9ybV9tb2RlID09ICdsb2NhdGlvbic6CisgICAgICAgICAgICAgICAgICAgICAgICAgIyBHZXQg Y3VycmVudCBrZXlmcmFtZSB2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9u X3ggPSByYXdfcHJvcGVydGllcy5nZXQoJ2RlbHRhX3gnKS5nZXQoJ3ZhbHVlJykKKyAgICAgICAg ICAgICAgICAgICAgICAgICBsb2NhdGlvbl95ID0gcmF3X3Byb3BlcnRpZXMuZ2V0KCdkZWx0YV95 JykuZ2V0KCd2YWx1ZScpCisgCisgICAgICAgICAgICAgICAgICAgICAgICAgIyBDYWxjdWxhdGUg bmV3IGxvY2F0aW9uIGNvb3JkaW5hdGVzCistICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRp b25feCArPSAoZXZlbnQucG9zKCkueCgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54KCkpIC8gdmll d3BvcnRfcmVjdC53aWR0aCgpCistICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb25feSAr PSAoZXZlbnQucG9zKCkueSgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi55KCkpIC8gdmlld3BvcnRf cmVjdC5oZWlnaHQoKQorKyAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uX3ggKz0geF9t b3Rpb24gLyB2aWV3cG9ydF9yZWN0LndpZHRoKCkKKysgICAgICAgICAgICAgICAgICAgICAgICBs b2NhdGlvbl95ICs9IHlfbW90aW9uIC8gdmlld3BvcnRfcmVjdC5oZWlnaHQoKQorIAorICAgICAg ICAgICAgICAgICAgICAgICAgICMgVXBkYXRlIGtleWZyYW1lIHZhbHVlIChvciBjcmVhdGUgbmV3 IG9uZSkKKy0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZUVmZmVjdFByb3BlcnR5 KHNlbGYudHJhbnNmb3JtaW5nX2VmZmVjdC5pZCwgY2xpcF9mcmFtZV9udW1iZXIsIG9ial9pZCwg J2RlbHRhX3gnLCBsb2NhdGlvbl94LCByZWZyZXNoPUZhbHNlKQorLSAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYudXBkYXRlRWZmZWN0UHJvcGVydHkoc2VsZi50cmFuc2Zvcm1pbmdfZWZmZWN0 LmlkLCBjbGlwX2ZyYW1lX251bWJlciwgb2JqX2lkLCAnZGVsdGFfeScsIGxvY2F0aW9uX3kpCisr ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVFZmZlY3RQcm9wZXJ0eSgKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1pbmdfZWZmZWN0LmlkLCBjbGlw X2ZyYW1lX251bWJlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqX2lkLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVsdGFfeCcsIGxvY2F0aW9uX3gsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2g9RmFsc2UpCisrICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi51cGRhdGVFZmZlY3RQcm9wZXJ0eSgKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi50cmFuc2Zvcm1pbmdfZWZmZWN0LmlkLCBjbGlwX2ZyYW1lX251bWJlciwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqX2lkLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnZGVsdGFfeScsIGxvY2F0aW9uX3kpCisgCisgICAgICAgICAgICAgICAgICAgICBl bGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3JvdGF0aW9uJzoKKyAgICAgICAgICAgICAgICAg ICAgICAgICAjIEdldCBjdXJyZW50IHJvdGF0aW9uIGtleWZyYW1lIHZhbHVlCitAQCAtODk4LDYz ICsxMDc1LDcwIEBAIGRlZiBtb3VzZU1vdmVFdmVudChzZWxmLCBldmVudCk6CisgICAgICAgICAg ICAgICAgICAgICAgICAgc2NhbGVfeSA9IG1heChmbG9hdChyYXdfcHJvcGVydGllcy5nZXQoJ3Nj YWxlX3knKS5nZXQoJ3ZhbHVlJykpLCAwLjAwMSkKKyAKKyAgICAgICAgICAgICAgICAgICAgICAg ICAjIENhbGN1bGF0ZSBuZXcgbG9jYXRpb24gY29vcmRpbmF0ZXMKKy0gICAgICAgICAgICAgICAg ICAgICAgICBpc19vbl9sZWZ0ID0gZXZlbnQucG9zKCkueCgpIDwgc2VsZi5vcmlnaW5IYW5kbGUu eCgpCisrICAgICAgICAgICAgICAgICAgICAgICAgaXNfb25fcmlnaHQgPSBldmVudC5wb3MoKS54 KCkgPiBzZWxmLm9yaWdpbkhhbmRsZS54KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICBpc19v bl90b3AgPSBldmVudC5wb3MoKS55KCkgPCBzZWxmLm9yaWdpbkhhbmRsZS55KCkKKyAKKy0gICAg ICAgICAgICAgICAgICAgICAgICBpZiBpc19vbl90b3A6CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJvdGF0aW9uICs9IChldmVudC5wb3MoKS54KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9u LngoKSkgLyAoKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpICogc2NhbGVfeCkgLyA5MCkKKy0gICAg ICAgICAgICAgICAgICAgICAgICBlbHNlOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBy b3RhdGlvbiAtPSAoZXZlbnQucG9zKCkueCgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54KCkpIC8g KChzZWxmLmNsaXBCb3VuZHMud2lkdGgoKSAqIHNjYWxlX3gpIC8gOTApCisrICAgICAgICAgICAg ICAgICAgICAgICAgeF9hZGp1c3QgPSB4X21vdGlvbiAvIChzZWxmLmNsaXBCb3VuZHMud2lkdGgo KSAqIHNjYWxlX3ggLyA5MCkKKysgICAgICAgICAgICAgICAgICAgICAgICByb3RhdGlvbiArPSAo eF9hZGp1c3QgaWYgaXNfb25fdG9wIGVsc2UgLXhfYWRqdXN0KQorIAorLSAgICAgICAgICAgICAg ICAgICAgICAgIGlmIGlzX29uX2xlZnQ6CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJv dGF0aW9uIC09IChldmVudC5wb3MoKS55KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLnkoKSkgLyAo KHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSAqIHNjYWxlX3kpIC8gOTApCistICAgICAgICAgICAg ICAgICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb24g Kz0gKGV2ZW50LnBvcygpLnkoKSAtIHNlbGYubW91c2VfcG9zaXRpb24ueSgpKSAvICgoc2VsZi5j bGlwQm91bmRzLmhlaWdodCgpICogc2NhbGVfeSkgLyA5MCkKKysgICAgICAgICAgICAgICAgICAg ICAgICB5X2FkanVzdCA9IHlfbW90aW9uIC8gKHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSAqIHNj YWxlX3kgLyA5MCkKKysgICAgICAgICAgICAgICAgICAgICAgICByb3RhdGlvbiArPSAoeV9hZGp1 c3QgaWYgaXNfb25fcmlnaHQgZWxzZSAteV9hZGp1c3QpCisgCisgICAgICAgICAgICAgICAgICAg ICAgICAgIyBVcGRhdGUga2V5ZnJhbWUgdmFsdWUgKG9yIGNyZWF0ZSBuZXcgb25lKQorLSAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlRWZmZWN0UHJvcGVydHkoc2VsZi50cmFuc2Zv cm1pbmdfZWZmZWN0LmlkLCBjbGlwX2ZyYW1lX251bWJlciwgb2JqX2lkLCAncm90YXRpb24nLCBy b3RhdGlvbikKKysgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZUVmZmVjdFByb3Bl cnR5KAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRyYW5zZm9ybWluZ19lZmZl Y3QuaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBfZnJhbWVfbnVtYmVyLCBv YmpfaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyb3RhdGlvbicsIHJvdGF0aW9u KQorIAorICAgICAgICAgICAgICAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybV9tb2RlLnN0YXJ0 c3dpdGgoJ3NjYWxlXycpOgorICAgICAgICAgICAgICAgICAgICAgICAgICMgR2V0IGN1cnJlbnQg c2NhbGUga2V5ZnJhbWUgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94ID0g bWF4KGZsb2F0KHJhd19wcm9wZXJ0aWVzLmdldCgnc2NhbGVfeCcpLmdldCgndmFsdWUnKSksIDAu MDAxKQorICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgPSBtYXgoZmxvYXQocmF3X3By b3BlcnRpZXMuZ2V0KCdzY2FsZV95JykuZ2V0KCd2YWx1ZScpKSwgMC4wMDEpCisgCisrICAgICAg ICAgICAgICAgICAgICAgICAgaGFsZl93ID0gc2VsZi5jbGlwQm91bmRzLndpZHRoKCkgLyAyLjAK KysgICAgICAgICAgICAgICAgICAgICAgICBoYWxmX2ggPSBzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0 KCkgLyAyLjAKKysKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLnRyYW5zZm9ybV9t b2RlID09ICdzY2FsZV90b3BfcmlnaHQnOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBz Y2FsZV94ICs9IChldmVudC5wb3MoKS54KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLngoKSkgLyAo c2VsZi5jbGlwQm91bmRzLndpZHRoKCkgLyAyLjApCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNjYWxlX3kgLT0gKGV2ZW50LnBvcygpLnkoKSAtIHNlbGYubW91c2VfcG9zaXRpb24ueSgp KSAvIChzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkgLyAyLjApCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNjYWxlX3ggKz0geF9tb3Rpb24gLyBoYWxmX3cKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2NhbGVfeSAtPSB5X21vdGlvbiAvIGhhbGZfaAorICAgICAgICAgICAgICAg ICAgICAgICAgIGVsaWYgc2VsZi50cmFuc2Zvcm1fbW9kZSA9PSAnc2NhbGVfYm90dG9tX3JpZ2h0 JzoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeCArPSAoZXZlbnQucG9zKCku eCgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54KCkpIC8gKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgp IC8gMi4wKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95ICs9IChldmVudC5w b3MoKS55KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLnkoKSkgLyAoc2VsZi5jbGlwQm91bmRzLmhl aWdodCgpIC8gMi4wKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94ICs9IHhf bW90aW9uIC8gaGFsZl93CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgKz0g eV9tb3Rpb24gLyBoYWxmX2gKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJh bnNmb3JtX21vZGUgPT0gJ3NjYWxlX3RvcF9sZWZ0JzoKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2NhbGVfeCAtPSAoZXZlbnQucG9zKCkueCgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54 KCkpIC8gKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpIC8gMi4wKQorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzY2FsZV95IC09IChldmVudC5wb3MoKS55KCkgLSBzZWxmLm1vdXNlX3Bvc2l0 aW9uLnkoKSkgLyAoc2VsZi5jbGlwQm91bmRzLmhlaWdodCgpIC8gMi4wKQorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzY2FsZV94IC09IHhfbW90aW9uIC8gaGFsZl93CisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgLT0geV9tb3Rpb24gLyBoYWxmX2gKKyAgICAgICAg ICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX2JvdHRv bV9sZWZ0JzoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeCAtPSAoZXZlbnQu cG9zKCkueCgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54KCkpIC8gKHNlbGYuY2xpcEJvdW5kcy53 aWR0aCgpIC8gMi4wKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95ICs9IChl dmVudC5wb3MoKS55KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLnkoKSkgLyAoc2VsZi5jbGlwQm91 bmRzLmhlaWdodCgpIC8gMi4wKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94 IC09IHhfbW90aW9uIC8gaGFsZl93CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxl X3kgKz0geV9tb3Rpb24gLyBoYWxmX2gKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHNl bGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX3RvcCc6CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNjYWxlX3kgLT0gKGV2ZW50LnBvcygpLnkoKSAtIHNlbGYubW91c2VfcG9zaXRpb24u eSgpKSAvIChzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkgLyAyLjApCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNjYWxlX3kgLT0geV9tb3Rpb24gLyBoYWxmX2gKKyAgICAgICAgICAgICAg ICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX2JvdHRvbSc6Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgKz0gKGV2ZW50LnBvcygpLnkoKSAt IHNlbGYubW91c2VfcG9zaXRpb24ueSgpKSAvIChzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkgLyAy LjApCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgKz0geV9tb3Rpb24gLyBo YWxmX2gKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUg PT0gJ3NjYWxlX2xlZnQnOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94IC09 IChldmVudC5wb3MoKS54KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLngoKSkgLyAoc2VsZi5jbGlw Qm91bmRzLndpZHRoKCkgLyAyLjApCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxl X3ggLT0geF9tb3Rpb24gLyBoYWxmX3cKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHNl bGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX3JpZ2h0JzoKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2NhbGVfeCArPSAoZXZlbnQucG9zKCkueCgpIC0gc2VsZi5tb3VzZV9wb3NpdGlv bi54KCkpIC8gKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpIC8gMi4wKQorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzY2FsZV94ICs9IHhfbW90aW9uIC8gaGFsZl93CisgCisgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgaW50KFFDb3JlQXBwbGljYXRpb24uaW5zdGFuY2UoKS5rZXlib2Fy ZE1vZGlmaWVycygpICYgUXQuQ29udHJvbE1vZGlmaWVyKSA+IDA6CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMgSWYgQ1RSTCBrZXkgaXMgcHJlc3NlZCwgZml4IHRoZSBzY2FsZV95IHRv IHRoZSBjb3JyZWN0IGFzcGVjdCByYXRpb24KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgc2NhbGVfeCBhbmQgc2NhbGVfeToKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBJ ZiBDVFJMIGtleSBpcyBwcmVzc2VkLCBmaXggdGhlIHNjYWxlX3kgdG8gdGhlIGNvcnJlY3QgYXNw ZWN0IHJhdGlvCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNjYWxlX3g6CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95ID0gc2NhbGVfeAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBlbGlmIHNjYWxlX3k6CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzY2FsZV94ID0gc2NhbGVfeQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBlbGlmIHNjYWxlX3g6CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95 ID0gc2NhbGVfeAorIAorICAgICAgICAgICAgICAgICAgICAgICAgICMgVXBkYXRlIGtleWZyYW1l IHZhbHVlIChvciBjcmVhdGUgbmV3IG9uZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBib3Ro X3NjYWxlZCA9IHNjYWxlX3ggIT0gMC4wMDEgYW5kIHNjYWxlX3kgIT0gMC4wMDEKKyAgICAgICAg ICAgICAgICAgICAgICAgICBpZiBzY2FsZV94ICE9IDAuMDAxOgorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnVwZGF0ZUVmZmVjdFByb3BlcnR5KHNlbGYudHJhbnNmb3JtaW5nX2Vm ZmVjdC5pZCwgY2xpcF9mcmFtZV9udW1iZXIsIG9ial9pZCwgJ3NjYWxlX3gnLCBzY2FsZV94LCBy ZWZyZXNoPShub3QgYm90aF9zY2FsZWQpKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnVwZGF0ZUVmZmVjdFByb3BlcnR5KAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi50cmFuc2Zvcm1pbmdfZWZmZWN0LmlkLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2xpcF9mcmFtZV9udW1iZXIsIG9ial9pZCwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdzY2FsZV94Jywgc2NhbGVfeCwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJlZnJlc2g9KG5vdCBib3RoX3NjYWxlZCkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgc2NhbGVfeSAhPSAwLjAwMToKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi51cGRhdGVFZmZlY3RQcm9wZXJ0eShzZWxmLnRyYW5zZm9ybWluZ19lZmZlY3QuaWQsIGNs aXBfZnJhbWVfbnVtYmVyLCBvYmpfaWQsICdzY2FsZV95Jywgc2NhbGVfeSkKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVFZmZlY3RQcm9wZXJ0eSgKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtaW5nX2VmZmVjdC5pZCwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBfZnJhbWVfbnVtYmVyLCBvYmpfaWQsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NhbGVfeScsIHNjYWxlX3kpCisgCisg ICAgICAgICAgICAgIyBGb3JjZSByZS1wYWludAorICAgICAgICAgICAgIHNlbGYudXBkYXRlKCkK K0BAIC0xMDEyLDggKzExOTYsMTUgQEAgZGVmIHVwZGF0ZUVmZmVjdFByb3BlcnR5KHNlbGYsIGVm ZmVjdF9pZCwgZnJhbWVfbnVtYmVyLCBvYmpfaWQsIHByb3BlcnR5X2tleSwgbmUKKyAgICAgICAg ICAgICAjIE5vIGNsaXAgZm91bmQKKyAgICAgICAgICAgICByZXR1cm4KKyAKKy0gICAgICAgIGZv ciBwb2ludCBpbiBjLmRhdGFbJ29iamVjdHMnXVtvYmpfaWRdW3Byb3BlcnR5X2tleV1bIlBvaW50 cyJdOgorLSAgICAgICAgICAgIGxvZy5pbmZvKCJsb29waW5nIHBvaW50czogY28uWCA9ICVzIiAl IHBvaW50WyJjbyJdWyJYIl0pCisrICAgICAgICB0cnk6CisrICAgICAgICAgICAgcHJvcHMgPSBj LmRhdGFbJ29iamVjdHMnXVtvYmpfaWRdCisrICAgICAgICAgICAgcG9pbnRzX2xpc3QgPSBwcm9w c1twcm9wZXJ0eV9rZXldWyJQb2ludHMiXQorKyAgICAgICAgZXhjZXB0IChUeXBlRXJyb3IsIEtl eUVycm9yKToKKysgICAgICAgICAgICBsb2cuZXJyb3IoIkNvcnJ1cHRlZCBwcm9qZWN0IGRhdGEh IiwgZXhjX2luZm89MSkKKysgICAgICAgICAgICByZXR1cm4KKysKKysgICAgICAgIGZvciBwb2lu dCBpbiBwb2ludHNfbGlzdDoKKysgICAgICAgICAgICBsb2cuaW5mbygibG9vcGluZyBwb2ludHM6 IGNvLlggPSAlcyIsIHBvaW50WyJjbyJdWyJYIl0pCisgCisgICAgICAgICAgICAgaWYgcG9pbnRb ImNvIl1bIlgiXSA9PSBmcmFtZV9udW1iZXI6CisgICAgICAgICAgICAgICAgIGZvdW5kX3BvaW50 ID0gVHJ1ZQorQEAgLTEwMjMsMTIgKzEyMTQsMTUgQEAgZGVmIHVwZGF0ZUVmZmVjdFByb3BlcnR5 KHNlbGYsIGVmZmVjdF9pZCwgZnJhbWVfbnVtYmVyLCBvYmpfaWQsIHByb3BlcnR5X2tleSwgbmUK KyAKKyAgICAgICAgIGlmIG5vdCBmb3VuZF9wb2ludCBhbmQgbmV3X3ZhbHVlICE9IE5vbmU6Cisg ICAgICAgICAgICAgZWZmZWN0X3VwZGF0ZWQgPSBUcnVlCistICAgICAgICAgICAgbG9nLmluZm8o IkNyZWF0ZWQgbmV3IHBvaW50IGF0IFg9JXMiICUgZnJhbWVfbnVtYmVyKQorLSAgICAgICAgICAg IGMuZGF0YVsnb2JqZWN0cyddW29ial9pZF1bcHJvcGVydHlfa2V5XVsiUG9pbnRzIl0uYXBwZW5k KHsnY28nOiB7J1gnOiBmcmFtZV9udW1iZXIsICdZJzogbmV3X3ZhbHVlfSwgJ2ludGVycG9sYXRp b24nOiBvcGVuc2hvdC5CRVpJRVJ9KQorKyAgICAgICAgICAgIGxvZy5pbmZvKCJDcmVhdGVkIG5l dyBwb2ludCBhdCBYPSVzIiwgZnJhbWVfbnVtYmVyKQorKyAgICAgICAgICAgIHBvaW50c19saXN0 LmFwcGVuZCh7CisrICAgICAgICAgICAgICAgICdjbyc6IHsgJ1gnOiBmcmFtZV9udW1iZXIsICdZ JzogbmV3X3ZhbHVlIH0sCisrICAgICAgICAgICAgICAgICdpbnRlcnBvbGF0aW9uJzogb3BlbnNo b3QuQkVaSUVSLAorKyAgICAgICAgICAgICAgICB9KQorIAorICAgICAgICAgIyBSZWR1Y2UgIyBv ZiBjbGlwIHByb3BlcnRpZXMgd2UgYXJlIHNhdmluZyAocGVyZm9ybWFuY2UgYm9vc3QpCisgICAg ICAgICAjVE9ETzogVGhpcyBpcyB0b28gc2xvdyB3aGVuIGRyYWdpbmcgdHJhbnNmb3JtIGhhbmRs ZXJzCistICAgICAgICBjLmRhdGEgPSB7J29iamVjdHMnOiB7b2JqX2lkOiBjLmRhdGEuZ2V0KCdv YmplY3RzJykuZ2V0KG9ial9pZCl9fQorKyAgICAgICAgYy5kYXRhID0geydvYmplY3RzJzoge29i al9pZDogYy5kYXRhLmdldCgnb2JqZWN0cycsIHt9KS5nZXQob2JqX2lkKX19CisgCisgICAgICAg ICBpZiBlZmZlY3RfdXBkYXRlZDoKKyAgICAgICAgICAgICBjLnNhdmUoKQorQEAgLTEwNDAsMTAg KzEyMzQsMTAgQEAgZGVmIHJlZnJlc2hUcmlnZ2VyZWQoc2VsZik6CisgICAgICAgICAiIiJTaWdu YWwgdG8gcmVmcmVzaCB2aWV3cG9ydCAoaS5lLiBhIHByb3BlcnR5IG1pZ2h0IGhhdmUgY2hhbmdl ZCB0aGF0IGVmZmVjdHMgdGhlIHByZXZpZXcpIiIiCisgCisgICAgICAgICAjIFVwZGF0ZSByZWZl cmVuY2UgdG8gY2xpcAorLSAgICAgICAgaWYgc2VsZiBhbmQgc2VsZi50cmFuc2Zvcm1pbmdfY2xp cDoKKysgICAgICAgIGlmIHNlbGYudHJhbnNmb3JtaW5nX2NsaXA6CisgICAgICAgICAgICAgc2Vs Zi50cmFuc2Zvcm1pbmdfY2xpcCA9IENsaXAuZ2V0KGlkPXNlbGYudHJhbnNmb3JtaW5nX2NsaXAu aWQpCisgCistICAgICAgICBpZiBzZWxmIGFuZCBzZWxmLnRyYW5zZm9ybWluZ19lZmZlY3Q6Cisr ICAgICAgICBpZiBzZWxmLnRyYW5zZm9ybWluZ19lZmZlY3Q6CisgICAgICAgICAgICAgc2VsZi50 cmFuc2Zvcm1pbmdfZWZmZWN0ID0gRWZmZWN0LmdldChpZD1zZWxmLnRyYW5zZm9ybWluZ19lZmZl Y3QuaWQpCisgCisgICAgIGRlZiB0cmFuc2Zvcm1UcmlnZ2VyZWQoc2VsZiwgY2xpcF9pZCk6CitA QCAtMTA1Myw3ICsxMjQ3LDcgQEAgZGVmIHRyYW5zZm9ybVRyaWdnZXJlZChzZWxmLCBjbGlwX2lk KToKKyAKKyAgICAgICAgICMgRGlzYWJsZSBUcmFuc2Zvcm0gVUkKKyAgICAgICAgICMgSXMgdGhp cyB0aGUgc2FtZSBjbGlwX2lkIGFscmVhZHkgYmVpbmcgdHJhbnNmb3JtZWQ/CistICAgICAgICBp ZiBzZWxmIGFuZCBzZWxmLnRyYW5zZm9ybWluZ19jbGlwIGFuZCBub3QgY2xpcF9pZDoKKysgICAg ICAgIGlmIHNlbGYudHJhbnNmb3JtaW5nX2NsaXAgYW5kIG5vdCBjbGlwX2lkOgorICAgICAgICAg ICAgICMgQ2xlYXIgdHJhbnNmb3JtCisgICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1pbmdfY2xp cCA9IE5vbmUKKyAgICAgICAgICAgICBuZWVkX3JlZnJlc2ggPSBUcnVlCitAQCAtMTA3OCw3ICsx MjcyLDcgQEAgZGVmIGtleUZyYW1lVHJhbnNmb3JtVHJpZ2dlcmVkKHNlbGYsIGVmZmVjdF9pZCwg Y2xpcF9pZCk6CisgCisgICAgICAgICAjIERpc2FibGUgVHJhbnNmb3JtIFVJCisgICAgICAgICAj IElzIHRoaXMgdGhlIHNhbWUgY2xpcF9pZCBhbHJlYWR5IGJlaW5nIHRyYW5zZm9ybWVkPworLSAg ICAgICAgaWYgc2VsZiBhbmQgc2VsZi50cmFuc2Zvcm1pbmdfZWZmZWN0IGFuZCBub3QgZWZmZWN0 X2lkOgorKyAgICAgICAgaWYgc2VsZi50cmFuc2Zvcm1pbmdfZWZmZWN0IGFuZCBub3QgZWZmZWN0 X2lkOgorICAgICAgICAgICAgICMgQ2xlYXIgdHJhbnNmb3JtCisgICAgICAgICAgICAgc2VsZi50 cmFuc2Zvcm1pbmdfZWZmZWN0ID0gTm9uZQorICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtaW5n X2NsaXAgPSBOb25lCitAQCAtMTEwMiwxMiArMTI5Niw4IEBAIGRlZiBrZXlGcmFtZVRyYW5zZm9y bVRyaWdnZXJlZChzZWxmLCBlZmZlY3RfaWQsIGNsaXBfaWQpOgorIAorICAgICBkZWYgcmVnaW9u VHJpZ2dlcmVkKHNlbGYsIGNsaXBfaWQpOgorICAgICAgICAgIiIiSGFuZGxlIHRoZSAnc2VsZWN0 IHJlZ2lvbicgc2lnbmFsIHdoZW4gaXQncyBlbWl0dGVkIiIiCistICAgICAgICBpZiBzZWxmIGFu ZCBub3QgY2xpcF9pZDoKKy0gICAgICAgICAgICAjIENsZWFyIHRyYW5zZm9ybQorLSAgICAgICAg ICAgIHNlbGYucmVnaW9uX2VuYWJsZWQgPSBGYWxzZQorLSAgICAgICAgZWxzZToKKy0gICAgICAg ICAgICBzZWxmLnJlZ2lvbl9lbmFibGVkID0gVHJ1ZQorLQorKyAgICAgICAgIyBDbGVhciB0cmFu c2Zvcm0KKysgICAgICAgIHNlbGYucmVnaW9uX2VuYWJsZWQgPSBib29sKG5vdCBjbGlwX2lkKQor ICAgICAgICAgZ2V0X2FwcCgpLndpbmRvdy5yZWZyZXNoRnJhbWVTaWduYWwuZW1pdCgpCisgCisg ICAgIGRlZiByZXNpemVFdmVudChzZWxmLCBldmVudCk6CitAQCAtMTEzNSw3ICsxMzI1LDcgQEAg ZGVmIGRlbGF5ZWRfcmVzaXplX2NhbGxiYWNrKHNlbGYpOgorICAgICAgICAgICAgIHJhdGlvID0g ZmxvYXQocHJvamVjdF9zaXplLndpZHRoKCkpIC8gZmxvYXQocHJvamVjdF9zaXplLmhlaWdodCgp KQorICAgICAgICAgICAgIGV2ZW5fd2lkdGggPSByb3VuZChwcm9qZWN0X3NpemUud2lkdGgoKSAv IDIuMCkgKiAyCisgICAgICAgICAgICAgZXZlbl9oZWlnaHQgPSByb3VuZChyb3VuZChldmVuX3dp ZHRoIC8gcmF0aW8pIC8gMi4wKSAqIDIKKy0gICAgICAgICAgICBwcm9qZWN0X3NpemUgPSBRU2l6 ZShldmVuX3dpZHRoLCBldmVuX2hlaWdodCkKKysgICAgICAgICAgICBwcm9qZWN0X3NpemUgPSBR U2l6ZShpbnQoZXZlbl93aWR0aCksIGludChldmVuX2hlaWdodCkpCisgCisgICAgICAgICAjIEVt aXQgc2lnbmFsIHRoYXQgdmlkZW8gd2lkZ2V0IGNoYW5nZWQgc2l6ZQorICAgICAgICAgc2VsZi53 aW4uTWF4U2l6ZUNoYW5nZWQuZW1pdChwcm9qZWN0X3NpemUpCitAQCAtMTE5OSw3ICsxMzg5LDYg QEAgZGVmIF9faW5pdF9fKHNlbGYsIHdhdGNoX3Byb2plY3Q9VHJ1ZSwgKmFyZ3MpOgorICAgICAg ICAgc2VsZi5tb3VzZV9kcmFnZ2luZyA9IEZhbHNlCisgICAgICAgICBzZWxmLm1vdXNlX3Bvc2l0 aW9uID0gTm9uZQorICAgICAgICAgc2VsZi50cmFuc2Zvcm1fbW9kZSA9IE5vbmUKKy0gICAgICAg IHNlbGYuZ3Jhdml0eV9wb2ludCA9IE5vbmUKKyAgICAgICAgIHNlbGYub3JpZ2luYWxfY2xpcF9k YXRhID0gTm9uZQorICAgICAgICAgc2VsZi5yZWdpb25fcWltYWdlID0gTm9uZQorICAgICAgICAg c2VsZi5yZWdpb25fdHJhbnNmb3JtID0gTm9uZQorQEAgLTEyMDgsOCArMTM5Nyw4IEBAIGRlZiBf X2luaXRfXyhzZWxmLCB3YXRjaF9wcm9qZWN0PVRydWUsICphcmdzKToKKyAgICAgICAgIHNlbGYu cmVnaW9uVG9wTGVmdEhhbmRsZSA9IE5vbmUKKyAgICAgICAgIHNlbGYucmVnaW9uQm90dG9tUmln aHRIYW5kbGUgPSBOb25lCisgICAgICAgICBzZWxmLmN1cnJfZnJhbWVfc2l6ZSA9IE5vbmUgIyBG cmFtZSBzaXplCistICAgICAgICBzZWxmLnpvb20gPSAxLjAgIyBab29tIG9mIHdpZGdldCAoZG9l cyBub3QgYWZmZWN0IHZpZGVvLCBvbmx5IHdvcmtzcGFjZSkKKy0gICAgICAgIHNlbGYuY3MgPSAx NC4wICMgQ29ybmVyIHNpemUgb2YgVHJhbnNmb3JtIEhhbmRsZXIgcmVjdGFuZ2xlcworKyAgICAg ICAgc2VsZi56b29tID0gMS4wICAjIFpvb20gb2Ygd2lkZ2V0IChkb2VzIG5vdCBhZmZlY3Qgdmlk ZW8sIG9ubHkgd29ya3NwYWNlKQorKyAgICAgICAgc2VsZi5jcyA9IDE0LjAgICMgQ29ybmVyIHNp emUgb2YgVHJhbnNmb3JtIEhhbmRsZXIgcmVjdGFuZ2xlcworICAgICAgICAgc2VsZi5yZXNpemVf YnV0dG9uID0gUVB1c2hCdXR0b24oXygnUmVzZXQgWm9vbScpLCBzZWxmKQorICAgICAgICAgc2Vs Zi5yZXNpemVfYnV0dG9uLmhpZGUoKQorICAgICAgICAgc2VsZi5yZXNpemVfYnV0dG9uLnNldFN0 eWxlU2hlZXQoJ1FQdXNoQnV0dG9uIHsgbWFyZ2luOiAxMHB4OyBwYWRkaW5nOiAycHg7IH0nKQor QEAgLTEyNTEsNyArMTQ0MCw2IEBAIGRlZiBfX2luaXRfXyhzZWxmLCB3YXRjaF9wcm9qZWN0PVRy dWUsICphcmdzKToKKyAKKyAgICAgICAgICMgU2hvdyBQcm9wZXJ0eSB0aW1lcgorICAgICAgICAg IyBUaW1lciB0byB1c2UgYSBkZWxheSBiZWZvcmUgc2VuZGluZyBNYXhTaXplQ2hhbmdlZCBzaWdu YWxzIChzbyB3ZSBkb24ndCBzcGFtIGxpYm9wZW5zaG90KQorLSAgICAgICAgc2VsZi5kZWxheWVk X3NpemUgPSBOb25lCisgICAgICAgICBzZWxmLmRlbGF5ZWRfcmVzaXplX3RpbWVyID0gUVRpbWVy KHNlbGYpCisgICAgICAgICBzZWxmLmRlbGF5ZWRfcmVzaXplX3RpbWVyLnNldEludGVydmFsKDIw MCkKKyAgICAgICAgIHNlbGYuZGVsYXllZF9yZXNpemVfdGltZXIuc2V0U2luZ2xlU2hvdChUcnVl KQorZGlmZiAtLWdpdCBhL3NyYy93aW5kb3dzL3ZpZXdzL2VmZmVjdHNfbGlzdHZpZXcucHkgYi9z cmMvd2luZG93cy92aWV3cy9lZmZlY3RzX2xpc3R2aWV3LnB5CitpbmRleCBiN2RhMjhkYzQuLjNj ZTNiNDE2NCAxMDA2NDQKKy0tLSBhL3NyYy93aW5kb3dzL3ZpZXdzL2VmZmVjdHNfbGlzdHZpZXcu cHkKKysrKyBiL3NyYy93aW5kb3dzL3ZpZXdzL2VmZmVjdHNfbGlzdHZpZXcucHkKK0BAIC0zNiw3 ICszNiw4IEBACisgCisgY2xhc3MgRWZmZWN0c0xpc3RWaWV3KFFMaXN0Vmlldyk6CisgICAgICIi IiBBIFRyZWVWaWV3IFFXaWRnZXQgdXNlZCBvbiB0aGUgbWFpbiB3aW5kb3cgIiIiCistICAgIGRy YWdfaXRlbV9zaXplID0gNDgKKysgICAgZHJhZ19pdGVtX3NpemUgPSBRU2l6ZSg0OCwgNDgpCisr ICAgIGRyYWdfaXRlbV9jZW50ZXIgPSBRUG9pbnQoMjQsIDI0KQorIAorICAgICBkZWYgY29udGV4 dE1lbnVFdmVudChzZWxmLCBldmVudCk6CisgICAgICAgICAjIFNldCBjb250ZXh0IG1lbnUgbW9k ZQorQEAgLTY5LDggKzcwLDggQEAgZGVmIHN0YXJ0RHJhZyhzZWxmLCBldmVudCk6CisgICAgICAg ICAjIFN0YXJ0IGRyYWcgb3BlcmF0aW9uCisgICAgICAgICBkcmFnID0gUURyYWcoc2VsZikKKyAg ICAgICAgIGRyYWcuc2V0TWltZURhdGEoc2VsZi5tb2RlbCgpLm1pbWVEYXRhKHNlbGVjdGVkKSkK Ky0gICAgICAgIGRyYWcuc2V0UGl4bWFwKGljb24ucGl4bWFwKFFTaXplKHNlbGYuZHJhZ19pdGVt X3NpemUsIHNlbGYuZHJhZ19pdGVtX3NpemUpKSkKKy0gICAgICAgIGRyYWcuc2V0SG90U3BvdChR UG9pbnQoc2VsZi5kcmFnX2l0ZW1fc2l6ZSAvIDIsIHNlbGYuZHJhZ19pdGVtX3NpemUgLyAyKSkK KysgICAgICAgIGRyYWcuc2V0UGl4bWFwKGljb24ucGl4bWFwKHNlbGYuZHJhZ19pdGVtX3NpemUp KQorKyAgICAgICAgZHJhZy5zZXRIb3RTcG90KHNlbGYuZHJhZ19pdGVtX2NlbnRlcikKKyAgICAg ICAgIGRyYWcuZXhlY18oKQorIAorICAgICBkZWYgZmlsdGVyX2NoYW5nZWQoc2VsZik6CitkaWZm IC0tZ2l0IGEvc3JjL3dpbmRvd3Mvdmlld3MvZWZmZWN0c190cmVldmlldy5weSBiL3NyYy93aW5k b3dzL3ZpZXdzL2VmZmVjdHNfdHJlZXZpZXcucHkKK2luZGV4IDZhNWFiNzlmNC4uOTEwNTkzNTI0 IDEwMDY0NAorLS0tIGEvc3JjL3dpbmRvd3Mvdmlld3MvZWZmZWN0c190cmVldmlldy5weQorKysr IGIvc3JjL3dpbmRvd3Mvdmlld3MvZWZmZWN0c190cmVldmlldy5weQorQEAgLTM2LDcgKzM2LDgg QEAKKyAKKyBjbGFzcyBFZmZlY3RzVHJlZVZpZXcoUVRyZWVWaWV3KToKKyAgICAgIiIiIEEgVHJl ZVZpZXcgUVdpZGdldCB1c2VkIG9uIHRoZSBtYWluIHdpbmRvdyAiIiIKKy0gICAgZHJhZ19pdGVt X3NpemUgPSA0OAorKyAgICBkcmFnX2l0ZW1fc2l6ZSA9IFFTaXplKDQ4LCA0OCkKKysgICAgZHJh Z19pdGVtX2NlbnRlciA9IFFQb2ludCgyNCwgMjQpCisgCisgICAgIGRlZiBjb250ZXh0TWVudUV2 ZW50KHNlbGYsIGV2ZW50KToKKyAgICAgICAgICMgU2V0IGNvbnRleHQgbWVudSBtb2RlCitAQCAt NzAsOCArNzEsOCBAQCBkZWYgc3RhcnREcmFnKHNlbGYsIHN1cHBvcnRlZEFjdGlvbnMpOgorICAg ICAgICAgIyBTdGFydCBkcmFnIG9wZXJhdGlvbgorICAgICAgICAgZHJhZyA9IFFEcmFnKHNlbGYp CisgICAgICAgICBkcmFnLnNldE1pbWVEYXRhKHNlbGYubW9kZWwoKS5taW1lRGF0YShzZWxlY3Rl ZCkpCistICAgICAgICBkcmFnLnNldFBpeG1hcChpY29uLnBpeG1hcChRU2l6ZShzZWxmLmRyYWdf aXRlbV9zaXplLCBzZWxmLmRyYWdfaXRlbV9zaXplKSkpCistICAgICAgICBkcmFnLnNldEhvdFNw b3QoUVBvaW50KHNlbGYuZHJhZ19pdGVtX3NpemUgLyAyLCBzZWxmLmRyYWdfaXRlbV9zaXplIC8g MikpCisrICAgICAgICBkcmFnLnNldFBpeG1hcChpY29uLnBpeG1hcChzZWxmLmRyYWdfaXRlbV9z aXplKSkKKysgICAgICAgIGRyYWcuc2V0SG90U3BvdChzZWxmLmRyYWdfaXRlbV9jZW50ZXIpCisg ICAgICAgICBkcmFnLmV4ZWNfKCkKKyAKKyAgICAgZGVmIHJlZnJlc2hfY29sdW1ucyhzZWxmKToK K2RpZmYgLS1naXQgYS9zcmMvd2luZG93cy92aWV3cy9lbW9qaXNfbGlzdHZpZXcucHkgYi9zcmMv d2luZG93cy92aWV3cy9lbW9qaXNfbGlzdHZpZXcucHkKK2luZGV4IDZmMDliYzU2Mi4uY2IxM2Mz NWE3IDEwMDY0NAorLS0tIGEvc3JjL3dpbmRvd3Mvdmlld3MvZW1vamlzX2xpc3R2aWV3LnB5Cisr KysgYi9zcmMvd2luZG93cy92aWV3cy9lbW9qaXNfbGlzdHZpZXcucHkKK0BAIC0zOSw3ICszOSw4 IEBACisgCisgY2xhc3MgRW1vamlzTGlzdFZpZXcoUUxpc3RWaWV3KToKKyAgICAgIiIiIEEgUUxp c3RWaWV3IFFXaWRnZXQgdXNlZCBvbiB0aGUgbWFpbiB3aW5kb3cgIiIiCistICAgIGRyYWdfaXRl bV9zaXplID0gNDgKKysgICAgZHJhZ19pdGVtX3NpemUgPSBRU2l6ZSg0OCwgNDgpCisrICAgIGRy YWdfaXRlbV9jZW50ZXIgPSBRUG9pbnQoMjQsIDI0KQorIAorICAgICBkZWYgZHJhZ0VudGVyRXZl bnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAgIyBJZiBkcmFnZ2luZyB1cmxzIG9udG8gd2lkZ2V0 LCBhY2NlcHQKK0BAIC01Nyw4ICs1OCw4IEBAIGRlZiBzdGFydERyYWcoc2VsZiwgZXZlbnQpOgor ICAgICAgICAgZHJhZyA9IFFEcmFnKHNlbGYpCisgICAgICAgICBkcmFnLnNldE1pbWVEYXRhKHNl bGYubW9kZWwubWltZURhdGEoc2VsZWN0ZWQpKQorICAgICAgICAgaWNvbiA9IHNlbGYubW9kZWwu ZGF0YShzZWxlY3RlZFswXSwgUXQuRGVjb3JhdGlvblJvbGUpCistICAgICAgICBkcmFnLnNldFBp eG1hcChpY29uLnBpeG1hcChRU2l6ZShzZWxmLmRyYWdfaXRlbV9zaXplLCBzZWxmLmRyYWdfaXRl bV9zaXplKSkpCistICAgICAgICBkcmFnLnNldEhvdFNwb3QoUVBvaW50KHNlbGYuZHJhZ19pdGVt X3NpemUgLyAyLCBzZWxmLmRyYWdfaXRlbV9zaXplIC8gMikpCisrICAgICAgICBkcmFnLnNldFBp eG1hcChpY29uLnBpeG1hcChzZWxmLmRyYWdfaXRlbV9zaXplKSkKKysgICAgICAgIGRyYWcuc2V0 SG90U3BvdChzZWxmLmRyYWdfaXRlbV9jZW50ZXIpCisgCisgICAgICAgICAjIENyZWF0ZSBlbW9q aSBmaWxlIGJlZm9yZSBkcmFnIHN0YXJ0cworICAgICAgICAgZGF0YSA9IGpzb24ubG9hZHMoZHJh Zy5taW1lRGF0YSgpLnRleHQoKSkKK2RpZmYgLS1naXQgYS9zcmMvd2luZG93cy92aWV3cy9maWxl c19saXN0dmlldy5weSBiL3NyYy93aW5kb3dzL3ZpZXdzL2ZpbGVzX2xpc3R2aWV3LnB5CitpbmRl eCA4M2NkZDAyNzIuLjBlNjczMDZhZSAxMDA2NDQKKy0tLSBhL3NyYy93aW5kb3dzL3ZpZXdzL2Zp bGVzX2xpc3R2aWV3LnB5CisrKysgYi9zcmMvd2luZG93cy92aWV3cy9maWxlc19saXN0dmlldy5w eQorQEAgLTM4LDcgKzM4LDggQEAKKyAKKyBjbGFzcyBGaWxlc0xpc3RWaWV3KFFMaXN0Vmlldyk6 CisgICAgICIiIiBBIExpc3RWaWV3IFFXaWRnZXQgdXNlZCBvbiB0aGUgbWFpbiB3aW5kb3cgIiIi CistICAgIGRyYWdfaXRlbV9zaXplID0gNDgKKysgICAgZHJhZ19pdGVtX3NpemUgPSBRU2l6ZSg0 OCwgNDgpCisrICAgIGRyYWdfaXRlbV9jZW50ZXIgPSBRUG9pbnQoMjQsIDI0KQorIAorICAgICBk ZWYgY29udGV4dE1lbnVFdmVudChzZWxmLCBldmVudCk6CisgICAgICAgICBldmVudC5hY2NlcHQo KQorQEAgLTExMyw4ICsxMTQsOCBAQCBkZWYgc3RhcnREcmFnKHNlbGYsIHN1cHBvcnRlZEFjdGlv bnMpOgorICAgICAgICAgIyBTdGFydCBkcmFnIG9wZXJhdGlvbgorICAgICAgICAgZHJhZyA9IFFE cmFnKHNlbGYpCisgICAgICAgICBkcmFnLnNldE1pbWVEYXRhKHNlbGYubW9kZWwoKS5taW1lRGF0 YShzZWxlY3RlZCkpCistICAgICAgICBkcmFnLnNldFBpeG1hcChpY29uLnBpeG1hcChRU2l6ZShz ZWxmLmRyYWdfaXRlbV9zaXplLCBzZWxmLmRyYWdfaXRlbV9zaXplKSkpCistICAgICAgICBkcmFn LnNldEhvdFNwb3QoUVBvaW50KHNlbGYuZHJhZ19pdGVtX3NpemUgLyAyLCBzZWxmLmRyYWdfaXRl bV9zaXplIC8gMikpCisrICAgICAgICBkcmFnLnNldFBpeG1hcChpY29uLnBpeG1hcChzZWxmLmRy YWdfaXRlbV9zaXplKSkKKysgICAgICAgIGRyYWcuc2V0SG90U3BvdChzZWxmLmRyYWdfaXRlbV9j ZW50ZXIpCisgICAgICAgICBkcmFnLmV4ZWNfKCkKKyAKKyAgICAgIyBXaXRob3V0IGRlZmluaW5n IHRoaXMgbWV0aG9kLCB0aGUgJ2NvcHknIGFjdGlvbiBkb2Vzbid0IHNob3cgd2l0aCBjdXJzb3IK K2RpZmYgLS1naXQgYS9zcmMvd2luZG93cy92aWV3cy9maWxlc190cmVldmlldy5weSBiL3NyYy93 aW5kb3dzL3ZpZXdzL2ZpbGVzX3RyZWV2aWV3LnB5CitpbmRleCBkM2ZlNzRkODguLjc3NmI3MWNj MiAxMDA2NDQKKy0tLSBhL3NyYy93aW5kb3dzL3ZpZXdzL2ZpbGVzX3RyZWV2aWV3LnB5CisrKysg Yi9zcmMvd2luZG93cy92aWV3cy9maWxlc190cmVldmlldy5weQorQEAgLTQxLDcgKzQxLDggQEAK KyAKKyBjbGFzcyBGaWxlc1RyZWVWaWV3KFFUcmVlVmlldyk6CisgICAgICIiIiBBIFRyZWVWaWV3 IFFXaWRnZXQgdXNlZCBvbiB0aGUgbWFpbiB3aW5kb3cgIiIiCistICAgIGRyYWdfaXRlbV9zaXpl ID0gNDgKKysgICAgZHJhZ19pdGVtX3NpemUgPSBRU2l6ZSg0OCwgNDgpCisrICAgIGRyYWdfaXRl bV9jZW50ZXIgPSBRUG9pbnQoMjQsIDI0KQorIAorICAgICBkZWYgY29udGV4dE1lbnVFdmVudChz ZWxmLCBldmVudCk6CisgCitAQCAtMTE0LDggKzExNSw4IEBAIGRlZiBzdGFydERyYWcoc2VsZiwg c3VwcG9ydGVkQWN0aW9ucyk6CisgICAgICAgICAjIFN0YXJ0IGRyYWcgb3BlcmF0aW9uCisgICAg ICAgICBkcmFnID0gUURyYWcoc2VsZikKKyAgICAgICAgIGRyYWcuc2V0TWltZURhdGEoc2VsZi5t b2RlbCgpLm1pbWVEYXRhKHNlbGVjdGVkKSkKKy0gICAgICAgIGRyYWcuc2V0UGl4bWFwKGljb24u cGl4bWFwKFFTaXplKHNlbGYuZHJhZ19pdGVtX3NpemUsIHNlbGYuZHJhZ19pdGVtX3NpemUpKSkK Ky0gICAgICAgIGRyYWcuc2V0SG90U3BvdChRUG9pbnQoc2VsZi5kcmFnX2l0ZW1fc2l6ZSAvIDIs IHNlbGYuZHJhZ19pdGVtX3NpemUgLyAyKSkKKysgICAgICAgIGRyYWcuc2V0UGl4bWFwKGljb24u cGl4bWFwKHNlbGYuZHJhZ19pdGVtX3NpemUpKQorKyAgICAgICAgZHJhZy5zZXRIb3RTcG90KHNl bGYuZHJhZ19pdGVtX2NlbnRlcikKKyAgICAgICAgIGRyYWcuZXhlY18oKQorIAorICAgICAjIFdp dGhvdXQgZGVmaW5pbmcgdGhpcyBtZXRob2QsIHRoZSAnY29weScgYWN0aW9uIGRvZXNuJ3Qgc2hv dyB3aXRoIGN1cnNvcgorZGlmZiAtLWdpdCBhL3NyYy93aW5kb3dzL3ZpZXdzL3Byb3BlcnRpZXNf dGFibGV2aWV3LnB5IGIvc3JjL3dpbmRvd3Mvdmlld3MvcHJvcGVydGllc190YWJsZXZpZXcucHkK K2luZGV4IGU3OWIxMzY0NC4uZmRhYTdlZTI0IDEwMDY0NAorLS0tIGEvc3JjL3dpbmRvd3Mvdmll d3MvcHJvcGVydGllc190YWJsZXZpZXcucHkKKysrKyBiL3NyYy93aW5kb3dzL3ZpZXdzL3Byb3Bl cnRpZXNfdGFibGV2aWV3LnB5CitAQCAtNTMsOCArNTMsMTMgQEAKKyAKKyAKKyBjbGFzcyBQcm9w ZXJ0eURlbGVnYXRlKFFJdGVtRGVsZWdhdGUpOgorLSAgICBkZWYgX19pbml0X18oc2VsZiwgcGFy ZW50PU5vbmUsICphcmdzKToKKy0gICAgICAgIFFJdGVtRGVsZWdhdGUuX19pbml0X18oc2VsZiwg cGFyZW50LCAqYXJncykKKysgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudD1Ob25lLCAqYXJn cywgKiprd2FyZ3MpOgorKworKyAgICAgICAgc2VsZi5tb2RlbCA9IGt3YXJncy5wb3AoIm1vZGVs IiwgTm9uZSkKKysgICAgICAgIGlmIG5vdCBzZWxmLm1vZGVsOgorKyAgICAgICAgICAgIGxvZy5l cnJvcigiQ2Fubm90IGNyZWF0ZSBkZWxlZ2F0ZSB3aXRob3V0IGRhdGEgbW9kZWwhIikKKysKKysg ICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCAqYXJncywgKiprd2FyZ3MpCisgCisgICAg ICAgICAjIHBpeG1hcHMgZm9yIGN1cnZlIGljb25zCisgICAgICAgICBzZWxmLmN1cnZlX3BpeG1h cHMgPSB7CitAQCAtNjgsNyArNzMsNyBAQCBkZWYgcGFpbnQoc2VsZiwgcGFpbnRlciwgb3B0aW9u LCBpbmRleCk6CisgICAgICAgICBwYWludGVyLnNldFJlbmRlckhpbnQoUVBhaW50ZXIuQW50aWFs aWFzaW5nKQorIAorICAgICAgICAgIyBHZXQgZGF0YSBtb2RlbCBhbmQgc2VsZWN0aW9uCistICAg ICAgICBtb2RlbCA9IGdldF9hcHAoKS53aW5kb3cucHJvcGVydHlUYWJsZVZpZXcuY2xpcF9wcm9w ZXJ0aWVzX21vZGVsLm1vZGVsCisrICAgICAgICBtb2RlbCA9IHNlbGYubW9kZWwKKyAgICAgICAg IHJvdyA9IG1vZGVsLml0ZW1Gcm9tSW5kZXgoaW5kZXgpLnJvdygpCisgICAgICAgICBzZWxlY3Rl ZF9sYWJlbCA9IG1vZGVsLml0ZW0ocm93LCAwKQorICAgICAgICAgc2VsZWN0ZWRfdmFsdWUgPSBt b2RlbC5pdGVtKHJvdywgMSkKK0BAIC0xMDQsMTYgKzEwOSwxNiBAQCBkZWYgcGFpbnQoc2VsZiwg cGFpbnRlciwgb3B0aW9uLCBpbmRleCk6CisgICAgICAgICBwYWludGVyLnNldFBlbihRUGVuKFF0 Lk5vUGVuKSkKKyAgICAgICAgIGlmIHByb3BlcnR5X3R5cGUgPT0gImNvbG9yIjoKKyAgICAgICAg ICAgICAjIENvbG9yIGtleWZyYW1lCistICAgICAgICAgICAgcmVkID0gY3VyX3Byb3BlcnR5WzFd WyJyZWQiXVsidmFsdWUiXQorLSAgICAgICAgICAgIGdyZWVuID0gY3VyX3Byb3BlcnR5WzFdWyJn cmVlbiJdWyJ2YWx1ZSJdCistICAgICAgICAgICAgYmx1ZSA9IGN1cl9wcm9wZXJ0eVsxXVsiYmx1 ZSJdWyJ2YWx1ZSJdCistICAgICAgICAgICAgcGFpbnRlci5zZXRCcnVzaChRQnJ1c2goUUNvbG9y KFFDb2xvcihyZWQsIGdyZWVuLCBibHVlKSkpKQorKyAgICAgICAgICAgIHJlZCA9IGludChjdXJf cHJvcGVydHlbMV1bInJlZCJdWyJ2YWx1ZSJdKQorKyAgICAgICAgICAgIGdyZWVuID0gaW50KGN1 cl9wcm9wZXJ0eVsxXVsiZ3JlZW4iXVsidmFsdWUiXSkKKysgICAgICAgICAgICBibHVlID0gaW50 KGN1cl9wcm9wZXJ0eVsxXVsiYmx1ZSJdWyJ2YWx1ZSJdKQorKyAgICAgICAgICAgIHBhaW50ZXIu c2V0QnJ1c2goUUNvbG9yKHJlZCwgZ3JlZW4sIGJsdWUpKQorICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICAjIE5vcm1hbCBLZXlmcmFtZQorICAgICAgICAgICAgIGlmIG9wdGlvbi5zdGF0ZSAm IFFTdHlsZS5TdGF0ZV9TZWxlY3RlZDoKKy0gICAgICAgICAgICAgICAgcGFpbnRlci5zZXRCcnVz aChRQnJ1c2goUUNvbG9yKCIjNTc1NzU3IikpKQorKyAgICAgICAgICAgICAgICBwYWludGVyLnNl dEJydXNoKFFDb2xvcigiIzU3NTc1NyIpKQorICAgICAgICAgICAgIGVsc2U6CistICAgICAgICAg ICAgICAgIHBhaW50ZXIuc2V0QnJ1c2goUUJydXNoKFFDb2xvcigiIzNlM2UzZSIpKSkKKysgICAg ICAgICAgICAgICAgcGFpbnRlci5zZXRCcnVzaChRQ29sb3IoIiMzZTNlM2UiKSkKKyAKKyAgICAg ICAgIGlmIHJlYWRvbmx5OgorICAgICAgICAgICAgICMgU2V0IHRleHQgY29sb3IgZm9yIHJlYWQg b25seSBmaWVsZHMKK0BAIC0xNDYsNyArMTUxLDEwIEBAIGRlZiBwYWludChzZWxmLCBwYWludGVy LCBvcHRpb24sIGluZGV4KToKKyAKKyAgICAgICAgICAgICBpZiBwb2ludHMgPiAxOgorICAgICAg ICAgICAgICAgICAjIERyYXcgaW50ZXJwb2xhdGlvbiBpY29uIG9uIHRvcAorLSAgICAgICAgICAg ICAgICBwYWludGVyLmRyYXdQaXhtYXAob3B0aW9uLnJlY3QueCgpICsgb3B0aW9uLnJlY3Qud2lk dGgoKSAtIDMwLjAsIG9wdGlvbi5yZWN0LnkoKSArIDQsIHNlbGYuY3VydmVfcGl4bWFwc1tpbnRl cnBvbGF0aW9uXSkKKysgICAgICAgICAgICAgICAgcGFpbnRlci5kcmF3UGl4bWFwKAorKyAgICAg ICAgICAgICAgICAgICAgaW50KG9wdGlvbi5yZWN0LngoKSArIG9wdGlvbi5yZWN0LndpZHRoKCkg LSAzMC4wKSwKKysgICAgICAgICAgICAgICAgICAgIGludChvcHRpb24ucmVjdC55KCkgKyA0KSwK KysgICAgICAgICAgICAgICAgICAgIHNlbGYuY3VydmVfcGl4bWFwc1tpbnRlcnBvbGF0aW9uXSkK KyAKKyAgICAgICAgICAgICAjIFNldCB0ZXh0IGNvbG9yCisgICAgICAgICAgICAgcGFpbnRlci5z ZXRQZW4oUVBlbihRdC53aGl0ZSkpCitAQCAtODE4LDkgKzgyNiw5IEBAIGRlZiBDb2xvcl9QaWNr ZXJfVHJpZ2dlcmVkKHNlbGYsIGN1cl9wcm9wZXJ0eSk6CisgICAgICAgICBfID0gZ2V0X2FwcCgp Ll90cgorIAorICAgICAgICAgIyBHZXQgY3VycmVudCB2YWx1ZSBvZiBjb2xvcgorLSAgICAgICAg cmVkID0gY3VyX3Byb3BlcnR5WzFdWyJyZWQiXVsidmFsdWUiXQorLSAgICAgICAgZ3JlZW4gPSBj dXJfcHJvcGVydHlbMV1bImdyZWVuIl1bInZhbHVlIl0KKy0gICAgICAgIGJsdWUgPSBjdXJfcHJv cGVydHlbMV1bImJsdWUiXVsidmFsdWUiXQorKyAgICAgICAgcmVkID0gaW50KGN1cl9wcm9wZXJ0 eVsxXVsicmVkIl1bInZhbHVlIl0pCisrICAgICAgICBncmVlbiA9IGludChjdXJfcHJvcGVydHlb MV1bImdyZWVuIl1bInZhbHVlIl0pCisrICAgICAgICBibHVlID0gaW50KGN1cl9wcm9wZXJ0eVsx XVsiYmx1ZSJdWyJ2YWx1ZSJdKQorIAorICAgICAgICAgIyBTaG93IGNvbG9yIGRpYWxvZworICAg ICAgICAgY3VycmVudENvbG9yID0gUUNvbG9yKHJlZCwgZ3JlZW4sIGJsdWUpCitAQCAtODY1LDcg Kzg3Myw3IEBAIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncyk6CisgICAgICAgICBzZWxmLmZpbGVz X21vZGVsID0gc2VsZi53aW4uZmlsZXNfbW9kZWwubW9kZWwKKyAKKyAgICAgICAgICMgQ29ubmVj dCB0byB1cGRhdGUgc2lnbmFscywgc28gb3VyIG1lbnVzIHN0YXkgY3VycmVudAorLSAgICAgICAg c2VsZi53aW4uZmlsZXNfbW9kZWwuTW9kZWxSZWZyZXNoZWQuY29ubmVjdChzZWxmLnJlZnJlc2hf bWVudSkKKysgICAgICAgIHNlbGYuZmlsZXNfbW9kZWwuZGF0YUNoYW5nZWQuY29ubmVjdChzZWxm LnJlZnJlc2hfbWVudSkKKyAgICAgICAgIHNlbGYud2luLnRyYW5zaXRpb25fbW9kZWwuTW9kZWxS ZWZyZXNoZWQuY29ubmVjdChzZWxmLnJlZnJlc2hfbWVudSkKKyAgICAgICAgIHNlbGYubWVudV9y ZXNldCA9IEZhbHNlCisgCitAQCAtODkwLDcgKzg5OCw3IEBAIGRlZiBfX2luaXRfXyhzZWxmLCAq YXJncyk6CisgICAgICAgICBzZWxmLnNldFdvcmRXcmFwKFRydWUpCisgCisgICAgICAgICAjIFNl dCBkZWxlZ2F0ZQorLSAgICAgICAgZGVsZWdhdGUgPSBQcm9wZXJ0eURlbGVnYXRlKCkKKysgICAg ICAgIGRlbGVnYXRlID0gUHJvcGVydHlEZWxlZ2F0ZShtb2RlbD1zZWxmLmNsaXBfcHJvcGVydGll c19tb2RlbC5tb2RlbCkKKyAgICAgICAgIHNlbGYuc2V0SXRlbURlbGVnYXRlRm9yQ29sdW1uKDEs IGRlbGVnYXRlKQorICAgICAgICAgc2VsZi5wcmV2aW91c194ID0gLTEKKyAKK2RpZmYgLS1naXQg YS9zcmMvd2luZG93cy92aWV3cy90cmFuc2l0aW9uc19saXN0dmlldy5weSBiL3NyYy93aW5kb3dz L3ZpZXdzL3RyYW5zaXRpb25zX2xpc3R2aWV3LnB5CitpbmRleCAwOWFmODZiMmIuLjNiYTMzNDZm NSAxMDA2NDQKKy0tLSBhL3NyYy93aW5kb3dzL3ZpZXdzL3RyYW5zaXRpb25zX2xpc3R2aWV3LnB5 CisrKysgYi9zcmMvd2luZG93cy92aWV3cy90cmFuc2l0aW9uc19saXN0dmlldy5weQorQEAgLTM2 LDcgKzM2LDggQEAKKyAKKyBjbGFzcyBUcmFuc2l0aW9uc0xpc3RWaWV3KFFMaXN0Vmlldyk6Cisg ICAgICIiIiBBIFFMaXN0VmlldyBRV2lkZ2V0IHVzZWQgb24gdGhlIG1haW4gd2luZG93ICIiIgor LSAgICBkcmFnX2l0ZW1fc2l6ZSA9IDQ4CisrICAgIGRyYWdfaXRlbV9zaXplID0gUVNpemUoNDgs IDQ4KQorKyAgICBkcmFnX2l0ZW1fY2VudGVyID0gUVBvaW50KDI0LCAyNCkKKyAKKyAgICAgZGVm IGNvbnRleHRNZW51RXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAgZXZlbnQuYWNjZXB0KCkK K0BAIC03MCw4ICs3MSw4IEBAIGRlZiBzdGFydERyYWcoc2VsZiwgc3VwcG9ydGVkQWN0aW9ucyk6 CisgICAgICAgICAjIFN0YXJ0IGRyYWcgb3BlcmF0aW9uCisgICAgICAgICBkcmFnID0gUURyYWco c2VsZikKKyAgICAgICAgIGRyYWcuc2V0TWltZURhdGEoc2VsZi5tb2RlbCgpLm1pbWVEYXRhKHNl bGVjdGVkKSkKKy0gICAgICAgIGRyYWcuc2V0UGl4bWFwKGljb24ucGl4bWFwKFFTaXplKHNlbGYu ZHJhZ19pdGVtX3NpemUsIHNlbGYuZHJhZ19pdGVtX3NpemUpKSkKKy0gICAgICAgIGRyYWcuc2V0 SG90U3BvdChRUG9pbnQoc2VsZi5kcmFnX2l0ZW1fc2l6ZSAvIDIsIHNlbGYuZHJhZ19pdGVtX3Np emUgLyAyKSkKKysgICAgICAgIGRyYWcuc2V0UGl4bWFwKGljb24ucGl4bWFwKHNlbGYuZHJhZ19p dGVtX3NpemUpKQorKyAgICAgICAgZHJhZy5zZXRIb3RTcG90KHNlbGYuZHJhZ19pdGVtX2NlbnRl cikKKyAgICAgICAgIGRyYWcuZXhlY18oKQorIAorICAgICBkZWYgZmlsdGVyX2NoYW5nZWQoc2Vs Zik6CitkaWZmIC0tZ2l0IGEvc3JjL3dpbmRvd3Mvdmlld3MvdHJhbnNpdGlvbnNfdHJlZXZpZXcu cHkgYi9zcmMvd2luZG93cy92aWV3cy90cmFuc2l0aW9uc190cmVldmlldy5weQoraW5kZXggNmY5 MDNlOTEzLi43YWEwY2Q0ODEgMTAwNjQ0CistLS0gYS9zcmMvd2luZG93cy92aWV3cy90cmFuc2l0 aW9uc190cmVldmlldy5weQorKysrIGIvc3JjL3dpbmRvd3Mvdmlld3MvdHJhbnNpdGlvbnNfdHJl ZXZpZXcucHkKK0BAIC0zNiw3ICszNiw4IEBACisgCisgY2xhc3MgVHJhbnNpdGlvbnNUcmVlVmll dyhRVHJlZVZpZXcpOgorICAgICAiIiIgQSBUcmVlVmlldyBRV2lkZ2V0IHVzZWQgb24gdGhlIG1h aW4gd2luZG93ICIiIgorLSAgICBkcmFnX2l0ZW1fc2l6ZSA9IDQ4CisrICAgIGRyYWdfaXRlbV9z aXplID0gUVNpemUoNDgsIDQ4KQorKyAgICBkcmFnX2l0ZW1fY2VudGVyID0gUVBvaW50KDI0LCAy NCkKKyAKKyAgICAgZGVmIGNvbnRleHRNZW51RXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAg IyBTZXQgY29udGV4dCBtZW51IG1vZGUKK0BAIC02OCw4ICs2OSw4IEBAIGRlZiBzdGFydERyYWco c2VsZiwgZXZlbnQpOgorICAgICAgICAgIyBTdGFydCBkcmFnIG9wZXJhdGlvbgorICAgICAgICAg ZHJhZyA9IFFEcmFnKHNlbGYpCisgICAgICAgICBkcmFnLnNldE1pbWVEYXRhKHNlbGYubW9kZWwo KS5taW1lRGF0YShzZWxlY3RlZCkpCistICAgICAgICBkcmFnLnNldFBpeG1hcChpY29uLnBpeG1h cChRU2l6ZShzZWxmLmRyYWdfaXRlbV9zaXplLCBzZWxmLmRyYWdfaXRlbV9zaXplKSkpCistICAg ICAgICBkcmFnLnNldEhvdFNwb3QoUVBvaW50KHNlbGYuZHJhZ19pdGVtX3NpemUgLyAyLCBzZWxm LmRyYWdfaXRlbV9zaXplIC8gMikpCisrICAgICAgICBkcmFnLnNldFBpeG1hcChpY29uLnBpeG1h cChzZWxmLmRyYWdfaXRlbV9zaXplKSkKKysgICAgICAgIGRyYWcuc2V0SG90U3BvdChzZWxmLmRy YWdfaXRlbV9jZW50ZXIpCisgICAgICAgICBkcmFnLmV4ZWNfKCkKKyAKKyAgICAgZGVmIHJlZnJl c2hfY29sdW1ucyhzZWxmKToKK2RpZmYgLS1naXQgYS9zcmMvd2luZG93cy92aWV3cy90dXRvcmlh bC5weSBiL3NyYy93aW5kb3dzL3ZpZXdzL3R1dG9yaWFsLnB5CitpbmRleCBlMmQ3ZmI4NjEuLjI0 MTI0Nzk5ZiAxMDA2NDQKKy0tLSBhL3NyYy93aW5kb3dzL3ZpZXdzL3R1dG9yaWFsLnB5CisrKysg Yi9zcmMvd2luZG93cy92aWV3cy90dXRvcmlhbC5weQorQEAgLTUzLDcgKzUzLDEyIEBAIGRlZiBw YWludEV2ZW50KHNlbGYsIGV2ZW50LCAqYXJncyk6CisgCisgICAgICAgICBwYWludGVyLnNldFBl bihRUGVuKGZyYW1lQ29sb3IsIDIpKQorICAgICAgICAgcGFpbnRlci5zZXRCcnVzaChzZWxmLnBh bGV0dGUoKS5jb2xvcihRUGFsZXR0ZS5XaW5kb3cpKQorLSAgICAgICAgcGFpbnRlci5kcmF3Um91 bmRlZFJlY3QoUVJlY3RGKDMxLCAwLCBzZWxmLndpZHRoKCkgLSAzMSwgc2VsZi5oZWlnaHQoKSks IDEwLCAxMCkKKysgICAgICAgIHBhaW50ZXIuZHJhd1JvdW5kZWRSZWN0KAorKyAgICAgICAgICAg IFFSZWN0RigzMSwgMCwKKysgICAgICAgICAgICAgICAgICAgc2VsZi53aWR0aCgpIC0gMzEsCisr ICAgICAgICAgICAgICAgICAgIHNlbGYuaGVpZ2h0KCkKKysgICAgICAgICAgICAgICAgICAgKSwK KysgICAgICAgICAgICAxMCwgMTApCisgCisgICAgICAgICAjIFBhaW50IGJsdWUgdHJpYW5nbGUg KGlmIG5lZWRlZCkKKyAgICAgICAgIGlmIHNlbGYuYXJyb3c6CitAQCAtNjEsNyArNjYsOCBAQCBk ZWYgcGFpbnRFdmVudChzZWxmLCBldmVudCwgKmFyZ3MpOgorICAgICAgICAgICAgIHBhdGggPSBR UGFpbnRlclBhdGgoKQorICAgICAgICAgICAgIHBhdGgubW92ZVRvKDAsIDM1KQorICAgICAgICAg ICAgIHBhdGgubGluZVRvKDMxLCAzNSAtIGFycm93X2hlaWdodCkKKy0gICAgICAgICAgICBwYXRo LmxpbmVUbygzMSwgKDM1IC0gYXJyb3dfaGVpZ2h0KSArIChhcnJvd19oZWlnaHQgKiAyKSkKKysg ICAgICAgICAgICBwYXRoLmxpbmVUbygKKysgICAgICAgICAgICAgICAgMzEsIGludCgoMzUgLSBh cnJvd19oZWlnaHQpICsgKGFycm93X2hlaWdodCAqIDIpKSkKKyAgICAgICAgICAgICBwYXRoLmxp bmVUbygwLCAzNSkKKyAgICAgICAgICAgICBwYWludGVyLmZpbGxQYXRoKHBhdGgsIGZyYW1lQ29s b3IpCisgCitAQCAtMTk5LDcgKzIwNSw5IEBAIGRlZiBwcm9jZXNzKHNlbGYsIHBhcmVudF9uYW1l PU5vbmUpOgorIAorICAgICAgICAgICAgICMgQ3JlYXRlIHR1dG9yaWFsCisgICAgICAgICAgICAg c2VsZi5wb3NpdGlvbl93aWRnZXQgPSB0dXRvcmlhbF9vYmplY3QKKy0gICAgICAgICAgICBzZWxm Lm9mZnNldCA9IFFQb2ludCh0dXRvcmlhbF9kZXRhaWxzWyJ4Il0sIHR1dG9yaWFsX2RldGFpbHNb InkiXSkKKysgICAgICAgICAgICBzZWxmLm9mZnNldCA9IFFQb2ludCgKKysgICAgICAgICAgICAg ICAgaW50KHR1dG9yaWFsX2RldGFpbHNbIngiXSksCisrICAgICAgICAgICAgICAgIGludCh0dXRv cmlhbF9kZXRhaWxzWyJ5Il0pKQorICAgICAgICAgICAgIHR1dG9yaWFsX2RpYWxvZyA9IFR1dG9y aWFsRGlhbG9nKHR1dG9yaWFsX2lkLCB0dXRvcmlhbF9kZXRhaWxzWyJ0ZXh0Il0sIHR1dG9yaWFs X2RldGFpbHNbImFycm93Il0sIHNlbGYpCisgCisgICAgICAgICAgICAgIyBDb25uZWN0IHNpZ25h bHMKKworRnJvbSA5ZmM1NTEyMGYzNmMzNmIyYjZiNjdlNDk5MTI4OTkzYzI1ZTUzNWNmIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogIkZlUkQgKEZyYW5rIERhbmEpIiA8ZmVyZG55Y0Bn bWFpbC5jb20+CitEYXRlOiBUaHUsIDQgTm92IDIwMjEgMjE6MDI6NTYgLTA0MDAKK1N1YmplY3Q6 IFtQQVRDSCAzLzZdIFZpZGVvV2lkZ2V0OiBOZXcgY2hlY2tUcmFuc2Zvcm1Nb2RlCisKK1JlcGxh Y2VtZW50IGZvciBnZXRUcmFuc2Zvcm1Nb2RlIHdpdGggbGVzcyByZXBldGl0aW91cyBjb2RlCist LS0KKyBzcmMvd2luZG93cy92aWRlb193aWRnZXQucHkgfCAxNjAgKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDk5 IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL3dpbmRvd3MvdmlkZW9fd2lkZ2V0LnB5 IGIvc3JjL3dpbmRvd3MvdmlkZW9fd2lkZ2V0LnB5CitpbmRleCBmMzM2OTZjNWMuLjFiOWMzNWI1 NCAxMDA2NDQKKy0tLSBhL3NyYy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weQorKysrIGIvc3JjL3dp bmRvd3MvdmlkZW9fd2lkZ2V0LnB5CitAQCAtNjEwLDEwNiArNjEwLDY4IEBAIGRlZiByb3RhdGVD dXJzb3Ioc2VsZiwgcGl4bWFwLCByb3RhdGlvbiwgc2hlYXJfeCwgc2hlYXJfeSk6CisgICAgICAg ICAgICAgUXQuU21vb3RoVHJhbnNmb3JtYXRpb24pCisgICAgICAgICByZXR1cm4gUUN1cnNvcihy b3RhdGVkX3BpeG1hcCkKKyAKKy0gICAgZGVmIGdldFRyYW5zZm9ybU1vZGUoc2VsZiwgcm90YXRp b24sIHNoZWFyX3gsIHNoZWFyX3ksIGV2ZW50KToKKysgICAgZGVmIGNoZWNrVHJhbnNmb3JtTW9k ZShzZWxmLCByb3RhdGlvbiwgc2hlYXJfeCwgc2hlYXJfeSwgZXZlbnQpOgorKyAgICAgICAgaGFu ZGxlX3VpcyA9IFsKKysgICAgICAgICAgICB7ImhhbmRsZSI6IHNlbGYuY2VudGVySGFuZGxlLCAi bW9kZSI6ICdvcmlnaW4nLCAiY3Vyc29yIjogJ2hhbmQnfSwKKysgICAgICAgICAgICB7ImhhbmRs ZSI6IHNlbGYudG9wUmlnaHRIYW5kbGUsICJtb2RlIjogJ3NjYWxlX3RvcF9yaWdodCcsICJjdXJz b3IiOiAncmVzaXplX2JkaWFnJ30sCisrICAgICAgICAgICAgeyJoYW5kbGUiOiBzZWxmLnRvcEhh bmRsZSwgIm1vZGUiOiAnc2NhbGVfdG9wJywgImN1cnNvciI6ICdyZXNpemVfeSd9LAorKyAgICAg ICAgICAgIHsiaGFuZGxlIjogc2VsZi50b3BMZWZ0SGFuZGxlLCAibW9kZSI6ICdzY2FsZV90b3Bf bGVmdCcsICJjdXJzb3IiOiAncmVzaXplX2ZkaWFnJ30sCisrICAgICAgICAgICAgeyJoYW5kbGUi OiBzZWxmLmxlZnRIYW5kbGUsICJtb2RlIjogJ3NjYWxlX2xlZnQnLCAiY3Vyc29yIjogJ3Jlc2l6 ZV94J30sCisrICAgICAgICAgICAgeyJoYW5kbGUiOiBzZWxmLnJpZ2h0SGFuZGxlLCAibW9kZSI6 ICdzY2FsZV9yaWdodCcsICJjdXJzb3IiOiAncmVzaXplX3gnfSwKKysgICAgICAgICAgICB7Imhh bmRsZSI6IHNlbGYuYm90dG9tTGVmdEhhbmRsZSwgIm1vZGUiOiAnc2NhbGVfYm90dG9tX2xlZnQn LCAiY3Vyc29yIjogJ3Jlc2l6ZV9iZGlhZyd9LAorKyAgICAgICAgICAgIHsiaGFuZGxlIjogc2Vs Zi5ib3R0b21IYW5kbGUsICJtb2RlIjogJ3NjYWxlX2JvdHRvbScsICJjdXJzb3IiOiAncmVzaXpl X3knfSwKKysgICAgICAgICAgICB7ImhhbmRsZSI6IHNlbGYuYm90dG9tUmlnaHRIYW5kbGUsICJt b2RlIjogJ3NjYWxlX2JvdHRvbV9yaWdodCcsICJjdXJzb3IiOiAncmVzaXplX2ZkaWFnJ30sCisr ICAgICAgICAgICAgeyJoYW5kbGUiOiBzZWxmLnRvcFNoZWFySGFuZGxlLCAibW9kZSI6ICdzaGVh cl90b3AnLCAiY3Vyc29yIjogJ3NoZWFyX3gnfSwKKysgICAgICAgICAgICB7ImhhbmRsZSI6IHNl bGYubGVmdFNoZWFySGFuZGxlLCAibW9kZSI6ICdzaGVhcl9sZWZ0JywgImN1cnNvciI6ICdzaGVh cl95J30sCisrICAgICAgICAgICAgeyJoYW5kbGUiOiBzZWxmLnJpZ2h0U2hlYXJIYW5kbGUsICJt b2RlIjogJ3NoZWFyX3JpZ2h0JywgImN1cnNvciI6ICdzaGVhcl95J30sCisrICAgICAgICAgICAg eyJoYW5kbGUiOiBzZWxmLmJvdHRvbVNoZWFySGFuZGxlLCAibW9kZSI6ICdzaGVhcl9ib3R0b20n LCAiY3Vyc29yIjogJ3NoZWFyX3gnfSwKKysgICAgICAgIF0KKysgICAgICAgIG5vbl9oYW5kbGVf dWlzID0geworKyAgICAgICAgICAgICJyZWdpb24iOiBzZWxmLmNsaXBCb3VuZHMsCisrICAgICAg ICAgICAgImluc2lkZSI6IHsibW9kZSI6ICdsb2NhdGlvbicsICJjdXJzb3IiOiAnbW92ZSd9LAor KyAgICAgICAgICAgICJvdXRzaWRlIjogeyJtb2RlIjogJ3JvdGF0aW9uJywgImN1cnNvciI6ICJy b3RhdGUifQorKyAgICAgICAgICAgIH0KKysKKyAgICAgICAgICMgTW91c2Ugb3ZlciByZXNpemUg YnV0dG9uIChhbmQgbm90IGN1cnJlbnRseSBkcmFnZ2luZykKKy0gICAgICAgIGlmIG5vdCBzZWxm Lm1vdXNlX2RyYWdnaW5nIGFuZCBzZWxmLnJlc2l6ZV9idXR0b24uaXNWaXNpYmxlKCkgYW5kIHNl bGYucmVzaXplX2J1dHRvbi5yZWN0KCkuY29udGFpbnMoZXZlbnQucG9zKCkpOgorKyAgICAgICAg aWYgKG5vdCBzZWxmLm1vdXNlX2RyYWdnaW5nCisrICAgICAgICAgICAgYW5kIHNlbGYucmVzaXpl X2J1dHRvbi5pc1Zpc2libGUoKQorKyAgICAgICAgICAgIGFuZCBzZWxmLnJlc2l6ZV9idXR0b24u cmVjdCgpLmNvbnRhaW5zKGV2ZW50LnBvcygpCisrICAgICAgICApOgorICAgICAgICAgICAgIHNl bGYuc2V0Q3Vyc29yKFF0LkFycm93Q3Vyc29yKQorLSAgICAgICAgIyBEZXRlcm1pbmUgaWYgY3Vy c29yIGlzIG92ZXIgYSBoYW5kbGUKKy0gICAgICAgIGVsaWYgc2VsZi50cmFuc2Zvcm0ubWFwVG9Q b2x5Z29uKHNlbGYuY2VudGVySGFuZGxlLnRvUmVjdCgpKS5jb250YWluc1BvaW50KGV2ZW50LnBv cygpLCBRdC5PZGRFdmVuRmlsbCk6CistICAgICAgICAgICAgaWYgbm90IHNlbGYudHJhbnNmb3Jt X21vZGUgb3Igc2VsZi50cmFuc2Zvcm1fbW9kZSA9PSAnb3JpZ2luJzoKKy0gICAgICAgICAgICAg ICAgc2VsZi5zZXRDdXJzb3Ioc2VsZi5yb3RhdGVDdXJzb3Ioc2VsZi5jdXJzb3JzLmdldCgnaGFu ZCcpLCByb3RhdGlvbiwgc2hlYXJfeCwgc2hlYXJfeSkpCistICAgICAgICAgICAgIyBTZXQgdGhl IHRyYW5zZm9ybSBtb2RlCistICAgICAgICAgICAgaWYgc2VsZi5tb3VzZV9kcmFnZ2luZyBhbmQg bm90IHNlbGYudHJhbnNmb3JtX21vZGU6CistICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3Jt X21vZGUgPSAnb3JpZ2luJworLSAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHln b24oc2VsZi50b3BSaWdodEhhbmRsZS50b1JlY3QoKSkuY29udGFpbnNQb2ludChldmVudC5wb3Mo KSwgUXQuT2RkRXZlbkZpbGwpOgorLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLnRyYW5zZm9ybV9t b2RlIG9yIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX3RvcF9yaWdodCc6CistICAgICAg ICAgICAgICAgIHNlbGYuc2V0Q3Vyc29yKHNlbGYucm90YXRlQ3Vyc29yKHNlbGYuY3Vyc29ycy5n ZXQoJ3Jlc2l6ZV9iZGlhZycpLCByb3RhdGlvbiwgc2hlYXJfeCwgc2hlYXJfeSkpCistICAgICAg ICAgICAgIyBTZXQgdGhlIHRyYW5zZm9ybSBtb2RlCistICAgICAgICAgICAgaWYgc2VsZi5tb3Vz ZV9kcmFnZ2luZyBhbmQgbm90IHNlbGYudHJhbnNmb3JtX21vZGU6CistICAgICAgICAgICAgICAg IHNlbGYudHJhbnNmb3JtX21vZGUgPSAnc2NhbGVfdG9wX3JpZ2h0JworLSAgICAgICAgZWxpZiBz ZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2VsZi50b3BIYW5kbGUudG9SZWN0KCkpLmNvbnRh aW5zUG9pbnQoZXZlbnQucG9zKCksIFF0Lk9kZEV2ZW5GaWxsKToKKy0gICAgICAgICAgICBpZiBu b3Qgc2VsZi50cmFuc2Zvcm1fbW9kZSBvciBzZWxmLnRyYW5zZm9ybV9tb2RlID09ICdzY2FsZV90 b3AnOgorLSAgICAgICAgICAgICAgICBzZWxmLnNldEN1cnNvcihzZWxmLnJvdGF0ZUN1cnNvcihz ZWxmLmN1cnNvcnMuZ2V0KCdyZXNpemVfeScpLCByb3RhdGlvbiwgc2hlYXJfeCwgc2hlYXJfeSkp CistICAgICAgICAgICAgIyBTZXQgdGhlIHRyYW5zZm9ybSBtb2RlCistICAgICAgICAgICAgaWYg c2VsZi5tb3VzZV9kcmFnZ2luZyBhbmQgbm90IHNlbGYudHJhbnNmb3JtX21vZGU6CistICAgICAg ICAgICAgICAgIHNlbGYudHJhbnNmb3JtX21vZGUgPSAnc2NhbGVfdG9wJworLSAgICAgICAgZWxp ZiBzZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2VsZi50b3BMZWZ0SGFuZGxlLnRvUmVjdCgp KS5jb250YWluc1BvaW50KGV2ZW50LnBvcygpLCBRdC5PZGRFdmVuRmlsbCk6CistICAgICAgICAg ICAgaWYgbm90IHNlbGYudHJhbnNmb3JtX21vZGUgb3Igc2VsZi50cmFuc2Zvcm1fbW9kZSA9PSAn c2NhbGVfdG9wX2xlZnQnOgorLSAgICAgICAgICAgICAgICBzZWxmLnNldEN1cnNvcihzZWxmLnJv dGF0ZUN1cnNvcihzZWxmLmN1cnNvcnMuZ2V0KCdyZXNpemVfZmRpYWcnKSwgcm90YXRpb24sIHNo ZWFyX3gsIHNoZWFyX3kpKQorLSAgICAgICAgICAgICMgU2V0IHRoZSB0cmFuc2Zvcm0gbW9kZQor LSAgICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9y bV9tb2RlOgorLSAgICAgICAgICAgICAgICBzZWxmLnRyYW5zZm9ybV9tb2RlID0gJ3NjYWxlX3Rv cF9sZWZ0JworLSAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2VsZi5s ZWZ0SGFuZGxlLnRvUmVjdCgpKS5jb250YWluc1BvaW50KGV2ZW50LnBvcygpLCBRdC5PZGRFdmVu RmlsbCk6CistICAgICAgICAgICAgaWYgbm90IHNlbGYudHJhbnNmb3JtX21vZGUgb3Igc2VsZi50 cmFuc2Zvcm1fbW9kZSA9PSAnc2NhbGVfbGVmdCc6CistICAgICAgICAgICAgICAgIHNlbGYuc2V0 Q3Vyc29yKHNlbGYucm90YXRlQ3Vyc29yKHNlbGYuY3Vyc29ycy5nZXQoJ3Jlc2l6ZV94JyksIHJv dGF0aW9uLCBzaGVhcl94LCBzaGVhcl95KSkKKy0gICAgICAgICAgICAjIFNldCB0aGUgdHJhbnNm b3JtIG1vZGUKKy0gICAgICAgICAgICBpZiBzZWxmLm1vdXNlX2RyYWdnaW5nIGFuZCBub3Qgc2Vs Zi50cmFuc2Zvcm1fbW9kZToKKy0gICAgICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1fbW9kZSA9 ICdzY2FsZV9sZWZ0JworLSAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24o c2VsZi5yaWdodEhhbmRsZS50b1JlY3QoKSkuY29udGFpbnNQb2ludChldmVudC5wb3MoKSwgUXQu T2RkRXZlbkZpbGwpOgorLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlIG9y IHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX3JpZ2h0JzoKKy0gICAgICAgICAgICAgICAg c2VsZi5zZXRDdXJzb3Ioc2VsZi5yb3RhdGVDdXJzb3Ioc2VsZi5jdXJzb3JzLmdldCgncmVzaXpl X3gnKSwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3kpKQorLSAgICAgICAgICAgICMgU2V0IHRo ZSB0cmFuc2Zvcm0gbW9kZQorLSAgICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dpbmcgYW5k IG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlOgorLSAgICAgICAgICAgICAgICBzZWxmLnRyYW5zZm9y bV9tb2RlID0gJ3NjYWxlX3JpZ2h0JworLSAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybS5tYXBU b1BvbHlnb24oc2VsZi5ib3R0b21MZWZ0SGFuZGxlLnRvUmVjdCgpKS5jb250YWluc1BvaW50KGV2 ZW50LnBvcygpLCBRdC5PZGRFdmVuRmlsbCk6CistICAgICAgICAgICAgaWYgbm90IHNlbGYudHJh bnNmb3JtX21vZGUgb3Igc2VsZi50cmFuc2Zvcm1fbW9kZSA9PSAnc2NhbGVfYm90dG9tX2xlZnQn OgorLSAgICAgICAgICAgICAgICBzZWxmLnNldEN1cnNvcihzZWxmLnJvdGF0ZUN1cnNvcihzZWxm LmN1cnNvcnMuZ2V0KCdyZXNpemVfYmRpYWcnKSwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3kp KQorLSAgICAgICAgICAgICMgU2V0IHRoZSB0cmFuc2Zvcm0gbW9kZQorLSAgICAgICAgICAgIGlm IHNlbGYubW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlOgorLSAgICAg ICAgICAgICAgICBzZWxmLnRyYW5zZm9ybV9tb2RlID0gJ3NjYWxlX2JvdHRvbV9sZWZ0JworLSAg ICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2VsZi5ib3R0b21IYW5kbGUu dG9SZWN0KCkpLmNvbnRhaW5zUG9pbnQoZXZlbnQucG9zKCksIFF0Lk9kZEV2ZW5GaWxsKToKKy0g ICAgICAgICAgICBpZiBub3Qgc2VsZi50cmFuc2Zvcm1fbW9kZSBvciBzZWxmLnRyYW5zZm9ybV9t b2RlID09ICdzY2FsZV9ib3R0b20nOgorLSAgICAgICAgICAgICAgICBzZWxmLnNldEN1cnNvcihz ZWxmLnJvdGF0ZUN1cnNvcihzZWxmLmN1cnNvcnMuZ2V0KCdyZXNpemVfeScpLCByb3RhdGlvbiwg c2hlYXJfeCwgc2hlYXJfeSkpCistICAgICAgICAgICAgIyBTZXQgdGhlIHRyYW5zZm9ybSBtb2Rl CistICAgICAgICAgICAgaWYgc2VsZi5tb3VzZV9kcmFnZ2luZyBhbmQgbm90IHNlbGYudHJhbnNm b3JtX21vZGU6CistICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtX21vZGUgPSAnc2NhbGVf Ym90dG9tJworLSAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2VsZi5i b3R0b21SaWdodEhhbmRsZS50b1JlY3QoKSkuY29udGFpbnNQb2ludChldmVudC5wb3MoKSwgUXQu T2RkRXZlbkZpbGwpOgorLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlIG9y IHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX2JvdHRvbV9yaWdodCc6CistICAgICAgICAg ICAgICAgIHNlbGYuc2V0Q3Vyc29yKHNlbGYucm90YXRlQ3Vyc29yKHNlbGYuY3Vyc29ycy5nZXQo J3Jlc2l6ZV9mZGlhZycpLCByb3RhdGlvbiwgc2hlYXJfeCwgc2hlYXJfeSkpCistICAgICAgICAg ICAgIyBTZXQgdGhlIHRyYW5zZm9ybSBtb2RlCistICAgICAgICAgICAgaWYgc2VsZi5tb3VzZV9k cmFnZ2luZyBhbmQgbm90IHNlbGYudHJhbnNmb3JtX21vZGU6CistICAgICAgICAgICAgICAgIHNl bGYudHJhbnNmb3JtX21vZGUgPSAnc2NhbGVfYm90dG9tX3JpZ2h0JworLSAgICAgICAgZWxpZiBz ZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2VsZi50b3BTaGVhckhhbmRsZS50b1JlY3QoKSku Y29udGFpbnNQb2ludChldmVudC5wb3MoKSwgUXQuT2RkRXZlbkZpbGwpOgorLSAgICAgICAgICAg IGlmIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlIG9yIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3No ZWFyX3RvcCc6CistICAgICAgICAgICAgICAgIHNlbGYuc2V0Q3Vyc29yKHNlbGYucm90YXRlQ3Vy c29yKHNlbGYuY3Vyc29ycy5nZXQoJ3NoZWFyX3gnKSwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFy X3kpKQorLSAgICAgICAgICAgICMgU2V0IHRoZSB0cmFuc2Zvcm0gbW9kZQorLSAgICAgICAgICAg IGlmIHNlbGYubW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlOgorLSAg ICAgICAgICAgICAgICBzZWxmLnRyYW5zZm9ybV9tb2RlID0gJ3NoZWFyX3RvcCcKKy0gICAgICAg IGVsaWYgc2VsZi50cmFuc2Zvcm0ubWFwVG9Qb2x5Z29uKHNlbGYubGVmdFNoZWFySGFuZGxlLnRv UmVjdCgpKS5jb250YWluc1BvaW50KGV2ZW50LnBvcygpLCBRdC5PZGRFdmVuRmlsbCk6CistICAg ICAgICAgICAgaWYgbm90IHNlbGYudHJhbnNmb3JtX21vZGUgb3Igc2VsZi50cmFuc2Zvcm1fbW9k ZSA9PSAnc2hlYXJfbGVmdCc6CistICAgICAgICAgICAgICAgIHNlbGYuc2V0Q3Vyc29yKHNlbGYu cm90YXRlQ3Vyc29yKHNlbGYuY3Vyc29ycy5nZXQoJ3NoZWFyX3knKSwgcm90YXRpb24sIHNoZWFy X3gsIHNoZWFyX3kpKQorLSAgICAgICAgICAgICMgU2V0IHRoZSB0cmFuc2Zvcm0gbW9kZQorLSAg ICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9t b2RlOgorLSAgICAgICAgICAgICAgICBzZWxmLnRyYW5zZm9ybV9tb2RlID0gJ3NoZWFyX2xlZnQn CistICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtLm1hcFRvUG9seWdvbihzZWxmLnJpZ2h0U2hl YXJIYW5kbGUudG9SZWN0KCkpLmNvbnRhaW5zUG9pbnQoZXZlbnQucG9zKCksIFF0Lk9kZEV2ZW5G aWxsKToKKy0gICAgICAgICAgICBpZiBub3Qgc2VsZi50cmFuc2Zvcm1fbW9kZSBvciBzZWxmLnRy YW5zZm9ybV9tb2RlID09ICdzaGVhcl9yaWdodCc6CistICAgICAgICAgICAgICAgIHNlbGYuc2V0 Q3Vyc29yKHNlbGYucm90YXRlQ3Vyc29yKHNlbGYuY3Vyc29ycy5nZXQoJ3NoZWFyX3knKSwgcm90 YXRpb24sIHNoZWFyX3gsIHNoZWFyX3kpKQorLSAgICAgICAgICAgICMgU2V0IHRoZSB0cmFuc2Zv cm0gbW9kZQorLSAgICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxm LnRyYW5zZm9ybV9tb2RlOgorLSAgICAgICAgICAgICAgICBzZWxmLnRyYW5zZm9ybV9tb2RlID0g J3NoZWFyX3JpZ2h0JworLSAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24o c2VsZi5ib3R0b21TaGVhckhhbmRsZS50b1JlY3QoKSkuY29udGFpbnNQb2ludChldmVudC5wb3Mo KSwgUXQuT2RkRXZlbkZpbGwpOgorLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLnRyYW5zZm9ybV9t b2RlIG9yIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NoZWFyX2JvdHRvbSc6CistICAgICAgICAg ICAgICAgIHNlbGYuc2V0Q3Vyc29yKHNlbGYucm90YXRlQ3Vyc29yKHNlbGYuY3Vyc29ycy5nZXQo J3NoZWFyX3gnKSwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3kpKQorLSAgICAgICAgICAgICMg U2V0IHRoZSB0cmFuc2Zvcm0gbW9kZQorLSAgICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dp bmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlOgorLSAgICAgICAgICAgICAgICBzZWxmLnRy YW5zZm9ybV9tb2RlID0gJ3NoZWFyX2JvdHRvbScKKy0gICAgICAgIGVsaWYgc2VsZi50cmFuc2Zv cm0ubWFwVG9Qb2x5Z29uKHNlbGYuY2xpcEJvdW5kcy50b1JlY3QoKSkuY29udGFpbnNQb2ludChl dmVudC5wb3MoKSwgUXQuT2RkRXZlbkZpbGwpOgorLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLnRy YW5zZm9ybV9tb2RlIG9yIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ2xvY2F0aW9uJzoKKy0gICAg ICAgICAgICAgICAgc2VsZi5zZXRDdXJzb3Ioc2VsZi5yb3RhdGVDdXJzb3Ioc2VsZi5jdXJzb3Jz LmdldCgnbW92ZScpLCByb3RhdGlvbiwgc2hlYXJfeCwgc2hlYXJfeSkpCistICAgICAgICAgICAg IyBTZXQgdGhlIHRyYW5zZm9ybSBtb2RlCistICAgICAgICAgICAgaWYgc2VsZi5tb3VzZV9kcmFn Z2luZyBhbmQgbm90IHNlbGYudHJhbnNmb3JtX21vZGU6CistICAgICAgICAgICAgICAgIHNlbGYu dHJhbnNmb3JtX21vZGUgPSAnbG9jYXRpb24nCistICAgICAgICBlbGlmIG5vdCBzZWxmLnRyYW5z Zm9ybS5tYXBUb1BvbHlnb24oc2VsZi5jbGlwQm91bmRzLnRvUmVjdCgpKS5jb250YWluc1BvaW50 KGV2ZW50LnBvcygpLCBRdC5PZGRFdmVuRmlsbCk6CistICAgICAgICAgICAgaWYgbm90IHNlbGYu dHJhbnNmb3JtX21vZGUgb3Igc2VsZi50cmFuc2Zvcm1fbW9kZSA9PSAncm90YXRpb24nOgorLSAg ICAgICAgICAgICAgICBzZWxmLnNldEN1cnNvcihzZWxmLnJvdGF0ZUN1cnNvcihzZWxmLmN1cnNv cnMuZ2V0KCdyb3RhdGUnKSwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3kpKQorLSAgICAgICAg ICAgICMgU2V0IHRoZSB0cmFuc2Zvcm0gbW9kZQorLSAgICAgICAgICAgIGlmIHNlbGYubW91c2Vf ZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlOgorLSAgICAgICAgICAgICAgICBz ZWxmLnRyYW5zZm9ybV9tb2RlID0gJ3JvdGF0aW9uJworLSAgICAgICAgZWxpZiBub3Qgc2VsZi50 cmFuc2Zvcm1fbW9kZToKKy0gICAgICAgICAgICAjIFJlc2V0IGN1cnNvciB3aGVuIG5vdCBvdmVy IGEgaGFuZGxlCistICAgICAgICAgICAgc2VsZi5zZXRDdXJzb3IoUUN1cnNvcihRdC5BcnJvd0N1 cnNvcikpCisrICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1fbW9kZSA9IE5vbmUKKysgICAgICAg ICAgICByZXR1cm4KKysKKysgICAgICAgICMgSWYgbW91c2UgaXMgb3ZlciBhIGhhbmRsZSwgc2V0 IGNvcnJlc3BvbmRpbmcgcG9pbnRlci9tb2RlCisrICAgICAgICBmb3IgaCBpbiBoYW5kbGVfdWlz OgorKyAgICAgICAgICAgIGlmIHNlbGYudHJhbnNmb3JtLm1hcFRvUG9seWdvbigKKysgICAgICAg ICAgICAgICAgICAgIGhbImhhbmRsZSJdLnRvUmVjdCgpCisrICAgICAgICAgICAgICAgICAgICAp LmNvbnRhaW5zUG9pbnQoZXZlbnQucG9zKCksIFF0Lk9kZEV2ZW5GaWxsKToKKysgICAgICAgICAg ICAgICAgIyBIYW5kbGUgY29udGFpbnMgY3Vyc29yCisrICAgICAgICAgICAgICAgIGlmIHNlbGYu dHJhbnNmb3JtX21vZGUgYW5kIHNlbGYudHJhbnNmb3JtX21vZGUgIT0gaFsibW9kZSJdOgorKyAg ICAgICAgICAgICAgICAgICAgIyBXZSdyZSBpbiBkaWZmZXJlbnQgeGZvcm0gbW9kZSwgc2tpcAor KyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKysgICAgICAgICAgICAgICAgaWYgc2VsZi5t b3VzZV9kcmFnZ2luZzoKKysgICAgICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtX21vZGUg PSBoWyJtb2RlIl0KKysgICAgICAgICAgICAgICAgc2VsZi5zZXRDdXJzb3Ioc2VsZi5yb3RhdGVD dXJzb3IoCisrICAgICAgICAgICAgICAgICAgICBzZWxmLmN1cnNvcnMuZ2V0KGhbImN1cnNvciJd KSwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3kpKQorKyAgICAgICAgICAgICAgICByZXR1cm4K KysKKysgICAgICAgICMgSWYgbm90IG92ZXIgYW55IGhhbmRsZXMsIGRldGVybW5lIGluc2lkZS9v dXRzaWRlIGNsaXAgcmVjdGFuZ2xlCisrICAgICAgICByID0gbm9uX2hhbmRsZV91aXMuZ2V0KCJy ZWdpb24iKQorKyAgICAgICAgaWYgc2VsZi50cmFuc2Zvcm0ubWFwVG9Qb2x5Z29uKHIudG9SZWN0 KCkpLmNvbnRhaW5zUG9pbnQoZXZlbnQucG9zKCksIFF0Lk9kZEV2ZW5GaWxsKToKKysgICAgICAg ICAgICBuaCA9IG5vbl9oYW5kbGVfdWlzLmdldCgiaW5zaWRlIiwge30pCisrICAgICAgICBlbHNl OgorKyAgICAgICAgICAgIG5oID0gbm9uX2hhbmRsZV91aXMuZ2V0KCJvdXRzaWRlIiwge30pCisr ICAgICAgICBpZiBzZWxmLm1vdXNlX2RyYWdnaW5nIGFuZCBub3Qgc2VsZi50cmFuc2Zvcm1fbW9k ZToKKysgICAgICAgICAgICBzZWxmLnRyYW5zZm9ybV9tb2RlID0gbmguZ2V0KCJtb2RlIikKKysg ICAgICAgIGlmIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlIG9yIHNlbGYudHJhbnNmb3JtX21vZGUg PT0gbmguZ2V0KCJtb2RlIik6CisrICAgICAgICAgICAgc2VsZi5zZXRDdXJzb3Ioc2VsZi5yb3Rh dGVDdXJzb3IoCisrICAgICAgICAgICAgICAgIHNlbGYuY3Vyc29ycy5nZXQobmguZ2V0KCJjdXJz b3IiKSksIHJvdGF0aW9uLCBzaGVhcl94LCBzaGVhcl95KSkKKyAKKy0gICAgICAgIHJldHVybiBU cnVlCisrCisrICAgICAgICAjIElmIHdlIGdvdCB0aGlzIGZhciBhbmQgd2UgZG9uJ3QgaGF2ZSBh IHRyYW5zZm9ybSBtb2RlLCByZXNldCB0aGUgY3Vyc29yCisrICAgICAgICBpZiBub3Qgc2VsZi50 cmFuc2Zvcm1fbW9kZToKKysgICAgICAgICAgICBzZWxmLnNldEN1cnNvcihRQ3Vyc29yKFF0LkFy cm93Q3Vyc29yKSkKKyAKKyAgICAgZGVmIG1vdXNlTW92ZUV2ZW50KHNlbGYsIGV2ZW50KToKKyAg ICAgICAgICIiIkNhcHR1cmUgbW91c2UgZXZlbnRzIG9uIHZpZGVvIHByZXZpZXcgd2luZG93ICIi IgorQEAgLTc0Niw3ICs3MDgsNyBAQCBkZWYgbW91c2VNb3ZlRXZlbnQoc2VsZiwgZXZlbnQpOgor ICAgICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9y bV9tb2RlOgorICAgICAgICAgICAgICAgICBzZWxmLm9yaWdpbmFsX2NsaXBfZGF0YSA9IHNlbGYu dHJhbnNmb3JtaW5nX2NsaXAuZGF0YQorIAorLSAgICAgICAgICAgIF8gPSBzZWxmLmdldFRyYW5z Zm9ybU1vZGUocm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3ksIGV2ZW50KQorKyAgICAgICAgICAg IHNlbGYuY2hlY2tUcmFuc2Zvcm1Nb2RlKHJvdGF0aW9uLCBzaGVhcl94LCBzaGVhcl95LCBldmVu dCkKKyAKKyAgICAgICAgICAgICAjIFRyYW5zZm9ybSBjbGlwIG9iamVjdAorICAgICAgICAgICAg IGlmIHNlbGYudHJhbnNmb3JtX21vZGU6CitAQCAtMTA0MCw3ICsxMDAyLDcgQEAgZGVmIG1vdXNl TW92ZUV2ZW50KHNlbGYsIGV2ZW50KToKKyAgICAgICAgICAgICAgICAgICAgIHNlbGYubXV0ZXgu dW5sb2NrKCkKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybgorIAorLSAgICAgICAgICAgICAg ICBfID0gc2VsZi5nZXRUcmFuc2Zvcm1Nb2RlKDAsIDAsIDAsIGV2ZW50KQorKyAgICAgICAgICAg ICAgICBzZWxmLmNoZWNrVHJhbnNmb3JtTW9kZSgwLCAwLCAwLCBldmVudCkKKyAKKyAgICAgICAg ICAgICAgICAgIyBUcmFuc2Zvcm0gZWZmZWN0IG9iamVjdAorICAgICAgICAgICAgICAgICBpZiBz ZWxmLnRyYW5zZm9ybV9tb2RlOgorCitGcm9tIDFmMDU4ZjczMGJiMzYwNjhiY2U1YzY0NWVjZWE0 NWI5ODI3OWI2MTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiAiRmVSRCAoRnJhbmsg RGFuYSkiIDxmZXJkbnljQGdtYWlsLmNvbT4KK0RhdGU6IFRodSwgNCBOb3YgMjAyMSAyMTo0Mjo0 OCAtMDQwMAorU3ViamVjdDogW1BBVENIIDQvNl0gVmlkZW9XaWRnZXQ6IFByb3RlY3QgcHJvcGVy dHkgYWNjZXNzZXMKKworLS0tCisgc3JjL3dpbmRvd3MvdmlkZW9fd2lkZ2V0LnB5IHwgNjEgKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAzNCBp bnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy93aW5kb3dz L3ZpZGVvX3dpZGdldC5weSBiL3NyYy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weQoraW5kZXggMWI5 YzM1YjU0Li5hNGQ0Mjk2OWYgMTAwNjQ0CistLS0gYS9zcmMvd2luZG93cy92aWRlb193aWRnZXQu cHkKKysrKyBiL3NyYy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weQorQEAgLTYzNSw3ICs2MzUsNyBA QCBkZWYgY2hlY2tUcmFuc2Zvcm1Nb2RlKHNlbGYsIHJvdGF0aW9uLCBzaGVhcl94LCBzaGVhcl95 LCBldmVudCk6CisgICAgICAgICAjIE1vdXNlIG92ZXIgcmVzaXplIGJ1dHRvbiAoYW5kIG5vdCBj dXJyZW50bHkgZHJhZ2dpbmcpCisgICAgICAgICBpZiAobm90IHNlbGYubW91c2VfZHJhZ2dpbmcK KyAgICAgICAgICAgICBhbmQgc2VsZi5yZXNpemVfYnV0dG9uLmlzVmlzaWJsZSgpCistICAgICAg ICAgICAgYW5kIHNlbGYucmVzaXplX2J1dHRvbi5yZWN0KCkuY29udGFpbnMoZXZlbnQucG9zKCkK KysgICAgICAgICAgICBhbmQgc2VsZi5yZXNpemVfYnV0dG9uLnJlY3QoKS5jb250YWlucyhldmVu dC5wb3MoKSkKKyAgICAgICAgICk6CisgICAgICAgICAgICAgc2VsZi5zZXRDdXJzb3IoUXQuQXJy b3dDdXJzb3IpCisgICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1fbW9kZSA9IE5vbmUKK0BAIC02 NjgsMTEgKzY2OCw2IEBAIGRlZiBjaGVja1RyYW5zZm9ybU1vZGUoc2VsZiwgcm90YXRpb24sIHNo ZWFyX3gsIHNoZWFyX3ksIGV2ZW50KToKKyAgICAgICAgICAgICBzZWxmLnNldEN1cnNvcihzZWxm LnJvdGF0ZUN1cnNvcigKKyAgICAgICAgICAgICAgICAgc2VsZi5jdXJzb3JzLmdldChuaC5nZXQo ImN1cnNvciIpKSwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3kpKQorIAorLQorLSAgICAgICAg IyBJZiB3ZSBnb3QgdGhpcyBmYXIgYW5kIHdlIGRvbid0IGhhdmUgYSB0cmFuc2Zvcm0gbW9kZSwg cmVzZXQgdGhlIGN1cnNvcgorLSAgICAgICAgaWYgbm90IHNlbGYudHJhbnNmb3JtX21vZGU6Cist ICAgICAgICAgICAgc2VsZi5zZXRDdXJzb3IoUUN1cnNvcihRdC5BcnJvd0N1cnNvcikpCistCisg ICAgIGRlZiBtb3VzZU1vdmVFdmVudChzZWxmLCBldmVudCk6CisgICAgICAgICAiIiJDYXB0dXJl IG1vdXNlIGV2ZW50cyBvbiB2aWRlbyBwcmV2aWV3IHdpbmRvdyAiIiIKKyAgICAgICAgIHNlbGYu bXV0ZXgubG9jaygpCitAQCAtMTEyMSwyNyArMTExNiwzNyBAQCBkZWYgdXBkYXRlQ2xpcFByb3Bl cnR5KHNlbGYsIGNsaXBfaWQsIGZyYW1lX251bWJlciwgcHJvcGVydHlfa2V5LCBuZXdfdmFsdWUs IHJlZgorICAgICAgICAgICAgICMgTm8gY2xpcCBmb3VuZAorICAgICAgICAgICAgIHJldHVybgor IAorLSAgICAgICAgZm9yIHBvaW50IGluIGMuZGF0YVtwcm9wZXJ0eV9rZXldWyJQb2ludHMiXToK Ky0gICAgICAgICAgICBsb2cuaW5mbygibG9vcGluZyBwb2ludHM6IGNvLlggPSAlcyIgJSBwb2lu dFsiY28iXVsiWCJdKQorKyAgICAgICAgIyBQcm9wZXJ0eSBtaXNzaW5nPyBDcmVhdGUgaXQhCisr ICAgICAgICBpZiBwcm9wZXJ0eV9rZXkgbm90IGluIGMuZGF0YToKKysgICAgICAgICAgICBjLmRh dGFbcHJvcGVydHlfa2V5XSA9IHsiUG9pbnRzIjogW119CisrICAgICAgICAgICAgbG9nLndhcm5p bmcoCisrICAgICAgICAgICAgICAgICIlczogQWRkZWQgbWlzc2luZyAnJXMnIHRvIHByb3BlcnR5 IGRhdGEiLAorKyAgICAgICAgICAgICAgICBjbGlwX2lkLCBwcm9wZXJ0eV9rZXkpCisgCistICAg ICAgICAgICAgaWYgcG9pbnRbImNvIl1bIlgiXSA9PSBmcmFtZV9udW1iZXI6CisrICAgICAgICBw b2ludHMgPSBjLmRhdGEuZ2V0KHByb3BlcnR5X2tleSkuZ2V0KCJQb2ludHMiKQorKyAgICAgICAg Zm9yIHBvaW50IGluIHBvaW50czoKKysgICAgICAgICAgICBjbyA9IHBvaW50LmdldCgiY28iLCB7 fSkKKysgICAgICAgICAgICBsb2cuaW5mbygibG9vcGluZyBwb2ludHM6IGNvLlggPSAlcyIgJSBj by5nZXQoIlgiKSkKKysKKysgICAgICAgICAgICBpZiBjby5nZXQoIlgiKSA9PSBmcmFtZV9udW1i ZXI6CisgICAgICAgICAgICAgICAgIGZvdW5kX3BvaW50ID0gVHJ1ZQorICAgICAgICAgICAgICAg ICBjbGlwX3VwZGF0ZWQgPSBUcnVlCistICAgICAgICAgICAgICAgIHBvaW50WyJpbnRlcnBvbGF0 aW9uIl0gPSBvcGVuc2hvdC5CRVpJRVIKKy0gICAgICAgICAgICAgICAgcG9pbnRbImNvIl1bIlki XSA9IGZsb2F0KG5ld192YWx1ZSkKKysgICAgICAgICAgICAgICAgcG9pbnQudXBkYXRlKHsKKysg ICAgICAgICAgICAgICAgICAgICJjbyI6IHsiWCI6IGZyYW1lX251bWJlciwgIlkiOiBmbG9hdChu ZXdfdmFsdWUpfSwKKysgICAgICAgICAgICAgICAgICAgICJpbnRlcnBvbGF0aW9uIjogb3BlbnNo b3QuQkVaSUVSLAorKyAgICAgICAgICAgICAgICB9KQorIAorICAgICAgICAgaWYgbm90IGZvdW5k X3BvaW50IGFuZCBuZXdfdmFsdWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgY2xpcF91cGRh dGVkID0gVHJ1ZQorLSAgICAgICAgICAgIGxvZy5pbmZvKCJDcmVhdGVkIG5ldyBwb2ludCBhdCBY PSVzIiwgZnJhbWVfbnVtYmVyKQorKyAgICAgICAgICAgIGxvZy5pbmZvKCJDcmVhdGluZyBuZXcg cG9pbnQgYXQgWD0lcyIsIGZyYW1lX251bWJlcikKKyAgICAgICAgICAgICBjLmRhdGFbcHJvcGVy dHlfa2V5XVsiUG9pbnRzIl0uYXBwZW5kKHsKKy0gICAgICAgICAgICAgICAgJ2NvJzogeydYJzog ZnJhbWVfbnVtYmVyLCAnWSc6IG5ld192YWx1ZX0sCisrICAgICAgICAgICAgICAgICdjbyc6IHsn WCc6IGZyYW1lX251bWJlciwgJ1knOiBmbG9hdChuZXdfdmFsdWUpfSwKKyAgICAgICAgICAgICAg ICAgJ2ludGVycG9sYXRpb24nOiBvcGVuc2hvdC5CRVpJRVIKKyAgICAgICAgICAgICAgICAgfSkK KyAKKy0gICAgICAgICMgUmVkdWNlICMgb2YgY2xpcCBwcm9wZXJ0aWVzIHdlIGFyZSBzYXZpbmcg KHBlcmZvcm1hbmNlIGJvb3N0KQorLSAgICAgICAgYy5kYXRhID0ge3Byb3BlcnR5X2tleTogYy5k YXRhLmdldChwcm9wZXJ0eV9rZXkpfQorLQorICAgICAgICAgaWYgY2xpcF91cGRhdGVkOgorKyAg ICAgICAgICAgICMgUmVkdWNlICMgb2YgY2xpcCBwcm9wZXJ0aWVzIHdlIGFyZSBzYXZpbmcgKHBl cmZvcm1hbmNlIGJvb3N0KQorKyAgICAgICAgICAgIGMuZGF0YSA9IHtwcm9wZXJ0eV9rZXk6IGMu ZGF0YS5nZXQocHJvcGVydHlfa2V5KX0KKyAgICAgICAgICAgICBjLnNhdmUoKQorICAgICAgICAg ICAgICMgVXBkYXRlIHRoZSBwcmV2aWV3CisgICAgICAgICAgICAgaWYgcmVmcmVzaDoKK0BAIC0x MTY2LDI3ICsxMTcxLDI5IEBAIGRlZiB1cGRhdGVFZmZlY3RQcm9wZXJ0eShzZWxmLCBlZmZlY3Rf aWQsIGZyYW1lX251bWJlciwgb2JqX2lkLCBwcm9wZXJ0eV9rZXksIG5lCisgICAgICAgICAgICAg cmV0dXJuCisgCisgICAgICAgICBmb3IgcG9pbnQgaW4gcG9pbnRzX2xpc3Q6CistICAgICAgICAg ICAgbG9nLmluZm8oImxvb3BpbmcgcG9pbnRzOiBjby5YID0gJXMiLCBwb2ludFsiY28iXVsiWCJd KQorKyAgICAgICAgICAgIGNvID0gcG9pbnQuZ2V0KCJjbyIsIHt9KQorKyAgICAgICAgICAgIGxv Zy5pbmZvKCJsb29waW5nIHBvaW50czogY28uWCA9ICVzIiwgY28uZ2V0KCJYIikpCisgCistICAg ICAgICAgICAgaWYgcG9pbnRbImNvIl1bIlgiXSA9PSBmcmFtZV9udW1iZXI6CisrICAgICAgICAg ICAgaWYgY28uZ2V0KCJYIikgPT0gZnJhbWVfbnVtYmVyOgorICAgICAgICAgICAgICAgICBmb3Vu ZF9wb2ludCA9IFRydWUKKyAgICAgICAgICAgICAgICAgZWZmZWN0X3VwZGF0ZWQgPSBUcnVlCist ICAgICAgICAgICAgICAgIHBvaW50WyJpbnRlcnBvbGF0aW9uIl0gPSBvcGVuc2hvdC5CRVpJRVIK Ky0gICAgICAgICAgICAgICAgcG9pbnRbImNvIl1bIlkiXSA9IGZsb2F0KG5ld192YWx1ZSkKKysg ICAgICAgICAgICAgICAgcG9pbnQudXBkYXRlKHsKKysgICAgICAgICAgICAgICAgICAgICJjbyI6 IHsiWCI6IGZyYW1lX251bWJlciwgIlkiOiBmbG9hdChuZXdfdmFsdWUpfSwKKysgICAgICAgICAg ICAgICAgICAgICJpbnRlcnBvbGF0aW9uIjogb3BlbnNob3QuQkVaSUVSLAorKyAgICAgICAgICAg ICAgICB9KQorIAorLSAgICAgICAgaWYgbm90IGZvdW5kX3BvaW50IGFuZCBuZXdfdmFsdWUgIT0g Tm9uZToKKysgICAgICAgIGlmIG5vdCBmb3VuZF9wb2ludCBhbmQgbmV3X3ZhbHVlIGlzIG5vdCBO b25lOgorICAgICAgICAgICAgIGVmZmVjdF91cGRhdGVkID0gVHJ1ZQorLSAgICAgICAgICAgIGxv Zy5pbmZvKCJDcmVhdGVkIG5ldyBwb2ludCBhdCBYPSVzIiwgZnJhbWVfbnVtYmVyKQorKyAgICAg ICAgICAgIGxvZy5pbmZvKCJDcmVhdGluZyBuZXcgcG9pbnQgYXQgWD0lcyIsIGZyYW1lX251bWJl cikKKyAgICAgICAgICAgICBwb2ludHNfbGlzdC5hcHBlbmQoeworLSAgICAgICAgICAgICAgICAn Y28nOiB7ICdYJzogZnJhbWVfbnVtYmVyLCAnWSc6IG5ld192YWx1ZSB9LAorKyAgICAgICAgICAg ICAgICAnY28nOiB7J1gnOiBmcmFtZV9udW1iZXIsICdZJzogZmxvYXQobmV3X3ZhbHVlKX0sCisg ICAgICAgICAgICAgICAgICdpbnRlcnBvbGF0aW9uJzogb3BlbnNob3QuQkVaSUVSLAorICAgICAg ICAgICAgICAgICB9KQorIAorLSAgICAgICAgIyBSZWR1Y2UgIyBvZiBjbGlwIHByb3BlcnRpZXMg d2UgYXJlIHNhdmluZyAocGVyZm9ybWFuY2UgYm9vc3QpCistICAgICAgICAjVE9ETzogVGhpcyBp cyB0b28gc2xvdyB3aGVuIGRyYWdpbmcgdHJhbnNmb3JtIGhhbmRsZXJzCistICAgICAgICBjLmRh dGEgPSB7J29iamVjdHMnOiB7b2JqX2lkOiBjLmRhdGEuZ2V0KCdvYmplY3RzJywge30pLmdldChv YmpfaWQpfX0KKy0KKyAgICAgICAgIGlmIGVmZmVjdF91cGRhdGVkOgorKyAgICAgICAgICAgICMg UmVkdWNlICMgb2YgY2xpcCBwcm9wZXJ0aWVzIHdlIGFyZSBzYXZpbmcgKHBlcmZvcm1hbmNlIGJv b3N0KQorKyAgICAgICAgICAgICNUT0RPOiBUaGlzIGlzIHRvbyBzbG93IHdoZW4gZHJhZ2luZyB0 cmFuc2Zvcm0gaGFuZGxlcnMKKysgICAgICAgICAgICBjLmRhdGEgPSB7J29iamVjdHMnOiB7b2Jq X2lkOiBjLmRhdGEuZ2V0KCdvYmplY3RzJywge30pLmdldChvYmpfaWQpfX0KKyAgICAgICAgICAg ICBjLnNhdmUoKQorICAgICAgICAgICAgICMgVXBkYXRlIHRoZSBwcmV2aWV3CisgICAgICAgICAg ICAgaWYgcmVmcmVzaDoKKworRnJvbSA3ZGY4N2RkYzE4OWM1ZTUwMzFmYmIxOWRmMTMzNzg0Mjhm YWI5NTFlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogIkZlUkQgKEZyYW5rIERhbmEp IiA8ZmVyZG55Y0BnbWFpbC5jb20+CitEYXRlOiBUaHUsIDQgTm92IDIwMjEgMjE6NTI6MTkgLTA0 MDAKK1N1YmplY3Q6IFtQQVRDSCA1LzZdIGNsYXNzZXMvdGh1bWJuYWlsOiBGaXggZGFuZ2xpbmcg ZmlsZWhhbmRsZXMKKworLS0tCisgc3JjL2NsYXNzZXMvdGh1bWJuYWlsLnB5IHwgOCArKysrLS0t LQorIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2Rp ZmYgLS1naXQgYS9zcmMvY2xhc3Nlcy90aHVtYm5haWwucHkgYi9zcmMvY2xhc3Nlcy90aHVtYm5h aWwucHkKK2luZGV4IGNjYTQ3ZDY4Zi4uZGFjNzQyMmExIDEwMDY0NAorLS0tIGEvc3JjL2NsYXNz ZXMvdGh1bWJuYWlsLnB5CisrKysgYi9zcmMvY2xhc3Nlcy90aHVtYm5haWwucHkKK0BAIC0yMDks MTMgKzIwOSwxMyBAQCBkZWYgZG9fR0VUKHNlbGYpOgorIAorICAgICAgICAgIyBTZW5kIG1lc3Nh Z2UgYmFjayB0byBjbGllbnQKKyAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHRodW1iX3BhdGgp OgorLSAgICAgICAgICAgIGlmIG5vdCBvbmx5X3BhdGg6CistICAgICAgICAgICAgICAgIHNlbGYu d2ZpbGUud3JpdGUob3Blbih0aHVtYl9wYXRoLCAncmInKS5yZWFkKCkpCistICAgICAgICAgICAg ZWxzZToKKysgICAgICAgICAgICBpZiBvbmx5X3BhdGg6CisgICAgICAgICAgICAgICAgIHNlbGYu d2ZpbGUud3JpdGUoYnl0ZXModGh1bWJfcGF0aCwgInV0Zi04IikpCisrICAgICAgICAgICAgZWxz ZToKKysgICAgICAgICAgICAgICAgd2l0aCBvcGVuKHRodW1iX3BhdGgsICdyYicpIGFzIGY6Cisr ICAgICAgICAgICAgICAgICAgICBzZWxmLndmaWxlLndyaXRlKGYucmVhZCgpKQorIAorICAgICAg ICAgIyBQYXVzZSBwcm9jZXNzaW5nIG9mIHJlcXVlc3QgKHNpbmNlIHdlIGRvbid0IGN1cnJlbnRs eSB1c2UgdGhyZWFkIHBvb2xpbmcsIHRoaXMgYWxsb3dzCisgICAgICAgICAjIHRoZSB0aHJlYWRz IHRvIGJlIHByb2Nlc3NlZCB3aXRob3V0IGNob2tpbmcgdGhlIENQVSBhcyBtdWNoCisgICAgICAg ICAjIFRPRE86IE1ha2UgSFRUUFNlcnZlciB3b3JrIHdpdGggYSBsaW1pdGVkIHRocmVhZCBwb29s IGFuZCByZW1vdmUgdGhpcyBzbGVlcCgpIGhhY2suCisgICAgICAgICB0aW1lLnNsZWVwKDAuMDEp CistCisKK0Zyb20gMzNjZjY4Y2EwYjFlYTU3ZWRkNWRlYzNkYmI4YmEwNmQ2YTNmOGZhNCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ICJGZVJEIChGcmFuayBEYW5hKSIgPGZlcmRueWNA Z21haWwuY29tPgorRGF0ZTogVGh1LCAyNSBOb3YgMjAyMSAwMjoxODozMiAtMDUwMAorU3ViamVj dDogW1BBVENIIDYvNl0gcHJvcGVydGllc19tb2RlbDogRml4IGJhZCBsb2dnaW5nIGNhbGwsIENv ZGFjeSBmbGFncworCistLS0KKyBzcmMvd2luZG93cy9tb2RlbHMvcHJvcGVydGllc19tb2RlbC5w eSB8IDEwICsrKysrLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRl bGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL3dpbmRvd3MvbW9kZWxzL3Byb3BlcnRpZXNf bW9kZWwucHkgYi9zcmMvd2luZG93cy9tb2RlbHMvcHJvcGVydGllc19tb2RlbC5weQoraW5kZXgg NDA4OTdmNjQyLi42OTVlOWYzOWMgMTAwNjQ0CistLS0gYS9zcmMvd2luZG93cy9tb2RlbHMvcHJv cGVydGllc19tb2RlbC5weQorKysrIGIvc3JjL3dpbmRvd3MvbW9kZWxzL3Byb3BlcnRpZXNfbW9k ZWwucHkKK0BAIC00NDQsNyArNDQ0LDcgQEAgZGVmIHZhbHVlX3VwZGF0ZWQoc2VsZiwgaXRlbSwg aW50ZXJwb2xhdGlvbj0tMSwgdmFsdWU9Tm9uZSwgaW50ZXJwb2xhdGlvbl9kZXRhaWwKKyAgICAg ICAgICAgICAgICAgbG9nLmRlYnVnKCIlczogdXBkYXRlIHByb3BlcnR5ICVzLiAlcyIsIGxvZ19p ZCwgcHJvcGVydHlfa2V5LCBjbGlwX2RhdGEuZ2V0KHByb3BlcnR5X2tleSkpCisgCisgICAgICAg ICAgICAgICAgICMgQ2hlY2sgdGhlIHR5cGUgb2YgcHJvcGVydHkgKHNvbWUgYXJlIGtleWZyYW1l LCBhbmQgc29tZSBhcmUgbm90KQorLSAgICAgICAgICAgICAgICBpZiBwcm9wZXJ0eV90eXBlICE9 ICJyZWFkZXIiIGFuZCB0eXBlKGNsaXBfZGF0YVtwcm9wZXJ0eV9rZXldKSA9PSBkaWN0OgorKyAg ICAgICAgICAgICAgICBpZiBwcm9wZXJ0eV90eXBlICE9ICJyZWFkZXIiIGFuZCBpc2luc3RhbmNl KGNsaXBfZGF0YVtwcm9wZXJ0eV9rZXldLCBkaWN0KToKKyAgICAgICAgICAgICAgICAgICAgICMg S2V5ZnJhbWUKKyAgICAgICAgICAgICAgICAgICAgICMgTG9vcCB0aHJvdWdoIHBvaW50cywgZmlu ZCBhIG1hdGNoaW5nIHBvaW50cyBvbiB0aGlzIGZyYW1lCisgICAgICAgICAgICAgICAgICAgICBm b3VuZF9wb2ludCA9IEZhbHNlCitAQCAtNTE3LDIxICs1MTcsMjEgQEAgZGVmIHZhbHVlX3VwZGF0 ZWQoc2VsZiwgaXRlbSwgaW50ZXJwb2xhdGlvbj0tMSwgdmFsdWU9Tm9uZSwgaW50ZXJwb2xhdGlv bl9kZXRhaWwKKyAgICAgICAgICAgICAgICAgICAgIGNsaXBfdXBkYXRlZCA9IFRydWUKKyAgICAg ICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwX2RhdGFb cHJvcGVydHlfa2V5XSA9IGludChuZXdfdmFsdWUpCistICAgICAgICAgICAgICAgICAgICBleGNl cHQgRXhjZXB0aW9uIGFzIGV4OgorKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlv bjoKKyAgICAgICAgICAgICAgICAgICAgICAgICBsb2cud2FybignSW52YWxpZCBJbnRlZ2VyIHZh bHVlIHBhc3NlZCB0byBwcm9wZXJ0eScsIGV4Y19pbmZvPTEpCisgCisgICAgICAgICAgICAgICAg IGVsaWYgcHJvcGVydHlfdHlwZSA9PSAiZmxvYXQiOgorICAgICAgICAgICAgICAgICAgICAgY2xp cF91cGRhdGVkID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAg ICAgICAgICAgICAgIGNsaXBfZGF0YVtwcm9wZXJ0eV9rZXldID0gZmxvYXQobmV3X3ZhbHVlKQor LSAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleDoKKysgICAgICAgICAg ICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAgICAgICAgICAgbG9n Lndhcm4oJ0ludmFsaWQgRmxvYXQgdmFsdWUgcGFzc2VkIHRvIHByb3BlcnR5JywgZXhjX2luZm89 MSkKKyAKKyAgICAgICAgICAgICAgICAgZWxpZiBwcm9wZXJ0eV90eXBlID09ICJib29sIjoKKyAg ICAgICAgICAgICAgICAgICAgIGNsaXBfdXBkYXRlZCA9IFRydWUKKyAgICAgICAgICAgICAgICAg ICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwX2RhdGFbcHJvcGVydHlfa2V5 XSA9IGJvb2wobmV3X3ZhbHVlKQorLSAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlv biBhcyBleDoKKysgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAg ICAgICAgICAgICAgICAgICAgbG9nLndhcm4oJ0ludmFsaWQgQm9vbGVhbiB2YWx1ZSBwYXNzZWQg dG8gcHJvcGVydHknLCBleGNfaW5mbz0xKQorIAorICAgICAgICAgICAgICAgICBlbGlmIHByb3Bl cnR5X3R5cGUgPT0gInN0cmluZyI6CitAQCAtNTU4LDcgKzU1OCw3IEBAIGRlZiB2YWx1ZV91cGRh dGVkKHNlbGYsIGl0ZW0sIGludGVycG9sYXRpb249LTEsIHZhbHVlPU5vbmUsIGludGVycG9sYXRp b25fZGV0YWlsCisgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcF9vYmplY3QuQ2xvc2UoKQor ICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBfb2JqZWN0ID0gTm9uZQorICAgICAgICAgICAg ICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKy0gICAgICAgICAgICAgICAgICAgICAgICBsb2cu d2FybignSW52YWxpZCBSZWFkZXIgdmFsdWUgcGFzc2VkIHRvIHByb3BlcnR5OiAlcyAoJXMpJywg dmFsdWUsIGV4Y19pbmZvPTEpCisrICAgICAgICAgICAgICAgICAgICAgICAgbG9nLndhcm4oJ0lu dmFsaWQgUmVhZGVyIHZhbHVlIHBhc3NlZCB0byBwcm9wZXJ0eTogJXMnLCB2YWx1ZSwgZXhjX2lu Zm89MSkKKyAKKyAgICAgICAgICAgICAjIFJlZHVjZSAjIG9mIGNsaXAgcHJvcGVydGllcyB3ZSBh cmUgc2F2aW5nIChwZXJmb3JtYW5jZSBib29zdCkKKyAgICAgICAgICAgICBjbGlwX2RhdGEgPSB7 cHJvcGVydHlfa2V5OiBjbGlwX2RhdGEuZ2V0KHByb3BlcnR5X2tleSl9CmRpZmYgLS1naXQgYS9z cmNwa2dzL29wZW5zaG90L3RlbXBsYXRlIGIvc3JjcGtncy9vcGVuc2hvdC90ZW1wbGF0ZQppbmRl eCBkMTZlYTkyNWQyMjMuLjQyNDhiYWE4MWUzOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9vcGVuc2hv dC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29wZW5zaG90L3RlbXBsYXRlCkBAIC0xLDEyICsxLDEx IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdvcGVuc2hvdCcKIHBrZ25hbWU9b3BlbnNob3QKLXZl cnNpb249Mi41LjEKLXJldmlzaW9uPTMKLWFyY2hzPSJpNjg2IHg4Nl82NCBwcGM2NGxlIgordmVy c2lvbj0yLjYuMQorcmV2aXNpb249MQogd3Jrc3JjPSIke3BrZ25hbWV9LXF0LSR7dmVyc2lvbn0i CiBidWlsZF9zdHlsZT1weXRob24zLW1vZHVsZQotaG9zdG1ha2VkZXBlbmRzPSJweXRob24zIgot bWFrZWRlcGVuZHM9ImZmbXBlZy1kZXZlbCBweXRob24zLVB5UXQ1IHB5dGhvbjMtc2V0dXB0b29s cyIKK2hvc3RtYWtlZGVwZW5kcz0icHl0aG9uMyBweXRob24zLXNldHVwdG9vbHMiCittYWtlZGVw ZW5kcz0iZmZtcGVnLWRldmVsIHB5dGhvbjMtUHlRdDUiCiBkZXBlbmRzPSJJbWFnZU1hZ2ljayBs aWJvcGVuc2hvdCBtbHQgcHl0aG9uMy1QeVF0NS1zdmcKICBweXRob24zLVB5UXQ1LXdlYmtpdCBw eXRob24zLWh0dHBsaWIyIHB5dGhvbjMtcHl6bXEgcHl0aG9uMy1yZXF1ZXN0cyIKIHNob3J0X2Rl c2M9Ik9wZW4tc291cmNlLCBub24tbGluZWFyIHZpZGVvIGVkaXRvciBmb3IgTGludXgiCkBAIC0x NCw0ICsxMyw1IEBAIG1haW50YWluZXI9IlNwZW5jZXIgSGlsbCA8c3BlbmNlcm5oNzdAZ21haWwu Y29tPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cu b3BlbnNob3Qub3JnIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vT3BlblNob3Qvb3Bl bnNob3QtcXQvYXJjaGl2ZS92JHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT00YzI1ZWI5YTVk ZTQyZTc0OWRlNGM2Y2EyZjdhMzEzYzYwZTEyODNmZTUyZDcwYzEyMTYyOWRiYjhiYjJkZjdiCitj aGVja3N1bT0xMTY1MWQ1ZTcyODdkYTNjNzY2Y2U2YjQ0N2FlZjhkYTVjZGFkYWY1NjI2YTI4MTZl OTAyNWM4MzFkMGUxYTY2CittYWtlX2NoZWNrPW5vICMgdGVzdHMgYXJlIGJyb2tlbgo= --===============4326357967151946992==--