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.7 required=5.0 tests=ALL_TRUSTED,URIBL_BLACK autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 13170 invoked from network); 29 Dec 2020 23:43:00 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 29 Dec 2020 23:43:00 -0000 Content-Type: multipart/mixed; boundary="===============0951283120507729850==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_crosstoolchain_build-style?= To: ml@inbox.vuxu.org From: q66 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 30 Dec 2020 00:42:57 +0100 List-Id: Message-ID: <20201229234257.dTW__PN9pK87eNnQh2FuPUvtasGDx2uOCokOBrHvw2Q@z> GitHub notification mails are now in MIME to allow UTF8. --===============0951283120507729850== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcTY2IGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9xNjYvdm9p ZC1wYWNrYWdlcyBjcm9zcy1zdHlsZQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lk LXBhY2thZ2VzL3B1bGwvMjc0MTIKCmNyb3NzdG9vbGNoYWluIGJ1aWxkLXN0eWxlClRoaXMgaW50 cm9kdWNlcyBhIGJ1aWxkLXN0eWxlIGZvciBzeXN0ZW0gY3Jvc3N0b29sY2hhaW5zLiBJdCBvbmx5 IHdvcmtzLCBhbmQgd2lsbCBvbmx5IHdvcmssIGZvciB0b29sY2hhaW5zIHRhcmdldGluZyBWb2lk IGFuZCBvbmUgb2YgaXRzIHN0YW5kYXJkIGxpYnJhcmllcy4gVGhlIG5vbmUgdGFyZ2V0cyBhbmQg c3R1ZmYgbGlrZSBtaW5ndyBhcmUgZXhwbGljaXRseSBhIG5vbi1nb2FsLCB0byByZWR1Y2UgdGhl IGFtb3VudCBvZiBtYWdpYyB3ZSBoYXZlIHRvIGRvLg0KDQpUaGlzIGhhcyBhIGJ1bmNoIG9mIGFk dmFudGFnZXM6DQoNCi0gY3Jvc3N0b29sY2hhaW4gdGVtcGxhdGVzIGNhbiBub3cgYmUgc21hbGwg YW5kIHNpbXBsZQ0KLSBjcm9zc3Rvb2xjaGFpbnMgd3JpdGVuIHdpdGggdGhpcyBidWlsZC1zdHls ZSB3aWxsIG5vIGxvbmdlciBtZXNzIHVwIG1hc3RlcmRpcnMgbGlrZSB0aGUgZXhpc3Rpbmcgb25l cyBkbzsgeW91IGNhbiBzYWZlbHkgYnVpbGQgeW91ciBzdHVmZiB3aXRob3V0IGAtdGAgYW5kIHlv dXIgYG1hc3RlcmRpcmAgd2lsbCBiZSBwcmlzdGluZQ0KLSB1bmlmaWNhdGlvbiBvZiBvcHRpb25z IHBhc3NlZCB0byBgZ2NjYC9saWJjL2BiaW51dGlsc2AgY29uZmlndXJlLCBhcyBtdWNoIGFzIHBv c3NpYmxlDQotIHJlZHVjZWQgcmVwZWF0ZWQgYm9pbGVycGxhdGUgY29kZSBiZXR3ZWVuIGluZGl2 aWR1YWwgY3Jvc3N0b29sY2hhaW5zDQotIGBjY2FjaGVgIGZyaWVuZGx5DQotIGVhc2llciB1cGdy YWRlcywgZWFzaWVyIG1haW50ZW5hbmNlLCBldGMNCg0KVGhpcyBpcyBjdXJyZW50bHkgaW5jb21w bGV0ZS4gVGhlc2UgdGhpbmdzIGFyZSBsZWZ0IHRvIGRvOg0KDQotIFt4XSBBZGQgbXVzbCBzdXBw b3J0DQotIFt4XSBDbGVhbiB1cCB0aGUgY29uZmlndXJlIHBhcmFtcywgb25seSBrZWVwIHRoZSBn ZW5lcmljIG9uZXMgaW4gdGhlIGJ1aWxkLXN0eWxlLCBzcGVjaWZpYyBvbmVzIHdpbGwgZ28gaW50 byBpbmRpdmlkdWFsIGNyb3NzdG9vbGNoYWlucyAodGhpcyBvbmUgaXMgbGFyZ2VseSBiYXNlZCBv biB3aGF0IHRoZSBhYXJjaDY0IG9uZSB3YXMgZG9pbmcpDQotIFt4XSA2NC1iaXQgY3Jvc3Mgb24g MzItYml0IGhvc3RzIGlzIHByb2JhYmx5IGFjdHVhbGx5IGZpbmUgaW4gZ2VuZXJhbCwgd2UganVz dCBuZWVkIHRvIGVuYWJsZSBpdA0KLSB+fkFsbG93IGdsaWJjIGNyb3NzdG9vbGNoYWlucyBvbiBt dXNsfn4gKHRoaXMgbmVlZHMgYGdsaWJjYCAyLjMyIHNvIGl0IHdpbGwgYmUgZG9uZSBsYXRlcikN Cg0KVG9vbGNoYWluIHJld3JpdGUgVE9ETzoNCg0KLSBbeF0gYGNyb3NzLWFhcmNoNjQtbGludXgt Z251YA0KLSBbeF0gYGNyb3NzLWFhcmNoNjQtbGludXgtbXVzbGANCi0gW3hdIGBjcm9zcy1hcm0t bGludXgtZ251ZWFiaWANCi0gW3hdIGBjcm9zcy1hcm0tbGludXgtbXVzbGVhYmlgDQotIFt4XSBg Y3Jvc3MtYXJtLWxpbnV4LWdudWVhYmloZmANCi0gW3hdIGBjcm9zcy1hcm0tbGludXgtbXVzbGVh YmloZmANCi0gW3hdIGBjcm9zcy1hcm12N2wtbGludXgtZ251ZWFiaWhmYA0KLSBbeF0gYGNyb3Nz LWFybXY3bC1saW51eC1tdXNsZWFiaWhmYA0KLSBbeF0gYGNyb3NzLWk2ODYtcGMtbGludXgtZ251 YA0KLSBbeF0gYGNyb3NzLWk2ODYtbGludXgtbXVzbGANCi0gW3hdIGBjcm9zcy1taXBzLWxpbnV4 LW11c2xgDQotIFt4XSBgY3Jvc3MtbWlwcy1saW51eC1tdXNsaGZgDQotIFt4XSBgY3Jvc3MtbWlw c2VsLWxpbnV4LW11c2xgDQotIFt4XSBgY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2xoZmANCi0gW3hd IGBjcm9zcy1wb3dlcnBjLWxpbnV4LWdudWANCi0gW3hdIGBjcm9zcy1wb3dlcnBjLWxpbnV4LW11 c2xgDQotIFt4XSBgY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LWdudWANCi0gW3hdIGBjcm9zcy1wb3dl cnBjbGUtbGludXgtbXVzbGANCi0gW3hdIGBjcm9zcy1wb3dlcnBjNjQtbGludXgtZ251YA0KLSBb eF0gYGNyb3NzLXBvd2VycGM2NC1saW51eC1tdXNsYA0KLSBbeF0gYGNyb3NzLXBvd2VycGM2NGxl LWxpbnV4LWdudWANCi0gW3hdIGBjcm9zcy1wb3dlcnBjNjRsZS1saW51eC1tdXNsYA0KLSBbeF0g YGNyb3NzLXg4Nl82NC1saW51eC1nbnVgDQotIFt4XSBgY3Jvc3MteDg2XzY0LWxpbnV4LW11c2xg DQoNCkZvciBub3csIHBvc3RpbmcgZm9yIGlucHV0Lg0KDQpARHVuY2FlbiBAbGVhaG5ldWtpcmNo ZW4gQHB1bGxtb2xsIEBlcmljb25yIEB2b2lkLWxpbnV4L3BrZy1jb21taXR0ZXJzIA0KDQpbY2kg c2tpcF0KCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3Zv aWQtcGFja2FnZXMvcHVsbC8yNzQxMi5wYXRjaCBpcyBhdHRhY2hlZA== --===============0951283120507729850== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-cross-style-27412.patch" RnJvbSA1NzUwMGQzN2ZlNWM3ODcxZDVkYmIxYzc0NTQxOGIzMzQxMjAwNTM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmks IDI1IERlYyAyMDIwIDE0OjU4OjM4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMS8yNl0gZ2NjOiB1 c2UgY29uc2lzdGVudCBwYXRjaCBsZXZlbCBmb3IgbXVzbCBwYXRjaGVzCgpuZWVkZWQgZm9yIGNy b3NzIGJ1aWxkIHN0eWxlCi0tLQogc3JjcGtncy9nY2MvZmlsZXMvbGliZ25hcmwtbXVzbC5wYXRj aCB8ICA4ICsrKystLS0tCiBzcmNwa2dzL2djYy9maWxlcy9saWJzc3AtbXVzbC5wYXRjaCAgIHwg MTIgKysrKysrLS0tLS0tCiBzcmNwa2dzL2djYy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgIHwg IDQgKystLQogMyBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2djYy9maWxlcy9saWJnbmFybC1tdXNsLnBhdGNoIGIv c3JjcGtncy9nY2MvZmlsZXMvbGliZ25hcmwtbXVzbC5wYXRjaAppbmRleCAzMWQzOTYwN2VhNC4u NWVkOWYxNmY1NTggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2NjL2ZpbGVzL2xpYmduYXJsLW11c2wu cGF0Y2gKKysrIGIvc3JjcGtncy9nY2MvZmlsZXMvbGliZ25hcmwtbXVzbC5wYXRjaApAQCAtMyw4 ICszLDggQEAgVXBzdHJlYW06IFVua25vd24KIFJlYXNvbjogUGF0Y2ggbGliZ25hcmwgdG8gbm90 IHVzZSBmdW5jdGlvbiBtaXNzaW5nIGZyb20gbXVzbC4KIAogZGlmZiAtcnVwIGdjYy04LjIuMC9n Y2MvYWRhL2xpYmduYXJsL3Mtb3NpbnRlX19saW51eC5hZHMgZ2NjLTguMi4wLW5ldy9nY2MvYWRh L2xpYmduYXJsL3Mtb3NpbnRlX19saW51eC5hZHMKLS0tLSBnY2MtOC4yLjAvZ2NjL2FkYS9saWJn bmFybC9zLW9zaW50ZV9fbGludXguYWRzCTIwMTgtMDEtMTEgMDA6NTU6MjUuMDAwMDAwMDAwIC0w ODAwCi0rKysgZ2NjLTguMi4wLW5ldy9nY2MvYWRhL2xpYmduYXJsL3Mtb3NpbnRlX19saW51eC5h ZHMJMjAxOC0xMS0wMSAxNjoxNjoyMy4zNzI0NTI5NTEgLTA3MDAKKy0tLSBnY2MvYWRhL2xpYmdu YXJsL3Mtb3NpbnRlX19saW51eC5hZHMJMjAxOC0wMS0xMSAwMDo1NToyNS4wMDAwMDAwMDAgLTA4 MDAKKysrKyBnY2MvYWRhL2xpYmduYXJsL3Mtb3NpbnRlX19saW51eC5hZHMJMjAxOC0xMS0wMSAx NjoxNjoyMy4zNzI0NTI5NTEgLTA3MDAKIEBAIC0zOTQsMTIgKzM5NCw2IEBAIHBhY2thZ2UgU3lz dGVtLk9TX0ludGVyZmFjZSBpcwogICAgIFBUSFJFQURfUldMT0NLX1BSRUZFUl9XUklURVJfTlAg ICAgICAgICAgICAgIDogY29uc3RhbnQgOj0gMTsKICAgICBQVEhSRUFEX1JXTE9DS19QUkVGRVJf V1JJVEVSX05PTlJFQ1VSU0lWRV9OUCA6IGNvbnN0YW50IDo9IDI7CkBAIC0zMSw4ICszMSw4IEBA IGRpZmYgLXJ1cCBnY2MtOC4yLjAvZ2NjL2FkYS9saWJnbmFybC9zLW9zaW50ZV9fbGludXguYWRz IGdjYy04LjIuMC1uZXcvZ2NjL2FkYS9sCiAgICAgICAgc2NoZWRfcHJpb3JpdHkgOiBpbnQ7ICAt LSAgc2NoZWR1bGluZyBwcmlvcml0eQogICAgIGVuZCByZWNvcmQ7CiBkaWZmIC1ydXAgZ2NjLTgu Mi4wL2djYy9hZGEvbGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYiBnY2MtOC4yLjAtbmV3L2dj Yy9hZGEvbGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYgotLS0tIGdjYy04LjIuMC9nY2MvYWRh L2xpYmduYXJsL3MtdGFwcm9wX19saW51eC5hZGIJMjAxOC0wMS0xMSAwMDo1NToyNS4wMDAwMDAw MDAgLTA4MDAKLSsrKyBnY2MtOC4yLjAtbmV3L2djYy9hZGEvbGliZ25hcmwvcy10YXByb3BfX2xp bnV4LmFkYgkyMDE4LTExLTEzIDExOjI4OjM2LjQzMzk2NDQ0OSAtMDgwMAorLS0tIGdjYy9hZGEv bGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYgkyMDE4LTAxLTExIDAwOjU1OjI1LjAwMDAwMDAw MCAtMDgwMAorKysrIGdjYy9hZGEvbGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYgkyMDE4LTEx LTEzIDExOjI4OjM2LjQzMzk2NDQ0OSAtMDgwMAogQEAgLTIwMiw5ICsyMDIsNiBAQCBwYWNrYWdl IGJvZHkgU3lzdGVtLlRhc2tfUHJpbWl0aXZlcy5PcGVyCiAgICAgcHJhZ21hIEltcG9ydAogICAg ICAgKEMsIEdOQVRfcHRocmVhZF9jb25kYXR0cl9zZXR1cCwgIl9fZ25hdF9wdGhyZWFkX2NvbmRh dHRyX3NldHVwIik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2djYy9maWxlcy9saWJzc3AtbXVzbC5w YXRjaCBiL3NyY3BrZ3MvZ2NjL2ZpbGVzL2xpYnNzcC1tdXNsLnBhdGNoCmluZGV4IDhhNjkyYzBk NjY0Li44ZDQ3YjQ0MmFhMSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nY2MvZmlsZXMvbGlic3NwLW11 c2wucGF0Y2gKKysrIGIvc3JjcGtncy9nY2MvZmlsZXMvbGlic3NwLW11c2wucGF0Y2gKQEAgLTIs OCArMiw4IEBAIEZpcnN0IHBhcnQgdGFrZW4gZnJvbSBBbHBpbmUuCiAKIFNlY29uZCBwYXJ0IGFk ZGVkIHRvIHByZXZlbnQgZ2NjZ28gZnJvbSB0aGlua2luZyBpdCBjYW4gLWZzcGxpdC1zdGFjayBv biBtdXNsLgogCi0tLS0gYS9nY2MvZ2NjLmMKLSsrKyBiL2djYy9nY2MuYworLS0tIGdjYy9nY2Mu YworKysrIGdjYy9nY2MuYwogQEAgLTg3Niw5ICs4NzYsOCBAQAogICNlbmRpZgogIApAQCAtMTUs OCArMTUsOCBAQCBTZWNvbmQgcGFydCBhZGRlZCB0byBwcmV2ZW50IGdjY2dvIGZyb20gdGhpbmtp bmcgaXQgY2FuIC1mc3BsaXQtc3RhY2sgb24gbXVzbC4KICAjZWxzZQogICNkZWZpbmUgTElOS19T U1BfU1BFQyAiJXtmc3RhY2stcHJvdGVjdG9yfGZzdGFjay1wcm90ZWN0b3ItYWxsIiBcCiAgCQkg ICAgICAgInxmc3RhY2stcHJvdGVjdG9yLXN0cm9uZ3xmc3RhY2stcHJvdGVjdG9yLWV4cGxpY2l0 IiBcCi0tLS0gYS9nY2MvY29uZmlnL2kzODYvZ251LXVzZXItY29tbW9uLmgKLSsrKyBiL2djYy9j b25maWcvaTM4Ni9nbnUtdXNlci1jb21tb24uaAorLS0tIGdjYy9jb25maWcvaTM4Ni9nbnUtdXNl ci1jb21tb24uaAorKysrIGdjYy9jb25maWcvaTM4Ni9nbnUtdXNlci1jb21tb24uaAogQEAgLTY0 LDkgKzY0LDMgQEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5v dCBzZWUKICAKICAvKiBTdGF0aWMgc3RhY2sgY2hlY2tpbmcgaXMgc3VwcG9ydGVkIGJ5IG1lYW5z IG9mIHByb2Jlcy4gICovCkBAIC0yNyw4ICsyNyw4IEBAIFNlY29uZCBwYXJ0IGFkZGVkIHRvIHBy ZXZlbnQgZ2NjZ28gZnJvbSB0aGlua2luZyBpdCBjYW4gLWZzcGxpdC1zdGFjayBvbiBtdXNsLgog LSNpZiBIQVZFX0dBU19DRklfUEVSU09OQUxJVFlfRElSRUNUSVZFCiAtI2RlZmluZSBUQVJHRVRf Q0FOX1NQTElUX1NUQUNLCiAtI2VuZGlmCi0tLS0gYS9nY2MvY29uZmlnL2kzODYvZ251LmgKLSsr KyBiL2djYy9jb25maWcvaTM4Ni9nbnUuaAorLS0tIGdjYy9jb25maWcvaTM4Ni9nbnUuaAorKysr IGdjYy9jb25maWcvaTM4Ni9nbnUuaAogQEAgLTQwLDExICs0MCw2IEBAIGFsb25nIHdpdGggR0ND LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogIC8qIGkzODYg Z2xpYmMgcHJvdmlkZXMgX19zdGFja19jaGtfZ3VhcmQgaW4gJWdzOjB4MTQuICAqLwogICNkZWZp bmUgVEFSR0VUX1RIUkVBRF9TU1BfT0ZGU0VUICAgICAgICAweDE0CmRpZmYgLS1naXQgYS9zcmNw a2dzL2djYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2NjL3RlbXBsYXRlCmluZGV4IDQ3MmI5NTJlYWUz Li4wMmE3NTE2MDAyZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nY2MvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9nY2MvdGVtcGxhdGUKQEAgLTE3Myw4ICsxNzMsOCBAQCBwcmVfY29uZmlndXJlKCkgewog CXNlZCAtaSAiL2FjX2NwcD0vcy9cJENQUEZMQUdTL1wkQ1BQRkxBR1MgLU8yLyIge2djYyxsaWJp YmVydHl9L2NvbmZpZ3VyZQogCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgogCQkqLW11 c2wpCi0JCQlwYXRjaCAtcDEgLWkgJHtGSUxFU0RJUn0vbGliZ25hcmwtbXVzbC5wYXRjaAotCQkJ cGF0Y2ggLXAxIC1pICR7RklMRVNESVJ9L2xpYnNzcC1tdXNsLnBhdGNoCisJCQlwYXRjaCAtcDAg LWkgJHtGSUxFU0RJUn0vbGliZ25hcmwtbXVzbC5wYXRjaAorCQkJcGF0Y2ggLXAwIC1pICR7RklM RVNESVJ9L2xpYnNzcC1tdXNsLnBhdGNoCiAJCQlwYXRjaCAtcDAgLWkgJHtGSUxFU0RJUn0vZ2Nj Z28tbXVzbC5wYXRjaAogCQkJOzsKIAllc2FjCgpGcm9tIDU0ZWU1ZDQ1NzhmNmQzZGFhOTUwOWU1 ODYwMmY1NTQ5NDVjYzE1ZGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMjUgRGVjIDIwMjAgMDA6NDI6MjYgKzAxMDAK U3ViamVjdDogW1BBVENIIDAyLzI2XSBjb21tb24vYnVpbGQtc3R5bGU6IGFkZCB2b2lkLWNyb3Nz Cgp0aGlzIGludHJvZHVjZXMgYSBuZXcgYnVpbGQtc3R5bGUgdm9pZC1jcm9zcywgd2hpY2ggY2Fu IGJlIHVzZWQKdG8gd3JpdGUgc3lzdGVtIGNyb3NzdG9vbGNoYWluIHRlbXBsYXRlczsgdGhpcyBp cyB0byByZWR1Y2UgdGhlCmFtb3VudCBvZiBtYWludGVuYW5jZSwgcmVzb2x2ZSBleGlzdGluZyBw cm9ibGVtcyB3aXRoIHRoZSBjcm9zcwp0b29sY2hhaW4gdGVtcGxhdGVzIGFuZCByZW1vdmUgcmVw ZWF0ZWQgY29kZQotLS0KIE1hbnVhbC5tZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDEwICsKIGNvbW1vbi9idWlsZC1zdHlsZS92b2lkLWNyb3NzLnNoICAgICAgICAgICAg IHwgNTkxICsrKysrKysrKysrKysrKysrKysKIGNvbW1vbi9lbnZpcm9ubWVudC9idWlsZC1zdHls ZS92b2lkLWNyb3NzLnNoIHwgIDEzICsKIDMgZmlsZXMgY2hhbmdlZCwgNjE0IGluc2VydGlvbnMo KykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb21tb24vYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IGNvbW1vbi9lbnZpcm9ubWVudC9idWlsZC1zdHlsZS92b2lkLWNy b3NzLnNoCgpkaWZmIC0tZ2l0IGEvTWFudWFsLm1kIGIvTWFudWFsLm1kCmluZGV4IGFhN2ExOTZk NGY0Li40ODU3MjE2MjEwOCAxMDA2NDQKLS0tIGEvTWFudWFsLm1kCisrKyBiL01hbnVhbC5tZApA QCAtOTYwLDYgKzk2MCwxNiBAQCB2aWEgYG1ha2VfaW5zdGFsbF90YXJnZXRgLgogdmlhIGBjb25m aWd1cmVfYXJnc2AsIHRoZSBtZXNvbiBjb21tYW5kIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGBtZXNv bl9jbWRgIGFuZCB0aGUgbG9jYXRpb24gb2YKIHRoZSBvdXQgb2Ygc291cmNlIGJ1aWxkIGJ5IGBt ZXNvbl9idWlsZGRpcmAKIAorLSBgdm9pZC1jcm9zc2AgRm9yIGNyb3NzLXRvb2xjaGFpbiBwYWNr YWdlcyB1c2VkIHRvIGJ1aWxkIFZvaWQgc3lzdGVtcy4gWW91IHdpbGwgbmVlZCB0bworc3BlY2lm eSBgY3Jvc3NfdHJpcGxldGAgKGNvcnJlc3BvbmRzIHRvIHRoZSB0YXJnZXQgdHJpcGxldCBzcGVj aWZpZWQgaW4gdGhlIGNyb3NzIHByb2ZpbGUKK2ZvciB0aGUgdGFyZ2V0IGFyY2gpLCBgY3Jvc3Nf bGludXhfYXJjaGAgKHRoZSBhcmNoaXRlY3R1cmUgbmFtZSBpbiB0aGUgTGludXgga2VybmVsIHNv dXJjZSkKK2FuZCB3aGVuIGJ1aWxkaW5nIEdvIHN1cHBvcnQgZm9yIG11c2wgdGFyZ2V0cywgYWxz byBgY3Jvc3NfbGlidWNvbnRleHRfYXJjaGAgKHNlZSBgbGlidWNvbnRleHRgCitmb3IgYXZhaWxh YmxlIG9uZXMpLiBPcHRpb25hbGx5LCBgY3Jvc3NfZ2NjX3NraXBfZ29gIGNhbiBiZSBzcGVjaWZp ZWQuIEluZGl2aWR1YWwgc3VicHJvamVjdAorY29uZmlndXJlIGFyZ3VtZW50cyBjYW4gYmUgc3Bl Y2lmaWVkIHZpYSBgY3Jvc3NfKl9jb25maWd1cmVfYXJnc2Agd2hlcmUgYCpgIGlzIGBiaW51dGls c2AsCitgZ2NjX2Jvb3RzdHJhcGAgKGVhcmx5IGdjYyksIGBnY2NgIChmaW5hbCBnY2MpLCBgZ2xp YmNgIChvciBgbXVzbGApLCBgY29uZmlndXJlX2FyZ3NgIGlzCithZGRpdGlvbmFsbHkgcGFzc2Vk IHRvIGJvdGggZWFybHkgYW5kIGZpbmFsIGBnY2NgLiBZb3UgY2FuIGFsc28gc3BlY2lmeSBjdXN0 b20gYENGTEFHU2AKK2FuZCBgTERGTEFHU2AgZm9yIHRoZSBsaWJjIGFzIGBjcm9zc18oZ2xpYmN8 bXVzbClfKGNmbGFnc3xsZGZsYWdzKWAuCisKIEZvciBwYWNrYWdlcyB0aGF0IHVzZSB0aGUgUHl0 aG9uIG1vZHVsZSBidWlsZCBtZXRob2QgKGBzZXR1cC5weWAgb3IKIFtQRVAgNTE3XShodHRwczov L3d3dy5weXRob24ub3JnL2Rldi9wZXBzL3BlcC0wNTE3LykpLCB5b3UgY2FuIGNob29zZSBvbmUg b2YgdGhlIGZvbGxvd2luZzoKIApkaWZmIC0tZ2l0IGEvY29tbW9uL2J1aWxkLXN0eWxlL3ZvaWQt Y3Jvc3Muc2ggYi9jb21tb24vYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGU1YzIzMzYzNTcKLS0tIC9kZXYvbnVsbAorKysg Yi9jb21tb24vYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaApAQCAtMCwwICsxLDU5MSBAQAorIwor IyBUaGlzIGhlbHBlciBpcyBmb3Igdm9pZCBzeXN0ZW0gY3Jvc3N0b29sY2hhaW4gdGVtcGxhdGVz LgorIworIyBNYW5kYXRvcnkgdmFyaWFibGVzOgorIworIyAtIGNyb3NzX3RyaXBsZXQgLSB0aGUg dGFyZ2V0IHRyaXBsZXQgKGUuZy4gYWFyY2g2NC1saW51eC1nbnUpCisjIC0gY3Jvc3NfbGludXhf YXJjaCAtIHRoZSBzb3VyY2UgQVJDSCBvZiB0aGUga2VybmVsIChlLmcuIGFybTY0KQorIyAtIGNy b3NzX2xpYnVjb250ZXh0X2FyY2ggLSBvbmx5IG9uIG11c2wgd2l0aG91dCBjcm9zc19nY2Nfc2tp cF9nbworIworIyBPcHRpb25hbCB2YXJpYWJsZXM6CisjCisjIC0gY3Jvc3NfZ2NjX3NraXBfZ28g LSBkbyBub3QgYnVpbGQgZ2NjZ28gc3VwcG9ydAorIyAtIGNyb3NzX2JpbnV0aWxzX2NvbmZpZ3Vy ZV9hcmdzCisjIC0gY3Jvc3NfZ2NjX2Jvb3RzdHJhcF9jb25maWd1cmVfYXJncworIyAtIGNyb3Nz X2djY19jb25maWd1cmVfYXJncworIyAtIGNyb3NzX2dsaWJjX2NmbGFncworIyAtIGNyb3NzX2ds aWJjX2xkZmxhZ3MKKyMgLSBjcm9zc19nbGliY19jb25maWd1cmVfYXJncworIyAtIGNyb3NzX211 c2xfY2ZsYWdzCisjIC0gY3Jvc3NfbXVzbF9sZGZsYWdzCisjIC0gY3Jvc3NfbXVzbF9jb25maWd1 cmVfYXJncworIworIyBjb25maWd1cmVfYXJncyBpcyBwYXNzZWQgdG8gYm90aCBib290c3RyYXAg Z2NjIGFuZCBmaW5hbCBnY2MKKyMgaWYgeW91IG5lZWQgdG8gcGFzcyBzb21lIHRvIG9uZSBhbmQg bm90IHRoZSBvdGhlciwgdXNlIHRoZQorIyByZXNwZWN0aXZlIGNyb3NzXyB2YXJpYWJsZXMgZm9y IGZpbmFsIGdjYyBhbmQgYm9vdHN0cmFwIGdjYworIworCitfdm9pZF9jcm9zc19hcHBseV9wYXRj aCgpIHsKKwlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgorCWlmIFsgISAt ZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KKwkJcGF0Y2ggLU4gJGFyZ3MgLWkgJDIKKwkJdG91 Y2ggLiR7cG5hbWV9X2RvbmUKKwlmaQorfQorCitfdm9pZF9jcm9zc19idWlsZF9iaW51dGlscygp IHsKKwlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNfZG9uZSBdICYmIHJldHVybiAwCisKKwlsb2Nh bCB2ZXI9JDEKKworCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGJpbnV0aWxzIGZvciAke2Nyb3NzX3Ry aXBsZXR9XG4iCisKKwlta2RpciAtcCAke3dya3NyY30vYmludXRpbHNfYnVpbGQKKwljZCAke3dy a3NyY30vYmludXRpbHNfYnVpbGQKKworCS4uL2JpbnV0aWxzLSR7dmVyfS9jb25maWd1cmUgXAor CQktLXByZWZpeD0vdXNyIFwKKwkJLS1zYmluZGlyPS91c3IvYmluIFwKKwkJLS1saWJkaXI9L3Vz ci9saWIgXAorCQktLWxpYmV4ZWNkaXI9L3Vzci9saWIgXAorCQktLXRhcmdldD0ke2Nyb3NzX3Ry aXBsZXR9IFwKKwkJLS13aXRoLXN5c3Jvb3Q9L3Vzci8ke2Nyb3NzX3RyaXBsZXR9IFwKKwkJLS1k aXNhYmxlLW5scyBcCisJCS0tZGlzYWJsZS1zaGFyZWQgXAorCQktLWRpc2FibGUtbXVsdGlsaWIg XAorCQktLWRpc2FibGUtd2Vycm9yIFwKKwkJLS1kaXNhYmxlLWdvbGQgXAorCQktLXdpdGgtc3lz dGVtLXpsaWIgXAorCQktLWVuYWJsZS1kZXRlcm1pbmlzdGljLWFyY2hpdmVzIFwKKwkJLS1lbmFi bGUtZGVmYXVsdC1oYXNoLXN0eWxlPWdudSBcCisJCSR7Y3Jvc3NfYmludXRpbHNfY29uZmlndXJl X2FyZ3N9CisKKwltYWtlIGNvbmZpZ3VyZS1ob3N0CisJbWFrZSAke21ha2Vqb2JzfQorCisJbWFr ZSBpbnN0YWxsIERFU1RESVI9JHt3cmtzcmN9L2J1aWxkX3Jvb3QKKworCXRvdWNoICR7d3Jrc3Jj fS8uYmludXRpbHNfZG9uZQorfQorCitfdm9pZF9jcm9zc19idWlsZF9ib290c3RyYXBfZ2NjKCkg eworCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAorCisJ bG9jYWwgdmVyPSQxCisKKwltc2dfbm9ybWFsICJQYXRjaGluZyBHQ0MgZm9yICR7Y3Jvc3NfdHJp cGxldH1cbiIKKworCWNkICR7d3Jrc3JjfS9nY2MtJHt2ZXJ9CisJZm9yIGYgaW4gJHtYQlBTX1NS Q1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5wYXRjaDsgZG8KKwkJX3ZvaWRfY3Jvc3NfYXBwbHlfcGF0 Y2ggLXAwICIkZiIKKwlkb25lCisJaWYgWyAtZiAke3dya3NyY30vLm11c2xfdmVyc2lvbiBdOyB0 aGVuCisJCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9maWxlcy8qLW11c2wucGF0Y2g7 IGRvCisJCQlfdm9pZF9jcm9zc19hcHBseV9wYXRjaCAtcDAgIiRmIgorCQlkb25lCisJZmkKKwlj ZCAuLgorCisJbXNnX25vcm1hbCAiQnVpbGRpbmcgYm9vdHN0cmFwIEdDQyBmb3IgJHtjcm9zc190 cmlwbGV0fVxuIgorCisJbWtkaXIgLXAgZ2NjX2Jvb3RzdHJhcAorCWNkIGdjY19ib290c3RyYXAK KworCWxvY2FsIGV4dHJhX2FyZ3MKKwlpZiBbIC1mICR7d3Jrc3JjfS8ubXVzbF92ZXJzaW9uIF07 IHRoZW4KKwkJZXh0cmFfYXJncys9IiAtLXdpdGgtbmV3bGliIgorCQlleHRyYV9hcmdzKz0iIC0t ZGlzYWJsZS1zeW12ZXJzIgorCQlleHRyYV9hcmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8i CisJZWxzZQorCQlleHRyYV9hcmdzKz0iIC0td2l0aG91dC1oZWFkZXJzIgorCWZpCisKKwkuLi9n Y2MtJHt2ZXJ9L2NvbmZpZ3VyZSBcCisJCS0tcHJlZml4PS91c3IgXAorCQktLXNiaW5kaXI9L3Vz ci9iaW4gXAorCQktLWxpYmRpcj0vdXNyL2xpYiBcCisJCS0tbGliZXhlY2Rpcj0vdXNyL2xpYiBc CisJCS0tdGFyZ2V0PSR7Y3Jvc3NfdHJpcGxldH0gXAorCQktLWRpc2FibGUtbmxzIFwKKwkJLS1k aXNhYmxlLW11bHRpbGliIFwKKwkJLS1kaXNhYmxlLXNoYXJlZCBcCisJCS0tZGlzYWJsZS1saWJx dWFkbWF0aCBcCisJCS0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IFwKKwkJLS1kaXNhYmxlLWxpYmdv bXAgXAorCQktLWRpc2FibGUtbGlibXB4IFwKKwkJLS1kaXNhYmxlLWxpYm11ZGZsYXAgXAorCQkt LWRpc2FibGUtbGlic3NwIFwKKwkJLS1kaXNhYmxlLWxpYml0bSBcCisJCS0tZGlzYWJsZS1saWJh dG9taWMgXAorCQktLWRpc2FibGUtdGhyZWFkcyBcCisJCS0tZGlzYWJsZS1zamxqLWV4Y2VwdGlv bnMgXAorCQktLWVuYWJsZS1sYW5ndWFnZXM9YyBcCisJCS0td2l0aC1nbnUtbGQgXAorCQktLXdp dGgtZ251LWFzIFwKKwkJJHtleHRyYV9hcmdzfSBcCisJCSR7Y29uZmlndXJlX2FyZ3N9IFwKKwkJ JHtjcm9zc19nY2NfYm9vdHN0cmFwX2NvbmZpZ3VyZV9hcmdzfQorCisJbWFrZSAke21ha2Vqb2Jz fQorCW1ha2UgaW5zdGFsbCBERVNURElSPSR7d3Jrc3JjfS9idWlsZF9yb290CisKKwlsb2NhbCBw dHJzPSQoJHtjcm9zc190cmlwbGV0fS1nY2MgLWRNIC1FIC0gPCAvZGV2L251bGwgfCBcCisJCWdy ZXAgX19TSVpFT0ZfUE9JTlRFUl9fKQorCWxvY2FsIHdzPSR7cHRycyMjKiB9CisKKwljYXNlICR7 d3N9IGluCisJCTgpIGVjaG8gNjQgPiAke3dya3NyY30vLmdjY193b3Jkc2l6ZSA7OworCQk0KSBl Y2hvIDMyID4gJHt3cmtzcmN9Ly5nY2Nfd29yZHNpemUgOzsKKwkJKikgbXNnX2Vycm9yICJVbmtu b3duIHdvcmQgc2l6ZTogJHt3c31cbiIgOzsKKwllc2FjCisKKwl0b3VjaCAke3dya3NyY30vLmdj Y19ib290c3RyYXBfZG9uZQorfQorCitfdm9pZF9jcm9zc19idWlsZF9rZXJuZWxfaGVhZGVycygp IHsKKwlbIC1mICR7d3Jrc3JjfS8ubGludXhfaGVhZGVyc19kb25lIF0gJiYgcmV0dXJuIDAKKwor CWxvY2FsIHZlcj0kMQorCisJbXNnX25vcm1hbCAiUGF0Y2hpbmcgTGludXggaGVhZGVycyBmb3Ig JHtjcm9zc190cmlwbGV0fVxuIgorCisJY2QgJHt3cmtzcmN9L2xpbnV4LSR7dmVyfQorCWZvciBm IGluICR7WEJQU19TUkNQS0dESVJ9L2tlcm5lbC1saWJjLWhlYWRlcnMvcGF0Y2hlcy8qLnBhdGNo OyBkbworCQlfdm9pZF9jcm9zc19hcHBseV9wYXRjaCAtcDAgJGYKKwlkb25lCisJY2QgLi4KKwor CW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IGhlYWRlcnMgZm9yICR7Y3Jvc3NfdHJpcGxldH1c biIKKworCWNkIGxpbnV4LSR7dmVyfQorCisJbWFrZSBBUkNIPSRjcm9zc19saW51eF9hcmNoIGhl YWRlcnNfY2hlY2sKKwltYWtlIEFSQ0g9JGNyb3NzX2xpbnV4X2FyY2ggXAorCQlJTlNUQUxMX0hE Ul9QQVRIPSR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci8ke2Nyb3NzX3RyaXBsZXR9L3VzciBcCisJ CWhlYWRlcnNfaW5zdGFsbAorCisJdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9oZWFkZXJzX2RvbmUK K30KKworX3ZvaWRfY3Jvc3NfYnVpbGRfZ2xpYmNfaGVhZGVycygpIHsKKwlbIC1mICR7d3Jrc3Jj fS8uZ2xpYmNfaGVhZGVyc19kb25lIF0gJiYgcmV0dXJuIDAKKworCWxvY2FsIHZlcj0kMQorCWxv Y2FsIHRndD0kY3Jvc3NfdHJpcGxldAorCisJbXNnX25vcm1hbCAiUGF0Y2hpbmcgZ2xpYmMgZm9y ICR7Y3Jvc3NfdHJpcGxldH1cbiIKKworCWNkICR7d3Jrc3JjfS9nbGliYy0ke3Zlcn0KKwlpZiBb IC1kICIke1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzIiBdOyB0aGVuCisJCWZvciBmIGlu ICR7WEJQU19TUkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMvKi5wYXRjaDsgZG8KKwkJCV92b2lkX2Ny b3NzX2FwcGx5X3BhdGNoIC1wMSAiJGYiCisJCWRvbmUKKwlmaQorCWNkIC4uCisKKwltc2dfbm9y bWFsICJCdWlsZGluZyBnbGliYyBoZWFkZXJzIGZvciAke2Nyb3NzX3RyaXBsZXR9XG4iCisKKwlt a2RpciAtcCBnbGliY19oZWFkZXJzCisJY2QgZ2xpYmNfaGVhZGVycworCisJZWNobyAibGliY19j dl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25maWcuY2FjaGUKKwllY2hvICJsaWJjX2N2X2NfY2xl YW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQorCisJIyB3ZSBkb24ndCBuZWVkIGFueSBjdXN0b20g YXJncyBoZXJlLCBpdCdzIGp1c3QgaGVhZGVycworCUNDPSIke3RndH0tZ2NjIiBDWFg9IiR7dGd0 fS1nKysiIENQUD0iJHt0Z3R9LWNwcCIgTEQ9IiR7dGd0fS1sZCIgXAorCUFTPSIke3RndH0tYXMi IE5NPSIke3RndH0tbm0iIENGTEFHUz0iLXBpcGUiIENYWEZMQUdTPSIiIENQUEZMQUdTPSIiIFwK KwlMREZMQUdTPSIiIFwKKwkuLi9nbGliYy0ke3Zlcn0vY29uZmlndXJlIFwKKwkJLS1wcmVmaXg9 L3VzciBcCisJCS0taG9zdD0ke3RndH0gXAorCQktLXdpdGgtaGVhZGVycz0ke3dya3NyY30vYnVp bGRfcm9vdC91c3IvJHt0Z3R9L3Vzci9pbmNsdWRlIFwKKwkJLS1jb25maWctY2FjaGUgXAorCQkt LWVuYWJsZS1vYnNvbGV0ZS1ycGMgXAorCQktLWVuYWJsZS1vYnNvbGV0ZS1uc2wgXAorCQktLWVu YWJsZS1rZXJuZWw9Mi42LjI3IFwKKwkJJHtjcm9zc19nbGliY19jb25maWd1cmVfYXJnc30KKwor CW1ha2UgLWsgaW5zdGFsbC1oZWFkZXJzIGNyb3NzX2NvbXBpbGluZz15ZXMgXAorCQlpbnN0YWxs X3Jvb3Q9JHt3cmtzcmN9L2J1aWxkX3Jvb3QvdXNyLyR7dGd0fQorCisJdG91Y2ggJHt3cmtzcmN9 Ly5nbGliY19oZWFkZXJzX2RvbmUKK30KKworX3ZvaWRfY3Jvc3NfYnVpbGRfZ2xpYmMoKSB7CisJ WyAtZiAke3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAorCisJbG9jYWwg dmVyPSQxCisJbG9jYWwgdGd0PSRjcm9zc190cmlwbGV0CisKKwltc2dfbm9ybWFsICJCdWlsZGlu ZyBnbGliYyBmb3IgJHt0Z3R9XG4iCisKKwlta2RpciAtcCAke3dya3NyY30vZ2xpYmNfYnVpbGQK KwljZCAke3dya3NyY30vZ2xpYmNfYnVpbGQKKworCWxvY2FsIHdzPSQoY2F0ICR7d3Jrc3JjfS8u Z2NjX3dvcmRzaXplKQorCisJZWNobyAic2xpYmRpcj0vdXNyL2xpYiR7d3N9IiA+IGNvbmZpZ3Bh cm1zCisKKwllY2hvICJsaWJjX2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQor CWVjaG8gImxpYmNfY3ZfY19jbGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCisKKwlDQz0iJHt0 Z3R9LWdjYyIgQ1hYPSIke3RndH0tZysrIiBDUFA9IiR7dGd0fS1jcHAiIExEPSIke3RndH0tbGQi IFwKKwlBUj0iJHt0Z3R9LWFyIiBBUz0iJHt0Z3R9LWFzIiBOTT0iJHt0Z3R9LW5tIiBcCisJQ0ZM QUdTPSItcGlwZSAke2Nyb3NzX2dsaWJjX2NmbGFnc30iIFwKKwlDWFhGTEFHUz0iLXBpcGUgJHtj cm9zc19nbGliY19jZmxhZ3N9IiBcCisJQ1BQRkxBR1M9IiR7Y3Jvc3NfZ2xpYmNfY2ZsYWdzfSIg XAorCUxERkxBR1M9IiR7Y3Jvc3NfZ2xpYmNfbGRmbGFnc30iIFwKKwkuLi9nbGliYy0ke3Zlcn0v Y29uZmlndXJlIFwKKwkJLS1wcmVmaXg9L3VzciBcCisJCS0tbGliZGlyPS91c3IvbGliJHt3c30g XAorCQktLWxpYmV4ZWNkaXI9L3Vzci9saWJleGVjIFwKKwkJLS1ob3N0PSR7dGd0fSBcCisJCS0t d2l0aC1oZWFkZXJzPSR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci8ke3RndH0vdXNyL2luY2x1ZGUg XAorCQktLWNvbmZpZy1jYWNoZSBcCisJCS0tZW5hYmxlLW9ic29sZXRlLXJwYyBcCisJCS0tZW5h YmxlLW9ic29sZXRlLW5zbCBcCisJCS0tZGlzYWJsZS1wcm9maWxlIFwKKwkJLS1kaXNhYmxlLXdl cnJvciBcCisJCS0tZW5hYmxlLWtlcm5lbD0yLjYuMjcgXAorCQkke2Nyb3NzX2dsaWJjX2NvbmZp Z3VyZV9hcmdzfQorCisJbWFrZSAke21ha2Vqb2JzfQorCW1ha2UgaW5zdGFsbF9yb290PSR7d3Jr c3JjfS9idWlsZF9yb290L3Vzci8ke3RndH0gaW5zdGFsbAorCisJdG91Y2ggJHt3cmtzcmN9Ly5n bGliY19idWlsZF9kb25lCit9CisKK192b2lkX2Nyb3NzX2J1aWxkX211c2woKSB7CisJWyAtZiAk e3dya3NyY30vLm11c2xfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCisKKwlsb2NhbCB2ZXI9JDEK Kwlsb2NhbCB0Z3Q9JGNyb3NzX3RyaXBsZXQKKworCW1zZ19ub3JtYWwgIlBhdGNoaW5nIG11c2wg Zm9yICR7dGd0fVxuIgorCisJY2QgJHt3cmtzcmN9L211c2wtJHt2ZXJ9CisJaWYgWyAtZCAiJHtY QlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzIiBdOyB0aGVuCisJCWZvciBmIGluICR7WEJQU19T UkNQS0dESVJ9L211c2wvcGF0Y2hlcy8qLnBhdGNoOyBkbworCQkJX3ZvaWRfY3Jvc3NfYXBwbHlf cGF0Y2ggLXAwICIkZiIKKwkJZG9uZQorCWZpCisJY2QgLi4KKworCW1zZ19ub3JtYWwgIkJ1aWxk aW5nIG11c2wgZm9yICR7dGd0fVxuIgorCisJbWtkaXIgLXAgbXVzbF9idWlsZAorCWNkIG11c2xf YnVpbGQKKworCUNDPSIke3RndH0tZ2NjIiBDWFg9IiR7dGd0fS1nKysiIENQUD0iJHt0Z3R9LWNw cCIgTEQ9IiR7dGd0fS1sZCIgXAorCUFSPSIke3RndH0tYXIiIEFTPSIke3RndH0tYXMiIE5NPSIk e3RndH0tbm0iIFwKKwlDRkxBR1M9Ii1waXBlIC1mUElDICR7Y3Jvc3NfbXVzbF9jZmxhZ3N9IiBc CisJQ1BQRkxBR1M9IiR7Y3Jvc3NfbXVzbF9jZmxhZ3N9IiBMREZMQUdTPSIke2Nyb3NzX211c2xf bGRmbGFnc30iIFwKKwkuLi9tdXNsLSR7dmVyfS9jb25maWd1cmUgXAorCQktLXByZWZpeD0vdXNy IFwKKwkJLS1ob3N0PSR7dGd0fSBcCisJCSR7Y3Jvc3NfbXVzbF9jb25maWd1cmVfYXJnc30KKwor CW1ha2UgJHttYWtlam9ic30KKwltYWtlIERFU1RESVI9JHt3cmtzcmN9L2J1aWxkX3Jvb3QvdXNy LyR7dGd0fSBpbnN0YWxsCisKKwl0b3VjaCAke3dya3NyY30vLm11c2xfYnVpbGRfZG9uZQorfQor Citfdm9pZF9jcm9zc19idWlsZF9saWJ1Y29udGV4dCgpIHsKKwlbIC1uICIkY3Jvc3NfZ2NjX3Nr aXBfZ28iIF0gJiYgcmV0dXJuIDAKKwlbIC1mICR7d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRf ZG9uZSBdICYmIHJldHVybiAwCisKKwlsb2NhbCB2ZXI9JDEKKworCW1zZ19ub3JtYWwgIkJ1aWxk aW5nIGxpYnVjb250ZXh0IGZvciAke2Nyb3NzX3RyaXBsZXR9XG4iCisKKwljZCAke3dya3NyY30v bGlidWNvbnRleHQtJHt2ZXJ9CisJIyBhIHRlcnJpYmxlIGhhY2sgYnV0IHNlZW1zIHRvIHdvcmsg Zm9yIG5vdworCUNDPSIke2Nyb3NzX3RyaXBsZXR9LWdjYyIgQVM9IiR7Y3Jvc3NfdHJpcGxldH0t YXMiIEFSPSIke2Nyb3NzX3RyaXBsZXR9LWFyIiBcCisJQ1BQRkxBR1M9Ii1waXBlICR7Y3Jvc3Nf bXVzbF9jZmxhZ3N9IC1nMCAtT3MgLW5vc3RkaW5jIC1pc3lzdGVtICR7d3Jrc3JjfS9idWlsZF9y b290L3Vzci8ke2Nyb3NzX3RyaXBsZXR9L3Vzci9pbmNsdWRlIiBcCisJbWFrZSBBUkNIPSR7Y3Jv c3NfbGlidWNvbnRleHRfYXJjaH0gbGlidWNvbnRleHQuYQorCisJY3AgbGlidWNvbnRleHQuYSAk e3dya3NyY30vYnVpbGRfcm9vdC91c3IvJHtjcm9zc190cmlwbGV0fS91c3IvbGliCisKKwl0b3Vj aCAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUKK30KKworX3ZvaWRfY3Jvc3NfYnVp bGRfZ2NjKCkgeworCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVybiAw CisKKwlsb2NhbCB2ZXI9JDEKKworCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGdjYyBmb3IgJHtjcm9z c190cmlwbGV0fVxuIgorCisJbWtkaXIgLXAgJHt3cmtzcmN9L2djY19idWlsZAorCWNkICR7d3Jr c3JjfS9nY2NfYnVpbGQKKworCWxvY2FsIGxhbmdzPSJjLGMrKyxmb3J0cmFuLG9iamMsb2JqLWMr KyxhZGEsbHRvIgorCWlmIFsgLXogIiRjcm9zc19nY2Nfc2tpcF9nbyIgXTsgdGhlbgorCQlsYW5n cys9IixnbyIKKwlmaQorCisJbG9jYWwgZXh0cmFfYXJncworCWlmIFsgLWYgJHt3cmtzcmN9Ly5t dXNsX3ZlcnNpb24gXTsgdGhlbgorCQlleHRyYV9hcmdzKz0iIC0tZW5hYmxlLWxpYnNzcCIKKwkJ IyBvdGhlcndpc2UgZ2xpYmMgaG9zdHMgZ2V0IGNvbmZ1c2VkIGFuZCB1c2UgdGhlIGdudSBpbXBs CisJCWV4dHJhX2FyZ3MrPSIgLS1lbmFibGUtY2xvY2FsZT1nZW5lcmljIgorCQlleHRyYV9hcmdz Kz0iIC0tZGlzYWJsZS1zeW12ZXJzIgorCQlleHRyYV9hcmdzKz0iIC0tZGlzYWJsZS1nbnUtdW5p cXVlLW9iamVjdCIKKwkJZXh0cmFfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgorCWVs c2UKKwkJZXh0cmFfYXJncys9IiAtLWRpc2FibGUtbGlic3NwIgorCQlleHRyYV9hcmdzKz0iIC0t ZW5hYmxlLWdudS11bmlxdWUtb2JqZWN0IgorCWZpCisKKwkjIG5vdGUgb24gLS1kaXNhYmxlLWxp YnF1YWRtYXRoOgorCSMgb24gc29tZSBwbGF0Zm9ybXMgdGhlIGxpYnJhcnkgaXMgYWN0dWFsbHkg bmVjZXNzYXJ5IGZvciB0aGUKKwkjIGZvcnRyYW4gZnJvbnRlbmQgdG8gYnVpbGQsIGJ1dCBzdGls bCBkaXNhYmxlIGl0IGJlY2F1c2UgaXQKKwkjIHNob3VsZCBub3QgYmUgaW4gdGhlIHJlc3VsdGlu ZyBwYWNrYWdlczsgaXQgY29uZmxpY3RzIHdpdGgKKwkjIHRoZSBsaWJxdWFkbWF0aCB5b3UgY2Fu IGluc3RhbGwgaW50byB0aGUgY3Jvc3Mgcm9vdAorCSMKKwkjIHBsYXRmb3JtcyB3aGVyZSB0aGlz IGlzIGEgcHJvYmxlbSBzaG91bGQgZXhwbGljaXRseSBmb3JjZQorCSMgbGlicXVhZG1hdGggdG8g YmUgb24gdmlhIGNyb3NzX2djY19jb25maWd1cmVfYXJncywgdGhlCisJIyBkb19pbnN0YWxsIGlu IHRoaXMgYnVpbGQtc3R5bGUgYXV0b21hdGljYWxseSByZW1vdmVzIGl0CisJIworCS4uL2djYy0k e3Zlcn0vY29uZmlndXJlIFwKKwkJLS1wcmVmaXg9L3VzciBcCisJCS0tc2JpbmRpcj0vdXNyL2Jp biBcCisJCS0tbGliZGlyPS91c3IvbGliIFwKKwkJLS1saWJleGVjZGlyPS91c3IvbGliIFwKKwkJ LS10YXJnZXQ9JHtjcm9zc190cmlwbGV0fSBcCisJCS0td2l0aC1zeXNyb290PS91c3IvJHtjcm9z c190cmlwbGV0fSBcCisJCS0td2l0aC1idWlsZC1zeXNyb290PSR7d3Jrc3JjfS9idWlsZF9yb290 L3Vzci8ke2Nyb3NzX3RyaXBsZXR9IFwKKwkJLS1lbmFibGUtbGFuZ3VhZ2VzPSR7bGFuZ3N9IFwK KwkJLS1kaXNhYmxlLW5scyBcCisJCS0tZGlzYWJsZS1tdWx0aWxpYiBcCisJCS0tZGlzYWJsZS1z amxqLWV4Y2VwdGlvbnMgXAorCQktLWRpc2FibGUtbGlicXVhZG1hdGggXAorCQktLWRpc2FibGUt bGlibXVkZmxhcCBcCisJCS0tZGlzYWJsZS1saWJpdG0gXAorCQktLWRpc2FibGUtbGlidnR2IFwK KwkJLS1kaXNhYmxlLWxpYnNhbml0aXplciBcCisJCS0tZGlzYWJsZS1saWJzdGRjeHgtcGNoIFwK KwkJLS1lbmFibGUtc2hhcmVkIFwKKwkJLS1lbmFibGUtdGhyZWFkcz1wb3NpeCBcCisJCS0tZW5h YmxlLV9fY3hhX2F0ZXhpdCBcCisJCS0tZW5hYmxlLWxpbmtlci1idWlsZC1pZCBcCisJCS0tZW5h YmxlLWxpYmFkYSBcCisJCS0tZW5hYmxlLWx0byBcCisJCS0tZW5hYmxlLWRlZmF1bHQtcGllIFwK KwkJLS1lbmFibGUtZGVmYXVsdC1zc3AgXAorCQktLXdpdGgtZ251LWxkIFwKKwkJLS13aXRoLWdu dS1hcyBcCisJCS0td2l0aC1saW5rZXItaGFzaC1zdHlsZT1nbnUgXAorCQkke2V4dHJhX2FyZ3N9 IFwKKwkJJHtjb25maWd1cmVfYXJnc30gXAorCQkke2Nyb3NzX2djY19jb25maWd1cmVfYXJnc30K KworCW1ha2UgJHttYWtlam9ic30KKworCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUK K30KKworX3ZvaWRfY3Jvc3NfY2hlY2tfdmFyKCkgeworCWxvY2FsIHZhcj0iY3Jvc3NfJHsxfSIK KwlpZiBbIC16ICIkeyF2YXJ9IiBdOyB0aGVuCisJCW1zZ19lcnJvciAiY3Jvc3NfJHsxfSBub3Qg ZGVmaW5lZCBpbiB0ZW1wbGF0ZSIKKwlmaQorfQorCitfdm9pZF9jcm9zc190ZXN0X3ZlcigpIHsK Kwlsb2NhbCBwcm9qPSQxCisJbG9jYWwgbm9lcnI9JDIKKwlsb2NhbCB2ZXIgY3ZlcgorCWZvciBw IGluICR7cHJvan0tKjsgZG8KKwkJY3Zlcj0ke3AjJHtwcm9qfS19CisJCWlmIFsgLXogIiRub2Vy ciIgLWEgLW4gIiR2ZXIiIF07IHRoZW4KKwkJCW1zZ19lcnJvciAibXVsdGlwbGUgdmVyc2lvbnMg b2YgJHtwcm9qfSBmb3VuZDogJHt2ZXJ9LCAke2N2ZXJ9IgorCQlmaQorCQl2ZXI9JHtjdmVyfQor CWRvbmUKKwlpZiBbIC1kICIke3Byb2p9LSR7dmVyfSIgXTsgdGhlbgorCQllY2hvICR7dmVyfSA+ ICR7d3Jrc3JjfS8uJHtwcm9qfV92ZXJzaW9uCisJCXJldHVybgorCWZpCisJaWYgWyAteiAiJG5v ZXJyIiBdOyB0aGVuCisJCW1zZ19lcnJvciAicHJvamVjdCAke3Byb2p9IG5vdCBhdmFpbGFibGUg Zm9yIGJ1aWxkXG4iCisJZmkKK30KKworZG9fYnVpbGQoKSB7CisJIyBWZXJpZnkgdG9vbGNoYWlu IHZlcnNpb25zCisJY2QgJHt3cmtzcmN9CisKKwlsb2NhbCBiaW51dGlsc192ZXIgbGludXhfdmVy IGdjY192ZXIgbGliY192ZXIgbGlidWNvbnRleHRfdmVyCisKKwlfdm9pZF9jcm9zc190ZXN0X3Zl ciBiaW51dGlscworCV92b2lkX2Nyb3NzX3Rlc3RfdmVyIGxpbnV4CisJX3ZvaWRfY3Jvc3NfdGVz dF92ZXIgZ2NjCisKKwliaW51dGlsc192ZXI9JChjYXQgLmJpbnV0aWxzX3ZlcnNpb24pCisJbGlu dXhfdmVyPSQoY2F0IC5saW51eF92ZXJzaW9uKQorCWdjY192ZXI9JChjYXQgLmdjY192ZXJzaW9u KQorCisJX3ZvaWRfY3Jvc3NfdGVzdF92ZXIgbXVzbCBub2VycgorCWlmIFsgISAtZiAubXVzbF92 ZXJzaW9uIF07IHRoZW4KKwkJX3ZvaWRfY3Jvc3NfdGVzdF92ZXIgZ2xpYmMKKwkJbGliY192ZXI9 JChjYXQgLmdsaWJjX3ZlcnNpb24pCisJZWxzZQorCQlsaWJjX3Zlcj0kKGNhdCAubXVzbF92ZXJz aW9uKQorCQlpZiBbIC16ICIkY3Jvc3NfZ2NjX3NraXBfZ28iIF07IHRoZW4KKwkJCV92b2lkX2Ny b3NzX3Rlc3RfdmVyIGxpYnVjb250ZXh0CisJCQlfdm9pZF9jcm9zc19jaGVja192YXIgbGlidWNv bnRleHRfYXJjaAorCQkJbGlidWNvbnRleHRfdmVyPSQoY2F0IC5saWJ1Y29udGV4dF92ZXJzaW9u KQorCQlmaQorCWZpCisKKwkjIFZlcmlmeSB0cmlwbGV0CisJX3ZvaWRfY3Jvc3NfY2hlY2tfdmFy IHRyaXBsZXQKKwlfdm9pZF9jcm9zc19jaGVja192YXIgbGludXhfYXJjaAorCisJbG9jYWwgc3lz cm9vdD0iL3Vzci8ke2Nyb3NzX3RyaXBsZXR9IgorCisJIyBQcmVwYXJlIGVudmlyb25tZW50CisJ Y2QgJHt3cmtzcmN9CisKKwkjIENvcmUgZGlyZWN0b3JpZXMgZm9yIHRoZSBidWlsZCByb290CisJ bWtkaXIgLXAgYnVpbGRfcm9vdC91c3Ive2JpbixsaWIsaW5jbHVkZSxzaGFyZX0KKwlta2RpciAt cCBidWlsZF9yb290L3Vzci8ke2Nyb3NzX3RyaXBsZXR9L3Vzci97YmluLGxpYixpbmNsdWRlLHNo YXJlfQorCisJIyBIb3N0IHJvb3QgdXNlcyBob3N0IHdvcmRzaXplCisJbG4gLXNmIHVzci9saWIg YnVpbGRfcm9vdC9saWIKKwlsbiAtc2YgdXNyL2xpYiBidWlsZF9yb290L2xpYiR7WEJQU19UQVJH RVRfV09SRFNJWkV9CisJbG4gLXNmIGxpYiBidWlsZF9yb290L3Vzci9saWIke1hCUFNfVEFSR0VU X1dPUkRTSVpFfQorCisJIyBQcmVwYXJlIHRhcmdldCBzeXNyb290CisJbG4gLXNmIHVzci9saWIg YnVpbGRfcm9vdC8ke3N5c3Jvb3R9L2xpYgorCWxuIC1zZiBsaWIgYnVpbGRfcm9vdC8ke3N5c3Jv b3R9L3Vzci9saWJleGVjCisKKwlfdm9pZF9jcm9zc19idWlsZF9iaW51dGlscyAke2JpbnV0aWxz X3Zlcn0KKworCSMgUHJlcGFyZSBlbnZpcm9ubWVudCBzbyB3ZSBjYW4gdXNlIHRlbXBvcmFyeSBw cmVmaXgKKwlsb2NhbCBvbGRwYXRoPSIkUEFUSCIKKwlsb2NhbCBvbGRsZGxpYj0iJExEX0xJQlJB UllfUEFUSCIKKworCWV4cG9ydCBQQVRIPSIke3dya3NyY30vYnVpbGRfcm9vdC91c3IvYmluOiRQ QVRIIgorCWV4cG9ydCBMRF9MSUJSQVJZX1BBVEg9IiR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci9s aWI6JFBBVEgiCisKKwlfdm9pZF9jcm9zc19idWlsZF9ib290c3RyYXBfZ2NjICR7Z2NjX3Zlcn0K Kwlfdm9pZF9jcm9zc19idWlsZF9rZXJuZWxfaGVhZGVycyAke2xpbnV4X3Zlcn0KKworCWxvY2Fs IHdzPSQoY2F0ICR7d3Jrc3JjfS8uZ2NjX3dvcmRzaXplKQorCisJIyBOb3cgdGhhdCB3ZSBrbm93 IHRoZSB0YXJnZXQgd29yZHNpemUsIHByZXBhcmUgc3ltbGlua3MKKwlsbiAtc2YgdXNyL2xpYiAk e3dya3NyY30vYnVpbGRfcm9vdC8ke3N5c3Jvb3R9L2xpYiR7d3N9CisJbG4gLXNmIGxpYiAke3dy a3NyY30vYnVpbGRfcm9vdC8ke3N5c3Jvb3R9L3Vzci9saWIke3dzfQorCisJaWYgWyAtZiAke3dy a3NyY30vLm11c2xfdmVyc2lvbiBdOyB0aGVuCisJCV92b2lkX2Nyb3NzX2J1aWxkX211c2wgJHts aWJjX3Zlcn0KKwkJX3ZvaWRfY3Jvc3NfYnVpbGRfbGlidWNvbnRleHQgJHtsaWJ1Y29udGV4dF92 ZXJ9CisJZWxzZQorCQlfdm9pZF9jcm9zc19idWlsZF9nbGliY19oZWFkZXJzICR7bGliY192ZXJ9 CisJCV92b2lkX2Nyb3NzX2J1aWxkX2dsaWJjICR7bGliY192ZXJ9CisJZmkKKworCV92b2lkX2Ny b3NzX2J1aWxkX2djYyAke2djY192ZXJ9CisKKwkjIHJlc3RvcmUgdGhpcyBzdHVmZiBpbiBjYXNl IGxhdGVyIGhvb2tzIGRlcGVuZCBvbiBpdAorCWV4cG9ydCBQQVRIPSIkb2xkcGF0aCIKKwlleHBv cnQgTERfTElCUkFSWV9QQVRIPSIkb2xkbGRsaWIiCit9CisKK2RvX2luc3RhbGwoKSB7CisJIyBX ZSBuZWVkIHRvIGJlIGFibGUgdG8gYWNjZXNzIGJpbnV0aWxzIGluIHRoZSByb290CisJbG9jYWwg b2xkcGF0aD0iJFBBVEgiCisJbG9jYWwgb2xkbGRsaWI9IiRMRF9MSUJSQVJZX1BBVEgiCisJZXhw b3J0IFBBVEg9IiR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci9iaW46JFBBVEgiCisJZXhwb3J0IExE X0xJQlJBUllfUEFUSD0iJHt3cmtzcmN9L2J1aWxkX3Jvb3QvdXNyL2xpYjokUEFUSCIKKworCWxv Y2FsIHN5c3Jvb3Q9Ii91c3IvJHtjcm9zc190cmlwbGV0fSIKKwlsb2NhbCB3cz0kKGNhdCAke3dy a3NyY30vLmdjY193b3Jkc2l6ZSkKKworCSMgQ29yZSBkaXJlY3RvcmllcyBmb3IgdGhlIHN5c3Jv b3QKKwkjCisJIyBsaWJleGVjIGlzIGNyZWF0ZWQgZm9yIHN5c3Jvb3QgYnV0IG5vdCBmb3IgZGVz dCwgc2luY2UgaW4gc3lzcm9vdAorCSMgd2UgY29uZmlndXJlIGdsaWJjIHdpdGggc2VwYXJhdGUg bGliZXhlYywgZWxzZXdoZXJlIGl0J3MganVzdCBsaWIKKwkjIGFuZCB3ZSB3YW50IHRvIGRlbGV0 ZSB0aGUgbGliZXhlYyBmcm9tIGdsaWJjIGFmdGVyd2FyZHMgdG8gc2F2ZSBzcGFjZQorCW1rZGly IC1wICR7REVTVERJUn0vJHtzeXNyb290fS91c3Ive2JpbixsaWIsbGliZXhlYyxpbmNsdWRlLHNo YXJlfQorCSMgU3lzcm9vdCBiYXNlIHN5bWxpbmtzCisJbG4gLXNmIHVzci9saWIgJHtERVNURElS fS8ke3N5c3Jvb3R9L2xpYgorCWxuIC1zZiB1c3IvbGliICR7REVTVERJUn0vJHtzeXNyb290fS9s aWIke3dzfQorCWxuIC1zZiBsaWIgJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci9saWIke3dzfQor CisJIyBJbnN0YWxsIExpbnV4IGhlYWRlcnMKKwljZCAke3dya3NyY30vbGludXgtJChjYXQgJHt3 cmtzcmN9Ly5saW51eF92ZXJzaW9uKQorCW1ha2UgQVJDSD0ke2Nyb3NzX2xpbnV4X2FyY2h9IFwK KwkJSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5z dGFsbAorCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNyL2luY2x1ZGUgXAor CQktbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNtZCkKKwlybSAtcmYgJHtERVNU RElSfS8ke3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQorCisJIyBJbnN0YWxsIGJpbnV0aWxzCisJ Y2QgJHt3cmtzcmN9L2JpbnV0aWxzX2J1aWxkCisJbWFrZSBpbnN0YWxsIERFU1RESVI9JHtERVNU RElSfQorCisJIyBJbnN0YWxsIGZpbmFsIGdjYworCWNkICR7d3Jrc3JjfS9nY2NfYnVpbGQKKwlt YWtlIGluc3RhbGwgREVTVERJUj0ke0RFU1RESVJ9CisKKwkjIE1vdmUgbGliY2MxLnNvKiB0byB0 aGUgc3lzcm9vdAorCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJUn0v JHtzeXNyb290fS91c3IvbGliCisKKwlpZiBbIC1mICR7d3Jrc3JjfS8ubXVzbF92ZXJzaW9uIF07 IHRoZW4KKwkJIyBJbnN0YWxsIG11c2wKKwkJY2QgJHt3cmtzcmN9L211c2xfYnVpbGQKKwkJbWFr ZSBERVNURElSPSR7REVTVERJUn0vJHtzeXNyb290fSBpbnN0YWxsCisKKwkJIyBSZW1vdmUgdXNl bGVzcyBoZWFkZXJzCisJCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9saWIvZ2NjLyR7Y3Jvc3NfdHJp cGxldH0vKi9pbmNsdWRlLWZpeGVkCisKKwkJIyBNYWtlIGxkLW11c2wuc28gc3ltbGlua3MgcmVs YXRpdmUKKwkJZm9yIGYgaW4gJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci9saWIvbGQtbXVzbC0q LnNvLio7IGRvCisJCQlsbiAtc2YgbGliYy5zbyAke2Z9CisJCWRvbmUKKwllbHNlCisJCSMgSW5z dGFsbCBnbGliYworCQljZCAke3dya3NyY30vZ2xpYmNfYnVpbGQKKwkJbWFrZSBpbnN0YWxsX3Jv b3Q9JHtERVNURElSfS8ke3N5c3Jvb3R9IGluc3RhbGwgaW5zdGFsbC1oZWFkZXJzCisKKwkJIyBS ZW1vdmUgYmFkIGhlYWRlcgorCQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIvZ2NjLyR7Y3Jvc3Nf X3RyaXBsZXR9LyovaW5jbHVkZS1maXhlZC9iaXRzL3N0YXR4LmgKKwlmaQorCisJbG9jYWwgZ2Nj X3Zlcj0kKGNhdCAke3dya3NyY30vLmdjY192ZXJzaW9uKQorCisJIyBTeW1saW5rcyBmb3IgZ25h cmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcworCWxvY2FsIG1ham9ydmVyPSR7Z2NjX3ZlciUu Ki4qfQorCWxvY2FsIGFkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke2djY192ZXJ9L2Fk YWxpYgorCW12ICR7REVTVERJUn0vJHthZGFsaWJ9L2xpYmduYXJsLSR7bWFqb3J2ZXJ9LnNvIFwK KwkJJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci9saWIKKwltdiAke0RFU1RESVJ9LyR7YWRhbGli fS9saWJnbmF0LSR7bWFqb3J2ZXJ9LnNvIFwKKwkJJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci9s aWIKKwlsbiAtc2YgbGliZ25hcmwtJHttYWpvcnZlcn0uc28gJHtERVNURElSfS8ke3N5c3Jvb3R9 L3Vzci9saWIvbGliZ25hcmwuc28KKwlsbiAtc2YgbGliZ25hdC0ke21ham9ydmVyfS5zbyAke0RF U1RESVJ9LyR7c3lzcm9vdH0vdXNyL2xpYi9saWJnbmF0LnNvCisJcm0gLXZmICR7REVTVERJUn0v JHthZGFsaWJ9L2xpYmduYXtybCx0fS5zbworCisJIyBSZW1vdmUgdW5uZWNlc3NhcnkgbGliYXRv bWljIHdoaWNoIGlzIG9ubHkgYnVpbHQgZm9yIGdjY2dvCisJcm0gLXJmICR7REVTVERJUn0vJHtz eXNyb290fS91c3IvbGliL2xpYmF0b21pYy4qCisKKwkjIElmIGxpYnF1YWRtYXRoIHdhcyBmb3Jj ZWQgKG5lZWRlZCBmb3IgZ2ZvcnRyYW4gb24gc29tZSBwbGF0Zm9ybXMpCisJIyB0aGVuIHJlbW92 ZSBpdCBiZWNhdXNlIGl0IGNvbmZsaWN0cyB3aXRoIGxpYnF1YWRtYXRoIHBhY2thZ2UKKwlybSAt cmYgJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci9saWIvbGlicXVhZG1hdGguKgorCisJIyBSZW1v dmUgbGVmdG92ZXIgc3ltbGlua3MKKwlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIke1hCUFNfVEFS R0VUX1dPUkRTSVpFfQorCXJtIC1mICR7REVTVERJUn0vbGliKgorCXJtIC1mICR7REVTVERJUn0v KmJpbgorCSMgUmVtb3ZlIHVubmVjZXNzYXJ5IHN0dWZmCisJcm0gLXJmICR7REVTVERJUn0vJHtz eXNyb290fS97c2JpbixldGMsdmFyLGxpYmV4ZWN9CisJcm0gLXJmICR7REVTVERJUn0vJHtzeXNy b290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KKwlybSAtcmYgJHtERVNURElSfS91c3Ivc2hh cmUKKwlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCisKKwlleHBvcnQgUEFU SD0iJG9sZHBhdGgiCisJZXhwb3J0IExEX0xJQlJBUllfUEFUSD0iJG9sZGxkbGliIgorfQpkaWZm IC0tZ2l0IGEvY29tbW9uL2Vudmlyb25tZW50L2J1aWxkLXN0eWxlL3ZvaWQtY3Jvc3Muc2ggYi9j b21tb24vZW52aXJvbm1lbnQvYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDhkMTU4NWU5NWMKLS0tIC9kZXYvbnVsbAorKysg Yi9jb21tb24vZW52aXJvbm1lbnQvYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaApAQCAtMCwwICsx LDEzIEBACitsaWIzMmRpc2FibGVkPXllcworbm9waWU9eWVzCitjcmVhdGVfd3Jrc3JjPXllcwor Citub3N0cmlwX2ZpbGVzKz0iIGxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJnY292LmEgbGli Z2NjX2VoLmEKKyBsaWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRfcGljLmEgbGliZ25h dC5hIGxpYmdtZW0uYSIKKworIyBnbGliYyBjcm9zc3Rvb2xjaGFpbnMgbm90IGF2YWlsYWJsZSBv biBtdXNsIGhvc3RzIHlldAoraWYgWyAteiAiJGFyY2hzIiAtYSAiJHtjcm9zc190cmlwbGV0Ly1t dXNsfSIgPSAiJHtjcm9zc190cmlwbGV0fSIgXTsgdGhlbgorCWlmIFsgIiRYQlBTX1RBUkdFVF9M SUJDIiAhPSAiZ2xpYmMiIF07IHRoZW4KKwkJYXJjaHM9In4qLW11c2wiCisJZmkKK2ZpCgpGcm9t IGQ5MDJkZjYzNGY1MmRmMjYxZjA5NGMxODE2MDMyNWQ0YzhmODMxZDEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMjUg RGVjIDIwMjAgMDA6NDM6NDggKzAxMDAKU3ViamVjdDogW1BBVENIIDAzLzI2XSBjcm9zcy1hYXJj aDY0LWxpbnV4LWdudTogcmVkbyB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1h YXJjaDY0LWxpbnV4LWdudS90ZW1wbGF0ZSB8IDM2MCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDM0NyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtZ251L3RlbXBsYXRlIGIvc3JjcGtn cy9jcm9zcy1hYXJjaDY0LWxpbnV4LWdudS90ZW1wbGF0ZQppbmRleCBiMDEyMmM4ZWM0YS4uYmQx NjI1YzA5ZmMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51eC1nbnUvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LWdudS90ZW1wbGF0ZQpAQCAt MSwyMSArMSwyMSBAQAotIyBUZW1wbGF0ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3MtYWFyY2g2NC1s aW51eC1nbnUnCi0jCisjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hYXJjaDY0LWxpbnV4LWdu dScKK190cmlwbGV0PWFhcmNoNjQtbGludXgtZ251CiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBf Z2NjX3ZlcnNpb249OS4zLjAKIF9nbGliY192ZXJzaW9uPTIuMzAKIF9saW51eF92ZXJzaW9uPTQu MTkKLQotX3RyaXBsZXQ9YWFyY2g2NC1saW51eC1nbnUKLV9hcmNoZmxhZ3M9Ii1tYXJjaD1hcm12 OC1hIgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi0KIHBrZ25hbWU9Y3Jvc3MtJHtfdHJp cGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249Mwotc2hvcnRfZGVzYz0iR05VIENyb3NzIHRv b2xjaGFpbiBmb3IgdGhlICR7X3RyaXBsZXR9IExFIHRhcmdldCAoYmludXRpbHMvZ2NjL2dsaWJj KSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1h cm12OC1hIgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBw eXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVs IGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtf dHJpcGxldH0iCiBtYWludGFpbmVyPSJMZWFoIE5ldWtpcmNoZW4gPGxlYWhAdnV4dS5vcmc+Igot aG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1v ci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCitob21lcGFnZT0i aHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2Jp bnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egogICR7R05VX1NJVEV9 L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CkBAIC0y NSwzNTAgKzI1LDE2IEBAIGNoZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5Yjcw YThiOWY3NTU1N2Y4OTY0NDZjODJlOGIzNmU0NzNlZTA0CiAgNzFlMTk3ODY3NjExZjYwNTRhYTEx MTliMTNhMGMwYWJhYzEyODM0NzY1ZmUyZDgxZjM1YWM1N2Y4NGY3NDJkMQogIGUyYzQxMTRlNTY5 YWZiZTdlZGJjMjkxMzFhNDNiZTgzMzg1MGFiOWE0NTlkODFiZWIyNTg4MDE2ZDJiYmI4YWYKICAw YzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMy MTc0OWExIgotCi1saWIzMmRpc2FibGVkPXllcwogbm9jcm9zcz15ZXMKLW5vcGllPXllcwotY3Jl YXRlX3dya3NyYz15ZXMKLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4 IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxp Yi1kZXZlbCIKLWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259 Igotbm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJn Y2NfZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0 LmEgbGliZ21lbS5hIgogCi1pZiBbICIkWEJQU19UQVJHRVRfTElCQyIgIT0gImdsaWJjIiBdOyB0 aGVuCi0JYnJva2VuPSJnbGliYyBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBvbiBnbGli YyIKLWZpCi0KLWlmIFsgIiRYQlBTX1RBUkdFVF9XT1JEU0laRSIgIT0gIjY0IiBdOyB0aGVuCi0J YnJva2VuPSI2NC1iaXQgY3Jvc3N0b29sY2hhaW4gb25seSBhdmFpbGFibGUgb24gNjQtYml0IGhv c3QiCi1maQorY3Jvc3NfdHJpcGxldD0ke190cmlwbGV0fQorY3Jvc3NfbGludXhfYXJjaD1hcm02 NAorY3Jvc3NfZ2xpYmNfY2ZsYWdzPSItTzIgLW1hcmNoPWFybXY4LWEiCiAKIGlmIFsgIiRYQlBT X1RBUkdFVF9NQUNISU5FIiA9ICJhYXJjaDY0IiBdOyB0aGVuCiAJYnJva2VuPSJDYW4ndCBidWls ZCBjcm9zc3Rvb2xjaGFpbiB0byBpdHNlbGYiCiBmaQogCi1fYXBwbHlfcGF0Y2goKSB7Ci0JbG9j YWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKLQotCWlmIFsgISAtZiAiLiR7cG5h bWV9X2RvbmUiIF07IHRoZW4KLQkJcGF0Y2ggLU4gJGFyZ3MgLWkgJDIKLQkJdG91Y2ggLiR7cG5h bWV9X2RvbmUKLQlmaQotfQotCi1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8u bGludXhfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9y bWFsICJCdWlsZGluZyBMaW51eCBBUEkgaGVhZGVycyBmb3IgQVJNXG4iCi0KLQljZCBsaW51eC0k e19saW51eF92ZXJzaW9ufQotCi0JbWFrZSBBUkNIPWFybTY0IGhlYWRlcnNfY2hlY2sKLQltYWtl IEFSQ0g9YXJtNjQgSU5TVEFMTF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0 YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX2JpbnV0aWxz X2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNfYnVp bGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWls ZGluZyBjcm9zcyBiaW51dGlsc1xuIgotCVsgISAtZCBiaW51dGlscy1idWlsZCBdICYmIG1rZGly IGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0v dXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1z eXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWRpc2FibGUtZ29sZCIKLQlfYXJncys9 IiAtLXdpdGgtc3lzdGVtLXpsaWIiCi0JLi4vYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0v Y29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1ob3N0ICYmIG1ha2UgJHttYWtl am9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRf ZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dy a3NyY30vLmdjY19ib290c3RyYXBfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30v Z2NjLSR7X2djY192ZXJzaW9ufQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9wYXRj aGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCWRvbmUKLQotCW1zZ19u b3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBib290c3RyYXBcbiIKLQotCVsgISAtZCAuLi9nY2Mt Ym9vdHN0cmFwIF0gJiYgbWtkaXIgLi4vZ2NjLWJvb3RzdHJhcAotCWNkIC4uL2djYy1ib290c3Ry YXAKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBs ZXR9IgotCV9hcmdzKz0iIC0td2l0aG91dC1oZWFkZXJzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1u bHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGli cXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYmdvbXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9 IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3NwIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJpdG0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIK LQlfYXJncys9IiAtLWRpc2FibGUtdGhyZWFkcyIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFn ZXM9YyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2psai1leGNlcHRpb25zIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLXdpdGgtZ251LWxkIgotCV9hcmdzKz0iIC0t d2l0aC1nbnUtYXMiCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdz fQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9 Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQotX2dsaWJjX2hlYWRlcnMoKSB7Ci0JbG9jYWwgX2Fy Z3MgZgotCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2hlYWRlcnNfZG9uZSBdICYmIHJldHVybiAw Ci0KLQljZCAke3dya3NyY30vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0KLQlpZiBbIC1kICIke1hC UFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19T UkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDEg IiRmIgotCQlkb25lCi0JZmkKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IGNyb3NzIGdsaWJjIGhlYWRlcnNcbiIKLQotCVsgISAtZCBnbGliYy1oZWFkZXJzIF0gJiYgbWtk aXIgZ2xpYmMtaGVhZGVycwotCWNkIGdsaWJjLWhlYWRlcnMKLQotCWVjaG8gImxpYmNfY3ZfZm9y Y2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCi0JZWNobyAibGliY19jdl9jX2NsZWFudXA9 eWVzIiA+PiBjb25maWcuY2FjaGUKLQotCWV4cG9ydCBDQz0iJHtfdHJpcGxldH0tZ2NjIiBMRD0i JHtfdHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBDUFA9IiR7X3RyaXBsZXR9 LWNwcCIgXAotCQlOTT0iJHtfdHJpcGxldH0tbm0iCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIK LQlfYXJncys9IiAtLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLWhlYWRlcnM9 JHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIgLS1jb25maWctY2FjaGUiCi0JX2Fy Z3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRl LW5zbCIKLQlfYXJncys9IiAtLWVuYWJsZS1rZXJuZWw9Mi42LjI3IgotCi0JLi4vZ2xpYmMtJHtf Z2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIC1rIGluc3RhbGwtaGVh ZGVycyBjcm9zc19jb21waWxpbmc9eWVzIFwKLQkJaW5zdGFsbF9yb290PSR7X3N5c3Jvb3R9Ci0K LQl0b3VjaCAke3dya3NyY30vLmdsaWJjX2hlYWRlcnNfZG9uZQotfQotCi1fZ2xpYmNfYnVpbGQo KSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19idWlsZF9kb25lIF0g JiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3Nz IGdsaWJjXG4iCi0KLQlbICEgLWQgZ2xpYmMtYnVpbGQgXSAmJiBta2RpciBnbGliYy1idWlsZAot CWNkIGdsaWJjLWJ1aWxkCi0KLQllY2hvICJzbGliZGlyPS91c3IvbGliNjQiID4gY29uZmlncGFy bXMKLQotCWVjaG8gImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCi0J ZWNobyAibGliY19jdl9jX2NsZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUKLQotCWV4cG9ydCBD Qz0iJHtfdHJpcGxldH0tZ2NjIiBDWFg9IiR7X3RyaXBsZXR9LWcrKyIgTEQ9IiR7X3RyaXBsZXR9 LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIke190cmlwbGV0fS1jcHAiIFwKLQkJ Tk09IiR7X3RyaXBsZXR9LW5tIgotCWV4cG9ydCBDRkxBR1M9Ii1PMSAtcGlwZSAke19hcmNoZmxh Z3N9IgotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJkaXI9L3Vzci9s aWI2NCIKLQlfYXJncys9IiAtLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLWhl YWRlcnM9JHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIgLS1jb25maWctY2FjaGUi Ci0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9i c29sZXRlLW5zbCIKLQlfYXJncys9IiAtLWRpc2FibGUtcHJvZmlsZSIKLQlfYXJncys9IiAtLWVu YWJsZS1rZXJuZWw9Mi42LjI3IgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0KLQkuLi9n bGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtl am9ic30KLQltYWtlIGluc3RhbGxfcm9vdD0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAk e3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsKLQlsb2NhbCBf YXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQot CWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgot Ci0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAot Ci0JZXhwb3J0IENDPSJnY2MiIENYWD0iZysrIiBDRkxBR1M9Ii1PcyAtcGlwZSIKLQl1bnNldCBM RCBBUwotCi0JIyBNYWtlIHRoaXMgbGluayB0byB0YXJnZXQgbGlicy4KLQlpZiBbICEgLWYgLnNl ZF9zdWJzdF9kb25lIF07IHRoZW4KLQkJc2VkIC1lICJzLCAvbGliLywgJHtfc3lzcm9vdH0vbGli LyxnO3MsIC91c3IvbGliLywgJHtfc3lzcm9vdH0vdXNyL2xpYi8sZyIgXAotCQkJLWkgJHtfc3lz cm9vdH0vbGliL2xpYmMuc28KLQkJc2VkIC1lICJzLCAvbGliNjQvLCAke19zeXNyb290fS9saWI2 NC8sZztzLCAvdXNyL2xpYjY0LywgJHtfc3lzcm9vdH0vdXNyL2xpYjY0LyxnIiBcCi0JCQktaSAk e19zeXNyb290fS9saWIvbGliYy5zbwotCQl0b3VjaCAuc2VkX3N1YnN0X2RvbmUKLQlmaQotCi0J X2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgot CV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290 PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2Jq YyxvYmotYysrLGdvLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtYXMiCi0JX2Fy Z3MrPSIgLS13aXRoLWdudS1sZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2psai1leGNlcHRpb25z IgotCV9hcmdzKz0iIC0tZW5hYmxlLXRocmVhZHM9cG9zaXgiCi0JX2FyZ3MrPSIgLS1lbmFibGUt bG9uZy1sb25neCIKLQlfYXJncys9IiAtLWVuYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1lbmFi bGUtbGlua2VyLWJ1aWxkLWlkIgotCV9hcmdzKz0iIC0tZW5hYmxlLWdudS11bmlxdWUtb2JqZWN0 IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJsZS1sdG8iCi0J X2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVs dC1zc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYnNhbml0aXplciIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliY2lsa3J0cyIK LQlfYXJncys9IiAtLWRpc2FibGUtbGliaXRtIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJ2dHYi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnN0ZGN4eC1wY2giCi0JX2FyZ3MrPSIgLS1lbmFibGUt bGlic3RkY3h4LXRpbWUiCi0JX2FyZ3MrPSIgLS13aXRoLWxpbmtlci1oYXNoLXN0eWxlPWdudSIK LQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7 bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdjY19idWlsZF9kb25lCi19Ci0KLWRvX2J1 aWxkKCkgewotCXVuc2V0IExERkxBR1MKLQlleHBvcnQgQ0ZMQUdTPSItT3MiIENYWEZMQUdTPSIt T3MiCi0KLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBb ICEgLWQgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtfc3lzcm9v dH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgot CQkJbG4gLXNmciAke19zeXNyb290fS91c3IvJHtmfSAke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0J ZG9uZQotCWxuIC1zZiBsaWIgJHtfc3lzcm9vdH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIg JHtfc3lzcm9vdH0vbGliNjQKLQotCV9iaW51dGlsc19idWlsZAotCV9nY2NfYm9vdHN0cmFwCi0J X2xpbnV4X2hlYWRlcnMKLQlfZ2xpYmNfaGVhZGVycwotCV9nbGliY19idWlsZAotCV9nY2NfYnVp bGQKLX0KLQotZG9faW5zdGFsbCgpIHsKLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJp biBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBd OyB0aGVuCi0JCQlta2RpciAtcCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZp Ci0JCWlmIFsgISAtaCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4g LXNmciAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IFwKLQkJCQkke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci9saWI2NAotCWxuIC1zZiB1c3IvbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0v bGliNjQKLQotCSMgaW5zdGFsbCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGls cy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBj cm9zcyBnY2MKLQljZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJ Un0gaW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RF U1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIK LQotCSMgaW5zdGFsbCBsaW51eCBBUEkgaGVhZGVycyBmb3IgQVJNNjQKLQljZCAke3dya3NyY30v bGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9YXJtNjQgSU5TVEFMTF9IRFJfUEFU SD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZp bmQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3Ig LW5hbWUgLi5pbnN0YWxsLmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Iv aW5jbHVkZS9kcm0KLQotCSMgaW5zdGFsbCBnbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9 L2dsaWJjLWJ1aWxkCi0JbWFrZSBpbnN0YWxsX3Jvb3Q9JHtERVNURElSfS8ke19zeXNyb290fSBp bnN0YWxsIGluc3RhbGwtaGVhZGVycwotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQg c2hhcmVkIGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFs aWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12 ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElS fS8ke19zeXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmdu YXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1z dmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0 LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGli fS9saWJnbmF7cmwsdH0uc28KLQotCSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4gdGFy Z2V0IGdjYyBhcyBnY2NnbyBuZWVkcyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5l ZWRlZCBhdCBydW50aW1lLCBzbyByZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28gaXQg ZG9lc24ndCBjb25mbGljdCB3aXRoIHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5uZWNl c3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0g LXJmICR7REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0v e3NiaW4sZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Ive3NiaW4s c2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLX0K LQotZG9fY2xlYW4oKSB7Ci0JIyBSZW1vdmUgdGVtcG9yYXJ5IHN0dWZmIGZyb20gbWFzdGVyZGly Ci0Jcm0gLXJmICR7X3N5c3Jvb3R9Ci0Jcm0gLWYgL3Vzci9iaW4vJHtfdHJpcGxldH0qCi0Jcm0g LXJmIC91c3IvbGliL2djYy8ke190cmlwbGV0fQotCXJtIC1yZiAvdXNyL2xpYmV4ZWMvZ2NjLyR7 X3RyaXBsZXR9Ci19Ci0KIGNyb3NzLWFhcmNoNjQtbGludXgtZ251LWxpYmNfcGFja2FnZSgpIHsK IAlzaG9ydF9kZXNjKz0iIC0gZ2xpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKQEAgLTM3Niw2ICs0 Miw2IEBAIGNyb3NzLWFhcmNoNjQtbGludXgtZ251LWxpYmNfcGFja2FnZSgpIHsKIAlub3Zlcmlm eXJkZXBzPXllcwogCiAJcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9CisJCXZt b3ZlIHVzci8ke2Nyb3NzX3RyaXBsZXR9CiAJfQogfQoKRnJvbSAzNzM4YmU2MjE4MjNkNmMzMTQ1 YzdmYmVmYzg5ZTkwNWY2MDIzNmJhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDI1IERlYyAyMDIwIDE0OjUyOjM2ICsw MTAwClN1YmplY3Q6IFtQQVRDSCAwNC8yNl0gY3Jvc3MtYWFyY2g2NC1saW51eC1tdXNsOiByZWRv IHdpdGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtbXVzbC90 ZW1wbGF0ZSB8IDMwMSArLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTQg aW5zZXJ0aW9ucygrKSwgMjg3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jv c3MtYWFyY2g2NC1saW51eC1tdXNsL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxp bnV4LW11c2wvdGVtcGxhdGUKaW5kZXggOGQ0NTg3Y2ZlNDguLjRhODUzNjRlZTFmIDEwMDY0NAot LS0gYS9zcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtbXVzbC90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtbXVzbC90ZW1wbGF0ZQpAQCAtMSwxOSArMSwxOSBAQAot IyBUZW1wbGF0ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3MtYWFyY2g2NC1saW51eC1tdXNsJwotIwor IyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtYWFyY2g2NC1saW51eC1tdXNsJworX3RyaXBsZXQ9 YWFyY2g2NC1saW51eC1tdXNsCiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249 OS4zLjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj00LjE5CiBfbGlidWNv bnRleHRfdmVyc2lvbj0wLjkuMAotCi1fdHJpcGxldD1hYXJjaDY0LWxpbnV4LW11c2wKLV9hcmNo ZmxhZ3M9Ii1tYXJjaD1hcm12OC1hIgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi0KIHBr Z25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249NAotc2hvcnRf ZGVzYz0iQ3Jvc3MgdG9vbGNoYWluIGZvciBBUk02NCBMRSB0YXJnZXQgKG11c2wpIgorYnVpbGRf c3R5bGU9dm9pZC1jcm9zcworY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNoPWFybXY4LWEiCito b3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCitt YWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVs IG1wZnItZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3Jldmlz aW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIK IG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBob21lcGFnZT0i aHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBH UEwtMy4wLW9yLWxhdGVyLCBNSVQiCkBAIC0yOCwyOTcgKzI4LDI0IEBAIGNoZWNrc3VtPSIwYWI2 YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJlOGIzNmU0NzNl ZTA0CiAgMTM3MGM5YTgxMmIyY2YyYTdkOTI4MDI1MTBjY2EwMDU4Y2MzN2U2NmE3YmVkZDcwMDUx ZjBhMzQwMTUwMjJhMwogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVkYzkzMjM5ZmE4 OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEKICAwZDUzYTQxNWEzMDdlZjE3NTE1M2JiZTYwYTU3MmM5 NDBhOTIyY2I3MzZjZTEzNTMwYjY2NmU3ZWMyNzk1ZDY4IgotCi1saWIzMmRpc2FibGVkPXllcwog bm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi0K LWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIK LW1ha2VkZXBlbmRzPSJ6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIGxpYm1wYy1kZXZl bCBpc2wxNS1kZXZlbCIKLW5vc3RyaXBfZmlsZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBs aWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRf cGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKLWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3Zl cnNpb259XyR7cmV2aXNpb259IgogCi1pZiBbICIkWEJQU19UQVJHRVRfV09SRFNJWkUiICE9ICI2 NCIgXTsgdGhlbgotCWJyb2tlbj0iNjQtYml0IGNyb3NzdG9vbGNoYWluIG9ubHkgYXZhaWxhYmxl IG9uIDY0LWJpdCBob3N0IgotZmkKK2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX2xp YnVjb250ZXh0X2FyY2g9YWFyY2g2NAorY3Jvc3NfbGludXhfYXJjaD1hcm02NAorY3Jvc3NfbXVz bF9jZmxhZ3M9Ii1PMiAtbWFyY2g9YXJtdjgtYSIKIAogaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJ TkUiID0gImFhcmNoNjQtbXVzbCIgXTsgdGhlbgogCWJyb2tlbj0iQ2FuJ3QgYnVpbGQgY3Jvc3N0 b29sY2hhaW4gdG8gaXRzZWxmIgogZmkKIAotX2FwcGx5X3BhdGNoKCkgewotCWxvY2FsIGFyZ3M9 IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25l IiBdOyB0aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9kb25l Ci0JZmkKLX0KLQotX2JpbnV0aWxzX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7 d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3Ny Y30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBiaW51dGlscyBib290c3RyYXBcbiIKLQot CVsgISAtZCBiaW51dGlscy1idWlsZCBdICYmIG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmlu dXRpbHMtYnVpbGQKLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0k e190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJn cys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJn cys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2Fy Z3MrPSIgLS13aXRoLXN5c3RlbS16bGliIgotCi0JLi4vYmludXRpbHMtJHtfYmludXRpbHNfdmVy c2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1ob3N0ICYmIG1ha2Ug JHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uYmludXRpbHNf YnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2NhbCBfYXJncwotCVsgLWYg JHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtz cmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2Mv cGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQlkb25lCi0JZm9y IGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVzLyotbXVzbC5wYXRjaDsgZG8KLQkJX2Fw cGx5X3BhdGNoIC1wMSAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3Mg Z2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBta2RpciAu Li9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JX2FyZ3M9Ii0tcHJlZml4 PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRo LXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlfYXJncys9 IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJncys9IiAtLXdpdGgtbmV3bGliIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9 IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXRocmVhZHMiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNo YXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1zeW12ZXJzIgotCV9hcmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0KLQlD RkxBR1M9Ii1PMCAtZzAiIENYWEZMQUdTPSItTzAgLWcwIiBcCi0JCS4uL2djYy0ke19nY2NfdmVy c2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0 YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQotCi1fbGludXhf aGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZSBdICYmIHJldHVy biAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBMaW51eCBBUEkgaGVh ZGVyc1xuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQotCWZvciBmIGluICR7WEJQ U19TUkNQS0dESVJ9L2tlcm5lbC1saWJjLWhlYWRlcnMvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlf YXBwbHlfcGF0Y2ggLXAwICRmCi0JZG9uZQotCi0JbWFrZSBBUkNIPWFybTY0IGhlYWRlcnNfY2hl Y2sKLQltYWtlIEFSQ0g9YXJtNjQgSU5TVEFMTF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVh ZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQot X211c2xfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLm11c2xfYnVpbGRfZG9uZSBdICYmIHJl dHVybiAwCi0KLQljZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3ZlcnNpb259Ci0JbXNnX25vcm1h bCAiQnVpbGRpbmcgY3Jvc3MgbXVzbCBsaWJjXG4iCi0KLQkjIEFwcGx5IG11c2wgcGF0Y2hlcyBp ZiB0aGVyZSBhcmUgYW55Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVz IiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0Y2hlcy8qLnBh dGNoOyBkbwotCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JCWRvbmUKLQlmaQotCi0JQ0M9IiR7 X3RyaXBsZXR9LWdjYyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBBUj0iJHtfdHJpcGxldH0tYXIiIFwK LQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBSQU5MSUI9IiR7X3RyaXBsZXR9LXJhbmxpYiIgXAotCQlD RkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyAke19hcmNoZmxhZ3N9IiBcCi0JCS4vY29uZmlndXJlIC0t cHJlZml4PS91c3IKLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIERFU1RESVI9JHtfc3lzcm9v dH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUKLX0KLQotX2xp YnVjb250ZXh0X2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saWJ1Y29udGV4dF9idWlsZF9k b25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9saWJ1Y29udGV4dC0ke19saWJ1Y29u dGV4dF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGxpYnVjb250ZXh0XG4i Ci0KLQkjIGl0J3Mgb2sgaWYgd2UncmUgc3RhdGljIG9ubHkgaGVyZQotCUNDPSIke190cmlwbGV0 fS1nY2MiIEFSPSIke190cmlwbGV0fS1hciIgQVM9IiR7X3RyaXBsZXR9LWFzIiBcCi0JCUNGTEFH Uz0iLU9zIC1waXBlICR7X2FyY2hmbGFnc30iIFwKLQkJbWFrZSBBUkNIPWFhcmNoNjQgbGlidWNv bnRleHQuYQotCi0JY3AgbGlidWNvbnRleHQuYSAke19zeXNyb290fS91c3IvbGliCi0KLQl0b3Vj aCAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsK LQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0 dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBm aW5hbFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdj Yy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGly PS91c3IvbGliIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0t d2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1j LGFkYSxjKyssb2JqYyxvYmotYysrLGdvLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxl LWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJsZS1sdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVm YXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1l bmFibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFw IgotCV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVy cyIKLQlfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCi0JLi4vZ2NjLSR7X2djY192 ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNo ICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JIyBFbnN1cmUg d2UgdXNlIHNhbmUgZW52aXJvbm1lbnQKLQl1bnNldCBDQyBDWFggQ1BQIExEIEFTIEFSIFJBTkxJ QiBPQkpEVU1QIFJFQURFTEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hYRkxBR1MgQ1BQRkxBR1MgTERG TEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlwZSIgQ1hYRkxBR1M9Ii1PcyAtcGlwZSIKLQot CWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAk e19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91c3Iv JHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAt c2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0J bG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGliNjQKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNy b290fS9saWI2NAotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhf aGVhZGVycwotCV9tdXNsX2J1aWxkCi0JX2xpYnVjb250ZXh0X2J1aWxkCi0JX2djY19idWlsZAot fQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNi aW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRo ZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJ aWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2Zy ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lz cm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9v dH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWI2 NAotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7 X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPWFybTY0IElOU1RBTExfSERSX1BBVEg9JHtERVNU RElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYgJChmaW5kICR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3RhbGwgLW9yIC1uYW1lIC4u aW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUv ZHJtCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3NyY30vYmludXRpbHMt YnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIGluc3RhbGwgY3Jv c3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9 IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290Ci0JbXYgJHtERVNU RElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0K LQkjIGluc3RhbGwgbXVzbCBsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3NyY30vbXVzbC0ke19t dXNsX3ZlcnNpb259Ci0JbWFrZSBERVNURElSPSR7REVTVERJUn0vJHtfc3lzcm9vdH0gaW5zdGFs bAotCi0JIyBSZW1vdmUgdXNlbGVzcyBoZWFkZXJzLgotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9s aWIvZ2NjLyR7X3RyaXBsZXR9LyovaW5jbHVkZS1maXhlZAotCi0JIyBNYWtlIGxkLW11c2wuc28g c3ltbGlua3MgcmVsYXRpdmUuCi0JbG4gLXNmIGxpYmMuc28gJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvbGliL2xkLW11c2wtYWFyY2g2NC5zby4xCi0KLQkjIHN5bWxpbmtzIGZvciBnbmFybCBh bmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2djY192ZXJzaW9uJS4qLip9 Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2NfdmVyc2lvbn0vYWRhbGli Ci0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7X21ham9ydmVyfS5zbyAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxp Yn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGli Ci0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25hcmwuc28KLQlsbiAtc3Zm IGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAtdmYgJHtERVNURElSfS8k e19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRvIGJ1aWxkIGxpYmF0b21p YyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBidWlsZC4uLiBidXQgaXQn cyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9tIHRoZQotCSMgZGVzdGRp ciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21pYyBwYWNrYWdlCi0Jcm0g LWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21pYy4qCi0KLQkjIFJlbW92 ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5 LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNURElSfS8ke19z eXNyb290fS97ZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Ive3Ni aW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMK LQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYi8qLnB5Ci0Jcm0gLWYgJHtERVNURElS fS8ke19zeXNyb290fS9zYmluCi19Ci0KIGNyb3NzLWFhcmNoNjQtbGludXgtbXVzbC1saWJjX3Bh Y2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGxpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlu b3NobGlicHJvdmlkZXM9eWVzCiAJbm92ZXJpZnlyZGVwcz15ZXMKKwogCXBrZ19pbnN0YWxsKCkg ewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0K IH0KCkZyb20gMzczNmU0MDFhNmEwMjI5ZDE5NjkzODA3MzQyMmU2M2JhMDgxMmUxZSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog RnJpLCAyNSBEZWMgMjAyMCAyMDoxMDozNSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMjZdIGNy b3NzLWFybS1saW51eC1nbnVlYWJpOiByZWRvIHdpdGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dz L2Nyb3NzLWFybS1saW51eC1nbnVlYWJpL3RlbXBsYXRlIHwgMzYwICstLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMzQ1IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmkvdGVtcGxhdGUg Yi9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJpL3RlbXBsYXRlCmluZGV4IGU1ODEwMGU2 OGRmLi5iMzI3OTQ5ODg5YiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251 ZWFiaS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJpL3RlbXBs YXRlCkBAIC0xLDIyICsxLDIxIEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1h cm0tbGludXgtZ251ZWFiaScKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFybS1saW51 eC1nbnVlYWJpJworX3RyaXBsZXQ9YXJtLWxpbnV4LWdudWVhYmkKIF9iaW51dGlsc192ZXJzaW9u PTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX2dsaWJjX3ZlcnNpb249Mi4zMAogX2xpbnV4X3Zl cnNpb249NC4xOQotCi1fdHJpcGxldD1hcm0tbGludXgtZ251ZWFiaQotX2ZwdWZsYWdzPSItLXdp dGgtYXJjaD1hcm12NXRlIC0td2l0aG91dC1mcCAtLXdpdGgtZmxvYXQ9c29mdCIKLV9hcmNoZmxh Z3M9Ii1tYXJjaD1hcm12NXRlIC1tc29mdC1mbG9hdCAtbWZsb2F0LWFiaT1zb2Z0IgotX3N5c3Jv b3Q9Ii91c3IvJHtfdHJpcGxldH0iCi0KIHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNp b249MC4zMwogcmV2aXNpb249Mgotc2hvcnRfZGVzYz0iR05VIENyb3NzIHRvb2xjaGFpbiBmb3Ig dGhlICR7X3RyaXBsZXR9IExFIHRhcmdldCAoYmludXRpbHMvZ2NjL2dsaWJjKSIKK2J1aWxkX3N0 eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1hcm12NXRlIC0td2l0 aC1mbG9hdD1zb2Z0IgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXgg cGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGli LWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBm b3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5v cmc+IgorbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTEdQTC0y LjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCi1saWNl bnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIuMS4wLW9yLWxh dGVyIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51 dGlsc192ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9u fS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egpAQCAtMjYsMzQ3ICsyNSwxOCBAQCBjaGVja3N1 bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2YzgyZThi MzZlNDczZWUwNAogIDcxZTE5Nzg2NzYxMWY2MDU0YWExMTE5YjEzYTBjMGFiYWMxMjgzNDc2NWZl MmQ4MWYzNWFjNTdmODRmNzQyZDEKICBlMmM0MTE0ZTU2OWFmYmU3ZWRiYzI5MTMxYTQzYmU4MzM4 NTBhYjlhNDU5ZDgxYmViMjU4ODAxNmQyYmJiOGFmCiAgMGM2OGY1NjU1NTI4YWVkNGY5OWRhZTcx YTViMjU5ZWRjOTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMSIKLQotbGliMzJkaXNhYmxl ZD15ZXMKIG5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVidWc9eWVzCi1jcmVhdGVfd3Jrc3Jj PXllcwogCi1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5 dGhvbjMiCi1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwi Ci1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLW5vc3Ry aXBfZmlsZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEK LSBsaWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdt ZW0uYSIKLQotaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiICE9ICJnbGliYyIgXTsgdGhlbgotCWJy b2tlbj0iZ2xpYmMgY3Jvc3N0b29sY2hhaW4gb25seSBhdmFpbGFibGUgb24gZ2xpYmMiCi1maQor Y3Jvc3NfdHJpcGxldD0ke190cmlwbGV0fQorY3Jvc3NfbGludXhfYXJjaD1hcm0KK2Nyb3NzX2Jp bnV0aWxzX2NvbmZpZ3VyZV9hcmdzPSItLXdpdGhvdXQtZnAiCitjcm9zc19nbGliY19jb25maWd1 cmVfYXJncz0iLS13aXRob3V0LWZwIgorY3Jvc3NfZ2xpYmNfY2ZsYWdzPSItT3MgLW1hcmNoPWFy bXY1dGUgLW1zb2Z0LWZsb2F0IC1tZmxvYXQtYWJpPXNvZnQiCiAKIGlmIFsgIiRYQlBTX1RBUkdF VF9NQUNISU5FIiA9ICJhcm12NXRlbCIgXTsgdGhlbgogCWJyb2tlbj0iQ2FuJ3QgYnVpbGQgY3Jv c3N0b29sY2hhaW4gdG8gaXRzZWxmIgogZmkKIAotX2FwcGx5X3BhdGNoKCkgewotCWxvY2FsIGFy Z3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEgLWYgIi4ke3BuYW1lfV9k b25lIiBdOyB0aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9k b25lCi0JZmkKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4 X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAi QnVpbGRpbmcgTGludXggQVBJIGhlYWRlcnMgZm9yIEFSTVxuIgotCi0JY2QgbGludXgtJHtfbGlu dXhfdmVyc2lvbn0KLQotCW1ha2UgQVJDSD1hcm0gaGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD1h cm0gSU5TVEFMTF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0 b3VjaCAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX2JpbnV0aWxzX2J1aWxkKCkg ewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZSBd ICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9z cyBiaW51dGlsc1xuIgotCVsgISAtZCBiaW51dGlscy1idWlsZCBdICYmIG1rZGlyIGJpbnV0aWxz LWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJn cys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19z eXNyb290fSIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1z aGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16bGliIgotCi0JLi4vYmludXRpbHMt JHtfYmludXRpbHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3Vy ZS1ob3N0Ci0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtz cmN9Ly5iaW51dGlsc19idWlsZF9kb25lCi19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2Fs IF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJu IDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBT X1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAi JGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxu IgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFw Ci0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3Mr PSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRob3V0LWhlYWRlcnMiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1h bC1mbG9hdCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAt LWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdz Kz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2Vw dGlvbnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0td2l0aC1n bnUtbGQiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1hcyIKLQlfYXJncys9IiAke19mcHVmbGFnc30i Ci0KLQlDRkxBR1M9Ii1PMCAtZzAiIENYWEZMQUdTPSItTzAgLWcwIiBcCi0JCS4uL2djYy0ke19n Y2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFr ZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQotCi1f Z2xpYmNfaGVhZGVycygpIHsKLQlsb2NhbCBfYXJncyBmCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2xp YmNfaGVhZGVyc19kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nbGliYy0ke19n bGliY192ZXJzaW9ufQotCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMi IF07IHRoZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcy8qLnBh dGNoOyBkbwotCQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JCWRvbmUKLQlmaQotCi0JY2QgJHt3 cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2xpYmMgaGVhZGVyc1xuIgotCi0J WyAhIC1kIGdsaWJjLWhlYWRlcnMgXSAmJiBta2RpciBnbGliYy1oZWFkZXJzCi0JY2QgZ2xpYmMt aGVhZGVycwotCi0JZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25maWcuY2Fj aGUKLQllY2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQotCi0JZXhw b3J0IENDPSIke190cmlwbGV0fS1nY2MiIExEPSIke190cmlwbGV0fS1sZCIgXAotCQlBUz0iJHtf dHJpcGxldH0tYXMiIENQUD0iJHtfdHJpcGxldH0tY3BwIgotCi0JX2FyZ3M9Ii0tcHJlZml4PS91 c3IiCi0JX2FyZ3MrPSIgLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1oZWFk ZXJzPSR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29uZmlnLWNhY2hlIgot CV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNv bGV0ZS1uc2wiCi0JX2FyZ3MrPSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQlfYXJncys9IiAk e19mcHVmbGFnc30iCi0KLQkuLi9nbGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtf YXJnc30KLQotCW1ha2UgLWsgaW5zdGFsbC1oZWFkZXJzIGNyb3NzX2NvbXBpbGluZz15ZXMgXAot CQlpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9vdH0KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfaGVh ZGVyc19kb25lCi19Ci0KLV9nbGliY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAk e3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9 Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2xpYmNcbiIKLQotCVsgISAtZCBnbGliYy1i dWlsZCBdICYmIG1rZGlyIGdsaWJjLWJ1aWxkCi0JY2QgZ2xpYmMtYnVpbGQKLQotCWVjaG8gInNs aWJkaXI9L3Vzci9saWIzMiIgPiBjb25maWdwYXJtcwotCi0JZWNobyAibGliY19jdl9mb3JjZWRf dW53aW5kPXllcyIgPiBjb25maWcuY2FjaGUKLQllY2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMi ID4+IGNvbmZpZy5jYWNoZQotCi0JZXhwb3J0IENDPSIke190cmlwbGV0fS1nY2MiIExEPSIke190 cmlwbGV0fS1sZCIgXAotCQlBUz0iJHtfdHJpcGxldH0tYXMiIENQUD0iJHtfdHJpcGxldH0tY3Bw IgotCWV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlwZSAke19hcmNoZmxhZ3N9IgotCi0JX2FyZ3M9Ii0t cHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJkaXI9L3Vzci9saWIzMiIKLQlfYXJncys9IiAt LWhvc3Q9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLWhlYWRlcnM9JHtfc3lzcm9vdH0v dXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIgLS1jb25maWctY2FjaGUiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLXByb2ZpbGUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdzKz0i IC0tZW5hYmxlLW9ic29sZXRlLW5zbCIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9h cmdzKz0iIC0tZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9Igot Ci0JLi4vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtl ICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0J dG91Y2ggJHt3cmtzcmN9Ly5nbGliY19idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0J bG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVy biAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgZmlu YWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBnY2Mt YnVpbGQKLQotCXVuc2V0IExEIEFTIENQUAotCWV4cG9ydCBDQz0iZ2NjIiBDRkxBR1M9Ii1PcyAt cGlwZSIKLQotCSMgTWFrZSB0aGlzIGxpbmsgdG8gdGFyZ2V0IGxpYnMuCi0JaWYgWyAhIC1mIC5z ZWRfc3Vic3RfZG9uZSBdOyB0aGVuCi0JCXNlZCAtZSAicywgL2xpYi8sICR7X3N5c3Jvb3R9L2xp Yi8sZztzLCAvdXNyL2xpYi8sICR7X3N5c3Jvb3R9L3Vzci9saWIvLGciIFwKLQkJCS1pICR7X3N5 c3Jvb3R9L2xpYi9saWJjLnNvCi0JCXNlZCAtZSAicywgL2xpYjMyLywgJHtfc3lzcm9vdH0vbGli MzIvLGc7cywgL3Vzci9saWIzMi8sICR7X3N5c3Jvb3R9L3Vzci9saWIzMi8sZyIgXAotCQkJLWkg JHtfc3lzcm9vdH0vbGliL2xpYmMuc28KLQkJdG91Y2ggLnNlZF9zdWJzdF9kb25lCi0JZmkKLQot CV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiIK LQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9v dD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxhZGEsYysrLG9i amMsb2JqLWMrKyxnbyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLXdpdGgtZ251LWFzIgotCV9h cmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9h cmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJn cys9IiAtLWRpc2FibGUtc2psai1leGNlcHRpb25zIgotCV9hcmdzKz0iIC0tZW5hYmxlLXRocmVh ZHM9cG9zaXgiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbG9uZy1sb25neCIKLQlfYXJncys9IiAtLWVu YWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlua2VyLWJ1aWxkLWlkIgotCV9hcmdz Kz0iIC0tZW5hYmxlLWdudS11bmlxdWUtb2JqZWN0IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFk YSIKLQlfYXJncys9IiAtLWVuYWJsZS1sdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1w aWUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9 IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJjaWxrcnRz IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJpdG0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnZ0 diIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3RkY3h4LXBjaCIKLQlfYXJncys9IiAtLWVuYWJs ZS1saWJzdGRjeHgtdGltZSIKLQlfYXJncys9IiAtLXdpdGgtbGlua2VyLWhhc2gtc3R5bGU9Z251 IgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29u ZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dya3NyY30v LmdjY19idWlsZF9kb25lCi19Ci0KLWRvX2J1aWxkKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGli IGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3IvJHtmfSBd OyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEg LWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8k e2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290 fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290fS9saWIzMgotCi0JIyBFbnN1 cmUgd2UgdXNlIHNhbmUgZW52aXJvbm1lbnQKLQl1bnNldCBDQyBDWFggQ1BQIExEIEFTIEFSIFJB TkxJQiBPQkpEVU1QIFJFQURFTEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hYRkxBR1MgQ1BQRkxBR1Mg TERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyIgQ1hYRkxBR1M9Ii1PcyIKLQotCV9iaW51dGls c19idWlsZAotCV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hlYWRlcnMKLQlfZ2xpYmNfaGVhZGVy cwotCV9nbGliY19idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5zdGFsbCgpIHsKLQlmb3Ig ZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci8ke2Z9IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0J bG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3Iv bGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliMzIKLQotCSMgaW5zdGFsbCBjcm9zcyBiaW51 dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RE SVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBnY2MKLQljZCAke3dya3NyY30vZ2NjLWJ1 aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5z byogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMgaW5zdGFsbCBsaW51eCBBUEkgaGVhZGVy cyBmb3IgTUlQUwotCWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJzaW9ufQotCW1ha2Ug QVJDSD1hcm0gSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3VzciBoZWFk ZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5j bHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNtZCkKLQlybSAtcmYgJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0KLQotCSMgaW5zdGFsbCBnbGliYyBm b3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L2dsaWJjLWJ1aWxkCi0JbWFrZSBpbnN0YWxsX3Jvb3Q9 JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0YWxsIGluc3RhbGwtaGVhZGVycwotCi0JIyBzeW1s aW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19n Y2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2Nj X3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0k e19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtE RVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmdu YXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0g LXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0uc28KLQotCSMgV2UgbmVlZCB0 byBidWlsZCBsaWJhdG9taWMgaW4gdGFyZ2V0IGdjYyBhcyBnY2NnbyBuZWVkcyBpdCB0bwotCSMg YnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5lZWRlZCBhdCBydW50aW1lLCBzbyByZW1vdmUgaXQgZnJv bSB0aGUKLQkjIGRlc3RkaXIgc28gaXQgZG9lc24ndCBjb25mbGljdCB3aXRoIHRoZSBsaWJhdG9t aWMgcGFja2FnZQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9saWJhdG9t aWMuKgotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vz ci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJm ICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3NiaW4sbGliLGV0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNU RElSfS8ke19zeXNyb290fS9saWJleGVjCi19Ci0KIGNyb3NzLWFybS1saW51eC1nbnVlYWJpLWxp YmNfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gZ2xpYmMgZmlsZXMiCiAJbm9zdHJpcD15 ZXMKQEAgLTM3NCw2ICs0NCw2IEBAIGNyb3NzLWFybS1saW51eC1nbnVlYWJpLWxpYmNfcGFja2Fn ZSgpIHsKIAlub3ZlcmlmeXJkZXBzPXllcwogCiAJcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICR7 X3N5c3Jvb3R9CisJCXZtb3ZlIHVzci8ke2Nyb3NzX3RyaXBsZXR9CiAJfQogfQoKRnJvbSA3NDQz ZmUxNmYxMGYwMWI4MmQ2NzBiNzVjYTM3ZTRmNDg5NzY5NDIyIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDI1IERlYyAy MDIwIDIwOjEwOjQ1ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNi8yNl0gY3Jvc3MtYXJtLWxpbnV4 LWdudWVhYmloZjogcmVkbyB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1hcm0t bGludXgtZ251ZWFiaWhmL3RlbXBsYXRlIHwgMzU4ICstLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDM0NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJpaGYvdGVtcGxhdGUgYi9zcmNwa2dz L2Nyb3NzLWFybS1saW51eC1nbnVlYWJpaGYvdGVtcGxhdGUKaW5kZXggNGU0NmJhMWUzMDYuLmFm OTViMTQxYWU4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJpaGYv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251ZWFiaWhmL3RlbXBsYXRl CkBAIC0xLDIyICsxLDIxIEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1hcm0t bGludXgtZ251ZWFiaWhmJwotIworIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtYXJtLWxpbnV4 LWdudWVhYmloZicKK190cmlwbGV0PWFybS1saW51eC1nbnVlYWJpaGYKIF9iaW51dGlsc192ZXJz aW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX2dsaWJjX3ZlcnNpb249Mi4zMAogX2xpbnV4 X3ZlcnNpb249NC4xOQotCi1fdHJpcGxldD1hcm0tbGludXgtZ251ZWFiaWhmCi1fZnB1ZmxhZ3M9 Ii0td2l0aC1hcmNoPWFybXY2IC0td2l0aC1mcHU9dmZwIC0td2l0aC1mbG9hdD1oYXJkIgotX2Fy Y2hmbGFncz0iLW1hcmNoPWFybXY2IC1tZnB1PXZmcCAtbWZsb2F0LWFiaT1oYXJkIgotX3N5c3Jv b3Q9Ii91c3IvJHtfdHJpcGxldH0iCi0KIHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNp b249MC4zMwogcmV2aXNpb249Mgotc2hvcnRfZGVzYz0iR05VIENyb3NzIHRvb2xjaGFpbiBmb3Ig dGhlICR7X3RyaXBsZXR9IExFIHRhcmdldCAoYmludXRpbHMvZ2NjL2dsaWJjKSIKK2J1aWxkX3N0 eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1hcm12NiAtLXdpdGgt ZnB1PXZmcCAtLXdpdGgtZmxvYXQ9aGFyZCIKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpj IGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJt cGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtn bmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9z cyB0b29sY2hhaW4gZm9yICR7X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhh bkB2b2lkbGludXgub3JnPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3It bGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51 eC5vcmcvIgotbGljZW5zZT0iUHVibGljIERvbWFpbiIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lU RX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVf U0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoK QEAgLTI2LDM0NyArMjUsMTYgQEAgY2hlY2tzdW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1 YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4MmU4YjM2ZTQ3M2VlMDQKICA3MWUxOTc4Njc2MTFmNjA1 NGFhMTExOWIxM2EwYzBhYmFjMTI4MzQ3NjVmZTJkODFmMzVhYzU3Zjg0Zjc0MmQxCiAgZTJjNDEx NGU1NjlhZmJlN2VkYmMyOTEzMWE0M2JlODMzODUwYWI5YTQ1OWQ4MWJlYjI1ODgwMTZkMmJiYjhh ZgogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVkYzkzMjM5ZmE4OTllMmRmNzljMDU1 Mjc1YzIxNzQ5YTEiCi0KLWxpYjMyZGlzYWJsZWQ9eWVzCiBub2Nyb3NzPXllcwotbm9waWU9eWVz Ci1ub2RlYnVnPXllcwotY3JlYXRlX3dya3NyYz15ZXMKIAotaG9zdG1ha2VkZXBlbmRzPSJ0YXIg Z2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRl dmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGli Z2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19laC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBs aWJnbmF0X3BpYy5hIGxpYmduYXQuYSBsaWJnbWVtLmEiCi0KLWlmIFsgIiRYQlBTX1RBUkdFVF9M SUJDIiAhPSAiZ2xpYmMiIF07IHRoZW4KLQlicm9rZW49ImdsaWJjIGNyb3NzdG9vbGNoYWluIG9u bHkgYXZhaWxhYmxlIG9uIGdsaWJjIgotZmkKK2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Ny b3NzX2xpbnV4X2FyY2g9YXJtCitjcm9zc19nbGliY19jZmxhZ3M9Ii1PcyAtbWFyY2g9YXJtdjYg LW1mcHU9dmZwIC1tZmxvYXQtYWJpPWhhcmQiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5F IiA9ICJhcm12NmwiIF07IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWlu IHRvIGl0c2VsZiIKIGZpCiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5h bWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhl bgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19 Ci0KLV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25l IF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExp bnV4IEFQSSBoZWFkZXJzIGZvciBBUk1cbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259 Ci0KLQltYWtlIEFSQ0g9YXJtIGhlYWRlcnNfY2hlY2sKLQltYWtlIEFSQ0g9YXJtIElOU1RBTExf SERSX1BBVEg9JHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtz cmN9Ly5saW51eF9idWlsZF9kb25lCi19Ci0KLV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBf YXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4g MAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHNc biIKLQlbICEgLWQgYmludXRpbHMtYnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNk IGJpbnV0aWxzLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRh cmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIK LQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3Ii Ci0JX2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16bGliIgotCi0JLi4vYmludXRpbHMtJHtfYmludXRp bHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1ob3N0Ci0J bWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51 dGlsc19idWlsZF9kb25lCi19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0K LQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNk ICR7d3Jrc3JjfS9nY2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJ Un0vZ2NjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9u ZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAh IC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4v Z2NjLWJvb3RzdHJhcAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJn ZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRob3V0LWhlYWRlcnMiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIK LQlfYXJncys9IiAtLWRpc2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4 IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1s aWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUt bGliYXRvbWljIgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZW5h YmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0J X2FyZ3MrPSIgLS13aXRoLWdudS1hcyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQlDRkxB R1M9Ii1PMCAtZzAiIENYWEZMQUdTPSItTzAgLWcwIiBcCi0JCS4uL2djYy0ke19nY2NfdmVyc2lv bn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxs Ci0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQotCi1fZ2xpYmNfaGVh ZGVycygpIHsKLQlsb2NhbCBfYXJncyBmCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVy c19kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nbGliYy0ke19nbGliY192ZXJz aW9ufQotCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMiIF07IHRoZW4K LQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcy8qLnBhdGNoOyBkbwot CQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JCWRvbmUKLQlmaQotCi0JY2QgJHt3cmtzcmN9Ci0J bXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2xpYmMgaGVhZGVyc1xuIgotCi0JWyAhIC1kIGds aWJjLWhlYWRlcnMgXSAmJiBta2RpciBnbGliYy1oZWFkZXJzCi0JY2QgZ2xpYmMtaGVhZGVycwot Ci0JZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25maWcuY2FjaGUKLQllY2hv ICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQotCi0JZXhwb3J0IENDPSIk e190cmlwbGV0fS1nY2MiIExEPSIke190cmlwbGV0fS1sZCIgXAotCQlBUz0iJHtfdHJpcGxldH0t YXMiIENQUD0iJHtfdHJpcGxldH0tY3BwIgotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2Fy Z3MrPSIgLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1oZWFkZXJzPSR7X3N5 c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29uZmlnLWNhY2hlIgotCV9hcmdzKz0i IC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1uc2wi Ci0JX2FyZ3MrPSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQlfYXJncys9IiAke19mcHVmbGFn c30iCi0KLQkuLi9nbGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQot CW1ha2UgLWsgaW5zdGFsbC1oZWFkZXJzIGNyb3NzX2NvbXBpbGluZz15ZXMgXAotCQlpbnN0YWxs X3Jvb3Q9JHtfc3lzcm9vdH0KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25l Ci19Ci0KLV9nbGliY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30v LmdsaWJjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25v cm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2xpYmNcbiIKLQotCVsgISAtZCBnbGliYy1idWlsZCBdICYm IG1rZGlyIGdsaWJjLWJ1aWxkCi0JY2QgZ2xpYmMtYnVpbGQKLQotCWVjaG8gInNsaWJkaXI9L3Vz ci9saWIzMiIgPiBjb25maWdwYXJtcwotCi0JZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXll cyIgPiBjb25maWcuY2FjaGUKLQllY2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZp Zy5jYWNoZQotCi0JZXhwb3J0IENDPSIke190cmlwbGV0fS1nY2MiIExEPSIke190cmlwbGV0fS1s ZCIgXAotCQlBUz0iJHtfdHJpcGxldH0tYXMiIENQUD0iJHtfdHJpcGxldH0tY3BwIgotCWV4cG9y dCBDRkxBR1M9Ii1PcyAtcGlwZSAke19hcmNoZmxhZ3N9IgotCi0JX2FyZ3M9Ii0tcHJlZml4PS91 c3IiCi0JX2FyZ3MrPSIgLS1saWJkaXI9L3Vzci9saWIzMiIKLQlfYXJncys9IiAtLWhvc3Q9JHtf dHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLWhlYWRlcnM9JHtfc3lzcm9vdH0vdXNyL2luY2x1 ZGUiCi0JX2FyZ3MrPSIgLS1jb25maWctY2FjaGUiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXByb2Zp bGUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdzKz0iIC0tZW5hYmxl LW9ic29sZXRlLW5zbCIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0t ZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vZ2xp YmMtJHtfZ2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpv YnN9Ci0JbWFrZSBpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3 cmtzcmN9Ly5nbGliY19idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2Fy Z3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQlj ZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgZmluYWxcbiIKLQot CVsgISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBnY2MtYnVpbGQKLQot CXVuc2V0IExEIEFTIENQUAotCWV4cG9ydCBDQz0iZ2NjIiBDRkxBR1M9Ii1PcyAtcGlwZSIKLQot CSMgTWFrZSB0aGlzIGxpbmsgdG8gdGFyZ2V0IGxpYnMuCi0JaWYgWyAhIC1mIC5zZWRfc3Vic3Rf ZG9uZSBdOyB0aGVuCi0JCXNlZCAtZSAicywgL2xpYi8sICR7X3N5c3Jvb3R9L2xpYi8sZztzLCAv dXNyL2xpYi8sICR7X3N5c3Jvb3R9L3Vzci9saWIvLGciIFwKLQkJCS1pICR7X3N5c3Jvb3R9L2xp Yi9saWJjLnNvCi0JCXNlZCAtZSAicywgL2xpYjMyLywgJHtfc3lzcm9vdH0vbGliMzIvLGc7cywg L3Vzci9saWIzMi8sICR7X3N5c3Jvb3R9L3Vzci9saWIzMi8sZyIgXAotCQkJLWkgJHtfc3lzcm9v dH0vbGliL2xpYmMuc28KLQkJdG91Y2ggLnNlZF9zdWJzdF9kb25lCi0JZmkKLQlfYXJncz0iLS1w cmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIg LS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9v dH0iCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyss Z28sZm9ydHJhbixsdG8iCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1hcyIKLQlfYXJncys9IiAtLXdp dGgtZ251LWxkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRp c2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLXNqbGotZXhjZXB0aW9ucyIKLQlfYXJncys9IiAtLWVuYWJsZS10aHJlYWRzPXBvc2l4Igot CV9hcmdzKz0iIC0tZW5hYmxlLWxvbmctbG9uZ3giCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVk IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpbmtlci1idWlsZC1pZCIKLQlfYXJncys9IiAtLWVuYWJs ZS1nbnUtdW5pcXVlLW9iamVjdCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3Mr PSIgLS1lbmFibGUtbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdz Kz0iIC0tZW5hYmxlLWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0 aCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJt cHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LWxpYnNhbml0aXplciIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliY2lsa3J0cyIKLQlfYXJncys9 IiAtLWRpc2FibGUtbGliaXRtIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJ2dHYiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLWxpYnN0ZGN4eC1wY2giCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlic3RkY3h4 LXRpbWUiCi0JX2FyZ3MrPSIgLS13aXRoLWxpbmtlci1oYXNoLXN0eWxlPWdudSIKLQlfYXJncys9 IiAke19mcHVmbGFnc30iCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19h cmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRf ZG9uZQotfQotCi1kb19idWlsZCgpIHsKLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJp biBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJ bWtkaXIgLXAgJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7X3N5c3Jv b3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke19zeXNyb290fS91c3IvJHtmfSAke19zeXNy b290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtfc3lzcm9vdH0vdXNyL2xpYjMy Ci0JbG4gLXNmIHVzci9saWIgJHtfc3lzcm9vdH0vbGliMzIKLQotCSMgRW5zdXJlIHdlIHVzZSBz YW5lIGVudmlyb25tZW50Ci0JdW5zZXQgQ0MgQ1hYIENQUCBMRCBBUyBBUiBSQU5MSUIgT0JKRFVN UCBSRUFERUxGIE5NCi0JdW5zZXQgQ0ZMQUdTIENYWEZMQUdTIENQUEZMQUdTIExERkxBR1MKLQll eHBvcnQgQ0ZMQUdTPSItT3MiIENYWEZMQUdTPSItT3MiCi0KLQlfYmludXRpbHNfYnVpbGQKLQlf Z2NjX2Jvb3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0JX2dsaWJjX2hlYWRlcnMKLQlfZ2xpYmNf YnVpbGQKLQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVk ZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9 IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0J CQkJJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIg JHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L2xpYjMyCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAk e3dya3NyY30vYmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxs Ci0KLQkjIGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2Ug REVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBz eXNyb290Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19z eXNyb290fS91c3IvbGliCi0KLQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMgZm9yIE1JUFMK LQljZCAke3dya3NyY30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9YXJtIElO U1RBTExfSERSX1BBVEg9JHtERVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxs Ci0Jcm0gLWYgJChmaW5kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUg Lmluc3RhbGwgLW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyL2luY2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwgZ2xpYmMgZm9yIHRhcmdldAot CWNkICR7d3Jrc3JjfS9nbGliYy1idWlsZAotCW1ha2UgaW5zdGFsbF9yb290PSR7REVTVERJUn0v JHtfc3lzcm9vdH0gaW5zdGFsbCBpbnN0YWxsLWhlYWRlcnMKLQotCSMgc3ltbGlua3MgZm9yIGdu YXJsIGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24l LiouKn0KLQlfYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2djY192ZXJzaW9ufS9h ZGFsaWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9 LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7REVTVERJUn0vJHtf YWRhbGlifS9saWJnbmF0LSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci9saWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJnbmFybC5zbwotCWxu IC1zdmYgbGliZ25hdC0ke19tYWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJtIC12ZiAke0RFU1RE SVJ9LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCi0KLQkjIFdlIG5lZWQgdG8gYnVpbGQgbGli YXRvbWljIGluIHRhcmdldCBnY2MgYXMgZ2NjZ28gbmVlZHMgaXQgdG8KLQkjIGJ1aWxkLi4uIGJ1 dCBpdCdzIG5vdCBuZWVkZWQgYXQgcnVudGltZSwgc28gcmVtb3ZlIGl0IGZyb20gdGhlCi0JIyBk ZXN0ZGlyIHNvIGl0IGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCB0aGUgbGliYXRvbWljIHBhY2thZ2UK LQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGliYXRvbWljLioKLQotCSMg UmVtb3ZlIHVubmVjZXNzYXJ5IHN0dWZmCi0Jcm0gLWYgJHtERVNURElSfS91c3IvbGliKi9saWJp YmVydHkuYQotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZQotCXJtIC1yZiAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3tzYmluLGxpYixldGMsdmFyfQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lz cm9vdH0vbGliZXhlYwotfQotCiBjcm9zcy1hcm0tbGludXgtZ251ZWFiaWhmLWxpYmNfcGFja2Fn ZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gZ2xpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKQEAgLTM3 NCw2ICs0Miw2IEBAIGNyb3NzLWFybS1saW51eC1nbnVlYWJpaGYtbGliY19wYWNrYWdlKCkgewog CW5vdmVyaWZ5cmRlcHM9eWVzCiAKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9v dH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIDhjOGNmZjMwMDY3 YWRkZmE3MzI1MWU5NDM4NTQ5NjM5YmFlNWM4MTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMjUgRGVjIDIwMjAgMjE6 MDg6MjcgKzAxMDAKU3ViamVjdDogW1BBVENIIDA3LzI2XSBjcm9zcy1hcm0tbGludXgtbXVzbGVh Ymk6IHJld29yayB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1hcm0tbGludXgt bXVzbGVhYmkvdGVtcGxhdGUgfCAzMDMgKystLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDI4OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2Nyb3NzLWFybS1saW51eC1tdXNsZWFiaS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3Mt YXJtLWxpbnV4LW11c2xlYWJpL3RlbXBsYXRlCmluZGV4IDc0YjhlOGQ0YzExLi4wMmQ3ZGNjODVj OCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtbXVzbGVhYmkvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtbXVzbGVhYmkvdGVtcGxhdGUKQEAgLTEsMjAg KzEsMTkgQEAKLSMgVGVtcGxhdGUgYnVpbGQgZmlsZSBmb3IgJ2Nyb3NzLWFybS1saW51eC1tdXNs ZWFiaScKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFybS1saW51eC1tdXNsZWFiaScK K190cmlwbGV0PWFybS1saW51eC1tdXNsZWFiaQogX2JpbnV0aWxzX3ZlcnNpb249Mi4zMgogX2dj Y192ZXJzaW9uPTkuMy4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNpb249NC4x OQogX2xpYnVjb250ZXh0X3ZlcnNpb249MC45LjAKLQotX3RyaXBsZXQ9YXJtLWxpbnV4LW11c2xl YWJpCi1fZnB1ZmxhZ3M9Ii0td2l0aC1hcmNoPWFybXY1dGUgLS13aXRob3V0LWZwIC0td2l0aC1m bG9hdD1zb2Z0IgotX2FyY2hmbGFncz0iLW1hcmNoPWFybXY1dGUgLW1zb2Z0LWZsb2F0IC1tZmxv YXQtYWJpPXNvZnQiCi1fc3lzcm9vdD0iL3Vzci8ke190cmlwbGV0fSIKLQogcGtnbmFtZT1jcm9z cy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiByZXZpc2lvbj0zCi1zaG9ydF9kZXNjPSJDcm9z cyB0b29sY2hhaW4gZm9yIEFSTXY1IFRFIHRhcmdldCAobXVzbCkiCitidWlsZF9zdHlsZT12b2lk LWNyb3NzCitjb25maWd1cmVfYXJncz0iLS13aXRoLWFyY2g9YXJtdjV0ZSAtLXdpdGgtZmxvYXQ9 c29mdCIKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0 aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBn bXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259 XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7X3Ry aXBsZXR9IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGhv bWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3It bGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKQEAgLTI5LDI5NyArMjgsMjUgQEAgY2hlY2tz dW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4MmU4 YjM2ZTQ3M2VlMDQKICAxMzcwYzlhODEyYjJjZjJhN2Q5MjgwMjUxMGNjYTAwNThjYzM3ZTY2YTdi ZWRkNzAwNTFmMGEzNDAxNTAyMmEzCiAgMGM2OGY1NjU1NTI4YWVkNGY5OWRhZTcxYTViMjU5ZWRj OTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMQogIDBkNTNhNDE1YTMwN2VmMTc1MTUzYmJl NjBhNTcyYzk0MGE5MjJjYjczNmNlMTM1MzBiNjY2ZTdlYzI3OTVkNjgiCi0KLWxpYjMyZGlzYWJs ZWQ9eWVzCiBub2Nyb3NzPXllcwotbm9waWU9eWVzCi1ub2RlYnVnPXllcwotY3JlYXRlX3dya3Ny Yz15ZXMKIAotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBw eXRob24zIgotbWFrZWRlcGVuZHM9InpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwgbGli bXBjLWRldmVsIGlzbDE1LWRldmVsIgotbm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxp YmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEg bGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21lbS5hIgotZGVwZW5kcz0iJHtwa2duYW1lfS1s aWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citj cm9zc19saWJ1Y29udGV4dF9hcmNoPWFybQorY3Jvc3NfbGludXhfYXJjaD1hcm0KK2Nyb3NzX2Jp bnV0aWxzX2NvbmZpZ3VyZV9hcmdzPSItLXdpdGhvdXQtZnAiCitjcm9zc19tdXNsX2NmbGFncz0i LU9zIC1tYXJjaD1hcm12NXRlIC1tc29mdC1mbG9hdCAtbWZsb2F0LWFiaT1zb2Z0IgogCiBpZiBb ICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAiYXJtdjV0ZWwtbXVzbCIgXTsgdGhlbgogCWJyb2tl bj0iQ2FuJ3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxmIgogZmkKIAotX2FwcGx5X3Bh dGNoKCkgewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBb ICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0J CXRvdWNoIC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2JpbnV0aWxzX2J1aWxkKCkgewotCWxv Y2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZSBdICYmIHJl dHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBiaW51 dGlscyBib290c3RyYXBcbiIKLQotCVsgISAtZCBiaW51dGlscy1idWlsZCBdICYmIG1rZGlyIGJp bnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0vdXNy IgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNy b290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLXdpdGgtc3lzdGVtLXpsaWIiCi0JX2FyZ3Mr PSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0vY29u ZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1ob3N0ICYmIG1ha2UgJHttYWtlam9i c30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9u ZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3Ny Y30vLmdjY19ib290c3RyYXBfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vZ2Nj LSR7X2djY192ZXJzaW9ufQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9wYXRjaGVz LyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCWRvbmUKLQlmb3IgZiBpbiAk e1hCUFNfU1JDUEtHRElSfS9nY2MvZmlsZXMvKi1tdXNsLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0 Y2ggLXAxICIkZiIKLQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgYm9v dHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYmIG1rZGlyIC4uL2djYy1i b290c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIK LQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9v dD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLXdpdGgtbmV3bGliIgotCV9hcmdzKz0iIC0tZW5h YmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtdGhyZWFkcyIKLQlfYXJncys9 IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZs YXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp YmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKLQlfYXJncys9IiBsaWJhdF9j dl9oYXZlX2lmdW5jPW5vIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCUNGTEFHUz0iLU8w IC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwKLQkJLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25m aWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRv dWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19Ci0KLV9saW51eF9oZWFkZXJzKCkg ewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNk ICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IEFQSSBoZWFkZXJzIGZvciBB Uk1cbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NS Q1BLR0RJUn0va2VybmVsLWxpYmMtaGVhZGVycy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBs eV9wYXRjaCAtcDAgJGYKLQlkb25lCi0KLQltYWtlIEFSQ0g9YXJtIGhlYWRlcnNfY2hlY2sKLQlt YWtlIEFSQ0g9YXJtIElOU1RBTExfSERSX1BBVEg9JHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5z dGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lCi19Ci0KLV9tdXNsX2J1 aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAot Ci0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxk aW5nIGNyb3NzIG11c2wgbGliY1xuIgotCi0JIyBBcHBseSBtdXNsIHBhdGNoZXMgaWYgdGhlcmUg YXJlIGFueQotCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0Y2hlcyIgXTsgdGhl bgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMvKi5wYXRjaDsgZG8K LQkJCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCQlkb25lCi0JZmkKLQotCUNDPSIke190cmlwbGV0 fS1nY2MiIENGTEFHUz0iLU9zIC1waXBlIC1mUElDICR7X2FyY2hmbGFnc30iIFwKLQkJLi9jb25m aWd1cmUgLS1wcmVmaXg9L3VzcgotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgREVTVERJUj0k e19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLm11c2xfYnVpbGRfZG9uZQot fQotCi1fbGlidWNvbnRleHRfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpYnVjb250ZXh0 X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2xpYnVjb250ZXh0LSR7 X2xpYnVjb250ZXh0X3ZlcnNpb259Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbGlidWNv bnRleHRcbiIKLQotCSMgaXQncyBvayBpZiB3ZSdyZSBzdGF0aWMgb25seSBoZXJlCi0JQ0M9IiR7 X3RyaXBsZXR9LWdjYyIgQVI9IiR7X3RyaXBsZXR9LWFyIiBBUz0iJHtfdHJpcGxldH0tYXMiIFwK LQkJQ0ZMQUdTPSItT3MgLXBpcGUgJHtfYXJjaGZsYWdzfSIgXAotCQltYWtlIEFSQ0g9YXJtIGxp YnVjb250ZXh0LmEKLQotCWNwIGxpYnVjb250ZXh0LmEgJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0J dG91Y2ggJHt3cmtzcmN9Ly5saWJ1Y29udGV4dF9idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQo KSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYm IHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBn Y2MgZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQlj ZCBnY2MtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZXhl Y2Rpcj0vdXNyL2xpYiIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9 IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFn ZXM9YyxhZGEsYysrLG9iamMsb2JqLWMrKyxnbyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLWVu YWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxl LWRlZmF1bHQtcGllIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtc3NwIgotCV9hcmdzKz0i IC0tZW5hYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZW5hYmxlLXNo YXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKLQlfYXJncys9IiBsaWJhdF9jdl9o YXZlX2lmdW5jPW5vIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2djYy0ke19nY2Nf dmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0KLQl0b3Vj aCAke3dya3NyY30vLmdjY19idWlsZF9kb25lCi19Ci0KLWRvX2J1aWxkKCkgewotCSMgRW5zdXJl IHdlIHVzZSBzYW5lIGVudmlyb25tZW50Ci0JdW5zZXQgQ0MgQ1hYIENQUCBMRCBBUyBBUiBSQU5M SUIgT0JKRFVNUCBSRUFERUxGIE5NCi0JdW5zZXQgQ0ZMQUdTIENYWEZMQUdTIENQUEZMQUdTIExE RkxBR1MKLQlleHBvcnQgQ0ZMQUdTPSItT3MgLXBpcGUiIENYWEZMQUdTPSItT3MgLXBpcGUiCi0K LQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQg JHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtfc3lzcm9vdH0vdXNy LyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4g LXNmciAke19zeXNyb290fS91c3IvJHtmfSAke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQot CWxuIC1zZiBsaWIgJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtfc3lz cm9vdH0vbGliMzIKLQotCV9iaW51dGlsc19idWlsZAotCV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4 X2hlYWRlcnMKLQlfbXVzbF9idWlsZAotCV9saWJ1Y29udGV4dF9idWlsZAotCV9nY2NfYnVpbGQK LX0KLQotZG9faW5zdGFsbCgpIHsKLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBz YmluOyBkbwotCQlpZiBbICEgLWQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBdOyB0 aGVuCi0JCQlta2RpciAtcCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0J CWlmIFsgISAtaCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNm ciAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGli MzIKLQotCSMgaW5zdGFsbCBsaW51eCBBUEkgaGVhZGVycwotCWNkICR7d3Jrc3JjfS9saW51eC0k e19saW51eF92ZXJzaW9ufQotCW1ha2UgQVJDSD1hcm0gSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5p bnN0YWxsLmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9k cm0KLQotCSMgaW5zdGFsbCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGlscy1i dWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBjcm9z cyBnY2MKLQljZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0g aW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RFU1RE SVJ9L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQot CSMgaW5zdGFsbCBtdXNsIGxpYmMgZm9yIHRhcmdldAotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211 c2xfdmVyc2lvbn0KLQltYWtlIERFU1RESVI9JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0YWxs Ci0KLQkjIFJlbW92ZSB1c2VsZXNzIGhlYWRlcnMuCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL2xp Yi9nY2MvJHtfdHJpcGxldH0vKi9pbmNsdWRlLWZpeGVkLwotCi0JIyBNYWtlIGxkLW11c2wtYXJt LnNvLjEgc3ltbGluayByZWxhdGl2ZS4KLQlsbiAtc2YgbGliYy5zbyAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci9saWIvbGQtbXVzbC1hcm0uc28uMQotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwg YW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4q fQotCV9hZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxp YgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28g JHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFs aWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xp YgotCWxuIC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2 ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0v JHtfYWRhbGlifS9saWJnbmF7cmwsdH0uc28KLQotCSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9t aWMgaW4gdGFyZ2V0IGdjYyBhcyBnY2NnbyBuZWVkcyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0 J3Mgbm90IG5lZWRlZCBhdCBydW50aW1lLCBzbyByZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3Rk aXIgc28gaXQgZG9lc24ndCBjb25mbGljdCB3aXRoIHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJt IC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1v dmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0 eS5hCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtf c3lzcm9vdH0ve2V0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tz YmluLHNoYXJlLGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVj Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWIvKi5weQotCXJtIC1yZiAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L3tzYmluLGxpYn0KLX0KLQogY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJp LWxpYmNfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gbGliYyBmaWxlcyIKIAlub3N0cmlw PXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMKIAlub3ZlcmlmeXJkZXBzPXllcworCiAJcGtnX2lu c3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9CisJCXZtb3ZlIHVzci8ke2Nyb3NzX3RyaXBs ZXR9CiAJfQogfQoKRnJvbSBmNjBmMWRiMWFjMDI1NDA4MTAxMjYxZWU3NGFmZWYzYWZiY2YyZTNk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBGcmksIDI1IERlYyAyMDIwIDIxOjA4OjM5ICswMTAwClN1YmplY3Q6IFtQQVRDSCAw OC8yNl0gY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpaGY6IHJld29yayB3aXRoIHZvaWQtY3Jvc3MK Ci0tLQogc3JjcGtncy9jcm9zcy1hcm0tbGludXgtbXVzbGVhYmloZi90ZW1wbGF0ZSB8IDMwMSAr LS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDI4 NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1tdXNs ZWFiaWhmL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtbXVzbGVhYmloZi90ZW1w bGF0ZQppbmRleCA5MmUyNWY0OWU0Ny4uM2EwMmJkN2M1OTYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Y3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpaGYvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1h cm0tbGludXgtbXVzbGVhYmloZi90ZW1wbGF0ZQpAQCAtMSwyMCArMSwxOSBAQAotIyBUZW1wbGF0 ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpaGYnCi0jCisjIFRlbXBs YXRlIGZpbGUgZm9yICdjcm9zcy1hcm0tbGludXgtbXVzbGVhYmloZicKK190cmlwbGV0PWFybS1s aW51eC1tdXNsZWFiaWhmCiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4z LjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj00LjE5CiBfbGlidWNvbnRl eHRfdmVyc2lvbj0wLjkuMAotCi1fdHJpcGxldD1hcm0tbGludXgtbXVzbGVhYmloZgotX2ZwdWZs YWdzPSItLXdpdGgtYXJjaD1hcm12NiAtLXdpdGgtZnB1PXZmcCAtLXdpdGgtZmxvYXQ9aGFyZCIK LV9hcmNoZmxhZ3M9Ii1tYXJjaD1hcm12NiAtbWZwdT12ZnAgLW1mbG9hdC1hYmk9aGFyZCIKLV9z eXNyb290PSIvdXNyLyR7X3RyaXBsZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2 ZXJzaW9uPTAuMzMKIHJldmlzaW9uPTMKLXNob3J0X2Rlc2M9IkNyb3NzIHRvb2xjaGFpbiBmb3Ig QVJNdjYgTEUgSGFyZCBGbG9hdCB0YXJnZXQgKG11c2wpIgorYnVpbGRfc3R5bGU9dm9pZC1jcm9z cworY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNoPWFybXY2IC0td2l0aC1mcHU9dmZwIC0td2l0 aC1mbG9hdD1oYXJkIgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXgg cGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGli LWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBm b3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5v cmc+IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlUIgpAQCAtMjksMjk2ICsyOCwyNCBA QCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2 NDQ2YzgyZThiMzZlNDczZWUwNAogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNj MzdlNjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFh NWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExCiAgMGQ1M2E0MTVhMzA3ZWYx NzUxNTNiYmU2MGE1NzJjOTQwYTkyMmNiNzM2Y2UxMzUzMGI2NjZlN2VjMjc5NWQ2OCIKLQotbGli MzJkaXNhYmxlZD15ZXMKIG5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVidWc9eWVzCi1jcmVh dGVfd3Jrc3JjPXllcwogCi1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxl eCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1k ZXZlbCBsaWJtcGMtZGV2ZWwgaXNsMTUtZGV2ZWwiCi1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2lu Z2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19laC5hCi0gbGliZ25hcmxfcGljLmEgbGli Z25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQuYSBsaWJnbWVtLmEiCi1kZXBlbmRzPSIke3Br Z25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK2Nyb3NzX3RyaXBsZXQ9JHtfdHJp cGxldH0KK2Nyb3NzX2xpYnVjb250ZXh0X2FyY2g9YXJtCitjcm9zc19saW51eF9hcmNoPWFybQor Y3Jvc3NfbXVzbF9jZmxhZ3M9Ii1PcyAtbWFyY2g9YXJtdjYgLW1mcHU9dmZwIC1tZmxvYXQtYWJp PWhhcmQiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJhcm12NmwtbXVzbCIgXTsg dGhlbgogCWJyb2tlbj0iQ2FuJ3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxmIgogZmkK IAotX2FwcGx5X3BhdGNoKCkgewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAk MikiCi0KLQlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNoIC1OICRh cmdzIC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2JpbnV0aWxzX2J1 aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRf ZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGlu ZyBjcm9zcyBiaW51dGlscyBib290c3RyYXBcbiIKLQotCVsgISAtZCBiaW51dGlscy1idWlsZCBd ICYmIG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQotCV9hcmdzPSIt LXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0i IC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3Ii Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLXdpdGgtc3lzdGVtLXps aWIiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vYmludXRpbHMtJHtfYmludXRpbHNf dmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1ob3N0ICYmIG1h a2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uYmludXRp bHNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2NhbCBfYXJncwotCi0J WyAtZiAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAk e3dya3NyY30vZ2NjLSR7X2djY192ZXJzaW9ufQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9 L2djYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCWRvbmUK LQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvZmlsZXMvKi1tdXNsLnBhdGNoOyBkbwot CQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBj cm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYmIG1r ZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQlfYXJncz0iLS1w cmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAt LXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLXdpdGgtbmV3bGliIgotCV9h cmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtdGhyZWFk cyIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKLQlfYXJn cys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQot CUNGTEFHUz0iLU8wIC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwKLQkJLi4vZ2NjLSR7X2djY192 ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGlu c3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19Ci0KLV9saW51 eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0gJiYgcmV0 dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IEFQSSBo ZWFkZXJzIGZvciBBUk1cbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0JZm9yIGYg aW4gJHtYQlBTX1NSQ1BLR0RJUn0va2VybmVsLWxpYmMtaGVhZGVycy9wYXRjaGVzLyoucGF0Y2g7 IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgJGYKLQlkb25lCi0KLQltYWtlIEFSQ0g9YXJtIGhlYWRl cnNfY2hlY2sKLQltYWtlIEFSQ0g9YXJtIElOU1RBTExfSERSX1BBVEg9JHtfc3lzcm9vdH0vdXNy IGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lCi19 Ci0KLV9tdXNsX2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUgXSAm JiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1zZ19u b3JtYWwgIkJ1aWxkaW5nIGNyb3NzIG11c2wgbGliY1xuIgotCi0JIyBBcHBseSBtdXNsIHBhdGNo ZXMgaWYgdGhlcmUgYXJlIGFueQotCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0 Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMv Ki5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCQlkb25lCi0JZmkKLQotCUND PSIke190cmlwbGV0fS1nY2MiIENGTEFHUz0iLU9zIC1waXBlIC1mUElDICR7X2FyY2hmbGFnc30i IFwKLQkJLi9jb25maWd1cmUgLS1wcmVmaXg9L3VzcgotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1h a2UgREVTVERJUj0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLm11c2xf YnVpbGRfZG9uZQotfQotCi1fbGlidWNvbnRleHRfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30v LmxpYnVjb250ZXh0X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2xp YnVjb250ZXh0LSR7X2xpYnVjb250ZXh0X3ZlcnNpb259Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcg Y3Jvc3MgbGlidWNvbnRleHRcbiIKLQotCSMgaXQncyBvayBpZiB3ZSdyZSBzdGF0aWMgb25seSBo ZXJlCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQVI9IiR7X3RyaXBsZXR9LWFyIiBBUz0iJHtfdHJp cGxldH0tYXMiIFwKLQkJQ0ZMQUdTPSItT3MgLXBpcGUgJHtfYXJjaGZsYWdzfSIgXAotCQltYWtl IEFSQ0g9YXJtIGxpYnVjb250ZXh0LmEKLQotCWNwIGxpYnVjb250ZXh0LmEgJHtfc3lzcm9vdH0v dXNyL2xpYgotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saWJ1Y29udGV4dF9idWlsZF9kb25lCi19Ci0K LV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2J1aWxk X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRp bmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0gJiYgbWtkaXIgZ2Nj LWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9 IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0i Ci0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1lbmFi bGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyssZ28sZm9ydHJhbixsdG8iCi0JX2Fy Z3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJncys9 IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIK LQlfYXJncys9IiAtLWVuYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0 aXplciIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAt LWVuYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3MrPSIg bGliYXRfY3ZfaGF2ZV9pZnVuYz1ubyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9n Y2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2Jz fQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQotfQotCi1kb19idWlsZCgpIHsK LQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVudAotCXVuc2V0IENDIENYWCBDUFAgTEQg QVMgQVIgUkFOTElCIE9CSkRVTVAgUkVBREVMRiBOTQotCXVuc2V0IENGTEFHUyBDWFhGTEFHUyBD UFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIC1waXBlIiBDWFhGTEFHUz0iLU9z IC1waXBlIgotCi0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJ aWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5 c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290fS8ke2Z9IF07IHRo ZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlm aQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3Iv bGliICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jvb3RzdHJh cAotCV9saW51eF9oZWFkZXJzCi0JX211c2xfYnVpbGQKLQlfbGlidWNvbnRleHRfYnVpbGQKLQlf Z2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGli ZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy LyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtm fQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRoZW4K LQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtERVNU RElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNURElS fS8ke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L2xpYjMyCi0KLQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMKLQljZCAke3dya3Ny Y30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9YXJtIElOU1RBTExfSERSX1BB VEg9JHtERVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYgJChm aW5kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3RhbGwgLW9y IC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy L2luY2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3NyY30v YmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIGlu c3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJUj0k e0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290Ci0J bXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290fS91 c3IvbGliCi0KLQkjIGluc3RhbGwgbXVzbCBsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3NyY30v bXVzbC0ke19tdXNsX3ZlcnNpb259Ci0JbWFrZSBERVNURElSPSR7REVTVERJUn0vJHtfc3lzcm9v dH0gaW5zdGFsbAotCi0JIyBSZW1vdmUgdXNlbGVzcyBoZWFkZXJzLgotCXJtIC1yZiAke0RFU1RE SVJ9L3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyovaW5jbHVkZS1maXhlZC8KLQotCSMgTWFrZSBs ZC1tdXNsLWFybWhmLnNvLjEgc3ltbGluayByZWxhdGl2ZS4KLQlsbiAtc2YgbGliYy5zbyAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGQtbXVzbC1hcm1oZi5zby4xCi0KLQkjIHN5bWxp bmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2dj Y192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2Nf dmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7 X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RF U1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19z eXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25h cmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAt dmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRv IGJ1aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBi dWlsZC4uLiBidXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9t IHRoZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21p YyBwYWNrYWdlCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21p Yy4qCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNy L2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYg JHtERVNURElSfS8ke19zeXNyb290fS97ZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8ke19z eXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L2xpYmV4ZWMKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYi8qLnB5Ci0J cm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3NiaW4sbGlifQotfQotCiBjcm9zcy1hcm0t bGludXgtbXVzbGVhYmloZi1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGxpYmMg ZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlub3NobGlicHJvdmlkZXM9eWVzCiAJbm92ZXJpZnlyZGVw cz15ZXMKKwogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1 c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gZDkwMDliODgxMWQ2MWVmMGFhZWFjNzRl NTE2ZTZhYmJlN2I1OTFlMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogRnJpLCAyNSBEZWMgMjAyMCAyMTozNjozMyArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMDkvMjZdIGNyb3NzLWFybXY3bC1saW51eC1nbnVlYWJpaGY6IHJld29y ayB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1hcm12N2wtbGludXgtZ251ZWFi aWhmL3RlbXBsYXRlIHwgMzYyICstLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE1 IGluc2VydGlvbnMoKyksIDM0NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Ny b3NzLWFybXY3bC1saW51eC1nbnVlYWJpaGYvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLWFybXY3 bC1saW51eC1nbnVlYWJpaGYvdGVtcGxhdGUKaW5kZXggOTY5NjY5N2RjZWIuLmQ1OWQ5ZDExOTI5 IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLWFybXY3bC1saW51eC1nbnVlYWJpaGYvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9jcm9zcy1hcm12N2wtbGludXgtZ251ZWFiaWhmL3RlbXBsYXRlCkBA IC0xLDM3OSArMSw0NyBAQAotIyBUZW1wbGF0ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3MtYXJtdjds LWxpbnV4LWdudWVhYmloZicKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFybXY3bC1s aW51eC1nbnVlYWJpaGYnCitfdHJpcGxldD1hcm12N2wtbGludXgtZ251ZWFiaWhmCiBfYmludXRp bHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9nbGliY192ZXJzaW9uPTIuMzAK IF9saW51eF92ZXJzaW9uPTQuMTkKLQotX3RyaXBsZXQ9YXJtdjdsLWxpbnV4LWdudWVhYmloZgot X2ZwdWZsYWdzPSItLXdpdGgtYXJjaD1hcm12Ny1hIC0td2l0aC1mcHU9dmZwdjMgLS13aXRoLWZs b2F0PWhhcmQiCi1fYXJjaGZsYWdzPSItbWFyY2g9YXJtdjctYSAtbWZwdT12ZnB2MyAtbWZsb2F0 LWFiaT1oYXJkIgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi0KIHBrZ25hbWU9Y3Jvc3Mt JHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249Mgotc2hvcnRfZGVzYz0iR05VIENy b3NzIHRvb2xjaGFpbiBmb3IgdGhlICR7X3RyaXBsZXR9IExFIHRhcmdldCAoYmludXRpbHMvZ2Nj L2dsaWJjKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSItLXdpdGgt YXJjaD1hcm12Ny1hIC0td2l0aC1mcHU9dmZwdjMgLS13aXRoLWZsb2F0PWhhcmQiCitob3N0bWFr ZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVw ZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnIt ZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIK K3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50 YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCi1ob21lcGFnZT0iaHR0cHM6 Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4w LW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKK2hvbWVwYWdlPSJodHRwczovL3d3dy52b2lk bGludXgub3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMt JHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2Nf dmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKLSBodHRwOi8vZnRwLmdudS5vcmcv Z251L2dsaWJjL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259LnRhci54egorICR7R05VX1NJVEV9L2ds aWJjL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259LnRhci54egogICR7S0VSTkVMX1NJVEV9L2tlcm5l bC92NC54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54eiIKIGNoZWNrc3VtPSIwYWI2YzU1 ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJlOGIzNmU0NzNlZTA0 CiAgNzFlMTk3ODY3NjExZjYwNTRhYTExMTliMTNhMGMwYWJhYzEyODM0NzY1ZmUyZDgxZjM1YWM1 N2Y4NGY3NDJkMQogIGUyYzQxMTRlNTY5YWZiZTdlZGJjMjkxMzFhNDNiZTgzMzg1MGFiOWE0NTlk ODFiZWIyNTg4MDE2ZDJiYmI4YWYKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIyNTllZGM5 MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgotCi1saWIzMmRpc2FibGVkPXllcwogbm9j cm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCiAKLWhv c3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1h a2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCIKLWRlcGVuZHM9 IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igotbm9zdHJpcF9maWxlcz0i bGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQotIGxpYmduYXJs X3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21lbS5hIgotCi1p ZiBbICIkWEJQU19UQVJHRVRfTElCQyIgIT0gImdsaWJjIiBdOyB0aGVuCi0JYnJva2VuPSJnbGli YyBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBvbiBnbGliYyIKLWZpCitjcm9zc190cmlw bGV0PSR7X3RyaXBsZXR9Citjcm9zc19saW51eF9hcmNoPWFybQorY3Jvc3NfZ2xpYmNfY2ZsYWdz PSItTzIgLW1hcmNoPWFybXY3LWEgLW1mcHU9dmZwdjMgLW1mbG9hdC1hYmk9aGFyZCIKIAogaWYg WyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gImFybXY3bCIgXTsgdGhlbgogCWJyb2tlbj0iQ2Fu J3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxmIgogZmkKIAotX2FwcGx5X3BhdGNoKCkg ewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEgLWYg Ii4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRvdWNo IC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dy a3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0J bXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhlYWRlcnMgZm9yIEFSTVxuIgotCi0JY2Qg bGludXgtJHtfbGludXhfdmVyc2lvbn0KLQotCW1ha2UgQVJDSD1hcm0gaGVhZGVyc19jaGVjawot CW1ha2UgQVJDSD1hcm0gSU5TVEFMTF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVyc19p bnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX2JpbnV0 aWxzX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNf YnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJC dWlsZGluZyBjcm9zcyBiaW51dGlsc1xuIgotCVsgISAtZCBiaW51dGlscy1idWlsZCBdICYmIG1r ZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQotCV9hcmdzPSItLXByZWZp eD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0 aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLXdpdGgtc3lzdGVtLXpsaWIiCi0K LQkuLi9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQot CW1ha2UgY29uZmlndXJlLWhvc3QKLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0K LQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3Ry YXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2Rv bmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlm b3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBw bHlfcGF0Y2ggLXAwICIkZiIKLQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBn Y2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYmIG1rZGlyIC4u L2djYy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQlfYXJncz0iLS1wcmVmaXg9 L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGhv dXQtaGVhZGVycyIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliaXRt IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXRo cmVhZHMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLXNqbGotZXhjZXB0aW9ucyIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2Fy Z3MrPSIgLS13aXRoLWdudS1sZCIKLQlfYXJncys9IiAtLXdpdGgtZ251LWFzIgotCV9hcmdzKz0i ICR7X2ZwdWZsYWdzfSIKLQotCUNGTEFHUz0iLU8wIC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwK LQkJLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHtt YWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJh cF9kb25lCi19Ci0KLV9nbGliY19oZWFkZXJzKCkgewotCWxvY2FsIF9hcmdzIGYKLQotCVsgLWYg JHt3cmtzcmN9Ly5nbGliY19oZWFkZXJzX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtz cmN9L2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0v Z2xpYmMvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nbGli Yy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQkJZG9uZQot CWZpCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnbGliYyBo ZWFkZXJzXG4iCi0KLQlbICEgLWQgZ2xpYmMtaGVhZGVycyBdICYmIG1rZGlyIGdsaWJjLWhlYWRl cnMKLQljZCBnbGliYy1oZWFkZXJzCi0KLQllY2hvICJsaWJjX2N2X2ZvcmNlZF91bndpbmQ9eWVz IiA+IGNvbmZpZy5jYWNoZQotCWVjaG8gImxpYmNfY3ZfY19jbGVhbnVwPXllcyIgPj4gY29uZmln LmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBsZXR9LWdjYyIgTEQ9IiR7X3RyaXBsZXR9LWxk IiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIke190cmlwbGV0fS1jcHAiCi0KLQlfYXJn cz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2FyZ3Mr PSIgLS13aXRoLWhlYWRlcnM9JHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIgLS1j b25maWctY2FjaGUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdzKz0i IC0tZW5hYmxlLW9ic29sZXRlLW5zbCIKLQlfYXJncys9IiAtLWVuYWJsZS1rZXJuZWw9Mi42LjI3 IgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259 L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAtayBpbnN0YWxsLWhlYWRlcnMgY3Jvc3NfY29t cGlsaW5nPXllcyBcCi0JCWluc3RhbGxfcm9vdD0ke19zeXNyb290fQotCi0JdG91Y2ggJHt3cmtz cmN9Ly5nbGliY19oZWFkZXJzX2RvbmUKLX0KLQotX2dsaWJjX2J1aWxkKCkgewotCWxvY2FsIF9h cmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2xpYmNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0K LQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnbGliY1xuIgotCi0J WyAhIC1kIGdsaWJjLWJ1aWxkIF0gJiYgbWtkaXIgZ2xpYmMtYnVpbGQKLQljZCBnbGliYy1idWls ZAotCi0JZWNobyAic2xpYmRpcj0vdXNyL2xpYjMyIiA+IGNvbmZpZ3Bhcm1zCi0KLQllY2hvICJs aWJjX2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQotCWVjaG8gImxpYmNfY3Zf Y19jbGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBsZXR9 LWdjYyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIk e190cmlwbGV0fS1jcHAiCi0JZXhwb3J0IENGTEFHUz0iLU9zIC1waXBlICR7X2FyY2hmbGFnc30i Ci0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmRpcj0vdXNyL2xpYjMy IgotCV9hcmdzKz0iIC0taG9zdD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtaGVhZGVy cz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIKLQlfYXJncys9IiAtLWNvbmZpZy1jYWNoZSIKLQlf YXJncys9IiAtLWRpc2FibGUtcHJvZmlsZSIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1y cGMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQlfYXJncys9IiAk e19mcHVmbGFnc30iCi0KLQkuLi9nbGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtf YXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGxfcm9vdD0ke19zeXNyb290 fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUKLX0KLQotX2dj Y19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19idWlsZF9k b25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdjYy1i dWlsZAotCWNkIGdjYy1idWlsZAotCi0JdW5zZXQgTEQgQVMgQ1BQCi0JZXhwb3J0IENDPSJnY2Mi IENGTEFHUz0iLU9zIC1waXBlIgotCi0JIyBNYWtlIHRoaXMgbGluayB0byB0YXJnZXQgbGlicy4K LQlpZiBbICEgLWYgLnNlZF9zdWJzdF9kb25lIF07IHRoZW4KLQkJc2VkIC1lICJzLCAvbGliLywg JHtfc3lzcm9vdH0vbGliLyxnO3MsIC91c3IvbGliLywgJHtfc3lzcm9vdH0vdXNyL2xpYi8sZyIg XAotCQkJLWkgJHtfc3lzcm9vdH0vbGliL2xpYmMuc28KLQkJc2VkIC1lICJzLCAvbGliMzIvLCAk e19zeXNyb290fS9saWIzMi8sZztzLCAvdXNyL2xpYjMyLywgJHtfc3lzcm9vdH0vdXNyL2xpYjMy LyxnIiBcCi0JCQktaSAke19zeXNyb290fS9saWIvbGliYy5zbwotCQl0b3VjaCAuc2VkX3N1YnN0 X2RvbmUKLQlmaQotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVj ZGlyPS91c3IvbGliIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0i IC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdl cz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGdvLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0td2l0 aC1nbnUtYXMiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1sZCIKLQlfYXJncys9IiAtLWRpc2FibGUt bXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2FyZ3MrPSIg LS1lbmFibGUtdGhyZWFkcz1wb3NpeCIKLQlfYXJncys9IiAtLWVuYWJsZS1sb25nLWxvbmd4Igot CV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWVuYWJsZS1saW5rZXItYnVp bGQtaWQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZ251LXVuaXF1ZS1vYmplY3QiCi0JX2FyZ3MrPSIg LS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAtLWVu YWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJn cys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIK LQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRm bGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWxpYmNpbGtydHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAt LWRpc2FibGUtbGlidnR2IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzdGRjeHgtcGNoIgotCV9h cmdzKz0iIC0tZW5hYmxlLWxpYnN0ZGN4eC10aW1lIgotCV9hcmdzKz0iIC0td2l0aC1saW5rZXIt aGFzaC1zdHlsZT1nbnUiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vZ2NjLSR7X2dj Y192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRv dWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JZm9yIGYg aW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jv b3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0J CWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtf c3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2Yg bGliICR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xp YjMyCi0KLQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVudAotCXVuc2V0IENDIENYWCBD UFAgTEQgQVMgQVIgUkFOTElCIE9CSkRVTVAgUkVBREVMRiBOTQotCXVuc2V0IENGTEFHUyBDWFhG TEFHUyBDUFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIiBDWFhGTEFHUz0iLU9z IgotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVhZGVycwot CV9nbGliY19oZWFkZXJzCi0JX2dsaWJjX2J1aWxkCi0JX2djY19idWlsZAotfQotCi1kb19pbnN0 YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlm IFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGly IC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0v JHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQot CQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjMy Ci0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWIzMgotCi0JIyBpbnN0 YWxsIGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBE RVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7 d3Jrc3JjfS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkj IG1vdmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9s aWJjYzEuc28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIGxp bnV4IEFQSSBoZWFkZXJzIGZvciBNSVBTCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3Zl cnNpb259Ci0JbWFrZSBBUkNIPWFybSBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21k KQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBp bnN0YWxsIGdsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3NyY30vZ2xpYmMtYnVpbGQKLQltYWtl IGluc3RhbGxfcm9vdD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwgaW5zdGFsbC1oZWFk ZXJzCi0KLQkjIHN5bWxpbmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0J X21ham9ydmVyPSR7X2djY192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190 cmlwbGV0fS8ke19nY2NfdmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFs aWJ9L2xpYmduYXJsLSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9s aWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28g JHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpv cnZlcn0uc28gbGliZ25hcmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxp YmduYXQuc28KLQlybSAtdmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwot Ci0JIyBXZSBuZWVkIHRvIGJ1aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5l ZWRzIGl0IHRvCi0JIyBidWlsZC4uLiBidXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNv IHJlbW92ZSBpdCBmcm9tIHRoZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdp dGggdGhlIGxpYmF0b21pYyBwYWNrYWdlCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS91 c3IvbGliL2xpYmF0b21pYy4qCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1m ICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Iv c2hhcmUKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWIsZXRjLHZhcn0K LQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30K LQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLX0KLQogY3Jvc3MtYXJtdjds LWxpbnV4LWdudWVhYmloZi1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGdsaWJj IGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJbm9zaGxpYnByb3ZpZGVzPXllcwogCW5vdmVyaWZ5cmRl cHM9eWVzCisKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1vdmUg dXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIGE3Y2I5NjJlMGVjNzcyNWQ1ZjliMWEz ZDIxNDEyYWFjMDIxNTg5YmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMjUgRGVjIDIwMjAgMjE6Mzg6NDQgKzAxMDAK U3ViamVjdDogW1BBVENIIDEwLzI2XSBjcm9zcy1hcm12N2wtbGludXgtbXVzbGVhYmloZjogcmV3 b3JrIHdpdGggdm9pZC1jcm9zcwoKLS0tCiAuLi4vY3Jvc3MtYXJtdjdsLWxpbnV4LW11c2xlYWJp aGYvdGVtcGxhdGUgICAgfCAzMDQgKy0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MTQgaW5zZXJ0aW9ucygrKSwgMjkwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Y3Jvc3MtYXJtdjdsLWxpbnV4LW11c2xlYWJpaGYvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLWFy bXY3bC1saW51eC1tdXNsZWFiaWhmL3RlbXBsYXRlCmluZGV4IDU1ZTM0NWI1Y2MxLi5mZWRmNjE2 ZDhiMSAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hcm12N2wtbGludXgtbXVzbGVhYmloZi90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLWFybXY3bC1saW51eC1tdXNsZWFiaWhmL3RlbXBs YXRlCkBAIC0xLDIwICsxLDE5IEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1h cm12N2wtbGludXgtbXVzbGVhYmloZicKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFy bXY3bC1saW51eC1tdXNsZWFiaWhmJworX3RyaXBsZXQ9YXJtdjdsLWxpbnV4LW11c2xlYWJpaGYK IF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX211c2xfdmVyc2lv bj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTQuMTkKIF9saWJ1Y29udGV4dF92ZXJzaW9uPTAuOS4w Ci0KLV90cmlwbGV0PWFybXY3bC1saW51eC1tdXNsZWFiaWhmCi1fZnB1ZmxhZ3M9Ii0td2l0aC1h cmNoPWFybXY3LWEgLS13aXRoLWZwdT12ZnB2MyAtLXdpdGgtZmxvYXQ9aGFyZCIKLV9hcmNoZmxh Z3M9Ii1tYXJjaD1hcm12Ny1hIC1tZnB1PXZmcHYzIC1tZmxvYXQtYWJpPWhhcmQiCi1fc3lzcm9v dD0iL3Vzci8ke190cmlwbGV0fSIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lv bj0wLjMzCiByZXZpc2lvbj0zCi1zaG9ydF9kZXNjPSJDcm9zcyB0b29sY2hhaW4gZm9yIEFSTXY3 IExFIEhhcmQgRmxvYXQgdGFyZ2V0IChtdXNsKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2Nv bmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1hcm12Ny1hIC0td2l0aC1mcHU9dmZwdjMgLS13aXRo LWZsb2F0PWhhcmQiCitob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBw ZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWIt ZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZv ciAke190cmlwbGV0fSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9y Zz4iCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwt Mi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQiCkBAIC0yOSwyOTkgKzI4LDI0IEBA IGNoZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0 NDZjODJlOGIzNmU0NzNlZTA0CiAgMTM3MGM5YTgxMmIyY2YyYTdkOTI4MDI1MTBjY2EwMDU4Y2Mz N2U2NmE3YmVkZDcwMDUxZjBhMzQwMTUwMjJhMwogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1 YjI1OWVkYzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEKICAwZDUzYTQxNWEzMDdlZjE3 NTE1M2JiZTYwYTU3MmM5NDBhOTIyY2I3MzZjZTEzNTMwYjY2NmU3ZWMyNzk1ZDY4IgotCi1saWIz MmRpc2FibGVkPXllcwogbm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0 ZV93cmtzcmM9eWVzCiAKLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4 IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJ6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRl dmVsIGxpYm1wYy1kZXZlbCBpc2wxNS1kZXZlbCIKLW5vc3RyaXBfZmlsZXM9ImxpYmNhZl9zaW5n bGUuYSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMuYSBsaWJn bmFybC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKLWRlcGVuZHM9IiR7cGtn bmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorY3Jvc3NfdHJpcGxldD0ke190cmlw bGV0fQorY3Jvc3NfbGlidWNvbnRleHRfYXJjaD1hcm0KK2Nyb3NzX2xpbnV4X2FyY2g9YXJtCitj cm9zc19tdXNsX2NmbGFncz0iLU8yIC1tYXJjaD1hcm12Ny1hIC1tZnB1PXZmcHYzIC1tZmxvYXQt YWJpPWhhcmQiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJhcm12N2wtbXVzbCIg XTsgdGhlbgogCWJyb2tlbj0iQ2FuJ3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxmIgog ZmkKIAotX2FwcGx5X3BhdGNoKCkgewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFt ZSAkMikiCi0KLQlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNoIC1O ICRhcmdzIC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2JpbnV0aWxz X2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNfYnVp bGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWls ZGluZyBjcm9zcyBiaW51dGlscyBib290c3RyYXBcbiIKLQotCVsgISAtZCBiaW51dGlscy1idWls ZCBdICYmIG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQotCV9hcmdz PSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdz Kz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJy b3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLXdpdGgtc3lzdGVt LXpsaWIiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vYmludXRpbHMtJHtfYmludXRp bHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1ob3N0ICYm IG1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uYmlu dXRpbHNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2NhbCBfYXJncwot Ci0JWyAtZiAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZSBdICYmIHJldHVybiAwCi0KLQlj ZCAke3dya3NyY30vZ2NjLSR7X2djY192ZXJzaW9ufQotCWZvciBmIGluICR7WEJQU19TUkNQS0dE SVJ9L2djYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCWRv bmUKLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvZmlsZXMvKi1tdXNsLnBhdGNoOyBk bwotCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWlsZGlu ZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYm IG1rZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQlfYXJncz0i LS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9 IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLXdpdGgtbmV3bGliIgot CV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtdGhy ZWFkcyIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRp c2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKLQlf YXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIK LQotCUNGTEFHUz0iLU8wIC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwKLQkJLi4vZ2NjLSR7X2dj Y192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtl IGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19Ci0KLV9s aW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0gJiYg cmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IEFQ SSBoZWFkZXJzIGZvciBBUk1cbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0KLQlm b3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9rZXJuZWwtbGliYy1oZWFkZXJzL3BhdGNoZXMvKi5w YXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAkZgotCWRvbmUKLQotCW1ha2UgQVJDSD1hcm0g aGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD1hcm0gSU5TVEFMTF9IRFJfUEFUSD0ke19zeXNyb290 fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1aWxkX2Rv bmUKLX0KLQotX211c2xfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLm11c2xfYnVpbGRfZG9u ZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3ZlcnNpb259Ci0J bXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbXVzbCBsaWJjXG4iCi0KLQkjIEFwcGx5IG11c2wg cGF0Y2hlcyBpZiB0aGVyZSBhcmUgYW55Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0vbXVz bC9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0 Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JCWRvbmUKLQlmaQot Ci0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQ0ZMQUdTPSItT3MgLXBpcGUgLWZQSUMgJHtfYXJjaGZs YWdzfSIgXAotCQkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyCi0KLQltYWtlICR7bWFrZWpvYnN9 Ci0JbWFrZSBERVNURElSPSR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8u bXVzbF9idWlsZF9kb25lCi19Ci0KLV9saWJ1Y29udGV4dF9idWlsZCgpIHsKLQlbIC1mICR7d3Jr c3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3Ny Y30vbGlidWNvbnRleHQtJHtfbGlidWNvbnRleHRfdmVyc2lvbn0KLQltc2dfbm9ybWFsICJCdWls ZGluZyBjcm9zcyBsaWJ1Y29udGV4dFxuIgotCi0JIyBpdCdzIG9rIGlmIHdlJ3JlIHN0YXRpYyBv bmx5IGhlcmUKLQlDQz0iJHtfdHJpcGxldH0tZ2NjIiBBUj0iJHtfdHJpcGxldH0tYXIiIEFTPSIk e190cmlwbGV0fS1hcyIgXAotCQlDRkxBR1M9Ii1PcyAtcGlwZSAke19hcmNoZmxhZ3N9IiBcCi0J CW1ha2UgQVJDSD1hcm0gbGlidWNvbnRleHQuYQotCi0JY3AgbGlidWNvbnRleHQuYSAke19zeXNy b290fS91c3IvbGliCi0KLQl0b3VjaCAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUK LX0KLQotX2djY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdj Y19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwg IkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1r ZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0J X2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3Ry aXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0i IC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGdvLGZvcnRyYW4sbHRv IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJsZS1sdG8iCi0J X2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVs dC1zc3AiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1s aWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2Fy Z3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12ZXJzIgotCV9h cmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9Igot Ci0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHtt YWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVp bGQoKSB7Ci0JIyBFbnN1cmUgd2UgdXNlIHNhbmUgZW52aXJvbm1lbnQKLQl1bnNldCBDQyBDWFgg Q1BQIExEIEFTIEFSIFJBTkxJQiBPQkpEVU1QIFJFQURFTEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hY RkxBR1MgQ1BQRkxBR1MgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlwZSIgQ1hYRkxB R1M9Ii1PcyAtcGlwZSIKLQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47 IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAt cCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtm fSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7 Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAt c2YgdXNyL2xpYiAke19zeXNyb290fS9saWIzMgotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19i b290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9tdXNsX2J1aWxkCi0JX2xpYnVjb250ZXh0X2J1 aWxkCi0JX2djY19idWlsZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUg bGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBd OyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJ CSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtERVNURElS fS8ke19zeXNyb290fS9saWIzMgotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzCi0JY2Qg JHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPWFybSBJTlNUQUxM X0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCXJt IC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0 YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3 cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAot Ci0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jrc3JjfS9nY2MtYnVpbGQKLQltYWtlIERF U1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNvKiB0byB0aGUgc3lz cm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIG11c2wgbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3 cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9IGluc3RhbGwKLQotCSMgUmVtb3ZlIHVzZWxlc3MgaGVhZGVycy4KLQlybSAtcmYg JHtERVNURElSfS91c3IvbGliL2djYy8ke190cmlwbGV0fS8qL2luY2x1ZGUtZml4ZWQvCi0KLQkj IE1ha2UgbGQtbXVzbC1hcm1oZi5zby4xIHN5bWxpbmsgcmVsYXRpdmUuCi0JbG4gLXNmIGxpYmMu c28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xkLW11c2wtYXJtaGYuc28uMQotCi0J IyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcwotCV9tYWpvcnZl cj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0v JHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJn bmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbXYg LXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJ Un0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNv IGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0LnNv Ci0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0uc28KLQotCSMgV2Ug bmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4gdGFyZ2V0IGdjYyBhcyBnY2NnbyBuZWVkcyBpdCB0 bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5lZWRlZCBhdCBydW50aW1lLCBzbyByZW1vdmUg aXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28gaXQgZG9lc24ndCBjb25mbGljdCB3aXRoIHRoZSBs aWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9s aWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RFU1RE SVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL3NoYXJlCi0J cm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve2V0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVTVERJ Un0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNURElS fS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWIv Ki5weQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3NiaW4sbGlifQotfQotCiBjcm9z cy1hcm12N2wtbGludXgtbXVzbGVhYmloZi1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9 IiAtIGxpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlub3NobGlicHJvdmlkZXM9eWVzCiAJbm92 ZXJpZnlyZGVwcz15ZXMKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0KIAor CXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZy b20gYTI5NjczNGNlMjZhYWY5OTg2MWUzMTZiY2U2MTExZDc2MmU1OWM0OCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogRnJpLCAy NSBEZWMgMjAyMCAyMjo1MTowMSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMjZdIGNyb3NzLWk2 ODYtcGMtbGludXgtZ251OiByZXdvcmsgd2l0aCB2b2lkLWNyb3NzCgotLS0KIHNyY3BrZ3MvY3Jv c3MtaTY4Ni1wYy1saW51eC1nbnUvdGVtcGxhdGUgfCAzNTggKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAzNDMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1pNjg2LXBjLWxpbnV4LWdudS90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvY3Jvc3MtaTY4Ni1wYy1saW51eC1nbnUvdGVtcGxhdGUKaW5kZXggMDU2ZDI1NTMwNDAu Ljc1MDBkOWRhZDczIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLWk2ODYtcGMtbGludXgtZ251 L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtaTY4Ni1wYy1saW51eC1nbnUvdGVtcGxhdGUK QEAgLTEsMjEgKzEsMjAgQEAKLSMgVGVtcGxhdGUgYnVpbGQgZmlsZSBmb3IgJ2Nyb3NzLWk2ODYt cGMtbGludXgtZ251JwotIworIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtaTY4Ni1wYy1saW51 eC1nbnUnCitfdHJpcGxldD1pNjg2LXBjLWxpbnV4LWdudQogX2JpbnV0aWxzX3ZlcnNpb249Mi4z MgogX2djY192ZXJzaW9uPTkuMy4wCiBfZ2xpYmNfdmVyc2lvbj0yLjMwCiBfbGludXhfdmVyc2lv bj00LjE5Ci0KLV90cmlwbGV0PWk2ODYtcGMtbGludXgtZ251Ci1fYXJjaGZsYWdzPSItbWFyY2g9 aTY4NiAtbXR1bmU9Z2VuZXJpYyIKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBsZXR9IgotCiBwa2du YW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9uPTQKLXNob3J0X2Rl c2M9IkdOVSBDcm9zcyB0b29sY2hhaW4gZm9yIHRoZSAke190cmlwbGV0fSB0YXJnZXQgKGJpbnV0 aWxzL2djYy9nbGliYykiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitob3N0bWFrZWRlcGVuZHM9 InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNs MTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitk ZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rl c2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50YWluZXI9IkrD vHJnZW4gQnVjaG3DvGxsZXIgPHB1bGxtb2xsQHQtb25saW5lLmRlPiIKLWhvbWVwYWdlPSJodHRw czovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0z LjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZv aWRsaW51eC5vcmcvIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGls cy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2dj Y192ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egpAQCAtMjUsMzUyICsyNCwyNSBA QCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2 NDQ2YzgyZThiMzZlNDczZWUwNAogIDcxZTE5Nzg2NzYxMWY2MDU0YWExMTE5YjEzYTBjMGFiYWMx MjgzNDc2NWZlMmQ4MWYzNWFjNTdmODRmNzQyZDEKICBlMmM0MTE0ZTU2OWFmYmU3ZWRiYzI5MTMx YTQzYmU4MzM4NTBhYjlhNDU5ZDgxYmViMjU4ODAxNmQyYmJiOGFmCiAgMGM2OGY1NjU1NTI4YWVk NGY5OWRhZTcxYTViMjU5ZWRjOTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMSIKLQogbm9j cm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWxpYjMyZGlzYWJsZWQ9eWVzCi1jcmVh dGVfd3Jrc3JjPXllcwotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXgg cGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGli LWRldmVsIgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0i Ci1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdj Y19laC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQu YSBsaWJnbWVtLmEiCiAKLWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiAhPSAiZ2xpYmMiIF07IHRo ZW4KLQlicm9rZW49ImdsaWJjIGNyb3NzdG9vbGNoYWluIG9ubHkgYXZhaWxhYmxlIG9uIGdsaWJj IgotZmkKK2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX2xpbnV4X2FyY2g9eDg2Cisj IGV4cGxpY2l0bHkgZW5hYmxlIGZvciBmaW5hbCBnY2MsIGFzIGdmb3J0cmFuIGRvZXMgbm90IGJ1 aWxkIHdpdGhvdXQgb24geDg2Citjcm9zc19nY2NfY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLWxp YnF1YWRtYXRoIgorY3Jvc3NfZ2xpYmNfY2ZsYWdzPSItTzIgLVduby1lcnJvciAtbWFyY2g9aTY4 NiAtbXR1bmU9Z2VuZXJpYyIKIAogaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gImk2ODYi IF07IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIK IGZpCiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5h bWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAt TiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51dGls c19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1 aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLSR7X2JpbnV0 aWxzX3ZlcnNpb259Ci0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBiaW51dGlscyBib290 c3RyYXBcbiIKLQotCVsgISAtZCAuLi9iaW51dGlscy1idWlsZCBdICYmIG1rZGlyIC4uL2JpbnV0 aWxzLWJ1aWxkCi0JY2QgLi4vYmludXRpbHMtYnVpbGQKLQlfYXJncz0iLS1wcmVmaXg9L3VzciIK LQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9v dD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16bGliIgotCi0JLi4vYmlu dXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNv bmZpZ3VyZS1ob3N0ICYmIG1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNo ICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsK LQlsb2NhbCBfYXJncwotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiBy ZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAk e1hCUFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2gg LXAwICIkZiIKLQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgYm9vdHN0 cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYmIG1rZGlyIC4uL2djYy1ib290 c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQkjIEZpeCBodHRwczovL2J1aWxkLnZvaWRs aW51eC5vcmcvYnVpbGRlcnMveDg2XzY0X2J1aWxkZXIvYnVpbGRzLzI0ODk1L3N0ZXBzL3NoZWxs XzMvbG9ncy9zdGRpbwotCWV4cG9ydCBnY2NfY3ZfbGliY19wcm92aWRlc19zc3A9eWVzCi0JX2Fy Z3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2Fy Z3MrPSIgLS13aXRob3V0LWhlYWRlcnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJn cys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIK LQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRpc2FibGUt bGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0i IC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11 bHRpbGliIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1h cyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQlDRkxBR1M9Ii1PMCAtZzAiIENYWEZMQUdT PSItTzAgLWcwIiBcCi0JCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9 Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30v LmdjY19ib290c3RyYXBfZG9uZQotfQotCi1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jr c3JjfS8ubGludXhfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQlt c2dfbm9ybWFsICJCdWlsZGluZyBMaW51eCBBUEkgaGVhZGVycyBmb3IgeDg2XG4iCi0KLQljZCBs aW51eC0ke19saW51eF92ZXJzaW9ufQotCi0JbWFrZSBBUkNIPXg4NiBoZWFkZXJzX2NoZWNrCi0J bWFrZSBBUkNIPXg4NiBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2lu c3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQotfQotCi1fZ2xpYmNf aGVhZGVycygpIHsKLQlsb2NhbCBfYXJncyBmCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2hlYWRl cnNfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vZ2xpYmMtJHtfZ2xpYmNfdmVy c2lvbn0KLQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzIiBdOyB0aGVu Ci0JCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMvKi5wYXRjaDsgZG8K LQkJCV9hcHBseV9wYXRjaCAtcDEgIiRmIgotCQlkb25lCi0JZmkKLQotCWNkICR7d3Jrc3JjfQot CW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdsaWJjIGhlYWRlcnNcbiIKLQotCVsgISAtZCBn bGliYy1oZWFkZXJzIF0gJiYgbWtkaXIgZ2xpYmMtaGVhZGVycwotCWNkIGdsaWJjLWhlYWRlcnMK LQotCWVjaG8gImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCi0JZWNo byAibGliY19jdl9jX2NsZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUKLQllY2hvICJsaWJjX2N2 X3NzcD1ubyIgPj4gY29uZmlnLmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBsZXR9LWdjYyIg TEQ9IiR7X3RyaXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIke190cmlw bGV0fS1jcHAiCi0KLQlfYXJncz0iLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0tcHJl Zml4PS91c3IiCi0JX2FyZ3MrPSIgLS13aXRoLWhlYWRlcnM9JHtfc3lzcm9vdH0vdXNyL2luY2x1 ZGUiCi0JX2FyZ3MrPSIgLS1jb25maWctY2FjaGUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xl dGUtcnBjIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLW5zbCIKLQlfYXJncys9IiAtLWVu YWJsZS1rZXJuZWw9Mi42LjI3IgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2dsaWJj LSR7X2dsaWJjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAtayBpbnN0YWxs LWhlYWRlcnMgY3Jvc3NfY29tcGlsaW5nPXllcyBcCi0JCWluc3RhbGxfcm9vdD0ke19zeXNyb290 fQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nbGliY19oZWFkZXJzX2RvbmUKLX0KLQotX2dsaWJjX2J1 aWxkKCkgewotCWxvY2FsIF9hcmdzCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUg XSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jv c3MgZ2xpYmNcbiIKLQotCVsgISAtZCBnbGliYy1idWlsZCBdICYmIG1rZGlyIGdsaWJjLWJ1aWxk Ci0JY2QgZ2xpYmMtYnVpbGQKLQotCWVjaG8gInNsaWJkaXI9L3Vzci9saWIzMiIgPiBjb25maWdw YXJtcwotCi0JZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25maWcuY2FjaGUK LQllY2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQotCWVjaG8gImxp YmNfY3Zfc3NwPW5vIiA+PiBjb25maWcuY2FjaGUKLQotCWV4cG9ydCBDQz0iJHtfdHJpcGxldH0t Z2NjIiBMRD0iJHtfdHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBDUFA9IiR7 X3RyaXBsZXR9LWNwcCIKLQlleHBvcnQgQ0ZMQUdTPSItTzIgLXBpcGUgLVduby1lcnJvciAke19h cmNoZmxhZ3N9IgotCV9hcmdzPSItLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS1wcmVm aXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmRpcj0vdXNyL2xpYjMyIgotCV9hcmdzKz0iIC0td2l0 aC1oZWFkZXJzPSR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29uZmlnLWNh Y2hlIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVuYWJs ZS1vYnNvbGV0ZS1uc2wiCi0JX2FyZ3MrPSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQlfYXJn cys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9nbGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1 cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGxfcm9vdD0ke19z eXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUKLX0K LQotX2djY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19i dWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1 aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGly IGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0JdW5zZXQgTEQgQVMgQ1BQCi0KLQkjIE1ha2Ug dGhpcyBsaW5rIHRvIHRhcmdldCBsaWJzLgotCWlmIFsgISAtZiAuc2VkX3N1YnN0X2RvbmUgXTsg dGhlbgotCQlzZWQgLWUgInMsIC9saWIvLCAke19zeXNyb290fS9saWIvLGc7cywgL3Vzci9saWIv LCAke19zeXNyb290fS91c3IvbGliLyxnIiBcCi0JCQktaSAke19zeXNyb290fS9saWIvbGliYy5z bwotCQlzZWQgLWUgInMsIC9saWIzMi8sICR7X3N5c3Jvb3R9L2xpYjMyLyxnO3MsIC91c3IvbGli MzIvLCAke19zeXNyb290fS91c3IvbGliMzIvLGciIFwKLQkJCS1pICR7X3N5c3Jvb3R9L2xpYi9s aWJjLnNvCi0JCXRvdWNoIC5zZWRfc3Vic3RfZG9uZQotCWZpCi0JX2FyZ3M9Ii0tdGFyZ2V0PSR7 X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0t cHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgotCV9hcmdzKz0i IC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdl cz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGdvLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0td2l0 aC1nbnUtYXMiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1sZCIKLQlfYXJncys9IiAtLWRpc2FibGUt bXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUt c2psai1leGNlcHRpb25zIgotCV9hcmdzKz0iIC0tZW5hYmxlLXRocmVhZHM9cG9zaXgiCi0JX2Fy Z3MrPSIgLS1lbmFibGUtbG9uZy1sb25neCIKLQlfYXJncys9IiAtLWVuYWJsZS1zaGFyZWQiCi0J X2FyZ3MrPSIgLS1lbmFibGUtbGlua2VyLWJ1aWxkLWlkIgotCV9hcmdzKz0iIC0tZW5hYmxlLWdu dS11bmlxdWUtb2JqZWN0IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAt LWVuYWJsZS1sdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIg LS1lbmFibGUtZGVmYXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZ251LWluZGlyZWN0LWZ1 bmN0aW9uIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRp c2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJjaWxrcnRzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJpdG0i Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnZ0diIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3Rk Y3h4LXBjaCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJzdGRjeHgtdGltZSIKLQlfYXJncys9IiAt LXdpdGgtbGlua2VyLWhhc2gtc3R5bGU9Z251IgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQot CUNDPSJnY2MiIENGTEFHUz0iLU8yIC1waXBlIiBcCi0JCS4uL2djYy0ke19nY2NfdmVyc2lvbn0v Y29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dya3Ny Y30vLmdjY19idWlsZF9kb25lCi19Ci0KLWRvX2J1aWxkKCkgewotCSMgRW5zdXJlIHdlIHVzZSBz YW5lIGVudmlyb25tZW50Ci0JdW5zZXQgQ0MgQ1hYIENQUCBMRCBBUyBBUiBSQU5MSUIgT0JKRFVN UCBSRUFERUxGIE5NCi0JdW5zZXQgQ0ZMQUdTIENYWEZMQUdTIENQUEZMQUdTIExERkxBR1MKLQll eHBvcnQgQ0ZMQUdTPSItT3MiIENYWEZMQUdTPSItT3MiCi0KLQlmb3IgZiBpbiBpbmNsdWRlIGxp YiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtfc3lzcm9vdH0vdXNyLyR7Zn0g XTsgdGhlbgotCQkJbWtkaXIgLXAgJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAh IC1oICR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke19zeXNyb290fS91c3Iv JHtmfSAke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtfc3lzcm9v dH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtfc3lzcm9vdH0vbGliMzIKLQotCV9iaW51 dGlsc19idWlsZAotCV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hlYWRlcnMKLQlfZ2xpYmNfaGVh ZGVycwotCV9nbGliY19idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5zdGFsbCgpIHsKLQlm b3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L3Vzci8ke2Z9IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25l Ci0JbG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1 c3IvbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliMzIKLQotCSMgaW5zdGFsbCBjcm9zcyBi aW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RF U1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBnY2MKLQljZCAke3dya3NyY30vZ2Nj LWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNj MS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMgaW5zdGFsbCBsaW51eCBBUEkgaGVh ZGVycyBmb3IgeDg2LgotCWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJzaW9ufQotCW1h a2UgQVJDSD14ODYgSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3VzciBo ZWFkZXJzX2luc3RhbGwKLQotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1y ZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGds aWJjIGZvciB0YXJnZXQKLQljZCAke3dya3NyY30vZ2xpYmMtYnVpbGQKLQltYWtlIGluc3RhbGxf cm9vdD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwgaW5zdGFsbC1oZWFkZXJzCi0KLQkj IHN5bWxpbmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVy PSR7X2djY192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8k e19nY2NfdmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmdu YXJsLSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAt diAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElS fS8ke19zeXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28g bGliZ25hcmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28K LQlybSAtdmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBu ZWVkIHRvIGJ1aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRv Ci0JIyBidWlsZC4uLiBidXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBp dCBmcm9tIHRoZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxp YmF0b21pYyBwYWNrYWdlCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xp YmF0b21pYy4qCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJ Un0vdXNyL2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQly bSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWIsZXRjLHZhcn0KLQlybSAtcmYg JHtERVNURElSfS8ke19zeXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLX0KLQogY3Jvc3MtaTY4Ni1wYy1saW51eC1n bnUtbGliY19wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBnbGliYyBmaWxlcyIKIAlub3N0 cmlwPXllcwogCW5vdmVyaWZ5cmRlcHM9eWVzCiAJbm9zaGxpYnByb3ZpZGVzPXllcworCiAJcGtn X2luc3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9CisJCXZtb3ZlIHVzci8ke2Nyb3NzX3Ry aXBsZXR9CiAJfQogfQoKRnJvbSBlMjg2MDQ2NTI0MGFmYWM3ZmJhYTU1NjhiOGU2M2NhMTAzNTc0 NGZmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPgpEYXRlOiBGcmksIDI1IERlYyAyMDIwIDIyOjU3OjQxICswMTAwClN1YmplY3Q6IFtQQVRD SCAxMi8yNl0gY3Jvc3MtaTY4Ni1saW51eC1tdXNsOiByZXdvcmsgd2l0aCB2b2lkLWNyb3NzCgot LS0KIHNyY3BrZ3MvY3Jvc3MtaTY4Ni1saW51eC1tdXNsL3RlbXBsYXRlIHwgMzExICsrLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAyOTIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1pNjg2LWxpbnV4LW11c2wv dGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLWk2ODYtbGludXgtbXVzbC90ZW1wbGF0ZQppbmRleCA4 ZDA5ZTRjN2UwNS4uM2Q4ODk4NTVhY2UgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtaTY4Ni1s aW51eC1tdXNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtaTY4Ni1saW51eC1tdXNsL3Rl bXBsYXRlCkBAIC0xLDE5ICsxLDE4IEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9z cy1pNjg2LWxpbnV4LW11c2wnCi0jCisjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1pNjg2LWxp bnV4LW11c2wnCitfdHJpcGxldD1pNjg2LWxpbnV4LW11c2wKIF9iaW51dGlsc192ZXJzaW9uPTIu MzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJz aW9uPTQuMTkKIF9saWJ1Y29udGV4dF92ZXJzaW9uPTAuOS4wCi0KLV90cmlwbGV0PWk2ODYtbGlu dXgtbXVzbAotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi1fYXJjaGZsYWdzPSItbWFyY2g9 aTY4NiIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiByZXZpc2lv bj0zCi1zaG9ydF9kZXNjPSJDcm9zcyB0b29sY2hhaW4gZm9yIGk2ODYgdGFyZ2V0IChtdXNsKSIK K2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdj Yy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMt ZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtnbmFt ZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0 b29sY2hhaW4gZm9yICR7X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0iSsO8cmdlbiBCdWNobcO8bGxl ciA8cHVsbG1vbGxAdC1vbmxpbmUuZGU+IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51 eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlU IgpAQCAtMjgsMjk1ICsyNywyMiBAQCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJh MTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIDEzNzBjOWE4MTJiMmNm MmE3ZDkyODAyNTEwY2NhMDA1OGNjMzdlNjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICAwYzY4 ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0 OWExCiAgMGQ1M2E0MTVhMzA3ZWYxNzUxNTNiYmU2MGE1NzJjOTQwYTkyMmNiNzM2Y2UxMzUzMGI2 NjZlN2VjMjc5NWQ2OCIKLQotbGliMzJkaXNhYmxlZD15ZXMKIG5vY3Jvc3M9eWVzCi1ub3BpZT15 ZXMKLW5vZGVidWc9eWVzCi1jcmVhdGVfd3Jrc3JjPXllcwotaG9zdG1ha2VkZXBlbmRzPSJ0YXIg Z2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9InpsaWItZGV2 ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwgbGlibXBjLWRldmVsIGlzbDE1LWRldmVsIgotbm9zdHJp cF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQot IGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21l bS5hIgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisK K2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX2xpYnVjb250ZXh0X2FyY2g9eDg2Citj cm9zc19saW51eF9hcmNoPXg4NgorIyBleHBsaWNpdGx5IGVuYWJsZSBmb3IgZmluYWwgZ2NjLCBh cyBnZm9ydHJhbiBkb2VzIG5vdCBidWlsZCB3aXRob3V0IG9uIHg4NgorY3Jvc3NfZ2NjX2NvbmZp Z3VyZV9hcmdzPSItLWVuYWJsZS1saWJxdWFkbWF0aCIKK2Nyb3NzX211c2xfY2ZsYWdzPSItTzIg LW1hcmNoPWk2ODYgLW10dW5lPWdlbmVyaWMiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5F IiA9ICJpNjg2LW11c2wiIF07IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNo YWluIHRvIGl0c2VsZiIKIGZpCiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIg cG5hbWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsg dGhlbgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZp Ci19Ci0KLV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3Ny Y30vLmJpbnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0J bXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEg LWQgYmludXRpbHMtYnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxz LWJ1aWxkCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJp cGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0i IC0td2l0aC1zeXN0ZW0temxpYiIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9iaW51 dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29u ZmlndXJlLWhvc3QKLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAk e3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0J bG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiBy ZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAk e1hCUFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2gg LXAwICIkZiIKLQlkb25lCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVzLyot bXVzbC5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JZG9uZQotCi0JbXNnX25v cm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1i b290c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJh cAotCi0JX2FyZ3M9Ii0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNy b290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1l bmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlfYXJncys9IiAt LWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVk ZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUt bGliYXRvbWljIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12ZXJzIgotCV9hcmdzKz0iIGxpYmF0 X2N2X2hhdmVfaWZ1bmM9bm8iCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCUNGTEFHUz0iLU8w IC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwKLQkJLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25m aWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRv dWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19Ci0KLV9saW51eF9oZWFkZXJzKCkg ewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNk ICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IEFQSSBoZWFkZXJzXG4iCi0K LQljZCBsaW51eC0ke19saW51eF92ZXJzaW9ufQotCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJ Un0va2VybmVsLWxpYmMtaGVhZGVycy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRj aCAtcDAgJGYKLQlkb25lCi0KLQltYWtlIEFSQ0g9eDg2IGhlYWRlcnNfY2hlY2sKLQltYWtlIEFS Q0g9eDg2IElOU1RBTExfSERSX1BBVEg9JHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAot Ci0JdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lCi19Ci0KLV9tdXNsX2J1aWxkKCkg ewotCVsgLWYgJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2Qg JHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNy b3NzIG11c2wgbGliY1xuIgotCi0JIyBBcHBseSBtdXNsIHBhdGNoZXMgaWYgdGhlcmUgYXJlIGFu eQotCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0Y2hlcyIgXTsgdGhlbgotCQlm b3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9h cHBseV9wYXRjaCAtcDAgIiRmIgotCQlkb25lCi0JZmkKLQotCUNDPSIke190cmlwbGV0fS1nY2Mi IENGTEFHUz0iLU9zIC1waXBlIC1mUElDICR7X2FyY2hmbGFnc30iIFwKLQkJLi9jb25maWd1cmUg LS1wcmVmaXg9L3VzcgotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgREVTVERJUj0ke19zeXNy b290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLm11c2xfYnVpbGRfZG9uZQotfQotCi1f bGlidWNvbnRleHRfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxk X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2xpYnVjb250ZXh0LSR7X2xpYnVj b250ZXh0X3ZlcnNpb259Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbGlidWNvbnRleHRc biIKLQotCXZzZWQgLWkgYXJjaC94ODYvc3RhcnRjb250ZXh0LlMgLWUgXAotCSAicztfX2k2ODYu Z2V0X3BjX3RodW5rLmJ4O2k2ODZfZ2V0X3BjX3RodW5rX2J4O2ciCi0KLQkjIGl0J3Mgb2sgaWYg d2UncmUgc3RhdGljIG9ubHkgaGVyZQotCUNDPSIke190cmlwbGV0fS1nY2MiIEFSPSIke190cmlw bGV0fS1hciIgQVM9IiR7X3RyaXBsZXR9LWFzIiBcCi0JCUNGTEFHUz0iLU9zIC1waXBlICR7X2Fy Y2hmbGFnc30iIFwKLQkJbWFrZSBBUkNIPXg4NiBsaWJ1Y29udGV4dC5hCi0KLQljcCBsaWJ1Y29u dGV4dC5hICR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGlidWNvbnRl eHRfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0JWyAtZiAk e3dya3NyY30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQot CW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1i dWlsZCBdICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0JX2FyZ3M9Ii0tdGFy Z2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9Igot CV9hcmdzKz0iIC0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGli IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGdv LGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJs ZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9 IiAtLWVuYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXplciIKLQlf YXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIK LQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJh ZGEiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1lbmFibGUt c2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12ZXJzIgotCV9hcmdzKz0iIGxpYmF0X2N2 X2hhdmVfaWZ1bmM9bm8iCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vZ2NjLSR7X2dj Y192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRv dWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JIyBFbnN1 cmUgd2UgdXNlIHNhbmUgZW52aXJvbm1lbnQKLQl1bnNldCBDQyBDWFggQ1BQIExEIEFTIEFSIFJB TkxJQiBPQkpEVU1QIFJFQURFTEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hYRkxBR1MgQ1BQRkxBR1Mg TERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlwZSIgQ1hYRkxBR1M9Ii1PcyAtcGlwZSIK LQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAt ZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91 c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQls biAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25l Ci0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke19z eXNyb290fS9saWIzMgotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGlu dXhfaGVhZGVycwotCV9tdXNsX2J1aWxkCi0JX2xpYnVjb250ZXh0X2J1aWxkCi0JX2djY19idWls ZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmlu IHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07 IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkK LQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAt c2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtf c3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9s aWIzMgotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzIGZvciB4ODYKLQljZCAke3dya3Ny Y30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9eDg2IElOU1RBTExfSERSX1BB VEg9JHtERVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYgJChm aW5kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3RhbGwgLW9y IC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy L2luY2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3NyY30v YmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIGlu c3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJUj0k e0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290Ci0J bXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290fS91 c3IvbGliCi0KLQkjIGluc3RhbGwgbXVzbCBsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3NyY30v bXVzbC0ke19tdXNsX3ZlcnNpb259Ci0JbWFrZSBERVNURElSPSR7REVTVERJUn0vJHtfc3lzcm9v dH0gaW5zdGFsbAotCi0JIyBSZW1vdmUgdXNlbGVzcyBoZWFkZXJzLgotCXJtIC1yZiAke0RFU1RE SVJ9L3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyovaW5jbHVkZS1maXhlZC8KLQotCSMgTWFrZSBs ZC1tdXNsLWkzODYuc28uMSBzeW1saW5rIHJlbGF0aXZlIHRvIGN3ZC4KLQljZCAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQlsbiAtc2YgbGliYy5zbyBsZC1tdXNsLWkzODYuc28uMQot Ci0JIyBNb3ZlIGZpbGVzIHRvIC91c3IvbGliIChsaWI2NCkuCi0JaWYgWyAtZCAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci9saWI2NCBdOyB0aGVuCi0JCW12ICR7REVTVERJUn0vJHtfc3lzcm9v dH0vdXNyL2xpYjY0LyogJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliLwotCQlybWRpciAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWI2NAotCWZpCi0KLQkjIHN5bWxpbmtzIGZvciBn bmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2djY192ZXJzaW9u JS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2NfdmVyc2lvbn0v YWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7X21ham9ydmVy fS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RFU1RESVJ9LyR7 X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91 c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25hcmwuc28KLQls biAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAtdmYgJHtERVNU RElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRvIGJ1aWxkIGxp YmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBidWlsZC4uLiBi dXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9tIHRoZQotCSMg ZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21pYyBwYWNrYWdl Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21pYy4qCi0KLQkj IFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiovbGli aWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNURElS fS8ke19zeXNyb290fS97ZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91 c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xp YmV4ZWMKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYi8qLnB5Ci0Jcm0gLWYgJHtE RVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWJ9Citwb3N0X3BhdGNoKCkgeworCXZzZWQgLWkg bGlidWNvbnRleHQtJHtfbGlidWNvbnRleHRfdmVyc2lvbn0vYXJjaC94ODYvc3RhcnRjb250ZXh0 LlMgXAorCQktZSAicztfX2k2ODYuZ2V0X3BjX3RodW5rLmJ4O2k2ODZfZ2V0X3BjX3RodW5rX2J4 O2ciCiB9CiAKIGNyb3NzLWk2ODYtbGludXgtbXVzbC1saWJjX3BhY2thZ2UoKSB7CkBAIC0zMjQs NyArNTAsOCBAQCBjcm9zcy1pNjg2LWxpbnV4LW11c2wtbGliY19wYWNrYWdlKCkgewogCW5vc3Ry aXA9eWVzCiAJbm92ZXJpZnlyZGVwcz15ZXMKIAlub3NobGlicHJvdmlkZXM9eWVzCisKIAlwa2df aW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJp cGxldH0KIAl9CiB9CgpGcm9tIDY0ZTdkYWU1MmZiM2Y2ZjIzZTY4NzhkMDkxOTRhYjI5YTViOTJj NDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CkRhdGU6IFNhdCwgMjYgRGVjIDIwMjAgMDA6MDk6NTcgKzAxMDAKU3ViamVjdDogW1BBVENI IDEzLzI2XSBjcm9zcy1taXBzLWxpbnV4LW11c2w6IHJlZG8gd2l0aCB2b2lkLWNyb3NzCgotLS0K IHNyY3BrZ3MvY3Jvc3MtbWlwcy1saW51eC1tdXNsL3RlbXBsYXRlIHwgMjg0ICsrLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAyNjcgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2wvdGVt cGxhdGUgYi9zcmNwa2dzL2Nyb3NzLW1pcHMtbGludXgtbXVzbC90ZW1wbGF0ZQppbmRleCAxOWY2 MDBjOWU1YS4uNDMwZjI0OGM0ZjcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtbWlwcy1saW51 eC1tdXNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtbWlwcy1saW51eC1tdXNsL3RlbXBs YXRlCkBAIC0xLDI5NiArMSw0NiBAQAotIyBUZW1wbGF0ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3Mt bWlwcy1saW51eC1tdXNsJwotIworIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtbWlwcy1saW51 eC1tdXNsJworX3RyaXBsZXQ9bWlwcy1saW51eC1tdXNsCiBfYmludXRpbHNfdmVyc2lvbj0yLjMy CiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lv bj00LjE5Ci0KLV90cmlwbGV0PW1pcHMtbGludXgtbXVzbAotX2ZwdWZsYWdzPSItLXdpdGgtZmxv YXQ9c29mdCAtLXdpdGhvdXQtZnAiCi1fYXJjaGZsYWdzPSItbWFyY2g9bWlwczMycjIgLW1zb2Z0 LWZsb2F0IgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi0KIHBrZ25hbWU9Y3Jvc3MtJHtf dHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249Mwotc2hvcnRfZGVzYz0iQ3Jvc3MgdG9v bGNoYWluIGZvciBNSVBTMzJyMiBCRSBzb2Z0ZmxvYXQgdGFyZ2V0IChtdXNsKSIKK2J1aWxkX3N0 eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1taXBzMzJyMiAtLXdp dGgtZmxvYXQ9c29mdAorIC0td2l0aC1saW5rZXItaGFzaC1zdHlsZT1zeXN2IgoraG9zdG1ha2Vk ZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNs MTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitk ZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rl c2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50YWluZXI9Ik9y cGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9p ZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVy LCBNSVQiCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2Jp bnV0aWxzX3ZlcnNpb259LnRhci54egogICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNp b259L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6Ci0gaHR0cDovL3d3dy5tdXNsLWxpYmMub3Jn L3JlbGVhc2VzL211c2wtJHtfbXVzbF92ZXJzaW9ufS50YXIuZ3oKKyBodHRwczovL3d3dy5tdXNs LWxpYmMub3JnL3JlbGVhc2VzL211c2wtJHtfbXVzbF92ZXJzaW9ufS50YXIuZ3oKICAke0tFUk5F TF9TSVRFfS9rZXJuZWwvdjQueC9saW51eC0ke19saW51eF92ZXJzaW9ufS50YXIueHoiCiBjaGVj a3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2Yzgy ZThiMzZlNDczZWUwNAogIDcxZTE5Nzg2NzYxMWY2MDU0YWExMTE5YjEzYTBjMGFiYWMxMjgzNDc2 NWZlMmQ4MWYzNWFjNTdmODRmNzQyZDEKICAxMzcwYzlhODEyYjJjZjJhN2Q5MjgwMjUxMGNjYTAw NThjYzM3ZTY2YTdiZWRkNzAwNTFmMGEzNDAxNTAyMmEzCiAgMGM2OGY1NjU1NTI4YWVkNGY5OWRh ZTcxYTViMjU5ZWRjOTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMSIKLQotbGliMzJkaXNh YmxlZD15ZXMKIG5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVidWc9eWVzCi1jcmVhdGVfd3Jr c3JjPXllcwotCi1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBmbGV4IHBlcmwgcHl0aG9u MyIKLW1ha2VkZXBlbmRzPSJ6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIGxpYm1wYy1k ZXZlbCBpc2wxNS1kZXZlbCIKLW5vc3RyaXBfZmlsZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2Mu YSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmdu YXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKLWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0k e3ZlcnNpb259XyR7cmV2aXNpb259IgotCi1fYXBwbHlfcGF0Y2goKSB7Ci0JbG9jYWwgYXJncz0i JDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKLQotCWlmIFsgISAtZiAiLiR7cG5hbWV9X2RvbmUi IF07IHRoZW4KLQkJcGF0Y2ggLU4gJGFyZ3MgLWkgJDIKLQkJdG91Y2ggLiR7cG5hbWV9X2RvbmUK LQlmaQotfQotCi1fYmludXRpbHNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3 cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3Jj fQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGJpbnV0aWxzIGJvb3RzdHJhcFxuIgotCi0J WyAhIC1kIGJpbnV0aWxzLWJ1aWxkIF0gJiYgbWtkaXIgYmludXRpbHMtYnVpbGQKLQljZCBiaW51 dGlscy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9 JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9h cmdzKz0iIC0td2l0aC1zeXN0ZW0temxpYiIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQku Li9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1h a2UgY29uZmlndXJlLWhvc3QgJiYgbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0J dG91Y2ggJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lCi19Ci0KLV9nY2NfYm9vdHN0cmFw KCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25l IF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9y IGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5 X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9m aWxlcy8qLW11c2wucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDEgIiRmIgotCWRvbmUKLQot CW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBib290c3RyYXBcbiIKLQotCVsgISAtZCAu Li9nY2MtYm9vdHN0cmFwIF0gJiYgbWtkaXIgLi4vZ2NjLWJvb3RzdHJhcAotCWNkIC4uL2djYy1i b290c3RyYXAKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7 X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdz Kz0iIC0td2l0aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2Fy Z3MrPSIgLS13aXRoLW5ld2xpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9h cmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZs b2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp Ym1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0iICR7 X2ZwdWZsYWdzfSIKLQotCUNGTEFHUz0iLU8wIC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwKLQkJ Li4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtl am9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9k b25lCi19Ci0KLV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9idWls ZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxk aW5nIExpbnV4IEFQSSBoZWFkZXJzXG4iCi0KLQljZCBsaW51eC0ke19saW51eF92ZXJzaW9ufQog Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0va2VybmVsLWxpYmMtaGVhZGVycy9wYXRjaGVz LyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgJGYKLQlkb25lCi0KLQltYWtlIEFSQ0g9 bWlwcyBoZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNIPW1pcHMgSU5TVEFMTF9IRFJfUEFUSD0ke19z eXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1 aWxkX2RvbmUKLX0KLQotX211c2xfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLm11c2xfYnVp bGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3ZlcnNp b259Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbXVzbCBsaWJjXG4iCi0KLQkjIEFwcGx5 IG11c2wgcGF0Y2hlcyBpZiB0aGVyZSBhcmUgYW55Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJ Un0vbXVzbC9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L211 c2wvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JCWRvbmUK LQlmaQotCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQ0ZMQUdTPSItT3MgLXBpcGUgLWZQSUMgJHtf YXJjaGZsYWdzfSIgXAotCQkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyCi0KLQltYWtlICR7bWFr ZWpvYnN9Ci0JbWFrZSBERVNURElSPSR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCXRvdWNoICR7d3Jr c3JjfS8ubXVzbF9idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MK LQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAk e3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgZmluYWxcbiIKLQotCVsg ISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBnY2MtYnVpbGQKLQotCV9h cmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9h cmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tbGliZXhlY2Rp cj0vdXNyL2xpYiIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxhZGEsYysrLG9iamMs b2JqLWMrKyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3Mr PSIgLS1lbmFibGUtbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdz Kz0iIC0tZW5hYmxlLWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzYW5pdGl6 ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1u bHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIg LS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12ZXJzIgotCV9hcmdzKz0i ICR7X2ZwdWZsYWdzfSIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2Fy Z3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdjY19idWlsZF9k b25lCi19Ci0KLWRvX2J1aWxkKCkgewotCSMgRW5zdXJlIHdlIHVzZSBzYW5lIGVudmlyb25tZW50 Ci0JdW5zZXQgQ0MgQ1hYIENQUCBMRCBBUyBBUiBSQU5MSUIgT0JKRFVNUCBSRUFERUxGIE5NCi0J dW5zZXQgQ0ZMQUdTIENYWEZMQUdTIENQUEZMQUdTIExERkxBR1MKLQlleHBvcnQgQ0ZMQUdTPSIt T3MgLXBpcGUiIENYWEZMQUdTPSItT3MgLXBpcGUiCi0KLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBs aWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsg dGhlbgotCQkJbWtkaXIgLXAgJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1o ICR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke19zeXNyb290fS91c3IvJHtm fSAke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtfc3lzcm9vdH0v dXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtfc3lzcm9vdH0vbGliMzIKLQotCV9iaW51dGls c19idWlsZAotCV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hlYWRlcnMKLQlfbXVzbF9idWlsZAot CV9nY2NfYnVpbGQKLX0KLQotZG9faW5zdGFsbCgpIHsKLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBs aWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtERVNURElSfS8ke19zeXNyb290fS91 c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8k e2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhl bgotCQkJbG4gLXNmciAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IFwKLQkJCQkke0RF U1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7REVTVERJUn0vJHtf c3lzcm9vdH0vbGliMzIKLQotCSMgaW5zdGFsbCBsaW51eCBBUEkgaGVhZGVycwotCWNkICR7d3Jr c3JjfS9saW51eC0ke19saW51eF92ZXJzaW9ufQotCW1ha2UgQVJDSD1taXBzIElOU1RBTExfSERS X1BBVEg9JHtERVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYg JChmaW5kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3RhbGwg LW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL2luY2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3Ny Y30vYmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkj IGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJ Uj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290 Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvbGliCi0KLQkjIGluc3RhbGwgbXVzbCBsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3Ny Y30vbXVzbC0ke19tdXNsX3ZlcnNpb259Ci0JbWFrZSBERVNURElSPSR7REVTVERJUn0vJHtfc3lz cm9vdH0gaW5zdGFsbAotCi0JIyBSZW1vdmUgdXNlbGVzcyBoZWFkZXJzLgotCXJtIC1yZiAke0RF U1RESVJ9L3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyovaW5jbHVkZS1maXhlZAotCi0JIyBNYWtl IGxkLW11c2wuc28gc3ltbGlua3MgcmVsYXRpdmUuCi0JbG4gLXNmIGxpYmMuc28gJHtERVNURElS fS8ke19zeXNyb290fS91c3IvbGliL2xkLW11c2wtbWlwcy5zby4xCi0JbG4gLXNmIGxpYmMuc28g JHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xkLW11c2wtbWlwcy1zZi5zby4xCi0KLQkj IHN5bWxpbmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVy PSR7X2djY192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8k e19nY2NfdmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmdu YXJsLSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAt diAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElS fS8ke19zeXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28g bGliZ25hcmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28K LQlybSAtdmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBSZW1v dmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0 eS5hCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtf c3lzcm9vdH0ve2V0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tz YmluLHNoYXJlLGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVj Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWIvKi5weQotCXJtIC1mICR7REVTVERJ Un0vJHtfc3lzcm9vdH0ve3NiaW4sbGlifQotfQorY3Jvc3NfdHJpcGxldD0ke190cmlwbGV0fQor Y3Jvc3NfbGludXhfYXJjaD1taXBzCitjcm9zc19nY2Nfc2tpcF9nbz15ZXMKK2Nyb3NzX2JpbnV0 aWxzX2NvbmZpZ3VyZV9hcmdzPSItLXdpdGhvdXQtZnAgLS1lbmFibGUtZGVmYXVsdC1oYXNoLXN0 eWxlPXN5c3YiCitjcm9zc19tdXNsX2NmbGFncz0iLU9zIC1tYXJjaD1taXBzMzJyMiAtbXNvZnQt ZmxvYXQiCiAKIGNyb3NzLW1pcHMtbGludXgtbXVzbC1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRf ZGVzYys9IiAtIGxpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlub3ZlcmlmeXJkZXBzPXllcwog CW5vc2hsaWJwcm92aWRlcz15ZXMKKwogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNy b290fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gNWEyZjE1MzFi ZWYzMjM0MTc5OGVhY2NhMjUwN2ZhOTgwMWYwZjVjMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAyNiBEZWMgMjAyMCAw MDoxMDoxMSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMjZdIGNyb3NzLW1pcHMtbGludXgtbXVz bGhmOiByZWRvIHdpdGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dzL2Nyb3NzLW1pcHMtbGludXgt bXVzbGhmL3RlbXBsYXRlIHwgMjgxICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMjY1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvY3Jvc3MtbWlwcy1saW51eC1tdXNsaGYvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLW1p cHMtbGludXgtbXVzbGhmL3RlbXBsYXRlCmluZGV4IDc5OTI4NjRhOGI2Li42NGU5MGUyNDVhNiAx MDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2xoZi90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2Nyb3NzLW1pcHMtbGludXgtbXVzbGhmL3RlbXBsYXRlCkBAIC0xLDE5ICsxLDE5 IEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1taXBzLWxpbnV4LW11c2xoZicK LSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLW1pcHMtbGludXgtbXVzbGhmJworX3RyaXBs ZXQ9bWlwcy1saW51eC1tdXNsaGYKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lv bj05LjMuMAogX211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTQuMTkKLQotX3Ry aXBsZXQ9bWlwcy1saW51eC1tdXNsaGYKLV9mcHVmbGFncz0iLS13aXRoLWZsb2F0PWhhcmQgLS13 aXRoLWZwIgotX2FyY2hmbGFncz0iLW1hcmNoPW1pcHMzMnIyIC1taGFyZC1mbG9hdCIKLV9zeXNy b290PSIvdXNyLyR7X3RyaXBsZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJz aW9uPTAuMzMKIHJldmlzaW9uPTMKLXNob3J0X2Rlc2M9IkNyb3NzIHRvb2xjaGFpbiBmb3IgTUlQ UzMycjIgQkUgaGFyZGZsb2F0IHRhcmdldCAobXVzbCkiCitidWlsZF9zdHlsZT12b2lkLWNyb3Nz Citjb25maWd1cmVfYXJncz0iLS13aXRoLWFyY2g9bWlwczMycjIgLS13aXRoLWZsb2F0PWhhcmQK KyAtLXdpdGgtbGlua2VyLWhhc2gtc3R5bGU9c3lzdiIKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdj Yy1vYmpjIGZsZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1w Yy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2du YW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3Nz IHRvb2xjaGFpbiBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJoaXBwZXJzb24wIDxoaXBw ZXJzb24wQGdtYWlsLmNvbT4iCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8i CiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQiCkBAIC0y NiwyNzAgKzI2LDIxIEBAIGNoZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5Yjcw YThiOWY3NTU1N2Y4OTY0NDZjODJlOGIzNmU0NzNlZTA0CiAgNzFlMTk3ODY3NjExZjYwNTRhYTEx MTliMTNhMGMwYWJhYzEyODM0NzY1ZmUyZDgxZjM1YWM1N2Y4NGY3NDJkMQogIDEzNzBjOWE4MTJi MmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNjMzdlNjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICAw YzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMy MTc0OWExIgotCi1saWIzMmRpc2FibGVkPXllcwogbm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9k ZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi0KLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1v YmpjIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9InpsaWItZGV2ZWwgZ21wLWRldmVs IG1wZnItZGV2ZWwgbGlibXBjLWRldmVsIGlzbDE1LWRldmVsIgotbm9zdHJpcF9maWxlcz0ibGli Y2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQotIGxpYmduYXJsX3Bp Yy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21lbS5hIgotZGVwZW5k cz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0KLV9hcHBseV9wYXRj aCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAh IC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0 b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2Nh bCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1 cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRp bHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmludXRpbHMtYnVpbGQgXSAmJiBta2RpciBiaW51 dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIK LQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9v dD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16bGliIgotCV9hcmdzKz0i ICR7X2ZwdWZsYWdzfSIKLQotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259L2NvbmZp Z3VyZSAke19hcmdzfQotCi0JbWFrZSBjb25maWd1cmUtaG9zdCAmJiBtYWtlICR7bWFrZWpvYnN9 Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUK LX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9 Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2djYy0k e19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8q LnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQlkb25lCi0JZm9yIGYgaW4gJHtY QlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVzLyotbXVzbC5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNo IC1wMSAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3Rz dHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9v dHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0J X2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9 JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlfYXJncys9IiAtLWVuYWJs ZS1sYW5ndWFnZXM9YyIKLQlfYXJncys9IiAtLXdpdGgtbmV3bGliIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXRocmVhZHMiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlf YXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFw IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJh dG9taWMiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JQ0ZMQUdTPSItTzAgLWcwIiBDWFhG TEFHUz0iLU8wIC1nMCIgXAotCQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19h cmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtz cmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAk e3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9 Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhlYWRlcnNcbiIKLQotCWNkIGxpbnV4 LSR7X2xpbnV4X3ZlcnNpb259CiAKLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9rZXJuZWwt bGliYy1oZWFkZXJzL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAkZgot CWRvbmUKLQotCW1ha2UgQVJDSD1taXBzIGhlYWRlcnNfY2hlY2sKLQltYWtlIEFSQ0g9bWlwcyBJ TlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNo ICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQotfQotCi1fbXVzbF9idWlsZCgpIHsKLQlbIC1m ICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3Jj fS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBtdXNs IGxpYmNcbiIKLQotCSMgQXBwbHkgbXVzbCBwYXRjaGVzIGlmIHRoZXJlIGFyZSBhbnkKLQlpZiBb IC1kICIke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMiIF07IHRoZW4KLQkJZm9yIGYgaW4g JHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0 Y2ggLXAwICIkZiIKLQkJZG9uZQotCWZpCi0KLQlDQz0iJHtfdHJpcGxldH0tZ2NjIiBDRkxBR1M9 Ii1PcyAtcGlwZSAtZlBJQyAke19hcmNoZmxhZ3N9IiBcCi0JCS4vY29uZmlndXJlIC0tcHJlZml4 PS91c3IKLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIERFU1RESVI9JHtfc3lzcm9vdH0gaW5z dGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUKLX0KLQotX2djY19idWls ZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19idWlsZF9kb25lIF0g JiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3Nz IGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdjYy1idWlsZAot CWNkIGdjYy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJn ZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0J X2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1 YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0tZW5h YmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJsZS1sdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUt ZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1zc3AiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYnNhbml0aXplciIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVk ZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0iIC0tZW5hYmxl LWxpYnNzcCIKLQlfYXJncys9IiAtLWVuYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LXN5bXZlcnMiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vZ2NjLSR7X2djY192ZXJz aW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7 d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JIyBFbnN1cmUgd2Ug dXNlIHNhbmUgZW52aXJvbm1lbnQKLQl1bnNldCBDQyBDWFggQ1BQIExEIEFTIEFSIFJBTkxJQiBP QkpEVU1QIFJFQURFTEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hYRkxBR1MgQ1BQRkxBR1MgTERGTEFH UwotCWV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlwZSIgQ1hYRkxBR1M9Ii1PcyAtcGlwZSIKLQotCWZv ciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19z eXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtm fQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2Zy ICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4g LXNmIGxpYiAke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290 fS9saWIzMgotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVh ZGVycwotCV9tdXNsX2J1aWxkCi0JX2djY19idWlsZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZv ciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJ Un0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtf c3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUK LQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVz ci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWIzMgotCi0JIyBpbnN0YWxsIGxpbnV4IEFQ SSBoZWFkZXJzCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBB UkNIPW1pcHMgSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3VzciBoZWFk ZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5j bHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNtZCkKLQlybSAtcmYgJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0KLQotCSMgaW5zdGFsbCBjcm9zcyBi aW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RF U1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBnY2MKLQljZCAke3dya3NyY30vZ2Nj LWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNj MS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMgaW5zdGFsbCBtdXNsIGxpYmMgZm9y IHRhcmdldAotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQltYWtlIERFU1RE SVI9JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0YWxsCi0KLQkjIFJlbW92ZSB1c2VsZXNzIGhl YWRlcnMuCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vKi9pbmNs dWRlLWZpeGVkCi0KLQkjIE1ha2UgbGQtbXVzbC5zbyBzeW1saW5rcyByZWxhdGl2ZS4KLQlsbiAt c2YgbGliYy5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGQtbXVzbC1taXBzLnNv LjEKLQotCSMgc3ltbGlua3MgZm9yIGduYXJsIGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKLQlf bWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24lLiouKn0KLQlfYWRhbGliPXVzci9saWIvZ2NjLyR7X3Ry aXBsZXR9LyR7X2djY192ZXJzaW9ufS9hZGFsaWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxp Yn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xp YgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF0LSR7X21ham9ydmVyfS5zbyAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7X21ham9y dmVyfS5zbyBsaWJnbmFybC5zbwotCWxuIC1zdmYgbGliZ25hdC0ke19tYWpvcnZlcn0uc28gbGli Z25hdC5zbwotCXJtIC12ZiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCi0K LQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiov bGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNU RElSfS8ke19zeXNyb290fS97ZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290 fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L2xpYmV4ZWMKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYi8qLnB5Ci0Jcm0gLWYg JHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWJ9Ci19Citjcm9zc190cmlwbGV0PSR7X3Ry aXBsZXR9Citjcm9zc19saW51eF9hcmNoPW1pcHMKK2Nyb3NzX2djY19za2lwX2dvPXllcworY3Jv c3NfYmludXRpbHNfY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLWRlZmF1bHQtaGFzaC1zdHlsZT1z eXN2IgorY3Jvc3NfbXVzbF9jZmxhZ3M9Ii1PcyAtbWFyY2g9bWlwczMycjIgLW1oYXJkLWZsb2F0 IgogCiBjcm9zcy1taXBzLWxpbnV4LW11c2xoZi1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVz Yys9IiAtIGxpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlub3ZlcmlmeXJkZXBzPXllcwogCW5v c2hsaWJwcm92aWRlcz15ZXMKKwogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290 fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gMmM1Nzk1Njc1N2M2 OGZkNmU1YzhlZTA5NzFjN2U4ZmQ1NTlmODY0NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAyNiBEZWMgMjAyMCAwMDox MTo0NSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMjZdIGNyb3NzLW1pcHNlbC1saW51eC1tdXNs OiByZXdvcmsgd2l0aCB2b2lkLWNyb3NzCgotLS0KIHNyY3BrZ3MvY3Jvc3MtbWlwc2VsLWxpbnV4 LW11c2wvdGVtcGxhdGUgfCAyODQgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCAxNyBpbnNlcnRpb25zKCspLCAyNjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtbWlw c2VsLWxpbnV4LW11c2wvdGVtcGxhdGUKaW5kZXggMGM4YjUxOWIzZjkuLjdhYWE0YTc1YjRhIDEw MDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLW1pcHNlbC1saW51eC1tdXNsL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2wvdGVtcGxhdGUKQEAgLTEsMjk2ICsxLDQ2 IEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1taXBzZWwtbGludXgtbXVzbCcK LSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLW1pcHNlbC1saW51eC1tdXNsJworX3RyaXBs ZXQ9bWlwc2VsLWxpbnV4LW11c2wKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lv bj05LjMuMAogX211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTQuMTkKLQotX3Ry aXBsZXQ9bWlwc2VsLWxpbnV4LW11c2wKLV9mcHVmbGFncz0iLS13aXRoLWZsb2F0PXNvZnQgLS13 aXRob3V0LWZwIgotX2FyY2hmbGFncz0iLW1hcmNoPW1pcHMzMnIyIC1tc29mdC1mbG9hdCIKLV9z eXNyb290PSIvdXNyLyR7X3RyaXBsZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2 ZXJzaW9uPTAuMzMKIHJldmlzaW9uPTMKLXNob3J0X2Rlc2M9IkNyb3NzIHRvb2xjaGFpbiBmb3Ig TUlQUzMycjIgTEUgc29mdGZsb2F0IHRhcmdldCAobXVzbCkiCitidWlsZF9zdHlsZT12b2lkLWNy b3NzCitjb25maWd1cmVfYXJncz0iLS13aXRoLWFyY2g9bWlwczMycjIgLS13aXRoLWZsb2F0PXNv ZnQKKyAtLXdpdGgtbGlua2VyLWhhc2gtc3R5bGU9c3lzdiIKK2hvc3RtYWtlZGVwZW5kcz0idGFy IGdjYy1vYmpjIGZsZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxp Ym1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtw a2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNy b3NzIHRvb2xjaGFpbiBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3Jw aGFuQHZvaWRsaW51eC5vcmc+IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcv IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlUIgogZGlz dGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJz aW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2MtJHtf Z2NjX3ZlcnNpb259LnRhci54egotIGh0dHA6Ly93d3cubXVzbC1saWJjLm9yZy9yZWxlYXNlcy9t dXNsLSR7X211c2xfdmVyc2lvbn0udGFyLmd6CisgaHR0cHM6Ly93d3cubXVzbC1saWJjLm9yZy9y ZWxlYXNlcy9tdXNsLSR7X211c2xfdmVyc2lvbn0udGFyLmd6CiAgJHtLRVJORUxfU0lURX0va2Vy bmVsL3Y0LngvbGludXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6IgogY2hlY2tzdW09IjBhYjZj NTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4MmU4YjM2ZTQ3M2Vl MDQKICA3MWUxOTc4Njc2MTFmNjA1NGFhMTExOWIxM2EwYzBhYmFjMTI4MzQ3NjVmZTJkODFmMzVh YzU3Zjg0Zjc0MmQxCiAgMTM3MGM5YTgxMmIyY2YyYTdkOTI4MDI1MTBjY2EwMDU4Y2MzN2U2NmE3 YmVkZDcwMDUxZjBhMzQwMTUwMjJhMwogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVk YzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEiCi0KLWxpYjMyZGlzYWJsZWQ9eWVzCiBu b2Nyb3NzPXllcwotbm9waWU9eWVzCi1ub2RlYnVnPXllcwotY3JlYXRlX3dya3NyYz15ZXMKLQot aG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVw ZW5kcz0iemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCBsaWJtcGMtZGV2ZWwgaXNsMTUt ZGV2ZWwiCi1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5h IGxpYmdjY19laC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxp YmduYXQuYSBsaWJnbWVtLmEiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKLQotX2FwcGx5X3BhdGNoKCkgewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0i JChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0J CXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQot X2JpbnV0aWxzX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmlu dXRpbHNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9y bWFsICJCdWlsZGluZyBjcm9zcyBiaW51dGlscyBib290c3RyYXBcbiIKLQotCVsgISAtZCBiaW51 dGlscy1idWlsZCBdICYmIG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQK LQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9 IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlz YWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlz YWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLXdp dGgtc3lzdGVtLXpsaWIiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vYmludXRpbHMt JHtfYmludXRpbHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3Vy ZS1ob3N0ICYmIG1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jr c3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2Nh bCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZSBdICYmIHJldHVy biAwCi0KLQljZCAke3dya3NyY30vZ2NjLSR7X2djY192ZXJzaW9ufQotCWZvciBmIGluICR7WEJQ U19TUkNQS0dESVJ9L2djYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAg IiRmIgotCWRvbmUKLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvZmlsZXMvKi1tdXNs LnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQlkb25lCi0KLQltc2dfbm9ybWFs ICJCdWlsZGluZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2NjLWJvb3Rz dHJhcCBdICYmIG1rZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0cmFwCi0K LQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIK LQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLXdpdGgt bmV3bGliIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0td2l0 aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRp c2FibGUtdGhyZWFkcyIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJn cys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAke19mcHVmbGFnc30i Ci0KLQlDRkxBR1M9Ii1PMCAtZzAiIENYWEZMQUdTPSItTzAgLWcwIiBcCi0JCS4uL2djYy0ke19n Y2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFr ZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQotCi1f bGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZSBdICYm IHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBMaW51eCBB UEkgaGVhZGVyc1xuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVyc2lvbn0KIAotCWZvciBmIGlu ICR7WEJQU19TUkNQS0dESVJ9L2tlcm5lbC1saWJjLWhlYWRlcnMvcGF0Y2hlcy8qLnBhdGNoOyBk bwotCQlfYXBwbHlfcGF0Y2ggLXAwICRmCi0JZG9uZQotCi0JbWFrZSBBUkNIPW1pcHMgaGVhZGVy c19jaGVjawotCW1ha2UgQVJDSD1taXBzIElOU1RBTExfSERSX1BBVEg9JHtfc3lzcm9vdH0vdXNy IGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lCi19 Ci0KLV9tdXNsX2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUgXSAm JiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1zZ19u b3JtYWwgIkJ1aWxkaW5nIGNyb3NzIG11c2wgbGliY1xuIgotCi0JIyBBcHBseSBtdXNsIHBhdGNo ZXMgaWYgdGhlcmUgYXJlIGFueQotCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0 Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMv Ki5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCQlkb25lCi0JZmkKLQotCUND PSIke190cmlwbGV0fS1nY2MiIENGTEFHUz0iLU9zIC1waXBlIC1mUElDICR7X2FyY2hmbGFnc30i IFwKLQkJLi9jb25maWd1cmUgLS1wcmVmaXg9L3VzcgotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1h a2UgREVTVERJUj0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLm11c2xf YnVpbGRfZG9uZQotfQotCi1fZ2NjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7 d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0J bXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1 aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVm aXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10 YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0i Ci0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyssZm9y dHJhbixsdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5hYmxl LWx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVuYWJs ZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4Igot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJh dG9taWMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZW5hYmxlLXNo YXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKLQlfYXJncys9IiAke19mcHVmbGFn c30iCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFr ZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQotfQotCi1k b19idWlsZCgpIHsKLQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVudAotCXVuc2V0IEND IENYWCBDUFAgTEQgQVMgQVIgUkFOTElCIE9CSkRVTVAgUkVBREVMRiBOTQotCXVuc2V0IENGTEFH UyBDWFhGTEFHUyBDUFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIC1waXBlIiBD WFhGTEFHUz0iLU9zIC1waXBlIgotCi0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4g c2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1r ZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290 fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9v dH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWIzMgot CWxuIC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQlfYmludXRpbHNfYnVpbGQKLQlf Z2NjX2Jvb3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0JX211c2xfYnVpbGQKLQlfZ2NjX2J1aWxk Ci19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4g c2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsg dGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfQotCQlmaQot CQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1z ZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtERVNURElSfS8ke19z eXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNURElSfS8ke19zeXNy b290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xp YjMyCi0KLQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMKLQljZCAke3dya3NyY30vbGludXgt JHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9bWlwcyBJTlNUQUxMX0hEUl9QQVRIPSR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAu Lmluc3RhbGwuY21kKQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRl L2RybQotCi0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxz LWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNy b3NzIGdjYwotCWNkICR7d3Jrc3JjfS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElS fSBpbnN0YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVT VERJUn0vdXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgot Ci0JIyBpbnN0YWxsIG11c2wgbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L211c2wtJHtf bXVzbF92ZXJzaW9ufQotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3Rh bGwKLQotCSMgUmVtb3ZlIHVzZWxlc3MgaGVhZGVycy4KLQlybSAtcmYgJHtERVNURElSfS91c3Iv bGliL2djYy8ke190cmlwbGV0fS8qL2luY2x1ZGUtZml4ZWQKLQotCSMgTWFrZSBsZC1tdXNsKi5z by4xIHN5bWxpbmtzIHJlbGF0aXZlLgotCWxuIC1zZiBsaWJjLnNvICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyL2xpYi9sZC1tdXNsLW1pcHNlbC5zby4xCi0JbG4gLXNmIGxpYmMuc28gJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvbGliL2xkLW11c2wtbWlwc2VsLXNmLnNvLjEKLQotCSMgc3lt bGlua3MgZm9yIGduYXJsIGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtf Z2NjX3ZlcnNpb24lLiouKn0KLQlfYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2dj Y192ZXJzaW9ufS9hZGFsaWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwt JHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7 REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF0LSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci9saWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJn bmFybC5zbwotCWxuIC1zdmYgbGliZ25hdC0ke19tYWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJt IC12ZiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCi0KLQkjIFJlbW92ZSB1 bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEK LQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNy b290fS97ZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Ive3NiaW4s c2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLQly bSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYi8qLnB5Ci0Jcm0gLWYgJHtERVNURElSfS8k e19zeXNyb290fS97c2JpbixsaWJ9Ci19Citjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9z c19saW51eF9hcmNoPW1pcHMKK2Nyb3NzX2djY19za2lwX2dvPXllcworY3Jvc3NfYmludXRpbHNf Y29uZmlndXJlX2FyZ3M9Ii0td2l0aG91dC1mcCAtLWVuYWJsZS1kZWZhdWx0LWhhc2gtc3R5bGU9 c3lzdiIKK2Nyb3NzX211c2xfY2ZsYWdzPSItT3MgLW1hcmNoPW1pcHMzMnIyIC1tc29mdC1mbG9h dCIKIAogY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2wtbGliY19wYWNrYWdlKCkgewogCXNob3J0X2Rl c2MrPSIgLSBsaWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJbm92ZXJpZnlyZGVwcz15ZXMKIAlu b3NobGlicHJvdmlkZXM9eWVzCisKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9v dH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIDk1MDg0ZjIwZTE2 OGVhYWJiYmYyZDNlYTViM2EyMmQ0Y2YwODkyMzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwgMjYgRGVjIDIwMjAgMDA6 MTI6MDcgKzAxMDAKU3ViamVjdDogW1BBVENIIDE2LzI2XSBjcm9zcy1taXBzZWwtbGludXgtbXVz bGhmOiByZXdvcmsgd2l0aCB2b2lkLWNyb3NzCgotLS0KIHNyY3BrZ3MvY3Jvc3MtbWlwc2VsLWxp bnV4LW11c2xoZi90ZW1wbGF0ZSB8IDI4MyArKy0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAyNjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbGhmL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9z cy1taXBzZWwtbGludXgtbXVzbGhmL3RlbXBsYXRlCmluZGV4IGJmNzViOWVjOGQ1Li5lMjEwOWUw NjE4NyAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbGhmL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2xoZi90ZW1wbGF0ZQpAQCAt MSwyOTUgKzEsNDYgQEAKLSMgVGVtcGxhdGUgYnVpbGQgZmlsZSBmb3IgJ2Nyb3NzLW1pcHNlbC1s aW51eC1tdXNsaGYnCi0jCisjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1taXBzZWwtbGludXgt bXVzbGhmJworX3RyaXBsZXQ9bWlwc2VsLWxpbnV4LW11c2xoZgogX2JpbnV0aWxzX3ZlcnNpb249 Mi4zMgogX2djY192ZXJzaW9uPTkuMy4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3Zl cnNpb249NC4xOQotCi1fdHJpcGxldD1taXBzZWwtbGludXgtbXVzbGhmCi1fZnB1ZmxhZ3M9Ii0t d2l0aC1mbG9hdD1oYXJkIC0td2l0aC1mcCIKLV9hcmNoZmxhZ3M9Ii1tYXJjaD1taXBzMzJyMiAt bWhhcmQtZmxvYXQiCi1fc3lzcm9vdD0iL3Vzci8ke190cmlwbGV0fSIKLQogcGtnbmFtZT1jcm9z cy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiByZXZpc2lvbj0zCi1zaG9ydF9kZXNjPSJDcm9z cyB0b29sY2hhaW4gZm9yIE1JUFMzMnIyIExFIGhhcmRmbG9hdCB0YXJnZXQgKG11c2wpIgorYnVp bGRfc3R5bGU9dm9pZC1jcm9zcworY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNoPW1pcHMzMnIy IC0td2l0aC1mbG9hdD1oYXJkCisgLS13aXRoLWxpbmtlci1oYXNoLXN0eWxlPXN5c3YiCitob3N0 bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBmbGV4IHBlcmwgcHl0aG9uMyIKK21ha2VkZXBlbmRz PSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZl bCIKK2RlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hv cnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7X3RyaXBsZXR9IgogbWFpbnRhaW5l cj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGhvbWVwYWdlPSJodHRwczovL3d3 dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3It bGF0ZXIsIE1JVCIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMt JHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2Nf dmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKLSBodHRwOi8vd3d3Lm11c2wtbGli Yy5vcmcvcmVsZWFzZXMvbXVzbC0ke19tdXNsX3ZlcnNpb259LnRhci5negorIGh0dHBzOi8vd3d3 Lm11c2wtbGliYy5vcmcvcmVsZWFzZXMvbXVzbC0ke19tdXNsX3ZlcnNpb259LnRhci5negogICR7 S0VSTkVMX1NJVEV9L2tlcm5lbC92NC54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54eiIK IGNoZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0 NDZjODJlOGIzNmU0NzNlZTA0CiAgNzFlMTk3ODY3NjExZjYwNTRhYTExMTliMTNhMGMwYWJhYzEy ODM0NzY1ZmUyZDgxZjM1YWM1N2Y4NGY3NDJkMQogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEw Y2NhMDA1OGNjMzdlNjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICAwYzY4ZjU2NTU1MjhhZWQ0 Zjk5ZGFlNzFhNWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgotCi1saWIz MmRpc2FibGVkPXllcwogbm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0 ZV93cmtzcmM9eWVzCi0KLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGZsZXggcGVybCBw eXRob24zIgotbWFrZWRlcGVuZHM9InpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwgbGli bXBjLWRldmVsIGlzbDE1LWRldmVsIgotbm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxp YmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEg bGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21lbS5hIgotZGVwZW5kcz0iJHtwa2duYW1lfS1s aWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0KLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBh cmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1f ZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1f ZG9uZQotCWZpCi19Ci0KLV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAt ZiAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3 cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4i Ci0KLQlbICEgLWQgYmludXRpbHMtYnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNk IGJpbnV0aWxzLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRh cmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIK LQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIK LQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQi Ci0JX2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16bGliIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIK LQotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQot Ci0JbWFrZSBjb25maWd1cmUtaG9zdCAmJiBtYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxs Ci0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290 c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFw X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0K LQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlf YXBwbHlfcGF0Y2ggLXAwICIkZiIKLQlkb25lCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0v Z2NjL2ZpbGVzLyotbXVzbC5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JZG9u ZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAh IC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4v Z2NjLWJvb3RzdHJhcAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJn ZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0J X2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIK LQlfYXJncys9IiAtLXdpdGgtbmV3bGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLXRocmVhZHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2lt YWwtZmxvYXQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1saWJnb21wIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3Mr PSIgJHtfZnB1ZmxhZ3N9IgotCi0JQ0ZMQUdTPSItTzAgLWcwIiBDWFhGTEFHUz0iLU8wIC1nMCIg XAotCQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAk e21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0 cmFwX2RvbmUKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4 X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAi QnVpbGRpbmcgTGludXggQVBJIGhlYWRlcnNcbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNp b259CiAKLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9rZXJuZWwtbGliYy1oZWFkZXJzL3Bh dGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAkZgotCWRvbmUKLQotCW1ha2Ug QVJDSD1taXBzIGhlYWRlcnNfY2hlY2sKLQltYWtlIEFSQ0g9bWlwcyBJTlNUQUxMX0hEUl9QQVRI PSR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGlu dXhfYnVpbGRfZG9uZQotfQotCi1fbXVzbF9idWlsZCgpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubXVz bF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xf dmVyc2lvbn0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBtdXNsIGxpYmNcbiIKLQotCSMg QXBwbHkgbXVzbCBwYXRjaGVzIGlmIHRoZXJlIGFyZSBhbnkKLQlpZiBbIC1kICIke1hCUFNfU1JD UEtHRElSfS9tdXNsL3BhdGNoZXMiIF07IHRoZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJ Un0vbXVzbC9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQkJ ZG9uZQotCWZpCi0KLQlDQz0iJHtfdHJpcGxldH0tZ2NjIiBDRkxBR1M9Ii1PcyAtcGlwZSAtZlBJ QyAke19hcmNoZmxhZ3N9IiBcCi0JCS4vY29uZmlndXJlIC0tcHJlZml4PS91c3IKLQotCW1ha2Ug JHttYWtlam9ic30KLQltYWtlIERFU1RESVI9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2gg JHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsKLQlsb2NhbCBf YXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQot CWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgot Ci0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAot Ci0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGli IgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNy b290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyss b2JqYyxvYmotYysrLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlf YXJncys9IiAtLWVuYWJsZS1sdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0J X2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNh bml0aXplciIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9 IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnNzcCIKLQlfYXJn cys9IiAtLWVuYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2Fy Z3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUg JHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1 aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JIyBFbnN1cmUgd2UgdXNlIHNhbmUgZW52aXJv bm1lbnQKLQl1bnNldCBDQyBDWFggQ1BQIExEIEFTIEFSIFJBTkxJQiBPQkpEVU1QIFJFQURFTEYg Tk0KLQl1bnNldCBDRkxBR1MgQ1hYRkxBR1MgQ1BQRkxBR1MgTERGTEFHUwotCWV4cG9ydCBDRkxB R1M9Ii1PcyAtcGlwZSIgQ1hYRkxBR1M9Ii1PcyAtcGlwZSIKLQotCWZvciBmIGluIGluY2x1ZGUg bGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3IvJHtm fSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBb ICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vz ci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19zeXNy b290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290fS9saWIzMgotCi0JX2Jp bnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9tdXNsX2J1 aWxkCi0JX2djY19idWlsZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUg bGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBd OyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJ CSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtERVNURElS fS8ke19zeXNyb290fS9saWIzMgotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzCi0JY2Qg JHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPW1pcHMgSU5TVEFM TF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQly bSAtZiAkKGZpbmQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5z dGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNy b290fS91c3IvaW5jbHVkZS9kcm0KLQotCSMgaW5zdGFsbCBjcm9zcyBiaW51dGlscwotCWNkICR7 d3Jrc3JjfS9iaW51dGlscy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwK LQotCSMgaW5zdGFsbCBjcm9zcyBnY2MKLQljZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBE RVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5 c3Jvb3QKLQltdiAke0RFU1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci9saWIKLQotCSMgaW5zdGFsbCBtdXNsIGxpYmMgZm9yIHRhcmdldAotCWNkICR7 d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQltYWtlIERFU1RESVI9JHtERVNURElSfS8k e19zeXNyb290fSBpbnN0YWxsCi0KLQkjIFJlbW92ZSB1c2VsZXNzIGhlYWRlcnMuCi0Jcm0gLXJm ICR7REVTVERJUn0vdXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vKi9pbmNsdWRlLWZpeGVkCi0KLQkj IE1ha2UgbGQtbXVzbC5zbyBzeW1saW5rcyByZWxhdGl2ZS4KLQlsbiAtc2YgbGliYy5zbyAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGQtbXVzbC1taXBzZWwuc28uMQotCi0JIyBzeW1s aW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19n Y2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2Nj X3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0k e19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtE RVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmdu YXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0g LXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0uc28KLQotCSMgUmVtb3ZlIHVu bmVjZXNzYXJ5IHN0dWZmCi0Jcm0gLWYgJHtERVNURElSfS91c3IvbGliKi9saWJpYmVydHkuYQot CXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3tldGMsdmFyfQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97c2Jpbixz aGFyZSxsaWJleGVjfQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliZXhlYwotCXJt IC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliLyoucHkKLQlybSAtZiAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3tzYmluLGxpYn0KLX0KK2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3Nz X2xpbnV4X2FyY2g9bWlwcworY3Jvc3NfZ2NjX3NraXBfZ289eWVzCitjcm9zc19iaW51dGlsc19j b25maWd1cmVfYXJncz0iLS1lbmFibGUtZGVmYXVsdC1oYXNoLXN0eWxlPXN5c3YiCitjcm9zc19t dXNsX2NmbGFncz0iLU9zIC1tYXJjaD1taXBzMzJyMiAtbWhhcmQtZmxvYXQiCiAKIGNyb3NzLW1p cHNlbC1saW51eC1tdXNsaGYtbGliY19wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBsaWJj IGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJbm92ZXJpZnlyZGVwcz15ZXMKIAlub3NobGlicHJvdmlk ZXM9eWVzCisKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1vdmUg dXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIGVhNjk4OTM3M2VmYjlhZmY2YzliYjZi OWQxMDJmNGVhMmZiMjRjODkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwgMjYgRGVjIDIwMjAgMTg6Mzc6MzkgKzAxMDAK U3ViamVjdDogW1BBVENIIDE3LzI2XSBjcm9zcy1wb3dlcnBjLWxpbnV4LWdudTogcmV3b3JrIHdp dGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dzL2Nyb3NzLXBvd2VycGMtbGludXgtZ251L3RlbXBs YXRlIHwgMzU2ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5z ZXJ0aW9ucygrKSwgMzQzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3Mt cG93ZXJwYy1saW51eC1nbnUvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGMtbGludXgt Z251L3RlbXBsYXRlCmluZGV4IDMzZjU3YTAzNDRmLi4zMGYwYzMxYmY5NyAxMDA2NDQKLS0tIGEv c3JjcGtncy9jcm9zcy1wb3dlcnBjLWxpbnV4LWdudS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Ny b3NzLXBvd2VycGMtbGludXgtZ251L3RlbXBsYXRlCkBAIC0xLDE5ICsxLDIxIEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdjcm9zcy1wb3dlcnBjLWxpbnV4LWdudScKK190cmlwbGV0PXBvd2VycGMt bGludXgtZ251CiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9n bGliY192ZXJzaW9uPTIuMzAKIF9saW51eF92ZXJzaW9uPTQuMTkKLQotX3RyaXBsZXQ9cG93ZXJw Yy1saW51eC1nbnUKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBsZXR9IgotCiBwa2duYW1lPWNyb3Nz LSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9uPTMKLXNob3J0X2Rlc2M9IkdOVSBD cm9zcyB0b29sY2hhaW4gZm9yIHRoZSAke190cmlwbGV0fSB0YXJnZXQgKGJpbnV0aWxzL2djYy9n bGliYykiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitjb25maWd1cmVfYXJncz0iLS1lbmFibGUt c2VjdXJlcGx0IC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5IgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIg Z2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRl dmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5k cz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJW b2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJUaG9tYXMg QmF0dGVuIDxzdGVuc3RvcnBtY0BnbWFpbC5jb20+IgotaG9tZXBhZ2U9Imh0dHA6Ly93d3cudm9p ZGxpbnV4Lm9yZyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIs IExHUEwtMi4xLW9yLWxhdGVyIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcv IgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGls c192ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9n Y2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egpAQCAtMjMsMzQ5ICsyNSwxNyBAQCBjaGVja3N1bT0i MGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2YzgyZThiMzZl NDczZWUwNAogIDcxZTE5Nzg2NzYxMWY2MDU0YWExMTE5YjEzYTBjMGFiYWMxMjgzNDc2NWZlMmQ4 MWYzNWFjNTdmODRmNzQyZDEKICBlMmM0MTE0ZTU2OWFmYmU3ZWRiYzI5MTMxYTQzYmU4MzM4NTBh YjlhNDU5ZDgxYmViMjU4ODAxNmQyYmJiOGFmCiAgMGM2OGY1NjU1NTI4YWVkNGY5OWRhZTcxYTVi MjU5ZWRjOTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMSIKLQotbGliMzJkaXNhYmxlZD15 ZXMKIG5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi1ob3N0bWFrZWRl cGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5k cz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwiCi1kZXBlbmRzPSIke3BrZ25h bWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLW5vc3RyaXBfZmlsZXM9ImxpYmNhZl9z aW5nbGUuYSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMuYSBs aWJnbmFybC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKIAotaWYgWyAiJFhC UFNfVEFSR0VUX0xJQkMiICE9ICJnbGliYyIgXTsgdGhlbgotCWJyb2tlbj0iZ2xpYmMgY3Jvc3N0 b29sY2hhaW4gb25seSBhdmFpbGFibGUgb24gZ2xpYmMiCi1maQorY3Jvc3NfdHJpcGxldD0ke190 cmlwbGV0fQorY3Jvc3NfbGludXhfYXJjaD1wb3dlcnBjCitjcm9zc19iaW51dGlsc19jb25maWd1 cmVfYXJncz0iLS1lbmFibGUtc2VjdXJlcGx0IgorY3Jvc3NfZ2xpYmNfY2ZsYWdzPSItTzIiCiAK IGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJwcGMiIF07IHRoZW4KIAlicm9rZW49IkNh bid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZpCiAKLV9hcHBseV9wYXRjaCgp IHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1m ICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3Vj aCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3 cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQot CW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IEFQSSBoZWFkZXJzIGZvciBQb3dlclBDXG4iCi0K LQljZCBsaW51eC0ke19saW51eF92ZXJzaW9ufQotCi0JbWFrZSBBUkNIPXBvd2VycGMgaGVhZGVy c19jaGVjawotCW1ha2UgQVJDSD1wb3dlcnBjIElOU1RBTExfSERSX1BBVEg9JHtfc3lzcm9vdH0v dXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25l Ci19Ci0KLV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3Ny Y30vLmJpbnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0J bXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHNcbiIKLQlbICEgLWQgYmludXRpbHMt YnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0KLQlf YXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlf YXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRpc2FibGUt bmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11 bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LWdvbGQiCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16bGliIgotCV9hcmdzKz0iIC0tZW5hYmxl LXNlY3VyZXBsdCIKLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUg JHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QgJiYgbWFrZSAke21ha2Vqb2JzfQotCW1h a2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lCi19Ci0K LV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2Nj X2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtfZ2Nj X3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5wYXRj aDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVp bGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAg XSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JX2Fy Z3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2Fy Z3MrPSIgLS13aXRob3V0LWhlYWRlcnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJn cys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIK LQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRpc2FibGUt bGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0i IC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11 bHRpbGliIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1h cyIKLQlfYXJncys9IiAtLWVuYWJsZS1zZWN1cmVwbHQiCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNp b259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFs bAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQotX2dsaWJjX2hl YWRlcnMoKSB7Ci0JbG9jYWwgX2FyZ3MgZgotCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2hlYWRl cnNfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vZ2xpYmMtJHtfZ2xpYmNfdmVy c2lvbn0KLQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzIiBdOyB0aGVu Ci0JCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMvKi5wYXRjaDsgZG8K LQkJCV9hcHBseV9wYXRjaCAtcDEgIiRmIgotCQlkb25lCi0JZmkKLQotCWNkICR7d3Jrc3JjfQot CW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdsaWJjIGhlYWRlcnNcbiIKLQotCVsgISAtZCBn bGliYy1oZWFkZXJzIF0gJiYgbWtkaXIgZ2xpYmMtaGVhZGVycwotCWNkIGdsaWJjLWhlYWRlcnMK LQotCWVjaG8gImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCi0JZWNo byAibGliY19jdl9jX2NsZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUKLQotCWV4cG9ydCBDQz0i JHtfdHJpcGxldH0tZ2NjIiBMRD0iJHtfdHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9 LWFzIiBDUFA9IiR7X3RyaXBsZXR9LWNwcCIgXAotCQlOTT0iJHtfdHJpcGxldH0tbm0iCi0KLQlf YXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2Fy Z3MrPSIgLS13aXRoLWhlYWRlcnM9JHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIg LS1jb25maWctY2FjaGUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdz Kz0iIC0tZW5hYmxlLW9ic29sZXRlLW5zbCIKLQlfYXJncys9IiAtLWVuYWJsZS1rZXJuZWw9Mi42 LjI3IgotCi0JLi4vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0K LQltYWtlIC1rIGluc3RhbGwtaGVhZGVycyBjcm9zc19jb21waWxpbmc9eWVzIFwKLQkJaW5zdGFs bF9yb290PSR7X3N5c3Jvb3R9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdsaWJjX2hlYWRlcnNfZG9u ZQotfQotCi1fZ2xpYmNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9 Ly5nbGliY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19u b3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdsaWJjXG4iCi0KLQlbICEgLWQgZ2xpYmMtYnVpbGQgXSAm JiBta2RpciBnbGliYy1idWlsZAotCWNkIGdsaWJjLWJ1aWxkCi0KLQllY2hvICJzbGliZGlyPS91 c3IvbGliMzIiID4gY29uZmlncGFybXMKLQotCWVjaG8gImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15 ZXMiID4gY29uZmlnLmNhY2hlCi0JZWNobyAibGliY19jdl9jX2NsZWFudXA9eWVzIiA+PiBjb25m aWcuY2FjaGUKLQotCWV4cG9ydCBDQz0iJHtfdHJpcGxldH0tZ2NjIiBDWFg9IiR7X3RyaXBsZXR9 LWcrKyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIk e190cmlwbGV0fS1jcHAiIFwKLQkJTk09IiR7X3RyaXBsZXR9LW5tIgotCWV4cG9ydCBDRkxBR1M9 Ii1PMSAtcGlwZSIKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZGly PS91c3IvbGliMzIiCi0JX2FyZ3MrPSIgLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0t d2l0aC1oZWFkZXJzPSR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29uZmln LWNhY2hlIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVu YWJsZS1vYnNvbGV0ZS1uc2wiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXByb2ZpbGUiCi0JX2FyZ3Mr PSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgot Ci0JLi4vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtl ICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0J dG91Y2ggJHt3cmtzcmN9Ly5nbGliY19idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0J bG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVy biAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgZmlu YWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBnY2Mt YnVpbGQKLQotCWV4cG9ydCBDQz0iZ2NjIiBDWFg9ImcrKyIgQ0ZMQUdTPSItT3MgLXBpcGUiCi0J dW5zZXQgTEQgQVMKLQotCSMgTWFrZSB0aGlzIGxpbmsgdG8gdGFyZ2V0IGxpYnMuCi0JaWYgWyAh IC1mIC5zZWRfc3Vic3RfZG9uZSBdOyB0aGVuCi0JCXNlZCAtZSAicywgL2xpYi8sICR7X3N5c3Jv b3R9L2xpYi8sZztzLCAvdXNyL2xpYi8sICR7X3N5c3Jvb3R9L3Vzci9saWIvLGciIFwKLQkJCS1p ICR7X3N5c3Jvb3R9L2xpYi9saWJjLnNvCi0JCXNlZCAtZSAicywgL2xpYjMyLywgJHtfc3lzcm9v dH0vbGliMzIvLGc7cywgL3Vzci9saWIzMi8sICR7X3N5c3Jvb3R9L3Vzci9saWIzMi8sZyIgXAot CQkJLWkgJHtfc3lzcm9vdH0vbGliL2xpYmMuc28KLQkJdG91Y2ggLnNlZF9zdWJzdF9kb25lCi0J ZmkKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNy L2xpYiIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgt c3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxhZGEs YysrLG9iamMsb2JqLWMrKyxnbyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLXdpdGgtZ251LWFz IgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGli IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNqbGotZXhj ZXB0aW9ucyIKLQlfYXJncys9IiAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IgotCV9hcmdzKz0iIC0t ZW5hYmxlLWxvbmctbG9uZ3giCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0i IC0tZW5hYmxlLWxpbmtlci1idWlsZC1pZCIKLQlfYXJncys9IiAtLWVuYWJsZS1nbnUtdW5pcXVl LW9iamVjdCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFibGUt bHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0iIC0tZW5hYmxl LWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9 IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmNp bGtydHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUt bGlidnR2IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzdGRjeHgtcGNoIgotCV9hcmdzKz0iIC0t ZW5hYmxlLWxpYnN0ZGN4eC10aW1lIgotCV9hcmdzKz0iIC0td2l0aC1saW5rZXItaGFzaC1zdHls ZT1nbnUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2VjdXJlcGx0IgotCi0JLi4vZ2NjLSR7X2djY192 ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNo ICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JdW5zZXQgTERG TEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyIgQ1hYRkxBR1M9Ii1PcyIKLQotCWZvciBmIGluIGlu Y2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91 c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQot CQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jv b3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAk e19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290fS9saWIzMgot Ci0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9n bGliY19oZWFkZXJzCi0JX2dsaWJjX2J1aWxkCi0JX2djY19idWlsZAotfQotCi1kb19pbnN0YWxs KCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsg ISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1w ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7REVT VERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQotCQlm aQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0J bG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWIzMgotCi0JIyBpbnN0YWxs IGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNU RElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jr c3JjfS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1v dmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJj YzEuc28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIGxpbnV4 IEFQSSBoZWFkZXJzIGZvciBwb3dlcnBjCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3Zl cnNpb259Ci0JbWFrZSBBUkNIPXBvd2VycGMgSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElSfS8k e19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxs LmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0KLQot CSMgaW5zdGFsbCBnbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L2dsaWJjLWJ1aWxkCi0J bWFrZSBpbnN0YWxsX3Jvb3Q9JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0YWxsIGluc3RhbGwt aGVhZGVycwotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmll cwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2Mv JHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0vJHtf YWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91 c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9 LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtf bWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5z byBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0u c28KLQotCSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4gdGFyZ2V0IGdjYyBhcyBnY2Nn byBuZWVkcyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5lZWRlZCBhdCBydW50aW1l LCBzbyByZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28gaXQgZG9lc24ndCBjb25mbGlj dCB3aXRoIHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9v dH0vdXNyL2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQly bSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVTVERJUn0v dXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3NiaW4sZXRjLHZhcn0K LQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30K LQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLX0KLQotZG9fY2xlYW4oKSB7 Ci0JIyBSZW1vdmUgdGVtcG9yYXJ5IHN0dWZmIGZyb20gbWFzdGVyZGlyCi0Jcm0gLXJmICR7X3N5 c3Jvb3R9Ci0Jcm0gLWYgL3Vzci9iaW4vJHtfdHJpcGxldH0qCi0Jcm0gLXJmIC91c3IvbGliL2dj Yy8ke190cmlwbGV0fQotCXJtIC1yZiAvdXNyL2xpYmV4ZWMvZ2NjLyR7X3RyaXBsZXR9Ci19Ci0K IGNyb3NzLXBvd2VycGMtbGludXgtZ251LWxpYmNfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0i IC0gZ2xpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKQEAgLTM3Myw2ICs0Myw2IEBAIGNyb3NzLXBv d2VycGMtbGludXgtZ251LWxpYmNfcGFja2FnZSgpIHsKIAlub3ZlcmlmeXJkZXBzPXllcwogCiAJ cGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9CisJCXZtb3ZlIHVzci8ke2Nyb3Nz X3RyaXBsZXR9CiAJfQogfQoKRnJvbSAzMTIyZDY4MWEyZGVjMDViN2RjNWEzNTZkMmFiNjAwZTUw NWE1OTg4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBTYXQsIDI2IERlYyAyMDIwIDE4OjQyOjIzICswMTAwClN1YmplY3Q6IFtQ QVRDSCAxOC8yNl0gY3Jvc3MtcG93ZXJwYy1saW51eC1tdXNsOiByZXdvcmsgd2l0aCB2b2lkLWNy b3NzCgotLS0KIHNyY3BrZ3MvY3Jvc3MtcG93ZXJwYy1saW51eC1tdXNsL3RlbXBsYXRlIHwgMzA1 ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCsp LCAyODggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjLWxp bnV4LW11c2wvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGMtbGludXgtbXVzbC90ZW1w bGF0ZQppbmRleCAxMmRiMDQwYTU5YS4uNGQ1MmIzOTZmMjMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Y3Jvc3MtcG93ZXJwYy1saW51eC1tdXNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtcG93 ZXJwYy1saW51eC1tdXNsL3RlbXBsYXRlCkBAIC0xLDIxICsxLDIzIEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdjcm9zcy1wb3dlcnBjLWxpbnV4LW11c2wnCitfdHJpcGxldD1wb3dlcnBjLWxpbnV4 LW11c2wKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX211c2xf dmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTQuMTkKIF9saWJ1Y29udGV4dF92ZXJzaW9u PTAuOS4wCi0KLV90cmlwbGV0PXBvd2VycGMtbGludXgtbXVzbAotX3N5c3Jvb3Q9Ii91c3IvJHtf dHJpcGxldH0iCi0KIHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2 aXNpb249MgotCi1zaG9ydF9kZXNjPSJDcm9zcyB0b29sY2hhaW4gZm9yIFBvd2VyUEMgKG11c2wp IgorYnVpbGRfc3R5bGU9dm9pZC1jcm9zcworY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLXNlY3Vy ZXBsdCAtLWRpc2FibGUtdnRhYmxlLXZlcmlmeQorIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0Igor aG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgor bWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZl bCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtfdHJpcGxldH0i CiBtYWludGFpbmVyPSJUaG9tYXMgQmF0dGVuIDxzdGVuc3RvcnBtY0BnbWFpbC5jb20+IgotaG9t ZXBhZ2U9Imh0dHA6Ly93d3cudm9pZGxpbnV4Lm9yZyIKLWxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0 ZXIsIEdQTC0yLjAtb25seSwgTUlUIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5v cmcvIgorbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlUIgog ZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192 ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2Mt JHtfZ2NjX3ZlcnNpb259LnRhci54egpAQCAtMjcsMjk4ICsyOSwyNSBAQCBjaGVja3N1bT0iMGFi NmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2YzgyZThiMzZlNDcz ZWUwNAogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNjMzdlNjZhN2JlZGQ3MDA1 MWYwYTM0MDE1MDIyYTMKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIyNTllZGM5MzIzOWZh ODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExCiAgMGQ1M2E0MTVhMzA3ZWYxNzUxNTNiYmU2MGE1NzJj OTQwYTkyMmNiNzM2Y2UxMzUzMGI2NjZlN2VjMjc5NWQ2OCIKLQotbGliMzJkaXNhYmxlZD15ZXMK IG5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVidWc9eWVzCi1jcmVhdGVfd3Jrc3JjPXllcwog Ci1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMi Ci1tYWtlZGVwZW5kcz0iemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCBsaWJtcGMtZGV2 ZWwgaXNsMTUtZGV2ZWwiCi1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEg bGliZ2Nvdi5hIGxpYmdjY19laC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0 X3BpYy5hIGxpYmduYXQuYSBsaWJnbWVtLmEiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKK2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX2xp YnVjb250ZXh0X2FyY2g9cHBjCitjcm9zc19saW51eF9hcmNoPXBvd2VycGMKK2Nyb3NzX2JpbnV0 aWxzX2NvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1zZWN1cmVwbHQiCitjcm9zc19tdXNsX2NmbGFn cz0iLU8yIgogCiBpZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAicHBjLW11c2wiIF07IHRo ZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZpCiAK LV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIp IgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJn cyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51dGlsc19idWls ZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2Rv bmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcg Y3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmludXRpbHMtYnVpbGQgXSAm JiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0JX2FyZ3M9Ii0tcHJl Zml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13 aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJn cys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlf YXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxpYiIK LQlfYXJncys9IiAtLWVuYWJsZS1zZWN1cmVwbHQiCi0KLQkuLi9iaW51dGlscy0ke19iaW51dGls c192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QgJiYg bWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51 dGlsc19idWlsZF9kb25lCi19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0J WyAtZiAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAk e3dya3NyY30vZ2NjLSR7X2djY192ZXJzaW9ufQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9 L2djYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCWRvbmUK LQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvZmlsZXMvKi1tdXNsLnBhdGNoOyBkbwot CQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBj cm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYmIG1r ZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQlfYXJncz0iLS1w cmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAt LXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLXdpdGgtbmV3bGliIgotCV9h cmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtdGhyZWFk cyIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKLQlfYXJn cys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCV9hcmdzKz0iIC0tZW5hYmxlLXNlY3VyZXBs dCIKLQotCUNGTEFHUz0iLU8wIC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwKLQkJLi4vZ2NjLSR7 X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQlt YWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19Ci0K LV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0g JiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4 IEFQSSBoZWFkZXJzXG4iCi0KLQljZCBsaW51eC0ke19saW51eF92ZXJzaW9ufQotCi0JZm9yIGYg aW4gJHtYQlBTX1NSQ1BLR0RJUn0va2VybmVsLWxpYmMtaGVhZGVycy9wYXRjaGVzLyoucGF0Y2g7 IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgJGYKLQlkb25lCi0KLQltYWtlIEFSQ0g9cG93ZXJwYyBo ZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNIPXBvd2VycGMgSU5TVEFMTF9IRFJfUEFUSD0ke19zeXNy b290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1aWxk X2RvbmUKLX0KLQotX211c2xfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLm11c2xfYnVpbGRf ZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3ZlcnNpb259 Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbXVzbCBsaWJjXG4iCi0KLQkjIEFwcGx5IG11 c2wgcGF0Y2hlcyBpZiB0aGVyZSBhcmUgYW55Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0v bXVzbC9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L211c2wv cGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JCWRvbmUKLQlm aQotCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQ0ZMQUdTPSItT3MgLXBpcGUgLWZQSUMiIFwKLQkJ Li9jb25maWd1cmUgLS1wcmVmaXg9L3VzcgotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgREVT VERJUj0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLm11c2xfYnVpbGRf ZG9uZQotfQotCi1fbGlidWNvbnRleHRfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpYnVj b250ZXh0X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2xpYnVjb250 ZXh0LSR7X2xpYnVjb250ZXh0X3ZlcnNpb259Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3Mg bGlidWNvbnRleHRcbiIKLQotCSMgaXQncyBvayBpZiB3ZSdyZSBzdGF0aWMgb25seSBoZXJlCi0J Q0M9IiR7X3RyaXBsZXR9LWdjYyIgQVI9IiR7X3RyaXBsZXR9LWFyIiBBUz0iJHtfdHJpcGxldH0t YXMiIFwKLQkJQ0ZMQUdTPSItT3MgLXBpcGUiIFwKLQkJbWFrZSBBUkNIPXBwYyBsaWJ1Y29udGV4 dC5hCi0KLQljcCBsaWJ1Y29udGV4dC5hICR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCXRvdWNoICR7 d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2J1aWxkKCkgewotCWxv Y2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4g MAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFs XG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1 aWxkCi0KLQlfYXJncz0iLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5 c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAt LWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRh LGMrKyxvYmpjLG9iai1jKyssZ28sZm9ydHJhbixsdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtbHRv IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0 LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9 IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJn cys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgot CV9hcmdzKz0iIC0tZW5hYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWVuYWJsZS1zaGFyZWQiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3MrPSIgbGliYXRfY3ZfaGF2ZV9pZnVu Yz1ubyIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWVu YWJsZS1zZWN1cmVwbHQiCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19h cmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRf ZG9uZQotfQotCi1kb19idWlsZCgpIHsKLQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVu dAotCXVuc2V0IENDIENYWCBDUFAgTEQgQVMgQVIgUkFOTElCIE9CSkRVTVAgUkVBREVMRiBOTQot CXVuc2V0IENGTEFHUyBDWFhGTEFHUyBDUFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0i LU9zIC1waXBlIiBDWFhGTEFHUz0iLU9zIC1waXBlIgotCi0JZm9yIGYgaW4gaW5jbHVkZSBsaWIg bGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07 IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAt aCAke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7 Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9 L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQlfYmludXRp bHNfYnVpbGQKLQlfZ2NjX2Jvb3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0JX211c2xfYnVpbGQK LQlfbGlidWNvbnRleHRfYnVpbGQKLQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0J Zm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElSfS8k e19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvJHtmfSBcCi0JCQkJJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9u ZQotCWxuIC1zZiBsaWIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2Yg dXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYjMyCi0KLQkjIGluc3RhbGwgbGludXgg QVBJIGhlYWRlcnMKLQljZCAke3dya3NyY30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtl IEFSQ0g9cG93ZXJwYyBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy IGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1y ZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGNy b3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNURElS PSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jrc3Jj fS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1vdmUg bGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEu c28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIG11c2wgbGli YyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1ha2Ug REVTVERJUj0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCSMgUmVtb3ZlIHVzZWxl c3MgaGVhZGVycy4KLQlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2djYy8ke190cmlwbGV0fS8q L2luY2x1ZGUtZml4ZWQKLQotCSMgTWFrZSBsZC1tdXNsLnNvIHN5bWxpbmtzIHJlbGF0aXZlLgot CWxuIC1zZiBsaWJjLnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9sZC1tdXNsLXBv d2VycGMuc28uMQotCWxuIC1zZiBsaWJjLnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xp Yi9sZC1tdXNsLXBvd2VycGMtc2Yuc28uMQotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGdu YXQgc2hhcmVkIGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9h ZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12 IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xp YmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxu IC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJn bmF0LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRh bGlifS9saWJnbmF7cmwsdH0uc28KLQotCSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4g dGFyZ2V0IGdjYyBhcyBnY2NnbyBuZWVkcyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90 IG5lZWRlZCBhdCBydW50aW1lLCBzbyByZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28g aXQgZG9lc24ndCBjb25mbGljdCB3aXRoIHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5u ZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0J cm0gLXJmICR7REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9v dH0ve2V0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNo YXJlLGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0g LWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWIvKi5weQotCXJtIC1mICR7REVTVERJUn0vJHtf c3lzcm9vdH0ve3NiaW4sbGlifQotfQotCiBjcm9zcy1wb3dlcnBjLWxpbnV4LW11c2wtbGliY19w YWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBsaWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJ bm92ZXJpZnlyZGVwcz15ZXMKIAlub3NobGlicHJvdmlkZXM9eWVzCisKIAlwa2dfaW5zdGFsbCgp IHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9 CiB9CgpGcm9tIDM2Y2ZiZGEwYWUwYTNhM2E0NWQ2MDRlZThhZjZmZjc5YWYyNWNjYmMgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFNhdCwgMjYgRGVjIDIwMjAgMTg6NDU6MDIgKzAxMDAKU3ViamVjdDogW1BBVENIIDE5LzI2XSBj cm9zcy1wb3dlcnBjbGUtbGludXgtZ251OiByZXdvcmsgd2l0aCB2b2lkLWNyb3NzCgotLS0KIHNy Y3BrZ3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LWdudS90ZW1wbGF0ZSB8IDM1OCArLS0tLS0tLS0t LS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAzNDQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjbGUtbGludXgtZ251L3Rl bXBsYXRlIGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjbGUtbGludXgtZ251L3RlbXBsYXRlCmluZGV4 IDVhNWUxNDlkMzlhLi5kMDcxNTgxYmZiMSAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1wb3dl cnBjbGUtbGludXgtZ251L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwY2xlLWxp bnV4LWdudS90ZW1wbGF0ZQpAQCAtMSwyMCArMSwyMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn Y3Jvc3MtcG93ZXJwY2xlLWxpbnV4LWdudScKLSMgVGhpcyBpcyBhbiBleHBlcmltZW50YWwgdGFy Z2V0IGZvciBub3cgYW5kIGlzIHN1YmplY3QgdG8gY2hhbmdlcworX3RyaXBsZXQ9cG93ZXJwY2xl LWxpbnV4LWdudQogX2JpbnV0aWxzX3ZlcnNpb249Mi4zMgogX2djY192ZXJzaW9uPTkuMy4wCiBf Z2xpYmNfdmVyc2lvbj0yLjMwCiBfbGludXhfdmVyc2lvbj00LjE5Ci0KLV90cmlwbGV0PXBvd2Vy cGNsZS1saW51eC1nbnUKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBsZXR9IgotCiBwa2duYW1lPWNy b3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9uPTEKLXNob3J0X2Rlc2M9IkdO VSBDcm9zcyB0b29sY2hhaW4gZm9yIHRoZSAke190cmlwbGV0fSB0YXJnZXQgKGJpbnV0aWxzL2dj Yy9nbGliYykiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitjb25maWd1cmVfYXJncz0iLS1lbmFi bGUtc2VjdXJlcGx0IC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5IgoraG9zdG1ha2VkZXBlbmRzPSJ0 YXIgZ2NjLW9iamMgZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwg bGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitkZXBlbmRzPSIk e3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQg Y3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50YWluZXI9InE2NiA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+IgotaG9tZXBhZ2U9Imh0dHA6Ly93d3cudm9pZGxpbnV4Lm9yZyIKIGxp Y2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxh dGVyIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogZGlzdGZpbGVzPSIK ICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIu eHoKICAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNp b259LnRhci54egpAQCAtMjQsMzQ5ICsyNSwxOCBAQCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJl ZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIDcxZTE5 Nzg2NzYxMWY2MDU0YWExMTE5YjEzYTBjMGFiYWMxMjgzNDc2NWZlMmQ4MWYzNWFjNTdmODRmNzQy ZDEKICBlMmM0MTE0ZTU2OWFmYmU3ZWRiYzI5MTMxYTQzYmU4MzM4NTBhYjlhNDU5ZDgxYmViMjU4 ODAxNmQyYmJiOGFmCiAgMGM2OGY1NjU1NTI4YWVkNGY5OWRhZTcxYTViMjU5ZWRjOTMyMzlmYTg5 OWUyZGY3OWMwNTUyNzVjMjE3NDlhMSIKLQotbGliMzJkaXNhYmxlZD15ZXMKIG5vY3Jvc3M9eWVz Ci1ub3BpZT15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mt b2JqYyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMt ZGV2ZWwgemxpYi1kZXZlbCIKLWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7 cmV2aXNpb259Igotbm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdj b3YuYSBsaWJnY2NfZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMu YSBsaWJnbmF0LmEgbGliZ21lbS5hIgogCi1pZiBbICIkWEJQU19UQVJHRVRfTElCQyIgIT0gImds aWJjIiBdOyB0aGVuCi0JYnJva2VuPSJnbGliYyBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJs ZSBvbiBnbGliYyIKLWZpCitjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc19saW51eF9h cmNoPXBvd2VycGMKK2Nyb3NzX2djY19za2lwX2dvPXllcworY3Jvc3NfYmludXRpbHNfY29uZmln dXJlX2FyZ3M9Ii0tZW5hYmxlLXNlY3VyZXBsdCIKK2Nyb3NzX2dsaWJjX2NmbGFncz0iLU8yIgog CiBpZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAicHBjbGUiIF07IHRoZW4KIAlicm9rZW49 IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZpCiAKLV9hcHBseV9wYXRj aCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAh IC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0 b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYg JHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3Jj fQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IEFQSSBoZWFkZXJzIGZvciBQb3dlclBDXG4i Ci0KLQljZCBsaW51eC0ke19saW51eF92ZXJzaW9ufQotCi0JbWFrZSBBUkNIPXBvd2VycGMgaGVh ZGVyc19jaGVjawotCW1ha2UgQVJDSD1wb3dlcnBjIElOU1RBTExfSERSX1BBVEg9JHtfc3lzcm9v dH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWlsZF9k b25lCi19Ci0KLV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dy a3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9 Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHNcbiIKLQlbICEgLWQgYmludXRp bHMtYnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0K LQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIK LQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWdvbGQiCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16bGliIgotCV9hcmdzKz0iIC0tZW5h YmxlLXNlY3VyZXBsdCIKLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1 cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QgJiYgbWFrZSAke21ha2Vqb2JzfQot CW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lCi19 Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8u Z2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtf Z2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5w YXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAi QnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3Ry YXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0J X2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0J X2FyZ3MrPSIgLS13aXRob3V0LWhlYWRlcnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlf YXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0 aCIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlz YWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LW11bHRpbGliIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS13aXRoLWdu dS1hcyIKLQlfYXJncys9IiAtLWVuYWJsZS1zZWN1cmVwbHQiCi0KLQkuLi9nY2MtJHtfZ2NjX3Zl cnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5z dGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQotX2dsaWJj X2hlYWRlcnMoKSB7Ci0JbG9jYWwgX2FyZ3MgZgotCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2hl YWRlcnNfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vZ2xpYmMtJHtfZ2xpYmNf dmVyc2lvbn0KLQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzIiBdOyB0 aGVuCi0JCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMvKi5wYXRjaDsg ZG8KLQkJCV9hcHBseV9wYXRjaCAtcDEgIiRmIgotCQlkb25lCi0JZmkKLQotCWNkICR7d3Jrc3Jj fQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdsaWJjIGhlYWRlcnNcbiIKLQotCVsgISAt ZCBnbGliYy1oZWFkZXJzIF0gJiYgbWtkaXIgZ2xpYmMtaGVhZGVycwotCWNkIGdsaWJjLWhlYWRl cnMKLQotCWVjaG8gImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCi0J ZWNobyAibGliY19jdl9jX2NsZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUKLQotCWV4cG9ydCBD Qz0iJHtfdHJpcGxldH0tZ2NjIiBMRD0iJHtfdHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBs ZXR9LWFzIiBDUFA9IiR7X3RyaXBsZXR9LWNwcCIgXAotCQlOTT0iJHtfdHJpcGxldH0tbm0iCi0K LQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWhvc3Q9JHtfdHJpcGxldH0iCi0J X2FyZ3MrPSIgLS13aXRoLWhlYWRlcnM9JHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUiCi0JX2FyZ3Mr PSIgLS1jb25maWctY2FjaGUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtcnBjIgotCV9h cmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLW5zbCIKLQlfYXJncys9IiAtLWVuYWJsZS1rZXJuZWw9 Mi42LjI3IgotCi0JLi4vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9 Ci0KLQltYWtlIC1rIGluc3RhbGwtaGVhZGVycyBjcm9zc19jb21waWxpbmc9eWVzIFwKLQkJaW5z dGFsbF9yb290PSR7X3N5c3Jvb3R9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdsaWJjX2hlYWRlcnNf ZG9uZQotfQotCi1fZ2xpYmNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtz cmN9Ly5nbGliY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1z Z19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdsaWJjXG4iCi0KLQlbICEgLWQgZ2xpYmMtYnVpbGQg XSAmJiBta2RpciBnbGliYy1idWlsZAotCWNkIGdsaWJjLWJ1aWxkCi0KLQllY2hvICJzbGliZGly PS91c3IvbGliMzIiID4gY29uZmlncGFybXMKLQotCWVjaG8gImxpYmNfY3ZfZm9yY2VkX3Vud2lu ZD15ZXMiID4gY29uZmlnLmNhY2hlCi0JZWNobyAibGliY19jdl9jX2NsZWFudXA9eWVzIiA+PiBj b25maWcuY2FjaGUKLQotCWV4cG9ydCBDQz0iJHtfdHJpcGxldH0tZ2NjIiBDWFg9IiR7X3RyaXBs ZXR9LWcrKyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQ PSIke190cmlwbGV0fS1jcHAiIFwKLQkJTk09IiR7X3RyaXBsZXR9LW5tIgotCWV4cG9ydCBDRkxB R1M9Ii1PMiAtcGlwZSIKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGli ZGlyPS91c3IvbGliMzIiCi0JX2FyZ3MrPSIgLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0i IC0td2l0aC1oZWFkZXJzPSR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29u ZmlnLWNhY2hlIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAt LWVuYWJsZS1vYnNvbGV0ZS1uc2wiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXByb2ZpbGUiCi0JX2Fy Z3MrPSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9y IgotCi0JLi4vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQlt YWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9vdH0gaW5zdGFsbAot Ci0JdG91Y2ggJHt3cmtzcmN9Ly5nbGliY19idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7 Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJl dHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2Mg ZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBn Y2MtYnVpbGQKLQotCWV4cG9ydCBDQz0iZ2NjIiBDWFg9ImcrKyIgQ0ZMQUdTPSItT3MgLXBpcGUi Ci0JdW5zZXQgTEQgQVMKLQotCSMgTWFrZSB0aGlzIGxpbmsgdG8gdGFyZ2V0IGxpYnMuCi0JaWYg WyAhIC1mIC5zZWRfc3Vic3RfZG9uZSBdOyB0aGVuCi0JCXNlZCAtZSAicywgL2xpYi8sICR7X3N5 c3Jvb3R9L2xpYi8sZztzLCAvdXNyL2xpYi8sICR7X3N5c3Jvb3R9L3Vzci9saWIvLGciIFwKLQkJ CS1pICR7X3N5c3Jvb3R9L2xpYi9saWJjLnNvCi0JCXNlZCAtZSAicywgL2xpYjMyLywgJHtfc3lz cm9vdH0vbGliMzIvLGc7cywgL3Vzci9saWIzMi8sICR7X3N5c3Jvb3R9L3Vzci9saWIzMi8sZyIg XAotCQkJLWkgJHtfc3lzcm9vdH0vbGliL2xpYmMuc28KLQkJdG91Y2ggLnNlZF9zdWJzdF9kb25l Ci0JZmkKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZXhlY2Rpcj0v dXNyL2xpYiIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdp dGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9Yyxh ZGEsYysrLG9iamMsb2JqLWMrKyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLXdpdGgtZ251LWFz IgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGli IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNqbGotZXhj ZXB0aW9ucyIKLQlfYXJncys9IiAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IgotCV9hcmdzKz0iIC0t ZW5hYmxlLWxvbmctbG9uZ3giCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0i IC0tZW5hYmxlLWxpbmtlci1idWlsZC1pZCIKLQlfYXJncys9IiAtLWVuYWJsZS1nbnUtdW5pcXVl LW9iamVjdCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFibGUt bHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0iIC0tZW5hYmxl LWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9 IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmNp bGtydHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUt bGlidnR2IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzdGRjeHgtcGNoIgotCV9hcmdzKz0iIC0t ZW5hYmxlLWxpYnN0ZGN4eC10aW1lIgotCV9hcmdzKz0iIC0td2l0aC1saW5rZXItaGFzaC1zdHls ZT1nbnUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2VjdXJlcGx0IgotCi0JLi4vZ2NjLSR7X2djY192 ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNo ICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JdW5zZXQgTERG TEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyIgQ1hYRkxBR1M9Ii1PcyIKLQotCWZvciBmIGluIGlu Y2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91 c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQot CQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jv b3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAk e19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290fS9saWIzMgot Ci0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9n bGliY19oZWFkZXJzCi0JX2dsaWJjX2J1aWxkCi0JX2djY19idWlsZAotfQotCi1kb19pbnN0YWxs KCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsg ISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1w ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7REVT VERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQotCQlm aQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0J bG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWIzMgotCi0JIyBpbnN0YWxs IGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNU RElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jr c3JjfS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1v dmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJj YzEuc28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIGxpbnV4 IEFQSSBoZWFkZXJzIGZvciBwb3dlcnBjCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3Zl cnNpb259Ci0JbWFrZSBBUkNIPXBvd2VycGMgSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElSfS8k e19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxs LmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0KLQot CSMgaW5zdGFsbCBnbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L2dsaWJjLWJ1aWxkCi0J bWFrZSBpbnN0YWxsX3Jvb3Q9JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0YWxsIGluc3RhbGwt aGVhZGVycwotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmll cwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2Mv JHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0vJHtf YWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91 c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9 LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtf bWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5z byBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0u c28KLQotCSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4gdGFyZ2V0IGdjYyBhcyBnY2Nn byBuZWVkcyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5lZWRlZCBhdCBydW50aW1l LCBzbyByZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28gaXQgZG9lc24ndCBjb25mbGlj dCB3aXRoIHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9v dH0vdXNyL2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQly bSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVTVERJUn0v dXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3NiaW4sZXRjLHZhcn0K LQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30K LQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLX0KLQotZG9fY2xlYW4oKSB7 Ci0JIyBSZW1vdmUgdGVtcG9yYXJ5IHN0dWZmIGZyb20gbWFzdGVyZGlyCi0Jcm0gLXJmICR7X3N5 c3Jvb3R9Ci0Jcm0gLWYgL3Vzci9iaW4vJHtfdHJpcGxldH0qCi0Jcm0gLXJmIC91c3IvbGliL2dj Yy8ke190cmlwbGV0fQotCXJtIC1yZiAvdXNyL2xpYmV4ZWMvZ2NjLyR7X3RyaXBsZXR9Ci19Ci0K IGNyb3NzLXBvd2VycGNsZS1saW51eC1nbnUtbGliY19wYWNrYWdlKCkgewogCXNob3J0X2Rlc2Mr PSIgLSBnbGliYyBmaWxlcyIKIAlub3N0cmlwPXllcwpAQCAtMzc0LDYgKzQ0LDYgQEAgY3Jvc3Mt cG93ZXJwY2xlLWxpbnV4LWdudS1saWJjX3BhY2thZ2UoKSB7CiAJbm92ZXJpZnlyZGVwcz15ZXMK IAogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtj cm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gYzlkZjdmNTY5NDg3YWU0YTk4YjM3ZGI5YWFhMDQ1 MTYyYTZlNGY5MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAyNiBEZWMgMjAyMCAxODo0Nzo0NyArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMjAvMjZdIGNyb3NzLXBvd2VycGNsZS1saW51eC1tdXNsOiByZXdvcmsgd2l0aCB2 b2lkLWNyb3NzCgotLS0KIHNyY3BrZ3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LW11c2wvdGVtcGxh dGUgfCAyODcgKystLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRp b25zKCspLCAyNzEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1wb3dl cnBjbGUtbGludXgtbXVzbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4 LW11c2wvdGVtcGxhdGUKaW5kZXggNjJhYzc4YzQxMTcuLjg2NGFkYjk3OGNjIDEwMDY0NAotLS0g YS9zcmNwa2dzL2Nyb3NzLXBvd2VycGNsZS1saW51eC1tdXNsL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LW11c2wvdGVtcGxhdGUKQEAgLTEsMjAgKzEsMjEgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLXBvd2VycGNsZS1saW51eC1tdXNsJwotIyBUaGlz IGlzIGFuIGV4cGVyaW1lbnRhbCB0YXJnZXQgZm9yIG5vdyBhbmQgaXMgc3ViamVjdCB0byBjaGFu Z2VzCitfdHJpcGxldD1wb3dlcnBjbGUtbGludXgtbXVzbAogX2JpbnV0aWxzX3ZlcnNpb249Mi4z MgogX2djY192ZXJzaW9uPTkuMy4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNp b249NC4xOQotCi1fdHJpcGxldD1wb3dlcnBjbGUtbGludXgtbXVzbAotX3N5c3Jvb3Q9Ii91c3Iv JHtfdHJpcGxldH0iCi0KIHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwog cmV2aXNpb249MQotCi1zaG9ydF9kZXNjPSJHTlUgQ3Jvc3MgdG9vbGNoYWluIGZvciB0aGUgJHtf dHJpcGxldH0gdGFyZ2V0IChiaW51dGlscy9nY2MvZ2xpYmMpIgorYnVpbGRfc3R5bGU9dm9pZC1j cm9zcworY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLXNlY3VyZXBsdCAtLWRpc2FibGUtdnRhYmxl LXZlcmlmeQorIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIg Z2NjLW9iamMgZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGli bXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitkZXBlbmRzPSIke3Br Z25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jv c3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50YWluZXI9InE2NiA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+IgotaG9tZXBhZ2U9Imh0dHA6Ly93d3cudm9pZGxpbnV4Lm9yZyIKK2hvbWVw YWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0 ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmlu dXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6CkBAIC0yNSwyODEgKzI2 LDI1IEBAIGNoZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1 N2Y4OTY0NDZjODJlOGIzNmU0NzNlZTA0CiAgNzFlMTk3ODY3NjExZjYwNTRhYTExMTliMTNhMGMw YWJhYzEyODM0NzY1ZmUyZDgxZjM1YWM1N2Y4NGY3NDJkMQogIDEzNzBjOWE4MTJiMmNmMmE3ZDky ODAyNTEwY2NhMDA1OGNjMzdlNjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICAwYzY4ZjU2NTU1 MjhhZWQ0Zjk5ZGFlNzFhNWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgot Ci1saWIzMmRpc2FibGVkPXllcwogbm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMK LWNyZWF0ZV93cmtzcmM9eWVzCiAKLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGZsZXgg cGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9InpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2 ZWwgbGlibXBjLWRldmVsIGlzbDE1LWRldmVsIgotbm9zdHJpcF9maWxlcz0ibGliY2FmX3Npbmds ZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmdu YXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21lbS5hIgotZGVwZW5kcz0iJHtwa2du YW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitjcm9zc190cmlwbGV0PSR7X3RyaXBs ZXR9Citjcm9zc19saW51eF9hcmNoPXBvd2VycGMKK2Nyb3NzX2djY19za2lwX2dvPXllcworY3Jv c3NfYmludXRpbHNfY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLXNlY3VyZXBsdCIKK2Nyb3NzX211 c2xfY2ZsYWdzPSItTzIiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJwcGNsZS1t dXNsIiBdOyB0aGVuCiAJYnJva2VuPSJDYW4ndCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0byBpdHNl bGYiCiBmaQogCi1fYXBwbHlfcGF0Y2goKSB7Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJh c2VuYW1lICQyKSIKLQotCWlmIFsgISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KLQkJcGF0 Y2ggLU4gJGFyZ3MgLWkgJDIKLQkJdG91Y2ggLiR7cG5hbWV9X2RvbmUKLQlmaQotfQotCi1fYmlu dXRpbHNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5iaW51dGls c19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwg IkJ1aWxkaW5nIGNyb3NzIGJpbnV0aWxzIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIGJpbnV0aWxz LWJ1aWxkIF0gJiYgbWtkaXIgYmludXRpbHMtYnVpbGQKLQljZCBiaW51dGlscy1idWlsZAotCV9h cmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9h cmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1u bHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13 ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLXdpdGgtc3lz dGVtLXpsaWIiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2VjdXJlcGx0IgotCi0JLi4vYmludXRpbHMt JHtfYmludXRpbHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3Vy ZS1ob3N0ICYmIG1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jr c3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2Nh bCBfYXJncwotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4g MAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNf U1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIk ZiIKLQlkb25lCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVzLyotbXVzbC5w YXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAi QnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3Ry YXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0J X2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0J X2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS13aXRoLW5l d2xpYiIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJncys9IiAtLXdpdGgt bmV3bGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLXRocmVhZHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZl cnMiCi0JX2FyZ3MrPSIgbGliYXRfY3ZfaGF2ZV9pZnVuYz1ubyIKLQlfYXJncys9IiAtLWVuYWJs ZS1zZWN1cmVwbHQiCi0KLQlDRkxBR1M9Ii1PMCAtZzAiIENYWEZMQUdTPSItTzAgLWcwIiBcCi0J CS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFr ZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBf ZG9uZQotfQotCi1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVp bGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWls ZGluZyBMaW51eCBBUEkgaGVhZGVyc1xuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVyc2lvbn0K LQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2tlcm5lbC1saWJjLWhlYWRlcnMvcGF0Y2hl cy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICRmCi0JZG9uZQotCi0JbWFrZSBBUkNI PXBvd2VycGMgaGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD1wb3dlcnBjIElOU1RBTExfSERSX1BB VEg9JHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5s aW51eF9idWlsZF9kb25lCi19Ci0KLV9tdXNsX2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5t dXNsX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVz bF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIG11c2wgbGliY1xuIgotCi0J IyBBcHBseSBtdXNsIHBhdGNoZXMgaWYgdGhlcmUgYXJlIGFueQotCWlmIFsgLWQgIiR7WEJQU19T UkNQS0dESVJ9L211c2wvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtH RElSfS9tdXNsL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDAgIiRmIgot CQlkb25lCi0JZmkKLQotCUNDPSIke190cmlwbGV0fS1nY2MiIENGTEFHUz0iLU9zIC1waXBlIC1m UElDIiBcCi0JCS4vY29uZmlndXJlIC0tcHJlZml4PS91c3IKLQotCW1ha2UgJHttYWtlam9ic30K LQltYWtlIERFU1RESVI9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5t dXNsX2J1aWxkX2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAt ZiAke3dya3NyY30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3Jj fQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdj Yy1idWlsZCBdICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0JX2FyZ3M9Ii0t dGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9 IgotCV9hcmdzKz0iIC0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3Iv bGliIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysr LGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJs ZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1l bmFibGUtZGVmYXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXplciIKLQlf YXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlf YXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1w eCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWVuYWJsZS1s aWJzc3AiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1z eW12ZXJzIgotCV9hcmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2VjdXJlcGx0IgotCi0J Li4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtl am9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQo KSB7Ci0JIyBFbnN1cmUgd2UgdXNlIHNhbmUgZW52aXJvbm1lbnQKLQl1bnNldCBDQyBDWFggQ1BQ IExEIEFTIEFSIFJBTkxJQiBPQkpEVU1QIFJFQURFTEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hYRkxB R1MgQ1BQRkxBR1MgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlwZSIgQ1hYRkxBR1M9 Ii1PcyAtcGlwZSIKLQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRv Ci0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAk e19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBd OyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0K LQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2Yg dXNyL2xpYiAke19zeXNyb290fS9saWIzMgotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290 c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9tdXNsX2J1aWxkCi0JX2djY19idWlsZAotfQotCi1k b19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRv Ci0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJ CW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAh IC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9vdH0v JHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy L2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWIzMgotCi0J IyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4 X3ZlcnNpb259Ci0JbWFrZSBBUkNIPXBvd2VycGMgSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElS fS8ke19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0 YWxsLmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0K LQotCSMgaW5zdGFsbCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWls ZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBn Y2MKLQljZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5z dGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9 L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMg aW5zdGFsbCBtdXNsIGxpYmMgZm9yIHRhcmdldAotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xf dmVyc2lvbn0KLQltYWtlIERFU1RESVI9JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0YWxsCi0K LQkjIFJlbW92ZSB1c2VsZXNzIGhlYWRlcnMuCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9n Y2MvJHtfdHJpcGxldH0vKi9pbmNsdWRlLWZpeGVkCi0KLQkjIE1ha2UgbGQtbXVzbC5zbyBzeW1s aW5rcyByZWxhdGl2ZS4KLQlsbiAtc2YgbGliYy5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci9saWIvbGQtbXVzbC1wb3dlcnBjbGUuc28uMQotCWxuIC1zZiBsaWJjLnNvICR7REVTVERJUn0v JHtfc3lzcm9vdH0vdXNyL2xpYi9sZC1tdXNsLXBvd2VycGNsZS1zZi5zby4xCi0KLQkjIHN5bWxp bmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2dj Y192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2Nf dmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7 X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RF U1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19z eXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25h cmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAt dmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRv IGJ1aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBi dWlsZC4uLiBidXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9t IHRoZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21p YyBwYWNrYWdlCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21p Yy4qCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNy L2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYg JHtERVNURElSfS8ke19zeXNyb290fS97ZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8ke19z eXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L2xpYmV4ZWMKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYi8qLnB5Ci0J cm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWJ9Ci19Ci0KIGNyb3NzLXBvd2Vy cGNsZS1saW51eC1tdXNsLWxpYmNfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gbGliYyBm aWxlcyIKIAlub3N0cmlwPXllcwogCW5vdmVyaWZ5cmRlcHM9eWVzCiAJbm9zaGxpYnByb3ZpZGVz PXllcworCiAJcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9CisJCXZtb3ZlIHVz ci8ke2Nyb3NzX3RyaXBsZXR9CiAJfQogfQoKRnJvbSA4MjgwZDg1MmU0MmYzNmJjNGE1YzAwZDhj NDRmZGU0MTRlMTUzNzQ2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTYXQsIDI2IERlYyAyMDIwIDE4OjU1OjA2ICswMTAwClN1 YmplY3Q6IFtQQVRDSCAyMS8yNl0gY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtZ251OiByZXdvcmsg d2l0aCB2b2lkLWNyb3NzCgotLS0KIHNyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtZ251 L3RlbXBsYXRlIHwgMzY0ICstLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNyBp bnNlcnRpb25zKCspLCAzNDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9z cy1wb3dlcnBjNjRsZS1saW51eC1nbnUvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2 NGxlLWxpbnV4LWdudS90ZW1wbGF0ZQppbmRleCA3MWVmNmJjNGY1Ny4uMDVjNWYzODFiNzUgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtZ251L3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtZ251L3RlbXBsYXRlCkBAIC0xLDE5 ICsxLDIyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1wb3dlcnBjNjRsZS1saW51eC1n bnUnCitfdHJpcGxldD1wb3dlcnBjNjRsZS1saW51eC1nbnUKIF9iaW51dGlsc192ZXJzaW9uPTIu MzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX2dsaWJjX3ZlcnNpb249Mi4zMAogX2xpbnV4X3ZlcnNp b249NC4xOQotCi1fdHJpcGxldD0icG93ZXJwYzY0bGUtbGludXgtZ251IgotX3N5c3Jvb3Q9Ii91 c3IvJHtfdHJpcGxldH0iCi0KIHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4z MwogcmV2aXNpb249MQotc2hvcnRfZGVzYz0iR05VIGNyb3NzIHRvb2xjaGFpbiBmb3IgdGhlICR7 X3RyaXBsZXR9IHRhcmdldHMgKGJpbnV0aWxzL2djYy9nbGliYykiCitidWlsZF9zdHlsZT12b2lk LWNyb3NzCitjb25maWd1cmVfYXJncz0iLS1lbmFibGUtc2VjdXJlcGx0IC0tZGlzYWJsZS12dGFi bGUtdmVyaWZ5IC0td2l0aC1hYmk9ZWxmdjIKKyAtLWVuYWJsZS10YXJnZXRzPXBvd2VycGNsZS1s aW51eCIKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0 aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBn bXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259 XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7X3Ry aXBsZXR9IgogbWFpbnRhaW5lcj0icTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4iCi1ob21lcGFn ZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVy LCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKK2hvbWVwYWdlPSJodHRwczov L3d3dy52b2lkbGludXgub3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMv YmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2NjL2dj Yy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKQEAgLTIzLDM1OSAr MjYsMjYgQEAgY2hlY2tzdW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1 NTU3Zjg5NjQ0NmM4MmU4YjM2ZTQ3M2VlMDQKICA3MWUxOTc4Njc2MTFmNjA1NGFhMTExOWIxM2Ew YzBhYmFjMTI4MzQ3NjVmZTJkODFmMzVhYzU3Zjg0Zjc0MmQxCiAgZTJjNDExNGU1NjlhZmJlN2Vk YmMyOTEzMWE0M2JlODMzODUwYWI5YTQ1OWQ4MWJlYjI1ODgwMTZkMmJiYjhhZgogIDBjNjhmNTY1 NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVkYzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEi Ci0KLWxpYjMyZGlzYWJsZWQ9eWVzCiBub2Nyb3NzPXllcwotbm9waWU9eWVzCi1ub2RlYnVnPXll cwotY3JlYXRlX3dya3NyYz15ZXMKLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1n byBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2 ZWwgemxpYi1kZXZlbCIKLW5vc3RyaXBfZmlsZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBs aWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRf cGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKLWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3Zl cnNpb259XyR7cmV2aXNpb259IgogCi1pZiBbICIkWEJQU19UQVJHRVRfTElCQyIgIT0gImdsaWJj IiBdOyB0aGVuCi0JYnJva2VuPSJnbGliYyBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBv biBnbGliYyIKLWZpCi0KLWlmIFsgIiRYQlBTX1RBUkdFVF9XT1JEU0laRSIgIT0gIjY0IiBdOyB0 aGVuCi0JYnJva2VuPSI2NC1iaXQgY3Jvc3N0b29sY2hhaW4gb25seSBhdmFpbGFibGUgb24gNjQt Yml0IGhvc3QiCi1maQorY3Jvc3NfdHJpcGxldD0ke190cmlwbGV0fQorY3Jvc3NfbGludXhfYXJj aD1wb3dlcnBjCitjcm9zc19iaW51dGlsc19jb25maWd1cmVfYXJncz0iLS1lbmFibGUtc2VjdXJl cGx0IgorIyBleHBsaWNpdGx5IGVuYWJsZSBmb3IgZmluYWwgZ2NjLCBnZm9ydHJhbiBkb2VzIG5v dCBidWlsZCB3aXRob3V0IG9uIHBwYzY0bGUKK2Nyb3NzX2djY19jb25maWd1cmVfYXJncz0iLS1l bmFibGUtbGlicXVhZG1hdGgiCitjcm9zc19nbGliY19jZmxhZ3M9Ii1PMiIKIAogaWYgWyAiJFhC UFNfVEFSR0VUX01BQ0hJTkUiID0gInBwYzY0bGUiIF07IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1 aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZpCiAKLV9hcHBseV9wYXRjaCgpIHsKLQls b2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtw bmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtw bmFtZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwot Ci0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0J Y2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0 cmFwXG4iCi0KLQlbICEgLWQgYmludXRpbHMtYnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWls ZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9 IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNy b290fSIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0 aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1z aGFyZWQiCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16bGliIgotCi0JLi4vYmludXRpbHMtJHtf YmludXRpbHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1o b3N0Ci0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9 Ly5iaW51dGlsc19idWlsZF9kb25lCi19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9h cmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAK LQotCWNkICR7d3Jrc3JjfS9nY2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NS Q1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYi Ci0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgot Ci0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0J Y2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIg LS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLWFiaT1lbGZ2MiIKLQlfYXJn cys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJncys9IiAtLWVuYWJsZS1zZWN1cmVwbHQi Ci0JX2FyZ3MrPSIgLS1lbmFibGUtdGFyZ2V0cz1wb3dlcnBjbGUtbGludXgiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliaXRtIgotCV9hcmdzKz0i IC0td2l0aG91dC1oZWFkZXJzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0 IgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFy ZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LWxpYmdvbXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWRp c2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2Fy Z3MrPSIgLS13aXRoLWdudS1hcyIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJl ICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAk e3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQotCi1fbGludXhfaGVhZGVycygpIHsKLQlb IC1mICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dy a3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBMaW51eCBBUEkgaGVhZGVyc1xuIgotCi0JY2Qg bGludXgtJHtfbGludXhfdmVyc2lvbn0KLQotCW1ha2UgQVJDSD1wb3dlcnBjIGhlYWRlcnNfY2hl Y2sKLQltYWtlIEFSQ0g9cG93ZXJwYyBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3VzciBo ZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQotfQot Ci1fZ2xpYmNfaGVhZGVycygpIHsKLQlsb2NhbCBfYXJncyBmCi0JWyAtZiAke3dya3NyY30vLmds aWJjX2hlYWRlcnNfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vZ2xpYmMtJHtf Z2xpYmNfdmVyc2lvbn0KLQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVz IiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMvKi5w YXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDEgIiRmIgotCQlkb25lCi0JZmkKLQotCWNkICR7 d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdsaWJjIGhlYWRlcnNcbiIKLQot CVsgISAtZCBnbGliYy1oZWFkZXJzIF0gJiYgbWtkaXIgZ2xpYmMtaGVhZGVycwotCWNkIGdsaWJj LWhlYWRlcnMKLQotCWVjaG8gImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNh Y2hlCi0JZWNobyAibGliY19jdl9jX2NsZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUKLQotCWV4 cG9ydCBDQz0iJHtfdHJpcGxldH0tZ2NjIiBMRD0iJHtfdHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7 X3RyaXBsZXR9LWFzIiBDUFA9IiR7X3RyaXBsZXR9LWNwcCIgXAotCQlOTT0iJHtfdHJpcGxldH0t bm0iCi0KLQlfYXJncz0iIC0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1ob3N0PSR7X3RyaXBs ZXR9IgotCV9hcmdzKz0iIC0td2l0aC1oZWFkZXJzPSR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgot CV9hcmdzKz0iIC0tY29uZmlnLWNhY2hlIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLXJw YyIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1uc2wiCi0JX2FyZ3MrPSIgLS1lbmFibGUt a2VybmVsPTIuNi4yNyIKLQotCS4uL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259L2NvbmZpZ3VyZSAk e19hcmdzfQotCi0JbWFrZSAtayBpbnN0YWxsLWhlYWRlcnMgY3Jvc3NfY29tcGlsaW5nPXllcyBc Ci0JCWluc3RhbGxfcm9vdD0ke19zeXNyb290fQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nbGliY19o ZWFkZXJzX2RvbmUKLX0KLQotX2dsaWJjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0JWyAtZiAk e3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9 Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2xpYmNcbiIKLQotCVsgISAtZCBnbGliYy1i dWlsZCBdICYmIG1rZGlyIGdsaWJjLWJ1aWxkCi0JY2QgZ2xpYmMtYnVpbGQKLQotCWVjaG8gInNs aWJkaXI9L3Vzci9saWI2NCIgPiBjb25maWdwYXJtcwotCi0JZWNobyAibGliY19jdl9mb3JjZWRf dW53aW5kPXllcyIgPiBjb25maWcuY2FjaGUKLQllY2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMi ID4+IGNvbmZpZy5jYWNoZQotCi0JZXhwb3J0IENDPSIke190cmlwbGV0fS1nY2MiIENYWD0iJHtf dHJpcGxldH0tZysrIiBMRD0iJHtfdHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFz IiBDUFA9IiR7X3RyaXBsZXR9LWNwcCIgXAotCQlOTT0iJHtfdHJpcGxldH0tbm0iCi0JZXhwb3J0 IENGTEFHUz0iLU8yIC1waXBlIgotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIg LS1saWJkaXI9L3Vzci9saWI2NCIKLQlfYXJncys9IiAtLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2Fy Z3MrPSIgLS13aXRoLWhlYWRlcnM9JHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIg LS1jb25maWctY2FjaGUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdz Kz0iIC0tZW5hYmxlLW9ic29sZXRlLW5zbCIKLQlfYXJncys9IiAtLWRpc2FibGUtcHJvZmlsZSIK LQlfYXJncys9IiAtLWVuYWJsZS1rZXJuZWw9Mi42LjI3IgotCV9hcmdzKz0iIC0tZGlzYWJsZS13 ZXJyb3IiCi0KLQkuLi9nbGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30K LQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGxfcm9vdD0ke19zeXNyb290fSBpbnN0 YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUKLX0KLQotX2djY19idWls ZCgpIHsKLQlsb2NhbCBfYXJncwotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYm IHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBn Y2MgZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQlj ZCBnY2MtYnVpbGQKLQotCXVuc2V0IExEIEFTCi0KLQkjIE1ha2UgdGhpcyBsaW5rIHRvIHRhcmdl dCBsaWJzLgotCWlmIFsgISAtZiAuc2VkX3N1YnN0X2RvbmUgXTsgdGhlbgotCQlzZWQgLWUgInMs IC9saWIvLCAke19zeXNyb290fS9saWIvLGc7cywgL3Vzci9saWIvLCAke19zeXNyb290fS91c3Iv bGliLyxnIiBcCi0JCQktaSAke19zeXNyb290fS91c3IvbGliL2xpYmMuc28KLQkJc2VkIC1lICJz LCAvbGliNjQvLCAke19zeXNyb290fS9saWI2NC8sZztzLCAvdXNyL2xpYjY0LywgJHtfc3lzcm9v dH0vdXNyL2xpYjY0LyxnIiBcCi0JCQktaSAke19zeXNyb290fS91c3IvbGliL2xpYmMuc28KLQkJ dG91Y2ggLnNlZF9zdWJzdF9kb25lCi0JZmkKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9h cmdzKz0iIC0tbGliZGlyPS91c3IvbGliIgotCV9hcmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNyL2xp YiIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lz cm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLXdpdGgtYWJpPWVsZnYyIgotCV9hcmdzKz0i IC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGdvLGZvcnRyYW4sbHRv IgotCV9hcmdzKz0iIC0tZW5hYmxlLXNlY3VyZXBsdCIKLQlfYXJncys9IiAtLWVuYWJsZS10YXJn ZXRzPXBvd2VycGNsZS1saW51eCIKLQlfYXJncys9IiAtLXdpdGgtZ251LWFzIgotCV9hcmdzKz0i IC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0t ZW5hYmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAt LWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWVuYWJsZS1saW5rZXItYnVpbGQtaWQi Ci0JX2FyZ3MrPSIgLS1lbmFibGUtZ251LXVuaXF1ZS1vYmplY3QiCi0JX2FyZ3MrPSIgLS1lbmFi bGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZW5hYmxlLXRocmVhZHM9cG9zaXgiCi0JX2FyZ3MrPSIg LS1lbmFibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9 IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIK LQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGli aXRtIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzdGRjeHgtcGNoIgotCV9hcmdzKz0iIC0tZGlz YWJsZS12dGFibGUtdmVyaWZ5IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMi Ci0KLQlDQz0iZ2NjIiBDWFg9ImcrKyIgQ0ZMQUdTPSItTzIgLXBpcGUiIFwKLQkJLi4vZ2NjLSR7 X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQot CXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JdW5z ZXQgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyAtZlBJQyIgQ1hYRkxBR1M9Ii1PcyAtZlBJ QyIKLQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsg ISAtZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290 fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0J CQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlk b25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGliNjQKLQlsbiAtc2YgdXNyL2xpYiAk e19zeXNyb290fS9saWI2NAotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlf bGludXhfaGVhZGVycwotCV9nbGliY19oZWFkZXJzCi0JX2dsaWJjX2J1aWxkCi0JX2djY19idWls ZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmlu IHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07 IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkK LQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAt c2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtf c3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9s aWI2NAotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzCi0JY2QgJHt3cmtzcmN9L2xpbnV4 LSR7X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPXBvd2VycGMgSU5TVEFMTF9IRFJfUEFUSD0k e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQg JHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5h bWUgLi5pbnN0YWxsLmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5j bHVkZS9kcm0KLQotCSMgaW5zdGFsbCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51 dGlscy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFs bCBjcm9zcyBnY2MKLQljZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVT VERJUn0gaW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAk e0RFU1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9s aWIKLQotCSMgaW5zdGFsbCBnbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L2dsaWJjLWJ1 aWxkCi0JbWFrZSBpbnN0YWxsX3Jvb3Q9JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0YWxsIGlu c3RhbGwtaGVhZGVycwotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxp YnJhcmllcwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xp Yi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7REVTVERJ Un0vJHtfYWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNy b290fS91c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFq b3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25h cmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9y dmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7 cmwsdH0uc28KLQotCSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4gdGFyZ2V0IGdjYyBh cyBnY2NnbyBuZWVkcyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5lZWRlZCBhdCBy dW50aW1lLCBzbyByZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28gaXQgZG9lc24ndCBj b25mbGljdCB3aXRoIHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyL2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1 ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVT VERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve2V0Yyx2YXJ9 Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9 Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0gLWYgJHtERVNURElS fS8ke19zeXNyb290fS97c2JpbixsaWJ9Ci19Ci0KLWRvX2NsZWFuKCkgewotCSMgUmVtb3ZlIHRl bXBvcmFyeSBzdHVmZiBmcm9tIG1hc3RlcmRpcgotCXJtIC1yZiAke19zeXNyb290fQotCXJtIC1m IC91c3IvYmluLyR7X3RyaXBsZXR9KgotCXJtIC1yZiAvdXNyL2xpYi9nY2MvJHtfdHJpcGxldH0K LQlybSAtcmYgL3Vzci9saWJleGVjL2djYy8ke190cmlwbGV0fQotfQotCiBjcm9zcy1wb3dlcnBj NjRsZS1saW51eC1nbnUtbGliY19wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBnbGliYyBm aWxlcyIKIAlub3N0cmlwPXllcwogCW5vdmVyaWZ5cmRlcHM9eWVzCiAJbm9zaGxpYnByb3ZpZGVz PXllcworCiAJcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9CisJCXZtb3ZlIHVz ci8ke2Nyb3NzX3RyaXBsZXR9CiAJfQogfQoKRnJvbSBhZjUyZjQwZTY3MWVmZGRiODQ5NzA4NjA0 OGU2MDA4ZDllMjE2YWUxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTYXQsIDI2IERlYyAyMDIwIDE4OjU4OjEzICswMTAwClN1 YmplY3Q6IFtQQVRDSCAyMi8yNl0gY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtbXVzbDogcmV3b3Jr IHdpdGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dzL2Nyb3NzLXBvd2VycGM2NGxlLWxpbnV4LW11 c2wvdGVtcGxhdGUgfCAzMTYgKy0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUg aW5zZXJ0aW9ucygrKSwgMzAxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jv c3MtcG93ZXJwYzY0bGUtbGludXgtbXVzbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJw YzY0bGUtbGludXgtbXVzbC90ZW1wbGF0ZQppbmRleCBlMDQxY2M1ZDA0MS4uMGUzMmZjOTUyZDkg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtbXVzbC90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2NGxlLWxpbnV4LW11c2wvdGVtcGxhdGUKQEAg LTEsMTcgKzEsMjAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLXBvd2VycGM2NGxlLWxp bnV4LW11c2wnCitfdHJpcGxldD1wb3dlcnBjNjRsZS1saW51eC1tdXNsCiBfYmludXRpbHNfdmVy c2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGlu dXhfdmVyc2lvbj00LjE5CiBfbGlidWNvbnRleHRfdmVyc2lvbj0wLjkuMAotCi1fdHJpcGxldD0i cG93ZXJwYzY0bGUtbGludXgtbXVzbCIKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBsZXR9IgotCiBw a2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9uPTIKLXNob3J0 X2Rlc2M9IkNyb3NzIHRvb2xjaGFpbiBmb3IgcG93ZXJwYzY0bGUgd2l0aCBtdXNsIgorYnVpbGRf c3R5bGU9dm9pZC1jcm9zcworY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLXNlY3VyZXBsdCAtLWRp c2FibGUtdnRhYmxlLXZlcmlmeQorIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IC0td2l0aC1hYmk9 ZWxmdjIgLS1lbmFibGUtdGFyZ2V0cz1wb3dlcnBjbGUtbGludXgiCitob3N0bWFrZWRlcGVuZHM9 InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNs MTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitk ZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rl c2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50YWluZXI9InE2 NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51 eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlU IgpAQCAtMjYsMzE0ICsyOSwyNSBAQCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJh MTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIDEzNzBjOWE4MTJiMmNm MmE3ZDkyODAyNTEwY2NhMDA1OGNjMzdlNjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICAwYzY4 ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0 OWExCiAgMGQ1M2E0MTVhMzA3ZWYxNzUxNTNiYmU2MGE1NzJjOTQwYTkyMmNiNzM2Y2UxMzUzMGI2 NjZlN2VjMjc5NWQ2OCIKLQotbGliMzJkaXNhYmxlZD15ZXMKIG5vY3Jvc3M9eWVzCi1ub3BpZT15 ZXMKLW5vZGVidWc9eWVzCi1jcmVhdGVfd3Jrc3JjPXllcwotaG9zdG1ha2VkZXBlbmRzPSJ0YXIg Z2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9InpsaWItZGV2 ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwgbGlibXBjLWRldmVsIGlzbDE1LWRldmVsIgotbm9zdHJp cF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQot IGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21l bS5hIgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiAK LWlmIFsgIiRYQlBTX1RBUkdFVF9XT1JEU0laRSIgIT0gIjY0IiBdOyB0aGVuCi0JYnJva2VuPSI2 NC1iaXQgY3Jvc3N0b29sY2hhaW4gb25seSBhdmFpbGFibGUgb24gNjQtYml0IGhvc3QiCi1maQor Y3Jvc3NfdHJpcGxldD0ke190cmlwbGV0fQorY3Jvc3NfbGlidWNvbnRleHRfYXJjaD1wcGM2NAor Y3Jvc3NfbGludXhfYXJjaD1wb3dlcnBjCitjcm9zc19iaW51dGlsc19jb25maWd1cmVfYXJncz0i LS1lbmFibGUtc2VjdXJlcGx0IgorY3Jvc3NfbXVzbF9jZmxhZ3M9Ii1PMiIKIAogaWYgWyAiJFhC UFNfVEFSR0VUX01BQ0hJTkUiID0gInBwYzY0bGUtbXVzbCIgXTsgdGhlbgogCWJyb2tlbj0iQ2Fu J3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxmIgogZmkKIAotX2FwcGx5X3BhdGNoKCkg ewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEgLWYg Ii4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRvdWNo IC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2JpbnV0aWxzX2J1aWxkKCkgewotCWxvY2FsIF9h cmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAw Ci0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBiaW51dGlscyBi b290c3RyYXBcbiIKLQotCVsgISAtZCBiaW51dGlscy1idWlsZCBdICYmIG1rZGlyIGJpbnV0aWxz LWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9h cmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7 X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLXdpdGgtc3lzdGVtLXpsaWIiCi0KLQkuLi9iaW51dGls cy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmln dXJlLWhvc3QKLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dy a3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9j YWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1 cm4gMAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hC UFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAw ICIkZiIKLQlkb25lCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVzLyotbXVz bC5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1h bCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290 c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAot CWV4cG9ydCBhY19jdl9jX2NvbXBpbGVyX2dudT15ZXMKLQotCV9hcmdzPSItLXByZWZpeD0vdXNy IgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNy b290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0td2l0aC1hYmk9ZWxmdjIiCi0JX2FyZ3MrPSIg LS1lbmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVjaW1hbC1mbG9hdD1u byIKLQlfYXJncys9IiAtLWVuYWJsZS1zZWN1cmVwbHQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtdGFy Z2V0cz1wb3dlcnBjbGUtbGludXgiCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlfYXJncys9 IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJn b21wIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LXN5bXZlcnMiCi0JX2FyZ3MrPSIgbGliYXRfY3ZfaGF2ZV9pZnVuYz1ubyIKLQotCS4uL2djYy0k e19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0J bWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQot Ci1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZSBd ICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBMaW51 eCBBUEkgaGVhZGVyc1xuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQotCWZvciBm IGluICR7WEJQU19TUkNQS0dESVJ9L2tlcm5lbC1saWJjLWhlYWRlcnMvcGF0Y2hlcy8qLnBhdGNo OyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICRmCi0JZG9uZQotCi0JbWFrZSBBUkNIPXBvd2VycGMg aGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD1wb3dlcnBjIElOU1RBTExfSERSX1BBVEg9JHtfc3lz cm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWls ZF9kb25lCi19Ci0KLV9tdXNsX2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5tdXNsX2J1aWxk X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9u fQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIG11c2wgbGliY1xuIgotCi0JIyBBcHBseSBt dXNsIHBhdGNoZXMgaWYgdGhlcmUgYXJlIGFueQotCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9 L211c2wvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9tdXNs L3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCQlkb25lCi0J ZmkKLQotCUNDPSIke190cmlwbGV0fS1nY2MiIExEPSIke190cmlwbGV0fS1sZCIgQVI9IiR7X3Ry aXBsZXR9LWFyIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgUkFOTElCPSIke190cmlwbGV0fS1y YW5saWIiIFwKLQkJQ0ZMQUdTPSItT3MgLXBpcGUgLWZQSUMgJHtfYXJjaGZsYWdzfSIgXAotCQku L2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyCi0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBERVNU RElSPSR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9k b25lCi19Ci0KLV9saWJ1Y29udGV4dF9idWlsZCgpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGlidWNv bnRleHRfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vbGlidWNvbnRl eHQtJHtfbGlidWNvbnRleHRfdmVyc2lvbn0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBs aWJ1Y29udGV4dFxuIgotCi0JIyBpdCdzIG9rIGlmIHdlJ3JlIHN0YXRpYyBvbmx5IGhlcmUKLQlD Qz0iJHtfdHJpcGxldH0tZ2NjIiBBUj0iJHtfdHJpcGxldH0tYXIiIEFTPSIke190cmlwbGV0fS1h cyIgXAotCQlDRkxBR1M9Ii1PcyAtcGlwZSAke19hcmNoZmxhZ3N9IiBcCi0JCW1ha2UgQVJDSD1w cGM2NCBsaWJ1Y29udGV4dC5hCi0KLQljcCBsaWJ1Y29udGV4dC5hICR7X3N5c3Jvb3R9L3Vzci9s aWIKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZQotfQotCi1fZ2Nj X2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0JWyAtZiAke3dya3NyY30vLmdjY19idWlsZF9kb25l IF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNy b3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdjYy1idWls ZAotCWNkIGdjYy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1s aWJleGVjZGlyPS91c3IvbGliIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9h cmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0td2l0aC1hYmk9 ZWxmdjIiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1j KyssZ28sZm9ydHJhbixsdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVjaW1hbC1mbG9hdD1ubyIK LQlfYXJncys9IiAtLWVuYWJsZS1zZWN1cmVwbHQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtdGFyZ2V0 cz1wb3dlcnBjbGUtbGludXgiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0i IC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9 IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJzc3AiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzYW5p dGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRp c2FibGUtc3ltdmVycyIKLQlfYXJncys9IiAtLWRpc2FibGUtdnRhYmxlLXZlcmlmeSIKLQlfYXJn cys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9j b25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3Jj fS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JIyBFbnN1cmUgd2UgdXNlIHNh bmUgZW52aXJvbm1lbnQKLQl1bnNldCBDQyBDWFggQ1BQIExEIEFTIEFSIFJBTkxJQiBPQkpEVU1Q IFJFQURFTEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hYRkxBR1MgQ1BQRkxBR1MgTERGTEFHUwotCWV4 cG9ydCBDRkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyIgQ1hYRkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyIK LQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAt ZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91 c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQls biAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25l Ci0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke19z eXNyb290fS9saWIzMgotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGlu dXhfaGVhZGVycwotCV9tdXNsX2J1aWxkCi0JX2xpYnVjb250ZXh0X2J1aWxkCi0JX2djY19idWls ZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmlu IHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07 IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkK LQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAt c2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtf c3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9s aWI2NAotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzCi0JY2QgJHt3cmtzcmN9L2xpbnV4 LSR7X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPXBvd2VycGMgSU5TVEFMTF9IRFJfUEFUSD0k e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQg JHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5h bWUgLi5pbnN0YWxsLmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5j bHVkZS9kcm0KLQotCSMgaW5zdGFsbCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51 dGlscy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFs bCBjcm9zcyBnY2MKLQljZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVT VERJUn0gaW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAk e0RFU1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9s aWIKLQotCSMgaW5zdGFsbCBtdXNsIGxpYmMgZm9yIHRhcmdldAotCWNkICR7d3Jrc3JjfS9tdXNs LSR7X211c2xfdmVyc2lvbn0KLQltYWtlIERFU1RESVI9JHtERVNURElSfS8ke19zeXNyb290fSBp bnN0YWxsCi0KLQkjIFJlbW92ZSB1c2VsZXNzIGhlYWRlcnMuCi0Jcm0gLXJmICR7REVTVERJUn0v dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vKi9pbmNsdWRlLWZpeGVkLwotCi0JIyBNYWtlIGxkLW11 c2wtcG93ZXJwYzY0bGUuc28uMSBzeW1saW5rIHJlbGF0aXZlIHRvIGN3ZC4KLQljZCAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQlsbiAtc2YgbGliYy5zbyBsZC1tdXNsLXBvd2VycGM2 NGxlLnNvLjEKLQotCSMgc3ltbGlua3MgZm9yIGduYXJsIGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJp ZXMKLQlfbWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24lLiouKn0KLQlfYWRhbGliPXVzci9saWIvZ2Nj LyR7X3RyaXBsZXR9LyR7X2djY192ZXJzaW9ufS9hZGFsaWIKLQltdiAtdiAke0RFU1RESVJ9LyR7 X2FkYWxpYn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL2xpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF0LSR7X21ham9ydmVy fS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7 X21ham9ydmVyfS5zbyBsaWJnbmFybC5zbwotCWxuIC1zdmYgbGliZ25hdC0ke19tYWpvcnZlcn0u c28gbGliZ25hdC5zbwotCXJtIC12ZiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9 LnNvCi0KLQkjIFdlIG5lZWQgdG8gYnVpbGQgbGliYXRvbWljIGluIHRhcmdldCBnY2MgYXMgZ2Nj Z28gbmVlZHMgaXQgdG8KLQkjIGJ1aWxkLi4uIGJ1dCBpdCdzIG5vdCBuZWVkZWQgYXQgcnVudGlt ZSwgc28gcmVtb3ZlIGl0IGZyb20gdGhlCi0JIyBkZXN0ZGlyIHNvIGl0IGRvZXNuJ3QgY29uZmxp Y3Qgd2l0aCB0aGUgbGliYXRvbWljIHBhY2thZ2UKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3Vzci9saWIvbGliYXRvbWljLioKLQotCSMgUmVtb3ZlIHVubmVjZXNzYXJ5IHN0dWZmCi0J cm0gLWYgJHtERVNURElSfS91c3IvbGliKi9saWJpYmVydHkuYQotCXJtIC1yZiAke0RFU1RESVJ9 L3Vzci9zaGFyZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tldGMsdmFyfQotCXJt IC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQotCXJt IC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliZXhlYwotCXJtIC1mICR7REVTVERJUn0vJHtf c3lzcm9vdH0vbGliLyoucHkKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tzYmluLGxp Yn0KLX0KLQotZG9fY2xlYW4oKSB7Ci0JIyBSZW1vdmUgdGVtcG9yYXJ5IHN0dWZmIGZyb20gbWFz dGVyZGlyCi0Jcm0gLXJmICR7X3N5c3Jvb3R9Ci0Jcm0gLWYgL3Vzci9iaW4vJHtfdHJpcGxldH0q Ci0Jcm0gLXJmIC91c3IvbGliL2djYy8ke190cmlwbGV0fQotCXJtIC1yZiAvdXNyL2xpYmV4ZWMv Z2NjLyR7X3RyaXBsZXR9Ci19Ci0KIGNyb3NzLXBvd2VycGM2NGxlLWxpbnV4LW11c2wtbGliY19w YWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBsaWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJ bm92ZXJpZnlyZGVwcz15ZXMKIAlub3NobGlicHJvdmlkZXM9eWVzCisKIAlwa2dfaW5zdGFsbCgp IHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9 CiB9CgpGcm9tIGMxMTMyOTllZTk2NGZlYTM0MDBhNzU0ZTdhYTkzNTUzZjViYjU0ZTUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFNhdCwgMjYgRGVjIDIwMjAgMTk6MDM6MDIgKzAxMDAKU3ViamVjdDogW1BBVENIIDIzLzI2XSBj cm9zcy1wb3dlcnBjNjQtbGludXgtZ251OiByZXdvcmsgd2l0aCB2b2lkLWNyb3NzCgotLS0KIHNy Y3BrZ3MvY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LWdudS90ZW1wbGF0ZSB8IDM2MiArLS0tLS0tLS0t LS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAzNDcgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjQtbGludXgtZ251L3Rl bXBsYXRlIGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjQtbGludXgtZ251L3RlbXBsYXRlCmluZGV4 IGViY2VjNGM3NmJlLi40NjUxNGFlMWUxNyAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1wb3dl cnBjNjQtbGludXgtZ251L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0LWxp bnV4LWdudS90ZW1wbGF0ZQpAQCAtMSwxOSArMSwyMiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn Y3Jvc3MtcG93ZXJwYzY0LWxpbnV4LWdudScKK190cmlwbGV0PXBvd2VycGM2NC1saW51eC1nbnUK IF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX2dsaWJjX3ZlcnNp b249Mi4zMAogX2xpbnV4X3ZlcnNpb249NC4xOQotCi1fdHJpcGxldD0icG93ZXJwYzY0LWxpbnV4 LWdudSIKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBsZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3Ry aXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9uPTEKLXNob3J0X2Rlc2M9IkdOVSBjcm9zcyB0 b29sY2hhaW4gZm9yIHRoZSAke190cmlwbGV0fSB0YXJnZXRzIChiaW51dGlscy9nY2MvZ2xpYmMp IgorYnVpbGRfc3R5bGU9dm9pZC1jcm9zcworY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLXNlY3Vy ZXBsdCAtLWRpc2FibGUtdnRhYmxlLXZlcmlmeSAtLXdpdGgtYWJpPWVsZnYyCisgLS1lbmFibGUt dGFyZ2V0cz1wb3dlcnBjLWxpbnV4IgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2Nj LWdvIGZsZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1k ZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1l fS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRv b2xjaGFpbiBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJKw7xyZ2VuIEJ1Y2htw7xsbGVy IDxwdWxsbW9sbEB0LW9ubGluZS5kZT4iCi1ob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4 Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BM LTIuMS1vci1sYXRlciIKK2hvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGRp c3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVy c2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7 X2djY192ZXJzaW9ufS50YXIueHoKQEAgLTIzLDM1OSArMjYsMjQgQEAgY2hlY2tzdW09IjBhYjZj NTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4MmU4YjM2ZTQ3M2Vl MDQKICA3MWUxOTc4Njc2MTFmNjA1NGFhMTExOWIxM2EwYzBhYmFjMTI4MzQ3NjVmZTJkODFmMzVh YzU3Zjg0Zjc0MmQxCiAgZTJjNDExNGU1NjlhZmJlN2VkYmMyOTEzMWE0M2JlODMzODUwYWI5YTQ1 OWQ4MWJlYjI1ODgwMTZkMmJiYjhhZgogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVk YzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEiCi0KLWxpYjMyZGlzYWJsZWQ9eWVzCiBu b2Nyb3NzPXllcwotbm9waWU9eWVzCi1ub2RlYnVnPXllcwotY3JlYXRlX3dya3NyYz15ZXMKLWhv c3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1h a2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCIKLW5vc3RyaXBf ZmlsZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBs aWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0u YSIKLWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259IgogCi1p ZiBbICIkWEJQU19UQVJHRVRfTElCQyIgIT0gImdsaWJjIiBdOyB0aGVuCi0JYnJva2VuPSJnbGli YyBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBvbiBnbGliYyIKLWZpCi0KLWlmIFsgIiRY QlBTX1RBUkdFVF9XT1JEU0laRSIgIT0gIjY0IiBdOyB0aGVuCi0JYnJva2VuPSI2NC1iaXQgY3Jv c3N0b29sY2hhaW4gb25seSBhdmFpbGFibGUgb24gNjQtYml0IGhvc3QiCi1maQorY3Jvc3NfdHJp cGxldD0ke190cmlwbGV0fQorY3Jvc3NfbGludXhfYXJjaD1wb3dlcnBjCitjcm9zc19iaW51dGls c19jb25maWd1cmVfYXJncz0iLS1lbmFibGUtc2VjdXJlcGx0IgorY3Jvc3NfZ2xpYmNfY2ZsYWdz PSItTzIiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJwcGM2NCIgXTsgdGhlbgog CWJyb2tlbj0iQ2FuJ3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxmIgogZmkKIAotX2Fw cGx5X3BhdGNoKCkgewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCi0K LQlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1p ICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2JpbnV0aWxzX2J1aWxkKCkg ewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZSBd ICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9z cyBiaW51dGlscyBib290c3RyYXBcbiIKLQotCVsgISAtZCBiaW51dGlscy1idWlsZCBdICYmIG1r ZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQotCV9hcmdzPSItLXByZWZp eD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0 aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLXdpdGgtc3lzdGVtLXpsaWIiCi0K LQkuLi9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQot CW1ha2UgY29uZmlndXJlLWhvc3QKLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0K LQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3Ry YXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2Rv bmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlm b3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBw bHlfcGF0Y2ggLXAwICIkZiIKLQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBn Y2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYmIG1rZGlyIC4u L2djYy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQlfYXJncz0iLS1wcmVmaXg9 L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgt YWJpPWVsZnYyIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0t ZW5hYmxlLXNlY3VyZXBsdCIKLQlfYXJncys9IiAtLWVuYWJsZS10YXJnZXRzPXBvd2VycGNsZS1s aW51eCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1s aWJpdG0iCi0JX2FyZ3MrPSIgLS13aXRob3V0LWhlYWRlcnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXRocmVhZHMiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlf YXJncys9IiAtLWRpc2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWlj IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNqbGot ZXhjZXB0aW9ucyIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS13 aXRoLWdudS1sZCIKLQlfYXJncys9IiAtLXdpdGgtZ251LWFzIgotCi0JLi4vZ2NjLSR7X2djY192 ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGlu c3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19Ci0KLV9saW51 eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0gJiYgcmV0 dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IEFQSSBo ZWFkZXJzXG4iCi0KLQljZCBsaW51eC0ke19saW51eF92ZXJzaW9ufQotCi0JbWFrZSBBUkNIPXBv d2VycGMgaGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD1wb3dlcnBjIElOU1RBTExfSERSX1BBVEg9 JHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51 eF9idWlsZF9kb25lCi19Ci0KLV9nbGliY19oZWFkZXJzKCkgewotCWxvY2FsIF9hcmdzIGYKLQlb IC1mICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7 d3Jrc3JjfS9nbGliYy0ke19nbGliY192ZXJzaW9ufQotCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dE SVJ9L2dsaWJjL3BhdGNoZXMiIF07IHRoZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0v Z2xpYmMvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JCWRv bmUKLQlmaQotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2xp YmMgaGVhZGVyc1xuIgotCi0JWyAhIC1kIGdsaWJjLWhlYWRlcnMgXSAmJiBta2RpciBnbGliYy1o ZWFkZXJzCi0JY2QgZ2xpYmMtaGVhZGVycwotCi0JZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5k PXllcyIgPiBjb25maWcuY2FjaGUKLQllY2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNv bmZpZy5jYWNoZQotCi0JZXhwb3J0IENDPSIke190cmlwbGV0fS1nY2MiIExEPSIke190cmlwbGV0 fS1sZCIgXAotCQlBUz0iJHtfdHJpcGxldH0tYXMiIENQUD0iJHtfdHJpcGxldH0tY3BwIiBcCi0J CU5NPSIke190cmlwbGV0fS1ubSIKLQotCV9hcmdzPSIgLS1wcmVmaXg9L3VzciIKLQlfYXJncys9 IiAtLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLWhlYWRlcnM9JHtfc3lzcm9v dH0vdXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIgLS1jb25maWctY2FjaGUiCi0JX2FyZ3MrPSIgLS1l bmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLW5zbCIKLQlf YXJncys9IiAtLWVuYWJsZS1rZXJuZWw9Mi42LjI3IgotCi0JLi4vZ2xpYmMtJHtfZ2xpYmNfdmVy c2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIC1rIGluc3RhbGwtaGVhZGVycyBjcm9z c19jb21waWxpbmc9eWVzIFwKLQkJaW5zdGFsbF9yb290PSR7X3N5c3Jvb3R9Ci0KLQl0b3VjaCAk e3dya3NyY30vLmdsaWJjX2hlYWRlcnNfZG9uZQotfQotCi1fZ2xpYmNfYnVpbGQoKSB7Ci0JbG9j YWwgX2FyZ3MKLQlbIC1mICR7d3Jrc3JjfS8uZ2xpYmNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAw Ci0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnbGliY1xuIgot Ci0JWyAhIC1kIGdsaWJjLWJ1aWxkIF0gJiYgbWtkaXIgZ2xpYmMtYnVpbGQKLQljZCBnbGliYy1i dWlsZAotCi0JZWNobyAic2xpYmRpcj0vdXNyL2xpYjY0IiA+IGNvbmZpZ3Bhcm1zCi0KLQllY2hv ICJsaWJjX2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQotCWVjaG8gImxpYmNf Y3ZfY19jbGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBs ZXR9LWdjYyIgQ1hYPSIke190cmlwbGV0fS1nKysiIExEPSIke190cmlwbGV0fS1sZCIgXAotCQlB Uz0iJHtfdHJpcGxldH0tYXMiIENQUD0iJHtfdHJpcGxldH0tY3BwIiBcCi0JCU5NPSIke190cmlw bGV0fS1ubSIKLQlleHBvcnQgQ0ZMQUdTPSItTzIgLXBpcGUiCi0KLQlfYXJncz0iLS1wcmVmaXg9 L3VzciIKLQlfYXJncys9IiAtLWxpYmRpcj0vdXNyL2xpYjY0IgotCV9hcmdzKz0iIC0taG9zdD0k e190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtaGVhZGVycz0ke19zeXNyb290fS91c3IvaW5j bHVkZSIKLQlfYXJncys9IiAtLWNvbmZpZy1jYWNoZSIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNv bGV0ZS1ycGMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtbnNsIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1wcm9maWxlIgotCV9hcmdzKz0iIC0tZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQotCS4uL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259L2Nv bmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbF9yb290 PSR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfYnVpbGRfZG9u ZQotfQotCi1fZ2NjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0JWyAtZiAke3dya3NyY30vLmdj Y19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwg IkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1r ZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0JdW5zZXQgTEQgQVMKLQotCSMgTWFrZSB0 aGlzIGxpbmsgdG8gdGFyZ2V0IGxpYnMuCi0JaWYgWyAhIC1mIC5zZWRfc3Vic3RfZG9uZSBdOyB0 aGVuCi0JCXNlZCAtZSAicywgL2xpYi8sICR7X3N5c3Jvb3R9L2xpYi8sZztzLCAvdXNyL2xpYi8s ICR7X3N5c3Jvb3R9L3Vzci9saWIvLGciIFwKLQkJCS1pICR7X3N5c3Jvb3R9L3Vzci9saWIvbGli Yy5zbwotCQlzZWQgLWUgInMsIC9saWI2NC8sICR7X3N5c3Jvb3R9L2xpYjY0LyxnO3MsIC91c3Iv bGliNjQvLCAke19zeXNyb290fS91c3IvbGliNjQvLGciIFwKLQkJCS1pICR7X3N5c3Jvb3R9L3Vz ci9saWIvbGliYy5zbwotCQl0b3VjaCAuc2VkX3N1YnN0X2RvbmUKLQlmaQotCi0JX2FyZ3M9Ii0t cHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS1s aWJleGVjZGlyPS91c3IvbGliIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9h cmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0td2l0aC1hYmk9 ZWxmdjIiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1j KyssZ28sZm9ydHJhbixsdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2VjdXJlcGx0IgotCV9hcmdz Kz0iIC0tZW5hYmxlLXRhcmdldHM9cG93ZXJwY2xlLWxpbnV4IgotCV9hcmdzKz0iIC0td2l0aC1n bnUtYXMiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1sZCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJh ZGEiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQt cGllIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZW5hYmxl LWxpbmtlci1idWlsZC1pZCIKLQlfYXJncys9IiAtLWVuYWJsZS1nbnUtdW5pcXVlLW9iamVjdCIK LQlfYXJncys9IiAtLWVuYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtdGhyZWFkcz1w b3NpeCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1saWJpdG0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnN0ZGN4eC1wY2gi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLXZ0YWJsZS12ZXJpZnkiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LXNqbGotZXhjZXB0aW9ucyIKLQotCUNDPSJnY2MiIENYWD0iZysrIiBDRkxBR1M9Ii1PMiAtcGlw ZSIgXAotCQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFr ZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQotfQotCi1k b19idWlsZCgpIHsKLQl1bnNldCBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIC1mUElDIiBD WFhGTEFHUz0iLU9zIC1mUElDIgotCi0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4g c2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1r ZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290 fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9v dH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWI2NAot CWxuIC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjY0Ci0KLQlfYmludXRpbHNfYnVpbGQKLQlf Z2NjX2Jvb3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0JX2dsaWJjX2hlYWRlcnMKLQlfZ2xpYmNf YnVpbGQKLQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVk ZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9 IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0J CQkJJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIg JHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliNjQKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L2xpYjY0Ci0KLQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMKLQlj ZCAke3dya3NyY30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9cG93ZXJwYyBJ TlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFs bAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1l IC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1yZiAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0aWxzCi0J Y2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5z dGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jrc3JjfS9nY2MtYnVpbGQKLQlt YWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNvKiB0byB0 aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJUn0v JHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIGdsaWJjIGZvciB0YXJnZXQKLQljZCAk e3dya3NyY30vZ2xpYmMtYnVpbGQKLQltYWtlIGluc3RhbGxfcm9vdD0ke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9IGluc3RhbGwgaW5zdGFsbC1oZWFkZXJzCi0KLQkjIHN5bWxpbmtzIGZvciBnbmFybCBh bmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2djY192ZXJzaW9uJS4qLip9 Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2NfdmVyc2lvbn0vYWRhbGli Ci0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7X21ham9ydmVyfS5zbyAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxp Yn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGli Ci0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25hcmwuc28KLQlsbiAtc3Zm IGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAtdmYgJHtERVNURElSfS8k e19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRvIGJ1aWxkIGxpYmF0b21p YyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBidWlsZC4uLiBidXQgaXQn cyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9tIHRoZQotCSMgZGVzdGRp ciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21pYyBwYWNrYWdlCi0Jcm0g LWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21pYy4qCi0KLQkjIFJlbW92 ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5 LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNURElSfS8ke19z eXNyb290fS97ZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Ive3Ni aW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMK LQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tzYmluLGxpYn0KLX0KLQotZG9fY2xlYW4o KSB7Ci0JIyBSZW1vdmUgdGVtcG9yYXJ5IHN0dWZmIGZyb20gbWFzdGVyZGlyCi0Jcm0gLXJmICR7 X3N5c3Jvb3R9Ci0Jcm0gLWYgL3Vzci9iaW4vJHtfdHJpcGxldH0qCi0Jcm0gLXJmIC91c3IvbGli L2djYy8ke190cmlwbGV0fQotCXJtIC1yZiAvdXNyL2xpYmV4ZWMvZ2NjLyR7X3RyaXBsZXR9Ci19 Ci0KIGNyb3NzLXBvd2VycGM2NC1saW51eC1nbnUtbGliY19wYWNrYWdlKCkgewogCXNob3J0X2Rl c2MrPSIgLSBnbGliYyBmaWxlcyIKIAlub3N0cmlwPXllcwogCW5vdmVyaWZ5cmRlcHM9eWVzCiAJ bm9zaGxpYnByb3ZpZGVzPXllcworCiAJcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jv b3R9CisJCXZtb3ZlIHVzci8ke2Nyb3NzX3RyaXBsZXR9CiAJfQogfQoKRnJvbSAxNGUxZWM4YTg3 NGY3ODg0ZmIxMTg5ZDQ5NzMzZTFkOWRlZTliMmVkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTYXQsIDI2IERlYyAyMDIwIDE5 OjA2OjAxICswMTAwClN1YmplY3Q6IFtQQVRDSCAyNC8yNl0gY3Jvc3MtcG93ZXJwYzY0LWxpbnV4 LW11c2w6IHJld29yayB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1wb3dlcnBj NjQtbGludXgtbXVzbC90ZW1wbGF0ZSB8IDMxNiArLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDMwMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2NC1saW51eC1tdXNsL3RlbXBsYXRlIGIvc3JjcGtncy9j cm9zcy1wb3dlcnBjNjQtbGludXgtbXVzbC90ZW1wbGF0ZQppbmRleCBjYmI0NDMxYjYyYS4uYjdj MDlkN2YxYWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LW11c2wv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjQtbGludXgtbXVzbC90ZW1wbGF0 ZQpAQCAtMSwxNyArMSwyMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtcG93ZXJwYzY0 LWxpbnV4LW11c2wnCitfdHJpcGxldD1wb3dlcnBjNjQtbGludXgtbXVzbAogX2JpbnV0aWxzX3Zl cnNpb249Mi4zMgogX2djY192ZXJzaW9uPTkuMy4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xp bnV4X3ZlcnNpb249NC4xOQogX2xpYnVjb250ZXh0X3ZlcnNpb249MC45LjAKLQotX3RyaXBsZXQ9 InBvd2VycGM2NC1saW51eC1tdXNsIgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi0KIHBr Z25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249Mgotc2hvcnRf ZGVzYz0iQ3Jvc3MgdG9vbGNoYWluIGZvciBwb3dlcnBjNjQgd2l0aCBtdXNsIgorYnVpbGRfc3R5 bGU9dm9pZC1jcm9zcworY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLXNlY3VyZXBsdCAtLWRpc2Fi bGUtdnRhYmxlLXZlcmlmeQorIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IC0td2l0aC1hYmk9ZWxm djIgLS1lbmFibGUtdGFyZ2V0cz1wb3dlcnBjLWxpbnV4IgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIg Z2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRl dmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5k cz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJW b2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJxNjYgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPiIKIGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3Jn LyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKQEAg LTI2LDMxNCArMjksMjUgQEAgY2hlY2tzdW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1Yjli NzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4MmU4YjM2ZTQ3M2VlMDQKICAxMzcwYzlhODEyYjJjZjJhN2Q5 MjgwMjUxMGNjYTAwNThjYzM3ZTY2YTdiZWRkNzAwNTFmMGEzNDAxNTAyMmEzCiAgMGM2OGY1NjU1 NTI4YWVkNGY5OWRhZTcxYTViMjU5ZWRjOTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMQog IDBkNTNhNDE1YTMwN2VmMTc1MTUzYmJlNjBhNTcyYzk0MGE5MjJjYjczNmNlMTM1MzBiNjY2ZTdl YzI3OTVkNjgiCi0KLWxpYjMyZGlzYWJsZWQ9eWVzCiBub2Nyb3NzPXllcwotbm9waWU9eWVzCi1u b2RlYnVnPXllcwotY3JlYXRlX3dya3NyYz15ZXMKLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1v YmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJ6bGliLWRldmVsIGdt cC1kZXZlbCBtcGZyLWRldmVsIGxpYm1wYy1kZXZlbCBpc2wxNS1kZXZlbCIKLW5vc3RyaXBfZmls ZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJn bmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIK LWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259IgogCi1pZiBb ICIkWEJQU19UQVJHRVRfV09SRFNJWkUiICE9ICI2NCIgXTsgdGhlbgotICAgICAgICBicm9rZW49 IjY0LWJpdCBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBvbiA2NC1iaXQgaG9zdCIKLWZp Citjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc19saWJ1Y29udGV4dF9hcmNoPXBwYzY0 Citjcm9zc19saW51eF9hcmNoPXBvd2VycGMKK2Nyb3NzX2JpbnV0aWxzX2NvbmZpZ3VyZV9hcmdz PSItLWVuYWJsZS1zZWN1cmVwbHQiCitjcm9zc19tdXNsX2NmbGFncz0iLU8yIgogCiBpZiBbICIk WEJQU19UQVJHRVRfTUFDSElORSIgPSAicHBjNjQtbXVzbCIgXTsgdGhlbgogCWJyb2tlbj0iQ2Fu J3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxmIgogZmkKIAotX2FwcGx5X3BhdGNoKCkg ewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEgLWYg Ii4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRvdWNo IC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2JpbnV0aWxzX2J1aWxkKCkgewotCWxvY2FsIF9h cmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAw Ci0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBiaW51dGlscyBi b290c3RyYXBcbiIKLQotCVsgISAtZCBiaW51dGlscy1idWlsZCBdICYmIG1rZGlyIGJpbnV0aWxz LWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9h cmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7 X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLXdpdGgtc3lzdGVtLXpsaWIiCi0KLQkuLi9iaW51dGls cy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmln dXJlLWhvc3QKLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dy a3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9j YWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1 cm4gMAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hC UFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAw ICIkZiIKLQlkb25lCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVzLyotbXVz bC5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1h bCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290 c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAot CWV4cG9ydCBhY19jdl9jX2NvbXBpbGVyX2dudT15ZXMKLQotCV9hcmdzPSItLXByZWZpeD0vdXNy IgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNy b290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0td2l0aC1hYmk9ZWxmdjIiCi0JX2FyZ3MrPSIg LS1lbmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVjaW1hbC1mbG9hdD1u byIKLQlfYXJncys9IiAtLWVuYWJsZS1zZWN1cmVwbHQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtdGFy Z2V0cz1wb3dlcnBjLWxpbnV4IgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtdGhyZWFkcyIKLQlfYXJn cys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlf YXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliZ29t cCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1z eW12ZXJzIgotCV9hcmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0KLQkuLi9nY2MtJHtf Z2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1h a2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQot X2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAm JiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXgg QVBJIGhlYWRlcnNcbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0KLQlmb3IgZiBp biAke1hCUFNfU1JDUEtHRElSfS9rZXJuZWwtbGliYy1oZWFkZXJzL3BhdGNoZXMvKi5wYXRjaDsg ZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAkZgotCWRvbmUKLQotCW1ha2UgQVJDSD1wb3dlcnBjIGhl YWRlcnNfY2hlY2sKLQltYWtlIEFSQ0g9cG93ZXJwYyBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jv b3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRf ZG9uZQotfQotCi1fbXVzbF9idWlsZCgpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9k b25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0K LQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBtdXNsIGxpYmNcbiIKLQotCSMgQXBwbHkgbXVz bCBwYXRjaGVzIGlmIHRoZXJlIGFyZSBhbnkKLQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9t dXNsL3BhdGNoZXMiIF07IHRoZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9w YXRjaGVzLyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQkJZG9uZQotCWZp Ci0KLQlDQz0iJHtfdHJpcGxldH0tZ2NjIiBMRD0iJHtfdHJpcGxldH0tbGQiIEFSPSIke190cmlw bGV0fS1hciIgXAotCQlBUz0iJHtfdHJpcGxldH0tYXMiIFJBTkxJQj0iJHtfdHJpcGxldH0tcmFu bGliIiBcCi0JCUNGTEFHUz0iLU9zIC1waXBlICR7X2FyY2hmbGFnc30iIFwKLQkJLi9jb25maWd1 cmUgLS1wcmVmaXg9L3VzcgotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgREVTVERJUj0ke19z eXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLm11c2xfYnVpbGRfZG9uZQotfQot Ci1fbGlidWNvbnRleHRfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1 aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2xpYnVjb250ZXh0LSR7X2xp YnVjb250ZXh0X3ZlcnNpb259Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbGlidWNvbnRl eHRcbiIKLQotCSMgaXQncyBvayBpZiB3ZSdyZSBzdGF0aWMgb25seSBoZXJlCi0JQ0M9IiR7X3Ry aXBsZXR9LWdjYyIgQVI9IiR7X3RyaXBsZXR9LWFyIiBBUz0iJHtfdHJpcGxldH0tYXMiIFwKLQkJ Q0ZMQUdTPSItT3MgLXBpcGUgLWZQSUMgJHtfYXJjaGZsYWdzfSIgXAotCQltYWtlIEFSQ0g9cHBj NjQgbGlidWNvbnRleHQuYQotCi0JY3AgbGlidWNvbnRleHQuYSAke19zeXNyb290fS91c3IvbGli Ci0KLQl0b3VjaCAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUKLX0KLQotX2djY19i dWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBd ICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9z cyBnY2MgZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVpbGQK LQljZCBnY2MtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGli ZXhlY2Rpcj0vdXNyL2xpYiIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJn cys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLXdpdGgtYWJpPWVs ZnYyIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysr LGdvLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlY2ltYWwtZmxvYXQ9bm8iCi0J X2FyZ3MrPSIgLS1lbmFibGUtc2VjdXJlcGx0IgotCV9hcmdzKz0iIC0tZW5hYmxlLXRhcmdldHM9 cG93ZXJwYy1saW51eCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1l bmFibGUtbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0iIC0t ZW5hYmxlLWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnNzcCIKLQlfYXJncys9 IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXpl ciIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp Ym11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1zeW12ZXJzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5IgotCV9hcmdzKz0i IGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZp Z3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5n Y2NfYnVpbGRfZG9uZQotfQotCi1kb19idWlsZCgpIHsKLQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBl bnZpcm9ubWVudAotCXVuc2V0IENDIENYWCBDUFAgTEQgQVMgQVIgUkFOTElCIE9CSkRVTVAgUkVB REVMRiBOTQotCXVuc2V0IENGTEFHUyBDWFhGTEFHUyBDUFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0 IENGTEFHUz0iLU9zIC1waXBlIC1mUElDIiBDWFhGTEFHUz0iLU9zIC1waXBlIC1mUElDIgotCi0J Zm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7 X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8k e2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1z ZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQls biAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWI2NAotCWxuIC1zZiB1c3IvbGliICR7X3N5c3Jv b3R9L2xpYjY0Ci0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jvb3RzdHJhcAotCV9saW51eF9o ZWFkZXJzCi0JX211c2xfYnVpbGQKLQlfbGlidWNvbnRleHRfYnVpbGQKLQlfZ2NjX2J1aWxkCi19 Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2Jp bjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhl bgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlp ZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIg JHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtERVNURElSfS8ke19zeXNy b290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvbGliNjQKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYjY0 Ci0KLQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMKLQljZCAke3dya3NyY30vbGludXgtJHtf bGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9cG93ZXJwYyBJTlNUQUxMX0hEUl9QQVRIPSR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAu Lmluc3RhbGwuY21kKQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRl L2RybQotCi0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxz LWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNy b3NzIGdjYwotCWNkICR7d3Jrc3JjfS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElS fSBpbnN0YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVT VERJUn0vdXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgot Ci0JIyBpbnN0YWxsIG11c2wgbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L211c2wtJHtf bXVzbF92ZXJzaW9ufQotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3Rh bGwKLQotCSMgUmVtb3ZlIHVzZWxlc3MgaGVhZGVycy4KLQlybSAtcmYgJHtERVNURElSfS91c3Iv bGliL2djYy8ke190cmlwbGV0fS8qL2luY2x1ZGUtZml4ZWQvCi0KLQkjIE1ha2UgbGQtbXVzbC1w b3dlcnBjNjQuc28uMSBzeW1saW5rIHJlbGF0aXZlIHRvIGN3ZC4KLQljZCAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci9saWIKLQlsbiAtc2YgbGliYy5zbyBsZC1tdXNsLXBvd2VycGM2NC5zby4x Ci0KLQkjIHN5bWxpbmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21h am9ydmVyPSR7X2djY192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlw bGV0fS8ke19nY2NfdmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9 L2xpYmduYXJsLSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIK LQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZl cn0uc28gbGliZ25hcmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmdu YXQuc28KLQlybSAtdmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0J IyBXZSBuZWVkIHRvIGJ1aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRz IGl0IHRvCi0JIyBidWlsZC4uLiBidXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJl bW92ZSBpdCBmcm9tIHRoZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGgg dGhlIGxpYmF0b21pYyBwYWNrYWdlCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Iv bGliL2xpYmF0b21pYy4qCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7 REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hh cmUKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS97ZXRjLHZhcn0KLQlybSAtcmYgJHtE RVNURElSfS8ke19zeXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L2xpYi8qLnB5Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWJ9Ci19Ci0K LWRvX2NsZWFuKCkgewotCSMgUmVtb3ZlIHRlbXBvcmFyeSBzdHVmZiBmcm9tIG1hc3RlcmRpcgot CXJtIC1yZiAke19zeXNyb290fQotCXJtIC1mIC91c3IvYmluLyR7X3RyaXBsZXR9KgotCXJtIC1y ZiAvdXNyL2xpYi9nY2MvJHtfdHJpcGxldH0KLQlybSAtcmYgL3Vzci9saWJleGVjL2djYy8ke190 cmlwbGV0fQotfQotCiBjcm9zcy1wb3dlcnBjNjQtbGludXgtbXVzbC1saWJjX3BhY2thZ2UoKSB7 CiAJc2hvcnRfZGVzYys9IiAtIGxpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlub3ZlcmlmeXJk ZXBzPXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMKKwogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92 ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20g YmM5MTliNjYxMjBhYzkzYmFkYTZiYjM2NWQ1OWU2MGQzNTM1MjRmYiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAyNiBE ZWMgMjAyMCAxOToxMjoxNCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjUvMjZdIGNyb3NzLXg4Nl82 NC1saW51eC1nbnU6IHJld29yayB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy14 ODZfNjQtbGludXgtZ251L3RlbXBsYXRlIHwgMzU3ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDM0MyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2Nyb3NzLXg4Nl82NC1saW51eC1nbnUvdGVtcGxhdGUgYi9zcmNwa2dz L2Nyb3NzLXg4Nl82NC1saW51eC1nbnUvdGVtcGxhdGUKaW5kZXggNGE2OTI4MDc2YTcuLmQzNWY3 NDJmODg0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLXg4Nl82NC1saW51eC1nbnUvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9jcm9zcy14ODZfNjQtbGludXgtZ251L3RlbXBsYXRlCkBAIC0xLDE5 ICsxLDIwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy14ODZfNjQtbGludXgtZ251Jwor X3RyaXBsZXQ9eDg2XzY0LWxpbnV4LWdudQogX2JpbnV0aWxzX3ZlcnNpb249Mi4zMgogX2djY192 ZXJzaW9uPTkuMy4wCiBfZ2xpYmNfdmVyc2lvbj0yLjMwCiBfbGludXhfdmVyc2lvbj00LjE5Ci0K LV90cmlwbGV0PSJ4ODZfNjQtbGludXgtZ251IgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0i Ci0KIHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249MQot c2hvcnRfZGVzYz0iR05VIGNyb3NzIHRvb2xjaGFpbiBmb3IgdGhlICR7X3RyaXBsZXR9IHRhcmdl dHMgKGJpbnV0aWxzL2djYy9nbGliYykiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitob3N0bWFr ZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVw ZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnIt ZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIK K3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50 YWluZXI9InE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+IgotaG9tZXBhZ2U9Imh0dHBzOi8vd3d3 LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1s YXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4 Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2Jp bnV0aWxzX3ZlcnNpb259LnRhci54egogICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNp b259L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CkBAIC0yMywzNTUgKzI0LDI1IEBAIGNoZWNr c3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJl OGIzNmU0NzNlZTA0CiAgNzFlMTk3ODY3NjExZjYwNTRhYTExMTliMTNhMGMwYWJhYzEyODM0NzY1 ZmUyZDgxZjM1YWM1N2Y4NGY3NDJkMQogIGUyYzQxMTRlNTY5YWZiZTdlZGJjMjkxMzFhNDNiZTgz Mzg1MGFiOWE0NTlkODFiZWIyNTg4MDE2ZDJiYmI4YWYKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFl NzFhNWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgotCi1saWIzMmRpc2Fi bGVkPXllcwogbm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtz cmM9eWVzCi1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5 dGhvbjMiCi1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwi Ci1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdj Y19laC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQu YSBsaWJnbWVtLmEiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3Jldmlz aW9ufSIKIAotaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiICE9ICJnbGliYyIgXTsgdGhlbgotCWJy b2tlbj0iZ2xpYmMgY3Jvc3N0b29sY2hhaW4gb25seSBhdmFpbGFibGUgb24gZ2xpYmMiCi1maQot Ci1pZiBbICIkWEJQU19UQVJHRVRfV09SRFNJWkUiICE9ICI2NCIgXTsgdGhlbgotCWJyb2tlbj0i NjQtYml0IGNyb3NzdG9vbGNoYWluIG9ubHkgYXZhaWxhYmxlIG9uIDY0LWJpdCBob3N0IgotZmkK K2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX2xpbnV4X2FyY2g9eDg2CisjIGV4cGxp Y2l0bHkgZW5hYmxlIGZvciBmaW5hbCBnY2MsIGdmb3J0cmFuIGRvZXMgbm90IGJ1aWxkIHdpdGhv dXQgb24geDg2Citjcm9zc19nY2NfY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLWxpYnF1YWRtYXRo IgorY3Jvc3NfZ2xpYmNfY2ZsYWdzPSItTzIiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5F IiA9ICJ4ODZfNjQiIF07IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWlu IHRvIGl0c2VsZiIKIGZpCiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5h bWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhl bgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19 Ci0KLV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30v LmJpbnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNn X25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQg YmludXRpbHMtYnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1 aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlw bGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAt LWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAt LWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIg LS13aXRoLXN5c3RlbS16bGliIgotCi0JLi4vYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0v Y29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1ob3N0Ci0JbWFrZSAke21ha2Vq b2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9k b25lCi19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jr c3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9n Y2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNo ZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCi0JbXNnX25v cm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1i b290c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJh cAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxl dH0iCi0JX2FyZ3MrPSIgLS13aXRob3V0LWhlYWRlcnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5s cyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJx dWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAt LWRpc2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgot CV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdl cz1jIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS13 aXRoLWdudS1hcyIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9 Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30v LmdjY19ib290c3RyYXBfZG9uZQotfQotCi1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jr c3JjfS8ubGludXhfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQlt c2dfbm9ybWFsICJCdWlsZGluZyBMaW51eCBBUEkgaGVhZGVyc1xuIgotCi0JY2QgbGludXgtJHtf bGludXhfdmVyc2lvbn0KLQotCW1ha2UgQVJDSD14ODYgaGVhZGVyc19jaGVjawotCW1ha2UgQVJD SD14ODYgSU5TVEFMTF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0K LQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX2dsaWJjX2hlYWRlcnMo KSB7Ci0JbG9jYWwgX2FyZ3MgZgotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19oZWFkZXJzX2RvbmUg XSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259Ci0J aWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3Ig ZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCQlfYXBw bHlfcGF0Y2ggLXAxICIkZiIKLQkJZG9uZQotCWZpCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9y bWFsICJCdWlsZGluZyBjcm9zcyBnbGliYyBoZWFkZXJzXG4iCi0KLQlbICEgLWQgZ2xpYmMtaGVh ZGVycyBdICYmIG1rZGlyIGdsaWJjLWhlYWRlcnMKLQljZCBnbGliYy1oZWFkZXJzCi0KLQllY2hv ICJsaWJjX2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQotCWVjaG8gImxpYmNf Y3ZfY19jbGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBs ZXR9LWdjYyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQ PSIke190cmlwbGV0fS1jcHAiIFwKLQkJTk09IiR7X3RyaXBsZXR9LW5tIgotCi0JX2FyZ3M9IiAt LXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0taG9zdD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAt LXdpdGgtaGVhZGVycz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIKLQlfYXJncys9IiAtLWNvbmZp Zy1jYWNoZSIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1ycGMiCi0JX2FyZ3MrPSIgLS1l bmFibGUtb2Jzb2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0K LQkuLi9nbGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2Ug LWsgaW5zdGFsbC1oZWFkZXJzIGNyb3NzX2NvbXBpbGluZz15ZXMgXAotCQlpbnN0YWxsX3Jvb3Q9 JHtfc3lzcm9vdH0KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lCi19Ci0K LV9nbGliY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19i dWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1 aWxkaW5nIGNyb3NzIGdsaWJjXG4iCi0KLQlbICEgLWQgZ2xpYmMtYnVpbGQgXSAmJiBta2RpciBn bGliYy1idWlsZAotCWNkIGdsaWJjLWJ1aWxkCi0KLQllY2hvICJzbGliZGlyPS91c3IvbGliNjQi ID4gY29uZmlncGFybXMKLQotCWVjaG8gImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29u ZmlnLmNhY2hlCi0JZWNobyAibGliY19jdl9jX2NsZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUK LQotCWV4cG9ydCBDQz0iJHtfdHJpcGxldH0tZ2NjIiBDWFg9IiR7X3RyaXBsZXR9LWcrKyIgTEQ9 IiR7X3RyaXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIke190cmlwbGV0 fS1jcHAiIFwKLQkJTk09IiR7X3RyaXBsZXR9LW5tIgotCWV4cG9ydCBDRkxBR1M9Ii1PMiAtcGlw ZSIKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZGlyPS91c3IvbGli NjQiCi0JX2FyZ3MrPSIgLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1oZWFk ZXJzPSR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29uZmlnLWNhY2hlIgot CV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNv bGV0ZS1uc2wiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXByb2ZpbGUiCi0JX2FyZ3MrPSIgLS1lbmFi bGUta2VybmVsPTIuNi4yNyIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCi0JLi4vZ2xp YmMtJHtfZ2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpv YnN9Ci0JbWFrZSBpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3 cmtzcmN9Ly5nbGliY19idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2Fy Z3MKLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2Qg JHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlb ICEgLWQgZ2NjLWJ1aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQl1 bnNldCBMRCBBUwotCi0JIyBNYWtlIHRoaXMgbGluayB0byB0YXJnZXQgbGlicy4KLQlpZiBbICEg LWYgLnNlZF9zdWJzdF9kb25lIF07IHRoZW4KLQkJc2VkIC1lICJzLCAvbGliLywgJHtfc3lzcm9v dH0vbGliLyxnO3MsIC91c3IvbGliLywgJHtfc3lzcm9vdH0vdXNyL2xpYi8sZyIgXAotCQkJLWkg JHtfc3lzcm9vdH0vdXNyL2xpYi9saWJjLnNvCi0JCXNlZCAtZSAicywgL2xpYjY0LywgJHtfc3lz cm9vdH0vbGliNjQvLGc7cywgL3Vzci9saWI2NC8sICR7X3N5c3Jvb3R9L3Vzci9saWI2NC8sZyIg XAotCQkJLWkgJHtfc3lzcm9vdH0vdXNyL2xpYi9saWJjLnNvCi0JCXNlZCAtZSAicywgL2xpYi8s ICR7X3N5c3Jvb3R9L2xpYi8sZztzLCAvdXNyL2xpYi8sICR7X3N5c3Jvb3R9L3Vzci9saWIvLGci IFwKLQkJCS1pICR7X3N5c3Jvb3R9L3Vzci9saWIvbGlibS5zbwotCQlzZWQgLWUgInMsIC9saWI2 NC8sICR7X3N5c3Jvb3R9L2xpYjY0LyxnO3MsIC91c3IvbGliNjQvLCAke19zeXNyb290fS91c3Iv bGliNjQvLGciIFwKLQkJCS1pICR7X3N5c3Jvb3R9L3Vzci9saWIvbGlibS5zbwotCQl0b3VjaCAu c2VkX3N1YnN0X2RvbmUKLQlmaQotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIg LS1saWJkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgotCV9h cmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7 X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxv YmotYysrLGdvLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtYXMiCi0JX2FyZ3Mr PSIgLS13aXRoLWdudS1sZCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIg LS1lbmFibGUtbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0i IC0tZW5hYmxlLWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpbmtlci1idWlsZC1p ZCIKLQlfYXJncys9IiAtLWVuYWJsZS1nbnUtdW5pcXVlLW9iamVjdCIKLQlfYXJncys9IiAtLWVu YWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtdGhyZWFkcz1wb3NpeCIKLQlfYXJncys9 IiAtLWVuYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGli IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1s aWJzdGRjeHgtcGNoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0KLQlD Qz0iZ2NjIiBDWFg9ImcrKyIgQ0ZMQUdTPSItTzIgLXBpcGUiIFwKLQkJLi4vZ2NjLSR7X2djY192 ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNo ICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JdW5zZXQgTERG TEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyAtZlBJQyIgQ1hYRkxBR1M9Ii1PcyAtZlBJQyIKLQot CWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAk e19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91c3Iv JHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAt c2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0J bG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGliNjQKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNy b290fS9saWI2NAotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhf aGVhZGVycwotCV9nbGliY19oZWFkZXJzCi0JX2dsaWJjX2J1aWxkCi0JX2djY19idWlsZAotfQot Ci1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47 IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4K LQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYg WyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9v dH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWI2NAot Ci0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzIGZvciB4ODYKLQljZCAke3dya3NyY30vbGlu dXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9eDg2IElOU1RBTExfSERSX1BBVEg9JHtE RVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYgJChmaW5kICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3RhbGwgLW9yIC1uYW1l IC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1 ZGUvZHJtCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3NyY30vYmludXRp bHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIGluc3RhbGwg Y3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RE SVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290Ci0JbXYgJHtE RVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGli Ci0KLQkjIGluc3RhbGwgZ2xpYmMgZm9yIHRhcmdldAotCWNkICR7d3Jrc3JjfS9nbGliYy1idWls ZAotCW1ha2UgaW5zdGFsbF9yb290PSR7REVTVERJUn0vJHtfc3lzcm9vdH0gaW5zdGFsbCBpbnN0 YWxsLWhlYWRlcnMKLQotCSMgc3ltbGlua3MgZm9yIGduYXJsIGFuZCBnbmF0IHNoYXJlZCBsaWJy YXJpZXMKLQlfbWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24lLiouKn0KLQlfYWRhbGliPXVzci9saWIv Z2NjLyR7X3RyaXBsZXR9LyR7X2djY192ZXJzaW9ufS9hZGFsaWIKLQltdiAtdiAke0RFU1RESVJ9 LyR7X2FkYWxpYn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9v dH0vdXNyL2xpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF0LSR7X21ham9y dmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQlsbiAtc3ZmIGxpYmduYXJs LSR7X21ham9ydmVyfS5zbyBsaWJnbmFybC5zbwotCWxuIC1zdmYgbGliZ25hdC0ke19tYWpvcnZl cn0uc28gbGliZ25hdC5zbwotCXJtIC12ZiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25he3Js LHR9LnNvCi0KLQkjIFdlIG5lZWQgdG8gYnVpbGQgbGliYXRvbWljIGluIHRhcmdldCBnY2MgYXMg Z2NjZ28gbmVlZHMgaXQgdG8KLQkjIGJ1aWxkLi4uIGJ1dCBpdCdzIG5vdCBuZWVkZWQgYXQgcnVu dGltZSwgc28gcmVtb3ZlIGl0IGZyb20gdGhlCi0JIyBkZXN0ZGlyIHNvIGl0IGRvZXNuJ3QgY29u ZmxpY3Qgd2l0aCB0aGUgbGliYXRvbWljIHBhY2thZ2UKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci9saWIvbGliYXRvbWljLioKLQotCSMgUmVtb3ZlIHVubmVjZXNzYXJ5IHN0dWZm Ci0Jcm0gLWYgJHtERVNURElSfS91c3IvbGliKi9saWJpYmVydHkuYQotCXJtIC1yZiAke0RFU1RE SVJ9L3Vzci9zaGFyZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tldGMsdmFyfQot CXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQot CXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliZXhlYwotCXJtIC1mICR7REVTVERJUn0v JHtfc3lzcm9vdH0ve3NiaW4sbGlifQotfQotCi1kb19jbGVhbigpIHsKLQkjIFJlbW92ZSB0ZW1w b3Jhcnkgc3R1ZmYgZnJvbSBtYXN0ZXJkaXIKLQlybSAtcmYgJHtfc3lzcm9vdH0KLQlybSAtZiAv dXNyL2Jpbi8ke190cmlwbGV0fSoKLQlybSAtcmYgL3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9Ci0J cm0gLXJmIC91c3IvbGliZXhlYy9nY2MvJHtfdHJpcGxldH0KLX0KLQogY3Jvc3MteDg2XzY0LWxp bnV4LWdudS1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGdsaWJjIGZpbGVzIgog CW5vc3RyaXA9eWVzCiAJbm92ZXJpZnlyZGVwcz15ZXMKIAlub3NobGlicHJvdmlkZXM9eWVzCisK IAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1vdmUgdXNyLyR7Y3Jv c3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIDQ5MjRjNDk4ODk1N2YxNDVjYmQwZjNlNTZhOTMzODAx MzgxNjA4OTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFNhdCwgMjYgRGVjIDIwMjAgMTk6MTU6MjQgKzAxMDAKU3ViamVjdDog W1BBVENIIDI2LzI2XSBjcm9zcy14ODZfNjQtbGludXgtbXVzbDogcmV3b3JrIHdpdGggdm9pZC1j cm9zcwoKLS0tCiBzcmNwa2dzL2Nyb3NzLXg4Nl82NC1saW51eC1tdXNsL3RlbXBsYXRlIHwgMzA0 ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygr KSwgMjkwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MteDg2XzY0LWxp bnV4LW11c2wvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLXg4Nl82NC1saW51eC1tdXNsL3RlbXBs YXRlCmluZGV4IDYzN2ZiZDJlNDM5Li42NWUzNTAxYzhkMSAxMDA2NDQKLS0tIGEvc3JjcGtncy9j cm9zcy14ODZfNjQtbGludXgtbXVzbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLXg4Nl82 NC1saW51eC1tdXNsL3RlbXBsYXRlCkBAIC0xLDE4ICsxLDE4IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdjcm9zcy14ODZfNjQtbGludXgtbXVzbCcKLSMKK190cmlwbGV0PXg4Nl82NC1saW51eC1t dXNsCiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9tdXNsX3Zl cnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj00LjE5CiBfbGlidWNvbnRleHRfdmVyc2lvbj0w LjkuMAotCi1fdHJpcGxldD14ODZfNjQtbGludXgtbXVzbAotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJp cGxldH0iCi0KIHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNp b249NAotc2hvcnRfZGVzYz0iQ3Jvc3MgdG9vbGNoYWluIGZvciB4ODZfNjQgd2l0aCBtdXNsIgor YnVpbGRfc3R5bGU9dm9pZC1jcm9zcworaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2Nj LWdvIGZsZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1k ZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1l fS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRv b2xjaGFpbiBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZv aWRsaW51eC5vcmc+IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlUIgpAQCAtMjcsMzAy ICsyNywyNiBAQCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4Yjlm NzU1NTdmODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEw Y2NhMDA1OGNjMzdlNjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICAwYzY4ZjU2NTU1MjhhZWQ0 Zjk5ZGFlNzFhNWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExCiAgMGQ1M2E0 MTVhMzA3ZWYxNzUxNTNiYmU2MGE1NzJjOTQwYTkyMmNiNzM2Y2UxMzUzMGI2NjZlN2VjMjc5NWQ2 OCIKLQotbGliMzJkaXNhYmxlZD15ZXMKIG5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVidWc9 eWVzCi1jcmVhdGVfd3Jrc3JjPXllcwotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2Nj LWdvIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9InpsaWItZGV2ZWwgZ21wLWRldmVs IG1wZnItZGV2ZWwgbGlibXBjLWRldmVsIGlzbDE1LWRldmVsIgotbm9zdHJpcF9maWxlcz0ibGli Y2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQotIGxpYmduYXJsX3Bp Yy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21lbS5hIgotZGVwZW5k cz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiAKLWlmIFsgIiRYQlBT X1RBUkdFVF9XT1JEU0laRSIgIT0gIjY0IiBdOyB0aGVuCi0JYnJva2VuPSI2NC1iaXQgY3Jvc3N0 b29sY2hhaW4gb25seSBhdmFpbGFibGUgb24gNjQtYml0IGhvc3QiCi1maQorY3Jvc3NfdHJpcGxl dD0ke190cmlwbGV0fQorY3Jvc3NfbGlidWNvbnRleHRfYXJjaD14ODZfNjQKK2Nyb3NzX2xpbnV4 X2FyY2g9eDg2CisjIGV4cGxpY2l0bHkgZW5hYmxlIGZvciBmaW5hbCBnY2MsIGdmb3J0cmFuIGRv ZXMgbm90IGJ1aWxkIHdpdGhvdXQgb24geDg2Citjcm9zc19nY2NfY29uZmlndXJlX2FyZ3M9Ii0t ZW5hYmxlLWxpYnF1YWRtYXRoIgorY3Jvc3NfbXVzbF9jZmxhZ3M9Ii1PMiIKIAogaWYgWyAiJFhC UFNfVEFSR0VUX01BQ0hJTkUiID0gIng4Nl82NC1tdXNsIiBdOyB0aGVuCiAJYnJva2VuPSJDYW4n dCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0byBpdHNlbGYiCiBmaQogCi1fYXBwbHlfcGF0Y2goKSB7 Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKLQotCWlmIFsgISAtZiAi LiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KLQkJcGF0Y2ggLU4gJGFyZ3MgLWkgJDIKLQkJdG91Y2gg LiR7cG5hbWV9X2RvbmUKLQlmaQotfQotCi1fYmludXRpbHNfYnVpbGQoKSB7Ci0JbG9jYWwgX2Fy Z3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAK LQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGJpbnV0aWxzIGJv b3RzdHJhcFxuIgotCi0JWyAhIC1kIGJpbnV0aWxzLWJ1aWxkIF0gJiYgbWtkaXIgYmludXRpbHMt YnVpbGQKLQljZCBiaW51dGlscy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2Fy Z3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtf c3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUt bXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWRpc2Fi bGUtc2hhcmVkIgotCV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxpYiIKLQlfYXJncys9IiAke19m cHVmbGFnc30iCi0KLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUg JHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QKLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFr ZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQot X2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2Nf Ym9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2Nf dmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNo OyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQlkb25lCi0JZm9yIGYgaW4gJHtYQlBTX1NS Q1BLR0RJUn0vZ2NjL2ZpbGVzLyotbXVzbC5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMSAi JGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxu IgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFw Ci0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCWV4cG9ydCBhY19jdl9jX2NvbXBpbGVyX2dudT15ZXMK LQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9 IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZW5h YmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtdGhyZWFkcyIKLQlfYXJncys9 IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJn b21wIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LXN5bXZlcnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiBsaWJhdF9j dl9oYXZlX2lmdW5jPW5vIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2djYy0ke19n Y2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0JZmluZCAtbmFtZSBNYWtlZmlsZSAtZXhl YyBzZWQgLWkgInt9IiAtZSAiczteQ0ZMQUdTLio7JiAtZlBJQyAtRF9fV0NIQVJfVFlQRV9fPWlu dDsiIFw7Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dy a3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQotCi1fbGludXhfaGVhZGVycygpIHsKLQlbIC1m ICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3Ny Y30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBMaW51eCBBUEkgaGVhZGVyc1xuIgotCi0JY2QgbGlu dXgtJHtfbGludXhfdmVyc2lvbn0KLQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2tlcm5l bC1saWJjLWhlYWRlcnMvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICRm Ci0JZG9uZQotCi0JbWFrZSBBUkNIPXg4NiBoZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNIPXg4NiBJ TlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNo ICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQotfQotCi1fbXVzbF9idWlsZCgpIHsKLQlbIC1m ICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3Jj fS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBtdXNs IGxpYmNcbiIKLQotCSMgQXBwbHkgbXVzbCBwYXRjaGVzIGlmIHRoZXJlIGFyZSBhbnkKLQlpZiBb IC1kICIke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMiIF07IHRoZW4KLQkJZm9yIGYgaW4g JHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0 Y2ggLXAwICIkZiIKLQkJZG9uZQotCWZpCi0KLQlDQz0iJHtfdHJpcGxldH0tZ2NjIiBDRkxBR1M9 Ii1PcyAtcGlwZSAtZlBJQyAke19hcmNoZmxhZ3N9IiBcCi0JCS4vY29uZmlndXJlIC0tcHJlZml4 PS91c3IKLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIERFU1RESVI9JHtfc3lzcm9vdH0gaW5z dGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUKLX0KLQotX2xpYnVjb250 ZXh0X2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saWJ1Y29udGV4dF9idWlsZF9kb25lIF0g JiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9saWJ1Y29udGV4dC0ke19saWJ1Y29udGV4dF92 ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGxpYnVjb250ZXh0XG4iCi0KLQkj IGl0J3Mgb2sgaWYgd2UncmUgc3RhdGljIG9ubHkgaGVyZQotCUNDPSIke190cmlwbGV0fS1nY2Mi IEFSPSIke190cmlwbGV0fS1hciIgQVM9IiR7X3RyaXBsZXR9LWFzIiBcCi0JCUNGTEFHUz0iLU9z IC1waXBlICR7X2FyY2hmbGFnc30iIFwKLQkJbWFrZSBBUkNIPXg4Nl82NCBsaWJ1Y29udGV4dC5h Ci0KLQljcCBsaWJ1Y29udGV4dC5hICR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCXRvdWNoICR7d3Jr c3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2J1aWxkKCkgewotCWxvY2Fs IF9hcmdzCi0JWyAtZiAke3dya3NyY30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQot CWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgot Ci0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAot Ci0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGli IgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNy b290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyss b2JqYyxvYmotYysrLGdvLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIK LQlfYXJncys9IiAtLWVuYWJsZS1sdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUi Ci0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGli c3NwIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2Fy Z3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12ZXJzIgotCV9h cmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9Igot Ci0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQlmaW5kIC1uYW1l IE1ha2VmaWxlIC1leGVjIHNlZCAtaSAie30iIC1lICJzO15DRkxBR1MuKjsmIC1mUElDIC1EX19X Q0hBUl9UWVBFX189aW50OyIgXDsKLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jr c3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JIyBFbnN1cmUgd2UgdXNl IHNhbmUgZW52aXJvbm1lbnQKLQl1bnNldCBDQyBDWFggQ1BQIExEIEFTIEFSIFJBTkxJQiBPQkpE VU1QIFJFQURFTEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hYRkxBR1MgQ1BQRkxBR1MgTERGTEFHUwot CWV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyIgQ1hYRkxBR1M9Ii1PcyAtcGlwZSAtZlBJ QyIKLQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsg ISAtZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290 fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0J CQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlk b25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGliNjQKLQlsbiAtc2YgdXNyL2xpYiAk e19zeXNyb290fS9saWI2NAotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlf bGludXhfaGVhZGVycwotCV9tdXNsX2J1aWxkCi0JX2xpYnVjb250ZXh0X2J1aWxkCi0JX2djY19i dWlsZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMg YmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9 IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJ ZmkKLQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQls biAtc2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0v JHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290 fS9saWI2NAotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzIGZvciB4ODYKLQljZCAke3dy a3NyY30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9eDg2IElOU1RBTExfSERS X1BBVEg9JHtERVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYg JChmaW5kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3RhbGwg LW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL2luY2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3Ny Y30vYmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkj IGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJ Uj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290 Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvbGliCi0KLQkjIGluc3RhbGwgbXVzbCBsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3Ny Y30vbXVzbC0ke19tdXNsX3ZlcnNpb259Ci0JbWFrZSBERVNURElSPSR7REVTVERJUn0vJHtfc3lz cm9vdH0gaW5zdGFsbAotCi0JIyBSZW1vdmUgdXNlbGVzcyBoZWFkZXJzLgotCXJtIC1yZiAke0RF U1RESVJ9L3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyovaW5jbHVkZS1maXhlZC8KLQotCSMgTWFr ZSBsZC1tdXNsLXg4Nl82NC5zby4xIHN5bWxpbmsgcmVsYXRpdmUgdG8gY3dkLgotCWNkICR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zZiBsaWJjLnNvIGxkLW11c2wteDg2XzY0 LnNvLjEKLQotCSMgc3ltbGlua3MgZm9yIGduYXJsIGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMK LQlfbWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24lLiouKn0KLQlfYWRhbGliPXVzci9saWIvZ2NjLyR7 X3RyaXBsZXR9LyR7X2djY192ZXJzaW9ufS9hZGFsaWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2Fk YWxpYn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy L2xpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF0LSR7X21ham9ydmVyfS5z byAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7X21h am9ydmVyfS5zbyBsaWJnbmFybC5zbwotCWxuIC1zdmYgbGliZ25hdC0ke19tYWpvcnZlcn0uc28g bGliZ25hdC5zbwotCXJtIC12ZiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9LnNv Ci0KLQkjIFdlIG5lZWQgdG8gYnVpbGQgbGliYXRvbWljIGluIHRhcmdldCBnY2MgYXMgZ2NjZ28g bmVlZHMgaXQgdG8KLQkjIGJ1aWxkLi4uIGJ1dCBpdCdzIG5vdCBuZWVkZWQgYXQgcnVudGltZSwg c28gcmVtb3ZlIGl0IGZyb20gdGhlCi0JIyBkZXN0ZGlyIHNvIGl0IGRvZXNuJ3QgY29uZmxpY3Qg d2l0aCB0aGUgbGliYXRvbWljIHBhY2thZ2UKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L3Vzci9saWIvbGliYXRvbWljLioKLQotCSMgUmVtb3ZlIHVubmVjZXNzYXJ5IHN0dWZmCi0Jcm0g LWYgJHtERVNURElSfS91c3IvbGliKi9saWJpYmVydHkuYQotCXJtIC1yZiAke0RFU1RESVJ9L3Vz ci9zaGFyZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tldGMsdmFyfQotCXJtIC1y ZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1m ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliZXhlYwotCXJtIC1mICR7REVTVERJUn0vJHtfc3lz cm9vdH0vbGliLyoucHkKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tzYmluLGxpYn0K LX0KLQogY3Jvc3MteDg2XzY0LWxpbnV4LW11c2wtbGliY19wYWNrYWdlKCkgewogCXNob3J0X2Rl c2MrPSIgLSBsaWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJbm92ZXJpZnlyZGVwcz15ZXMKIAlu b3NobGlicHJvdmlkZXM9eWVzCisKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9v dH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9Cg== --===============0951283120507729850==--