From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from inbox.vuxu.org (localhost [IPv6:::1]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 7085036e for ; Thu, 4 Jul 2019 09:03:21 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============3173228094846490736==" MIME-Version: 1.0 Subject: Re: [PR PATCH] [Updated] xbps-src: multiple performance improvements To: ml@inbox.vuxu.org From: voidlinux-github@inbox.vuxu.org Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Thu, 04 Jul 2019 11:03:21 +0200 Message-ID: <20190704090321.np-ukrFycS039inLzsE8HWSLUdto1sGptB3U9K7ZbW4@z> GitHub notification mails are now in MIME to allow UTF8. --===============3173228094846490736== MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgeHRyYWVtZSBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20veHRy YWVtZS92b2lkLXBhY2thZ2VzIHhicHMtc3JjLXVsdHJhLWZhc3QKaHR0cHM6Ly9naXRodWIuY29t L3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzEyNzk3Cgp4YnBzLXNyYzogbXVsdGlwbGUg cGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzCnhicHMtc3JjOiBtdWx0aXBsZSBwZXJmb3JtYW5jZSBp bXByb3ZlbWVudHMNCg0KLSB1c2UgeGJwcy1jaGVja3ZlcnMoMSkgdG8gcmVzb2x2ZSBkZXBlbmRl bmNpZXMuDQotIGFsbCBkZXBlbmRlbmNpZXMgYXJlIGluc3RhbGxlZCBhdCBvbmNlIGZvciB0aGUg aG9zdCBhbmQgdGFyZ2V0Lg0KLSB0aGUgYHNob3ctYnVpbGQtZGVwc2AgdGFyZ2V0IGlzIG5vdyBt dWNoIGZhc3Rlci4NCi0gdGhlIGB1cGRhdGUtYnVsay9zaG93LXJlcG8tdXBkYXRlc2AgdGFyZ2V0 cyBhcmUgbm93IG11Y2ggZmFzdGVyLg0KLSB0aGUgYHVwZGF0ZS1zeXMvc2hvdy1zeXMtdXBkYXRl c2AgdGFyZ2V0cyBhcmUgbm93IG11Y2ggZmFzdGVyLg0KLSB0aGUgYGJvb3RzdHJhcGAgdGFyZ2V0 IG5vdyB3b3JrcyBvbiBtdXNsIGhvc3RzLg0KLSBzaW1wbGlmaWVkIHNvbWUgbG9vcHMuDQotIHVz ZSBjdXQoMSkgcmF0aGVyIHRoYW4gYXdrKDEpIHdoZXJlIGFwcGxpY2FibGUuDQotIG11bHRpcGxl IHJhbmRvbSBjaGFuZ2VzIHRvIGltcHJvdmUgcGVyZm9ybWFuY2UuDQoNCiBCYXNlZCBvbiB3b3Jr IHN0YXJ0ZWQgYnkgQER1bmNhZW4gb24gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9wdWxsLzEyNDMzDQoNCkNsb3NlIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxp bnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8xMjQzMw0KQ2xvc2UgaHR0cHM6Ly9naXRodWIuY29tL3Zv aWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzExMjgyCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRw czovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMTI3OTcucGF0Y2gg aXMgYXR0YWNoZWQ= --===============3173228094846490736== Content-Type: application/text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-xbps-src-ultra-fast-12797.patch" RnJvbSAwODM4YmJjYTU4ODE3YzFkNjI1Yjc4OTlhODcwNGNjMTgzNzk2ZmJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKdWFuIFJQIDx4dHJhZW1lQGdtYWlsLmNvbT4KRGF0ZTogV2Vk LCAzIEp1bCAyMDE5IDE5OjM2OjIyICswMjAwClN1YmplY3Q6IFtQQVRDSCAxLzZdIHhicHMtc3Jj OiBtdWx0aXBsZSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMuCgotIHVzZSB4YnBzLWNoZWNrdmVy cygxKSB0byByZXNvbHZlIGRlcGVuZGVuY2llcy4KLSBhbGwgZGVwZW5kZW5jaWVzIGFyZSBpbnN0 YWxsZWQgYXQgb25jZSBmb3IgdGhlIGhvc3QgYW5kIHRhcmdldC4KLSB0aGUgYHNob3ctYnVpbGQt ZGVwc2AgdGFyZ2V0IGlzIG5vdyBtdWNoIGZhc3Rlci4KLSB0aGUgYHVwZGF0ZS1idWxrL3Nob3ct cmVwby11cGRhdGVzYCB0YXJnZXRzIGFyZSBub3cgbXVjaCBmYXN0ZXIuCi0gdGhlIGB1cGRhdGUt c3lzL3Nob3ctc3lzLXVwZGF0ZXNgIHRhcmdldHMgYXJlIG5vdyBtdWNoIGZhc3Rlci4KLSB0aGUg YGJvb3RzdHJhcGAgdGFyZ2V0IG5vdyB3b3JrcyBvbiBtdXNsIGhvc3RzLgotIHNpbXBsaWZpZWQg c29tZSBsb29wcy4KLSB1c2UgY3V0KDEpIHJhdGhlciB0aGFuIGF3aygxKSB3aGVyZSBhcHBsaWNh YmxlLgotIG11bHRpcGxlIHJhbmRvbSBjaGFuZ2VzIHRvIGltcHJvdmUgcGVyZm9ybWFuY2UuCgpC YXNlZCBvbiB3b3JrIHN0YXJ0ZWQgYnkgQER1bmNhZW4gb24gaHR0cHM6Ly9naXRodWIuY29tL3Zv aWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzEyNDMzCgpDbG9zZSBodHRwczovL2dpdGh1Yi5j b20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMTI0MzMKQ2xvc2UgaHR0cHM6Ly9naXRo dWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzExMjgyCi0tLQogLmdpdGlnbm9y ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGNvbW1vbi9ob29r cy9kby1wa2cvMDAtZ2VuLXBrZy5zaCAgICAgICAgICAgICB8ICAgOCArLQogLi4uL2hvb2tzL3By ZS1wa2cvMDQtZ2VuZXJhdGUtcnVudGltZS1kZXBzLnNoIHwgIDQxICstCiBjb21tb24vaG9va3Mv cHJlLXBrZy85OS1wa2dsaW50LnNoICAgICAgICAgICAgfCAgIDQgKy0KIGNvbW1vbi94YnBzLXNy Yy9saWJleGVjL2J1aWxkLnNoICAgICAgICAgICAgICB8ICAgNCAtCiBjb21tb24veGJwcy1zcmMv c2h1dGlscy9idWlsZF9kZXBlbmRlbmNpZXMuc2ggfCA0ODYgKysrKysrKy0tLS0tLS0tLS0tCiBj b21tb24veGJwcy1zcmMvc2h1dGlscy9idWxrLnNoICAgICAgICAgICAgICAgfCAgNDAgKy0KIGNv bW1vbi94YnBzLXNyYy9zaHV0aWxzL2Nocm9vdC5zaCAgICAgICAgICAgICB8ICAyMSArLQogY29t bW9uL3hicHMtc3JjL3NodXRpbHMvY29tbW9uLnNoICAgICAgICAgICAgIHwgIDE2ICstCiBjb21t b24veGJwcy1zcmMvc2h1dGlscy9jcm9zcy5zaCAgICAgICAgICAgICAgfCAgMTMgKy0KIGNvbW1v bi94YnBzLXNyYy9zaHV0aWxzL3BrZ3RhcmdldC5zaCAgICAgICAgICB8ICAgNCArCiBjb21tb24v eGJwcy1zcmMvc2h1dGlscy9zaG93LnNoICAgICAgICAgICAgICAgfCAgNDEgKy0KIHhicHMtc3Jj ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMyNCArKysrKystLS0tLS0K IDEzIGZpbGVzIGNoYW5nZWQsIDQwMSBpbnNlcnRpb25zKCspLCA2MDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggYWNjNmJmMzM0NzkuLjU5 MWIzNTA3NTkzIDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTcs MyArNyw0IEBAIG1hc3RlcmRpcioKIGhvc3RkaXIqCiBldGMvY29uZgogZXRjL3ZpcnR1YWwKKy54 YnBzLWNoZWNrdmVycy5wbGlzdApkaWZmIC0tZ2l0IGEvY29tbW9uL2hvb2tzL2RvLXBrZy8wMC1n ZW4tcGtnLnNoIGIvY29tbW9uL2hvb2tzL2RvLXBrZy8wMC1nZW4tcGtnLnNoCmluZGV4IDc4ZWMy YTE0MjJhLi5jMGVkMDg4ZGE5ZCAxMDA2NDQKLS0tIGEvY29tbW9uL2hvb2tzL2RvLXBrZy8wMC1n ZW4tcGtnLnNoCisrKyBiL2NvbW1vbi9ob29rcy9kby1wa2cvMDAtZ2VuLXBrZy5zaApAQCAtMzIs MTYgKzMyLDE2IEBAIGdlbnBrZygpIHsKIAogCV9wcmVzZXJ2ZT0ke3ByZXNlcnZlOistcH0KIAlp ZiBbIC1zICR7UEtHREVTVERJUn0vcmRlcHMgXTsgdGhlbgotCQlfZGVwcz0iJChjYXQgJHtQS0dE RVNURElSfS9yZGVwcykiCisJCV9kZXBzPSIkKDwke1BLR0RFU1RESVJ9L3JkZXBzKSIKIAlmaQog CWlmIFsgLXMgJHtQS0dERVNURElSfS9zaGxpYi1wcm92aWRlcyBdOyB0aGVuCi0JCV9zaHByb3Zp ZGVzPSIkKGNhdCAke1BLR0RFU1RESVJ9L3NobGliLXByb3ZpZGVzKSIKKwkJX3NocHJvdmlkZXM9 IiQoPCR7UEtHREVTVERJUn0vc2hsaWItcHJvdmlkZXMpIgogCWZpCiAJaWYgWyAtcyAke1BLR0RF U1RESVJ9L3NobGliLXJlcXVpcmVzIF07IHRoZW4KLQkJX3NocmVxdWlyZXM9IiQoY2F0ICR7UEtH REVTVERJUn0vc2hsaWItcmVxdWlyZXMpIgorCQlfc2hyZXF1aXJlcz0iJCg8JHtQS0dERVNURElS fS9zaGxpYi1yZXF1aXJlcykiCiAJZmkKIAlpZiBbIC1zICR7WEJQU19TVEFURURJUn0vZ2l0cmV2 IF07IHRoZW4KLQkJX2dpdHJldnM9IiQoY2F0ICR7WEJQU19TVEFURURJUn0vZ2l0cmV2KSIKKwkJ X2dpdHJldnM9IiQoPCR7WEJQU19TVEFURURJUn0vZ2l0cmV2KSIKIAlmaQogCiAJIyBTdHJpcHBp bmcgd2hpdGVzcGFjZXMKZGlmZiAtLWdpdCBhL2NvbW1vbi9ob29rcy9wcmUtcGtnLzA0LWdlbmVy YXRlLXJ1bnRpbWUtZGVwcy5zaCBiL2NvbW1vbi9ob29rcy9wcmUtcGtnLzA0LWdlbmVyYXRlLXJ1 bnRpbWUtZGVwcy5zaAppbmRleCA2MjA3NzAyMjcxMS4uNmU0NWI3ZGQzYzMgMTAwNjQ0Ci0tLSBh L2NvbW1vbi9ob29rcy9wcmUtcGtnLzA0LWdlbmVyYXRlLXJ1bnRpbWUtZGVwcy5zaAorKysgYi9j b21tb24vaG9va3MvcHJlLXBrZy8wNC1nZW5lcmF0ZS1ydW50aW1lLWRlcHMuc2gKQEAgLTUsNyAr NSw3IEBACiAjCS0gR2VuZXJhdGVzIHNobGliLXJlcXVpcmVzIGZpbGUgZm9yIHhicHMtY3JlYXRl KDEpCiAKIGFkZF9ydW5kZXAoKSB7Ci0gICAgbG9jYWwgZGVwPSIkMSIgaT0gcnBrZ2RlcD0gX2Rl cG5hbWU9IF9yZGVwcz0gZm91bmQ9CisgICAgbG9jYWwgZGVwPSIkMSIgaT0gcnBrZ2RlcD0gX2Rl cG5hbWU9IGZvdW5kPQogCiAgICAgX2RlcG5hbWU9IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtn ZGVwbmFtZSAke2RlcH0gMj4vZGV2L251bGwpIgogICAgIGlmIFsgLXogIiR7X2RlcG5hbWV9IiBd OyB0aGVuCkBAIC02OCwyNiArNjgsMTkgQEAgaG9vaygpIHsKICAgICBleGVjIDwgJGRlcHNmdG1w CiAgICAgd2hpbGUgcmVhZCBmOyBkbwogICAgICAgICBsZj0ke2YjJHtQS0dERVNURElSfX0KLQlp ZiBbICIke3NraXByZGVwcy8ke2xmfS99IiAhPSAiJHtza2lwcmRlcHN9IiBdOyB0aGVuCi0JCW1z Z19ub3JtYWwgIlNraXBwaW5nIGRlcGVuZGVuY3kgc2NhbiBmb3IgJHtsZn1cbiIKLQkJY29udGlu dWUKLQlmaQorCSAgICBpZiBbICIke3NraXByZGVwcy8ke2xmfS99IiAhPSAiJHtza2lwcmRlcHN9 IiBdOyB0aGVuCisJCSAgICBtc2dfbm9ybWFsICJTa2lwcGluZyBkZXBlbmRlbmN5IHNjYW4gZm9y ICR7bGZ9XG4iCisJCSAgICBjb250aW51ZQorCSAgICBmaQogICAgICAgICBjYXNlICIkKGZpbGUg LWJpICIkZiIpIiBpbgogICAgICAgICAgICAgYXBwbGljYXRpb24veC0qZXhlY3V0YWJsZSp8YXBw bGljYXRpb24veC1zaGFyZWRsaWIqKQogICAgICAgICAgICAgICAgIGZvciBubGliIGluICQoJE9C SkRVTVAgLXAgIiRmInxncmVwIE5FRURFRHxhd2sgJ3twcmludCAkMn0nKTsgZG8KLSAgICAgICAg ICAgICAgICAgICAgaWYgWyAteiAiJHZlcmlmeV9kZXBzIiBdOyB0aGVuCi0gICAgICAgICAgICAg ICAgICAgICAgICB2ZXJpZnlfZGVwcz0iJG5saWIiCi0gICAgICAgICAgICAgICAgICAgICAgICBj b250aW51ZQotICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICBbIC16 ICIkdmVyaWZ5X2RlcHMiIF0gJiYgdmVyaWZ5X2RlcHM9IiRubGliIiAmJiBjb250aW51ZQorICAg ICAgICAgICAgICAgICAgICBmb3VuZD0wCiAgICAgICAgICAgICAgICAgICAgIGZvciBqIGluICR7 dmVyaWZ5X2RlcHN9OyBkbwotICAgICAgICAgICAgICAgICAgICAgICAgWyAiJGoiICE9ICIkbmxp YiIgXSAmJiBjb250aW51ZQotICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRfZHVwPTEKLSAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICBbWyAk aiA9PSAkbmxpYiBdXSAmJiBmb3VuZD0xICYmIGJyZWFrCiAgICAgICAgICAgICAgICAgICAgIGRv bmUKLSAgICAgICAgICAgICAgICAgICAgaWYgWyAteiAiJGZvdW5kX2R1cCIgXTsgdGhlbgotICAg ICAgICAgICAgICAgICAgICAgICAgdmVyaWZ5X2RlcHM9IiR2ZXJpZnlfZGVwcyAkbmxpYiIKLSAg ICAgICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICAgICAgdW5zZXQgZm91bmRfZHVw CisgICAgICAgICAgICAgICAgICAgIFtbICRmb3VuZCAtZXEgMCBdXSAmJiB2ZXJpZnlfZGVwcz0i JHZlcmlmeV9kZXBzICRubGliIgogICAgICAgICAgICAgICAgIGRvbmUKICAgICAgICAgICAgICAg ICA7OwogICAgICAgICBlc2FjCkBAIC05NywxMyArOTAsMTMgQEAgaG9vaygpIHsKIAogICAgICMK ICAgICAjIEFkZCByZXF1aXJlZCBydW4gdGltZSBwYWNrYWdlcyBieSB1c2luZyByZXF1aXJlZCBz aGxpYnMgcmVzb2x2ZWQKLSAgICAjIGFib3ZlLCB0aGUgbWFwcGluZyBpcyBkb25lIHRocnUgdGhl IG1hcHBpbmdfc2hsaWJfYmlucGtnLnR4dCBmaWxlLgorICAgICMgYWJvdmUsIHRoZSBtYXBwaW5n IGlzIGRvbmUgdGhydSB0aGUgY29tbW9uL3NobGlicyBmaWxlLgogICAgICMKICAgICBmb3IgZiBp biAke3ZlcmlmeV9kZXBzfTsgZG8KICAgICAgICAgdW5zZXQgX2YgaiByZGVwIF9yZGVwIHJkZXBj bnQgc29uYW1lIF9wa2duYW1lIF9yZGVwdmVyIGZvdW5kCiAgICAgICAgIF9mPSQoZWNobyAiJGYi fHNlZCAtRSAnc3xcK3xcXCt8ZycpCi0gICAgICAgIHJkZXA9IiQoZ3JlcCAtRSAiXiR7X2Z9W1s6 Ymxhbms6XV0rLiokIiAkbWFwc2hsaWJzfGF3ayAne3ByaW50ICQyfScpIgotICAgICAgICByZGVw Y250PSIkKGdyZXAgLUUgIl4ke19mfVtbOmJsYW5rOl1dKy4qJCIgJG1hcHNobGlic3xhd2sgJ3tw cmludCAkMn0nfHdjIC1sKSIKKyAgICAgICAgcmRlcD0iJChncmVwIC1FICJeJHtfZn1bWzpibGFu azpdXSsuKiQiICRtYXBzaGxpYnN8Y3V0IC1kICcgJyAtZjIpIgorICAgICAgICByZGVwY250PSIk KGdyZXAgLUUgIl4ke19mfVtbOmJsYW5rOl1dKy4qJCIgJG1hcHNobGlic3xjdXQgLWQgJyAnIC1m Mnx3YyAtbCkiCiAgICAgICAgIGlmIFsgLXogIiRyZGVwIiBdOyB0aGVuCiAgICAgICAgICAgICAj IElnbm9yZSBsaWJzIGJ5IGN1cnJlbnQgcGtnCiAgICAgICAgICAgICBzb25hbWU9JChmaW5kICR7 UEtHREVTVERJUn0gLW5hbWUgIiRmIikKQEAgLTEyMSwxNSArMTE0LDkgQEAgaG9vaygpIHsKICAg ICAgICAgICAgICAgICBfcGtnbmFtZT0kKCRYQlBTX1VIRUxQRVJfQ01EIGdldHBrZ25hbWUgIiRq IikKICAgICAgICAgICAgICAgICAjIGlmIHRoZXJlJ3MgYSBTT05BTUUgbWF0Y2hpbmcgcGtnbmFt ZSwgdXNlIGl0LgogICAgICAgICAgICAgICAgIGZvciB4IGluICR7cGtnbmFtZX0gJHtzdWJwYWNr YWdlc307IGRvCi0gICAgICAgICAgICAgICAgICAgIGlmIFsgIiR7X3BrZ25hbWV9IiA9ICIke3h9 IiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgICAgICBmb3VuZD0xCi0gICAgICAgICAgICAg ICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAg ICAgICBbWyAkX3BrZ25hbWUgPT0gJHggXV0gJiYgZm91bmQ9MSAmJiBicmVhawogICAgICAgICAg ICAgICAgIGRvbmUKLSAgICAgICAgICAgICAgICBpZiBbIC1uICIkZm91bmQiIF07IHRoZW4KLSAg ICAgICAgICAgICAgICAgICAgX3JkZXA9JGoKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAg ICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgIFtbICRmb3VuZCBdXSAmJiBfcmRlcD0k aiAmJiBicmVhawogICAgICAgICAgICAgZG9uZQogICAgICAgICAgICAgaWYgWyAteiAiJHtfcmRl cH0iIF07IHRoZW4KICAgICAgICAgICAgICAgICAjIG90aGVyd2lzZSBwaWNrIHVwIHRoZSBmaXJz dCBvbmUuCmRpZmYgLS1naXQgYS9jb21tb24vaG9va3MvcHJlLXBrZy85OS1wa2dsaW50LnNoIGIv Y29tbW9uL2hvb2tzL3ByZS1wa2cvOTktcGtnbGludC5zaAppbmRleCA3YWUxODNhZThlOC4uYWIy YjIxNTUwOGUgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9ob29rcy9wcmUtcGtnLzk5LXBrZ2xpbnQuc2gK KysrIGIvY29tbW9uL2hvb2tzL3ByZS1wa2cvOTktcGtnbGludC5zaApAQCAtMTE5LDcgKzExOSw3 IEBAIGhvb2soKSB7CiAJCQkJbXNnX3JlZCAiJHtwa2d2ZXJ9OiBTT05BTUUgYnVtcCBkZXRlY3Rl ZDogJHtsaWJuYW1lfS5zby4ke2NvbmZsaWN0UmV2fSAtPiAke2xpYm5hbWV9LnNvLiR7cmV2fVxu IgogCQkJCW1zZ19yZWQgIiR7cGtndmVyfTogcGxlYXNlIHVwZGF0ZSBjb21tb24vc2hsaWJzIHdp dGggdGhpcyBsaW5lOiBcIiR7bGlibmFtZX0uc28uJHtyZXZ9ICR7cGtndmVyfVwiXG4iCiAJCQkJ bXNnX3JlZCAiJHtwa2d2ZXJ9OiBhbGwgcmV2ZXJzZSBkZXBlbmRlbmNpZXMgc2hvdWxkIGFsc28g YmUgcmV2YnVtcGVkIHRvIGJlIHJlYnVpbHQgYWdhaW5zdCAke2xpYm5hbWV9LnNvLiR7cmV2fTpc biIKLQkJCQlfcmV2ZGVwcz0kKCRYQlBTX1FVRVJZX1hDTUQgLVJzICR7bGlibmFtZX0uc28gLXAg c2hsaWItcmVxdWlyZXN8YXdrICd7cHJpbnQgJDF9JykKKwkJCQlfcmV2ZGVwcz0kKCRYQlBTX1FV RVJZX1hDTUQgLVJzICR7bGlibmFtZX0uc28gLXAgc2hsaWItcmVxdWlyZXN8Y3V0IC1kICcgJyAt ZjEpCiAJCQkJZm9yIHggaW4gJHtfcmV2ZGVwc307IGRvCiAJCQkJCW1zZ19yZWQgIiAgICR7eCU6 fVxuIgogCQkJCWRvbmUKQEAgLTEyOCw3ICsxMjgsNyBAQCBob29rKCkgewogCQkJIyBUcnkgdG8g bWF0Y2ggcHJvdmlkZWQgc2hsaWJzIGluIHZpcnR1YWwgcGFja2FnZXMuCiAJCQlmb3IgZiBpbiAk e3Byb3ZpZGVzfTsgZG8KIAkJCQlfdnBrZ25hbWU9IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtn bmFtZSAke2Z9IDI+L2Rldi9udWxsKSIKLQkJCQlfc3BrZ25hbWU9IiQoZ3JlcCAiXiR7ZmlsZW5h bWV9IiAkbWFwc2hsaWJzIHwgYXdrICd7cHJpbnQgJDJ9JykiCisJCQkJX3Nwa2duYW1lPSIkKGdy ZXAgIl4ke2ZpbGVuYW1lfSIgJG1hcHNobGlicyB8IGN1dCAtZCAnICcgLWYyKSIKIAkJCQlfbGli cGtnbmFtZT0iJCgkWEJQU19VSEVMUEVSX0NNRCBnZXRwa2duYW1lICR7X3Nwa2duYW1lfSAyPi9k ZXYvbnVsbCkiCiAJCQkJaWYgWyAteiAiJHtfc3BrZ25hbWV9IiAtbyAgLXogIiR7X2xpYnBrZ25h bWV9IiBdOyB0aGVuCiAJCQkJCWNvbnRpbnVlCmRpZmYgLS1naXQgYS9jb21tb24veGJwcy1zcmMv bGliZXhlYy9idWlsZC5zaCBiL2NvbW1vbi94YnBzLXNyYy9saWJleGVjL2J1aWxkLnNoCmluZGV4 IDk5MDhiMzM2OTU3Li4xZjc1MWNhMTNiOSAxMDA3NTUKLS0tIGEvY29tbW9uL3hicHMtc3JjL2xp YmV4ZWMvYnVpbGQuc2gKKysrIGIvY29tbW9uL3hicHMtc3JjL2xpYmV4ZWMvYnVpbGQuc2gKQEAg LTQzLDEwICs0Myw2IEBAIGlmIFsgIiRQS0dOQU1FIiAhPSAiJFhCUFNfVEFSR0VUX1BLRyIgLW8g LXogIiRYQlBTX1NLSVBfREVQUyIgXTsgdGhlbgogICAgIGluc3RhbGxfcGtnX2RlcHMgJFBLR05B TUUgJFhCUFNfVEFSR0VUX1BLRyBwa2cgJFhCUFNfQ1JPU1NfQlVJTEQgJFhCUFNfQ1JPU1NfUFJF UEFSRSB8fCBleGl0ICQ/CiBmaQogCi1pZiBbIC16ICIkWEJQU19DUk9TU19QUkVQQVJFIiBdOyB0 aGVuCi0gICAgaW5zdGFsbF9jcm9zc19wa2cgJFhCUFNfQ1JPU1NfQlVJTEQgfHwgZXhpdCAkPwot ZmkKLQogIyBGZXRjaCBkaXN0ZmlsZXMgYWZ0ZXIgaW5zdGFsbGluZyByZXF1aXJlZCBkZXBlbmRl bmNpZXMsCiAjIGJlY2F1c2Ugc29tZSBvZiB0aGVtIG1pZ2h0IGJlIHJlcXVpcmVkIGZvciBkb19m ZXRjaCgpLgogJFhCUFNfTElCRVhFQ0RJUi94YnBzLXNyYy1kb2ZldGNoLnNoICRTT1VSQ0VQS0cg JFhCUFNfQ1JPU1NfQlVJTEQgfHwgZXhpdCAxCmRpZmYgLS1naXQgYS9jb21tb24veGJwcy1zcmMv c2h1dGlscy9idWlsZF9kZXBlbmRlbmNpZXMuc2ggYi9jb21tb24veGJwcy1zcmMvc2h1dGlscy9i dWlsZF9kZXBlbmRlbmNpZXMuc2gKaW5kZXggOWJmMzdjZGZjOWQuLjNjNDlmYzY1MGJjIDEwMDY0 NAotLS0gYS9jb21tb24veGJwcy1zcmMvc2h1dGlscy9idWlsZF9kZXBlbmRlbmNpZXMuc2gKKysr IGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvYnVpbGRfZGVwZW5kZW5jaWVzLnNoCkBAIC0xLDkg KzEsOSBAQAogIyB2aW06IHNldCB0cz00IHN3PTQgZXQ6CiAjCiBzZXR1cF9wa2dfZGVwZW5kcygp IHsKLSAgICBsb2NhbCBwa2c9IiQxIiBqIF9wa2dkZXBuYW1lIF9wa2dkZXAgX3Jwa2duYW1lIF9k ZXBuYW1lIF9kZXB2ZXIgX3JlcGxhY2VtZW50CisgICAgbG9jYWwgcGtnPSIkMSIgb3V0PSIkMiIg aiBfcnBrZ25hbWUgX2RlcG5hbWUgZm9vIF9kZXBzCiAKLSAgICBpZiBbIC1uICIkcGtnIiBdOyB0 aGVuCisgICAgaWYgW1sgJHBrZyBdXTsgdGhlbgogICAgICAgICAjIHN1YnBrZwogICAgICAgICBp ZiBkZWNsYXJlIC1mICR7cGtnfV9wYWNrYWdlID4vZGV2L251bGw7IHRoZW4KICAgICAgICAgICAg ICR7cGtnfV9wYWNrYWdlCkBAIC0xMyw4NSArMTMsNjUgQEAgc2V0dXBfcGtnX2RlcGVuZHMoKSB7 CiAgICAgZm9yIGogaW4gJHtkZXBlbmRzfTsgZG8KICAgICAgICAgX3Jwa2duYW1lPSIke2olXD8q fSIKICAgICAgICAgX2RlcG5hbWU9IiR7aiMqXD99IgotICAgICAgICBfcGtnZGVwbmFtZT0iJCgk WEJQU19VSEVMUEVSX0NNRCBnZXRwa2dkZXBuYW1lICR7X2RlcG5hbWV9IDI+L2Rldi9udWxsKSIK LSAgICAgICAgaWYgWyAteiAiJHtfcGtnZGVwbmFtZX0iIF07IHRoZW4KLSAgICAgICAgICAgIF9w a2dkZXBuYW1lPSIkKCRYQlBTX1VIRUxQRVJfQ01EIGdldHBrZ25hbWUgJHtfZGVwbmFtZX0gMj4v ZGV2L251bGwpIgotICAgICAgICBmaQotICAgICAgICBpZiBbIC1zICR7WEJQU19ESVNURElSfS9l dGMvdmlydHVhbCBdOyB0aGVuCi0gICAgICAgICAgICBfcmVwbGFjZW1lbnQ9JChlZ3JlcCAiXiR7 X3BrZ2RlcG5hbWU6LSR7X2RlcG5hbWV9fVtbOmJsYW5rOl1dIiAke1hCUFNfRElTVERJUn0vZXRj L3ZpcnR1YWx8Y3V0IC1kICcgJyAtZjIpCi0gICAgICAgIGVsaWYgWyAtcyAke1hCUFNfRElTVERJ Un0vZXRjL2RlZmF1bHRzLnZpcnR1YWwgXTsgdGhlbgotICAgICAgICAgICAgX3JlcGxhY2VtZW50 PSQoZWdyZXAgIl4ke19wa2dkZXBuYW1lOi0ke19kZXBuYW1lfX1bWzpibGFuazpdXSIgJHtYQlBT X0RJU1RESVJ9L2V0Yy9kZWZhdWx0cy52aXJ0dWFsfGN1dCAtZCAnICcgLWYyKQotICAgICAgICBm aQotICAgICAgICBpZiBbICIke19ycGtnbmFtZX0iID0gInZpcnR1YWwiIF07IHRoZW4KLSAgICAg ICAgICAgIGlmIFsgLXogIiR7X3JlcGxhY2VtZW50fSIgXTsgdGhlbgotICAgICAgICAgICAgICAg IG1zZ19lcnJvciAiJHBrZ3ZlcjogZmFpbGVkIHRvIHJlc29sdmUgdmlydHVhbCBkZXBlbmRlbmN5 IGZvciAnJGonIChtaXNzaW5nIGZyb20gZXRjL3ZpcnR1YWwpXG4iCi0gICAgICAgICAgICBmaQot ICAgICAgICAgICAgX3BrZ2RlcG5hbWU9IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtnZGVwbmFt ZSAke19yZXBsYWNlbWVudH0gMj4vZGV2L251bGwpIgotICAgICAgICAgICAgaWYgWyAteiAiJHtf cGtnZGVwbmFtZX0iIF07IHRoZW4KLSAgICAgICAgICAgICAgICBfcGtnZGVwbmFtZT0iJCgkWEJQ U19VSEVMUEVSX0NNRCBnZXRwa2duYW1lICR7X3JlcGxhY2VtZW50fSAyPi9kZXYvbnVsbCkiCisg ICAgICAgIGlmIFtbICR7X3Jwa2duYW1lfSA9PSB2aXJ0dWFsIF1dOyB0aGVuCisgICAgICAgICAg ICBpZiBbIC1zICR7WEJQU19ESVNURElSfS9ldGMvdmlydHVhbCBdOyB0aGVuCisgICAgICAgICAg ICAgICAgZm9vPSQoZWdyZXAgIl4ke19kZXBuYW1lfVtbOmJsYW5rOl1dIiAke1hCUFNfRElTVERJ Un0vZXRjL3ZpcnR1YWx8Y3V0IC1kICcgJyAtZjIpCisgICAgICAgICAgICBlbGlmIFsgLXMgJHtY QlBTX0RJU1RESVJ9L2V0Yy9kZWZhdWx0cy52aXJ0dWFsIF07IHRoZW4KKyAgICAgICAgICAgICAg ICBmb289JChlZ3JlcCAiXiR7X2RlcG5hbWV9W1s6Ymxhbms6XV0iICR7WEJQU19ESVNURElSfS9l dGMvZGVmYXVsdHMudmlydHVhbHxjdXQgLWQgJyAnIC1mMikKICAgICAgICAgICAgIGZpCi0gICAg ICAgICAgICBpZiBbIC16ICIke19wa2dkZXBuYW1lfSIgXTsgdGhlbgotICAgICAgICAgICAgICAg IF9wa2dkZXBuYW1lPSIke19yZXBsYWNlbWVudH0+PTAiCisgICAgICAgICAgICBpZiBbIC16ICIk Zm9vIiBdOyB0aGVuCisgICAgICAgICAgICAgICAgbXNnX2Vycm9yICIkcGtndmVyOiBmYWlsZWQg dG8gcmVzb2x2ZSB2aXJ0dWFsIGRlcGVuZGVuY3kgZm9yICckaicgKG1pc3NpbmcgZnJvbSBldGMv dmlydHVhbClcbiIKICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICBydW5fZGVwZW5kcys9IiAk e19kZXBuYW1lfT8ke19wa2dkZXBuYW1lfSIKLSAgICAgICAgICAgICNlY2hvICJBZGRpbmcgZGVw ZW5kZW5jeSB2aXJ0dWFsOiAgJHtfZGVwbmFtZX0/JHtfcGtnZGVwbmFtZX0iCisgICAgICAgICAg ICBfZGVwcys9IiRmb28gIgogICAgICAgICBlbHNlCi0gICAgICAgICAgICBpZiBbIC16ICIke19w a2dkZXBuYW1lfSIgXTsgdGhlbgotICAgICAgICAgICAgICAgIF9wa2dkZXA9IiR7X2RlcG5hbWV9 Pj0wIgotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIF9wa2dkZXA9IiR7X2RlcG5h bWV9IgorICAgICAgICAgICAgZm9vPSIkKCRYQlBTX1VIRUxQRVJfQ01EIGdldHBrZ2RlcG5hbWUg JHtfZGVwbmFtZX0gMj4vZGV2L251bGwpIgorICAgICAgICAgICAgaWYgWyAteiAiJGZvbyIgXTsg dGhlbgorICAgICAgICAgICAgICAgIGZvbz0iJCgkWEJQU19VSEVMUEVSX0NNRCBnZXRwa2duYW1l ICR7X2RlcG5hbWV9IDI+L2Rldi9udWxsKSIKKyAgICAgICAgICAgICAgICBbIC16ICIkZm9vIiBd ICYmIGZvbz0iJHtfZGVwbmFtZX0iCiAgICAgICAgICAgICBmaQotICAgICAgICAgICAgcnVuX2Rl cGVuZHMrPSIgJHtfcGtnZGVwfSIKKyAgICAgICAgICAgIF9kZXBzKz0iJGZvbyAiCiAgICAgICAg IGZpCisgICAgICAgIHJ1bl9kZXBlbmRzKz0iJHtfZGVwbmFtZX0gIgogICAgIGRvbmUKLSAgICBm b3IgaiBpbiAke2hvc3RtYWtlZGVwZW5kc307IGRvCi0gICAgICAgIF9kZXBuYW1lPSIke2olXD8q fSIKLSAgICAgICAgX2RlcHZlcj0kKHNyY3BrZ19nZXRfdmVyc2lvbiAke19kZXBuYW1lfSkgfHwg ZXhpdCAkPwotICAgICAgICBob3N0X2J1aWxkX2RlcGVuZHMrPSIgJHtfZGVwbmFtZX0tJHtfZGVw dmVyfSIKLSAgICBkb25lCi0gICAgaWYgWyAtbiAiJFhCUFNfQ0hFQ0tfUEtHUyIgXTsgdGhlbgot ICAgICAgICBmb3IgaiBpbiAke2NoZWNrZGVwZW5kc307IGRvCi0gICAgICAgICAgICBfZGVwbmFt ZT0iJHtqJVw/Kn0iCi0gICAgICAgICAgICBfZGVwdmVyPSQoc3JjcGtnX2dldF92ZXJzaW9uICR7 X2RlcG5hbWV9KSB8fCBleGl0ICQ/Ci0gICAgICAgICAgICBob3N0X2NoZWNrX2RlcGVuZHMrPSIg JHtfZGVwbmFtZX0tJHtfZGVwdmVyfSIKLSAgICAgICAgZG9uZQotICAgIGZpCi0gICAgZm9yIGog aW4gJHttYWtlZGVwZW5kc307IGRvCi0gICAgICAgIF9kZXBuYW1lPSIke2olXD8qfSIKLSAgICAg ICAgX2RlcHZlcj0kKHNyY3BrZ19nZXRfdmVyc2lvbiAke19kZXBuYW1lfSkgfHwgZXhpdCAkPwot ICAgICAgICBidWlsZF9kZXBlbmRzKz0iICR7X2RlcG5hbWV9LSR7X2RlcHZlcn0iCi0gICAgZG9u ZQorCisgICAgW1sgJG91dCAmJiAkX2RlcHMgXV0gJiYgZWNobyAiJF9kZXBzIgorICAgIHJldHVy biAwCiB9CiAKLSMgSW5zdGFsbCBhIHJlcXVpcmVkIHBhY2thZ2UgZGVwZW5kZW5jeSwgbGlrZToK ICMKLSMJeGJwcy1pbnN0YWxsIC1JQXkgPHBrZ25hbWU+CisjIEluc3RhbGwgcmVxdWlyZWQgcGFj a2FnZSBkZXBlbmRlbmNpZXMsIGxpa2U6CisjCisjCXhicHMtaW5zdGFsbCAtQUl5IDxwa2dzPgor IworIyAgICAgICAtQSBhdXRvbWF0aWMgbW9kZQorIyAgICAgICAtSSB0byBpZ25vcmUgZmlsZSBj b25mbGljdHMKKyMgICAgICAgLXkgeWVzCiAjCiAjIFJldHVybnMgMCBpZiBwYWNrYWdlIGFscmVh ZHkgaW5zdGFsbGVkIG9yIGluc3RhbGxlZCBzdWNjZXNzZnVsbHkuCiAjIEFueSBvdGhlciBlcnJv ciBudW1iZXIgb3RoZXJ3aXNlLgogIworIyBTVUNDRVNTICAoMCk6IHBhY2thZ2UgaW5zdGFsbGVk IHN1Y2Nlc3NmdWxseS4KKyMgRU5PRU5UICAgKDIpOiBwYWNrYWdlIG1pc3NpbmcgaW4gcmVwb3Np dG9yaWVzLgorIyBFTlhJTyAgICAoNik6IHBhY2thZ2UgZGVwZW5kcyBvbiBpbnZhbGlkIGRlcGVu ZGVuY2llcy4KKyMgRUFHQUlOICAoMTEpOiBwYWNrYWdlIGNvbmZsaWN0cy4KKyMgRUVYSVNUICAo MTcpOiBmaWxlIGNvbmZsaWN0cyBpbiB0cmFuc2FjdGlvbiAoWEJQU19GTEFHX0lHTk9SRV9GSUxF X0NPTkZMSUNUUyB1bnNldCkKKyMgRU5PREVWICAoMTkpOiBwYWNrYWdlIGRlcGVuZHMgb24gbWlz c2luZyBkZXBlbmRlbmNpZXMuCisjIEVOT1RTVVAgKDk1KTogbm8gcmVwb3NpdG9yaWVzIHJlZ2lz dGVyZWQuCisjCiBpbnN0YWxsX3BrZ19mcm9tX3JlcG9zKCkgewotICAgIGxvY2FsIHBrZz0iJDEi IGNyb3NzPSIkMiIgcnZhbD0gdG1wbG9nZj0KKyAgICBsb2NhbCBjcm9zcz0iJDEiIHJ2YWwgdG1w bG9nZiBjbWQKKyAgICBzaGlmdAorCisgICAgWyAkIyAtZXEgMCBdICYmIHJldHVybiAwCiAKICAg ICBta2RpciAtcCAkWEJQU19TVEFURURJUgogICAgIHRtcGxvZ2Y9JHtYQlBTX1NUQVRFRElSfS94 YnBzXyR7WEJQU19UQVJHRVRfTUFDSElORX1fYmRlcF8ke3BrZ30ubG9nCiAKLSAgICBpZiBbIC1u ICIkY3Jvc3MiIF07IHRoZW4KLSAgICAgICAgJFhCUFNfSU5TVEFMTF9YQ01EIC1JQXkgIiRwa2ci ID4kdG1wbG9nZiAyPiYxCi0gICAgZWxzZQotICAgICAgICAkWEJQU19JTlNUQUxMX0NNRCAtSUF5 ICIkcGtnIiA+JHRtcGxvZ2YgMj4mMQotICAgIGZpCisgICAgY21kPSRYQlBTX0lOU1RBTExfQ01E CisgICAgW1sgJGNyb3NzIF1dICYmIGNtZD0kWEJQU19JTlNUQUxMX1hDTUQKKyAgICAkY21kICR7 WEJQU19TS0lQX1JFTU9URVJFUE9TOistaX0gLUFJeSAiJEAiID4kdG1wbG9nZiAyPiYxCiAgICAg cnZhbD0kPwotICAgICMgeGJwcy1pbnN0YWxsIGNhbiByZXR1cm46Ci0gICAgIwotICAgICMgU1VD Q0VTUyAgKDApOiBwYWNrYWdlIGluc3RhbGxlZCBzdWNjZXNzZnVsbHkuCi0gICAgIyBFTk9FTlQg ICAoMik6IHBhY2thZ2UgbWlzc2luZyBpbiByZXBvc2l0b3JpZXMuCi0gICAgIyBFTlhJTyAgICAo Nik6IHBhY2thZ2UgZGVwZW5kcyBvbiBpbnZhbGlkIGRlcGVuZGVuY2llcy4KLSAgICAjIEVBR0FJ TiAgKDExKTogcGFja2FnZSBjb25mbGljdHMuCi0gICAgIyBFRVhJU1QgICgxNyk6IGZpbGUgY29u ZmxpY3RzIGluIHRyYW5zYWN0aW9uIChYQlBTX0ZMQUdfSUdOT1JFX0ZJTEVfQ09ORkxJQ1RTIHVu c2V0KQotICAgICMgRU5PREVWICAoMTkpOiBwYWNrYWdlIGRlcGVuZHMgb24gbWlzc2luZyBkZXBl bmRlbmNpZXMuCi0gICAgIyBFTk9UU1VQICg5NSk6IG5vIHJlcG9zaXRvcmllcyByZWdpc3RlcmVk LgotICAgICMKKwogICAgIGNhc2UgIiRydmFsIiBpbgogICAgICAgICAwKSAjIHN1Y2Nlc3MsIGNo ZWNrIGlmIHRoZXJlIGFyZSBlcnJvcnMuCiAgICAgICAgICAgIGVycm9ydG1wZj0kKG1rdGVtcCkg fHwgZXhpdCAxCkBAIC0xMTEsMzkgKzkxLDYgQEAgaW5zdGFsbF9wa2dfZnJvbV9yZXBvcygpIHsK ICAgICByZXR1cm4gJHJ2YWwKIH0KIAotIwotIyBSZXR1cm5zIDAgaWYgcGtncGF0dGVybiBpbiAk MSBpcyBtYXRjaGVkIGFnYWluc3QgY3VycmVudCBpbnN0YWxsZWQKLSMgcGFja2FnZSwgMSBpZiBu byBtYXRjaCBhbmQgMiBpZiBub3QgaW5zdGFsbGVkLgotIwotY2hlY2tfcGtnZGVwX21hdGNoZWQo KSB7Ci0gICAgbG9jYWwgcGtnPSIkMSIgY2hlY2t2ZXI9IiQyIiBjcm9zcz0iJDMiIHVoZWxwZXI9 IHBrZ249IGl2ZXI9Ci0KLSAgICBbICIkYnVpbGRfc3R5bGUiID0gIm1ldGEiIF0gJiYgcmV0dXJu IDIKLSAgICBbIC16ICIkcGtnIiBdICYmIHJldHVybiAyNTUKLQotICAgIHBrZ249IiQoJFhCUFNf VUhFTFBFUl9DTUQgZ2V0cGtnZGVwbmFtZSAke3BrZ30gMj4vZGV2L251bGwpIgotICAgIGlmIFsg LXogIiRwa2duIiBdOyB0aGVuCi0gICAgICAgIHBrZ249IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0 cGtnbmFtZSAke3BrZ30gMj4vZGV2L251bGwpIgotICAgIGZpCi0gICAgWyAteiAiJHBrZ24iIF0g JiYgcmV0dXJuIDI1NQotCi0gICAgaWYgWyAtbiAiJGNyb3NzIiBdOyB0aGVuCi0gICAgICAgIHVo ZWxwZXI9IiRYQlBTX1VIRUxQRVJfWENNRCIKLSAgICBlbHNlCi0gICAgICAgIHVoZWxwZXI9IiRY QlBTX1VIRUxQRVJfQ01EIgotICAgIGZpCi0KLSAgICBpdmVyPSIkKCR1aGVscGVyICRjaGVja3Zl ciAkcGtnbikiCi0gICAgaWYgWyAkPyAtZXEgMCAtYSAtbiAiJGl2ZXIiIF07IHRoZW4KLSAgICAg ICAgJFhCUFNfVUhFTFBFUl9DTUQgcGtnbWF0Y2ggIiR7cGtnbn0tJHtpdmVyfSIgIiR7cGtnfSIK LSAgICAgICAgWyAkPyAtZXEgMSBdICYmIHJldHVybiAwCi0gICAgZWxzZQotICAgICAgICByZXR1 cm4gMgotICAgIGZpCi0KLSAgICByZXR1cm4gMQotfQotCiAjCiAjIFJldHVybnMgMCBpZiBwa2dw YXR0ZXJuIGluICQxIGlzIGluc3RhbGxlZCBhbmQgZ3JlYXRlciB0aGFuIGN1cnJlbnQKICMgaW5z dGFsbGVkIHBhY2thZ2UsIG90aGVyd2lzZSAxLgpAQCAtMTU2LDEyICsxMDMsOCBAQCBjaGVja19p bnN0YWxsZWRfcGtnKCkgewogICAgIHBrZ249IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtnbmFt ZSAke3BrZ30pIgogICAgIFsgLXogIiRwa2duIiBdICYmIHJldHVybiAyCiAKLSAgICBpZiBbIC1u ICIkY3Jvc3MiIF07IHRoZW4KLSAgICAgICAgdWhlbHBlcj0iJFhCUFNfVUhFTFBFUl9YQ01EIgot ICAgIGVsc2UKLSAgICAgICAgdWhlbHBlcj0iJFhCUFNfVUhFTFBFUl9DTUQiCi0gICAgZmkKLQor ICAgIHVoZWxwZXI9JFhCUFNfVUhFTFBFUl9DTUQKKyAgICBbWyAkY3Jvc3MgXV0gJiYgdWhlbHBl cj0kWEJQU19VSEVMUEVSX1hDTUQKICAgICBpdmVyPSIkKCR1aGVscGVyIHZlcnNpb24gJHBrZ24p IgogICAgIGlmIFsgJD8gLWVxIDAgLWEgLW4gIiRpdmVyIiBdOyB0aGVuCiAgICAgICAgICRYQlBT X0NNUFZFUl9DTUQgIiR7cGtnbn0tJHtpdmVyfSIgIiR7cGtnfSIKQEAgLTE3MSw0MiArMTE0LDIw IEBAIGNoZWNrX2luc3RhbGxlZF9wa2coKSB7CiAgICAgcmV0dXJuIDEKIH0KIAotc3JjcGtnX2dl dF92ZXJzaW9uKCkgewotICAgIGxvY2FsIHBrZz0iJDEiCi0gICAgIyBSdW4gdGhpcyBpbiBhIHN1 Yi1zaGVsbCB0byBhdm9pZCBwb2xsdXRpbmcgb3VyIGVudi4KLSAgICAoCi0gICAgdW5zZXQgWEJQ U19CSU5QS0dfRVhJU1RTCi0gICAgc2V0dXBfcGtnICRwa2cgfHwgZXhpdCAkPwotICAgIGVjaG8g IiR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0gICAgKSB8fCBtc2dfZXJyb3IgIiRwa2d2ZXI6IGZh aWxlZCB0byB0cmFuc2Zvcm0gZGVwZW5kZW5jeSAkcGtnXG4iCi19Ci0KLXNyY3BrZ19nZXRfcGtn dmVyKCkgewotICAgIGxvY2FsIHBrZz0iJDEiCi0gICAgIyBSdW4gdGhpcyBpbiBhIHN1Yi1zaGVs bCB0byBhdm9pZCBwb2xsdXRpbmcgb3VyIGVudi4KLSAgICAoCi0gICAgdW5zZXQgWEJQU19CSU5Q S0dfRVhJU1RTCi0gICAgc2V0dXBfcGtnICRwa2cgfHwgZXhpdCAkPwotICAgIGVjaG8gIiR7c291 cmNlcGtnfS0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotICAgICkgfHwgbXNnX2Vycm9yICIkcGtn dmVyOiBmYWlsZWQgdG8gdHJhbnNmb3JtIGRlcGVuZGVuY3kgJHBrZ1xuIgotfQotCiAjCi0jIElu c3RhbGxzIGFsbCBkZXBlbmRlbmNpZXMgcmVxdWlyZWQgYnkgYSBwYWNrYWdlLgorIyBCdWlsZCBh bGwgZGVwZW5kZW5jaWVzIHJlcXVpcmVkIHRvIGJ1aWxkIGFuZCBydW4uCiAjCiBpbnN0YWxsX3Br Z19kZXBzKCkgewogICAgIGxvY2FsIHBrZz0iJDEiIHRhcmdldHBrZz0iJDIiIHRhcmdldD0iJDMi IGNyb3NzPSIkNCIgY3Jvc3NfcHJlcGFyZT0iJDUiCi0gICAgbG9jYWwgcnZhbCBfcmVhbHBrZyBf dnBrZyBfY3VycGtnIGN1cnBrZ2RlcG5hbWUgcGtnbiBpdmVyCi0gICAgbG9jYWwgaSBqIGZvdW5k IHJ1bmRlcCByZXBvIHN0eWxlCisgICAgbG9jYWwgX3Zwa2cgY3VycGtnZGVwbmFtZQorICAgIGxv Y2FsIGkgaiBmb3VuZCBzdHlsZQogCi0gICAgbG9jYWwgLWEgaG9zdF9iaW5wa2dfZGVwcyBjaGVj a19iaW5wa2dfZGVwcyBiaW5wa2dfZGVwcwotICAgIGxvY2FsIC1hIGhvc3RfbWlzc2luZ19kZXBz IGNoZWNrX21pc3NpbmdfZGVwcyBtaXNzaW5nX2RlcHMgbWlzc2luZ19yZGVwcworICAgIGxvY2Fs IC1hIGhvc3RfYmlucGtnX2RlcHMgYmlucGtnX2RlcHMKKyAgICBsb2NhbCAtYSBob3N0X21pc3Np bmdfZGVwcyBtaXNzaW5nX2RlcHMgbWlzc2luZ19yZGVwcwogCiAgICAgWyAteiAiJHBrZ25hbWUi IF0gJiYgcmV0dXJuIDIKLQotICAgIHNldHVwX3BrZ19kZXBlbmRzCi0KLSAgICBbIC1uICIkYnVp bGRfc3R5bGUiIF0gJiYgc3R5bGU9IiBbJGJ1aWxkX3N0eWxlXSIKKyAgICBbIC16ICIkWEJQU19D SEVDS19QS0dTIiBdICYmIHVuc2V0IGNoZWNrZGVwZW5kcworICAgIFtbICRidWlsZF9zdHlsZSBd XSAmJiBzdHlsZT0iIFskYnVpbGRfc3R5bGVdIgogCiAgICAgZm9yIHMgaW4gJGJ1aWxkX2hlbHBl cjsgZG8KICAgICAgICAgc3R5bGUrPSIgWyRzXSIKQEAgLTIxOCwxOTcgKzEzOSwxNTEgQEAgaW5z dGFsbF9wa2dfZGVwcygpIHsKICAgICAgICAgbXNnX25vcm1hbCAiJHBrZ3ZlcjogYnVpbGRpbmck e3N0eWxlfSAuLi5cbiIKICAgICBmaQogCi0gICAgaWYgWyAteiAiJGJ1aWxkX2RlcGVuZHMiIC1h IC16ICIkaG9zdF9idWlsZF9kZXBlbmRzIiAtYSAteiAiJGhvc3RfY2hlY2tfZGVwZW5kcyIgLWEg LXogIiRydW5fZGVwZW5kcyIgXTsgdGhlbgotICAgICAgICByZXR1cm4gMAotICAgIGZpCi0KICAg ICAjCiAgICAgIyBIb3N0IGJ1aWxkIGRlcGVuZGVuY2llcy4KICAgICAjCi0gICAgZm9yIGkgaW4g JHtob3N0X2J1aWxkX2RlcGVuZHN9OyBkbwotICAgICAgICBfcmVhbHBrZz0kKCRYQlBTX1VIRUxQ RVJfQ01EIGdldHBrZ25hbWUgIiRpIiAyPi9kZXYvbnVsbCkKLSAgICAgICAgY2hlY2tfcGtnZGVw X21hdGNoZWQgIiRpIiB2ZXJzaW9uCi0gICAgICAgIGxvY2FsIHJ2YWw9JD8KLSAgICAgICAgaWYg WyAkcnZhbCAtZXEgMCBdOyB0aGVuCi0gICAgICAgICAgICBlY2hvICIgICBbaG9zdF0gJHtpfTog aW5zdGFsbGVkLiIKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIGVsaWYgWyAkcnZhbCAt ZXEgMSBdOyB0aGVuCi0gICAgICAgICAgICBpdmVyPSQoJFhCUFNfVUhFTFBFUl9DTUQgdmVyc2lv biAke19yZWFscGtnfSkKLSAgICAgICAgICAgIGlmIFsgJD8gLWVxIDAgLWEgLW4gIiRpdmVyIiBd OyB0aGVuCi0gICAgICAgICAgICAgICAgZWNobyAiICAgW2hvc3RdICR7aX06IGluc3RhbGxlZCAk aXZlciAodmlydHVhbHBrZykuIgorICAgIGlmIFtbICR7aG9zdG1ha2VkZXBlbmRzfSBdXTsgdGhl bgorICAgICAgICB3aGlsZSByZWFkIC1yIF9kZXBuYW1lIF9kZXByZXBvdmVyIF9kZXB2ZXIgX3N1 YnBrZyBfcmVwb3VybDsgZG8KKyAgICAgICAgICAgIF92cGtnPSR7X3N1YnBrZ30tJHtfZGVwdmVy fQorICAgICAgICAgICAgIyBiaW5hcnkgcGFja2FnZSBmb3VuZCBpbiBhIHJlcG8KKyAgICAgICAg ICAgIGlmIFtbICR7X2RlcHZlcn0gPT0gJHtfZGVwcmVwb3Zlcn0gXV07IHRoZW4KKyAgICAgICAg ICAgICAgICBlY2hvICIgICBbaG9zdF0gJHtfdnBrZ306IGZvdW5kICgke19yZXBvdXJsfSkiCisg ICAgICAgICAgICAgICAgaG9zdF9iaW5wa2dfZGVwcys9KCIke192cGtnfSIpCiAgICAgICAgICAg ICAgICAgY29udGludWUKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBlY2hvICIg ICBbaG9zdF0gJHtpfTogdW5yZXNvbHZlZCBidWlsZCBkZXBlbmRlbmN5ISIKLSAgICAgICAgICAg ICAgICByZXR1cm4gMQogICAgICAgICAgICAgZmkKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg cmVwbz0kKCRYQlBTX1FVRVJZX0NNRCAtUiAtcHJlcG9zaXRvcnkgJHtpfSAyPi9kZXYvbnVsbCkK LSAgICAgICAgICAgIGlmIFsgLW4gIiR7cmVwb30iIF07IHRoZW4KLSAgICAgICAgICAgICAgICBl Y2hvICIgICBbaG9zdF0gJHtpfTogZm91bmQgKCRyZXBvKSIKLSAgICAgICAgICAgICAgICBob3N0 X2JpbnBrZ19kZXBzKz0oIiR7aX0iKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAg ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZWNobyAiICAgW2hvc3RdICR7aX06IG5vdCBmb3Vu ZC4iCi0gICAgICAgICAgICAgICAgaWYgWyAteiAiJGNyb3NzIiBdOyB0aGVuCi0gICAgICAgICAg ICAgICAgICAgIGlmIFsgIiR7X3JlYWxwa2d9IiA9ICIkdGFyZ2V0cGtnIiBdOyB0aGVuCi0gICAg ICAgICAgICAgICAgICAgICAgICBtc2dfZXJyb3IgIiR7cGtnfTogW2hvc3RdIGJ1aWxkIGxvb3Ag ZGV0ZWN0ZWQ6ICR7X3JlYWxwa2d9IDwtPiAke3RhcmdldHBrZ30gW2RlcGVuZHMgb24gaXRzZWxm XVxuIgotICAgICAgICAgICAgICAgICAgICBlbGlmIFsgIiR7X3JlYWxwa2d9IiA9ICIkcGtnIiBd OyB0aGVuCi0gICAgICAgICAgICAgICAgICAgICAgICBtc2dfZXJyb3IgIiR7cGtnfTogW2hvc3Rd IGJ1aWxkIGxvb3AgZGV0ZWN0ZWQ6ICRwa2cgPC0+ICR7X3JlYWxwa2d9XG4iCisgICAgICAgICAg ICAjIGJpbmFyeSBwYWNrYWdlIG5vdCBmb3VuZAorICAgICAgICAgICAgaWYgW1sgJF9kZXBuYW1l ICE9ICRfc3VicGtnIF1dOyB0aGVuCisgICAgICAgICAgICAgICAgIyBzdWJwa2csIGNoZWNrIGlm IGl0J3MgYSBzdWJwa2cgb2YgaXRzZWxmCisgICAgICAgICAgICAgICAgZm91bmQ9MAorICAgICAg ICAgICAgICAgIGZvciBmIGluICR7c3VicGFja2FnZXN9OyBkbworICAgICAgICAgICAgICAgICAg ICBpZiBbWyAke19zdWJwa2d9ID09ICR7Zn0gXV07IHRoZW4KKyAgICAgICAgICAgICAgICAgICAg ICAgIGZvdW5kPTEKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAg ICAgICAgIGZpCisgICAgICAgICAgICAgICAgZG9uZQorICAgICAgICAgICAgICAgIGlmIFtbICRm b3VuZCAtZXEgMSBdXTsgdGhlbgorICAgICAgICAgICAgICAgICAgICBlY2hvICIgICBbaG9zdF0g JHtfdnBrZ306IG5vdCBmb3VuZCAoc3VicGtnLCBpZ25vcmVkKSIKKyAgICAgICAgICAgICAgICBl bHNlCisgICAgICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtob3N0XSAke192cGtnfTogbm90IGZv dW5kIgorICAgICAgICAgICAgICAgICAgICBob3N0X21pc3NpbmdfZGVwcys9KCIkX3Zwa2ciKQog ICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZWNo byAiICAgW2hvc3RdICR7X3Zwa2d9OiBub3QgZm91bmQiCisgICAgICAgICAgICAgICAgaG9zdF9t aXNzaW5nX2RlcHMrPSgiJF92cGtnIikKICAgICAgICAgICAgIGZpCi0gICAgICAgIGZpCi0gICAg ICAgIGhvc3RfbWlzc2luZ19kZXBzKz0oIiR7aX0iKQotICAgIGRvbmUKKyAgICAgICAgZG9uZSA8 IDwoJFhCUFNfQ0hFQ0tWRVJTX0NNRCAke1hCUFNfU0tJUF9SRU1PVEVSRVBPUzorLWl9IC1EICRY QlBTX0RJU1RESVIgLXNtICR7aG9zdG1ha2VkZXBlbmRzfSkKKyAgICBmaQogCiAgICAgIwogICAg ICMgSG9zdCBjaGVjayBkZXBlbmRlbmNpZXMuCiAgICAgIwotICAgIGZvciBpIGluICR7aG9zdF9j aGVja19kZXBlbmRzfTsgZG8KLSAgICAgICAgX3JlYWxwa2c9IiQoJFhCUFNfVUhFTFBFUl9DTUQg Z2V0cGtnbmFtZSAkaSAyPi9kZXYvbnVsbCkiCi0gICAgICAgIGNoZWNrX3BrZ2RlcF9tYXRjaGVk ICIkaSIgdmVyc2lvbgotICAgICAgICBsb2NhbCBydmFsPSQ/Ci0gICAgICAgIGlmIFsgJHJ2YWwg LWVxIDAgXTsgdGhlbgotICAgICAgICAgICAgZWNobyAiICAgW2NoZWNrXSAke2l9OiBpbnN0YWxs ZWQuIgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgZWxpZiBbICRydmFsIC1lcSAxIF07 IHRoZW4KLSAgICAgICAgICAgIGl2ZXI9JCgkWEJQU19VSEVMUEVSX0NNRCB2ZXJzaW9uICR7X3Jl YWxwa2d9KQotICAgICAgICAgICAgaWYgWyAkPyAtZXEgMCAtYSAtbiAiJGl2ZXIiIF07IHRoZW4K LSAgICAgICAgICAgICAgICBlY2hvICIgICBbY2hlY2tdICR7aX06IGluc3RhbGxlZCAkaXZlciAo dmlydHVhbHBrZykuIgorICAgIGlmIFtbICR7Y2hlY2tkZXBlbmRzfSBdXSAmJiBbWyAkWEJQU19D SEVDS19QS0dTIF1dOyB0aGVuCisgICAgICAgIHdoaWxlIHJlYWQgLXIgX2RlcG5hbWUgX2RlcHJl cG92ZXIgX2RlcHZlciBfc3VicGtnIF9yZXBvdXJsOyBkbworICAgICAgICAgICAgX3Zwa2c9JHtf c3VicGtnfS0ke19kZXB2ZXJ9CisgICAgICAgICAgICAjIGJpbmFyeSBwYWNrYWdlIGZvdW5kIGlu IGEgcmVwbworICAgICAgICAgICAgaWYgW1sgJHtfZGVwdmVyfSA9PSAke19kZXByZXBvdmVyfSBd XTsgdGhlbgorICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtjaGVja10gJHtfdnBrZ306IGZvdW5k ICgke19yZXBvdXJsfSkiCisgICAgICAgICAgICAgICAgaG9zdF9iaW5wa2dfZGVwcys9KCIke192 cGtnfSIpCiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGVsc2UKLSAgICAg ICAgICAgICAgICBlY2hvICIgICBbY2hlY2tdICR7aX06IHVucmVzb2x2ZWQgY2hlY2sgZGVwZW5k ZW5jeSEiCi0gICAgICAgICAgICAgICAgcmV0dXJuIDEKICAgICAgICAgICAgIGZpCi0gICAgICAg IGVsc2UKLSAgICAgICAgICAgIHJlcG89JCgkWEJQU19RVUVSWV9DTUQgLVIgLXByZXBvc2l0b3J5 ICR7aX0gMj4vZGV2L251bGwpCi0gICAgICAgICAgICBpZiBbIC1uICIke3JlcG99IiBdOyB0aGVu Ci0gICAgICAgICAgICAgICAgZWNobyAiICAgW2NoZWNrXSAke2l9OiBmb3VuZCAoJHJlcG8pIgot ICAgICAgICAgICAgICAgIGNoZWNrX2JpbnBrZ19kZXBzKz0oIiR7aX0iKQotICAgICAgICAgICAg ICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZWNobyAiICAg W2NoZWNrXSAke2l9OiBub3QgZm91bmQuIgotICAgICAgICAgICAgICAgIGlmIFsgIiR7X3JlYWxw a2d9IiA9ICIkdGFyZ2V0cGtnIiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgIG1zZ19lcnJv ciAiJHtwa2d9OiBbY2hlY2tdIGJ1aWxkIGxvb3AgZGV0ZWN0ZWQ6ICR7X3JlYWxwa2d9IDwtPiAk e3RhcmdldHBrZ30gW2RlcGVuZHMgb24gaXRzZWxmXSFcbiIKLSAgICAgICAgICAgICAgICBlbGlm IFsgIiR7X3JlYWxwa2d9IiA9ICIkcGtnIiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgIG1z Z19lcnJvciAiJHtwa2d9OiBbY2hlY2tdIGJ1aWxkIGxvb3AgZGV0ZWN0ZWQ6ICRwa2cgPC0+ICR7 X3JlYWxwa2d9XG4iCisgICAgICAgICAgICAjIGJpbmFyeSBwYWNrYWdlIG5vdCBmb3VuZAorICAg ICAgICAgICAgaWYgW1sgJF9kZXBuYW1lICE9ICRfc3VicGtnIF1dOyB0aGVuCisgICAgICAgICAg ICAgICAgIyBzdWJwa2csIGNoZWNrIGlmIGl0J3MgYSBzdWJwa2cgb2YgaXRzZWxmCisgICAgICAg ICAgICAgICAgZm91bmQ9MAorICAgICAgICAgICAgICAgIGZvciBmIGluICR7c3VicGFja2FnZXN9 OyBkbworICAgICAgICAgICAgICAgICAgICBpZiBbWyAke19zdWJwa2d9ID09ICR7Zn0gXV07IHRo ZW4KKyAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kPTEKKyAgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgZG9uZQor ICAgICAgICAgICAgICAgIGlmIFtbICRmb3VuZCAtZXEgMSBdXTsgdGhlbgorICAgICAgICAgICAg ICAgICAgICBlY2hvICIgICBbY2hlY2tdICR7X3Zwa2d9OiBub3QgZm91bmQgKHN1YnBrZywgaWdu b3JlZCkiCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBlY2hvICIg ICBbY2hlY2tdICR7X3Zwa2d9OiBub3QgZm91bmQiCisgICAgICAgICAgICAgICAgICAgIGhvc3Rf bWlzc2luZ19kZXBzKz0oIiRfdnBrZyIpCiAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAg IGVsc2UKKyAgICAgICAgICAgICAgICBlY2hvICIgICBbY2hlY2tdICR7X3Zwa2d9OiBub3QgZm91 bmQiCisgICAgICAgICAgICAgICAgaG9zdF9taXNzaW5nX2RlcHMrPSgiJF92cGtnIikKICAgICAg ICAgICAgIGZpCi0gICAgICAgIGZpCi0gICAgICAgIGNoZWNrX21pc3NpbmdfZGVwcys9KCIke2l9 IikKLSAgICBkb25lCi0KKyAgICAgICAgZG9uZSA8IDwoJFhCUFNfQ0hFQ0tWRVJTX0NNRCAke1hC UFNfU0tJUF9SRU1PVEVSRVBPUzorLWl9IC1EICRYQlBTX0RJU1RESVIgLXNtICR7Y2hlY2tkZXBl bmRzfSkKKyAgICBmaQogCiAgICAgIwogICAgICMgVGFyZ2V0IGJ1aWxkIGRlcGVuZGVuY2llcy4K ICAgICAjCi0gICAgZm9yIGkgaW4gJHtidWlsZF9kZXBlbmRzfTsgZG8KLSAgICAgICAgX3JlYWxw a2c9IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtnbmFtZSAkaSAyPi9kZXYvbnVsbCkiCi0gICAg ICAgICMgQ2hlY2sgaWYgZGVwZW5kZW5jeSBpcyBhIHN1YnBrZywgaWYgaXQgaXMsIGlnbm9yZSBp dC4KLSAgICAgICAgdW5zZXQgZm91bmQKLSAgICAgICAgZm9yIGogaW4gJHtzdWJwYWNrYWdlc307 IGRvCi0gICAgICAgICAgICBbICIkaiIgPSAiJHtfcmVhbHBrZ30iIF0gJiYgZm91bmQ9MSAmJiBi cmVhawotICAgICAgICBkb25lCi0gICAgICAgIFsgLW4gIiRmb3VuZCIgXSAmJiBjb250aW51ZQot ICAgICAgICBjaGVja19wa2dkZXBfbWF0Y2hlZCAiJHtpfSIgdmVyc2lvbiAkY3Jvc3MKLSAgICAg ICAgbG9jYWwgcnZhbD0kPwotICAgICAgICBpZiBbICRydmFsIC1lcSAwIF07IHRoZW4KLSAgICAg ICAgICAgIGVjaG8gIiAgIFt0YXJnZXRdICR7aX06IGluc3RhbGxlZC4iCi0gICAgICAgICAgICBj b250aW51ZQotICAgICAgICBlbGlmIFsgJHJ2YWwgLWVxIDEgXTsgdGhlbgotICAgICAgICAgICAg aXZlcj0kKCRYQlBTX1VIRUxQRVJfWENNRCB2ZXJzaW9uICR7X3JlYWxwa2d9KQotICAgICAgICAg ICAgaWYgWyAkPyAtZXEgMCAtYSAtbiAiJGl2ZXIiIF07IHRoZW4KLSAgICAgICAgICAgICAgICBl Y2hvICIgICBbdGFyZ2V0XSAke2l9OiBpbnN0YWxsZWQgJGl2ZXIgKHZpcnR1YWxwa2cpLiIKKyAg ICBpZiBbWyAke21ha2VkZXBlbmRzfSBdXTsgdGhlbgorICAgICAgICB3aGlsZSByZWFkIC1yIF9k ZXBuYW1lIF9kZXByZXBvdmVyIF9kZXB2ZXIgX3N1YnBrZyBfcmVwb3VybDsgZG8KKyAgICAgICAg ICAgIF92cGtnPSR7X3N1YnBrZ30tJHtfZGVwdmVyfQorICAgICAgICAgICAgIyBiaW5hcnkgcGFj a2FnZSBmb3VuZCBpbiBhIHJlcG8KKyAgICAgICAgICAgIGlmIFtbICR7X2RlcHZlcn0gPT0gJHtf ZGVwcmVwb3Zlcn0gXV07IHRoZW4KKyAgICAgICAgICAgICAgICBlY2hvICIgICBbdGFyZ2V0XSAk e192cGtnfTogZm91bmQgKCR7X3JlcG91cmx9KSIKKyAgICAgICAgICAgICAgICBiaW5wa2dfZGVw cys9KCIke192cGtnfSIpCiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGVs c2UKLSAgICAgICAgICAgICAgICBlY2hvICIgICBbdGFyZ2V0XSAke2l9OiB1bnJlc29sdmVkIGJ1 aWxkIGRlcGVuZGVuY3khIgotICAgICAgICAgICAgICAgIHJldHVybiAxCiAgICAgICAgICAgICBm aQotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXBvPSQoJFhCUFNfUVVFUllfWENNRCAtUiAt cHJlcG9zaXRvcnkgJHtpfSAyPi9kZXYvbnVsbCkKLSAgICAgICAgICAgIGlmIFsgLW4gIiR7cmVw b30iIF07IHRoZW4KLSAgICAgICAgICAgICAgICBlY2hvICIgICBbdGFyZ2V0XSAke2l9OiBmb3Vu ZCAoJHJlcG8pIgotICAgICAgICAgICAgICAgIGJpbnBrZ19kZXBzKz0oIiR7aX0iKQotICAgICAg ICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZWNo byAiICAgW3RhcmdldF0gJHtpfTogbm90IGZvdW5kLiIKLSAgICAgICAgICAgICAgICBpZiBbICIk e19yZWFscGtnfSIgPSAiJHRhcmdldHBrZyIgXTsgdGhlbgotICAgICAgICAgICAgICAgICAgICBt c2dfZXJyb3IgIiR7cGtnfTogW3RhcmdldF0gYnVpbGQgbG9vcCBkZXRlY3RlZDogJHtfcmVhbHBr Z30gPC0+ICR7dGFyZ2V0cGtnfSBbZGVwZW5kcyBvbiBpdHNlbGZdXG4iCi0gICAgICAgICAgICAg ICAgZWxpZiBbICIke19yZWFscGtnfSIgPSAiJHBrZyIgXTsgdGhlbgotICAgICAgICAgICAgICAg ICAgICBtc2dfZXJyb3IgIiR7cGtnfTogW3RhcmdldF0gYnVpbGQgbG9vcCBkZXRlY3RlZDogJHBr ZyA8LT4gJHtfcmVhbHBrZ31cbiIKKyAgICAgICAgICAgICMgYmluYXJ5IHBhY2thZ2Ugbm90IGZv dW5kCisgICAgICAgICAgICBpZiBbWyAkX2RlcG5hbWUgIT0gJF9zdWJwa2cgXV07IHRoZW4KKyAg ICAgICAgICAgICAgICAjIHN1YnBrZywgY2hlY2sgaWYgaXQncyBhIHN1YnBrZyBvZiBpdHNlbGYK KyAgICAgICAgICAgICAgICBmb3VuZD0wCisgICAgICAgICAgICAgICAgZm9yIGYgaW4gJHtzdWJw YWNrYWdlc307IGRvCisgICAgICAgICAgICAgICAgICAgIGlmIFtbICR7X3N1YnBrZ30gPT0gJHtm fSBdXTsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgZm91bmQ9MQorICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAg ICBkb25lCisgICAgICAgICAgICAgICAgaWYgW1sgJGZvdW5kIC1lcSAxIF1dOyB0aGVuCisgICAg ICAgICAgICAgICAgICAgIGVjaG8gIiAgIFt0YXJnZXRdICR7X3Zwa2d9OiBub3QgZm91bmQgKHN1 YnBrZywgaWdub3JlZCkiCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg ICBlY2hvICIgICBbdGFyZ2V0XSAke192cGtnfTogbm90IGZvdW5kIgorICAgICAgICAgICAgICAg ICAgICBtaXNzaW5nX2RlcHMrPSgiJF92cGtnIikKICAgICAgICAgICAgICAgICBmaQorICAgICAg ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGVjaG8gIiAgIFt0YXJnZXRdICR7X3Zwa2d9OiBu b3QgZm91bmQiCisgICAgICAgICAgICAgICAgbWlzc2luZ19kZXBzKz0oIiRfdnBrZyIpCiAgICAg ICAgICAgICBmaQotICAgICAgICBmaQotICAgICAgICBtaXNzaW5nX2RlcHMrPSgiJHtpfSIpCi0g ICAgZG9uZQorICAgICAgICBkb25lIDwgPCgkWEJQU19DSEVDS1ZFUlNfWENNRCAke1hCUFNfU0tJ UF9SRU1PVEVSRVBPUzorLWl9IC1EICRYQlBTX0RJU1RESVIgLXNtICR7bWFrZWRlcGVuZHN9KQor ICAgIGZpCiAKICAgICAjCiAgICAgIyBUYXJnZXQgcnVuIHRpbWUgZGVwZW5kZW5jaWVzCiAgICAg IwotICAgIGZvciBpIGluICR7cnVuX2RlcGVuZHN9OyBkbwotICAgICAgICBfcmVhbHBrZz0iJHtp JVw/Kn0iCi0gICAgICAgIF9jdXJwa2c9IiR7X3JlYWxwa2d9IgotICAgICAgICBfdnBrZz0iJHtp IypcP30iCi0gICAgICAgIGlmIFsgIiR7X3JlYWxwa2d9IiAhPSAiJHtfdnBrZ30iIF07IHRoZW4K LSAgICAgICAgICAgIF9yZWFscGtnPSIke192cGtnfSIKLSAgICAgICAgZWxzZQotICAgICAgICAg ICAgdW5zZXQgX2N1cnBrZwotICAgICAgICBmaQotICAgICAgICBwa2duPSQoJFhCUFNfVUhFTFBF Ul9DTUQgZ2V0cGtnZGVwbmFtZSAiJHtfcmVhbHBrZ30iKQotICAgICAgICBpZiBbIC16ICIkcGtn biIgXTsgdGhlbgotICAgICAgICAgICAgcGtnbj0kKCRYQlBTX1VIRUxQRVJfQ01EIGdldHBrZ25h bWUgIiR7X3JlYWxwa2d9IikKLSAgICAgICAgICAgIGlmIFsgLXogIiRwa2duIiBdOyB0aGVuCi0g ICAgICAgICAgICAgICAgbXNnX2Vycm9yICIkcGtndmVyOiBpbnZhbGlkIHJ1bnRpbWUgZGVwZW5k ZW5jeTogJHtfcmVhbHBrZ31cbiIKLSAgICAgICAgICAgIGZpCi0gICAgICAgIGZpCi0gICAgICAg ICMgQ2hlY2sgaWYgZGVwZW5kZW5jeSBpcyBhIHN1YnBrZywgaWYgaXQgaXMsIGlnbm9yZSBpdC4K LSAgICAgICAgdW5zZXQgZm91bmQKLSAgICAgICAgZm9yIGogaW4gJHtzdWJwYWNrYWdlc307IGRv Ci0gICAgICAgICAgICBbICIkaiIgPSAiJHtwa2dufSIgXSAmJiBmb3VuZD0xICYmIGJyZWFrCi0g ICAgICAgIGRvbmUKLSAgICAgICAgWyAtbiAiJGZvdW5kIiBdICYmIGNvbnRpbnVlCi0gICAgICAg IF9wcm9wcz0kKCRYQlBTX1FVRVJZX1hDTUQgLVIgLXBwa2d2ZXIscmVwb3NpdG9yeSAke19yZWFs cGtnfSAyPi9kZXYvbnVsbCkKLSAgICAgICAgaWYgWyAtbiAiJHtfcHJvcHN9IiBdOyB0aGVuCi0g ICAgICAgICAgICBzZXQgLS0gJHtfcHJvcHN9Ci0gICAgICAgICAgICAkWEJQU19VSEVMUEVSX0NN RCBwa2dtYXRjaCAkezF9ICIke19yZWFscGtnfSIKLSAgICAgICAgICAgIGlmIFsgJD8gLWVxIDEg XTsgdGhlbgotICAgICAgICAgICAgICAgIGlmIFsgLW4gIiR7X2N1cnBrZ30iIF07IHRoZW4KLSAg ICAgICAgICAgICAgICAgICAgZWNobyAiICAgW3J1bnRpbWVdICR7X2N1cnBrZ306JHtfcmVhbHBr Z30gKHZpcnR1YWwgZGVwZW5kZW5jeSk6IGZvdW5kICQxICgkMikiCi0gICAgICAgICAgICAgICAg ZWxzZQotICAgICAgICAgICAgICAgICAgICBlY2hvICIgICBbcnVudGltZV0gJHtfcmVhbHBrZ306 IGZvdW5kICQxICgkMikiCi0gICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICBzaGlm dCAyCisgICAgaWYgW1sgJHtkZXBlbmRzfSBdXTsgdGhlbgorICAgICAgICBfZGVwcz0kKHNldHVw X3BrZ19kZXBlbmRzICIiIDEpCisgICAgICAgIHdoaWxlIHJlYWQgLXIgX2RlcG5hbWUgX2RlcHJl cG92ZXIgX2RlcHZlciBfc3VicGtnIF9yZXBvdXJsOyBkbworICAgICAgICAgICAgX3Zwa2c9JHtf c3VicGtnfS0ke19kZXB2ZXJ9CisgICAgICAgICAgICAjIGJpbmFyeSBwYWNrYWdlIGZvdW5kIGlu IGEgcmVwbworICAgICAgICAgICAgaWYgW1sgJHtfZGVwdmVyfSA9PSAke19kZXByZXBvdmVyfSBd XTsgdGhlbgorICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtydW50aW1lXSAke192cGtnfTogZm91 bmQgKCR7X3JlcG91cmx9KSIKICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAg ZWxzZQotICAgICAgICAgICAgICAgIGlmIFsgLW4gIiR7X2N1cnBrZ30iIF07IHRoZW4KLSAgICAg ICAgICAgICAgICAgICAgZWNobyAiICAgW3J1bnRpbWVdICR7X2N1cnBrZ306JHtfcmVhbHBrZ30g KHZpcnR1YWwgZGVwZW5kZW5jeSk6IG5vdCBmb3VuZC4iCisgICAgICAgICAgICBmaQorICAgICAg ICAgICAgIyBiaW5hcnkgcGFja2FnZSBub3QgZm91bmQKKyAgICAgICAgICAgIGlmIFtbICRfZGVw bmFtZSAhPSAkX3N1YnBrZyBdXTsgdGhlbgorICAgICAgICAgICAgICAgICMgc3VicGtnLCBjaGVj ayBpZiBpdCdzIGEgc3VicGtnIG9mIGl0c2VsZgorICAgICAgICAgICAgICAgIGZvdW5kPTAKKyAg ICAgICAgICAgICAgICBmb3IgZiBpbiAke3N1YnBhY2thZ2VzfTsgZG8KKyAgICAgICAgICAgICAg ICAgICAgaWYgW1sgJHtfc3VicGtnfSA9PSAke2Z9IF1dOyB0aGVuCisgICAgICAgICAgICAgICAg ICAgICAgICBmb3VuZD0xCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAg ICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgIGRvbmUKKyAgICAgICAgICAgICAgICBpZiBb WyAkZm91bmQgLWVxIDEgXV07IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgZWNobyAiICAgW3J1 bnRpbWVdICR7X3Zwa2d9OiBub3QgZm91bmQgKHN1YnBrZywgaWdub3JlZCkiCiAgICAgICAgICAg ICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBlY2hvICIgICBbcnVudGltZV0gJHtfcmVh bHBrZ306IG5vdCBmb3VuZC4iCisgICAgICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtydW50aW1l XSAke192cGtnfTogbm90IGZvdW5kIgorICAgICAgICAgICAgICAgICAgICBtaXNzaW5nX3JkZXBz Kz0oIiRfdnBrZyIpCiAgICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgIGZpCi0gICAgICAg ICAgICBzaGlmdCAyCi0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGlmIFsgLW4gIiR7X2N1cnBr Z30iIF07IHRoZW4KLSAgICAgICAgICAgICAgICBlY2hvICIgICBbcnVudGltZV0gJHtfY3VycGtn fToke19yZWFscGtnfSAodmlydHVhbCBkZXBlbmRlbmN5KTogbm90IGZvdW5kLiIKICAgICAgICAg ICAgIGVsc2UKLSAgICAgICAgICAgICAgICBlY2hvICIgICBbcnVudGltZV0gJHtfcmVhbHBrZ306 IG5vdCBmb3VuZC4iCisgICAgICAgICAgICAgICAgZWNobyAiICAgW3J1bnRpbWVdICR7X3Zwa2d9 OiBub3QgZm91bmQiCisgICAgICAgICAgICAgICAgbWlzc2luZ19yZGVwcys9KCIkX3Zwa2ciKQog ICAgICAgICAgICAgZmkKLSAgICAgICAgZmkKLSAgICAgICAgaWYgWyAiJHtfcmVhbHBrZ30iID0g IiR0YXJnZXRwa2ciIF07IHRoZW4KLSAgICAgICAgICAgIG1zZ19lcnJvciAiJHtwa2d9OiBbcnVu XSBidWlsZCBsb29wIGRldGVjdGVkOiAke19yZWFscGtnfSA8LT4gJHt0YXJnZXRwa2d9IFtkZXBl bmRzIG9uIGl0c2VsZl1cbiIKLSAgICAgICAgZWxpZiBbICIke19yZWFscGtnfSIgPSAiJHBrZyIg XTsgdGhlbgotICAgICAgICAgICAgbXNnX2Vycm9yICIke3BrZ306IFtydW5dIGJ1aWxkIGxvb3Ag ZGV0ZWN0ZWQ6ICRwa2cgPC0+ICR7X3JlYWxwa2d9XG4iCi0gICAgICAgIGZpCi0gICAgICAgIG1p c3NpbmdfcmRlcHMrPSgiJHtfcmVhbHBrZ30iKQotICAgIGRvbmUKKyAgICAgICAgZG9uZSA8IDwo JFhCUFNfQ0hFQ0tWRVJTX1hDTUQgJHtYQlBTX1NLSVBfUkVNT1RFUkVQT1M6Ky1pfSAtRCAkWEJQ U19ESVNURElSIC1zbSAkX2RlcHMpCisgICAgICAgIHVuc2V0IF9kZXBzCisgICAgZmkKIAogICAg IGlmIFsgLW4gIiRYQlBTX0JVSUxEX09OTFlfT05FX1BLRyIgXTsgdGhlbgogICAgICAgICAgICBm b3IgaSBpbiAke2hvc3RfbWlzc2luZ19kZXBzW0BdfTsgZG8KICAgICAgICAgICAgICAgICAgICBt c2dfZXJyb3IgImRlcCAke2l9IG5vdCBmb3VuZDogLTEgcGFzc2VkOiBpbnN0cnVjdGVkIG5vdCB0 byBidWlsZFxuIgogICAgICAgICAgICBkb25lCi0gICAgICAgICAgIGZvciBpIGluICR7Y2hlY2tf bWlzc2luZ19kZXBzW0BdfTsgZG8KLSAgICAgICAgICAgICAgICAgICBtc2dfZXJyb3IgImRlcCAk e2l9IG5vdCBmb3VuZDogLTEgcGFzc2VkOiBpbnN0cnVjdGVkIG5vdCB0byBidWlsZFxuIgotICAg ICAgICAgICBkb25lCiAgICAgICAgICAgIGZvciBpIGluICR7bWlzc2luZ19yZGVwc1tAXX07IGRv CiAgICAgICAgICAgICAgICAgICAgbXNnX2Vycm9yICJkZXAgJHtpfSBub3QgZm91bmQ6IC0xIHBh c3NlZDogaW5zdHJ1Y3RlZCBub3QgdG8gYnVpbGRcbiIKICAgICAgICAgICAgZG9uZQpAQCAtNDI5 LDE4ICszMDQsNiBAQCBpbnN0YWxsX3BrZ19kZXBzKCkgewogICAgICAgICBob3N0X2JpbnBrZ19k ZXBzKz0oIiRpIikKICAgICBkb25lCiAKLSAgICAjIE1pc3NpbmcgY2hlY2sgZGVwZW5kZW5jaWVz LCBidWlsZCBmcm9tIHNyY3BrZ3MuCi0gICAgZm9yIGkgaW4gJHtjaGVja19taXNzaW5nX2RlcHNb QF19OyBkbwotICAgICAgICAjIHBhY2thZ2VzIG5vdCBmb3VuZCBpbiByZXBvcywgaW5zdGFsbCBm cm9tIHNvdXJjZS4KLSAgICAgICAgKAotICAgICAgICBjdXJwa2dkZXBuYW1lPSQoJFhCUFNfVUhF TFBFUl9DTUQgZ2V0cGtnbmFtZSAiJGkiIDI+L2Rldi9udWxsKQotICAgICAgICBzZXR1cF9wa2cg JGN1cnBrZ2RlcG5hbWUKLSAgICAgICAgZXhlYyBlbnYgWEJQU19ERVBFTkRFTkNZPTEgWEJQU19C SU5QS0dfRVhJU1RTPTEgXAotICAgICAgICAgICAgJFhCUFNfTElCRVhFQ0RJUi9idWlsZC5zaCAk c291cmNlcGtnICRwa2cgJHRhcmdldCB8fCBleGl0ICQ/Ci0gICAgICAgICkgfHwgZXhpdCAkPwot ICAgICAgICBjaGVja19iaW5wa2dfZGVwcys9KCIkaSIpCi0gICAgZG9uZQotCiAgICAgIyBNaXNz aW5nIHRhcmdldCBkZXBlbmRlbmNpZXMsIGJ1aWxkIGZyb20gc3JjcGtncy4KICAgICBmb3IgaSBp biAke21pc3NpbmdfZGVwc1tAXX07IGRvCiAgICAgICAgICMgcGFja2FnZXMgbm90IGZvdW5kIGlu IHJlcG9zLCBpbnN0YWxsIGZyb20gc291cmNlLgpAQCAtNDcxLDIyICszMzQsMjUgQEAgaW5zdGFs bF9wa2dfZGVwcygpIHsKICAgICAgICAgKSB8fCBleGl0ICQ/CiAgICAgZG9uZQogCi0gICAgaWYg WyAiJHBrZyIgIT0gIiR0YXJnZXRwa2ciIF07IHRoZW4KLSAgICAgICAgbXNnX25vcm1hbCAiJHBr ZzogYnVpbGRpbmcke3N0eWxlfSAoZGVwZW5kZW5jeSBvZiAkdGFyZ2V0cGtnKSAuLi5cbiIKKyAg ICBpZiBbWyAke2hvc3RfYmlucGtnX2RlcHN9IF1dOyB0aGVuCisgICAgICAgIGlmIFsgLXogIiRY QlBTX1FVSUVUIiBdOyB0aGVuCisgICAgICAgICAgICAjIG5vcm1hbCBtZXNzYWdlcyBpbiBib2xk CisgICAgICAgICAgICBbWyAkTk9DT0xPUlMgXV0gfHwgcHJpbnRmICJcMDMzWzFtIgorICAgICAg ICAgICAgZWNobyAiPT4gJHBrZ3ZlcjogaW5zdGFsbGluZyBob3N0IGRlcGVuZGVuY2llczogJHto b3N0X2JpbnBrZ19kZXBzW0BdfSAuLi4iCisgICAgICAgICAgICBbWyAkTk9DT0xPUlMgXV0gfHwg cHJpbnRmICJcMDMzW20iCisgICAgICAgIGZpCisgICAgICAgIGluc3RhbGxfcGtnX2Zyb21fcmVw b3MgIiIgIiR7aG9zdF9iaW5wa2dfZGVwc1tAXX0iCiAgICAgZmkKIAotICAgIGZvciBpIGluICR7 aG9zdF9iaW5wa2dfZGVwc1tAXX07IGRvCi0gICAgICAgIG1zZ19ub3JtYWwgIiRwa2d2ZXI6IGlu c3RhbGxpbmcgaG9zdCBkZXBlbmRlbmN5ICckaScgLi4uXG4iCi0gICAgICAgIGluc3RhbGxfcGtn X2Zyb21fcmVwb3MgIiR7aX0iCi0gICAgZG9uZQotCi0gICAgZm9yIGkgaW4gJHtjaGVja19iaW5w a2dfZGVwc1tAXX07IGRvCi0gICAgICAgIG1zZ19ub3JtYWwgIiRwa2d2ZXI6IGluc3RhbGxpbmcg Y2hlY2sgZGVwZW5kZW5jeSAnJGknIC4uLlxuIgotICAgICAgICBpbnN0YWxsX3BrZ19mcm9tX3Jl cG9zICIke2l9IgotICAgIGRvbmUKKyAgICBpZiBbWyAke2JpbnBrZ19kZXBzfSBdXTsgdGhlbgor ICAgICAgICBpZiBbIC16ICIkWEJQU19RVUlFVCIgXTsgdGhlbgorICAgICAgICAgICAgIyBub3Jt YWwgbWVzc2FnZXMgaW4gYm9sZAorICAgICAgICAgICAgW1sgJE5PQ09MT1JTIF1dIHx8IHByaW50 ZiAiXDAzM1sxbSIKKyAgICAgICAgICAgIGVjaG8gIj0+ICRwa2d2ZXI6IGluc3RhbGxpbmcgdGFy Z2V0IGRlcGVuZGVuY2llczogJHtiaW5wa2dfZGVwc1tAXX0gLi4uIgorICAgICAgICAgICAgW1sg JE5PQ09MT1JTIF1dIHx8IHByaW50ZiAiXDAzM1ttIgorICAgICAgICBmaQorICAgICAgICBpbnN0 YWxsX3BrZ19mcm9tX3JlcG9zICIkY3Jvc3MiICIke2JpbnBrZ19kZXBzW0BdfSIKKyAgICBmaQog Ci0gICAgZm9yIGkgaW4gJHtiaW5wa2dfZGVwc1tAXX07IGRvCi0gICAgICAgIG1zZ19ub3JtYWwg IiRwa2d2ZXI6IGluc3RhbGxpbmcgdGFyZ2V0IGRlcGVuZGVuY3kgJyRpJyAuLi5cbiIKLSAgICAg ICAgaW5zdGFsbF9wa2dfZnJvbV9yZXBvcyAiJGkiICRjcm9zcwotICAgIGRvbmUKKyAgICByZXR1 cm4gMAogfQpkaWZmIC0tZ2l0IGEvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvYnVsay5zaCBiL2Nv bW1vbi94YnBzLXNyYy9zaHV0aWxzL2J1bGsuc2gKaW5kZXggNzM5NDc5NjUyODIuLjJkMWQ2MTJj OTY2IDEwMDY0NAotLS0gYS9jb21tb24veGJwcy1zcmMvc2h1dGlscy9idWxrLnNoCisrKyBiL2Nv bW1vbi94YnBzLXNyYy9zaHV0aWxzL2J1bGsuc2gKQEAgLTEsMzYgKzEsMTEgQEAKICMgdmltOiBz ZXQgdHM9NCBzdz00IGV0OgogCi1idWxrX2dldGxpbmsoKSB7Ci0gICAgbG9jYWwgcD0iJHsxIyMq L30iCi0gICAgbG9jYWwgdGFyZ2V0PSIkKHJlYWRsaW5rICRYQlBTX1NSQ1BLR0RJUi8kcCkiCi0K LSAgICBpZiBbICQ/IC1lcSAwIC1hIC1uICIkdGFyZ2V0IiBdOyB0aGVuCi0gICAgICAgIHA9JHRh cmdldAotICAgIGZpCi0gICAgZWNobyAkcAotfQotCiBidWxrX3NvcnRkZXBzKCkgewogICAgIGxv Y2FsIF9wa2dzIF9wa2cgcGtncyBwa2cgZm91bmQgZiB4IHRtcGYKIAotICAgIF9wa2dzPSIkQCIK LSAgICAjIEl0ZXJhdGUgb3ZlciB0aGUgbGlzdCBhbmQgbWFrZSBzdXJlIHRoYXQgb25seSByZWFs IHBrZ3MgYXJlCi0gICAgIyBhZGRlZCB0byBvdXIgcGtnbGlzdC4KLSAgICBmb3IgcGtnIGluICR7 X3BrZ3N9OyBkbwotICAgICAgICBmb3VuZD0wCi0gICAgICAgIGY9JChidWxrX2dldGxpbmsgJHBr ZykKLSAgICAgICAgZm9yIHggaW4gJHtwa2dzfTsgZG8KLSAgICAgICAgICAgIGlmIFsgIiR4IiA9 ICIke2Z9IiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgZm91bmQ9MQotICAgICAgICAgICAgICAg IGJyZWFrCi0gICAgICAgICAgICBmaQotICAgICAgICBkb25lCi0gICAgICAgIGlmIFsgJGZvdW5k IC1lcSAwIF07IHRoZW4KLSAgICAgICAgICAgIHBrZ3MrPSIke2Z9ICIKLSAgICAgICAgZmkKLSAg ICBkb25lCi0KKyAgICBwa2dzPSIkQCIKICAgICB0bXBmPSQobWt0ZW1wKSB8fCBleGl0IDEKKwog ICAgICMgTm93IG1ha2UgdGhlIHJlYWwgZGVwZW5kZW5jeSBncmFwaCBvZiBhbGwgcGtncyB0byBi dWlsZC4KICAgICAjIFBlcmZvcm0gYSB0b3BvbG9naWNhbCBzb3J0IG9mIGFsbCBwa2dzIGJ1dCBv bmx5IHdpdGggYnVpbGQgZGVwZW5kZW5jaWVzCiAgICAgIyB0aGF0IGFyZSBmb3VuZCBpbiBwcmV2 aW91cyBzdGVwLgpAQCAtMzgsMTYgKzEzLDExIEBAIGJ1bGtfc29ydGRlcHMoKSB7CiAgICAgICAg IF9wa2dzPSIkKC4veGJwcy1zcmMgc2hvdy1idWlsZC1kZXBzICRwa2cgMj4vZGV2L251bGwpIgog ICAgICAgICBmb3VuZD0wCiAgICAgICAgIGZvciB4IGluICR7X3BrZ3N9OyBkbwotICAgICAgICAg ICAgX3BrZz0kKGJ1bGtfZ2V0bGluayAkeCkKICAgICAgICAgICAgIGZvciBmIGluICR7cGtnc307 IGRvCi0gICAgICAgICAgICAgICAgaWYgWyAiJHtmfSIgIT0gIiR7X3BrZ30iIF07IHRoZW4KLSAg ICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICBmaQotICAgICAgICAg ICAgICAgIGZvdW5kPTEKLSAgICAgICAgICAgICAgICBlY2hvICIke3BrZ30gJHtmfSIgPj4gJHRt cGYKKyAgICAgICAgICAgICAgICBbWyAkZiA9PSAkeCBdXSAmJiBmb3VuZD0xICYmIGVjaG8gIiR7 cGtnfSAke2Z9IiA+PiAkdG1wZgogICAgICAgICAgICAgZG9uZQogICAgICAgICBkb25lCi0gICAg ICAgIFsgJGZvdW5kIC1lcSAwIF0gJiYgZWNobyAiJHtwa2d9ICR7cGtnfSIgPj4gJHRtcGYKKyAg ICAgICAgW1sgJGZvdW5kIC1lcSAwIF1dICYmIGVjaG8gIiR7cGtnfSAke3BrZ30iID4+ICR0bXBm CiAgICAgZG9uZQogICAgIHRzb3J0ICR0bXBmfHRhYwogICAgIHJtIC1mICR0bXBmCkBAIC02Myw3 ICszMyw3IEBAIGJ1bGtfYnVpbGQoKSB7CiAgICAgICAgIG1zZ19lcnJvciAieGJwcy1zcmM6IGNh bm5vdCBmaW5kIHhicHMtY2hlY2t2ZXJzKDgpIGNvbW1hbmQhXG4iCiAgICAgZmkKIAotICAgIGJ1 bGtfc29ydGRlcHMgIiQoeGJwcy1jaGVja3ZlcnMgJHsxfSAtLWRpc3RkaXI9JFhCUFNfRElTVERJ UiB8IGF3ayAne3ByaW50ICQyfScpIgorICAgIGJ1bGtfc29ydGRlcHMgIiQoeGJwcy1jaGVja3Zl cnMgLWYgJyVuJyAkezF9IC0tZGlzdGRpcj0kWEJQU19ESVNURElSKSIKIH0KIAogYnVsa191cGRh dGUoKSB7CmRpZmYgLS1naXQgYS9jb21tb24veGJwcy1zcmMvc2h1dGlscy9jaHJvb3Quc2ggYi9j b21tb24veGJwcy1zcmMvc2h1dGlscy9jaHJvb3Quc2gKaW5kZXggMTdiYTlkZGU2Y2EuLjdlMjhm MTEyMGRkIDEwMDY0NAotLS0gYS9jb21tb24veGJwcy1zcmMvc2h1dGlscy9jaHJvb3Quc2gKKysr IGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvY2hyb290LnNoCkBAIC0xNjksNyArMTY5LDcgQEAg Y2hyb290X2hhbmRsZXIoKSB7CiAgICAgWyAteiAiJGFjdGlvbiIgLWEgLXogIiRwa2ciIF0gJiYg cmV0dXJuIDEKIAogICAgIGNhc2UgIiRhY3Rpb24iIGluCi0gICAgICAgIGZldGNofGV4dHJhY3R8 cGF0Y2h8YnVpbGR8Y2hlY2t8Y29uZmlndXJlfGluc3RhbGx8aW5zdGFsbC1kZXN0ZGlyfHBrZ3xi dWlsZC1wa2d8Ym9vdHN0cmFwLXVwZGF0ZXxjaHJvb3QpCisgICAgICAgIGZldGNofGV4dHJhY3R8 cGF0Y2h8Y29uZmlndXJlfGJ1aWxkfGNoZWNrfGluc3RhbGx8cGtnfGJvb3RzdHJhcC11cGRhdGV8 Y2hyb290KQogICAgICAgICAgICAgY2hyb290X3ByZXBhcmUgfHwgcmV0dXJuICQ/CiAgICAgICAg ICAgICBjaHJvb3RfaW5pdCB8fCByZXR1cm4gJD8KICAgICAgICAgICAgIGNocm9vdF9zeW5jX3Jl cG9zIHx8IHJldHVybiAkPwpAQCAtMTgxLDMwICsxODEsMTMgQEAgY2hyb290X2hhbmRsZXIoKSB7 CiAgICAgICAgICAgICAkWEJQU19NQVNURVJESVIgJFhCUFNfRElTVERJUiAiJFhCUFNfSE9TVERJ UiIgIiRYQlBTX0NIUk9PVF9DTURfQVJHUyIgL2Jpbi94YnBzLXNoZWxsCiAgICAgICAgIHJ2PSQ/ CiAgICAgZWxzZQotICAgICAgICBbIC1uICIkWEJQU19DUk9TU19CVUlMRCIgXSAmJiBhcmc9IiRh cmcgLWEgJFhCUFNfQ1JPU1NfQlVJTEQiCi0gICAgICAgIFsgLW4gIiRYQlBTX0tFRVBfQUxMIiBd ICYmIGFyZz0iJGFyZyAtQyIKLSAgICAgICAgWyAtbiAiJE5PQ09MT1JTIiBdICYmIGFyZz0iJGFy ZyAtTCIKLSAgICAgICAgWyAtbiAiJFhCUFNfQlVJTERfRk9SQ0VNT0RFIiBdICYmIGFyZz0iJGFy ZyAtZiIKLSAgICAgICAgWyAtbiAiJFhCUFNfTUFLRUpPQlMiIF0gJiYgYXJnPSIkYXJnIC1qJFhC UFNfTUFLRUpPQlMiCi0gICAgICAgIFsgLW4gIiRYQlBTX0RFQlVHX1BLR1MiIF0gJiYgYXJnPSIk YXJnIC1nIgotICAgICAgICBbIC1uICIkWEJQU19DSEVDS19QS0dTIiBdICYmIGFyZz0iJGFyZyAt USIKLSAgICAgICAgWyAtbiAiJFhCUFNfQlVJTERfT05MWV9PTkVfUEtHIiBdICYmIGFyZz0iJGFy ZyAtMSIKLSAgICAgICAgWyAtbiAiJFhCUFNfUVVJRVQiIF0gJiYgYXJnPSIkYXJnIC1xIgotICAg ICAgICBbIC1uICIkWEJQU19TS0lQX0RFUFMiIF0gJiYgYXJnPSIkYXJnIC1JIgotICAgICAgICBb IC1uICIkWEJQU19BTFRfUkVQT1NJVE9SWSIgXSAmJiBhcmc9IiRhcmcgLXIgJFhCUFNfQUxUX1JF UE9TSVRPUlkiCi0gICAgICAgIFsgLW4gIiRYQlBTX1VTRV9HSVRfUkVWUyIgXSAmJiBhcmc9IiRh cmcgLUciCi0gICAgICAgIFsgLW4gIiRYQlBTX1BLR19PUFRJT05TIiBdICYmIGFyZz0iJGFyZyAt byAkWEJQU19QS0dfT1BUSU9OUyIKLSAgICAgICAgWyAtbiAiJFhCUFNfVEVNUF9NQVNURVJESVIi IF0gJiYgYXJnPSIkYXJnIC10IC1DIgotICAgICAgICBbIC1uICIkWEJQU19CSU5QS0dfRVhJU1RT IiBdICYmIGFyZz0iJGFyZyAtRSIKLQotICAgICAgICBhY3Rpb249IiRhcmcgJGFjdGlvbiIKICAg ICAgICAgZW52IC1pIC0tIFBBVEg9Ii91c3IvYmluIiBTSEVMTD0vYmluL3NoIFwKICAgICAgICAg ICAgIEhPTUU9L3RtcCBJTl9DSFJPT1Q9MSBMQ19DT0xMQVRFPUMgTEFORz1lbl9VUy5VVEYtOCBc CiAgICAgICAgICAgICBTT1VSQ0VfREFURV9FUE9DSD0iJFNPVVJDRV9EQVRFX0VQT0NIIiBcCiAg ICAgICAgICAgICBYQlBTX0FMTE9XX0NIUk9PVF9CUkVBS09VVD0iJFhCUFNfQUxMT1dfQ0hST09U X0JSRUFLT1VUIiBcCiAgICAgICAgICAgICAkWEJQU19DT01NT05ESVIvY2hyb290LXN0eWxlLyR7 WEJQU19DSFJPT1RfQ01EOj11dW5zaGFyZX0uc2ggXAogICAgICAgICAgICAgJFhCUFNfTUFTVEVS RElSICRYQlBTX0RJU1RESVIgIiRYQlBTX0hPU1RESVIiICIkWEJQU19DSFJPT1RfQ01EX0FSR1Mi IFwKLSAgICAgICAgICAgIC92b2lkLXBhY2thZ2VzL3hicHMtc3JjICRhY3Rpb24gJHBrZworICAg ICAgICAgICAgL3ZvaWQtcGFja2FnZXMveGJwcy1zcmMgJFhCUFNfT1BUSU9OUyAkYWN0aW9uICRw a2cKICAgICAgICAgcnY9JD8KICAgICBmaQogCmRpZmYgLS1naXQgYS9jb21tb24veGJwcy1zcmMv c2h1dGlscy9jb21tb24uc2ggYi9jb21tb24veGJwcy1zcmMvc2h1dGlscy9jb21tb24uc2gKaW5k ZXggNTU2NzYxOWY4ZjMuLmRlYTZlMmIzYmRkIDEwMDY0NAotLS0gYS9jb21tb24veGJwcy1zcmMv c2h1dGlscy9jb21tb24uc2gKKysrIGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvY29tbW9uLnNo CkBAIC0yOTQsNyArMjk0LDcgQEAgc2V0dXBfcGtnKCkgewogICAgICAgICBYQlBTX1JFTU9WRV9Y Q01EPSJlbnYgWEJQU19UQVJHRVRfQVJDSD0kWEJQU19UQVJHRVRfTUFDSElORSAkWEJQU19SRU1P VkVfQ01EIC1yICRYQlBTX0NST1NTX0JBU0UiCiAgICAgICAgIFhCUFNfUklOREVYX1hDTUQ9ImVu diBYQlBTX1RBUkdFVF9BUkNIPSRYQlBTX1RBUkdFVF9NQUNISU5FICRYQlBTX1JJTkRFWF9DTUQi CiAgICAgICAgIFhCUFNfVUhFTFBFUl9YQ01EPSJlbnYgWEJQU19UQVJHRVRfQVJDSD0kWEJQU19U QVJHRVRfTUFDSElORSB4YnBzLXVoZWxwZXIgLXIgJFhCUFNfQ1JPU1NfQkFTRSIKLQorICAgICAg ICBYQlBTX0NIRUNLVkVSU19YQ01EPSJlbnYgWEJQU19UQVJHRVRfQVJDSD0kWEJQU19UQVJHRVRf TUFDSElORSB4YnBzLWNoZWNrdmVycyAtLXJlcG9zaXRvcnk9JFhCUFNfUkVQT1NJVE9SWSIKICAg ICBlbHNlCiAgICAgICAgIGV4cG9ydCBYQlBTX1RBUkdFVF9NQUNISU5FPSR7WEJQU19BUkNIOi0k WEJQU19NQUNISU5FfQogICAgICAgICB1bnNldCBYQlBTX0NST1NTX0JBU0UgWEJQU19DUk9TU19M REZMQUdTIFhCUFNfQ1JPU1NfRkZMQUdTCkBAIC0zMDcsNyArMzA3LDcgQEAgc2V0dXBfcGtnKCkg ewogICAgICAgICBYQlBTX1JFTU9WRV9YQ01EPSIkWEJQU19SRU1PVkVfQ01EIgogICAgICAgICBY QlBTX1JJTkRFWF9YQ01EPSIkWEJQU19SSU5ERVhfQ01EIgogICAgICAgICBYQlBTX1VIRUxQRVJf WENNRD0iJFhCUFNfVUhFTFBFUl9DTUQiCi0KKyAgICAgICAgWEJQU19DSEVDS1ZFUlNfWENNRD0i JFhCUFNfQ0hFQ0tWRVJTX0NNRCIKICAgICBmaQogCiAgICAgZXhwb3J0IFhCUFNfSU5TVEFMTF9Y Q01EIFhCUFNfUVVFUllfWENNRCBYQlBTX1JFQ09ORklHVVJFX1hDTUQgXApAQCAtNDAyLDcgKzQw Miw3IEBAIHNldHVwX3BrZygpIHsKICAgICAgICAgYXJjaD0iJFhCUFNfVEFSR0VUX01BQ0hJTkUi CiAgICAgZmkKICAgICBpZiBbIC1uICIkWEJQU19CSU5QS0dfRVhJU1RTIiBdOyB0aGVuCi0gICAg ICAgIGlmIFsgIiQoJFhCUFNfUVVFUllfWENNRCAtUiAtcHBrZ3ZlciAkcGtndmVyIDI+L2Rldi9u dWxsKSIgPSAiJHBrZ3ZlciIgXTsgdGhlbgorICAgICAgICBpZiBbICIkKCRYQlBTX1FVRVJZX1hD TUQgLWkgLVIgLXBwa2d2ZXIgJHBrZ3ZlciAyPi9kZXYvbnVsbCkiID0gIiRwa2d2ZXIiIF07IHRo ZW4KICAgICAgICAgICAgIGV4aXRfYW5kX2NsZWFudXAKICAgICAgICAgZmkKICAgICBmaQpAQCAt NTU2LDE3ICs1NTYsMTcgQEAgc2V0dXBfcGtnKCkgewogICAgICAgICB3cmtzcmM9IiRYQlBTX0JV SUxERElSLyR3cmtzcmMiCiAgICAgZmkKIAotICAgIGlmIFsgIiRjcm9zcyIgLWEgIiRub2Nyb3Nz IiAtYSAieiRzaG93X3Byb2JsZW1zIiAhPSAiemlnbm9yZS1wcm9ibGVtcyIgXTsgdGhlbgorICAg IGlmIFsgIiRjcm9zcyIgLWEgIiRub2Nyb3NzIiAtYSAiJHNob3dfcHJvYmxlbXMiICE9ICJpZ25v cmUtcHJvYmxlbXMiIF07IHRoZW4KICAgICAgICAgbXNnX3JlZCAiJHBrZ3ZlcjogY2Fubm90IGJl IGNyb3NzIGNvbXBpbGVkLCBleGl0aW5nLi4uXG4iCiAgICAgICAgIG1zZ19yZWQgIiRwa2d2ZXI6 ICRub2Nyb3NzXG4iCiAgICAgICAgIGV4aXQgMgotICAgIGVsaWYgWyAiJGJyb2tlbiIgLWEgInok c2hvd19wcm9ibGVtcyIgIT0gInppZ25vcmUtcHJvYmxlbXMiIF07IHRoZW4KKyAgICBlbGlmIFsg IiRicm9rZW4iIC1hICIkc2hvd19wcm9ibGVtcyIgIT0gImlnbm9yZS1wcm9ibGVtcyIgXTsgdGhl bgogICAgICAgICBtc2dfcmVkICIkcGtndmVyOiBjYW5ub3QgYmUgYnVpbHQsIGl0J3MgY3VycmVu dGx5IGJyb2tlbjsgc2VlIHRoZSBidWlsZCBsb2c6XG4iCiAgICAgICAgIG1zZ19yZWQgIiRwa2d2 ZXI6ICRicm9rZW5cbiIKICAgICAgICAgZXhpdCAyCiAgICAgZmkKIAotICAgIGlmIFsgLW4gIiRy ZXN0cmljdGVkIiAtYSAteiAiJFhCUFNfQUxMT1dfUkVTVFJJQ1RFRCIgLWEgInokc2hvd19wcm9i bGVtcyIgIT0gInppZ25vcmUtcHJvYmxlbXMiIF07IHRoZW4KKyAgICBpZiBbIC1uICIkcmVzdHJp Y3RlZCIgLWEgLXogIiRYQlBTX0FMTE9XX1JFU1RSSUNURUQiIC1hICIkc2hvd19wcm9ibGVtcyIg IT0gImlnbm9yZS1wcm9ibGVtcyIgXTsgdGhlbgogICAgICAgICBtc2dfcmVkICIkcGtndmVyOiBk b2VzIG5vdCBhbGxvdyByZWRpc3RyaWJ1dGlvbiBvZiBzb3VyY2VzL2JpbmFyaWVzIChyZXN0cmlj dGVkIGxpY2Vuc2UpLlxuIgogICAgICAgICBtc2dfcmVkICJJZiB5b3UgcmVhbGx5IG5lZWQgdGhp cyBzb2Z0d2FyZSwgcnVuICdlY2hvIFhCUFNfQUxMT1dfUkVTVFJJQ1RFRD15ZXMgPj4gZXRjL2Nv bmYnXG4iCiAgICAgICAgIGV4aXQgMgpAQCAtNTc1LDkgKzU3NSw3IEBAIHNldHVwX3BrZygpIHsK ICAgICBleHBvcnQgWEJQU19TVEFURURJUj0iJHtYQlBTX0JVSUxERElSfS8ueGJwcy0ke3NvdXJj ZXBrZ30iCiAgICAgZXhwb3J0IFhCUFNfV1JBUFBFUkRJUj0iJHtYQlBTX1NUQVRFRElSfS93cmFw cGVycyIKIAotICAgIGlmIFsgLW4gIiRib290c3RyYXAiIC1hIC16ICIkQ0hST09UX1JFQURZIiAt byAtbiAiJElOX0NIUk9PVCIgXTsgdGhlbgotICAgICAgICBta2RpciAtcCAkWEJQU19XUkFQUEVS RElSCi0gICAgZmkKKyAgICBta2RpciAtcCAkWEJQU19TVEFURURJUiAkWEJQU19XUkFQUEVSRElS CiAKICAgICBzb3VyY2VfZmlsZSAkWEJQU19DT01NT05ESVIvZW52aXJvbm1lbnQvYnVpbGQtc3R5 bGUvJHtidWlsZF9zdHlsZX0uc2gKIApkaWZmIC0tZ2l0IGEvY29tbW9uL3hicHMtc3JjL3NodXRp bHMvY3Jvc3Muc2ggYi9jb21tb24veGJwcy1zcmMvc2h1dGlscy9jcm9zcy5zaAppbmRleCAxMmM5 ZWZhOWI0OS4uZTcyMTAwOTg2ZGQgMTAwNjQ0Ci0tLSBhL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxz L2Nyb3NzLnNoCisrKyBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2Nyb3NzLnNoCkBAIC0yNCwx MSArMjQsMTIgQEAgcmVtb3ZlX3BrZ19jcm9zc19kZXBzKCkgewogCiBwcmVwYXJlX2Nyb3NzX3N5 c3Jvb3QoKSB7CiAgICAgbG9jYWwgY3Jvc3M9IiQxIgorICAgIGxvY2FsIHN0YXRlZmlsZT0iJFhC UFNfTUFTVEVSRElSLy54YnBzLSR7Y3Jvc3N9LWRvbmUiCiAKLSAgICBbIC16ICIkY3Jvc3MiIC1v ICIkY3Jvc3MiID0gIiIgXSAmJiByZXR1cm4gMAorICAgIFsgLXogIiRjcm9zcyIgLW8gIiRjcm9z cyIgPSAiIiAtbyAtZiAkc3RhdGVmaWxlIF0gJiYgcmV0dXJuIDAKIAogICAgICMgQ2hlY2sgZm9y IGNyb3NzLXZwa2ctZHVtbXkgYXZhaWxhYmxlIGZvciB0aGUgdGFyZ2V0IGFyY2gsIG90aGVyd2lz ZSBidWlsZCBpdC4KLSAgICBwa2dfYXZhaWxhYmxlICdjcm9zcy12cGtnLWR1bW15Pj0wLjMwXzEn ICRjcm9zcworICAgIHBrZ19hdmFpbGFibGUgJ2Nyb3NzLXZwa2ctZHVtbXk+PTAuMzFfMScgJGNy b3NzCiAgICAgaWYgWyAkPyAtZXEgMCBdOyB0aGVuCiAgICAgICAgICRYQlBTX0xJQkVYRUNESVIv YnVpbGQuc2ggY3Jvc3MtdnBrZy1kdW1teSBjcm9zcy12cGtnLWR1bW15IHBrZyAkY3Jvc3MgaW5p dCB8fCByZXR1cm4gJD8KICAgICBmaQpAQCAtNDAsNyArNDEsNyBAQCBwcmVwYXJlX2Nyb3NzX3N5 c3Jvb3QoKSB7CiAgICAgZXJybG9nPSQobWt0ZW1wKSB8fCBleGl0IDEKICAgICAkWEJQU19JTlNU QUxMX1hDTUQgLVN5ZmQgY3Jvc3MtdnBrZy1kdW1teSAmPiRlcnJsb2cKICAgICBydmFsPSQ/Ci0g ICAgaWYgWyAkcnZhbCAtbmUgMCAtYSAkcnZhbCAtbmUgMTcgXTsgdGhlbgorICAgIGlmIFsgJHJ2 YWwgLW5lIDAgXTsgdGhlbgogICAgICAgICBtc2dfcmVkICJmYWlsZWQgdG8gaW5zdGFsbCBjcm9z cy12cGtnLWR1bW15IChlcnJvciAkcnZhbClcbiIKICAgICAgICAgY2F0ICRlcnJsb2cKICAgICAg ICAgcm0gLWYgJGVycmxvZwpAQCAtNDgsMTEgKzQ5LDE1IEBAIHByZXBhcmVfY3Jvc3Nfc3lzcm9v dCgpIHsKICAgICBmaQogICAgIHJtIC1mICRlcnJsb2cKICAgICAjIENyZWF0ZSB0b3AgbGV2ZWwg c3ltbGlua3MgaW4gc3lzcm9vdC4KLSAgICBYQlBTX0FSQ0g9JFhCUFNfVEFSR0VUX01BQ0hJTkUg eGJwcy1yZWNvbmZpZ3VyZSAtciAkWEJQU19DUk9TU19CQVNFIC1mIGJhc2UtZGlyZWN0b3JpZXMg YmFzZS1maWxlcyAmPi9kZXYvbnVsbAorICAgIFhCUFNfQVJDSD0kWEJQU19UQVJHRVRfTUFDSElO RSB4YnBzLXJlY29uZmlndXJlIC1yICRYQlBTX0NST1NTX0JBU0UgLWYgYmFzZS1maWxlcyAmPi9k ZXYvbnVsbAogICAgICMgQ3JlYXRlIGEgc3lzcm9vdC9pbmNsdWRlIGFuZCBzeXNyb290L2xpYiBz eW1saW5rIGp1c3QgaW4gY2FzZS4KICAgICBsbiAtcyB1c3IvaW5jbHVkZSAke1hCUFNfQ1JPU1Nf QkFTRX0vaW5jbHVkZQogICAgIGxuIC1zIHVzci9saWIgJHtYQlBTX0NST1NTX0JBU0V9L2xpYgog CisgICAgaW5zdGFsbF9jcm9zc19wa2cgJGNyb3NzIHx8IHJldHVybiAxCisKKyAgICB0b3VjaCAt ZiAkc3RhdGVmaWxlCisKICAgICByZXR1cm4gMAogfQogCmRpZmYgLS1naXQgYS9jb21tb24veGJw cy1zcmMvc2h1dGlscy9wa2d0YXJnZXQuc2ggYi9jb21tb24veGJwcy1zcmMvc2h1dGlscy9wa2d0 YXJnZXQuc2gKaW5kZXggYTdiZTYyNDE3M2UuLjdkM2VkMWM3OGY0IDEwMDY0NAotLS0gYS9jb21t b24veGJwcy1zcmMvc2h1dGlscy9wa2d0YXJnZXQuc2gKKysrIGIvY29tbW9uL3hicHMtc3JjL3No dXRpbHMvcGtndGFyZ2V0LnNoCkBAIC01NCw2ICs1NCwxMCBAQCByZW1vdmVfcGtnX2F1dG9kZXBz KCkgewogICAgICRYQlBTX1JFQ09ORklHVVJFX0NNRCAtYSA+PiAkdG1wbG9nZiAyPiYxCiAgICAg ZWNobyB5ZXMgfCAkWEJQU19SRU1PVkVfQ01EIC1SeW9kID4+ICR0bXBsb2dmIDI+JjEKICAgICBy dmFsPSQ/CisgICAgaWYgWyAkcnZhbCAtZXEgMCBdOyB0aGVuCisgICAgICAgIGVjaG8geWVzIHwg JFhCUFNfUkVNT1ZFX0NNRCAtUnlvZCA+PiAkdG1wbG9nZiAyPiYxCisgICAgICAgIHJ2YWw9JD8K KyAgICBmaQogCiAgICAgaWYgWyAkcnZhbCAtbmUgMCBdOyB0aGVuCiAgICAgICAgIG1zZ19yZWQg IiR7cGtndmVyOi14YnBzLXNyY306IGZhaWxlZCB0byByZW1vdmUgYXV0b2RlcHM6IChyZXR1cm5l ZCAkcnZhbClcbiIKZGlmZiAtLWdpdCBhL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL3Nob3cuc2gg Yi9jb21tb24veGJwcy1zcmMvc2h1dGlscy9zaG93LnNoCmluZGV4IGUyZmM5NTY1MTRlLi42N2Iy ZWMxNDgxMCAxMDA2NDQKLS0tIGEvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvc2hvdy5zaAorKysg Yi9jb21tb24veGJwcy1zcmMvc2h1dGlscy9zaG93LnNoCkBAIC02MSw0NCArNjEsMjIgQEAgc2hv d19hdmFpbCgpIHsKIH0KIAogc2hvd19wa2dfYnVpbGRfZGVwZW5kcygpIHsKLSAgICBsb2NhbCBm IHggX3BrZ25hbWUgX3NyY3BrZyBfZGVwIGZvdW5kIHJlc3VsdAorICAgIGxvY2FsIGYgeCBfcGtn bmFtZSBfc3JjcGtnIGZvdW5kIHJlc3VsdAogICAgIGxvY2FsIF9kZXBzPSIkMSIKIAogICAgIHJl c3VsdD0kKG1rdGVtcCkgfHwgZXhpdCAxCiAKICAgICAjIGJ1aWxkIHRpbWUgZGVwcwogICAgIGZv ciBmIGluICR7X2RlcHN9OyBkbwotICAgICAgICAjIGlnbm9yZSB2aXJ0dWFsIGRlcHMKLSAgICAg ICAgbG9jYWwgX3Jwa2c9IiR7ZiVcPyp9IgotICAgICAgICBsb2NhbCBfdnBrZz0iJHtmIypcP30i Ci0KICAgICAgICAgIyBpZ25vcmUgdmlydHVhbCBkZXBlbmRlbmNpZXMKLSAgICAgICAgaWYgWyAi JHtfcnBrZ30iICE9ICIke192cGtnfSIgXTsgdGhlbgotICAgICAgICAgICAgZj0iJHtfdnBrZ30i Ci0gICAgICAgIGZpCisgICAgICAgIFtbICR7ZiVcPyp9ICE9ICR7ZiMqXD99IF1dICYmIGY9JHtm IypcP30KICAgICAgICAgdW5zZXQgZm91bmQKICAgICAgICAgIyBjaGVjayBmb3Igc3VicGtncwog ICAgICAgICBmb3IgeCBpbiAke3N1YnBhY2thZ2VzfTsgZG8KLSAgICAgICAgICAgIF9wa2duYW1l PSIkKCRYQlBTX1VIRUxQRVJfQ01EIGdldHBrZ2RlcG5hbWUgJGYgMj4vZGV2L251bGwpIgotICAg ICAgICAgICAgaWYgWyAteiAiJHtfcGtnbmFtZX0iIF07IHRoZW4KLSAgICAgICAgICAgICAgICBf cGtnbmFtZT0iJCgkWEJQU19VSEVMUEVSX0NNRCBnZXRwa2duYW1lICRmIDI+L2Rldi9udWxsKSIK LSAgICAgICAgICAgIGZpCi0gICAgICAgICAgICBpZiBbICIke19wa2duYW1lfSIgPSAiJHgiIF07 IHRoZW4KLSAgICAgICAgICAgICAgICBmb3VuZD0xCi0gICAgICAgICAgICAgICAgYnJlYWsKLSAg ICAgICAgICAgIGZpCisgICAgICAgICAgICBbWyAkZiA9PSAkeCBdXSAmJiBmb3VuZD0xICYmIGJy ZWFrCiAgICAgICAgIGRvbmUKLSAgICAgICAgaWYgWyAtbiAiJGZvdW5kIiBdOyB0aGVuCi0gICAg ICAgICAgICBjb250aW51ZQotICAgICAgICBmaQotICAgICAgICBfcGtnbmFtZT0iJCgkWEJQU19V SEVMUEVSX0NNRCBnZXRwa2dkZXBuYW1lICRmIDI+L2Rldi9udWxsKSIKLSAgICAgICAgaWYgWyAt eiAiJHtfcGtnbmFtZX0iIF07IHRoZW4KLSAgICAgICAgICAgIF9wa2duYW1lPSIkKCRYQlBTX1VI RUxQRVJfQ01EIGdldHBrZ25hbWUgJGYgMj4vZGV2L251bGwpIgotICAgICAgICBmaQotICAgICAg ICBpZiBbIC16ICIke19wa2duYW1lfSIgXTsgdGhlbgotICAgICAgICAgICAgX3BrZ25hbWU9IiRm IgotICAgICAgICBmaQotICAgICAgICBfcGtnbmFtZT0ke19wa2duYW1lLy0zMmJpdH0KKyAgICAg ICAgW1sgJGZvdW5kIF1dICYmIGNvbnRpbnVlCisgICAgICAgIF9wa2duYW1lPSR7Zi8tMzJiaXR9 CiAgICAgICAgIF9zcmNwa2c9JChyZWFkbGluayAtZiAke1hCUFNfU1JDUEtHRElSfS8ke19wa2du YW1lfSkKICAgICAgICAgX3NyY3BrZz0ke19zcmNwa2cjIyovfQogICAgICAgICBlY2hvICIke19z cmNwa2d9IiA+PiAkcmVzdWx0CkBAIC0xMDgsMTggKzg2LDE1IEBAIHNob3dfcGtnX2J1aWxkX2Rl cGVuZHMoKSB7CiB9CiAKIHNob3dfcGtnX2J1aWxkX2RlcHMoKSB7Ci0gICAgc2V0dXBfcGtnX2Rl cGVuZHMKLSAgICBzaG93X3BrZ19idWlsZF9kZXBlbmRzICIke2hvc3RfYnVpbGRfZGVwZW5kc30g JHtidWlsZF9kZXBlbmRzfSAke3J1bl9kZXBlbmRzfSIKKyAgICBzaG93X3BrZ19idWlsZF9kZXBl bmRzICIke2hvc3RtYWtlZGVwZW5kc30gJHttYWtlZGVwZW5kc30gJChzZXR1cF9wa2dfZGVwZW5k cyAnJyAxKSIKIH0KIAogc2hvd19wa2dfaG9zdG1ha2VkZXBlbmRzKCkgewotICAgIHNldHVwX3Br Z19kZXBlbmRzCi0gICAgc2hvd19wa2dfYnVpbGRfZGVwZW5kcyAiJHtob3N0X2J1aWxkX2RlcGVu ZHN9IgorICAgIHNob3dfcGtnX2J1aWxkX2RlcGVuZHMgIiR7aG9zdG1ha2VkZXBlbmRzfSIKIH0K IAogc2hvd19wa2dfbWFrZWRlcGVuZHMoKSB7Ci0gICAgc2V0dXBfcGtnX2RlcGVuZHMKLSAgICBz aG93X3BrZ19idWlsZF9kZXBlbmRzICIke2J1aWxkX2RlcGVuZHN9IgorICAgIHNob3dfcGtnX2J1 aWxkX2RlcGVuZHMgIiR7bWFrZWRlcGVuZHN9IgogfQogCiBzaG93X3BrZ19idWlsZF9vcHRpb25z KCkgewpkaWZmIC0tZ2l0IGEveGJwcy1zcmMgYi94YnBzLXNyYwppbmRleCAyM2Q2MTY0YjE4YS4u ZjcyY2M3MDAyYzkgMTAwNzU1Ci0tLSBhL3hicHMtc3JjCisrKyBiL3hicHMtc3JjCkBAIC0xLDgg KzEsNiBAQAogIyEvYmluL2Jhc2gKICMgdmltOiBzZXQgdHM9NCBzdz00IGV0OgogCi1yZWFkb25s eSBQUk9HTkFNRT0iJHswIyMqL30iCi0KIHByaW50X2Nyb3NzX3RhcmdldHMoKSB7CiAgICAgbG9j YWwgZgogICAgIGZvciBmIGluIGNvbW1vbi9jcm9zcy1wcm9maWxlcy8qLnNoOyBkbwpAQCAtMjEw LDcgKzIwOCw3IEBAIF9FT0YKIGNoZWNrX3JlcWhvc3RfdXRpbHMoKSB7CiAgICAgbG9jYWwgYnJv a2VuCiAKLSAgICBbIC1uICIkSU5fQ0hST09UIiBdICYmIHJldHVybiAwCisgICAgWyAiJElOX0NI Uk9PVCIgXSAmJiByZXR1cm4gMAogCiAgICAgZm9yIGYgaW4gJHtSRVFIT1NUX1VUSUxTfTsgZG8K ICAgICAgICAgaWYgISBjb21tYW5kIC12ICR7Zn0gJj4vZGV2L251bGw7IHRoZW4KQEAgLTIxOCw3 ICsyMTYsNyBAQCBjaGVja19yZXFob3N0X3V0aWxzKCkgewogICAgICAgICAgICAgYnJva2VuPTEK ICAgICAgICAgZmkKICAgICBkb25lCi0gICAgWyAtbiAiJGJyb2tlbiIgXSAmJiBleGl0IDEKKyAg ICBbICIkYnJva2VuIiBdICYmIGV4aXQgMQogICAgIFsgLXogIiQxIiBdICYmIHJldHVybiAwCiAK ICAgICBmb3IgZiBpbiAke1JFUUhPU1RfVVRJTFNfQk9PVFNUUkFQfTsgZG8KQEAgLTIyNywyNCAr MjI1LDcgQEAgY2hlY2tfcmVxaG9zdF91dGlscygpIHsKICAgICAgICAgICAgIGJyb2tlbj0xCiAg ICAgICAgIGZpCiAgICAgZG9uZQotICAgIFsgLW4gIiRicm9rZW4iIF0gJiYgZXhpdCAxCi19Ci0K LWNoZWNrX2NvbmZpZ192YXJzKCkgewotICAgIGlmIFsgLXMgIiRYQlBTX0NPTkZJR19GSUxFIiBd OyB0aGVuCi0gICAgICAgIC4gJFhCUFNfQ09ORklHX0ZJTEUgJj4vZGV2L251bGwKLSAgICBmaQot ICAgIGlmIFsgLXogIiRYQlBTX01BU1RFUkRJUiIgXTsgdGhlbgotICAgICAgICBleHBvcnQgWEJQ U19NQVNURVJESVI9IiR7WEJQU19ESVNURElSfS9tYXN0ZXJkaXIiCi0gICAgZmkKLSAgICBpZiBb IC16ICIkWEJQU19IT1NURElSIiBdOyB0aGVuCi0gICAgICAgIGV4cG9ydCBYQlBTX0hPU1RESVI9 IiR7WEJQU19ESVNURElSfS9ob3N0ZGlyIgotICAgICAgICBbICEgLWQgJFhCUFNfSE9TVERJUiBd ICYmIG1rZGlyIC1wICRYQlBTX0hPU1RESVIKLSAgICBmaQotICAgIGlmIFsgLWQgIiRYQlBTX01B U1RFUkRJUiIgLWEgISAtdyAiJFhCUFNfTUFTVEVSRElSIiBdOyB0aGVuCi0gICAgICAgIGVjaG8g IkVSUk9SOiBub3QgZW5vdWdoIHBlcm1zIGZvciBtYXN0ZXJkaXIgJFhCUFNfTUFTVEVSRElSLiIK LSAgICAgICAgZXhpdCAxCi0gICAgZmkKKyAgICBbICIkYnJva2VuIiBdICYmIGV4aXQgMQogfQog CiBjaGVja19idWlsZF9yZXF1aXJlbWVudHMoKSB7CkBAIC0yNjQsMjAgKzI0NSw0MiBAQCBjaGVj a19idWlsZF9yZXF1aXJlbWVudHMoKSB7CiAgICAgZmkKIH0KIAorY2hyb290X2NoZWNrKCkgewor ICAgIGlmIFsgLWYgJFhCUFNfTUFTVEVSRElSLy54YnBzX2Nocm9vdF9pbml0IC1vICIkWEJQU19D SFJPT1RfQ01EIiA9ICJldGhlcmVhbCIgXTsgdGhlbgorICAgICAgICBleHBvcnQgQ0hST09UX1JF QURZPTEKKyAgICBmaQorfQorCitjaGVja19uYXRpdmVfYXJjaCgpIHsKKyAgICBpZiBbICIkQ0hS T09UX1JFQURZIiBdOyB0aGVuCisgICAgICAgIGlmIFsgLXMgJFhCUFNfTUFTVEVSRElSLy54YnBz X2Nocm9vdF9pbml0IF07IHRoZW4KKyAgICAgICAgICAgIGV4cG9ydCBYQlBTX0FSQ0g9JCg8JFhC UFNfTUFTVEVSRElSLy54YnBzX2Nocm9vdF9pbml0KQorICAgICAgICBlbHNlCisgICAgICAgICAg ICBleHBvcnQgWEJQU19BUkNIPSQoeGJwcy11aGVscGVyIGFyY2gpCisgICAgICAgIGZpCisgICAg ZWxzZQorICAgICAgICBMREQ9JChsZGQgLS12ZXJzaW9uIDI+JjF8aGVhZCAtMSkKKyAgICAgICAg aWYgW1sgJExERCA9PSAqbXVzbCogXV07IHRoZW4KKyAgICAgICAgICAgIGV4cG9ydCBYQlBTX0FS Q0g9JHtYQlBTX01BQ0hJTkUlLW11c2x9LW11c2wKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg IyBYQlBTX0FSQ0ggPT0gJCh1bmFtZSAtbSkKKyAgICAgICAgICAgIGV4cG9ydCBYQlBTX0FSQ0g9 JCh1bmFtZSAtbSkKKyAgICAgICAgZmkKKyAgICBmaQorfQorCiBpbnN0YWxsX2Jib290c3RyYXAo KSB7Ci0gICAgWyAtbiAiJENIUk9PVF9SRUFEWSIgXSAmJiByZXR1cm4KKyAgICBbICIkQ0hST09U X1JFQURZIiBdICYmIHJldHVybgogICAgIGlmIFsgIiQxIiA9ICJib290c3RyYXAiIF07IHRoZW4K ICAgICAgICAgdW5zZXQgWEJQU19UQVJHRVRfUEtHIFhCUFNfSU5TVEFMTF9BUkdTCiAgICAgZWxz ZQogICAgICAgICBYQlBTX1RBUkdFVF9QS0c9IiQxIgogICAgIGZpCi0gICAgaWYgWyAtbiAiJFhC UFNfU0tJUF9SRU1PVEVSRVBPUyIgXTsgdGhlbgotICAgICAgICB1bnNldCBYQlBTX0lOU1RBTExf QVJHUwotICAgIGZpCisgICAgWyAiJFhCUFNfU0tJUF9SRU1PVEVSRVBPUyIgXSAmJiB1bnNldCBY QlBTX0lOU1RBTExfQVJHUwogICAgICMgYmluYXJ5IGJvb3RzdHJhcAogICAgIG1zZ19ub3JtYWwg Ikluc3RhbGxpbmcgYm9vdHN0cmFwIGZyb20gYmluYXJ5IHBhY2thZ2UgcmVwb3NpdG9yaWVzLi4u XG4iCiAgICAgIyBYQlBTX1RBUkdFVF9QS0cgPT0gYXJjaAotICAgIGlmIFsgLW4gIiRYQlBTX1RB UkdFVF9QS0ciIF07IHRoZW4KKyAgICBpZiBbICIkWEJQU19UQVJHRVRfUEtHIiBdOyB0aGVuCiAg ICAgICAgIF9ib290c3RyYXBfYXJjaD0iZW52IFhCUFNfVEFSR0VUX0FSQ0g9JFhCUFNfVEFSR0VU X1BLRyIKICAgICAgICAgaWYgWyAiJHtYQlBTX1RBUkdFVF9QS0d9IiAhPSAiJHtYQlBTX1RBUkdF VF9QS0cjKi19IiBdOyB0aGVuCiAgICAgICAgICAgICBfc3ViYXJjaD0iLSR7WEJQU19UQVJHRVRf UEtHIyotfSIKQEAgLTMwOCwxNyArMzExLDE1IEBAIHJlY29uZmlndXJlX2Jvb3RzdHJhcF9wa2dz KCkgewogICAgICMgUmVjb25maWd1cmUgY2EtY2VydGlmaWNhdGVzLgogICAgIG1zZ19ub3JtYWwg IlJlY29uZmlndXJpbmcgYm9vdHN0cmFwIHBhY2thZ2VzLi4uXG4iCiAgICAgZm9yIGYgaW4gJHtw a2dzfTsgZG8KLSAgICAgICAgaWYgeGJwcy1xdWVyeSAkZiAmPi9kZXYvbnVsbDsgdGhlbgotICAg ICAgICAgICAgeGJwcy1yZWNvbmZpZ3VyZSAtZiAkZgorICAgICAgICBpZiAkWEJQU19RVUVSWV9D TUQgJGYgJj4vZGV2L251bGw7IHRoZW4KKyAgICAgICAgICAgICRYQlBTX1JFQ09ORklHVVJFX0NN RCAtZiAkZgogICAgICAgICBmaQogICAgIGRvbmUKICAgICB0b3VjaCAtZiAkc3RhdGVmaWxlCiB9 CiAKIGJvb3RzdHJhcF91cGRhdGUoKSB7Ci0gICAgaWYgWyAteiAiJENIUk9PVF9SRUFEWSIgXTsg dGhlbgotICAgICAgICByZXR1cm4KLSAgICBmaQorICAgIFsgLXogIiRDSFJPT1RfUkVBRFkiIF0g JiYgcmV0dXJuCiAgICAgcmVtb3ZlX3BrZ19hdXRvZGVwcwogICAgIG1zZ19ub3JtYWwgInhicHMt c3JjOiBjbGVhbmluZyB1cCBtYXN0ZXJkaXIuLi5cbiIKICAgICBybSAtcmYgJFhCUFNfTUFTVEVS RElSL2J1aWxkZGlyICRYQlBTX01BU1RFUkRJUi9kZXN0ZGlyCkBAIC0zNDcsNyArMzQ4LDcgQEAg bWFzdGVyZGlyX3phcCgpIHsKIAogZXhpdF9mdW5jKCkgewogICAgIHdhaXQKLSAgICBpZiBbIC1u ICIkc291cmNlcGtnIiBdOyB0aGVuCisgICAgaWYgWyAiJHNvdXJjZXBrZyIgXTsgdGhlbgogICAg ICAgICByZW1vdmVfcGtnICRYQlBTX0NST1NTX0JVSUxECiAgICAgZmkKICAgICBpZiBbIC16ICIk SU5fQ0hST09UIiBdOyB0aGVuCkBAIC0zOTAsMTQgKzM5MSwxNyBAQCBzZXR1cF9kaXN0ZmlsZXNf bWlycm9yKCkgewogICAgIGRvbmUKIH0KIAotcmVhZG9ubHkgWEJQU19WRVJTSU9OX1JFUT0iMC41 NSIKLXJlYWRvbmx5IFhCUFNfVkVSU0lPTj0kKHhicHMtdWhlbHBlciAtVnxhd2sgJ3twcmludCAk Mn0nKQotcmVhZG9ubHkgWEJQU19TUkNfVkVSU0lPTj0iMTEzIgotZXhwb3J0IFhCUFNfTUFDSElO RT0kKHhicHMtdWhlbHBlciBhcmNoKQotCiAjCiAjIG1haW4oKQogIworcmVhZG9ubHkgUFJPR05B TUU9IiR7MCMjKi99IgorcmVhZG9ubHkgWEJQU19WRVJTSU9OX1JFUT0iMC41NSIKK1hCUFNfVkVS U0lPTj0kKHhicHMtdWhlbHBlciAtVikKK1hCUFNfVkVSU0lPTj0ke1hCUFNfVkVSU0lPTiUlQVBJ Kn0KK1hCUFNfVkVSU0lPTj0ke1hCUFNfVkVSU0lPTiMjKjp9CityZWFkb25seSBYQlBTX1NSQ19W RVJTSU9OPSIxMTMiCitleHBvcnQgWEJQU19NQUNISU5FPSQoeGJwcy11aGVscGVyIC1DIC9kZXYv bnVsbCBhcmNoKQorCiBYQlBTX09QVElPTlM9CiBYQlBTX09QVFNUUklORz0iMWE6Q0VmZ0doSDpp SWo6TG06Tm86cVFyOnRWIgogCkBAIC00MDcsMjYgKzQxMSwyNiBAQCBldmFsIHNldCAtLSAkKGdl dG9wdCAiJFhCUFNfT1BUU1RSSU5HIiAiJEAiKTsKIHdoaWxlIGdldG9wdHMgIiRYQlBTX09QVFNU UklORyIgb3B0OyBkbwogICAgIGNhc2UgJG9wdCBpbgogICAgICAgICAxKSBleHBvcnQgWEJQU19C VUlMRF9PTkxZX09ORV9QS0c9eWVzOyBYQlBTX09QVElPTlMrPSIgLTEiOzsKLSAgICAgICAgYSkg cmVhZG9ubHkgWEJQU19DUk9TU19CVUlMRD0iJE9QVEFSRyI7IFhCUFNfT1BUSU9OUys9IiAtYSAk T1BUQVJHIjs7Ci0gICAgICAgIEMpIHJlYWRvbmx5IFhCUFNfS0VFUF9BTEw9MTsgWEJQU19PUFRJ T05TKz0iIC1DIjs7CisgICAgICAgIGEpIGV4cG9ydCBYQlBTX0NST1NTX0JVSUxEPSIkT1BUQVJH IjsgWEJQU19PUFRJT05TKz0iIC1hICRPUFRBUkciOzsKKyAgICAgICAgQykgZXhwb3J0IFhCUFNf S0VFUF9BTEw9MTsgWEJQU19PUFRJT05TKz0iIC1DIjs7CiAgICAgICAgIEUpIGV4cG9ydCBYQlBT X0JJTlBLR19FWElTVFM9MTsgWEJQU19PUFRJT05TKz0iIC1FIjs7Ci0gICAgICAgIGYpIHJlYWRv bmx5IFhCUFNfQlVJTERfRk9SQ0VNT0RFPTE7IFhCUFNfT1BUSU9OUys9IiAtZiI7OwotICAgICAg ICBHKSByZWFkb25seSBYQlBTX1VTRV9HSVRfUkVWUz0xOyBYQlBTX09QVElPTlMrPSIgLUciOzsK LSAgICAgICAgZykgcmVhZG9ubHkgWEJQU19ERUJVR19QS0dTPTE7IFhCUFNfT1BUSU9OUys9IiAt ZyI7OwotICAgICAgICBIKSByZWFkb25seSBYQlBTX0hPU1RESVI9IiQocmVhZGxpbmsgLWYgJE9Q VEFSRyAyPi9kZXYvbnVsbCkiOyBYQlBTX09QVElPTlMrPSIgLUggJFhCUFNfSE9TVERJUiI7Owor ICAgICAgICBmKSBleHBvcnQgWEJQU19CVUlMRF9GT1JDRU1PREU9MTsgWEJQU19PUFRJT05TKz0i IC1mIjs7CisgICAgICAgIEcpIGV4cG9ydCBYQlBTX1VTRV9HSVRfUkVWUz0xOyBYQlBTX09QVElP TlMrPSIgLUciOzsKKyAgICAgICAgZykgZXhwb3J0IFhCUFNfREVCVUdfUEtHUz0xOyBYQlBTX09Q VElPTlMrPSIgLWciOzsKKyAgICAgICAgSCkgZXhwb3J0IFhCUFNfSE9TVERJUj0iJChyZWFkbGlu ayAtZiAkT1BUQVJHIDI+L2Rldi9udWxsKSI7IFhCUFNfT1BUSU9OUys9IiAtSCAkWEJQU19IT1NU RElSIjs7CiAgICAgICAgIGgpIHVzYWdlICYmIGV4aXQgMDs7CiAgICAgICAgIGkpIGV4cG9ydCBY QlBTX0lORk9STUFUSVZFX1JVTj0xOyBYQlBTX09QVElPTlMrPSIgLWkiOzsKLSAgICAgICAgSSkg cmVhZG9ubHkgWEJQU19TS0lQX0RFUFM9MTsgWEJQU19PUFRJT05TKz0iIC1JIjs7CisgICAgICAg IEkpIGV4cG9ydCBYQlBTX1NLSVBfREVQUz0xOyBYQlBTX09QVElPTlMrPSIgLUkiOzsKICAgICAg ICAgaikgZXhwb3J0IFhCUFNfTUFLRUpPQlM9IiRPUFRBUkciOyBYQlBTX09QVElPTlMrPSIgLWog JE9QVEFSRyI7OwogICAgICAgICBMKSBleHBvcnQgTk9DT0xPUlM9MTsgWEJQU19PUFRJT05TKz0i IC1MIjs7Ci0gICAgICAgIG0pIHJlYWRvbmx5IFhCUFNfTUFTVEVSRElSPSQocmVhZGxpbmsgLWYg JE9QVEFSRyAyPi9kZXYvbnVsbCk7IFhCUFNfT1BUSU9OUys9IiAtbSAkWEJQU19NQVNURVJESVIi OzsKLSAgICAgICAgTikgcmVhZG9ubHkgWEJQU19TS0lQX1JFTU9URVJFUE9TPTE7IFhCUFNfT1BU SU9OUys9IiAtTiI7OwotICAgICAgICBvKSByZWFkb25seSBYQlBTX1BLR19PUFRJT05TPSIkT1BU QVJHIjsgWEJQU19PUFRJT05TKz0iIC1vICRPUFRBUkciOzsKKyAgICAgICAgbSkgZXhwb3J0IFhC UFNfTUFTVEVSRElSPSQocmVhZGxpbmsgLWYgJE9QVEFSRyAyPi9kZXYvbnVsbCk7IFhCUFNfT1BU SU9OUys9IiAtbSAkWEJQU19NQVNURVJESVIiOzsKKyAgICAgICAgTikgZXhwb3J0IFhCUFNfU0tJ UF9SRU1PVEVSRVBPUz0xOyBYQlBTX09QVElPTlMrPSIgLU4iOzsKKyAgICAgICAgbykgZXhwb3J0 IFhCUFNfUEtHX09QVElPTlM9IiRPUFRBUkciOyBYQlBTX09QVElPTlMrPSIgLW8gJE9QVEFSRyI7 OwogICAgICAgICBxKSBleHBvcnQgWEJQU19RVUlFVD0xOyBYQlBTX09QVElPTlMrPSIgLXEiOzsK ICAgICAgICAgUSkgZXhwb3J0IFhCUFNfQ0hFQ0tfUEtHUz0xOyBYQlBTX09QVElPTlMrPSIgLVEi OzsKLSAgICAgICAgcikgcmVhZG9ubHkgWEJQU19BTFRfUkVQT1NJVE9SWT0iJE9QVEFSRyI7IFhC UFNfT1BUSU9OUys9IiAtciAkT1BUQVJHIjs7CisgICAgICAgIHIpIGV4cG9ydCBYQlBTX0FMVF9S RVBPU0lUT1JZPSIkT1BUQVJHIjsgWEJQU19PUFRJT05TKz0iIC1yICRPUFRBUkciOzsKICAgICAg ICAgdCkgZXhwb3J0IFhCUFNfVEVNUF9NQVNURVJESVI9MTsgWEJQU19PUFRJT05TKz0iIC10IC1D Ijs7Ci0gICAgICAgIFYpIGVjaG8gJFhCUFNfU1JDX1ZFUlNJT04gJiYgZXhpdCAwOzsKKyAgICAg ICAgVikgZWNobyAieGJwcy1zcmMtJFhCUFNfU1JDX1ZFUlNJT04gJCh4YnBzLXVoZWxwZXIgLVYp IiAmJiBleGl0IDA7OwogICAgICAgICAtLSkgc2hpZnQ7IGJyZWFrOzsKICAgICBlc2FjCiBkb25l CkBAIC00MzcsMTAgKzQ0MSwxMSBAQCBzaGlmdCAkKCgkT1BUSU5EIC0gMSkpCiAjIENoZWNrIGlm IHN0ZG91dCBpcyBhIHR0eTsgaWYgZmFsc2UgZGlzYWJsZSBjb2xvcnMuCiB0ZXN0IC10IDEgfHwg ZXhwb3J0IE5PQ09MT1JTPTEKICMgaHR0cDovL25vLWNvbG9yLm9yZwotaWYgWyAtbiAiJHtOT19D T0xPUit4fSIgXTsgdGhlbgoraWYgWyAiJHtOT19DT0xPUit4fSIgXTsgdGhlbgogICAgIGV4cG9y dCBOT0NPTE9SUz0xCiBmaQogCisjIHNhbmUgdW1hc2sKIHVtYXNrIDAyMgogCiAjCkBAIC00NTYs MjIgKzQ2MSwxMyBAQCByZWFkb25seSBSRVFIT1NUX1VUSUxTPSJ4YnBzLWluc3RhbGwgeGJwcy1x dWVyeSB4YnBzLXJpbmRleCB4YnBzLXVoZWxwZXIgXAogCiBjaGVja19yZXFob3N0X3V0aWxzCiAK LSMgVHJ5IHVzaW5nIGNocm9vdC1naXQgdGhlbiBnaXQgZnJvbSB0aGUgaG9zdCBzeXN0ZW0KLWlm IGNvbW1hbmQgLXYgY2hyb290LWdpdCAmPi9kZXYvbnVsbDsgdGhlbgotCVhCUFNfR0lUX0NNRD0k KGNvbW1hbmQgLXYgY2hyb290LWdpdCkKLWVsaWYgY29tbWFuZCAtdiBnaXQgJj4vZGV2L251bGw7 IHRoZW4KLQlYQlBTX0dJVF9DTUQ9JChjb21tYW5kIC12IGdpdCkKLWVsc2UKLSAgICBlY2hvICJu ZWl0aGVyIGNocm9vdC1naXQgb3IgZ2l0IGFyZSBhdmFpbGFibGUgaW4geW91ciBzeXN0ZW0hIgot ICAgIGV4aXQgMQotZmkKLQotcmVhZG9ubHkgWEJQU19HSVRfQ01ECi0KLWlmIFsgLW4gIiRJTl9D SFJPT1QiIF07IHRoZW4KKyMKKyMgU2V0IFhCUFNfQ09ORklHX0ZJTEUsIFhCUFNfRElTVERJUiwg WEJQU19NQVNURVJESVIKKyMgYW5kIFhCUFNfSE9TVERJUi4KKyMKK2lmIFsgIiRJTl9DSFJPT1Qi IF07IHRoZW4KICAgICByZWFkb25seSBYQlBTX0NPTkZJR19GSUxFPS9ldGMveGJwcy94YnBzLXNy Yy5jb25mCiAgICAgcmVhZG9ubHkgWEJQU19ESVNURElSPS92b2lkLXBhY2thZ2VzCi0gICAgIyBu ZWVkZWQgYmVmb3JlIGNhbGwgdG8gY2hlY2tfY29uZmlnX3ZhcnMKICAgICByZWFkb25seSBYQlBT X01BU1RFUkRJUj0vCiAgICAgcmVhZG9ubHkgWEJQU19IT1NURElSPS9ob3N0CiBlbHNlCkBAIC00 OTEsMTggKzQ4NywzNyBAQCBlbHNlCiAgICAgZWxpZiBbIC1zICRIT01FLy54YnBzLXNyYy5jb25m IF07IHRoZW4KICAgICAgICAgIyAuLi4gZmFsbGJhY2sgdG8gfi8ueGJwcy1zcmMuY29uZiBvdGhl cndpc2UuCiAgICAgICAgIHJlYWRvbmx5IFhCUFNfQ09ORklHX0ZJTEU9JEhPTUUvLnhicHMtc3Jj LmNvbmYKLSAgICAgICAgLiAkWEJQU19DT05GSUdfRklMRQogICAgIGZpCiBmaQorIyBSZWFkIHNl dHRpbmdzIGZyb20gY29uZmlnIGZpbGUKK1sgLXMgIiRYQlBTX0NPTkZJR19GSUxFIiBdICYmIC4g JFhCUFNfQ09ORklHX0ZJTEUgJj4vZGV2L251bGwKIAotIwotIyBDaGVjayBjb25maWd1cmF0aW9u IHZhcnMgYmVmb3JlIGFueXRpbmcgZWxzZSwgYW5kIHNldCBkZWZhdWx0cyB2YXJzLgotIwotY2hl Y2tfY29uZmlnX3ZhcnMKKyMgaWYgWEJQU19NQVNURVJESVIgdW5zZXQsIGRlZmF1bHRzIHRvICRY QlBTX0RJU1RESVIvbWFzdGVyZGlyLgorOiAke1hCUFNfTUFTVEVSRElSOj0kWEJQU19ESVNURElS L21hc3RlcmRpcn0KIAotZm9yIGYgaW4gJFhCUFNfRElTVERJUi9jb21tb24veGJwcy1zcmMvc2h1 dGlscy8qLnNoOyBkbwotICAgIFsgLXIgJGYgXSAmJiAuICRmCi1kb25lCisjIGlmIFhCUFNfSE9T VERJUiB1bnNldCwgZGVmYXVsdHMgdG8gJFhCUFNfRElTVERJUi9ob3N0ZGlyLgorOiAke1hCUFNf SE9TVERJUjo9JFhCUFNfRElTVERJUi9ob3N0ZGlyfQorCitta2RpciAtcCAkWEJQU19NQVNURVJE SVIgJFhCUFNfSE9TVERJUgorCitpZiBbIC1kICIkWEJQU19NQVNURVJESVIiIC1hICEgLXcgIiRY QlBTX01BU1RFUkRJUiIgXTsgdGhlbgorICAgIGVjaG8gIkVSUk9SOiBjYW4ndCB3cml0ZSB0byBt YXN0ZXJkaXIgJFhCUFNfTUFTVEVSRElSLiIKKyAgICBleGl0IDEKK2VsaWYgWyAtZCAiJFhCUFNf SE9TVERJUiIgLWEgISAtdyAiJFhCUFNfSE9TVERJUiIgXTsgdGhlbgorICAgIGVjaG8gIkVSUk9S OiBjYW4ndCB3cml0ZSB0byBob3N0ZGlyOiAkWEJQU19IT1NURElSLiIKKyAgICBleGl0IDEKK2Zp CisKKyMgVHJ5IHVzaW5nIGNocm9vdC1naXQgdGhlbiBnaXQgZnJvbSB0aGUgaG9zdCBzeXN0ZW0K K2lmIGNvbW1hbmQgLXYgY2hyb290LWdpdCAmPi9kZXYvbnVsbDsgdGhlbgorICAgIFhCUFNfR0lU X0NNRD0kKGNvbW1hbmQgLXYgY2hyb290LWdpdCkKK2VsaWYgY29tbWFuZCAtdiBnaXQgJj4vZGV2 L251bGw7IHRoZW4KKyAgICBYQlBTX0dJVF9DTUQ9JChjb21tYW5kIC12IGdpdCkKK2Vsc2UKKyAg ICBlY2hvICJuZWl0aGVyIGNocm9vdC1naXQgb3IgZ2l0IGFyZSBhdmFpbGFibGUgaW4geW91ciBz eXN0ZW0hIgorICAgIGV4aXQgMQorZmkKK3JlYWRvbmx5IFhCUFNfR0lUX0NNRAogCiBpZiBbIC1u ICIkWEJQU19IT1NURElSIiBdOyB0aGVuCiAgICAgZXhwb3J0IFhCUFNfUkVQT1NJVE9SWT0kWEJQ U19IT1NURElSL2JpbnBrZ3MKQEAgLTUxNiw4MCArNTMxLDYyIEBAIGZpCiBpZiBbIC16ICIkWEJQ U19BTFRfUkVQT1NJVE9SWSIgXTsgdGhlbgogICAgIHB1c2hkICIkUFdEIiAmPi9kZXYvbnVsbAog ICAgIGNkICRYQlBTX0RJU1RESVIKLSAgICBpZiBbIC1uICIkSU5fQ0hST09UIiBdOyB0aGVuCi0g ICAgICAgIF9naXRicmFuY2g9IiQoY2hyb290LWdpdCBzeW1ib2xpYy1yZWYgLS1zaG9ydCBIRUFE IDI+L2Rldi9udWxsKSIKLSAgICBlbHNlCi0gICAgICAgIF9naXRicmFuY2g9IiQoJFhCUFNfR0lU X0NNRCBzeW1ib2xpYy1yZWYgLS1zaG9ydCBIRUFEIDI+L2Rldi9udWxsKSIKLSAgICBmaQotICAg IGlmIFsgLW4gIiR7X2dpdGJyYW5jaH0iIC1hICIke19naXRicmFuY2h9IiAhPSAibWFzdGVyIiBd OyB0aGVuCisgICAgX2dpdGJyYW5jaD0iJCgkWEJQU19HSVRfQ01EIHN5bWJvbGljLXJlZiAtLXNo b3J0IEhFQUQgMj4vZGV2L251bGwpIgorICAgIGlmIFsgIiR7X2dpdGJyYW5jaH0iIC1hICIke19n aXRicmFuY2h9IiAhPSAibWFzdGVyIiBdOyB0aGVuCiAgICAgICAgIGV4cG9ydCBYQlBTX0FMVF9S RVBPU0lUT1JZPSIke19naXRicmFuY2h9IgogICAgICAgICBleHBvcnQgWEJQU19SRVBPU0lUT1JZ PSIke1hCUFNfUkVQT1NJVE9SWX0vJHtfZ2l0YnJhbmNofSIKLSAgICAgICAgaWYgWyAteiAiJElO X0NIUk9PVCIgXTsgdGhlbgotICAgICAgICAgICAgbXNnX25vcm1hbCAiVXNpbmcgXGAkWEJQU19S RVBPU0lUT1JZXCcgYXMgbG9jYWwgcmVwb3NpdG9yeS5cbiIKLSAgICAgICAgZmkKICAgICAgZmkK ICAgICAgcG9wZCAmPi9kZXYvbnVsbAogZWxzZQogICAgIGV4cG9ydCBYQlBTX1JFUE9TSVRPUlk9 IiR7WEJQU19SRVBPU0lUT1JZfS8ke1hCUFNfQUxUX1JFUE9TSVRPUll9IgotICAgIGlmIFsgLXog IiRJTl9DSFJPT1QiIF07IHRoZW4KLSAgICAgICAgbXNnX25vcm1hbCAiVXNpbmcgXGAkWEJQU19S RVBPU0lUT1JZXCcgYXMgbG9jYWwgcmVwb3NpdG9yeS5cbiIKLSAgICBmaQogZmkKIAotaWYgWyAt biAiJElOX0NIUk9PVCIgXTsgdGhlbgorcmVhZG9ubHkgWEJQU19TUkNQS0dESVI9JFhCUFNfRElT VERJUi9zcmNwa2dzCityZWFkb25seSBYQlBTX0NPTU1PTkRJUj0kWEJQU19ESVNURElSL2NvbW1v bgorcmVhZG9ubHkgWEJQU19TSFVUSUxTRElSPSRYQlBTX0NPTU1PTkRJUi94YnBzLXNyYy9zaHV0 aWxzCityZWFkb25seSBYQlBTX1RSSUdHRVJTRElSPSRYQlBTX1NSQ1BLR0RJUi94YnBzLXRyaWdn ZXJzL2ZpbGVzCityZWFkb25seSBYQlBTX0NST1NTUEZESVI9JFhCUFNfQ09NTU9ORElSL2Nyb3Nz LXByb2ZpbGVzCityZWFkb25seSBYQlBTX0JVSUxEU1RZTEVESVI9JFhCUFNfQ09NTU9ORElSL2J1 aWxkLXN0eWxlCityZWFkb25seSBYQlBTX0xJQkVYRUNESVI9JFhCUFNfQ09NTU9ORElSL3hicHMt c3JjL2xpYmV4ZWMKK3JlYWRvbmx5IFhCUFNfQlVJTERIRUxQRVJESVI9JFhCUFNfQ09NTU9ORElS L2J1aWxkLWhlbHBlcgorCitpZiBbICIkSU5fQ0hST09UIiBdOyB0aGVuCiAgICAgcmVhZG9ubHkg WEJQU19VSEVMUEVSX0NNRD0ieGJwcy11aGVscGVyIgotICAgIHJlYWRvbmx5IFhCUFNfSU5TVEFM TF9DTUQ9InhicHMtaW5zdGFsbCIKLSAgICByZWFkb25seSBYQlBTX1FVRVJZX0NNRD0ieGJwcy1x dWVyeSIKLSAgICByZWFkb25seSBYQlBTX1JJTkRFWF9DTUQ9InhicHMtcmluZGV4IgorICAgIHJl YWRvbmx5IFhCUFNfSU5TVEFMTF9DTUQ9InhicHMtaW5zdGFsbCAtLXJlcG9zaXRvcnk9JFhCUFNf UkVQT1NJVE9SWSIKKyAgICByZWFkb25seSBYQlBTX1FVRVJZX0NNRD0ieGJwcy1xdWVyeSAtLXJl cG9zaXRvcnk9JFhCUFNfUkVQT1NJVE9SWSIKICAgICByZWFkb25seSBYQlBTX1JFQ09ORklHVVJF X0NNRD0ieGJwcy1yZWNvbmZpZ3VyZSIKICAgICByZWFkb25seSBYQlBTX1JFTU9WRV9DTUQ9Inhi cHMtcmVtb3ZlIgotICAgIHJlYWRvbmx5IFhCUFNfU1JDUEtHRElSPS92b2lkLXBhY2thZ2VzL3Ny Y3BrZ3MKLSAgICByZWFkb25seSBYQlBTX0NPTU1PTkRJUj0vdm9pZC1wYWNrYWdlcy9jb21tb24K KyAgICByZWFkb25seSBYQlBTX0NIRUNLVkVSU19DTUQ9InhicHMtY2hlY2t2ZXJzIC0tcmVwb3Np dG9yeT0kWEJQU19SRVBPU0lUT1JZIgogICAgIHJlYWRvbmx5IFhCUFNfREVTVERJUj0vZGVzdGRp cgogICAgIHJlYWRvbmx5IFhCUFNfQlVJTERESVI9L2J1aWxkZGlyCi0gICAgcmVhZG9ubHkgWEJQ U19TSFVUSUxTRElSPSRYQlBTX0NPTU1PTkRJUi94YnBzLXNyYy9zaHV0aWxzCi0gICAgcmVhZG9u bHkgWEJQU19UUklHR0VSU0RJUj0kWEJQU19TUkNQS0dESVIveGJwcy10cmlnZ2Vycy9maWxlcwot ICAgIHJlYWRvbmx5IFhCUFNfQ1JPU1NQRkRJUj0kWEJQU19DT01NT05ESVIvY3Jvc3MtcHJvZmls ZXMKLSAgICByZWFkb25seSBYQlBTX0JVSUxEU1RZTEVESVI9JFhCUFNfQ09NTU9ORElSL2J1aWxk LXN0eWxlCi0gICAgcmVhZG9ubHkgWEJQU19MSUJFWEVDRElSPSRYQlBTX0NPTU1PTkRJUi94YnBz LXNyYy9saWJleGVjCi0gICAgcmVhZG9ubHkgWEJQU19CVUlMREhFTFBFUkRJUj0kWEJQU19DT01N T05ESVIvYnVpbGQtaGVscGVyCiBlbHNlCiAgICAgcmVhZG9ubHkgWEJQU19VSEVMUEVSX0NNRD0i eGJwcy11aGVscGVyIC1yICRYQlBTX01BU1RFUkRJUiIKLSAgICByZWFkb25seSBYQlBTX0lOU1RB TExfQ01EPSJ4YnBzLWluc3RhbGwgLUMgL2Rldi9udWxsIC1jICRYQlBTX0hPU1RESVIvcmVwb2Nh Y2hlIC0tcmVwb3NpdG9yeT0kWEJQU19SRVBPU0lUT1JZIC1yICRYQlBTX01BU1RFUkRJUiIKLSAg ICByZWFkb25seSBYQlBTX1FVRVJZX0NNRD0ieGJwcy1xdWVyeSAtQyAvZGV2L251bGwgLWMgJFhC UFNfSE9TVERJUi9yZXBvY2FjaGUgLWkgLS1yZXBvc2l0b3J5PSRYQlBTX1JFUE9TSVRPUlkgLXIg JFhCUFNfTUFTVEVSRElSIgotICAgIHJlYWRvbmx5IFhCUFNfUklOREVYX0NNRD0ieGJwcy1yaW5k ZXgiCisgICAgcmVhZG9ubHkgWEJQU19JTlNUQUxMX0NNRD0ieGJwcy1pbnN0YWxsIC1jICRYQlBT X0hPU1RESVIvcmVwb2NhY2hlIC0tcmVwb3NpdG9yeT0kWEJQU19SRVBPU0lUT1JZIC1yICRYQlBT X01BU1RFUkRJUiIKKyAgICByZWFkb25seSBYQlBTX1FVRVJZX0NNRD0ieGJwcy1xdWVyeSAtYyAk WEJQU19IT1NURElSL3JlcG9jYWNoZSAtLXJlcG9zaXRvcnk9JFhCUFNfUkVQT1NJVE9SWSAtciAk WEJQU19NQVNURVJESVIiCiAgICAgcmVhZG9ubHkgWEJQU19SRUNPTkZJR1VSRV9DTUQ9InhicHMt cmVjb25maWd1cmUgLXIgJFhCUFNfTUFTVEVSRElSIgogICAgIHJlYWRvbmx5IFhCUFNfUkVNT1ZF X0NNRD0ieGJwcy1yZW1vdmUgLXIgJFhCUFNfTUFTVEVSRElSIgotICAgIHJlYWRvbmx5IFhCUFNf U1JDUEtHRElSPSRYQlBTX0RJU1RESVIvc3JjcGtncwotICAgIHJlYWRvbmx5IFhCUFNfQ09NTU9O RElSPSRYQlBTX0RJU1RESVIvY29tbW9uCi0gICAgcmVhZG9ubHkgWEJQU19TSFVUSUxTRElSPSRY QlBTX0NPTU1PTkRJUi94YnBzLXNyYy9zaHV0aWxzCisgICAgcmVhZG9ubHkgWEJQU19DSEVDS1ZF UlNfQ01EPSJ4YnBzLWNoZWNrdmVycyAtLXJlcG9zaXRvcnk9JFhCUFNfUkVQT1NJVE9SWSIKICAg ICByZWFkb25seSBYQlBTX0RFU1RESVI9JFhCUFNfTUFTVEVSRElSL2Rlc3RkaXIKICAgICByZWFk b25seSBYQlBTX0JVSUxERElSPSRYQlBTX01BU1RFUkRJUi9idWlsZGRpcgotICAgIHJlYWRvbmx5 IFhCUFNfVFJJR0dFUlNESVI9JFhCUFNfU1JDUEtHRElSL3hicHMtdHJpZ2dlcnMvZmlsZXMKLSAg ICByZWFkb25seSBYQlBTX0NST1NTUEZESVI9JFhCUFNfQ09NTU9ORElSL2Nyb3NzLXByb2ZpbGVz Ci0gICAgcmVhZG9ubHkgWEJQU19CVUlMRFNUWUxFRElSPSRYQlBTX0NPTU1PTkRJUi9idWlsZC1z dHlsZQotICAgIHJlYWRvbmx5IFhCUFNfTElCRVhFQ0RJUj0kWEJQU19DT01NT05ESVIveGJwcy1z cmMvbGliZXhlYwotICAgIHJlYWRvbmx5IFhCUFNfQlVJTERIRUxQRVJESVI9JFhCUFNfQ09NTU9O RElSL2J1aWxkLWhlbHBlcgogZmkKK3JlYWRvbmx5IFhCUFNfUklOREVYX0NNRD0ieGJwcy1yaW5k ZXgiCiByZWFkb25seSBYQlBTX0ZFVENIX0NNRD0ieGJwcy1mZXRjaCIKIHJlYWRvbmx5IFhCUFNf RElHRVNUX0NNRD0ieGJwcy1kaWdlc3QiCiByZWFkb25seSBYQlBTX0NNUFZFUl9DTUQ9InhicHMt dWhlbHBlciBjbXB2ZXIiCiAKIHJlYWRvbmx5IFhCUFNfVEFSR0VUPSIkMSIKLWlmIFsgLW4gIiQy IiBdOyB0aGVuCitpZiBbICIkMiIgXTsgdGhlbgogICAgIFhCUFNfVEFSR0VUX1BLRz0iJHsyIyMq L30iCiBmaQogCi1jaHJvb3RfY2hlY2soKSB7Ci0gICAgaWYgWyAtZiAkWEJQU19NQVNURVJESVIv LnhicHNfY2hyb290X2luaXQgLW8gIiRYQlBTX0NIUk9PVF9DTUQiID0gImV0aGVyZWFsIiBdOyB0 aGVuCi0gICAgICAgIGV4cG9ydCBDSFJPT1RfUkVBRFk9MQotICAgIGZpCi19Ci0KKyMgQ2hlY2sg Zm9yIENIUk9PVF9SRUFEWSBhbmQgc2V0IHVwIFhCUFNfQVJDSCBlbnZpcm9ubWVudCB2YXIgZm9y IHhicHMuCiBjaHJvb3RfY2hlY2sKK2NoZWNrX25hdGl2ZV9hcmNoCiAKKyMgUmVjb25maWd1cmUg cGtncyBmb3IgMzJiaXQgb24geDg2XzY0IGFuZCByZWV4ZWMgaXRzZWxmLgorIyBYWFg6IGhvdyBh Ym91dCAzMmJpdCB1c2VybGFuZCBvbiA2NGJpdCBDUFVzPyAocHBjLCBhcm0sIGV0YykuCiBpZiBb IC16ICIkWEJQU19SRUlOSVQiIC1hIC1zICRYQlBTX01BU1RFUkRJUi8ueGJwc19jaHJvb3RfaW5p dCBdOyB0aGVuCi0gICAgZXhwb3J0IFhCUFNfQVJDSD0ke1hCUFNfQVJDSDotJChjYXQgJFhCUFNf TUFTVEVSRElSLy54YnBzX2Nocm9vdF9pbml0KX0KKyAgICBleHBvcnQgWEJQU19BUkNIPSR7WEJQ U19BUkNIOi0kKDwkWEJQU19NQVNURVJESVIvLnhicHNfY2hyb290X2luaXQpfQogICAgIGlmIFtb ICRYQlBTX01BQ0hJTkUgPT0geDg2XzY0KiBdXSAmJiBbWyAkWEJQU19BUkNIID09IGk2ODYqIF1d OyB0aGVuCiAgICAgICAgICMgcmVjb25maWd1cmUgcGtncyB2aWEgbGludXgzMgogICAgICAgICBs aW51eDMyIHhicHMtcmVjb25maWd1cmUgLXIgJHtYQlBTX01BU1RFUkRJUn0gLWEgJj4vZGV2L251 bGwKQEAgLTU5OCwyMCArNTk1LDIxIEBAIGlmIFsgLXogIiRYQlBTX1JFSU5JVCIgLWEgLXMgJFhC UFNfTUFTVEVSRElSLy54YnBzX2Nocm9vdF9pbml0IF07IHRoZW4KICAgICAgICAgZXhlYyBsaW51 eDMyICQwICR7WEJQU19PUFRJT05TfSAkQAogICAgIGZpCiBmaQotaWYgWyAtbiAiJFhCUFNfQVJD SCIgXTsgdGhlbgoraWYgWyAiJFhCUFNfQVJDSCIgXTsgdGhlbgogICAgIGV4cG9ydCBYQlBTX01B Q0hJTkU9JFhCUFNfQVJDSAogZmkKKyMgQXQgdGhpcyBwb2ludCBpZiBYQlBTX1RBUkdFVF9NQUNI SU5FIGlzbid0IGRlZmluZWQgd2UgYXNzdW1lCisjIGl0J3MgYSBuYXRpdmUgYnVpbGQuCiBpZiBb IC16ICIkWEJQU19UQVJHRVRfTUFDSElORSIgXTsgdGhlbgotICAgIGV4cG9ydCBYQlBTX1RBUkdF VF9NQUNISU5FPSR7WEJQU19BUkNIOj0kWEJQU19NQUNISU5FfQorICAgICAgICBleHBvcnQgWEJQ U19UQVJHRVRfTUFDSElORT0kWEJQU19NQUNISU5FCiBmaQogCi0KIGV4cG9ydCBYQlBTX1NIVVRJ TFNESVIgWEJQU19DUk9TU1BGRElSIFhCUFNfVFJJR0dFUlNESVIgXAotICAgIFhCUFNfU1JDUEtH RElSIFhCUFNfQ09NTU9ORElSIFhCUFNfQlVJTERESVIgWEJQU19SRVBPX0RFTFRBUyBcCisgICAg WEJQU19TUkNQS0dESVIgWEJQU19DT01NT05ESVIgWEJQU19CVUlMRERJUiBcCiAgICAgWEJQU19S RVBPU0lUT1JZIFhCUFNfQUxUX1JFUE9TSVRPUlkgWEJQU19TUkNESVNURElSIFhCUFNfRElHRVNU X0NNRCBcCiAgICAgWEJQU19VSEVMUEVSX0NNRCBYQlBTX0lOU1RBTExfQ01EIFhCUFNfUVVFUllf Q01EIFhCUFNfQlVJTERfT05MWV9PTkVfUEtHIFwKLSAgICBYQlBTX1JJTkRFWF9DTUQgWEJQU19S RUNPTkZJR1VSRV9DTUQgWEJQU19SRU1PVkVfQ01EIFwKLSAgICBYQlBTX0NNUFZFUl9DTUQgWEJQ U19GRVRDSF9DTUQgWEJQU19WRVJTSU9OIFhCUFNfQVBJVkVSIFhCUFNfQlVJTERTVFlMRURJUiBc CisgICAgWEJQU19SSU5ERVhfQ01EIFhCUFNfUkVDT05GSUdVUkVfQ01EIFhCUFNfUkVNT1ZFX0NN RCBYQlBTX0NIRUNLVkVSU19DTUQgXAorICAgIFhCUFNfQ01QVkVSX0NNRCBYQlBTX0ZFVENIX0NN RCBYQlBTX1ZFUlNJT04gWEJQU19CVUlMRFNUWUxFRElSIFwKICAgICBYQlBTX0NQUEZMQUdTIFhC UFNfQ0ZMQUdTIFhCUFNfQ1hYRkxBR1MgWEJQU19GRkxBR1MgWEJQU19MREZMQUdTIFwKICAgICBY QlBTX01BS0VKT0JTIFhCUFNfQlVJTERfRk9SQ0VNT0RFIFhCUFNfVVNFX0dJVF9SRVZTIFhCUFNf REVCVUdfUEtHUyBcCiAgICAgWEJQU19DSEVDS19QS0dTIFhCUFNfQ0NBQ0hFIFhCUFNfRElTVEND IFhCUFNfRElTVENDX0hPU1RTIFhCUFNfU0tJUF9ERVBTIFwKQEAgLTYyOSw3ICs2MjcsNyBAQCBm b3IgaSBpbiBSRVBPU0lUT1JZIERFU1RESVIgQlVJTERESVIgU1JDRElTVERJUjsgZG8KICAgICB1 bnNldCB2YWwKIGRvbmUKIAotIyBBIHRlbXBvcmFyeSBtYXN0ZXJkaXIgcmVxdWlyZXMgeGJwcy11 Y2hyb290KDgpIGFuZCAtTyB0byB1c2Ugb3ZlcmxheWZzCisjIEEgdGVtcG9yYXJ5IG1hc3RlcmRp ciByZXF1aXJlcyB4YnBzLXVjaHJvb3QoMSkgYW5kIC1PIHRvIHVzZSBvdmVybGF5ZnMKICMgb24g dG1wZnMgKGF2YWlsYWJsZSB3aXRoIHhicHMtMC40NSkuCiBpZiBbIC16ICIkSU5fQ0hST09UIiAt YSAtbiAiJFhCUFNfVEVNUF9NQVNURVJESVIiIF07IHRoZW4KICAgICBleHBvcnQgWEJQU19DSFJP T1RfQ01EPSJ1Y2hyb290IgpAQCAtNjQwLDMxICs2MzgsMzUgQEAgZmkKICMKIGlmIFsgLXogIiRJ Tl9DSFJPT1QiIF07IHRoZW4KICAgICAjIEluIG5vbiBjaHJvb3QgY2FzZSBhbHdheXMgcHJlZmVy IGhvc3QgdG9vbHMuCi0gICAgTVlQQVRIPSIkWEJQU19NQVNURVJESVIvdXNyL2JpbjokWEJQU19N QVNURVJESVIvdXNyL3NiaW4iCi0gICAgZXhwb3J0IFBBVEg9IiRQQVRIOiRNWVBBVEgiCi1lbHNl Ci0gICAgTVlQQVRIPSIvdXNyL2JpbjovdXNyL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9sb2Nh bC9zYmluIgotICAgIGV4cG9ydCBQQVRIPSIkTVlQQVRIIgotICAgIGlmIFsgLW4gIiRYQlBTX0ND QUNIRSIgXTsgdGhlbgotICAgICAgICBDQ0FDSEVQQVRIPSIvdXNyL2xpYi9jY2FjaGUvYmluIgot ICAgICAgICBleHBvcnQgQ0NBQ0hFX0RJUj0iJFhCUFNfSE9TVERJUi9jY2FjaGUiCi0gICAgICAg ICMgQXZvaWQgbm90IHVzaW5nIGNhY2hlZCBmaWxlcyBqdXN0IGR1ZSB0byBjb21waWxlciBtdGlt ZQotICAgICAgICAjIGNoYW5nZXMgd2hlbiBlLmcuIGJvb3RzdHJhcHBpbmcKLSAgICAgICAgZXhw b3J0IENDQUNIRV9DT01QSUxFUkNIRUNLPWNvbnRlbnQgQ0NBQ0hFX0NPTVBSRVNTPTEKLSAgICAg ICAgZXhwb3J0IFBBVEg9IiRDQ0FDSEVQQVRIOiRQQVRIIgotICAgICAgICBta2RpciAtcCAkQ0NB Q0hFX0RJUgotICAgIGZpCi0gICAgaWYgWyAtbiAiJFhCUFNfRElTVENDIiBdOyB0aGVuCi0gICAg ICAgIGlmIFsgLW4gIiRYQlBTX0NDQUNIRSIgXTsgdGhlbgotICAgICAgICAgICAgZXhwb3J0IEND QUNIRV9QUkVGSVg9Ii91c3IvYmluL2Rpc3RjYyIKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg RElTVENDUEFUSD0iL3Vzci9saWIvZGlzdGNjL2JpbiIKLSAgICAgICAgICAgIGV4cG9ydCBQQVRI PSIkRElTVENDUEFUSDokUEFUSCIKLSAgICAgICAgZmkKLSAgICAgICAgZXhwb3J0IERJU1RDQ19E SVI9IiRYQlBTX0hPU1RESVIvZGlzdGNjLSR7WEJQU19DUk9TU19CVUlMRDotJHtYQlBTX01BQ0hJ TkV9fSIKLSAgICAgICAgZXhwb3J0IERJU1RDQ19IT1NUUz0iJFhCUFNfRElTVENDX0hPU1RTIgot ICAgICAgICBta2RpciAtcCAkRElTVENDX0RJUgorICAgIGV4cG9ydCBQQVRIPSIkUEFUSDokWEJQ U19NQVNURVJESVIvdXNyL2JpbiIKK2ZpCisKKyMKKyMgU2V0IHVwIGNjYWNoZQorIworaWYgWyAi JFhCUFNfQ0NBQ0hFIiBdOyB0aGVuCisgICAgZXhwb3J0IENDQUNIRVBBVEg9Ii91c3IvbGliL2Nj YWNoZS9iaW4iCisgICAgZXhwb3J0IENDQUNIRV9ESVI9IiRYQlBTX0hPU1RESVIvY2NhY2hlIgor ICAgICMgQXZvaWQgbm90IHVzaW5nIGNhY2hlZCBmaWxlcyBqdXN0IGR1ZSB0byBjb21waWxlciBt dGltZQorICAgICMgY2hhbmdlcyB3aGVuIGUuZy4gYm9vdHN0cmFwcGluZworICAgIGV4cG9ydCBD Q0FDSEVfQ09NUElMRVJDSEVDSz1jb250ZW50IENDQUNIRV9DT01QUkVTUz0xCisgICAgZXhwb3J0 IFBBVEg9IiRDQ0FDSEVQQVRIOiRQQVRIIgorICAgIG1rZGlyIC1wICRDQ0FDSEVfRElSCitmaQor CisjCisjIFNldCB1cCBkaXN0Y2MKKyMKK2lmIFsgIiRYQlBTX0RJU1RDQyIgXTsgdGhlbgorICAg IGlmIFsgIiRYQlBTX0NDQUNIRSIgXTsgdGhlbgorICAgICAgICBleHBvcnQgQ0NBQ0hFX1BSRUZJ WD0iL3Vzci9iaW4vZGlzdGNjIgorICAgIGVsc2UKKyAgICAgICAgRElTVENDUEFUSD0iL3Vzci9s aWIvZGlzdGNjL2JpbiIKKyAgICAgICAgZXhwb3J0IFBBVEg9IiRESVNUQ0NQQVRIOiRQQVRIIgog ICAgIGZpCisgICAgZXhwb3J0IERJU1RDQ19ESVI9IiRYQlBTX0hPU1RESVIvZGlzdGNjLSR7WEJQ U19DUk9TU19CVUlMRDotJHtYQlBTX01BQ0hJTkV9fSIKKyAgICBleHBvcnQgRElTVENDX0hPU1RT PSIkWEJQU19ESVNUQ0NfSE9TVFMiCisgICAgbWtkaXIgLXAgJERJU1RDQ19ESVIKIGZpCiAKIGNo ZWNrX2J1aWxkX3JlcXVpcmVtZW50cwpAQCAtNjc1LDYgKzY3NywxMiBAQCBpZiBbIC16ICIkSU5f Q0hST09UIiBdOyB0aGVuCiAgICAgICAgIHNldHVwX2Rpc3RmaWxlc19taXJyb3IKICAgICBmaQog ZmkKKyMKKyMgUmVhZCBmdW5jcyBmcm9tIGhlbHBlcnMKKyMKK2ZvciBmIGluICR7WEJQU19TSFVU SUxTRElSfS8qLnNoOyBkbworICAgIFsgLXIgIiRmIiBdICYmIC4gJGYKK2RvbmUKIAogcmVjb25m aWd1cmVfYm9vdHN0cmFwX3BrZ3MKIApAQCAtNjg5LDE4ICs2OTcsMjQgQEAgY2FzZSAiJFhCUFNf VEFSR0VUIiBpbgogICAgICAgICAjIGJvb3RzdHJhcCBmcm9tIHNvdXJjZXMKICAgICAgICAgIyBj aGVjayBmb3IgcmVxdWlyZWQgaG9zdCB1dGlscwogICAgICAgICBjaGVja19yZXFob3N0X3V0aWxz IGJvb3RzdHJhcAotICAgICAgICBbICEgLWQgJFhCUFNfU1JDUEtHRElSL2Jhc2UtY2hyb290IF0g JiYgXAotICAgICAgICAgICAgbXNnX2Vycm9yICJDYW5ub3QgZmluZCAkWEJQU19TUkNQS0dESVIv YmFzZS1jaHJvb3QgZGlyZWN0b3J5IVxuIgorICAgICAgICBbWyAkWEJQU19NQUNISU5FID1+IG11 c2wgXV0gJiYgc3ViYXJjaD0iLW11c2wiCisgICAgICAgIFsgISAtZCAkWEJQU19TUkNQS0dESVIv YmFzZS1jaHJvb3Qke3N1YmFyY2h9IF0gJiYgXAorICAgICAgICAgICAgbXNnX2Vycm9yICJDYW5u b3QgZmluZCAkWEJQU19TUkNQS0dESVIvYmFzZS1jaHJvb3Qke3N1YmFyY2h9IGRpcmVjdG9yeSFc biIKICAgICAgICAgYm9vdHN0cmFwX3Zwa2c9JHtYQlBTX01BU1RFUkRJUn0vZXRjL3hicHMuZC9i b290c3RyYXAtdnBrZ3MuY29uZgogICAgICAgICBta2RpciAtcCAke1hCUFNfTUFTVEVSRElSfS9l dGMveGJwcy5kCiAgICAgICAgIGlmIFsgISAtcyAke2Jvb3RzdHJhcF92cGtnfSBdOyB0aGVuCiAg ICAgICAgICAgICAjIEZvb2wgeGJwcyB0byByZXNvbHZlIGRlcGVuZGVuY2llcy4KLSAgICAgICAg ICAgIGVjaG8gJ3ZpcnR1YWxwa2c9bGliZ2NjLTQuNC4wXzE6YmFzZS1maWxlcycgPj4gJHtib290 c3RyYXBfdnBrZ30KLSAgICAgICAgICAgIGVjaG8gJ3ZpcnR1YWxwa2c9bGlic3RkYysrLTQuNC4w XzE6YmFzZS1maWxlcycgPj4gJHtib290c3RyYXBfdnBrZ30KKyAgICAgICAgICAgIGVjaG8gJ3Zp cnR1YWxwa2c9bGliZ2NjOmJhc2UtZmlsZXMnID4+ICR7Ym9vdHN0cmFwX3Zwa2d9CisgICAgICAg ICAgICBlY2hvICd2aXJ0dWFscGtnPWxpYnN0ZGMrKzpiYXNlLWZpbGVzJyA+PiAke2Jvb3RzdHJh cF92cGtnfQogICAgICAgICBmaQotICAgICAgICAkWEJQU19MSUJFWEVDRElSL2J1aWxkLnNoIGJh c2UtY2hyb290IGJhc2UtY2hyb290ICRYQlBTX1RBUkdFVCB8fCBleGl0IDEKKyAgICAgICAgKAor ICAgICAgICAgICAgZXhwb3J0IFhCUFNfQVJDSD0kWEJQU19NQUNISU5FCisgICAgICAgICAgICBl eHBvcnQgWEJQU19TS0lQX1JFTU9URVJFUE9TPTEKKyAgICAgICAgICAgICRYQlBTX0xJQkVYRUNE SVIvYnVpbGQuc2ggXAorICAgICAgICAgICAgICAgIGJhc2UtY2hyb290JHtzdWJhcmNofSBiYXNl LWNocm9vdCR7c3ViYXJjaH0gJFhCUFNfVEFSR0VUIHx8IGV4aXQgMQorICAgICAgICApIHx8IGV4 aXQgMQogICAgICAgICBbIC1kICRYQlBTX01BU1RFUkRJUiBdICYmIHJtIC1yZiAkWEJQU19NQVNU RVJESVIKLSAgICAgICAgaW5zdGFsbF9iYm9vdHN0cmFwIGJvb3RzdHJhcAorICAgICAgICBpbnN0 YWxsX2Jib290c3RyYXAgJHtYQlBTX1RBUkdFVF9QS0c6PSRYQlBTX01BQ0hJTkV9CiAgICAgICAg IDs7CiAgICAgYm9vdHN0cmFwLXVwZGF0ZSkKICAgICAgICAgaWYgWyAtbiAiJENIUk9PVF9SRUFE WSIgLWEgLXogIiRJTl9DSFJPT1QiIF07IHRoZW4KQEAgLTg1Nyw3ICs4NzEsNyBAQCBjYXNlICIk WEJQU19UQVJHRVQiIGluCiAgICAgICAgIGJ1bGtfYnVpbGQKICAgICAgICAgOzsKICAgICBzaG93 LXN5cy11cGRhdGVzKQotICAgICAgICBidWxrX2J1aWxkIC1pCisgICAgICAgIGJ1bGtfYnVpbGQg LUkKICAgICAgICAgOzsKICAgICBzb3J0LWRlcGVuZGVuY2llcykKICAgICAgICAgYnVsa19zb3J0 ZGVwcyAke0AvJFhCUFNfVEFSR0VUL30KQEAgLTg2Niw3ICs4ODAsNyBAQCBjYXNlICIkWEJQU19U QVJHRVQiIGluCiAgICAgICAgIGJ1bGtfdXBkYXRlCiAgICAgICAgIDs7CiAgICAgdXBkYXRlLXN5 cykKLSAgICAgICAgYnVsa191cGRhdGUgLWkKKyAgICAgICAgYnVsa191cGRhdGUgLUkKICAgICAg ICAgOzsKICAgICB1cGRhdGUtY2hlY2spCiAgICAgICAgIHJlYWRfcGtnIGlnbm9yZS1wcm9ibGVt cwoKRnJvbSAxNmQ3NTkyZGE2MDYxYTZjM2EyYTFkYTc1YWQxYmVkNDNkOWUwNTczIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWFuIFJQIDx4dHJhZW1lQGdtYWlsLmNvbT4KRGF0ZTog V2VkLCAzIEp1bCAyMDE5IDE5OjQ2OjM3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyLzZdIHB5dGhv bjM6IHVwZGF0ZSB0byAzLjYuOS4KCi0tLQogc3JjcGtncy9weXRob24zL3BhdGNoZXMvQ1ZFLTIw MTktNTAxMC5wYXRjaCB8IDMyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy9weXRob24z L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICB8ICA2ICsrLS0KIDIgZmlsZXMgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL3B5dGhvbjMvcGF0Y2hlcy9DVkUtMjAxOS01MDEwLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9weXRob24zL3BhdGNoZXMvQ1ZFLTIwMTktNTAxMC5wYXRjaCBiL3NyY3BrZ3MvcHl0aG9u My9wYXRjaGVzL0NWRS0yMDE5LTUwMTAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IGEzYjE1NzliYjEyLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3B5dGhvbjMvcGF0Y2hl cy9DVkUtMjAxOS01MDEwLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotY29t bWl0IDIxNmE0ZDgzYzNiNzJmNGZkY2Q4MWI1ODhkYzNmNDJjYzQ2MTczOWEKLUF1dGhvcjogTWlz cyBJc2xpbmd0b24gKGJvdCkgPDMxNDg4OTA5K21pc3MtaXNsaW5ndG9uQHVzZXJzLm5vcmVwbHku Z2l0aHViLmNvbT4KLURhdGU6ICAgVHVlIEphbiAxNSAxNzoxNjozNiAyMDE5IC0wODAwCi0KLSAg ICBicG8tMzU3NDY6IEZpeCBzZWdmYXVsdCBpbiBzc2wncyBjZXJ0IHBhcnNlciAoR0gtMTE1Njkp IChHSC0xMTU3MykKLSAgICAKLSAgICBGaXggYSBOVUxMIHBvaW50ZXIgZGVyZWYgaW4gc3NsIG1v ZHVsZS4gVGhlIGNlcnQgcGFyc2VyIGRpZCBub3QgaGFuZGxlIENSTAotICAgIGRpc3RyaWJ1dGlv biBwb2ludHMgd2l0aCBlbXB0eSBEUCBvciBVUkkgY29ycmVjdGx5LiBBIG1hbGljaW91cyBvciBi dWdneQotICAgIGNlcnRpZmljYXRlIGNhbiByZXN1bHQgaW50byBzZWdmYXVsdC4KLSAgICAKLSAg ICBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gSGVpbWVzIDxjaHJpc3RpYW5AcHl0aG9uLm9yZz4K LSAgICAKLSAgICBodHRwczovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTM1NzQ2Ci0gICAgKGNoZXJy eSBwaWNrZWQgZnJvbSBjb21taXQgYTM3ZjUyNDM2ZjlhYTRiOTI5Mjg3OGI3MmYzZmYxNDgwZTI2 MDZjMykKLSAgICAKLSAgICBDby1hdXRob3JlZC1ieTogQ2hyaXN0aWFuIEhlaW1lcyA8Y2hyaXN0 aWFuQHB5dGhvbi5vcmc+Ci0KLWRpZmYgLS1naXQgTW9kdWxlcy9fc3NsLmMgTW9kdWxlcy9fc3Ns LmMKLWluZGV4IGExODhkNmE3MjkuLjczNjU2MzBhNWUgMTAwNjQ0Ci0tLS0gTW9kdWxlcy9fc3Ns LmMKLSsrKyBNb2R1bGVzL19zc2wuYwotQEAgLTEzMzgsNiArMTMzOCwxMCBAQCBfZ2V0X2NybF9k cChYNTA5ICpjZXJ0aWZpY2F0ZSkgewotICAgICAgICAgU1RBQ0tfT0YoR0VORVJBTF9OQU1FKSAq Z25zOwotIAotICAgICAgICAgZHAgPSBza19ESVNUX1BPSU5UX3ZhbHVlKGRwcywgaSk7Ci0rICAg ICAgICBpZiAoZHAtPmRpc3Rwb2ludCA9PSBOVUxMKSB7Ci0rICAgICAgICAgICAgLyogSWdub3Jl IGVtcHR5IERQIHZhbHVlLCBDVkUtMjAxOS01MDEwICovCi0rICAgICAgICAgICAgY29udGludWU7 Ci0rICAgICAgICB9Ci0gICAgICAgICBnbnMgPSBkcC0+ZGlzdHBvaW50LT5uYW1lLmZ1bGxuYW1l OwotIAotICAgICAgICAgZm9yIChqPTA7IGogPCBza19HRU5FUkFMX05BTUVfbnVtKGducyk7IGor KykgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24zL3RlbXBsYXRlIGIvc3JjcGtncy9weXRo b24zL3RlbXBsYXRlCmluZGV4IDQwMGI4YTUxOWYyLi4zMzZiNmE0ZDRhMSAxMDA2NDQKLS0tIGEv c3JjcGtncy9weXRob24zL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcHl0aG9uMy90ZW1wbGF0ZQpA QCAtMywxNSArMywxNSBAQAogIyBUSElTIFBLRyBNVVNUIEJFIFNZTkNIUk9OSVpFRCBXSVRIICJz cmNwa2dzL3B5dGhvbjMtdGtpbnRlciIuCiAjCiBwa2duYW1lPXB5dGhvbjMKLXZlcnNpb249My42 LjgKLXJldmlzaW9uPTQKK3ZlcnNpb249My42LjkKK3JldmlzaW9uPTEKIHdya3NyYz0iUHl0aG9u LSR7dmVyc2lvbn0iCiBzaG9ydF9kZXNjPSJJbnRlcnByZXRlZCwgaW50ZXJhY3RpdmUsIG9iamVj dC1vcmllbnRlZCBwcm9ncmFtbWluZyBsYW5ndWFnZSAoJHt2ZXJzaW9uJS4qfSBzZXJpZXMpIgog bWFpbnRhaW5lcj0iSnVhbiBSUCA8eHRyYWVtZUB2b2lkbGludXgub3JnPiIKIGhvbWVwYWdlPSJo dHRwczovL3d3dy5weXRob24ub3JnIgogbGljZW5zZT0iUHl0aG9uLTIuMCIKIGRpc3RmaWxlcz0i aHR0cHM6Ly93d3cucHl0aG9uLm9yZy9mdHAvcHl0aG9uLyR7dmVyc2lvbn0vUHl0aG9uLSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09MzU0NDYyNDFlOTk1NzczYjFiZWQ3ZDE5NmY0YjYyNGRh ZGNhZGM4NDI5ZjI2MjgyZTc1NmIyZmI4YTM1MTE5MworY2hlY2tzdW09NWUyZjVmNTU0ZTNmOGY3 ZjAyOTZmN2U3M2Q4NjAwYzRlOWFjYmFlZTZiMjU1NWI4MzIwNmVkZjUxNTM4NzBkYQogCiBweWNv bXBpbGVfZGlycz0idXNyL2xpYi9weXRob24ke3ZlcnNpb24lLip9IgogaG9zdG1ha2VkZXBlbmRz PSJwa2ctY29uZmlnIgoKRnJvbSAyMTgwNmFlZjNiYTcwNTFhOTk0YTU1NmViYzc3MWZlZjkyM2M3 MGMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWFuIFJQIDx4dHJhZW1lQGdtYWls LmNvbT4KRGF0ZTogV2VkLCAzIEp1bCAyMDE5IDE5OjQ3OjE5ICswMjAwClN1YmplY3Q6IFtQQVRD SCAzLzZdIHBrZy1jb25maWc6IGdldCByaWQgb2YgYSByZWR1bmRhbnQgaG9zdCBkZXAuCgotLS0K IHNyY3BrZ3MvcGtnLWNvbmZpZy90ZW1wbGF0ZSB8IDIgLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcGtnLWNvbmZpZy90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvcGtnLWNvbmZpZy90ZW1wbGF0ZQppbmRleCA2OGE5MTBlNmQxZS4uOWNhZjdhMTQ5NDgg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcGtnLWNvbmZpZy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3Br Zy1jb25maWcvdGVtcGxhdGUKQEAgLTUsOCArNSw2IEBAIHJldmlzaW9uPTIKIGJvb3RzdHJhcD15 ZXMKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSItLXdpdGgtaW50 ZXJuYWwtZ2xpYiAtLWRpc2FibGUtaG9zdC10b29sIgotIyByZXF1aXJlZCBmb3IgZ2NjNiBib290 c3RyYXAKLWhvc3RtYWtlZGVwZW5kcz0iZ2NjIgogc2hvcnRfZGVzYz0iU3lzdGVtIGZvciBtYW5h Z2luZyBsaWJyYXJ5IGNvbXBpbGUvbGluayBmbGFncyIKIG1haW50YWluZXI9Ikp1YW4gUlAgPHh0 cmFlbWVAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMiIKCkZyb20gM2MxY2Q4MzUxZTAy MjVlYWUzNDRlODBlMzUwODUzZWU5OGY3YjE1NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogSnVhbiBSUCA8eHRyYWVtZUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMyBKdWwgMjAxOSAyMDoz OToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNC82XSB4YnBzLXNyYzogZml4IFhCUFNfQ0hFQ0tW RVJTX1hDTUQuCgpOZWVkcyB0byBzZXQgLXIgJFhCUFNfQ1JPU1NfQkFTRSB0byB1c2UgY29ycmVj dCBkYmRpci4KLS0tCiBjb21tb24veGJwcy1zcmMvc2h1dGlscy9jb21tb24uc2ggfCAyICstCiAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9jb21tb24veGJwcy1zcmMvc2h1dGlscy9jb21tb24uc2ggYi9jb21tb24veGJwcy1zcmMvc2h1 dGlscy9jb21tb24uc2gKaW5kZXggZGVhNmUyYjNiZGQuLmI4ZDYwMWQzZmIyIDEwMDY0NAotLS0g YS9jb21tb24veGJwcy1zcmMvc2h1dGlscy9jb21tb24uc2gKKysrIGIvY29tbW9uL3hicHMtc3Jj L3NodXRpbHMvY29tbW9uLnNoCkBAIC0yOTQsNyArMjk0LDcgQEAgc2V0dXBfcGtnKCkgewogICAg ICAgICBYQlBTX1JFTU9WRV9YQ01EPSJlbnYgWEJQU19UQVJHRVRfQVJDSD0kWEJQU19UQVJHRVRf TUFDSElORSAkWEJQU19SRU1PVkVfQ01EIC1yICRYQlBTX0NST1NTX0JBU0UiCiAgICAgICAgIFhC UFNfUklOREVYX1hDTUQ9ImVudiBYQlBTX1RBUkdFVF9BUkNIPSRYQlBTX1RBUkdFVF9NQUNISU5F ICRYQlBTX1JJTkRFWF9DTUQiCiAgICAgICAgIFhCUFNfVUhFTFBFUl9YQ01EPSJlbnYgWEJQU19U QVJHRVRfQVJDSD0kWEJQU19UQVJHRVRfTUFDSElORSB4YnBzLXVoZWxwZXIgLXIgJFhCUFNfQ1JP U1NfQkFTRSIKLSAgICAgICAgWEJQU19DSEVDS1ZFUlNfWENNRD0iZW52IFhCUFNfVEFSR0VUX0FS Q0g9JFhCUFNfVEFSR0VUX01BQ0hJTkUgeGJwcy1jaGVja3ZlcnMgLS1yZXBvc2l0b3J5PSRYQlBT X1JFUE9TSVRPUlkiCisgICAgICAgIFhCUFNfQ0hFQ0tWRVJTX1hDTUQ9ImVudiBYQlBTX1RBUkdF VF9BUkNIPSRYQlBTX1RBUkdFVF9NQUNISU5FIHhicHMtY2hlY2t2ZXJzIC1yICRYQlBTX0NST1NT X0JBU0UgLS1yZXBvc2l0b3J5PSRYQlBTX1JFUE9TSVRPUlkiCiAgICAgZWxzZQogICAgICAgICBl eHBvcnQgWEJQU19UQVJHRVRfTUFDSElORT0ke1hCUFNfQVJDSDotJFhCUFNfTUFDSElORX0KICAg ICAgICAgdW5zZXQgWEJQU19DUk9TU19CQVNFIFhCUFNfQ1JPU1NfTERGTEFHUyBYQlBTX0NST1NT X0ZGTEFHUwoKRnJvbSA3MGE3NWRkY2FhNzFiMjg1MTFjMGM2YjU2ZTIxYWQ3YzMzN2FhOTM4IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWFuIFJQIDx4dHJhZW1lQGdtYWlsLmNvbT4K RGF0ZTogVGh1LCA0IEp1bCAyMDE5IDA3OjU2OjE3ICswMjAwClN1YmplY3Q6IFtQQVRDSCA1LzZd IHhicHMtc3JjOiBmaXggcmVjb25maWd1cmF0aW9uIG9mIGJvb3RzdHJhcCBwa2dzLgoKLS0tCiB4 YnBzLXNyYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS94YnBzLXNyYyBiL3hicHMtc3JjCmluZGV4IGY3MmNjNzAw MmM5Li5iNDk0MzA2ZjU4ZSAxMDA3NTUKLS0tIGEveGJwcy1zcmMKKysrIGIveGJwcy1zcmMKQEAg LTMxMSw4ICszMTEsOCBAQCByZWNvbmZpZ3VyZV9ib290c3RyYXBfcGtncygpIHsKICAgICAjIFJl Y29uZmlndXJlIGNhLWNlcnRpZmljYXRlcy4KICAgICBtc2dfbm9ybWFsICJSZWNvbmZpZ3VyaW5n IGJvb3RzdHJhcCBwYWNrYWdlcy4uLlxuIgogICAgIGZvciBmIGluICR7cGtnc307IGRvCi0gICAg ICAgIGlmICRYQlBTX1FVRVJZX0NNRCAkZiAmPi9kZXYvbnVsbDsgdGhlbgotICAgICAgICAgICAg JFhCUFNfUkVDT05GSUdVUkVfQ01EIC1mICRmCisgICAgICAgIGlmIHhicHMtcXVlcnkgLXIgJFhC UFNfTUFTVEVSRElSICRmICY+L2Rldi9udWxsOyB0aGVuCisgICAgICAgICAgICB4YnBzLXJlY29u ZmlndXJlIC1yICRYQlBTX01BU1RFUkRJUiAtZiAkZgogICAgICAgICBmaQogICAgIGRvbmUKICAg ICB0b3VjaCAtZiAkc3RhdGVmaWxlCgpGcm9tIGZjZTBhODFlYzg4ZjI1OTViNTc1YWI3ZDY5ODRj MzEwNzcyZjJlNDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEp1YW4gUlAgPHh0cmFl bWVAZ21haWwuY29tPgpEYXRlOiBUaHUsIDQgSnVsIDIwMTkgMTE6MDA6MTMgKzAyMDAKU3ViamVj dDogW1BBVENIIDYvNl0geGJwcy1zcmM6IGltcHJvdmUgYnVsa19zb3J0ZGVwcygpLgoKLi94YnBz LXNyYyBzb3J0LWRlcGVuZGVuY2llcyAkKC4veGJwcy1zcmMgc2hvdy1idWlsZC1kZXBzIHhicHMp CgowLjIwMnMgdnMgMC41MTRzCi0tLQogY29tbW9uL3hicHMtc3JjL3NodXRpbHMvYnVsay5zaCB8 IDMxICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOCBp bnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24veGJwcy1z cmMvc2h1dGlscy9idWxrLnNoIGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvYnVsay5zaAppbmRl eCAyZDFkNjEyYzk2Ni4uM2E0NGRkMTUzOWUgMTAwNjQ0Ci0tLSBhL2NvbW1vbi94YnBzLXNyYy9z aHV0aWxzL2J1bGsuc2gKKysrIGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvYnVsay5zaApAQCAt MSwyNCArMSwyOSBAQAogIyB2aW06IHNldCB0cz00IHN3PTQgZXQ6CiAKIGJ1bGtfc29ydGRlcHMo KSB7Ci0gICAgbG9jYWwgX3BrZ3MgX3BrZyBwa2dzIHBrZyBmb3VuZCBmIHggdG1wZgorICAgIGxv Y2FsIHBrZ3M9IiRAIgorICAgIGxvY2FsIHBrZyBfcGtnCisgICAgbG9jYWwgTlBST0NTPSQoKCQo bnByb2MpKjIpKQorICAgIGxvY2FsIE5SVU5OSU5HPTAKIAotICAgIHBrZ3M9IiRAIgogICAgIHRt cGY9JChta3RlbXApIHx8IGV4aXQgMQogCi0gICAgIyBOb3cgbWFrZSB0aGUgcmVhbCBkZXBlbmRl bmN5IGdyYXBoIG9mIGFsbCBwa2dzIHRvIGJ1aWxkLgotICAgICMgUGVyZm9ybSBhIHRvcG9sb2dp Y2FsIHNvcnQgb2YgYWxsIHBrZ3MgYnV0IG9ubHkgd2l0aCBidWlsZCBkZXBlbmRlbmNpZXMKLSAg ICAjIHRoYXQgYXJlIGZvdW5kIGluIHByZXZpb3VzIHN0ZXAuCisgICAgIyBQZXJmb3JtIGEgdG9w b2xvZ2ljYWwgc29ydCBvZiBhbGwgYnVpbGQgZGVwZW5kZW5jaWVzLgorICAgIGlmIFsgJE5SVU5O SU5HIC1lcSAkTlBST0NTIF07IHRoZW4KKyAgICAgICAgTlJVTk5JTkc9MAorICAgICAgICB3YWl0 CisgICAgZmkKKwogICAgIGZvciBwa2cgaW4gJHtwa2dzfTsgZG8KLSAgICAgICAgX3BrZ3M9IiQo Li94YnBzLXNyYyBzaG93LWJ1aWxkLWRlcHMgJHBrZyAyPi9kZXYvbnVsbCkiCi0gICAgICAgIGZv dW5kPTAKLSAgICAgICAgZm9yIHggaW4gJHtfcGtnc307IGRvCi0gICAgICAgICAgICBmb3IgZiBp biAke3BrZ3N9OyBkbwotICAgICAgICAgICAgICAgIFtbICRmID09ICR4IF1dICYmIGZvdW5kPTEg JiYgZWNobyAiJHtwa2d9ICR7Zn0iID4+ICR0bXBmCisgICAgICAgICMgYXN5bmMvcGFyYWxsZWwg ZXhlY3V0aW9uCisgICAgICAgICgKKyAgICAgICAgICAgIGZvciBfcGtnIGluICQoLi94YnBzLXNy YyBzaG93LWJ1aWxkLWRlcHMgJHBrZyAyPi9kZXYvbnVsbCk7IGRvCisgICAgICAgICAgICAgICAg ZWNobyAiJHBrZyAkX3BrZyIgPj4gJHRtcGYKICAgICAgICAgICAgIGRvbmUKLSAgICAgICAgZG9u ZQotICAgICAgICBbWyAkZm91bmQgLWVxIDAgXV0gJiYgZWNobyAiJHtwa2d9ICR7cGtnfSIgPj4g JHRtcGYKKyAgICAgICAgICAgIGVjaG8gIiRwa2cgJHBrZyIgPj4gJHRtcGYKKyAgICAgICAgKSAm CiAgICAgZG9uZQorICAgIHdhaXQKICAgICB0c29ydCAkdG1wZnx0YWMKICAgICBybSAtZiAkdG1w ZgogfQpAQCAtMzAsNyArMzUsNyBAQCBidWxrX2J1aWxkKCkgewogICAgICAgICBleHBvcnQgWEJQ U19BUkNIPSR7WEJQU19UQVJHRVRfTUFDSElORX0KICAgICBmaQogICAgIGlmICEgY29tbWFuZCAt diB4YnBzLWNoZWNrdmVycyAmPi9kZXYvbnVsbDsgdGhlbgotICAgICAgICBtc2dfZXJyb3IgInhi cHMtc3JjOiBjYW5ub3QgZmluZCB4YnBzLWNoZWNrdmVycyg4KSBjb21tYW5kIVxuIgorICAgICAg ICBtc2dfZXJyb3IgInhicHMtc3JjOiBjYW5ub3QgZmluZCB4YnBzLWNoZWNrdmVycygxKSBjb21t YW5kIVxuIgogICAgIGZpCiAKICAgICBidWxrX3NvcnRkZXBzICIkKHhicHMtY2hlY2t2ZXJzIC1m ICclbicgJHsxfSAtLWRpc3RkaXI9JFhCUFNfRElTVERJUikiCg== --===============3173228094846490736==--