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=ham autolearn_force=no version=3.4.2 Received: from inbox.vuxu.org (localhost [IPv6:::1]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 78d90fe8 for ; Mon, 6 Jan 2020 17:26:58 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============3085438497215318512==" MIME-Version: 1.0 Subject: Re: [PR PATCH] [Updated] yabasic: update to 2.86.3. To: ml@inbox.vuxu.org From: voidlinux-github@inbox.vuxu.org Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Mon, 06 Jan 2020 18:26:57 +0100 Message-ID: <20200106172657.eBcl-Q0JeCugl0caQDo7eeZmqICHX1DZRBkp6dPCHXA@z> GitHub notification mails are now in MIME to allow UTF8. --===============3085438497215318512== MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgbW9iaW5tb2IgYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL21v YmlubW9iL3ZvaWQtcGFja2FnZXMgeWFic2ljCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4 L3ZvaWQtcGFja2FnZXMvcHVsbC8xNzYxNAoKeWFiYXNpYzogdXBkYXRlIHRvIDIuODYuMy4KCgpB IHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2th Z2VzL3B1bGwvMTc2MTQucGF0Y2ggaXMgYXR0YWNoZWQ= --===============3085438497215318512== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-yabsic-17614.patch" RnJvbSA2ZmNhMWNlOWFiMjdjODRhOWI4NjYyNjc5ZGY0ZGUxMDg2ZDk0NjM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBtb2Jpbm1vYiA8bW9iaW5tb2JAZGlzcm9vdC5vcmc+CkRhdGU6 IFRodSwgMTkgRGVjIDIwMTkgMTI6NTE6NDUgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvMl0geWFi YXNpYzogdXBkYXRlIHRvIDIuODYuMy4KCi0tLQogc3JjcGtncy95YWJhc2ljL3BhdGNoZXMvQ1ZF LTIwMTktMTk3MjAucGF0Y2ggfCAyMzYyIC0tLS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy95YWJh c2ljL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiAyIGZpbGVzIGNoYW5n ZWQsIDIgaW5zZXJ0aW9ucygrKSwgMjM2NCBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3lhYmFzaWMvcGF0Y2hlcy9DVkUtMjAxOS0xOTcyMC5wYXRjaAoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MveWFiYXNpYy9wYXRjaGVzL0NWRS0yMDE5LTE5NzIwLnBhdGNoIGIvc3JjcGtn cy95YWJhc2ljL3BhdGNoZXMvQ1ZFLTIwMTktMTk3MjAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDMwYzBhMjc1MDQ3Li4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3lhYmFz aWMvcGF0Y2hlcy9DVkUtMjAxOS0xOTcyMC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIzNjIg KzAsMCBAQAotRnJvbSA4ODMzNmM2M2MzMTFjYjE1YWVmMzFjNTFhOTc1MmRkNGJhZjE4Y2FhIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWFyYyBJaG0gPG1hcmNAaWhtLm5hbWU+Ci1E YXRlOiBXZWQsIDExIERlYyAyMDE5IDIyOjI0OjI0ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGZp eGVkIGhlYXAtcHJvYmxlbSBpbiBwYXJzaW5nIHN0cmluZ3MKLQotLS0tCi0gZmxleC5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTggKy0KLSBmb3JlaWduLmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQotIGdyYXBoaWMuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCi0gaW8uYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KLSBtYWluLmMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQotIHRlc3RzL2Vycm9yL2Vycm9y X3N0cmluZ19ub3RfdGVybWluYXRlZC55YWIgfCAgICA2ICsKLSB0ZXN0cy9zaG9ydF9pZi55YWIg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCi0gdGVzdHMvc3RyaW5nLnlhYiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwotIHVuaXgvbGFuZy9jb25maWcuaCAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgMTI3ICsrCi0gdW5peC9sYW5nL2NvbmZpZy5zdGF0dXMg ICAgICAgICAgICAgICAgICAgICB8IDE5ODIgKysrKysrKysrKysrKysrKysrKwotIHlhYmFzaWMu ZmxleCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIwICstCi0geWFiYXNpYy5o ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KLSAxMiBmaWxlcyBj aGFuZ2VkLCAyMTQyIGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQotIGNyZWF0ZSBtb2Rl IDEwMDY0NCB0ZXN0cy9lcnJvci9lcnJvcl9zdHJpbmdfbm90X3Rlcm1pbmF0ZWQueWFiCi0gY3Jl YXRlIG1vZGUgMTAwNjQ0IHRlc3RzL3Nob3J0X2lmLnlhYgotIGNyZWF0ZSBtb2RlIDEwMDY0NCB1 bml4L2xhbmcvY29uZmlnLmgKLSBjcmVhdGUgbW9kZSAxMDA3NTUgdW5peC9sYW5nL2NvbmZpZy5z dGF0dXMKLQotZGlmZiAtLWdpdCBmbGV4LmMgZmxleC5jCi1pbmRleCBhZjNkNGJiLi5lYTBmZTJl IDEwMDY0NAotLS0tIGZsZXguYwotKysrIGZsZXguYwotQEAgLTMwODQsMjEgKzMwODQsMTcgQEAg Y2FzZSAyNDA6Ci0gLyogcnVsZSAyNDAgY2FuIG1hdGNoIGVvbCAqLwotIFlZX1JVTEVfU0VUVVAK LSB7Ci0tICBpbnQgY250OwotLSAgaWYgKHl5dGV4dFt5eWxlbmctMV09PSdcbicpIHl5Y29sdW1u PTE7Ci0tICBpZiAoeXl0ZXh0W3l5bGVuZy0xXT09J1xuJyAmJiBpbl9zaG9ydF9pZikge2luX3No b3J0X2lmLS07eXlsZXNzKDApO3JldHVybiB0SU1QTElDSVRFTkRJRjt9Ci0tICBpZiAoeXl0ZXh0 W3l5bGVuZy0xXT09J1xuJykgewotKyAgaWYgKHl5bGVuZzwyIHx8IHl5dGV4dFt5eWxlbmctMV09 PSdcbicpIHsgLyogdW50ZXJtaW5hdGVkIHN0cmluZyBoYXMgcmVhY2hlZCBlbmQgb2YgbGluZSwg cmVwb3J0IHF1YWxpZmllZCBlcnJvciBpbiBiaXNvbiAqLwotKyAgICAgICAgeXljb2x1bW49MTsJ CSAgICAgIAotICAgCXl5bHZhbC5zdHJpbmc9TlVMTDsKLSAgIAlyZXR1cm4gdFNUUklORzsKLS0g IH0KLS0gIGZvcihjbnQ9MDt5eXRleHRbeXlsZW5nLWNudC0yXT09J1xcJztjbnQrKykgOwotLSAg aWYgKGNudCUyKSB7Ci0rICB9IGVsc2UgaWYgKHl5dGV4dFt5eWxlbmctMl09PSdcXCcpIHsgLyog ZmluYWwgcXVvdGUgd2FzIGVzY2FwZWQsIHNvIHB1dCBhbGwgdGV4dCBiYWNrIGFuZCByZWFkIG1v cmUgKi8KLSAgIAl5eWxlc3MoeXlsZW5nLTEpOwotIAl5eW1vcmUoKTsKLS0gIH0gZWxzZSB7Ci0r ICB9IGVsc2UgeyAvKiBwcm9wZXJseSBxdW90ZWQgc3RyaW5nOyByZW1vdmUgcXVvdGVzIGFuZCBy ZXR1cm4gaXQgKi8KLSAJeXlsdmFsLnN0cmluZz0oY2hhciAqKW15X3N0cmR1cCh5eXRleHQrMSk7 Ci0tCSooeXlsdmFsLnN0cmluZyt5eWxlbmctMik9J1wwJzsKLS0JcmVwbGFjZSh5eWx2YWwuc3Ry aW5nKTsKLSsJKih5eWx2YWwuc3RyaW5nK3N0cmxlbih5eWx2YWwuc3RyaW5nKS0xKT0nXDAnOwot KwlyZXBsYWNlX2VzY2FwZXMoeXlsdmFsLnN0cmluZyk7Ci0gCXJldHVybiB0U1RSSU5HOwotICAg fQotIH0KLUBAIC00MTg0LDcgKzQxODAsNyBAQCBpbnQgaW1wb3J0X2xpYihjaGFyICpuYW1lKSAv KiBpbXBvcnQgbGlicmFyeSAqLwotICAgfSAKLSAKLSAgIGlmIChzZXZlcml0eV90aHJlc2hvbGQg PD0gc05PVEUpIHsKLS0gICAgaWYgKGlzYm91bmQpIHsgICAgICAKLSsgICAgaWYgKGlzX2JvdW5k KSB7ICAgICAgCi0gICAgICAgc3ByaW50ZihzdHJpbmcsImltcG9ydGluZyBsaWJyYXJ5ICclcyci LG5hbWUpOwotICAgICB9IGVsc2UgewotICAgICAgIHNwcmludGYoc3RyaW5nLCJpbXBvcnRpbmcg ZnJvbSBmaWxlICclcyciLGZ1bGwpOwotZGlmZiAtLWdpdCBmb3JlaWduLmMgZm9yZWlnbi5jCi1p bmRleCBjN2M0MWMwLi4yN2NlNzIzIDEwMDc1NQotLS0tIGZvcmVpZ24uYwotKysrIGZvcmVpZ24u YwotQEAgLTM3NSw3ICszNzUsNyBAQCBmcm5iZl9zZXQgKCkgIC8qIHNldCBhIHZhbHVlIHdpdGhp biBhIGZvcmVpZ24gYnVmZmVyICovCi0gICAgIGlmICghZnJuX2RlY29kZV9mZmlfdHlwZSh0eXBl LCAmdmFsdHlwZSwgTlVMTCwga3RTSU1QTEUpKSByZXR1cm47DQotICAgICBpZiAoIWZybmJmX3Zl cmlmeV9ub3RfbnVsbChzaXplKSkgcmV0dXJuOw0KLSAgICAgaWYgKG9mZnNldDwwIHx8ICggc2l6 ZSA+PSAwICYmIG9mZnNldCt2YWx0eXBlLT5zaXplID4gc2l6ZSkpIHsNCi0tCXNwcmludGYoZXN0 cmluZywgIm92ZXJydW46IG9mZnNldCBvZiAlZCBwbHVzIHNpemUgb2YgdHlwZSAlcyA9ICVkIGV4 Y2VlZHMgc2l6ZSBvZiBidWZmZXIgJWQiLA0KLSsJc3ByaW50Zihlc3RyaW5nLCAib3ZlcnJ1bjog b2Zmc2V0IG9mICVkIHBsdXMgc2l6ZSBvZiB0eXBlICVzID0gJWx1IGV4Y2VlZHMgc2l6ZSBvZiBi dWZmZXIgJWQiLA0KLSAJCW9mZnNldCwgdHlwZSwgdmFsdHlwZS0+c2l6ZSwgc2l6ZSk7DQotIAll cnJvcihzRVJST1IsIGVzdHJpbmcpOw0KLSAJcmV0dXJuOw0KLUBAIC00MjYsNyArNDI2LDcgQEAg ZnJuYmZfc2V0X2J1ZmZlciAoKSAgLyogc2V0IGEgYnVmZmVyIHdpdGhpbiBhIGZvcmVpZ24gYnVm ZmVyICovCi0gICAgIGZybl9kZWNvZGVfZmZpX3R5cGUoImJ1ZmZlciIsICZidWZmdHlwZSwgTlVM TCwga3RDT01QTEVYKTsNCi0gICAgIGlmICghZnJuYmZfdmVyaWZ5X25vdF9udWxsKHNpemUxKSkg cmV0dXJuOw0KLSAgICAgaWYgKG9mZnNldDwwIHx8IChzaXplMSA+PSAwICYmIG9mZnNldCtidWZm dHlwZS0+c2l6ZSA+IHNpemUxKSkgew0KLS0Jc3ByaW50Zihlc3RyaW5nLCAib3ZlcnJ1bjogb2Zm c2V0IG9mICVkIHBsdXMgc2l6ZSBvZiBwb2ludGVyID0gJWQgZXhjZWVkcyBzaXplIG9mIGJ1ZmZl ciAlZCIsDQotKwlzcHJpbnRmKGVzdHJpbmcsICJvdmVycnVuOiBvZmZzZXQgb2YgJWQgcGx1cyBz aXplIG9mIHBvaW50ZXIgPSAlbHUgZXhjZWVkcyBzaXplIG9mIGJ1ZmZlciAlZCIsDQotIAkJb2Zm c2V0LCBidWZmdHlwZS0+c2l6ZSwgc2l6ZTEpOw0KLSAJZXJyb3Ioc0VSUk9SLCBlc3RyaW5nKTsN Ci0gCXJldHVybjsNCi1AQCAtNDUzLDcgKzQ1Myw3IEBAIGZybmJmX2dldCAoKSAgLyogZ2V0IGEg dmFsdWUgZnJvbSBhIGZvcmVpZ24gYnVmZmVyICovCi0gICAgIGlmICghZnJuX2RlY29kZV9mZmlf dHlwZSh0eXBlLCAmdmFsdHlwZSwgTlVMTCwga3RTSU1QTEUpKSByZXR1cm4gMC4wOw0KLSAgICAg aWYgKCFmcm5iZl92ZXJpZnlfbm90X251bGwoc2l6ZSkpIHJldHVybiAwLjA7DQotICAgICBpZiAo b2Zmc2V0PDAgfHwgKHNpemUgPj0gMCAmJiBvZmZzZXQrdmFsdHlwZS0+c2l6ZSA+IHNpemUpKSB7 DQotLQlzcHJpbnRmKGVzdHJpbmcsICJvdmVycnVuOiBvZmZzZXQgb2YgJWQgcGx1cyBzaXplIG9m IHR5cGUgJXMgPSAlZCBleGNlZWRzIHNpemUgb2YgYnVmZmVyICVkIiwNCi0rCXNwcmludGYoZXN0 cmluZywgIm92ZXJydW46IG9mZnNldCBvZiAlZCBwbHVzIHNpemUgb2YgdHlwZSAlcyA9ICVsdSBl eGNlZWRzIHNpemUgb2YgYnVmZmVyICVkIiwNCi0gCQlvZmZzZXQsIHR5cGUsIHZhbHR5cGUtPnNp emUsIHNpemUpOw0KLSAJZXJyb3Ioc0VSUk9SLCBlc3RyaW5nKTsNCi0gCXJldHVybiAwLjA7DQot ZGlmZiAtLWdpdCBncmFwaGljLmMgZ3JhcGhpYy5jCi1pbmRleCA4M2Q4Yzk2Li5hMzU4OTk3IDEw MDc1NQotLS0tIGdyYXBoaWMuYwotKysrIGdyYXBoaWMuYwotQEAgLTEyOTgsNyArMTI5OCw3IEBA IHJnYl90b19waXhlbCAoaW50IHIsIGludCBnLCBpbnQgYikKLSB9Ci0gCi0gCi0tc3RhdGljIGlu dAotK3N0YXRpYyB2b2lkCi0gcGl4ZWxfdG9fcmdiIChpbnQgKnIsIGludCAqZywgaW50ICpiLCBp bnQgcGl4ZWwpCi0gewotICAgICAvKiBjcmVhdGUgYW4gcmdiIHZhbHVlIGZyb20gcGl4ZWwgKi8K LUBAIC0yMjA4LDcgKzIyMDgsNyBAQCByZWFkcmdiIChjaGFyICpiaXRzLCBpbnQgb2ZmLCB1bnNp Z25lZCBzaG9ydCAqcmVkLCB1bnNpZ25lZCBzaG9ydCAqZ3JlZW4sCi0gCWlmIChzY2FubmVkID09 IEVPRikKLSAJCXNwcmludGYoZXN0cmluZywgIkludmFsaWQgYml0bWFwOiB1bmV4cGVjdGVkIGVu ZCBvZiBzdXBwbGllZCBzdHJpbmciKTsKLSAJZWxzZQotLQkJc3ByaW50Zihlc3RyaW5nLCJJbnZh bGlkIGJpdG1hcDogY291bGQgb25seSBleHRyYWN0ICVkIGhleC12YWx1ZXMgZnJvbSBzdXBwbGll ZCBzdHJpbmcgYXQgcG9zaXRpb24gJWQ6ICclLjZzJyIsc2Nhbm5lZCwgYml0cHQtYml0c3RhcnQs Yml0cHQpOwotKwkJc3ByaW50Zihlc3RyaW5nLCJJbnZhbGlkIGJpdG1hcDogY291bGQgb25seSBl eHRyYWN0ICVkIGhleC12YWx1ZXMgZnJvbSBzdXBwbGllZCBzdHJpbmcgYXQgcG9zaXRpb24gJWxk OiAnJS42cyciLHNjYW5uZWQsIGJpdHB0LWJpdHN0YXJ0LGJpdHB0KTsKLSAgICAgZXJyb3IgKHNF UlJPUiwgZXN0cmluZyk7Ci0gICAgIHJldHVybiAwOwotIH0KLWRpZmYgLS1naXQgaW8uYyBpby5j Ci1pbmRleCA2YjUwZjJhLi43ZTFkODhmIDEwMDY0NAotLS0tIGlvLmMKLSsrKyBpby5jCi1AQCAt NTk5LDcgKzU5OSw3IEBAIHN0YXRpYyB2b2lkIGRlY29kZV9rZXkoaW50IGtleSwgY2hhciAqdG8p IC8qIGRlY29kZSBrZXljb2RlIGludG8gc3RyaW5nICovCi0gCi0gCi0gY2hhciAqCi0tcmVwbGFj ZShjaGFyICpzdHJpbmcpCQkvKiByZXBsYWNlIFxuLFxhLCBldGMuICovCi0rcmVwbGFjZV9lc2Nh cGVzKGNoYXIgKnN0cmluZykJCS8qIHJlcGxhY2UgXG4sXGEsIGV0Yy4gKi8KLSB7Ci0gICAgIGNo YXIgKmZyb20sICp0bzsKLSAgICAgY2hhciAqcDsKLWRpZmYgLS1naXQgbWFpbi5jIG1haW4uYwot aW5kZXggMjUzNTA2YS4uYmQwODNlMSAxMDA3NTUKLS0tLSBtYWluLmMKLSsrKyBtYWluLmMKLUBA IC0yNzgsNyArMjc4LDcgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIAkgICAgcHJp bnRmCi0gCQkoIllvdXIgcHJvZ3JhbSB3aWxsIGV4ZWN1dGUgaW1tZWRpYXRlbHkgYW5kIGNhbm5v dCBiZSBzYXZlZDtcbiIpOwotIAkgICAgcHJpbnRmCi0tCQkoImNyZWF0ZSB5b3VyIHByb2dyYW0g d2l0aCBhbiBleHRlcm5hbCBlZGl0b3IsIGlmIHlvdSB3YW50IHRvIGtlZXAgaXQuXG4iKTsKLSsJ CSgiY3JlYXRlIHlvdXIgcHJvZ3JhbSB3aXRoIGFuIGV4dGVybmFsIGVkaXRvciwgdG8gYXZvaWQg dGhpcy5cbiIpOwotICNpZmRlZiBVTklYCi0gCSAgICBwcmludGYKLSAJCSgiVHlwZSAnbWFuIHlh YmFzaWMnIG9yIHNlZSB0aGUgZmlsZSB5YWJhc2ljLmh0bSBmb3IgbW9yZSBpbmZvcm1hdGlvbixc biIpOwotQEAgLTI1NTYsNyArMjU1Niw3IEBAIG15YmluZCAoY2hhciAqYm91bmQpCQkvKiBiaW5k IGEgcHJvZ3JhbSB0byB0aGUgaW50ZXJwcmV0ZXIgYW5kIHNhdmUgaXQgKi8KLSAgICAgcHJvZ2xl biArPSA1OwotICAgICBmcHJpbnRmIChmYm91bmQsICJyZW0gJTA4ZFxuIiwgcHJvZ2xlbik7Ci0g ICAgIGZwcmludGYgKGZib3VuZCwgInJlbSAlc1xuIiwgcHJvZ25hbWUpOwotLSAgICBmcHJpbnRm IChmYm91bmQsICJyZW0gJTA4ZFxuIiwgc3RybGVuKHByb2duYW1lKSk7Ci0rICAgIGZwcmludGYg KGZib3VuZCwgInJlbSAlMDhsdVxuIiwgc3RybGVuKHByb2duYW1lKSk7Ci0gICAgIGZwcmludGYg KGZib3VuZCwgInJlbSAlMDJkXG4iLCBzZXZlcml0eV90aHJlc2hvbGQgKyB5eWRlYnVnKTsKLSAg ICAgZnByaW50ZiAoZmJvdW5kLCAicmVtICVzXG4iLCBZQUJNQUdJQyk7Ci0gICAgIGZjbG9zZSAo ZnlhYik7Ci1kaWZmIC0tZ2l0IHRlc3RzL2Vycm9yL2Vycm9yX3N0cmluZ19ub3RfdGVybWluYXRl ZC55YWIgdGVzdHMvZXJyb3IvZXJyb3Jfc3RyaW5nX25vdF90ZXJtaW5hdGVkLnlhYgotbmV3IGZp bGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjIyZTYzOWUKLS0tLSAvZGV2L251bGwKLSsr KyB0ZXN0cy9lcnJvci9lcnJvcl9zdHJpbmdfbm90X3Rlcm1pbmF0ZWQueWFiCi1AQCAtMCwwICsx LDYgQEAKLSsjZXhwZWN0Iy0tLUVycm9yIGluIGVycm9yX3N0cmluZ19ub3RfdGVybWluYXRlZC55 YWIsIGxpbmUgNjoKLSsjZXhwZWN0Iy0tLUVycm9yOiBTdHJpbmcgbm90IHRlcm1pbmF0ZWQKLSsj ZXhwZWN0IyAgIHByaW50ICJ0aGlzIHN0cmluZyBoYXMgbm8gZW5kCi0rI2V4cGVjdCMgICAgICAg ICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLSsjZXhwZWN0Iy0tLUVycm9yOiBQcm9ncmFtIG5v dCBleGVjdXRlZAotK3ByaW50ICJ0aGlzIHN0cmluZyBoYXMgbm8gZW5kCi1kaWZmIC0tZ2l0IHRl c3RzL3Nob3J0X2lmLnlhYiB0ZXN0cy9zaG9ydF9pZi55YWIKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0 Ci1pbmRleCAwMDAwMDAwLi5jYTgyOTBlCi0tLS0gL2Rldi9udWxsCi0rKysgdGVzdHMvc2hvcnRf aWYueWFiCi1AQCAtMCwwICsxLDIgQEAKLSsKLStpZiAoMTwyKSBwcmludCAiaGkiCi1kaWZmIC0t Z2l0IHRlc3RzL3N0cmluZy55YWIgdGVzdHMvc3RyaW5nLnlhYgotaW5kZXggYmJlNmFkMy4uMzA2 ZGRmMyAxMDA3NTUKLS0tLSB0ZXN0cy9zdHJpbmcueWFiCi0rKysgdGVzdHMvc3RyaW5nLnlhYgot QEAgLTcsMyArNyw0IEBAIGlmIGNob21wJCgiZm9vXG4iKTw+ImZvbyIgZXJyb3IgImNob21wJCBo YXMgcHJvYmxlbXMiCi0gaWYgY2hvbXAkKCJmb28iKTw+ImZvbyIgZXJyb3IgImNob21wJCBoYXMg cHJvYmxlbXMiCi0gaWYgbm90IGdsb2IoImZvb2JhciIsIipiYXIiKSBlcnJvciAiZ2xvYiBoYXMg cHJvYmxlbXMiCi0gaWYgbm90IGdsb2IoImJhciIsIipiYXIiKSBlcnJvciAiZ2xvYiBoYXMgcHJv YmxlbXMiCi0raWYgbGVuKCJmb29cIiIpPD40IGVycm9yICJzdHJsZW4gaGFzIHByb2JsZW1zIgot ZGlmZiAtLWdpdCB1bml4L2xhbmcvY29uZmlnLmggdW5peC9sYW5nL2NvbmZpZy5oCi1uZXcgZmls ZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uYTk5NWYwNgotLS0tIC9kZXYvbnVsbAotKysr IHVuaXgvbGFuZy9jb25maWcuaAotQEAgLTAsMCArMSwxMjcgQEAKLSsvKiBjb25maWcuaC4gIEdl bmVyYXRlZCBmcm9tIGNvbmZpZy5oLmluIGJ5IGNvbmZpZ3VyZS4gICovCi0rLyogY29uZmlnLmgu aW4uICBHZW5lcmF0ZWQgZnJvbSBjb25maWd1cmUuYWMgYnkgYXV0b2hlYWRlci4gICovCi0rCi0r LyogYnVpbGQtdGltZSwgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiBiYW5uZXIgKi8KLSsjZGVm aW5lIEJVSUxEX1RJTUUgIldlZCBEZWMgMTEgMjE6MTk6MjUgVVRDIDIwMTkiCi0rCi0rLyogRGVm aW5lIHRvIG9uZSBvZiBgX2dldGI2NycsIGBHRVRCNjcnLCBgZ2V0YjY3JyBmb3IgQ3JheS0yIGFu ZCBDcmF5LVlNUAotKyAgIHN5c3RlbXMuIFRoaXMgZnVuY3Rpb24gaXMgcmVxdWlyZWQgZm9yIGBh bGxvY2EuYycgc3VwcG9ydCBvbiB0aG9zZSBzeXN0ZW1zLgotKyAgICovCi0rLyogI3VuZGVmIENS QVlfU1RBQ0tTRUdfRU5EICovCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgdXNpbmcgYGFsbG9jYS5j Jy4gKi8KLSsvKiAjdW5kZWYgQ19BTExPQ0EgKi8KLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3Ug aGF2ZSBgYWxsb2NhJywgYXMgYSBmdW5jdGlvbiBvciBtYWNyby4gKi8KLSsjZGVmaW5lIEhBVkVf QUxMT0NBIDEKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSA8YWxsb2NhLmg+IGFuZCBp dCBzaG91bGQgYmUgdXNlZCAobm90IG9uIFVsdHJpeCkuCi0rICAgKi8KLSsjZGVmaW5lIEhBVkVf QUxMT0NBX0ggMQotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8YWxsb2MuaD4g aGVhZGVyIGZpbGUuICovCi0rLyogI3VuZGVmIEhBVkVfQUxMT0NfSCAqLwotKwotKy8qIERlZmlu ZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8Y3Vyc2VzLmg+IGhlYWRlciBmaWxlLiAqLwotKyNkZWZp bmUgSEFWRV9DVVJTRVNfSCAxCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxk bGZjbi5oPiBoZWFkZXIgZmlsZS4gKi8KLSsjZGVmaW5lIEhBVkVfRExGQ05fSCAxCi0rCi0rLyog RGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxmZmkuaD4gaGVhZGVyIGZpbGUuICovCi0rI2Rl ZmluZSBIQVZFX0ZGSV9IIDEKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdl dG5zdHInIGZ1bmN0aW9uLiAqLwotKyNkZWZpbmUgSEFWRV9HRVROU1RSIDEKLSsKLSsvKiBEZWZp bmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGludHR5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwotKyNk ZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0 aGUgPG1hbGxvYy5oPiBoZWFkZXIgZmlsZS4gKi8KLSsjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQot KwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWVtb3J5Lmg+IGhlYWRlciBmaWxl LiAqLwotKyNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91 IGhhdmUgdGhlIGBta3N0ZW1wJyBmdW5jdGlvbi4gKi8KLSsjZGVmaW5lIEhBVkVfTUtTVEVNUCAx Ci0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuY3Vyc2VzLmg+IGhlYWRlciBm aWxlLiAqLwotKyNkZWZpbmUgSEFWRV9OQ1VSU0VTX0ggMQotKwotKy8qIERlZmluZSB0byAxIGlm IHlvdSBoYXZlIHRoZSA8cHJjdGwuaD4gaGVhZGVyIGZpbGUuICovCi0rLyogI3VuZGVmIEhBVkVf UFJDVExfSCAqLwotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RkaW50Lmg+ IGhlYWRlciBmaWxlLiAqLwotKyNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi0rCi0rLyogRGVmaW5l IHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRsaWIuaD4gaGVhZGVyIGZpbGUuICovCi0rI2RlZmlu ZSBIQVZFX1NURExJQl9IIDEKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0 cmVycm9yJyBmdW5jdGlvbi4gKi8KLSsjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotKwotKy8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RyaW5ncy5oPiBoZWFkZXIgZmlsZS4gKi8KLSsj ZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0 aGUgPHN0cmluZy5oPiBoZWFkZXIgZmlsZS4gKi8KLSsjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQot KwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N0YXQuaD4gaGVhZGVyIGZp bGUuICovCi0rI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotKwotKy8qIERlZmluZSB0byAxIGlm IHlvdSBoYXZlIHRoZSA8c3lzL3R5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwotKyNkZWZpbmUgSEFW RV9TWVNfVFlQRVNfSCAxCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1bmlz dGQuaD4gaGVhZGVyIGZpbGUuICovCi0rI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLSsKLSsvKiBE ZWZpbmUgdG8gdGhlIHN1Yi1kaXJlY3Rvcnkgd2hlcmUgbGlidG9vbCBzdG9yZXMgdW5pbnN0YWxs ZWQgbGlicmFyaWVzLiAqLwotKyNkZWZpbmUgTFRfT0JKRElSICIubGlicy8iCi0rCi0rLyogTmFt ZSBvZiBwYWNrYWdlICovCi0rI2RlZmluZSBQQUNLQUdFICJ5YWJhc2ljIgotKwotKy8qIERlZmlu ZSB0byB0aGUgYWRkcmVzcyB3aGVyZSBidWcgcmVwb3J0cyBmb3IgdGhpcyBwYWNrYWdlIHNob3Vs ZCBiZSBzZW50LiAqLwotKyNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLSsKLSsvKiBEZWZp bmUgdG8gdGhlIGZ1bGwgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCi0rI2RlZmluZSBQQUNLQUdF X05BTUUgInlhYmFzaWMiCi0rCi0rLyogRGVmaW5lIHRvIHRoZSBmdWxsIG5hbWUgYW5kIHZlcnNp b24gb2YgdGhpcyBwYWNrYWdlLiAqLwotKyNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInlhYmFzaWMg Mi44Ni4xIgotKwotKy8qIERlZmluZSB0byB0aGUgb25lIHN5bWJvbCBzaG9ydCBuYW1lIG9mIHRo aXMgcGFja2FnZS4gKi8KLSsjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAieWFiYXNpYyIKLSsKLSsv KiBEZWZpbmUgdG8gdGhlIGhvbWUgcGFnZSBmb3IgdGhpcyBwYWNrYWdlLiAqLwotKyNkZWZpbmUg UEFDS0FHRV9VUkwgIiIKLSsKLSsvKiBEZWZpbmUgdG8gdGhlIHZlcnNpb24gb2YgdGhpcyBwYWNr YWdlLiAqLwotKyNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjg2LjEiCi0rCi0rLyogSWYgdXNp bmcgdGhlIEMgaW1wbGVtZW50YXRpb24gb2YgYWxsb2NhLCBkZWZpbmUgaWYgeW91IGtub3cgdGhl Ci0rICAgZGlyZWN0aW9uIG9mIHN0YWNrIGdyb3d0aCBmb3IgeW91ciBzeXN0ZW07IG90aGVyd2lz ZSBpdCB3aWxsIGJlCi0rICAgYXV0b21hdGljYWxseSBkZWR1Y2VkIGF0IHJ1bnRpbWUuCi0rCVNU QUNLX0RJUkVDVElPTiA+IDAgPT4gZ3Jvd3MgdG93YXJkIGhpZ2hlciBhZGRyZXNzZXMKLSsJU1RB Q0tfRElSRUNUSU9OIDwgMCA9PiBncm93cyB0b3dhcmQgbG93ZXIgYWRkcmVzc2VzCi0rCVNUQUNL X0RJUkVDVElPTiA9IDAgPT4gZGlyZWN0aW9uIG9mIGdyb3d0aCB1bmtub3duICovCi0rLyogI3Vu ZGVmIFNUQUNLX0RJUkVDVElPTiAqLwotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRo ZSBBTlNJIEMgaGVhZGVyIGZpbGVzLiAqLwotKyNkZWZpbmUgU1REQ19IRUFERVJTIDEKLSsKLSsv KiBhcmNoaXRlY3R1cmUgb2YgYnVpbGQgbWFjaGluZSAqLwotKyNkZWZpbmUgVU5JWF9BUkNISVRF Q1RVUkUgIng4Nl82NC11bmtub3duLWxpbnV4LWdudSIKLSsKLSsvKiBsaWJmZmkgYW5kIGRsb3Bl biBhdmFpbGFibGUgKi8KLSsjZGVmaW5lIFVTRV9ETF9GRkkgMQotKwotKy8qIFZlcnNpb24gbnVt YmVyIG9mIHBhY2thZ2UgKi8KLSsjZGVmaW5lIFZFUlNJT04gIjIuODYuMSIKLSsKLSsvKiBEZWZp bmUgdG8gMSBpZiB0aGUgWCBXaW5kb3cgU3lzdGVtIGlzIG1pc3Npbmcgb3Igbm90IGJlaW5nIHVz ZWQuICovCi0rLyogI3VuZGVmIFhfRElTUExBWV9NSVNTSU5HICovCi0rCi0rLyogRGVmaW5lIHRv IGB1bnNpZ25lZCBpbnQnIGlmIDxzeXMvdHlwZXMuaD4gZG9lcyBub3QgZGVmaW5lLiAqLwotKy8q ICN1bmRlZiBzaXplX3QgKi8KLWRpZmYgLS1naXQgdW5peC9sYW5nL2NvbmZpZy5zdGF0dXMgdW5p eC9sYW5nL2NvbmZpZy5zdGF0dXMKLW5ldyBmaWxlIG1vZGUgMTAwNzU1Ci1pbmRleCAwMDAwMDAw Li5iY2JjNzc2Ci0tLS0gL2Rldi9udWxsCi0rKysgdW5peC9sYW5nL2NvbmZpZy5zdGF0dXMKLUBA IC0wLDAgKzEsMTk4MiBAQAotKyMhIC9iaW4vc2gKLSsjIEdlbmVyYXRlZCBieSBjb25maWd1cmUu Ci0rIyBSdW4gdGhpcyBmaWxlIHRvIHJlY3JlYXRlIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24u Ci0rIyBDb21waWxlciBvdXRwdXQgcHJvZHVjZWQgYnkgY29uZmlndXJlLCB1c2VmdWwgZm9yIGRl YnVnZ2luZwotKyMgY29uZmlndXJlLCBpcyBpbiBjb25maWcubG9nIGlmIGl0IGV4aXN0cy4KLSsK LStkZWJ1Zz1mYWxzZQotK2FjX2NzX3JlY2hlY2s9ZmFsc2UKLSthY19jc19zaWxlbnQ9ZmFsc2UK LSsKLStTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQotK2V4cG9ydCBTSEVMTAotKyMjIC0t LS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMgTTRzaCBJbml0aWFsaXphdGlvbi4gIyMKLSsjIyAt LS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotKwotKyMgQmUgbW9yZSBCb3VybmUgY29tcGF0aWJsZQot K0RVQUxDQVNFPTE7IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mgc2gKLStpZiB0ZXN0IC1uICIk e1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4g OgotKyAgZW11bGF0ZSBzaAotKyAgTlVMTENNRD06Ci0rICAjIFByZS00LjIgdmVyc2lvbnMgb2Yg WnNoIGRvIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKLSsgICMgaXMgY29udHJh cnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCi0rICBhbGlhcyAtZyAnJHsx KyIkQCJ9Jz0nIiRAIicKLSsgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0rZWxzZQotKyAgY2FzZSBg KHNldCAtbykgMj4vZGV2L251bGxgIGluICMoCi0rICAqcG9zaXgqKSA6Ci0rICAgIHNldCAtbyBw b3NpeCA7OyAjKAotKyAgKikgOgotKyAgICAgOzsKLStlc2FjCi0rZmkKLSsKLSsKLSthc19ubD0n Ci0rJwotK2V4cG9ydCBhc19ubAotKyMgUHJpbnRpbmcgYSBsb25nIHN0cmluZyBjcmFzaGVzIFNv bGFyaXMgNyAvdXNyL2Jpbi9wcmludGYuCi0rYXNfZWNobz0nXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCcKLSthc19lY2hvPSRhc19lY2hvJGFzX2VjaG8kYXNf ZWNobyRhc19lY2hvJGFzX2VjaG8KLSthc19lY2hvPSRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRh c19lY2hvJGFzX2VjaG8kYXNfZWNobwotKyMgUHJlZmVyIGEga3NoIHNoZWxsIGJ1aWx0aW4gb3Zl ciBhbiBleHRlcm5hbCBwcmludGYgcHJvZ3JhbSBvbiBTb2xhcmlzLAotKyMgYnV0IHdpdGhvdXQg d2FzdGluZyBmb3JrcyBmb3IgYmFzaCBvciB6c2guCi0raWYgdGVzdCAteiAiJEJBU0hfVkVSU0lP TiRaU0hfVkVSU0lPTiIgXAotKyAgICAmJiAodGVzdCAiWGBwcmludCAtciAtLSAkYXNfZWNob2Ai ID0gIlgkYXNfZWNobyIpIDI+L2Rldi9udWxsOyB0aGVuCi0rICBhc19lY2hvPSdwcmludCAtciAt LScKLSsgIGFzX2VjaG9fbj0ncHJpbnQgLXJuIC0tJwotK2VsaWYgKHRlc3QgIlhgcHJpbnRmICVz ICRhc19lY2hvYCIgPSAiWCRhc19lY2hvIikgMj4vZGV2L251bGw7IHRoZW4KLSsgIGFzX2VjaG89 J3ByaW50ZiAlc1xuJwotKyAgYXNfZWNob19uPSdwcmludGYgJXMnCi0rZWxzZQotKyAgaWYgdGVz dCAiWGAoL3Vzci91Y2VjaG8gLW4gLW4gJGFzX2VjaG8pIDI+L2Rldi9udWxsYCIgPSAiWC1uICRh c19lY2hvIjsgdGhlbgotKyAgICBhc19lY2hvX2JvZHk9J2V2YWwgL3Vzci91Y2VjaG8gLW4gIiQx JGFzX25sIicKLSsgICAgYXNfZWNob19uPScvdXNyL3VjZWNobyAtbicKLSsgIGVsc2UKLSsgICAg YXNfZWNob19ib2R5PSdldmFsIGV4cHIgIlgkMSIgOiAiWFxcKC4qXFwpIicKLSsgICAgYXNfZWNo b19uX2JvZHk9J2V2YWwKLSsgICAgICBhcmc9JDE7Ci0rICAgICAgY2FzZSAkYXJnIGluICMoCi0r ICAgICAgKiIkYXNfbmwiKikKLSsJZXhwciAiWCRhcmciIDogIlhcXCguKlxcKSRhc19ubCI7Ci0r CWFyZz1gZXhwciAiWCRhcmciIDogIi4qJGFzX25sXFwoLipcXCkiYDs7Ci0rICAgICAgZXNhYzsK LSsgICAgICBleHByICJYJGFyZyIgOiAiWFxcKC4qXFwpIiB8IHRyIC1kICIkYXNfbmwiCi0rICAg ICcKLSsgICAgZXhwb3J0IGFzX2VjaG9fbl9ib2R5Ci0rICAgIGFzX2VjaG9fbj0nc2ggLWMgJGFz X2VjaG9fbl9ib2R5IGFzX2VjaG8nCi0rICBmaQotKyAgZXhwb3J0IGFzX2VjaG9fYm9keQotKyAg YXNfZWNobz0nc2ggLWMgJGFzX2VjaG9fYm9keSBhc19lY2hvJwotK2ZpCi0rCi0rIyBUaGUgdXNl ciBpcyBhbHdheXMgcmlnaHQuCi0raWYgdGVzdCAiJHtQQVRIX1NFUEFSQVRPUitzZXR9IiAhPSBz ZXQ7IHRoZW4KLSsgIFBBVEhfU0VQQVJBVE9SPToKLSsgIChQQVRIPScvYmluOy9iaW4nOyBGUEFU SD0kUEFUSDsgc2ggLWMgOikgPi9kZXYvbnVsbCAyPiYxICYmIHsKLSsgICAgKFBBVEg9Jy9iaW46 L2Jpbic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6KSA+L2Rldi9udWxsIDI+JjEgfHwKLSsgICAgICBQ QVRIX1NFUEFSQVRPUj0nOycKLSsgIH0KLStmaQotKwotKwotKyMgSUZTCi0rIyBXZSBuZWVkIHNw YWNlLCB0YWIgYW5kIG5ldyBsaW5lLCBpbiBwcmVjaXNlbHkgdGhhdCBvcmRlci4gIFF1b3Rpbmcg aXMKLSsjIHRoZXJlIHRvIHByZXZlbnQgZWRpdG9ycyBmcm9tIGNvbXBsYWluaW5nIGFib3V0IHNw YWNlLXRhYi4KLSsjIChJZiBfQVNfUEFUSF9XQUxLIHdlcmUgY2FsbGVkIHdpdGggSUZTIHVuc2V0 LCBpdCB3b3VsZCBkaXNhYmxlIHdvcmQKLSsjIHNwbGl0dGluZyBieSBzZXR0aW5nIElGUyB0byBl bXB0eSB2YWx1ZS4pCi0rSUZTPSIgIiIJJGFzX25sIgotKwotKyMgRmluZCB3aG8gd2UgYXJlLiAg TG9vayBpbiB0aGUgcGF0aCBpZiB3ZSBjb250YWluIG5vIGRpcmVjdG9yeSBzZXBhcmF0b3IuCi0r YXNfbXlzZWxmPQotK2Nhc2UgJDAgaW4gIygoCi0rICAqW1xcL10qICkgYXNfbXlzZWxmPSQwIDs7 Ci0rICAqKSBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2Rp ciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgotKyAgICB0ZXN0IC1yICIkYXNfZGlyLyQwIiAmJiBhc19teXNlbGY9JGFz X2Rpci8kMCAmJiBicmVhawotKyAgZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsgICAgIDs7 Ci0rZXNhYwotKyMgV2UgZGlkIG5vdCBmaW5kIG91cnNlbHZlcywgbW9zdCBwcm9iYWJseSB3ZSB3 ZXJlIHJ1biBhcyBgc2ggQ09NTUFORCcKLSsjIGluIHdoaWNoIGNhc2Ugd2UgYXJlIG5vdCB0byBi ZSBmb3VuZCBpbiB0aGUgcGF0aC4KLStpZiB0ZXN0ICJ4JGFzX215c2VsZiIgPSB4OyB0aGVuCi0r ICBhc19teXNlbGY9JDAKLStmaQotK2lmIHRlc3QgISAtZiAiJGFzX215c2VsZiI7IHRoZW4KLSsg ICRhc19lY2hvICIkYXNfbXlzZWxmOiBlcnJvcjogY2Fubm90IGZpbmQgbXlzZWxmOyByZXJ1biB3 aXRoIGFuIGFic29sdXRlIGZpbGUgbmFtZSIgPiYyCi0rICBleGl0IDEKLStmaQotKwotKyMgVW5z ZXQgdmFyaWFibGVzIHRoYXQgd2UgZG8gbm90IG5lZWQgYW5kIHdoaWNoIGNhdXNlIGJ1Z3MgKGUu Zy4gaW4KLSsjIHByZS0zLjAgVVdJTiBrc2gpLiAgQnV0IGRvIG5vdCBjYXVzZSBidWdzIGluIGJh c2ggMi4wMTsgdGhlICJ8fCBleGl0IDEiCi0rIyBzdXBwcmVzc2VzIGFueSAiU2VnbWVudGF0aW9u IGZhdWx0IiBtZXNzYWdlIHRoZXJlLiAgJygoJyBjb3VsZAotKyMgdHJpZ2dlciBhIGJ1ZyBpbiBw ZGtzaCA1LjIuMTQuCi0rZm9yIGFzX3ZhciBpbiBCQVNIX0VOViBFTlYgTUFJTCBNQUlMUEFUSAot K2RvIGV2YWwgdGVzdCB4XCR7JGFzX3ZhcitzZXR9ID0geHNldCBcCi0rICAmJiAoICh1bnNldCAk YXNfdmFyKSB8fCBleGl0IDEpID4vZGV2L251bGwgMj4mMSAmJiB1bnNldCAkYXNfdmFyIHx8IDoK LStkb25lCi0rUFMxPSckICcKLStQUzI9Jz4gJwotK1BTND0nKyAnCi0rCi0rIyBOTFMgbnVpc2Fu Y2VzLgotK0xDX0FMTD1DCi0rZXhwb3J0IExDX0FMTAotK0xBTkdVQUdFPUMKLStleHBvcnQgTEFO R1VBR0UKLSsKLSsjIENEUEFUSC4KLSsodW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYg dW5zZXQgQ0RQQVRICi0rCi0rCi0rIyBhc19mbl9lcnJvciBTVEFUVVMgRVJST1IgW0xJTkVOTyBM T0dfRkRdCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBP dXRwdXQgImBiYXNlbmFtZSAkMGA6IGVycm9yOiBFUlJPUiIgdG8gc3RkZXJyLiBJZiBMSU5FTk8g YW5kIExPR19GRCBhcmUKLSsjIHByb3ZpZGVkLCBhbHNvIG91dHB1dCB0aGUgZXJyb3IgdG8gTE9H X0ZELCByZWZlcmVuY2luZyBMSU5FTk8uIFRoZW4gZXhpdCB0aGUKLSsjIHNjcmlwdCB3aXRoIFNU QVRVUywgdXNpbmcgMSBpZiB0aGF0IHdhcyAwLgotK2FzX2ZuX2Vycm9yICgpCi0rewotKyAgYXNf c3RhdHVzPSQxOyB0ZXN0ICRhc19zdGF0dXMgLWVxIDAgJiYgYXNfc3RhdHVzPTEKLSsgIGlmIHRl c3QgIiQ0IjsgdGhlbgotKyAgICBhc19saW5lbm89JHthc19saW5lbm8tIiQzIn0gYXNfbGluZW5v X3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0YWNrCi0rICAgICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiAkMiIgPiYkNAotKyAgZmkKLSsgICRh c19lY2hvICIkYXNfbWU6IGVycm9yOiAkMiIgPiYyCi0rICBhc19mbl9leGl0ICRhc19zdGF0dXMK LSt9ICMgYXNfZm5fZXJyb3IKLSsKLSsKLSsjIGFzX2ZuX3NldF9zdGF0dXMgU1RBVFVTCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU2V0ICQ/IHRvIFNUQVRVUywgd2l0aG91dCBmb3Jr aW5nLgotK2FzX2ZuX3NldF9zdGF0dXMgKCkKLSt7Ci0rICByZXR1cm4gJDEKLSt9ICMgYXNfZm5f c2V0X3N0YXR1cwotKwotKyMgYXNfZm5fZXhpdCBTVEFUVVMKLSsjIC0tLS0tLS0tLS0tLS0tLS0t Ci0rIyBFeGl0IHRoZSBzaGVsbCB3aXRoIFNUQVRVUywgZXZlbiBpbiBhICJ0cmFwIDAiIG9yICJz ZXQgLWUiIGNvbnRleHQuCi0rYXNfZm5fZXhpdCAoKQotK3sKLSsgIHNldCArZQotKyAgYXNfZm5f c2V0X3N0YXR1cyAkMQotKyAgZXhpdCAkMQotK30gIyBhc19mbl9leGl0Ci0rCi0rIyBhc19mbl91 bnNldCBWQVIKLSsjIC0tLS0tLS0tLS0tLS0tLQotKyMgUG9ydGFibHkgdW5zZXQgVkFSLgotK2Fz X2ZuX3Vuc2V0ICgpCi0rewotKyAgeyBldmFsICQxPTsgdW5zZXQgJDE7fQotK30KLSthc191bnNl dD1hc19mbl91bnNldAotKyMgYXNfZm5fYXBwZW5kIFZBUiBWQUxVRQotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotKyMgQXBwZW5kIHRoZSB0ZXh0IGluIFZBTFVFIHRvIHRoZSBlbmQgb2YgdGhl IGRlZmluaXRpb24gY29udGFpbmVkIGluIFZBUi4gVGFrZQotKyMgYWR2YW50YWdlIG9mIGFueSBz aGVsbCBvcHRpbWl6YXRpb25zIHRoYXQgYWxsb3cgYW1vcnRpemVkIGxpbmVhciBncm93dGggb3Zl cgotKyMgcmVwZWF0ZWQgYXBwZW5kcywgaW5zdGVhZCBvZiB0aGUgdHlwaWNhbCBxdWFkcmF0aWMg Z3Jvd3RoIHByZXNlbnQgaW4gbmFpdmUKLSsjIGltcGxlbWVudGF0aW9ucy4KLStpZiAoZXZhbCAi YXNfdmFyPTE7IGFzX3Zhcis9MjsgdGVzdCB4XCRhc192YXIgPSB4MTIiKSAyPi9kZXYvbnVsbDsg dGhlbiA6Ci0rICBldmFsICdhc19mbl9hcHBlbmQgKCkKLSsgIHsKLSsgICAgZXZhbCAkMSs9XCQy Ci0rICB9JwotK2Vsc2UKLSsgIGFzX2ZuX2FwcGVuZCAoKQotKyAgewotKyAgICBldmFsICQxPVwk JDFcJDIKLSsgIH0KLStmaSAjIGFzX2ZuX2FwcGVuZAotKwotKyMgYXNfZm5fYXJpdGggQVJHLi4u Ci0rIyAtLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFBlcmZvcm0gYXJpdGhtZXRpYyBldmFsdWF0aW9u IG9uIHRoZSBBUkdzLCBhbmQgc3RvcmUgdGhlIHJlc3VsdCBpbiB0aGUKLSsjIGdsb2JhbCAkYXNf dmFsLiBUYWtlIGFkdmFudGFnZSBvZiBzaGVsbHMgdGhhdCBjYW4gYXZvaWQgZm9ya3MuIFRoZSBh cmd1bWVudHMKLSsjIG11c3QgYmUgcG9ydGFibGUgYWNyb3NzICQoKCkpIGFuZCBleHByLgotK2lm IChldmFsICJ0ZXN0IFwkKCggMSArIDEgKSkgPSAyIikgMj4vZGV2L251bGw7IHRoZW4gOgotKyAg ZXZhbCAnYXNfZm5fYXJpdGggKCkKLSsgIHsKLSsgICAgYXNfdmFsPSQoKCAkKiApKQotKyAgfScK LStlbHNlCi0rICBhc19mbl9hcml0aCAoKQotKyAgewotKyAgICBhc192YWw9YGV4cHIgIiRAIiB8 fCB0ZXN0ICQ/IC1lcSAxYAotKyAgfQotK2ZpICMgYXNfZm5fYXJpdGgKLSsKLSsKLStpZiBleHBy IGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMSAmJgotKyAgIHRlc3QgIlhgZXhwciAwMDAwMSA6 ICcuKlwoLi4uXCknYCIgPSBYMDAxOyB0aGVuCi0rICBhc19leHByPWV4cHIKLStlbHNlCi0rICBh c19leHByPWZhbHNlCi0rZmkKLSsKLStpZiAoYmFzZW5hbWUgLS0gLykgPi9kZXYvbnVsbCAyPiYx ICYmIHRlc3QgIlhgYmFzZW5hbWUgLS0gLyAyPiYxYCIgPSAiWC8iOyB0aGVuCi0rICBhc19iYXNl bmFtZT1iYXNlbmFtZQotK2Vsc2UKLSsgIGFzX2Jhc2VuYW1lPWZhbHNlCi0rZmkKLSsKLStpZiAo YXNfZGlyPWBkaXJuYW1lIC0tIC9gICYmIHRlc3QgIlgkYXNfZGlyIiA9IFgvKSA+L2Rldi9udWxs IDI+JjE7IHRoZW4KLSsgIGFzX2Rpcm5hbWU9ZGlybmFtZQotK2Vsc2UKLSsgIGFzX2Rpcm5hbWU9 ZmFsc2UKLStmaQotKwotK2FzX21lPWAkYXNfYmFzZW5hbWUgLS0gIiQwIiB8fAotKyRhc19leHBy IFgvIiQwIiA6ICcuKi9cKFteL11bXi9dKlwpLyokJyBcfCBcCi0rCSBYIiQwIiA6ICdYXCgvL1wp JCcgXHwgXAotKwkgWCIkMCIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8Ci0rJGFzX2Vj aG8gWC8iJDAiIHwKLSsgICAgc2VkICcvXi4qXC9cKFteL11bXi9dKlwpXC8qJC97Ci0rCSAgICBz Ly9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXC9cKFwvXC9cKSQvewotKwkgICAgcy8vXDEv Ci0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwvXChcL1wpLiovewotKwkgICAgcy8vXDEvCi0rCSAg ICBxCi0rCSAgfQotKwkgIHMvLiovLi87IHEnYAotKwotKyMgQXZvaWQgZGVwZW5kaW5nIHVwb24g Q2hhcmFjdGVyIFJhbmdlcy4KLSthc19jcl9sZXR0ZXJzPSdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2 d3h5eicKLSthc19jcl9MRVRURVJTPSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicKLSthc19j cl9MZXR0ZXJzPSRhc19jcl9sZXR0ZXJzJGFzX2NyX0xFVFRFUlMKLSthc19jcl9kaWdpdHM9JzAx MjM0NTY3ODknCi0rYXNfY3JfYWxudW09JGFzX2NyX0xldHRlcnMkYXNfY3JfZGlnaXRzCi0rCi0r RUNIT19DPSBFQ0hPX049IEVDSE9fVD0KLStjYXNlIGBlY2hvIC1uIHhgIGluICMoKCgoKAotKy1u KikKLSsgIGNhc2UgYGVjaG8gJ3h5XGMnYCBpbgotKyAgKmMqKSBFQ0hPX1Q9JwknOzsJIyBFQ0hP X1QgaXMgc2luZ2xlIHRhYiBjaGFyYWN0ZXIuCi0rICB4eSkgIEVDSE9fQz0nXGMnOzsKLSsgICop ICAgZWNobyBgZWNobyBrc2g4OCBidWcgb24gQUlYIDYuMWAgPiAvZGV2L251bGwKLSsgICAgICAg RUNIT19UPScJJzs7Ci0rICBlc2FjOzsKLSsqKQotKyAgRUNIT19OPSctbic7OwotK2VzYWMKLSsK LStybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQotK2lmIHRlc3QgLWQgY29uZiQk LmRpcjsgdGhlbgotKyAgcm0gLWYgY29uZiQkLmRpci9jb25mJCQuZmlsZQotK2Vsc2UKLSsgIHJt IC1mIGNvbmYkJC5kaXIKLSsgIG1rZGlyIGNvbmYkJC5kaXIgMj4vZGV2L251bGwKLStmaQotK2lm IChlY2hvID5jb25mJCQuZmlsZSkgMj4vZGV2L251bGw7IHRoZW4KLSsgIGlmIGxuIC1zIGNvbmYk JC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgotKyAgICBhc19sbl9zPSdsbiAtcycKLSsg ICAgIyAuLi4gYnV0IHRoZXJlIGFyZSB0d28gZ290Y2hhczoKLSsgICAgIyAxKSBPbiBNU1lTLCBi b3RoIGBsbiAtcyBmaWxlIGRpcicgYW5kIGBsbiBmaWxlIGRpcicgZmFpbC4KLSsgICAgIyAyKSBE SkdQUCA8IDIuMDQgaGFzIG5vIHN5bWxpbmtzOyBgbG4gLXMnIGNyZWF0ZXMgYSB3cmFwcGVyIGV4 ZWN1dGFibGUuCi0rICAgICMgSW4gYm90aCBjYXNlcywgd2UgaGF2ZSB0byBkZWZhdWx0IHRvIGBj cCAtcFInLgotKyAgICBsbiAtcyBjb25mJCQuZmlsZSBjb25mJCQuZGlyIDI+L2Rldi9udWxsICYm IHRlc3QgISAtZiBjb25mJCQuZXhlIHx8Ci0rICAgICAgYXNfbG5fcz0nY3AgLXBSJwotKyAgZWxp ZiBsbiBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KLSsgICAgYXNfbG5fcz1s bgotKyAgZWxzZQotKyAgICBhc19sbl9zPSdjcCAtcFInCi0rICBmaQotK2Vsc2UKLSsgIGFzX2xu X3M9J2NwIC1wUicKLStmaQotK3JtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5kaXIvY29u ZiQkLmZpbGUgY29uZiQkLmZpbGUKLStybWRpciBjb25mJCQuZGlyIDI+L2Rldi9udWxsCi0rCi0r Ci0rIyBhc19mbl9ta2Rpcl9wCi0rIyAtLS0tLS0tLS0tLS0tCi0rIyBDcmVhdGUgIiRhc19kaXIi IGFzIGEgZGlyZWN0b3J5LCBpbmNsdWRpbmcgcGFyZW50cyBpZiBuZWNlc3NhcnkuCi0rYXNfZm5f bWtkaXJfcCAoKQotK3sKLSsKLSsgIGNhc2UgJGFzX2RpciBpbiAjKAotKyAgLSopIGFzX2Rpcj0u LyRhc19kaXI7OwotKyAgZXNhYwotKyAgdGVzdCAtZCAiJGFzX2RpciIgfHwgZXZhbCAkYXNfbWtk aXJfcCB8fCB7Ci0rICAgIGFzX2RpcnM9Ci0rICAgIHdoaWxlIDo7IGRvCi0rICAgICAgY2FzZSAk YXNfZGlyIGluICMoCi0rICAgICAgKlwnKikgYXNfcWRpcj1gJGFzX2VjaG8gIiRhc19kaXIiIHwg c2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsgIycoCi0rICAgICAgKikgYXNfcWRpcj0kYXNfZGly OzsKLSsgICAgICBlc2FjCi0rICAgICAgYXNfZGlycz0iJyRhc19xZGlyJyAkYXNfZGlycyIKLSsg ICAgICBhc19kaXI9YCRhc19kaXJuYW1lIC0tICIkYXNfZGlyIiB8fAotKyRhc19leHByIFgiJGFz X2RpciIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLSsJIFgiJGFzX2RpciIg OiAnWFwoLy9cKVteL10nIFx8IFwKLSsJIFgiJGFzX2RpciIgOiAnWFwoLy9cKSQnIFx8IFwKLSsJ IFgiJGFzX2RpciIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8Ci0rJGFzX2VjaG8gWCIk YXNfZGlyIiB8Ci0rICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97Ci0r CSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXClbXi9dLiovewotKwkg ICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpJC97Ci0rCSAgICBzLy9c MS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wpLiovewotKwkgICAgcy8vXDEvCi0rCSAg ICBxCi0rCSAgfQotKwkgIHMvLiovLi87IHEnYAotKyAgICAgIHRlc3QgLWQgIiRhc19kaXIiICYm IGJyZWFrCi0rICAgIGRvbmUKLSsgICAgdGVzdCAteiAiJGFzX2RpcnMiIHx8IGV2YWwgIm1rZGly ICRhc19kaXJzIgotKyAgfSB8fCB0ZXN0IC1kICIkYXNfZGlyIiB8fCBhc19mbl9lcnJvciAkPyAi Y2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGFzX2RpciIKLSsKLSsKLSt9ICMgYXNfZm5fbWtkaXJf cAotK2lmIG1rZGlyIC1wIC4gMj4vZGV2L251bGw7IHRoZW4KLSsgIGFzX21rZGlyX3A9J21rZGly IC1wICIkYXNfZGlyIicKLStlbHNlCi0rICB0ZXN0IC1kIC4vLXAgJiYgcm1kaXIgLi8tcAotKyAg YXNfbWtkaXJfcD1mYWxzZQotK2ZpCi0rCi0rCi0rIyBhc19mbl9leGVjdXRhYmxlX3AgRklMRQot KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFRlc3QgaWYgRklMRSBpcyBhbiBleGVjdXRh YmxlIHJlZ3VsYXIgZmlsZS4KLSthc19mbl9leGVjdXRhYmxlX3AgKCkKLSt7Ci0rICB0ZXN0IC1m ICIkMSIgJiYgdGVzdCAteCAiJDEiCi0rfSAjIGFzX2ZuX2V4ZWN1dGFibGVfcAotK2FzX3Rlc3Rf eD0ndGVzdCAteCcKLSthc19leGVjdXRhYmxlX3A9YXNfZm5fZXhlY3V0YWJsZV9wCi0rCi0rIyBT ZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIENQUCBuYW1lLgotK2Fz X3RyX2NwcD0iZXZhbCBzZWQgJ3klKiRhc19jcl9sZXR0ZXJzJVAkYXNfY3JfTEVUVEVSUyU7cyVb Xl8kYXNfY3JfYWxudW1dJV8lZyciCi0rCi0rIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJp bmcgb250byBhIHZhbGlkIHZhcmlhYmxlIG5hbWUuCi0rYXNfdHJfc2g9ImV2YWwgc2VkICd5JSor JXBwJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKLSsKLSsKLStleGVjIDY+JjEKLSsjIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotKyMjIE1haW4gYm9keSBvZiAkQ09O RklHX1NUQVRVUyBzY3JpcHQuICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0gIyMKLSsjIFNhdmUgdGhlIGxvZyBtZXNzYWdlLCB0byBrZWVwICQwIGFuZCBzbyBvbiBt ZWFuaW5nZnVsLCBhbmQgdG8KLSsjIHJlcG9ydCBhY3R1YWwgaW5wdXQgdmFsdWVzIG9mIENPTkZJ R19GSUxFUyBldGMuIGluc3RlYWQgb2YgdGhlaXIKLSsjIHZhbHVlcyBhZnRlciBvcHRpb25zIGhh bmRsaW5nLgotK2FjX2xvZz0iCi0rVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSB5YWJhc2ljICRh c19tZSAyLjg2LjEsIHdoaWNoIHdhcwotK2dlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42OS4g IEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwotKwotKyAgQ09ORklHX0ZJTEVTICAgID0gJENP TkZJR19GSUxFUwotKyAgQ09ORklHX0hFQURFUlMgID0gJENPTkZJR19IRUFERVJTCi0rICBDT05G SUdfTElOS1MgICAgPSAkQ09ORklHX0xJTktTCi0rICBDT05GSUdfQ09NTUFORFMgPSAkQ09ORklH X0NPTU1BTkRTCi0rICAkICQwICRACi0rCi0rb24gYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4v ZGV2L251bGwgfCBzZWQgMXFgCi0rIgotKwotKyMgRmlsZXMgdGhhdCBjb25maWcuc3RhdHVzIHdh cyBtYWRlIGZvci4KLStjb25maWdfZmlsZXM9IiBNYWtlZmlsZSIKLStjb25maWdfaGVhZGVycz0i IGNvbmZpZy5oOmNvbmZpZy5oLmluIgotK2NvbmZpZ19jb21tYW5kcz0iIGRlcGZpbGVzIGxpYnRv b2wiCi0rCi0rYWNfY3NfdXNhZ2U9IlwKLStcYCRhc19tZScgaW5zdGFudGlhdGVzIGZpbGVzIGFu ZCBvdGhlciBjb25maWd1cmF0aW9uIGFjdGlvbnMKLStmcm9tIHRlbXBsYXRlcyBhY2NvcmRpbmcg dG8gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi4gIFVubGVzcyB0aGUgZmlsZXMKLSthbmQgYWN0 aW9ucyBhcmUgc3BlY2lmaWVkIGFzIFRBR3MsIGFsbCBhcmUgaW5zdGFudGlhdGVkIGJ5IGRlZmF1 bHQuCi0rCi0rVXNhZ2U6ICQwIFtPUFRJT05dLi4uIFtUQUddLi4uCi0rCi0rICAtaCwgLS1oZWxw ICAgICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0Ci0rICAtViwgLS12ZXJzaW9uICAgIHBy aW50IHZlcnNpb24gbnVtYmVyIGFuZCBjb25maWd1cmF0aW9uIHNldHRpbmdzLCB0aGVuIGV4aXQK LSsgICAgICAtLWNvbmZpZyAgICAgcHJpbnQgY29uZmlndXJhdGlvbiwgdGhlbiBleGl0Ci0rICAt cSwgLS1xdWlldCwgLS1zaWxlbnQKLSsgICAgICAgICAgICAgICAgICAgZG8gbm90IHByaW50IHBy b2dyZXNzIG1lc3NhZ2VzCi0rICAtZCwgLS1kZWJ1ZyAgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3Jh cnkgZmlsZXMKLSsgICAgICAtLXJlY2hlY2sgICAgdXBkYXRlICRhc19tZSBieSByZWNvbmZpZ3Vy aW5nIGluIHRoZSBzYW1lIGNvbmRpdGlvbnMKLSsgICAgICAtLWZpbGU9RklMRVs6VEVNUExBVEVd Ci0rICAgICAgICAgICAgICAgICAgIGluc3RhbnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUg RklMRQotKyAgICAgIC0taGVhZGVyPUZJTEVbOlRFTVBMQVRFXQotKyAgICAgICAgICAgICAgICAg ICBpbnN0YW50aWF0ZSB0aGUgY29uZmlndXJhdGlvbiBoZWFkZXIgRklMRQotKwotK0NvbmZpZ3Vy YXRpb24gZmlsZXM6Ci0rJGNvbmZpZ19maWxlcwotKwotK0NvbmZpZ3VyYXRpb24gaGVhZGVyczoK LSskY29uZmlnX2hlYWRlcnMKLSsKLStDb25maWd1cmF0aW9uIGNvbW1hbmRzOgotKyRjb25maWdf Y29tbWFuZHMKLSsKLStSZXBvcnQgYnVncyB0byB0aGUgcGFja2FnZSBwcm92aWRlci4iCi0rCi0r YWNfY3NfY29uZmlnPSIiCi0rYWNfY3NfdmVyc2lvbj0iXAotK3lhYmFzaWMgY29uZmlnLnN0YXR1 cyAyLjg2LjEKLStjb25maWd1cmVkIGJ5IC4vY29uZmlndXJlLCBnZW5lcmF0ZWQgYnkgR05VIEF1 dG9jb25mIDIuNjksCi0rICB3aXRoIG9wdGlvbnMgXCIkYWNfY3NfY29uZmlnXCIKLSsKLStDb3B5 cmlnaHQgKEMpIDIwMTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rVGhpcyBjb25m aWcuc3RhdHVzIHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uCi0rZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBh bmQgbW9kaWZ5IGl0LiIKLSsKLSthY19wd2Q9Jy9ob21lL2lobS95YWJhc2ljL3VuaXgvbGFuZycK LStzcmNkaXI9Jy4nCi0rSU5TVEFMTD0nL3Vzci9iaW4vaW5zdGFsbCAtYycKLStNS0RJUl9QPScv dXNyL2Jpbi9ta2RpciAtcCcKLStBV0s9J2dhd2snCi0rdGVzdCAtbiAiJEFXSyIgfHwgQVdLPWF3 awotKyMgVGhlIGRlZmF1bHQgbGlzdHMgYXBwbHkgaWYgdGhlIHVzZXIgZG9lcyBub3Qgc3BlY2lm eSBhbnkgZmlsZS4KLSthY19uZWVkX2RlZmF1bHRzPToKLSt3aGlsZSB0ZXN0ICQjICE9IDAKLStk bwotKyAgY2FzZSAkMSBpbgotKyAgLS0qPT8qKQotKyAgICBhY19vcHRpb249YGV4cHIgIlgkMSIg OiAnWFwoW149XSpcKT0nYAotKyAgICBhY19vcHRhcmc9YGV4cHIgIlgkMSIgOiAnWFtePV0qPVwo LipcKSdgCi0rICAgIGFjX3NoaWZ0PToKLSsgICAgOzsKLSsgIC0tKj0pCi0rICAgIGFjX29wdGlv bj1gZXhwciAiWCQxIiA6ICdYXChbXj1dKlwpPSdgCi0rICAgIGFjX29wdGFyZz0KLSsgICAgYWNf c2hpZnQ9OgotKyAgICA7OwotKyAgKikKLSsgICAgYWNfb3B0aW9uPSQxCi0rICAgIGFjX29wdGFy Zz0kMgotKyAgICBhY19zaGlmdD1zaGlmdAotKyAgICA7OwotKyAgZXNhYwotKwotKyAgY2FzZSAk YWNfb3B0aW9uIGluCi0rICAjIEhhbmRsaW5nIG9mIHRoZSBvcHRpb25zLgotKyAgLXJlY2hlY2sg fCAtLXJlY2hlY2sgfCAtLXJlY2hlYyB8IC0tcmVjaGUgfCAtLXJlY2ggfCAtLXJlYyB8IC0tcmUg fCAtLXIpCi0rICAgIGFjX2NzX3JlY2hlY2s9OiA7OwotKyAgLS12ZXJzaW9uIHwgLS12ZXJzaW8g fCAtLXZlcnNpIHwgLS12ZXJzIHwgLS12ZXIgfCAtLXZlIHwgLS12IHwgLVYgKQotKyAgICAkYXNf ZWNobyAiJGFjX2NzX3ZlcnNpb24iOyBleGl0IDs7Ci0rICAtLWNvbmZpZyB8IC0tY29uZmkgfCAt LWNvbmYgfCAtLWNvbiB8IC0tY28gfCAtLWMgKQotKyAgICAkYXNfZWNobyAiJGFjX2NzX2NvbmZp ZyI7IGV4aXQgOzsKLSsgIC0tZGVidWcgfCAtLWRlYnUgfCAtLWRlYiB8IC0tZGUgfCAtLWQgfCAt ZCApCi0rICAgIGRlYnVnPTogOzsKLSsgIC0tZmlsZSB8IC0tZmlsIHwgLS1maSB8IC0tZiApCi0r ICAgICRhY19zaGlmdAotKyAgICBjYXNlICRhY19vcHRhcmcgaW4KLSsgICAgKlwnKikgYWNfb3B0 YXJnPWAkYXNfZWNobyAiJGFjX29wdGFyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsK LSsgICAgJycpIGFzX2ZuX2Vycm9yICQ/ICJtaXNzaW5nIGZpbGUgYXJndW1lbnQiIDs7Ci0rICAg IGVzYWMKLSsgICAgYXNfZm5fYXBwZW5kIENPTkZJR19GSUxFUyAiICckYWNfb3B0YXJnJyIKLSsg ICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7Ci0rICAtLWhlYWRlciB8IC0taGVhZGUgfCAtLWhl YWQgfCAtLWhlYSApCi0rICAgICRhY19zaGlmdAotKyAgICBjYXNlICRhY19vcHRhcmcgaW4KLSsg ICAgKlwnKikgYWNfb3B0YXJnPWAkYXNfZWNobyAiJGFjX29wdGFyZyIgfCBzZWQgInMvJy8nXFxc XFxcXFwnJy9nImAgOzsKLSsgICAgZXNhYwotKyAgICBhc19mbl9hcHBlbmQgQ09ORklHX0hFQURF UlMgIiAnJGFjX29wdGFyZyciCi0rICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OwotKyAgLS1o ZSB8IC0taCkKLSsgICAgIyBDb25mbGljdCBiZXR3ZWVuIC0taGVscCBhbmQgLS1oZWFkZXIKLSsg ICAgYXNfZm5fZXJyb3IgJD8gImFtYmlndW91cyBvcHRpb246IFxgJDEnCi0rVHJ5IFxgJDAgLS1o ZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iOzsKLSsgIC0taGVscCB8IC0taGVsIHwgLWggKQot KyAgICAkYXNfZWNobyAiJGFjX2NzX3VzYWdlIjsgZXhpdCA7OwotKyAgLXEgfCAtcXVpZXQgfCAt LXF1aWV0IHwgLS1xdWllIHwgLS1xdWkgfCAtLXF1IHwgLS1xIFwKLSsgIHwgLXNpbGVudCB8IC0t c2lsZW50IHwgLS1zaWxlbiB8IC0tc2lsZSB8IC0tc2lsIHwgLS1zaSB8IC0tcykKLSsgICAgYWNf Y3Nfc2lsZW50PTogOzsKLSsKLSsgICMgVGhpcyBpcyBhbiBlcnJvci4KLSsgIC0qKSBhc19mbl9l cnJvciAkPyAidW5yZWNvZ25pemVkIG9wdGlvbjogXGAkMScKLStUcnkgXGAkMCAtLWhlbHAnIGZv ciBtb3JlIGluZm9ybWF0aW9uLiIgOzsKLSsKLSsgICopIGFzX2ZuX2FwcGVuZCBhY19jb25maWdf dGFyZ2V0cyAiICQxIgotKyAgICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZSA7OwotKwotKyAgZXNh YwotKyAgc2hpZnQKLStkb25lCi0rCi0rYWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9Ci0rCi0raWYg JGFjX2NzX3NpbGVudDsgdGhlbgotKyAgZXhlYyA2Pi9kZXYvbnVsbAotKyAgYWNfY29uZmlndXJl X2V4dHJhX2FyZ3M9IiRhY19jb25maWd1cmVfZXh0cmFfYXJncyAtLXNpbGVudCIKLStmaQotKwot K2lmICRhY19jc19yZWNoZWNrOyB0aGVuCi0rICBzZXQgWCAvYmluL3NoICcuL2NvbmZpZ3VyZScg ICRhY19jb25maWd1cmVfZXh0cmFfYXJncyAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbgotKyAg c2hpZnQKLSsgICRhc19lY2hvICJydW5uaW5nIENPTkZJR19TSEVMTD0vYmluL3NoICQqIiA+JjYK LSsgIENPTkZJR19TSEVMTD0nL2Jpbi9zaCcKLSsgIGV4cG9ydCBDT05GSUdfU0hFTEwKLSsgIGV4 ZWMgIiRAIgotK2ZpCi0rCi0rZXhlYyA1Pj5jb25maWcubG9nCi0rewotKyAgZWNobwotKyAgc2Vk ICdoO3MvLi8tL2c7cy9eLi4uLyMjIC87cy8uLi4kLyAjIy87cDt4O3A7eCcgPDxfQVNCT1gKLSsj IyBSdW5uaW5nICRhc19tZS4gIyMKLStfQVNCT1gKLSsgICRhc19lY2hvICIkYWNfbG9nIgotK30g PiY1Ci0rCi0rIwotKyMgSU5JVC1DT01NQU5EUwotKyMKLStBTURFUF9UUlVFPSIiIE1BS0U9Im1h a2UiCi0rCi0rCi0rIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFy Z2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKLSsjIGlmIENEUEFUSCBpcyBzZXQuCi0rKHVuc2V0IENE UEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAotKwotK3NlZF9xdW90ZV9zdWJz dD0ncy9cKFsiYCRcXF1cKS9cXFwxL2cnCi0rZG91YmxlX3F1b3RlX3N1YnN0PSdzL1woWyJgXFxd XCkvXFxcMS9nJwotK2RlbGF5X3ZhcmlhYmxlX3N1YnN0PSdzL1xcXFxcXFxcXFxcJC9cXFxcXFwk L2cnCi0rbWFjcm9fdmVyc2lvbj0nMi40LjYnCi0rbWFjcm9fcmV2aXNpb249JzIuNC42JwotK2Vu YWJsZV9zaGFyZWQ9J3llcycKLStlbmFibGVfc3RhdGljPSd5ZXMnCi0rcGljX21vZGU9J2RlZmF1 bHQnCi0rZW5hYmxlX2Zhc3RfaW5zdGFsbD0neWVzJwotK3NoYXJlZF9hcmNoaXZlX21lbWJlcl9z cGVjPScnCi0rU0hFTEw9Jy9iaW4vc2gnCi0rRUNITz0ncHJpbnRmICVzXG4nCi0rUEFUSF9TRVBB UkFUT1I9JzonCi0raG9zdF9hbGlhcz0nJwotK2hvc3Q9J3g4Nl82NC11bmtub3duLWxpbnV4LWdu dScKLStob3N0X29zPSdsaW51eC1nbnUnCi0rYnVpbGRfYWxpYXM9JycKLStidWlsZD0neDg2XzY0 LXVua25vd24tbGludXgtZ251JwotK2J1aWxkX29zPSdsaW51eC1nbnUnCi0rU0VEPScvdXNyL2Jp bi9zZWQnCi0rWHNlZD0nL3Vzci9iaW4vc2VkIC1lIDFzL15YLy8nCi0rR1JFUD0nL3Vzci9iaW4v Z3JlcCcKLStFR1JFUD0nL3Vzci9iaW4vZ3JlcCAtRScKLStGR1JFUD0nL3Vzci9iaW4vZ3JlcCAt RicKLStMRD0nL3Vzci9iaW4vbGQgLW0gZWxmX3g4Nl82NCcKLStOTT0nL3Vzci9iaW4vbm0gLUIn Ci0rTE5fUz0nbG4gLXMnCi0rbWF4X2NtZF9sZW49JzE1NzI4NjQnCi0rYWNfb2JqZXh0PSdvJwot K2V4ZWV4dD0nJwotK2x0X3Vuc2V0PSd1bnNldCcKLStsdF9TUDJOTD0ndHIgXDA0MCBcMDEyJwot K2x0X05MMlNQPSd0ciBcMDE1XDAxMiBcMDQwXDA0MCcKLStsdF9jdl90b19ob3N0X2ZpbGVfY21k PSdmdW5jX2NvbnZlcnRfZmlsZV9ub29wJwotK2x0X2N2X3RvX3Rvb2xfZmlsZV9jbWQ9J2Z1bmNf Y29udmVydF9maWxlX25vb3AnCi0rcmVsb2FkX2ZsYWc9JyAtcicKLStyZWxvYWRfY21kcz0nJExE JHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCi0rT0JKRFVNUD0nb2JqZHVtcCcK LStkZXBsaWJzX2NoZWNrX21ldGhvZD0ncGFzc19hbGwnCi0rZmlsZV9tYWdpY19jbWQ9JyRNQUdJ Q19DTUQnCi0rZmlsZV9tYWdpY19nbG9iPScnCi0rd2FudF9ub2Nhc2VnbG9iPSdubycKLStETExU T09MPSdmYWxzZScKLStzaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZD0ncHJpbnRmICVzXG4nCi0r QVI9J2FyJwotK0FSX0ZMQUdTPSdjcnUnCi0rYXJjaGl2ZXJfbGlzdF9zcGVjPSdAJwotK1NUUklQ PSdzdHJpcCcKLStSQU5MSUI9J3JhbmxpYicKLStvbGRfcG9zdGluc3RhbGxfY21kcz0nY2htb2Qg NjQ0ICRvbGRsaWJ+JFJBTkxJQiAkdG9vbF9vbGRsaWInCi0rb2xkX3Bvc3R1bmluc3RhbGxfY21k cz0nJwotK29sZF9hcmNoaXZlX2NtZHM9JyRBUiAkQVJfRkxBR1MgJG9sZGxpYiRvbGRvYmpzfiRS QU5MSUIgJHRvb2xfb2xkbGliJwotK2xvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbj0nbm8nCi0r Q0M9J2djYycKLStDRkxBR1M9Jy1nIC1PMicKLStjb21waWxlcj0nZ2NjJwotK0dDQz0neWVzJwot K2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9J3NlZCAtbiAtZSAnXCcncy9eLipbCSBdXChb QUJDREdJUlNUV11bQUJDREdJUlNUV10qXClbCSBdWwkgXSpcKFtfQS1aYS16XVtfQS1aYS16MC05 XSpcKSQvXDEgXDIgXDIvcCdcJycgfCBzZWQgJ1wnJy8gX19nbnVfbHRvL2QnXCcnJwotK2x0X2N2 X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSdzZWQgLW4gLWUgJ1wnJ3MvXlQgLiogXCguKlwp JC9leHRlcm4gaW50IFwxKCk7L3AnXCcnIC1lICdcJydzL15bQUJDREdJUlNUV11bQUJDREdJUlNU V10qIC4qIFwoLipcKSQvZXh0ZXJuIGNoYXIgXDE7L3AnXCcnJwotK2x0X2N2X3N5c19nbG9iYWxf c3ltYm9sX3RvX2ltcG9ydD0nJwotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9h ZGRyZXNzPSdzZWQgLW4gLWUgJ1wnJ3MvXjogXCguKlwpIC4qJC8gIHsiXDEiLCAodm9pZCAqKSAw fSwvcCdcJycgLWUgJ1wnJ3MvXltBQkNER0lSU1RXXVtBQkNER0lSU1RXXSogLiogXCguKlwpJC8g IHsiXDEiLCAodm9pZCAqKSBcJlwxfSwvcCdcJycnCi0rbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xf dG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeD0nc2VkIC1uIC1lICdcJydzL146IFwoLipcKSAu KiQvICB7IlwxIiwgKHZvaWQgKikgMH0sL3AnXCcnIC1lICdcJydzL15bQUJDREdJUlNUV11bQUJD REdJUlNUV10qIC4qIFwobGliLipcKSQvICB7IlwxIiwgKHZvaWQgKikgXCZcMX0sL3AnXCcnIC1l ICdcJydzL15bQUJDREdJUlNUV11bQUJDREdJUlNUV10qIC4qIFwoLipcKSQvICB7ImxpYlwxIiwg KHZvaWQgKikgXCZcMX0sL3AnXCcnJwotK2x0X2N2X25tX2ludGVyZmFjZT0nQlNEIG5tJwotK25t X2ZpbGVfbGlzdF9zcGVjPSdAJwotK2x0X3N5c3Jvb3Q9JycKLStsdF9jdl90cnVuY2F0ZV9iaW49 Jy91c3IvYmluL2RkIGJzPTQwOTYgY291bnQ9MScKLStvYmpkaXI9Jy5saWJzJwotK01BR0lDX0NN RD0nZmlsZScKLStsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZz0nIC1mbm8tYnVpbHRp bicKLStsdF9wcm9nX2NvbXBpbGVyX3BpYz0nIC1mUElDIC1EUElDJwotK2x0X3Byb2dfY29tcGls ZXJfd2w9Jy1XbCwnCi0rbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9JycKLStsdF9jdl9wcm9nX2Nv bXBpbGVyX2Nfbz0neWVzJwotK25lZWRfbG9ja3M9J25vJwotK01BTklGRVNUX1RPT0w9JzonCi0r RFNZTVVUSUw9JycKLStOTUVESVQ9JycKLStMSVBPPScnCi0rT1RPT0w9JycKLStPVE9PTDY0PScn Ci0rbGliZXh0PSdhJwotK3NocmV4dF9jbWRzPScuc28nCi0rZXh0cmFjdF9leHBzeW1zX2NtZHM9 JycKLSthcmNoaXZlX2NtZHNfbmVlZF9sYz0nbm8nCi0rZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRp Y19ydW50aW1lcz0nbm8nCi0rZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPSckd2wtLWV4cG9ydC1k eW5hbWljJwotK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSckd2wtLXdob2xlLWFyY2hpdmUkY29u dmVuaWVuY2UgJHdsLS1uby13aG9sZS1hcmNoaXZlJwotK2NvbXBpbGVyX25lZWRzX29iamVjdD0n bm8nCi0rb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0nJwotK29sZF9hcmNoaXZlX2Zyb21fZXhw c3ltc19jbWRzPScnCi0rYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR3bC1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGli JwotK2FyY2hpdmVfZXhwc3ltX2NtZHM9J2VjaG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRp ci8kbGlibmFtZS52ZXJ+Ci0rICAgICAgICAgICAgY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAt ZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKyAgICAg ICAgICAgIGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVy fgotKyAgICAgICAgICAgICRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgJHdsLXNvbmFtZSAkd2wkc29uYW1lICR3bC12ZXJzaW9uLXNjcmlwdCAk d2wkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKLSttb2R1bGVfY21kcz0nJwot K21vZHVsZV9leHBzeW1fY21kcz0nJwotK3dpdGhfZ251X2xkPSd5ZXMnCi0rYWxsb3dfdW5kZWZp bmVkX2ZsYWc9JycKLStub191bmRlZmluZWRfZmxhZz0nJwotK2hhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWM9JyR3bC1ycGF0aCAkd2wkbGliZGlyJwotK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9 JycKLStoYXJkY29kZV9kaXJlY3Q9J25vJwotK2hhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT0nbm8n Ci0raGFyZGNvZGVfbWludXNfTD0nbm8nCi0raGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0ndW5zdXBw b3J0ZWQnCi0raGFyZGNvZGVfYXV0b21hdGljPSdubycKLStpbmhlcml0X3JwYXRoPSdubycKLSts aW5rX2FsbF9kZXBsaWJzPSd1bmtub3duJwotK2Fsd2F5c19leHBvcnRfc3ltYm9scz0nbm8nCi0r ZXhwb3J0X3N5bWJvbHNfY21kcz0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxf c3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9y dF9zeW1ib2xzJwotK2V4Y2x1ZGVfZXhwc3ltcz0nX0dMT0JBTF9PRkZTRVRfVEFCTEVffF9HTE9C QUxfX0ZbSURdXy4qJwotK2luY2x1ZGVfZXhwc3ltcz0nJwotK3ByZWxpbmtfY21kcz0nJwotK3Bv c3RsaW5rX2NtZHM9JycKLStmaWxlX2xpc3Rfc3BlYz0nJwotK3ZhcmlhYmxlc19zYXZlZF9mb3Jf cmVsaW5rPSdQQVRIIExEX0xJQlJBUllfUEFUSCBMRF9SVU5fUEFUSCBHQ0NfRVhFQ19QUkVGSVgg Q09NUElMRVJfUEFUSCBMSUJSQVJZX1BBVEgnCi0rbmVlZF9saWJfcHJlZml4PSdubycKLStuZWVk X3ZlcnNpb249J25vJwotK3ZlcnNpb25fdHlwZT0nbGludXgnCi0rcnVucGF0aF92YXI9J0xEX1JV Tl9QQVRIJwotK3NobGlicGF0aF92YXI9J0xEX0xJQlJBUllfUEFUSCcKLStzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9J25vJwotK2xpYm5hbWVfc3BlYz0nbGliJG5hbWUnCi0rbGlicmFyeV9u YW1lc19zcGVjPSckbGlibmFtZSRyZWxlYXNlJHNoYXJlZF9leHQkdmVyc3VmZml4ICRsaWJuYW1l JHJlbGVhc2Ukc2hhcmVkX2V4dCRtYWpvciAkbGlibmFtZSRzaGFyZWRfZXh0JwotK3NvbmFtZV9z cGVjPSckbGlibmFtZSRyZWxlYXNlJHNoYXJlZF9leHQkbWFqb3InCi0raW5zdGFsbF9vdmVycmlk ZV9tb2RlPScnCi0rcG9zdGluc3RhbGxfY21kcz0nJwotK3Bvc3R1bmluc3RhbGxfY21kcz0nJwot K2ZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1uICRsaWJkaXInCi0r ZmluaXNoX2V2YWw9JycKLStoYXJkY29kZV9pbnRvX2xpYnM9J3llcycKLStzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWM9Jy91c3IvbGlnY2MveDg2XzY0LXJlZGhhdC1saW51eC84IC91c3IvbGliNjQg L2xpYjY0IC91c3IvbGliIC9saWIgJwotK2NvbmZpZ3VyZV90aW1lX2Rsc2VhcmNoX3BhdGg9Jy9s aWI2NCAvdXNyL2xpYjY0IC9saWIgL3Vzci9saWIgL3Vzci9saWI2NC8vYmluZDktZXhwb3J0LyAv dXNyL2xpYjY0L2lzY3NpICcKLStjb25maWd1cmVfdGltZV9sdF9zeXNfbGlicmFyeV9wYXRoPScn Ci0raGFyZGNvZGVfYWN0aW9uPSdpbW1lZGlhdGUnCi0rZW5hYmxlX2Rsb3Blbj0ndW5rbm93bicK LStlbmFibGVfZGxvcGVuX3NlbGY9J3Vua25vd24nCi0rZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRp Yz0ndW5rbm93bicKLStvbGRfc3RyaXBsaWI9J3N0cmlwIC0tc3RyaXAtZGVidWcnCi0rc3RyaXBs aWI9J3N0cmlwIC0tc3RyaXAtdW5uZWVkZWQnCi0rCi0rTFRDQz0nZ2NjJwotK0xUQ0ZMQUdTPSct ZyAtTzInCi0rY29tcGlsZXI9J2djYycKLSsKLSsjIEEgZnVuY3Rpb24gdGhhdCBpcyB1c2VkIHdo ZW4gdGhlcmUgaXMgbm8gcHJpbnQgYnVpbHRpbiBvciBwcmludGYuCi0rZnVuY19mYWxsYmFja19l Y2hvICgpCi0rewotKyAgZXZhbCAnY2F0IDw8X0xURUNIT19FT0YKLSskMQotK19MVEVDSE9fRU9G JwotK30KLSsKLSsjIFF1b3RlIGV2YWxlZCBzdHJpbmdzLgotK2ZvciB2YXIgaW4gU0hFTEwgRUNI TyBQQVRIX1NFUEFSQVRPUiBTRUQgR1JFUCBFR1JFUCBGR1JFUCBMRCBOTSBMTl9TIGx0X1NQMk5M IGx0X05MMlNQIHJlbG9hZF9mbGFnIE9CSkRVTVAgZGVwbGlic19jaGVja19tZXRob2QgZmlsZV9t YWdpY19jbWQgZmlsZV9tYWdpY19nbG9iIHdhbnRfbm9jYXNlZ2xvYiBETExUT09MIHNoYXJlZGxp Yl9mcm9tX2xpbmtsaWJfY21kIEFSIEFSX0ZMQUdTIGFyY2hpdmVyX2xpc3Rfc3BlYyBTVFJJUCBS QU5MSUIgQ0MgQ0ZMQUdTIGNvbXBpbGVyIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUgbHRf Y3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9f aW1wb3J0IGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzIGx0X2N2X3N5 c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXggbHRfY3Zfbm1faW50 ZXJmYWNlIG5tX2ZpbGVfbGlzdF9zcGVjIGx0X2N2X3RydW5jYXRlX2JpbiBsdF9wcm9nX2NvbXBp bGVyX25vX2J1aWx0aW5fZmxhZyBsdF9wcm9nX2NvbXBpbGVyX3BpYyBsdF9wcm9nX2NvbXBpbGVy X3dsIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIG5lZWRf bG9ja3MgTUFOSUZFU1RfVE9PTCBEU1lNVVRJTCBOTUVESVQgTElQTyBPVE9PTCBPVE9PTDY0IHNo cmV4dF9jbWRzIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYyB3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl YyBjb21waWxlcl9uZWVkc19vYmplY3Qgd2l0aF9nbnVfbGQgYWxsb3dfdW5kZWZpbmVkX2ZsYWcg bm9fdW5kZWZpbmVkX2ZsYWcgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyBoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yIGV4Y2x1ZGVfZXhwc3ltcyBpbmNsdWRlX2V4cHN5bXMgZmlsZV9saXN0X3Nw ZWMgdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsgbGlibmFtZV9zcGVjIGxpYnJhcnlfbmFtZXNf c3BlYyBzb25hbWVfc3BlYyBpbnN0YWxsX292ZXJyaWRlX21vZGUgZmluaXNoX2V2YWwgb2xkX3N0 cmlwbGliIHN0cmlwbGliOyBkbwotKyAgICBjYXNlIGBldmFsIFxcJEVDSE8gXFwiIlxcJCR2YXIi XFwiYCBpbgotKyAgICAqW1xcXGBcIlwkXSopCi0rICAgICAgZXZhbCAibHRfJHZhcj1cXFwiXGBc JEVDSE8gXCJcJCR2YXJcIiB8IFwkU0VEIFwiXCRzZWRfcXVvdGVfc3Vic3RcIlxgXFxcIiIgIyMg ZXhjbHVkZSBmcm9tIHNjX3Byb2hpYml0X25lc3RlZF9xdW90ZXMKLSsgICAgICA7OwotKyAgICAq KQotKyAgICAgIGV2YWwgImx0XyR2YXI9XFxcIlwkJHZhclxcXCIiCi0rICAgICAgOzsKLSsgICAg ZXNhYwotK2RvbmUKLSsKLSsjIERvdWJsZS1xdW90ZSBkb3VibGUtZXZhbGVkIHN0cmluZ3MuCi0r Zm9yIHZhciBpbiByZWxvYWRfY21kcyBvbGRfcG9zdGluc3RhbGxfY21kcyBvbGRfcG9zdHVuaW5z dGFsbF9jbWRzIG9sZF9hcmNoaXZlX2NtZHMgZXh0cmFjdF9leHBzeW1zX2NtZHMgb2xkX2FyY2hp dmVfZnJvbV9uZXdfY21kcyBvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcyBhcmNoaXZlX2Nt ZHMgYXJjaGl2ZV9leHBzeW1fY21kcyBtb2R1bGVfY21kcyBtb2R1bGVfZXhwc3ltX2NtZHMgZXhw b3J0X3N5bWJvbHNfY21kcyBwcmVsaW5rX2NtZHMgcG9zdGxpbmtfY21kcyBwb3N0aW5zdGFsbF9j bWRzIHBvc3R1bmluc3RhbGxfY21kcyBmaW5pc2hfY21kcyBzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWMgY29uZmlndXJlX3RpbWVfZGxzZWFyY2hfcGF0aCBjb25maWd1cmVfdGltZV9sdF9zeXNfbGli cmFyeV9wYXRoOyBkbwotKyAgICBjYXNlIGBldmFsIFxcJEVDSE8gXFwiIlxcJCR2YXIiXFwiYCBp bgotKyAgICAqW1xcXGBcIlwkXSopCi0rICAgICAgZXZhbCAibHRfJHZhcj1cXFwiXGBcJEVDSE8g XCJcJCR2YXJcIiB8IFwkU0VEIC1lIFwiXCRkb3VibGVfcXVvdGVfc3Vic3RcIiAtZSBcIlwkc2Vk X3F1b3RlX3N1YnN0XCIgLWUgXCJcJGRlbGF5X3ZhcmlhYmxlX3N1YnN0XCJcYFxcXCIiICMjIGV4 Y2x1ZGUgZnJvbSBzY19wcm9oaWJpdF9uZXN0ZWRfcXVvdGVzCi0rICAgICAgOzsKLSsgICAgKikK LSsgICAgICBldmFsICJsdF8kdmFyPVxcXCJcJCR2YXJcXFwiIgotKyAgICAgIDs7Ci0rICAgIGVz YWMKLStkb25lCi0rCi0rYWNfYXV4X2Rpcj0nLicKLSsKLSsjIFNlZSBpZiB3ZSBhcmUgcnVubmlu ZyBvbiB6c2gsIGFuZCBzZXQgdGhlIG9wdGlvbnMgdGhhdCBhbGxvdyBvdXIKLSsjIGNvbW1hbmRz IHRocm91Z2ggd2l0aG91dCByZW1vdmFsIG9mIFwgZXNjYXBlcyBJTklULgotK2lmIHRlc3QgLW4g IiR7WlNIX1ZFUlNJT04rc2V0fSI7IHRoZW4KLSsgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAotK2Zp Ci0rCi0rCi0rICAgIFBBQ0tBR0U9J3lhYmFzaWMnCi0rICAgIFZFUlNJT049JzIuODYuMScKLSsg ICAgUk09J3JtIC1mJwotKyAgICBvZmlsZT0nbGlidG9vbCcKLSsKLSsKLSsKLSsKLSsKLSsjIEhh bmRsaW5nIG9mIGFyZ3VtZW50cy4KLStmb3IgYWNfY29uZmlnX3RhcmdldCBpbiAkYWNfY29uZmln X3RhcmdldHMKLStkbwotKyAgY2FzZSAkYWNfY29uZmlnX3RhcmdldCBpbgotKyAgICAiZGVwZmls ZXMiKSBDT05GSUdfQ09NTUFORFM9IiRDT05GSUdfQ09NTUFORFMgZGVwZmlsZXMiIDs7Ci0rICAg ICJsaWJ0b29sIikgQ09ORklHX0NPTU1BTkRTPSIkQ09ORklHX0NPTU1BTkRTIGxpYnRvb2wiIDs7 Ci0rICAgICJjb25maWcuaCIpIENPTkZJR19IRUFERVJTPSIkQ09ORklHX0hFQURFUlMgY29uZmln Lmg6Y29uZmlnLmguaW4iIDs7Ci0rICAgICJNYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJ R19GSUxFUyBNYWtlZmlsZSIgOzsKLSsKLSsgICopIGFzX2ZuX2Vycm9yICQ/ICJpbnZhbGlkIGFy Z3VtZW50OiBcYCRhY19jb25maWdfdGFyZ2V0JyIgIiRMSU5FTk8iIDU7OwotKyAgZXNhYwotK2Rv bmUKLSsKLSsKLSsjIElmIHRoZSB1c2VyIGRpZCBub3QgdXNlIHRoZSBhcmd1bWVudHMgdG8gc3Bl Y2lmeSB0aGUgaXRlbXMgdG8gaW5zdGFudGlhdGUsCi0rIyB0aGVuIHRoZSBlbnZ2YXIgaW50ZXJm YWNlIGlzIHVzZWQuICBTZXQgb25seSB0aG9zZSB0aGF0IGFyZSBub3QuCi0rIyBXZSB1c2UgdGhl IGxvbmcgZm9ybSBmb3IgdGhlIGRlZmF1bHQgYXNzaWdubWVudCBiZWNhdXNlIG9mIGFuIGV4dHJl bWVseQotKyMgYml6YXJyZSBidWcgb24gU3VuT1MgNC4xLjMuCi0raWYgJGFjX25lZWRfZGVmYXVs dHM7IHRoZW4KLSsgIHRlc3QgIiR7Q09ORklHX0ZJTEVTK3NldH0iID0gc2V0IHx8IENPTkZJR19G SUxFUz0kY29uZmlnX2ZpbGVzCi0rICB0ZXN0ICIke0NPTkZJR19IRUFERVJTK3NldH0iID0gc2V0 IHx8IENPTkZJR19IRUFERVJTPSRjb25maWdfaGVhZGVycwotKyAgdGVzdCAiJHtDT05GSUdfQ09N TUFORFMrc2V0fSIgPSBzZXQgfHwgQ09ORklHX0NPTU1BTkRTPSRjb25maWdfY29tbWFuZHMKLStm aQotKwotKyMgSGF2ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgZm9yIGNvbnZlbmllbmNlLiAgTWFr ZSBpdCBpbiB0aGUgYnVpbGQgdHJlZQotKyMgc2ltcGx5IGJlY2F1c2UgdGhlcmUgaXMgbm8gcmVh c29uIGFnYWluc3QgaGF2aW5nIGl0IGhlcmUsIGFuZCBpbiBhZGRpdGlvbiwKLSsjIGNyZWF0aW5n IGFuZCBtb3ZpbmcgZmlsZXMgZnJvbSAvdG1wIGNhbiBzb21ldGltZXMgY2F1c2UgcHJvYmxlbXMu Ci0rIyBIb29rIGZvciBpdHMgcmVtb3ZhbCB1bmxlc3MgZGVidWdnaW5nLgotKyMgTm90ZSB0aGF0 IHRoZXJlIGlzIGEgc21hbGwgd2luZG93IGluIHdoaWNoIHRoZSBkaXJlY3Rvcnkgd2lsbCBub3Qg YmUgY2xlYW5lZDoKLSsjIGFmdGVyIGl0cyBjcmVhdGlvbiBidXQgYmVmb3JlIGl0cyBuYW1lIGhh cyBiZWVuIGFzc2lnbmVkIHRvIGAkdG1wJy4KLSskZGVidWcgfHwKLSt7Ci0rICB0bXA9IGFjX3Rt cD0KLSsgIHRyYXAgJ2V4aXRfc3RhdHVzPSQ/Ci0rICA6ICIke2FjX3RtcDo9JHRtcH0iCi0rICB7 IHRlc3QgISAtZCAiJGFjX3RtcCIgfHwgcm0gLWZyICIkYWNfdG1wIjsgfSAmJiBleGl0ICRleGl0 X3N0YXR1cwotKycgMAotKyAgdHJhcCAnYXNfZm5fZXhpdCAxJyAxIDIgMTMgMTUKLSt9Ci0rIyBD cmVhdGUgYSAoc2VjdXJlKSB0bXAgZGlyZWN0b3J5IGZvciB0bXAgZmlsZXMuCi0rCi0rewotKyAg dG1wPWAodW1hc2sgMDc3ICYmIG1rdGVtcCAtZCAiLi9jb25mWFhYWFhYIikgMj4vZGV2L251bGxg ICYmCi0rICB0ZXN0IC1kICIkdG1wIgotK30gIHx8Ci0rewotKyAgdG1wPS4vY29uZiQkLSRSQU5E T00KLSsgICh1bWFzayAwNzcgJiYgbWtkaXIgIiR0bXAiKQotK30gfHwgYXNfZm5fZXJyb3IgJD8g ImNhbm5vdCBjcmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGluIC4iICIkTElORU5PIiA1Ci0r YWNfdG1wPSR0bXAKLSsKLSsjIFNldCB1cCB0aGUgc2NyaXB0cyBmb3IgQ09ORklHX0ZJTEVTIHNl Y3Rpb24uCi0rIyBObyBuZWVkIHRvIGdlbmVyYXRlIHRoZW0gaWYgdGhlcmUgYXJlIG5vIENPTkZJ R19GSUxFUy4KLSsjIFRoaXMgaGFwcGVucyBmb3IgaW5zdGFuY2Ugd2l0aCBgLi9jb25maWcuc3Rh dHVzIGNvbmZpZy5oJy4KLStpZiB0ZXN0IC1uICIkQ09ORklHX0ZJTEVTIjsgdGhlbgotKwotKwot K2FjX2NyPWBlY2hvIFggfCB0ciBYICdcMDE1J2AKLSsjIE9uIGN5Z3dpbiwgYmFzaCBjYW4gZWF0 IFxyIGluc2lkZSBgYCBpZiB0aGUgdXNlciByZXF1ZXN0ZWQgaWduY3IuCi0rIyBCdXQgd2Uga25v dyBvZiBubyBvdGhlciBzaGVsbCB3aGVyZSBhY19jciB3b3VsZCBiZSBlbXB0eSBhdCB0aGlzCi0r IyBwb2ludCwgc28gd2UgY2FuIHVzZSBhIGJhc2hpc20gYXMgYSBmYWxsYmFjay4KLStpZiB0ZXN0 ICJ4JGFjX2NyIiA9IHg7IHRoZW4KLSsgIGV2YWwgYWNfY3I9XCRcJ1xcclwnCi0rZmkKLSthY19j c19hd2tfY3I9YCRBV0sgJ0JFR0lOIHsgcHJpbnQgImFccmIiIH0nIDwvZGV2L251bGwgMj4vZGV2 L251bGxgCi0raWYgdGVzdCAiJGFjX2NzX2F3a19jciIgPSAiYSR7YWNfY3J9YiI7IHRoZW4KLSsg IGFjX2NzX2F3a19jcj0nXFxyJwotK2Vsc2UKLSsgIGFjX2NzX2F3a19jcj0kYWNfY3IKLStmaQot KwotK2VjaG8gJ0JFR0lOIHsnID4iJGFjX3RtcC9zdWJzMS5hd2siICYmCi0rY2F0ID4+IiRhY190 bXAvc3ViczEuYXdrIiA8PFxfQUNBV0sgJiYKLStTWyJhbV9fRVhFRVhUX0ZBTFNFIl09IiIKLStT WyJhbV9fRVhFRVhUX1RSVUUiXT0iIyIKLStTWyJMVExJQk9CSlMiXT0iIgotK1NbIlhfRVhUUkFf TElCUyJdPSIiCi0rU1siWF9MSUJTIl09IiIKLStTWyJYX1BSRV9MSUJTIl09IiAtbFNNIC1sSUNF IgotK1NbIlhfQ0ZMQUdTIl09IiIKLStTWyJYTUtNRiJdPSIiCi0rU1siTElCT0JKUyJdPSIiCi0r U1siUE9XX0xJQiJdPSIiCi0rU1siQUxMT0NBIl09IiIKLStTWyJDQ09QVElPTlMiXT0iLVdhbGwi Ci0rU1siQ1BQIl09ImdjYyAtRSIKLStTWyJMVF9TWVNfTElCUkFSWV9QQVRIIl09IiIKLStTWyJP VE9PTDY0Il09IiIKLStTWyJPVE9PTCJdPSIiCi0rU1siTElQTyJdPSIiCi0rU1siTk1FRElUIl09 IiIKLStTWyJEU1lNVVRJTCJdPSIiCi0rU1siTUFOSUZFU1RfVE9PTCJdPSI6IgotK1NbIlJBTkxJ QiJdPSJyYW5saWIiCi0rU1siYWNfY3RfQVIiXT0iYXIiCi0rU1siQVIiXT0iYXIiCi0rU1siRExM VE9PTCJdPSJmYWxzZSIKLStTWyJPQkpEVU1QIl09Im9iamR1bXAiCi0rU1siTE5fUyJdPSJsbiAt cyIKLStTWyJOTSJdPSIvdXNyL2Jpbi9ubSAtQiIKLStTWyJhY19jdF9EVU1QQklOIl09IiIKLStT WyJEVU1QQklOIl09IiIKLStTWyJMRCJdPSIvdXNyL2Jpbi9sZCAtbSBlbGZfeDg2XzY0IgotK1Nb IkZHUkVQIl09Ii91c3IvYmluL2dyZXAgLUYiCi0rU1siRUdSRVAiXT0iL3Vzci9iaW4vZ3JlcCAt RSIKLStTWyJHUkVQIl09Ii91c3IvYmluL2dyZXAiCi0rU1siU0VEIl09Ii91c3IvYmluL3NlZCIK LStTWyJhbV9fZmFzdGRlcENDX0ZBTFNFIl09IiMiCi0rU1siYW1fX2Zhc3RkZXBDQ19UUlVFIl09 IiIKLStTWyJDQ0RFUE1PREUiXT0iZGVwbW9kZT1nY2MzIgotK1NbImFtX19ub2RlcCJdPSJfbm8i Ci0rU1siQU1ERVBCQUNLU0xBU0giXT0iXFwiCi0rU1siQU1ERVBfRkFMU0UiXT0iIyIKLStTWyJB TURFUF9UUlVFIl09IiIKLStTWyJhbV9faW5jbHVkZSJdPSJpbmNsdWRlIgotK1NbIkRFUERJUiJd PSIuZGVwcyIKLStTWyJPQkpFWFQiXT0ibyIKLStTWyJFWEVFWFQiXT0iIgotK1NbImFjX2N0X0ND Il09ImdjYyIKLStTWyJDUFBGTEFHUyJdPSIiCi0rU1siTERGTEFHUyJdPSIiCi0rU1siQ0ZMQUdT Il09Ii1nIC1PMiIKLStTWyJDQyJdPSJnY2MiCi0rU1siaG9zdF9vcyJdPSJsaW51eC1nbnUiCi0r U1siaG9zdF92ZW5kb3IiXT0idW5rbm93biIKLStTWyJob3N0X2NwdSJdPSJ4ODZfNjQiCi0rU1si aG9zdCJdPSJ4ODZfNjQtdW5rbm93bi1saW51eC1nbnUiCi0rU1siYnVpbGRfb3MiXT0ibGludXgt Z251IgotK1NbImJ1aWxkX3ZlbmRvciJdPSJ1bmtub3duIgotK1NbImJ1aWxkX2NwdSJdPSJ4ODZf NjQiCi0rU1siYnVpbGQiXT0ieDg2XzY0LXVua25vd24tbGludXgtZ251IgotK1NbIkxJQlRPT0wi XT0iJChTSEVMTCkgJCh0b3BfYnVpbGRkaXIpL2xpYnRvb2wiCi0rU1siQU1fQkFDS1NMQVNIIl09 IlxcIgotK1NbIkFNX0RFRkFVTFRfVkVSQk9TSVRZIl09IjEiCi0rU1siQU1fREVGQVVMVF9WIl09 IiQoQU1fREVGQVVMVF9WRVJCT1NJVFkpIgotK1NbIkFNX1YiXT0iJChWKSIKLStTWyJhbV9fdW50 YXIiXT0iJCR7VEFSLXRhcn0geGYgLSIKLStTWyJhbV9fdGFyIl09IiQke1RBUi10YXJ9IGNob2Yg LSBcIiQkdGFyZGlyXCIiCi0rU1siQU1UQVIiXT0iJCR7VEFSLXRhcn0iCi0rU1siYW1fX2xlYWRp bmdfZG90Il09Ii4iCi0rU1siU0VUX01BS0UiXT0iIgotK1NbIkFXSyJdPSJnYXdrIgotK1NbIm1r ZGlyX3AiXT0iJChNS0RJUl9QKSIKLStTWyJNS0RJUl9QIl09Ii91c3IvYmluL21rZGlyIC1wIgot K1NbIklOU1RBTExfU1RSSVBfUFJPR1JBTSJdPSIkKGluc3RhbGxfc2gpIC1jIC1zIgotK1NbIlNU UklQIl09InN0cmlwIgotK1NbImluc3RhbGxfc2giXT0iJHtTSEVMTH0gL2hvbWUvaWhtL3lhYmFz aWMvdW5peC9sYW5nL2luc3RhbGwtc2giCi0rU1siTUFLRUlORk8iXT0ibWFrZWluZm8iCi0rU1si QVVUT0hFQURFUiJdPSJhdXRvaGVhZGVyIgotK1NbIkFVVE9NQUtFIl09ImF1dG9tYWtlLTEuMTYi Ci0rU1siQVVUT0NPTkYiXT0iYXV0b2NvbmYiCi0rU1siQUNMT0NBTCJdPSJhY2xvY2FsLTEuMTYi Ci0rU1siVkVSU0lPTiJdPSIyLjg2LjEiCi0rU1siUEFDS0FHRSJdPSJ5YWJhc2ljIgotK1NbIkNZ R1BBVEhfVyJdPSJlY2hvIgotK1NbImFtX19pc3JjIl09IiIKLStTWyJJTlNUQUxMX0RBVEEiXT0i JHtJTlNUQUxMfSAtbSA2NDQiCi0rU1siSU5TVEFMTF9TQ1JJUFQiXT0iJHtJTlNUQUxMfSIKLStT WyJJTlNUQUxMX1BST0dSQU0iXT0iJHtJTlNUQUxMfSIKLStTWyJ0YXJnZXRfYWxpYXMiXT0iIgot K1NbImhvc3RfYWxpYXMiXT0iIgotK1NbImJ1aWxkX2FsaWFzIl09IiIKLStTWyJMSUJTIl09Ii1s Y3Vyc2VzIC1sZGwgLWxmZmkgIgotK1NbIkVDSE9fVCJdPSIiCi0rU1siRUNIT19OIl09Ii1uIgot K1NbIkVDSE9fQyJdPSIiCi0rU1siREVGUyJdPSItREhBVkVfQ09ORklHX0giCi0rU1sibWFuZGly Il09IiR7ZGF0YXJvb3RkaXJ9L21hbiIKLStTWyJsb2NhbGVkaXIiXT0iJHtkYXRhcm9vdGRpcn0v bG9jYWxlIgotK1NbImxpYmRpciJdPSIke2V4ZWNfcHJlZml4fS9saWIiCi0rU1sicHNkaXIiXT0i JHtkb2NkaXJ9IgotK1NbInBkZmRpciJdPSIke2RvY2Rpcn0iCi0rU1siZHZpZGlyIl09IiR7ZG9j ZGlyfSIKLStTWyJodG1sZGlyIl09IiR7ZG9jZGlyfSIKLStTWyJpbmZvZGlyIl09IiR7ZGF0YXJv b3RkaXJ9L2luZm8iCi0rU1siZG9jZGlyIl09IiR7ZGF0YXJvb3RkaXJ9L2RvYy8ke1BBQ0tBR0Vf VEFSTkFNRX0iCi0rU1sib2xkaW5jbHVkZWRpciJdPSIvdXNyL2luY2x1ZGUiCi0rU1siaW5jbHVk ZWRpciJdPSIke3ByZWZpeH0vaW5jbHVkZSIKLStTWyJsb2NhbHN0YXRlZGlyIl09IiR7cHJlZml4 fS92YXIiCi0rU1sic2hhcmVkc3RhdGVkaXIiXT0iJHtwcmVmaXh9L2NvbSIKLStTWyJzeXNjb25m ZGlyIl09IiR7cHJlZml4fS9ldGMiCi0rU1siZGF0YWRpciJdPSIke2RhdGFyb290ZGlyfSIKLStT WyJkYXRhcm9vdGRpciJdPSIke3ByZWZpeH0vc2hhcmUiCi0rU1sibGliZXhlY2RpciJdPSIke2V4 ZWNfcHJlZml4fS9saWJleGVjIgotK1NbInNiaW5kaXIiXT0iJHtleGVjX3ByZWZpeH0vc2JpbiIK LStTWyJiaW5kaXIiXT0iJHtleGVjX3ByZWZpeH0vYmluIgotK1NbInByb2dyYW1fdHJhbnNmb3Jt X25hbWUiXT0icyx4LHgsIgotK1NbInByZWZpeCJdPSIvdXNyL2xvY2FsIgotK1NbImV4ZWNfcHJl Zml4Il09IiR7cHJlZml4fSIKLStTWyJQQUNLQUdFX1VSTCJdPSIiCi0rU1siUEFDS0FHRV9CVUdS RVBPUlQiXT0iIgotK1NbIlBBQ0tBR0VfU1RSSU5HIl09InlhYmFzaWMgMi44Ni4xIgotK1NbIlBB Q0tBR0VfVkVSU0lPTiJdPSIyLjg2LjEiCi0rU1siUEFDS0FHRV9UQVJOQU1FIl09InlhYmFzaWMi Ci0rU1siUEFDS0FHRV9OQU1FIl09InlhYmFzaWMiCi0rU1siUEFUSF9TRVBBUkFUT1IiXT0iOiIK LStTWyJTSEVMTCJdPSIvYmluL3NoIgotK1NbImFtX19xdW90ZSJdPSIiCi0rX0FDQVdLCi0rY2F0 ID4+IiRhY190bXAvc3ViczEuYXdrIiA8PF9BQ0FXSyAmJgotKyAgZm9yIChrZXkgaW4gUykgU19p c19zZXRba2V5XSA9IDEKLSsgIEZTID0gIgciCi0rCi0rfQotK3sKLSsgIGxpbmUgPSAkIDAKLSsg IG5maWVsZHMgPSBzcGxpdChsaW5lLCBmaWVsZCwgIkAiKQotKyAgc3Vic3RlZCA9IDAKLSsgIGxl biA9IGxlbmd0aChmaWVsZFsxXSkKLSsgIGZvciAoaSA9IDI7IGkgPCBuZmllbGRzOyBpKyspIHsK LSsgICAga2V5ID0gZmllbGRbaV0KLSsgICAga2V5bGVuID0gbGVuZ3RoKGtleSkKLSsgICAgaWYg KFNfaXNfc2V0W2tleV0pIHsKLSsgICAgICB2YWx1ZSA9IFNba2V5XQotKyAgICAgIGxpbmUgPSBz dWJzdHIobGluZSwgMSwgbGVuKSAiIiB2YWx1ZSAiIiBzdWJzdHIobGluZSwgbGVuICsga2V5bGVu ICsgMykKLSsgICAgICBsZW4gKz0gbGVuZ3RoKHZhbHVlKSArIGxlbmd0aChmaWVsZFsrK2ldKQot KyAgICAgIHN1YnN0ZWQgPSAxCi0rICAgIH0gZWxzZQotKyAgICAgIGxlbiArPSAxICsga2V5bGVu Ci0rICB9Ci0rCi0rICBwcmludCBsaW5lCi0rfQotKwotK19BQ0FXSwotK2lmIHNlZCAicy8kYWNf Y3IvLyIgPCAvZGV2L251bGwgPiAvZGV2L251bGwgMj4mMTsgdGhlbgotKyAgc2VkICJzLyRhY19j clwkLy87IHMvJGFjX2NyLyRhY19jc19hd2tfY3IvZyIKLStlbHNlCi0rICBjYXQKLStmaSA8ICIk YWNfdG1wL3N1YnMxLmF3ayIgPiAiJGFjX3RtcC9zdWJzLmF3ayIgXAotKyAgfHwgYXNfZm5fZXJy b3IgJD8gImNvdWxkIG5vdCBzZXR1cCBjb25maWcgZmlsZXMgbWFjaGluZXJ5IiAiJExJTkVOTyIg NQotK2ZpICMgdGVzdCAtbiAiJENPTkZJR19GSUxFUyIKLSsKLSsjIFNldCB1cCB0aGUgc2NyaXB0 cyBmb3IgQ09ORklHX0hFQURFUlMgc2VjdGlvbi4KLSsjIE5vIG5lZWQgdG8gZ2VuZXJhdGUgdGhl bSBpZiB0aGVyZSBhcmUgbm8gQ09ORklHX0hFQURFUlMuCi0rIyBUaGlzIGhhcHBlbnMgZm9yIGlu c3RhbmNlIHdpdGggYC4vY29uZmlnLnN0YXR1cyBNYWtlZmlsZScuCi0raWYgdGVzdCAtbiAiJENP TkZJR19IRUFERVJTIjsgdGhlbgotK2NhdCA+IiRhY190bXAvZGVmaW5lcy5hd2siIDw8XF9BQ0FX SyB8fAotK0JFR0lOIHsKLStEWyJQQUNLQUdFX05BTUUiXT0iIFwieWFiYXNpY1wiIgotK0RbIlBB Q0tBR0VfVEFSTkFNRSJdPSIgXCJ5YWJhc2ljXCIiCi0rRFsiUEFDS0FHRV9WRVJTSU9OIl09IiBc IjIuODYuMVwiIgotK0RbIlBBQ0tBR0VfU1RSSU5HIl09IiBcInlhYmFzaWMgMi44Ni4xXCIiCi0r RFsiUEFDS0FHRV9CVUdSRVBPUlQiXT0iIFwiXCIiCi0rRFsiUEFDS0FHRV9VUkwiXT0iIFwiXCIi Ci0rRFsiUEFDS0FHRSJdPSIgXCJ5YWJhc2ljXCIiCi0rRFsiVkVSU0lPTiJdPSIgXCIyLjg2LjFc IiIKLStEWyJTVERDX0hFQURFUlMiXT0iIDEiCi0rRFsiSEFWRV9TWVNfVFlQRVNfSCJdPSIgMSIK LStEWyJIQVZFX1NZU19TVEFUX0giXT0iIDEiCi0rRFsiSEFWRV9TVERMSUJfSCJdPSIgMSIKLStE WyJIQVZFX1NUUklOR19IIl09IiAxIgotK0RbIkhBVkVfTUVNT1JZX0giXT0iIDEiCi0rRFsiSEFW RV9TVFJJTkdTX0giXT0iIDEiCi0rRFsiSEFWRV9JTlRUWVBFU19IIl09IiAxIgotK0RbIkhBVkVf U1RESU5UX0giXT0iIDEiCi0rRFsiSEFWRV9VTklTVERfSCJdPSIgMSIKLStEWyJIQVZFX0RMRkNO X0giXT0iIDEiCi0rRFsiTFRfT0JKRElSIl09IiBcIi5saWJzL1wiIgotK0RbIkhBVkVfTUFMTE9D X0giXT0iIDEiCi0rRFsiSEFWRV9BTExPQ0FfSCJdPSIgMSIKLStEWyJIQVZFX0FMTE9DQSJdPSIg MSIKLStEWyJIQVZFX1NUUkVSUk9SIl09IiAxIgotK0RbIkhBVkVfTUtTVEVNUCJdPSIgMSIKLStE WyJIQVZFX0ZGSV9IIl09IiAxIgotK0RbIkhBVkVfRExGQ05fSCJdPSIgMSIKLStEWyJVU0VfRExf RkZJIl09IiAxIgotK0RbIkhBVkVfQ1VSU0VTX0giXT0iIDEiCi0rRFsiSEFWRV9OQ1VSU0VTX0gi XT0iIDEiCi0rRFsiSEFWRV9HRVROU1RSIl09IiAxIgotK0RbIlVOSVhfQVJDSElURUNUVVJFIl09 IiBcIng4Nl82NC11bmtub3duLWxpbnV4LWdudVwiIgotK0RbIkJVSUxEX1RJTUUiXT0iIFwiV2Vk IERlYyAxMSAyMToxOToyNSBVVEMgMjAxOVwiIgotKyAgZm9yIChrZXkgaW4gRCkgRF9pc19zZXRb a2V5XSA9IDEKLSsgIEZTID0gIgciCi0rfQotKy9eW1x0IF0qI1tcdCBdKihkZWZpbmV8dW5kZWYp W1x0IF0rW19hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZX WFlaXVtfYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZ WjAxMjM0NTY3ODldKihbXHQgKF18JCkvIHsKLSsgIGxpbmUgPSAkIDAKLSsgIHNwbGl0KGxpbmUs IGFyZywgIiAiKQotKyAgaWYgKGFyZ1sxXSA9PSAiIyIpIHsKLSsgICAgZGVmdW5kZWYgPSBhcmdb Ml0KLSsgICAgbWFjMSA9IGFyZ1szXQotKyAgfSBlbHNlIHsKLSsgICAgZGVmdW5kZWYgPSBzdWJz dHIoYXJnWzFdLCAyKQotKyAgICBtYWMxID0gYXJnWzJdCi0rICB9Ci0rICBzcGxpdChtYWMxLCBt YWMyLCAiKCIpICMpCi0rICBtYWNybyA9IG1hYzJbMV0KLSsgIHByZWZpeCA9IHN1YnN0cihsaW5l LCAxLCBpbmRleChsaW5lLCBkZWZ1bmRlZikgLSAxKQotKyAgaWYgKERfaXNfc2V0W21hY3JvXSkg ewotKyAgICAjIFByZXNlcnZlIHRoZSB3aGl0ZSBzcGFjZSBzdXJyb3VuZGluZyB0aGUgIiMiLgot KyAgICBwcmludCBwcmVmaXggImRlZmluZSIsIG1hY3JvIFBbbWFjcm9dIERbbWFjcm9dCi0rICAg IG5leHQKLSsgIH0gZWxzZSB7Ci0rICAgICMgUmVwbGFjZSAjdW5kZWYgd2l0aCBjb21tZW50cy4g IFRoaXMgaXMgbmVjZXNzYXJ5LCBmb3IgZXhhbXBsZSwKLSsgICAgIyBpbiB0aGUgY2FzZSBvZiBf UE9TSVhfU09VUkNFLCB3aGljaCBpcyBwcmVkZWZpbmVkIGFuZCByZXF1aXJlZAotKyAgICAjIG9u IHNvbWUgc3lzdGVtcyB3aGVyZSBjb25maWd1cmUgd2lsbCBub3QgZGVjaWRlIHRvIGRlZmluZSBp dC4KLSsgICAgaWYgKGRlZnVuZGVmID09ICJ1bmRlZiIpIHsKLSsgICAgICBwcmludCAiLyoiLCBw cmVmaXggZGVmdW5kZWYsIG1hY3JvLCAiKi8iCi0rICAgICAgbmV4dAotKyAgICB9Ci0rICB9Ci0r fQotK3sgcHJpbnQgfQotK19BQ0FXSwotKyAgYXNfZm5fZXJyb3IgJD8gImNvdWxkIG5vdCBzZXR1 cCBjb25maWcgaGVhZGVycyBtYWNoaW5lcnkiICIkTElORU5PIiA1Ci0rZmkgIyB0ZXN0IC1uICIk Q09ORklHX0hFQURFUlMiCi0rCi0rCi0rZXZhbCBzZXQgWCAiICA6RiAkQ09ORklHX0ZJTEVTICA6 SCAkQ09ORklHX0hFQURFUlMgICAgOkMgJENPTkZJR19DT01NQU5EUyIKLStzaGlmdAotK2ZvciBh Y190YWcKLStkbwotKyAgY2FzZSAkYWNfdGFnIGluCi0rICA6W0ZITENdKSBhY19tb2RlPSRhY190 YWc7IGNvbnRpbnVlOzsKLSsgIGVzYWMKLSsgIGNhc2UgJGFjX21vZGUkYWNfdGFnIGluCi0rICA6 W0ZITF0qOiopOzsKLSsgIDpMKiB8IDpDKjoqKSBhc19mbl9lcnJvciAkPyAiaW52YWxpZCB0YWcg XGAkYWNfdGFnJyIgIiRMSU5FTk8iIDU7OwotKyAgOltGSF0tKSBhY190YWc9LTotOzsKLSsgIDpb RkhdKikgYWNfdGFnPSRhY190YWc6JGFjX3RhZy5pbjs7Ci0rICBlc2FjCi0rICBhY19zYXZlX0lG Uz0kSUZTCi0rICBJRlM9OgotKyAgc2V0IHggJGFjX3RhZwotKyAgSUZTPSRhY19zYXZlX0lGUwot KyAgc2hpZnQKLSsgIGFjX2ZpbGU9JDEKLSsgIHNoaWZ0Ci0rCi0rICBjYXNlICRhY19tb2RlIGlu Ci0rICA6TCkgYWNfc291cmNlPSQxOzsKLSsgIDpbRkhdKQotKyAgICBhY19maWxlX2lucHV0cz0K LSsgICAgZm9yIGFjX2YKLSsgICAgZG8KLSsgICAgICBjYXNlICRhY19mIGluCi0rICAgICAgLSkg YWNfZj0iJGFjX3RtcC9zdGRpbiI7OwotKyAgICAgICopICMgTG9vayBmb3IgdGhlIGZpbGUgZmly c3QgaW4gdGhlIGJ1aWxkIHRyZWUsIHRoZW4gaW4gdGhlIHNvdXJjZSB0cmVlCi0rCSAjIChpZiB0 aGUgcGF0aCBpcyBub3QgYWJzb2x1dGUpLiAgVGhlIGFic29sdXRlIHBhdGggY2Fubm90IGJlIERP Uy1zdHlsZSwKLSsJICMgYmVjYXVzZSAkYWNfZiBjYW5ub3QgY29udGFpbiBgOicuCi0rCSB0ZXN0 IC1mICIkYWNfZiIgfHwKLSsJICAgY2FzZSAkYWNfZiBpbgotKwkgICBbXFwvJF0qKSBmYWxzZTs7 Ci0rCSAgICopIHRlc3QgLWYgIiRzcmNkaXIvJGFjX2YiICYmIGFjX2Y9IiRzcmNkaXIvJGFjX2Yi OzsKLSsJICAgZXNhYyB8fAotKwkgICBhc19mbl9lcnJvciAxICJjYW5ub3QgZmluZCBpbnB1dCBm aWxlOiBcYCRhY19mJyIgIiRMSU5FTk8iIDU7OwotKyAgICAgIGVzYWMKLSsgICAgICBjYXNlICRh Y19mIGluICpcJyopIGFjX2Y9YCRhc19lY2hvICIkYWNfZiIgfCBzZWQgInMvJy8nXFxcXFxcXFwn Jy9nImA7OyBlc2FjCi0rICAgICAgYXNfZm5fYXBwZW5kIGFjX2ZpbGVfaW5wdXRzICIgJyRhY19m JyIKLSsgICAgZG9uZQotKwotKyAgICAjIExldCdzIHN0aWxsIHByZXRlbmQgaXQgaXMgYGNvbmZp Z3VyZScgd2hpY2ggaW5zdGFudGlhdGVzIChpLmUuLCBkb24ndAotKyAgICAjIHVzZSAkYXNfbWUp LCBwZW9wbGUgd291bGQgYmUgc3VycHJpc2VkIHRvIHJlYWQ6Ci0rICAgICMgICAgLyogY29uZmln LmguICBHZW5lcmF0ZWQgYnkgY29uZmlnLnN0YXR1cy4gICovCi0rICAgIGNvbmZpZ3VyZV9pbnB1 dD0nR2VuZXJhdGVkIGZyb20gJ2AKLSsJICAkYXNfZWNobyAiJCoiIHwgc2VkICdzfF5bXjpdKi98 fDtzfDpbXjpdKi98LCB8ZycKLSsJYCcgYnkgY29uZmlndXJlLicKLSsgICAgaWYgdGVzdCB4IiRh Y19maWxlIiAhPSB4LTsgdGhlbgotKyAgICAgIGNvbmZpZ3VyZV9pbnB1dD0iJGFjX2ZpbGUuICAk Y29uZmlndXJlX2lucHV0IgotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGNyZWF0 aW5nICRhY19maWxlIiA+JjY7fQotKyAgICBmaQotKyAgICAjIE5ldXRyYWxpemUgc3BlY2lhbCBj aGFyYWN0ZXJzIGludGVycHJldGVkIGJ5IHNlZCBpbiByZXBsYWNlbWVudCBzdHJpbmdzLgotKyAg ICBjYXNlICRjb25maWd1cmVfaW5wdXQgaW4gIygKLSsgICAgKlwmKiB8ICpcfCogfCAqXFwqICkK LSsgICAgICAgYWNfc2VkX2NvbmZfaW5wdXQ9YCRhc19lY2hvICIkY29uZmlndXJlX2lucHV0IiB8 Ci0rICAgICAgIHNlZCAncy9bXFxcXCZ8XS9cXFxcJi9nJ2A7OyAjKAotKyAgICAqKSBhY19zZWRf Y29uZl9pbnB1dD0kY29uZmlndXJlX2lucHV0OzsKLSsgICAgZXNhYwotKwotKyAgICBjYXNlICRh Y190YWcgaW4KLSsgICAgKjotOiogfCAqOi0pIGNhdCA+IiRhY190bXAvc3RkaW4iIFwKLSsgICAg ICB8fCBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgIiRMSU5FTk8i IDUgOzsKLSsgICAgZXNhYwotKyAgICA7OwotKyAgZXNhYwotKwotKyAgYWNfZGlyPWAkYXNfZGly bmFtZSAtLSAiJGFjX2ZpbGUiIHx8Ci0rJGFzX2V4cHIgWCIkYWNfZmlsZSIgOiAnWFwoLipbXi9d XCkvLypbXi9dW14vXSovKiQnIFx8IFwKLSsJIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXClbXi9dJyBc fCBcCi0rCSBYIiRhY19maWxlIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIkYWNfZmlsZSIgOiAn WFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8Ci0rJGFzX2VjaG8gWCIkYWNfZmlsZSIgfAotKyAg ICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQvewotKwkgICAgcy8vXDEvCi0r CSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKLSsJICAgIHMvL1wxLwotKwkg ICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKSQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0r CSAgfQotKwkgIC9eWFwoXC9cKS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJ ICBzLy4qLy4vOyBxJ2AKLSsgIGFzX2Rpcj0iJGFjX2RpciI7IGFzX2ZuX21rZGlyX3AKLSsgIGFj X2J1aWxkZGlyPS4KLSsKLStjYXNlICIkYWNfZGlyIiBpbgotKy4pIGFjX2Rpcl9zdWZmaXg9IGFj X3RvcF9idWlsZGRpcl9zdWI9LiBhY190b3BfYnVpbGRfcHJlZml4PSA7OwotKyopCi0rICBhY19k aXJfc3VmZml4PS9gJGFzX2VjaG8gIiRhY19kaXIiIHwgc2VkICdzfF5cLltcXC9dfHwnYAotKyAg IyBBICIuLiIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgotKyAgYWNfdG9w X2J1aWxkZGlyX3N1Yj1gJGFzX2VjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAnc3wvW15cXC9d KnwvLi58ZztzfC98fCdgCi0rICBjYXNlICRhY190b3BfYnVpbGRkaXJfc3ViIGluCi0rICAiIikg YWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7Ci0rICAqKSAgYWNf dG9wX2J1aWxkX3ByZWZpeD0kYWNfdG9wX2J1aWxkZGlyX3N1IDs7Ci0rICBlc2FjIDs7Ci0rZXNh YwotK2FjX2Fic190b3BfYnVpbGRkaXI9JGFjX3B3ZAotK2FjX2Fic19idWlsZGRpcj0kYWNfcHdk JGFjX2Rpcl9zdWZmaXgKLSsjIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5OgotK2FjX3RvcF9i dWlsZGRpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeAotKwotK2Nhc2UgJHNyY2RpciBpbgotKyAgLikg ICMgV2UgYXJlIGJ1aWxkaW5nIGluIHBsYWNlLgotKyAgICBhY19zcmNkaXI9LgotKyAgICBhY190 b3Bfc3JjZGlyPSRhY190b3BfYnVpbGRkaXJfc3ViCi0rICAgIGFjX2Fic190b3Bfc3JjZGlyPSRh Y19wd2QgOzsKLSsgIFtcXC9dKiB8ID86W1xcL10qICkgICMgQWJzb2x1dGUgbmFtZS4KLSsgICAg YWNfc3JjZGlyPSRzcmNkaXIkYWNfZGlyX3N1ZmZpeDsKLSsgICAgYWNfdG9wX3NyY2Rpcj0kc3Jj ZGlyCi0rICAgIGFjX2Fic190b3Bfc3JjZGlyPSRzcmNkaXIgOzsKLSsgICopICMgUmVsYXRpdmUg bmFtZS4KLSsgICAgYWNfc3JjZGlyPSRhY190b3BfYnVpbGRfcHJlZml4JHNyY2RpciRhY19kaXJf c3VmZml4Ci0rICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZF9wcmVmaXgkc3JjZGlyCi0r ICAgIGFjX2Fic190b3Bfc3JjZGlyPSRhY19wd2QvJHNyY2RpciA7OwotK2VzYWMKLSthY19hYnNf c3JjZGlyPSRhY19hYnNfdG9wX3NyY2RpciRhY19kaXJfc3VmZml4Ci0rCi0rCi0rICBjYXNlICRh Y19tb2RlIGluCi0rICA6RikKLSsgICMKLSsgICMgQ09ORklHX0ZJTEUKLSsgICMKLSsKLSsgIGNh c2UgJElOU1RBTEwgaW4KLSsgIFtcXC8kXSogfCA/OltcXC9dKiApIGFjX0lOU1RBTEw9JElOU1RB TEwgOzsKLSsgICopIGFjX0lOU1RBTEw9JGFjX3RvcF9idWlsZF9wcmVmaXgkSU5TVEFMTCA7Owot KyAgZXNhYwotKyAgYWNfTUtESVJfUD0kTUtESVJfUAotKyAgY2FzZSAkTUtESVJfUCBpbgotKyAg W1xcLyRdKiB8ID86W1xcL10qICkgOzsKLSsgICovKikgYWNfTUtESVJfUD0kYWNfdG9wX2J1aWxk X3ByZWZpeCRNS0RJUl9QIDs7Ci0rICBlc2FjCi0rIyBJZiB0aGUgdGVtcGxhdGUgZG9lcyBub3Qg a25vdyBhYm91dCBkYXRhcm9vdGRpciwgZXhwYW5kIGl0LgotKyMgRklYTUU6IFRoaXMgaGFjayBz aG91bGQgYmUgcmVtb3ZlZCBhIGZldyB5ZWFycyBhZnRlciAyLjYwLgotK2FjX2RhdGFyb290ZGly X2hhY2s9OyBhY19kYXRhcm9vdGRpcl9zZWVuPQotK2FjX3NlZF9kYXRhcm9vdD0nCi0rL2RhdGFy b290ZGlyLyB7Ci0rICBwCi0rICBxCi0rfQotKy9AZGF0YWRpckAvcAotKy9AZG9jZGlyQC9wCi0r L0BpbmZvZGlyQC9wCi0rL0Bsb2NhbGVkaXJAL3AKLSsvQG1hbmRpckAvcCcKLStjYXNlIGBldmFs ICJzZWQgLW4gXCJcJGFjX3NlZF9kYXRhcm9vdFwiICRhY19maWxlX2lucHV0cyJgIGluCi0rKmRh dGFyb290ZGlyKikgYWNfZGF0YXJvb3RkaXJfc2Vlbj15ZXM7OwotKypAZGF0YWRpckAqfCpAZG9j ZGlyQCp8KkBpbmZvZGlyQCp8KkBsb2NhbGVkaXJAKnwqQG1hbmRpckAqKQotKyAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiAkYWNfZmlsZV9pbnB1dHMg c2VlbXMgdG8gaWdub3JlIHRoZSAtLWRhdGFyb290ZGlyIHNldHRpbmciID4mNQotKyRhc19lY2hv ICIkYXNfbWU6IFdBUk5JTkc6ICRhY19maWxlX2lucHV0cyBzZWVtcyB0byBpZ25vcmUgdGhlIC0t ZGF0YXJvb3RkaXIgc2V0dGluZyIgPiYyO30KLSsgIGFjX2RhdGFyb290ZGlyX2hhY2s9JwotKyAg cyZAZGF0YWRpckAmJHtkYXRhcm9vdGRpcn0mZwotKyAgcyZAZG9jZGlyQCYke2RhdGFyb290ZGly fS9kb2MvJHtQQUNLQUdFX1RBUk5BTUV9JmcKLSsgIHMmQGluZm9kaXJAJiR7ZGF0YXJvb3RkaXJ9 L2luZm8mZwotKyAgcyZAbG9jYWxlZGlyQCYke2RhdGFyb290ZGlyfS9sb2NhbGUmZwotKyAgcyZA bWFuZGlyQCYke2RhdGFyb290ZGlyfS9tYW4mZwotKyAgcyZcJHtkYXRhcm9vdGRpcn0mJHtwcmVm aXh9L3NoYXJlJmcnIDs7Ci0rZXNhYwotK2FjX3NlZF9leHRyYT0iL15bCSBdKlZQQVRIWwkgXSo9 WwkgXSovewotK2gKLStzLy8vCi0rcy9eLzovCi0rcy9bCSBdKiQvOi8KLStzLzpcJChzcmNkaXIp Oi86L2cKLStzLzpcJHtzcmNkaXJ9Oi86L2cKLStzLzpAc3JjZGlyQDovOi9nCi0rcy9eOiovLwot K3MvOiokLy8KLSt4Ci0rcy9cKD1bCSBdKlwpLiovXDEvCi0rRwotK3MvXG4vLwotK3MvXltePV0q PVsJIF0qJC8vCi0rfQotKwotKzp0Ci0rL0BbYS16QS1aX11bYS16QS1aXzAtOV0qQC8hYgotK3N8 QGNvbmZpZ3VyZV9pbnB1dEB8JGFjX3NlZF9jb25mX2lucHV0fDt0IHQKLStzJkB0b3BfYnVpbGRk aXJAJiRhY190b3BfYnVpbGRkaXJfc3ViJjt0IHQKLStzJkB0b3BfYnVpbGRfcHJlZml4QCYkYWNf dG9wX2J1aWxkX3ByZWZpeCY7dCB0Ci0rcyZAc3JjZGlyQCYkYWNfc3JjZGlyJjt0IHQKLStzJkBh YnNfc3JjZGlyQCYkYWNfYWJzX3NyY2RpciY7dCB0Ci0rcyZAdG9wX3NyY2RpckAmJGFjX3RvcF9z cmNkaXImO3QgdAotK3MmQGFic190b3Bfc3JjZGlyQCYkYWNfYWJzX3RvcF9zcmNkaXImO3QgdAot K3MmQGJ1aWxkZGlyQCYkYWNfYnVpbGRkaXImO3QgdAotK3MmQGFic19idWlsZGRpckAmJGFjX2Fi c19idWlsZGRpciY7dCB0Ci0rcyZAYWJzX3RvcF9idWlsZGRpckAmJGFjX2Fic190b3BfYnVpbGRk aXImO3QgdAotK3MmQElOU1RBTExAJiRhY19JTlNUQUxMJjt0IHQKLStzJkBNS0RJUl9QQCYkYWNf TUtESVJfUCY7dCB0Ci0rJGFjX2RhdGFyb290ZGlyX2hhY2sKLSsiCi0rZXZhbCBzZWQgXCJcJGFj X3NlZF9leHRyYVwiICIkYWNfZmlsZV9pbnB1dHMiIHwgJEFXSyAtZiAiJGFjX3RtcC9zdWJzLmF3 ayIgXAotKyAgPiRhY190bXAvb3V0IHx8IGFzX2ZuX2Vycm9yICQ/ICJjb3VsZCBub3QgY3JlYXRl ICRhY19maWxlIiAiJExJTkVOTyIgNQotKwotK3Rlc3QgLXogIiRhY19kYXRhcm9vdGRpcl9oYWNr JGFjX2RhdGFyb290ZGlyX3NlZW4iICYmCi0rICB7IGFjX291dD1gc2VkIC1uICcvXCR7ZGF0YXJv b3RkaXJ9L3AnICIkYWNfdG1wL291dCJgOyB0ZXN0IC1uICIkYWNfb3V0IjsgfSAmJgotKyAgeyBh Y19vdXQ9YHNlZCAtbiAnL15bCSBdKmRhdGFyb290ZGlyWwkgXSo6Kj0vcCcgXAotKyAgICAgICIk YWNfdG1wL291dCJgOyB0ZXN0IC16ICIkYWNfb3V0IjsgfSAmJgotKyAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiAkYWNfZmlsZSBjb250YWlucyBhIHJl ZmVyZW5jZSB0byB0aGUgdmFyaWFibGUgXGBkYXRhcm9vdGRpcicKLSt3aGljaCBzZWVtcyB0byBi ZSB1bmRlZmluZWQuICBQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGRlZmluZWQiID4mNQotKyRhc19l Y2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19maWxlIGNvbnRhaW5zIGEgcmVmZXJlbmNlIHRvIHRo ZSB2YXJpYWJsZSBcYGRhdGFyb290ZGlyJwotK3doaWNoIHNlZW1zIHRvIGJlIHVuZGVmaW5lZC4g IFBsZWFzZSBtYWtlIHN1cmUgaXQgaXMgZGVmaW5lZCIgPiYyO30KLSsKLSsgIHJtIC1mICIkYWNf dG1wL3N0ZGluIgotKyAgY2FzZSAkYWNfZmlsZSBpbgotKyAgLSkgY2F0ICIkYWNfdG1wL291dCIg JiYgcm0gLWYgIiRhY190bXAvb3V0Ijs7Ci0rICAqKSBybSAtZiAiJGFjX2ZpbGUiICYmIG12ICIk YWNfdG1wL291dCIgIiRhY19maWxlIjs7Ci0rICBlc2FjIFwKLSsgIHx8IGFzX2ZuX2Vycm9yICQ/ ICJjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiAiJExJTkVOTyIgNQotKyA7OwotKyAgOkgpCi0r ICAjCi0rICAjIENPTkZJR19IRUFERVIKLSsgICMKLSsgIGlmIHRlc3QgeCIkYWNfZmlsZSIgIT0g eC07IHRoZW4KLSsgICAgewotKyAgICAgICRhc19lY2hvICIvKiAkY29uZmlndXJlX2lucHV0ICAq LyIgXAotKyAgICAgICYmIGV2YWwgJyRBV0sgLWYgIiRhY190bXAvZGVmaW5lcy5hd2siJyAiJGFj X2ZpbGVfaW5wdXRzIgotKyAgICB9ID4iJGFjX3RtcC9jb25maWcuaCIgXAotKyAgICAgIHx8IGFz X2ZuX2Vycm9yICQ/ICJjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiAiJExJTkVOTyIgNQotKyAg ICBpZiBkaWZmICIkYWNfZmlsZSIgIiRhY190bXAvY29uZmlnLmgiID4vZGV2L251bGwgMj4mMTsg dGhlbgotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogJGFj X2ZpbGUgaXMgdW5jaGFuZ2VkIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiAkYWNfZmlsZSBpcyB1 bmNoYW5nZWQiID4mNjt9Ci0rICAgIGVsc2UKLSsgICAgICBybSAtZiAiJGFjX2ZpbGUiCi0rICAg ICAgbXYgIiRhY190bXAvY29uZmlnLmgiICIkYWNfZmlsZSIgXAotKwl8fCBhc19mbl9lcnJvciAk PyAiY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgIiRMSU5FTk8iIDUKLSsgICAgZmkKLSsgIGVs c2UKLSsgICAgJGFzX2VjaG8gIi8qICRjb25maWd1cmVfaW5wdXQgICovIiBcCi0rICAgICAgJiYg ZXZhbCAnJEFXSyAtZiAiJGFjX3RtcC9kZWZpbmVzLmF3ayInICIkYWNfZmlsZV9pbnB1dHMiIFwK LSsgICAgICB8fCBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IGNyZWF0ZSAtIiAiJExJTkVOTyIg NQotKyAgZmkKLSsjIENvbXB1dGUgIiRhY19maWxlIidzIGluZGV4IGluICRjb25maWdfaGVhZGVy cy4KLStfYW1fYXJnPSIkYWNfZmlsZSIKLStfYW1fc3RhbXBfY291bnQ9MQotK2ZvciBfYW1faGVh ZGVyIGluICRjb25maWdfaGVhZGVycyA6OyBkbwotKyAgY2FzZSAkX2FtX2hlYWRlciBpbgotKyAg ICAkX2FtX2FyZyB8ICRfYW1fYXJnOiogKQotKyAgICAgIGJyZWFrIDs7Ci0rICAgICogKQotKyAg ICAgIF9hbV9zdGFtcF9jb3VudD1gZXhwciAkX2FtX3N0YW1wX2NvdW50ICsgMWAgOzsKLSsgIGVz YWMKLStkb25lCi0rZWNobyAidGltZXN0YW1wIGZvciAkX2FtX2FyZyIgPmAkYXNfZGlybmFtZSAt LSAiJF9hbV9hcmciIHx8Ci0rJGFzX2V4cHIgWCIkX2FtX2FyZyIgOiAnWFwoLipbXi9dXCkvLypb Xi9dW14vXSovKiQnIFx8IFwKLSsJIFgiJF9hbV9hcmciIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0r CSBYIiRfYW1fYXJnIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIkX2FtX2FyZyIgOiAnWFwoL1wp JyBcfCAuIDI+L2Rldi9udWxsIHx8Ci0rJGFzX2VjaG8gWCIkX2FtX2FyZyIgfAotKyAgICBzZWQg Jy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQvewotKwkgICAgcy8vXDEvCi0rCSAgICBx Ci0rCSAgfQotKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQot KwkgIH0KLSsJICAvXlhcKFwvXC9cKSQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQot KwkgIC9eWFwoXC9cKS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICBzLy4q Ly4vOyBxJ2Avc3RhbXAtaCRfYW1fc3RhbXBfY291bnQKLSsgOzsKLSsKLSsgIDpDKSAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBleGVjdXRpbmcgJGFjX2ZpbGUgY29t bWFuZHMiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGV4ZWN1dGluZyAkYWNfZmlsZSBjb21tYW5k cyIgPiY2O30KLSsgOzsKLSsgIGVzYWMKLSsKLSsKLSsgIGNhc2UgJGFjX2ZpbGUkYWNfbW9kZSBp bgotKyAgICAiZGVwZmlsZXMiOkMpIHRlc3QgeCIkQU1ERVBfVFJVRSIgIT0geCIiIHx8IHsKLSsg ICMgT2xkZXIgQXV0b2NvbmYgcXVvdGVzIC0tZmlsZSBhcmd1bWVudHMgZm9yIGV2YWwsIGJ1dCBu b3Qgd2hlbiBmaWxlcwotKyAgIyBhcmUgbGlzdGVkIHdpdGhvdXQgLS1maWxlLiAgTGV0J3MgcGxh eSBzYWZlIGFuZCBvbmx5IGVuYWJsZSB0aGUgZXZhbAotKyAgIyBpZiB3ZSBkZXRlY3QgdGhlIHF1 b3RpbmcuCi0rICAjIFRPRE86IHNlZSB3aGV0aGVyIHRoaXMgZXh0cmEgaGFjayBjYW4gYmUgcmVt b3ZlZCBvbmNlIHdlIHN0YXJ0Ci0rICAjIHJlcXVpcmluZyBBdXRvY29uZiAyLjcwIG9yIGxhdGVy LgotKyAgY2FzZSAkQ09ORklHX0ZJTEVTIGluICMoCi0rICAqXCcqKSA6Ci0rICAgIGV2YWwgc2V0 IHggIiRDT05GSUdfRklMRVMiIDs7ICMoCi0rICAqKSA6Ci0rICAgIHNldCB4ICRDT05GSUdfRklM RVMgOzsgIygKLSsgICopIDoKLSsgICAgIDs7Ci0rZXNhYwotKyAgc2hpZnQKLSsgICMgVXNlZCB0 byBmbGFnIGFuZCByZXBvcnQgYm9vdHN0cmFwcGluZyBmYWlsdXJlcy4KLSsgIGFtX3JjPTAKLSsg IGZvciBhbV9tZgotKyAgZG8KLSsgICAgIyBTdHJpcCBNRiBzbyB3ZSBlbmQgdXAgd2l0aCB0aGUg bmFtZSBvZiB0aGUgZmlsZS4KLSsgICAgYW1fbWY9YCRhc19lY2hvICIkYW1fbWYiIHwgc2VkIC1l ICdzLzouKiQvLydgCi0rICAgICMgQ2hlY2sgd2hldGhlciB0aGlzIGlzIGFuIEF1dG9tYWtlIGdl bmVyYXRlZCBNYWtlZmlsZSB3aGljaCBpbmNsdWRlcwotKyAgICAjIGRlcGVuZGVuY3ktdHJhY2tp bmcgcmVsYXRlZCBydWxlcyBhbmQgaW5jbHVkZXMuCi0rICAgICMgR3JlcCdpbmcgdGhlIHdob2xl IGZpbGUgZGlyZWN0bHkgaXMgbm90IGdyZWF0OiBBSVggZ3JlcCBoYXMgYSBsaW5lCi0rICAgICMg bGltaXQgb2YgMjA0OCwgYnV0IGFsbCBzZWQncyB3ZSBrbm93IGhhdmUgdW5kZXJzdGFuZCBhdCBs ZWFzdCA0MDAwLgotKyAgICBzZWQgLW4gJ3MsXmFtLS1kZXBmaWxlczouKixYLHAnICIkYW1fbWYi IHwgZ3JlcCBYID4vZGV2L251bGwgMj4mMSBcCi0rICAgICAgfHwgY29udGludWUKLSsgICAgYW1f ZGlycGFydD1gJGFzX2Rpcm5hbWUgLS0gIiRhbV9tZiIgfHwKLSskYXNfZXhwciBYIiRhbV9tZiIg OiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLSsJIFgiJGFtX21mIiA6ICdYXCgv L1wpW14vXScgXHwgXAotKwkgWCIkYW1fbWYiIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiRhbV9t ZiIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8Ci0rJGFzX2VjaG8gWCIkYW1fbWYiIHwK LSsgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKLSsJICAgIHMvL1wx LwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKVteL10uKi97Ci0rCSAgICBzLy9cMS8K LSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwotKwkgICAg cQotKwkgIH0KLSsJICAvXlhcKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9 Ci0rCSAgcy8uKi8uLzsgcSdgCi0rICAgIGFtX2ZpbGVwYXJ0PWAkYXNfYmFzZW5hbWUgLS0gIiRh bV9tZiIgfHwKLSskYXNfZXhwciBYLyIkYW1fbWYiIDogJy4qL1woW14vXVteL10qXCkvKiQnIFx8 IFwKLSsJIFgiJGFtX21mIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIkYW1fbWYiIDogJ1hcKC9c KScgXHwgLiAyPi9kZXYvbnVsbCB8fAotKyRhc19lY2hvIFgvIiRhbV9tZiIgfAotKyAgICBzZWQg Jy9eLipcL1woW14vXVteL10qXClcLyokL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0K LSsJICAvXlhcL1woXC9cL1wpJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAg L15YXC9cKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgcy8uKi8u LzsgcSdgCi0rICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNkICIkYW1fZGlycGFydCIgXAot KyAgICAgICYmIHNlZCAtZSAnLyMgYW0tLWluY2x1ZGUtbWFya2VyL2QnICIkYW1fZmlsZXBhcnQi IFwKLSsgICAgICAgIHwgJE1BS0UgLWYgLSBhbS0tZGVwZmlsZXMiID4mNQotKyAgIChjZCAiJGFt X2RpcnBhcnQiIFwKLSsgICAgICAmJiBzZWQgLWUgJy8jIGFtLS1pbmNsdWRlLW1hcmtlci9kJyAi JGFtX2ZpbGVwYXJ0IiBcCi0rICAgICAgICB8ICRNQUtFIC1mIC0gYW0tLWRlcGZpbGVzKSA+JjUg Mj4mNQotKyAgIGFjX3N0YXR1cz0kPwotKyAgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKLSsgICAoZXhpdCAkYWNfc3RhdHVzKTsgfSB8fCBhbV9yYz0kPwotKyAg ZG9uZQotKyAgaWYgdGVzdCAkYW1fcmMgLW5lIDA7IHRoZW4KLSsgICAgeyB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQotK2FzX2ZuX2Vy cm9yICQ/ICJTb21ldGhpbmcgd2VudCB3cm9uZyBib290c3RyYXBwaW5nIG1ha2VmaWxlIGZyYWdt ZW50cwotKyAgICBmb3IgYXV0b21hdGljIGRlcGVuZGVuY3kgdHJhY2tpbmcuICBUcnkgcmUtcnVu bmluZyBjb25maWd1cmUgd2l0aCB0aGUKLSsgICAgJy0tZGlzYWJsZS1kZXBlbmRlbmN5LXRyYWNr aW5nJyBvcHRpb24gdG8gYXQgbGVhc3QgYmUgYWJsZSB0byBidWlsZAotKyAgICB0aGUgcGFja2Fn ZSAoYWxiZWl0IHdpdGhvdXQgc3VwcG9ydCBmb3IgYXV0b21hdGljIGRlcGVuZGVuY3kgdHJhY2tp bmcpLgotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMiICIkTElORU5PIiA1OyB9 Ci0rICBmaQotKyAgeyBhbV9kaXJwYXJ0PTsgdW5zZXQgYW1fZGlycGFydDt9Ci0rICB7IGFtX2Zp bGVwYXJ0PTsgdW5zZXQgYW1fZmlsZXBhcnQ7fQotKyAgeyBhbV9tZj07IHVuc2V0IGFtX21mO30K LSsgIHsgYW1fcmM9OyB1bnNldCBhbV9yYzt9Ci0rICBybSAtZiBjb25mdGVzdC1kZXBzLm1rCi0r fQotKyA7OwotKyAgICAibGlidG9vbCI6QykKLSsKLSsgICAgIyBTZWUgaWYgd2UgYXJlIHJ1bm5p bmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHRoYXQgYWxsb3cgb3VyCi0rICAgICMgY29t bWFuZHMgdGhyb3VnaCB3aXRob3V0IHJlbW92YWwgb2YgXCBlc2NhcGVzLgotKyAgICBpZiB0ZXN0 IC1uICIke1pTSF9WRVJTSU9OK3NldH0iOyB0aGVuCi0rICAgICAgc2V0b3B0IE5PX0dMT0JfU1VC U1QKLSsgICAgZmkKLSsKLSsgICAgY2ZnZmlsZT0ke29maWxlfVQKLSsgICAgdHJhcCAiJFJNIFwi JGNmZ2ZpbGVcIjsgZXhpdCAxIiAxIDIgMTUKLSsgICAgJFJNICIkY2ZnZmlsZSIKLSsKLSsgICAg Y2F0IDw8X0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCi0rIyEgJFNIRUxMCi0rIyBHZW5lcmF0ZWQgYXV0 b21hdGljYWxseSBieSAkYXNfbWUgKCRQQUNLQUdFKSAkVkVSU0lPTgotKyMgTGlidG9vbCB3YXMg Y29uZmlndXJlZCBvbiBob3N0IGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwg c2VkIDFxYDoKLSsjIE5PVEU6IENoYW5nZXMgbWFkZSB0byB0aGlzIGZpbGUgd2lsbCBiZSBsb3N0 OiBsb29rIGF0IGx0bWFpbi5zaC4KLSsKLSsjIFByb3ZpZGUgZ2VuZXJhbGl6ZWQgbGlicmFyeS1i dWlsZGluZyBzdXBwb3J0IHNlcnZpY2VzLgotKyMgV3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2Vp dCwgMTk5NgotKwotKyMgQ29weXJpZ2h0IChDKSAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgotKyMgVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29w eWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KLSsjIHdhcnJhbnR5OyBub3QgZXZlbiBmb3Ig TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgotKwot KyMgR05VIExpYnRvb2wgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2Ygb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIEFzIGEgc3BlY2lhbCBleGNlcHRp b24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKLSsjIGRpc3RyaWJ1 dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIG9yIGxpYnJhcnkgdGhhdCBpcyBidWls dAotKyMgdXNpbmcgR05VIExpYnRvb2wsIHlvdSBtYXkgaW5jbHVkZSB0aGlzIGZpbGUgdW5kZXIg dGhlICBzYW1lCi0rIyBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVz dCBvZiB0aGF0IHByb2dyYW0uCi0rIwotKyMgR05VIExpYnRvb2wgaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Ci0rIyBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLSsKLSsjIFRoZSBuYW1lcyBvZiB0aGUgdGFnZ2VkIGNv bmZpZ3VyYXRpb25zIHN1cHBvcnRlZCBieSB0aGlzIHNjcmlwdC4KLSthdmFpbGFibGVfdGFncz0n JwotKwotKyMgQ29uZmlndXJlZCBkZWZhdWx0cyBmb3Igc3lzX2xpYl9kbHNlYXJjaF9wYXRoIG11 bmdpbmcuCi0rOiBcJHtMVF9TWVNfTElCUkFSWV9QQVRIPSIkY29uZmlndXJlX3RpbWVfbHRfc3lz X2xpYnJhcnlfcGF0aCJ9Ci0rCi0rIyAjIyMgQkVHSU4gTElCVE9PTCBDT05GSUcKLSsKLSsjIFdo aWNoIHJlbGVhc2Ugb2YgbGlidG9vbC5tNCB3YXMgdXNlZD8KLSttYWNyb192ZXJzaW9uPSRtYWNy b192ZXJzaW9uCi0rbWFjcm9fcmV2aXNpb249JG1hY3JvX3JldmlzaW9uCi0rCi0rIyBXaGV0aGVy IG9yIG5vdCB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLgotK2J1aWxkX2xpYnRvb2xfbGlicz0k ZW5hYmxlX3NoYXJlZAotKwotKyMgV2hldGhlciBvciBub3QgdG8gYnVpbGQgc3RhdGljIGxpYnJh cmllcy4KLStidWlsZF9vbGRfbGlicz0kZW5hYmxlX3N0YXRpYwotKwotKyMgV2hhdCB0eXBlIG9m IG9iamVjdHMgdG8gYnVpbGQuCi0rcGljX21vZGU9JHBpY19tb2RlCi0rCi0rIyBXaGV0aGVyIG9y IG5vdCB0byBvcHRpbWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb24uCi0rZmFzdF9pbnN0YWxsPSRl bmFibGVfZmFzdF9pbnN0YWxsCi0rCi0rIyBTaGFyZWQgYXJjaGl2ZSBtZW1iZXIgYmFzZW5hbWUs Zm9yIGZpbGVuYW1lIGJhc2VkIHNoYXJlZCBsaWJyYXJ5IHZlcnNpb25pbmcgb24gQUlYLgotK3No YXJlZF9hcmNoaXZlX21lbWJlcl9zcGVjPSRzaGFyZWRfYXJjaGl2ZV9tZW1iZXJfc3BlYwotKwot KyMgU2hlbGwgdG8gdXNlIHdoZW4gaW52b2tpbmcgc2hlbGwgc2NyaXB0cy4KLStTSEVMTD0kbHRf U0hFTEwKLSsKLSsjIEFuIGVjaG8gcHJvZ3JhbSB0aGF0IHByb3RlY3RzIGJhY2tzbGFzaGVzLgot K0VDSE89JGx0X0VDSE8KLSsKLSsjIFRoZSBQQVRIIHNlcGFyYXRvciBmb3IgdGhlIGJ1aWxkIHN5 c3RlbS4KLStQQVRIX1NFUEFSQVRPUj0kbHRfUEFUSF9TRVBBUkFUT1IKLSsKLSsjIFRoZSBob3N0 IHN5c3RlbS4KLStob3N0X2FsaWFzPSRob3N0X2FsaWFzCi0raG9zdD0kaG9zdAotK2hvc3Rfb3M9 JGhvc3Rfb3MKLSsKLSsjIFRoZSBidWlsZCBzeXN0ZW0uCi0rYnVpbGRfYWxpYXM9JGJ1aWxkX2Fs aWFzCi0rYnVpbGQ9JGJ1aWxkCi0rYnVpbGRfb3M9JGJ1aWxkX29zCi0rCi0rIyBBIHNlZCBwcm9n cmFtIHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0LgotK1NFRD0kbHRfU0VECi0rCi0rIyBT ZWQgdGhhdCBoZWxwcyB1cyBhdm9pZCBhY2NpZGVudGFsbHkgdHJpZ2dlcmluZyBlY2hvKDEpIG9w dGlvbnMgbGlrZSAtbi4KLStYc2VkPSJcJFNFRCAtZSAxcy9eWC8vIgotKwotKyMgQSBncmVwIHBy b2dyYW0gdGhhdCBoYW5kbGVzIGxvbmcgbGluZXMuCi0rR1JFUD0kbHRfR1JFUAotKwotKyMgQW4g RVJFIG1hdGNoZXIuCi0rRUdSRVA9JGx0X0VHUkVQCi0rCi0rIyBBIGxpdGVyYWwgc3RyaW5nIG1h dGNoZXIuCi0rRkdSRVA9JGx0X0ZHUkVQCi0rCi0rIyBBIEJTRC0gb3IgTVMtY29tcGF0aWJsZSBu YW1lIGxpc3Rlci4KLStOTT0kbHRfTk0KLSsKLSsjIFdoZXRoZXIgd2UgbmVlZCBzb2Z0IG9yIGhh cmQgbGlua3MuCi0rTE5fUz0kbHRfTE5fUwotKwotKyMgV2hhdCBpcyB0aGUgbWF4aW11bSBsZW5n dGggb2YgYSBjb21tYW5kPwotK21heF9jbWRfbGVuPSRtYXhfY21kX2xlbgotKwotKyMgT2JqZWN0 IGZpbGUgc3VmZml4IChub3JtYWxseSAibyIpLgotK29iamV4dD0kYWNfb2JqZXh0Ci0rCi0rIyBF eGVjdXRhYmxlIGZpbGUgc3VmZml4IChub3JtYWxseSAiIikuCi0rZXhlZXh0PSRleGVleHQKLSsK LSsjIHdoZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzICJ1bnNldCIuCi0rbHRfdW5zZXQ9JGx0 X3Vuc2V0Ci0rCi0rIyB0dXJuIHNwYWNlcyBpbnRvIG5ld2xpbmVzLgotK1NQMk5MPSRsdF9sdF9T UDJOTAotKwotKyMgdHVybiBuZXdsaW5lcyBpbnRvIHNwYWNlcy4KLStOTDJTUD0kbHRfbHRfTkwy U1AKLSsKLSsjIGNvbnZlcnQgXCRidWlsZCBmaWxlIG5hbWVzIHRvIFwkaG9zdCBmb3JtYXQuCi0r dG9faG9zdF9maWxlX2NtZD0kbHRfY3ZfdG9faG9zdF9maWxlX2NtZAotKwotKyMgY29udmVydCBc JGJ1aWxkIGZpbGVzIHRvIHRvb2xjaGFpbiBmb3JtYXQuCi0rdG9fdG9vbF9maWxlX2NtZD0kbHRf Y3ZfdG9fdG9vbF9maWxlX2NtZAotKwotKyMgQW4gb2JqZWN0IHN5bWJvbCBkdW1wZXIuCi0rT0JK RFVNUD0kbHRfT0JKRFVNUAotKwotKyMgTWV0aG9kIHRvIGNoZWNrIHdoZXRoZXIgZGVwZW5kZW50 IGxpYnJhcmllcyBhcmUgc2hhcmVkIG9iamVjdHMuCi0rZGVwbGlic19jaGVja19tZXRob2Q9JGx0 X2RlcGxpYnNfY2hlY2tfbWV0aG9kCi0rCi0rIyBDb21tYW5kIHRvIHVzZSB3aGVuIGRlcGxpYnNf Y2hlY2tfbWV0aG9kID0gImZpbGVfbWFnaWMiLgotK2ZpbGVfbWFnaWNfY21kPSRsdF9maWxlX21h Z2ljX2NtZAotKwotKyMgSG93IHRvIGZpbmQgcG90ZW50aWFsIGZpbGVzIHdoZW4gZGVwbGlic19j aGVja19tZXRob2QgPSAiZmlsZV9tYWdpYyIuCi0rZmlsZV9tYWdpY19nbG9iPSRsdF9maWxlX21h Z2ljX2dsb2IKLSsKLSsjIEZpbmQgcG90ZW50aWFsIGZpbGVzIHVzaW5nIG5vY2FzZWdsb2Igd2hl biBkZXBsaWJzX2NoZWNrX21ldGhvZCA9ICJmaWxlX21hZ2ljIi4KLSt3YW50X25vY2FzZWdsb2I9 JGx0X3dhbnRfbm9jYXNlZ2xvYgotKwotKyMgRExMIGNyZWF0aW9uIHByb2dyYW0uCi0rRExMVE9P TD0kbHRfRExMVE9PTAotKwotKyMgQ29tbWFuZCB0byBhc3NvY2lhdGUgc2hhcmVkIGFuZCBsaW5r IGxpYnJhcmllcy4KLStzaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZD0kbHRfc2hhcmVkbGliX2Zy b21fbGlua2xpYl9jbWQKLSsKLSsjIFRoZSBhcmNoaXZlci4KLStBUj0kbHRfQVIKLSsKLSsjIEZs YWdzIHRvIGNyZWF0ZSBhbiBhcmNoaXZlLgotK0FSX0ZMQUdTPSRsdF9BUl9GTEFHUwotKwotKyMg SG93IHRvIGZlZWQgYSBmaWxlIGxpc3RpbmcgdG8gdGhlIGFyY2hpdmVyLgotK2FyY2hpdmVyX2xp c3Rfc3BlYz0kbHRfYXJjaGl2ZXJfbGlzdF9zcGVjCi0rCi0rIyBBIHN5bWJvbCBzdHJpcHBpbmcg cHJvZ3JhbS4KLStTVFJJUD0kbHRfU1RSSVAKLSsKLSsjIENvbW1hbmRzIHVzZWQgdG8gaW5zdGFs bCBhbiBvbGQtc3R5bGUgYXJjaGl2ZS4KLStSQU5MSUI9JGx0X1JBTkxJQgotK29sZF9wb3N0aW5z dGFsbF9jbWRzPSRsdF9vbGRfcG9zdGluc3RhbGxfY21kcwotK29sZF9wb3N0dW5pbnN0YWxsX2Nt ZHM9JGx0X29sZF9wb3N0dW5pbnN0YWxsX2NtZHMKLSsKLSsjIFdoZXRoZXIgdG8gdXNlIGEgbG9j ayBmb3Igb2xkIGFyY2hpdmUgZXh0cmFjdGlvbi4KLStsb2NrX29sZF9hcmNoaXZlX2V4dHJhY3Rp b249JGxvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbgotKwotKyMgQSBDIGNvbXBpbGVyLgotK0xU Q0M9JGx0X0NDCi0rCi0rIyBMVENDIGNvbXBpbGVyIGZsYWdzLgotK0xUQ0ZMQUdTPSRsdF9DRkxB R1MKLSsKLSsjIFRha2UgdGhlIG91dHB1dCBvZiBubSBhbmQgcHJvZHVjZSBhIGxpc3Rpbmcgb2Yg cmF3IHN5bWJvbHMgYW5kIEMgbmFtZXMuCi0rZ2xvYmFsX3N5bWJvbF9waXBlPSRsdF9sdF9jdl9z eXNfZ2xvYmFsX3N5bWJvbF9waXBlCi0rCi0rIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBp biBhIHByb3BlciBDIGRlY2xhcmF0aW9uLgotK2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9JGx0X2x0 X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsCi0rCi0rIyBUcmFuc2Zvcm0gdGhlIG91dHB1 dCBvZiBubSBpbnRvIGEgbGlzdCBvZiBzeW1ib2xzIHRvIG1hbnVhbGx5IHJlbG9jYXRlLgotK2ds b2JhbF9zeW1ib2xfdG9faW1wb3J0PSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19pbXBv cnQKLSsKLSsjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFkZHJlc3Mg cGFpci4KLStnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSRsdF9sdF9jdl9zeXNfZ2xv YmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcwotKwotKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQg b2Ygbm0gaW4gYSBDIG5hbWUgYWRkcmVzcyBwYWlyIHdoZW4gbGliIHByZWZpeCBpcyBuZWVkZWQu Ci0rZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4PSRsdF9sdF9jdl9z eXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4Ci0rCi0rIyBUaGUg bmFtZSBsaXN0ZXIgaW50ZXJmYWNlLgotK25tX2ludGVyZmFjZT0kbHRfbHRfY3Zfbm1faW50ZXJm YWNlCi0rCi0rIyBTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMgZm9yIFwk Tk0uCi0rbm1fZmlsZV9saXN0X3NwZWM9JGx0X25tX2ZpbGVfbGlzdF9zcGVjCi0rCi0rIyBUaGUg cm9vdCB3aGVyZSB0byBzZWFyY2ggZm9yIGRlcGVuZGVudCBsaWJyYXJpZXMsYW5kIHdoZXJlIG91 ciBsaWJyYXJpZXMgc2hvdWxkIGJlIGluc3RhbGxlZC4KLStsdF9zeXNyb290PSRsdF9zeXNyb290 Ci0rCi0rIyBDb21tYW5kIHRvIHRydW5jYXRlIGEgYmluYXJ5IHBpcGUuCi0rbHRfdHJ1bmNhdGVf YmluPSRsdF9sdF9jdl90cnVuY2F0ZV9iaW4KLSsKLSsjIFRoZSBuYW1lIG9mIHRoZSBkaXJlY3Rv cnkgdGhhdCBjb250YWlucyB0ZW1wb3JhcnkgbGlidG9vbCBmaWxlcy4KLStvYmpkaXI9JG9iamRp cgotKwotKyMgVXNlZCB0byBleGFtaW5lIGxpYnJhcmllcyB3aGVuIGZpbGVfbWFnaWNfY21kIGJl Z2lucyB3aXRoICJmaWxlIi4KLStNQUdJQ19DTUQ9JE1BR0lDX0NNRAotKwotKyMgTXVzdCB3ZSBs b2NrIGZpbGVzIHdoZW4gZG9pbmcgY29tcGlsYXRpb24/Ci0rbmVlZF9sb2Nrcz0kbHRfbmVlZF9s b2NrcwotKwotKyMgTWFuaWZlc3QgdG9vbC4KLStNQU5JRkVTVF9UT09MPSRsdF9NQU5JRkVTVF9U T09MCi0rCi0rIyBUb29sIHRvIG1hbmlwdWxhdGUgYXJjaGl2ZWQgRFdBUkYgZGVidWcgc3ltYm9s IGZpbGVzIG9uIE1hYyBPUyBYLgotK0RTWU1VVElMPSRsdF9EU1lNVVRJTAotKwotKyMgVG9vbCB0 byBjaGFuZ2UgZ2xvYmFsIHRvIGxvY2FsIHN5bWJvbHMgb24gTWFjIE9TIFguCi0rTk1FRElUPSRs dF9OTUVESVQKLSsKLSsjIFRvb2wgdG8gbWFuaXB1bGF0ZSBmYXQgb2JqZWN0cyBhbmQgYXJjaGl2 ZXMgb24gTWFjIE9TIFguCi0rTElQTz0kbHRfTElQTwotKwotKyMgbGRkL3JlYWRlbGYgbGlrZSB0 b29sIGZvciBNYWNoLU8gYmluYXJpZXMgb24gTWFjIE9TIFguCi0rT1RPT0w9JGx0X09UT09MCi0r Ci0rIyBsZGQvcmVhZGVsZiBsaWtlIHRvb2wgZm9yIDY0IGJpdCBNYWNoLU8gYmluYXJpZXMgb24g TWFjIE9TIFggMTAuNC4KLStPVE9PTDY0PSRsdF9PVE9PTDY0Ci0rCi0rIyBPbGQgYXJjaGl2ZSBz dWZmaXggKG5vcm1hbGx5ICJhIikuCi0rbGliZXh0PSRsaWJleHQKLSsKLSsjIFNoYXJlZCBsaWJy YXJ5IHN1ZmZpeCAobm9ybWFsbHkgIi5zbyIpLgotK3NocmV4dF9jbWRzPSRsdF9zaHJleHRfY21k cwotKwotKyMgVGhlIGNvbW1hbmRzIHRvIGV4dHJhY3QgdGhlIGV4cG9ydGVkIHN5bWJvbCBsaXN0 IGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4KLStleHRyYWN0X2V4cHN5bXNfY21kcz0kbHRfZXh0cmFj dF9leHBzeW1zX2NtZHMKLSsKLSsjIFZhcmlhYmxlcyB3aG9zZSB2YWx1ZXMgc2hvdWxkIGJlIHNh dmVkIGluIGxpYnRvb2wgd3JhcHBlciBzY3JpcHRzIGFuZAotKyMgcmVzdG9yZWQgYXQgbGluayB0 aW1lLgotK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSRsdF92YXJpYWJsZXNfc2F2ZWRfZm9y X3JlbGluawotKwotKyMgRG8gd2UgbmVlZCB0aGUgImxpYiIgcHJlZml4IGZvciBtb2R1bGVzPwot K25lZWRfbGliX3ByZWZpeD0kbmVlZF9saWJfcHJlZml4Ci0rCi0rIyBEbyB3ZSBuZWVkIGEgdmVy c2lvbiBmb3IgbGlicmFyaWVzPwotK25lZWRfdmVyc2lvbj0kbmVlZF92ZXJzaW9uCi0rCi0rIyBM aWJyYXJ5IHZlcnNpb25pbmcgdHlwZS4KLSt2ZXJzaW9uX3R5cGU9JHZlcnNpb25fdHlwZQotKwot KyMgU2hhcmVkIGxpYnJhcnkgcnVudGltZSBwYXRoIHZhcmlhYmxlLgotK3J1bnBhdGhfdmFyPSRy dW5wYXRoX3ZhcgotKwotKyMgU2hhcmVkIGxpYnJhcnkgcGF0aCB2YXJpYWJsZS4KLStzaGxpYnBh dGhfdmFyPSRzaGxpYnBhdGhfdmFyCi0rCi0rIyBJcyBzaGxpYnBhdGggc2VhcmNoZWQgYmVmb3Jl IHRoZSBoYXJkLWNvZGVkIGxpYnJhcnkgc2VhcmNoIHBhdGg/Ci0rc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPSRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgKLSsKLSsjIEZvcm1hdCBvZiBs aWJyYXJ5IG5hbWUgcHJlZml4LgotK2xpYm5hbWVfc3BlYz0kbHRfbGlibmFtZV9zcGVjCi0rCi0r IyBMaXN0IG9mIGFyY2hpdmUgbmFtZXMuICBGaXJzdCBuYW1lIGlzIHRoZSByZWFsIG9uZSwgdGhl IHJlc3QgYXJlIGxpbmtzLgotKyMgVGhlIGxhc3QgbmFtZSBpcyB0aGUgb25lIHRoYXQgdGhlIGxp bmtlciBmaW5kcyB3aXRoIC1sTkFNRQotK2xpYnJhcnlfbmFtZXNfc3BlYz0kbHRfbGlicmFyeV9u YW1lc19zcGVjCi0rCi0rIyBUaGUgY29kZWQgbmFtZSBvZiB0aGUgbGlicmFyeSwgaWYgZGlmZmVy ZW50IGZyb20gdGhlIHJlYWwgbmFtZS4KLStzb25hbWVfc3BlYz0kbHRfc29uYW1lX3NwZWMKLSsK LSsjIFBlcm1pc3Npb24gbW9kZSBvdmVycmlkZSBmb3IgaW5zdGFsbGF0aW9uIG9mIHNoYXJlZCBs aWJyYXJpZXMuCi0raW5zdGFsbF9vdmVycmlkZV9tb2RlPSRsdF9pbnN0YWxsX292ZXJyaWRlX21v ZGUKLSsKLSsjIENvbW1hbmQgdG8gdXNlIGFmdGVyIGluc3RhbGxhdGlvbiBvZiBhIHNoYXJlZCBh cmNoaXZlLgotK3Bvc3RpbnN0YWxsX2NtZHM9JGx0X3Bvc3RpbnN0YWxsX2NtZHMKLSsKLSsjIENv bW1hbmQgdG8gdXNlIGFmdGVyIHVuaW5zdGFsbGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hpdmUuCi0r cG9zdHVuaW5zdGFsbF9jbWRzPSRsdF9wb3N0dW5pbnN0YWxsX2NtZHMKLSsKLSsjIENvbW1hbmRz IHVzZWQgdG8gZmluaXNoIGEgbGlidG9vbCBsaWJyYXJ5IGluc3RhbGxhdGlvbiBpbiBhIGRpcmVj dG9yeS4KLStmaW5pc2hfY21kcz0kbHRfZmluaXNoX2NtZHMKLSsKLSsjIEFzICJmaW5pc2hfY21k cyIsIGV4Y2VwdCBhIHNpbmdsZSBzY3JpcHQgZnJhZ21lbnQgdG8gYmUgZXZhbGVkIGJ1dAotKyMg bm90IHNob3duLgotK2ZpbmlzaF9ldmFsPSRsdF9maW5pc2hfZXZhbAotKwotKyMgV2hldGhlciB3 ZSBzaG91bGQgaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIGxpYnJhcmllcy4KLStoYXJkY29k ZV9pbnRvX2xpYnM9JGhhcmRjb2RlX2ludG9fbGlicwotKwotKyMgQ29tcGlsZS10aW1lIHN5c3Rl bSBzZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzLgotK3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0k bHRfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rCi0rIyBEZXRlY3RlZCBydW4tdGltZSBzeXN0 ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllcy4KLStzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl Yz0kbHRfY29uZmlndXJlX3RpbWVfZGxzZWFyY2hfcGF0aAotKwotKyMgRXhwbGljaXQgTFRfU1lT X0xJQlJBUllfUEFUSCBzZXQgZHVyaW5nIC4vY29uZmlndXJlIHRpbWUuCi0rY29uZmlndXJlX3Rp bWVfbHRfc3lzX2xpYnJhcnlfcGF0aD0kbHRfY29uZmlndXJlX3RpbWVfbHRfc3lzX2xpYnJhcnlf cGF0aAotKwotKyMgV2hldGhlciBkbG9wZW4gaXMgc3VwcG9ydGVkLgotK2Rsb3Blbl9zdXBwb3J0 PSRlbmFibGVfZGxvcGVuCi0rCi0rIyBXaGV0aGVyIGRsb3BlbiBvZiBwcm9ncmFtcyBpcyBzdXBw b3J0ZWQuCi0rZGxvcGVuX3NlbGY9JGVuYWJsZV9kbG9wZW5fc2VsZgotKwotKyMgV2hldGhlciBk bG9wZW4gb2Ygc3RhdGljYWxseSBsaW5rZWQgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkLgotK2Rsb3Bl bl9zZWxmX3N0YXRpYz0kZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYwotKwotKyMgQ29tbWFuZHMg dG8gc3RyaXAgbGlicmFyaWVzLgotK29sZF9zdHJpcGxpYj0kbHRfb2xkX3N0cmlwbGliCi0rc3Ry aXBsaWI9JGx0X3N0cmlwbGliCi0rCi0rCi0rIyBUaGUgbGlua2VyIHVzZWQgdG8gYnVpbGQgbGli cmFyaWVzLgotK0xEPSRsdF9MRAotKwotKyMgSG93IHRvIGNyZWF0ZSByZWxvYWRhYmxlIG9iamVj dCBmaWxlcy4KLStyZWxvYWRfZmxhZz0kbHRfcmVsb2FkX2ZsYWcKLStyZWxvYWRfY21kcz0kbHRf cmVsb2FkX2NtZHMKLSsKLSsjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYW4gb2xkLXN0eWxlIGFy Y2hpdmUuCi0rb2xkX2FyY2hpdmVfY21kcz0kbHRfb2xkX2FyY2hpdmVfY21kcwotKwotKyMgQSBs YW5ndWFnZSBzcGVjaWZpYyBjb21waWxlci4KLStDQz0kbHRfY29tcGlsZXIKLSsKLSsjIElzIHRo ZSBjb21waWxlciB0aGUgR05VIGNvbXBpbGVyPwotK3dpdGhfZ2NjPSRHQ0MKLSsKLSsjIENvbXBp bGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnMuCi0rbm9fYnVpbHRpbl9mbGFn PSRsdF9sdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZwotKwotKyMgQWRkaXRpb25hbCBj b21waWxlciBmbGFncyBmb3IgYnVpbGRpbmcgbGlicmFyeSBvYmplY3RzLgotK3BpY19mbGFnPSRs dF9sdF9wcm9nX2NvbXBpbGVyX3BpYwotKwotKyMgSG93IHRvIHBhc3MgYSBsaW5rZXIgZmxhZyB0 aHJvdWdoIHRoZSBjb21waWxlci4KLSt3bD0kbHRfbHRfcHJvZ19jb21waWxlcl93bAotKwotKyMg Q29tcGlsZXIgZmxhZyB0byBwcmV2ZW50IGR5bmFtaWMgbGlua2luZy4KLStsaW5rX3N0YXRpY19m bGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3N0YXRpYwotKwotKyMgRG9lcyBjb21waWxlciBzaW11 bHRhbmVvdXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25zPwotK2NvbXBpbGVyX2Nfbz0kbHRf bHRfY3ZfcHJvZ19jb21waWxlcl9jX28KLSsKLSsjIFdoZXRoZXIgb3Igbm90IHRvIGFkZCAtbGMg Zm9yIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMuCi0rYnVpbGRfbGlidG9vbF9uZWVkX2xjPSRh cmNoaXZlX2NtZHNfbmVlZF9sYwotKwotKyMgV2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cgc2hh cmVkIGxpYnMgd2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRpYy4KLSthbGxvd19saWJ0b29sX2xp YnNfd2l0aF9zdGF0aWNfcnVudGltZXM9JGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGlt ZXMKLSsKLSsjIENvbXBpbGVyIGZsYWcgdG8gYWxsb3cgcmVmbGV4aXZlIGRsb3BlbnMuCi0rZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjPSRsdF9leHBvcnRfZHluYW1pY19mbGFnX3NwZWMKLSsKLSsj IENvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgc2hhcmVkIG9iamVjdHMgZGlyZWN0bHkgZnJvbSBh cmNoaXZlcy4KLSt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0kbHRfd2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWMKLSsKLSsjIFdoZXRoZXIgdGhlIGNvbXBpbGVyIGNvcGVzIHdpdGggcGFzc2luZyBubyBv YmplY3RzIGRpcmVjdGx5LgotK2NvbXBpbGVyX25lZWRzX29iamVjdD0kbHRfY29tcGlsZXJfbmVl ZHNfb2JqZWN0Ci0rCi0rIyBDcmVhdGUgYW4gb2xkLXN0eWxlIGFyY2hpdmUgZnJvbSBhIHNoYXJl ZCBhcmNoaXZlLgotK29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9JGx0X29sZF9hcmNoaXZlX2Zy b21fbmV3X2NtZHMKLSsKLSsjIENyZWF0ZSBhIHRlbXBvcmFyeSBvbGQtc3R5bGUgYXJjaGl2ZSB0 byBsaW5rIGluc3RlYWQgb2YgYSBzaGFyZWQgYXJjaGl2ZS4KLStvbGRfYXJjaGl2ZV9mcm9tX2V4 cHN5bXNfY21kcz0kbHRfb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMKLSsKLSsjIENvbW1h bmRzIHVzZWQgdG8gYnVpbGQgYSBzaGFyZWQgYXJjaGl2ZS4KLSthcmNoaXZlX2NtZHM9JGx0X2Fy Y2hpdmVfY21kcwotK2FyY2hpdmVfZXhwc3ltX2NtZHM9JGx0X2FyY2hpdmVfZXhwc3ltX2NtZHMK LSsKLSsjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBsb2FkYWJsZSBtb2R1bGUgaWYgZGlmZmVy ZW50IGZyb20gYnVpbGRpbmcKLSsjIGEgc2hhcmVkIGFyY2hpdmUuCi0rbW9kdWxlX2NtZHM9JGx0 X21vZHVsZV9jbWRzCi0rbW9kdWxlX2V4cHN5bV9jbWRzPSRsdF9tb2R1bGVfZXhwc3ltX2NtZHMK LSsKLSsjIFdoZXRoZXIgd2UgYXJlIGJ1aWxkaW5nIHdpdGggR05VIGxkIG9yIG5vdC4KLSt3aXRo X2dudV9sZD0kbHRfd2l0aF9nbnVfbGQKLSsKLSsjIEZsYWcgdGhhdCBhbGxvd3Mgc2hhcmVkIGxp YnJhcmllcyB3aXRoIHVuZGVmaW5lZCBzeW1ib2xzIHRvIGJlIGJ1aWx0LgotK2FsbG93X3VuZGVm aW5lZF9mbGFnPSRsdF9hbGxvd191bmRlZmluZWRfZmxhZwotKwotKyMgRmxhZyB0aGF0IGVuZm9y Y2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xzLgotK25vX3VuZGVmaW5lZF9mbGFnPSRsdF9ub191bmRl ZmluZWRfZmxhZwotKwotKyMgRmxhZyB0byBoYXJkY29kZSBcJGxpYmRpciBpbnRvIGEgYmluYXJ5 IGR1cmluZyBsaW5raW5nLgotKyMgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2Vz IG5vdCBleGlzdAotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JGx0X2hhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMKLSsKLSsjIFdoZXRoZXIgd2UgbmVlZCBhIHNpbmdsZSAiLXJwYXRoIiBmbGFn IHdpdGggYSBzZXBhcmF0ZWQgYXJndW1lbnQuCi0raGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0k bHRfaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcgotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5n IERJUi9saWJOQU1FXCRzaGFyZWRfZXh0IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcwotKyMgRElS IGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfZGlyZWN0PSRoYXJkY29kZV9k aXJlY3QKLSsKLSsjIFNldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRVwkc2hhcmVkX2V4 dCBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMKLSsjIERJUiBpbnRvIHRoZSByZXN1bHRpbmcgYmlu YXJ5IGFuZCB0aGUgcmVzdWx0aW5nIGxpYnJhcnkgZGVwZW5kZW5jeSBpcwotKyMgImFic29sdXRl IixpLmUgaW1wb3NzaWJsZSB0byBjaGFuZ2UgYnkgc2V0dGluZyBcJHNobGlicGF0aF92YXIgaWYg dGhlCi0rIyBsaWJyYXJ5IGlzIHJlbG9jYXRlZC4KLStoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9 JGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZQotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIHRo ZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKLSsjIGludG8gdGhlIHJl c3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfbWludXNfTD0kaGFyZGNvZGVfbWludXNfTAotKwot KyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5n IGhhcmRjb2RlcyBESVIKLSsjIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVf c2hsaWJwYXRoX3Zhcj0kaGFyZGNvZGVfc2hsaWJwYXRoX3ZhcgotKwotKyMgU2V0IHRvICJ5ZXMi IGlmIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBoYXJkY29kZXMgRElS Ci0rIyBpbnRvIHRoZSBsaWJyYXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJpZXMgYW5kIGV4 ZWN1dGFibGVzIGxpbmtlZAotKyMgYWdhaW5zdCBpdC4KLStoYXJkY29kZV9hdXRvbWF0aWM9JGhh cmRjb2RlX2F1dG9tYXRpYwotKwotKyMgU2V0IHRvIHllcyBpZiBsaW5rZXIgYWRkcyBydW50aW1l IHBhdGhzIG9mIGRlcGVuZGVudCBsaWJyYXJpZXMKLSsjIHRvIHJ1bnRpbWUgcGF0aCBsaXN0Lgot K2luaGVyaXRfcnBhdGg9JGluaGVyaXRfcnBhdGgKLSsKLSsjIFdoZXRoZXIgbGlidG9vbCBtdXN0 IGxpbmsgYSBwcm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KLSts aW5rX2FsbF9kZXBsaWJzPSRsaW5rX2FsbF9kZXBsaWJzCi0rCi0rIyBTZXQgdG8gInllcyIgaWYg ZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWQuCi0rYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSRh bHdheXNfZXhwb3J0X3N5bWJvbHMKLSsKLSsjIFRoZSBjb21tYW5kcyB0byBsaXN0IGV4cG9ydGVk IHN5bWJvbHMuCi0rZXhwb3J0X3N5bWJvbHNfY21kcz0kbHRfZXhwb3J0X3N5bWJvbHNfY21kcwot KwotKyMgU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQg c3ltYm9scy4KLStleGNsdWRlX2V4cHN5bXM9JGx0X2V4Y2x1ZGVfZXhwc3ltcwotKwotKyMgU3lt Ym9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgotK2luY2x1ZGVfZXhwc3ltcz0kbHRf aW5jbHVkZV9leHBzeW1zCi0rCi0rIyBDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgcHJv Z3JhbXMgKGFnYWluc3QgbGlicmFyaWVzKSB3aXRoIHRlbXBsYXRlcy4KLStwcmVsaW5rX2NtZHM9 JGx0X3ByZWxpbmtfY21kcwotKwotKyMgQ29tbWFuZHMgbmVjZXNzYXJ5IGZvciBmaW5pc2hpbmcg bGlua2luZyBwcm9ncmFtcy4KLStwb3N0bGlua19jbWRzPSRsdF9wb3N0bGlua19jbWRzCi0rCi0r IyBTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMuCi0rZmlsZV9saXN0X3Nw ZWM9JGx0X2ZpbGVfbGlzdF9zcGVjCi0rCi0rIyBIb3cgdG8gaGFyZGNvZGUgYSBzaGFyZWQgbGli cmFyeSBwYXRoIGludG8gYW4gZXhlY3V0YWJsZS4KLStoYXJkY29kZV9hY3Rpb249JGhhcmRjb2Rl X2FjdGlvbgotKwotKyMgIyMjIEVORCBMSUJUT09MIENPTkZJRwotKwotK19MVF9FT0YKLSsKLSsg ICAgY2F0IDw8J19MVF9FT0YnID4+ICIkY2ZnZmlsZSIKLSsKLSsjICMjIyBCRUdJTiBGVU5DVElP TlMgU0hBUkVEIFdJVEggQ09ORklHVVJFCi0rCi0rIyBmdW5jX211bmdlX3BhdGhfbGlzdCBWQVJJ QUJMRSBQQVRICi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgVkFS SUFCTEUgaXMgbmFtZSBvZiB2YXJpYWJsZSBjb250YWluaW5nIF9zcGFjZV8gc2VwYXJhdGVkIGxp c3Qgb2YKLSsjIGRpcmVjdG9yaWVzIHRvIGJlIG11bmdlZCBieSB0aGUgY29udGVudHMgb2YgUEFU SCwgd2hpY2ggaXMgc3RyaW5nCi0rIyBoYXZpbmcgYSBmb3JtYXQ6Ci0rIyAiRElSWzpESVJdOiIK LSsjICAgICAgIHN0cmluZyAiRElSWyBESVJdIiB3aWxsIGJlIHByZXBlbmRlZCB0byBWQVJJQUJM RQotKyMgIjpESVJbOkRJUl0iCi0rIyAgICAgICBzdHJpbmcgIkRJUlsgRElSXSIgd2lsbCBiZSBh cHBlbmRlZCB0byBWQVJJQUJMRQotKyMgIkRJUlBbOkRJUlBdOjpbRElSQTpdRElSQSIKLSsjICAg ICAgIHN0cmluZyAiRElSUFsgRElSUF0iIHdpbGwgYmUgcHJlcGVuZGVkIHRvIFZBUklBQkxFIGFu ZCBzdHJpbmcKLSsjICAgICAgICJESVJBWyBESVJBXSIgd2lsbCBiZSBhcHBlbmRlZCB0byBWQVJJ QUJMRQotKyMgIkRJUls6RElSXSIKLSsjICAgICAgIFZBUklBQkxFIHdpbGwgYmUgcmVwbGFjZWQg YnkgIkRJUlsgRElSXSIKLStmdW5jX211bmdlX3BhdGhfbGlzdCAoKQotK3sKLSsgICAgY2FzZSB4 JDIgaW4KLSsgICAgeCkKLSsgICAgICAgIDs7Ci0rICAgICo6KQotKyAgICAgICAgZXZhbCAkMT1c ImAkRUNITyAkMiB8ICRTRUQgJ3MvOi8gL2cnYCBcJCQxXCIKLSsgICAgICAgIDs7Ci0rICAgIHg6 KikKLSsgICAgICAgIGV2YWwgJDE9XCJcJCQxIGAkRUNITyAkMiB8ICRTRUQgJ3MvOi8gL2cnYFwi Ci0rICAgICAgICA7OwotKyAgICAqOjoqKQotKyAgICAgICAgZXZhbCAkMT1cIlwkJDFcIGAkRUNI TyAkMiB8ICRTRUQgLWUgJ3MvLio6Oi8vJyAtZSAncy86LyAvZydgXCIKLSsgICAgICAgIGV2YWwg JDE9XCJgJEVDSE8gJDIgfCAkU0VEIC1lICdzLzo6LiovLycgLWUgJ3MvOi8gL2cnYFwgXCQkMVwi Ci0rICAgICAgICA7OwotKyAgICAqKQotKyAgICAgICAgZXZhbCAkMT1cImAkRUNITyAkMiB8ICRT RUQgJ3MvOi8gL2cnYFwiCi0rICAgICAgICA7OwotKyAgICBlc2FjCi0rfQotKwotKwotKyMgQ2Fs Y3VsYXRlIGNjX2Jhc2VuYW1lLiAgU2tpcCBrbm93biBjb21waWxlciB3cmFwcGVycyBhbmQgY3Jv c3MtcHJlZml4LgotK2Z1bmNfY2NfYmFzZW5hbWUgKCkKLSt7Ci0rICAgIGZvciBjY190ZW1wIGlu ICQqIiI7IGRvCi0rICAgICAgY2FzZSAkY2NfdGVtcCBpbgotKyAgICAgICAgY29tcGlsZSB8ICpb XFwvXWNvbXBpbGUgfCBjY2FjaGUgfCAqW1xcL11jY2FjaGUgKSA7OwotKyAgICAgICAgZGlzdGNj IHwgKltcXC9dZGlzdGNjIHwgcHVyaWZ5IHwgKltcXC9dcHVyaWZ5ICkgOzsKLSsgICAgICAgIFwt KikgOzsKLSsgICAgICAgICopIGJyZWFrOzsKLSsgICAgICBlc2FjCi0rICAgIGRvbmUKLSsgICAg ZnVuY19jY19iYXNlbmFtZV9yZXN1bHQ9YCRFQ0hPICIkY2NfdGVtcCIgfCAkU0VEICJzJS4qLyUl OyBzJV4kaG9zdF9hbGlhcy0lJSJgCi0rfQotKwotKwotKyMgIyMjIEVORCBGVU5DVElPTlMgU0hB UkVEIFdJVEggQ09ORklHVVJFCi0rCi0rX0xUX0VPRgotKwotKyAgY2FzZSAkaG9zdF9vcyBpbgot KyAgYWl4MyopCi0rICAgIGNhdCA8PFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKLSsjIEFJWCBzb21l dGltZXMgaGFzIHByb2JsZW1zIHdpdGggdGhlIEdDQyBjb2xsZWN0MiBwcm9ncmFtLiAgRm9yIHNv bWUKLSsjIHJlYXNvbiwgaWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVTIGVudmlyb25tZW50IHZh cmlhYmxlLCB0aGUgcHJvYmxlbXMKLSsjIHZhbmlzaCBpbiBhIHB1ZmYgb2Ygc21va2UuCi0raWYg dGVzdCBzZXQgIT0gIiR7Q09MTEVDVF9OQU1FUytzZXR9IjsgdGhlbgotKyAgQ09MTEVDVF9OQU1F Uz0KLSsgIGV4cG9ydCBDT0xMRUNUX05BTUVTCi0rZmkKLStfTFRfRU9GCi0rICAgIDs7Ci0rICBl c2FjCi0rCi0rCi0rbHRtYWluPSRhY19hdXhfZGlyL2x0bWFpbi5zaAotKwotKwotKyAgIyBXZSB1 c2Ugc2VkIGluc3RlYWQgb2YgY2F0IGJlY2F1c2UgYmFzaCBvbiBESkdQUCBnZXRzIGNvbmZ1c2Vk IGlmCi0rICAjIGlmIGZpbmRzIG1peGVkIENSL0xGIGFuZCBMRi1vbmx5IGxpbmVzLiAgU2luY2Ug c2VkIG9wZXJhdGVzIGluCi0rICAjIHRleHQgbW9kZSwgaXQgcHJvcGVybHkgY29udmVydHMgbGlu ZXMgdG8gQ1IvTEYuICBUaGlzIGJhc2ggcHJvYmxlbQotKyAgIyBpcyByZXBvcnRlZGx5IGZpeGVk LCBidXQgd2h5IG5vdCBydW4gb24gb2xkIHZlcnNpb25zIHRvbz8KLSsgIHNlZCAnJHEnICIkbHRt YWluIiA+PiAiJGNmZ2ZpbGUiIFwKLSsgICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiOyBleGl0IDEp Ci0rCi0rICAgbXYgLWYgIiRjZmdmaWxlIiAiJG9maWxlIiB8fAotKyAgICAocm0gLWYgIiRvZmls ZSIgJiYgY3AgIiRjZmdmaWxlIiAiJG9maWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUiKQotKyAgY2ht b2QgK3ggIiRvZmlsZSIKLSsKLSsgOzsKLSsKLSsgIGVzYWMKLStkb25lICMgZm9yIGFjX3RhZwot KwotKwotK2FzX2ZuX2V4aXQgMAotZGlmZiAtLWdpdCB5YWJhc2ljLmZsZXggeWFiYXNpYy5mbGV4 Ci1pbmRleCAxYTU1YmRhLi5kM2U0YmI3IDEwMDc1NQotLS0tIHlhYmFzaWMuZmxleAotKysrIHlh YmFzaWMuZmxleAotQEAgLTM3OCwyMiArMzc4LDE4IEBAIEZBTFNFIHt5eWx2YWwuZm51bT0wOyBy ZXR1cm4gdEZOVU07fQotICAgcmV0dXJuIHRTVFJTWU07Ci0gfQotIAotLVwiW15cIl0qKFwifFxu KSB7Ci0tICBpbnQgY250OwotLSAgaWYgKHl5dGV4dFt5eWxlbmctMV09PSdcbicpIHl5Y29sdW1u PTE7Ci0tICBpZiAoeXl0ZXh0W3l5bGVuZy0xXT09J1xuJyAmJiBpbl9zaG9ydF9pZikge2luX3No b3J0X2lmLS07eXlsZXNzKDApO3JldHVybiB0SU1QTElDSVRFTkRJRjt9Ci0tICBpZiAoeXl0ZXh0 W3l5bGVuZy0xXT09J1xuJykgewotK1wiW14iXSooXCJ8XG4pIHsKLSsgIGlmICh5eWxlbmc8MiB8 fCB5eXRleHRbeXlsZW5nLTFdPT0nXG4nKSB7IC8qIHVudGVybWluYXRlZCBzdHJpbmcgaGFzIHJl YWNoZWQgZW5kIG9mIGxpbmUsIHJlcG9ydCBxdWFsaWZpZWQgZXJyb3IgaW4gYmlzb24gKi8KLSsg ICAgICAgIHl5Y29sdW1uPTE7CQkgICAgICAKLSAgIAl5eWx2YWwuc3RyaW5nPU5VTEw7Ci0gICAJ cmV0dXJuIHRTVFJJTkc7Ci0tICB9Ci0tICBmb3IoY250PTA7eXl0ZXh0W3l5bGVuZy1jbnQtMl09 PSdcXCc7Y250KyspIDsKLS0gIGlmIChjbnQlMikgewotKyAgfSBlbHNlIGlmICh5eXRleHRbeXls ZW5nLTJdPT0nXFwnKSB7IC8qIGZpbmFsIHF1b3RlIHdhcyBlc2NhcGVkLCBzbyBwdXQgYWxsIHRl eHQgYmFjayBhbmQgcmVhZCBtb3JlICovCi0gICAJeXlsZXNzKHl5bGVuZy0xKTsKLSAJeXltb3Jl KCk7Ci0tICB9IGVsc2UgewotKyAgfSBlbHNlIHsgLyogcHJvcGVybHkgcXVvdGVkIHN0cmluZzsg cmVtb3ZlIHF1b3RlcyBhbmQgcmV0dXJuIGl0ICovCi0gCXl5bHZhbC5zdHJpbmc9KGNoYXIgKilt eV9zdHJkdXAoeXl0ZXh0KzEpOwotLQkqKHl5bHZhbC5zdHJpbmcreXlsZW5nLTIpPSdcMCc7Ci0t CXJlcGxhY2UoeXlsdmFsLnN0cmluZyk7Ci0rCSooeXlsdmFsLnN0cmluZytzdHJsZW4oeXlsdmFs LnN0cmluZyktMSk9J1wwJzsKLSsJcmVwbGFjZV9lc2NhcGVzKHl5bHZhbC5zdHJpbmcpOwotIAly ZXR1cm4gdFNUUklORzsKLSAgIH0KLSB9Ci1AQCAtNDkxLDcgKzQ4Nyw3IEBAIGludCBpbXBvcnRf bGliKGNoYXIgKm5hbWUpIC8qIGltcG9ydCBsaWJyYXJ5ICovCi0gICB9IAotIAotICAgaWYgKHNl dmVyaXR5X3RocmVzaG9sZCA8PSBzTk9URSkgewotLSAgICBpZiAoaXNib3VuZCkgeyAgICAgIAot KyAgICBpZiAoaXNfYm91bmQpIHsgICAgICAKLSAgICAgICBzcHJpbnRmKHN0cmluZywiaW1wb3J0 aW5nIGxpYnJhcnkgJyVzJyIsbmFtZSk7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgc3ByaW50Zihz dHJpbmcsImltcG9ydGluZyBmcm9tIGZpbGUgJyVzJyIsZnVsbCk7Ci1kaWZmIC0tZ2l0IHlhYmFz aWMuaCB5YWJhc2ljLmgKLWluZGV4IGQzYzU3OWUuLjU1OTQ3ZWQgMTAwNzU1Ci0tLS0geWFiYXNp Yy5oCi0rKysgeWFiYXNpYy5oCi1AQCAtNTM4LDcgKzUzOCw3IEBAIHZvaWQgcG9wX3N0cmVhbSAo dm9pZCk7CQkvKiBwb3Agc3RyZWFtIGZyb20gc3RhY2sgYW5kIHN3aXRjaCB0byBpdCAqLwotIHZv aWQgbXltb3ZlICgpOwkJCS8qIG1vdmUgdG8gc3BlY2lmaWMgcG9zaXRpb24gb24gc2NyZWVuICov Ci0gdm9pZCBjbGVhcnNjcmVlbiAoKTsJCS8qIGNsZWFyIGVudGlyZSBzY3JlZW4gKi8KLSBjaGFy ICppbmtleSAoZG91YmxlKTsJCS8qIGdldHMgY2hhciBmcm9tIGtleWJvYXJkLCBibG9ja3MgYW5k IGRvZXNutHQgcHJpbnQgKi8KLS1jaGFyICpyZXBsYWNlIChjaGFyICopOwkJLyogcmVwbGFjZSBc bixcYSwgZXRjLiAqLwotK2NoYXIgKnJlcGxhY2VfZXNjYXBlcyAoY2hhciAqKTsJCS8qIHJlcGxh Y2UgXG4sXGEsIGV0Yy4gKi8KLSAKLSAvKiBncmFwaGljLmMgKi8KLSB2b2lkIGNyZWF0ZV9vcGVu d2luIChpbnQpOwkvKiBjcmVhdGUgQ29tbWFuZCAnb3BlbndpbicgKi8KLS0tIAotMi4yNC4xCi0K ZGlmZiAtLWdpdCBhL3NyY3BrZ3MveWFiYXNpYy90ZW1wbGF0ZSBiL3NyY3BrZ3MveWFiYXNpYy90 ZW1wbGF0ZQppbmRleCBkMjFlZTcyZjRkYi4uMzc1MWE5YmM1NDMgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MveWFiYXNpYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3lhYmFzaWMvdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd5YWJhc2ljJwogcGtnbmFtZT15YWJhc2lj CiByZXZlcnRzPSIyLjc2OV8xIgotdmVyc2lvbj0yLjg2LjEKK3ZlcnNpb249Mi44Ni4zCiByZXZp c2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBtYWtlZGVwZW5kcz0ibGliWHQtZGV2 ZWwgbmN1cnNlcy1kZXZlbCBsaWJmZmktZGV2ZWwiCkBAIC0xMCw3ICsxMCw3IEBAIG1haW50YWlu ZXI9IkRpb2dvIExlYWwgPGRpb2dvQGRpb2dvbGVhbC5jb20+IgogbGljZW5zZT0iTUlULCBHUEwt My4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vMjQ4NC5kZS95YWJhc2ljLyIKIGRpc3Rm aWxlcz0iaHR0cHM6Ly8yNDg0LmRlL3lhYmFzaWMvZG93bmxvYWQveWFiYXNpYy0ke3ZlcnNpb259 LnRhci5neiIKLWNoZWNrc3VtPWZkOTMxNzZkZGE1OGE4MDczNzBlYjI5OTI2YzUwYTIyOWI4NTc4 OGNiZWI4MGQzNTYxZDlkNTI0ZjUwODk0MmIKK2NoZWNrc3VtPWNmZDI4MTYwOTRlMmU1NTE2OTA0 NzU1MDRlMDNmOTc2YzVkNDYxZTcyYzc1YjYzZTMwOTFiZGJkNDI5YjcxMjMKIAogZG9faW5zdGFs bCgpIHsKIAl2YmluIHlhYmFzaWMKCkZyb20gOGE1ODY0YjU0ZGYzMGZhM2Y0NWYyZGEyODQyNWQx MzlhMzk2YTUyMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogbW9iaW5tb2IgPG1vYmlu bW9iQGRpc3Jvb3Qub3JnPgpEYXRlOiBNb24sIDYgSmFuIDIwMjAgMTk6MjU6MTIgKzAyMDAKU3Vi amVjdDogW1BBVENIIDIvMl0geWFiYXNpYzogdXBkYXRlIHRvIDIuODYuNC4KCi0tLQogc3JjcGtn cy95YWJhc2ljL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MveWFiYXNpYy90ZW1wbGF0 ZSBiL3NyY3BrZ3MveWFiYXNpYy90ZW1wbGF0ZQppbmRleCAzNzUxYTliYzU0My4uZjA4MTFjZTE1 NjMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MveWFiYXNpYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3lh YmFzaWMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd5YWJh c2ljJwogcGtnbmFtZT15YWJhc2ljCiByZXZlcnRzPSIyLjc2OV8xIgotdmVyc2lvbj0yLjg2LjMK K3ZlcnNpb249Mi44Ni40CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBt YWtlZGVwZW5kcz0ibGliWHQtZGV2ZWwgbmN1cnNlcy1kZXZlbCBsaWJmZmktZGV2ZWwiCkBAIC0x MCw3ICsxMCw3IEBAIG1haW50YWluZXI9IkRpb2dvIExlYWwgPGRpb2dvQGRpb2dvbGVhbC5jb20+ IgogbGljZW5zZT0iTUlULCBHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vMjQ4 NC5kZS95YWJhc2ljLyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly8yNDg0LmRlL3lhYmFzaWMvZG93bmxv YWQveWFiYXNpYy0ke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPWNmZDI4MTYwOTRlMmU1NTE2 OTA0NzU1MDRlMDNmOTc2YzVkNDYxZTcyYzc1YjYzZTMwOTFiZGJkNDI5YjcxMjMKK2NoZWNrc3Vt PTAyODdmY2E4YmZiMzgwMDViYTcyM2UzNjE1Y2ZlYWUxOWUyNjI1YmVjODdhODdiYjAxYTAyODk3 YTMwNzA2YTkKIAogZG9faW5zdGFsbCgpIHsKIAl2YmluIHlhYmFzaWMK --===============3085438497215318512==--