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 80529b39 for ; Sun, 7 Jul 2019 06:36:37 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============2247596719972861248==" 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: Sun, 07 Jul 2019 08:36:37 +0200 Message-ID: <20190707063637.AQFClyWBFoFhE1quOjUg03Q09aCINqYAjsWx3kihUuk@z> GitHub notification mails are now in MIME to allow UTF8. --===============2247596719972861248== 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= --===============2247596719972861248== 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" RnJvbSA3ODgzM2RjMzgwOTc2MjZmN2RiZWUwMjljYjE3ZDhlOTM0N2YwYmFkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKdWFuIFJQIDx4dHJhZW1lQGdtYWlsLmNvbT4KRGF0ZTogU3Vu LCA3IEp1bCAyMDE5IDA4OjIzOjI4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxLzJdIHhicHMtc3Jj OiBtdWx0aXBsZSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMuCgotIHVzZSB4YnBzLWNoZWNrdmVy cygxKSB0byByZXNvbHZlIGRlcGVuZGVuY2llcy4KLSBhbGwgZGVwZW5kZW5jaWVzIGFyZSBpbnN0 YWxsZWQgYXQgb25jZSBmb3IgdGhlIGhvc3QgYW5kIHRhcmdldC4KLSB0aGUgc2hvdy1idWlsZC1k ZXBzIHRhcmdldCBpcyBub3cgbXVjaCBmYXN0ZXIuCi0gdGhlIHVwZGF0ZS1idWxrL3Nob3ctcmVw by11cGRhdGVzIHRhcmdldHMgYXJlIG5vdyBtdWNoIGZhc3Rlci4KLSB0aGUgdXBkYXRlLXN5cy9z aG93LXN5cy11cGRhdGVzIHRhcmdldHMgYXJlIG5vdyBtdWNoIGZhc3Rlci4KLSB0aGUgYm9vdHN0 cmFwIHRhcmdldCBub3cgd29ya3Mgb24gbXVzbCBob3N0cy4KLSBzaW1wbGlmaWVkIHNvbWUgbG9v cHMuCi0gdXNlIGN1dCgxKSByYXRoZXIgdGhhbiBhd2soMSkgd2hlcmUgYXBwbGljYWJsZS4KLSBt dWx0aXBsZSByYW5kb20gY2hhbmdlcyB0byBpbXByb3ZlIHBlcmZvcm1hbmNlLgoKQmFzZWQgb24g d29yayBzdGFydGVkIGJ5IEBEdW5jYWVuIG9uICMxMjQzMwoKQ2xvc2UgIzEyNDMzCkNsb3NlICMx MTI4MgotLS0KIC5naXRpZ25vcmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMSArCiBjb21tb24vaG9va3MvZG8tcGtnLzAwLWdlbi1wa2cuc2ggICAgICAgICAgICAgfCAg IDggKy0KIC4uLi9ob29rcy9wcmUtcGtnLzA0LWdlbmVyYXRlLXJ1bnRpbWUtZGVwcy5zaCB8ICA0 MSArLQogY29tbW9uL2hvb2tzL3ByZS1wa2cvOTktcGtnbGludC5zaCAgICAgICAgICAgIHwgICA0 ICstCiBjb21tb24veGJwcy1zcmMvbGliZXhlYy9idWlsZC5zaCAgICAgICAgICAgICAgfCAgIDQg LQogY29tbW9uL3hicHMtc3JjL2xpYmV4ZWMveGJwcy1zcmMtZG9pbnN0YWxsLnNoIHwgICAyICst CiBjb21tb24veGJwcy1zcmMvbGliZXhlYy94YnBzLXNyYy1wcmVwa2cuc2ggICAgfCAgIDIgKy0K IGNvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2J1aWxkX2RlcGVuZGVuY2llcy5zaCB8IDQ4OCArKysr KysrLS0tLS0tLS0tLS0KIGNvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2J1bGsuc2ggICAgICAgICAg ICAgICB8ICA5NSArKy0tCiBjb21tb24veGJwcy1zcmMvc2h1dGlscy9jaHJvb3Quc2ggICAgICAg ICAgICAgfCAgMjEgKy0KIGNvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5zaCAgICAgICAg ICAgICB8ICAxNiArLQogY29tbW9uL3hicHMtc3JjL3NodXRpbHMvY3Jvc3Muc2ggICAgICAgICAg ICAgIHwgIDEzICstCiBjb21tb24veGJwcy1zcmMvc2h1dGlscy9wa2d0YXJnZXQuc2ggICAgICAg ICAgfCAgIDQgKwogY29tbW9uL3hicHMtc3JjL3NodXRpbHMvc2hvdy5zaCAgICAgICAgICAgICAg IHwgIDQxICstCiB4YnBzLXNyYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAzMjYgKysrKysrLS0tLS0tCiAxNSBmaWxlcyBjaGFuZ2VkLCA0NDYgaW5zZXJ0aW9ucygrKSwg NjIwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmlu ZGV4IGFjYzZiZjMzNDc5Li41OTFiMzUwNzU5MyAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysg Yi8uZ2l0aWdub3JlCkBAIC03LDMgKzcsNCBAQCBtYXN0ZXJkaXIqCiBob3N0ZGlyKgogZXRjL2Nv bmYKIGV0Yy92aXJ0dWFsCisueGJwcy1jaGVja3ZlcnMucGxpc3QKZGlmZiAtLWdpdCBhL2NvbW1v bi9ob29rcy9kby1wa2cvMDAtZ2VuLXBrZy5zaCBiL2NvbW1vbi9ob29rcy9kby1wa2cvMDAtZ2Vu LXBrZy5zaAppbmRleCA3OGVjMmExNDIyYS4uYzBlZDA4OGRhOWQgMTAwNjQ0Ci0tLSBhL2NvbW1v bi9ob29rcy9kby1wa2cvMDAtZ2VuLXBrZy5zaAorKysgYi9jb21tb24vaG9va3MvZG8tcGtnLzAw LWdlbi1wa2cuc2gKQEAgLTMyLDE2ICszMiwxNiBAQCBnZW5wa2coKSB7CiAKIAlfcHJlc2VydmU9 JHtwcmVzZXJ2ZTorLXB9CiAJaWYgWyAtcyAke1BLR0RFU1RESVJ9L3JkZXBzIF07IHRoZW4KLQkJ X2RlcHM9IiQoY2F0ICR7UEtHREVTVERJUn0vcmRlcHMpIgorCQlfZGVwcz0iJCg8JHtQS0dERVNU RElSfS9yZGVwcykiCiAJZmkKIAlpZiBbIC1zICR7UEtHREVTVERJUn0vc2hsaWItcHJvdmlkZXMg XTsgdGhlbgotCQlfc2hwcm92aWRlcz0iJChjYXQgJHtQS0dERVNURElSfS9zaGxpYi1wcm92aWRl cykiCisJCV9zaHByb3ZpZGVzPSIkKDwke1BLR0RFU1RESVJ9L3NobGliLXByb3ZpZGVzKSIKIAlm aQogCWlmIFsgLXMgJHtQS0dERVNURElSfS9zaGxpYi1yZXF1aXJlcyBdOyB0aGVuCi0JCV9zaHJl cXVpcmVzPSIkKGNhdCAke1BLR0RFU1RESVJ9L3NobGliLXJlcXVpcmVzKSIKKwkJX3NocmVxdWly ZXM9IiQoPCR7UEtHREVTVERJUn0vc2hsaWItcmVxdWlyZXMpIgogCWZpCiAJaWYgWyAtcyAke1hC UFNfU1RBVEVESVJ9L2dpdHJldiBdOyB0aGVuCi0JCV9naXRyZXZzPSIkKGNhdCAke1hCUFNfU1RB VEVESVJ9L2dpdHJldikiCisJCV9naXRyZXZzPSIkKDwke1hCUFNfU1RBVEVESVJ9L2dpdHJldiki CiAJZmkKIAogCSMgU3RyaXBwaW5nIHdoaXRlc3BhY2VzCmRpZmYgLS1naXQgYS9jb21tb24vaG9v a3MvcHJlLXBrZy8wNC1nZW5lcmF0ZS1ydW50aW1lLWRlcHMuc2ggYi9jb21tb24vaG9va3MvcHJl LXBrZy8wNC1nZW5lcmF0ZS1ydW50aW1lLWRlcHMuc2gKaW5kZXggNjIwNzcwMjI3MTEuLjZlNDVi N2RkM2MzIDEwMDY0NAotLS0gYS9jb21tb24vaG9va3MvcHJlLXBrZy8wNC1nZW5lcmF0ZS1ydW50 aW1lLWRlcHMuc2gKKysrIGIvY29tbW9uL2hvb2tzL3ByZS1wa2cvMDQtZ2VuZXJhdGUtcnVudGlt ZS1kZXBzLnNoCkBAIC01LDcgKzUsNyBAQAogIwktIEdlbmVyYXRlcyBzaGxpYi1yZXF1aXJlcyBm aWxlIGZvciB4YnBzLWNyZWF0ZSgxKQogCiBhZGRfcnVuZGVwKCkgewotICAgIGxvY2FsIGRlcD0i JDEiIGk9IHJwa2dkZXA9IF9kZXBuYW1lPSBfcmRlcHM9IGZvdW5kPQorICAgIGxvY2FsIGRlcD0i JDEiIGk9IHJwa2dkZXA9IF9kZXBuYW1lPSBmb3VuZD0KIAogICAgIF9kZXBuYW1lPSIkKCRYQlBT X1VIRUxQRVJfQ01EIGdldHBrZ2RlcG5hbWUgJHtkZXB9IDI+L2Rldi9udWxsKSIKICAgICBpZiBb IC16ICIke19kZXBuYW1lfSIgXTsgdGhlbgpAQCAtNjgsMjYgKzY4LDE5IEBAIGhvb2soKSB7CiAg ICAgZXhlYyA8ICRkZXBzZnRtcAogICAgIHdoaWxlIHJlYWQgZjsgZG8KICAgICAgICAgbGY9JHtm IyR7UEtHREVTVERJUn19Ci0JaWYgWyAiJHtza2lwcmRlcHMvJHtsZn0vfSIgIT0gIiR7c2tpcHJk ZXBzfSIgXTsgdGhlbgotCQltc2dfbm9ybWFsICJTa2lwcGluZyBkZXBlbmRlbmN5IHNjYW4gZm9y ICR7bGZ9XG4iCi0JCWNvbnRpbnVlCi0JZmkKKwkgICAgaWYgWyAiJHtza2lwcmRlcHMvJHtsZn0v fSIgIT0gIiR7c2tpcHJkZXBzfSIgXTsgdGhlbgorCQkgICAgbXNnX25vcm1hbCAiU2tpcHBpbmcg ZGVwZW5kZW5jeSBzY2FuIGZvciAke2xmfVxuIgorCQkgICAgY29udGludWUKKwkgICAgZmkKICAg ICAgICAgY2FzZSAiJChmaWxlIC1iaSAiJGYiKSIgaW4KICAgICAgICAgICAgIGFwcGxpY2F0aW9u L3gtKmV4ZWN1dGFibGUqfGFwcGxpY2F0aW9uL3gtc2hhcmVkbGliKikKICAgICAgICAgICAgICAg ICBmb3IgbmxpYiBpbiAkKCRPQkpEVU1QIC1wICIkZiJ8Z3JlcCBORUVERUR8YXdrICd7cHJpbnQg JDJ9Jyk7IGRvCi0gICAgICAgICAgICAgICAgICAgIGlmIFsgLXogIiR2ZXJpZnlfZGVwcyIgXTsg dGhlbgotICAgICAgICAgICAgICAgICAgICAgICAgdmVyaWZ5X2RlcHM9IiRubGliIgotICAgICAg ICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAg ICAgICAgICAgICAgICAgWyAteiAiJHZlcmlmeV9kZXBzIiBdICYmIHZlcmlmeV9kZXBzPSIkbmxp YiIgJiYgY29udGludWUKKyAgICAgICAgICAgICAgICAgICAgZm91bmQ9MAogICAgICAgICAgICAg ICAgICAgICBmb3IgaiBpbiAke3ZlcmlmeV9kZXBzfTsgZG8KLSAgICAgICAgICAgICAgICAgICAg ICAgIFsgIiRqIiAhPSAiJG5saWIiIF0gJiYgY29udGludWUKLSAgICAgICAgICAgICAgICAgICAg ICAgIGZvdW5kX2R1cD0xCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAg ICAgICAgICAgICAgICAgW1sgJGogPT0gJG5saWIgXV0gJiYgZm91bmQ9MSAmJiBicmVhawogICAg ICAgICAgICAgICAgICAgICBkb25lCi0gICAgICAgICAgICAgICAgICAgIGlmIFsgLXogIiRmb3Vu ZF9kdXAiIF07IHRoZW4KLSAgICAgICAgICAgICAgICAgICAgICAgIHZlcmlmeV9kZXBzPSIkdmVy aWZ5X2RlcHMgJG5saWIiCi0gICAgICAgICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICAgICAg ICAgIHVuc2V0IGZvdW5kX2R1cAorICAgICAgICAgICAgICAgICAgICBbWyAkZm91bmQgLWVxIDAg XV0gJiYgdmVyaWZ5X2RlcHM9IiR2ZXJpZnlfZGVwcyAkbmxpYiIKICAgICAgICAgICAgICAgICBk b25lCiAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgZXNhYwpAQCAtOTcsMTMgKzkwLDEzIEBA IGhvb2soKSB7CiAKICAgICAjCiAgICAgIyBBZGQgcmVxdWlyZWQgcnVuIHRpbWUgcGFja2FnZXMg YnkgdXNpbmcgcmVxdWlyZWQgc2hsaWJzIHJlc29sdmVkCi0gICAgIyBhYm92ZSwgdGhlIG1hcHBp bmcgaXMgZG9uZSB0aHJ1IHRoZSBtYXBwaW5nX3NobGliX2JpbnBrZy50eHQgZmlsZS4KKyAgICAj IGFib3ZlLCB0aGUgbWFwcGluZyBpcyBkb25lIHRocnUgdGhlIGNvbW1vbi9zaGxpYnMgZmlsZS4K ICAgICAjCiAgICAgZm9yIGYgaW4gJHt2ZXJpZnlfZGVwc307IGRvCiAgICAgICAgIHVuc2V0IF9m IGogcmRlcCBfcmRlcCByZGVwY250IHNvbmFtZSBfcGtnbmFtZSBfcmRlcHZlciBmb3VuZAogICAg ICAgICBfZj0kKGVjaG8gIiRmInxzZWQgLUUgJ3N8XCt8XFwrfGcnKQotICAgICAgICByZGVwPSIk KGdyZXAgLUUgIl4ke19mfVtbOmJsYW5rOl1dKy4qJCIgJG1hcHNobGlic3xhd2sgJ3twcmludCAk Mn0nKSIKLSAgICAgICAgcmRlcGNudD0iJChncmVwIC1FICJeJHtfZn1bWzpibGFuazpdXSsuKiQi ICRtYXBzaGxpYnN8YXdrICd7cHJpbnQgJDJ9J3x3YyAtbCkiCisgICAgICAgIHJkZXA9IiQoZ3Jl cCAtRSAiXiR7X2Z9W1s6Ymxhbms6XV0rLiokIiAkbWFwc2hsaWJzfGN1dCAtZCAnICcgLWYyKSIK KyAgICAgICAgcmRlcGNudD0iJChncmVwIC1FICJeJHtfZn1bWzpibGFuazpdXSsuKiQiICRtYXBz aGxpYnN8Y3V0IC1kICcgJyAtZjJ8d2MgLWwpIgogICAgICAgICBpZiBbIC16ICIkcmRlcCIgXTsg dGhlbgogICAgICAgICAgICAgIyBJZ25vcmUgbGlicyBieSBjdXJyZW50IHBrZwogICAgICAgICAg ICAgc29uYW1lPSQoZmluZCAke1BLR0RFU1RESVJ9IC1uYW1lICIkZiIpCkBAIC0xMjEsMTUgKzEx NCw5IEBAIGhvb2soKSB7CiAgICAgICAgICAgICAgICAgX3BrZ25hbWU9JCgkWEJQU19VSEVMUEVS X0NNRCBnZXRwa2duYW1lICIkaiIpCiAgICAgICAgICAgICAgICAgIyBpZiB0aGVyZSdzIGEgU09O QU1FIG1hdGNoaW5nIHBrZ25hbWUsIHVzZSBpdC4KICAgICAgICAgICAgICAgICBmb3IgeCBpbiAk e3BrZ25hbWV9ICR7c3VicGFja2FnZXN9OyBkbwotICAgICAgICAgICAgICAgICAgICBpZiBbICIk e19wa2duYW1lfSIgPSAiJHt4fSIgXTsgdGhlbgotICAgICAgICAgICAgICAgICAgICAgICAgZm91 bmQ9MQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICAgICAg ZmkKKyAgICAgICAgICAgICAgICAgICAgW1sgJF9wa2duYW1lID09ICR4IF1dICYmIGZvdW5kPTEg JiYgYnJlYWsKICAgICAgICAgICAgICAgICBkb25lCi0gICAgICAgICAgICAgICAgaWYgWyAtbiAi JGZvdW5kIiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgIF9yZGVwPSRqCi0gICAgICAgICAg ICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICBbWyAk Zm91bmQgXV0gJiYgX3JkZXA9JGogJiYgYnJlYWsKICAgICAgICAgICAgIGRvbmUKICAgICAgICAg ICAgIGlmIFsgLXogIiR7X3JkZXB9IiBdOyB0aGVuCiAgICAgICAgICAgICAgICAgIyBvdGhlcndp c2UgcGljayB1cCB0aGUgZmlyc3Qgb25lLgpkaWZmIC0tZ2l0IGEvY29tbW9uL2hvb2tzL3ByZS1w a2cvOTktcGtnbGludC5zaCBiL2NvbW1vbi9ob29rcy9wcmUtcGtnLzk5LXBrZ2xpbnQuc2gKaW5k ZXggN2FlMTgzYWU4ZTguLmFiMmIyMTU1MDhlIDEwMDY0NAotLS0gYS9jb21tb24vaG9va3MvcHJl LXBrZy85OS1wa2dsaW50LnNoCisrKyBiL2NvbW1vbi9ob29rcy9wcmUtcGtnLzk5LXBrZ2xpbnQu c2gKQEAgLTExOSw3ICsxMTksNyBAQCBob29rKCkgewogCQkJCW1zZ19yZWQgIiR7cGtndmVyfTog U09OQU1FIGJ1bXAgZGV0ZWN0ZWQ6ICR7bGlibmFtZX0uc28uJHtjb25mbGljdFJldn0gLT4gJHts aWJuYW1lfS5zby4ke3Jldn1cbiIKIAkJCQltc2dfcmVkICIke3BrZ3Zlcn06IHBsZWFzZSB1cGRh dGUgY29tbW9uL3NobGlicyB3aXRoIHRoaXMgbGluZTogXCIke2xpYm5hbWV9LnNvLiR7cmV2fSAk e3BrZ3Zlcn1cIlxuIgogCQkJCW1zZ19yZWQgIiR7cGtndmVyfTogYWxsIHJldmVyc2UgZGVwZW5k ZW5jaWVzIHNob3VsZCBhbHNvIGJlIHJldmJ1bXBlZCB0byBiZSByZWJ1aWx0IGFnYWluc3QgJHts aWJuYW1lfS5zby4ke3Jldn06XG4iCi0JCQkJX3JldmRlcHM9JCgkWEJQU19RVUVSWV9YQ01EIC1S cyAke2xpYm5hbWV9LnNvIC1wIHNobGliLXJlcXVpcmVzfGF3ayAne3ByaW50ICQxfScpCisJCQkJ X3JldmRlcHM9JCgkWEJQU19RVUVSWV9YQ01EIC1ScyAke2xpYm5hbWV9LnNvIC1wIHNobGliLXJl cXVpcmVzfGN1dCAtZCAnICcgLWYxKQogCQkJCWZvciB4IGluICR7X3JldmRlcHN9OyBkbwogCQkJ CQltc2dfcmVkICIgICAke3glOn1cbiIKIAkJCQlkb25lCkBAIC0xMjgsNyArMTI4LDcgQEAgaG9v aygpIHsKIAkJCSMgVHJ5IHRvIG1hdGNoIHByb3ZpZGVkIHNobGlicyBpbiB2aXJ0dWFsIHBhY2th Z2VzLgogCQkJZm9yIGYgaW4gJHtwcm92aWRlc307IGRvCiAJCQkJX3Zwa2duYW1lPSIkKCRYQlBT X1VIRUxQRVJfQ01EIGdldHBrZ25hbWUgJHtmfSAyPi9kZXYvbnVsbCkiCi0JCQkJX3Nwa2duYW1l PSIkKGdyZXAgIl4ke2ZpbGVuYW1lfSIgJG1hcHNobGlicyB8IGF3ayAne3ByaW50ICQyfScpIgor CQkJCV9zcGtnbmFtZT0iJChncmVwICJeJHtmaWxlbmFtZX0iICRtYXBzaGxpYnMgfCBjdXQgLWQg JyAnIC1mMikiCiAJCQkJX2xpYnBrZ25hbWU9IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtnbmFt ZSAke19zcGtnbmFtZX0gMj4vZGV2L251bGwpIgogCQkJCWlmIFsgLXogIiR7X3Nwa2duYW1lfSIg LW8gIC16ICIke19saWJwa2duYW1lfSIgXTsgdGhlbgogCQkJCQljb250aW51ZQpkaWZmIC0tZ2l0 IGEvY29tbW9uL3hicHMtc3JjL2xpYmV4ZWMvYnVpbGQuc2ggYi9jb21tb24veGJwcy1zcmMvbGli ZXhlYy9idWlsZC5zaAppbmRleCA5OTA4YjMzNjk1Ny4uMWY3NTFjYTEzYjkgMTAwNzU1Ci0tLSBh L2NvbW1vbi94YnBzLXNyYy9saWJleGVjL2J1aWxkLnNoCisrKyBiL2NvbW1vbi94YnBzLXNyYy9s aWJleGVjL2J1aWxkLnNoCkBAIC00MywxMCArNDMsNiBAQCBpZiBbICIkUEtHTkFNRSIgIT0gIiRY QlBTX1RBUkdFVF9QS0ciIC1vIC16ICIkWEJQU19TS0lQX0RFUFMiIF07IHRoZW4KICAgICBpbnN0 YWxsX3BrZ19kZXBzICRQS0dOQU1FICRYQlBTX1RBUkdFVF9QS0cgcGtnICRYQlBTX0NST1NTX0JV SUxEICRYQlBTX0NST1NTX1BSRVBBUkUgfHwgZXhpdCAkPwogZmkKIAotaWYgWyAteiAiJFhCUFNf Q1JPU1NfUFJFUEFSRSIgXTsgdGhlbgotICAgIGluc3RhbGxfY3Jvc3NfcGtnICRYQlBTX0NST1NT X0JVSUxEIHx8IGV4aXQgJD8KLWZpCi0KICMgRmV0Y2ggZGlzdGZpbGVzIGFmdGVyIGluc3RhbGxp bmcgcmVxdWlyZWQgZGVwZW5kZW5jaWVzLAogIyBiZWNhdXNlIHNvbWUgb2YgdGhlbSBtaWdodCBi ZSByZXF1aXJlZCBmb3IgZG9fZmV0Y2goKS4KICRYQlBTX0xJQkVYRUNESVIveGJwcy1zcmMtZG9m ZXRjaC5zaCAkU09VUkNFUEtHICRYQlBTX0NST1NTX0JVSUxEIHx8IGV4aXQgMQpkaWZmIC0tZ2l0 IGEvY29tbW9uL3hicHMtc3JjL2xpYmV4ZWMveGJwcy1zcmMtZG9pbnN0YWxsLnNoIGIvY29tbW9u L3hicHMtc3JjL2xpYmV4ZWMveGJwcy1zcmMtZG9pbnN0YWxsLnNoCmluZGV4IGIzZDVkNzI3NmY4 Li4xNGUxMTdhOTIzYiAxMDA3NTUKLS0tIGEvY29tbW9uL3hicHMtc3JjL2xpYmV4ZWMveGJwcy1z cmMtZG9pbnN0YWxsLnNoCisrKyBiL2NvbW1vbi94YnBzLXNyYy9saWJleGVjL3hicHMtc3JjLWRv aW5zdGFsbC5zaApAQCAtNjMsNyArNjMsNyBAQCBpZiBbICEgLWYgJFhCUFNfU1VCUEtHX0lOU1RB TExfRE9ORSBdOyB0aGVuCiAgICAgICAgICAgICBydW5fZnVuYyBwa2dfaW5zdGFsbAogICAgICAg ICBmaQogICAgIGZpCi0gICAgc2V0dXBfcGtnX2RlcGVuZHMgJHtwa2duYW1lOj0kUEtHTkFNRX0K KyAgICBzZXR1cF9wa2dfZGVwZW5kcyAke3BrZ25hbWU6PSRQS0dOQU1FfSB8fCBleGl0IDEKICAg ICBydW5fcGtnX2hvb2tzIHBvc3QtaW5zdGFsbAogICAgIHRvdWNoIC1mICRYQlBTX1NVQlBLR19J TlNUQUxMX0RPTkUKIGZpCmRpZmYgLS1naXQgYS9jb21tb24veGJwcy1zcmMvbGliZXhlYy94YnBz LXNyYy1wcmVwa2cuc2ggYi9jb21tb24veGJwcy1zcmMvbGliZXhlYy94YnBzLXNyYy1wcmVwa2cu c2gKaW5kZXggNGJlNDVmZDBhMTQuLjM0ZjkxYjNmNWY5IDEwMDc1NQotLS0gYS9jb21tb24veGJw cy1zcmMvbGliZXhlYy94YnBzLXNyYy1wcmVwa2cuc2gKKysrIGIvY29tbW9uL3hicHMtc3JjL2xp YmV4ZWMveGJwcy1zcmMtcHJlcGtnLnNoCkBAIC00Myw3ICs0Myw3IEBAIGlmIFsgIiRzb3VyY2Vw a2ciICE9ICIkUEtHTkFNRSIgXTsgdGhlbgogZmkKIAogc291cmNlX2ZpbGUgJFhCUFNfQ09NTU9O RElSL2Vudmlyb25tZW50L2J1aWxkLXN0eWxlLyR7YnVpbGRfc3R5bGV9LnNoCi1zZXR1cF9wa2df ZGVwZW5kcyAkcGtnbmFtZQorc2V0dXBfcGtnX2RlcGVuZHMgJHBrZ25hbWUgfHwgZXhpdCAxCiBy dW5fcGtnX2hvb2tzIHByZS1wa2cKIAogdG91Y2ggLWYgJFhCUFNfUFJFUEtHX0RPTkUKZGlmZiAt LWdpdCBhL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2J1aWxkX2RlcGVuZGVuY2llcy5zaCBiL2Nv bW1vbi94YnBzLXNyYy9zaHV0aWxzL2J1aWxkX2RlcGVuZGVuY2llcy5zaAppbmRleCA5YmYzN2Nk ZmM5ZC4uZmQzMjcwNjZlMTcgMTAwNjQ0Ci0tLSBhL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2J1 aWxkX2RlcGVuZGVuY2llcy5zaAorKysgYi9jb21tb24veGJwcy1zcmMvc2h1dGlscy9idWlsZF9k ZXBlbmRlbmNpZXMuc2gKQEAgLTEsOSArMSw5IEBACiAjIHZpbTogc2V0IHRzPTQgc3c9NCBldDoK ICMKIHNldHVwX3BrZ19kZXBlbmRzKCkgewotICAgIGxvY2FsIHBrZz0iJDEiIGogX3BrZ2RlcG5h bWUgX3BrZ2RlcCBfcnBrZ25hbWUgX2RlcG5hbWUgX2RlcHZlciBfcmVwbGFjZW1lbnQKKyAgICBs b2NhbCBwa2c9IiQxIiBvdXQ9IiQyIiBqIF9ycGtnbmFtZSBfZGVwbmFtZSBfcGtnbmFtZSBmb28g X2RlcHMKIAotICAgIGlmIFsgLW4gIiRwa2ciIF07IHRoZW4KKyAgICBpZiBbWyAkcGtnIF1dOyB0 aGVuCiAgICAgICAgICMgc3VicGtnCiAgICAgICAgIGlmIGRlY2xhcmUgLWYgJHtwa2d9X3BhY2th Z2UgPi9kZXYvbnVsbDsgdGhlbgogICAgICAgICAgICAgJHtwa2d9X3BhY2thZ2UKQEAgLTEzLDg1 ICsxMyw2NyBAQCBzZXR1cF9wa2dfZGVwZW5kcygpIHsKICAgICBmb3IgaiBpbiAke2RlcGVuZHN9 OyBkbwogICAgICAgICBfcnBrZ25hbWU9IiR7aiVcPyp9IgogICAgICAgICBfZGVwbmFtZT0iJHtq IypcP30iCi0gICAgICAgIF9wa2dkZXBuYW1lPSIkKCRYQlBTX1VIRUxQRVJfQ01EIGdldHBrZ2Rl cG5hbWUgJHtfZGVwbmFtZX0gMj4vZGV2L251bGwpIgotICAgICAgICBpZiBbIC16ICIke19wa2dk ZXBuYW1lfSIgXTsgdGhlbgotICAgICAgICAgICAgX3BrZ2RlcG5hbWU9IiQoJFhCUFNfVUhFTFBF Ul9DTUQgZ2V0cGtnbmFtZSAke19kZXBuYW1lfSAyPi9kZXYvbnVsbCkiCi0gICAgICAgIGZpCi0g ICAgICAgIGlmIFsgLXMgJHtYQlBTX0RJU1RESVJ9L2V0Yy92aXJ0dWFsIF07IHRoZW4KLSAgICAg ICAgICAgIF9yZXBsYWNlbWVudD0kKGVncmVwICJeJHtfcGtnZGVwbmFtZTotJHtfZGVwbmFtZX19 W1s6Ymxhbms6XV0iICR7WEJQU19ESVNURElSfS9ldGMvdmlydHVhbHxjdXQgLWQgJyAnIC1mMikK LSAgICAgICAgZWxpZiBbIC1zICR7WEJQU19ESVNURElSfS9ldGMvZGVmYXVsdHMudmlydHVhbCBd OyB0aGVuCi0gICAgICAgICAgICBfcmVwbGFjZW1lbnQ9JChlZ3JlcCAiXiR7X3BrZ2RlcG5hbWU6 LSR7X2RlcG5hbWV9fVtbOmJsYW5rOl1dIiAke1hCUFNfRElTVERJUn0vZXRjL2RlZmF1bHRzLnZp cnR1YWx8Y3V0IC1kICcgJyAtZjIpCi0gICAgICAgIGZpCi0gICAgICAgIGlmIFsgIiR7X3Jwa2du YW1lfSIgPSAidmlydHVhbCIgXTsgdGhlbgotICAgICAgICAgICAgaWYgWyAteiAiJHtfcmVwbGFj ZW1lbnR9IiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgbXNnX2Vycm9yICIkcGtndmVyOiBmYWls ZWQgdG8gcmVzb2x2ZSB2aXJ0dWFsIGRlcGVuZGVuY3kgZm9yICckaicgKG1pc3NpbmcgZnJvbSBl dGMvdmlydHVhbClcbiIKLSAgICAgICAgICAgIGZpCi0gICAgICAgICAgICBfcGtnZGVwbmFtZT0i JCgkWEJQU19VSEVMUEVSX0NNRCBnZXRwa2dkZXBuYW1lICR7X3JlcGxhY2VtZW50fSAyPi9kZXYv bnVsbCkiCi0gICAgICAgICAgICBpZiBbIC16ICIke19wa2dkZXBuYW1lfSIgXTsgdGhlbgotICAg ICAgICAgICAgICAgIF9wa2dkZXBuYW1lPSIkKCRYQlBTX1VIRUxQRVJfQ01EIGdldHBrZ25hbWUg JHtfcmVwbGFjZW1lbnR9IDI+L2Rldi9udWxsKSIKKyAgICAgICAgaWYgW1sgJHtfcnBrZ25hbWV9 ID09IHZpcnR1YWwgXV07IHRoZW4KKyAgICAgICAgICAgIF9wa2duYW1lPSQoeGJwcy11aGVscGVy IGdldHBrZ25hbWUgJF9kZXBuYW1lIDI+L2Rldi9udWxsKQorICAgICAgICAgICAgWyAteiAiJF9w a2duYW1lIiBdICYmIF9wa2duYW1lPSIkX2RlcG5hbWUiCisgICAgICAgICAgICBpZiBbIC1zICR7 WEJQU19ESVNURElSfS9ldGMvdmlydHVhbCBdOyB0aGVuCisgICAgICAgICAgICAgICAgZm9vPSQo ZWdyZXAgIl4ke19wa2duYW1lfVtbOmJsYW5rOl1dIiAke1hCUFNfRElTVERJUn0vZXRjL3ZpcnR1 YWx8Y3V0IC1kICcgJyAtZjIpCisgICAgICAgICAgICBlbGlmIFsgLXMgJHtYQlBTX0RJU1RESVJ9 L2V0Yy9kZWZhdWx0cy52aXJ0dWFsIF07IHRoZW4KKyAgICAgICAgICAgICAgICBmb289JChlZ3Jl cCAiXiR7X3BrZ25hbWV9W1s6Ymxhbms6XV0iICR7WEJQU19ESVNURElSfS9ldGMvZGVmYXVsdHMu dmlydHVhbHxjdXQgLWQgJyAnIC1mMikKICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICBpZiBb IC16ICIke19wa2dkZXBuYW1lfSIgXTsgdGhlbgotICAgICAgICAgICAgICAgIF9wa2dkZXBuYW1l PSIke19yZXBsYWNlbWVudH0+PTAiCisgICAgICAgICAgICBpZiBbIC16ICIkZm9vIiBdOyB0aGVu CisgICAgICAgICAgICAgICAgbXNnX2Vycm9yICIkcGtndmVyOiBmYWlsZWQgdG8gcmVzb2x2ZSB2 aXJ0dWFsIGRlcGVuZGVuY3kgZm9yICckaicgKG1pc3NpbmcgZnJvbSBldGMvdmlydHVhbClcbiIK ICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICBydW5fZGVwZW5kcys9IiAke19kZXBuYW1lfT8k e19wa2dkZXBuYW1lfSIKLSAgICAgICAgICAgICNlY2hvICJBZGRpbmcgZGVwZW5kZW5jeSB2aXJ0 dWFsOiAgJHtfZGVwbmFtZX0/JHtfcGtnZGVwbmFtZX0iCisgICAgICAgICAgICBfZGVwcys9IiRm b28gIgogICAgICAgICBlbHNlCi0gICAgICAgICAgICBpZiBbIC16ICIke19wa2dkZXBuYW1lfSIg XTsgdGhlbgotICAgICAgICAgICAgICAgIF9wa2dkZXA9IiR7X2RlcG5hbWV9Pj0wIgotICAgICAg ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIF9wa2dkZXA9IiR7X2RlcG5hbWV9IgorICAgICAg ICAgICAgZm9vPSIkKCRYQlBTX1VIRUxQRVJfQ01EIGdldHBrZ2RlcG5hbWUgJHtfZGVwbmFtZX0g Mj4vZGV2L251bGwpIgorICAgICAgICAgICAgaWYgWyAteiAiJGZvbyIgXTsgdGhlbgorICAgICAg ICAgICAgICAgIGZvbz0iJCgkWEJQU19VSEVMUEVSX0NNRCBnZXRwa2duYW1lICR7X2RlcG5hbWV9 IDI+L2Rldi9udWxsKSIKKyAgICAgICAgICAgICAgICBbIC16ICIkZm9vIiBdICYmIGZvbz0iJHtf ZGVwbmFtZX0iCiAgICAgICAgICAgICBmaQotICAgICAgICAgICAgcnVuX2RlcGVuZHMrPSIgJHtf cGtnZGVwfSIKKyAgICAgICAgICAgIF9kZXBzKz0iJGZvbyAiCiAgICAgICAgIGZpCisgICAgICAg IHJ1bl9kZXBlbmRzKz0iJHtfZGVwbmFtZX0gIgogICAgIGRvbmUKLSAgICBmb3IgaiBpbiAke2hv c3RtYWtlZGVwZW5kc307IGRvCi0gICAgICAgIF9kZXBuYW1lPSIke2olXD8qfSIKLSAgICAgICAg X2RlcHZlcj0kKHNyY3BrZ19nZXRfdmVyc2lvbiAke19kZXBuYW1lfSkgfHwgZXhpdCAkPwotICAg ICAgICBob3N0X2J1aWxkX2RlcGVuZHMrPSIgJHtfZGVwbmFtZX0tJHtfZGVwdmVyfSIKLSAgICBk b25lCi0gICAgaWYgWyAtbiAiJFhCUFNfQ0hFQ0tfUEtHUyIgXTsgdGhlbgotICAgICAgICBmb3Ig aiBpbiAke2NoZWNrZGVwZW5kc307IGRvCi0gICAgICAgICAgICBfZGVwbmFtZT0iJHtqJVw/Kn0i Ci0gICAgICAgICAgICBfZGVwdmVyPSQoc3JjcGtnX2dldF92ZXJzaW9uICR7X2RlcG5hbWV9KSB8 fCBleGl0ICQ/Ci0gICAgICAgICAgICBob3N0X2NoZWNrX2RlcGVuZHMrPSIgJHtfZGVwbmFtZX0t JHtfZGVwdmVyfSIKLSAgICAgICAgZG9uZQotICAgIGZpCi0gICAgZm9yIGogaW4gJHttYWtlZGVw ZW5kc307IGRvCi0gICAgICAgIF9kZXBuYW1lPSIke2olXD8qfSIKLSAgICAgICAgX2RlcHZlcj0k KHNyY3BrZ19nZXRfdmVyc2lvbiAke19kZXBuYW1lfSkgfHwgZXhpdCAkPwotICAgICAgICBidWls ZF9kZXBlbmRzKz0iICR7X2RlcG5hbWV9LSR7X2RlcHZlcn0iCi0gICAgZG9uZQorCisgICAgW1sg JG91dCAmJiAkX2RlcHMgXV0gJiYgZWNobyAiJF9kZXBzIgorICAgIHJldHVybiAwCiB9CiAKLSMg SW5zdGFsbCBhIHJlcXVpcmVkIHBhY2thZ2UgZGVwZW5kZW5jeSwgbGlrZToKICMKLSMJeGJwcy1p bnN0YWxsIC1JQXkgPHBrZ25hbWU+CisjIEluc3RhbGwgcmVxdWlyZWQgcGFja2FnZSBkZXBlbmRl bmNpZXMsIGxpa2U6CisjCisjCXhicHMtaW5zdGFsbCAtQUl5IDxwa2dzPgorIworIyAgICAgICAt QSBhdXRvbWF0aWMgbW9kZQorIyAgICAgICAtSSB0byBpZ25vcmUgZmlsZSBjb25mbGljdHMKKyMg ICAgICAgLXkgeWVzCiAjCiAjIFJldHVybnMgMCBpZiBwYWNrYWdlIGFscmVhZHkgaW5zdGFsbGVk IG9yIGluc3RhbGxlZCBzdWNjZXNzZnVsbHkuCiAjIEFueSBvdGhlciBlcnJvciBudW1iZXIgb3Ro ZXJ3aXNlLgogIworIyBTVUNDRVNTICAoMCk6IHBhY2thZ2UgaW5zdGFsbGVkIHN1Y2Nlc3NmdWxs eS4KKyMgRU5PRU5UICAgKDIpOiBwYWNrYWdlIG1pc3NpbmcgaW4gcmVwb3NpdG9yaWVzLgorIyBF TlhJTyAgICAoNik6IHBhY2thZ2UgZGVwZW5kcyBvbiBpbnZhbGlkIGRlcGVuZGVuY2llcy4KKyMg RUFHQUlOICAoMTEpOiBwYWNrYWdlIGNvbmZsaWN0cy4KKyMgRUVYSVNUICAoMTcpOiBmaWxlIGNv bmZsaWN0cyBpbiB0cmFuc2FjdGlvbiAoWEJQU19GTEFHX0lHTk9SRV9GSUxFX0NPTkZMSUNUUyB1 bnNldCkKKyMgRU5PREVWICAoMTkpOiBwYWNrYWdlIGRlcGVuZHMgb24gbWlzc2luZyBkZXBlbmRl bmNpZXMuCisjIEVOT1RTVVAgKDk1KTogbm8gcmVwb3NpdG9yaWVzIHJlZ2lzdGVyZWQuCisjCiBp bnN0YWxsX3BrZ19mcm9tX3JlcG9zKCkgewotICAgIGxvY2FsIHBrZz0iJDEiIGNyb3NzPSIkMiIg cnZhbD0gdG1wbG9nZj0KKyAgICBsb2NhbCBjcm9zcz0iJDEiIHJ2YWwgdG1wbG9nZiBjbWQKKyAg ICBzaGlmdAorCisgICAgWyAkIyAtZXEgMCBdICYmIHJldHVybiAwCiAKICAgICBta2RpciAtcCAk WEJQU19TVEFURURJUgogICAgIHRtcGxvZ2Y9JHtYQlBTX1NUQVRFRElSfS94YnBzXyR7WEJQU19U QVJHRVRfTUFDSElORX1fYmRlcF8ke3BrZ30ubG9nCiAKLSAgICBpZiBbIC1uICIkY3Jvc3MiIF07 IHRoZW4KLSAgICAgICAgJFhCUFNfSU5TVEFMTF9YQ01EIC1JQXkgIiRwa2ciID4kdG1wbG9nZiAy PiYxCi0gICAgZWxzZQotICAgICAgICAkWEJQU19JTlNUQUxMX0NNRCAtSUF5ICIkcGtnIiA+JHRt cGxvZ2YgMj4mMQotICAgIGZpCisgICAgY21kPSRYQlBTX0lOU1RBTExfQ01ECisgICAgW1sgJGNy b3NzIF1dICYmIGNtZD0kWEJQU19JTlNUQUxMX1hDTUQKKyAgICAkY21kICR7WEJQU19TS0lQX1JF TU9URVJFUE9TOistaX0gLUFJeSAiJEAiID4kdG1wbG9nZiAyPiYxCiAgICAgcnZhbD0kPwotICAg ICMgeGJwcy1pbnN0YWxsIGNhbiByZXR1cm46Ci0gICAgIwotICAgICMgU1VDQ0VTUyAgKDApOiBw YWNrYWdlIGluc3RhbGxlZCBzdWNjZXNzZnVsbHkuCi0gICAgIyBFTk9FTlQgICAoMik6IHBhY2th Z2UgbWlzc2luZyBpbiByZXBvc2l0b3JpZXMuCi0gICAgIyBFTlhJTyAgICAoNik6IHBhY2thZ2Ug ZGVwZW5kcyBvbiBpbnZhbGlkIGRlcGVuZGVuY2llcy4KLSAgICAjIEVBR0FJTiAgKDExKTogcGFj a2FnZSBjb25mbGljdHMuCi0gICAgIyBFRVhJU1QgICgxNyk6IGZpbGUgY29uZmxpY3RzIGluIHRy YW5zYWN0aW9uIChYQlBTX0ZMQUdfSUdOT1JFX0ZJTEVfQ09ORkxJQ1RTIHVuc2V0KQotICAgICMg RU5PREVWICAoMTkpOiBwYWNrYWdlIGRlcGVuZHMgb24gbWlzc2luZyBkZXBlbmRlbmNpZXMuCi0g ICAgIyBFTk9UU1VQICg5NSk6IG5vIHJlcG9zaXRvcmllcyByZWdpc3RlcmVkLgotICAgICMKKwog ICAgIGNhc2UgIiRydmFsIiBpbgogICAgICAgICAwKSAjIHN1Y2Nlc3MsIGNoZWNrIGlmIHRoZXJl IGFyZSBlcnJvcnMuCiAgICAgICAgICAgIGVycm9ydG1wZj0kKG1rdGVtcCkgfHwgZXhpdCAxCkBA IC0xMTEsMzkgKzkzLDYgQEAgaW5zdGFsbF9wa2dfZnJvbV9yZXBvcygpIHsKICAgICByZXR1cm4g JHJ2YWwKIH0KIAotIwotIyBSZXR1cm5zIDAgaWYgcGtncGF0dGVybiBpbiAkMSBpcyBtYXRjaGVk IGFnYWluc3QgY3VycmVudCBpbnN0YWxsZWQKLSMgcGFja2FnZSwgMSBpZiBubyBtYXRjaCBhbmQg MiBpZiBub3QgaW5zdGFsbGVkLgotIwotY2hlY2tfcGtnZGVwX21hdGNoZWQoKSB7Ci0gICAgbG9j YWwgcGtnPSIkMSIgY2hlY2t2ZXI9IiQyIiBjcm9zcz0iJDMiIHVoZWxwZXI9IHBrZ249IGl2ZXI9 Ci0KLSAgICBbICIkYnVpbGRfc3R5bGUiID0gIm1ldGEiIF0gJiYgcmV0dXJuIDIKLSAgICBbIC16 ICIkcGtnIiBdICYmIHJldHVybiAyNTUKLQotICAgIHBrZ249IiQoJFhCUFNfVUhFTFBFUl9DTUQg Z2V0cGtnZGVwbmFtZSAke3BrZ30gMj4vZGV2L251bGwpIgotICAgIGlmIFsgLXogIiRwa2duIiBd OyB0aGVuCi0gICAgICAgIHBrZ249IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtnbmFtZSAke3Br Z30gMj4vZGV2L251bGwpIgotICAgIGZpCi0gICAgWyAteiAiJHBrZ24iIF0gJiYgcmV0dXJuIDI1 NQotCi0gICAgaWYgWyAtbiAiJGNyb3NzIiBdOyB0aGVuCi0gICAgICAgIHVoZWxwZXI9IiRYQlBT X1VIRUxQRVJfWENNRCIKLSAgICBlbHNlCi0gICAgICAgIHVoZWxwZXI9IiRYQlBTX1VIRUxQRVJf Q01EIgotICAgIGZpCi0KLSAgICBpdmVyPSIkKCR1aGVscGVyICRjaGVja3ZlciAkcGtnbikiCi0g ICAgaWYgWyAkPyAtZXEgMCAtYSAtbiAiJGl2ZXIiIF07IHRoZW4KLSAgICAgICAgJFhCUFNfVUhF TFBFUl9DTUQgcGtnbWF0Y2ggIiR7cGtnbn0tJHtpdmVyfSIgIiR7cGtnfSIKLSAgICAgICAgWyAk PyAtZXEgMSBdICYmIHJldHVybiAwCi0gICAgZWxzZQotICAgICAgICByZXR1cm4gMgotICAgIGZp Ci0KLSAgICByZXR1cm4gMQotfQotCiAjCiAjIFJldHVybnMgMCBpZiBwa2dwYXR0ZXJuIGluICQx IGlzIGluc3RhbGxlZCBhbmQgZ3JlYXRlciB0aGFuIGN1cnJlbnQKICMgaW5zdGFsbGVkIHBhY2th Z2UsIG90aGVyd2lzZSAxLgpAQCAtMTU2LDEyICsxMDUsOCBAQCBjaGVja19pbnN0YWxsZWRfcGtn KCkgewogICAgIHBrZ249IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtnbmFtZSAke3BrZ30pIgog ICAgIFsgLXogIiRwa2duIiBdICYmIHJldHVybiAyCiAKLSAgICBpZiBbIC1uICIkY3Jvc3MiIF07 IHRoZW4KLSAgICAgICAgdWhlbHBlcj0iJFhCUFNfVUhFTFBFUl9YQ01EIgotICAgIGVsc2UKLSAg ICAgICAgdWhlbHBlcj0iJFhCUFNfVUhFTFBFUl9DTUQiCi0gICAgZmkKLQorICAgIHVoZWxwZXI9 JFhCUFNfVUhFTFBFUl9DTUQKKyAgICBbWyAkY3Jvc3MgXV0gJiYgdWhlbHBlcj0kWEJQU19VSEVM UEVSX1hDTUQKICAgICBpdmVyPSIkKCR1aGVscGVyIHZlcnNpb24gJHBrZ24pIgogICAgIGlmIFsg JD8gLWVxIDAgLWEgLW4gIiRpdmVyIiBdOyB0aGVuCiAgICAgICAgICRYQlBTX0NNUFZFUl9DTUQg IiR7cGtnbn0tJHtpdmVyfSIgIiR7cGtnfSIKQEAgLTE3MSw0MiArMTE2LDIwIEBAIGNoZWNrX2lu c3RhbGxlZF9wa2coKSB7CiAgICAgcmV0dXJuIDEKIH0KIAotc3JjcGtnX2dldF92ZXJzaW9uKCkg ewotICAgIGxvY2FsIHBrZz0iJDEiCi0gICAgIyBSdW4gdGhpcyBpbiBhIHN1Yi1zaGVsbCB0byBh dm9pZCBwb2xsdXRpbmcgb3VyIGVudi4KLSAgICAoCi0gICAgdW5zZXQgWEJQU19CSU5QS0dfRVhJ U1RTCi0gICAgc2V0dXBfcGtnICRwa2cgfHwgZXhpdCAkPwotICAgIGVjaG8gIiR7dmVyc2lvbn1f JHtyZXZpc2lvbn0iCi0gICAgKSB8fCBtc2dfZXJyb3IgIiRwa2d2ZXI6IGZhaWxlZCB0byB0cmFu c2Zvcm0gZGVwZW5kZW5jeSAkcGtnXG4iCi19Ci0KLXNyY3BrZ19nZXRfcGtndmVyKCkgewotICAg IGxvY2FsIHBrZz0iJDEiCi0gICAgIyBSdW4gdGhpcyBpbiBhIHN1Yi1zaGVsbCB0byBhdm9pZCBw b2xsdXRpbmcgb3VyIGVudi4KLSAgICAoCi0gICAgdW5zZXQgWEJQU19CSU5QS0dfRVhJU1RTCi0g ICAgc2V0dXBfcGtnICRwa2cgfHwgZXhpdCAkPwotICAgIGVjaG8gIiR7c291cmNlcGtnfS0ke3Zl cnNpb259XyR7cmV2aXNpb259IgotICAgICkgfHwgbXNnX2Vycm9yICIkcGtndmVyOiBmYWlsZWQg dG8gdHJhbnNmb3JtIGRlcGVuZGVuY3kgJHBrZ1xuIgotfQotCiAjCi0jIEluc3RhbGxzIGFsbCBk ZXBlbmRlbmNpZXMgcmVxdWlyZWQgYnkgYSBwYWNrYWdlLgorIyBCdWlsZCBhbGwgZGVwZW5kZW5j aWVzIHJlcXVpcmVkIHRvIGJ1aWxkIGFuZCBydW4uCiAjCiBpbnN0YWxsX3BrZ19kZXBzKCkgewog ICAgIGxvY2FsIHBrZz0iJDEiIHRhcmdldHBrZz0iJDIiIHRhcmdldD0iJDMiIGNyb3NzPSIkNCIg Y3Jvc3NfcHJlcGFyZT0iJDUiCi0gICAgbG9jYWwgcnZhbCBfcmVhbHBrZyBfdnBrZyBfY3VycGtn IGN1cnBrZ2RlcG5hbWUgcGtnbiBpdmVyCi0gICAgbG9jYWwgaSBqIGZvdW5kIHJ1bmRlcCByZXBv IHN0eWxlCisgICAgbG9jYWwgX3Zwa2cgY3VycGtnZGVwbmFtZQorICAgIGxvY2FsIGkgaiBmb3Vu ZCBzdHlsZQogCi0gICAgbG9jYWwgLWEgaG9zdF9iaW5wa2dfZGVwcyBjaGVja19iaW5wa2dfZGVw cyBiaW5wa2dfZGVwcwotICAgIGxvY2FsIC1hIGhvc3RfbWlzc2luZ19kZXBzIGNoZWNrX21pc3Np bmdfZGVwcyBtaXNzaW5nX2RlcHMgbWlzc2luZ19yZGVwcworICAgIGxvY2FsIC1hIGhvc3RfYmlu cGtnX2RlcHMgYmlucGtnX2RlcHMKKyAgICBsb2NhbCAtYSBob3N0X21pc3NpbmdfZGVwcyBtaXNz aW5nX2RlcHMgbWlzc2luZ19yZGVwcwogCiAgICAgWyAteiAiJHBrZ25hbWUiIF0gJiYgcmV0dXJu IDIKLQotICAgIHNldHVwX3BrZ19kZXBlbmRzCi0KLSAgICBbIC1uICIkYnVpbGRfc3R5bGUiIF0g JiYgc3R5bGU9IiBbJGJ1aWxkX3N0eWxlXSIKKyAgICBbIC16ICIkWEJQU19DSEVDS19QS0dTIiBd ICYmIHVuc2V0IGNoZWNrZGVwZW5kcworICAgIFtbICRidWlsZF9zdHlsZSBdXSAmJiBzdHlsZT0i IFskYnVpbGRfc3R5bGVdIgogCiAgICAgZm9yIHMgaW4gJGJ1aWxkX2hlbHBlcjsgZG8KICAgICAg ICAgc3R5bGUrPSIgWyRzXSIKQEAgLTIxOCwxOTcgKzE0MSwxNTEgQEAgaW5zdGFsbF9wa2dfZGVw cygpIHsKICAgICAgICAgbXNnX25vcm1hbCAiJHBrZ3ZlcjogYnVpbGRpbmcke3N0eWxlfSAuLi5c biIKICAgICBmaQogCi0gICAgaWYgWyAteiAiJGJ1aWxkX2RlcGVuZHMiIC1hIC16ICIkaG9zdF9i dWlsZF9kZXBlbmRzIiAtYSAteiAiJGhvc3RfY2hlY2tfZGVwZW5kcyIgLWEgLXogIiRydW5fZGVw ZW5kcyIgXTsgdGhlbgotICAgICAgICByZXR1cm4gMAotICAgIGZpCi0KICAgICAjCiAgICAgIyBI b3N0IGJ1aWxkIGRlcGVuZGVuY2llcy4KICAgICAjCi0gICAgZm9yIGkgaW4gJHtob3N0X2J1aWxk X2RlcGVuZHN9OyBkbwotICAgICAgICBfcmVhbHBrZz0kKCRYQlBTX1VIRUxQRVJfQ01EIGdldHBr Z25hbWUgIiRpIiAyPi9kZXYvbnVsbCkKLSAgICAgICAgY2hlY2tfcGtnZGVwX21hdGNoZWQgIiRp IiB2ZXJzaW9uCi0gICAgICAgIGxvY2FsIHJ2YWw9JD8KLSAgICAgICAgaWYgWyAkcnZhbCAtZXEg MCBdOyB0aGVuCi0gICAgICAgICAgICBlY2hvICIgICBbaG9zdF0gJHtpfTogaW5zdGFsbGVkLiIK LSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIGVsaWYgWyAkcnZhbCAtZXEgMSBdOyB0aGVu Ci0gICAgICAgICAgICBpdmVyPSQoJFhCUFNfVUhFTFBFUl9DTUQgdmVyc2lvbiAke19yZWFscGtn fSkKLSAgICAgICAgICAgIGlmIFsgJD8gLWVxIDAgLWEgLW4gIiRpdmVyIiBdOyB0aGVuCi0gICAg ICAgICAgICAgICAgZWNobyAiICAgW2hvc3RdICR7aX06IGluc3RhbGxlZCAkaXZlciAodmlydHVh bHBrZykuIgorICAgIGlmIFtbICR7aG9zdG1ha2VkZXBlbmRzfSBdXTsgdGhlbgorICAgICAgICB3 aGlsZSByZWFkIC1yIF9kZXBuYW1lIF9kZXByZXBvdmVyIF9kZXB2ZXIgX3N1YnBrZyBfcmVwb3Vy bDsgZG8KKyAgICAgICAgICAgIF92cGtnPSR7X3N1YnBrZ30tJHtfZGVwdmVyfQorICAgICAgICAg ICAgIyBiaW5hcnkgcGFja2FnZSBmb3VuZCBpbiBhIHJlcG8KKyAgICAgICAgICAgIGlmIFtbICR7 X2RlcHZlcn0gPT0gJHtfZGVwcmVwb3Zlcn0gXV07IHRoZW4KKyAgICAgICAgICAgICAgICBlY2hv ICIgICBbaG9zdF0gJHtfdnBrZ306IGZvdW5kICgke19yZXBvdXJsfSkiCisgICAgICAgICAgICAg ICAgaG9zdF9iaW5wa2dfZGVwcys9KCIke192cGtnfSIpCiAgICAgICAgICAgICAgICAgY29udGlu dWUKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBlY2hvICIgICBbaG9zdF0gJHtp fTogdW5yZXNvbHZlZCBidWlsZCBkZXBlbmRlbmN5ISIKLSAgICAgICAgICAgICAgICByZXR1cm4g MQogICAgICAgICAgICAgZmkKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVwbz0kKCRYQlBT X1FVRVJZX0NNRCAtUiAtcHJlcG9zaXRvcnkgJHtpfSAyPi9kZXYvbnVsbCkKLSAgICAgICAgICAg IGlmIFsgLW4gIiR7cmVwb30iIF07IHRoZW4KLSAgICAgICAgICAgICAgICBlY2hvICIgICBbaG9z dF0gJHtpfTogZm91bmQgKCRyZXBvKSIKLSAgICAgICAgICAgICAgICBob3N0X2JpbnBrZ19kZXBz Kz0oIiR7aX0iKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBlbHNlCi0g ICAgICAgICAgICAgICAgZWNobyAiICAgW2hvc3RdICR7aX06IG5vdCBmb3VuZC4iCi0gICAgICAg ICAgICAgICAgaWYgWyAteiAiJGNyb3NzIiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgIGlm IFsgIiR7X3JlYWxwa2d9IiA9ICIkdGFyZ2V0cGtnIiBdOyB0aGVuCi0gICAgICAgICAgICAgICAg ICAgICAgICBtc2dfZXJyb3IgIiR7cGtnfTogW2hvc3RdIGJ1aWxkIGxvb3AgZGV0ZWN0ZWQ6ICR7 X3JlYWxwa2d9IDwtPiAke3RhcmdldHBrZ30gW2RlcGVuZHMgb24gaXRzZWxmXVxuIgotICAgICAg ICAgICAgICAgICAgICBlbGlmIFsgIiR7X3JlYWxwa2d9IiA9ICIkcGtnIiBdOyB0aGVuCi0gICAg ICAgICAgICAgICAgICAgICAgICBtc2dfZXJyb3IgIiR7cGtnfTogW2hvc3RdIGJ1aWxkIGxvb3Ag ZGV0ZWN0ZWQ6ICRwa2cgPC0+ICR7X3JlYWxwa2d9XG4iCisgICAgICAgICAgICAjIGJpbmFyeSBw YWNrYWdlIG5vdCBmb3VuZAorICAgICAgICAgICAgaWYgW1sgJF9kZXBuYW1lICE9ICRfc3VicGtn IF1dOyB0aGVuCisgICAgICAgICAgICAgICAgIyBzdWJwa2csIGNoZWNrIGlmIGl0J3MgYSBzdWJw a2cgb2YgaXRzZWxmCisgICAgICAgICAgICAgICAgZm91bmQ9MAorICAgICAgICAgICAgICAgIGZv ciBmIGluICR7c3VicGFja2FnZXN9OyBkbworICAgICAgICAgICAgICAgICAgICBpZiBbWyAke19z dWJwa2d9ID09ICR7Zn0gXV07IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kPTEK KyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICAgICAgIGZpCisg ICAgICAgICAgICAgICAgZG9uZQorICAgICAgICAgICAgICAgIGlmIFtbICRmb3VuZCAtZXEgMSBd XTsgdGhlbgorICAgICAgICAgICAgICAgICAgICBlY2hvICIgICBbaG9zdF0gJHtfdnBrZ306IG5v dCBmb3VuZCAoc3VicGtnLCBpZ25vcmVkKSIKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAg ICAgICAgICAgICAgIGVjaG8gIiAgIFtob3N0XSAke192cGtnfTogbm90IGZvdW5kIgorICAgICAg ICAgICAgICAgICAgICBob3N0X21pc3NpbmdfZGVwcys9KCIkX3Zwa2ciKQogICAgICAgICAgICAg ICAgIGZpCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZWNobyAiICAgW2hvc3Rd ICR7X3Zwa2d9OiBub3QgZm91bmQiCisgICAgICAgICAgICAgICAgaG9zdF9taXNzaW5nX2RlcHMr PSgiJF92cGtnIikKICAgICAgICAgICAgIGZpCi0gICAgICAgIGZpCi0gICAgICAgIGhvc3RfbWlz c2luZ19kZXBzKz0oIiR7aX0iKQotICAgIGRvbmUKKyAgICAgICAgZG9uZSA8IDwoJFhCUFNfQ0hF Q0tWRVJTX0NNRCAke1hCUFNfU0tJUF9SRU1PVEVSRVBPUzorLWl9IC1EICRYQlBTX0RJU1RESVIg LXNtICR7aG9zdG1ha2VkZXBlbmRzfSkKKyAgICBmaQogCiAgICAgIwogICAgICMgSG9zdCBjaGVj ayBkZXBlbmRlbmNpZXMuCiAgICAgIwotICAgIGZvciBpIGluICR7aG9zdF9jaGVja19kZXBlbmRz fTsgZG8KLSAgICAgICAgX3JlYWxwa2c9IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtnbmFtZSAk aSAyPi9kZXYvbnVsbCkiCi0gICAgICAgIGNoZWNrX3BrZ2RlcF9tYXRjaGVkICIkaSIgdmVyc2lv bgotICAgICAgICBsb2NhbCBydmFsPSQ/Ci0gICAgICAgIGlmIFsgJHJ2YWwgLWVxIDAgXTsgdGhl bgotICAgICAgICAgICAgZWNobyAiICAgW2NoZWNrXSAke2l9OiBpbnN0YWxsZWQuIgotICAgICAg ICAgICAgY29udGludWUKLSAgICAgICAgZWxpZiBbICRydmFsIC1lcSAxIF07IHRoZW4KLSAgICAg ICAgICAgIGl2ZXI9JCgkWEJQU19VSEVMUEVSX0NNRCB2ZXJzaW9uICR7X3JlYWxwa2d9KQotICAg ICAgICAgICAgaWYgWyAkPyAtZXEgMCAtYSAtbiAiJGl2ZXIiIF07IHRoZW4KLSAgICAgICAgICAg ICAgICBlY2hvICIgICBbY2hlY2tdICR7aX06IGluc3RhbGxlZCAkaXZlciAodmlydHVhbHBrZyku IgorICAgIGlmIFtbICR7Y2hlY2tkZXBlbmRzfSBdXSAmJiBbWyAkWEJQU19DSEVDS19QS0dTIF1d OyB0aGVuCisgICAgICAgIHdoaWxlIHJlYWQgLXIgX2RlcG5hbWUgX2RlcHJlcG92ZXIgX2RlcHZl ciBfc3VicGtnIF9yZXBvdXJsOyBkbworICAgICAgICAgICAgX3Zwa2c9JHtfc3VicGtnfS0ke19k ZXB2ZXJ9CisgICAgICAgICAgICAjIGJpbmFyeSBwYWNrYWdlIGZvdW5kIGluIGEgcmVwbworICAg ICAgICAgICAgaWYgW1sgJHtfZGVwdmVyfSA9PSAke19kZXByZXBvdmVyfSBdXTsgdGhlbgorICAg ICAgICAgICAgICAgIGVjaG8gIiAgIFtjaGVja10gJHtfdnBrZ306IGZvdW5kICgke19yZXBvdXJs fSkiCisgICAgICAgICAgICAgICAgaG9zdF9iaW5wa2dfZGVwcys9KCIke192cGtnfSIpCiAgICAg ICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBl Y2hvICIgICBbY2hlY2tdICR7aX06IHVucmVzb2x2ZWQgY2hlY2sgZGVwZW5kZW5jeSEiCi0gICAg ICAgICAgICAgICAgcmV0dXJuIDEKICAgICAgICAgICAgIGZpCi0gICAgICAgIGVsc2UKLSAgICAg ICAgICAgIHJlcG89JCgkWEJQU19RVUVSWV9DTUQgLVIgLXByZXBvc2l0b3J5ICR7aX0gMj4vZGV2 L251bGwpCi0gICAgICAgICAgICBpZiBbIC1uICIke3JlcG99IiBdOyB0aGVuCi0gICAgICAgICAg ICAgICAgZWNobyAiICAgW2NoZWNrXSAke2l9OiBmb3VuZCAoJHJlcG8pIgotICAgICAgICAgICAg ICAgIGNoZWNrX2JpbnBrZ19kZXBzKz0oIiR7aX0iKQotICAgICAgICAgICAgICAgIGNvbnRpbnVl Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZWNobyAiICAgW2NoZWNrXSAke2l9 OiBub3QgZm91bmQuIgotICAgICAgICAgICAgICAgIGlmIFsgIiR7X3JlYWxwa2d9IiA9ICIkdGFy Z2V0cGtnIiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgIG1zZ19lcnJvciAiJHtwa2d9OiBb Y2hlY2tdIGJ1aWxkIGxvb3AgZGV0ZWN0ZWQ6ICR7X3JlYWxwa2d9IDwtPiAke3RhcmdldHBrZ30g W2RlcGVuZHMgb24gaXRzZWxmXSFcbiIKLSAgICAgICAgICAgICAgICBlbGlmIFsgIiR7X3JlYWxw a2d9IiA9ICIkcGtnIiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgIG1zZ19lcnJvciAiJHtw a2d9OiBbY2hlY2tdIGJ1aWxkIGxvb3AgZGV0ZWN0ZWQ6ICRwa2cgPC0+ICR7X3JlYWxwa2d9XG4i CisgICAgICAgICAgICAjIGJpbmFyeSBwYWNrYWdlIG5vdCBmb3VuZAorICAgICAgICAgICAgaWYg W1sgJF9kZXBuYW1lICE9ICRfc3VicGtnIF1dOyB0aGVuCisgICAgICAgICAgICAgICAgIyBzdWJw a2csIGNoZWNrIGlmIGl0J3MgYSBzdWJwa2cgb2YgaXRzZWxmCisgICAgICAgICAgICAgICAgZm91 bmQ9MAorICAgICAgICAgICAgICAgIGZvciBmIGluICR7c3VicGFja2FnZXN9OyBkbworICAgICAg ICAgICAgICAgICAgICBpZiBbWyAke19zdWJwa2d9ID09ICR7Zn0gXV07IHRoZW4KKyAgICAgICAg ICAgICAgICAgICAgICAgIGZvdW5kPTEKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisg ICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgZG9uZQorICAgICAgICAgICAg ICAgIGlmIFtbICRmb3VuZCAtZXEgMSBdXTsgdGhlbgorICAgICAgICAgICAgICAgICAgICBlY2hv ICIgICBbY2hlY2tdICR7X3Zwa2d9OiBub3QgZm91bmQgKHN1YnBrZywgaWdub3JlZCkiCisgICAg ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBlY2hvICIgICBbY2hlY2tdICR7 X3Zwa2d9OiBub3QgZm91bmQiCisgICAgICAgICAgICAgICAgICAgIGhvc3RfbWlzc2luZ19kZXBz Kz0oIiRfdnBrZyIpCiAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgIGVsc2UKKyAgICAg ICAgICAgICAgICBlY2hvICIgICBbY2hlY2tdICR7X3Zwa2d9OiBub3QgZm91bmQiCisgICAgICAg ICAgICAgICAgaG9zdF9taXNzaW5nX2RlcHMrPSgiJF92cGtnIikKICAgICAgICAgICAgIGZpCi0g ICAgICAgIGZpCi0gICAgICAgIGNoZWNrX21pc3NpbmdfZGVwcys9KCIke2l9IikKLSAgICBkb25l Ci0KKyAgICAgICAgZG9uZSA8IDwoJFhCUFNfQ0hFQ0tWRVJTX0NNRCAke1hCUFNfU0tJUF9SRU1P VEVSRVBPUzorLWl9IC1EICRYQlBTX0RJU1RESVIgLXNtICR7Y2hlY2tkZXBlbmRzfSkKKyAgICBm aQogCiAgICAgIwogICAgICMgVGFyZ2V0IGJ1aWxkIGRlcGVuZGVuY2llcy4KICAgICAjCi0gICAg Zm9yIGkgaW4gJHtidWlsZF9kZXBlbmRzfTsgZG8KLSAgICAgICAgX3JlYWxwa2c9IiQoJFhCUFNf VUhFTFBFUl9DTUQgZ2V0cGtnbmFtZSAkaSAyPi9kZXYvbnVsbCkiCi0gICAgICAgICMgQ2hlY2sg aWYgZGVwZW5kZW5jeSBpcyBhIHN1YnBrZywgaWYgaXQgaXMsIGlnbm9yZSBpdC4KLSAgICAgICAg dW5zZXQgZm91bmQKLSAgICAgICAgZm9yIGogaW4gJHtzdWJwYWNrYWdlc307IGRvCi0gICAgICAg ICAgICBbICIkaiIgPSAiJHtfcmVhbHBrZ30iIF0gJiYgZm91bmQ9MSAmJiBicmVhawotICAgICAg ICBkb25lCi0gICAgICAgIFsgLW4gIiRmb3VuZCIgXSAmJiBjb250aW51ZQotICAgICAgICBjaGVj a19wa2dkZXBfbWF0Y2hlZCAiJHtpfSIgdmVyc2lvbiAkY3Jvc3MKLSAgICAgICAgbG9jYWwgcnZh bD0kPwotICAgICAgICBpZiBbICRydmFsIC1lcSAwIF07IHRoZW4KLSAgICAgICAgICAgIGVjaG8g IiAgIFt0YXJnZXRdICR7aX06IGluc3RhbGxlZC4iCi0gICAgICAgICAgICBjb250aW51ZQotICAg ICAgICBlbGlmIFsgJHJ2YWwgLWVxIDEgXTsgdGhlbgotICAgICAgICAgICAgaXZlcj0kKCRYQlBT X1VIRUxQRVJfWENNRCB2ZXJzaW9uICR7X3JlYWxwa2d9KQotICAgICAgICAgICAgaWYgWyAkPyAt ZXEgMCAtYSAtbiAiJGl2ZXIiIF07IHRoZW4KLSAgICAgICAgICAgICAgICBlY2hvICIgICBbdGFy Z2V0XSAke2l9OiBpbnN0YWxsZWQgJGl2ZXIgKHZpcnR1YWxwa2cpLiIKKyAgICBpZiBbWyAke21h a2VkZXBlbmRzfSBdXTsgdGhlbgorICAgICAgICB3aGlsZSByZWFkIC1yIF9kZXBuYW1lIF9kZXBy ZXBvdmVyIF9kZXB2ZXIgX3N1YnBrZyBfcmVwb3VybDsgZG8KKyAgICAgICAgICAgIF92cGtnPSR7 X3N1YnBrZ30tJHtfZGVwdmVyfQorICAgICAgICAgICAgIyBiaW5hcnkgcGFja2FnZSBmb3VuZCBp biBhIHJlcG8KKyAgICAgICAgICAgIGlmIFtbICR7X2RlcHZlcn0gPT0gJHtfZGVwcmVwb3Zlcn0g XV07IHRoZW4KKyAgICAgICAgICAgICAgICBlY2hvICIgICBbdGFyZ2V0XSAke192cGtnfTogZm91 bmQgKCR7X3JlcG91cmx9KSIKKyAgICAgICAgICAgICAgICBiaW5wa2dfZGVwcys9KCIke192cGtn fSIpCiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAg ICAgICAgICBlY2hvICIgICBbdGFyZ2V0XSAke2l9OiB1bnJlc29sdmVkIGJ1aWxkIGRlcGVuZGVu Y3khIgotICAgICAgICAgICAgICAgIHJldHVybiAxCiAgICAgICAgICAgICBmaQotICAgICAgICBl bHNlCi0gICAgICAgICAgICByZXBvPSQoJFhCUFNfUVVFUllfWENNRCAtUiAtcHJlcG9zaXRvcnkg JHtpfSAyPi9kZXYvbnVsbCkKLSAgICAgICAgICAgIGlmIFsgLW4gIiR7cmVwb30iIF07IHRoZW4K LSAgICAgICAgICAgICAgICBlY2hvICIgICBbdGFyZ2V0XSAke2l9OiBmb3VuZCAoJHJlcG8pIgot ICAgICAgICAgICAgICAgIGJpbnBrZ19kZXBzKz0oIiR7aX0iKQotICAgICAgICAgICAgICAgIGNv bnRpbnVlCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZWNobyAiICAgW3Rhcmdl dF0gJHtpfTogbm90IGZvdW5kLiIKLSAgICAgICAgICAgICAgICBpZiBbICIke19yZWFscGtnfSIg PSAiJHRhcmdldHBrZyIgXTsgdGhlbgotICAgICAgICAgICAgICAgICAgICBtc2dfZXJyb3IgIiR7 cGtnfTogW3RhcmdldF0gYnVpbGQgbG9vcCBkZXRlY3RlZDogJHtfcmVhbHBrZ30gPC0+ICR7dGFy Z2V0cGtnfSBbZGVwZW5kcyBvbiBpdHNlbGZdXG4iCi0gICAgICAgICAgICAgICAgZWxpZiBbICIk e19yZWFscGtnfSIgPSAiJHBrZyIgXTsgdGhlbgotICAgICAgICAgICAgICAgICAgICBtc2dfZXJy b3IgIiR7cGtnfTogW3RhcmdldF0gYnVpbGQgbG9vcCBkZXRlY3RlZDogJHBrZyA8LT4gJHtfcmVh bHBrZ31cbiIKKyAgICAgICAgICAgICMgYmluYXJ5IHBhY2thZ2Ugbm90IGZvdW5kCisgICAgICAg ICAgICBpZiBbWyAkX2RlcG5hbWUgIT0gJF9zdWJwa2cgXV07IHRoZW4KKyAgICAgICAgICAgICAg ICAjIHN1YnBrZywgY2hlY2sgaWYgaXQncyBhIHN1YnBrZyBvZiBpdHNlbGYKKyAgICAgICAgICAg ICAgICBmb3VuZD0wCisgICAgICAgICAgICAgICAgZm9yIGYgaW4gJHtzdWJwYWNrYWdlc307IGRv CisgICAgICAgICAgICAgICAgICAgIGlmIFtbICR7X3N1YnBrZ30gPT0gJHtmfSBdXTsgdGhlbgor ICAgICAgICAgICAgICAgICAgICAgICAgZm91bmQ9MQorICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWsKKyAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICBkb25lCisgICAg ICAgICAgICAgICAgaWYgW1sgJGZvdW5kIC1lcSAxIF1dOyB0aGVuCisgICAgICAgICAgICAgICAg ICAgIGVjaG8gIiAgIFt0YXJnZXRdICR7X3Zwa2d9OiBub3QgZm91bmQgKHN1YnBrZywgaWdub3Jl ZCkiCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBlY2hvICIgICBb dGFyZ2V0XSAke192cGtnfTogbm90IGZvdW5kIgorICAgICAgICAgICAgICAgICAgICBtaXNzaW5n X2RlcHMrPSgiJF92cGtnIikKICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgZWxzZQor ICAgICAgICAgICAgICAgIGVjaG8gIiAgIFt0YXJnZXRdICR7X3Zwa2d9OiBub3QgZm91bmQiCisg ICAgICAgICAgICAgICAgbWlzc2luZ19kZXBzKz0oIiRfdnBrZyIpCiAgICAgICAgICAgICBmaQot ICAgICAgICBmaQotICAgICAgICBtaXNzaW5nX2RlcHMrPSgiJHtpfSIpCi0gICAgZG9uZQorICAg ICAgICBkb25lIDwgPCgkWEJQU19DSEVDS1ZFUlNfWENNRCAke1hCUFNfU0tJUF9SRU1PVEVSRVBP UzorLWl9IC1EICRYQlBTX0RJU1RESVIgLXNtICR7bWFrZWRlcGVuZHN9KQorICAgIGZpCiAKICAg ICAjCiAgICAgIyBUYXJnZXQgcnVuIHRpbWUgZGVwZW5kZW5jaWVzCiAgICAgIwotICAgIGZvciBp IGluICR7cnVuX2RlcGVuZHN9OyBkbwotICAgICAgICBfcmVhbHBrZz0iJHtpJVw/Kn0iCi0gICAg ICAgIF9jdXJwa2c9IiR7X3JlYWxwa2d9IgotICAgICAgICBfdnBrZz0iJHtpIypcP30iCi0gICAg ICAgIGlmIFsgIiR7X3JlYWxwa2d9IiAhPSAiJHtfdnBrZ30iIF07IHRoZW4KLSAgICAgICAgICAg IF9yZWFscGtnPSIke192cGtnfSIKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdW5zZXQgX2N1 cnBrZwotICAgICAgICBmaQotICAgICAgICBwa2duPSQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtn ZGVwbmFtZSAiJHtfcmVhbHBrZ30iKQotICAgICAgICBpZiBbIC16ICIkcGtnbiIgXTsgdGhlbgot ICAgICAgICAgICAgcGtnbj0kKCRYQlBTX1VIRUxQRVJfQ01EIGdldHBrZ25hbWUgIiR7X3JlYWxw a2d9IikKLSAgICAgICAgICAgIGlmIFsgLXogIiRwa2duIiBdOyB0aGVuCi0gICAgICAgICAgICAg ICAgbXNnX2Vycm9yICIkcGtndmVyOiBpbnZhbGlkIHJ1bnRpbWUgZGVwZW5kZW5jeTogJHtfcmVh bHBrZ31cbiIKLSAgICAgICAgICAgIGZpCi0gICAgICAgIGZpCi0gICAgICAgICMgQ2hlY2sgaWYg ZGVwZW5kZW5jeSBpcyBhIHN1YnBrZywgaWYgaXQgaXMsIGlnbm9yZSBpdC4KLSAgICAgICAgdW5z ZXQgZm91bmQKLSAgICAgICAgZm9yIGogaW4gJHtzdWJwYWNrYWdlc307IGRvCi0gICAgICAgICAg ICBbICIkaiIgPSAiJHtwa2dufSIgXSAmJiBmb3VuZD0xICYmIGJyZWFrCi0gICAgICAgIGRvbmUK LSAgICAgICAgWyAtbiAiJGZvdW5kIiBdICYmIGNvbnRpbnVlCi0gICAgICAgIF9wcm9wcz0kKCRY QlBTX1FVRVJZX1hDTUQgLVIgLXBwa2d2ZXIscmVwb3NpdG9yeSAke19yZWFscGtnfSAyPi9kZXYv bnVsbCkKLSAgICAgICAgaWYgWyAtbiAiJHtfcHJvcHN9IiBdOyB0aGVuCi0gICAgICAgICAgICBz ZXQgLS0gJHtfcHJvcHN9Ci0gICAgICAgICAgICAkWEJQU19VSEVMUEVSX0NNRCBwa2dtYXRjaCAk ezF9ICIke19yZWFscGtnfSIKLSAgICAgICAgICAgIGlmIFsgJD8gLWVxIDEgXTsgdGhlbgotICAg ICAgICAgICAgICAgIGlmIFsgLW4gIiR7X2N1cnBrZ30iIF07IHRoZW4KLSAgICAgICAgICAgICAg ICAgICAgZWNobyAiICAgW3J1bnRpbWVdICR7X2N1cnBrZ306JHtfcmVhbHBrZ30gKHZpcnR1YWwg ZGVwZW5kZW5jeSk6IGZvdW5kICQxICgkMikiCi0gICAgICAgICAgICAgICAgZWxzZQotICAgICAg ICAgICAgICAgICAgICBlY2hvICIgICBbcnVudGltZV0gJHtfcmVhbHBrZ306IGZvdW5kICQxICgk MikiCi0gICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICBzaGlmdCAyCisgICAgaWYg W1sgJHtkZXBlbmRzfSBdXTsgdGhlbgorICAgICAgICBfZGVwcz0kKHNldHVwX3BrZ19kZXBlbmRz ICIiIDEpIHx8IGV4aXQgMQorICAgICAgICB3aGlsZSByZWFkIC1yIF9kZXBuYW1lIF9kZXByZXBv dmVyIF9kZXB2ZXIgX3N1YnBrZyBfcmVwb3VybDsgZG8KKyAgICAgICAgICAgIF92cGtnPSR7X3N1 YnBrZ30tJHtfZGVwdmVyfQorICAgICAgICAgICAgIyBiaW5hcnkgcGFja2FnZSBmb3VuZCBpbiBh IHJlcG8KKyAgICAgICAgICAgIGlmIFtbICR7X2RlcHZlcn0gPT0gJHtfZGVwcmVwb3Zlcn0gXV07 IHRoZW4KKyAgICAgICAgICAgICAgICBlY2hvICIgICBbcnVudGltZV0gJHtfdnBrZ306IGZvdW5k ICgke19yZXBvdXJsfSkiCiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGVs c2UKLSAgICAgICAgICAgICAgICBpZiBbIC1uICIke19jdXJwa2d9IiBdOyB0aGVuCi0gICAgICAg ICAgICAgICAgICAgIGVjaG8gIiAgIFtydW50aW1lXSAke19jdXJwa2d9OiR7X3JlYWxwa2d9ICh2 aXJ0dWFsIGRlcGVuZGVuY3kpOiBub3QgZm91bmQuIgorICAgICAgICAgICAgZmkKKyAgICAgICAg ICAgICMgYmluYXJ5IHBhY2thZ2Ugbm90IGZvdW5kCisgICAgICAgICAgICBpZiBbWyAkX2RlcG5h bWUgIT0gJF9zdWJwa2cgXV07IHRoZW4KKyAgICAgICAgICAgICAgICAjIHN1YnBrZywgY2hlY2sg aWYgaXQncyBhIHN1YnBrZyBvZiBpdHNlbGYKKyAgICAgICAgICAgICAgICBmb3VuZD0wCisgICAg ICAgICAgICAgICAgZm9yIGYgaW4gJHtzdWJwYWNrYWdlc307IGRvCisgICAgICAgICAgICAgICAg ICAgIGlmIFtbICR7X3N1YnBrZ30gPT0gJHtmfSBdXTsgdGhlbgorICAgICAgICAgICAgICAgICAg ICAgICAgZm91bmQ9MQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAg ICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICBkb25lCisgICAgICAgICAgICAgICAgaWYgW1sg JGZvdW5kIC1lcSAxIF1dOyB0aGVuCisgICAgICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtydW50 aW1lXSAke192cGtnfTogbm90IGZvdW5kIChzdWJwa2csIGlnbm9yZWQpIgogICAgICAgICAgICAg ICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZWNobyAiICAgW3J1bnRpbWVdICR7X3JlYWxw a2d9OiBub3QgZm91bmQuIgorICAgICAgICAgICAgICAgICAgICBlY2hvICIgICBbcnVudGltZV0g JHtfdnBrZ306IG5vdCBmb3VuZCIKKyAgICAgICAgICAgICAgICAgICAgbWlzc2luZ19yZGVwcys9 KCIkX3Zwa2ciKQogICAgICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICBmaQotICAgICAgICAg ICAgc2hpZnQgMgotICAgICAgICBlbHNlCi0gICAgICAgICAgICBpZiBbIC1uICIke19jdXJwa2d9 IiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgZWNobyAiICAgW3J1bnRpbWVdICR7X2N1cnBrZ306 JHtfcmVhbHBrZ30gKHZpcnR1YWwgZGVwZW5kZW5jeSk6IG5vdCBmb3VuZC4iCiAgICAgICAgICAg ICBlbHNlCi0gICAgICAgICAgICAgICAgZWNobyAiICAgW3J1bnRpbWVdICR7X3JlYWxwa2d9OiBu b3QgZm91bmQuIgorICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtydW50aW1lXSAke192cGtnfTog bm90IGZvdW5kIgorICAgICAgICAgICAgICAgIG1pc3NpbmdfcmRlcHMrPSgiJF92cGtnIikKICAg ICAgICAgICAgIGZpCi0gICAgICAgIGZpCi0gICAgICAgIGlmIFsgIiR7X3JlYWxwa2d9IiA9ICIk dGFyZ2V0cGtnIiBdOyB0aGVuCi0gICAgICAgICAgICBtc2dfZXJyb3IgIiR7cGtnfTogW3J1bl0g YnVpbGQgbG9vcCBkZXRlY3RlZDogJHtfcmVhbHBrZ30gPC0+ICR7dGFyZ2V0cGtnfSBbZGVwZW5k cyBvbiBpdHNlbGZdXG4iCi0gICAgICAgIGVsaWYgWyAiJHtfcmVhbHBrZ30iID0gIiRwa2ciIF07 IHRoZW4KLSAgICAgICAgICAgIG1zZ19lcnJvciAiJHtwa2d9OiBbcnVuXSBidWlsZCBsb29wIGRl dGVjdGVkOiAkcGtnIDwtPiAke19yZWFscGtnfVxuIgotICAgICAgICBmaQotICAgICAgICBtaXNz aW5nX3JkZXBzKz0oIiR7X3JlYWxwa2d9IikKLSAgICBkb25lCisgICAgICAgIGRvbmUgPCA8KCRY QlBTX0NIRUNLVkVSU19YQ01EICR7WEJQU19TS0lQX1JFTU9URVJFUE9TOistaX0gLUQgJFhCUFNf RElTVERJUiAtc20gJF9kZXBzKQorICAgICAgICB1bnNldCBfZGVwcworICAgIGZpCiAKICAgICBp ZiBbIC1uICIkWEJQU19CVUlMRF9PTkxZX09ORV9QS0ciIF07IHRoZW4KICAgICAgICAgICAgZm9y IGkgaW4gJHtob3N0X21pc3NpbmdfZGVwc1tAXX07IGRvCiAgICAgICAgICAgICAgICAgICAgbXNn X2Vycm9yICJkZXAgJHtpfSBub3QgZm91bmQ6IC0xIHBhc3NlZDogaW5zdHJ1Y3RlZCBub3QgdG8g YnVpbGRcbiIKICAgICAgICAgICAgZG9uZQotICAgICAgICAgICBmb3IgaSBpbiAke2NoZWNrX21p c3NpbmdfZGVwc1tAXX07IGRvCi0gICAgICAgICAgICAgICAgICAgbXNnX2Vycm9yICJkZXAgJHtp fSBub3QgZm91bmQ6IC0xIHBhc3NlZDogaW5zdHJ1Y3RlZCBub3QgdG8gYnVpbGRcbiIKLSAgICAg ICAgICAgZG9uZQogICAgICAgICAgICBmb3IgaSBpbiAke21pc3NpbmdfcmRlcHNbQF19OyBkbwog ICAgICAgICAgICAgICAgICAgIG1zZ19lcnJvciAiZGVwICR7aX0gbm90IGZvdW5kOiAtMSBwYXNz ZWQ6IGluc3RydWN0ZWQgbm90IHRvIGJ1aWxkXG4iCiAgICAgICAgICAgIGRvbmUKQEAgLTQyOSwx OCArMzA2LDYgQEAgaW5zdGFsbF9wa2dfZGVwcygpIHsKICAgICAgICAgaG9zdF9iaW5wa2dfZGVw cys9KCIkaSIpCiAgICAgZG9uZQogCi0gICAgIyBNaXNzaW5nIGNoZWNrIGRlcGVuZGVuY2llcywg YnVpbGQgZnJvbSBzcmNwa2dzLgotICAgIGZvciBpIGluICR7Y2hlY2tfbWlzc2luZ19kZXBzW0Bd fTsgZG8KLSAgICAgICAgIyBwYWNrYWdlcyBub3QgZm91bmQgaW4gcmVwb3MsIGluc3RhbGwgZnJv bSBzb3VyY2UuCi0gICAgICAgICgKLSAgICAgICAgY3VycGtnZGVwbmFtZT0kKCRYQlBTX1VIRUxQ RVJfQ01EIGdldHBrZ25hbWUgIiRpIiAyPi9kZXYvbnVsbCkKLSAgICAgICAgc2V0dXBfcGtnICRj dXJwa2dkZXBuYW1lCi0gICAgICAgIGV4ZWMgZW52IFhCUFNfREVQRU5ERU5DWT0xIFhCUFNfQklO UEtHX0VYSVNUUz0xIFwKLSAgICAgICAgICAgICRYQlBTX0xJQkVYRUNESVIvYnVpbGQuc2ggJHNv dXJjZXBrZyAkcGtnICR0YXJnZXQgfHwgZXhpdCAkPwotICAgICAgICApIHx8IGV4aXQgJD8KLSAg ICAgICAgY2hlY2tfYmlucGtnX2RlcHMrPSgiJGkiKQotICAgIGRvbmUKLQogICAgICMgTWlzc2lu ZyB0YXJnZXQgZGVwZW5kZW5jaWVzLCBidWlsZCBmcm9tIHNyY3BrZ3MuCiAgICAgZm9yIGkgaW4g JHttaXNzaW5nX2RlcHNbQF19OyBkbwogICAgICAgICAjIHBhY2thZ2VzIG5vdCBmb3VuZCBpbiBy ZXBvcywgaW5zdGFsbCBmcm9tIHNvdXJjZS4KQEAgLTQ3MSwyMiArMzM2LDI1IEBAIGluc3RhbGxf cGtnX2RlcHMoKSB7CiAgICAgICAgICkgfHwgZXhpdCAkPwogICAgIGRvbmUKIAotICAgIGlmIFsg IiRwa2ciICE9ICIkdGFyZ2V0cGtnIiBdOyB0aGVuCi0gICAgICAgIG1zZ19ub3JtYWwgIiRwa2c6 IGJ1aWxkaW5nJHtzdHlsZX0gKGRlcGVuZGVuY3kgb2YgJHRhcmdldHBrZykgLi4uXG4iCisgICAg aWYgW1sgJHtob3N0X2JpbnBrZ19kZXBzfSBdXTsgdGhlbgorICAgICAgICBpZiBbIC16ICIkWEJQ U19RVUlFVCIgXTsgdGhlbgorICAgICAgICAgICAgIyBub3JtYWwgbWVzc2FnZXMgaW4gYm9sZAor ICAgICAgICAgICAgW1sgJE5PQ09MT1JTIF1dIHx8IHByaW50ZiAiXDAzM1sxbSIKKyAgICAgICAg ICAgIGVjaG8gIj0+ICRwa2d2ZXI6IGluc3RhbGxpbmcgaG9zdCBkZXBlbmRlbmNpZXM6ICR7aG9z dF9iaW5wa2dfZGVwc1tAXX0gLi4uIgorICAgICAgICAgICAgW1sgJE5PQ09MT1JTIF1dIHx8IHBy aW50ZiAiXDAzM1ttIgorICAgICAgICBmaQorICAgICAgICBpbnN0YWxsX3BrZ19mcm9tX3JlcG9z ICIiICIke2hvc3RfYmlucGtnX2RlcHNbQF19IgogICAgIGZpCiAKLSAgICBmb3IgaSBpbiAke2hv c3RfYmlucGtnX2RlcHNbQF19OyBkbwotICAgICAgICBtc2dfbm9ybWFsICIkcGtndmVyOiBpbnN0 YWxsaW5nIGhvc3QgZGVwZW5kZW5jeSAnJGknIC4uLlxuIgotICAgICAgICBpbnN0YWxsX3BrZ19m cm9tX3JlcG9zICIke2l9IgotICAgIGRvbmUKLQotICAgIGZvciBpIGluICR7Y2hlY2tfYmlucGtn X2RlcHNbQF19OyBkbwotICAgICAgICBtc2dfbm9ybWFsICIkcGtndmVyOiBpbnN0YWxsaW5nIGNo ZWNrIGRlcGVuZGVuY3kgJyRpJyAuLi5cbiIKLSAgICAgICAgaW5zdGFsbF9wa2dfZnJvbV9yZXBv cyAiJHtpfSIKLSAgICBkb25lCisgICAgaWYgW1sgJHtiaW5wa2dfZGVwc30gXV07IHRoZW4KKyAg ICAgICAgaWYgWyAteiAiJFhCUFNfUVVJRVQiIF07IHRoZW4KKyAgICAgICAgICAgICMgbm9ybWFs IG1lc3NhZ2VzIGluIGJvbGQKKyAgICAgICAgICAgIFtbICROT0NPTE9SUyBdXSB8fCBwcmludGYg IlwwMzNbMW0iCisgICAgICAgICAgICBlY2hvICI9PiAkcGtndmVyOiBpbnN0YWxsaW5nIHRhcmdl dCBkZXBlbmRlbmNpZXM6ICR7YmlucGtnX2RlcHNbQF19IC4uLiIKKyAgICAgICAgICAgIFtbICRO T0NPTE9SUyBdXSB8fCBwcmludGYgIlwwMzNbbSIKKyAgICAgICAgZmkKKyAgICAgICAgaW5zdGFs bF9wa2dfZnJvbV9yZXBvcyAiJGNyb3NzIiAiJHtiaW5wa2dfZGVwc1tAXX0iCisgICAgZmkKIAot ICAgIGZvciBpIGluICR7YmlucGtnX2RlcHNbQF19OyBkbwotICAgICAgICBtc2dfbm9ybWFsICIk cGtndmVyOiBpbnN0YWxsaW5nIHRhcmdldCBkZXBlbmRlbmN5ICckaScgLi4uXG4iCi0gICAgICAg IGluc3RhbGxfcGtnX2Zyb21fcmVwb3MgIiRpIiAkY3Jvc3MKLSAgICBkb25lCisgICAgcmV0dXJu IDAKIH0KZGlmZiAtLWdpdCBhL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2J1bGsuc2ggYi9jb21t b24veGJwcy1zcmMvc2h1dGlscy9idWxrLnNoCmluZGV4IDczOTQ3OTY1MjgyLi5lZDVjNGNlMTky ZCAxMDA2NDQKLS0tIGEvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvYnVsay5zaAorKysgYi9jb21t b24veGJwcy1zcmMvc2h1dGlscy9idWxrLnNoCkBAIC0xLDgzICsxLDc4IEBACiAjIHZpbTogc2V0 IHRzPTQgc3c9NCBldDoKIAotYnVsa19nZXRsaW5rKCkgewotICAgIGxvY2FsIHA9IiR7MSMjKi99 IgotICAgIGxvY2FsIHRhcmdldD0iJChyZWFkbGluayAkWEJQU19TUkNQS0dESVIvJHApIgotCi0g ICAgaWYgWyAkPyAtZXEgMCAtYSAtbiAiJHRhcmdldCIgXTsgdGhlbgotICAgICAgICBwPSR0YXJn ZXQKLSAgICBmaQotICAgIGVjaG8gJHAKLX0KLQogYnVsa19zb3J0ZGVwcygpIHsKLSAgICBsb2Nh bCBfcGtncyBfcGtnIHBrZ3MgcGtnIGZvdW5kIGYgeCB0bXBmCi0KLSAgICBfcGtncz0iJEAiCi0g ICAgIyBJdGVyYXRlIG92ZXIgdGhlIGxpc3QgYW5kIG1ha2Ugc3VyZSB0aGF0IG9ubHkgcmVhbCBw a2dzIGFyZQotICAgICMgYWRkZWQgdG8gb3VyIHBrZ2xpc3QuCi0gICAgZm9yIHBrZyBpbiAke19w a2dzfTsgZG8KLSAgICAgICAgZm91bmQ9MAotICAgICAgICBmPSQoYnVsa19nZXRsaW5rICRwa2cp Ci0gICAgICAgIGZvciB4IGluICR7cGtnc307IGRvCi0gICAgICAgICAgICBpZiBbICIkeCIgPSAi JHtmfSIgXTsgdGhlbgotICAgICAgICAgICAgICAgIGZvdW5kPTEKLSAgICAgICAgICAgICAgICBi cmVhawotICAgICAgICAgICAgZmkKLSAgICAgICAgZG9uZQotICAgICAgICBpZiBbICRmb3VuZCAt ZXEgMCBdOyB0aGVuCi0gICAgICAgICAgICBwa2dzKz0iJHtmfSAiCi0gICAgICAgIGZpCi0gICAg ZG9uZQorICAgIGxvY2FsIHBrZ3M9IiRAIgorICAgIGxvY2FsIHBrZyBfcGtnCisgICAgbG9jYWwg TlBST0NTPSQoKCQobnByb2MpKjIpKQorICAgIGxvY2FsIE5SVU5OSU5HPTAKIAogICAgIHRtcGY9 JChta3RlbXApIHx8IGV4aXQgMQotICAgICMgTm93IG1ha2UgdGhlIHJlYWwgZGVwZW5kZW5jeSBn cmFwaCBvZiBhbGwgcGtncyB0byBidWlsZC4KLSAgICAjIFBlcmZvcm0gYSB0b3BvbG9naWNhbCBz b3J0IG9mIGFsbCBwa2dzIGJ1dCBvbmx5IHdpdGggYnVpbGQgZGVwZW5kZW5jaWVzCi0gICAgIyB0 aGF0IGFyZSBmb3VuZCBpbiBwcmV2aW91cyBzdGVwLgorCisgICAgIyBQZXJmb3JtIGEgdG9wb2xv Z2ljYWwgc29ydCBvZiBhbGwgKmRpcmVjdCogYnVpbGQgZGVwZW5kZW5jaWVzLgogICAgIGZvciBw a2cgaW4gJHtwa2dzfTsgZG8KLSAgICAgICAgX3BrZ3M9IiQoLi94YnBzLXNyYyBzaG93LWJ1aWxk LWRlcHMgJHBrZyAyPi9kZXYvbnVsbCkiCi0gICAgICAgIGZvdW5kPTAKLSAgICAgICAgZm9yIHgg aW4gJHtfcGtnc307IGRvCi0gICAgICAgICAgICBfcGtnPSQoYnVsa19nZXRsaW5rICR4KQotICAg ICAgICAgICAgZm9yIGYgaW4gJHtwa2dzfTsgZG8KLSAgICAgICAgICAgICAgICBpZiBbICIke2Z9 IiAhPSAiJHtfcGtnfSIgXTsgdGhlbgotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAg ICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICAgICAgZm91bmQ9MQotICAgICAgICAgICAgICAg IGVjaG8gIiR7cGtnfSAke2Z9IiA+PiAkdG1wZgorICAgICAgICBpZiBbICROUlVOTklORyAtZXEg JE5QUk9DUyBdOyB0aGVuCisgICAgICAgICAgICBOUlVOTklORz0wCisgICAgICAgICAgICB3YWl0 CisgICAgICAgIGZpCisgICAgICAgIE5SVU5OSU5HPSQoKE5SVU5OSU5HKzEpKQorICAgICAgICAo CisgICAgICAgICAgICBmb3IgX3BrZyBpbiAkKC4veGJwcy1zcmMgc2hvdy1idWlsZC1kZXBzICRw a2cgMj4vZGV2L251bGwpOyBkbworICAgICAgICAgICAgICAgIGVjaG8gIiRwa2cgJF9wa2ciID4+ ICR0bXBmCiAgICAgICAgICAgICBkb25lCi0gICAgICAgIGRvbmUKLSAgICAgICAgWyAkZm91bmQg LWVxIDAgXSAmJiBlY2hvICIke3BrZ30gJHtwa2d9IiA+PiAkdG1wZgorICAgICAgICAgICAgZWNo byAiJHBrZyAkcGtnIiA+PiAkdG1wZgorICAgICAgICApICYKICAgICBkb25lCisgICAgd2FpdAog ICAgIHRzb3J0ICR0bXBmfHRhYwogICAgIHJtIC1mICR0bXBmCiB9CiAKIGJ1bGtfYnVpbGQoKSB7 CisgICAgbG9jYWwgc3lzPSIkMSIKKyAgICBsb2NhbCBOUFJPQ1M9JCgoJChucHJvYykqMikpCisg ICAgbG9jYWwgTlJVTk5JTkc9MAogCiAgICAgaWYgWyAiJFhCUFNfQ1JPU1NfQlVJTEQiIF07IHRo ZW4KICAgICAgICAgc291cmNlICR7WEJQU19DT01NT05ESVJ9L2Nyb3NzLXByb2ZpbGVzLyR7WEJQ U19DUk9TU19CVUlMRH0uc2gKICAgICAgICAgZXhwb3J0IFhCUFNfQVJDSD0ke1hCUFNfVEFSR0VU X01BQ0hJTkV9CiAgICAgZmkKICAgICBpZiAhIGNvbW1hbmQgLXYgeGJwcy1jaGVja3ZlcnMgJj4v ZGV2L251bGw7IHRoZW4KLSAgICAgICAgbXNnX2Vycm9yICJ4YnBzLXNyYzogY2Fubm90IGZpbmQg eGJwcy1jaGVja3ZlcnMoOCkgY29tbWFuZCFcbiIKKyAgICAgICAgbXNnX2Vycm9yICJ4YnBzLXNy YzogY2Fubm90IGZpbmQgeGJwcy1jaGVja3ZlcnMoMSkgY29tbWFuZCFcbiIKICAgICBmaQogCi0g ICAgYnVsa19zb3J0ZGVwcyAiJCh4YnBzLWNoZWNrdmVycyAkezF9IC0tZGlzdGRpcj0kWEJQU19E SVNURElSIHwgYXdrICd7cHJpbnQgJDJ9JykiCisgICAgIyBDb21wYXJlIGluc3RhbGxlZCBwa2cg dmVyc2lvbnMgdnMgc3JjcGtncworICAgIGlmIFtbICRzeXMgXV07IHRoZW4KKyAgICAgICAgeGJw cy1jaGVja3ZlcnMgLWYgJyVuJyAtSSAtRCAkWEJQU19ESVNURElSCisgICAgICAgIHJldHVybiAk PworICAgIGZpCisgICAgIyBjb21wYXJlIHJlcG8gcGtnIHZlcnNpb25zIHZzIHNyY3BrZ3MKKyAg ICBmb3IgZiBpbiAkKHhicHMtY2hlY2t2ZXJzIC1mICclbicgLUQgJFhCUFNfRElTVERJUik7IGRv CisgICAgICAgIGlmIFsgJE5SVU5OSU5HIC1lcSAkTlBST0NTIF07IHRoZW4KKyAgICAgICAgICAg IE5SVU5OSU5HPTAKKyAgICAgICAgICAgIHdhaXQKKyAgICAgICAgZmkKKyAgICAgICAgTlJVTk5J Tkc9JCgoTlJVTk5JTkcrMSkpCisgICAgICAgICgKKyAgICAgICAgICAgIHNldHVwX3BrZyAkZiAk WEJQU19UQVJHRVRfTUFDSElORSAmPi9kZXYvbnVsbAorICAgICAgICAgICAgaWYgc2hvd19hdmFp bCAmPi9kZXYvbnVsbDsgdGhlbgorICAgICAgICAgICAgICAgIGVjaG8gIiRmIgorICAgICAgICAg ICAgZmkKKyAgICAgICAgKSAmCisgICAgZG9uZQorICAgIHdhaXQKKyAgICByZXR1cm4gJD8KIH0K IAogYnVsa191cGRhdGUoKSB7CiAgICAgbG9jYWwgYXJncz0iJDEiIHBrZ3MgZiBydmFsCiAKICAg ICBwa2dzPSIkKGJ1bGtfYnVpbGQgJHthcmdzfSkiCi0gICAgaWYgWyAteiAiJHBrZ3MiIF07IHRo ZW4KLSAgICAgICAgcmV0dXJuIDAKLSAgICBmaQorICAgIFtbIC16ICRwa2dzIF1dICYmIHJldHVy biAwCisKICAgICBtc2dfbm9ybWFsICJ4YnBzLXNyYzogdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBt dXN0IGJlIHJlYnVpbHQgYW5kIHVwZGF0ZWQ6XG4iCiAgICAgZm9yIGYgaW4gJHtwa2dzfTsgZG8K LSAgICAgICAgZWNobyAiICAgJGYiCisgICAgICAgIGVjaG8gIiAkZiIKICAgICBkb25lCi0gICAg ZWNobwogICAgIGZvciBmIGluICR7cGtnc307IGRvCiAgICAgICAgIFhCUFNfVEFSR0VUX1BLRz0k ZgogICAgICAgICByZWFkX3BrZwpkaWZmIC0tZ2l0IGEvY29tbW9uL3hicHMtc3JjL3NodXRpbHMv Y2hyb290LnNoIGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvY2hyb290LnNoCmluZGV4IDE3YmE5 ZGRlNmNhLi43ZTI4ZjExMjBkZCAxMDA2NDQKLS0tIGEvY29tbW9uL3hicHMtc3JjL3NodXRpbHMv Y2hyb290LnNoCisrKyBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2Nocm9vdC5zaApAQCAtMTY5 LDcgKzE2OSw3IEBAIGNocm9vdF9oYW5kbGVyKCkgewogICAgIFsgLXogIiRhY3Rpb24iIC1hIC16 ICIkcGtnIiBdICYmIHJldHVybiAxCiAKICAgICBjYXNlICIkYWN0aW9uIiBpbgotICAgICAgICBm ZXRjaHxleHRyYWN0fHBhdGNofGJ1aWxkfGNoZWNrfGNvbmZpZ3VyZXxpbnN0YWxsfGluc3RhbGwt ZGVzdGRpcnxwa2d8YnVpbGQtcGtnfGJvb3RzdHJhcC11cGRhdGV8Y2hyb290KQorICAgICAgICBm ZXRjaHxleHRyYWN0fHBhdGNofGNvbmZpZ3VyZXxidWlsZHxjaGVja3xpbnN0YWxsfHBrZ3xib290 c3RyYXAtdXBkYXRlfGNocm9vdCkKICAgICAgICAgICAgIGNocm9vdF9wcmVwYXJlIHx8IHJldHVy biAkPwogICAgICAgICAgICAgY2hyb290X2luaXQgfHwgcmV0dXJuICQ/CiAgICAgICAgICAgICBj aHJvb3Rfc3luY19yZXBvcyB8fCByZXR1cm4gJD8KQEAgLTE4MSwzMCArMTgxLDEzIEBAIGNocm9v dF9oYW5kbGVyKCkgewogICAgICAgICAgICAgJFhCUFNfTUFTVEVSRElSICRYQlBTX0RJU1RESVIg IiRYQlBTX0hPU1RESVIiICIkWEJQU19DSFJPT1RfQ01EX0FSR1MiIC9iaW4veGJwcy1zaGVsbAog ICAgICAgICBydj0kPwogICAgIGVsc2UKLSAgICAgICAgWyAtbiAiJFhCUFNfQ1JPU1NfQlVJTEQi IF0gJiYgYXJnPSIkYXJnIC1hICRYQlBTX0NST1NTX0JVSUxEIgotICAgICAgICBbIC1uICIkWEJQ U19LRUVQX0FMTCIgXSAmJiBhcmc9IiRhcmcgLUMiCi0gICAgICAgIFsgLW4gIiROT0NPTE9SUyIg XSAmJiBhcmc9IiRhcmcgLUwiCi0gICAgICAgIFsgLW4gIiRYQlBTX0JVSUxEX0ZPUkNFTU9ERSIg XSAmJiBhcmc9IiRhcmcgLWYiCi0gICAgICAgIFsgLW4gIiRYQlBTX01BS0VKT0JTIiBdICYmIGFy Zz0iJGFyZyAtaiRYQlBTX01BS0VKT0JTIgotICAgICAgICBbIC1uICIkWEJQU19ERUJVR19QS0dT IiBdICYmIGFyZz0iJGFyZyAtZyIKLSAgICAgICAgWyAtbiAiJFhCUFNfQ0hFQ0tfUEtHUyIgXSAm JiBhcmc9IiRhcmcgLVEiCi0gICAgICAgIFsgLW4gIiRYQlBTX0JVSUxEX09OTFlfT05FX1BLRyIg XSAmJiBhcmc9IiRhcmcgLTEiCi0gICAgICAgIFsgLW4gIiRYQlBTX1FVSUVUIiBdICYmIGFyZz0i JGFyZyAtcSIKLSAgICAgICAgWyAtbiAiJFhCUFNfU0tJUF9ERVBTIiBdICYmIGFyZz0iJGFyZyAt SSIKLSAgICAgICAgWyAtbiAiJFhCUFNfQUxUX1JFUE9TSVRPUlkiIF0gJiYgYXJnPSIkYXJnIC1y ICRYQlBTX0FMVF9SRVBPU0lUT1JZIgotICAgICAgICBbIC1uICIkWEJQU19VU0VfR0lUX1JFVlMi IF0gJiYgYXJnPSIkYXJnIC1HIgotICAgICAgICBbIC1uICIkWEJQU19QS0dfT1BUSU9OUyIgXSAm JiBhcmc9IiRhcmcgLW8gJFhCUFNfUEtHX09QVElPTlMiCi0gICAgICAgIFsgLW4gIiRYQlBTX1RF TVBfTUFTVEVSRElSIiBdICYmIGFyZz0iJGFyZyAtdCAtQyIKLSAgICAgICAgWyAtbiAiJFhCUFNf QklOUEtHX0VYSVNUUyIgXSAmJiBhcmc9IiRhcmcgLUUiCi0KLSAgICAgICAgYWN0aW9uPSIkYXJn ICRhY3Rpb24iCiAgICAgICAgIGVudiAtaSAtLSBQQVRIPSIvdXNyL2JpbiIgU0hFTEw9L2Jpbi9z aCBcCiAgICAgICAgICAgICBIT01FPS90bXAgSU5fQ0hST09UPTEgTENfQ09MTEFURT1DIExBTkc9 ZW5fVVMuVVRGLTggXAogICAgICAgICAgICAgU09VUkNFX0RBVEVfRVBPQ0g9IiRTT1VSQ0VfREFU RV9FUE9DSCIgXAogICAgICAgICAgICAgWEJQU19BTExPV19DSFJPT1RfQlJFQUtPVVQ9IiRYQlBT X0FMTE9XX0NIUk9PVF9CUkVBS09VVCIgXAogICAgICAgICAgICAgJFhCUFNfQ09NTU9ORElSL2No cm9vdC1zdHlsZS8ke1hCUFNfQ0hST09UX0NNRDo9dXVuc2hhcmV9LnNoIFwKICAgICAgICAgICAg ICRYQlBTX01BU1RFUkRJUiAkWEJQU19ESVNURElSICIkWEJQU19IT1NURElSIiAiJFhCUFNfQ0hS T09UX0NNRF9BUkdTIiBcCi0gICAgICAgICAgICAvdm9pZC1wYWNrYWdlcy94YnBzLXNyYyAkYWN0 aW9uICRwa2cKKyAgICAgICAgICAgIC92b2lkLXBhY2thZ2VzL3hicHMtc3JjICRYQlBTX09QVElP TlMgJGFjdGlvbiAkcGtnCiAgICAgICAgIHJ2PSQ/CiAgICAgZmkKIApkaWZmIC0tZ2l0IGEvY29t bW9uL3hicHMtc3JjL3NodXRpbHMvY29tbW9uLnNoIGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMv Y29tbW9uLnNoCmluZGV4IDU1Njc2MTlmOGYzLi5iOGQ2MDFkM2ZiMiAxMDA2NDQKLS0tIGEvY29t bW9uL3hicHMtc3JjL3NodXRpbHMvY29tbW9uLnNoCisrKyBiL2NvbW1vbi94YnBzLXNyYy9zaHV0 aWxzL2NvbW1vbi5zaApAQCAtMjk0LDcgKzI5NCw3IEBAIHNldHVwX3BrZygpIHsKICAgICAgICAg WEJQU19SRU1PVkVfWENNRD0iZW52IFhCUFNfVEFSR0VUX0FSQ0g9JFhCUFNfVEFSR0VUX01BQ0hJ TkUgJFhCUFNfUkVNT1ZFX0NNRCAtciAkWEJQU19DUk9TU19CQVNFIgogICAgICAgICBYQlBTX1JJ TkRFWF9YQ01EPSJlbnYgWEJQU19UQVJHRVRfQVJDSD0kWEJQU19UQVJHRVRfTUFDSElORSAkWEJQ U19SSU5ERVhfQ01EIgogICAgICAgICBYQlBTX1VIRUxQRVJfWENNRD0iZW52IFhCUFNfVEFSR0VU X0FSQ0g9JFhCUFNfVEFSR0VUX01BQ0hJTkUgeGJwcy11aGVscGVyIC1yICRYQlBTX0NST1NTX0JB U0UiCi0KKyAgICAgICAgWEJQU19DSEVDS1ZFUlNfWENNRD0iZW52IFhCUFNfVEFSR0VUX0FSQ0g9 JFhCUFNfVEFSR0VUX01BQ0hJTkUgeGJwcy1jaGVja3ZlcnMgLXIgJFhCUFNfQ1JPU1NfQkFTRSAt LXJlcG9zaXRvcnk9JFhCUFNfUkVQT1NJVE9SWSIKICAgICBlbHNlCiAgICAgICAgIGV4cG9ydCBY QlBTX1RBUkdFVF9NQUNISU5FPSR7WEJQU19BUkNIOi0kWEJQU19NQUNISU5FfQogICAgICAgICB1 bnNldCBYQlBTX0NST1NTX0JBU0UgWEJQU19DUk9TU19MREZMQUdTIFhCUFNfQ1JPU1NfRkZMQUdT CkBAIC0zMDcsNyArMzA3LDcgQEAgc2V0dXBfcGtnKCkgewogICAgICAgICBYQlBTX1JFTU9WRV9Y Q01EPSIkWEJQU19SRU1PVkVfQ01EIgogICAgICAgICBYQlBTX1JJTkRFWF9YQ01EPSIkWEJQU19S SU5ERVhfQ01EIgogICAgICAgICBYQlBTX1VIRUxQRVJfWENNRD0iJFhCUFNfVUhFTFBFUl9DTUQi Ci0KKyAgICAgICAgWEJQU19DSEVDS1ZFUlNfWENNRD0iJFhCUFNfQ0hFQ0tWRVJTX0NNRCIKICAg ICBmaQogCiAgICAgZXhwb3J0IFhCUFNfSU5TVEFMTF9YQ01EIFhCUFNfUVVFUllfWENNRCBYQlBT X1JFQ09ORklHVVJFX1hDTUQgXApAQCAtNDAyLDcgKzQwMiw3IEBAIHNldHVwX3BrZygpIHsKICAg ICAgICAgYXJjaD0iJFhCUFNfVEFSR0VUX01BQ0hJTkUiCiAgICAgZmkKICAgICBpZiBbIC1uICIk WEJQU19CSU5QS0dfRVhJU1RTIiBdOyB0aGVuCi0gICAgICAgIGlmIFsgIiQoJFhCUFNfUVVFUllf WENNRCAtUiAtcHBrZ3ZlciAkcGtndmVyIDI+L2Rldi9udWxsKSIgPSAiJHBrZ3ZlciIgXTsgdGhl bgorICAgICAgICBpZiBbICIkKCRYQlBTX1FVRVJZX1hDTUQgLWkgLVIgLXBwa2d2ZXIgJHBrZ3Zl ciAyPi9kZXYvbnVsbCkiID0gIiRwa2d2ZXIiIF07IHRoZW4KICAgICAgICAgICAgIGV4aXRfYW5k X2NsZWFudXAKICAgICAgICAgZmkKICAgICBmaQpAQCAtNTU2LDE3ICs1NTYsMTcgQEAgc2V0dXBf cGtnKCkgewogICAgICAgICB3cmtzcmM9IiRYQlBTX0JVSUxERElSLyR3cmtzcmMiCiAgICAgZmkK IAotICAgIGlmIFsgIiRjcm9zcyIgLWEgIiRub2Nyb3NzIiAtYSAieiRzaG93X3Byb2JsZW1zIiAh PSAiemlnbm9yZS1wcm9ibGVtcyIgXTsgdGhlbgorICAgIGlmIFsgIiRjcm9zcyIgLWEgIiRub2Ny b3NzIiAtYSAiJHNob3dfcHJvYmxlbXMiICE9ICJpZ25vcmUtcHJvYmxlbXMiIF07IHRoZW4KICAg ICAgICAgbXNnX3JlZCAiJHBrZ3ZlcjogY2Fubm90IGJlIGNyb3NzIGNvbXBpbGVkLCBleGl0aW5n Li4uXG4iCiAgICAgICAgIG1zZ19yZWQgIiRwa2d2ZXI6ICRub2Nyb3NzXG4iCiAgICAgICAgIGV4 aXQgMgotICAgIGVsaWYgWyAiJGJyb2tlbiIgLWEgInokc2hvd19wcm9ibGVtcyIgIT0gInppZ25v cmUtcHJvYmxlbXMiIF07IHRoZW4KKyAgICBlbGlmIFsgIiRicm9rZW4iIC1hICIkc2hvd19wcm9i bGVtcyIgIT0gImlnbm9yZS1wcm9ibGVtcyIgXTsgdGhlbgogICAgICAgICBtc2dfcmVkICIkcGtn dmVyOiBjYW5ub3QgYmUgYnVpbHQsIGl0J3MgY3VycmVudGx5IGJyb2tlbjsgc2VlIHRoZSBidWls ZCBsb2c6XG4iCiAgICAgICAgIG1zZ19yZWQgIiRwa2d2ZXI6ICRicm9rZW5cbiIKICAgICAgICAg ZXhpdCAyCiAgICAgZmkKIAotICAgIGlmIFsgLW4gIiRyZXN0cmljdGVkIiAtYSAteiAiJFhCUFNf QUxMT1dfUkVTVFJJQ1RFRCIgLWEgInokc2hvd19wcm9ibGVtcyIgIT0gInppZ25vcmUtcHJvYmxl bXMiIF07IHRoZW4KKyAgICBpZiBbIC1uICIkcmVzdHJpY3RlZCIgLWEgLXogIiRYQlBTX0FMTE9X X1JFU1RSSUNURUQiIC1hICIkc2hvd19wcm9ibGVtcyIgIT0gImlnbm9yZS1wcm9ibGVtcyIgXTsg dGhlbgogICAgICAgICBtc2dfcmVkICIkcGtndmVyOiBkb2VzIG5vdCBhbGxvdyByZWRpc3RyaWJ1 dGlvbiBvZiBzb3VyY2VzL2JpbmFyaWVzIChyZXN0cmljdGVkIGxpY2Vuc2UpLlxuIgogICAgICAg ICBtc2dfcmVkICJJZiB5b3UgcmVhbGx5IG5lZWQgdGhpcyBzb2Z0d2FyZSwgcnVuICdlY2hvIFhC UFNfQUxMT1dfUkVTVFJJQ1RFRD15ZXMgPj4gZXRjL2NvbmYnXG4iCiAgICAgICAgIGV4aXQgMgpA QCAtNTc1LDkgKzU3NSw3IEBAIHNldHVwX3BrZygpIHsKICAgICBleHBvcnQgWEJQU19TVEFURURJ Uj0iJHtYQlBTX0JVSUxERElSfS8ueGJwcy0ke3NvdXJjZXBrZ30iCiAgICAgZXhwb3J0IFhCUFNf V1JBUFBFUkRJUj0iJHtYQlBTX1NUQVRFRElSfS93cmFwcGVycyIKIAotICAgIGlmIFsgLW4gIiRi b290c3RyYXAiIC1hIC16ICIkQ0hST09UX1JFQURZIiAtbyAtbiAiJElOX0NIUk9PVCIgXTsgdGhl bgotICAgICAgICBta2RpciAtcCAkWEJQU19XUkFQUEVSRElSCi0gICAgZmkKKyAgICBta2RpciAt cCAkWEJQU19TVEFURURJUiAkWEJQU19XUkFQUEVSRElSCiAKICAgICBzb3VyY2VfZmlsZSAkWEJQ U19DT01NT05ESVIvZW52aXJvbm1lbnQvYnVpbGQtc3R5bGUvJHtidWlsZF9zdHlsZX0uc2gKIApk aWZmIC0tZ2l0IGEvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvY3Jvc3Muc2ggYi9jb21tb24veGJw cy1zcmMvc2h1dGlscy9jcm9zcy5zaAppbmRleCAxMmM5ZWZhOWI0OS4uZTcyMTAwOTg2ZGQgMTAw NjQ0Ci0tLSBhL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2Nyb3NzLnNoCisrKyBiL2NvbW1vbi94 YnBzLXNyYy9zaHV0aWxzL2Nyb3NzLnNoCkBAIC0yNCwxMSArMjQsMTIgQEAgcmVtb3ZlX3BrZ19j cm9zc19kZXBzKCkgewogCiBwcmVwYXJlX2Nyb3NzX3N5c3Jvb3QoKSB7CiAgICAgbG9jYWwgY3Jv c3M9IiQxIgorICAgIGxvY2FsIHN0YXRlZmlsZT0iJFhCUFNfTUFTVEVSRElSLy54YnBzLSR7Y3Jv c3N9LWRvbmUiCiAKLSAgICBbIC16ICIkY3Jvc3MiIC1vICIkY3Jvc3MiID0gIiIgXSAmJiByZXR1 cm4gMAorICAgIFsgLXogIiRjcm9zcyIgLW8gIiRjcm9zcyIgPSAiIiAtbyAtZiAkc3RhdGVmaWxl IF0gJiYgcmV0dXJuIDAKIAogICAgICMgQ2hlY2sgZm9yIGNyb3NzLXZwa2ctZHVtbXkgYXZhaWxh YmxlIGZvciB0aGUgdGFyZ2V0IGFyY2gsIG90aGVyd2lzZSBidWlsZCBpdC4KLSAgICBwa2dfYXZh aWxhYmxlICdjcm9zcy12cGtnLWR1bW15Pj0wLjMwXzEnICRjcm9zcworICAgIHBrZ19hdmFpbGFi bGUgJ2Nyb3NzLXZwa2ctZHVtbXk+PTAuMzFfMScgJGNyb3NzCiAgICAgaWYgWyAkPyAtZXEgMCBd OyB0aGVuCiAgICAgICAgICRYQlBTX0xJQkVYRUNESVIvYnVpbGQuc2ggY3Jvc3MtdnBrZy1kdW1t eSBjcm9zcy12cGtnLWR1bW15IHBrZyAkY3Jvc3MgaW5pdCB8fCByZXR1cm4gJD8KICAgICBmaQpA QCAtNDAsNyArNDEsNyBAQCBwcmVwYXJlX2Nyb3NzX3N5c3Jvb3QoKSB7CiAgICAgZXJybG9nPSQo bWt0ZW1wKSB8fCBleGl0IDEKICAgICAkWEJQU19JTlNUQUxMX1hDTUQgLVN5ZmQgY3Jvc3MtdnBr Zy1kdW1teSAmPiRlcnJsb2cKICAgICBydmFsPSQ/Ci0gICAgaWYgWyAkcnZhbCAtbmUgMCAtYSAk cnZhbCAtbmUgMTcgXTsgdGhlbgorICAgIGlmIFsgJHJ2YWwgLW5lIDAgXTsgdGhlbgogICAgICAg ICBtc2dfcmVkICJmYWlsZWQgdG8gaW5zdGFsbCBjcm9zcy12cGtnLWR1bW15IChlcnJvciAkcnZh bClcbiIKICAgICAgICAgY2F0ICRlcnJsb2cKICAgICAgICAgcm0gLWYgJGVycmxvZwpAQCAtNDgs MTEgKzQ5LDE1IEBAIHByZXBhcmVfY3Jvc3Nfc3lzcm9vdCgpIHsKICAgICBmaQogICAgIHJtIC1m ICRlcnJsb2cKICAgICAjIENyZWF0ZSB0b3AgbGV2ZWwgc3ltbGlua3MgaW4gc3lzcm9vdC4KLSAg ICBYQlBTX0FSQ0g9JFhCUFNfVEFSR0VUX01BQ0hJTkUgeGJwcy1yZWNvbmZpZ3VyZSAtciAkWEJQ U19DUk9TU19CQVNFIC1mIGJhc2UtZGlyZWN0b3JpZXMgYmFzZS1maWxlcyAmPi9kZXYvbnVsbAor ICAgIFhCUFNfQVJDSD0kWEJQU19UQVJHRVRfTUFDSElORSB4YnBzLXJlY29uZmlndXJlIC1yICRY QlBTX0NST1NTX0JBU0UgLWYgYmFzZS1maWxlcyAmPi9kZXYvbnVsbAogICAgICMgQ3JlYXRlIGEg c3lzcm9vdC9pbmNsdWRlIGFuZCBzeXNyb290L2xpYiBzeW1saW5rIGp1c3QgaW4gY2FzZS4KICAg ICBsbiAtcyB1c3IvaW5jbHVkZSAke1hCUFNfQ1JPU1NfQkFTRX0vaW5jbHVkZQogICAgIGxuIC1z IHVzci9saWIgJHtYQlBTX0NST1NTX0JBU0V9L2xpYgogCisgICAgaW5zdGFsbF9jcm9zc19wa2cg JGNyb3NzIHx8IHJldHVybiAxCisKKyAgICB0b3VjaCAtZiAkc3RhdGVmaWxlCisKICAgICByZXR1 cm4gMAogfQogCmRpZmYgLS1naXQgYS9jb21tb24veGJwcy1zcmMvc2h1dGlscy9wa2d0YXJnZXQu c2ggYi9jb21tb24veGJwcy1zcmMvc2h1dGlscy9wa2d0YXJnZXQuc2gKaW5kZXggYTdiZTYyNDE3 M2UuLjdkM2VkMWM3OGY0IDEwMDY0NAotLS0gYS9jb21tb24veGJwcy1zcmMvc2h1dGlscy9wa2d0 YXJnZXQuc2gKKysrIGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvcGtndGFyZ2V0LnNoCkBAIC01 NCw2ICs1NCwxMCBAQCByZW1vdmVfcGtnX2F1dG9kZXBzKCkgewogICAgICRYQlBTX1JFQ09ORklH VVJFX0NNRCAtYSA+PiAkdG1wbG9nZiAyPiYxCiAgICAgZWNobyB5ZXMgfCAkWEJQU19SRU1PVkVf Q01EIC1SeW9kID4+ICR0bXBsb2dmIDI+JjEKICAgICBydmFsPSQ/CisgICAgaWYgWyAkcnZhbCAt ZXEgMCBdOyB0aGVuCisgICAgICAgIGVjaG8geWVzIHwgJFhCUFNfUkVNT1ZFX0NNRCAtUnlvZCA+ PiAkdG1wbG9nZiAyPiYxCisgICAgICAgIHJ2YWw9JD8KKyAgICBmaQogCiAgICAgaWYgWyAkcnZh bCAtbmUgMCBdOyB0aGVuCiAgICAgICAgIG1zZ19yZWQgIiR7cGtndmVyOi14YnBzLXNyY306IGZh aWxlZCB0byByZW1vdmUgYXV0b2RlcHM6IChyZXR1cm5lZCAkcnZhbClcbiIKZGlmZiAtLWdpdCBh L2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL3Nob3cuc2ggYi9jb21tb24veGJwcy1zcmMvc2h1dGls cy9zaG93LnNoCmluZGV4IGUyZmM5NTY1MTRlLi42N2IyZWMxNDgxMCAxMDA2NDQKLS0tIGEvY29t bW9uL3hicHMtc3JjL3NodXRpbHMvc2hvdy5zaAorKysgYi9jb21tb24veGJwcy1zcmMvc2h1dGls cy9zaG93LnNoCkBAIC02MSw0NCArNjEsMjIgQEAgc2hvd19hdmFpbCgpIHsKIH0KIAogc2hvd19w a2dfYnVpbGRfZGVwZW5kcygpIHsKLSAgICBsb2NhbCBmIHggX3BrZ25hbWUgX3NyY3BrZyBfZGVw IGZvdW5kIHJlc3VsdAorICAgIGxvY2FsIGYgeCBfcGtnbmFtZSBfc3JjcGtnIGZvdW5kIHJlc3Vs dAogICAgIGxvY2FsIF9kZXBzPSIkMSIKIAogICAgIHJlc3VsdD0kKG1rdGVtcCkgfHwgZXhpdCAx CiAKICAgICAjIGJ1aWxkIHRpbWUgZGVwcwogICAgIGZvciBmIGluICR7X2RlcHN9OyBkbwotICAg ICAgICAjIGlnbm9yZSB2aXJ0dWFsIGRlcHMKLSAgICAgICAgbG9jYWwgX3Jwa2c9IiR7ZiVcPyp9 IgotICAgICAgICBsb2NhbCBfdnBrZz0iJHtmIypcP30iCi0KICAgICAgICAgIyBpZ25vcmUgdmly dHVhbCBkZXBlbmRlbmNpZXMKLSAgICAgICAgaWYgWyAiJHtfcnBrZ30iICE9ICIke192cGtnfSIg XTsgdGhlbgotICAgICAgICAgICAgZj0iJHtfdnBrZ30iCi0gICAgICAgIGZpCisgICAgICAgIFtb ICR7ZiVcPyp9ICE9ICR7ZiMqXD99IF1dICYmIGY9JHtmIypcP30KICAgICAgICAgdW5zZXQgZm91 bmQKICAgICAgICAgIyBjaGVjayBmb3Igc3VicGtncwogICAgICAgICBmb3IgeCBpbiAke3N1YnBh Y2thZ2VzfTsgZG8KLSAgICAgICAgICAgIF9wa2duYW1lPSIkKCRYQlBTX1VIRUxQRVJfQ01EIGdl dHBrZ2RlcG5hbWUgJGYgMj4vZGV2L251bGwpIgotICAgICAgICAgICAgaWYgWyAteiAiJHtfcGtn bmFtZX0iIF07IHRoZW4KLSAgICAgICAgICAgICAgICBfcGtnbmFtZT0iJCgkWEJQU19VSEVMUEVS X0NNRCBnZXRwa2duYW1lICRmIDI+L2Rldi9udWxsKSIKLSAgICAgICAgICAgIGZpCi0gICAgICAg ICAgICBpZiBbICIke19wa2duYW1lfSIgPSAiJHgiIF07IHRoZW4KLSAgICAgICAgICAgICAgICBm b3VuZD0xCi0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIGZpCisgICAgICAgICAg ICBbWyAkZiA9PSAkeCBdXSAmJiBmb3VuZD0xICYmIGJyZWFrCiAgICAgICAgIGRvbmUKLSAgICAg ICAgaWYgWyAtbiAiJGZvdW5kIiBdOyB0aGVuCi0gICAgICAgICAgICBjb250aW51ZQotICAgICAg ICBmaQotICAgICAgICBfcGtnbmFtZT0iJCgkWEJQU19VSEVMUEVSX0NNRCBnZXRwa2dkZXBuYW1l ICRmIDI+L2Rldi9udWxsKSIKLSAgICAgICAgaWYgWyAteiAiJHtfcGtnbmFtZX0iIF07IHRoZW4K LSAgICAgICAgICAgIF9wa2duYW1lPSIkKCRYQlBTX1VIRUxQRVJfQ01EIGdldHBrZ25hbWUgJGYg Mj4vZGV2L251bGwpIgotICAgICAgICBmaQotICAgICAgICBpZiBbIC16ICIke19wa2duYW1lfSIg XTsgdGhlbgotICAgICAgICAgICAgX3BrZ25hbWU9IiRmIgotICAgICAgICBmaQotICAgICAgICBf cGtnbmFtZT0ke19wa2duYW1lLy0zMmJpdH0KKyAgICAgICAgW1sgJGZvdW5kIF1dICYmIGNvbnRp bnVlCisgICAgICAgIF9wa2duYW1lPSR7Zi8tMzJiaXR9CiAgICAgICAgIF9zcmNwa2c9JChyZWFk bGluayAtZiAke1hCUFNfU1JDUEtHRElSfS8ke19wa2duYW1lfSkKICAgICAgICAgX3NyY3BrZz0k e19zcmNwa2cjIyovfQogICAgICAgICBlY2hvICIke19zcmNwa2d9IiA+PiAkcmVzdWx0CkBAIC0x MDgsMTggKzg2LDE1IEBAIHNob3dfcGtnX2J1aWxkX2RlcGVuZHMoKSB7CiB9CiAKIHNob3dfcGtn X2J1aWxkX2RlcHMoKSB7Ci0gICAgc2V0dXBfcGtnX2RlcGVuZHMKLSAgICBzaG93X3BrZ19idWls ZF9kZXBlbmRzICIke2hvc3RfYnVpbGRfZGVwZW5kc30gJHtidWlsZF9kZXBlbmRzfSAke3J1bl9k ZXBlbmRzfSIKKyAgICBzaG93X3BrZ19idWlsZF9kZXBlbmRzICIke2hvc3RtYWtlZGVwZW5kc30g JHttYWtlZGVwZW5kc30gJChzZXR1cF9wa2dfZGVwZW5kcyAnJyAxKSIKIH0KIAogc2hvd19wa2df aG9zdG1ha2VkZXBlbmRzKCkgewotICAgIHNldHVwX3BrZ19kZXBlbmRzCi0gICAgc2hvd19wa2df YnVpbGRfZGVwZW5kcyAiJHtob3N0X2J1aWxkX2RlcGVuZHN9IgorICAgIHNob3dfcGtnX2J1aWxk X2RlcGVuZHMgIiR7aG9zdG1ha2VkZXBlbmRzfSIKIH0KIAogc2hvd19wa2dfbWFrZWRlcGVuZHMo KSB7Ci0gICAgc2V0dXBfcGtnX2RlcGVuZHMKLSAgICBzaG93X3BrZ19idWlsZF9kZXBlbmRzICIk e2J1aWxkX2RlcGVuZHN9IgorICAgIHNob3dfcGtnX2J1aWxkX2RlcGVuZHMgIiR7bWFrZWRlcGVu ZHN9IgogfQogCiBzaG93X3BrZ19idWlsZF9vcHRpb25zKCkgewpkaWZmIC0tZ2l0IGEveGJwcy1z cmMgYi94YnBzLXNyYwppbmRleCAyM2Q2MTY0YjE4YS4uYzdjNDFmNDcxOTMgMTAwNzU1Ci0tLSBh L3hicHMtc3JjCisrKyBiL3hicHMtc3JjCkBAIC0xLDggKzEsNiBAQAogIyEvYmluL2Jhc2gKICMg dmltOiBzZXQgdHM9NCBzdz00IGV0OgogCi1yZWFkb25seSBQUk9HTkFNRT0iJHswIyMqL30iCi0K IHByaW50X2Nyb3NzX3RhcmdldHMoKSB7CiAgICAgbG9jYWwgZgogICAgIGZvciBmIGluIGNvbW1v bi9jcm9zcy1wcm9maWxlcy8qLnNoOyBkbwpAQCAtMjEwLDcgKzIwOCw3IEBAIF9FT0YKIGNoZWNr X3JlcWhvc3RfdXRpbHMoKSB7CiAgICAgbG9jYWwgYnJva2VuCiAKLSAgICBbIC1uICIkSU5fQ0hS T09UIiBdICYmIHJldHVybiAwCisgICAgWyAiJElOX0NIUk9PVCIgXSAmJiByZXR1cm4gMAogCiAg ICAgZm9yIGYgaW4gJHtSRVFIT1NUX1VUSUxTfTsgZG8KICAgICAgICAgaWYgISBjb21tYW5kIC12 ICR7Zn0gJj4vZGV2L251bGw7IHRoZW4KQEAgLTIxOCw3ICsyMTYsNyBAQCBjaGVja19yZXFob3N0 X3V0aWxzKCkgewogICAgICAgICAgICAgYnJva2VuPTEKICAgICAgICAgZmkKICAgICBkb25lCi0g ICAgWyAtbiAiJGJyb2tlbiIgXSAmJiBleGl0IDEKKyAgICBbICIkYnJva2VuIiBdICYmIGV4aXQg MQogICAgIFsgLXogIiQxIiBdICYmIHJldHVybiAwCiAKICAgICBmb3IgZiBpbiAke1JFUUhPU1Rf VVRJTFNfQk9PVFNUUkFQfTsgZG8KQEAgLTIyNywyNCArMjI1LDcgQEAgY2hlY2tfcmVxaG9zdF91 dGlscygpIHsKICAgICAgICAgICAgIGJyb2tlbj0xCiAgICAgICAgIGZpCiAgICAgZG9uZQotICAg IFsgLW4gIiRicm9rZW4iIF0gJiYgZXhpdCAxCi19Ci0KLWNoZWNrX2NvbmZpZ192YXJzKCkgewot ICAgIGlmIFsgLXMgIiRYQlBTX0NPTkZJR19GSUxFIiBdOyB0aGVuCi0gICAgICAgIC4gJFhCUFNf Q09ORklHX0ZJTEUgJj4vZGV2L251bGwKLSAgICBmaQotICAgIGlmIFsgLXogIiRYQlBTX01BU1RF UkRJUiIgXTsgdGhlbgotICAgICAgICBleHBvcnQgWEJQU19NQVNURVJESVI9IiR7WEJQU19ESVNU RElSfS9tYXN0ZXJkaXIiCi0gICAgZmkKLSAgICBpZiBbIC16ICIkWEJQU19IT1NURElSIiBdOyB0 aGVuCi0gICAgICAgIGV4cG9ydCBYQlBTX0hPU1RESVI9IiR7WEJQU19ESVNURElSfS9ob3N0ZGly IgotICAgICAgICBbICEgLWQgJFhCUFNfSE9TVERJUiBdICYmIG1rZGlyIC1wICRYQlBTX0hPU1RE SVIKLSAgICBmaQotICAgIGlmIFsgLWQgIiRYQlBTX01BU1RFUkRJUiIgLWEgISAtdyAiJFhCUFNf TUFTVEVSRElSIiBdOyB0aGVuCi0gICAgICAgIGVjaG8gIkVSUk9SOiBub3QgZW5vdWdoIHBlcm1z IGZvciBtYXN0ZXJkaXIgJFhCUFNfTUFTVEVSRElSLiIKLSAgICAgICAgZXhpdCAxCi0gICAgZmkK KyAgICBbICIkYnJva2VuIiBdICYmIGV4aXQgMQogfQogCiBjaGVja19idWlsZF9yZXF1aXJlbWVu dHMoKSB7CkBAIC0yNjQsMjAgKzI0NSw0MiBAQCBjaGVja19idWlsZF9yZXF1aXJlbWVudHMoKSB7 CiAgICAgZmkKIH0KIAorY2hyb290X2NoZWNrKCkgeworICAgIGlmIFsgLWYgJFhCUFNfTUFTVEVS RElSLy54YnBzX2Nocm9vdF9pbml0IC1vICIkWEJQU19DSFJPT1RfQ01EIiA9ICJldGhlcmVhbCIg XTsgdGhlbgorICAgICAgICBleHBvcnQgQ0hST09UX1JFQURZPTEKKyAgICBmaQorfQorCitjaGVj a19uYXRpdmVfYXJjaCgpIHsKKyAgICBpZiBbICIkQ0hST09UX1JFQURZIiBdOyB0aGVuCisgICAg ICAgIGlmIFsgLXMgJFhCUFNfTUFTVEVSRElSLy54YnBzX2Nocm9vdF9pbml0IF07IHRoZW4KKyAg ICAgICAgICAgIGV4cG9ydCBYQlBTX0FSQ0g9JCg8JFhCUFNfTUFTVEVSRElSLy54YnBzX2Nocm9v dF9pbml0KQorICAgICAgICBlbHNlCisgICAgICAgICAgICBleHBvcnQgWEJQU19BUkNIPSQoeGJw cy11aGVscGVyIGFyY2gpCisgICAgICAgIGZpCisgICAgZWxzZQorICAgICAgICBMREQ9JChsZGQg LS12ZXJzaW9uIDI+JjF8aGVhZCAtMSkKKyAgICAgICAgaWYgW1sgJExERCA9PSAqbXVzbCogXV07 IHRoZW4KKyAgICAgICAgICAgIGV4cG9ydCBYQlBTX0FSQ0g9JHtYQlBTX01BQ0hJTkUlLW11c2x9 LW11c2wKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgIyBYQlBTX0FSQ0ggPT0gJCh1bmFtZSAt bSkKKyAgICAgICAgICAgIGV4cG9ydCBYQlBTX0FSQ0g9JCh1bmFtZSAtbSkKKyAgICAgICAgZmkK KyAgICBmaQorfQorCiBpbnN0YWxsX2Jib290c3RyYXAoKSB7Ci0gICAgWyAtbiAiJENIUk9PVF9S RUFEWSIgXSAmJiByZXR1cm4KKyAgICBbICIkQ0hST09UX1JFQURZIiBdICYmIHJldHVybgogICAg IGlmIFsgIiQxIiA9ICJib290c3RyYXAiIF07IHRoZW4KICAgICAgICAgdW5zZXQgWEJQU19UQVJH RVRfUEtHIFhCUFNfSU5TVEFMTF9BUkdTCiAgICAgZWxzZQogICAgICAgICBYQlBTX1RBUkdFVF9Q S0c9IiQxIgogICAgIGZpCi0gICAgaWYgWyAtbiAiJFhCUFNfU0tJUF9SRU1PVEVSRVBPUyIgXTsg dGhlbgotICAgICAgICB1bnNldCBYQlBTX0lOU1RBTExfQVJHUwotICAgIGZpCisgICAgWyAiJFhC UFNfU0tJUF9SRU1PVEVSRVBPUyIgXSAmJiB1bnNldCBYQlBTX0lOU1RBTExfQVJHUwogICAgICMg YmluYXJ5IGJvb3RzdHJhcAogICAgIG1zZ19ub3JtYWwgIkluc3RhbGxpbmcgYm9vdHN0cmFwIGZy b20gYmluYXJ5IHBhY2thZ2UgcmVwb3NpdG9yaWVzLi4uXG4iCiAgICAgIyBYQlBTX1RBUkdFVF9Q S0cgPT0gYXJjaAotICAgIGlmIFsgLW4gIiRYQlBTX1RBUkdFVF9QS0ciIF07IHRoZW4KKyAgICBp ZiBbICIkWEJQU19UQVJHRVRfUEtHIiBdOyB0aGVuCiAgICAgICAgIF9ib290c3RyYXBfYXJjaD0i ZW52IFhCUFNfVEFSR0VUX0FSQ0g9JFhCUFNfVEFSR0VUX1BLRyIKICAgICAgICAgaWYgWyAiJHtY QlBTX1RBUkdFVF9QS0d9IiAhPSAiJHtYQlBTX1RBUkdFVF9QS0cjKi19IiBdOyB0aGVuCiAgICAg ICAgICAgICBfc3ViYXJjaD0iLSR7WEJQU19UQVJHRVRfUEtHIyotfSIKQEAgLTMwOCwxNyArMzEx LDE1IEBAIHJlY29uZmlndXJlX2Jvb3RzdHJhcF9wa2dzKCkgewogICAgICMgUmVjb25maWd1cmUg Y2EtY2VydGlmaWNhdGVzLgogICAgIG1zZ19ub3JtYWwgIlJlY29uZmlndXJpbmcgYm9vdHN0cmFw IHBhY2thZ2VzLi4uXG4iCiAgICAgZm9yIGYgaW4gJHtwa2dzfTsgZG8KLSAgICAgICAgaWYgeGJw cy1xdWVyeSAkZiAmPi9kZXYvbnVsbDsgdGhlbgotICAgICAgICAgICAgeGJwcy1yZWNvbmZpZ3Vy ZSAtZiAkZgorICAgICAgICBpZiB4YnBzLXF1ZXJ5IC1yICRYQlBTX01BU1RFUkRJUiAkZiAmPi9k ZXYvbnVsbDsgdGhlbgorICAgICAgICAgICAgeGJwcy1yZWNvbmZpZ3VyZSAtciAkWEJQU19NQVNU RVJESVIgLWYgJGYKICAgICAgICAgZmkKICAgICBkb25lCiAgICAgdG91Y2ggLWYgJHN0YXRlZmls ZQogfQogCiBib290c3RyYXBfdXBkYXRlKCkgewotICAgIGlmIFsgLXogIiRDSFJPT1RfUkVBRFki IF07IHRoZW4KLSAgICAgICAgcmV0dXJuCi0gICAgZmkKKyAgICBbIC16ICIkQ0hST09UX1JFQURZ IiBdICYmIHJldHVybgogICAgIHJlbW92ZV9wa2dfYXV0b2RlcHMKICAgICBtc2dfbm9ybWFsICJ4 YnBzLXNyYzogY2xlYW5pbmcgdXAgbWFzdGVyZGlyLi4uXG4iCiAgICAgcm0gLXJmICRYQlBTX01B U1RFUkRJUi9idWlsZGRpciAkWEJQU19NQVNURVJESVIvZGVzdGRpcgpAQCAtMzQ3LDcgKzM0OCw3 IEBAIG1hc3RlcmRpcl96YXAoKSB7CiAKIGV4aXRfZnVuYygpIHsKICAgICB3YWl0Ci0gICAgaWYg WyAtbiAiJHNvdXJjZXBrZyIgXTsgdGhlbgorICAgIGlmIFsgIiRzb3VyY2Vwa2ciIF07IHRoZW4K ICAgICAgICAgcmVtb3ZlX3BrZyAkWEJQU19DUk9TU19CVUlMRAogICAgIGZpCiAgICAgaWYgWyAt eiAiJElOX0NIUk9PVCIgXTsgdGhlbgpAQCAtMzkwLDE0ICszOTEsMTcgQEAgc2V0dXBfZGlzdGZp bGVzX21pcnJvcigpIHsKICAgICBkb25lCiB9CiAKLXJlYWRvbmx5IFhCUFNfVkVSU0lPTl9SRVE9 IjAuNTUiCi1yZWFkb25seSBYQlBTX1ZFUlNJT049JCh4YnBzLXVoZWxwZXIgLVZ8YXdrICd7cHJp bnQgJDJ9JykKLXJlYWRvbmx5IFhCUFNfU1JDX1ZFUlNJT049IjExMyIKLWV4cG9ydCBYQlBTX01B Q0hJTkU9JCh4YnBzLXVoZWxwZXIgYXJjaCkKLQogIwogIyBtYWluKCkKICMKK3JlYWRvbmx5IFBS T0dOQU1FPSIkezAjIyovfSIKK3JlYWRvbmx5IFhCUFNfVkVSU0lPTl9SRVE9IjAuNTUiCitYQlBT X1ZFUlNJT049JCh4YnBzLXVoZWxwZXIgLVYpCitYQlBTX1ZFUlNJT049JHtYQlBTX1ZFUlNJT04l JUFQSSp9CitYQlBTX1ZFUlNJT049JHtYQlBTX1ZFUlNJT04jIyo6fQorcmVhZG9ubHkgWEJQU19T UkNfVkVSU0lPTj0iMTEzIgorZXhwb3J0IFhCUFNfTUFDSElORT0kKHhicHMtdWhlbHBlciAtQyAv ZGV2L251bGwgYXJjaCkKKwogWEJQU19PUFRJT05TPQogWEJQU19PUFRTVFJJTkc9IjFhOkNFZmdH aEg6aUlqOkxtOk5vOnFRcjp0ViIKIApAQCAtNDA3LDI2ICs0MTEsMjYgQEAgZXZhbCBzZXQgLS0g JChnZXRvcHQgIiRYQlBTX09QVFNUUklORyIgIiRAIik7CiB3aGlsZSBnZXRvcHRzICIkWEJQU19P UFRTVFJJTkciIG9wdDsgZG8KICAgICBjYXNlICRvcHQgaW4KICAgICAgICAgMSkgZXhwb3J0IFhC UFNfQlVJTERfT05MWV9PTkVfUEtHPXllczsgWEJQU19PUFRJT05TKz0iIC0xIjs7Ci0gICAgICAg IGEpIHJlYWRvbmx5IFhCUFNfQ1JPU1NfQlVJTEQ9IiRPUFRBUkciOyBYQlBTX09QVElPTlMrPSIg LWEgJE9QVEFSRyI7OwotICAgICAgICBDKSByZWFkb25seSBYQlBTX0tFRVBfQUxMPTE7IFhCUFNf T1BUSU9OUys9IiAtQyI7OworICAgICAgICBhKSBleHBvcnQgWEJQU19DUk9TU19CVUlMRD0iJE9Q VEFSRyI7IFhCUFNfT1BUSU9OUys9IiAtYSAkT1BUQVJHIjs7CisgICAgICAgIEMpIGV4cG9ydCBY QlBTX0tFRVBfQUxMPTE7IFhCUFNfT1BUSU9OUys9IiAtQyI7OwogICAgICAgICBFKSBleHBvcnQg WEJQU19CSU5QS0dfRVhJU1RTPTE7IFhCUFNfT1BUSU9OUys9IiAtRSI7OwotICAgICAgICBmKSBy ZWFkb25seSBYQlBTX0JVSUxEX0ZPUkNFTU9ERT0xOyBYQlBTX09QVElPTlMrPSIgLWYiOzsKLSAg ICAgICAgRykgcmVhZG9ubHkgWEJQU19VU0VfR0lUX1JFVlM9MTsgWEJQU19PUFRJT05TKz0iIC1H Ijs7Ci0gICAgICAgIGcpIHJlYWRvbmx5IFhCUFNfREVCVUdfUEtHUz0xOyBYQlBTX09QVElPTlMr PSIgLWciOzsKLSAgICAgICAgSCkgcmVhZG9ubHkgWEJQU19IT1NURElSPSIkKHJlYWRsaW5rIC1m ICRPUFRBUkcgMj4vZGV2L251bGwpIjsgWEJQU19PUFRJT05TKz0iIC1IICRYQlBTX0hPU1RESVIi OzsKKyAgICAgICAgZikgZXhwb3J0IFhCUFNfQlVJTERfRk9SQ0VNT0RFPTE7IFhCUFNfT1BUSU9O Uys9IiAtZiI7OworICAgICAgICBHKSBleHBvcnQgWEJQU19VU0VfR0lUX1JFVlM9MTsgWEJQU19P UFRJT05TKz0iIC1HIjs7CisgICAgICAgIGcpIGV4cG9ydCBYQlBTX0RFQlVHX1BLR1M9MTsgWEJQ U19PUFRJT05TKz0iIC1nIjs7CisgICAgICAgIEgpIGV4cG9ydCBYQlBTX0hPU1RESVI9IiQocmVh ZGxpbmsgLWYgJE9QVEFSRyAyPi9kZXYvbnVsbCkiOyBYQlBTX09QVElPTlMrPSIgLUggJFhCUFNf SE9TVERJUiI7OwogICAgICAgICBoKSB1c2FnZSAmJiBleGl0IDA7OwogICAgICAgICBpKSBleHBv cnQgWEJQU19JTkZPUk1BVElWRV9SVU49MTsgWEJQU19PUFRJT05TKz0iIC1pIjs7Ci0gICAgICAg IEkpIHJlYWRvbmx5IFhCUFNfU0tJUF9ERVBTPTE7IFhCUFNfT1BUSU9OUys9IiAtSSI7OworICAg ICAgICBJKSBleHBvcnQgWEJQU19TS0lQX0RFUFM9MTsgWEJQU19PUFRJT05TKz0iIC1JIjs7CiAg ICAgICAgIGopIGV4cG9ydCBYQlBTX01BS0VKT0JTPSIkT1BUQVJHIjsgWEJQU19PUFRJT05TKz0i IC1qICRPUFRBUkciOzsKICAgICAgICAgTCkgZXhwb3J0IE5PQ09MT1JTPTE7IFhCUFNfT1BUSU9O Uys9IiAtTCI7OwotICAgICAgICBtKSByZWFkb25seSBYQlBTX01BU1RFUkRJUj0kKHJlYWRsaW5r IC1mICRPUFRBUkcgMj4vZGV2L251bGwpOyBYQlBTX09QVElPTlMrPSIgLW0gJFhCUFNfTUFTVEVS RElSIjs7Ci0gICAgICAgIE4pIHJlYWRvbmx5IFhCUFNfU0tJUF9SRU1PVEVSRVBPUz0xOyBYQlBT X09QVElPTlMrPSIgLU4iOzsKLSAgICAgICAgbykgcmVhZG9ubHkgWEJQU19QS0dfT1BUSU9OUz0i JE9QVEFSRyI7IFhCUFNfT1BUSU9OUys9IiAtbyAkT1BUQVJHIjs7CisgICAgICAgIG0pIGV4cG9y dCBYQlBTX01BU1RFUkRJUj0kKHJlYWRsaW5rIC1mICRPUFRBUkcgMj4vZGV2L251bGwpOyBYQlBT X09QVElPTlMrPSIgLW0gJFhCUFNfTUFTVEVSRElSIjs7CisgICAgICAgIE4pIGV4cG9ydCBYQlBT X1NLSVBfUkVNT1RFUkVQT1M9MTsgWEJQU19PUFRJT05TKz0iIC1OIjs7CisgICAgICAgIG8pIGV4 cG9ydCBYQlBTX1BLR19PUFRJT05TPSIkT1BUQVJHIjsgWEJQU19PUFRJT05TKz0iIC1vICRPUFRB UkciOzsKICAgICAgICAgcSkgZXhwb3J0IFhCUFNfUVVJRVQ9MTsgWEJQU19PUFRJT05TKz0iIC1x Ijs7CiAgICAgICAgIFEpIGV4cG9ydCBYQlBTX0NIRUNLX1BLR1M9MTsgWEJQU19PUFRJT05TKz0i IC1RIjs7Ci0gICAgICAgIHIpIHJlYWRvbmx5IFhCUFNfQUxUX1JFUE9TSVRPUlk9IiRPUFRBUkci OyBYQlBTX09QVElPTlMrPSIgLXIgJE9QVEFSRyI7OworICAgICAgICByKSBleHBvcnQgWEJQU19B TFRfUkVQT1NJVE9SWT0iJE9QVEFSRyI7IFhCUFNfT1BUSU9OUys9IiAtciAkT1BUQVJHIjs7CiAg ICAgICAgIHQpIGV4cG9ydCBYQlBTX1RFTVBfTUFTVEVSRElSPTE7IFhCUFNfT1BUSU9OUys9IiAt dCAtQyI7OwotICAgICAgICBWKSBlY2hvICRYQlBTX1NSQ19WRVJTSU9OICYmIGV4aXQgMDs7Cisg ICAgICAgIFYpIGVjaG8gInhicHMtc3JjLSRYQlBTX1NSQ19WRVJTSU9OICQoeGJwcy11aGVscGVy IC1WKSIgJiYgZXhpdCAwOzsKICAgICAgICAgLS0pIHNoaWZ0OyBicmVhazs7CiAgICAgZXNhYwog ZG9uZQpAQCAtNDM3LDEwICs0NDEsMTEgQEAgc2hpZnQgJCgoJE9QVElORCAtIDEpKQogIyBDaGVj ayBpZiBzdGRvdXQgaXMgYSB0dHk7IGlmIGZhbHNlIGRpc2FibGUgY29sb3JzLgogdGVzdCAtdCAx IHx8IGV4cG9ydCBOT0NPTE9SUz0xCiAjIGh0dHA6Ly9uby1jb2xvci5vcmcKLWlmIFsgLW4gIiR7 Tk9fQ09MT1IreH0iIF07IHRoZW4KK2lmIFsgIiR7Tk9fQ09MT1IreH0iIF07IHRoZW4KICAgICBl eHBvcnQgTk9DT0xPUlM9MQogZmkKIAorIyBzYW5lIHVtYXNrCiB1bWFzayAwMjIKIAogIwpAQCAt NDU2LDIyICs0NjEsMTMgQEAgcmVhZG9ubHkgUkVRSE9TVF9VVElMUz0ieGJwcy1pbnN0YWxsIHhi cHMtcXVlcnkgeGJwcy1yaW5kZXggeGJwcy11aGVscGVyIFwKIAogY2hlY2tfcmVxaG9zdF91dGls cwogCi0jIFRyeSB1c2luZyBjaHJvb3QtZ2l0IHRoZW4gZ2l0IGZyb20gdGhlIGhvc3Qgc3lzdGVt Ci1pZiBjb21tYW5kIC12IGNocm9vdC1naXQgJj4vZGV2L251bGw7IHRoZW4KLQlYQlBTX0dJVF9D TUQ9JChjb21tYW5kIC12IGNocm9vdC1naXQpCi1lbGlmIGNvbW1hbmQgLXYgZ2l0ICY+L2Rldi9u dWxsOyB0aGVuCi0JWEJQU19HSVRfQ01EPSQoY29tbWFuZCAtdiBnaXQpCi1lbHNlCi0gICAgZWNo byAibmVpdGhlciBjaHJvb3QtZ2l0IG9yIGdpdCBhcmUgYXZhaWxhYmxlIGluIHlvdXIgc3lzdGVt ISIKLSAgICBleGl0IDEKLWZpCi0KLXJlYWRvbmx5IFhCUFNfR0lUX0NNRAotCi1pZiBbIC1uICIk SU5fQ0hST09UIiBdOyB0aGVuCisjCisjIFNldCBYQlBTX0NPTkZJR19GSUxFLCBYQlBTX0RJU1RE SVIsIFhCUFNfTUFTVEVSRElSCisjIGFuZCBYQlBTX0hPU1RESVIuCisjCitpZiBbICIkSU5fQ0hS T09UIiBdOyB0aGVuCiAgICAgcmVhZG9ubHkgWEJQU19DT05GSUdfRklMRT0vZXRjL3hicHMveGJw cy1zcmMuY29uZgogICAgIHJlYWRvbmx5IFhCUFNfRElTVERJUj0vdm9pZC1wYWNrYWdlcwotICAg ICMgbmVlZGVkIGJlZm9yZSBjYWxsIHRvIGNoZWNrX2NvbmZpZ192YXJzCiAgICAgcmVhZG9ubHkg WEJQU19NQVNURVJESVI9LwogICAgIHJlYWRvbmx5IFhCUFNfSE9TVERJUj0vaG9zdAogZWxzZQpA QCAtNDkxLDE4ICs0ODcsMzcgQEAgZWxzZQogICAgIGVsaWYgWyAtcyAkSE9NRS8ueGJwcy1zcmMu Y29uZiBdOyB0aGVuCiAgICAgICAgICMgLi4uIGZhbGxiYWNrIHRvIH4vLnhicHMtc3JjLmNvbmYg b3RoZXJ3aXNlLgogICAgICAgICByZWFkb25seSBYQlBTX0NPTkZJR19GSUxFPSRIT01FLy54YnBz LXNyYy5jb25mCi0gICAgICAgIC4gJFhCUFNfQ09ORklHX0ZJTEUKICAgICBmaQogZmkKKyMgUmVh ZCBzZXR0aW5ncyBmcm9tIGNvbmZpZyBmaWxlCitbIC1zICIkWEJQU19DT05GSUdfRklMRSIgXSAm JiAuICRYQlBTX0NPTkZJR19GSUxFICY+L2Rldi9udWxsCiAKLSMKLSMgQ2hlY2sgY29uZmlndXJh dGlvbiB2YXJzIGJlZm9yZSBhbnl0aW5nIGVsc2UsIGFuZCBzZXQgZGVmYXVsdHMgdmFycy4KLSMK LWNoZWNrX2NvbmZpZ192YXJzCisjIGlmIFhCUFNfTUFTVEVSRElSIHVuc2V0LCBkZWZhdWx0cyB0 byAkWEJQU19ESVNURElSL21hc3RlcmRpci4KKzogJHtYQlBTX01BU1RFUkRJUjo9JFhCUFNfRElT VERJUi9tYXN0ZXJkaXJ9CitbICEgLWQgJFhCUFNfTUFTVEVSRElSIF0gJiYgIG1rZGlyIC1wICRY QlBTX01BU1RFUkRJUgogCi1mb3IgZiBpbiAkWEJQU19ESVNURElSL2NvbW1vbi94YnBzLXNyYy9z aHV0aWxzLyouc2g7IGRvCi0gICAgWyAtciAkZiBdICYmIC4gJGYKLWRvbmUKKyMgaWYgWEJQU19I T1NURElSIHVuc2V0LCBkZWZhdWx0cyB0byAkWEJQU19ESVNURElSL2hvc3RkaXIuCis6ICR7WEJQ U19IT1NURElSOj0kWEJQU19ESVNURElSL2hvc3RkaXJ9CitbICEgLWQgJFhCUFNfSE9TVERJUiBd ICYmIG1rZGlyIC1wICRYQlBTX0hPU1RESVIKKworaWYgWyAtZCAiJFhCUFNfTUFTVEVSRElSIiAt YSAhIC13ICIkWEJQU19NQVNURVJESVIiIF07IHRoZW4KKyAgICBlY2hvICJFUlJPUjogY2FuJ3Qg d3JpdGUgdG8gbWFzdGVyZGlyICRYQlBTX01BU1RFUkRJUi4iCisgICAgZXhpdCAxCitlbGlmIFsg LWQgIiRYQlBTX0hPU1RESVIiIC1hICEgLXcgIiRYQlBTX0hPU1RESVIiIF07IHRoZW4KKyAgICBl Y2hvICJFUlJPUjogY2FuJ3Qgd3JpdGUgdG8gaG9zdGRpcjogJFhCUFNfSE9TVERJUi4iCisgICAg ZXhpdCAxCitmaQorCisjIFRyeSB1c2luZyBjaHJvb3QtZ2l0IHRoZW4gZ2l0IGZyb20gdGhlIGhv c3Qgc3lzdGVtCitpZiBjb21tYW5kIC12IGNocm9vdC1naXQgJj4vZGV2L251bGw7IHRoZW4KKyAg ICBYQlBTX0dJVF9DTUQ9JChjb21tYW5kIC12IGNocm9vdC1naXQpCitlbGlmIGNvbW1hbmQgLXYg Z2l0ICY+L2Rldi9udWxsOyB0aGVuCisgICAgWEJQU19HSVRfQ01EPSQoY29tbWFuZCAtdiBnaXQp CitlbHNlCisgICAgZWNobyAibmVpdGhlciBjaHJvb3QtZ2l0IG9yIGdpdCBhcmUgYXZhaWxhYmxl IGluIHlvdXIgc3lzdGVtISIKKyAgICBleGl0IDEKK2ZpCityZWFkb25seSBYQlBTX0dJVF9DTUQK IAogaWYgWyAtbiAiJFhCUFNfSE9TVERJUiIgXTsgdGhlbgogICAgIGV4cG9ydCBYQlBTX1JFUE9T SVRPUlk9JFhCUFNfSE9TVERJUi9iaW5wa2dzCkBAIC01MTYsODAgKzUzMSw2MiBAQCBmaQogaWYg WyAteiAiJFhCUFNfQUxUX1JFUE9TSVRPUlkiIF07IHRoZW4KICAgICBwdXNoZCAiJFBXRCIgJj4v ZGV2L251bGwKICAgICBjZCAkWEJQU19ESVNURElSCi0gICAgaWYgWyAtbiAiJElOX0NIUk9PVCIg XTsgdGhlbgotICAgICAgICBfZ2l0YnJhbmNoPSIkKGNocm9vdC1naXQgc3ltYm9saWMtcmVmIC0t c2hvcnQgSEVBRCAyPi9kZXYvbnVsbCkiCi0gICAgZWxzZQotICAgICAgICBfZ2l0YnJhbmNoPSIk KCRYQlBTX0dJVF9DTUQgc3ltYm9saWMtcmVmIC0tc2hvcnQgSEVBRCAyPi9kZXYvbnVsbCkiCi0g ICAgZmkKLSAgICBpZiBbIC1uICIke19naXRicmFuY2h9IiAtYSAiJHtfZ2l0YnJhbmNofSIgIT0g Im1hc3RlciIgXTsgdGhlbgorICAgIF9naXRicmFuY2g9IiQoJFhCUFNfR0lUX0NNRCBzeW1ib2xp Yy1yZWYgLS1zaG9ydCBIRUFEIDI+L2Rldi9udWxsKSIKKyAgICBpZiBbICIke19naXRicmFuY2h9 IiAtYSAiJHtfZ2l0YnJhbmNofSIgIT0gIm1hc3RlciIgXTsgdGhlbgogICAgICAgICBleHBvcnQg WEJQU19BTFRfUkVQT1NJVE9SWT0iJHtfZ2l0YnJhbmNofSIKICAgICAgICAgZXhwb3J0IFhCUFNf UkVQT1NJVE9SWT0iJHtYQlBTX1JFUE9TSVRPUll9LyR7X2dpdGJyYW5jaH0iCi0gICAgICAgIGlm IFsgLXogIiRJTl9DSFJPT1QiIF07IHRoZW4KLSAgICAgICAgICAgIG1zZ19ub3JtYWwgIlVzaW5n IFxgJFhCUFNfUkVQT1NJVE9SWVwnIGFzIGxvY2FsIHJlcG9zaXRvcnkuXG4iCi0gICAgICAgIGZp CiAgICAgIGZpCiAgICAgIHBvcGQgJj4vZGV2L251bGwKIGVsc2UKICAgICBleHBvcnQgWEJQU19S RVBPU0lUT1JZPSIke1hCUFNfUkVQT1NJVE9SWX0vJHtYQlBTX0FMVF9SRVBPU0lUT1JZfSIKLSAg ICBpZiBbIC16ICIkSU5fQ0hST09UIiBdOyB0aGVuCi0gICAgICAgIG1zZ19ub3JtYWwgIlVzaW5n IFxgJFhCUFNfUkVQT1NJVE9SWVwnIGFzIGxvY2FsIHJlcG9zaXRvcnkuXG4iCi0gICAgZmkKIGZp CiAKLWlmIFsgLW4gIiRJTl9DSFJPT1QiIF07IHRoZW4KK3JlYWRvbmx5IFhCUFNfU1JDUEtHRElS PSRYQlBTX0RJU1RESVIvc3JjcGtncworcmVhZG9ubHkgWEJQU19DT01NT05ESVI9JFhCUFNfRElT VERJUi9jb21tb24KK3JlYWRvbmx5IFhCUFNfU0hVVElMU0RJUj0kWEJQU19DT01NT05ESVIveGJw cy1zcmMvc2h1dGlscworcmVhZG9ubHkgWEJQU19UUklHR0VSU0RJUj0kWEJQU19TUkNQS0dESVIv eGJwcy10cmlnZ2Vycy9maWxlcworcmVhZG9ubHkgWEJQU19DUk9TU1BGRElSPSRYQlBTX0NPTU1P TkRJUi9jcm9zcy1wcm9maWxlcworcmVhZG9ubHkgWEJQU19CVUlMRFNUWUxFRElSPSRYQlBTX0NP TU1PTkRJUi9idWlsZC1zdHlsZQorcmVhZG9ubHkgWEJQU19MSUJFWEVDRElSPSRYQlBTX0NPTU1P TkRJUi94YnBzLXNyYy9saWJleGVjCityZWFkb25seSBYQlBTX0JVSUxESEVMUEVSRElSPSRYQlBT X0NPTU1PTkRJUi9idWlsZC1oZWxwZXIKKworaWYgWyAiJElOX0NIUk9PVCIgXTsgdGhlbgogICAg IHJlYWRvbmx5IFhCUFNfVUhFTFBFUl9DTUQ9InhicHMtdWhlbHBlciIKLSAgICByZWFkb25seSBY QlBTX0lOU1RBTExfQ01EPSJ4YnBzLWluc3RhbGwiCi0gICAgcmVhZG9ubHkgWEJQU19RVUVSWV9D TUQ9InhicHMtcXVlcnkiCi0gICAgcmVhZG9ubHkgWEJQU19SSU5ERVhfQ01EPSJ4YnBzLXJpbmRl eCIKKyAgICByZWFkb25seSBYQlBTX0lOU1RBTExfQ01EPSJ4YnBzLWluc3RhbGwgLS1yZXBvc2l0 b3J5PSRYQlBTX1JFUE9TSVRPUlkiCisgICAgcmVhZG9ubHkgWEJQU19RVUVSWV9DTUQ9InhicHMt cXVlcnkgLS1yZXBvc2l0b3J5PSRYQlBTX1JFUE9TSVRPUlkiCiAgICAgcmVhZG9ubHkgWEJQU19S RUNPTkZJR1VSRV9DTUQ9InhicHMtcmVjb25maWd1cmUiCiAgICAgcmVhZG9ubHkgWEJQU19SRU1P VkVfQ01EPSJ4YnBzLXJlbW92ZSIKLSAgICByZWFkb25seSBYQlBTX1NSQ1BLR0RJUj0vdm9pZC1w YWNrYWdlcy9zcmNwa2dzCi0gICAgcmVhZG9ubHkgWEJQU19DT01NT05ESVI9L3ZvaWQtcGFja2Fn ZXMvY29tbW9uCisgICAgcmVhZG9ubHkgWEJQU19DSEVDS1ZFUlNfQ01EPSJ4YnBzLWNoZWNrdmVy cyAtLXJlcG9zaXRvcnk9JFhCUFNfUkVQT1NJVE9SWSIKICAgICByZWFkb25seSBYQlBTX0RFU1RE SVI9L2Rlc3RkaXIKICAgICByZWFkb25seSBYQlBTX0JVSUxERElSPS9idWlsZGRpcgotICAgIHJl YWRvbmx5IFhCUFNfU0hVVElMU0RJUj0kWEJQU19DT01NT05ESVIveGJwcy1zcmMvc2h1dGlscwot ICAgIHJlYWRvbmx5IFhCUFNfVFJJR0dFUlNESVI9JFhCUFNfU1JDUEtHRElSL3hicHMtdHJpZ2dl cnMvZmlsZXMKLSAgICByZWFkb25seSBYQlBTX0NST1NTUEZESVI9JFhCUFNfQ09NTU9ORElSL2Ny b3NzLXByb2ZpbGVzCi0gICAgcmVhZG9ubHkgWEJQU19CVUlMRFNUWUxFRElSPSRYQlBTX0NPTU1P TkRJUi9idWlsZC1zdHlsZQotICAgIHJlYWRvbmx5IFhCUFNfTElCRVhFQ0RJUj0kWEJQU19DT01N T05ESVIveGJwcy1zcmMvbGliZXhlYwotICAgIHJlYWRvbmx5IFhCUFNfQlVJTERIRUxQRVJESVI9 JFhCUFNfQ09NTU9ORElSL2J1aWxkLWhlbHBlcgogZWxzZQogICAgIHJlYWRvbmx5IFhCUFNfVUhF TFBFUl9DTUQ9InhicHMtdWhlbHBlciAtciAkWEJQU19NQVNURVJESVIiCi0gICAgcmVhZG9ubHkg WEJQU19JTlNUQUxMX0NNRD0ieGJwcy1pbnN0YWxsIC1DIC9kZXYvbnVsbCAtYyAkWEJQU19IT1NU RElSL3JlcG9jYWNoZSAtLXJlcG9zaXRvcnk9JFhCUFNfUkVQT1NJVE9SWSAtciAkWEJQU19NQVNU RVJESVIiCi0gICAgcmVhZG9ubHkgWEJQU19RVUVSWV9DTUQ9InhicHMtcXVlcnkgLUMgL2Rldi9u dWxsIC1jICRYQlBTX0hPU1RESVIvcmVwb2NhY2hlIC1pIC0tcmVwb3NpdG9yeT0kWEJQU19SRVBP U0lUT1JZIC1yICRYQlBTX01BU1RFUkRJUiIKLSAgICByZWFkb25seSBYQlBTX1JJTkRFWF9DTUQ9 InhicHMtcmluZGV4IgorICAgIHJlYWRvbmx5IFhCUFNfSU5TVEFMTF9DTUQ9InhicHMtaW5zdGFs bCAtYyAkWEJQU19IT1NURElSL3JlcG9jYWNoZSAtLXJlcG9zaXRvcnk9JFhCUFNfUkVQT1NJVE9S WSAtciAkWEJQU19NQVNURVJESVIiCisgICAgcmVhZG9ubHkgWEJQU19RVUVSWV9DTUQ9InhicHMt cXVlcnkgLWMgJFhCUFNfSE9TVERJUi9yZXBvY2FjaGUgLS1yZXBvc2l0b3J5PSRYQlBTX1JFUE9T SVRPUlkgLXIgJFhCUFNfTUFTVEVSRElSIgogICAgIHJlYWRvbmx5IFhCUFNfUkVDT05GSUdVUkVf Q01EPSJ4YnBzLXJlY29uZmlndXJlIC1yICRYQlBTX01BU1RFUkRJUiIKICAgICByZWFkb25seSBY QlBTX1JFTU9WRV9DTUQ9InhicHMtcmVtb3ZlIC1yICRYQlBTX01BU1RFUkRJUiIKLSAgICByZWFk b25seSBYQlBTX1NSQ1BLR0RJUj0kWEJQU19ESVNURElSL3NyY3BrZ3MKLSAgICByZWFkb25seSBY QlBTX0NPTU1PTkRJUj0kWEJQU19ESVNURElSL2NvbW1vbgotICAgIHJlYWRvbmx5IFhCUFNfU0hV VElMU0RJUj0kWEJQU19DT01NT05ESVIveGJwcy1zcmMvc2h1dGlscworICAgIHJlYWRvbmx5IFhC UFNfQ0hFQ0tWRVJTX0NNRD0ieGJwcy1jaGVja3ZlcnMgLS1yZXBvc2l0b3J5PSRYQlBTX1JFUE9T SVRPUlkiCiAgICAgcmVhZG9ubHkgWEJQU19ERVNURElSPSRYQlBTX01BU1RFUkRJUi9kZXN0ZGly CiAgICAgcmVhZG9ubHkgWEJQU19CVUlMRERJUj0kWEJQU19NQVNURVJESVIvYnVpbGRkaXIKLSAg ICByZWFkb25seSBYQlBTX1RSSUdHRVJTRElSPSRYQlBTX1NSQ1BLR0RJUi94YnBzLXRyaWdnZXJz L2ZpbGVzCi0gICAgcmVhZG9ubHkgWEJQU19DUk9TU1BGRElSPSRYQlBTX0NPTU1PTkRJUi9jcm9z cy1wcm9maWxlcwotICAgIHJlYWRvbmx5IFhCUFNfQlVJTERTVFlMRURJUj0kWEJQU19DT01NT05E SVIvYnVpbGQtc3R5bGUKLSAgICByZWFkb25seSBYQlBTX0xJQkVYRUNESVI9JFhCUFNfQ09NTU9O RElSL3hicHMtc3JjL2xpYmV4ZWMKLSAgICByZWFkb25seSBYQlBTX0JVSUxESEVMUEVSRElSPSRY QlBTX0NPTU1PTkRJUi9idWlsZC1oZWxwZXIKIGZpCityZWFkb25seSBYQlBTX1JJTkRFWF9DTUQ9 InhicHMtcmluZGV4IgogcmVhZG9ubHkgWEJQU19GRVRDSF9DTUQ9InhicHMtZmV0Y2giCiByZWFk b25seSBYQlBTX0RJR0VTVF9DTUQ9InhicHMtZGlnZXN0IgogcmVhZG9ubHkgWEJQU19DTVBWRVJf Q01EPSJ4YnBzLXVoZWxwZXIgY21wdmVyIgogCiByZWFkb25seSBYQlBTX1RBUkdFVD0iJDEiCi1p ZiBbIC1uICIkMiIgXTsgdGhlbgoraWYgWyAiJDIiIF07IHRoZW4KICAgICBYQlBTX1RBUkdFVF9Q S0c9IiR7MiMjKi99IgogZmkKIAotY2hyb290X2NoZWNrKCkgewotICAgIGlmIFsgLWYgJFhCUFNf TUFTVEVSRElSLy54YnBzX2Nocm9vdF9pbml0IC1vICIkWEJQU19DSFJPT1RfQ01EIiA9ICJldGhl cmVhbCIgXTsgdGhlbgotICAgICAgICBleHBvcnQgQ0hST09UX1JFQURZPTEKLSAgICBmaQotfQot CisjIENoZWNrIGZvciBDSFJPT1RfUkVBRFkgYW5kIHNldCB1cCBYQlBTX0FSQ0ggZW52aXJvbm1l bnQgdmFyIGZvciB4YnBzLgogY2hyb290X2NoZWNrCitjaGVja19uYXRpdmVfYXJjaAogCisjIFJl Y29uZmlndXJlIHBrZ3MgZm9yIDMyYml0IG9uIHg4Nl82NCBhbmQgcmVleGVjIGl0c2VsZi4KKyMg WFhYOiBob3cgYWJvdXQgMzJiaXQgdXNlcmxhbmQgb24gNjRiaXQgQ1BVcz8gKHBwYywgYXJtLCBl dGMpLgogaWYgWyAteiAiJFhCUFNfUkVJTklUIiAtYSAtcyAkWEJQU19NQVNURVJESVIvLnhicHNf Y2hyb290X2luaXQgXTsgdGhlbgotICAgIGV4cG9ydCBYQlBTX0FSQ0g9JHtYQlBTX0FSQ0g6LSQo Y2F0ICRYQlBTX01BU1RFUkRJUi8ueGJwc19jaHJvb3RfaW5pdCl9CisgICAgZXhwb3J0IFhCUFNf QVJDSD0ke1hCUFNfQVJDSDotJCg8JFhCUFNfTUFTVEVSRElSLy54YnBzX2Nocm9vdF9pbml0KX0K ICAgICBpZiBbWyAkWEJQU19NQUNISU5FID09IHg4Nl82NCogXV0gJiYgW1sgJFhCUFNfQVJDSCA9 PSBpNjg2KiBdXTsgdGhlbgogICAgICAgICAjIHJlY29uZmlndXJlIHBrZ3MgdmlhIGxpbnV4MzIK ICAgICAgICAgbGludXgzMiB4YnBzLXJlY29uZmlndXJlIC1yICR7WEJQU19NQVNURVJESVJ9IC1h ICY+L2Rldi9udWxsCkBAIC01OTgsMjAgKzU5NSwyMSBAQCBpZiBbIC16ICIkWEJQU19SRUlOSVQi IC1hIC1zICRYQlBTX01BU1RFUkRJUi8ueGJwc19jaHJvb3RfaW5pdCBdOyB0aGVuCiAgICAgICAg IGV4ZWMgbGludXgzMiAkMCAke1hCUFNfT1BUSU9OU30gJEAKICAgICBmaQogZmkKLWlmIFsgLW4g IiRYQlBTX0FSQ0giIF07IHRoZW4KK2lmIFsgIiRYQlBTX0FSQ0giIF07IHRoZW4KICAgICBleHBv cnQgWEJQU19NQUNISU5FPSRYQlBTX0FSQ0gKIGZpCisjIEF0IHRoaXMgcG9pbnQgaWYgWEJQU19U QVJHRVRfTUFDSElORSBpc24ndCBkZWZpbmVkIHdlIGFzc3VtZQorIyBpdCdzIGEgbmF0aXZlIGJ1 aWxkLgogaWYgWyAteiAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIF07IHRoZW4KLSAgICBleHBvcnQg WEJQU19UQVJHRVRfTUFDSElORT0ke1hCUFNfQVJDSDo9JFhCUFNfTUFDSElORX0KKyAgICAgICAg ZXhwb3J0IFhCUFNfVEFSR0VUX01BQ0hJTkU9JFhCUFNfTUFDSElORQogZmkKIAotCiBleHBvcnQg WEJQU19TSFVUSUxTRElSIFhCUFNfQ1JPU1NQRkRJUiBYQlBTX1RSSUdHRVJTRElSIFwKLSAgICBY QlBTX1NSQ1BLR0RJUiBYQlBTX0NPTU1PTkRJUiBYQlBTX0JVSUxERElSIFhCUFNfUkVQT19ERUxU QVMgXAorICAgIFhCUFNfU1JDUEtHRElSIFhCUFNfQ09NTU9ORElSIFhCUFNfQlVJTERESVIgXAog ICAgIFhCUFNfUkVQT1NJVE9SWSBYQlBTX0FMVF9SRVBPU0lUT1JZIFhCUFNfU1JDRElTVERJUiBY QlBTX0RJR0VTVF9DTUQgXAogICAgIFhCUFNfVUhFTFBFUl9DTUQgWEJQU19JTlNUQUxMX0NNRCBY QlBTX1FVRVJZX0NNRCBYQlBTX0JVSUxEX09OTFlfT05FX1BLRyBcCi0gICAgWEJQU19SSU5ERVhf Q01EIFhCUFNfUkVDT05GSUdVUkVfQ01EIFhCUFNfUkVNT1ZFX0NNRCBcCi0gICAgWEJQU19DTVBW RVJfQ01EIFhCUFNfRkVUQ0hfQ01EIFhCUFNfVkVSU0lPTiBYQlBTX0FQSVZFUiBYQlBTX0JVSUxE U1RZTEVESVIgXAorICAgIFhCUFNfUklOREVYX0NNRCBYQlBTX1JFQ09ORklHVVJFX0NNRCBYQlBT X1JFTU9WRV9DTUQgWEJQU19DSEVDS1ZFUlNfQ01EIFwKKyAgICBYQlBTX0NNUFZFUl9DTUQgWEJQ U19GRVRDSF9DTUQgWEJQU19WRVJTSU9OIFhCUFNfQlVJTERTVFlMRURJUiBcCiAgICAgWEJQU19D UFBGTEFHUyBYQlBTX0NGTEFHUyBYQlBTX0NYWEZMQUdTIFhCUFNfRkZMQUdTIFhCUFNfTERGTEFH UyBcCiAgICAgWEJQU19NQUtFSk9CUyBYQlBTX0JVSUxEX0ZPUkNFTU9ERSBYQlBTX1VTRV9HSVRf UkVWUyBYQlBTX0RFQlVHX1BLR1MgXAogICAgIFhCUFNfQ0hFQ0tfUEtHUyBYQlBTX0NDQUNIRSBY QlBTX0RJU1RDQyBYQlBTX0RJU1RDQ19IT1NUUyBYQlBTX1NLSVBfREVQUyBcCkBAIC02MjksNyAr NjI3LDcgQEAgZm9yIGkgaW4gUkVQT1NJVE9SWSBERVNURElSIEJVSUxERElSIFNSQ0RJU1RESVI7 IGRvCiAgICAgdW5zZXQgdmFsCiBkb25lCiAKLSMgQSB0ZW1wb3JhcnkgbWFzdGVyZGlyIHJlcXVp cmVzIHhicHMtdWNocm9vdCg4KSBhbmQgLU8gdG8gdXNlIG92ZXJsYXlmcworIyBBIHRlbXBvcmFy eSBtYXN0ZXJkaXIgcmVxdWlyZXMgeGJwcy11Y2hyb290KDEpIGFuZCAtTyB0byB1c2Ugb3Zlcmxh eWZzCiAjIG9uIHRtcGZzIChhdmFpbGFibGUgd2l0aCB4YnBzLTAuNDUpLgogaWYgWyAteiAiJElO X0NIUk9PVCIgLWEgLW4gIiRYQlBTX1RFTVBfTUFTVEVSRElSIiBdOyB0aGVuCiAgICAgZXhwb3J0 IFhCUFNfQ0hST09UX0NNRD0idWNocm9vdCIKQEAgLTY0MCwzMSArNjM4LDM1IEBAIGZpCiAjCiBp ZiBbIC16ICIkSU5fQ0hST09UIiBdOyB0aGVuCiAgICAgIyBJbiBub24gY2hyb290IGNhc2UgYWx3 YXlzIHByZWZlciBob3N0IHRvb2xzLgotICAgIE1ZUEFUSD0iJFhCUFNfTUFTVEVSRElSL3Vzci9i aW46JFhCUFNfTUFTVEVSRElSL3Vzci9zYmluIgotICAgIGV4cG9ydCBQQVRIPSIkUEFUSDokTVlQ QVRIIgotZWxzZQotICAgIE1ZUEFUSD0iL3Vzci9iaW46L3Vzci9zYmluOi91c3IvbG9jYWwvYmlu Oi91c3IvbG9jYWwvc2JpbiIKLSAgICBleHBvcnQgUEFUSD0iJE1ZUEFUSCIKLSAgICBpZiBbIC1u ICIkWEJQU19DQ0FDSEUiIF07IHRoZW4KLSAgICAgICAgQ0NBQ0hFUEFUSD0iL3Vzci9saWIvY2Nh Y2hlL2JpbiIKLSAgICAgICAgZXhwb3J0IENDQUNIRV9ESVI9IiRYQlBTX0hPU1RESVIvY2NhY2hl IgotICAgICAgICAjIEF2b2lkIG5vdCB1c2luZyBjYWNoZWQgZmlsZXMganVzdCBkdWUgdG8gY29t cGlsZXIgbXRpbWUKLSAgICAgICAgIyBjaGFuZ2VzIHdoZW4gZS5nLiBib290c3RyYXBwaW5nCi0g ICAgICAgIGV4cG9ydCBDQ0FDSEVfQ09NUElMRVJDSEVDSz1jb250ZW50IENDQUNIRV9DT01QUkVT Uz0xCi0gICAgICAgIGV4cG9ydCBQQVRIPSIkQ0NBQ0hFUEFUSDokUEFUSCIKLSAgICAgICAgbWtk aXIgLXAgJENDQUNIRV9ESVIKLSAgICBmaQotICAgIGlmIFsgLW4gIiRYQlBTX0RJU1RDQyIgXTsg dGhlbgotICAgICAgICBpZiBbIC1uICIkWEJQU19DQ0FDSEUiIF07IHRoZW4KLSAgICAgICAgICAg IGV4cG9ydCBDQ0FDSEVfUFJFRklYPSIvdXNyL2Jpbi9kaXN0Y2MiCi0gICAgICAgIGVsc2UKLSAg ICAgICAgICAgIERJU1RDQ1BBVEg9Ii91c3IvbGliL2Rpc3RjYy9iaW4iCi0gICAgICAgICAgICBl eHBvcnQgUEFUSD0iJERJU1RDQ1BBVEg6JFBBVEgiCi0gICAgICAgIGZpCi0gICAgICAgIGV4cG9y dCBESVNUQ0NfRElSPSIkWEJQU19IT1NURElSL2Rpc3RjYy0ke1hCUFNfQ1JPU1NfQlVJTEQ6LSR7 WEJQU19NQUNISU5FfX0iCi0gICAgICAgIGV4cG9ydCBESVNUQ0NfSE9TVFM9IiRYQlBTX0RJU1RD Q19IT1NUUyIKLSAgICAgICAgbWtkaXIgLXAgJERJU1RDQ19ESVIKKyAgICBleHBvcnQgUEFUSD0i JFBBVEg6JFhCUFNfTUFTVEVSRElSL3Vzci9iaW4iCitmaQorCisjCisjIFNldCB1cCBjY2FjaGUK KyMKK2lmIFsgIiRYQlBTX0NDQUNIRSIgXTsgdGhlbgorICAgIGV4cG9ydCBDQ0FDSEVQQVRIPSIv dXNyL2xpYi9jY2FjaGUvYmluIgorICAgIGV4cG9ydCBDQ0FDSEVfRElSPSIkWEJQU19IT1NURElS L2NjYWNoZSIKKyAgICAjIEF2b2lkIG5vdCB1c2luZyBjYWNoZWQgZmlsZXMganVzdCBkdWUgdG8g Y29tcGlsZXIgbXRpbWUKKyAgICAjIGNoYW5nZXMgd2hlbiBlLmcuIGJvb3RzdHJhcHBpbmcKKyAg ICBleHBvcnQgQ0NBQ0hFX0NPTVBJTEVSQ0hFQ0s9Y29udGVudCBDQ0FDSEVfQ09NUFJFU1M9MQor ICAgIGV4cG9ydCBQQVRIPSIkQ0NBQ0hFUEFUSDokUEFUSCIKKyAgICBta2RpciAtcCAkQ0NBQ0hF X0RJUgorZmkKKworIworIyBTZXQgdXAgZGlzdGNjCisjCitpZiBbICIkWEJQU19ESVNUQ0MiIF07 IHRoZW4KKyAgICBpZiBbICIkWEJQU19DQ0FDSEUiIF07IHRoZW4KKyAgICAgICAgZXhwb3J0IEND QUNIRV9QUkVGSVg9Ii91c3IvYmluL2Rpc3RjYyIKKyAgICBlbHNlCisgICAgICAgIERJU1RDQ1BB VEg9Ii91c3IvbGliL2Rpc3RjYy9iaW4iCisgICAgICAgIGV4cG9ydCBQQVRIPSIkRElTVENDUEFU SDokUEFUSCIKICAgICBmaQorICAgIGV4cG9ydCBESVNUQ0NfRElSPSIkWEJQU19IT1NURElSL2Rp c3RjYy0ke1hCUFNfQ1JPU1NfQlVJTEQ6LSR7WEJQU19NQUNISU5FfX0iCisgICAgZXhwb3J0IERJ U1RDQ19IT1NUUz0iJFhCUFNfRElTVENDX0hPU1RTIgorICAgIG1rZGlyIC1wICRESVNUQ0NfRElS CiBmaQogCiBjaGVja19idWlsZF9yZXF1aXJlbWVudHMKQEAgLTY3NSw2ICs2NzcsMTIgQEAgaWYg WyAteiAiJElOX0NIUk9PVCIgXTsgdGhlbgogICAgICAgICBzZXR1cF9kaXN0ZmlsZXNfbWlycm9y CiAgICAgZmkKIGZpCisjCisjIFJlYWQgZnVuY3MgZnJvbSBoZWxwZXJzCisjCitmb3IgZiBpbiAk e1hCUFNfU0hVVElMU0RJUn0vKi5zaDsgZG8KKyAgICBbIC1yICIkZiIgXSAmJiAuICRmCitkb25l CiAKIHJlY29uZmlndXJlX2Jvb3RzdHJhcF9wa2dzCiAKQEAgLTY4OSwxOCArNjk3LDI0IEBAIGNh c2UgIiRYQlBTX1RBUkdFVCIgaW4KICAgICAgICAgIyBib290c3RyYXAgZnJvbSBzb3VyY2VzCiAg ICAgICAgICMgY2hlY2sgZm9yIHJlcXVpcmVkIGhvc3QgdXRpbHMKICAgICAgICAgY2hlY2tfcmVx aG9zdF91dGlscyBib290c3RyYXAKLSAgICAgICAgWyAhIC1kICRYQlBTX1NSQ1BLR0RJUi9iYXNl LWNocm9vdCBdICYmIFwKLSAgICAgICAgICAgIG1zZ19lcnJvciAiQ2Fubm90IGZpbmQgJFhCUFNf U1JDUEtHRElSL2Jhc2UtY2hyb290IGRpcmVjdG9yeSFcbiIKKyAgICAgICAgW1sgJFhCUFNfTUFD SElORSA9fiBtdXNsIF1dICYmIHN1YmFyY2g9Ii1tdXNsIgorICAgICAgICBbICEgLWQgJFhCUFNf U1JDUEtHRElSL2Jhc2UtY2hyb290JHtzdWJhcmNofSBdICYmIFwKKyAgICAgICAgICAgIG1zZ19l cnJvciAiQ2Fubm90IGZpbmQgJFhCUFNfU1JDUEtHRElSL2Jhc2UtY2hyb290JHtzdWJhcmNofSBk aXJlY3RvcnkhXG4iCiAgICAgICAgIGJvb3RzdHJhcF92cGtnPSR7WEJQU19NQVNURVJESVJ9L2V0 Yy94YnBzLmQvYm9vdHN0cmFwLXZwa2dzLmNvbmYKICAgICAgICAgbWtkaXIgLXAgJHtYQlBTX01B U1RFUkRJUn0vZXRjL3hicHMuZAogICAgICAgICBpZiBbICEgLXMgJHtib290c3RyYXBfdnBrZ30g XTsgdGhlbgogICAgICAgICAgICAgIyBGb29sIHhicHMgdG8gcmVzb2x2ZSBkZXBlbmRlbmNpZXMu Ci0gICAgICAgICAgICBlY2hvICd2aXJ0dWFscGtnPWxpYmdjYy00LjQuMF8xOmJhc2UtZmlsZXMn ID4+ICR7Ym9vdHN0cmFwX3Zwa2d9Ci0gICAgICAgICAgICBlY2hvICd2aXJ0dWFscGtnPWxpYnN0 ZGMrKy00LjQuMF8xOmJhc2UtZmlsZXMnID4+ICR7Ym9vdHN0cmFwX3Zwa2d9CisgICAgICAgICAg ICBlY2hvICd2aXJ0dWFscGtnPWxpYmdjYzpiYXNlLWZpbGVzJyA+PiAke2Jvb3RzdHJhcF92cGtn fQorICAgICAgICAgICAgZWNobyAndmlydHVhbHBrZz1saWJzdGRjKys6YmFzZS1maWxlcycgPj4g JHtib290c3RyYXBfdnBrZ30KICAgICAgICAgZmkKLSAgICAgICAgJFhCUFNfTElCRVhFQ0RJUi9i dWlsZC5zaCBiYXNlLWNocm9vdCBiYXNlLWNocm9vdCAkWEJQU19UQVJHRVQgfHwgZXhpdCAxCisg ICAgICAgICgKKyAgICAgICAgICAgIGV4cG9ydCBYQlBTX0FSQ0g9JFhCUFNfTUFDSElORQorICAg ICAgICAgICAgZXhwb3J0IFhCUFNfU0tJUF9SRU1PVEVSRVBPUz0xCisgICAgICAgICAgICAkWEJQ U19MSUJFWEVDRElSL2J1aWxkLnNoIFwKKyAgICAgICAgICAgICAgICBiYXNlLWNocm9vdCR7c3Vi YXJjaH0gYmFzZS1jaHJvb3Qke3N1YmFyY2h9ICRYQlBTX1RBUkdFVCB8fCBleGl0IDEKKyAgICAg ICAgKSB8fCBleGl0IDEKICAgICAgICAgWyAtZCAkWEJQU19NQVNURVJESVIgXSAmJiBybSAtcmYg JFhCUFNfTUFTVEVSRElSCi0gICAgICAgIGluc3RhbGxfYmJvb3RzdHJhcCBib290c3RyYXAKKyAg ICAgICAgaW5zdGFsbF9iYm9vdHN0cmFwICR7WEJQU19UQVJHRVRfUEtHOj0kWEJQU19NQUNISU5F fQogICAgICAgICA7OwogICAgIGJvb3RzdHJhcC11cGRhdGUpCiAgICAgICAgIGlmIFsgLW4gIiRD SFJPT1RfUkVBRFkiIC1hIC16ICIkSU5fQ0hST09UIiBdOyB0aGVuCkBAIC03ODAsNyArNzk0LDcg QEAgY2FzZSAiJFhCUFNfVEFSR0VUIiBpbgogICAgICAgICBzaG93X3BrZwogICAgICAgICA7Owog ICAgIHNob3ctYXZhaWwpCi0gICAgICAgIHJlYWRfcGtnCisgICAgICAgIHJlYWRfcGtnICY+L2Rl di9udWxsCiAgICAgICAgIHNob3dfYXZhaWwKICAgICAgICAgOzsKICAgICBzaG93LWZpbGVzKQpA QCAtODU3LDcgKzg3MSw3IEBAIGNhc2UgIiRYQlBTX1RBUkdFVCIgaW4KICAgICAgICAgYnVsa19i dWlsZAogICAgICAgICA7OwogICAgIHNob3ctc3lzLXVwZGF0ZXMpCi0gICAgICAgIGJ1bGtfYnVp bGQgLWkKKyAgICAgICAgYnVsa19idWlsZCAtSQogICAgICAgICA7OwogICAgIHNvcnQtZGVwZW5k ZW5jaWVzKQogICAgICAgICBidWxrX3NvcnRkZXBzICR7QC8kWEJQU19UQVJHRVQvfQpAQCAtODY2 LDcgKzg4MCw3IEBAIGNhc2UgIiRYQlBTX1RBUkdFVCIgaW4KICAgICAgICAgYnVsa191cGRhdGUK ICAgICAgICAgOzsKICAgICB1cGRhdGUtc3lzKQotICAgICAgICBidWxrX3VwZGF0ZSAtaQorICAg ICAgICBidWxrX3VwZGF0ZSAtSQogICAgICAgICA7OwogICAgIHVwZGF0ZS1jaGVjaykKICAgICAg ICAgcmVhZF9wa2cgaWdub3JlLXByb2JsZW1zCgpGcm9tIDQ4Y2VjYWZlNzUxNmUwNzg2MTQ1MWEw ODUyNjkxNGQ3YzA3YmMxOWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEp1YW4gUlAg PHh0cmFlbWVAZ21haWwuY29tPgpEYXRlOiBTdW4sIDcgSnVsIDIwMTkgMDg6MzY6MDUgKzAyMDAK U3ViamVjdDogW1BBVENIIDIvMl0geGJwcy1zcmM6IHZlcmlmeSBhbGwgZGVwcyBleGlzdCBpbiBz cmNwa2dzLgoKLS0tCiBjb21tb24veGJwcy1zcmMvc2h1dGlscy9idWlsZF9kZXBlbmRlbmNpZXMu c2ggfCAyMyArKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMjMgaW5zZXJ0aW9u cygrKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2J1aWxkX2RlcGVuZGVu Y2llcy5zaCBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2J1aWxkX2RlcGVuZGVuY2llcy5zaApp bmRleCBmZDMyNzA2NmUxNy4uNmQ5ZDcyN2UwZDMgMTAwNjQ0Ci0tLSBhL2NvbW1vbi94YnBzLXNy Yy9zaHV0aWxzL2J1aWxkX2RlcGVuZGVuY2llcy5zaAorKysgYi9jb21tb24veGJwcy1zcmMvc2h1 dGlscy9idWlsZF9kZXBlbmRlbmNpZXMuc2gKQEAgLTE0NSw2ICsxNDUsMTIgQEAgaW5zdGFsbF9w a2dfZGVwcygpIHsKICAgICAjIEhvc3QgYnVpbGQgZGVwZW5kZW5jaWVzLgogICAgICMKICAgICBp ZiBbWyAke2hvc3RtYWtlZGVwZW5kc30gXV07IHRoZW4KKyAgICAgICAgIyBjaGVjayB2YWxpZGl0 eQorICAgICAgICBmb3IgZiBpbiAke2hvc3RtYWtlZGVwZW5kc307IGRvCisgICAgICAgICAgICBp ZiBbICEgLWYgJFhCUFNfU1JDUEtHRElSLyRmL3RlbXBsYXRlIF07IHRoZW4KKyAgICAgICAgICAg ICAgICBtc2dfZXJyb3IgIiRwa2d2ZXI6IGhvc3QgZGVwZW5kZW5jeSAnJGYnIGRvZXMgbm90IGV4 aXN0IVxuIgorICAgICAgICAgICAgZmkKKyAgICAgICAgZG9uZQogICAgICAgICB3aGlsZSByZWFk IC1yIF9kZXBuYW1lIF9kZXByZXBvdmVyIF9kZXB2ZXIgX3N1YnBrZyBfcmVwb3VybDsgZG8KICAg ICAgICAgICAgIF92cGtnPSR7X3N1YnBrZ30tJHtfZGVwdmVyfQogICAgICAgICAgICAgIyBiaW5h cnkgcGFja2FnZSBmb3VuZCBpbiBhIHJlcG8KQEAgLTE4MCw2ICsxODYsMTIgQEAgaW5zdGFsbF9w a2dfZGVwcygpIHsKICAgICAjIEhvc3QgY2hlY2sgZGVwZW5kZW5jaWVzLgogICAgICMKICAgICBp ZiBbWyAke2NoZWNrZGVwZW5kc30gXV0gJiYgW1sgJFhCUFNfQ0hFQ0tfUEtHUyBdXTsgdGhlbgor ICAgICAgICAjIGNoZWNrIHZhbGlkaXR5CisgICAgICAgIGZvciBmIGluICR7Y2hlY2tkZXBlbmRz fTsgZG8KKyAgICAgICAgICAgIGlmIFsgISAtZiAkWEJQU19TUkNQS0dESVIvJGYvdGVtcGxhdGUg XTsgdGhlbgorICAgICAgICAgICAgICAgIG1zZ19lcnJvciAiJHBrZ3ZlcjogY2hlY2sgZGVwZW5k ZW5jeSAnJGYnIGRvZXMgbm90IGV4aXN0IVxuIgorICAgICAgICAgICAgZmkKKyAgICAgICAgZG9u ZQogICAgICAgICB3aGlsZSByZWFkIC1yIF9kZXBuYW1lIF9kZXByZXBvdmVyIF9kZXB2ZXIgX3N1 YnBrZyBfcmVwb3VybDsgZG8KICAgICAgICAgICAgIF92cGtnPSR7X3N1YnBrZ30tJHtfZGVwdmVy fQogICAgICAgICAgICAgIyBiaW5hcnkgcGFja2FnZSBmb3VuZCBpbiBhIHJlcG8KQEAgLTIxNSw2 ICsyMjcsMTIgQEAgaW5zdGFsbF9wa2dfZGVwcygpIHsKICAgICAjIFRhcmdldCBidWlsZCBkZXBl bmRlbmNpZXMuCiAgICAgIwogICAgIGlmIFtbICR7bWFrZWRlcGVuZHN9IF1dOyB0aGVuCisgICAg ICAgICMgY2hlY2sgdmFsaWRpdHkKKyAgICAgICAgZm9yIGYgaW4gJHttYWtlZGVwZW5kc307IGRv CisgICAgICAgICAgICBpZiBbICEgLWYgJFhCUFNfU1JDUEtHRElSLyRmL3RlbXBsYXRlIF07IHRo ZW4KKyAgICAgICAgICAgICAgICBtc2dfZXJyb3IgIiRwa2d2ZXI6IHRhcmdldCBkZXBlbmRlbmN5 ICckZicgZG9lcyBub3QgZXhpc3QhXG4iCisgICAgICAgICAgICBmaQorICAgICAgICBkb25lCiAg ICAgICAgIHdoaWxlIHJlYWQgLXIgX2RlcG5hbWUgX2RlcHJlcG92ZXIgX2RlcHZlciBfc3VicGtn IF9yZXBvdXJsOyBkbwogICAgICAgICAgICAgX3Zwa2c9JHtfc3VicGtnfS0ke19kZXB2ZXJ9CiAg ICAgICAgICAgICAjIGJpbmFyeSBwYWNrYWdlIGZvdW5kIGluIGEgcmVwbwpAQCAtMjUxLDYgKzI2 OSwxMSBAQCBpbnN0YWxsX3BrZ19kZXBzKCkgewogICAgICMKICAgICBpZiBbWyAke2RlcGVuZHN9 IF1dOyB0aGVuCiAgICAgICAgIF9kZXBzPSQoc2V0dXBfcGtnX2RlcGVuZHMgIiIgMSkgfHwgZXhp dCAxCisgICAgICAgIGZvciBmIGluICR7X2RlcHN9OyBkbworICAgICAgICAgICAgaWYgWyAhIC1m ICRYQlBTX1NSQ1BLR0RJUi8kZi90ZW1wbGF0ZSBdOyB0aGVuCisgICAgICAgICAgICAgICAgbXNn X2Vycm9yICIkcGtndmVyOiBydW50aW1lIGRlcGVuZGVuY3kgJyRmJyBkb2VzIG5vdCBleGlzdCFc biIKKyAgICAgICAgICAgIGZpCisgICAgICAgIGRvbmUKICAgICAgICAgd2hpbGUgcmVhZCAtciBf ZGVwbmFtZSBfZGVwcmVwb3ZlciBfZGVwdmVyIF9zdWJwa2cgX3JlcG91cmw7IGRvCiAgICAgICAg ICAgICBfdnBrZz0ke19zdWJwa2d9LSR7X2RlcHZlcn0KICAgICAgICAgICAgICMgYmluYXJ5IHBh Y2thZ2UgZm91bmQgaW4gYSByZXBvCg== --===============2247596719972861248==--