From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f500.i.mail.ru (f500.i.mail.ru [217.69.138.167]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 1ACF946970E for ; Mon, 27 Jan 2020 19:13:51 +0300 (MSK) From: =?UTF-8?B?TWFyaWEgS2hheWRpY2g=?= MIME-Version: 1.0 Date: Mon, 27 Jan 2020 19:13:50 +0300 Reply-To: =?UTF-8?B?TWFyaWEgS2hheWRpY2g=?= Message-ID: <1580141630.390723821@f500.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--1019bCb3fC378DA10c64686709e82D381580141630" In-Reply-To: <616330e3-950c-7e8a-d14b-ea81fb350611@tarantool.org> References: <20200117170801.34975-1-maria.khaydich@tarantool.org> <616330e3-950c-7e8a-d14b-ea81fb350611@tarantool.org> Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH=5D_box=3A_netbox=2Eself_an?= =?utf-8?q?d_connect_should_work_interchangeably?= List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?VmxhZGlzbGF2IFNocGlsZXZveQ==?= Cc: tarantool-patches@dev.tarantool.org ----ALT--1019bCb3fC378DA10c64686709e82D381580141630 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 ClRoYW5rIHlvdSBmb3IgdGhlIHJldmlldyEgQWxsIGZpeGVzIGJlbG93CsKgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KQnJhbmNoOgpodHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9jb21wYXJl L2VsamFzaG0vZ2gtNDUxMy1uZXRib3guc2VsZi1jb252ZXJ0LXR1cGxlcy10by10YWJsZS10eXBl Cklzc3VlOgpodHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9pc3N1ZXMvNDUx MwrCoArCoHNyYy9ib3gvbHVhL25ldF9ib3gubHVhIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIHwgwqA4ICsrKy0KwqB0ZXN0L2FwcC10YXAvZGVidWcucmVzdWx0IMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIHwgwqA4ICsrLS0KwqB0ZXN0L2JveC10YXAvbmV0LmJveC50ZXN0 Lmx1YSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgMyArLQrCoHRlc3QvYm94L2VuZ2luZS5j ZmcgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoDYgKysrCsKgLi4u b3gtc2VsZi1hbmQtY29ubmVjdC1pbnRlcmNoYW5nZWFibGUucmVzdWx0IHwgNDQgKysrKysrKysr KysrKysrKysrKwrCoC4uLi1zZWxmLWFuZC1jb25uZWN0LWludGVyY2hhbmdlYWJsZS50ZXN0Lmx1 YSB8IDIwICsrKysrKysrKwrCoHRlc3QvYm94L3N1aXRlLmluaSDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwgwqAxICsKwqA3IGZpbGVzIGNoYW5nZWQsIDgzIGluc2Vy dGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCsKgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3QvYm94L2Vu Z2luZS5jZmcKwqBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC9ib3gvZ2gtNDUxMy1uZXRib3gtc2Vs Zi1hbmQtY29ubmVjdC1pbnRlcmNoYW5nZWFibGUucmVzdWx0CsKgY3JlYXRlIG1vZGUgMTAwNjQ0 IHRlc3QvYm94L2doLTQ1MTMtbmV0Ym94LXNlbGYtYW5kLWNvbm5lY3QtaW50ZXJjaGFuZ2VhYmxl LnRlc3QubHVhCmRpZmYgLS1naXQgYS9zcmMvYm94L2x1YS9uZXRfYm94Lmx1YSBiL3NyYy9ib3gv bHVhL25ldF9ib3gubHVhCmluZGV4IGI0ODExZWRmYS4uM2Y2MTFjMDI3IDEwMDY0NAotLS0gYS9z cmMvYm94L2x1YS9uZXRfYm94Lmx1YQorKysgYi9zcmMvYm94L2x1YS9uZXRfYm94Lmx1YQpAQCAt MTU1MCw3ICsxNTUwLDEzIEBAIGxvY2FsIGZ1bmN0aW9uIGhhbmRsZV9ldmFsX3Jlc3VsdChzdGF0 dXMsIC4uLikKwqAgwqAgwqAgwqAgwqByb2xsYmFjaygpCsKgIMKgIMKgIMKgIMKgcmV0dXJuIGJv eC5lcnJvcihFX1BST0NfTFVBLCAoLi4uKSkKwqAgwqAgwqBlbmQKLSDCoCDCoHJldHVybiAuLi4K KyDCoCDCoGxvY2FsIHJlc3VsdHMgPSB7Li4ufQorIMKgIMKgZm9yIGkgPSAxLCBzZWxlY3QoJyMn LCAuLi4pIGRvCisgwqAgwqAgwqAgwqBpZiB0eXBlKHJlc3VsdHNbaV0pID09ICdjZGF0YScgdGhl bgorIMKgIMKgIMKgIMKgIMKgIMKgcmVzdWx0c1tpXSA9IG1zZ3BhY2suZGVjb2RlKG1zZ3BhY2su ZW5jb2RlKHJlc3VsdHNbaV0pKQorIMKgIMKgIMKgIMKgZW5kCisgwqAgwqBlbmQKKyDCoCDCoHJl dHVybiB1bnBhY2socmVzdWx0cykKwqBlbmQKwqAKwqB0aGlzX21vZHVsZS5zZWxmID0gewpkaWZm IC0tZ2l0IGEvdGVzdC9hcHAtdGFwL2RlYnVnLnJlc3VsdCBiL3Rlc3QvYXBwLXRhcC9kZWJ1Zy5y ZXN1bHQKaW5kZXggNzI5MzRiMDc2Li5jZGM5OTAzMDcgMTAwNjQ0Ci0tLSBhL3Rlc3QvYXBwLXRh cC9kZWJ1Zy5yZXN1bHQKKysrIGIvdGVzdC9hcHAtdGFwL2RlYnVnLnJlc3VsdApAQCAtMTUsMTUg KzE1LDE1IEBAIG5pbArCoEV4ZWM6IHRhcmFudG9vbCAtZSAicHJpbnQoZGVidWcuX19kaXJfXyk7 IG9zLmV4aXQoMCkiCsKgLgrCoEV4ZWM6IHRhcmFudG9vbCAtZSAicHJpbnQocmVxdWlyZSgnbmV0 LmJveCcpLnNlbGY6Y2FsbCgnZGVidWcuc291cmNlZmlsZScpKTsgb3MuZXhpdCgwKSIKLW5pbAor CsKgRXhlYzogdGFyYW50b29sIC1lICJwcmludChyZXF1aXJlKCduZXQuYm94Jykuc2VsZjpjYWxs KCdkZWJ1Zy5zb3VyY2VkaXInKSk7IG9zLmV4aXQoMCkiCsKgLgrCoEV4ZWM6IHRhcmFudG9vbCAt ZSAiZm4gPSBmdW5jdGlvbigpIHJldHVybiBkZWJ1Zy5fX2ZpbGVfXyBlbmQ7IHByaW50KHJlcXVp cmUoJ25ldC5ib3gnKS5zZWxmOmNhbGwoJ2ZuJykpOyBvcy5leGl0KDApIgotbmlsCisKwqBFeGVj OiB0YXJhbnRvb2wgLWUgImZuID0gZnVuY3Rpb24oKSByZXR1cm4gZGVidWcuX19kaXJfXyBlbmQ7 IHByaW50KHJlcXVpcmUoJ25ldC5ib3gnKS5zZWxmOmNhbGwoJ2ZuJykpOyBvcy5leGl0KDApIgrC oC4KwqBFeGVjOiB0YXJhbnRvb2wgLWUgImZuID0gZnVuY3Rpb24oKSBsb2NhbCByZXMgPSBkZWJ1 Zy5zb3VyY2VmaWxlKCk7IHJldHVybiByZXMgZW5kOyBwcmludChyZXF1aXJlKCduZXQuYm94Jyku c2VsZjpjYWxsKCdmbicpKTsgb3MuZXhpdCgwKSIKLW5pbAorCsKgRXhlYzogdGFyYW50b29sIC1l ICJmbiA9IGZ1bmN0aW9uKCkgbG9jYWwgcmVzID0gZGVidWcuc291cmNlZGlyKCk7IHJldHVybiBy ZXMgZW5kOyBwcmludChyZXF1aXJlKCduZXQuYm94Jykuc2VsZjpjYWxsKCdmbicpKTsgb3MuZXhp dCgwKSIKwqAuCsKgRXhlYzogdGFyYW50b29sIC1lICJwcmludChsb2Fkc3RyaW5nKCdyZXR1cm4g ZGVidWcuc291cmNlZmlsZSgpJykoKSk7IG9zLmV4aXQoMCkiCkBAIC01Miw3ICs1Miw3IEBAIGRl YnVnL3Rlc3QubHVhCsKgU291cmNlOiBwcmludChkZWJ1Zy5fX2Rpcl9fKQrCoGRlYnVnCsKgU291 cmNlOiBwcmludChyZXF1aXJlKCduZXQuYm94Jykuc2VsZjpjYWxsKCdkZWJ1Zy5zb3VyY2VmaWxl JykpCi1uaWwKKwrCoFNvdXJjZTogcHJpbnQocmVxdWlyZSgnbmV0LmJveCcpLnNlbGY6Y2FsbCgn ZGVidWcuc291cmNlZGlyJykpCsKgLgrCoFNvdXJjZTogZm4gPSBmdW5jdGlvbigpIHJldHVybiBk ZWJ1Zy5fX2ZpbGVfXyBlbmQ7IHByaW50KHJlcXVpcmUoJ25ldC5ib3gnKS5zZWxmOmNhbGwoJ2Zu JykpCmRpZmYgLS1naXQgYS90ZXN0L2JveC10YXAvbmV0LmJveC50ZXN0Lmx1YSBiL3Rlc3QvYm94 LXRhcC9uZXQuYm94LnRlc3QubHVhCmluZGV4IGE0NmYyOGFkMC4uNTc3ZTk3ZDc4IDEwMDc1NQot LS0gYS90ZXN0L2JveC10YXAvbmV0LmJveC50ZXN0Lmx1YQorKysgYi90ZXN0L2JveC10YXAvbmV0 LmJveC50ZXN0Lmx1YQpAQCAtMzAsNSArMzAsNCBAQCB0ZXN0Om9rKG5vdCBwY2FsbChmdW5jdGlv bigpIGNvbm4uc3BhY2UuX3ZzcGFjZTppbnNlcnQoKSBlbmQpLCAiZXJyb3IgaGFuZGxpbmciKQrC oC0tIGNsZWFudXAKwqBjb25uOmNsb3NlKCkKwqBpbnNwZWN0b3I6Y21kKCdzdG9wIHNlcnZlciBz ZWNvbmQgd2l0aCBjbGVhbnVwPTEnKQotdGVzdDpjaGVjaygpCi1vcy5leGl0KDApCitvcy5leGl0 KHRlc3Q6Y2hlY2soKSBhbmQgMCBvciAxKQpkaWZmIC0tZ2l0IGEvdGVzdC9ib3gvZW5naW5lLmNm ZyBiL3Rlc3QvYm94L2VuZ2luZS5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwLi4yZDFkNDUwZTMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0L2JveC9lbmdpbmUuY2ZnCkBA IC0wLDAgKzEsNiBAQAoreworIMKgIMKgImdoLTQ1MTMtbmV0Ym94LXNlbGYtYW5kLWNvbm5lY3Qt aW50ZXJjaGFuZ2VhYmxlLnRlc3QubHVhIjogeworIMKgIMKgIMKgIMKgInJlbW90ZSI6IHsicmVt b3RlIjogInRydWUifSwKKyDCoCDCoCDCoCDCoCJsb2NhbCI6IHsicmVtb3RlIjogImZhbHNlIn0K KyDCoCDCoH0KK30KZGlmZiAtLWdpdCBhL3Rlc3QvYm94L2doLTQ1MTMtbmV0Ym94LXNlbGYtYW5k LWNvbm5lY3QtaW50ZXJjaGFuZ2VhYmxlLnJlc3VsdCBiL3Rlc3QvYm94L2doLTQ1MTMtbmV0Ym94 LXNlbGYtYW5kLWNvbm5lY3QtaW50ZXJjaGFuZ2VhYmxlLnJlc3VsdApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAuLjY0YmQxMjliMwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3Qv Ym94L2doLTQ1MTMtbmV0Ym94LXNlbGYtYW5kLWNvbm5lY3QtaW50ZXJjaGFuZ2VhYmxlLnJlc3Vs dApAQCAtMCwwICsxLDQ0IEBACistLSB0ZXN0LXJ1biByZXN1bHQgZmlsZSB2ZXJzaW9uIDIKK25l dGJveCA9IHJlcXVpcmUoJ25ldC5ib3gnKQorIHwgLS0tCisgfCAuLi4KK3Rlc3RfcnVuID0gcmVx dWlyZSgndGVzdF9ydW4nKS5uZXcoKQorIHwgLS0tCisgfCAuLi4KK3JlbW90ZSA9IHRlc3RfcnVu OmdldF9jZmcoJ3JlbW90ZScpID09ICd0cnVlJworIHwgLS0tCisgfCAuLi4KK3Rlc3RfcnVuOmNt ZCgic2V0b3B0IGRlbGltaXRlciAnOyciKQorIHwgLS0tCisgfCAtIHRydWUKKyB8IC4uLgorCitu YiA9IG5pbAoraWYgcmVtb3RlIHRoZW4KKyDCoCDCoGJveC5zY2hlbWEudXNlci5ncmFudCgnZ3Vl c3QnLCdzdXBlcicpCisgwqAgwqBuYiA9IG5ldGJveC5jb25uZWN0KGJveC5jZmcubGlzdGVuKQor ZWxzZQorIMKgIMKgbmIgPSBuZXRib3guc2VsZgorZW5kOworIHwgLS0tCisgfCAuLi4KKworLS0K Ky0tIG5ldGJveDpzZWxmIGFuZCBuZXRib3g6Y29ubmVjdCBzaG91bGQgd29yayBpbnRlcmNoYW5n ZWFibHkKKy0tCit0ZXN0X3J1bjpjbWQoInNldG9wdCBkZWxpbWl0ZXIgJyciKTsKKyB8IC0tLQor IHwgLSB0cnVlCisgfCAuLi4KK3R5cGUobmI6ZXZhbCgncmV0dXJuIGJveC50dXBsZS5uZXd7MX0n KSkgLS0gdGFibGUKKyB8IC0tLQorIHwgLSB0YWJsZQorIHwgLi4uCit0eXBlKG5iOmV2YWwoJ3Jl dHVybiBib3guZXJyb3IubmV3KDEsICJ0ZXN0IGVycm9yIiknKSkgLS0gc3RyaW5nCisgfCAtLS0K KyB8IC0gc3RyaW5nCisgfCAuLi4KK3R5cGUobmI6ZXZhbCgncmV0dXJuIGJveC5OVUxMJykpIC0t IGNkYXRhCisgfCAtLS0KKyB8IC0gY2RhdGEKKyB8IC4uLgpkaWZmIC0tZ2l0IGEvdGVzdC9ib3gv Z2gtNDUxMy1uZXRib3gtc2VsZi1hbmQtY29ubmVjdC1pbnRlcmNoYW5nZWFibGUudGVzdC5sdWEg Yi90ZXN0L2JveC9naC00NTEzLW5ldGJveC1zZWxmLWFuZC1jb25uZWN0LWludGVyY2hhbmdlYWJs ZS50ZXN0Lmx1YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjVlOGFlNzQ2 NQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3QvYm94L2doLTQ1MTMtbmV0Ym94LXNlbGYtYW5kLWNv bm5lY3QtaW50ZXJjaGFuZ2VhYmxlLnRlc3QubHVhCkBAIC0wLDAgKzEsMjAgQEAKK25ldGJveCA9 IHJlcXVpcmUoJ25ldC5ib3gnKQordGVzdF9ydW4gPSByZXF1aXJlKCd0ZXN0X3J1bicpLm5ldygp CityZW1vdGUgPSB0ZXN0X3J1bjpnZXRfY2ZnKCdyZW1vdGUnKSA9PSAndHJ1ZScKK3Rlc3RfcnVu OmNtZCgic2V0b3B0IGRlbGltaXRlciAnOyciKQorCituYiA9IG5pbAoraWYgcmVtb3RlIHRoZW4K KyDCoCDCoGJveC5zY2hlbWEudXNlci5ncmFudCgnZ3Vlc3QnLCdzdXBlcicpCisgwqAgwqBuYiA9 IG5ldGJveC5jb25uZWN0KGJveC5jZmcubGlzdGVuKQorZWxzZQorIMKgIMKgbmIgPSBuZXRib3gu c2VsZgorZW5kOworCistLQorLS0gbmV0Ym94OnNlbGYgYW5kIG5ldGJveDpjb25uZWN0IHNob3Vs ZCB3b3JrIGludGVyY2hhbmdlYWJseQorLS0KK3Rlc3RfcnVuOmNtZCgic2V0b3B0IGRlbGltaXRl ciAnJyIpOwordHlwZShuYjpldmFsKCdyZXR1cm4gYm94LnR1cGxlLm5ld3sxfScpKSAtLSB0YWJs ZQordHlwZShuYjpldmFsKCdyZXR1cm4gYm94LmVycm9yLm5ldygxLCAidGVzdCBlcnJvciIpJykp IC0tIHN0cmluZwordHlwZShuYjpldmFsKCdyZXR1cm4gYm94Lk5VTEwnKSkgLS0gY2RhdGEKZGlm ZiAtLWdpdCBhL3Rlc3QvYm94L3N1aXRlLmluaSBiL3Rlc3QvYm94L3N1aXRlLmluaQppbmRleCA5 YWEzMGVkZTYuLjAxZjA3MjM2YiAxMDA2NDQKLS0tIGEvdGVzdC9ib3gvc3VpdGUuaW5pCisrKyBi L3Rlc3QvYm94L3N1aXRlLmluaQpAQCAtMyw2ICszLDcgQEAgY29yZSA9IHRhcmFudG9vbArCoGRl c2NyaXB0aW9uID0gRGF0YWJhc2UgdGVzdHMKwqBzY3JpcHQgPSBib3gubHVhCsKgZGlzYWJsZWQg PSBydHJlZV9lcnJpbmoudGVzdC5sdWEgdHVwbGVfYmVuY2gudGVzdC5sdWEKK2NvbmZpZyA9IGVu Z2luZS5jZmcKwqByZWxlYXNlX2Rpc2FibGVkID0gZXJyaW5qLnRlc3QubHVhIGVycmlual9pbmRl eC50ZXN0Lmx1YSBydHJlZV9lcnJpbmoudGVzdC5sdWEgdXBzZXJ0X2Vycmluai50ZXN0Lmx1YSBp cHJvdG9fc3RyZXNzLnRlc3QubHVhIGdoLTQ2NDgtZnVuYy1sb2FkLXVubG9hZC50ZXN0Lmx1YQrC oGx1YV9saWJzID0gbHVhL2ZpZm8ubHVhIGx1YS91dGlscy5sdWEgbHVhL2JpdHNldC5sdWEgbHVh L2luZGV4X3JhbmRvbV90ZXN0Lmx1YSBsdWEvcHVzaC5sdWEgbHVhL2lkZW50aWZpZXIubHVhCsKg dXNlX3VuaXhfc29ja2V0cyA9IFRydWUKLS3CoAoyLjI0LjAgCj7QktGC0L7RgNC90LjQuiwgMjEg 0Y/QvdCy0LDRgNGPIDIwMjAsIDA6MjIgKzAzOjAwINC+0YIgVmxhZGlzbGF2IFNocGlsZXZveSA8 di5zaHBpbGV2b3lAdGFyYW50b29sLm9yZz46Cj7CoAo+SGkhIFRoYW5rcyBmb3IgdGhlIHBhdGNo IQo+Cj5TZWUgMyBjb21tZW50cyBiZWxvdy4KPgo+T24gMTcvMDEvMjAyMCAxODowOCwgTWFyaWEg d3JvdGU6Cj4+IERlc3BpdGUgd2hhdCB3YXMgc3RhdGVkIGluIHRoZSBkb2N1bWVudGF0aW9uLCBu ZXRib3guY29ubmVjdCB3YXMgbm90IGFsd2F5cwo+PiBlcXVpdmFsZW50IHRvIG5ldGJveC5zZWxm LiBJbiBwYXJ0aWN1bGFyLCB0aGV5IGNvbnZlcnRlZCB0dXBsZSB0byBkaWZmZXJlbnQKPj4gdHlw ZXMgLSB0YWJsZSBhbmQgY2RhdGEgcmVzcGVjdGl2ZWx5Lgo+Pgo+PiBUaGUgcGF0Y2ggZml4ZXMg dGhlIGlzc3VlIGFuZCBjb3ZlcnMgYWxsIGNhc2VzIHdoZXJlIG5ldGJveC5zZWxmIGFuZCBjb25u ZWN0Cj4+IHBlcmZvcm0gY29udmVyc2lvbiBvZiB0eXBlcyAtIGUuZy4sIGZvciBib3guZXJyb3Iu Cj4+Cj4+IENsb3NlcyAjNDUxMwo+PiAtLS0KPj4gQnJhbmNoOgo+PiAgaHR0cHM6Ly9naXRodWIu Y29tL3RhcmFudG9vbC90YXJhbnRvb2wvY29tcGFyZS9lbGphc2htL2doLTQ1MTMtbmV0Ym94LnNl bGYtY29udmVydC10dXBsZXMtdG8tdGFibGUtdHlwZQo+PiBJc3N1ZToKPj4gIGh0dHBzOi8vZ2l0 aHViLmNvbS90YXJhbnRvb2wvdGFyYW50b29sL2lzc3Vlcy80NTEzCj4+Cj4+IHNyYy9ib3gvbHVh L25ldF9ib3gubHVhIHwgMTAgKysrKysrKystCj4+IHRlc3QvYXBwLXRhcC9kZWJ1Zy5yZXN1bHQg fCA4ICsrKy0tLS0KPj4gdGVzdC9ib3gtdGFwL25ldC5ib3gudGVzdC5sdWEgfCAzOSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLQo+PiAzIGZpbGVzIGNoYW5nZWQsIDQ5IGluc2Vy dGlvbnMoKyksIDggZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9zcmMvYm94L2x1YS9u ZXRfYm94Lmx1YSBiL3NyYy9ib3gvbHVhL25ldF9ib3gubHVhCj4+IGluZGV4IGI0ODExZWRmYS4u NDdhYzcyYjgwIDEwMDY0NAo+PiAtLS0gYS9zcmMvYm94L2x1YS9uZXRfYm94Lmx1YQo+PiArKysg Yi9zcmMvYm94L2x1YS9uZXRfYm94Lmx1YQo+PiBAQCAtMTU1MCw3ICsxNTUwLDE1IEBAIGxvY2Fs IGZ1bmN0aW9uIGhhbmRsZV9ldmFsX3Jlc3VsdChzdGF0dXMsIC4uLikKPj4gcm9sbGJhY2soKQo+ PiByZXR1cm4gYm94LmVycm9yKEVfUFJPQ19MVUEsICguLi4pKQo+PiBlbmQKPj4gLSByZXR1cm4g Li4uCj4+ICsKPj4gKyBsb2NhbCByZXN1bHRzID0gey4uLn0KPj4gKyBmb3IgaSA9IDAsIHNlbGVj dCgnIycsIHJlc3VsdHMpIGRvCj4+ICsgaWYgdHlwZShyZXN1bHRzW2ldKSA9PSAnY2RhdGEnIHRo ZW4KPj4gKyByZXN1bHRzW2ldID0gbXNncGFjay5kZWNvZGUobXNncGFjay5lbmNvZGUocmVzdWx0 c1tpXSkpCj4+ICsgZW5kCj4+ICsgZW5kCj4+ICsKPgo+MS4gVGhpcyBsaW5lIGNvbnRhaW5zIG9u bHkgd2hpdGVzcGFjZXMuIFBsZWFzZSwgZHJvcCBpdC4KPgo+PiArIHJldHVybiB1bnBhY2socmVz dWx0cykKPj4gZW5kCj4KPjIuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmssIGlmIEkgcGFzcyBhIGNk YXRhIG9iamVjdCBpbiBhbnkKPnJldHVybmVkIHZhbHVlIGV4Y2VwdCBmaXJzdC4KPgo+dGFyYW50 b29sPiBuZXRib3ggPSByZXF1aXJlKCduZXQuYm94JykKPi0tLQo+Li4uCj4KPnRhcmFudG9vbD4g YSwgYiA9IG5ldGJveC5zZWxmOmV2YWwoJ3JldHVybiAxLCBib3gudHVwbGUubmV3KHsyfSknKQo+ LS0tCj4uLi4KPgo+dGFyYW50b29sPiB0eXBlKGIpCj4tLS0KPi0gY2RhdGEKPi4uLgo+Cj5UaGlz IGlzIGJlY2F1c2UKPgo+MSkgSW4gTHVhIGluZGV4ZXMgc3RhcnQgZnJvbSAxLiBZb3Ugc3RhcnQg dGhlIGxvb3AgZnJvbSAwLgo+Cj4yKSAnc2VsZWN0KCcjJywgey4uLn0pIGlzIGFsd2F5cyBvbmUu IEJlY2F1c2UgJ3NlbGVjdCgnIycsIC4uLiknCj7CoMKgcmV0dXJucyBudW1iZXIgb2YgdGhlIGFy Z3VtZW50cyBzdGFydGluZyBmcm9tIHRoZSBzZWNvbmQuIEluCj7CoMKgeW91ciBjYXNlIHlvdSBw YXNzZWQgb25lIGFyZ3VtZW50IC0gYSB0YWJsZSB7Li4ufS4KPsKgwqBZb3Ugc2hvdWxkIHVzZSAn c2VsZWN0KCcjJywgLi4uKScgdG8gZ2V0IHRoZSBlbGVtZW50IGNvdW50Lgo+wqDCoE5vdGUsIHlv dSBjYW4ndCB1c2UgI3Jlc3VsdHMsIGJlY2F1c2UgaXQgd2lsbCByZXR1cm4gYW4gaW5jb3JyZWN0 Cj7CoMKgdmFsdWUgaW4gY2FzZSAnLi4uJyBjb250YWlucyBhIG5pbC4KPgo+PiBkaWZmIC0tZ2l0 IGEvdGVzdC9ib3gtdGFwL25ldC5ib3gudGVzdC5sdWEgYi90ZXN0L2JveC10YXAvbmV0LmJveC50 ZXN0Lmx1YQo+PiBpbmRleCBhNDZmMjhhZDAuLmZlZmJlN2ZmNyAxMDA3NTUKPj4gLS0tIGEvdGVz dC9ib3gtdGFwL25ldC5ib3gudGVzdC5sdWEKPj4gKysrIGIvdGVzdC9ib3gtdGFwL25ldC5ib3gu dGVzdC5sdWEKPj4gQEAgLTcsNyArNyw3IEBAIGxvY2FsIG5ldF9ib3ggPSByZXF1aXJlKCduZXQu Ym94JykKPj4gbG9jYWwgdGVzdF9ydW4gPSByZXF1aXJlKCd0ZXN0X3J1bicpCj4+IGxvY2FsIGlu c3BlY3RvciA9IHRlc3RfcnVuLm5ldygpCj4+Cj4+IC10ZXN0OnBsYW4oNSkKPj4gK3Rlc3Q6cGxh bigxMSkKPj4KPj4gLS0gY3JlYXRlIHRhcmFudG9vbCBpbnN0YW5jZQo+PiB0ZXN0OmlzKAo+PiBA QCAtMjcsOCArMjcsNDEgQEAgdGVzdDppcyhjb25uLnNwYWNlIH49IG5pbCwgdHJ1ZSwgJ3NwYWNl IGV4aXN0cycpCj4+IC0tIGdoLTE4MTQ6IFNlZ2ZhdWx0IGlmIHVzaW5nIGBuZXQuYm94YCBiZWZv cmUgYGJveC5jZmdgIHN0YXJ0Cj4+IHRlc3Q6b2sobm90IHBjYWxsKGZ1bmN0aW9uKCkgY29ubi5z cGFjZS5fdnNwYWNlOmluc2VydCgpIGVuZCksICJlcnJvciBoYW5kbGluZyIpCj4+Cj4+ICstLQo+ PiArLS0gZ2gtNDUxMyBuZXRib3guY29ubmVjdCBhbmQgbmV0Ym94LnNlbGYgc2hvdWxkIGJlIGlu dGVyY2hhbmdlYWJsZQo+PiArLS0KPj4gK2JveC5jZmd7Cj4+ICsgbGlzdGVuID0gb3MuZ2V0ZW52 KCdMSVNURU4nKQo+PiArfQo+Cj4zLiBJIGRvbid0IHRoaW5rIHRhcCBpcyBhIGdvb2QgZW5naW5l IGZvciBzdWNoIGEgdGVzdC4gQnV0IHVwIHRvCj55b3UuIFdoYXQgaXMgbW9yZSBpbXBvcnRhbnQg aXMgdGhhdAo+Cj4xKSBJZiB5b3UgdXNlIHRhcCwgdGhlbiB5b3Ugc2hvdWxkIGRlY2xhcmUgdmFy aWFibGVzIHByb3Blcmx5LAo+dXNpbmcgJ2xvY2FsJyBwcmVmaXguIEJlbG93IHlvdSBzb21ldGlt ZXMgdXNlIGxvY2FsLCBzb21ldGltZXMKPm5vdC4gV2UgbmVlZCBhdCBsZWFzdCB0byBiZSBjb25z aXN0ZW50LiBFaXRoZXIgbG9jYWwgaXMgZXZlcnl3aGVyZSwKPm9yIG5vd2hlcmUuCj4KPjIpIFlv dSBkb24ndCByZWFsbHkgbmVlZCBzcGFjZXMgdG8gY3JlYXRlIGFuZCB0ZXN0IHJldHVybiBvZiBh Cj50dXBsZS4gVGhlcmUgaXMgJ2JveC50dXBsZS5uZXcnIGZ1bmN0aW9uIGZvciB0aGF0LiBKRllJ LCB1cCB0byB5b3UKPndoZXRoZXIgeW91IHdhbnQgdG8gdXNlIGl0IGFuZCBkcm9wIHRoZXNlIHNw YWNlL2luZGV4IHRoaW5ncy4KPgo+MykgVG8gbWFrZSB0aGUgdGVzdCBzaW1wbGVyIHlvdSBjYW4g dXNlIHRoZSBzYW1lIHdoYXQgd2UgZGlkIGZvcgo+c3FsL2JpbmQudGVzdC5sdWEuIEl0IGlzIHJ1 biAyIHRpbWVzIHdpdGggZGlmZmVyZW50IGNvbmZpZ3VyYXRpb24KPm9wdGlvbiAncmVtb3RlJyB2 YWx1ZXM6IHRydWUgYW5kIGZhbHNlLiBXaGVuIHRoZSB0ZXN0IGlzIHN0YXJ0ZWQKPndpdGggcmVt b3RlIHRydWUsIHdlIHVzZSBuZXRib3guY29ubmVjdCgpLiBXaGVuIHRoZSB0ZXN0IGlzIHN0YXJ0 ZWQKPndpdGggcmVtb3RlIGZhbHNlLCB3ZSB1c2UgYSBsb2NhbCBmdW5jdGlvbi4gWW91IGNhbiBk byB0aGUgc2FtZQo+aGVyZS4gSW4gdGhlIGJlZ2lubmluZyB5b3UgZG8gc29tZXRoaW5nIGxpa2Ug dGhpczoKPgo+cmVtb3RlID0gdGVzdF9ydW46Z2V0X2NmZygncmVtb3RlJykgPT0gJ3RydWUnCj5u YiA9IG5pbAo+aWYgcmVtb3RlIHRoZW4gXAo+Ym94LnNjaGVtYS51c2VyLmdyYW50KCdndWVzdCcs J3N1cGVyJykgXAo+bmIgPSBuZXRib3guY29ubmVjdChib3guY2ZnLmxpc3RlbikgXAo+ZWxzZSBc Cj5uYiA9IG5ldGJveC5zZWxmIFwKPmVuZAo+Cj5UaGVuIHlvdSB1c2UgYW5kIHRlc3QgJ25iLmNh bGwvZXZhbCcuIFRlc3QtcnVuIHdpbGwgcnVuIHlvdXIgdGVzdCAyCj50aW1lcyB3aXRoIHJlbW90 ZSB0cnVlIGFuZCByZW1vdGUgZmFsc2UsIHNvIHlvdSB3aWxsIGNvdmVyIGJvdGggcmVtb3RlCj5h bmQgbG9jYWwgbmV0Ym94IGluc3RhbmNlcyBpbiBvbmUgdGVzdC4gSW5zdGVhZCBvZiBkdXBsaWNh dGluZyBlYWNoCj50ZXN0IGxpa2UgeW91IGRpZCBiZWxvdy4KPgo+c3FsL2JpbmQudGVzdC5sdWEg Y2hvb3NlcyAncmVtb3RlJyB2YWx1ZXMgaW4gc3FsL2VuZ2luZS5jZmcgZmlsZSwKPndoaWNoIGlz IHNwZWNpZmllZCBpbiBzcWwvc3VpdGUuaW5pLiBZb3UgbmVlZCB0byBkbyBzb21ldGhpbmcgc2lt aWxhci4KPkFuZCBJIGd1ZXNzIGluIGEgc2VwYXJhdGUgZmlsZSwgc2luY2UgaXQgaXMgb3VyIHBv bGljeSwgYW5kIGJlY2F1c2UKPnRoZXJlIGFyZSBubyBvdGhlciBjb21tb24gbmV0Ym94IHRlc3Qg ZmlsZXMgd2hpY2ggbmVlZCB0byBiZSBydW4gdHdpY2UuCj4KPj4gKwo+PiArc3BhY2UgPSBib3gu c2NoZW1hLnNwYWNlLmNyZWF0ZSgnZ2g0NTEzJykKPj4gK2JveC5zY2hlbWEudXNlci5ncmFudCgn Z3Vlc3QnLCdyZWFkLCB3cml0ZSwgZXhlY3V0ZScsJ3VuaXZlcnNlJykKPj4gK2lkeCA9IGJveC5z cGFjZS5naDQ1MTM6Y3JlYXRlX2luZGV4KCdwcmltYXJ5JykKPj4gK2JveC5zcGFjZS5naDQ1MTM6 aW5zZXJ0KHsxfSkKPj4gKwo+PiArbG9jYWwgZHN0ID0gYm94LmNmZy5saXN0ZW4KPj4gK2xvY2Fs IHQxID0gdHlwZShuZXRfYm94LmNvbm5lY3QoZHN0KTpldmFsKCJyZXR1cm4gYm94LnNwYWNlLmdo NDUxMzpnZXQoezF9KSIpKQo+PiArbG9jYWwgdDIgPSB0eXBlKG5ldF9ib3guc2VsZjpldmFsKCJy ZXR1cm4gYm94LnNwYWNlLmdoNDUxMzpnZXR7MX0iKSkKPj4gKwo+PiArLS0gY29ubmVjdCBhbmQg c2VsZiBzaG91bGQgY29udmVydCB0dXBsZXMgdG8gdGFibGVzCj4+ICt0ZXN0OmlzKHQxLCAidGFi bGUiLCAiY29ubmVjdCBjb252ZXJ0cyB0byB0YWJsZSIpCj4+ICt0ZXN0OmlzKHQyLCAidGFibGUi LCAic2VsZiBjb252ZXJ0IHRvIHRhYmxlIikKPj4gKwo+PiArdDEgPSB0eXBlKG5ldF9ib3guY29u bmVjdChkc3QpOmV2YWwoInJldHVybiBib3guZXJyb3IubmV3KDEsICd0ZXN0IGVycm9yJykiKSkK Pj4gK3QyID0gdHlwZShuZXRfYm94LnNlbGY6ZXZhbCgicmV0dXJuIGJveC5lcnJvci5uZXcoMSwg J3Rlc3QgZXJyb3InKSIpKQo+PiArCj4+ICstLSBjaGVjayBmb3IgY29udmVydGluZyBzdHJpbmdz Cj4+ICt0ZXN0OmlzKHQxLCAic3RyaW5nIiwgImNvbm5lY3QgY29udmVydHMgdG8gc3RyaW5ncyIp Cj4+ICt0ZXN0OmlzKHQyLCAic3RyaW5nIiwgInNlbGYgY29udmVydHMgdG8gc3RyaW5ncyIpCj4+ ICsKPj4gK3QxID0gdHlwZShuZXRfYm94LmNvbm5lY3QoZHN0KTpldmFsKCJyZXR1cm4gYm94Lk5V TEwiKSkKPj4gK3QyID0gdHlwZShuZXRfYm94LnNlbGY6ZXZhbCgicmV0dXJuIGJveC5OVUxMIikp Cj4+ICsKPj4gKy0tIGNoZWNrIGZvciBjb252ZXJ0aW5nIGNkYXRhCj4+ICt0ZXN0OmlzKHQxLCAi Y2RhdGEiLCAiY29ubmVjdCBjb252ZXJ0cyB0byBjZGF0YSIpCj4+ICt0ZXN0OmlzKHQyLCAiY2Rh dGEiLCAic2VsZiBjb252ZXJ0cyB0byBjZGF0YSIpCj4+ICsKPj4gLS0gY2xlYW51cAo+PiBjb25u OmNsb3NlKCkKPj4gaW5zcGVjdG9yOmNtZCgnc3RvcCBzZXJ2ZXIgc2Vjb25kIHdpdGggY2xlYW51 cD0xJykKPj4gLXRlc3Q6Y2hlY2soKQo+PiAtb3MuZXhpdCgwKQo+PiArb3MuZXhpdCh0ZXN0OmNo ZWNrKCkgYW5kIDAgb3IgMSkKPj4gCsKgCsKgCi0tCk1hcmlhIEtoYXlkaWNoCsKg ----ALT--1019bCb3fC378DA10c64686709e82D381580141630 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+PGRpdj5UaGFuayB5b3UgZm9yIHRoZSByZXZpZXchIEFsbCBmaXhl cyBiZWxvdzwvZGl2PjxkaXY+Jm5ic3A7PC9kaXY+PGhyPjxkaXY+QnJhbmNoOjxicj48YSBocmVm PSJodHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9jb21wYXJlL2VsamFzaG0v Z2gtNDUxMy1uZXRib3guc2VsZi1jb252ZXJ0LXR1cGxlcy10by10YWJsZS10eXBlIiB0YXJnZXQ9 Il9ibGFuayI+aHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvY29tcGFyZS9l bGphc2htL2doLTQ1MTMtbmV0Ym94LnNlbGYtY29udmVydC10dXBsZXMtdG8tdGFibGUtdHlwZTwv YT48YnI+SXNzdWU6PGJyPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wvdGFy YW50b29sL2lzc3Vlcy80NTEzIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9naXRodWIuY29tL3Rh cmFudG9vbC90YXJhbnRvb2wvaXNzdWVzLzQ1MTM8L2E+PC9kaXY+PGRpdj4mbmJzcDs8L2Rpdj48 ZGl2PjxkaXY+Jm5ic3A7c3JjL2JveC9sdWEvbmV0X2JveC5sdWEgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyB8ICZuYnNwOzggKysrLTxicj4mbmJzcDt0ZXN0L2FwcC10YXAvZGVidWcucmVzdWx0ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyB8ICZuYnNwOzggKystLTxicj4mbmJzcDt0ZXN0L2JveC10YXAvbmV0LmJveC50ZXN0 Lmx1YSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7IHwgJm5ic3A7MyArLTxicj4mbmJzcDt0ZXN0L2JveC9lbmdpbmUuY2ZnICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB8ICZuYnNwOzYgKysrPGJyPiZuYnNwOy4uLm94LXNlbGYt YW5kLWNvbm5lY3QtaW50ZXJjaGFuZ2VhYmxlLnJlc3VsdCB8IDQ0ICsrKysrKysrKysrKysrKysr Kys8YnI+Jm5ic3A7Li4uLXNlbGYtYW5kLWNvbm5lY3QtaW50ZXJjaGFuZ2VhYmxlLnRlc3QubHVh IHwgMjAgKysrKysrKysrPGJyPiZuYnNwO3Rlc3QvYm94L3N1aXRlLmluaSAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7fCAmbmJzcDsxICs8YnI+Jm5ic3A7NyBmaWxlcyBj aGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKTxicj4mbmJzcDtjcmVhdGUg bW9kZSAxMDA2NDQgdGVzdC9ib3gvZW5naW5lLmNmZzxicj4mbmJzcDtjcmVhdGUgbW9kZSAxMDA2 NDQgdGVzdC9ib3gvZ2gtNDUxMy1uZXRib3gtc2VsZi1hbmQtY29ubmVjdC1pbnRlcmNoYW5nZWFi bGUucmVzdWx0PGJyPiZuYnNwO2NyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2JveC9naC00NTEzLW5l dGJveC1zZWxmLWFuZC1jb25uZWN0LWludGVyY2hhbmdlYWJsZS50ZXN0Lmx1YTwvZGl2PjxkaXY+ ZGlmZiAtLWdpdCBhL3NyYy9ib3gvbHVhL25ldF9ib3gubHVhIGIvc3JjL2JveC9sdWEvbmV0X2Jv eC5sdWE8YnI+aW5kZXggYjQ4MTFlZGZhLi4zZjYxMWMwMjcgMTAwNjQ0PGJyPi0tLSBhL3NyYy9i b3gvbHVhL25ldF9ib3gubHVhPGJyPisrKyBiL3NyYy9ib3gvbHVhL25ldF9ib3gubHVhPGJyPkBA IC0xNTUwLDcgKzE1NTAsMTMgQEAgbG9jYWwgZnVuY3Rpb24gaGFuZGxlX2V2YWxfcmVzdWx0KHN0 YXR1cywgLi4uKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cm9sbGJhY2so KTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuIGJveC5lcnJvcihF X1BST0NfTFVBLCAoLi4uKSk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDtlbmQ8YnI+LSAmbmJzcDsg Jm5ic3A7cmV0dXJuIC4uLjxicj4rICZuYnNwOyAmbmJzcDtsb2NhbCByZXN1bHRzID0gey4uLn08 YnI+KyAmbmJzcDsgJm5ic3A7Zm9yIGkgPSAxLCBzZWxlY3QoJyMnLCAuLi4pIGRvPGJyPisgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgdHlwZShyZXN1bHRzW2ldKSA9PSAnY2RhdGEnIHRo ZW48YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc3VsdHNb aV0gPSBtc2dwYWNrLmRlY29kZShtc2dwYWNrLmVuY29kZShyZXN1bHRzW2ldKSk8YnI+KyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtlbmQ8YnI+KyAmbmJzcDsgJm5ic3A7ZW5kPGJyPisgJm5i c3A7ICZuYnNwO3JldHVybiB1bnBhY2socmVzdWx0cyk8YnI+Jm5ic3A7ZW5kPGJyPiZuYnNwOzxi cj4mbmJzcDt0aGlzX21vZHVsZS5zZWxmID0gezxicj5kaWZmIC0tZ2l0IGEvdGVzdC9hcHAtdGFw L2RlYnVnLnJlc3VsdCBiL3Rlc3QvYXBwLXRhcC9kZWJ1Zy5yZXN1bHQ8YnI+aW5kZXggNzI5MzRi MDc2Li5jZGM5OTAzMDcgMTAwNjQ0PGJyPi0tLSBhL3Rlc3QvYXBwLXRhcC9kZWJ1Zy5yZXN1bHQ8 YnI+KysrIGIvdGVzdC9hcHAtdGFwL2RlYnVnLnJlc3VsdDxicj5AQCAtMTUsMTUgKzE1LDE1IEBA IG5pbDxicj4mbmJzcDtFeGVjOiB0YXJhbnRvb2wgLWUgInByaW50KGRlYnVnLl9fZGlyX18pOyBv cy5leGl0KDApIjxicj4mbmJzcDsuPGJyPiZuYnNwO0V4ZWM6IHRhcmFudG9vbCAtZSAicHJpbnQo cmVxdWlyZSgnbmV0LmJveCcpLnNlbGY6Y2FsbCgnZGVidWcuc291cmNlZmlsZScpKTsgb3MuZXhp dCgwKSI8YnI+LW5pbDxicj4rPGJyPiZuYnNwO0V4ZWM6IHRhcmFudG9vbCAtZSAicHJpbnQocmVx dWlyZSgnbmV0LmJveCcpLnNlbGY6Y2FsbCgnZGVidWcuc291cmNlZGlyJykpOyBvcy5leGl0KDAp Ijxicj4mbmJzcDsuPGJyPiZuYnNwO0V4ZWM6IHRhcmFudG9vbCAtZSAiZm4gPSBmdW5jdGlvbigp IHJldHVybiBkZWJ1Zy5fX2ZpbGVfXyBlbmQ7IHByaW50KHJlcXVpcmUoJ25ldC5ib3gnKS5zZWxm OmNhbGwoJ2ZuJykpOyBvcy5leGl0KDApIjxicj4tbmlsPGJyPis8YnI+Jm5ic3A7RXhlYzogdGFy YW50b29sIC1lICJmbiA9IGZ1bmN0aW9uKCkgcmV0dXJuIGRlYnVnLl9fZGlyX18gZW5kOyBwcmlu dChyZXF1aXJlKCduZXQuYm94Jykuc2VsZjpjYWxsKCdmbicpKTsgb3MuZXhpdCgwKSI8YnI+Jm5i c3A7Ljxicj4mbmJzcDtFeGVjOiB0YXJhbnRvb2wgLWUgImZuID0gZnVuY3Rpb24oKSBsb2NhbCBy ZXMgPSBkZWJ1Zy5zb3VyY2VmaWxlKCk7IHJldHVybiByZXMgZW5kOyBwcmludChyZXF1aXJlKCdu ZXQuYm94Jykuc2VsZjpjYWxsKCdmbicpKTsgb3MuZXhpdCgwKSI8YnI+LW5pbDxicj4rPGJyPiZu YnNwO0V4ZWM6IHRhcmFudG9vbCAtZSAiZm4gPSBmdW5jdGlvbigpIGxvY2FsIHJlcyA9IGRlYnVn LnNvdXJjZWRpcigpOyByZXR1cm4gcmVzIGVuZDsgcHJpbnQocmVxdWlyZSgnbmV0LmJveCcpLnNl bGY6Y2FsbCgnZm4nKSk7IG9zLmV4aXQoMCkiPGJyPiZuYnNwOy48YnI+Jm5ic3A7RXhlYzogdGFy YW50b29sIC1lICJwcmludChsb2Fkc3RyaW5nKCdyZXR1cm4gZGVidWcuc291cmNlZmlsZSgpJyko KSk7IG9zLmV4aXQoMCkiPGJyPkBAIC01Miw3ICs1Miw3IEBAIGRlYnVnL3Rlc3QubHVhPGJyPiZu YnNwO1NvdXJjZTogcHJpbnQoZGVidWcuX19kaXJfXyk8YnI+Jm5ic3A7ZGVidWc8YnI+Jm5ic3A7 U291cmNlOiBwcmludChyZXF1aXJlKCduZXQuYm94Jykuc2VsZjpjYWxsKCdkZWJ1Zy5zb3VyY2Vm aWxlJykpPGJyPi1uaWw8YnI+Kzxicj4mbmJzcDtTb3VyY2U6IHByaW50KHJlcXVpcmUoJ25ldC5i b3gnKS5zZWxmOmNhbGwoJ2RlYnVnLnNvdXJjZWRpcicpKTxicj4mbmJzcDsuPGJyPiZuYnNwO1Nv dXJjZTogZm4gPSBmdW5jdGlvbigpIHJldHVybiBkZWJ1Zy5fX2ZpbGVfXyBlbmQ7IHByaW50KHJl cXVpcmUoJ25ldC5ib3gnKS5zZWxmOmNhbGwoJ2ZuJykpPGJyPmRpZmYgLS1naXQgYS90ZXN0L2Jv eC10YXAvbmV0LmJveC50ZXN0Lmx1YSBiL3Rlc3QvYm94LXRhcC9uZXQuYm94LnRlc3QubHVhPGJy PmluZGV4IGE0NmYyOGFkMC4uNTc3ZTk3ZDc4IDEwMDc1NTxicj4tLS0gYS90ZXN0L2JveC10YXAv bmV0LmJveC50ZXN0Lmx1YTxicj4rKysgYi90ZXN0L2JveC10YXAvbmV0LmJveC50ZXN0Lmx1YTxi cj5AQCAtMzAsNSArMzAsNCBAQCB0ZXN0Om9rKG5vdCBwY2FsbChmdW5jdGlvbigpIGNvbm4uc3Bh Y2UuX3ZzcGFjZTppbnNlcnQoKSBlbmQpLCAiZXJyb3IgaGFuZGxpbmciKTxicj4mbmJzcDstLSBj bGVhbnVwPGJyPiZuYnNwO2Nvbm46Y2xvc2UoKTxicj4mbmJzcDtpbnNwZWN0b3I6Y21kKCdzdG9w IHNlcnZlciBzZWNvbmQgd2l0aCBjbGVhbnVwPTEnKTxicj4tdGVzdDpjaGVjaygpPGJyPi1vcy5l eGl0KDApPGJyPitvcy5leGl0KHRlc3Q6Y2hlY2soKSBhbmQgMCBvciAxKTxicj5kaWZmIC0tZ2l0 IGEvdGVzdC9ib3gvZW5naW5lLmNmZyBiL3Rlc3QvYm94L2VuZ2luZS5jZmc8YnI+bmV3IGZpbGUg bW9kZSAxMDA2NDQ8YnI+aW5kZXggMDAwMDAwMDAwLi4yZDFkNDUwZTM8YnI+LS0tIC9kZXYvbnVs bDxicj4rKysgYi90ZXN0L2JveC9lbmdpbmUuY2ZnPGJyPkBAIC0wLDAgKzEsNiBAQDxicj4rezxi cj4rICZuYnNwOyAmbmJzcDsiZ2gtNDUxMy1uZXRib3gtc2VsZi1hbmQtY29ubmVjdC1pbnRlcmNo YW5nZWFibGUudGVzdC5sdWEiOiB7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7InJl bW90ZSI6IHsicmVtb3RlIjogInRydWUifSw8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsibG9jYWwiOiB7InJlbW90ZSI6ICJmYWxzZSJ9PGJyPisgJm5ic3A7ICZuYnNwO308YnI+K308 YnI+ZGlmZiAtLWdpdCBhL3Rlc3QvYm94L2doLTQ1MTMtbmV0Ym94LXNlbGYtYW5kLWNvbm5lY3Qt aW50ZXJjaGFuZ2VhYmxlLnJlc3VsdCBiL3Rlc3QvYm94L2doLTQ1MTMtbmV0Ym94LXNlbGYtYW5k LWNvbm5lY3QtaW50ZXJjaGFuZ2VhYmxlLnJlc3VsdDxicj5uZXcgZmlsZSBtb2RlIDEwMDY0NDxi cj5pbmRleCAwMDAwMDAwMDAuLjY0YmQxMjliMzxicj4tLS0gL2Rldi9udWxsPGJyPisrKyBiL3Rl c3QvYm94L2doLTQ1MTMtbmV0Ym94LXNlbGYtYW5kLWNvbm5lY3QtaW50ZXJjaGFuZ2VhYmxlLnJl c3VsdDxicj5AQCAtMCwwICsxLDQ0IEBAPGJyPistLSB0ZXN0LXJ1biByZXN1bHQgZmlsZSB2ZXJz aW9uIDI8YnI+K25ldGJveCA9IHJlcXVpcmUoJ25ldC5ib3gnKTxicj4rIHwgLS0tPGJyPisgfCAu Li48YnI+K3Rlc3RfcnVuID0gcmVxdWlyZSgndGVzdF9ydW4nKS5uZXcoKTxicj4rIHwgLS0tPGJy PisgfCAuLi48YnI+K3JlbW90ZSA9IHRlc3RfcnVuOmdldF9jZmcoJ3JlbW90ZScpID09ICd0cnVl Jzxicj4rIHwgLS0tPGJyPisgfCAuLi48YnI+K3Rlc3RfcnVuOmNtZCgic2V0b3B0IGRlbGltaXRl ciAnOyciKTxicj4rIHwgLS0tPGJyPisgfCAtIHRydWU8YnI+KyB8IC4uLjxicj4rPGJyPituYiA9 IG5pbDxicj4raWYgcmVtb3RlIHRoZW48YnI+KyAmbmJzcDsgJm5ic3A7Ym94LnNjaGVtYS51c2Vy LmdyYW50KCdndWVzdCcsJ3N1cGVyJyk8YnI+KyAmbmJzcDsgJm5ic3A7bmIgPSBuZXRib3guY29u bmVjdChib3guY2ZnLmxpc3Rlbik8YnI+K2Vsc2U8YnI+KyAmbmJzcDsgJm5ic3A7bmIgPSBuZXRi b3guc2VsZjxicj4rZW5kOzxicj4rIHwgLS0tPGJyPisgfCAuLi48YnI+Kzxicj4rLS08YnI+Ky0t IG5ldGJveDpzZWxmIGFuZCBuZXRib3g6Y29ubmVjdCBzaG91bGQgd29yayBpbnRlcmNoYW5nZWFi bHk8YnI+Ky0tPGJyPit0ZXN0X3J1bjpjbWQoInNldG9wdCBkZWxpbWl0ZXIgJyciKTs8YnI+KyB8 IC0tLTxicj4rIHwgLSB0cnVlPGJyPisgfCAuLi48YnI+K3R5cGUobmI6ZXZhbCgncmV0dXJuIGJv eC50dXBsZS5uZXd7MX0nKSkgLS0gdGFibGU8YnI+KyB8IC0tLTxicj4rIHwgLSB0YWJsZTxicj4r IHwgLi4uPGJyPit0eXBlKG5iOmV2YWwoJ3JldHVybiBib3guZXJyb3IubmV3KDEsICJ0ZXN0IGVy cm9yIiknKSkgLS0gc3RyaW5nPGJyPisgfCAtLS08YnI+KyB8IC0gc3RyaW5nPGJyPisgfCAuLi48 YnI+K3R5cGUobmI6ZXZhbCgncmV0dXJuIGJveC5OVUxMJykpIC0tIGNkYXRhPGJyPisgfCAtLS08 YnI+KyB8IC0gY2RhdGE8YnI+KyB8IC4uLjxicj5kaWZmIC0tZ2l0IGEvdGVzdC9ib3gvZ2gtNDUx My1uZXRib3gtc2VsZi1hbmQtY29ubmVjdC1pbnRlcmNoYW5nZWFibGUudGVzdC5sdWEgYi90ZXN0 L2JveC9naC00NTEzLW5ldGJveC1zZWxmLWFuZC1jb25uZWN0LWludGVyY2hhbmdlYWJsZS50ZXN0 Lmx1YTxicj5uZXcgZmlsZSBtb2RlIDEwMDY0NDxicj5pbmRleCAwMDAwMDAwMDAuLjVlOGFlNzQ2 NTxicj4tLS0gL2Rldi9udWxsPGJyPisrKyBiL3Rlc3QvYm94L2doLTQ1MTMtbmV0Ym94LXNlbGYt YW5kLWNvbm5lY3QtaW50ZXJjaGFuZ2VhYmxlLnRlc3QubHVhPGJyPkBAIC0wLDAgKzEsMjAgQEA8 YnI+K25ldGJveCA9IHJlcXVpcmUoJ25ldC5ib3gnKTxicj4rdGVzdF9ydW4gPSByZXF1aXJlKCd0 ZXN0X3J1bicpLm5ldygpPGJyPityZW1vdGUgPSB0ZXN0X3J1bjpnZXRfY2ZnKCdyZW1vdGUnKSA9 PSAndHJ1ZSc8YnI+K3Rlc3RfcnVuOmNtZCgic2V0b3B0IGRlbGltaXRlciAnOyciKTxicj4rPGJy PituYiA9IG5pbDxicj4raWYgcmVtb3RlIHRoZW48YnI+KyAmbmJzcDsgJm5ic3A7Ym94LnNjaGVt YS51c2VyLmdyYW50KCdndWVzdCcsJ3N1cGVyJyk8YnI+KyAmbmJzcDsgJm5ic3A7bmIgPSBuZXRi b3guY29ubmVjdChib3guY2ZnLmxpc3Rlbik8YnI+K2Vsc2U8YnI+KyAmbmJzcDsgJm5ic3A7bmIg PSBuZXRib3guc2VsZjxicj4rZW5kOzxicj4rPGJyPistLTxicj4rLS0gbmV0Ym94OnNlbGYgYW5k IG5ldGJveDpjb25uZWN0IHNob3VsZCB3b3JrIGludGVyY2hhbmdlYWJseTxicj4rLS08YnI+K3Rl c3RfcnVuOmNtZCgic2V0b3B0IGRlbGltaXRlciAnJyIpOzxicj4rdHlwZShuYjpldmFsKCdyZXR1 cm4gYm94LnR1cGxlLm5ld3sxfScpKSAtLSB0YWJsZTxicj4rdHlwZShuYjpldmFsKCdyZXR1cm4g Ym94LmVycm9yLm5ldygxLCAidGVzdCBlcnJvciIpJykpIC0tIHN0cmluZzxicj4rdHlwZShuYjpl dmFsKCdyZXR1cm4gYm94Lk5VTEwnKSkgLS0gY2RhdGE8YnI+ZGlmZiAtLWdpdCBhL3Rlc3QvYm94 L3N1aXRlLmluaSBiL3Rlc3QvYm94L3N1aXRlLmluaTxicj5pbmRleCA5YWEzMGVkZTYuLjAxZjA3 MjM2YiAxMDA2NDQ8YnI+LS0tIGEvdGVzdC9ib3gvc3VpdGUuaW5pPGJyPisrKyBiL3Rlc3QvYm94 L3N1aXRlLmluaTxicj5AQCAtMyw2ICszLDcgQEAgY29yZSA9IHRhcmFudG9vbDxicj4mbmJzcDtk ZXNjcmlwdGlvbiA9IERhdGFiYXNlIHRlc3RzPGJyPiZuYnNwO3NjcmlwdCA9IGJveC5sdWE8YnI+ Jm5ic3A7ZGlzYWJsZWQgPSBydHJlZV9lcnJpbmoudGVzdC5sdWEgdHVwbGVfYmVuY2gudGVzdC5s dWE8YnI+K2NvbmZpZyA9IGVuZ2luZS5jZmc8YnI+Jm5ic3A7cmVsZWFzZV9kaXNhYmxlZCA9IGVy cmluai50ZXN0Lmx1YSBlcnJpbmpfaW5kZXgudGVzdC5sdWEgcnRyZWVfZXJyaW5qLnRlc3QubHVh IHVwc2VydF9lcnJpbmoudGVzdC5sdWEgaXByb3RvX3N0cmVzcy50ZXN0Lmx1YSBnaC00NjQ4LWZ1 bmMtbG9hZC11bmxvYWQudGVzdC5sdWE8YnI+Jm5ic3A7bHVhX2xpYnMgPSBsdWEvZmlmby5sdWEg bHVhL3V0aWxzLmx1YSBsdWEvYml0c2V0Lmx1YSBsdWEvaW5kZXhfcmFuZG9tX3Rlc3QubHVhIGx1 YS9wdXNoLmx1YSBsdWEvaWRlbnRpZmllci5sdWE8YnI+Jm5ic3A7dXNlX3VuaXhfc29ja2V0cyA9 IFRydWU8YnI+LS0mbmJzcDs8YnI+Mi4yNC4wPC9kaXY+PC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9 ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAg MCAxMHB4OyI+0JLRgtC+0YDQvdC40LosIDIxINGP0L3QstCw0YDRjyAyMDIwLCAwOjIyICswMzow MCDQvtGCIFZsYWRpc2xhdiBTaHBpbGV2b3kgJmx0O3Yuc2hwaWxldm95QHRhcmFudG9vbC5vcmcm Z3Q7Ojxicj4mbmJzcDs8ZGl2IGlkPSIiPjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNn LW1zZyI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjxkaXY+PGRpdiBpZD0ic3R5bGVf MTU3OTU1NTMzNjAzMTAwMDU4MTlfQk9EWSI+SGkhIFRoYW5rcyBmb3IgdGhlIHBhdGNoITxicj48 YnI+U2VlIDMgY29tbWVudHMgYmVsb3cuPGJyPjxicj5PbiAxNy8wMS8yMDIwIDE4OjA4LCBNYXJp YSB3cm90ZTo8YnI+Jmd0OyBEZXNwaXRlIHdoYXQgd2FzIHN0YXRlZCBpbiB0aGUgZG9jdW1lbnRh dGlvbiwgbmV0Ym94LmNvbm5lY3Qgd2FzIG5vdCBhbHdheXM8YnI+Jmd0OyBlcXVpdmFsZW50IHRv IG5ldGJveC5zZWxmLiBJbiBwYXJ0aWN1bGFyLCB0aGV5IGNvbnZlcnRlZCB0dXBsZSB0byBkaWZm ZXJlbnQ8YnI+Jmd0OyB0eXBlcyAtIHRhYmxlIGFuZCBjZGF0YSByZXNwZWN0aXZlbHkuPGJyPiZn dDs8YnI+Jmd0OyBUaGUgcGF0Y2ggZml4ZXMgdGhlIGlzc3VlIGFuZCBjb3ZlcnMgYWxsIGNhc2Vz IHdoZXJlIG5ldGJveC5zZWxmIGFuZCBjb25uZWN0PGJyPiZndDsgcGVyZm9ybSBjb252ZXJzaW9u IG9mIHR5cGVzIC0gZS5nLiwgZm9yIGJveC5lcnJvci48YnI+Jmd0Ozxicj4mZ3Q7IENsb3NlcyAj NDUxMzxicj4mZ3Q7IC0tLTxicj4mZ3Q7IEJyYW5jaDo8YnI+Jmd0OyA8YSBocmVmPSJodHRwczov L2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9jb21wYXJlL2VsamFzaG0vZ2gtNDUxMy1u ZXRib3guc2VsZi1jb252ZXJ0LXR1cGxlcy10by10YWJsZS10eXBlIiB0YXJnZXQ9Il9ibGFuayI+ aHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvY29tcGFyZS9lbGphc2htL2do LTQ1MTMtbmV0Ym94LnNlbGYtY29udmVydC10dXBsZXMtdG8tdGFibGUtdHlwZTwvYT48YnI+Jmd0 OyBJc3N1ZTo8YnI+Jmd0OyA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3Rh cmFudG9vbC9pc3N1ZXMvNDUxMyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vZ2l0aHViLmNvbS90 YXJhbnRvb2wvdGFyYW50b29sL2lzc3Vlcy80NTEzPC9hPjxicj4mZ3Q7PGJyPiZndDsgc3JjL2Jv eC9sdWEvbmV0X2JveC5sdWEgfCAxMCArKysrKysrKy08YnI+Jmd0OyB0ZXN0L2FwcC10YXAvZGVi dWcucmVzdWx0IHwgOCArKystLS0tPGJyPiZndDsgdGVzdC9ib3gtdGFwL25ldC5ib3gudGVzdC5s dWEgfCAzOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLTxicj4mZ3Q7IDMgZmls ZXMgY2hhbmdlZCwgNDkgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSk8YnI+Jmd0Ozxicj4m Z3Q7IGRpZmYgLS1naXQgYS9zcmMvYm94L2x1YS9uZXRfYm94Lmx1YSBiL3NyYy9ib3gvbHVhL25l dF9ib3gubHVhPGJyPiZndDsgaW5kZXggYjQ4MTFlZGZhLi40N2FjNzJiODAgMTAwNjQ0PGJyPiZn dDsgLS0tIGEvc3JjL2JveC9sdWEvbmV0X2JveC5sdWE8YnI+Jmd0OyArKysgYi9zcmMvYm94L2x1 YS9uZXRfYm94Lmx1YTxicj4mZ3Q7IEBAIC0xNTUwLDcgKzE1NTAsMTUgQEAgbG9jYWwgZnVuY3Rp b24gaGFuZGxlX2V2YWxfcmVzdWx0KHN0YXR1cywgLi4uKTxicj4mZ3Q7IHJvbGxiYWNrKCk8YnI+ Jmd0OyByZXR1cm4gYm94LmVycm9yKEVfUFJPQ19MVUEsICguLi4pKTxicj4mZ3Q7IGVuZDxicj4m Z3Q7IC0gcmV0dXJuIC4uLjxicj4mZ3Q7ICs8YnI+Jmd0OyArIGxvY2FsIHJlc3VsdHMgPSB7Li4u fTxicj4mZ3Q7ICsgZm9yIGkgPSAwLCBzZWxlY3QoJyMnLCByZXN1bHRzKSBkbzxicj4mZ3Q7ICsg aWYgdHlwZShyZXN1bHRzW2ldKSA9PSAnY2RhdGEnIHRoZW48YnI+Jmd0OyArIHJlc3VsdHNbaV0g PSBtc2dwYWNrLmRlY29kZShtc2dwYWNrLmVuY29kZShyZXN1bHRzW2ldKSk8YnI+Jmd0OyArIGVu ZDxicj4mZ3Q7ICsgZW5kPGJyPiZndDsgKzxicj48YnI+MS4gVGhpcyBsaW5lIGNvbnRhaW5zIG9u bHkgd2hpdGVzcGFjZXMuIFBsZWFzZSwgZHJvcCBpdC48YnI+PGJyPiZndDsgKyByZXR1cm4gdW5w YWNrKHJlc3VsdHMpPGJyPiZndDsgZW5kPGJyPjxicj4yLiBUaGUgY29kZSBkb2VzIG5vdCB3b3Jr LCBpZiBJIHBhc3MgYSBjZGF0YSBvYmplY3QgaW4gYW55PGJyPnJldHVybmVkIHZhbHVlIGV4Y2Vw dCBmaXJzdC48YnI+PGJyPnRhcmFudG9vbCZndDsgbmV0Ym94ID0gcmVxdWlyZSgnbmV0LmJveCcp PGJyPi0tLTxicj4uLi48YnI+PGJyPnRhcmFudG9vbCZndDsgYSwgYiA9IG5ldGJveC5zZWxmOmV2 YWwoJ3JldHVybiAxLCBib3gudHVwbGUubmV3KHsyfSknKTxicj4tLS08YnI+Li4uPGJyPjxicj50 YXJhbnRvb2wmZ3Q7IHR5cGUoYik8YnI+LS0tPGJyPi0gY2RhdGE8YnI+Li4uPGJyPjxicj5UaGlz IGlzIGJlY2F1c2U8YnI+PGJyPjEpIEluIEx1YSBpbmRleGVzIHN0YXJ0IGZyb20gMS4gWW91IHN0 YXJ0IHRoZSBsb29wIGZyb20gMC48YnI+PGJyPjIpICdzZWxlY3QoJyMnLCB7Li4ufSkgaXMgYWx3 YXlzIG9uZS4gQmVjYXVzZSAnc2VsZWN0KCcjJywgLi4uKSc8YnI+Jm5ic3A7Jm5ic3A7cmV0dXJu cyBudW1iZXIgb2YgdGhlIGFyZ3VtZW50cyBzdGFydGluZyBmcm9tIHRoZSBzZWNvbmQuIEluPGJy PiZuYnNwOyZuYnNwO3lvdXIgY2FzZSB5b3UgcGFzc2VkIG9uZSBhcmd1bWVudCAtIGEgdGFibGUg ey4uLn0uPGJyPiZuYnNwOyZuYnNwO1lvdSBzaG91bGQgdXNlICdzZWxlY3QoJyMnLCAuLi4pJyB0 byBnZXQgdGhlIGVsZW1lbnQgY291bnQuPGJyPiZuYnNwOyZuYnNwO05vdGUsIHlvdSBjYW4ndCB1 c2UgI3Jlc3VsdHMsIGJlY2F1c2UgaXQgd2lsbCByZXR1cm4gYW4gaW5jb3JyZWN0PGJyPiZuYnNw OyZuYnNwO3ZhbHVlIGluIGNhc2UgJy4uLicgY29udGFpbnMgYSBuaWwuPGJyPjxicj4mZ3Q7IGRp ZmYgLS1naXQgYS90ZXN0L2JveC10YXAvbmV0LmJveC50ZXN0Lmx1YSBiL3Rlc3QvYm94LXRhcC9u ZXQuYm94LnRlc3QubHVhPGJyPiZndDsgaW5kZXggYTQ2ZjI4YWQwLi5mZWZiZTdmZjcgMTAwNzU1 PGJyPiZndDsgLS0tIGEvdGVzdC9ib3gtdGFwL25ldC5ib3gudGVzdC5sdWE8YnI+Jmd0OyArKysg Yi90ZXN0L2JveC10YXAvbmV0LmJveC50ZXN0Lmx1YTxicj4mZ3Q7IEBAIC03LDcgKzcsNyBAQCBs b2NhbCBuZXRfYm94ID0gcmVxdWlyZSgnbmV0LmJveCcpPGJyPiZndDsgbG9jYWwgdGVzdF9ydW4g PSByZXF1aXJlKCd0ZXN0X3J1bicpPGJyPiZndDsgbG9jYWwgaW5zcGVjdG9yID0gdGVzdF9ydW4u bmV3KCk8YnI+Jmd0Ozxicj4mZ3Q7IC10ZXN0OnBsYW4oNSk8YnI+Jmd0OyArdGVzdDpwbGFuKDEx KTxicj4mZ3Q7PGJyPiZndDsgLS0gY3JlYXRlIHRhcmFudG9vbCBpbnN0YW5jZTxicj4mZ3Q7IHRl c3Q6aXMoPGJyPiZndDsgQEAgLTI3LDggKzI3LDQxIEBAIHRlc3Q6aXMoY29ubi5zcGFjZSB+PSBu aWwsIHRydWUsICdzcGFjZSBleGlzdHMnKTxicj4mZ3Q7IC0tIGdoLTE4MTQ6IFNlZ2ZhdWx0IGlm IHVzaW5nIGBuZXQuYm94YCBiZWZvcmUgYGJveC5jZmdgIHN0YXJ0PGJyPiZndDsgdGVzdDpvayhu b3QgcGNhbGwoZnVuY3Rpb24oKSBjb25uLnNwYWNlLl92c3BhY2U6aW5zZXJ0KCkgZW5kKSwgImVy cm9yIGhhbmRsaW5nIik8YnI+Jmd0Ozxicj4mZ3Q7ICstLTxicj4mZ3Q7ICstLSBnaC00NTEzIG5l dGJveC5jb25uZWN0IGFuZCBuZXRib3guc2VsZiBzaG91bGQgYmUgaW50ZXJjaGFuZ2VhYmxlPGJy PiZndDsgKy0tPGJyPiZndDsgK2JveC5jZmd7PGJyPiZndDsgKyBsaXN0ZW4gPSBvcy5nZXRlbnYo J0xJU1RFTicpPGJyPiZndDsgK308YnI+PGJyPjMuIEkgZG9uJ3QgdGhpbmsgdGFwIGlzIGEgZ29v ZCBlbmdpbmUgZm9yIHN1Y2ggYSB0ZXN0LiBCdXQgdXAgdG88YnI+eW91LiBXaGF0IGlzIG1vcmUg aW1wb3J0YW50IGlzIHRoYXQ8YnI+PGJyPjEpIElmIHlvdSB1c2UgdGFwLCB0aGVuIHlvdSBzaG91 bGQgZGVjbGFyZSB2YXJpYWJsZXMgcHJvcGVybHksPGJyPnVzaW5nICdsb2NhbCcgcHJlZml4LiBC ZWxvdyB5b3Ugc29tZXRpbWVzIHVzZSBsb2NhbCwgc29tZXRpbWVzPGJyPm5vdC4gV2UgbmVlZCBh dCBsZWFzdCB0byBiZSBjb25zaXN0ZW50LiBFaXRoZXIgbG9jYWwgaXMgZXZlcnl3aGVyZSw8YnI+ b3Igbm93aGVyZS48YnI+PGJyPjIpIFlvdSBkb24ndCByZWFsbHkgbmVlZCBzcGFjZXMgdG8gY3Jl YXRlIGFuZCB0ZXN0IHJldHVybiBvZiBhPGJyPnR1cGxlLiBUaGVyZSBpcyAnYm94LnR1cGxlLm5l dycgZnVuY3Rpb24gZm9yIHRoYXQuIEpGWUksIHVwIHRvIHlvdTxicj53aGV0aGVyIHlvdSB3YW50 IHRvIHVzZSBpdCBhbmQgZHJvcCB0aGVzZSBzcGFjZS9pbmRleCB0aGluZ3MuPGJyPjxicj4zKSBU byBtYWtlIHRoZSB0ZXN0IHNpbXBsZXIgeW91IGNhbiB1c2UgdGhlIHNhbWUgd2hhdCB3ZSBkaWQg Zm9yPGJyPnNxbC9iaW5kLnRlc3QubHVhLiBJdCBpcyBydW4gMiB0aW1lcyB3aXRoIGRpZmZlcmVu dCBjb25maWd1cmF0aW9uPGJyPm9wdGlvbiAncmVtb3RlJyB2YWx1ZXM6IHRydWUgYW5kIGZhbHNl LiBXaGVuIHRoZSB0ZXN0IGlzIHN0YXJ0ZWQ8YnI+d2l0aCByZW1vdGUgdHJ1ZSwgd2UgdXNlIG5l dGJveC5jb25uZWN0KCkuIFdoZW4gdGhlIHRlc3QgaXMgc3RhcnRlZDxicj53aXRoIHJlbW90ZSBm YWxzZSwgd2UgdXNlIGEgbG9jYWwgZnVuY3Rpb24uIFlvdSBjYW4gZG8gdGhlIHNhbWU8YnI+aGVy ZS4gSW4gdGhlIGJlZ2lubmluZyB5b3UgZG8gc29tZXRoaW5nIGxpa2UgdGhpczo8YnI+PGJyPnJl bW90ZSA9IHRlc3RfcnVuOmdldF9jZmcoJ3JlbW90ZScpID09ICd0cnVlJzxicj5uYiA9IG5pbDxi cj5pZiByZW1vdGUgdGhlbiBcPGJyPmJveC5zY2hlbWEudXNlci5ncmFudCgnZ3Vlc3QnLCdzdXBl cicpIFw8YnI+bmIgPSBuZXRib3guY29ubmVjdChib3guY2ZnLmxpc3RlbikgXDxicj5lbHNlIFw8 YnI+bmIgPSBuZXRib3guc2VsZiBcPGJyPmVuZDxicj48YnI+VGhlbiB5b3UgdXNlIGFuZCB0ZXN0 ICduYi5jYWxsL2V2YWwnLiBUZXN0LXJ1biB3aWxsIHJ1biB5b3VyIHRlc3QgMjxicj50aW1lcyB3 aXRoIHJlbW90ZSB0cnVlIGFuZCByZW1vdGUgZmFsc2UsIHNvIHlvdSB3aWxsIGNvdmVyIGJvdGgg cmVtb3RlPGJyPmFuZCBsb2NhbCBuZXRib3ggaW5zdGFuY2VzIGluIG9uZSB0ZXN0LiBJbnN0ZWFk IG9mIGR1cGxpY2F0aW5nIGVhY2g8YnI+dGVzdCBsaWtlIHlvdSBkaWQgYmVsb3cuPGJyPjxicj5z cWwvYmluZC50ZXN0Lmx1YSBjaG9vc2VzICdyZW1vdGUnIHZhbHVlcyBpbiBzcWwvZW5naW5lLmNm ZyBmaWxlLDxicj53aGljaCBpcyBzcGVjaWZpZWQgaW4gc3FsL3N1aXRlLmluaS4gWW91IG5lZWQg dG8gZG8gc29tZXRoaW5nIHNpbWlsYXIuPGJyPkFuZCBJIGd1ZXNzIGluIGEgc2VwYXJhdGUgZmls ZSwgc2luY2UgaXQgaXMgb3VyIHBvbGljeSwgYW5kIGJlY2F1c2U8YnI+dGhlcmUgYXJlIG5vIG90 aGVyIGNvbW1vbiBuZXRib3ggdGVzdCBmaWxlcyB3aGljaCBuZWVkIHRvIGJlIHJ1biB0d2ljZS48 YnI+PGJyPiZndDsgKzxicj4mZ3Q7ICtzcGFjZSA9IGJveC5zY2hlbWEuc3BhY2UuY3JlYXRlKCdn aDQ1MTMnKTxicj4mZ3Q7ICtib3guc2NoZW1hLnVzZXIuZ3JhbnQoJ2d1ZXN0JywncmVhZCwgd3Jp dGUsIGV4ZWN1dGUnLCd1bml2ZXJzZScpPGJyPiZndDsgK2lkeCA9IGJveC5zcGFjZS5naDQ1MTM6 Y3JlYXRlX2luZGV4KCdwcmltYXJ5Jyk8YnI+Jmd0OyArYm94LnNwYWNlLmdoNDUxMzppbnNlcnQo ezF9KTxicj4mZ3Q7ICs8YnI+Jmd0OyArbG9jYWwgZHN0ID0gYm94LmNmZy5saXN0ZW48YnI+Jmd0 OyArbG9jYWwgdDEgPSB0eXBlKG5ldF9ib3guY29ubmVjdChkc3QpOmV2YWwoInJldHVybiBib3gu c3BhY2UuZ2g0NTEzOmdldCh7MX0pIikpPGJyPiZndDsgK2xvY2FsIHQyID0gdHlwZShuZXRfYm94 LnNlbGY6ZXZhbCgicmV0dXJuIGJveC5zcGFjZS5naDQ1MTM6Z2V0ezF9IikpPGJyPiZndDsgKzxi cj4mZ3Q7ICstLSBjb25uZWN0IGFuZCBzZWxmIHNob3VsZCBjb252ZXJ0IHR1cGxlcyB0byB0YWJs ZXM8YnI+Jmd0OyArdGVzdDppcyh0MSwgInRhYmxlIiwgImNvbm5lY3QgY29udmVydHMgdG8gdGFi bGUiKTxicj4mZ3Q7ICt0ZXN0OmlzKHQyLCAidGFibGUiLCAic2VsZiBjb252ZXJ0IHRvIHRhYmxl Iik8YnI+Jmd0OyArPGJyPiZndDsgK3QxID0gdHlwZShuZXRfYm94LmNvbm5lY3QoZHN0KTpldmFs KCJyZXR1cm4gYm94LmVycm9yLm5ldygxLCAndGVzdCBlcnJvcicpIikpPGJyPiZndDsgK3QyID0g dHlwZShuZXRfYm94LnNlbGY6ZXZhbCgicmV0dXJuIGJveC5lcnJvci5uZXcoMSwgJ3Rlc3QgZXJy b3InKSIpKTxicj4mZ3Q7ICs8YnI+Jmd0OyArLS0gY2hlY2sgZm9yIGNvbnZlcnRpbmcgc3RyaW5n czxicj4mZ3Q7ICt0ZXN0OmlzKHQxLCAic3RyaW5nIiwgImNvbm5lY3QgY29udmVydHMgdG8gc3Ry aW5ncyIpPGJyPiZndDsgK3Rlc3Q6aXModDIsICJzdHJpbmciLCAic2VsZiBjb252ZXJ0cyB0byBz dHJpbmdzIik8YnI+Jmd0OyArPGJyPiZndDsgK3QxID0gdHlwZShuZXRfYm94LmNvbm5lY3QoZHN0 KTpldmFsKCJyZXR1cm4gYm94Lk5VTEwiKSk8YnI+Jmd0OyArdDIgPSB0eXBlKG5ldF9ib3guc2Vs ZjpldmFsKCJyZXR1cm4gYm94Lk5VTEwiKSk8YnI+Jmd0OyArPGJyPiZndDsgKy0tIGNoZWNrIGZv ciBjb252ZXJ0aW5nIGNkYXRhPGJyPiZndDsgK3Rlc3Q6aXModDEsICJjZGF0YSIsICJjb25uZWN0 IGNvbnZlcnRzIHRvIGNkYXRhIik8YnI+Jmd0OyArdGVzdDppcyh0MiwgImNkYXRhIiwgInNlbGYg Y29udmVydHMgdG8gY2RhdGEiKTxicj4mZ3Q7ICs8YnI+Jmd0OyAtLSBjbGVhbnVwPGJyPiZndDsg Y29ubjpjbG9zZSgpPGJyPiZndDsgaW5zcGVjdG9yOmNtZCgnc3RvcCBzZXJ2ZXIgc2Vjb25kIHdp dGggY2xlYW51cD0xJyk8YnI+Jmd0OyAtdGVzdDpjaGVjaygpPGJyPiZndDsgLW9zLmV4aXQoMCk8 YnI+Jmd0OyArb3MuZXhpdCh0ZXN0OmNoZWNrKCkgYW5kIDAgb3IgMSk8YnI+Jmd0OzwvZGl2Pjwv ZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT4mbmJzcDs8ZGl2PiZuYnNwOzwvZGl2PjxkaXYg ZGF0YS1zaWduYXR1cmUtd2lkZ2V0PSJjb250YWluZXIiPjxkaXYgZGF0YS1zaWduYXR1cmUtd2lk Z2V0PSJjb250ZW50Ij48ZGl2Pi0tPGJyPk1hcmlhIEtoYXlkaWNoPC9kaXY+PC9kaXY+PC9kaXY+ PGRpdj4mbmJzcDs8L2Rpdj48L2Rpdj48L0JPRFk+PC9IVE1MPgo= ----ALT--1019bCb3fC378DA10c64686709e82D381580141630--