From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f456.i.mail.ru (f456.i.mail.ru [185.5.136.188]) (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 0BCBF430407 for ; Tue, 11 Aug 2020 15:32:19 +0300 (MSK) From: =?UTF-8?B?U2VyZ2UgUGV0cmVua28=?= MIME-Version: 1.0 Date: Tue, 11 Aug 2020 15:32:18 +0300 Reply-To: =?UTF-8?B?U2VyZ2UgUGV0cmVua28=?= Message-ID: <1597149138.527428518@f456.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--bEf5845A833B424598a9eF1a9F21e0561597149138" In-Reply-To: <6fc5876bfde067f19973a5d701b55bf4826f2a9e.1597097775.git.v.shpilevoy@tarantool.org> References: <6fc5876bfde067f19973a5d701b55bf4826f2a9e.1597097775.git.v.shpilevoy@tarantool.org> Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_1/1=5D_box=3A_snapshot_sho?= =?utf-8?q?uld_not_include_rolled_back_data?= 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--bEf5845A833B424598a9eF1a9F21e0561597149138 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkhpIQpUaGFua3MgZm9yIHRoZSBwYXRjaCwgTEdUTS4KLS0KU2VyZ2XCoFBldHJlbmtvCsKgCsKg IAo+0JLRgtC+0YDQvdC40LosIDExINCw0LLQs9GD0YHRgtCwIDIwMjAsIDE6MTggKzAzOjAwINC+ 0YIgVmxhZGlzbGF2IFNocGlsZXZveSA8di5zaHBpbGV2b3lAdGFyYW50b29sLm9yZz46Cj7CoAo+ Qm94LnNuYXBzaG90KCkgY291bGQgaW5jbHVkZSByb2xsZWQgYmFjayBkYXRhIGluIGNhc2Ugc3lu Y2hyb25vdXMKPnRyYW5zYWN0aW9uIFJPTExCQUNLIGFycml2ZWQgZHVyaW5nIFdBTCByb3RhdGlv biBpbiBwcmVwYXJhdGlvbiBvZgo+YSBjaGVja3BvaW50Lgo+Cj5Nb3JlIHNwZWNpZmljYWxseSwg c25hcHNob3QgY29uc2lzdHMgb2YgZml4YXRpbmcgdGhlIGVuZ2luZXMnCj5jb250ZW50IChjcmVh dGlvbiBvZiBhIHJlYWQtdmlldyksIGRvaW5nIFdBTCByb3RhdGlvbiwgYW5kIHdyaXRpbmcKPnRo ZSBzbmFwc2hvdCBpdHNlbGYuIEFsbCBkYXRhIGNoYW5nZXMgYWZ0ZXIgY29udGVudCBmaXhhdGlv biB3b24ndAo+Z28gaW50byB0aGUgc25hcC4gU28gaWYgUk9MTEJBQ0sgYXJyaXZlcyBkdXJpbmcg V0FMIHJvdGF0aW9uLCB0aGUKPmZpeGF0ZWQgY29udGVudCB3aWxsIGhhdmUgcm9sbGVkIGJhY2sg ZGF0YSwgbm90IHByZXNlbnQgaW4gdGhlCj5uZXdlc3QgZGF0YXNldC4KPgo+VGhlIHBhdGNoIG1h a2VzIGl0IGZhaWwgaWYgZHVyaW5nIFdBTCByb3RhdGlvbiBhbnl0aGluZyB3YXMgcm9sbGVkCj5i YWNrLiBUaGUgYnVnIHNvbWV0aW1lcyBhcHBlYXJlZCBpbiBhbiBleGlzdGluZyB0ZXN0IGFib3V0 IHFzeW5jCj5zbmFwc2hvdHMsIGJ1dCB3aXRoIGEgdmVyeSBwb29yIHJlcHJvZHVjaWJpbGl0eS4g SW4gYSBuZXcgdGVzdAo+ZmlsZSBpdCBpcyByZXByb2R1Y2VkIDEwMCUgd2l0aG91dCB0aGUgcGF0 Y2guCj4KPkNsb3NlcyAjNTE2Nwo+LS0tCj5CcmFuY2g6ICBodHRwOi8vZ2l0aHViLmNvbS90YXJh bnRvb2wvdGFyYW50b29sL3RyZWUvZ2Vyb2xkMTAzL2doLTUxNjctZmxha3ktcXN5bmMtc25hcHNo b3RzCj5Jc3N1ZTogIGh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wvdGFyYW50b29sL2lzc3Vl cy81MTY3Cj4KPkBDaGFuZ2VMb2cKPiogU25hcHNob3QgY291bGQgY29udGFpbiBjaGFuZ2VzIGZy b20gYSByb2xsZWQgYmFjayBzeW5jaHJvbm91cyB0cmFuc2FjdGlvbiAoZ2gtNTE2NykuCj4KPsKg c3JjL2JveC9nYy5jIHwgMTIgKy0KPsKgc3JjL2JveC93YWwuYyB8IDQgKwo+wqBzcmMvbGliL2Nv cmUvZXJyaW5qLmggfCAxICsKPsKgdGVzdC9ib3gvZXJyaW5qLnJlc3VsdCB8IDEgKwo+wqAuLi4v Z2gtNTE2Ny1xc3luYy1yb2xsYmFjay1zbmFwLnJlc3VsdCB8IDE2NSArKysrKysrKysrKysrKysr KysKPsKgLi4uL2doLTUxNjctcXN5bmMtcm9sbGJhY2stc25hcC50ZXN0Lmx1YSB8IDY3ICsrKysr KysKPsKgdGVzdC9yZXBsaWNhdGlvbi9zdWl0ZS5pbmkgfCAyICstCj7CoDcgZmlsZXMgY2hhbmdl ZCwgMjUwIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj7CoGNyZWF0ZSBtb2RlIDEwMDY0 NCB0ZXN0L3JlcGxpY2F0aW9uL2doLTUxNjctcXN5bmMtcm9sbGJhY2stc25hcC5yZXN1bHQKPsKg Y3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3QvcmVwbGljYXRpb24vZ2gtNTE2Ny1xc3luYy1yb2xsYmFj ay1zbmFwLnRlc3QubHVhCj4KPmRpZmYgLS1naXQgYS9zcmMvYm94L2djLmMgYi9zcmMvYm94L2dj LmMKPmluZGV4IGQ1MGE2NGQ2Ni4uNzZmN2M2MzI1IDEwMDY0NAo+LS0tIGEvc3JjL2JveC9nYy5j Cj4rKysgYi9zcmMvYm94L2djLmMKPkBAIC0zODIsNiArMzgyLDcgQEAgZ2NfZG9fY2hlY2twb2lu dChib29sIGlzX3NjaGVkdWxlZCkKPsKgewo+wqAgaW50IHJjOwo+wqAgc3RydWN0IHdhbF9jaGVj a3BvaW50IGNoZWNrcG9pbnQ7Cj4rIGludDY0X3QgbGltYm9fcm9sbGJhY2tfY291bnQgPSB0eG5f bGltYm8ucm9sbGJhY2tfY291bnQ7Cj7CoAo+wqAgYXNzZXJ0KCFnYy5jaGVja3BvaW50X2lzX2lu X3Byb2dyZXNzKTsKPsKgIGdjLmNoZWNrcG9pbnRfaXNfaW5fcHJvZ3Jlc3MgPSB0cnVlOwo+QEAg LTM5Niw3ICszOTcsMTYgQEAgZ2NfZG9fY2hlY2twb2ludChib29sIGlzX3NjaGVkdWxlZCkKPsKg IHJjID0gd2FsX2JlZ2luX2NoZWNrcG9pbnQoJmNoZWNrcG9pbnQpOwo+wqAgaWYgKHJjICE9IDAp Cj7CoCBnb3RvIG91dDsKPi0KPisgLyoKPisgKiBDaGVjayBpZiB0aGUgY2hlY2twb2ludCBjb250 YWlucyByb2xsZWQgYmFjayBkYXRhLiBUaGF0IG1ha2VzIHRoZQo+KyAqIGNoZWNrcG9pbnQgbm90 IHNlbGYtc3VmZmljaWVudCAtIGl0IG5lZWRzIHRoZSB4bG9nIGZpbGUgd2l0aAo+KyAqIFJPTExC QUNLLiBEcm9wIGl0Lgo+KyAqLwo+KyBpZiAodHhuX2xpbWJvLnJvbGxiYWNrX2NvdW50ICE9IGxp bWJvX3JvbGxiYWNrX2NvdW50KSB7Cj4rIHJjID0gLTE7Cj4rIGRpYWdfc2V0KENsaWVudEVycm9y LCBFUl9TWU5DX1JPTExCQUNLKTsKPisgZ290byBvdXQ7Cj4rIH0KPsKgIC8qCj7CoCAqIFdhaXQg dGhlIGNvbmZpcm1zIG9uIGFsbCAic3luYyIgdHJhbnNhY3Rpb25zIGJlZm9yZQo+wqAgKiBjcmVh dGUgYSBzbmFwc2hvdC4KPmRpZmYgLS1naXQgYS9zcmMvYm94L3dhbC5jIGIvc3JjL2JveC93YWwu Ywo+aW5kZXggMjIwZTY4MjQ1Li5kOGM5MmFhMzYgMTAwNjQ0Cj4tLS0gYS9zcmMvYm94L3dhbC5j Cj4rKysgYi9zcmMvYm94L3dhbC5jCj5AQCAtNjYyLDYgKzY2Miw3IEBAIHdhbF9iZWdpbl9jaGVj a3BvaW50X2Yoc3RydWN0IGNidXNfY2FsbF9tc2cgKmRhdGEpCj7CoCB9Cj7CoCB2Y2xvY2tfY29w eSgmbXNnLT52Y2xvY2ssICZ3cml0ZXItPnZjbG9jayk7Cj7CoCBtc2ctPndhbF9zaXplID0gd3Jp dGVyLT5jaGVja3BvaW50X3dhbF9zaXplOwo+KyBFUlJPUl9JTkpFQ1RfU0xFRVAoRVJSSU5KX1dB TF9ERUxBWSk7Cj7CoCByZXR1cm4gMDsKPsKgfQo+wqAKPkBAIC0xMjcyLDYgKzEyNzMsOSBAQCB3 YWxfd3JpdGVfYXN5bmMoc3RydWN0IGpvdXJuYWwgKmpvdXJuYWwsIHN0cnVjdCBqb3VybmFsX2Vu dHJ5ICplbnRyeSkKPsKgIHdyaXRlci0+bGFzdF9lbnRyeSA9IGVudHJ5Owo+wqAgYmF0Y2gtPmFw cHJveF9sZW4gKz0gZW50cnktPmFwcHJveF9sZW47Cj7CoCB3cml0ZXItPndhbF9waXBlLm5faW5w dXQgKz0gZW50cnktPm5fcm93cyAqIFhST1dfSU9WTUFYOwo+KyNpZm5kZWYgTkRFQlVHCj4rICsr ZXJyaW5qKEVSUklOSl9XQUxfV1JJVEVfQ09VTlQsIEVSUklOSl9JTlQpLT5pcGFyYW07Cj4rI2Vu ZGlmCj7CoCBjcGlwZV9mbHVzaF9pbnB1dCgmd3JpdGVyLT53YWxfcGlwZSk7Cj7CoCByZXR1cm4g MDsKPsKgCj5kaWZmIC0tZ2l0IGEvc3JjL2xpYi9jb3JlL2Vycmluai5oIGIvc3JjL2xpYi9jb3Jl L2Vycmluai5oCj5pbmRleCBhYWNlODczNmYuLjgxNGM1N2MyZSAxMDA2NDQKPi0tLSBhL3NyYy9s aWIvY29yZS9lcnJpbmouaAo+KysrIGIvc3JjL2xpYi9jb3JlL2Vycmluai5oCj5AQCAtODIsNiAr ODIsNyBAQCBzdHJ1Y3QgZXJyaW5qIHsKPsKgIF8oRVJSSU5KX1dBTF9ERUxBWSwgRVJSSU5KX0JP T0wsIHsuYnBhcmFtID0gZmFsc2V9KSBcCj7CoCBfKEVSUklOSl9XQUxfREVMQVlfQ09VTlRET1dO LCBFUlJJTkpfSU5ULCB7LmlwYXJhbSA9IC0xfSkgXAo+wqAgXyhFUlJJTkpfV0FMX0ZBTExPQ0FU RSwgRVJSSU5KX0lOVCwgey5pcGFyYW0gPSAwfSkgXAo+KyBfKEVSUklOSl9XQUxfV1JJVEVfQ09V TlQsIEVSUklOSl9JTlQsIHsuaXBhcmFtID0gMH0pIFwKPsKgIF8oRVJSSU5KX0lOREVYX0FMTE9D LCBFUlJJTkpfQk9PTCwgey5icGFyYW0gPSBmYWxzZX0pIFwKPsKgIF8oRVJSSU5KX1RVUExFX0FM TE9DLCBFUlJJTkpfQk9PTCwgey5icGFyYW0gPSBmYWxzZX0pIFwKPsKgIF8oRVJSSU5KX1RVUExF X0ZJRUxELCBFUlJJTkpfQk9PTCwgey5icGFyYW0gPSBmYWxzZX0pIFwKPmRpZmYgLS1naXQgYS90 ZXN0L2JveC9lcnJpbmoucmVzdWx0IGIvdGVzdC9ib3gvZXJyaW5qLnJlc3VsdAo+aW5kZXggNGJl YTBmNDZmLi42MTNkMjJjNTEgMTAwNjQ0Cj4tLS0gYS90ZXN0L2JveC9lcnJpbmoucmVzdWx0Cj4r KysgYi90ZXN0L2JveC9lcnJpbmoucmVzdWx0Cj5AQCAtMTE0LDYgKzExNCw3IEBAIGV2YWxzCj7C oMKgwqAtIEVSUklOSl9XQUxfUk9UQVRFOiBmYWxzZQo+wqDCoMKgLSBFUlJJTkpfV0FMX1NZTkM6 IGZhbHNlCj7CoMKgwqAtIEVSUklOSl9XQUxfV1JJVEU6IGZhbHNlCj4rIC0gRVJSSU5KX1dBTF9X UklURV9DT1VOVDogMwo+wqDCoMKgLSBFUlJJTkpfV0FMX1dSSVRFX0RJU0s6IGZhbHNlCj7CoMKg wqAtIEVSUklOSl9XQUxfV1JJVEVfRU9GOiBmYWxzZQo+wqDCoMKgLSBFUlJJTkpfV0FMX1dSSVRF X1BBUlRJQUw6IC0xCj5kaWZmIC0tZ2l0IGEvdGVzdC9yZXBsaWNhdGlvbi9naC01MTY3LXFzeW5j LXJvbGxiYWNrLXNuYXAucmVzdWx0IGIvdGVzdC9yZXBsaWNhdGlvbi9naC01MTY3LXFzeW5jLXJv bGxiYWNrLXNuYXAucmVzdWx0Cj5uZXcgZmlsZSBtb2RlIDEwMDY0NAo+aW5kZXggMDAwMDAwMDAw Li4wNmY1ODUyNmMKPi0tLSAvZGV2L251bGwKPisrKyBiL3Rlc3QvcmVwbGljYXRpb24vZ2gtNTE2 Ny1xc3luYy1yb2xsYmFjay1zbmFwLnJlc3VsdAo+QEAgLTAsMCArMSwxNjUgQEAKPistLSB0ZXN0 LXJ1biByZXN1bHQgZmlsZSB2ZXJzaW9uIDIKPit0ZXN0X3J1biA9IHJlcXVpcmUoJ3Rlc3RfcnVu JykubmV3KCkKPisgfCAtLS0KPisgfCAuLi4KPitlbmdpbmUgPSB0ZXN0X3J1bjpnZXRfY2ZnKCdl bmdpbmUnKQo+KyB8IC0tLQo+KyB8IC4uLgo+Kwo+K29yaWdfc3luY2hyb19xdW9ydW0gPSBib3gu Y2ZnLnJlcGxpY2F0aW9uX3N5bmNocm9fcXVvcnVtCj4rIHwgLS0tCj4rIHwgLi4uCj4rb3JpZ19z eW5jaHJvX3RpbWVvdXQgPSBib3guY2ZnLnJlcGxpY2F0aW9uX3N5bmNocm9fdGltZW91dAo+KyB8 IC0tLQo+KyB8IC4uLgo+K2JveC5zY2hlbWEudXNlci5ncmFudCgnZ3Vlc3QnLCAnc3VwZXInKQo+ KyB8IC0tLQo+KyB8IC4uLgo+Kwo+K3Rlc3RfcnVuOmNtZCgnY3JlYXRlIHNlcnZlciByZXBsaWNh IHdpdGggcnBsX21hc3Rlcj1kZWZhdWx0LFwKPisgc2NyaXB0PSJyZXBsaWNhdGlvbi9yZXBsaWNh Lmx1YSInKQo+KyB8IC0tLQo+KyB8IC0gdHJ1ZQo+KyB8IC4uLgo+K3Rlc3RfcnVuOmNtZCgnc3Rh cnQgc2VydmVyIHJlcGxpY2Egd2l0aCB3YWl0PVRydWUsIHdhaXRfbG9hZD1UcnVlJykKPisgfCAt LS0KPisgfCAtIHRydWUKPisgfCAuLi4KPisKPistLQo+Ky0tIGdoLTUxNjc6Cj4rLS0KPitmaWJl ciA9IHJlcXVpcmUoJ2ZpYmVyJykKPisgfCAtLS0KPisgfCAuLi4KPitib3guY2Zne3JlcGxpY2F0 aW9uX3N5bmNocm9fcXVvcnVtID0gMiwgcmVwbGljYXRpb25fc3luY2hyb190aW1lb3V0ID0gMTAw MH0KPisgfCAtLS0KPisgfCAuLi4KPitfID0gYm94LnNjaGVtYS5zcGFjZS5jcmVhdGUoJ3N5bmMn LCB7aXNfc3luYyA9IHRydWUsIGVuZ2luZSA9IGVuZ2luZX0pCj4rIHwgLS0tCj4rIHwgLi4uCj4r XyA9IGJveC5zcGFjZS5zeW5jOmNyZWF0ZV9pbmRleCgncGsnKQo+KyB8IC0tLQo+KyB8IC4uLgo+ Ky0tIFdyaXRlIHNvbWV0aGluZyB0byBmbHVzaCB0aGUgY3VycmVudCBtYXN0ZXIncyBzdGF0ZSB0 byByZXBsaWNhLgo+K18gPSBib3guc3BhY2Uuc3luYzppbnNlcnR7MX0KPisgfCAtLS0KPisgfCAu Li4KPitfID0gYm94LnNwYWNlLnN5bmM6ZGVsZXRlezF9Cj4rIHwgLS0tCj4rIHwgLi4uCj4rCj4r Ym94LmNmZ3tyZXBsaWNhdGlvbl9zeW5jaHJvX3F1b3J1bSA9IDN9Cj4rIHwgLS0tCj4rIHwgLi4u Cj4rb2ssIGVyciA9IG5pbAo+KyB8IC0tLQo+KyB8IC4uLgo+K2YgPSBmaWJlci5jcmVhdGUoZnVu Y3Rpb24oKSBcCj4rIG9rLCBlcnIgPSBwY2FsbChib3guc3BhY2Uuc3luYy5pbnNlcnQsIGJveC5z cGFjZS5zeW5jLCB7MX0pIFwKPitlbmQpCj4rIHwgLS0tCj4rIHwgLi4uCj4rCj4rdGVzdF9ydW46 c3dpdGNoKCdyZXBsaWNhJykKPisgfCAtLS0KPisgfCAtIHRydWUKPisgfCAuLi4KPitmaWJlciA9 IHJlcXVpcmUoJ2ZpYmVyJykKPisgfCAtLS0KPisgfCAuLi4KPit0ZXN0X3J1bjp3YWl0X2NvbmQo ZnVuY3Rpb24oKSByZXR1cm4gYm94LnNwYWNlLnN5bmM6Y291bnQoKSA9PSAxIGVuZCkKPisgfCAt LS0KPisgfCAtIHRydWUKPisgfCAuLi4KPistLSBTbmFwc2hvdCB3aWxsIHN0dWNrIGluIFdBTCB0 aHJlYWQgb24gcm90YXRpb24gYmVmb3JlIHN0YXJ0aW5nIHdhaXQgb24gdGhlCj4rLS0gbGltYm8u Cj4rYm94LmVycm9yLmluamVjdGlvbi5zZXQoIkVSUklOSl9XQUxfREVMQVkiLCB0cnVlKQo+KyB8 IC0tLQo+KyB8IC0gb2sKPisgfCAuLi4KPit3YWxfd3JpdGVfY291bnQgPSBib3guZXJyb3IuaW5q ZWN0aW9uLmdldCgiRVJSSU5KX1dBTF9XUklURV9DT1VOVCIpCj4rIHwgLS0tCj4rIHwgLi4uCj4r b2ssIGVyciA9IG5pbAo+KyB8IC0tLQo+KyB8IC4uLgo+K2YgPSBmaWJlci5jcmVhdGUoZnVuY3Rp b24oKSBvaywgZXJyID0gcGNhbGwoYm94LnNuYXBzaG90KSBlbmQpCj4rIHwgLS0tCj4rIHwgLi4u Cj4rCj4rdGVzdF9ydW46c3dpdGNoKCdkZWZhdWx0JykKPisgfCAtLS0KPisgfCAtIHRydWUKPisg fCAuLi4KPitib3guY2Zne3JlcGxpY2F0aW9uX3N5bmNocm9fdGltZW91dCA9IDAuMDAwMX0KPisg fCAtLS0KPisgfCAuLi4KPit0ZXN0X3J1bjp3YWl0X2NvbmQoZnVuY3Rpb24oKSByZXR1cm4gZjpz dGF0dXMoKSA9PSAnZGVhZCcgZW5kKQo+KyB8IC0tLQo+KyB8IC0gdHJ1ZQo+KyB8IC4uLgo+K29r LCBlcnIKPisgfCAtLS0KPisgfCAtIGZhbHNlCj4rIHwgLSBRdW9ydW0gY29sbGVjdGlvbiBmb3Ig YSBzeW5jaHJvbm91cyB0cmFuc2FjdGlvbiBpcyB0aW1lZCBvdXQKPisgfCAuLi4KPitib3guc3Bh Y2Uuc3luYzpzZWxlY3R7fQo+KyB8IC0tLQo+KyB8IC0gW10KPisgfCAuLi4KPisKPit0ZXN0X3J1 bjpzd2l0Y2goJ3JlcGxpY2EnKQo+KyB8IC0tLQo+KyB8IC0gdHJ1ZQo+KyB8IC4uLgo+Ky0tIFJv bGxiYWNrIHdhcyByZWNlaXZlZC4gTm90ZSwgaXQgaXMgbm90IGxlZ2l0IHRvIGxvb2sgZm9yIHNw YWNlOmNvdW50KCkgPT0gMC4KPistLSBCZWNhdXNlIGlkZWFsbHkgUk9MTEJBQ0sgc2hvdWxkIG5v dCBiZSBhcHBsaWVkIGJlZm9yZSB3cml0dGVuIHRvIFdBTC4gVGhhdAo+Ky0tIG1lYW5zIGNvdW50 KCkgd2lsbCBiZSA+IDAgdW50aWwgV0FMIHdyaXRlIHN1Y2NlZWRzLgo+K3Rlc3RfcnVuOndhaXRf Y29uZChmdW5jdGlvbigpIFwKPisgcmV0dXJuIGJveC5lcnJvci5pbmplY3Rpb24uZ2V0KCJFUlJJ TkpfV0FMX1dSSVRFX0NPVU5UIikgPiB3YWxfd3JpdGVfY291bnQgXAo+K2VuZCkKPisgfCAtLS0K PisgfCAtIHRydWUKPisgfCAuLi4KPistLSBOb3cgV0FMIHJvdGF0aW9uIGlzIGRvbmUuIFNuYXBz aG90IHdpbGwgZmFpbCwgYmVjYXVzZSB3aWxsIHNlZSB0aGF0IGEKPistLSByb2xsYmFjayBoYXBw ZW5lZCBkdXJpbmcgdGhhdC4gTWVhbmluZyB0aGF0IHRoZSByb3RhdGVkIFdBTCBjb250YWlucwo+ Ky0tIG5vdCBjb25maXJtZWQgZGF0YSwgYW5kIGl0IGNhbid0IGJlIHVzZWQgYXMgYSBjaGVja3Bv aW50Lgo+K2JveC5lcnJvci5pbmplY3Rpb24uc2V0KCJFUlJJTkpfV0FMX0RFTEFZIiwgZmFsc2Up Cj4rIHwgLS0tCj4rIHwgLSBvawo+KyB8IC4uLgo+K3Rlc3RfcnVuOndhaXRfY29uZChmdW5jdGlv bigpIHJldHVybiBmOnN0YXR1cygpID09ICdkZWFkJyBlbmQpCj4rIHwgLS0tCj4rIHwgLSB0cnVl Cj4rIHwgLi4uCj4rb2ssIGVycgo+KyB8IC0tLQo+KyB8IC0gZmFsc2UKPisgfCAtIEEgcm9sbGJh Y2sgZm9yIGEgc3luY2hyb25vdXMgdHJhbnNhY3Rpb24gaXMgcmVjZWl2ZWQKPisgfCAuLi4KPisK Pit0ZXN0X3J1bjpzd2l0Y2goJ2RlZmF1bHQnKQo+KyB8IC0tLQo+KyB8IC0gdHJ1ZQo+KyB8IC4u Lgo+K2JveC5zcGFjZS5zeW5jOmRyb3AoKQo+KyB8IC0tLQo+KyB8IC4uLgo+K3Rlc3RfcnVuOmNt ZCgnc3RvcCBzZXJ2ZXIgcmVwbGljYScpCj4rIHwgLS0tCj4rIHwgLSB0cnVlCj4rIHwgLi4uCj4r dGVzdF9ydW46Y21kKCdkZWxldGUgc2VydmVyIHJlcGxpY2EnKQo+KyB8IC0tLQo+KyB8IC0gdHJ1 ZQo+KyB8IC4uLgo+K2JveC5zY2hlbWEudXNlci5yZXZva2UoJ2d1ZXN0JywgJ3N1cGVyJykKPisg fCAtLS0KPisgfCAuLi4KPitib3guY2ZneyBcCj4rIHJlcGxpY2F0aW9uX3N5bmNocm9fcXVvcnVt ID0gb3JpZ19zeW5jaHJvX3F1b3J1bSwgXAo+KyByZXBsaWNhdGlvbl9zeW5jaHJvX3RpbWVvdXQg PSBvcmlnX3N5bmNocm9fdGltZW91dCwgXAo+K30KPisgfCAtLS0KPisgfCAuLi4KPmRpZmYgLS1n aXQgYS90ZXN0L3JlcGxpY2F0aW9uL2doLTUxNjctcXN5bmMtcm9sbGJhY2stc25hcC50ZXN0Lmx1 YSBiL3Rlc3QvcmVwbGljYXRpb24vZ2gtNTE2Ny1xc3luYy1yb2xsYmFjay1zbmFwLnRlc3QubHVh Cj5uZXcgZmlsZSBtb2RlIDEwMDY0NAo+aW5kZXggMDAwMDAwMDAwLi40NzU3MjdlNjEKPi0tLSAv ZGV2L251bGwKPisrKyBiL3Rlc3QvcmVwbGljYXRpb24vZ2gtNTE2Ny1xc3luYy1yb2xsYmFjay1z bmFwLnRlc3QubHVhCj5AQCAtMCwwICsxLDY3IEBACj4rdGVzdF9ydW4gPSByZXF1aXJlKCd0ZXN0 X3J1bicpLm5ldygpCj4rZW5naW5lID0gdGVzdF9ydW46Z2V0X2NmZygnZW5naW5lJykKPisKPitv cmlnX3N5bmNocm9fcXVvcnVtID0gYm94LmNmZy5yZXBsaWNhdGlvbl9zeW5jaHJvX3F1b3J1bQo+ K29yaWdfc3luY2hyb190aW1lb3V0ID0gYm94LmNmZy5yZXBsaWNhdGlvbl9zeW5jaHJvX3RpbWVv dXQKPitib3guc2NoZW1hLnVzZXIuZ3JhbnQoJ2d1ZXN0JywgJ3N1cGVyJykKPisKPit0ZXN0X3J1 bjpjbWQoJ2NyZWF0ZSBzZXJ2ZXIgcmVwbGljYSB3aXRoIHJwbF9tYXN0ZXI9ZGVmYXVsdCxcCj4r IHNjcmlwdD0icmVwbGljYXRpb24vcmVwbGljYS5sdWEiJykKPit0ZXN0X3J1bjpjbWQoJ3N0YXJ0 IHNlcnZlciByZXBsaWNhIHdpdGggd2FpdD1UcnVlLCB3YWl0X2xvYWQ9VHJ1ZScpCj4rCj4rLS0K PistLSBnaC01MTY3Ogo+Ky0tCj4rZmliZXIgPSByZXF1aXJlKCdmaWJlcicpCj4rYm94LmNmZ3ty ZXBsaWNhdGlvbl9zeW5jaHJvX3F1b3J1bSA9IDIsIHJlcGxpY2F0aW9uX3N5bmNocm9fdGltZW91 dCA9IDEwMDB9Cj4rXyA9IGJveC5zY2hlbWEuc3BhY2UuY3JlYXRlKCdzeW5jJywge2lzX3N5bmMg PSB0cnVlLCBlbmdpbmUgPSBlbmdpbmV9KQo+K18gPSBib3guc3BhY2Uuc3luYzpjcmVhdGVfaW5k ZXgoJ3BrJykKPistLSBXcml0ZSBzb21ldGhpbmcgdG8gZmx1c2ggdGhlIGN1cnJlbnQgbWFzdGVy J3Mgc3RhdGUgdG8gcmVwbGljYS4KPitfID0gYm94LnNwYWNlLnN5bmM6aW5zZXJ0ezF9Cj4rXyA9 IGJveC5zcGFjZS5zeW5jOmRlbGV0ZXsxfQo+Kwo+K2JveC5jZmd7cmVwbGljYXRpb25fc3luY2hy b19xdW9ydW0gPSAzfQo+K29rLCBlcnIgPSBuaWwKPitmID0gZmliZXIuY3JlYXRlKGZ1bmN0aW9u KCkgXAo+KyBvaywgZXJyID0gcGNhbGwoYm94LnNwYWNlLnN5bmMuaW5zZXJ0LCBib3guc3BhY2Uu c3luYywgezF9KSBcCj4rZW5kKQo+Kwo+K3Rlc3RfcnVuOnN3aXRjaCgncmVwbGljYScpCj4rZmli ZXIgPSByZXF1aXJlKCdmaWJlcicpCj4rdGVzdF9ydW46d2FpdF9jb25kKGZ1bmN0aW9uKCkgcmV0 dXJuIGJveC5zcGFjZS5zeW5jOmNvdW50KCkgPT0gMSBlbmQpCj4rLS0gU25hcHNob3Qgd2lsbCBz dHVjayBpbiBXQUwgdGhyZWFkIG9uIHJvdGF0aW9uIGJlZm9yZSBzdGFydGluZyB3YWl0IG9uIHRo ZQo+Ky0tIGxpbWJvLgo+K2JveC5lcnJvci5pbmplY3Rpb24uc2V0KCJFUlJJTkpfV0FMX0RFTEFZ IiwgdHJ1ZSkKPit3YWxfd3JpdGVfY291bnQgPSBib3guZXJyb3IuaW5qZWN0aW9uLmdldCgiRVJS SU5KX1dBTF9XUklURV9DT1VOVCIpCj4rb2ssIGVyciA9IG5pbAo+K2YgPSBmaWJlci5jcmVhdGUo ZnVuY3Rpb24oKSBvaywgZXJyID0gcGNhbGwoYm94LnNuYXBzaG90KSBlbmQpCj4rCj4rdGVzdF9y dW46c3dpdGNoKCdkZWZhdWx0JykKPitib3guY2Zne3JlcGxpY2F0aW9uX3N5bmNocm9fdGltZW91 dCA9IDAuMDAwMX0KPit0ZXN0X3J1bjp3YWl0X2NvbmQoZnVuY3Rpb24oKSByZXR1cm4gZjpzdGF0 dXMoKSA9PSAnZGVhZCcgZW5kKQo+K29rLCBlcnIKPitib3guc3BhY2Uuc3luYzpzZWxlY3R7fQo+ Kwo+K3Rlc3RfcnVuOnN3aXRjaCgncmVwbGljYScpCj4rLS0gUm9sbGJhY2sgd2FzIHJlY2VpdmVk LiBOb3RlLCBpdCBpcyBub3QgbGVnaXQgdG8gbG9vayBmb3Igc3BhY2U6Y291bnQoKSA9PSAwLgo+ Ky0tIEJlY2F1c2UgaWRlYWxseSBST0xMQkFDSyBzaG91bGQgbm90IGJlIGFwcGxpZWQgYmVmb3Jl IHdyaXR0ZW4gdG8gV0FMLiBUaGF0Cj4rLS0gbWVhbnMgY291bnQoKSB3aWxsIGJlID4gMCB1bnRp bCBXQUwgd3JpdGUgc3VjY2VlZHMuCj4rdGVzdF9ydW46d2FpdF9jb25kKGZ1bmN0aW9uKCkgXAo+ KyByZXR1cm4gYm94LmVycm9yLmluamVjdGlvbi5nZXQoIkVSUklOSl9XQUxfV1JJVEVfQ09VTlQi KSA+IHdhbF93cml0ZV9jb3VudCBcCj4rZW5kKQo+Ky0tIE5vdyBXQUwgcm90YXRpb24gaXMgZG9u ZS4gU25hcHNob3Qgd2lsbCBmYWlsLCBiZWNhdXNlIHdpbGwgc2VlIHRoYXQgYQo+Ky0tIHJvbGxi YWNrIGhhcHBlbmVkIGR1cmluZyB0aGF0LiBNZWFuaW5nIHRoYXQgdGhlIHJvdGF0ZWQgV0FMIGNv bnRhaW5zCj4rLS0gbm90IGNvbmZpcm1lZCBkYXRhLCBhbmQgaXQgY2FuJ3QgYmUgdXNlZCBhcyBh IGNoZWNrcG9pbnQuCj4rYm94LmVycm9yLmluamVjdGlvbi5zZXQoIkVSUklOSl9XQUxfREVMQVki LCBmYWxzZSkKPit0ZXN0X3J1bjp3YWl0X2NvbmQoZnVuY3Rpb24oKSByZXR1cm4gZjpzdGF0dXMo KSA9PSAnZGVhZCcgZW5kKQo+K29rLCBlcnIKPisKPit0ZXN0X3J1bjpzd2l0Y2goJ2RlZmF1bHQn KQo+K2JveC5zcGFjZS5zeW5jOmRyb3AoKQo+K3Rlc3RfcnVuOmNtZCgnc3RvcCBzZXJ2ZXIgcmVw bGljYScpCj4rdGVzdF9ydW46Y21kKCdkZWxldGUgc2VydmVyIHJlcGxpY2EnKQo+K2JveC5zY2hl bWEudXNlci5yZXZva2UoJ2d1ZXN0JywgJ3N1cGVyJykKPitib3guY2ZneyBcCj4rIHJlcGxpY2F0 aW9uX3N5bmNocm9fcXVvcnVtID0gb3JpZ19zeW5jaHJvX3F1b3J1bSwgXAo+KyByZXBsaWNhdGlv bl9zeW5jaHJvX3RpbWVvdXQgPSBvcmlnX3N5bmNocm9fdGltZW91dCwgXAo+K30KPmRpZmYgLS1n aXQgYS90ZXN0L3JlcGxpY2F0aW9uL3N1aXRlLmluaSBiL3Rlc3QvcmVwbGljYXRpb24vc3VpdGUu aW5pCj5pbmRleCA3M2Y3M2ViODkuLjI0NzI4OWQ1OCAxMDA2NDQKPi0tLSBhL3Rlc3QvcmVwbGlj YXRpb24vc3VpdGUuaW5pCj4rKysgYi90ZXN0L3JlcGxpY2F0aW9uL3N1aXRlLmluaQo+QEAgLTMs NyArMyw3IEBAIGNvcmUgPSB0YXJhbnRvb2wKPsKgc2NyaXB0ID0gbWFzdGVyLmx1YQo+wqBkZXNj cmlwdGlvbiA9IHRhcmFudG9vbC9ib3gsIHJlcGxpY2F0aW9uCj7CoGRpc2FibGVkID0gY29uc2lz dGVudC50ZXN0Lmx1YQo+LXJlbGVhc2VfZGlzYWJsZWQgPSBjYXRjaC50ZXN0Lmx1YSBlcnJpbmou dGVzdC5sdWEgZ2MudGVzdC5sdWEgZ2Nfbm9fc3BhY2UudGVzdC5sdWEgYmVmb3JlX3JlcGxhY2Uu dGVzdC5sdWEgcXN5bmNfYWR2YW5jZWQudGVzdC5sdWEgcXN5bmNfZXJyaW5qLnRlc3QubHVhIHF1 b3J1bS50ZXN0Lmx1YSByZWNvdmVyX21pc3NpbmdfeGxvZy50ZXN0Lmx1YSBzeW5jLnRlc3QubHVh IGxvbmdfcm93X3RpbWVvdXQudGVzdC5sdWEgZ2gtNDczOS12Y2xvY2stYXNzZXJ0LnRlc3QubHVh IGdoLTQ3MzAtYXBwbGllci1yb2xsYmFjay50ZXN0Lmx1YSBnaC01MTQwLXFzeW5jLWNhc2Mtcm9s bGJhY2sudGVzdC5sdWEgZ2gtNTE0NC1xc3luYy1kdXAtY29uZmlybS50ZXN0Lmx1YQo+K3JlbGVh c2VfZGlzYWJsZWQgPSBjYXRjaC50ZXN0Lmx1YSBlcnJpbmoudGVzdC5sdWEgZ2MudGVzdC5sdWEg Z2Nfbm9fc3BhY2UudGVzdC5sdWEgYmVmb3JlX3JlcGxhY2UudGVzdC5sdWEgcXN5bmNfYWR2YW5j ZWQudGVzdC5sdWEgcXN5bmNfZXJyaW5qLnRlc3QubHVhIHF1b3J1bS50ZXN0Lmx1YSByZWNvdmVy X21pc3NpbmdfeGxvZy50ZXN0Lmx1YSBzeW5jLnRlc3QubHVhIGxvbmdfcm93X3RpbWVvdXQudGVz dC5sdWEgZ2gtNDczOS12Y2xvY2stYXNzZXJ0LnRlc3QubHVhIGdoLTQ3MzAtYXBwbGllci1yb2xs YmFjay50ZXN0Lmx1YSBnaC01MTQwLXFzeW5jLWNhc2Mtcm9sbGJhY2sudGVzdC5sdWEgZ2gtNTE0 NC1xc3luYy1kdXAtY29uZmlybS50ZXN0Lmx1YSBnaC01MTY3LXJvbGxiYWNrLXNuYXAudGVzdC5s dWEKPsKgY29uZmlnID0gc3VpdGUuY2ZnCj7CoGx1YV9saWJzID0gbHVhL2Zhc3RfcmVwbGljYS5s dWEgbHVhL3JsaW1pdC5sdWEKPsKgdXNlX3VuaXhfc29ja2V0cyA9IFRydWUKPi0tCj4yLjIxLjEg KEFwcGxlIEdpdC0xMjIuMykKPsKgCsKg ----ALT--bEf5845A833B424598a9eF1a9F21e0561597149138 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+SGkhPGJyPlRoYW5rcyBmb3IgdGhlIHBhdGNoLCBMR1RNLjwvZGl2 PjxkaXYgZGF0YS1zaWduYXR1cmUtd2lkZ2V0PSJjb250YWluZXIiPjxkaXYgZGF0YS1zaWduYXR1 cmUtd2lkZ2V0PSJjb250ZW50Ij48ZGl2Pi0tPGJyPlNlcmdlJm5ic3A7UGV0cmVua288L2Rpdj48 L2Rpdj48L2Rpdj48ZGl2PiZuYnNwOzwvZGl2PjxkaXY+Jm5ic3A7PC9kaXY+PGJsb2NrcXVvdGUg c3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGlu ZzowIDAgMCAxMHB4OyI+0JLRgtC+0YDQvdC40LosIDExINCw0LLQs9GD0YHRgtCwIDIwMjAsIDE6 MTggKzAzOjAwINC+0YIgVmxhZGlzbGF2IFNocGlsZXZveSAmbHQ7di5zaHBpbGV2b3lAdGFyYW50 b29sLm9yZyZndDs6PGJyPiZuYnNwOzxkaXYgaWQ9IiI+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpz LXJlYWRtc2ctbXNnIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwvc3R5bGU+PGRpdj48ZGl2IGlk PSJzdHlsZV8xNTk3MDk3ODg2MDAyMDQyODE0Nl9CT0RZIj5Cb3guc25hcHNob3QoKSBjb3VsZCBp bmNsdWRlIHJvbGxlZCBiYWNrIGRhdGEgaW4gY2FzZSBzeW5jaHJvbm91czxicj50cmFuc2FjdGlv biBST0xMQkFDSyBhcnJpdmVkIGR1cmluZyBXQUwgcm90YXRpb24gaW4gcHJlcGFyYXRpb24gb2Y8 YnI+YSBjaGVja3BvaW50Ljxicj48YnI+TW9yZSBzcGVjaWZpY2FsbHksIHNuYXBzaG90IGNvbnNp c3RzIG9mIGZpeGF0aW5nIHRoZSBlbmdpbmVzJzxicj5jb250ZW50IChjcmVhdGlvbiBvZiBhIHJl YWQtdmlldyksIGRvaW5nIFdBTCByb3RhdGlvbiwgYW5kIHdyaXRpbmc8YnI+dGhlIHNuYXBzaG90 IGl0c2VsZi4gQWxsIGRhdGEgY2hhbmdlcyBhZnRlciBjb250ZW50IGZpeGF0aW9uIHdvbid0PGJy PmdvIGludG8gdGhlIHNuYXAuIFNvIGlmIFJPTExCQUNLIGFycml2ZXMgZHVyaW5nIFdBTCByb3Rh dGlvbiwgdGhlPGJyPmZpeGF0ZWQgY29udGVudCB3aWxsIGhhdmUgcm9sbGVkIGJhY2sgZGF0YSwg bm90IHByZXNlbnQgaW4gdGhlPGJyPm5ld2VzdCBkYXRhc2V0Ljxicj48YnI+VGhlIHBhdGNoIG1h a2VzIGl0IGZhaWwgaWYgZHVyaW5nIFdBTCByb3RhdGlvbiBhbnl0aGluZyB3YXMgcm9sbGVkPGJy PmJhY2suIFRoZSBidWcgc29tZXRpbWVzIGFwcGVhcmVkIGluIGFuIGV4aXN0aW5nIHRlc3QgYWJv dXQgcXN5bmM8YnI+c25hcHNob3RzLCBidXQgd2l0aCBhIHZlcnkgcG9vciByZXByb2R1Y2liaWxp dHkuIEluIGEgbmV3IHRlc3Q8YnI+ZmlsZSBpdCBpcyByZXByb2R1Y2VkIDEwMCUgd2l0aG91dCB0 aGUgcGF0Y2guPGJyPjxicj5DbG9zZXMgIzUxNjc8YnI+LS0tPGJyPkJyYW5jaDogPGEgaHJlZj0i aHR0cDovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC90cmVlL2dlcm9sZDEwMy9naC01 MTY3LWZsYWt5LXFzeW5jLXNuYXBzaG90cyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly9naXRodWIu Y29tL3RhcmFudG9vbC90YXJhbnRvb2wvdHJlZS9nZXJvbGQxMDMvZ2gtNTE2Ny1mbGFreS1xc3lu Yy1zbmFwc2hvdHM8L2E+PGJyPklzc3VlOiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGFy YW50b29sL3RhcmFudG9vbC9pc3N1ZXMvNTE2NyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vZ2l0 aHViLmNvbS90YXJhbnRvb2wvdGFyYW50b29sL2lzc3Vlcy81MTY3PC9hPjxicj48YnI+QENoYW5n ZUxvZzxicj4qIFNuYXBzaG90IGNvdWxkIGNvbnRhaW4gY2hhbmdlcyBmcm9tIGEgcm9sbGVkIGJh Y2sgc3luY2hyb25vdXMgdHJhbnNhY3Rpb24gKGdoLTUxNjcpLjxicj48YnI+Jm5ic3A7c3JjL2Jv eC9nYy5jIHwgMTIgKy08YnI+Jm5ic3A7c3JjL2JveC93YWwuYyB8IDQgKzxicj4mbmJzcDtzcmMv bGliL2NvcmUvZXJyaW5qLmggfCAxICs8YnI+Jm5ic3A7dGVzdC9ib3gvZXJyaW5qLnJlc3VsdCB8 IDEgKzxicj4mbmJzcDsuLi4vZ2gtNTE2Ny1xc3luYy1yb2xsYmFjay1zbmFwLnJlc3VsdCB8IDE2 NSArKysrKysrKysrKysrKysrKys8YnI+Jm5ic3A7Li4uL2doLTUxNjctcXN5bmMtcm9sbGJhY2st c25hcC50ZXN0Lmx1YSB8IDY3ICsrKysrKys8YnI+Jm5ic3A7dGVzdC9yZXBsaWNhdGlvbi9zdWl0 ZS5pbmkgfCAyICstPGJyPiZuYnNwOzcgZmlsZXMgY2hhbmdlZCwgMjUwIGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pPGJyPiZuYnNwO2NyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L3JlcGxpY2F0 aW9uL2doLTUxNjctcXN5bmMtcm9sbGJhY2stc25hcC5yZXN1bHQ8YnI+Jm5ic3A7Y3JlYXRlIG1v ZGUgMTAwNjQ0IHRlc3QvcmVwbGljYXRpb24vZ2gtNTE2Ny1xc3luYy1yb2xsYmFjay1zbmFwLnRl c3QubHVhPGJyPjxicj5kaWZmIC0tZ2l0IGEvc3JjL2JveC9nYy5jIGIvc3JjL2JveC9nYy5jPGJy PmluZGV4IGQ1MGE2NGQ2Ni4uNzZmN2M2MzI1IDEwMDY0NDxicj4tLS0gYS9zcmMvYm94L2djLmM8 YnI+KysrIGIvc3JjL2JveC9nYy5jPGJyPkBAIC0zODIsNiArMzgyLDcgQEAgZ2NfZG9fY2hlY2tw b2ludChib29sIGlzX3NjaGVkdWxlZCk8YnI+Jm5ic3A7ezxicj4mbmJzcDsgaW50IHJjOzxicj4m bmJzcDsgc3RydWN0IHdhbF9jaGVja3BvaW50IGNoZWNrcG9pbnQ7PGJyPisgaW50NjRfdCBsaW1i b19yb2xsYmFja19jb3VudCA9IHR4bl9saW1iby5yb2xsYmFja19jb3VudDs8YnI+Jm5ic3A7PGJy PiZuYnNwOyBhc3NlcnQoIWdjLmNoZWNrcG9pbnRfaXNfaW5fcHJvZ3Jlc3MpOzxicj4mbmJzcDsg Z2MuY2hlY2twb2ludF9pc19pbl9wcm9ncmVzcyA9IHRydWU7PGJyPkBAIC0zOTYsNyArMzk3LDE2 IEBAIGdjX2RvX2NoZWNrcG9pbnQoYm9vbCBpc19zY2hlZHVsZWQpPGJyPiZuYnNwOyByYyA9IHdh bF9iZWdpbl9jaGVja3BvaW50KCZhbXA7Y2hlY2twb2ludCk7PGJyPiZuYnNwOyBpZiAocmMgIT0g MCk8YnI+Jm5ic3A7IGdvdG8gb3V0Ozxicj4tPGJyPisgLyo8YnI+KyAqIENoZWNrIGlmIHRoZSBj aGVja3BvaW50IGNvbnRhaW5zIHJvbGxlZCBiYWNrIGRhdGEuIFRoYXQgbWFrZXMgdGhlPGJyPisg KiBjaGVja3BvaW50IG5vdCBzZWxmLXN1ZmZpY2llbnQgLSBpdCBuZWVkcyB0aGUgeGxvZyBmaWxl IHdpdGg8YnI+KyAqIFJPTExCQUNLLiBEcm9wIGl0Ljxicj4rICovPGJyPisgaWYgKHR4bl9saW1i by5yb2xsYmFja19jb3VudCAhPSBsaW1ib19yb2xsYmFja19jb3VudCkgezxicj4rIHJjID0gLTE7 PGJyPisgZGlhZ19zZXQoQ2xpZW50RXJyb3IsIEVSX1NZTkNfUk9MTEJBQ0spOzxicj4rIGdvdG8g b3V0Ozxicj4rIH08YnI+Jm5ic3A7IC8qPGJyPiZuYnNwOyAqIFdhaXQgdGhlIGNvbmZpcm1zIG9u IGFsbCAic3luYyIgdHJhbnNhY3Rpb25zIGJlZm9yZTxicj4mbmJzcDsgKiBjcmVhdGUgYSBzbmFw c2hvdC48YnI+ZGlmZiAtLWdpdCBhL3NyYy9ib3gvd2FsLmMgYi9zcmMvYm94L3dhbC5jPGJyPmlu ZGV4IDIyMGU2ODI0NS4uZDhjOTJhYTM2IDEwMDY0NDxicj4tLS0gYS9zcmMvYm94L3dhbC5jPGJy PisrKyBiL3NyYy9ib3gvd2FsLmM8YnI+QEAgLTY2Miw2ICs2NjIsNyBAQCB3YWxfYmVnaW5fY2hl Y2twb2ludF9mKHN0cnVjdCBjYnVzX2NhbGxfbXNnICpkYXRhKTxicj4mbmJzcDsgfTxicj4mbmJz cDsgdmNsb2NrX2NvcHkoJmFtcDttc2ctJmd0O3ZjbG9jaywgJmFtcDt3cml0ZXItJmd0O3ZjbG9j ayk7PGJyPiZuYnNwOyBtc2ctJmd0O3dhbF9zaXplID0gd3JpdGVyLSZndDtjaGVja3BvaW50X3dh bF9zaXplOzxicj4rIEVSUk9SX0lOSkVDVF9TTEVFUChFUlJJTkpfV0FMX0RFTEFZKTs8YnI+Jm5i c3A7IHJldHVybiAwOzxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj5AQCAtMTI3Miw2ICsxMjczLDkg QEAgd2FsX3dyaXRlX2FzeW5jKHN0cnVjdCBqb3VybmFsICpqb3VybmFsLCBzdHJ1Y3Qgam91cm5h bF9lbnRyeSAqZW50cnkpPGJyPiZuYnNwOyB3cml0ZXItJmd0O2xhc3RfZW50cnkgPSBlbnRyeTs8 YnI+Jm5ic3A7IGJhdGNoLSZndDthcHByb3hfbGVuICs9IGVudHJ5LSZndDthcHByb3hfbGVuOzxi cj4mbmJzcDsgd3JpdGVyLSZndDt3YWxfcGlwZS5uX2lucHV0ICs9IGVudHJ5LSZndDtuX3Jvd3Mg KiBYUk9XX0lPVk1BWDs8YnI+KyNpZm5kZWYgTkRFQlVHPGJyPisgKytlcnJpbmooRVJSSU5KX1dB TF9XUklURV9DT1VOVCwgRVJSSU5KX0lOVCktJmd0O2lwYXJhbTs8YnI+KyNlbmRpZjxicj4mbmJz cDsgY3BpcGVfZmx1c2hfaW5wdXQoJmFtcDt3cml0ZXItJmd0O3dhbF9waXBlKTs8YnI+Jm5ic3A7 IHJldHVybiAwOzxicj4mbmJzcDs8YnI+ZGlmZiAtLWdpdCBhL3NyYy9saWIvY29yZS9lcnJpbmou aCBiL3NyYy9saWIvY29yZS9lcnJpbmouaDxicj5pbmRleCBhYWNlODczNmYuLjgxNGM1N2MyZSAx MDA2NDQ8YnI+LS0tIGEvc3JjL2xpYi9jb3JlL2Vycmluai5oPGJyPisrKyBiL3NyYy9saWIvY29y ZS9lcnJpbmouaDxicj5AQCAtODIsNiArODIsNyBAQCBzdHJ1Y3QgZXJyaW5qIHs8YnI+Jm5ic3A7 IF8oRVJSSU5KX1dBTF9ERUxBWSwgRVJSSU5KX0JPT0wsIHsuYnBhcmFtID0gZmFsc2V9KSBcPGJy PiZuYnNwOyBfKEVSUklOSl9XQUxfREVMQVlfQ09VTlRET1dOLCBFUlJJTkpfSU5ULCB7LmlwYXJh bSA9IC0xfSkgXDxicj4mbmJzcDsgXyhFUlJJTkpfV0FMX0ZBTExPQ0FURSwgRVJSSU5KX0lOVCwg ey5pcGFyYW0gPSAwfSkgXDxicj4rIF8oRVJSSU5KX1dBTF9XUklURV9DT1VOVCwgRVJSSU5KX0lO VCwgey5pcGFyYW0gPSAwfSkgXDxicj4mbmJzcDsgXyhFUlJJTkpfSU5ERVhfQUxMT0MsIEVSUklO Sl9CT09MLCB7LmJwYXJhbSA9IGZhbHNlfSkgXDxicj4mbmJzcDsgXyhFUlJJTkpfVFVQTEVfQUxM T0MsIEVSUklOSl9CT09MLCB7LmJwYXJhbSA9IGZhbHNlfSkgXDxicj4mbmJzcDsgXyhFUlJJTkpf VFVQTEVfRklFTEQsIEVSUklOSl9CT09MLCB7LmJwYXJhbSA9IGZhbHNlfSkgXDxicj5kaWZmIC0t Z2l0IGEvdGVzdC9ib3gvZXJyaW5qLnJlc3VsdCBiL3Rlc3QvYm94L2Vycmluai5yZXN1bHQ8YnI+ aW5kZXggNGJlYTBmNDZmLi42MTNkMjJjNTEgMTAwNjQ0PGJyPi0tLSBhL3Rlc3QvYm94L2Vycmlu ai5yZXN1bHQ8YnI+KysrIGIvdGVzdC9ib3gvZXJyaW5qLnJlc3VsdDxicj5AQCAtMTE0LDYgKzEx NCw3IEBAIGV2YWxzPGJyPiZuYnNwOyZuYnNwOyZuYnNwOy0gRVJSSU5KX1dBTF9ST1RBVEU6IGZh bHNlPGJyPiZuYnNwOyZuYnNwOyZuYnNwOy0gRVJSSU5KX1dBTF9TWU5DOiBmYWxzZTxicj4mbmJz cDsmbmJzcDsmbmJzcDstIEVSUklOSl9XQUxfV1JJVEU6IGZhbHNlPGJyPisgLSBFUlJJTkpfV0FM X1dSSVRFX0NPVU5UOiAzPGJyPiZuYnNwOyZuYnNwOyZuYnNwOy0gRVJSSU5KX1dBTF9XUklURV9E SVNLOiBmYWxzZTxicj4mbmJzcDsmbmJzcDsmbmJzcDstIEVSUklOSl9XQUxfV1JJVEVfRU9GOiBm YWxzZTxicj4mbmJzcDsmbmJzcDsmbmJzcDstIEVSUklOSl9XQUxfV1JJVEVfUEFSVElBTDogLTE8 YnI+ZGlmZiAtLWdpdCBhL3Rlc3QvcmVwbGljYXRpb24vZ2gtNTE2Ny1xc3luYy1yb2xsYmFjay1z bmFwLnJlc3VsdCBiL3Rlc3QvcmVwbGljYXRpb24vZ2gtNTE2Ny1xc3luYy1yb2xsYmFjay1zbmFw LnJlc3VsdDxicj5uZXcgZmlsZSBtb2RlIDEwMDY0NDxicj5pbmRleCAwMDAwMDAwMDAuLjA2ZjU4 NTI2Yzxicj4tLS0gL2Rldi9udWxsPGJyPisrKyBiL3Rlc3QvcmVwbGljYXRpb24vZ2gtNTE2Ny1x c3luYy1yb2xsYmFjay1zbmFwLnJlc3VsdDxicj5AQCAtMCwwICsxLDE2NSBAQDxicj4rLS0gdGVz dC1ydW4gcmVzdWx0IGZpbGUgdmVyc2lvbiAyPGJyPit0ZXN0X3J1biA9IHJlcXVpcmUoJ3Rlc3Rf cnVuJykubmV3KCk8YnI+KyB8IC0tLTxicj4rIHwgLi4uPGJyPitlbmdpbmUgPSB0ZXN0X3J1bjpn ZXRfY2ZnKCdlbmdpbmUnKTxicj4rIHwgLS0tPGJyPisgfCAuLi48YnI+Kzxicj4rb3JpZ19zeW5j aHJvX3F1b3J1bSA9IGJveC5jZmcucmVwbGljYXRpb25fc3luY2hyb19xdW9ydW08YnI+KyB8IC0t LTxicj4rIHwgLi4uPGJyPitvcmlnX3N5bmNocm9fdGltZW91dCA9IGJveC5jZmcucmVwbGljYXRp b25fc3luY2hyb190aW1lb3V0PGJyPisgfCAtLS08YnI+KyB8IC4uLjxicj4rYm94LnNjaGVtYS51 c2VyLmdyYW50KCdndWVzdCcsICdzdXBlcicpPGJyPisgfCAtLS08YnI+KyB8IC4uLjxicj4rPGJy Pit0ZXN0X3J1bjpjbWQoJ2NyZWF0ZSBzZXJ2ZXIgcmVwbGljYSB3aXRoIHJwbF9tYXN0ZXI9ZGVm YXVsdCxcPGJyPisgc2NyaXB0PSJyZXBsaWNhdGlvbi9yZXBsaWNhLmx1YSInKTxicj4rIHwgLS0t PGJyPisgfCAtIHRydWU8YnI+KyB8IC4uLjxicj4rdGVzdF9ydW46Y21kKCdzdGFydCBzZXJ2ZXIg cmVwbGljYSB3aXRoIHdhaXQ9VHJ1ZSwgd2FpdF9sb2FkPVRydWUnKTxicj4rIHwgLS0tPGJyPisg fCAtIHRydWU8YnI+KyB8IC4uLjxicj4rPGJyPistLTxicj4rLS0gZ2gtNTE2Nzo8YnI+Ky0tPGJy PitmaWJlciA9IHJlcXVpcmUoJ2ZpYmVyJyk8YnI+KyB8IC0tLTxicj4rIHwgLi4uPGJyPitib3gu Y2Zne3JlcGxpY2F0aW9uX3N5bmNocm9fcXVvcnVtID0gMiwgcmVwbGljYXRpb25fc3luY2hyb190 aW1lb3V0ID0gMTAwMH08YnI+KyB8IC0tLTxicj4rIHwgLi4uPGJyPitfID0gYm94LnNjaGVtYS5z cGFjZS5jcmVhdGUoJ3N5bmMnLCB7aXNfc3luYyA9IHRydWUsIGVuZ2luZSA9IGVuZ2luZX0pPGJy PisgfCAtLS08YnI+KyB8IC4uLjxicj4rXyA9IGJveC5zcGFjZS5zeW5jOmNyZWF0ZV9pbmRleCgn cGsnKTxicj4rIHwgLS0tPGJyPisgfCAuLi48YnI+Ky0tIFdyaXRlIHNvbWV0aGluZyB0byBmbHVz aCB0aGUgY3VycmVudCBtYXN0ZXIncyBzdGF0ZSB0byByZXBsaWNhLjxicj4rXyA9IGJveC5zcGFj ZS5zeW5jOmluc2VydHsxfTxicj4rIHwgLS0tPGJyPisgfCAuLi48YnI+K18gPSBib3guc3BhY2Uu c3luYzpkZWxldGV7MX08YnI+KyB8IC0tLTxicj4rIHwgLi4uPGJyPis8YnI+K2JveC5jZmd7cmVw bGljYXRpb25fc3luY2hyb19xdW9ydW0gPSAzfTxicj4rIHwgLS0tPGJyPisgfCAuLi48YnI+K29r LCBlcnIgPSBuaWw8YnI+KyB8IC0tLTxicj4rIHwgLi4uPGJyPitmID0gZmliZXIuY3JlYXRlKGZ1 bmN0aW9uKCkgXDxicj4rIG9rLCBlcnIgPSBwY2FsbChib3guc3BhY2Uuc3luYy5pbnNlcnQsIGJv eC5zcGFjZS5zeW5jLCB7MX0pIFw8YnI+K2VuZCk8YnI+KyB8IC0tLTxicj4rIHwgLi4uPGJyPis8 YnI+K3Rlc3RfcnVuOnN3aXRjaCgncmVwbGljYScpPGJyPisgfCAtLS08YnI+KyB8IC0gdHJ1ZTxi cj4rIHwgLi4uPGJyPitmaWJlciA9IHJlcXVpcmUoJ2ZpYmVyJyk8YnI+KyB8IC0tLTxicj4rIHwg Li4uPGJyPit0ZXN0X3J1bjp3YWl0X2NvbmQoZnVuY3Rpb24oKSByZXR1cm4gYm94LnNwYWNlLnN5 bmM6Y291bnQoKSA9PSAxIGVuZCk8YnI+KyB8IC0tLTxicj4rIHwgLSB0cnVlPGJyPisgfCAuLi48 YnI+Ky0tIFNuYXBzaG90IHdpbGwgc3R1Y2sgaW4gV0FMIHRocmVhZCBvbiByb3RhdGlvbiBiZWZv cmUgc3RhcnRpbmcgd2FpdCBvbiB0aGU8YnI+Ky0tIGxpbWJvLjxicj4rYm94LmVycm9yLmluamVj dGlvbi5zZXQoIkVSUklOSl9XQUxfREVMQVkiLCB0cnVlKTxicj4rIHwgLS0tPGJyPisgfCAtIG9r PGJyPisgfCAuLi48YnI+K3dhbF93cml0ZV9jb3VudCA9IGJveC5lcnJvci5pbmplY3Rpb24uZ2V0 KCJFUlJJTkpfV0FMX1dSSVRFX0NPVU5UIik8YnI+KyB8IC0tLTxicj4rIHwgLi4uPGJyPitvaywg ZXJyID0gbmlsPGJyPisgfCAtLS08YnI+KyB8IC4uLjxicj4rZiA9IGZpYmVyLmNyZWF0ZShmdW5j dGlvbigpIG9rLCBlcnIgPSBwY2FsbChib3guc25hcHNob3QpIGVuZCk8YnI+KyB8IC0tLTxicj4r IHwgLi4uPGJyPis8YnI+K3Rlc3RfcnVuOnN3aXRjaCgnZGVmYXVsdCcpPGJyPisgfCAtLS08YnI+ KyB8IC0gdHJ1ZTxicj4rIHwgLi4uPGJyPitib3guY2Zne3JlcGxpY2F0aW9uX3N5bmNocm9fdGlt ZW91dCA9IDAuMDAwMX08YnI+KyB8IC0tLTxicj4rIHwgLi4uPGJyPit0ZXN0X3J1bjp3YWl0X2Nv bmQoZnVuY3Rpb24oKSByZXR1cm4gZjpzdGF0dXMoKSA9PSAnZGVhZCcgZW5kKTxicj4rIHwgLS0t PGJyPisgfCAtIHRydWU8YnI+KyB8IC4uLjxicj4rb2ssIGVycjxicj4rIHwgLS0tPGJyPisgfCAt IGZhbHNlPGJyPisgfCAtIFF1b3J1bSBjb2xsZWN0aW9uIGZvciBhIHN5bmNocm9ub3VzIHRyYW5z YWN0aW9uIGlzIHRpbWVkIG91dDxicj4rIHwgLi4uPGJyPitib3guc3BhY2Uuc3luYzpzZWxlY3R7 fTxicj4rIHwgLS0tPGJyPisgfCAtIFtdPGJyPisgfCAuLi48YnI+Kzxicj4rdGVzdF9ydW46c3dp dGNoKCdyZXBsaWNhJyk8YnI+KyB8IC0tLTxicj4rIHwgLSB0cnVlPGJyPisgfCAuLi48YnI+Ky0t IFJvbGxiYWNrIHdhcyByZWNlaXZlZC4gTm90ZSwgaXQgaXMgbm90IGxlZ2l0IHRvIGxvb2sgZm9y IHNwYWNlOmNvdW50KCkgPT0gMC48YnI+Ky0tIEJlY2F1c2UgaWRlYWxseSBST0xMQkFDSyBzaG91 bGQgbm90IGJlIGFwcGxpZWQgYmVmb3JlIHdyaXR0ZW4gdG8gV0FMLiBUaGF0PGJyPistLSBtZWFu cyBjb3VudCgpIHdpbGwgYmUgJmd0OyAwIHVudGlsIFdBTCB3cml0ZSBzdWNjZWVkcy48YnI+K3Rl c3RfcnVuOndhaXRfY29uZChmdW5jdGlvbigpIFw8YnI+KyByZXR1cm4gYm94LmVycm9yLmluamVj dGlvbi5nZXQoIkVSUklOSl9XQUxfV1JJVEVfQ09VTlQiKSAmZ3Q7IHdhbF93cml0ZV9jb3VudCBc PGJyPitlbmQpPGJyPisgfCAtLS08YnI+KyB8IC0gdHJ1ZTxicj4rIHwgLi4uPGJyPistLSBOb3cg V0FMIHJvdGF0aW9uIGlzIGRvbmUuIFNuYXBzaG90IHdpbGwgZmFpbCwgYmVjYXVzZSB3aWxsIHNl ZSB0aGF0IGE8YnI+Ky0tIHJvbGxiYWNrIGhhcHBlbmVkIGR1cmluZyB0aGF0LiBNZWFuaW5nIHRo YXQgdGhlIHJvdGF0ZWQgV0FMIGNvbnRhaW5zPGJyPistLSBub3QgY29uZmlybWVkIGRhdGEsIGFu ZCBpdCBjYW4ndCBiZSB1c2VkIGFzIGEgY2hlY2twb2ludC48YnI+K2JveC5lcnJvci5pbmplY3Rp b24uc2V0KCJFUlJJTkpfV0FMX0RFTEFZIiwgZmFsc2UpPGJyPisgfCAtLS08YnI+KyB8IC0gb2s8 YnI+KyB8IC4uLjxicj4rdGVzdF9ydW46d2FpdF9jb25kKGZ1bmN0aW9uKCkgcmV0dXJuIGY6c3Rh dHVzKCkgPT0gJ2RlYWQnIGVuZCk8YnI+KyB8IC0tLTxicj4rIHwgLSB0cnVlPGJyPisgfCAuLi48 YnI+K29rLCBlcnI8YnI+KyB8IC0tLTxicj4rIHwgLSBmYWxzZTxicj4rIHwgLSBBIHJvbGxiYWNr IGZvciBhIHN5bmNocm9ub3VzIHRyYW5zYWN0aW9uIGlzIHJlY2VpdmVkPGJyPisgfCAuLi48YnI+ Kzxicj4rdGVzdF9ydW46c3dpdGNoKCdkZWZhdWx0Jyk8YnI+KyB8IC0tLTxicj4rIHwgLSB0cnVl PGJyPisgfCAuLi48YnI+K2JveC5zcGFjZS5zeW5jOmRyb3AoKTxicj4rIHwgLS0tPGJyPisgfCAu Li48YnI+K3Rlc3RfcnVuOmNtZCgnc3RvcCBzZXJ2ZXIgcmVwbGljYScpPGJyPisgfCAtLS08YnI+ KyB8IC0gdHJ1ZTxicj4rIHwgLi4uPGJyPit0ZXN0X3J1bjpjbWQoJ2RlbGV0ZSBzZXJ2ZXIgcmVw bGljYScpPGJyPisgfCAtLS08YnI+KyB8IC0gdHJ1ZTxicj4rIHwgLi4uPGJyPitib3guc2NoZW1h LnVzZXIucmV2b2tlKCdndWVzdCcsICdzdXBlcicpPGJyPisgfCAtLS08YnI+KyB8IC4uLjxicj4r Ym94LmNmZ3sgXDxicj4rIHJlcGxpY2F0aW9uX3N5bmNocm9fcXVvcnVtID0gb3JpZ19zeW5jaHJv X3F1b3J1bSwgXDxicj4rIHJlcGxpY2F0aW9uX3N5bmNocm9fdGltZW91dCA9IG9yaWdfc3luY2hy b190aW1lb3V0LCBcPGJyPit9PGJyPisgfCAtLS08YnI+KyB8IC4uLjxicj5kaWZmIC0tZ2l0IGEv dGVzdC9yZXBsaWNhdGlvbi9naC01MTY3LXFzeW5jLXJvbGxiYWNrLXNuYXAudGVzdC5sdWEgYi90 ZXN0L3JlcGxpY2F0aW9uL2doLTUxNjctcXN5bmMtcm9sbGJhY2stc25hcC50ZXN0Lmx1YTxicj5u ZXcgZmlsZSBtb2RlIDEwMDY0NDxicj5pbmRleCAwMDAwMDAwMDAuLjQ3NTcyN2U2MTxicj4tLS0g L2Rldi9udWxsPGJyPisrKyBiL3Rlc3QvcmVwbGljYXRpb24vZ2gtNTE2Ny1xc3luYy1yb2xsYmFj ay1zbmFwLnRlc3QubHVhPGJyPkBAIC0wLDAgKzEsNjcgQEA8YnI+K3Rlc3RfcnVuID0gcmVxdWly ZSgndGVzdF9ydW4nKS5uZXcoKTxicj4rZW5naW5lID0gdGVzdF9ydW46Z2V0X2NmZygnZW5naW5l Jyk8YnI+Kzxicj4rb3JpZ19zeW5jaHJvX3F1b3J1bSA9IGJveC5jZmcucmVwbGljYXRpb25fc3lu Y2hyb19xdW9ydW08YnI+K29yaWdfc3luY2hyb190aW1lb3V0ID0gYm94LmNmZy5yZXBsaWNhdGlv bl9zeW5jaHJvX3RpbWVvdXQ8YnI+K2JveC5zY2hlbWEudXNlci5ncmFudCgnZ3Vlc3QnLCAnc3Vw ZXInKTxicj4rPGJyPit0ZXN0X3J1bjpjbWQoJ2NyZWF0ZSBzZXJ2ZXIgcmVwbGljYSB3aXRoIHJw bF9tYXN0ZXI9ZGVmYXVsdCxcPGJyPisgc2NyaXB0PSJyZXBsaWNhdGlvbi9yZXBsaWNhLmx1YSIn KTxicj4rdGVzdF9ydW46Y21kKCdzdGFydCBzZXJ2ZXIgcmVwbGljYSB3aXRoIHdhaXQ9VHJ1ZSwg d2FpdF9sb2FkPVRydWUnKTxicj4rPGJyPistLTxicj4rLS0gZ2gtNTE2Nzo8YnI+Ky0tPGJyPitm aWJlciA9IHJlcXVpcmUoJ2ZpYmVyJyk8YnI+K2JveC5jZmd7cmVwbGljYXRpb25fc3luY2hyb19x dW9ydW0gPSAyLCByZXBsaWNhdGlvbl9zeW5jaHJvX3RpbWVvdXQgPSAxMDAwfTxicj4rXyA9IGJv eC5zY2hlbWEuc3BhY2UuY3JlYXRlKCdzeW5jJywge2lzX3N5bmMgPSB0cnVlLCBlbmdpbmUgPSBl bmdpbmV9KTxicj4rXyA9IGJveC5zcGFjZS5zeW5jOmNyZWF0ZV9pbmRleCgncGsnKTxicj4rLS0g V3JpdGUgc29tZXRoaW5nIHRvIGZsdXNoIHRoZSBjdXJyZW50IG1hc3RlcidzIHN0YXRlIHRvIHJl cGxpY2EuPGJyPitfID0gYm94LnNwYWNlLnN5bmM6aW5zZXJ0ezF9PGJyPitfID0gYm94LnNwYWNl LnN5bmM6ZGVsZXRlezF9PGJyPis8YnI+K2JveC5jZmd7cmVwbGljYXRpb25fc3luY2hyb19xdW9y dW0gPSAzfTxicj4rb2ssIGVyciA9IG5pbDxicj4rZiA9IGZpYmVyLmNyZWF0ZShmdW5jdGlvbigp IFw8YnI+KyBvaywgZXJyID0gcGNhbGwoYm94LnNwYWNlLnN5bmMuaW5zZXJ0LCBib3guc3BhY2Uu c3luYywgezF9KSBcPGJyPitlbmQpPGJyPis8YnI+K3Rlc3RfcnVuOnN3aXRjaCgncmVwbGljYScp PGJyPitmaWJlciA9IHJlcXVpcmUoJ2ZpYmVyJyk8YnI+K3Rlc3RfcnVuOndhaXRfY29uZChmdW5j dGlvbigpIHJldHVybiBib3guc3BhY2Uuc3luYzpjb3VudCgpID09IDEgZW5kKTxicj4rLS0gU25h cHNob3Qgd2lsbCBzdHVjayBpbiBXQUwgdGhyZWFkIG9uIHJvdGF0aW9uIGJlZm9yZSBzdGFydGlu ZyB3YWl0IG9uIHRoZTxicj4rLS0gbGltYm8uPGJyPitib3guZXJyb3IuaW5qZWN0aW9uLnNldCgi RVJSSU5KX1dBTF9ERUxBWSIsIHRydWUpPGJyPit3YWxfd3JpdGVfY291bnQgPSBib3guZXJyb3Iu aW5qZWN0aW9uLmdldCgiRVJSSU5KX1dBTF9XUklURV9DT1VOVCIpPGJyPitvaywgZXJyID0gbmls PGJyPitmID0gZmliZXIuY3JlYXRlKGZ1bmN0aW9uKCkgb2ssIGVyciA9IHBjYWxsKGJveC5zbmFw c2hvdCkgZW5kKTxicj4rPGJyPit0ZXN0X3J1bjpzd2l0Y2goJ2RlZmF1bHQnKTxicj4rYm94LmNm Z3tyZXBsaWNhdGlvbl9zeW5jaHJvX3RpbWVvdXQgPSAwLjAwMDF9PGJyPit0ZXN0X3J1bjp3YWl0 X2NvbmQoZnVuY3Rpb24oKSByZXR1cm4gZjpzdGF0dXMoKSA9PSAnZGVhZCcgZW5kKTxicj4rb2ss IGVycjxicj4rYm94LnNwYWNlLnN5bmM6c2VsZWN0e308YnI+Kzxicj4rdGVzdF9ydW46c3dpdGNo KCdyZXBsaWNhJyk8YnI+Ky0tIFJvbGxiYWNrIHdhcyByZWNlaXZlZC4gTm90ZSwgaXQgaXMgbm90 IGxlZ2l0IHRvIGxvb2sgZm9yIHNwYWNlOmNvdW50KCkgPT0gMC48YnI+Ky0tIEJlY2F1c2UgaWRl YWxseSBST0xMQkFDSyBzaG91bGQgbm90IGJlIGFwcGxpZWQgYmVmb3JlIHdyaXR0ZW4gdG8gV0FM LiBUaGF0PGJyPistLSBtZWFucyBjb3VudCgpIHdpbGwgYmUgJmd0OyAwIHVudGlsIFdBTCB3cml0 ZSBzdWNjZWVkcy48YnI+K3Rlc3RfcnVuOndhaXRfY29uZChmdW5jdGlvbigpIFw8YnI+KyByZXR1 cm4gYm94LmVycm9yLmluamVjdGlvbi5nZXQoIkVSUklOSl9XQUxfV1JJVEVfQ09VTlQiKSAmZ3Q7 IHdhbF93cml0ZV9jb3VudCBcPGJyPitlbmQpPGJyPistLSBOb3cgV0FMIHJvdGF0aW9uIGlzIGRv bmUuIFNuYXBzaG90IHdpbGwgZmFpbCwgYmVjYXVzZSB3aWxsIHNlZSB0aGF0IGE8YnI+Ky0tIHJv bGxiYWNrIGhhcHBlbmVkIGR1cmluZyB0aGF0LiBNZWFuaW5nIHRoYXQgdGhlIHJvdGF0ZWQgV0FM IGNvbnRhaW5zPGJyPistLSBub3QgY29uZmlybWVkIGRhdGEsIGFuZCBpdCBjYW4ndCBiZSB1c2Vk IGFzIGEgY2hlY2twb2ludC48YnI+K2JveC5lcnJvci5pbmplY3Rpb24uc2V0KCJFUlJJTkpfV0FM X0RFTEFZIiwgZmFsc2UpPGJyPit0ZXN0X3J1bjp3YWl0X2NvbmQoZnVuY3Rpb24oKSByZXR1cm4g ZjpzdGF0dXMoKSA9PSAnZGVhZCcgZW5kKTxicj4rb2ssIGVycjxicj4rPGJyPit0ZXN0X3J1bjpz d2l0Y2goJ2RlZmF1bHQnKTxicj4rYm94LnNwYWNlLnN5bmM6ZHJvcCgpPGJyPit0ZXN0X3J1bjpj bWQoJ3N0b3Agc2VydmVyIHJlcGxpY2EnKTxicj4rdGVzdF9ydW46Y21kKCdkZWxldGUgc2VydmVy IHJlcGxpY2EnKTxicj4rYm94LnNjaGVtYS51c2VyLnJldm9rZSgnZ3Vlc3QnLCAnc3VwZXInKTxi cj4rYm94LmNmZ3sgXDxicj4rIHJlcGxpY2F0aW9uX3N5bmNocm9fcXVvcnVtID0gb3JpZ19zeW5j aHJvX3F1b3J1bSwgXDxicj4rIHJlcGxpY2F0aW9uX3N5bmNocm9fdGltZW91dCA9IG9yaWdfc3lu Y2hyb190aW1lb3V0LCBcPGJyPit9PGJyPmRpZmYgLS1naXQgYS90ZXN0L3JlcGxpY2F0aW9uL3N1 aXRlLmluaSBiL3Rlc3QvcmVwbGljYXRpb24vc3VpdGUuaW5pPGJyPmluZGV4IDczZjczZWI4OS4u MjQ3Mjg5ZDU4IDEwMDY0NDxicj4tLS0gYS90ZXN0L3JlcGxpY2F0aW9uL3N1aXRlLmluaTxicj4r KysgYi90ZXN0L3JlcGxpY2F0aW9uL3N1aXRlLmluaTxicj5AQCAtMyw3ICszLDcgQEAgY29yZSA9 IHRhcmFudG9vbDxicj4mbmJzcDtzY3JpcHQgPSBtYXN0ZXIubHVhPGJyPiZuYnNwO2Rlc2NyaXB0 aW9uID0gdGFyYW50b29sL2JveCwgcmVwbGljYXRpb248YnI+Jm5ic3A7ZGlzYWJsZWQgPSBjb25z aXN0ZW50LnRlc3QubHVhPGJyPi1yZWxlYXNlX2Rpc2FibGVkID0gY2F0Y2gudGVzdC5sdWEgZXJy aW5qLnRlc3QubHVhIGdjLnRlc3QubHVhIGdjX25vX3NwYWNlLnRlc3QubHVhIGJlZm9yZV9yZXBs YWNlLnRlc3QubHVhIHFzeW5jX2FkdmFuY2VkLnRlc3QubHVhIHFzeW5jX2Vycmluai50ZXN0Lmx1 YSBxdW9ydW0udGVzdC5sdWEgcmVjb3Zlcl9taXNzaW5nX3hsb2cudGVzdC5sdWEgc3luYy50ZXN0 Lmx1YSBsb25nX3Jvd190aW1lb3V0LnRlc3QubHVhIGdoLTQ3MzktdmNsb2NrLWFzc2VydC50ZXN0 Lmx1YSBnaC00NzMwLWFwcGxpZXItcm9sbGJhY2sudGVzdC5sdWEgZ2gtNTE0MC1xc3luYy1jYXNj LXJvbGxiYWNrLnRlc3QubHVhIGdoLTUxNDQtcXN5bmMtZHVwLWNvbmZpcm0udGVzdC5sdWE8YnI+ K3JlbGVhc2VfZGlzYWJsZWQgPSBjYXRjaC50ZXN0Lmx1YSBlcnJpbmoudGVzdC5sdWEgZ2MudGVz dC5sdWEgZ2Nfbm9fc3BhY2UudGVzdC5sdWEgYmVmb3JlX3JlcGxhY2UudGVzdC5sdWEgcXN5bmNf YWR2YW5jZWQudGVzdC5sdWEgcXN5bmNfZXJyaW5qLnRlc3QubHVhIHF1b3J1bS50ZXN0Lmx1YSBy ZWNvdmVyX21pc3NpbmdfeGxvZy50ZXN0Lmx1YSBzeW5jLnRlc3QubHVhIGxvbmdfcm93X3RpbWVv dXQudGVzdC5sdWEgZ2gtNDczOS12Y2xvY2stYXNzZXJ0LnRlc3QubHVhIGdoLTQ3MzAtYXBwbGll ci1yb2xsYmFjay50ZXN0Lmx1YSBnaC01MTQwLXFzeW5jLWNhc2Mtcm9sbGJhY2sudGVzdC5sdWEg Z2gtNTE0NC1xc3luYy1kdXAtY29uZmlybS50ZXN0Lmx1YSBnaC01MTY3LXJvbGxiYWNrLXNuYXAu dGVzdC5sdWE8YnI+Jm5ic3A7Y29uZmlnID0gc3VpdGUuY2ZnPGJyPiZuYnNwO2x1YV9saWJzID0g bHVhL2Zhc3RfcmVwbGljYS5sdWEgbHVhL3JsaW1pdC5sdWE8YnI+Jm5ic3A7dXNlX3VuaXhfc29j a2V0cyA9IFRydWU8YnI+LS08YnI+Mi4yMS4xIChBcHBsZSBHaXQtMTIyLjMpPGJyPiZuYnNwOzwv ZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48ZGl2PiZuYnNwOzwvZGl2PjwvQk9E WT48L0hUTUw+Cg== ----ALT--bEf5845A833B424598a9eF1a9F21e0561597149138--