From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id AD1343172DB; Wed, 22 Mar 2023 03:07:28 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org AD1343172DB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1679443648; bh=oIY+km9mxy9MtsnD69jx8wbomD84YUi1BiUTag5SkVg=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=ok2U/N7XmbZpI8kSK5S6q0ZMlZL1G/0zbLdKpxJ+9INoCqNcBsFNVk50uIHEXDj31 T6+7ynVdEOF6Lmr2u/GbK+EQbBdwA3rhQ6ustLbyPXb1mlBKACSCOkrX8LgVKN3gk2 5eTpAGOYfcI/3qpKoaxpfy/SNidCsNhQsJsCiyXg= Received: from f300.i.mail.ru (f300.i.mail.ru [45.84.128.112]) (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 F27BF2ACFC1 for ; Wed, 22 Mar 2023 03:07:26 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org F27BF2ACFC1 Received: by f300.i.mail.ru with local (envelope-from ) id 1pem0j-0007kL-AF; Wed, 22 Mar 2023 03:07:26 +0300 Received: by e.mail.ru with HTTP; Wed, 22 Mar 2023 03:07:25 +0300 To: =?UTF-8?B?U2VyZ2V5IEthcGx1bg==?= MIME-Version: 1.0 X-Mailer: Mail.Ru Mailer 1.0 X-SenderField-ReMsg: 16788968931016309467 X-SenderField-Remind: 0 Date: Wed, 22 Mar 2023 03:07:25 +0300 X-Priority: 3 (Normal) Message-ID: <1679443645.145929878@f300.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--3dDfB62aa089eA5228c8E358aDaAf1951679443645" In-Reply-To: References: X-4EC0790: 10 X-7564579A: 646B95376F6C166E X-77F55803: 119C1F4DF6A9251C39F4CB9F411D0C040A7DC8B6859E50B865B94E7611B994F48FD872164937FA4C4C0DC3FD1D04DFCABFA13F9F1ADF118E387D49553F67E1DAB696EDB0C994CE5A X-7FA49CB5: 70AAF3C13DB7016878DA827A17800CE7FF344DCD59167BF5C4224003CC836476ABE134FDCE4E2725BFD28B28ED4578739E625A9149C048EE85C08DA1A1AB276A36C75B72B9FDC350B287FD4696A6DC2FA8DF7F3B2552694A4E2F5AFA99E116B42401471946AA11AFEE3A9D0FB4FE0F999A02CFBD12041B858F08D7030A58E5AD1A62830130A00468AEEEE3FBA3A834EE7353EFBB553375662F0AEABB7984EDE0F85C061D020B7E9A88DD20E0BD236EC4A471835C12D1D9774AD6D5ED66289B5278DA827A17800CE7BE2AB513042E4E129FA2833FD35BB23D2EF20D2F80756B5F868A13BD56FB6657A471835C12D1D977725E5C173C3A84C3AB4674FCF129DEEBCC7F00164DA146DA6F5DAA56C3B73B237318B6A418E8EAB86D1867E19FE14079C09775C1D3CA48CF3D321E7403792E342EB15956EA79C166A417C69337E82CC275ECD9A6C639B01B78DA827A17800CE754A400A07F115C59731C566533BA786AA5CC5B56E945C8DA X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D34C5CF6F4B28551E3FAF4D7EDE4F09E3D9DEDFB3314317B4DB8120A5A1AE1C54B36AE10777331FC9471D7E09C32AA3244C72CCD8EF71193E99F90BFE229AFAD8DE35DA7DC5AF9B58C0FACE5A9C96DEB163 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5+wYjsrrSY/u8Y3PrTqANeitKFiSd6Yd7yPpbiiZ/d5BsxIjK0jGQgCHUM3Ry2Lt2G3MDkMauH3h0dBdQGj+BB/iPzQYh7XS329fgu+/vnDhkY4ESlvb8GVbpPlDQB8k6w== X-Mailru-MI: 10000000000400800 X-Mailru-Sender: 3486C3469AF023A8E23FB4C01BC07D53AEB9F36A3ABC30F1C1977FD234168AD901E03DBE61A0EBD706CD02445D2D9C8FA2BFD6D8330F0C2D563E610FBBDBB4C842051EA7CBBFB509093DA5C00B83CE8412EB40C6FA10D71EFD657A8799238ED55FEEDEB644C299C0ED14614B50AE0675 X-Mras: Ok X-Spam: undefined Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_v1_luajit_4/5=5D_test=3A_?= =?utf-8?q?rewrite_misclib-getmetrics-capi_test_in_C?= X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Maxim Kokryashkin via Tarantool-patches Reply-To: =?UTF-8?B?TWF4aW0gS29rcnlhc2hraW4=?= Cc: tarantool-patches@dev.tarantool.org Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" ----ALT--3dDfB62aa089eA5228c8E358aDaAf1951679443645 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkhpIQpUaGFua3MgZm9yIHRoZSBwYXRjaCEKUGxlYXNlIGNvbnNpZGVyIG15IGNvbW1lbnRzIGJl bG93LgrCoAo+wqAKPj5UaGlzIHBhdGNoIHJld3JpdGVzIHRoZSBhZm9yZW1lbnRpb25lZCB0ZXN0 IHdpdGggdXNhZ2UgbGlidGVzdCByZWNlbnRseQo+VHlwbzogcy93aXRoIHVzYWdlIGxpYnRlc3Qv d2l0aCB0aGUgdXNhZ2Ugb2YgbGlidGVzdCwvCj4+aW50cm9kdWNlZC4gU2luY2Ugd2Ugc3RpbGwg c3RhbmQgaW4gbmVlZCBvZiBhIEx1YSBoZWxwZXIgc2NyaXB0IGZvcgo+PmdlbmVyYXRpb24gb2Yg dHJhY2VzLCB0aGUgb3JpZ2luYWwgdGVzdCBmaWxlIGlzIHJld29ya2VkIGFzIGEgc3RhbmRhbG9u ZQo+PnNjcmlwdCwgd2hpY2ggcmV0dXJucyB0aGUgdGFibGUgd2l0aCBoZWxwZXIgZnVuY3Rpb25z LiBFYWNoIGhlbHBlcgo+PmZ1bmN0aW9uIGlzIG5hbWVkIHRoZSBzYW1lIGFzIHRoZSB0ZXN0IHdo ZXJlIGl0IHdpbGwgYmUgdXNlZC4gTm93IHNpbmdsZQo+PnF1b3RlcyBhcmUgdXNlZCBhY2NvcmRp bmcgb3VyIEx1YSBjb2RlIHN0eWxlLgo+VHlwbzogcy9hY2NvcmRpbmcgb3VyL2FjY29yZGluZyB0 byBvdXIvCj4+Cj4+SW4gQyBwYXJ0IGFsbCBhc3NlcnRzIGZyb20gZ2xpYmMgYXJlIHJlcGxhY2Vk IHdpdGggdGhlIGNvcnJlc3BvbmRpbmcKPj5hc3NlcnRfe2NvbmR9IGZyb20gdGhlIGxpYnRlc3Qu IE5vdyB0ZXN0cyByZXR1cm4gYFRFU1RfRVhJVF9TVUNDRVNTYCBhdAo+PnRoZSBmaW5pc2guIEFs c28sIHN0YWNrIGNoZWNrIGZvciB0aGUgYW1vdW50IG9mIHJldHVybiByZXN1bHRzIGZyb20KPlR5 cG8gczovc3RhY2sgY2hlY2svdGhlIHN0YWNrIGNoZWNrLwo+PmhlbHBlciBmdW5jdGlvbiBpcyBz bGlnaHRseSBjaGFuZ2VkLCBzaW5jZSB0aGVyZSBpcyBvbmUgbW9yZSBzdGFjayBzbG90Cj5UeXBv OiBzL2hlbHBlci90aGUgaGVscGVyLwo+PmluIHVzZSAodGFibGUgd2l0aCB0aGVzZSBmdW5jdGlv bnMpLiBgc25hcF9yZXN0b3JlcygpYCBDIGZ1bmN0aW9uCj4+ZHVwbGljYXRlcyA0IHRpbWVzIGZv ciBlYWNoIHN1YnRlc3QuIENvbW1vbiBoZWxwZXIKPj5gY2hlY2tfc25hcF9yZXN0b3JlcygpYCBp cyB1c2VkIGZvciBlYWNoIG9mIHRoZW0uIEVhY2ggZXJyb3IgdGhyb3dpbmcgaXMKPj5yZXBsYWNl ZCB3aXRoIGBiYWlsX291dCgpYCBjYWxsLgo+Pgo+Pk5COiBgbHVhX3BvcCgpYCB0byBjbGVhciB0 aGUgTHVhIHN0YWNrIGFmdGVyIGNhbGwgc2hvdWxkIGJlIGRvbmUgYmVmb3JlCj5UeXBvOiBzL2Fm dGVyIGNhbGwvYWZ0ZXIgYSBjYWxsLwo+PmFueSBwb3NzaWJsZSBhc3NlcnRpb24sIHdoaWNoIGV4 aXQgZnJvbSB0ZXN0IGxlYXZpbmcgdGhlIHN0YWNrCj5UeXBvOiBzL3doaWNoIGV4aXQgZnJvbSB0 ZXN0L3doaWNoIHdvdWxkIGV4aXQgZnJvbSB0aGUgdGVzdC8KPj51bmNsZWFuZWQuCj4+Cj4+QWxs IHNraXBjb25kcyB1c2UgbWFjcm9zIGRlZmluZWQgaW4gPGxqX2FyY2guaD4sIHNvIGl0IGlzIGlu Y2x1ZGVkIGluCj4+dGhlIHRlc3QuIEFzIGZhciBhcyB0aGlzIHRlc3QgaW5pdGlhbGl6ZXMgTHVh SklUIFZNIG1hbnVhbGx5LCB0aGVyZSBpcwo+VHlwbzogcy9MdWFKSVQvdGhlIEx1YUpJVAo+Pm5v IG5lZWQgdG8gY2hlY2sgYGppdC5zdGF0dXMoKWAgcmVzdWx0OyBjaGVjayBgTEpfSEFTSklUYCBp cyBlbm91Z2guCj5UeXBvOiBzL2NoZWNrL2NoZWNraW5nLwo+Pk5vdywgb25seSBKSVQtcmVsYXRl ZCB0ZXN0cyBhcmUgc2tpcHBlZCwgd2hlbiBjb21waWxlZCB3aXRob3V0IEpJVC4KPj5OZXZlcnRo ZWxlc3MsIGFsbCB0ZXN0cyBhcmUgc2tpcHBlZCBmb3IgKkJTRCBhcmNoZXMuCj4+Cj4+QWxzbywg dGhpcyBwYXRjaCBzZXRzIHRoZSBuZXcgQ01ha2UgdmFyaWFibGUgbmFtZWQgYExVQUpJVF9MSUJS QVJZYAo+PmVxdWFscyB0byBgTFVBSklUX0xJQmAgaW4gYFBBUkVOVF9TQ09QRWAgdG8gYmUgdXNl ZCBpbiB0YXJhbnRvb2wtYy10ZXN0cwo+VHlwbzogcy9lcXVhbHMvZXF1YWwvCj4+bGlua2luZy4K Pj4KPj5BbHNvLCAuY190ZXN0IHN1ZmZpeCBpcyBhZGRlZCB0byB0aGUgPC5naXRpZ25vcmU+Lgo+ Pgo+PlBhcnQgb2YgdGFyYW50b29sL3RhcmFudG9vbCM3OTAwCj4+LS0tCj4+wqAuZ2l0aWdub3Jl IHwgMSArCj4+wqBzcmMvQ01ha2VMaXN0cy50eHQgfCAyICsKPj7CoHRlc3QvdGFyYW50b29sLWMt dGVzdHMvQ01ha2VMaXN0cy50eHQgfCAzMiArLQo+PsKgLi4uL21pc2NsaWItZ2V0bWV0cmljcy1j YXBpLXNjcmlwdC5sdWF9IHwgODIgKystLS0KPj7CoC4uLi9taXNjbGliLWdldG1ldHJpY3MtY2Fw aS50ZXN0LmMgfCAzNDEgKysrKysrKysrKysrKysrKysrCj4+wqB0ZXN0L3RhcmFudG9vbC10ZXN0 cy9DTWFrZUxpc3RzLnR4dCB8IDEgLQo+PsKgLi4uL21pc2NsaWItZ2V0bWV0cmljcy1jYXBpL0NN YWtlTGlzdHMudHh0IHwgMSAtCj4+wqAuLi4vbWlzY2xpYi1nZXRtZXRyaWNzLWNhcGkvdGVzdGdl dG1ldHJpY3MuYyB8IDI3MCAtLS0tLS0tLS0tLS0tLQo+PsKgOCBmaWxlcyBjaGFuZ2VkLCA0MDkg aW5zZXJ0aW9ucygrKSwgMzIxIGRlbGV0aW9ucygtKQo+PsKgcmVuYW1lIHRlc3Qve3RhcmFudG9v bC10ZXN0cy9taXNjbGliLWdldG1ldHJpY3MtY2FwaS50ZXN0Lmx1YSA9PiB0YXJhbnRvb2wtYy10 ZXN0cy9taXNjbGliLWdldG1ldHJpY3MtY2FwaS1zY3JpcHQubHVhfSAoNjglKQo+PsKgY3JlYXRl IG1vZGUgMTAwNjQ0IHRlc3QvdGFyYW50b29sLWMtdGVzdHMvbWlzY2xpYi1nZXRtZXRyaWNzLWNh cGkudGVzdC5jCj4+wqBkZWxldGUgbW9kZSAxMDA2NDQgdGVzdC90YXJhbnRvb2wtdGVzdHMvbWlz Y2xpYi1nZXRtZXRyaWNzLWNhcGkvQ01ha2VMaXN0cy50eHQKPj7CoGRlbGV0ZSBtb2RlIDEwMDY0 NCB0ZXN0L3RhcmFudG9vbC10ZXN0cy9taXNjbGliLWdldG1ldHJpY3MtY2FwaS90ZXN0Z2V0bWV0 cmljcy5jCj4+Cj4+ZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCj4+aW5kZXgg Yjc5MDhhZWUuLmRjNWVhNWZjIDEwMDY0NAo+Pi0tLSBhLy5naXRpZ25vcmUKPj4rKysgYi8uZ2l0 aWdub3JlCj4+QEAgLTI0LDMgKzI0LDQgQEAgaW5zdGFsbF9tYW5pZmVzdC50eHQKPj7CoGx1YWpp dC1wYXJzZS1tZW1wcm9mCj4+wqBsdWFqaXQtcGFyc2Utc3lzcHJvZgo+PsKgbHVhaml0LnBjCj4+ KyouY190ZXN0Cj4+ZGlmZiAtLWdpdCBhL3NyYy9DTWFrZUxpc3RzLnR4dCBiL3NyYy9DTWFrZUxp c3RzLnR4dAo+PmluZGV4IGRmZmMwYTRkLi41OGQ4MzMzMCAxMDA2NDQKPj4tLS0gYS9zcmMvQ01h a2VMaXN0cy50eHQKPj4rKysgYi9zcmMvQ01ha2VMaXN0cy50eHQKPj5AQCAtMzI1LDYgKzMyNSw4 IEBAIGlmKE5PVCBCVUlMRE1PREUgU1RSRVFVQUwgImR5bmFtaWMiKQo+PsKgwqDCoHNldChMVUFK SVRfQklOIGx1YWppdF9zdGF0aWMpCj4+wqDCoMKgc2V0KExVQUpJVF9MSUIgbGlibHVhaml0X3N0 YXRpYykKPj7CoGVuZGlmKCkKPj4rIyBOZWVkIGZvciB0ZXN0IGxpbmtpbmcsIHNvIFBBUkVOVF9T Q09QRSBvcHRpb24gaXMgdXNlZC4KPlR5cG86IHMvTmVlZCBmb3IgdGVzdC9OZWVkZWQgZm9yIHRo ZSB0ZXN0Lwo+VHlwbzogcy9zbyBQQVJFTlRfU0NPUEUvc28gdGhlIFBBUkVOVF9TQ09QRS8KPj4r c2V0KExVQUpJVF9MSUJSQVJZICR7TFVBSklUX0xJQn0gUEFSRU5UX1NDT1BFKQo+PsKgc2V0KExJ QkxVQUpJVF9ERVBTICR7TElCTFVBSklUX1NUQVRJQ19ERVBTfSAke0xJQkxVQUpJVF9TSEFSRURf REVQU30pCj4+wqAKPj7CoGFkZF9leGVjdXRhYmxlKCR7TFVBSklUX0JJTn0gRVhDTFVERV9GUk9N X0FMTCAke0NMSV9TT1VSQ0VTfSkKPj5kaWZmIC0tZ2l0IGEvdGVzdC90YXJhbnRvb2wtYy10ZXN0 cy9DTWFrZUxpc3RzLnR4dCBiL3Rlc3QvdGFyYW50b29sLWMtdGVzdHMvQ01ha2VMaXN0cy50eHQK Pj5pbmRleCA1ZWJlYTQ0MS4uOTZiZWVmMWEgMTAwNjQ0Cj4+LS0tIGEvdGVzdC90YXJhbnRvb2wt Yy10ZXN0cy9DTWFrZUxpc3RzLnR4dAo+PisrKyBiL3Rlc3QvdGFyYW50b29sLWMtdGVzdHMvQ01h a2VMaXN0cy50eHQKPj5AQCAtMjIsMTMgKzIyLDM3IEBAIHNldF90YXJnZXRfcHJvcGVydGllcyhs aWJ0ZXN0IFBST1BFUlRJRVMKPj7CoMKgwqBMSUJSQVJZX09VVFBVVF9ESVJFQ1RPUlkgIiR7Q01B S0VfQ1VSUkVOVF9CSU5BUllfRElSfSIKPj7CoCkKPj7CoAo+Pi0jIFhYWDogRm9yIG5vdywganVz dCBidWlsZCBsaWJ0ZXN0LiBUaGUgdGVzdHMgdG8gYmUgZGVwZW5kZWQgb24KPj4tIyB3aWxsIGJl IGFkZGVkIGF0IHRoZSBuZXh0IGNvbW1pdC4KPj4rIyBUQVJHRVRfQ19GTEFHUyBpcyByZXF1aXJl ZCBoZXJlIHRvIGJlIHN1cmUgdGhhdCBoZWFkZXJzIGxpa2UKPj4rIyBsal9hcmNoLmggaW4gY29t cGlsZWQgdGVzdCBpcyBjb25zaXN0ZW50IHdpdGggdGhlIEx1YUpJVCBsaWJyYXJ5Cj5UeXBvOiBz L2lzIGNvbnNpc3RlbnQvYXJlIGNvbnNpc3RlbnQvCj4+KyMgdG8gbGluay4KPj4rQXBwZW5kRmxh Z3MoVEVTVFNfQ19GTEFHUyAke1RBUkdFVF9DX0ZMQUdTfSkKPj4rCj4+K3NldChDVEVTVF9TUkNf U1VGRklYICIudGVzdC5jIikKPj4rZmlsZShHTE9CIHRlc3RzICIke0NNQUtFX0NVUlJFTlRfU09V UkNFX0RJUn0vKiR7Q1RFU1RfU1JDX1NVRkZJWH0iKQo+Pitmb3JlYWNoKHRlc3Rfc291cmNlICR7 dGVzdHN9KQo+Pisgc3RyaW5nKFJFR0VYIFJFUExBQ0UgIi4rLyhbXi9dKykke0NURVNUX1NSQ19T VUZGSVh9IiAiXFwxIiBleGUgJHt0ZXN0X3NvdXJjZX0pCj4+KyBhZGRfZXhlY3V0YWJsZSgke2V4 ZX0gRVhDTFVERV9GUk9NX0FMTCAke3Rlc3Rfc291cmNlfSkKPj4rIHRhcmdldF9pbmNsdWRlX2Rp cmVjdG9yaWVzKCR7ZXhlfSBQUklWQVRFCj4+KyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0K Pj4rICR7TFVBSklUX1NPVVJDRV9ESVJ9Cj4+KyApCj4+KyBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMo JHtleGV9IFBST1BFUlRJRVMKPj4rICMgYF9fRklMRV9fYCBtYWNybyBtYXkgbm90IHJlcHJlc250 IGFic29sdXRlIHBhdGggdG8gdGhlCj4+KyAjIHNvdXJjZSBmaWxlLCBkZXBlbmluZyBvbiBjbWFr ZSB2ZXJzaW9uIG9yCj4+KyAjIC1mbWFjcm8tcHJlZml4LW1hcCBmbGFnIHZhbHVlLgo+PisgIyBV c2UgY3VzdG9tIG1hY3JvLgo+PisgQ09NUElMRV9GTEFHUyAiJHtURVNUU19DX0ZMQUdTfSAtRF9f QUJTX0ZJTEVOQU1FX189J1wiJHt0ZXN0X3NvdXJjZX1cIiciCj4+KyBPVVRQVVRfTkFNRSAiJHtl eGV9JHtDX1RFU1RfU1VGRklYfSIKPj4rIFJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAiJHtDTUFL RV9DVVJSRU5UX0JJTkFSWV9ESVJ9Igo+PisgKQo+PisgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7 ZXhlfSBsaWJ0ZXN0ICR7TFVBSklUX0xJQlJBUll9KQo+PisgTElTVChBUFBFTkQgVEVTVFNfQ09N UElMRUQgJHtleGV9KQo+PitlbmRmb3JlYWNoKCkKPj4rCj4+wqBhZGRfY3VzdG9tX3RhcmdldCh0 YXJhbnRvb2wtYy10ZXN0cwo+Pi0gREVQRU5EUyBsaWJsdWFqaXQgbGlidGVzdAo+PisgREVQRU5E UyBsaWJsdWFqaXQgbGlidGVzdCAke1RFU1RTX0NPTVBJTEVEfQo+PsKgKQo+PsKgCj4+LSMgWFhY OiBGb3Igbm93LCBydW4gMCB0ZXN0cy4gSnVzdCB2ZXJpZnkgdGhhdCBsaWJ0ZXN0IHdhcyBidWls ZC4KPj7CoGFkZF9jdXN0b21fY29tbWFuZChUQVJHRVQgdGFyYW50b29sLWMtdGVzdHMKPj7CoMKg wqBDT01NRU5UICJSdW5uaW5nIFRhcmFudG9vbCBDIHRlc3RzIgo+PsKgwqDCoENPTU1BTkQKPj5k aWZmIC0tZ2l0IGEvdGVzdC90YXJhbnRvb2wtdGVzdHMvbWlzY2xpYi1nZXRtZXRyaWNzLWNhcGku dGVzdC5sdWEgYi90ZXN0L3RhcmFudG9vbC1jLXRlc3RzL21pc2NsaWItZ2V0bWV0cmljcy1jYXBp LXNjcmlwdC5sdWEKPj5zaW1pbGFyaXR5IGluZGV4IDY4JQo+PnJlbmFtZSBmcm9tIHRlc3QvdGFy YW50b29sLXRlc3RzL21pc2NsaWItZ2V0bWV0cmljcy1jYXBpLnRlc3QubHVhCj4+cmVuYW1lIHRv IHRlc3QvdGFyYW50b29sLWMtdGVzdHMvbWlzY2xpYi1nZXRtZXRyaWNzLWNhcGktc2NyaXB0Lmx1 YQo+PmluZGV4IDY1NGU1NTQ1Li44ZmFiNDg1YSAxMDA2NDQKPj4tLS0gYS90ZXN0L3RhcmFudG9v bC10ZXN0cy9taXNjbGliLWdldG1ldHJpY3MtY2FwaS50ZXN0Lmx1YQo+PisrKyBiL3Rlc3QvdGFy YW50b29sLWMtdGVzdHMvbWlzY2xpYi1nZXRtZXRyaWNzLWNhcGktc2NyaXB0Lmx1YQo+PkBAIC0x LDMyICsxLDI1IEBACj4+LWxvY2FsIHRhcCA9IHJlcXVpcmUoJ3RhcCcpCj4+LWxvY2FsIHRlc3Qg PSB0YXAudGVzdCgiY2xpYi1taXNjLWdldG1ldHJpY3MiKTpza2lwY29uZCh7Cj4+LSBbJ1Rlc3Qg cmVxdWlyZXMgSklUIGVuYWJsZWQnXSA9IG5vdCBqaXQuc3RhdHVzKCksCj4+LSBbJ0Rpc2FibGVk IG9uICpCU0QgZHVlIHRvICM0ODE5J10gPSBqaXQub3MgPT0gJ0JTRCcsCj4+LX0pCj4+K2xvY2Fs IGZmaSA9IHJlcXVpcmUoJ2ZmaScpCj4+wqAKPj4tdGVzdDpwbGFuKDExKQo+PistLSBBdXhpbGlh cnkgc2NyaXB0IHRvIHByb3ZpZGUgTHVhIGZ1bmN0aW9ucyB0byBiZSB1c2VkIGluIHRlc3RzCj4+ Ky0tIGZvciBgZ2V0bWV0cmljcygpYCBDIEFQSSBpbnNpZGUgdGhlIHRlc3QKPj4rLS0gPG1pc2Ns aWItZ2V0bWV0cmljcy1jYXBpLnRlc3QuYz4uCj4+K2xvY2FsIE0gPSB7fQo+PsKgCj4+LWxvY2Fs IHBhdGggPSBhcmdbMF06Z3N1YignJS50ZXN0JS5sdWEnLCAnJykKPj4tbG9jYWwgc3VmZml4ID0g cGFja2FnZS5jcGF0aDptYXRjaCgnPy4oJWErKTsnKQo+Pi1wYWNrYWdlLmNwYXRoID0gKCclcy8/ LiVzOycpOmZvcm1hdChwYXRoLCBzdWZmaXgpLi5wYWNrYWdlLmNwYXRoCj4+Ky0tIFhYWDogTWF4 IG5pbnMgaXMgbGltaXRlZCBieSBtYXggSVJSZWYsIHRoYXQgZXF1YWxzIHRvCj4+Ky0tIFJFRl9E Uk9QIC0gUkVGX0JJQVMuIFVuZm9ydHVuYXRlbHksIHRoZXNlIGNvbnN0YW50cyBhcmUgbm90Cj4+ Ky0tIHByb3ZpZGVkIHRvIEx1YSBzcGFjZSwgc28gd2Ugb3VnaHQgdG8gbWFrZSBzb21lIG1hdGg6 Cj5NYXliZSwgaXTigJlzIGJldHRlciB0byBzYXkgYGV4cG9zZWRgIGluc3RlYWQgb2YgYHByb3Zp ZGVkYC4gRmVlbCBmcmVlIHRvIGlnbm9yZS4KPj4rLS0gKiBSRUZfRFJPUCA9IDB4ZmZmZgo+Pist LSAqIFJFRl9CSUFTID0gMHg4MDAwCj5QYXRoIHRvIGZpbGUgd2l0aCB0aGVpciBkZWZpbml0aW9u IHdvdWxkIGJlIHVzZWZ1bC4KPj4rbG9jYWwgTUFYTklOUyA9IDB4ZmZmZiAtIDB4ODAwMAo+PsKg Cj4+LWxvY2FsIE1BWE5JTlMgPSByZXF1aXJlKCd1dGlscycpLmNvbnN0Lm1heG5pbnMKPj7CoGxv Y2FsIGppdF9vcHRfZGVmYXVsdCA9IHsKPj7CoMKgwqDCoMKgMywgLS0gbGV2ZWwKPj4tICJob3Rs b29wPTU2IiwKPj4tICJob3RleGl0PTEwIiwKPj4tICJtaW5zdGl0Y2g9MCIsCj4+KyAnaG90bG9v cD01NicsCj4+KyAnaG90ZXhpdD0xMCcsCj4+KyAnbWluc3RpdGNoPTAnLAo+PsKgfQo+PsKgCj4+ LWxvY2FsIHRlc3RnZXRtZXRyaWNzID0gcmVxdWlyZSgidGVzdGdldG1ldHJpY3MiKQo+Pi0KPj4t dGVzdDpvayh0ZXN0Z2V0bWV0cmljcy5iYXNlKCkpCj4+LXRlc3Q6b2sodGVzdGdldG1ldHJpY3Mu Z2NfYWxsb2NhdGVkX2ZyZWVkKCkpCj4+LXRlc3Q6b2sodGVzdGdldG1ldHJpY3MuZ2Nfc3RlcHMo KSkKPj4tCj4+LXRlc3Q6b2sodGVzdGdldG1ldHJpY3Mub2JqY291bnQoZnVuY3Rpb24oaXRlcmF0 aW9ucykKPj4tIGxvY2FsIGZmaSA9IHJlcXVpcmUoImZmaSIpCj4+LQo+PitNLm9iamNvdW50ID0g ZnVuY3Rpb24oaXRlcmF0aW9ucykKPj7CoMKgwqDCoMKgaml0Lm9wdC5zdGFydCgwKQo+PsKgCj4+ wqDCoMKgwqDCoGxvY2FsIHBsYWNlaG9sZGVyID0gewo+PkBAIC01MSwzNSArNDQsMzQgQEAgdGVz dDpvayh0ZXN0Z2V0bWV0cmljcy5vYmpjb3VudChmdW5jdGlvbihpdGVyYXRpb25zKQo+PsKgCj4+ wqDCoMKgwqDCoGZvciBfID0gMSwgaXRlcmF0aW9ucyBkbwo+PsKgwqDCoMKgwqDCoMKgwqDCoC0t IENoZWNrIGNvdW50aW5nIG9mIFZMQS9WTFMvYWxpZ25lZCBjZGF0YS4KPj4tIHRhYmxlLmluc2Vy dChwbGFjZWhvbGRlci5jZGF0YSwgZmZpLm5ldygiY2hhcls/XSIsIDQpKQo+PisgdGFibGUuaW5z ZXJ0KHBsYWNlaG9sZGVyLmNkYXRhLCBmZmkubmV3KCdjaGFyWz9dJywgNCkpCj4+wqDCoMKgwqDC oGVuZAo+PsKgCj4+wqDCoMKgwqDCoGZvciBfID0gMSwgaXRlcmF0aW9ucyBkbwo+PsKgwqDCoMKg wqDCoMKgwqDCoC0tIENoZWNrIGNvdW50aW5nIG9mIG5vbi1WTEEvVkxTL2FsaWduZWQgY2RhdGEu Cj4+LSB0YWJsZS5pbnNlcnQocGxhY2Vob2xkZXIuY2RhdGEsIGZmaS5uZXcoInVpbnQ2NF90Iiwg XykpCj4+KyB0YWJsZS5pbnNlcnQocGxhY2Vob2xkZXIuY2RhdGEsIGZmaS5uZXcoJ3VpbnQ2NF90 JywgXykpCj4+wqDCoMKgwqDCoGVuZAo+PsKgCj4+wqDCoMKgwqDCoHBsYWNlaG9sZGVyID0gbmls IC0tIGx1YWNoZWNrOiBubyB1bnVzZWQKPj7CoMKgwqDCoMKgLS0gUmVzdG9yZSBkZWZhdWx0IGpp dCBzZXR0aW5ncy4KPj7CoMKgwqDCoMKgaml0Lm9wdC5zdGFydCh1bnBhY2soaml0X29wdF9kZWZh dWx0KSkKPj4tZW5kKSkKPj4rZW5kCj4+wqAKPj4tdGVzdDpvayh0ZXN0Z2V0bWV0cmljcy5vYmpj b3VudF9jZGF0YV9kZWNyZW1lbnQoZnVuY3Rpb24oKQo+PitNLm9iamNvdW50X2NkYXRhX2RlY3Jl bWVudCA9IGZ1bmN0aW9uKCkKPj7CoMKgwqDCoMKgLS0gZ2NfY2RhdGFudW0gZGVjcmVtZW50IHRl c3QuCj4+wqDCoMKgwqDCoC0tIFNlZSAgaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJh bnRvb2wvaXNzdWVzLzU4MjAgLgo+Pi0gbG9jYWwgZmZpID0gcmVxdWlyZSgiZmZpIikKPj7CoMKg wqDCoMKgbG9jYWwgZnVuY3Rpb24gbm9wKCkgZW5kCj4+LSBmZmkuZ2MoZmZpLmNhc3QoInZvaWQg KiIsIDApLCBub3ApCj4+KyBmZmkuZ2MoZmZpLmNhc3QoJ3ZvaWQgKicsIDApLCBub3ApCj4+wqDC oMKgwqDCoC0tIERvZXMgbm90IGNvbGxlY3QgdGhlIGNkYXRhLCBidXQgcmVzdXJyZWN0cyB0aGUg b2JqZWN0IGFuZAo+PsKgwqDCoMKgwqAtLSByZW1vdmVzIExKX0dDX0NEQVRBX0ZJTiBmbGFnLgo+ PsKgwqDCoMKgwqBjb2xsZWN0Z2FyYmFnZSgpCj4+wqDCoMKgwqDCoC0tIENvbGxlY3RzIHRoZSBj ZGF0YS4KPj7CoMKgwqDCoMKgY29sbGVjdGdhcmJhZ2UoKQo+Pi1lbmQpKQo+PitlbmQKPj7CoAo+ PsKgLS0gQ29tcGlsZWQgbG9vcCB3aXRoIGEgZGlyZWN0IGV4aXQgdG8gdGhlIGludGVycHJldGVy Lgo+Pi10ZXN0Om9rKHRlc3RnZXRtZXRyaWNzLnNuYXBfcmVzdG9yZXMoZnVuY3Rpb24oKQo+Pi0g aml0Lm9wdC5zdGFydCgwLCAiaG90bG9vcD0xIikKPj4rTS5zbmFwX3Jlc3RvcmVzX2RpcmVjdF9l eGl0ID0gZnVuY3Rpb24oKQo+Pisgaml0Lm9wdC5zdGFydCgwLCAnaG90bG9vcD0xJykKPj7CoAo+ PsKgwqDCoMKgwqBsb2NhbCBzdW0gPSAwCj4+wqDCoMKgwqDCoGZvciBpID0gMSwgMjAgZG8KPj5A QCAtOTEsMTEgKzgzLDExIEBAIHRlc3Q6b2sodGVzdGdldG1ldHJpY3Muc25hcF9yZXN0b3Jlcyhm dW5jdGlvbigpCj4+wqAKPj7CoMKgwqDCoMKgLS0gQSBzaW5nbGUgc25hcHNob3QgcmVzdG9yYXRp b24gaGFwcGVuZWQgb24gbG9vcCBmaW5pc2guCj4+wqDCoMKgwqDCoHJldHVybiAxCj4+LWVuZCkp Cj4+K2VuZAo+PsKgCj4+wqAtLSBDb21waWxlZCBsb29wIHdpdGggYSBzaWRlIGV4aXQgd2hpY2gg ZG9lcyBub3QgZ2V0IGNvbXBpbGVkLgo+Pi10ZXN0Om9rKHRlc3RnZXRtZXRyaWNzLnNuYXBfcmVz dG9yZXMoZnVuY3Rpb24oKQo+Pi0gaml0Lm9wdC5zdGFydCgwLCAiaG90bG9vcD0xIiwgImhvdGV4 aXQ9MiIsICgibWluc3RpdGNoPSVkIik6Zm9ybWF0KE1BWE5JTlMpKQo+PitNLnNuYXBfcmVzdG9y ZXNfc2lkZV9leGl0X25vdF9jb21waWxlZCA9IGZ1bmN0aW9uKCkKPj4rIGppdC5vcHQuc3RhcnQo MCwgJ2hvdGxvb3A9MScsICdob3RleGl0PTInLCAoJ21pbnN0aXRjaD0lZCcpOmZvcm1hdChNQVhO SU5TKSkKPj7CoAo+PsKgwqDCoMKgwqBsb2NhbCBmdW5jdGlvbiBmb28oaSkKPj7CoMKgwqDCoMKg wqDCoMKgwqAtLSBtYXRoLmZtb2QgaXMgbm90IHlldCBjb21waWxlZCEKPj5AQCAtMTEyLDEzICsx MDQsMTMgQEAgdGVzdDpvayh0ZXN0Z2V0bWV0cmljcy5zbmFwX3Jlc3RvcmVzKGZ1bmN0aW9uKCkK Pj7CoAo+PsKgwqDCoMKgwqAtLSBTaWRlIGV4aXRzIGZyb20gdGhlIHJvb3QgdHJhY2UgY291bGQg bm90IGdldCBjb21waWxlZC4KPj7CoMKgwqDCoMKgcmV0dXJuIDUKPj4tZW5kKSkKPj4rZW5kCj4+ wqAKPj7CoC0tIENvbXBpbGVkIGxvb3Agd2l0aCBhIHNpZGUgZXhpdCB3aGljaCBnZXRzIGNvbXBp bGVkLgo+Pi10ZXN0Om9rKHRlc3RnZXRtZXRyaWNzLnNuYXBfcmVzdG9yZXMoZnVuY3Rpb24oKQo+ PitNLnNuYXBfcmVzdG9yZXNfc2lkZV9leGl0X2NvbXBpbGVkID0gZnVuY3Rpb24oKQo+PsKgwqDC oMKgwqAtLSBPcHRpbWl6YXRpb24gbGV2ZWwgaXMgaW1wb3J0YW50IGhlcmUgYXMgYGxvb3BgIG9w dGltaXphdGlvbgo+PsKgwqDCoMKgwqAtLSBtYXkgdW5yb2xsIHRoZSBsb29wIGJvZHkgYW5kIGlu c2VydCArMSBzaWRlIGV4aXQuCj4+LSBqaXQub3B0LnN0YXJ0KDAsICJob3Rsb29wPTEiLCAiaG90 ZXhpdD01IikKPj4rIGppdC5vcHQuc3RhcnQoMCwgJ2hvdGxvb3A9MScsICdob3RleGl0PTUnKQo+ PsKgCj4+wqDCoMKgwqDCoGxvY2FsIGZ1bmN0aW9uIGZvbyhpKQo+PsKgwqDCoMKgwqDCoMKgwqDC oHJldHVybiBpIDw9IDEwIGFuZCBpIG9yIHRvc3RyaW5nKGkpCj4+QEAgLTEzNiwxMyArMTI4LDEz IEBAIHRlc3Q6b2sodGVzdGdldG1ldHJpY3Muc25hcF9yZXN0b3JlcyhmdW5jdGlvbigpCj4+wqDC oMKgwqDCoC0tIGFuZCBjb21waWxlZAo+PsKgwqDCoMKgwqAtLSAxIHNpZGUgZXhpdCBvbiBsb29w IGVuZAo+PsKgwqDCoMKgwqByZXR1cm4gNgo+Pi1lbmQpKQo+PitlbmQKPj7CoAo+PsKgLS0gQ29t cGlsZWQgc2NhbGFyIHRyYWNlIHdpdGggYSBkaXJlY3QgZXhpdCB0byB0aGUgaW50ZXJwcmV0ZXIu Cj4+LXRlc3Q6b2sodGVzdGdldG1ldHJpY3Muc25hcF9yZXN0b3JlcyhmdW5jdGlvbigpCj4+K00u c25hcF9yZXN0b3Jlc19kaXJlY3RfZXhpdF9zY2FsYXIgPSBmdW5jdGlvbigpCj4+wqDCoMKgwqDC oC0tIEZvciBjYWxscyBpdCB3aWxsIGJlIDIgKiBob3Rsb29wIChzZWUgbGpfZGlzcGF0Y2gue2Ms aH0KPj7CoMKgwqDCoMKgLS0gYW5kIGhvdGNhbGxAdm1fKi5kYXNjKS4KPj4tIGppdC5vcHQuc3Rh cnQoMywgImhvdGxvb3A9MiIsICJob3RleGl0PTMiKQo+Pisgaml0Lm9wdC5zdGFydCgzLCAnaG90 bG9vcD0yJywgJ2hvdGV4aXQ9MycpCj4+wqAKPj7CoMKgwqDCoMKgbG9jYWwgZnVuY3Rpb24gZm9v KGkpCj4+wqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIGkgPD0gMTUgYW5kIGkgb3IgdG9zdHJpbmco aSkKPj5AQCAtMTY3LDE1ICsxNTksMTUgQEAgdGVzdDpvayh0ZXN0Z2V0bWV0cmljcy5zbmFwX3Jl c3RvcmVzKGZ1bmN0aW9uKCkKPj7CoMKgwqDCoMKgaml0Lm9wdC5zdGFydCh1bnBhY2soaml0X29w dF9kZWZhdWx0KSkKPj7CoAo+PsKgwqDCoMKgwqByZXR1cm4gMgo+Pi1lbmQpKQo+PitlbmQKPj7C oAo+Pi10ZXN0Om9rKHRlc3RnZXRtZXRyaWNzLnN0cmhhc2goKSkKPj4tCj4+LXRlc3Q6b2sodGVz dGdldG1ldHJpY3MudHJhY2VudW1fYmFzZShmdW5jdGlvbigpCj4+K00udHJhY2VudW1fYmFzZSA9 IGZ1bmN0aW9uKCkKPj7CoMKgwqDCoMKgbG9jYWwgc3VtID0gMAo+PsKgwqDCoMKgwqBmb3IgaSA9 IDEsIDIwMCBkbwo+PsKgwqDCoMKgwqDCoMKgwqDCoHN1bSA9IHN1bSArIGkKPj7CoMKgwqDCoMKg ZW5kCj4+wqDCoMKgwqDCoC0tIENvbXBpbGVkIG9ubHkgMSBsb29wIGFzIG5ldyB0cmFjZS4KPj7C oMKgwqDCoMKgcmV0dXJuIDEKPj4tZW5kKSkKPj4rZW5kCj4+Kwo+PityZXR1cm4gTQo+PmRpZmYg LS1naXQgYS90ZXN0L3RhcmFudG9vbC1jLXRlc3RzL21pc2NsaWItZ2V0bWV0cmljcy1jYXBpLnRl c3QuYyBiL3Rlc3QvdGFyYW50b29sLWMtdGVzdHMvbWlzY2xpYi1nZXRtZXRyaWNzLWNhcGkudGVz dC5jCj4+bmV3IGZpbGUgbW9kZSAxMDA2NDQKPj5pbmRleCAwMDAwMDAwMC4uYTFiYWZiZTYKPj4t LS0gL2Rldi9udWxsCj4+KysrIGIvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9taXNjbGliLWdldG1l dHJpY3MtY2FwaS50ZXN0LmMKPj5AQCAtMCwwICsxLDM0MSBAQAo+PisjaW5jbHVkZSAibHVhLmgi Cj4+KyNpbmNsdWRlICJsdWFqaXQuaCIKPj4rI2luY2x1ZGUgImxhdXhsaWIuaCIKPj4rI2luY2x1 ZGUgImxtaXNjbGliLmgiCj4+Kwo+PisjaW5jbHVkZSAidGVzdC5oIgo+PisjaW5jbHVkZSAidXRp bHMuaCIKPj4rCj4+Ky8qIE5lZWQgZm9yIHNraXBjb25kIGZvciBCU0QgYW5kIEpJVC4gKi8KPj4r I2luY2x1ZGUgImxqX2FyY2guaCIKPlN0aWxsIGRvbuKAmXQgbGlrZSB0aGUgZmFjdCB0aGF0IHdl IG5lZWQgdG8gZG8gdGhhdC4KPj4rCj4+K3N0YXRpYyBpbnQgYmFzZSh2b2lkICp0ZXN0X3N0YXRl KQo+Pit7Cj4+KyBsdWFfU3RhdGUgKkwgPSB0ZXN0X3N0YXRlOwo+Pisgc3RydWN0IGx1YW1fTWV0 cmljcyBtZXRyaWNzOwo+PisgbHVhTV9tZXRyaWNzKEwsICZtZXRyaWNzKTsKPj4rCj4+KyAvKgo+ PisgKiBKdXN0IGNoZWNrIHN0cnVjdHVyZSBmb3JtYXQsIG5vdCB2YWx1ZXMgdGhhdCBmaWVsZHMK Pj4rICogY29udGFpbi4KPj4rICovCj4+KyAodm9pZCltZXRyaWNzLnN0cmhhc2hfaGl0Owo+Pisg KHZvaWQpbWV0cmljcy5zdHJoYXNoX21pc3M7Cj4+Kwo+PisgKHZvaWQpbWV0cmljcy5nY19zdHJu dW07Cj4+KyAodm9pZCltZXRyaWNzLmdjX3RhYm51bTsKPj4rICh2b2lkKW1ldHJpY3MuZ2NfdWRh dGFudW07Cj4+KyAodm9pZCltZXRyaWNzLmdjX2NkYXRhbnVtOwo+PisKPj4rICh2b2lkKW1ldHJp Y3MuZ2NfdG90YWw7Cj4+KyAodm9pZCltZXRyaWNzLmdjX2ZyZWVkOwo+PisgKHZvaWQpbWV0cmlj cy5nY19hbGxvY2F0ZWQ7Cj4+Kwo+PisgKHZvaWQpbWV0cmljcy5nY19zdGVwc19wYXVzZTsKPj4r ICh2b2lkKW1ldHJpY3MuZ2Nfc3RlcHNfcHJvcGFnYXRlOwo+PisgKHZvaWQpbWV0cmljcy5nY19z dGVwc19hdG9taWM7Cj4+KyAodm9pZCltZXRyaWNzLmdjX3N0ZXBzX3N3ZWVwc3RyaW5nOwo+Pisg KHZvaWQpbWV0cmljcy5nY19zdGVwc19zd2VlcDsKPj4rICh2b2lkKW1ldHJpY3MuZ2Nfc3RlcHNf ZmluYWxpemU7Cj4+Kwo+PisgKHZvaWQpbWV0cmljcy5qaXRfc25hcF9yZXN0b3JlOwo+PisgKHZv aWQpbWV0cmljcy5qaXRfdHJhY2VfYWJvcnQ7Cj4+KyAodm9pZCltZXRyaWNzLmppdF9tY29kZV9z aXplOwo+PisgKHZvaWQpbWV0cmljcy5qaXRfdHJhY2VfbnVtOwo+PisKPj4rIHJldHVybiBURVNU X0VYSVRfU1VDQ0VTUzsKPj4rfQo+PisKPj4rc3RhdGljIGludCBnY19hbGxvY2F0ZWRfZnJlZWQo dm9pZCAqdGVzdF9zdGF0ZSkKPj4rewo+PisgbHVhX1N0YXRlICpMID0gdGVzdF9zdGF0ZTsKPj4r IHN0cnVjdCBsdWFtX01ldHJpY3Mgb2xkbSwgbmV3bTsKPj4rIC8qIEZvcmNlIHVwIGdhcmJhZ2Ug Y29sbGVjdCBhbGwgZGVhZCBvYmplY3RzLiAqLwo+PisgbHVhX2djKEwsIExVQV9HQ0NPTExFQ1Qs IDApOwo+PisKPj4rIGx1YU1fbWV0cmljcyhMLCAmb2xkbSk7Cj4+KyAvKiBTaW1wbGUgZ2FyYmFn ZSBnZW5lcmF0aW9uLiAqLwo+PisgaWYgKGx1YUxfZG9zdHJpbmcoTCwgImxvY2FsIGkgPSAwIGZv ciBqID0gMSwgMTAgZG8gaSA9IGkgKyBqIGVuZCIpKQo+PisgYmFpbF9vdXQoImZhaWxlZCB0byB0 cmFuc2xhdGUgTHVhIGNvZGUgc25pcHBldCIpOwo+V2h5IGBiYWlsX291dGAgYW5kIG5vdCBhbiBh c3NlcnRpb24/IEhlcmUgYW5kIGJlbG93Lgo+PisgbHVhX2djKEwsIExVQV9HQ0NPTExFQ1QsIDAp Owo+PisgbHVhTV9tZXRyaWNzKEwsICZuZXdtKTsKPj4rIGFzc2VydF90cnVlKG5ld20uZ2NfYWxs b2NhdGVkIC0gb2xkbS5nY19hbGxvY2F0ZWQgPiAwKTsKPj4rIGFzc2VydF90cnVlKG5ld20uZ2Nf ZnJlZWQgLSBvbGRtLmdjX2ZyZWVkID4gMCk7Cj4+Kwo+PisgcmV0dXJuIFRFU1RfRVhJVF9TVUND RVNTOwo+Pit9Cj4+Kwo+PitzdGF0aWMgaW50IGdjX3N0ZXBzKHZvaWQgKnRlc3Rfc3RhdGUpCj4+ K3sKPj4rIGx1YV9TdGF0ZSAqTCA9IHRlc3Rfc3RhdGU7Cj4+KyBzdHJ1Y3QgbHVhbV9NZXRyaWNz IG9sZG0sIG5ld207Cj4+KyAvKgo+PisgKiBTb21lIGdhcmJhZ2UgaGFzIGFscmVhZHkgaGFwcGVu ZWQgYmVmb3JlIHRoZSBuZXh0IGxpbmUsCj4+KyAqIGkuZS4gZHVyaW5nIGZyb250ZW5kIHByb2Nl c3NpbmcgTHVhIHRlc3QgY2h1bmsuCj4+KyAqIExldCdzIHB1dCBhIGZ1bGwgZ2FyYmFnZSBjb2xs ZWN0aW9uIGN5Y2xlIG9uIHRvcAo+PisgKiBvZiB0aGF0LCBhbmQgY29uZmlybSB0aGF0IG5vbi1u dWxsIHZhbHVlcyBhcmUgcmVwb3J0ZWQKPj4rICogKHdlIGFyZSBub3QgeWV0IGludGVyZXN0ZWQg aW4gYWN0dWFsIG51bWJlcnMpOgo+PisgKi8KPj4rIGx1YV9nYyhMLCBMVUFfR0NDT0xMRUNULCAw KTsKPj4rCj4+KyBsdWFNX21ldHJpY3MoTCwgJm9sZG0pOwo+PisgYXNzZXJ0X3RydWUob2xkbS5n Y19zdGVwc19wYXVzZSA+IDApOwo+PisgYXNzZXJ0X3RydWUob2xkbS5nY19zdGVwc19wcm9wYWdh dGUgPiAwKTsKPj4rIGFzc2VydF90cnVlKG9sZG0uZ2Nfc3RlcHNfYXRvbWljID4gMCk7Cj4+KyBh c3NlcnRfdHJ1ZShvbGRtLmdjX3N0ZXBzX3N3ZWVwc3RyaW5nID4gMCk7Cj4+KyBhc3NlcnRfdHJ1 ZShvbGRtLmdjX3N0ZXBzX3N3ZWVwID4gMCk7Cj4+KyAvKiBOb3RoaW5nIHRvIGZpbmFsaXplLCBz a2lwcGVkLiAqLwo+PisgYXNzZXJ0X3RydWUob2xkbS5nY19zdGVwc19maW5hbGl6ZSA9PSAwKTsK Pj4rCj4+KyAvKgo+PisgKiBBcyBsb25nIGFzIHdlIGRvbid0IGNyZWF0ZSBuZXcgTHVhIG9iamVj dHMKPj4rICogY29uc2VxdWVudCBjYWxsIHNob3VsZCByZXR1cm4gdGhlIHNhbWUgdmFsdWVzOgo+ PisgKi8KPj4rIGx1YU1fbWV0cmljcyhMLCAmbmV3bSk7Cj4+KyBhc3NlcnRfc2l6ZXRfZXF1YWwo bmV3bS5nY19zdGVwc19wYXVzZSwgb2xkbS5nY19zdGVwc19wYXVzZSk7Cj4+KyBhc3NlcnRfc2l6 ZXRfZXF1YWwobmV3bS5nY19zdGVwc19wcm9wYWdhdGUsIG9sZG0uZ2Nfc3RlcHNfcHJvcGFnYXRl KTsKPj4rIGFzc2VydF9zaXpldF9lcXVhbChuZXdtLmdjX3N0ZXBzX2F0b21pYywgb2xkbS5nY19z dGVwc19hdG9taWMpOwo+PisgYXNzZXJ0X3NpemV0X2VxdWFsKG5ld20uZ2Nfc3RlcHNfc3dlZXBz dHJpbmcsCj4+KyBvbGRtLmdjX3N0ZXBzX3N3ZWVwc3RyaW5nKTsKPj4rIGFzc2VydF9zaXpldF9l cXVhbChuZXdtLmdjX3N0ZXBzX3N3ZWVwLCBvbGRtLmdjX3N0ZXBzX3N3ZWVwKTsKPj4rIC8qIE5v dGhpbmcgdG8gZmluYWxpemUsIHNraXBwZWQuICovCj4+KyBhc3NlcnRfdHJ1ZShuZXdtLmdjX3N0 ZXBzX2ZpbmFsaXplID09IDApOwo+Pisgb2xkbSA9IG5ld207Cj4+Kwo+PisgLyoKPj4rICogTm93 IHRoZSBsYXN0IHBoYXNlOiBydW4gZnVsbCBHQyBvbmNlIGFuZCBtYWtlIHN1cmUgdGhhdAo+Pisg KiBldmVyeXRoaW5nIGlzIGJlaW5nIHJlcG9ydGVkIGFzIGV4cGVjdGVkOgo+PisgKi8KPj4rIGx1 YV9nYyhMLCBMVUFfR0NDT0xMRUNULCAwKTsKPj4rIGx1YU1fbWV0cmljcyhMLCAmbmV3bSk7Cj4+ KyBhc3NlcnRfdHJ1ZShuZXdtLmdjX3N0ZXBzX3BhdXNlIC0gb2xkbS5nY19zdGVwc19wYXVzZSA9 PSAxKTsKPj4rIGFzc2VydF90cnVlKG5ld20uZ2Nfc3RlcHNfcHJvcGFnYXRlIC0gb2xkbS5nY19z dGVwc19wcm9wYWdhdGUgPj0gMSk7Cj4+KyBhc3NlcnRfdHJ1ZShuZXdtLmdjX3N0ZXBzX2F0b21p YyAtIG9sZG0uZ2Nfc3RlcHNfYXRvbWljID09IDEpOwo+PisgYXNzZXJ0X3RydWUobmV3bS5nY19z dGVwc19zd2VlcHN0cmluZyAtIG9sZG0uZ2Nfc3RlcHNfc3dlZXBzdHJpbmcgPj0gMSk7Cj4+KyBh c3NlcnRfdHJ1ZShuZXdtLmdjX3N0ZXBzX3N3ZWVwIC0gb2xkbS5nY19zdGVwc19zd2VlcCA+PSAx KTsKPj4rIC8qIE5vdGhpbmcgdG8gZmluYWxpemUsIHNraXBwZWQuICovCj4+KyBhc3NlcnRfdHJ1 ZShuZXdtLmdjX3N0ZXBzX2ZpbmFsaXplID09IDApOwo+Pisgb2xkbSA9IG5ld207Cj4+Kwo+Pisg LyoKPj4rICogTm93IGxldCdzIHJ1biB0aHJlZSBHQyBjeWNsZXMgdG8gZW5zdXJlIHRoYXQKPj4r ICogaW5jcmVtZW50IHdhcyBub3QgYSBsdWNreSBjb2luY2lkZW5jZS4KPj4rICovCj4+KyBsdWFf Z2MoTCwgTFVBX0dDQ09MTEVDVCwgMCk7Cj4+KyBsdWFfZ2MoTCwgTFVBX0dDQ09MTEVDVCwgMCk7 Cj4+KyBsdWFfZ2MoTCwgTFVBX0dDQ09MTEVDVCwgMCk7Cj4+KyBsdWFNX21ldHJpY3MoTCwgJm5l d20pOwo+PisgYXNzZXJ0X3RydWUobmV3bS5nY19zdGVwc19wYXVzZSAtIG9sZG0uZ2Nfc3RlcHNf cGF1c2UgPT0gMyk7Cj4+KyBhc3NlcnRfdHJ1ZShuZXdtLmdjX3N0ZXBzX3Byb3BhZ2F0ZSAtIG9s ZG0uZ2Nfc3RlcHNfcHJvcGFnYXRlID49IDMpOwo+PisgYXNzZXJ0X3RydWUobmV3bS5nY19zdGVw c19hdG9taWMgLSBvbGRtLmdjX3N0ZXBzX2F0b21pYyA9PSAzKTsKPj4rIGFzc2VydF90cnVlKG5l d20uZ2Nfc3RlcHNfc3dlZXBzdHJpbmcgLSBvbGRtLmdjX3N0ZXBzX3N3ZWVwc3RyaW5nID49IDMp Owo+PisgYXNzZXJ0X3RydWUobmV3bS5nY19zdGVwc19zd2VlcCAtIG9sZG0uZ2Nfc3RlcHNfc3dl ZXAgPj0gMyk7Cj4+KyAvKiBOb3RoaW5nIHRvIGZpbmFsaXplLCBza2lwcGVkLiAqLwo+PisgYXNz ZXJ0X3RydWUobmV3bS5nY19zdGVwc19maW5hbGl6ZSA9PSAwKTsKPj4rCj4+KyByZXR1cm4gVEVT VF9FWElUX1NVQ0NFU1M7Cj4+K30KPj4rCj4+K3N0YXRpYyBpbnQgb2JqY291bnQodm9pZCAqdGVz dF9zdGF0ZSkKPj4rewo+PisgbHVhX1N0YXRlICpMID0gdGVzdF9zdGF0ZTsKPj4rIHN0cnVjdCBs dWFtX01ldHJpY3Mgb2xkbSwgbmV3bTsKPj4rIGlmICghTEpfSEFTSklUKQo+Pisgc2tpcCgiVGVz dCByZXF1aXJlcyBKSVQgZW5hYmxlZCIpOwo+PisKPj4rIHV0aWxzX2dldF9hdXhfbGZ1bmMoTCk7 Cj4+Kwo+PisgLyogRm9yY2UgdXAgZ2FyYmFnZSBjb2xsZWN0IGFsbCBkZWFkIG9iamVjdHMuICov Cj4+KyBsdWFfZ2MoTCwgTFVBX0dDQ09MTEVDVCwgMCk7Cj4+Kwo+PisgbHVhTV9tZXRyaWNzKEws ICZvbGRtKTsKPj4rIC8qIEdlbmVyYXRlIGdhcmJhZ2UuIEFyZ3VtZW50IGlzIGl0ZXJhdGlvbnMg YW1vdW50LiAqLwo+PisgbHVhX3B1c2hudW1iZXIoTCwgMTAwMCk7Cj4+KyBsdWFfY2FsbChMLCAx LCAwKTsKPj4rIGx1YV9nYyhMLCBMVUFfR0NDT0xMRUNULCAwKTsKPj4rIGx1YU1fbWV0cmljcyhM LCAmbmV3bSk7Cj4+KyBhc3NlcnRfc2l6ZXRfZXF1YWwobmV3bS5nY19zdHJudW0sIG9sZG0uZ2Nf c3RybnVtKTsKPj4rIGFzc2VydF9zaXpldF9lcXVhbChuZXdtLmdjX3RhYm51bSwgb2xkbS5nY190 YWJudW0pOwo+PisgYXNzZXJ0X3NpemV0X2VxdWFsKG5ld20uZ2NfdWRhdGFudW0sIG9sZG0uZ2Nf dWRhdGFudW0pOwo+PisgYXNzZXJ0X3NpemV0X2VxdWFsKG5ld20uZ2NfY2RhdGFudW0sIG9sZG0u Z2NfY2RhdGFudW0pOwo+PisKPj4rIHJldHVybiBURVNUX0VYSVRfU1VDQ0VTUzsKPj4rfQo+PisK Pj4rc3RhdGljIGludCBvYmpjb3VudF9jZGF0YV9kZWNyZW1lbnQodm9pZCAqdGVzdF9zdGF0ZSkK Pj4rewo+PisgbHVhX1N0YXRlICpMID0gdGVzdF9zdGF0ZTsKPj4rIC8qCj4+KyAqIGNkYXRhIGRl Y3JlbWVudCB0ZXN0Lgo+PisgKiBTZWUgIGh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wvdGFy YW50b29sL2lzc3Vlcy81ODIwIC4KPj4rICovCj4+KyBzdHJ1Y3QgbHVhbV9NZXRyaWNzIG9sZG0s IG5ld207Cj4+KyB1dGlsc19nZXRfYXV4X2xmdW5jKEwpOwo+PisKPj4rIC8qIEZvcmNlIHVwIGdh cmJhZ2UgY29sbGVjdCBhbGwgZGVhZCBvYmplY3RzLiAqLwo+PisgbHVhX2djKEwsIExVQV9HQ0NP TExFQ1QsIDApOwo+PisKPj4rIGx1YU1fbWV0cmljcyhMLCAmb2xkbSk7Cj4+KyAvKgo+PisgKiBU aGUgZnVuY3Rpb24gZ2VuZXJhdGVzIGFuZCBjb2xsZWN0cyBjZGF0YSB3aXRoCj4+KyAqIExKX0dD X0NEQVRBX0ZJTiBmbGFnLgo+PisgKi8KPj4rIGx1YV9jYWxsKEwsIDAsIDApOwo+PisgbHVhTV9t ZXRyaWNzKEwsICZuZXdtKTsKPj4rIGFzc2VydF9zaXpldF9lcXVhbChuZXdtLmdjX2NkYXRhbnVt LCBvbGRtLmdjX2NkYXRhbnVtKTsKPj4rCj4+KyByZXR1cm4gVEVTVF9FWElUX1NVQ0NFU1M7Cj4+ K30KPj4rCj4+Ky8qCj4+KyAqIEdldCBmdW5jdGlvbiB0byBjYWxsIHRvIGdlbmVyYXRlIHRoZSBj b3JyZXNwb25kaW5nIHNuYXBzaG90Cj4+KyAqIHJlc3RvcmVzIG9uIHRvcCBvZiB0aGUgTHVhIHN0 YWNrLiBGdW5jdGlvbiByZXR1cm5zIHRoZSBhbW91bnQKPj4rICogb2Ygc25hcHNob3QgcmVzdG9y YXRpb25zIGV4cGVjdGVkLgo+PisgKiBDbGVhciBzdGFjayBhZnRlciBjYWxsLgo+PisgKi8KPj4r c3RhdGljIHZvaWQgY2hlY2tfc25hcF9yZXN0b3JlcyhsdWFfU3RhdGUgKkwpCj4+K3sKPj4rIHN0 cnVjdCBsdWFtX01ldHJpY3Mgb2xkbSwgbmV3bTsKPj4rIGx1YU1fbWV0cmljcyhMLCAmb2xkbSk7 Cj4+KyAvKiBHZW5lcmF0ZSBzbmFwc2hvdHMuICovCj4+KyBsdWFfY2FsbChMLCAwLCAxKTsKPj4r IGludCBuID0gbHVhX2dldHRvcChMKTsKPj4rIC8qCj4+KyAqIFRoZSBmaXJzdCB2YWx1ZSBpcyB0 aGUgdGFibGUgd2l0aCBmdW5jdGlvbnMsCj4+KyAqIHRoZSBzZWNvbmQgaXMgbnVtYmVyIG9mIHNu YXBzaG90IHJlc3RvcmVzLgo+PisgKi8KPj4rIGlmIChuICE9IDIgfHwgIWx1YV9pc251bWJlcihM LCAtMSkpCj4+KyBiYWlsX291dCgiaW5jb3JyZWN0IHJldHVybiB2YWx1ZTogMSBudW1iZXIgaXMg cmVxdWlyZWQiKTsKPj4rIHNpemVfdCBzbmFwX3Jlc3RvcmVzID0gbHVhX3RvbnVtYmVyKEwsIC0x KTsKPj4rIGx1YU1fbWV0cmljcyhMLCAmbmV3bSk7Cj4+KyAvKgo+PisgKiBSZW1vdmUgYHNuYXBf cmVzdG9yZXNgIGZyb20gc3RhY2suCj4+KyAqIE11c3QgYmUgZG9uZSBiZWZvcmUgcG90aWVudGlh bCBhc3NlcnQgYW5kIGV4aXQgZnJvbQo+PisgKiB0aGUgdGVzdC4KPj4rICovCj4+KyBsdWFfcG9w KEwsIDEpOwo+PisgYXNzZXJ0X3RydWUobmV3bS5qaXRfc25hcF9yZXN0b3JlIC0gb2xkbS5qaXRf c25hcF9yZXN0b3JlCj4+KyA9PSBzbmFwX3Jlc3RvcmVzKTsKPj4rfQo+PisKPj4rc3RhdGljIGlu dCBzbmFwX3Jlc3RvcmVzX2RpcmVjdF9leGl0KHZvaWQgKnRlc3Rfc3RhdGUpCj4+K3sKPj4rIGx1 YV9TdGF0ZSAqTCA9IHRlc3Rfc3RhdGU7Cj4+KyBpZiAoIUxKX0hBU0pJVCkKPj4rIHNraXAoIlRl c3QgcmVxdWlyZXMgSklUIGVuYWJsZWQiKTsKPj4rIHV0aWxzX2dldF9hdXhfbGZ1bmMoTCk7Cj4+ KyBjaGVja19zbmFwX3Jlc3RvcmVzKEwpOwo+PisgcmV0dXJuIFRFU1RfRVhJVF9TVUNDRVNTOwo+ Pit9Cj4+Kwo+PitzdGF0aWMgaW50IHNuYXBfcmVzdG9yZXNfZGlyZWN0X2V4aXRfc2NhbGFyKHZv aWQgKnRlc3Rfc3RhdGUpCj4+K3sKPj4rIGx1YV9TdGF0ZSAqTCA9IHRlc3Rfc3RhdGU7Cj4+KyBp ZiAoIUxKX0hBU0pJVCkKPj4rIHNraXAoIlRlc3QgcmVxdWlyZXMgSklUIGVuYWJsZWQiKTsKPj4r IHV0aWxzX2dldF9hdXhfbGZ1bmMoTCk7Cj4+KyBjaGVja19zbmFwX3Jlc3RvcmVzKEwpOwo+Pisg cmV0dXJuIFRFU1RfRVhJVF9TVUNDRVNTOwo+Pit9Cj4+Kwo+PitzdGF0aWMgaW50IHNuYXBfcmVz dG9yZXNfc2lkZV9leGl0X2NvbXBpbGVkKHZvaWQgKnRlc3Rfc3RhdGUpCj4+K3sKPj4rIGx1YV9T dGF0ZSAqTCA9IHRlc3Rfc3RhdGU7Cj4+KyBpZiAoIUxKX0hBU0pJVCkKPj4rIHNraXAoIlRlc3Qg cmVxdWlyZXMgSklUIGVuYWJsZWQiKTsKPj4rIHV0aWxzX2dldF9hdXhfbGZ1bmMoTCk7Cj4+KyBj aGVja19zbmFwX3Jlc3RvcmVzKEwpOwo+PisgcmV0dXJuIFRFU1RfRVhJVF9TVUNDRVNTOwo+Pit9 Cj4+Kwo+PitzdGF0aWMgaW50IHNuYXBfcmVzdG9yZXNfc2lkZV9leGl0X25vdF9jb21waWxlZCh2 b2lkICp0ZXN0X3N0YXRlKQo+Pit7Cj4+KyBsdWFfU3RhdGUgKkwgPSB0ZXN0X3N0YXRlOwo+Pisg aWYgKCFMSl9IQVNKSVQpCj4+KyBza2lwKCJUZXN0IHJlcXVpcmVzIEpJVCBlbmFibGVkIik7Cj4+ KyB1dGlsc19nZXRfYXV4X2xmdW5jKEwpOwo+PisgY2hlY2tfc25hcF9yZXN0b3JlcyhMKTsKPj4r IHJldHVybiBURVNUX0VYSVRfU1VDQ0VTUzsKPj4rfQo+TWF5YmUgd2Ugc2hvdWxkIGV4dGVuZCB0 aGUgdGVzdGluZyB1dGlsaXR5LCBzbyBpdCBpcyBwb3NzaWJsZSB0byBqb2luIHRlc3Qgc2V0cyBs aWtlCj50aG9zZSBpbnRvIGEgc2luZ2xlIGdyb3VwIGFuZCBza2lwIHRoZW0gYWxsIGF0IG9uY2U/ Cj5JdCB3b3VsZCBiZSBtdWNoIGVhc2llciB0byBtYWludGFpbiB0aGVtwqBmb3Igc3VyZS4KPj4r Cj4+K3N0YXRpYyBpbnQgc3RyaGFzaCh2b2lkICp0ZXN0X3N0YXRlKQo+Pit7Cj4+KyBsdWFfU3Rh dGUgKkwgPSB0ZXN0X3N0YXRlOwo+Pisgc3RydWN0IGx1YW1fTWV0cmljcyBvbGRtLCBuZXdtOwo+ PisgbHVhX3B1c2hzdHJpbmcoTCwgInN0cmhhc2hfaGl0Iik7Cj4+KyBsdWFNX21ldHJpY3MoTCwg Jm9sZG0pOwo+PisgbHVhX3B1c2hzdHJpbmcoTCwgInN0cmhhc2hfaGl0Iik7Cj4+KyBsdWFfcHVz aHN0cmluZyhMLCAibmV3X3N0ciIpOwo+PisgbHVhTV9tZXRyaWNzKEwsICZuZXdtKTsKPj4rIC8q IFJlbW92ZSBwdXNoZWQgc3RyaW5ncy4gKi8KPj4rIGx1YV9wb3AoTCwgMyk7Cj4+KyBhc3NlcnRf dHJ1ZShuZXdtLnN0cmhhc2hfaGl0IC0gb2xkbS5zdHJoYXNoX2hpdCA9PSAxKTsKPj4rIGFzc2Vy dF90cnVlKG5ld20uc3RyaGFzaF9taXNzIC0gb2xkbS5zdHJoYXNoX21pc3MgPT0gMSk7Cj4+KyBy ZXR1cm4gVEVTVF9FWElUX1NVQ0NFU1M7Cj4+K30KPj4rCj4+K3N0YXRpYyBpbnQgdHJhY2VudW1f YmFzZSh2b2lkICp0ZXN0X3N0YXRlKQo+Pit7Cj4+KyBsdWFfU3RhdGUgKkwgPSB0ZXN0X3N0YXRl Owo+PisgaWYgKCFMSl9IQVNKSVQpCj4+KyBza2lwKCJUZXN0IHJlcXVpcmVzIEpJVCBlbmFibGVk Iik7Cj4+KyBzdHJ1Y3QgbHVhbV9NZXRyaWNzIG1ldHJpY3M7Cj4+KyB1dGlsc19nZXRfYXV4X2xm dW5jKEwpOwo+PisKPj4rIGx1YUpJVF9zZXRtb2RlKEwsIDAsIExVQUpJVF9NT0RFX0ZMVVNIKTsK Pj4rIC8qIEZvcmNlIHVwIGdhcmJhZ2UgY29sbGVjdCBhbGwgZGVhZCBvYmplY3RzLiAqLwo+Pisg bHVhX2djKEwsIExVQV9HQ0NPTExFQ1QsIDApOwo+PisKPj4rIGx1YU1fbWV0cmljcyhMLCAmbWV0 cmljcyk7Cj4+KyBhc3NlcnRfdHJ1ZShtZXRyaWNzLmppdF90cmFjZV9udW0gPT0gMCk7Cj4+Kwo+ PisgLyogR2VuZXJhdGUgdHJhY2VzLiAqLwo+PisgbHVhX2NhbGwoTCwgMCwgMSk7Cj4+KyBpbnQg biA9IGx1YV9nZXR0b3AoTCk7Cj4+KyAvKgo+PisgKiBUaGUgZmlyc3QgdmFsdWUgaXMgdGhlIHRh YmxlIHdpdGggZnVuY3Rpb25zLAo+PisgKiB0aGUgc2Vjb25kIGlzIHRoZSBhbW91bnQgb2YgdHJh Y2VzLgo+PisgKi8KPj4rIGlmIChuICE9IDIgfHwgIWx1YV9pc251bWJlcihMLCAtMSkpCj4+KyBi YWlsX291dCgiaW5jb3JyZWN0IHJldHVybiB2YWx1ZTogMSBudW1iZXIgaXMgcmVxdWlyZWQiKTsK Pj4rIHNpemVfdCBqaXRfdHJhY2VfbnVtID0gbHVhX3RvbnVtYmVyKEwsIC0xKTsKPj4rIGx1YU1f bWV0cmljcyhMLCAmbWV0cmljcyk7Cj4+KyAvKiBSZW1vdmUgYGppdF90cmFjZV9udW1gIGZyb20g THVhIHN0YWNrLiAqLwo+PisgbHVhX3BvcChMLCAxKTsKPj4rCj4+KyBhc3NlcnRfc2l6ZXRfZXF1 YWwobWV0cmljcy5qaXRfdHJhY2VfbnVtLCBqaXRfdHJhY2VfbnVtKTsKPj4rCj4+KyBsdWFKSVRf c2V0bW9kZShMLCAwLCBMVUFKSVRfTU9ERV9GTFVTSCk7Cj4+KyAvKiBGb3JjZSB1cCBnYXJiYWdl IGNvbGxlY3QgYWxsIGRlYWQgb2JqZWN0cy4gKi8KPj4rIGx1YV9nYyhMLCBMVUFfR0NDT0xMRUNU LCAwKTsKPj4rIGx1YU1fbWV0cmljcyhMLCAmbWV0cmljcyk7Cj4+KyBhc3NlcnRfdHJ1ZShtZXRy aWNzLmppdF90cmFjZV9udW0gPT0gMCk7Cj4+Kwo+PisgcmV0dXJuIFRFU1RfRVhJVF9TVUNDRVNT Owo+Pit9Cj4+Kwo+PitpbnQgbWFpbih2b2lkKQo+Pit7Cj4+KyBpZiAoTFVBSklUX09TID09IExV QUpJVF9PU19CU0QpCj4+KyBza2lwX2FsbCgiRGlzYWJsZWQgb24gKkJTRCBkdWUgdG8gIzQ4MTki KTsKPj4rCj4+KyBsdWFfU3RhdGUgKkwgPSB1dGlsc19sdWFfaW5pdCgpOwo+PisKPj4rIHV0aWxz X2xvYWRfYXV4X3NjcmlwdChMKTsKPj4rIGNvbnN0IHN0cnVjdCB0ZXN0X3VuaXQgdGdyb3VwW10g PSB7Cj4+KyB0ZXN0X3VuaXRfbmV3KGJhc2UpLAo+PisgdGVzdF91bml0X25ldyhnY19hbGxvY2F0 ZWRfZnJlZWQpLAo+PisgdGVzdF91bml0X25ldyhnY19zdGVwcyksCj4+KyB0ZXN0X3VuaXRfbmV3 KG9iamNvdW50KSwKPj4rIHRlc3RfdW5pdF9uZXcob2JqY291bnRfY2RhdGFfZGVjcmVtZW50KSwK Pj4rIHRlc3RfdW5pdF9uZXcoc25hcF9yZXN0b3Jlc19kaXJlY3RfZXhpdCksCj4+KyB0ZXN0X3Vu aXRfbmV3KHNuYXBfcmVzdG9yZXNfZGlyZWN0X2V4aXRfc2NhbGFyKSwKPj4rIHRlc3RfdW5pdF9u ZXcoc25hcF9yZXN0b3Jlc19zaWRlX2V4aXRfY29tcGlsZWQpLAo+PisgdGVzdF91bml0X25ldyhz bmFwX3Jlc3RvcmVzX3NpZGVfZXhpdF9ub3RfY29tcGlsZWQpLAo+PisgdGVzdF91bml0X25ldyhz dHJoYXNoKSwKPj4rIHRlc3RfdW5pdF9uZXcodHJhY2VudW1fYmFzZSkKPkkgdGhpbmsgdGhhdCB3 ZSBuZWVkIHRvIG1ha2UgYW4gZWZmb3J0IGFuZCB0cnkgbW92ZSBhbGwgc2tpcGNvbmRzIGludG8K Pm9uZSBwbGFjZS4gVGhlIG1haW4gZnVuY3Rpb25zIHNlZW1zIGxpa2UgYSBnb29kIHBsYWNlIGZv ciB0aGVtLiBJdAo+d291bGQgZ3JlYXRseSBpbmNyZWFzZSByZWFkYWJpbHR5IGFuZCBtYWludGFp bmFiaWxpdHkuCj4+KyB9Owo+PisgY29uc3QgaW50IHRlc3RfcmVzdWx0ID0gdGVzdF9ydW5fZ3Jv dXAodGdyb3VwLCBMKTsKPj4rIHV0aWxzX2x1YV9jbG9zZShMKTsKPj4rIHJldHVybiB0ZXN0X3Jl c3VsdDsKPj4rfQo+PmRpZmYgLS1naXQgYS90ZXN0L3RhcmFudG9vbC10ZXN0cy9DTWFrZUxpc3Rz LnR4dCBiL3Rlc3QvdGFyYW50b29sLXRlc3RzL0NNYWtlTGlzdHMudHh0Cj4+aW5kZXggMzhkNmFl NDkuLmI0Y2UzOWQzIDEwMDY0NAo+Pi0tLSBhL3Rlc3QvdGFyYW50b29sLXRlc3RzL0NNYWtlTGlz dHMudHh0Cj4+KysrIGIvdGVzdC90YXJhbnRvb2wtdGVzdHMvQ01ha2VMaXN0cy50eHQKPj5AQCAt NjYsNyArNjYsNiBAQCBhZGRfc3ViZGlyZWN0b3J5KGxqLTQxNi14b3ItYmVmb3JlLWpjYykKPj48 c25pcHBlZD4KPj5kaWZmIC0tZ2l0IGEvdGVzdC90YXJhbnRvb2wtdGVzdHMvbWlzY2xpYi1nZXRt ZXRyaWNzLWNhcGkvQ01ha2VMaXN0cy50eHQgYi90ZXN0L3RhcmFudG9vbC10ZXN0cy9taXNjbGli LWdldG1ldHJpY3MtY2FwaS9DTWFrZUxpc3RzLnR4dAo+PmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAo+PmluZGV4IDYwZWI1YmJiLi4wMDAwMDAwMAo+Pi0tLSBhL3Rlc3QvdGFyYW50b29sLXRlc3Rz L21pc2NsaWItZ2V0bWV0cmljcy1jYXBpL0NNYWtlTGlzdHMudHh0Cj4+KysrIC9kZXYvbnVsbAo+ PkBAIC0xICswLDAgQEAKPj4tQnVpbGRUZXN0Q0xpYih0ZXN0Z2V0bWV0cmljcyB0ZXN0Z2V0bWV0 cmljcy5jKQo+PmRpZmYgLS1naXQgYS90ZXN0L3RhcmFudG9vbC10ZXN0cy9taXNjbGliLWdldG1l dHJpY3MtY2FwaS90ZXN0Z2V0bWV0cmljcy5jIGIvdGVzdC90YXJhbnRvb2wtdGVzdHMvbWlzY2xp Yi1nZXRtZXRyaWNzLWNhcGkvdGVzdGdldG1ldHJpY3MuYwo+PmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAo+PmluZGV4IDY3Nzc2MzM4Li4wMDAwMDAwMAo+Pi0tLSBhL3Rlc3QvdGFyYW50b29sLXRl c3RzL21pc2NsaWItZ2V0bWV0cmljcy1jYXBpL3Rlc3RnZXRtZXRyaWNzLmMKPj4rKysgL2Rldi9u dWxsCj4+QEAgLTEsMjcwICswLDAgQEAKPj48c25pcHBlZD4KPj4tLQo+PjIuMzQuMQo+LS0KPkJl c3QgcmVnYXJkcywKPk1heGltIEtva3J5YXNoa2luCj7CoA== ----ALT--3dDfB62aa089eA5228c8E358aDaAf1951679443645 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+SGkhPC9kaXY+PGRpdj5UaGFua3MgZm9yIHRoZSBwYXRjaCE8L2Rp dj48ZGl2PlBsZWFzZSBjb25zaWRlciBteSBjb21tZW50cyBiZWxvdy48L2Rpdj48ZGl2PiZuYnNw OzwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsg bWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+Jm5ic3A7PGJsb2NrcXVvdGUg c3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGlu ZzowIDAgMCAxMHB4OyI+PGRpdiBpZD0iIj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1z Zy1tc2ciPjxkaXY+PGRpdiBpZD0ic3R5bGVfMTY3ODg5Njg5MzEwMTYzMDk0NjdfQk9EWSI+VGhp cyBwYXRjaCByZXdyaXRlcyB0aGUgYWZvcmVtZW50aW9uZWQgdGVzdCB3aXRoIHVzYWdlIGxpYnRl c3QgcmVjZW50bHk8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj5UeXBv OiBzL3dpdGggdXNhZ2UgbGlidGVzdC93aXRoIHRoZSB1c2FnZSBvZiBsaWJ0ZXN0LC88L2Rpdj48 YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjox MHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2PjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1y ZWFkbXNnLW1zZyI+PGRpdj48ZGl2PmludHJvZHVjZWQuIFNpbmNlIHdlIHN0aWxsIHN0YW5kIGlu IG5lZWQgb2YgYSBMdWEgaGVscGVyIHNjcmlwdCBmb3I8YnI+Z2VuZXJhdGlvbiBvZiB0cmFjZXMs IHRoZSBvcmlnaW5hbCB0ZXN0IGZpbGUgaXMgcmV3b3JrZWQgYXMgYSBzdGFuZGFsb25lPGJyPnNj cmlwdCwgd2hpY2ggcmV0dXJucyB0aGUgdGFibGUgd2l0aCBoZWxwZXIgZnVuY3Rpb25zLiBFYWNo IGhlbHBlcjxicj5mdW5jdGlvbiBpcyBuYW1lZCB0aGUgc2FtZSBhcyB0aGUgdGVzdCB3aGVyZSBp dCB3aWxsIGJlIHVzZWQuIE5vdyBzaW5nbGU8YnI+cXVvdGVzIGFyZSB1c2VkIGFjY29yZGluZyBv dXIgTHVhIGNvZGUgc3R5bGUuPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxk aXY+VHlwbzogcy9hY2NvcmRpbmcgb3VyL2FjY29yZGluZyB0byBvdXIvPC9kaXY+PGJsb2NrcXVv dGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFk ZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1t c2ciPjxkaXY+PGRpdj48YnI+SW4gQyBwYXJ0IGFsbCBhc3NlcnRzIGZyb20gZ2xpYmMgYXJlIHJl cGxhY2VkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmc8YnI+YXNzZXJ0X3tjb25kfSBmcm9tIHRoZSBs aWJ0ZXN0LiBOb3cgdGVzdHMgcmV0dXJuIGBURVNUX0VYSVRfU1VDQ0VTU2AgYXQ8YnI+dGhlIGZp bmlzaC4gQWxzbywgc3RhY2sgY2hlY2sgZm9yIHRoZSBhbW91bnQgb2YgcmV0dXJuIHJlc3VsdHMg ZnJvbTwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48ZGl2PlR5cG8gczovc3Rh Y2sgY2hlY2svdGhlIHN0YWNrIGNoZWNrLzwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXIt bGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsi PjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXY+aGVs cGVyIGZ1bmN0aW9uIGlzIHNsaWdodGx5IGNoYW5nZWQsIHNpbmNlIHRoZXJlIGlzIG9uZSBtb3Jl IHN0YWNrIHNsb3Q8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj5UeXBv OiBzL2hlbHBlci90aGUgaGVscGVyLzwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVm dDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxk aXY+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXY+aW4gdXNl ICh0YWJsZSB3aXRoIHRoZXNlIGZ1bmN0aW9ucykuIGBzbmFwX3Jlc3RvcmVzKClgIEMgZnVuY3Rp b248YnI+ZHVwbGljYXRlcyA0IHRpbWVzIGZvciBlYWNoIHN1YnRlc3QuIENvbW1vbiBoZWxwZXI8 YnI+YGNoZWNrX3NuYXBfcmVzdG9yZXMoKWAgaXMgdXNlZCBmb3IgZWFjaCBvZiB0aGVtLiBFYWNo IGVycm9yIHRocm93aW5nIGlzPGJyPnJlcGxhY2VkIHdpdGggYGJhaWxfb3V0KClgIGNhbGwuPGJy Pjxicj5OQjogYGx1YV9wb3AoKWAgdG8gY2xlYXIgdGhlIEx1YSBzdGFjayBhZnRlciBjYWxsIHNo b3VsZCBiZSBkb25lIGJlZm9yZTwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48 ZGl2PlR5cG86IHMvYWZ0ZXIgY2FsbC9hZnRlciBhIGNhbGwvPC9kaXY+PGJsb2NrcXVvdGUgc3R5 bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzow IDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxk aXY+PGRpdj5hbnkgcG9zc2libGUgYXNzZXJ0aW9uLCB3aGljaCBleGl0IGZyb20gdGVzdCBsZWF2 aW5nIHRoZSBzdGFjazwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48ZGl2PlR5 cG86IHMvd2hpY2ggZXhpdCBmcm9tIHRlc3Qvd2hpY2ggd291bGQgZXhpdCBmcm9tIHRoZSB0ZXN0 LzwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsg bWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVs cGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXY+dW5jbGVhbmVkLjxicj48YnI+QWxsIHNraXBj b25kcyB1c2UgbWFjcm9zIGRlZmluZWQgaW4gJmx0O2xqX2FyY2guaCZndDssIHNvIGl0IGlzIGlu Y2x1ZGVkIGluPGJyPnRoZSB0ZXN0LiBBcyBmYXIgYXMgdGhpcyB0ZXN0IGluaXRpYWxpemVzIEx1 YUpJVCBWTSBtYW51YWxseSwgdGhlcmUgaXM8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2Nr cXVvdGU+PGRpdj5UeXBvOiBzL0x1YUpJVC90aGUgTHVhSklUPC9kaXY+PGJsb2NrcXVvdGUgc3R5 bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzow IDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxk aXY+PGRpdj5ubyBuZWVkIHRvIGNoZWNrIGBqaXQuc3RhdHVzKClgIHJlc3VsdDsgY2hlY2sgYExK X0hBU0pJVGAgaXMgZW5vdWdoLjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48 ZGl2PlR5cG86IHMvY2hlY2svY2hlY2tpbmcvPC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRl ci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4 OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdj5O b3csIG9ubHkgSklULXJlbGF0ZWQgdGVzdHMgYXJlIHNraXBwZWQsIHdoZW4gY29tcGlsZWQgd2l0 aG91dCBKSVQuPGJyPk5ldmVydGhlbGVzcywgYWxsIHRlc3RzIGFyZSBza2lwcGVkIGZvciAqQlNE IGFyY2hlcy48YnI+PGJyPkFsc28sIHRoaXMgcGF0Y2ggc2V0cyB0aGUgbmV3IENNYWtlIHZhcmlh YmxlIG5hbWVkIGBMVUFKSVRfTElCUkFSWWA8YnI+ZXF1YWxzIHRvIGBMVUFKSVRfTElCYCBpbiBg UEFSRU5UX1NDT1BFYCB0byBiZSB1c2VkIGluIHRhcmFudG9vbC1jLXRlc3RzPC9kaXY+PC9kaXY+ PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+VHlwbzogcy9lcXVhbHMvZXF1YWwvPC9kaXY+ PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46 MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMt cmVhZG1zZy1tc2ciPjxkaXY+PGRpdj5saW5raW5nLjxicj48YnI+QWxzbywgLmNfdGVzdCBzdWZm aXggaXMgYWRkZWQgdG8gdGhlICZsdDsuZ2l0aWdub3JlJmd0Oy48YnI+PGJyPlBhcnQgb2YgdGFy YW50b29sL3RhcmFudG9vbCM3OTAwPGJyPi0tLTxicj4mbmJzcDsuZ2l0aWdub3JlIHwgMSArPGJy PiZuYnNwO3NyYy9DTWFrZUxpc3RzLnR4dCB8IDIgKzxicj4mbmJzcDt0ZXN0L3RhcmFudG9vbC1j LXRlc3RzL0NNYWtlTGlzdHMudHh0IHwgMzIgKy08YnI+Jm5ic3A7Li4uL21pc2NsaWItZ2V0bWV0 cmljcy1jYXBpLXNjcmlwdC5sdWF9IHwgODIgKystLS08YnI+Jm5ic3A7Li4uL21pc2NsaWItZ2V0 bWV0cmljcy1jYXBpLnRlc3QuYyB8IDM0MSArKysrKysrKysrKysrKysrKys8YnI+Jm5ic3A7dGVz dC90YXJhbnRvb2wtdGVzdHMvQ01ha2VMaXN0cy50eHQgfCAxIC08YnI+Jm5ic3A7Li4uL21pc2Ns aWItZ2V0bWV0cmljcy1jYXBpL0NNYWtlTGlzdHMudHh0IHwgMSAtPGJyPiZuYnNwOy4uLi9taXNj bGliLWdldG1ldHJpY3MtY2FwaS90ZXN0Z2V0bWV0cmljcy5jIHwgMjcwIC0tLS0tLS0tLS0tLS0t PGJyPiZuYnNwOzggZmlsZXMgY2hhbmdlZCwgNDA5IGluc2VydGlvbnMoKyksIDMyMSBkZWxldGlv bnMoLSk8YnI+Jm5ic3A7cmVuYW1lIHRlc3Qve3RhcmFudG9vbC10ZXN0cy9taXNjbGliLWdldG1l dHJpY3MtY2FwaS50ZXN0Lmx1YSA9Jmd0OyB0YXJhbnRvb2wtYy10ZXN0cy9taXNjbGliLWdldG1l dHJpY3MtY2FwaS1zY3JpcHQubHVhfSAoNjglKTxicj4mbmJzcDtjcmVhdGUgbW9kZSAxMDA2NDQg dGVzdC90YXJhbnRvb2wtYy10ZXN0cy9taXNjbGliLWdldG1ldHJpY3MtY2FwaS50ZXN0LmM8YnI+ Jm5ic3A7ZGVsZXRlIG1vZGUgMTAwNjQ0IHRlc3QvdGFyYW50b29sLXRlc3RzL21pc2NsaWItZ2V0 bWV0cmljcy1jYXBpL0NNYWtlTGlzdHMudHh0PGJyPiZuYnNwO2RlbGV0ZSBtb2RlIDEwMDY0NCB0 ZXN0L3RhcmFudG9vbC10ZXN0cy9taXNjbGliLWdldG1ldHJpY3MtY2FwaS90ZXN0Z2V0bWV0cmlj cy5jPGJyPjxicj5kaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmU8YnI+aW5kZXgg Yjc5MDhhZWUuLmRjNWVhNWZjIDEwMDY0NDxicj4tLS0gYS8uZ2l0aWdub3JlPGJyPisrKyBiLy5n aXRpZ25vcmU8YnI+QEAgLTI0LDMgKzI0LDQgQEAgaW5zdGFsbF9tYW5pZmVzdC50eHQ8YnI+Jm5i c3A7bHVhaml0LXBhcnNlLW1lbXByb2Y8YnI+Jm5ic3A7bHVhaml0LXBhcnNlLXN5c3Byb2Y8YnI+ Jm5ic3A7bHVhaml0LnBjPGJyPisqLmNfdGVzdDxicj5kaWZmIC0tZ2l0IGEvc3JjL0NNYWtlTGlz dHMudHh0IGIvc3JjL0NNYWtlTGlzdHMudHh0PGJyPmluZGV4IGRmZmMwYTRkLi41OGQ4MzMzMCAx MDA2NDQ8YnI+LS0tIGEvc3JjL0NNYWtlTGlzdHMudHh0PGJyPisrKyBiL3NyYy9DTWFrZUxpc3Rz LnR4dDxicj5AQCAtMzI1LDYgKzMyNSw4IEBAIGlmKE5PVCBCVUlMRE1PREUgU1RSRVFVQUwgImR5 bmFtaWMiKTxicj4mbmJzcDsmbmJzcDsmbmJzcDtzZXQoTFVBSklUX0JJTiBsdWFqaXRfc3RhdGlj KTxicj4mbmJzcDsmbmJzcDsmbmJzcDtzZXQoTFVBSklUX0xJQiBsaWJsdWFqaXRfc3RhdGljKTxi cj4mbmJzcDtlbmRpZigpPGJyPisjIE5lZWQgZm9yIHRlc3QgbGlua2luZywgc28gUEFSRU5UX1ND T1BFIG9wdGlvbiBpcyB1c2VkLjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48 ZGl2PlR5cG86IHMvTmVlZCBmb3IgdGVzdC9OZWVkZWQgZm9yIHRoZSB0ZXN0Lzxicj5UeXBvOiBz L3NvIFBBUkVOVF9TQ09QRS9zbyB0aGUgUEFSRU5UX1NDT1BFLzwvZGl2PjxibG9ja3F1b3RlIHN0 eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6 MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48 ZGl2PjxkaXY+K3NldChMVUFKSVRfTElCUkFSWSAke0xVQUpJVF9MSUJ9IFBBUkVOVF9TQ09QRSk8 YnI+Jm5ic3A7c2V0KExJQkxVQUpJVF9ERVBTICR7TElCTFVBSklUX1NUQVRJQ19ERVBTfSAke0xJ QkxVQUpJVF9TSEFSRURfREVQU30pPGJyPiZuYnNwOzxicj4mbmJzcDthZGRfZXhlY3V0YWJsZSgk e0xVQUpJVF9CSU59IEVYQ0xVREVfRlJPTV9BTEwgJHtDTElfU09VUkNFU30pPGJyPmRpZmYgLS1n aXQgYS90ZXN0L3RhcmFudG9vbC1jLXRlc3RzL0NNYWtlTGlzdHMudHh0IGIvdGVzdC90YXJhbnRv b2wtYy10ZXN0cy9DTWFrZUxpc3RzLnR4dDxicj5pbmRleCA1ZWJlYTQ0MS4uOTZiZWVmMWEgMTAw NjQ0PGJyPi0tLSBhL3Rlc3QvdGFyYW50b29sLWMtdGVzdHMvQ01ha2VMaXN0cy50eHQ8YnI+Kysr IGIvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9DTWFrZUxpc3RzLnR4dDxicj5AQCAtMjIsMTMgKzIy LDM3IEBAIHNldF90YXJnZXRfcHJvcGVydGllcyhsaWJ0ZXN0IFBST1BFUlRJRVM8YnI+Jm5ic3A7 Jm5ic3A7Jm5ic3A7TElCUkFSWV9PVVRQVVRfRElSRUNUT1JZICIke0NNQUtFX0NVUlJFTlRfQklO QVJZX0RJUn0iPGJyPiZuYnNwOyk8YnI+Jm5ic3A7PGJyPi0jIFhYWDogRm9yIG5vdywganVzdCBi dWlsZCBsaWJ0ZXN0LiBUaGUgdGVzdHMgdG8gYmUgZGVwZW5kZWQgb248YnI+LSMgd2lsbCBiZSBh ZGRlZCBhdCB0aGUgbmV4dCBjb21taXQuPGJyPisjIFRBUkdFVF9DX0ZMQUdTIGlzIHJlcXVpcmVk IGhlcmUgdG8gYmUgc3VyZSB0aGF0IGhlYWRlcnMgbGlrZTxicj4rIyBsal9hcmNoLmggaW4gY29t cGlsZWQgdGVzdCBpcyBjb25zaXN0ZW50IHdpdGggdGhlIEx1YUpJVCBsaWJyYXJ5PC9kaXY+PC9k aXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+VHlwbzogcy9pcyBjb25zaXN0ZW50L2Fy ZSBjb25zaXN0ZW50LzwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29s aWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBj bGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXY+KyMgdG8gbGluay48YnI+ K0FwcGVuZEZsYWdzKFRFU1RTX0NfRkxBR1MgJHtUQVJHRVRfQ19GTEFHU30pPGJyPis8YnI+K3Nl dChDVEVTVF9TUkNfU1VGRklYICIudGVzdC5jIik8YnI+K2ZpbGUoR0xPQiB0ZXN0cyAiJHtDTUFL RV9DVVJSRU5UX1NPVVJDRV9ESVJ9Lyoke0NURVNUX1NSQ19TVUZGSVh9Iik8YnI+K2ZvcmVhY2go dGVzdF9zb3VyY2UgJHt0ZXN0c30pPGJyPisgc3RyaW5nKFJFR0VYIFJFUExBQ0UgIi4rLyhbXi9d Kykke0NURVNUX1NSQ19TVUZGSVh9IiAiXFwxIiBleGUgJHt0ZXN0X3NvdXJjZX0pPGJyPisgYWRk X2V4ZWN1dGFibGUoJHtleGV9IEVYQ0xVREVfRlJPTV9BTEwgJHt0ZXN0X3NvdXJjZX0pPGJyPisg dGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoJHtleGV9IFBSSVZBVEU8YnI+KyAke0NNQUtFX0NV UlJFTlRfU09VUkNFX0RJUn08YnI+KyAke0xVQUpJVF9TT1VSQ0VfRElSfTxicj4rICk8YnI+KyBz ZXRfdGFyZ2V0X3Byb3BlcnRpZXMoJHtleGV9IFBST1BFUlRJRVM8YnI+KyAjIGBfX0ZJTEVfX2Ag bWFjcm8gbWF5IG5vdCByZXByZXNudCBhYnNvbHV0ZSBwYXRoIHRvIHRoZTxicj4rICMgc291cmNl IGZpbGUsIGRlcGVuaW5nIG9uIGNtYWtlIHZlcnNpb24gb3I8YnI+KyAjIC1mbWFjcm8tcHJlZml4 LW1hcCBmbGFnIHZhbHVlLjxicj4rICMgVXNlIGN1c3RvbSBtYWNyby48YnI+KyBDT01QSUxFX0ZM QUdTICIke1RFU1RTX0NfRkxBR1N9IC1EX19BQlNfRklMRU5BTUVfXz0nXCIke3Rlc3Rfc291cmNl fVwiJyI8YnI+KyBPVVRQVVRfTkFNRSAiJHtleGV9JHtDX1RFU1RfU1VGRklYfSI8YnI+KyBSVU5U SU1FX09VVFBVVF9ESVJFQ1RPUlkgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfSI8YnI+KyAp PGJyPisgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7ZXhlfSBsaWJ0ZXN0ICR7TFVBSklUX0xJQlJB Ull9KTxicj4rIExJU1QoQVBQRU5EIFRFU1RTX0NPTVBJTEVEICR7ZXhlfSk8YnI+K2VuZGZvcmVh Y2goKTxicj4rPGJyPiZuYnNwO2FkZF9jdXN0b21fdGFyZ2V0KHRhcmFudG9vbC1jLXRlc3RzPGJy Pi0gREVQRU5EUyBsaWJsdWFqaXQgbGlidGVzdDxicj4rIERFUEVORFMgbGlibHVhaml0IGxpYnRl c3QgJHtURVNUU19DT01QSUxFRH08YnI+Jm5ic3A7KTxicj4mbmJzcDs8YnI+LSMgWFhYOiBGb3Ig bm93LCBydW4gMCB0ZXN0cy4gSnVzdCB2ZXJpZnkgdGhhdCBsaWJ0ZXN0IHdhcyBidWlsZC48YnI+ Jm5ic3A7YWRkX2N1c3RvbV9jb21tYW5kKFRBUkdFVCB0YXJhbnRvb2wtYy10ZXN0czxicj4mbmJz cDsmbmJzcDsmbmJzcDtDT01NRU5UICJSdW5uaW5nIFRhcmFudG9vbCBDIHRlc3RzIjxicj4mbmJz cDsmbmJzcDsmbmJzcDtDT01NQU5EPGJyPmRpZmYgLS1naXQgYS90ZXN0L3RhcmFudG9vbC10ZXN0 cy9taXNjbGliLWdldG1ldHJpY3MtY2FwaS50ZXN0Lmx1YSBiL3Rlc3QvdGFyYW50b29sLWMtdGVz dHMvbWlzY2xpYi1nZXRtZXRyaWNzLWNhcGktc2NyaXB0Lmx1YTxicj5zaW1pbGFyaXR5IGluZGV4 IDY4JTxicj5yZW5hbWUgZnJvbSB0ZXN0L3RhcmFudG9vbC10ZXN0cy9taXNjbGliLWdldG1ldHJp Y3MtY2FwaS50ZXN0Lmx1YTxicj5yZW5hbWUgdG8gdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9taXNj bGliLWdldG1ldHJpY3MtY2FwaS1zY3JpcHQubHVhPGJyPmluZGV4IDY1NGU1NTQ1Li44ZmFiNDg1 YSAxMDA2NDQ8YnI+LS0tIGEvdGVzdC90YXJhbnRvb2wtdGVzdHMvbWlzY2xpYi1nZXRtZXRyaWNz LWNhcGkudGVzdC5sdWE8YnI+KysrIGIvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9taXNjbGliLWdl dG1ldHJpY3MtY2FwaS1zY3JpcHQubHVhPGJyPkBAIC0xLDMyICsxLDI1IEBAPGJyPi1sb2NhbCB0 YXAgPSByZXF1aXJlKCd0YXAnKTxicj4tbG9jYWwgdGVzdCA9IHRhcC50ZXN0KCJjbGliLW1pc2Mt Z2V0bWV0cmljcyIpOnNraXBjb25kKHs8YnI+LSBbJ1Rlc3QgcmVxdWlyZXMgSklUIGVuYWJsZWQn XSA9IG5vdCBqaXQuc3RhdHVzKCksPGJyPi0gWydEaXNhYmxlZCBvbiAqQlNEIGR1ZSB0byAjNDgx OSddID0gaml0Lm9zID09ICdCU0QnLDxicj4tfSk8YnI+K2xvY2FsIGZmaSA9IHJlcXVpcmUoJ2Zm aScpPGJyPiZuYnNwOzxicj4tdGVzdDpwbGFuKDExKTxicj4rLS0gQXV4aWxpYXJ5IHNjcmlwdCB0 byBwcm92aWRlIEx1YSBmdW5jdGlvbnMgdG8gYmUgdXNlZCBpbiB0ZXN0czxicj4rLS0gZm9yIGBn ZXRtZXRyaWNzKClgIEMgQVBJIGluc2lkZSB0aGUgdGVzdDxicj4rLS0gJmx0O21pc2NsaWItZ2V0 bWV0cmljcy1jYXBpLnRlc3QuYyZndDsuPGJyPitsb2NhbCBNID0ge308YnI+Jm5ic3A7PGJyPi1s b2NhbCBwYXRoID0gYXJnWzBdOmdzdWIoJyUudGVzdCUubHVhJywgJycpPGJyPi1sb2NhbCBzdWZm aXggPSBwYWNrYWdlLmNwYXRoOm1hdGNoKCc/LiglYSspOycpPGJyPi1wYWNrYWdlLmNwYXRoID0g KCclcy8/LiVzOycpOmZvcm1hdChwYXRoLCBzdWZmaXgpLi5wYWNrYWdlLmNwYXRoPGJyPistLSBY WFg6IE1heCBuaW5zIGlzIGxpbWl0ZWQgYnkgbWF4IElSUmVmLCB0aGF0IGVxdWFscyB0bzxicj4r LS0gUkVGX0RST1AgLSBSRUZfQklBUy4gVW5mb3J0dW5hdGVseSwgdGhlc2UgY29uc3RhbnRzIGFy ZSBub3Q8YnI+Ky0tIHByb3ZpZGVkIHRvIEx1YSBzcGFjZSwgc28gd2Ugb3VnaHQgdG8gbWFrZSBz b21lIG1hdGg6PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+TWF5YmUs IGl04oCZcyBiZXR0ZXIgdG8gc2F5IGBleHBvc2VkYCBpbnN0ZWFkIG9mIGBwcm92aWRlZGAuIEZl ZWwgZnJlZSB0byBpZ25vcmUuPC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFw eCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48 ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdj4rLS0gKiBSRUZf RFJPUCA9IDB4ZmZmZjxicj4rLS0gKiBSRUZfQklBUyA9IDB4ODAwMDwvZGl2PjwvZGl2PjwvZGl2 PjwvZGl2PjwvYmxvY2txdW90ZT48ZGl2PlBhdGggdG8gZmlsZSB3aXRoIHRoZWlyIGRlZmluaXRp b24gd291bGQgYmUgdXNlZnVsLjwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDox cHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+ PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXY+K2xvY2FsIE1B WE5JTlMgPSAweGZmZmYgLSAweDgwMDA8YnI+Jm5ic3A7PGJyPi1sb2NhbCBNQVhOSU5TID0gcmVx dWlyZSgndXRpbHMnKS5jb25zdC5tYXhuaW5zPGJyPiZuYnNwO2xvY2FsIGppdF9vcHRfZGVmYXVs dCA9IHs8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7MywgLS0gbGV2ZWw8YnI+LSAi aG90bG9vcD01NiIsPGJyPi0gImhvdGV4aXQ9MTAiLDxicj4tICJtaW5zdGl0Y2g9MCIsPGJyPisg J2hvdGxvb3A9NTYnLDxicj4rICdob3RleGl0PTEwJyw8YnI+KyAnbWluc3RpdGNoPTAnLDxicj4m bmJzcDt9PGJyPiZuYnNwOzxicj4tbG9jYWwgdGVzdGdldG1ldHJpY3MgPSByZXF1aXJlKCJ0ZXN0 Z2V0bWV0cmljcyIpPGJyPi08YnI+LXRlc3Q6b2sodGVzdGdldG1ldHJpY3MuYmFzZSgpKTxicj4t dGVzdDpvayh0ZXN0Z2V0bWV0cmljcy5nY19hbGxvY2F0ZWRfZnJlZWQoKSk8YnI+LXRlc3Q6b2so dGVzdGdldG1ldHJpY3MuZ2Nfc3RlcHMoKSk8YnI+LTxicj4tdGVzdDpvayh0ZXN0Z2V0bWV0cmlj cy5vYmpjb3VudChmdW5jdGlvbihpdGVyYXRpb25zKTxicj4tIGxvY2FsIGZmaSA9IHJlcXVpcmUo ImZmaSIpPGJyPi08YnI+K00ub2JqY291bnQgPSBmdW5jdGlvbihpdGVyYXRpb25zKTxicj4mbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtqaXQub3B0LnN0YXJ0KDApPGJyPiZuYnNwOzxicj4m bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtsb2NhbCBwbGFjZWhvbGRlciA9IHs8YnI+QEAg LTUxLDM1ICs0NCwzNCBAQCB0ZXN0Om9rKHRlc3RnZXRtZXRyaWNzLm9iamNvdW50KGZ1bmN0aW9u KGl0ZXJhdGlvbnMpPGJyPiZuYnNwOzxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtm b3IgXyA9IDEsIGl0ZXJhdGlvbnMgZG88YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LS0gQ2hlY2sgY291bnRpbmcgb2YgVkxBL1ZMUy9hbGln bmVkIGNkYXRhLjxicj4tIHRhYmxlLmluc2VydChwbGFjZWhvbGRlci5jZGF0YSwgZmZpLm5ldygi Y2hhcls/XSIsIDQpKTxicj4rIHRhYmxlLmluc2VydChwbGFjZWhvbGRlci5jZGF0YSwgZmZpLm5l dygnY2hhcls/XScsIDQpKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtlbmQ8YnI+ Jm5ic3A7PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2ZvciBfID0gMSwgaXRlcmF0 aW9ucyBkbzxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDstLSBDaGVjayBjb3VudGluZyBvZiBub24tVkxBL1ZMUy9hbGlnbmVkIGNkYXRhLjxi cj4tIHRhYmxlLmluc2VydChwbGFjZWhvbGRlci5jZGF0YSwgZmZpLm5ldygidWludDY0X3QiLCBf KSk8YnI+KyB0YWJsZS5pbnNlcnQocGxhY2Vob2xkZXIuY2RhdGEsIGZmaS5uZXcoJ3VpbnQ2NF90 JywgXykpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2VuZDxicj4mbmJzcDs8YnI+ Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cGxhY2Vob2xkZXIgPSBuaWwgLS0gbHVhY2hl Y2s6IG5vIHVudXNlZDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDstLSBSZXN0b3Jl IGRlZmF1bHQgaml0IHNldHRpbmdzLjxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtq aXQub3B0LnN0YXJ0KHVucGFjayhqaXRfb3B0X2RlZmF1bHQpKTxicj4tZW5kKSk8YnI+K2VuZDxi cj4mbmJzcDs8YnI+LXRlc3Q6b2sodGVzdGdldG1ldHJpY3Mub2JqY291bnRfY2RhdGFfZGVjcmVt ZW50KGZ1bmN0aW9uKCk8YnI+K00ub2JqY291bnRfY2RhdGFfZGVjcmVtZW50ID0gZnVuY3Rpb24o KTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDstLSBnY19jZGF0YW51bSBkZWNyZW1l bnQgdGVzdC48YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LS0gU2VlIDxhIGhyZWY9 Imh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wvdGFyYW50b29sL2lzc3Vlcy81ODIwIiB0YXJn ZXQ9Il9ibGFuayI+aHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvaXNzdWVz LzU4MjA8L2E+Ljxicj4tIGxvY2FsIGZmaSA9IHJlcXVpcmUoImZmaSIpPGJyPiZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwO2xvY2FsIGZ1bmN0aW9uIG5vcCgpIGVuZDxicj4tIGZmaS5nYyhm ZmkuY2FzdCgidm9pZCAqIiwgMCksIG5vcCk8YnI+KyBmZmkuZ2MoZmZpLmNhc3QoJ3ZvaWQgKics IDApLCBub3ApPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy0tIERvZXMgbm90IGNv bGxlY3QgdGhlIGNkYXRhLCBidXQgcmVzdXJyZWN0cyB0aGUgb2JqZWN0IGFuZDxicj4mbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDstLSByZW1vdmVzIExKX0dDX0NEQVRBX0ZJTiBmbGFnLjxi cj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtjb2xsZWN0Z2FyYmFnZSgpPGJyPiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy0tIENvbGxlY3RzIHRoZSBjZGF0YS48YnI+Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Y29sbGVjdGdhcmJhZ2UoKTxicj4tZW5kKSk8YnI+K2Vu ZDxicj4mbmJzcDs8YnI+Jm5ic3A7LS0gQ29tcGlsZWQgbG9vcCB3aXRoIGEgZGlyZWN0IGV4aXQg dG8gdGhlIGludGVycHJldGVyLjxicj4tdGVzdDpvayh0ZXN0Z2V0bWV0cmljcy5zbmFwX3Jlc3Rv cmVzKGZ1bmN0aW9uKCk8YnI+LSBqaXQub3B0LnN0YXJ0KDAsICJob3Rsb29wPTEiKTxicj4rTS5z bmFwX3Jlc3RvcmVzX2RpcmVjdF9leGl0ID0gZnVuY3Rpb24oKTxicj4rIGppdC5vcHQuc3RhcnQo MCwgJ2hvdGxvb3A9MScpPGJyPiZuYnNwOzxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDtsb2NhbCBzdW0gPSAwPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2ZvciBpID0g MSwgMjAgZG88YnI+QEAgLTkxLDExICs4MywxMSBAQCB0ZXN0Om9rKHRlc3RnZXRtZXRyaWNzLnNu YXBfcmVzdG9yZXMoZnVuY3Rpb24oKTxicj4mbmJzcDs8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7LS0gQSBzaW5nbGUgc25hcHNob3QgcmVzdG9yYXRpb24gaGFwcGVuZWQgb24gbG9v cCBmaW5pc2guPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiAxPGJyPi1l bmQpKTxicj4rZW5kPGJyPiZuYnNwOzxicj4mbmJzcDstLSBDb21waWxlZCBsb29wIHdpdGggYSBz aWRlIGV4aXQgd2hpY2ggZG9lcyBub3QgZ2V0IGNvbXBpbGVkLjxicj4tdGVzdDpvayh0ZXN0Z2V0 bWV0cmljcy5zbmFwX3Jlc3RvcmVzKGZ1bmN0aW9uKCk8YnI+LSBqaXQub3B0LnN0YXJ0KDAsICJo b3Rsb29wPTEiLCAiaG90ZXhpdD0yIiwgKCJtaW5zdGl0Y2g9JWQiKTpmb3JtYXQoTUFYTklOUykp PGJyPitNLnNuYXBfcmVzdG9yZXNfc2lkZV9leGl0X25vdF9jb21waWxlZCA9IGZ1bmN0aW9uKCk8 YnI+KyBqaXQub3B0LnN0YXJ0KDAsICdob3Rsb29wPTEnLCAnaG90ZXhpdD0yJywgKCdtaW5zdGl0 Y2g9JWQnKTpmb3JtYXQoTUFYTklOUykpPGJyPiZuYnNwOzxicj4mbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDtsb2NhbCBmdW5jdGlvbiBmb28oaSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LS0gbWF0aC5mbW9kIGlzIG5vdCB5ZXQg Y29tcGlsZWQhPGJyPkBAIC0xMTIsMTMgKzEwNCwxMyBAQCB0ZXN0Om9rKHRlc3RnZXRtZXRyaWNz LnNuYXBfcmVzdG9yZXMoZnVuY3Rpb24oKTxicj4mbmJzcDs8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7LS0gU2lkZSBleGl0cyBmcm9tIHRoZSByb290IHRyYWNlIGNvdWxkIG5vdCBn ZXQgY29tcGlsZWQuPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiA1PGJy Pi1lbmQpKTxicj4rZW5kPGJyPiZuYnNwOzxicj4mbmJzcDstLSBDb21waWxlZCBsb29wIHdpdGgg YSBzaWRlIGV4aXQgd2hpY2ggZ2V0cyBjb21waWxlZC48YnI+LXRlc3Q6b2sodGVzdGdldG1ldHJp Y3Muc25hcF9yZXN0b3JlcyhmdW5jdGlvbigpPGJyPitNLnNuYXBfcmVzdG9yZXNfc2lkZV9leGl0 X2NvbXBpbGVkID0gZnVuY3Rpb24oKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDst LSBPcHRpbWl6YXRpb24gbGV2ZWwgaXMgaW1wb3J0YW50IGhlcmUgYXMgYGxvb3BgIG9wdGltaXph dGlvbjxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDstLSBtYXkgdW5yb2xsIHRoZSBs b29wIGJvZHkgYW5kIGluc2VydCArMSBzaWRlIGV4aXQuPGJyPi0gaml0Lm9wdC5zdGFydCgwLCAi aG90bG9vcD0xIiwgImhvdGV4aXQ9NSIpPGJyPisgaml0Lm9wdC5zdGFydCgwLCAnaG90bG9vcD0x JywgJ2hvdGV4aXQ9NScpPGJyPiZuYnNwOzxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDtsb2NhbCBmdW5jdGlvbiBmb28oaSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIGkgJmx0Oz0gMTAgYW5kIGkgb3IgdG9zdHJp bmcoaSk8YnI+QEAgLTEzNiwxMyArMTI4LDEzIEBAIHRlc3Q6b2sodGVzdGdldG1ldHJpY3Muc25h cF9yZXN0b3JlcyhmdW5jdGlvbigpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy0t IGFuZCBjb21waWxlZDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDstLSAxIHNpZGUg ZXhpdCBvbiBsb29wIGVuZDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4g Njxicj4tZW5kKSk8YnI+K2VuZDxicj4mbmJzcDs8YnI+Jm5ic3A7LS0gQ29tcGlsZWQgc2NhbGFy IHRyYWNlIHdpdGggYSBkaXJlY3QgZXhpdCB0byB0aGUgaW50ZXJwcmV0ZXIuPGJyPi10ZXN0Om9r KHRlc3RnZXRtZXRyaWNzLnNuYXBfcmVzdG9yZXMoZnVuY3Rpb24oKTxicj4rTS5zbmFwX3Jlc3Rv cmVzX2RpcmVjdF9leGl0X3NjYWxhciA9IGZ1bmN0aW9uKCk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7LS0gRm9yIGNhbGxzIGl0IHdpbGwgYmUgMiAqIGhvdGxvb3AgKHNlZSBsal9k aXNwYXRjaC57YyxofTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDstLSBhbmQgaG90 Y2FsbEB2bV8qLmRhc2MpLjxicj4tIGppdC5vcHQuc3RhcnQoMywgImhvdGxvb3A9MiIsICJob3Rl eGl0PTMiKTxicj4rIGppdC5vcHQuc3RhcnQoMywgJ2hvdGxvb3A9MicsICdob3RleGl0PTMnKTxi cj4mbmJzcDs8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bG9jYWwgZnVuY3Rpb24g Zm9vKGkpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwO3JldHVybiBpICZsdDs9IDE1IGFuZCBpIG9yIHRvc3RyaW5nKGkpPGJyPkBAIC0xNjcs MTUgKzE1OSwxNSBAQCB0ZXN0Om9rKHRlc3RnZXRtZXRyaWNzLnNuYXBfcmVzdG9yZXMoZnVuY3Rp b24oKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtqaXQub3B0LnN0YXJ0KHVucGFj ayhqaXRfb3B0X2RlZmF1bHQpKTxicj4mbmJzcDs8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7cmV0dXJuIDI8YnI+LWVuZCkpPGJyPitlbmQ8YnI+Jm5ic3A7PGJyPi10ZXN0Om9rKHRl c3RnZXRtZXRyaWNzLnN0cmhhc2goKSk8YnI+LTxicj4tdGVzdDpvayh0ZXN0Z2V0bWV0cmljcy50 cmFjZW51bV9iYXNlKGZ1bmN0aW9uKCk8YnI+K00udHJhY2VudW1fYmFzZSA9IGZ1bmN0aW9uKCk8 YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bG9jYWwgc3VtID0gMDxicj4mbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtmb3IgaSA9IDEsIDIwMCBkbzxicj4mbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtzdW0gPSBzdW0gKyBpPGJy PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2VuZDxicj4mbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDstLSBDb21waWxlZCBvbmx5IDEgbG9vcCBhcyBuZXcgdHJhY2UuPGJyPiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiAxPGJyPi1lbmQpKTxicj4rZW5kPGJyPis8 YnI+K3JldHVybiBNPGJyPmRpZmYgLS1naXQgYS90ZXN0L3RhcmFudG9vbC1jLXRlc3RzL21pc2Ns aWItZ2V0bWV0cmljcy1jYXBpLnRlc3QuYyBiL3Rlc3QvdGFyYW50b29sLWMtdGVzdHMvbWlzY2xp Yi1nZXRtZXRyaWNzLWNhcGkudGVzdC5jPGJyPm5ldyBmaWxlIG1vZGUgMTAwNjQ0PGJyPmluZGV4 IDAwMDAwMDAwLi5hMWJhZmJlNjxicj4tLS0gL2Rldi9udWxsPGJyPisrKyBiL3Rlc3QvdGFyYW50 b29sLWMtdGVzdHMvbWlzY2xpYi1nZXRtZXRyaWNzLWNhcGkudGVzdC5jPGJyPkBAIC0wLDAgKzEs MzQxIEBAPGJyPisjaW5jbHVkZSAibHVhLmgiPGJyPisjaW5jbHVkZSAibHVhaml0LmgiPGJyPisj aW5jbHVkZSAibGF1eGxpYi5oIjxicj4rI2luY2x1ZGUgImxtaXNjbGliLmgiPGJyPis8YnI+KyNp bmNsdWRlICJ0ZXN0LmgiPGJyPisjaW5jbHVkZSAidXRpbHMuaCI8YnI+Kzxicj4rLyogTmVlZCBm b3Igc2tpcGNvbmQgZm9yIEJTRCBhbmQgSklULiAqLzxicj4rI2luY2x1ZGUgImxqX2FyY2guaCI8 L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj5TdGlsbCBkb27igJl0IGxp a2UgdGhlIGZhY3QgdGhhdCB3ZSBuZWVkIHRvIGRvIHRoYXQuPC9kaXY+PGJsb2NrcXVvdGUgc3R5 bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzow IDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxk aXY+PGRpdj4rPGJyPitzdGF0aWMgaW50IGJhc2Uodm9pZCAqdGVzdF9zdGF0ZSk8YnI+K3s8YnI+ KyBsdWFfU3RhdGUgKkwgPSB0ZXN0X3N0YXRlOzxicj4rIHN0cnVjdCBsdWFtX01ldHJpY3MgbWV0 cmljczs8YnI+KyBsdWFNX21ldHJpY3MoTCwgJmFtcDttZXRyaWNzKTs8YnI+Kzxicj4rIC8qPGJy PisgKiBKdXN0IGNoZWNrIHN0cnVjdHVyZSBmb3JtYXQsIG5vdCB2YWx1ZXMgdGhhdCBmaWVsZHM8 YnI+KyAqIGNvbnRhaW4uPGJyPisgKi88YnI+KyAodm9pZCltZXRyaWNzLnN0cmhhc2hfaGl0Ozxi cj4rICh2b2lkKW1ldHJpY3Muc3RyaGFzaF9taXNzOzxicj4rPGJyPisgKHZvaWQpbWV0cmljcy5n Y19zdHJudW07PGJyPisgKHZvaWQpbWV0cmljcy5nY190YWJudW07PGJyPisgKHZvaWQpbWV0cmlj cy5nY191ZGF0YW51bTs8YnI+KyAodm9pZCltZXRyaWNzLmdjX2NkYXRhbnVtOzxicj4rPGJyPisg KHZvaWQpbWV0cmljcy5nY190b3RhbDs8YnI+KyAodm9pZCltZXRyaWNzLmdjX2ZyZWVkOzxicj4r ICh2b2lkKW1ldHJpY3MuZ2NfYWxsb2NhdGVkOzxicj4rPGJyPisgKHZvaWQpbWV0cmljcy5nY19z dGVwc19wYXVzZTs8YnI+KyAodm9pZCltZXRyaWNzLmdjX3N0ZXBzX3Byb3BhZ2F0ZTs8YnI+KyAo dm9pZCltZXRyaWNzLmdjX3N0ZXBzX2F0b21pYzs8YnI+KyAodm9pZCltZXRyaWNzLmdjX3N0ZXBz X3N3ZWVwc3RyaW5nOzxicj4rICh2b2lkKW1ldHJpY3MuZ2Nfc3RlcHNfc3dlZXA7PGJyPisgKHZv aWQpbWV0cmljcy5nY19zdGVwc19maW5hbGl6ZTs8YnI+Kzxicj4rICh2b2lkKW1ldHJpY3Muaml0 X3NuYXBfcmVzdG9yZTs8YnI+KyAodm9pZCltZXRyaWNzLmppdF90cmFjZV9hYm9ydDs8YnI+KyAo dm9pZCltZXRyaWNzLmppdF9tY29kZV9zaXplOzxicj4rICh2b2lkKW1ldHJpY3Muaml0X3RyYWNl X251bTs8YnI+Kzxicj4rIHJldHVybiBURVNUX0VYSVRfU1VDQ0VTUzs8YnI+K308YnI+Kzxicj4r c3RhdGljIGludCBnY19hbGxvY2F0ZWRfZnJlZWQodm9pZCAqdGVzdF9zdGF0ZSk8YnI+K3s8YnI+ KyBsdWFfU3RhdGUgKkwgPSB0ZXN0X3N0YXRlOzxicj4rIHN0cnVjdCBsdWFtX01ldHJpY3Mgb2xk bSwgbmV3bTs8YnI+KyAvKiBGb3JjZSB1cCBnYXJiYWdlIGNvbGxlY3QgYWxsIGRlYWQgb2JqZWN0 cy4gKi88YnI+KyBsdWFfZ2MoTCwgTFVBX0dDQ09MTEVDVCwgMCk7PGJyPis8YnI+KyBsdWFNX21l dHJpY3MoTCwgJmFtcDtvbGRtKTs8YnI+KyAvKiBTaW1wbGUgZ2FyYmFnZSBnZW5lcmF0aW9uLiAq Lzxicj4rIGlmIChsdWFMX2Rvc3RyaW5nKEwsICJsb2NhbCBpID0gMCBmb3IgaiA9IDEsIDEwIGRv IGkgPSBpICsgaiBlbmQiKSk8YnI+KyBiYWlsX291dCgiZmFpbGVkIHRvIHRyYW5zbGF0ZSBMdWEg Y29kZSBzbmlwcGV0Iik7PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+ V2h5IGBiYWlsX291dGAgYW5kIG5vdCBhbiBhc3NlcnRpb24/IEhlcmUgYW5kIGJlbG93LjwvZGl2 PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2lu OjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpz LXJlYWRtc2ctbXNnIj48ZGl2PjxkaXY+KyBsdWFfZ2MoTCwgTFVBX0dDQ09MTEVDVCwgMCk7PGJy PisgbHVhTV9tZXRyaWNzKEwsICZhbXA7bmV3bSk7PGJyPisgYXNzZXJ0X3RydWUobmV3bS5nY19h bGxvY2F0ZWQgLSBvbGRtLmdjX2FsbG9jYXRlZCAmZ3Q7IDApOzxicj4rIGFzc2VydF90cnVlKG5l d20uZ2NfZnJlZWQgLSBvbGRtLmdjX2ZyZWVkICZndDsgMCk7PGJyPis8YnI+KyByZXR1cm4gVEVT VF9FWElUX1NVQ0NFU1M7PGJyPit9PGJyPis8YnI+K3N0YXRpYyBpbnQgZ2Nfc3RlcHModm9pZCAq dGVzdF9zdGF0ZSk8YnI+K3s8YnI+KyBsdWFfU3RhdGUgKkwgPSB0ZXN0X3N0YXRlOzxicj4rIHN0 cnVjdCBsdWFtX01ldHJpY3Mgb2xkbSwgbmV3bTs8YnI+KyAvKjxicj4rICogU29tZSBnYXJiYWdl IGhhcyBhbHJlYWR5IGhhcHBlbmVkIGJlZm9yZSB0aGUgbmV4dCBsaW5lLDxicj4rICogaS5lLiBk dXJpbmcgZnJvbnRlbmQgcHJvY2Vzc2luZyBMdWEgdGVzdCBjaHVuay48YnI+KyAqIExldCdzIHB1 dCBhIGZ1bGwgZ2FyYmFnZSBjb2xsZWN0aW9uIGN5Y2xlIG9uIHRvcDxicj4rICogb2YgdGhhdCwg YW5kIGNvbmZpcm0gdGhhdCBub24tbnVsbCB2YWx1ZXMgYXJlIHJlcG9ydGVkPGJyPisgKiAod2Ug YXJlIG5vdCB5ZXQgaW50ZXJlc3RlZCBpbiBhY3R1YWwgbnVtYmVycyk6PGJyPisgKi88YnI+KyBs dWFfZ2MoTCwgTFVBX0dDQ09MTEVDVCwgMCk7PGJyPis8YnI+KyBsdWFNX21ldHJpY3MoTCwgJmFt cDtvbGRtKTs8YnI+KyBhc3NlcnRfdHJ1ZShvbGRtLmdjX3N0ZXBzX3BhdXNlICZndDsgMCk7PGJy PisgYXNzZXJ0X3RydWUob2xkbS5nY19zdGVwc19wcm9wYWdhdGUgJmd0OyAwKTs8YnI+KyBhc3Nl cnRfdHJ1ZShvbGRtLmdjX3N0ZXBzX2F0b21pYyAmZ3Q7IDApOzxicj4rIGFzc2VydF90cnVlKG9s ZG0uZ2Nfc3RlcHNfc3dlZXBzdHJpbmcgJmd0OyAwKTs8YnI+KyBhc3NlcnRfdHJ1ZShvbGRtLmdj X3N0ZXBzX3N3ZWVwICZndDsgMCk7PGJyPisgLyogTm90aGluZyB0byBmaW5hbGl6ZSwgc2tpcHBl ZC4gKi88YnI+KyBhc3NlcnRfdHJ1ZShvbGRtLmdjX3N0ZXBzX2ZpbmFsaXplID09IDApOzxicj4r PGJyPisgLyo8YnI+KyAqIEFzIGxvbmcgYXMgd2UgZG9uJ3QgY3JlYXRlIG5ldyBMdWEgb2JqZWN0 czxicj4rICogY29uc2VxdWVudCBjYWxsIHNob3VsZCByZXR1cm4gdGhlIHNhbWUgdmFsdWVzOjxi cj4rICovPGJyPisgbHVhTV9tZXRyaWNzKEwsICZhbXA7bmV3bSk7PGJyPisgYXNzZXJ0X3NpemV0 X2VxdWFsKG5ld20uZ2Nfc3RlcHNfcGF1c2UsIG9sZG0uZ2Nfc3RlcHNfcGF1c2UpOzxicj4rIGFz c2VydF9zaXpldF9lcXVhbChuZXdtLmdjX3N0ZXBzX3Byb3BhZ2F0ZSwgb2xkbS5nY19zdGVwc19w cm9wYWdhdGUpOzxicj4rIGFzc2VydF9zaXpldF9lcXVhbChuZXdtLmdjX3N0ZXBzX2F0b21pYywg b2xkbS5nY19zdGVwc19hdG9taWMpOzxicj4rIGFzc2VydF9zaXpldF9lcXVhbChuZXdtLmdjX3N0 ZXBzX3N3ZWVwc3RyaW5nLDxicj4rIG9sZG0uZ2Nfc3RlcHNfc3dlZXBzdHJpbmcpOzxicj4rIGFz c2VydF9zaXpldF9lcXVhbChuZXdtLmdjX3N0ZXBzX3N3ZWVwLCBvbGRtLmdjX3N0ZXBzX3N3ZWVw KTs8YnI+KyAvKiBOb3RoaW5nIHRvIGZpbmFsaXplLCBza2lwcGVkLiAqLzxicj4rIGFzc2VydF90 cnVlKG5ld20uZ2Nfc3RlcHNfZmluYWxpemUgPT0gMCk7PGJyPisgb2xkbSA9IG5ld207PGJyPis8 YnI+KyAvKjxicj4rICogTm93IHRoZSBsYXN0IHBoYXNlOiBydW4gZnVsbCBHQyBvbmNlIGFuZCBt YWtlIHN1cmUgdGhhdDxicj4rICogZXZlcnl0aGluZyBpcyBiZWluZyByZXBvcnRlZCBhcyBleHBl Y3RlZDo8YnI+KyAqLzxicj4rIGx1YV9nYyhMLCBMVUFfR0NDT0xMRUNULCAwKTs8YnI+KyBsdWFN X21ldHJpY3MoTCwgJmFtcDtuZXdtKTs8YnI+KyBhc3NlcnRfdHJ1ZShuZXdtLmdjX3N0ZXBzX3Bh dXNlIC0gb2xkbS5nY19zdGVwc19wYXVzZSA9PSAxKTs8YnI+KyBhc3NlcnRfdHJ1ZShuZXdtLmdj X3N0ZXBzX3Byb3BhZ2F0ZSAtIG9sZG0uZ2Nfc3RlcHNfcHJvcGFnYXRlICZndDs9IDEpOzxicj4r IGFzc2VydF90cnVlKG5ld20uZ2Nfc3RlcHNfYXRvbWljIC0gb2xkbS5nY19zdGVwc19hdG9taWMg PT0gMSk7PGJyPisgYXNzZXJ0X3RydWUobmV3bS5nY19zdGVwc19zd2VlcHN0cmluZyAtIG9sZG0u Z2Nfc3RlcHNfc3dlZXBzdHJpbmcgJmd0Oz0gMSk7PGJyPisgYXNzZXJ0X3RydWUobmV3bS5nY19z dGVwc19zd2VlcCAtIG9sZG0uZ2Nfc3RlcHNfc3dlZXAgJmd0Oz0gMSk7PGJyPisgLyogTm90aGlu ZyB0byBmaW5hbGl6ZSwgc2tpcHBlZC4gKi88YnI+KyBhc3NlcnRfdHJ1ZShuZXdtLmdjX3N0ZXBz X2ZpbmFsaXplID09IDApOzxicj4rIG9sZG0gPSBuZXdtOzxicj4rPGJyPisgLyo8YnI+KyAqIE5v dyBsZXQncyBydW4gdGhyZWUgR0MgY3ljbGVzIHRvIGVuc3VyZSB0aGF0PGJyPisgKiBpbmNyZW1l bnQgd2FzIG5vdCBhIGx1Y2t5IGNvaW5jaWRlbmNlLjxicj4rICovPGJyPisgbHVhX2djKEwsIExV QV9HQ0NPTExFQ1QsIDApOzxicj4rIGx1YV9nYyhMLCBMVUFfR0NDT0xMRUNULCAwKTs8YnI+KyBs dWFfZ2MoTCwgTFVBX0dDQ09MTEVDVCwgMCk7PGJyPisgbHVhTV9tZXRyaWNzKEwsICZhbXA7bmV3 bSk7PGJyPisgYXNzZXJ0X3RydWUobmV3bS5nY19zdGVwc19wYXVzZSAtIG9sZG0uZ2Nfc3RlcHNf cGF1c2UgPT0gMyk7PGJyPisgYXNzZXJ0X3RydWUobmV3bS5nY19zdGVwc19wcm9wYWdhdGUgLSBv bGRtLmdjX3N0ZXBzX3Byb3BhZ2F0ZSAmZ3Q7PSAzKTs8YnI+KyBhc3NlcnRfdHJ1ZShuZXdtLmdj X3N0ZXBzX2F0b21pYyAtIG9sZG0uZ2Nfc3RlcHNfYXRvbWljID09IDMpOzxicj4rIGFzc2VydF90 cnVlKG5ld20uZ2Nfc3RlcHNfc3dlZXBzdHJpbmcgLSBvbGRtLmdjX3N0ZXBzX3N3ZWVwc3RyaW5n ICZndDs9IDMpOzxicj4rIGFzc2VydF90cnVlKG5ld20uZ2Nfc3RlcHNfc3dlZXAgLSBvbGRtLmdj X3N0ZXBzX3N3ZWVwICZndDs9IDMpOzxicj4rIC8qIE5vdGhpbmcgdG8gZmluYWxpemUsIHNraXBw ZWQuICovPGJyPisgYXNzZXJ0X3RydWUobmV3bS5nY19zdGVwc19maW5hbGl6ZSA9PSAwKTs8YnI+ Kzxicj4rIHJldHVybiBURVNUX0VYSVRfU1VDQ0VTUzs8YnI+K308YnI+Kzxicj4rc3RhdGljIGlu dCBvYmpjb3VudCh2b2lkICp0ZXN0X3N0YXRlKTxicj4rezxicj4rIGx1YV9TdGF0ZSAqTCA9IHRl c3Rfc3RhdGU7PGJyPisgc3RydWN0IGx1YW1fTWV0cmljcyBvbGRtLCBuZXdtOzxicj4rIGlmICgh TEpfSEFTSklUKTxicj4rIHNraXAoIlRlc3QgcmVxdWlyZXMgSklUIGVuYWJsZWQiKTs8YnI+Kzxi cj4rIHV0aWxzX2dldF9hdXhfbGZ1bmMoTCk7PGJyPis8YnI+KyAvKiBGb3JjZSB1cCBnYXJiYWdl IGNvbGxlY3QgYWxsIGRlYWQgb2JqZWN0cy4gKi88YnI+KyBsdWFfZ2MoTCwgTFVBX0dDQ09MTEVD VCwgMCk7PGJyPis8YnI+KyBsdWFNX21ldHJpY3MoTCwgJmFtcDtvbGRtKTs8YnI+KyAvKiBHZW5l cmF0ZSBnYXJiYWdlLiBBcmd1bWVudCBpcyBpdGVyYXRpb25zIGFtb3VudC4gKi88YnI+KyBsdWFf cHVzaG51bWJlcihMLCAxMDAwKTs8YnI+KyBsdWFfY2FsbChMLCAxLCAwKTs8YnI+KyBsdWFfZ2Mo TCwgTFVBX0dDQ09MTEVDVCwgMCk7PGJyPisgbHVhTV9tZXRyaWNzKEwsICZhbXA7bmV3bSk7PGJy PisgYXNzZXJ0X3NpemV0X2VxdWFsKG5ld20uZ2Nfc3RybnVtLCBvbGRtLmdjX3N0cm51bSk7PGJy PisgYXNzZXJ0X3NpemV0X2VxdWFsKG5ld20uZ2NfdGFibnVtLCBvbGRtLmdjX3RhYm51bSk7PGJy PisgYXNzZXJ0X3NpemV0X2VxdWFsKG5ld20uZ2NfdWRhdGFudW0sIG9sZG0uZ2NfdWRhdGFudW0p Ozxicj4rIGFzc2VydF9zaXpldF9lcXVhbChuZXdtLmdjX2NkYXRhbnVtLCBvbGRtLmdjX2NkYXRh bnVtKTs8YnI+Kzxicj4rIHJldHVybiBURVNUX0VYSVRfU1VDQ0VTUzs8YnI+K308YnI+Kzxicj4r c3RhdGljIGludCBvYmpjb3VudF9jZGF0YV9kZWNyZW1lbnQodm9pZCAqdGVzdF9zdGF0ZSk8YnI+ K3s8YnI+KyBsdWFfU3RhdGUgKkwgPSB0ZXN0X3N0YXRlOzxicj4rIC8qPGJyPisgKiBjZGF0YSBk ZWNyZW1lbnQgdGVzdC48YnI+KyAqIFNlZSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGFy YW50b29sL3RhcmFudG9vbC9pc3N1ZXMvNTgyMCIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vZ2l0 aHViLmNvbS90YXJhbnRvb2wvdGFyYW50b29sL2lzc3Vlcy81ODIwPC9hPi48YnI+KyAqLzxicj4r IHN0cnVjdCBsdWFtX01ldHJpY3Mgb2xkbSwgbmV3bTs8YnI+KyB1dGlsc19nZXRfYXV4X2xmdW5j KEwpOzxicj4rPGJyPisgLyogRm9yY2UgdXAgZ2FyYmFnZSBjb2xsZWN0IGFsbCBkZWFkIG9iamVj dHMuICovPGJyPisgbHVhX2djKEwsIExVQV9HQ0NPTExFQ1QsIDApOzxicj4rPGJyPisgbHVhTV9t ZXRyaWNzKEwsICZhbXA7b2xkbSk7PGJyPisgLyo8YnI+KyAqIFRoZSBmdW5jdGlvbiBnZW5lcmF0 ZXMgYW5kIGNvbGxlY3RzIGNkYXRhIHdpdGg8YnI+KyAqIExKX0dDX0NEQVRBX0ZJTiBmbGFnLjxi cj4rICovPGJyPisgbHVhX2NhbGwoTCwgMCwgMCk7PGJyPisgbHVhTV9tZXRyaWNzKEwsICZhbXA7 bmV3bSk7PGJyPisgYXNzZXJ0X3NpemV0X2VxdWFsKG5ld20uZ2NfY2RhdGFudW0sIG9sZG0uZ2Nf Y2RhdGFudW0pOzxicj4rPGJyPisgcmV0dXJuIFRFU1RfRVhJVF9TVUNDRVNTOzxicj4rfTxicj4r PGJyPisvKjxicj4rICogR2V0IGZ1bmN0aW9uIHRvIGNhbGwgdG8gZ2VuZXJhdGUgdGhlIGNvcnJl c3BvbmRpbmcgc25hcHNob3Q8YnI+KyAqIHJlc3RvcmVzIG9uIHRvcCBvZiB0aGUgTHVhIHN0YWNr LiBGdW5jdGlvbiByZXR1cm5zIHRoZSBhbW91bnQ8YnI+KyAqIG9mIHNuYXBzaG90IHJlc3RvcmF0 aW9ucyBleHBlY3RlZC48YnI+KyAqIENsZWFyIHN0YWNrIGFmdGVyIGNhbGwuPGJyPisgKi88YnI+ K3N0YXRpYyB2b2lkIGNoZWNrX3NuYXBfcmVzdG9yZXMobHVhX1N0YXRlICpMKTxicj4rezxicj4r IHN0cnVjdCBsdWFtX01ldHJpY3Mgb2xkbSwgbmV3bTs8YnI+KyBsdWFNX21ldHJpY3MoTCwgJmFt cDtvbGRtKTs8YnI+KyAvKiBHZW5lcmF0ZSBzbmFwc2hvdHMuICovPGJyPisgbHVhX2NhbGwoTCwg MCwgMSk7PGJyPisgaW50IG4gPSBsdWFfZ2V0dG9wKEwpOzxicj4rIC8qPGJyPisgKiBUaGUgZmly c3QgdmFsdWUgaXMgdGhlIHRhYmxlIHdpdGggZnVuY3Rpb25zLDxicj4rICogdGhlIHNlY29uZCBp cyBudW1iZXIgb2Ygc25hcHNob3QgcmVzdG9yZXMuPGJyPisgKi88YnI+KyBpZiAobiAhPSAyIHx8 ICFsdWFfaXNudW1iZXIoTCwgLTEpKTxicj4rIGJhaWxfb3V0KCJpbmNvcnJlY3QgcmV0dXJuIHZh bHVlOiAxIG51bWJlciBpcyByZXF1aXJlZCIpOzxicj4rIHNpemVfdCBzbmFwX3Jlc3RvcmVzID0g bHVhX3RvbnVtYmVyKEwsIC0xKTs8YnI+KyBsdWFNX21ldHJpY3MoTCwgJmFtcDtuZXdtKTs8YnI+ KyAvKjxicj4rICogUmVtb3ZlIGBzbmFwX3Jlc3RvcmVzYCBmcm9tIHN0YWNrLjxicj4rICogTXVz dCBiZSBkb25lIGJlZm9yZSBwb3RpZW50aWFsIGFzc2VydCBhbmQgZXhpdCBmcm9tPGJyPisgKiB0 aGUgdGVzdC48YnI+KyAqLzxicj4rIGx1YV9wb3AoTCwgMSk7PGJyPisgYXNzZXJ0X3RydWUobmV3 bS5qaXRfc25hcF9yZXN0b3JlIC0gb2xkbS5qaXRfc25hcF9yZXN0b3JlPGJyPisgPT0gc25hcF9y ZXN0b3Jlcyk7PGJyPit9PGJyPis8YnI+K3N0YXRpYyBpbnQgc25hcF9yZXN0b3Jlc19kaXJlY3Rf ZXhpdCh2b2lkICp0ZXN0X3N0YXRlKTxicj4rezxicj4rIGx1YV9TdGF0ZSAqTCA9IHRlc3Rfc3Rh dGU7PGJyPisgaWYgKCFMSl9IQVNKSVQpPGJyPisgc2tpcCgiVGVzdCByZXF1aXJlcyBKSVQgZW5h YmxlZCIpOzxicj4rIHV0aWxzX2dldF9hdXhfbGZ1bmMoTCk7PGJyPisgY2hlY2tfc25hcF9yZXN0 b3JlcyhMKTs8YnI+KyByZXR1cm4gVEVTVF9FWElUX1NVQ0NFU1M7PGJyPit9PGJyPis8YnI+K3N0 YXRpYyBpbnQgc25hcF9yZXN0b3Jlc19kaXJlY3RfZXhpdF9zY2FsYXIodm9pZCAqdGVzdF9zdGF0 ZSk8YnI+K3s8YnI+KyBsdWFfU3RhdGUgKkwgPSB0ZXN0X3N0YXRlOzxicj4rIGlmICghTEpfSEFT SklUKTxicj4rIHNraXAoIlRlc3QgcmVxdWlyZXMgSklUIGVuYWJsZWQiKTs8YnI+KyB1dGlsc19n ZXRfYXV4X2xmdW5jKEwpOzxicj4rIGNoZWNrX3NuYXBfcmVzdG9yZXMoTCk7PGJyPisgcmV0dXJu IFRFU1RfRVhJVF9TVUNDRVNTOzxicj4rfTxicj4rPGJyPitzdGF0aWMgaW50IHNuYXBfcmVzdG9y ZXNfc2lkZV9leGl0X2NvbXBpbGVkKHZvaWQgKnRlc3Rfc3RhdGUpPGJyPit7PGJyPisgbHVhX1N0 YXRlICpMID0gdGVzdF9zdGF0ZTs8YnI+KyBpZiAoIUxKX0hBU0pJVCk8YnI+KyBza2lwKCJUZXN0 IHJlcXVpcmVzIEpJVCBlbmFibGVkIik7PGJyPisgdXRpbHNfZ2V0X2F1eF9sZnVuYyhMKTs8YnI+ KyBjaGVja19zbmFwX3Jlc3RvcmVzKEwpOzxicj4rIHJldHVybiBURVNUX0VYSVRfU1VDQ0VTUzs8 YnI+K308YnI+Kzxicj4rc3RhdGljIGludCBzbmFwX3Jlc3RvcmVzX3NpZGVfZXhpdF9ub3RfY29t cGlsZWQodm9pZCAqdGVzdF9zdGF0ZSk8YnI+K3s8YnI+KyBsdWFfU3RhdGUgKkwgPSB0ZXN0X3N0 YXRlOzxicj4rIGlmICghTEpfSEFTSklUKTxicj4rIHNraXAoIlRlc3QgcmVxdWlyZXMgSklUIGVu YWJsZWQiKTs8YnI+KyB1dGlsc19nZXRfYXV4X2xmdW5jKEwpOzxicj4rIGNoZWNrX3NuYXBfcmVz dG9yZXMoTCk7PGJyPisgcmV0dXJuIFRFU1RfRVhJVF9TVUNDRVNTOzxicj4rfTwvZGl2PjwvZGl2 PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48ZGl2Pk1heWJlIHdlIHNob3VsZCBleHRlbmQgdGhl IHRlc3RpbmcgdXRpbGl0eSwgc28gaXQgaXMgcG9zc2libGUgdG8gam9pbiB0ZXN0IHNldHMgbGlr ZTwvZGl2PjxkaXY+dGhvc2UgaW50byBhIHNpbmdsZSBncm91cCBhbmQgc2tpcCB0aGVtIGFsbCBh dCBvbmNlPzwvZGl2PjxkaXY+SXQgd291bGQgYmUgbXVjaCBlYXNpZXIgdG8gbWFpbnRhaW4gdGhl bSZuYnNwO2ZvciBzdXJlLjwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHgg c29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRp diBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXY+Kzxicj4rc3RhdGlj IGludCBzdHJoYXNoKHZvaWQgKnRlc3Rfc3RhdGUpPGJyPit7PGJyPisgbHVhX1N0YXRlICpMID0g dGVzdF9zdGF0ZTs8YnI+KyBzdHJ1Y3QgbHVhbV9NZXRyaWNzIG9sZG0sIG5ld207PGJyPisgbHVh X3B1c2hzdHJpbmcoTCwgInN0cmhhc2hfaGl0Iik7PGJyPisgbHVhTV9tZXRyaWNzKEwsICZhbXA7 b2xkbSk7PGJyPisgbHVhX3B1c2hzdHJpbmcoTCwgInN0cmhhc2hfaGl0Iik7PGJyPisgbHVhX3B1 c2hzdHJpbmcoTCwgIm5ld19zdHIiKTs8YnI+KyBsdWFNX21ldHJpY3MoTCwgJmFtcDtuZXdtKTs8 YnI+KyAvKiBSZW1vdmUgcHVzaGVkIHN0cmluZ3MuICovPGJyPisgbHVhX3BvcChMLCAzKTs8YnI+ KyBhc3NlcnRfdHJ1ZShuZXdtLnN0cmhhc2hfaGl0IC0gb2xkbS5zdHJoYXNoX2hpdCA9PSAxKTs8 YnI+KyBhc3NlcnRfdHJ1ZShuZXdtLnN0cmhhc2hfbWlzcyAtIG9sZG0uc3RyaGFzaF9taXNzID09 IDEpOzxicj4rIHJldHVybiBURVNUX0VYSVRfU1VDQ0VTUzs8YnI+K308YnI+Kzxicj4rc3RhdGlj IGludCB0cmFjZW51bV9iYXNlKHZvaWQgKnRlc3Rfc3RhdGUpPGJyPit7PGJyPisgbHVhX1N0YXRl ICpMID0gdGVzdF9zdGF0ZTs8YnI+KyBpZiAoIUxKX0hBU0pJVCk8YnI+KyBza2lwKCJUZXN0IHJl cXVpcmVzIEpJVCBlbmFibGVkIik7PGJyPisgc3RydWN0IGx1YW1fTWV0cmljcyBtZXRyaWNzOzxi cj4rIHV0aWxzX2dldF9hdXhfbGZ1bmMoTCk7PGJyPis8YnI+KyBsdWFKSVRfc2V0bW9kZShMLCAw LCBMVUFKSVRfTU9ERV9GTFVTSCk7PGJyPisgLyogRm9yY2UgdXAgZ2FyYmFnZSBjb2xsZWN0IGFs bCBkZWFkIG9iamVjdHMuICovPGJyPisgbHVhX2djKEwsIExVQV9HQ0NPTExFQ1QsIDApOzxicj4r PGJyPisgbHVhTV9tZXRyaWNzKEwsICZhbXA7bWV0cmljcyk7PGJyPisgYXNzZXJ0X3RydWUobWV0 cmljcy5qaXRfdHJhY2VfbnVtID09IDApOzxicj4rPGJyPisgLyogR2VuZXJhdGUgdHJhY2VzLiAq Lzxicj4rIGx1YV9jYWxsKEwsIDAsIDEpOzxicj4rIGludCBuID0gbHVhX2dldHRvcChMKTs8YnI+ KyAvKjxicj4rICogVGhlIGZpcnN0IHZhbHVlIGlzIHRoZSB0YWJsZSB3aXRoIGZ1bmN0aW9ucyw8 YnI+KyAqIHRoZSBzZWNvbmQgaXMgdGhlIGFtb3VudCBvZiB0cmFjZXMuPGJyPisgKi88YnI+KyBp ZiAobiAhPSAyIHx8ICFsdWFfaXNudW1iZXIoTCwgLTEpKTxicj4rIGJhaWxfb3V0KCJpbmNvcnJl Y3QgcmV0dXJuIHZhbHVlOiAxIG51bWJlciBpcyByZXF1aXJlZCIpOzxicj4rIHNpemVfdCBqaXRf dHJhY2VfbnVtID0gbHVhX3RvbnVtYmVyKEwsIC0xKTs8YnI+KyBsdWFNX21ldHJpY3MoTCwgJmFt cDttZXRyaWNzKTs8YnI+KyAvKiBSZW1vdmUgYGppdF90cmFjZV9udW1gIGZyb20gTHVhIHN0YWNr LiAqLzxicj4rIGx1YV9wb3AoTCwgMSk7PGJyPis8YnI+KyBhc3NlcnRfc2l6ZXRfZXF1YWwobWV0 cmljcy5qaXRfdHJhY2VfbnVtLCBqaXRfdHJhY2VfbnVtKTs8YnI+Kzxicj4rIGx1YUpJVF9zZXRt b2RlKEwsIDAsIExVQUpJVF9NT0RFX0ZMVVNIKTs8YnI+KyAvKiBGb3JjZSB1cCBnYXJiYWdlIGNv bGxlY3QgYWxsIGRlYWQgb2JqZWN0cy4gKi88YnI+KyBsdWFfZ2MoTCwgTFVBX0dDQ09MTEVDVCwg MCk7PGJyPisgbHVhTV9tZXRyaWNzKEwsICZhbXA7bWV0cmljcyk7PGJyPisgYXNzZXJ0X3RydWUo bWV0cmljcy5qaXRfdHJhY2VfbnVtID09IDApOzxicj4rPGJyPisgcmV0dXJuIFRFU1RfRVhJVF9T VUNDRVNTOzxicj4rfTxicj4rPGJyPitpbnQgbWFpbih2b2lkKTxicj4rezxicj4rIGlmIChMVUFK SVRfT1MgPT0gTFVBSklUX09TX0JTRCk8YnI+KyBza2lwX2FsbCgiRGlzYWJsZWQgb24gKkJTRCBk dWUgdG8gIzQ4MTkiKTs8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGJsb2Nr cXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsg cGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1z Zy1tc2ciPjxkaXY+PGRpdj4rPGJyPisgbHVhX1N0YXRlICpMID0gdXRpbHNfbHVhX2luaXQoKTs8 YnI+Kzxicj4rIHV0aWxzX2xvYWRfYXV4X3NjcmlwdChMKTs8YnI+KyBjb25zdCBzdHJ1Y3QgdGVz dF91bml0IHRncm91cFtdID0gezxicj4rIHRlc3RfdW5pdF9uZXcoYmFzZSksPGJyPisgdGVzdF91 bml0X25ldyhnY19hbGxvY2F0ZWRfZnJlZWQpLDxicj4rIHRlc3RfdW5pdF9uZXcoZ2Nfc3RlcHMp LDxicj4rIHRlc3RfdW5pdF9uZXcob2JqY291bnQpLDxicj4rIHRlc3RfdW5pdF9uZXcob2JqY291 bnRfY2RhdGFfZGVjcmVtZW50KSw8YnI+KyB0ZXN0X3VuaXRfbmV3KHNuYXBfcmVzdG9yZXNfZGly ZWN0X2V4aXQpLDxicj4rIHRlc3RfdW5pdF9uZXcoc25hcF9yZXN0b3Jlc19kaXJlY3RfZXhpdF9z Y2FsYXIpLDxicj4rIHRlc3RfdW5pdF9uZXcoc25hcF9yZXN0b3Jlc19zaWRlX2V4aXRfY29tcGls ZWQpLDxicj4rIHRlc3RfdW5pdF9uZXcoc25hcF9yZXN0b3Jlc19zaWRlX2V4aXRfbm90X2NvbXBp bGVkKSw8YnI+KyB0ZXN0X3VuaXRfbmV3KHN0cmhhc2gpLDxicj4rIHRlc3RfdW5pdF9uZXcodHJh Y2VudW1fYmFzZSk8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj5JIHRo aW5rIHRoYXQgd2UgbmVlZCB0byBtYWtlIGFuIGVmZm9ydCBhbmQgdHJ5IG1vdmUgYWxsIHNraXBj b25kcyBpbnRvPC9kaXY+PGRpdj5vbmUgcGxhY2UuIFRoZSBtYWluIGZ1bmN0aW9ucyBzZWVtcyBs aWtlIGEgZ29vZCBwbGFjZSBmb3IgdGhlbS4gSXQ8L2Rpdj48ZGl2PndvdWxkIGdyZWF0bHkgaW5j cmVhc2UgcmVhZGFiaWx0eSBhbmQgbWFpbnRhaW5hYmlsaXR5LjwvZGl2PjxibG9ja3F1b3RlIHN0 eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6 MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48 ZGl2PjxkaXY+KyB9Ozxicj4rIGNvbnN0IGludCB0ZXN0X3Jlc3VsdCA9IHRlc3RfcnVuX2dyb3Vw KHRncm91cCwgTCk7PGJyPisgdXRpbHNfbHVhX2Nsb3NlKEwpOzxicj4rIHJldHVybiB0ZXN0X3Jl c3VsdDs8YnI+K308YnI+ZGlmZiAtLWdpdCBhL3Rlc3QvdGFyYW50b29sLXRlc3RzL0NNYWtlTGlz dHMudHh0IGIvdGVzdC90YXJhbnRvb2wtdGVzdHMvQ01ha2VMaXN0cy50eHQ8YnI+aW5kZXggMzhk NmFlNDkuLmI0Y2UzOWQzIDEwMDY0NDxicj4tLS0gYS90ZXN0L3RhcmFudG9vbC10ZXN0cy9DTWFr ZUxpc3RzLnR4dDxicj4rKysgYi90ZXN0L3RhcmFudG9vbC10ZXN0cy9DTWFrZUxpc3RzLnR4dDxi cj5AQCAtNjYsNyArNjYsNiBAQCBhZGRfc3ViZGlyZWN0b3J5KGxqLTQxNi14b3ItYmVmb3JlLWpj Yyk8YnI+Jmx0O3NuaXBwZWQmZ3Q7PGJyPmRpZmYgLS1naXQgYS90ZXN0L3RhcmFudG9vbC10ZXN0 cy9taXNjbGliLWdldG1ldHJpY3MtY2FwaS9DTWFrZUxpc3RzLnR4dCBiL3Rlc3QvdGFyYW50b29s LXRlc3RzL21pc2NsaWItZ2V0bWV0cmljcy1jYXBpL0NNYWtlTGlzdHMudHh0PGJyPmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NDxicj5pbmRleCA2MGViNWJiYi4uMDAwMDAwMDA8YnI+LS0tIGEvdGVz dC90YXJhbnRvb2wtdGVzdHMvbWlzY2xpYi1nZXRtZXRyaWNzLWNhcGkvQ01ha2VMaXN0cy50eHQ8 YnI+KysrIC9kZXYvbnVsbDxicj5AQCAtMSArMCwwIEBAPGJyPi1CdWlsZFRlc3RDTGliKHRlc3Rn ZXRtZXRyaWNzIHRlc3RnZXRtZXRyaWNzLmMpPGJyPmRpZmYgLS1naXQgYS90ZXN0L3RhcmFudG9v bC10ZXN0cy9taXNjbGliLWdldG1ldHJpY3MtY2FwaS90ZXN0Z2V0bWV0cmljcy5jIGIvdGVzdC90 YXJhbnRvb2wtdGVzdHMvbWlzY2xpYi1nZXRtZXRyaWNzLWNhcGkvdGVzdGdldG1ldHJpY3MuYzxi cj5kZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQ8YnI+aW5kZXggNjc3NzYzMzguLjAwMDAwMDAwPGJy Pi0tLSBhL3Rlc3QvdGFyYW50b29sLXRlc3RzL21pc2NsaWItZ2V0bWV0cmljcy1jYXBpL3Rlc3Rn ZXRtZXRyaWNzLmM8YnI+KysrIC9kZXYvbnVsbDxicj5AQCAtMSwyNzAgKzAsMCBAQDxicj4mbHQ7 c25pcHBlZCZndDs8YnI+LS08YnI+Mi4zNC4xPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9j a3F1b3RlPjxkaXY+PGRpdj4tLTxicj5CZXN0IHJlZ2FyZHMsPC9kaXY+PGRpdj5NYXhpbSBLb2ty eWFzaGtpbjwvZGl2PjwvZGl2PjxkaXY+Jm5ic3A7PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjwv Qk9EWT48L0hUTUw+Cg== ----ALT--3dDfB62aa089eA5228c8E358aDaAf1951679443645--