From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f128.i.mail.ru (f128.i.mail.ru [94.100.188.37]) (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 9B5AE46971A for ; Fri, 6 Dec 2019 19:01:28 +0300 (MSK) From: =?UTF-8?B?SWx5YSBLb3NhcmV2?= MIME-Version: 1.0 Date: Fri, 06 Dec 2019 19:01:27 +0300 Reply-To: =?UTF-8?B?SWx5YSBLb3NhcmV2?= Message-ID: <1575648087.956039140@f128.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--72PaQMFRntxQ8Rp4pNJ1k1g2fqjiELTz1575648087" In-Reply-To: References: <20191204134320.27760-1-i.kosarev@tarantool.org> Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH=5D_test=3A_fix_flaky_socke?= =?utf-8?q?t_test?= 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--72PaQMFRntxQ8Rp4pNJ1k1g2fqjiELTz1575648087 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkhpIQoKVGhhbmtzIGZvciB5b3VyIHJldmlldy4KCjQuIEkgcnVuIHNvY2tldC50ZXN0IHRvIHNp bXVsYXRlICJoaWdoIGxvYWQiIGluIHBhcmFsbGVsIHdpdGggaXRzZWxmCih3aGlsZSAuL3Rlc3Qt cnVuLnB5IC1qMjAgYGZvciByIGluIHsxLi42NH0gOyBkbyBlY2hvIHNvY2tldCA7IGRvbmVgIDI+ L2Rldi9udWxsIDsgZG8gbD0kKCgkbCsxKSkgOyBlY2hvID09PT09PT09ICRsID09PT09PT09PT09 PT0gOyBkb25lKS4KVXNpbmcgZmliZXIudGltZSgpIGFzIHJhbmRvbSBzZWVkIGxlYWRzIHRvIHRo ZSBzYW1lIHJlc3VsdHMgcHJvZHVjZWQKb24gcGFyYWxsZWwgdGFza3MuIFVzaW5nIGluc3RhbmNl IHV1aWQgYXMgYSBzZWVkIHNlZW1zIHRvIGJlIGEgZ29vZApkZWNpc2lvbi4KNS4gV2VsbCwgY29u c2lkZXJpbmcgdGhlIG5ldyBzZWVkIGdlbmVyYXRpb24sIDEwcyBzZWVtIHRvIGJlIGVub3VnaC4K Ni4gSWYgd2UgY2xvc2Ugc29ja2V0IGluIHRoZSBtYWluIGZpYmVyLCB3ZSBtaWdodCBhdHRlbXB0 IHRvIHVzZSBjbG9zZWQKc29ja2V0IGluIGJhY2tncm91bmQgZmliZXIuCjcuIE9mIGNvdXJzZSBp dCBzaG91bGRuJ3QgYmUgbmlsIGFuZCB0ZXN0IHdpbGwgZmFpbCBpbiB0aGlzIGNhc2UuIFdlCmp1 c3Qgd2FudCB0byBiZSBzdXJlIHRoYXQgdGVzdCB3b24ndCBoYW5nIGV2ZW4gaWYgc2VydmVyIGlz IHN0aWxsIG5pbC4KT3RoZXJ3aXNlIHdlIHdpbGwgaGFuZyBvbiBjaGFuOnB1dCgpLCB3aGljaCBp cyBub3QgbmljZS4gU2VudCB2MiBjb25zaWRlcmluZyBtZW50aW9uZWQgZHJhd2JhY2tzLgoKPtCf 0Y/RgtC90LjRhtCwLCAgNiDQtNC10LrQsNCx0YDRjyAyMDE5LCAwOjMxICswMzowMCDQvtGCIFZs YWRpc2xhdiBTaHBpbGV2b3kgPCB2LnNocGlsZXZveUB0YXJhbnRvb2wub3JnID46Cj4KPkhpISBU aGFua3MgZm9yIHRoZSBwYXRjaCEKPgo+U2VlIDcgY29tbWVudHMgYmVsb3cuCj4KPk9uIDA0LzEy LzIwMTkgMTQ6NDMsIElseWEgS29zYXJldiB3cm90ZToKPj4gc29ja2V0LnRlc3QgaGFkIGEgbnVt YmVyIG9mIGZsYWt5IHByb2JsZW1zOgo+PiAtIHNvY2tldCByZWFkYWJsZW5lc3MgZXhwZWN0YXRp b24KPj4gLSByYWNlIGNvbmRpdGlvbnMgb24gc29ja2V0IHNodXRkb3duIGluIGVtdWxhdGlvbiB0 ZXN0IGNhc2VzCj4+IC0gdGNwX3NlcnZlciBzdGFiaWxpdHkgaW4gc29ja2V0IHJlY2VpdmUgaW5j b25zaXN0ZW50IGJlaGF2aW9yIGNhc2UKPj4gTm93IHRoZXkgYXJlIHNvbHZlZC4gUG9ydCByYW5k b21pemF0aW9uIGlzIGltcHJvdmVkLgo+PiBTb2NrZXQgdGVzdCBpcyBub3QgZnJhZ2lsZSBhbnlt b3JlLgo+PiAKPj4gQ2xvc2VzICM0NDUxLCAjNDQyNiwgIzQ0NjkKPj4gLS0tCj4+IEJyYW5jaDog IGh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wvdGFyYW50b29sL3RyZWUvaS5rb3NhcmV2L2do LTQ0MjYtNDQ1MS1maXgtc29ja2V0LXRlc3QKPj4gSXNzdWVzOiAgaHR0cHM6Ly9naXRodWIuY29t L3RhcmFudG9vbC90YXJhbnRvb2wvaXNzdWVzLzQ0MjYKPj4gIGh0dHBzOi8vZ2l0aHViLmNvbS90 YXJhbnRvb2wvdGFyYW50b29sL2lzc3Vlcy80NDUxCj4+ICBodHRwczovL2dpdGh1Yi5jb20vdGFy YW50b29sL3RhcmFudG9vbC9pc3N1ZXMvNDQ2OQo+PiAKPj4gIHRlc3QvYXBwL3NvY2tldC5yZXN1 bHQgICB8IDg0ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KPj4gIHRl c3QvYXBwL3NvY2tldC50ZXN0Lmx1YSB8IDYwICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0K Pj4gIHRlc3QvYXBwL3N1aXRlLmluaSAgICAgICB8ICAxIC0KPj4gIDMgZmlsZXMgY2hhbmdlZCwg OTQgaW5zZXJ0aW9ucygrKSwgNTEgZGVsZXRpb25zKC0pCj4+IAo+PiBkaWZmIC0tZ2l0IGEvdGVz dC9hcHAvc29ja2V0LnJlc3VsdCBiL3Rlc3QvYXBwL3NvY2tldC5yZXN1bHQKPj4gaW5kZXggZmQy OTk0MjRjOS4uNDJkZGU4ZjM3NSAxMDA2NDQKPj4gLS0tIGEvdGVzdC9hcHAvc29ja2V0LnJlc3Vs dAo+PiArKysgYi90ZXN0L2FwcC9zb2NrZXQucmVzdWx0Cj4+IEBAIC00NSw2ICs0NSw5IEBAIHRl c3RfcnVuOmNtZCgicHVzaCBmaWx0ZXIgJyhlcnJvcjogLmJ1aWx0aW4vLipbLl1sdWEpOlswLTld KycgdG8gJ1xcMSciKQo+PiAgV0FJVF9DT05EX1RJTUUgPSAxMAo+MS4gVGhpcyBpcyBub3cgdW51 c2VkLgo+Cj4+ICAtLS0KPj4gIC4uLgo+PiArV0FJVF9UQ1BfQ09OTkVDVF9USU1FID0gMjQwCj4+ ICstLS0KPj4gKy4uLgo+PiAgc29ja2V0KCdQRl9JTkVUJywgJ1NPQ0tfU1RSRUFNJywgJ3RjcDEy MTIyMicpOwo+PiAgLS0tCj4+ICAtIG51bGwKPj4gQEAgLTEwNyw3ICsxMTAsNyBAQCBzOm5vbmJs b2NrKHRydWUpCj4+ICAtLS0KPj4gIC0gdHJ1ZQo+PiAgLi4uCj4+IC1zOnJlYWRhYmxlKC4xKQo+ PiArczpyZWFkYWJsZShXQUlUX1RDUF9DT05ORUNUX1RJTUUpCj4+ICAtLS0KPj4gIC0gdHJ1ZQo+ PiAgLi4uCj4+IEBAIC0yMjcsNyArMjMwLDcgQEAgczpzeXN3cml0ZShmZmkuY2FzdCgnY29uc3Qg Y2hhciAqJywgcGluZyksICNwaW5nKQo+PiAgLS0tCj4+ICAtIDYKPj4gIC4uLgo+PiAtczpyZWFk YWJsZSgxKQo+PiArczpyZWFkYWJsZShXQUlUX1RDUF9DT05ORUNUX1RJTUUpCj4KPjIuIEkgdW5k ZXJzdGFuZCwgd2h5IGl0IGlzICdjb25uZWN0IHRpbWUnIGluIHRoZSBwcmV2aW91cwo+aHVuay4g QnV0IGhlcmUgdGhlIHNvY2tldCBpcyBhbHJlYWR5IGNvbm5lY3RlZC4gU28gaXQgaXMKPm5vdCBj b25uZWN0IHRpbWUuCj4KPk9uIHRoZSBvdGhlciBoYW5kLCB0aGVyZSBhcmUgcGxhY2VzIHJpZ2h0 IGFmdGVyIGNvbm5lY3QsCj53aGljaCBkb24ndCB1c2UgdGhpcyB0aW1lb3V0LiBGb3IgZXhhbXBs ZSwgbGluZSA0NTcKPmluIHNvY2tldC5yZXN1bHQgZmlsZToKPgo+wqDCoMKgwqBzYzpzeXNjb25u ZWN0KCcxMjcuMC4wLjEnLCBzOm5hbWUoKS5wb3J0KSBvciBlcnJubygpID09IGVycm5vLkVJTlBS T0dSRVNTCj7CoMKgwqDCoC0tLQo+wqDCoMKgwqAtIHRydWUKPsKgwqDCoMKgLi4uCj7CoMKgwqDC oHNjOndyaXRhYmxlKDEwKQo+wqDCoMKgwqAtLS0KPsKgwqDCoMKgLSB0cnVlCj7CoMKgwqDCoC4u Lgo+Cj5IZXJlIGl0IGlzIDEwIHNlY29uZHMsIHdoaWxlIGluIG90aGVyIHBsYWNlcyB5b3Ugc3Rh cnRlZAo+dXNpbmcgMjQwLgo+Cj4+ICAtLS0KPj4gIC0gdHJ1ZQo+PiAgLi4uCj4+IEBAIC04MzAs NyArODMzLDcgQEAgc2M6c2VuZHRvKCcxMjcuMC4wLjEnLCBzOm5hbWUoKS5wb3J0LCAnSGVsbG8s IHdvcmxkJykKPj4gIC0tLQo+PiAgLSAxMgo+PiAgLi4uCj4+IC1zOnJlYWRhYmxlKDEwKQo+PiAr czpyZWFkYWJsZShXQUlUX1RDUF9DT05ORUNUX1RJTUUpCj4+ICAtLS0KPj4gIC0gdHJ1ZQo+PiAg Li4uCj4KPjMuIFRoZXJlIGlzIG5vIGNvbm5lY3QgdGltZS4gVGhpcyBpcyBER1JBTSBzb2NrZXQg d2l0aCBVRFAuCj5ObyBjb25uZWN0aW9ucy4KPgo+VGhlIHNhbWUgYmVsb3cuIE1vcmVvdmVyLCB0 aGVyZSBhcmUgbm93IDIgd2FpdHMgZm9yCj4nY29ubmVjdCB0aW1lJyBvbiB0aGUgc2FtZSBzb2Nr ZXQuCj4KPj4gQEAgLTg0Miw3ICs4NDUsNyBAQCBzYzpzZW5kdG8oJzEyNy4wLjAuMScsIHM6bmFt ZSgpLnBvcnQsICdIZWxsbywgd29ybGQsIDInKQo+PiAgLS0tCj4+ICAtIDE1Cj4+ICAuLi4KPj4g LXM6cmVhZGFibGUoMTApCj4+ICtzOnJlYWRhYmxlKFdBSVRfVENQX0NPTk5FQ1RfVElNRSkKPj4g IC0tLQo+PiAgLSB0cnVlCj4+ICAuLi4KPj4gQEAgLTg5OCw3ICs5MDEsNyBAQCBzYzpzZW5kdG8o JzEyNy4wLjAuMScsIHM6bmFtZSgpLnBvcnQsICdIZWxsbywgV29ybGQhJykKPj4gIC0tLQo+PiAg LSAxMwo+PiAgLi4uCj4+IC1zOnJlYWRhYmxlKDEpCj4+ICtzOnJlYWRhYmxlKFdBSVRfVENQX0NP Tk5FQ1RfVElNRSkKPj4gIC0tLQo+PiAgLSB0cnVlCj4+ICAuLi4KPj4gQEAgLTEwNzQsNiArMTA3 NywxNSBAQCBtYXN0ZXI6c2V0c29ja29wdCgnU09MX1NPQ0tFVCcsICdTT19SRVVTRUFERFInLCB0 cnVlKQo+PiAgLS0tCj4+ICAtIHRydWUKPj4gIC4uLgo+PiArc2VlZCA9ICcnCj4+ICstLS0KPj4g Ky4uLgo+PiArZm9yIGQgaW4gc3RyaW5nLmdtYXRjaChib3guaW5mby51dWlkLCAnJWQnKSBkbyAg c2VlZCA9IHNlZWQgLi4gZCBlbmQKPgo+NC4gV2VsbCwgdGhpcyBpcyBwcm9iYWJseSB0aGUgbW9z dCBpbnRyaWNhdGUgd2F5IHRvCj5nZXQgYSBzZWVkLiBIYXZlIHlvdSBjb25zaWRlcmVkIGZpYmVy LnRpbWUoKT8gQW5kIHdoeSBkbwo+eW91IG5lZWQgaXQ/IElzbid0IGl0IGluaXRpYWxpemVkIGFs cmVhZHk/Cj4KPj4gKy0tLQo+PiArLi4uCj4+ICttYXRoLnJhbmRvbXNlZWQodG9udW1iZXIoc2Vl ZCkpCj4+ICstLS0KPj4gKy4uLgo+PiAgcG9ydCA9IDMyNzY4ICsgbWF0aC5yYW5kb20oMCwgMzI3 NjcpCj4+ICAtLS0KPj4gIC4uLgo+PiBAQCAtMTA5Miw3ICsxMTA0LDcgQEAgdGVzdF9ydW46d2Fp dF9jb25kKGZ1bmN0aW9uKCkKPj4gICAgICAgICAgcmV0dXJuIGZhbHNlLCBtYXN0ZXI6ZXJyb3Io KQo+PiAgICAgIGVuZAo+PiAgICAgIHJldHVybiB0cnVlCj4+IC1lbmQsIFdBSVRfQ09ORF9USU1F KTsKPj4gK2VuZCwgMTAwKTsKPgo+NS4gV2h5PyAxMCBzZWNvbmRzIHdhcyBub3QgZW5vdWdoIHRv IHRyeSBhIGZldyByYW5kb20KPnBvcnRzPwo+Cj4+ICAtLS0KPj4gIC0gdHJ1ZQo+PiAgLi4uCj4+ IEBAIC0xODIyLDggKzE4MzQsMTQgQEAgdGVzdF9ydW46Y21kKCJzZXRvcHQgZGVsaW1pdGVyICc7 JyIpCj4+ICAtLS0KPj4gIC0gdHJ1ZQo+PiAgLi4uCj4+ICtzb2NrZXRfb3BlbmVkID0gdHJ1ZQo+ PiAgY2ZpYmVyID0gZmliZXIuY3JlYXRlKGZ1bmN0aW9uKHNjLCByY2gsIHdjaCkKPj4gLSAgICB3 aGlsZSBzYzpzZW5kKHdjaDpnZXQoKSkgYW5kIHJjaDpwdXQoc2M6cmVjZWl2ZSgiKmwiKSkgZG8g ZW5kCj4+ICsgICAgd2hpbGUgc29ja2V0X29wZW5lZCBkbwo+PiArICAgICAgICBzYzpzZW5kKHdj aDpnZXQoKSkKPj4gKyAgICAgICAgbG9jYWwgZGF0YSA9IHNjOnJlY2VpdmUoIipsIikKPj4gKyAg ICAgICAgaWYgbm90IHNvY2tldF9vcGVuZWQgdGhlbiBzYzpjbG9zZSgpIGVuZAo+PiArICAgICAg ICByY2g6cHV0KGRhdGEpCj4+ICsgICAgZW5kCj4+ICBlbmQsIHNjLCByY2gsIHdjaCk7Cj4KPjYu IFdoYXQgd2FzIGEgcHJvYmxlbSBoZXJlPyBJbiB0aGUgY29tbWl0IG1lc3NhZ2UgeW91IHNhaWQK PidyYWNlIGNvbmRpdGlvbnMnLiBXaGVyZT8gWW91IGp1c3QgbW92ZWQgc29ja2V0IGNsb3NlIHRv Cj50aGUgYmFja2dyb3VuZCBmaWJlciBmcm9tIHRoZSBtYWluIGZpYmVyLgo+Cj4+ICAtLS0KPj4g IC4uLgo+PiBAQCAtMTkzNiw2ICsxOTU0LDkgQEAgYzpyZWNlaXZlKCIqbCIpCj4+ICAtLS0KPj4g IC0gCj4+ICAuLi4KPj4gK3NvY2tldF9vcGVuZWQgPSBmYWxzZQo+PiArLS0tCj4+ICsuLi4KPj4g IHdjaDpwdXQoIkZ1IikKPj4gIC0tLQo+PiAgLSB0cnVlCj4+IEBAIC0xOTQ0LDEwICsxOTY1LDYg QEAgYzpzZW5kKCIzNTQgUGxlYXNlIHR5cGUgeW91ciBtZXNzYWdlXG4iKQo+PiAgLS0tCj4+ICAt IDI5Cj4+ICAuLi4KPj4gLXNjOmNsb3NlKCkKPj4gLS0tLQo+PiAtLSAxCj4+IC0uLi4KPj4gIGM6 cmVjZWl2ZSgiKmwiLCAiTGluZTogIikKPj4gIC0tLQo+PiAgLSBudWxsCj4+IEBAIC0yODE2LDcg KzI4MzMsNyBAQCB0ZXN0X3J1bjpjbWQoImNsZWFyIGZpbHRlciIpCj4+ICAtLS0KPj4gIC0gdHJ1 ZQo+PiAgLi4uCj4+IC0tLSBjYXNlOiBzaWNrZXQgcmVjZWl2ZSBpbmNvbnNpc3RlbnQgYmVoYXZp b3IKPj4gKy0tIGNhc2U6IHNvY2tldCByZWNlaXZlIGluY29uc2lzdGVudCBiZWhhdmlvcgo+PiAg Y2hhbiA9IGZpYmVyLmNoYW5uZWwoKQo+PiAgLS0tCj4+ICAuLi4KPj4gQEAgLTI4MjYsNDEgKzI4 NDMsNDYgQEAgY291bnRlciA9IDAKPj4gIGZuID0gZnVuY3Rpb24ocykgY291bnRlciA9IDA7IHdo aWxlIHRydWUgZG8gczp3cml0ZSgodG9zdHJpbmcoY291bnRlcikpOnJlcChjaGFuOmdldCgpKSk7 IGNvdW50ZXIgPSBjb3VudGVyICsgMSBlbmQgZW5kCj4+ICAtLS0KPj4gIC4uLgo+PiAtc3J2ID0g c29ja2V0LnRjcF9zZXJ2ZXIoJzAuMC4wLjAnLCA4ODg4LCBmbikKPj4gK3NydiA9IG5pbAo+PiAg LS0tCj4+ICAuLi4KPj4gLXMgPSBzb2NrZXQuY29ubmVjdCgnbG9jYWxob3N0JywgODg4OCkKPj4g K3Rlc3RfcnVuOmNtZCgic2V0b3B0IGRlbGltaXRlciAnOyciKQo+PiAgLS0tCj4+ICstIHRydWUK Pj4gIC4uLgo+PiAtY2hhbjpwdXQoNSkKPj4gK3Rlc3RfcnVuOndhaXRfY29uZChmdW5jdGlvbigp Cj4+ICsgICAgcG9ydCA9IDMyNzY4ICsgbWF0aC5yYW5kb20oMCwgMzI3NjcpCj4+ICsgICAgc3J2 ID0gc29ja2V0LnRjcF9zZXJ2ZXIoJzAuMC4wLjAnLCBwb3J0LCBmbikKPj4gKyAgICByZXR1cm4g c3J2IH49IG5pbAo+PiArZW5kLCAxMDApOwo+PiAgLS0tCj4+ICAtIHRydWUKPj4gIC4uLgo+PiAt Y2hhbjpwdXQoNSkKPj4gK3JlY2VpdmUxID0gbmlsOyByZWNlaXZlMiA9IG5pbDsKPj4gIC0tLQo+ PiAtLSB0cnVlCj4+ICAuLi4KPj4gLXM6cmVjZWl2ZSg1KQo+PiAraWYgc3J2IH49IG5pbCB0aGVu Cj4+ICsgICAgcyA9IHNvY2tldC5jb25uZWN0KCdsb2NhbGhvc3QnLCBwb3J0KQo+PiArICAgIGNo YW46cHV0KDUpCj4+ICsgICAgY2hhbjpwdXQoNSkKPj4gKyAgICByZWNlaXZlMSA9IHM6cmVjZWl2 ZSg1KQo+PiArICAgIGNoYW46cHV0KDUpCj4+ICsgICAgczpzZXR0aW1lb3V0KDEpCj4+ICsgICAg cmVjZWl2ZTIgPSBzOnJlY2VpdmUoJyphJykKPj4gKyAgICBzOmNsb3NlKCkKPj4gKyAgICBzcnY6 Y2xvc2UoKQo+PiArZW5kOwo+Cj43LiBIb3cgaXMgaXQgcG9zc2libGUsIHRoYXQgdGhlIHNlcnZl ciBzdGlsbCBpcyBuaWwgaGVyZT8KPkF0IGxlYXN0IG9uZSBvZiAzMmsgcG9ydHMgc2hvdWxkIGhh dmUgYmVlbiBmcmVlLgo+Cj4+ICAtLS0KPj4gLS0gJzAwMDAwJwo+PiAgLi4uCj4+IC1jaGFuOnB1 dCg1KQo+PiArdGVzdF9ydW46Y21kKCJzZXRvcHQgZGVsaW1pdGVyICcnIik7Cj4+ICAtLS0KPj4g IC0gdHJ1ZQo+PiAgLi4uCj4+IC1zOnNldHRpbWVvdXQoMSkKPj4gK3JlY2VpdmUxCj4+ICAtLS0K Pj4gLS0gMQo+PiArLSAnMDAwMDAnCj4+ICAuLi4KPj4gLXM6cmVjZWl2ZSgnKmEnKQo+PiArcmVj ZWl2ZTIKPj4gIC0tLQo+PiAgLSAnMTExMTEyMjIyMicKPj4gIC4uLgo+PiAtczpjbG9zZSgpCj4+ IC0tLS0KPj4gLS0gMQo+PiAtLi4uCj4+IC1zcnY6Y2xvc2UoKQo+PiAtLS0tCj4+IC0tIHRydWUK Pj4gLS4uLgoKCi0tIApJbHlhIEtvc2FyZXYK ----ALT--72PaQMFRntxQ8Rp4pNJ1k1g2fqjiELTz1575648087 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+Cgk8c3R5 bGUgdHlwZT0idGV4dC9jc3MiPjwvc3R5bGU+CiAJPGRpdj4KCQk8YmFzZSB0YXJnZXQ9Il9zZWxm IiBocmVmPSJodHRwczovL2UubWFpbC5ydS8iPgoJCQogICAgICAgICAgICA8ZGl2IGlkPSJzdHls ZV8xNTc1NjQzMTU0MDg0Mzg2NzYwMV9CT0RZIj48ZGl2IGNsYXNzPSJjbGFzc18xNTc1Njc3NDkw Ij4KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBBcmlhbCwgVGFob21hLCBWZXJkYW5hLCBzYW5z LXNlcmlmOyIgZGF0YS1tY2Utc3R5bGU9ImZvbnQtZmFtaWx5OiBBcmlhbCwgVGFob21hLCBWZXJk YW5hLCBzYW5zLXNlcmlmOyI+SGkhPC9zcGFuPjxiciBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFs LCBUYWhvbWEsIFZlcmRhbmEsIHNhbnMtc2VyaWY7IiBkYXRhLW1jZS1zdHlsZT0iZm9udC1mYW1p bHk6IEFyaWFsLCBUYWhvbWEsIFZlcmRhbmEsIHNhbnMtc2VyaWY7Ij48YnIgc3R5bGU9ImZvbnQt ZmFtaWx5OiBBcmlhbCwgVGFob21hLCBWZXJkYW5hLCBzYW5zLXNlcmlmOyIgZGF0YS1tY2Utc3R5 bGU9ImZvbnQtZmFtaWx5OiBBcmlhbCwgVGFob21hLCBWZXJkYW5hLCBzYW5zLXNlcmlmOyI+PHNw YW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBBcmlhbCwgVGFob21hLCBWZXJkYW5hLCBzYW5zLXNlcmlm OyIgZGF0YS1tY2Utc3R5bGU9ImZvbnQtZmFtaWx5OiBBcmlhbCwgVGFob21hLCBWZXJkYW5hLCBz YW5zLXNlcmlmOyI+VGhhbmtzIGZvciB5b3VyIHJldmlldy48YnI+PC9zcGFuPjxicj48cD40LiBJ IHJ1biBzb2NrZXQudGVzdCB0byBzaW11bGF0ZSAiaGlnaCBsb2FkIiBpbiBwYXJhbGxlbCB3aXRo IGl0c2VsZjxicj4od2hpbGUgLi90ZXN0LXJ1bi5weSAtajIwIGBmb3IgciBpbiB7MS4uNjR9IDsg ZG8gZWNobyBzb2NrZXQgOyBkb25lYCAyJmd0Oy9kZXYvbnVsbCA7IGRvIGw9JCgoJGwrMSkpIDsg ZWNobyA9PT09PT09PSAkbCA9PT09PT09PT09PT09IDsgZG9uZSkuPGJyPlVzaW5nIGZpYmVyLnRp bWUoKSBhcyByYW5kb20gc2VlZCBsZWFkcyB0byB0aGUgc2FtZSByZXN1bHRzIHByb2R1Y2VkPGJy Pm9uIHBhcmFsbGVsIHRhc2tzLiBVc2luZyBpbnN0YW5jZSB1dWlkIGFzIGEgc2VlZCBzZWVtcyB0 byBiZSBhIGdvb2Q8YnI+ZGVjaXNpb24uPC9wPjxwPjUuIFdlbGwsIGNvbnNpZGVyaW5nIHRoZSBu ZXcgc2VlZCBnZW5lcmF0aW9uLCAxMHMgc2VlbSB0byBiZSBlbm91Z2guPC9wPjxwPjYuIElmIHdl IGNsb3NlIHNvY2tldCBpbiB0aGUgbWFpbiBmaWJlciwgd2UgbWlnaHQgYXR0ZW1wdCB0byB1c2Ug Y2xvc2VkPGJyPnNvY2tldCBpbiBiYWNrZ3JvdW5kIGZpYmVyLjwvcD48cD43LiBPZiBjb3Vyc2Ug aXQgc2hvdWxkbid0IGJlIG5pbCBhbmQgdGVzdCB3aWxsIGZhaWwgaW4gdGhpcyBjYXNlLiBXZTxi cj5qdXN0IHdhbnQgdG8gYmUgc3VyZSB0aGF0IHRlc3Qgd29uJ3QgaGFuZyBldmVuIGlmIHNlcnZl ciBpcyBzdGlsbCBuaWwuPGJyPk90aGVyd2lzZSB3ZSB3aWxsIGhhbmcgb24gY2hhbjpwdXQoKSwg d2hpY2ggaXMgbm90IG5pY2UuPC9wPlNlbnQgdjIgY29uc2lkZXJpbmcgbWVudGlvbmVkIGRyYXdi YWNrcy48YnI+PGJyPjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4 NTdBNjttYXJnaW46MTBweDtwYWRkaW5nOjAgMCAwIDEwcHg7Ij4KCdCf0Y/RgtC90LjRhtCwLCAg NiDQtNC10LrQsNCx0YDRjyAyMDE5LCAwOjMxICswMzowMCDQvtGCIFZsYWRpc2xhdiBTaHBpbGV2 b3kgJmx0OzxhIGhyZWY9Im1haWx0bzp2LnNocGlsZXZveUB0YXJhbnRvb2wub3JnIj52LnNocGls ZXZveUB0YXJhbnRvb2wub3JnPC9hPiZndDs6PGJyPgoJPGJyPgoJPGRpdiBpZD0iIj4KCgoKCgoK PGRpdiBjbGFzcz0ianMtaGVscGVyX21haWxydV9jc3NfYXR0cmlidXRlX3Bvc3RmaXgganMtcmVh ZG1zZy1tc2dfbWFpbHJ1X2Nzc19hdHRyaWJ1dGVfcG9zdGZpeCI+Cgk8c3R5bGU+PC9zdHlsZT4K IAk8ZGl2PgoJCQoJCQogICAgICAgICAgICA8ZGl2IGlkPSJzdHlsZV8xNTc1NTgxNDc5MDEwODA0 NTY2M19CT0RZX21haWxydV9jc3NfYXR0cmlidXRlX3Bvc3RmaXgiPkhpISBUaGFua3MgZm9yIHRo ZSBwYXRjaCE8YnI+Cjxicj4KU2VlIDcgY29tbWVudHMgYmVsb3cuPGJyPgo8YnI+Ck9uIDA0LzEy LzIwMTkgMTQ6NDMsIElseWEgS29zYXJldiB3cm90ZTo8YnI+CiZndDsgc29ja2V0LnRlc3QgaGFk IGEgbnVtYmVyIG9mIGZsYWt5IHByb2JsZW1zOjxicj4KJmd0OyAtIHNvY2tldCByZWFkYWJsZW5l c3MgZXhwZWN0YXRpb248YnI+CiZndDsgLSByYWNlIGNvbmRpdGlvbnMgb24gc29ja2V0IHNodXRk b3duIGluIGVtdWxhdGlvbiB0ZXN0IGNhc2VzPGJyPgomZ3Q7IC0gdGNwX3NlcnZlciBzdGFiaWxp dHkgaW4gc29ja2V0IHJlY2VpdmUgaW5jb25zaXN0ZW50IGJlaGF2aW9yIGNhc2U8YnI+CiZndDsg Tm93IHRoZXkgYXJlIHNvbHZlZC4gUG9ydCByYW5kb21pemF0aW9uIGlzIGltcHJvdmVkLjxicj4K Jmd0OyBTb2NrZXQgdGVzdCBpcyBub3QgZnJhZ2lsZSBhbnltb3JlLjxicj4KJmd0OyA8YnI+CiZn dDsgQ2xvc2VzICM0NDUxLCAjNDQyNiwgIzQ0Njk8YnI+CiZndDsgLS0tPGJyPgomZ3Q7IEJyYW5j aDogPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvdHJlZS9p Lmtvc2FyZXYvZ2gtNDQyNi00NDUxLWZpeC1zb2NrZXQtdGVzdCIgdGFyZ2V0PSJfYmxhbmsiIHJl bD0iIG5vb3BlbmVyIG5vcmVmZXJyZXIiPmh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wvdGFy YW50b29sL3RyZWUvaS5rb3NhcmV2L2doLTQ0MjYtNDQ1MS1maXgtc29ja2V0LXRlc3Q8L2E+PGJy PgomZ3Q7IElzc3VlczogPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJh bnRvb2wvaXNzdWVzLzQ0MjYiIHRhcmdldD0iX2JsYW5rIiByZWw9IiBub29wZW5lciBub3JlZmVy cmVyIj5odHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9pc3N1ZXMvNDQyNjwv YT48YnI+CiZndDsgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29s L3RhcmFudG9vbC9pc3N1ZXMvNDQ1MSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0iIG5vb3BlbmVyIG5v cmVmZXJyZXIiPmh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wvdGFyYW50b29sL2lzc3Vlcy80 NDUxPC9hPjxicj4KJmd0OyAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90YXJh bnRvb2wvdGFyYW50b29sL2lzc3Vlcy80NDY5IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSIgbm9vcGVu ZXIgbm9yZWZlcnJlciI+aHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvaXNz dWVzLzQ0Njk8L2E+PGJyPgomZ3Q7IDxicj4KJmd0OyAgdGVzdC9hcHAvc29ja2V0LnJlc3VsdCAg IHwgODQgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLTxicj4KJmd0OyAg dGVzdC9hcHAvc29ja2V0LnRlc3QubHVhIHwgNjAgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LTxicj4KJmd0OyAgdGVzdC9hcHAvc3VpdGUuaW5pICAgICAgIHwgIDEgLTxicj4KJmd0OyAgMyBm aWxlcyBjaGFuZ2VkLCA5NCBpbnNlcnRpb25zKCspLCA1MSBkZWxldGlvbnMoLSk8YnI+CiZndDsg PGJyPgomZ3Q7IGRpZmYgLS1naXQgYS90ZXN0L2FwcC9zb2NrZXQucmVzdWx0IGIvdGVzdC9hcHAv c29ja2V0LnJlc3VsdDxicj4KJmd0OyBpbmRleCBmZDI5OTQyNGM5Li40MmRkZThmMzc1IDEwMDY0 NDxicj4KJmd0OyAtLS0gYS90ZXN0L2FwcC9zb2NrZXQucmVzdWx0PGJyPgomZ3Q7ICsrKyBiL3Rl c3QvYXBwL3NvY2tldC5yZXN1bHQ8YnI+CiZndDsgQEAgLTQ1LDYgKzQ1LDkgQEAgdGVzdF9ydW46 Y21kKCJwdXNoIGZpbHRlciAnKGVycm9yOiAuYnVpbHRpbi8uKlsuXWx1YSk6WzAtOV0rJyB0byAn XFwxJyIpPGJyPgomZ3Q7ICBXQUlUX0NPTkRfVElNRSA9IDEwPGJyPgogICAgCjEuIFRoaXMgaXMg bm93IHVudXNlZC48YnI+Cjxicj4KJmd0OyAgLS0tPGJyPgomZ3Q7ICAuLi48YnI+CiZndDsgK1dB SVRfVENQX0NPTk5FQ1RfVElNRSA9IDI0MDxicj4KJmd0OyArLS0tPGJyPgomZ3Q7ICsuLi48YnI+ CiZndDsgIHNvY2tldCgnUEZfSU5FVCcsICdTT0NLX1NUUkVBTScsICd0Y3AxMjEyMjInKTs8YnI+ CiZndDsgIC0tLTxicj4KJmd0OyAgLSBudWxsPGJyPgomZ3Q7IEBAIC0xMDcsNyArMTEwLDcgQEAg czpub25ibG9jayh0cnVlKTxicj4KJmd0OyAgLS0tPGJyPgomZ3Q7ICAtIHRydWU8YnI+CiZndDsg IC4uLjxicj4KJmd0OyAtczpyZWFkYWJsZSguMSk8YnI+CiZndDsgK3M6cmVhZGFibGUoV0FJVF9U Q1BfQ09OTkVDVF9USU1FKTxicj4KJmd0OyAgLS0tPGJyPgomZ3Q7ICAtIHRydWU8YnI+CiZndDsg IC4uLjxicj4KJmd0OyBAQCAtMjI3LDcgKzIzMCw3IEBAIHM6c3lzd3JpdGUoZmZpLmNhc3QoJ2Nv bnN0IGNoYXIgKicsIHBpbmcpLCAjcGluZyk8YnI+CiZndDsgIC0tLTxicj4KJmd0OyAgLSA2PGJy PgomZ3Q7ICAuLi48YnI+CiZndDsgLXM6cmVhZGFibGUoMSk8YnI+CiZndDsgK3M6cmVhZGFibGUo V0FJVF9UQ1BfQ09OTkVDVF9USU1FKTxicj4KPGJyPgoyLiBJIHVuZGVyc3RhbmQsIHdoeSBpdCBp cyAnY29ubmVjdCB0aW1lJyBpbiB0aGUgcHJldmlvdXM8YnI+Cmh1bmsuIEJ1dCBoZXJlIHRoZSBz b2NrZXQgaXMgYWxyZWFkeSBjb25uZWN0ZWQuIFNvIGl0IGlzPGJyPgpub3QgY29ubmVjdCB0aW1l Ljxicj4KPGJyPgpPbiB0aGUgb3RoZXIgaGFuZCwgdGhlcmUgYXJlIHBsYWNlcyByaWdodCBhZnRl ciBjb25uZWN0LDxicj4Kd2hpY2ggZG9uJ3QgdXNlIHRoaXMgdGltZW91dC4gRm9yIGV4YW1wbGUs IGxpbmUgNDU3PGJyPgppbiBzb2NrZXQucmVzdWx0IGZpbGU6PGJyPgo8YnI+CiZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwO3NjOnN5c2Nvbm5lY3QoJzEyNy4wLjAuMScsIHM6bmFtZSgpLnBvcnQpIG9y IGVycm5vKCkgPT0gZXJybm8uRUlOUFJPR1JFU1M8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw Oy0tLTxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LSB0cnVlPGJyPgombmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsuLi48YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3NjOndyaXRhYmxlKDEw KTxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LS0tPGJyPgombmJzcDsmbmJzcDsmbmJzcDsm bmJzcDstIHRydWU8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy4uLjxicj4KPGJyPgpIZXJl IGl0IGlzIDEwIHNlY29uZHMsIHdoaWxlIGluIG90aGVyIHBsYWNlcyB5b3Ugc3RhcnRlZDxicj4K dXNpbmcgMjQwLjxicj4KPGJyPgomZ3Q7ICAtLS08YnI+CiZndDsgIC0gdHJ1ZTxicj4KJmd0OyAg Li4uPGJyPgomZ3Q7IEBAIC04MzAsNyArODMzLDcgQEAgc2M6c2VuZHRvKCcxMjcuMC4wLjEnLCBz Om5hbWUoKS5wb3J0LCAnSGVsbG8sIHdvcmxkJyk8YnI+CiZndDsgIC0tLTxicj4KJmd0OyAgLSAx Mjxicj4KJmd0OyAgLi4uPGJyPgomZ3Q7IC1zOnJlYWRhYmxlKDEwKTxicj4KJmd0OyArczpyZWFk YWJsZShXQUlUX1RDUF9DT05ORUNUX1RJTUUpPGJyPgomZ3Q7ICAtLS08YnI+CiZndDsgIC0gdHJ1 ZTxicj4KJmd0OyAgLi4uPGJyPgo8YnI+CjMuIFRoZXJlIGlzIG5vIGNvbm5lY3QgdGltZS4gVGhp cyBpcyBER1JBTSBzb2NrZXQgd2l0aCBVRFAuPGJyPgpObyBjb25uZWN0aW9ucy48YnI+Cjxicj4K VGhlIHNhbWUgYmVsb3cuIE1vcmVvdmVyLCB0aGVyZSBhcmUgbm93IDIgd2FpdHMgZm9yPGJyPgon Y29ubmVjdCB0aW1lJyBvbiB0aGUgc2FtZSBzb2NrZXQuPGJyPgo8YnI+CiZndDsgQEAgLTg0Miw3 ICs4NDUsNyBAQCBzYzpzZW5kdG8oJzEyNy4wLjAuMScsIHM6bmFtZSgpLnBvcnQsICdIZWxsbywg d29ybGQsIDInKTxicj4KJmd0OyAgLS0tPGJyPgomZ3Q7ICAtIDE1PGJyPgomZ3Q7ICAuLi48YnI+ CiZndDsgLXM6cmVhZGFibGUoMTApPGJyPgomZ3Q7ICtzOnJlYWRhYmxlKFdBSVRfVENQX0NPTk5F Q1RfVElNRSk8YnI+CiZndDsgIC0tLTxicj4KJmd0OyAgLSB0cnVlPGJyPgomZ3Q7ICAuLi48YnI+ CiZndDsgQEAgLTg5OCw3ICs5MDEsNyBAQCBzYzpzZW5kdG8oJzEyNy4wLjAuMScsIHM6bmFtZSgp LnBvcnQsICdIZWxsbywgV29ybGQhJyk8YnI+CiZndDsgIC0tLTxicj4KJmd0OyAgLSAxMzxicj4K Jmd0OyAgLi4uPGJyPgomZ3Q7IC1zOnJlYWRhYmxlKDEpPGJyPgomZ3Q7ICtzOnJlYWRhYmxlKFdB SVRfVENQX0NPTk5FQ1RfVElNRSk8YnI+CiZndDsgIC0tLTxicj4KJmd0OyAgLSB0cnVlPGJyPgom Z3Q7ICAuLi48YnI+CiZndDsgQEAgLTEwNzQsNiArMTA3NywxNSBAQCBtYXN0ZXI6c2V0c29ja29w dCgnU09MX1NPQ0tFVCcsICdTT19SRVVTRUFERFInLCB0cnVlKTxicj4KJmd0OyAgLS0tPGJyPgom Z3Q7ICAtIHRydWU8YnI+CiZndDsgIC4uLjxicj4KJmd0OyArc2VlZCA9ICcnPGJyPgomZ3Q7ICst LS08YnI+CiZndDsgKy4uLjxicj4KJmd0OyArZm9yIGQgaW4gc3RyaW5nLmdtYXRjaChib3guaW5m by51dWlkLCAnJWQnKSBkbyAgc2VlZCA9IHNlZWQgLi4gZCBlbmQ8YnI+Cjxicj4KNC4gV2VsbCwg dGhpcyBpcyBwcm9iYWJseSB0aGUgbW9zdCBpbnRyaWNhdGUgd2F5IHRvPGJyPgpnZXQgYSBzZWVk LiBIYXZlIHlvdSBjb25zaWRlcmVkIGZpYmVyLnRpbWUoKT8gQW5kIHdoeSBkbzxicj4KeW91IG5l ZWQgaXQ/IElzbid0IGl0IGluaXRpYWxpemVkIGFscmVhZHk/PGJyPgo8YnI+CiZndDsgKy0tLTxi cj4KJmd0OyArLi4uPGJyPgomZ3Q7ICttYXRoLnJhbmRvbXNlZWQodG9udW1iZXIoc2VlZCkpPGJy PgomZ3Q7ICstLS08YnI+CiZndDsgKy4uLjxicj4KJmd0OyAgcG9ydCA9IDMyNzY4ICsgbWF0aC5y YW5kb20oMCwgMzI3NjcpPGJyPgomZ3Q7ICAtLS08YnI+CiZndDsgIC4uLjxicj4KJmd0OyBAQCAt MTA5Miw3ICsxMTA0LDcgQEAgdGVzdF9ydW46d2FpdF9jb25kKGZ1bmN0aW9uKCk8YnI+CiZndDsg ICAgICAgICAgcmV0dXJuIGZhbHNlLCBtYXN0ZXI6ZXJyb3IoKTxicj4KJmd0OyAgICAgIGVuZDxi cj4KJmd0OyAgICAgIHJldHVybiB0cnVlPGJyPgomZ3Q7IC1lbmQsIFdBSVRfQ09ORF9USU1FKTs8 YnI+CiZndDsgK2VuZCwgMTAwKTs8YnI+Cjxicj4KNS4gV2h5PyAxMCBzZWNvbmRzIHdhcyBub3Qg ZW5vdWdoIHRvIHRyeSBhIGZldyByYW5kb208YnI+CnBvcnRzPzxicj4KPGJyPgomZ3Q7ICAtLS08 YnI+CiZndDsgIC0gdHJ1ZTxicj4KJmd0OyAgLi4uPGJyPgomZ3Q7IEBAIC0xODIyLDggKzE4MzQs MTQgQEAgdGVzdF9ydW46Y21kKCJzZXRvcHQgZGVsaW1pdGVyICc7JyIpPGJyPgomZ3Q7ICAtLS08 YnI+CiZndDsgIC0gdHJ1ZTxicj4KJmd0OyAgLi4uPGJyPgomZ3Q7ICtzb2NrZXRfb3BlbmVkID0g dHJ1ZTxicj4KJmd0OyAgY2ZpYmVyID0gZmliZXIuY3JlYXRlKGZ1bmN0aW9uKHNjLCByY2gsIHdj aCk8YnI+CiZndDsgLSAgICB3aGlsZSBzYzpzZW5kKHdjaDpnZXQoKSkgYW5kIHJjaDpwdXQoc2M6 cmVjZWl2ZSgiKmwiKSkgZG8gZW5kPGJyPgomZ3Q7ICsgICAgd2hpbGUgc29ja2V0X29wZW5lZCBk bzxicj4KJmd0OyArICAgICAgICBzYzpzZW5kKHdjaDpnZXQoKSk8YnI+CiZndDsgKyAgICAgICAg bG9jYWwgZGF0YSA9IHNjOnJlY2VpdmUoIipsIik8YnI+CiZndDsgKyAgICAgICAgaWYgbm90IHNv Y2tldF9vcGVuZWQgdGhlbiBzYzpjbG9zZSgpIGVuZDxicj4KJmd0OyArICAgICAgICByY2g6cHV0 KGRhdGEpPGJyPgomZ3Q7ICsgICAgZW5kPGJyPgomZ3Q7ICBlbmQsIHNjLCByY2gsIHdjaCk7PGJy Pgo8YnI+CjYuIFdoYXQgd2FzIGEgcHJvYmxlbSBoZXJlPyBJbiB0aGUgY29tbWl0IG1lc3NhZ2Ug eW91IHNhaWQ8YnI+CidyYWNlIGNvbmRpdGlvbnMnLiBXaGVyZT8gWW91IGp1c3QgbW92ZWQgc29j a2V0IGNsb3NlIHRvPGJyPgp0aGUgYmFja2dyb3VuZCBmaWJlciBmcm9tIHRoZSBtYWluIGZpYmVy Ljxicj4KPGJyPgomZ3Q7ICAtLS08YnI+CiZndDsgIC4uLjxicj4KJmd0OyBAQCAtMTkzNiw2ICsx OTU0LDkgQEAgYzpyZWNlaXZlKCIqbCIpPGJyPgomZ3Q7ICAtLS08YnI+CiZndDsgIC0gPGJyPgom Z3Q7ICAuLi48YnI+CiZndDsgK3NvY2tldF9vcGVuZWQgPSBmYWxzZTxicj4KJmd0OyArLS0tPGJy PgomZ3Q7ICsuLi48YnI+CiZndDsgIHdjaDpwdXQoIkZ1Iik8YnI+CiZndDsgIC0tLTxicj4KJmd0 OyAgLSB0cnVlPGJyPgomZ3Q7IEBAIC0xOTQ0LDEwICsxOTY1LDYgQEAgYzpzZW5kKCIzNTQgUGxl YXNlIHR5cGUgeW91ciBtZXNzYWdlXG4iKTxicj4KJmd0OyAgLS0tPGJyPgomZ3Q7ICAtIDI5PGJy PgomZ3Q7ICAuLi48YnI+CiZndDsgLXNjOmNsb3NlKCk8YnI+CiZndDsgLS0tLTxicj4KJmd0OyAt LSAxPGJyPgomZ3Q7IC0uLi48YnI+CiZndDsgIGM6cmVjZWl2ZSgiKmwiLCAiTGluZTogIik8YnI+ CiZndDsgIC0tLTxicj4KJmd0OyAgLSBudWxsPGJyPgomZ3Q7IEBAIC0yODE2LDcgKzI4MzMsNyBA QCB0ZXN0X3J1bjpjbWQoImNsZWFyIGZpbHRlciIpPGJyPgomZ3Q7ICAtLS08YnI+CiZndDsgIC0g dHJ1ZTxicj4KJmd0OyAgLi4uPGJyPgomZ3Q7IC0tLSBjYXNlOiBzaWNrZXQgcmVjZWl2ZSBpbmNv bnNpc3RlbnQgYmVoYXZpb3I8YnI+CiZndDsgKy0tIGNhc2U6IHNvY2tldCByZWNlaXZlIGluY29u c2lzdGVudCBiZWhhdmlvcjxicj4KJmd0OyAgY2hhbiA9IGZpYmVyLmNoYW5uZWwoKTxicj4KJmd0 OyAgLS0tPGJyPgomZ3Q7ICAuLi48YnI+CiZndDsgQEAgLTI4MjYsNDEgKzI4NDMsNDYgQEAgY291 bnRlciA9IDA8YnI+CiZndDsgIGZuID0gZnVuY3Rpb24ocykgY291bnRlciA9IDA7IHdoaWxlIHRy dWUgZG8gczp3cml0ZSgodG9zdHJpbmcoY291bnRlcikpOnJlcChjaGFuOmdldCgpKSk7IGNvdW50 ZXIgPSBjb3VudGVyICsgMSBlbmQgZW5kPGJyPgomZ3Q7ICAtLS08YnI+CiZndDsgIC4uLjxicj4K Jmd0OyAtc3J2ID0gc29ja2V0LnRjcF9zZXJ2ZXIoJzAuMC4wLjAnLCA4ODg4LCBmbik8YnI+CiZn dDsgK3NydiA9IG5pbDxicj4KJmd0OyAgLS0tPGJyPgomZ3Q7ICAuLi48YnI+CiZndDsgLXMgPSBz b2NrZXQuY29ubmVjdCgnbG9jYWxob3N0JywgODg4OCk8YnI+CiZndDsgK3Rlc3RfcnVuOmNtZCgi c2V0b3B0IGRlbGltaXRlciAnOyciKTxicj4KJmd0OyAgLS0tPGJyPgomZ3Q7ICstIHRydWU8YnI+ CiZndDsgIC4uLjxicj4KJmd0OyAtY2hhbjpwdXQoNSk8YnI+CiZndDsgK3Rlc3RfcnVuOndhaXRf Y29uZChmdW5jdGlvbigpPGJyPgomZ3Q7ICsgICAgcG9ydCA9IDMyNzY4ICsgbWF0aC5yYW5kb20o MCwgMzI3NjcpPGJyPgomZ3Q7ICsgICAgc3J2ID0gc29ja2V0LnRjcF9zZXJ2ZXIoJzAuMC4wLjAn LCBwb3J0LCBmbik8YnI+CiZndDsgKyAgICByZXR1cm4gc3J2IH49IG5pbDxicj4KJmd0OyArZW5k LCAxMDApOzxicj4KJmd0OyAgLS0tPGJyPgomZ3Q7ICAtIHRydWU8YnI+CiZndDsgIC4uLjxicj4K Jmd0OyAtY2hhbjpwdXQoNSk8YnI+CiZndDsgK3JlY2VpdmUxID0gbmlsOyByZWNlaXZlMiA9IG5p bDs8YnI+CiZndDsgIC0tLTxicj4KJmd0OyAtLSB0cnVlPGJyPgomZ3Q7ICAuLi48YnI+CiZndDsg LXM6cmVjZWl2ZSg1KTxicj4KJmd0OyAraWYgc3J2IH49IG5pbCB0aGVuPGJyPgomZ3Q7ICsgICAg cyA9IHNvY2tldC5jb25uZWN0KCdsb2NhbGhvc3QnLCBwb3J0KTxicj4KJmd0OyArICAgIGNoYW46 cHV0KDUpPGJyPgomZ3Q7ICsgICAgY2hhbjpwdXQoNSk8YnI+CiZndDsgKyAgICByZWNlaXZlMSA9 IHM6cmVjZWl2ZSg1KTxicj4KJmd0OyArICAgIGNoYW46cHV0KDUpPGJyPgomZ3Q7ICsgICAgczpz ZXR0aW1lb3V0KDEpPGJyPgomZ3Q7ICsgICAgcmVjZWl2ZTIgPSBzOnJlY2VpdmUoJyphJyk8YnI+ CiZndDsgKyAgICBzOmNsb3NlKCk8YnI+CiZndDsgKyAgICBzcnY6Y2xvc2UoKTxicj4KJmd0OyAr ZW5kOzxicj4KPGJyPgo3LiBIb3cgaXMgaXQgcG9zc2libGUsIHRoYXQgdGhlIHNlcnZlciBzdGls bCBpcyBuaWwgaGVyZT88YnI+CkF0IGxlYXN0IG9uZSBvZiAzMmsgcG9ydHMgc2hvdWxkIGhhdmUg YmVlbiBmcmVlLjxicj4KPGJyPgomZ3Q7ICAtLS08YnI+CiZndDsgLS0gJzAwMDAwJzxicj4KJmd0 OyAgLi4uPGJyPgomZ3Q7IC1jaGFuOnB1dCg1KTxicj4KJmd0OyArdGVzdF9ydW46Y21kKCJzZXRv cHQgZGVsaW1pdGVyICcnIik7PGJyPgomZ3Q7ICAtLS08YnI+CiZndDsgIC0gdHJ1ZTxicj4KJmd0 OyAgLi4uPGJyPgomZ3Q7IC1zOnNldHRpbWVvdXQoMSk8YnI+CiZndDsgK3JlY2VpdmUxPGJyPgom Z3Q7ICAtLS08YnI+CiZndDsgLS0gMTxicj4KJmd0OyArLSAnMDAwMDAnPGJyPgomZ3Q7ICAuLi48 YnI+CiZndDsgLXM6cmVjZWl2ZSgnKmEnKTxicj4KJmd0OyArcmVjZWl2ZTI8YnI+CiZndDsgIC0t LTxicj4KJmd0OyAgLSAnMTExMTEyMjIyMic8YnI+CiZndDsgIC4uLjxicj4KJmd0OyAtczpjbG9z ZSgpPGJyPgomZ3Q7IC0tLS08YnI+CiZndDsgLS0gMTxicj4KJmd0OyAtLi4uPGJyPgomZ3Q7IC1z cnY6Y2xvc2UoKTxicj4KJmd0OyAtLS0tPGJyPgomZ3Q7IC0tIHRydWU8YnI+CiZndDsgLS4uLjxi cj4KPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgIAoJCQoJPC9kaXY+CgoJCjwvZGl2PgoKCjwv ZGl2Pgo8L2Jsb2NrcXVvdGU+Cjxicj4KPGJyPi0tIDxicj5JbHlhIEtvc2FyZXY8YnI+CjwvZGl2 PjwvZGl2PgogICAgICAgICAgICAKICAgICAgICAKCQk8YmFzZSB0YXJnZXQ9Il9zZWxmIiBocmVm PSJodHRwczovL2UubWFpbC5ydS8iPgoJPC9kaXY+CgoJCjwvZGl2PjwvQk9EWT48L0hUTUw+Cg== ----ALT--72PaQMFRntxQ8Rp4pNJ1k1g2fqjiELTz1575648087--