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 04F6E71727E; Tue, 5 Dec 2023 16:23:21 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 04F6E71727E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1701782601; bh=3JMNBo6azD5ugiHLxB71Hd+h2UJNej7YsrjD/E/cQ38=; 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=OJhu1D6bvLH0z7WWGkwB1WtR8grwtLYAM/ff9jOwdI5yhLRWsuZ7eZAEvV35RuE1Z zJoFgRHtvZdE9cq764+Suqk4ylvw0HrWNXJV9iyRurNW0dgn4N1Db0uKQ/Jf5D/80/ NuNRvJsL2iw+c5hAC9KXB3HY4fW85sdd9LKJNeA8= Received: from f535.i.mail.ru (f535.i.mail.ru [45.84.129.52]) (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 02F5071727E for ; Tue, 5 Dec 2023 16:23:20 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 02F5071727E Received: by f535.i.mail.ru with local (envelope-from ) id 1rAVOP-0005cW-79; Tue, 05 Dec 2023 16:23:18 +0300 Received: by e.mail.ru with HTTP; Tue, 05 Dec 2023 16:23:17 +0300 To: =?UTF-8?B?SWdvciBNdW5raW4=?= MIME-Version: 1.0 X-Mailer: Mail.Ru Mailer 1.0 X-SenderField-ReMsg: 17017761270311541127 X-SenderField-Remind: 0 Date: Tue, 05 Dec 2023 16:23:17 +0300 Message-ID: <1701782597.760050494@f135.i.mail.ru> X-Priority: 3 (Normal) Content-Type: multipart/alternative; boundary="--ALT--1994dD1177AadB2c9306E6e8831158Ca1701782597" In-Reply-To: References: X-Mailru-Src: fe X-4EC0790: 10 X-7564579A: B8F34718100C35BD X-77F55803: 119C1F4DF6A9251C970975A245832EA327FC3B55A6D68F7097478CFBF0CD2A75ABF6EAE57C0FACE93BDEEE94408F3961B4292A379A9FA0DDC98F31B118E7B5461BB5EE8A55BF1B9C X-7FA49CB5: 70AAF3C13DB70168C09775C1D3CA48CF517AAFC1974B5A17B2086D80B0504778CF19DD082D7633A0ACBFF42033827DA764CD17681C2FEB7A23F8577A6DFFEA7CB704B5E65AA58E8BC4224003CC836476ABE134FDCE4E2725BFD28B28ED4578739E625A9149C048EEB28585415E75ADA96CEA61CADDE926D9B287FD4696A6DC2FA8DF7F3B2552694A4E2F5AFA99E116B42401471946AA11AF0E30A4C9C8E338DA9E448936ADEE6ED18F08D7030A58E5AD1A62830130A00468AEEEE3FBA3A834EE7353EFBB55337566209E06EA0ECC49CF9EA2F5BCDAB036539937FDD1003F7094A471835C12D1D9774AD6D5ED66289B5278DA827A17800CE77A825AB47F0FC8649FA2833FD35BB23D2EF20D2F80756B5F868A13BD56FB6657A471835C12D1D977725E5C173C3A84C327ED053E960B195E117882F4460429728AD0CFFFB425014E868A13BD56FB6657E2021AF6380DFAD1A18204E546F3947C1D471462564A2E192E808ACE2090B5E1725E5C173C3A84C3C5EA940A35A165FF2DBA43225CD8A89F83C798A30B85E16BCE5475246E174218B5C8C57E37DE458BEDA766A37F9254B7 X-C1DE0DAB: 0D63561A33F958A5D10895909EF89F6EA54749D95CE20A8337FA8AE78B49E7F1F87CCE6106E1FC07E67D4AC08A07B9B065B78C30F681404DCB5012B2E24CD356 X-C8649E89: 1C3962B70DF3F0AD75DCE07D45A7499577DD89D51EBB7742424CF958EAFF5D571004E42C50DC4CA955A7F0CF078B5EC49A30900B95165D343536C6A4332D8B8A6AE3B7D4B445B6B709BC47155BB9F00F931DC6FB253BFA471AEFEBF64F8459161D7E09C32AA3244CF2BB0D7E063A4A799CAB432AF8BAF7AF5595C85A795C7BAE85A42E4C463514DC5DA084F8E80FEBD396F07DFE06A4A8314E894E437E78228B66933FA05BD8EF0CAD958392AE682691 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5+wYjsrrSY/u8Y3PrTqANeitKFiSd6Yd7yPpbiiZ/d5BsxIjK0jGQgCHUM3Ry2Lt2G3MDkMauH3h0dBdQGj+BB/iPzQYh7XS329fgu+/vnDhRgnr2nCvEXe7UpkhQlUD6A== X-Mailru-MI: 80010000000000400800 X-Mailru-Sender: 7940E2A4EB16C997B2A36B21676DDA6B3BDEEE94408F3961B4292A379A9FA0DDB53F06DEAAB2F4304B4B6F8031CBA671E36A7BE05E38EE125EA65D4B9F24FE89AED07E233588217F88A45457F3DBDCCF3E0AECDEB884C0370F27244EEAA5B9A50D4ABDE8C577C2ED X-Mras: Ok X-Spam: undefined Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_luajit_2/2=5D_test=3A_rew?= =?utf-8?q?rite_sysprof_test_using_managed_execution?= 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--1994dD1177AadB2c9306E6e8831158Ca1701782597 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkhpLCBJZ29yIQpUaGFua3MgZm9yIHRoZSBmaXhlcyEKTEdUTQotLQpCZXN0IHJlZ2FyZHMsCk1h eGltIEtva3J5YXNoa2luCsKgCsKgCj7CoAo+Pk1heCwKPj4KPj5UaGFua3MgZm9yIHlvdXIgcmV2 aWV3IQo+Pgo+Pk9uIDAzLjEyLjIzLCBNYXhpbSBLb2tyeWFzaGtpbiB3cm90ZToKPj4+IEhpLCBJ Z29yIQo+Pj4gVGhhbmtzIGZvciB0aGUgcGF0Y2ghCj4+PiBQbGVhc2UgY29uc2lkZXIgbXkgY29t bWVudHMgYmVsb3cuCj4+Pgo+Pj4gU2lkZSBub3RlOiBUaGlzIG5ldyB0ZXN0aW5nIGFwcHJvYWNo IGlzIGFtYXppbmcsIHRoYW5rcyBhIGxvdCEKPj4+Cj4+PiBPbiBUdWUsIE5vdiAyOCwgMjAyMyBh dCAwMjo1MzoxN1BNICswMDAwLCBJZ29yIE11bmtpbiB3cm90ZToKPj4+ID4gT2Z0ZW4gdGVzdHMg Zm9yIHNhbXBsaW5nIHByb2ZpbGVyIHJlcXVpcmUgbG9uZyBydW5uaW5nIGxvb3BzIHRvIGJlCj4+ PiBUeXBvOiBzL09mdGVuL09mdGVuLC8KPj4+ID4gZXhlY3V0ZWQsIHNvIGEgY2VydGFpbiBzaXR1 YXRpb24gaXMgbGlrZWx5IHRvIG9jY3VyLiBUaHVzIHRoZSB0ZXN0IGFkZGVkCj4+PiBUeXBvOiBz L1RodXMvVGh1cywvCj4+PiA+IGluIHRoZSBjb21taXQgMjg1YTFiMGExNmMxYzMyMjRhYjkzZjdj ZjFmZWYxN2FiMjllNGFiNCAoInN5c3Byb2Y6IGZpeAo+Pj4gVHlwbzogcy9pbiB0aGUvaW4vCj4+ PiA+IGNyYXNoIGR1cmluZyBGRlVOQyBzdHJlYW0iKSBleHBlY3RzIEZGVU5DIFZNIHN0YXRlIChh bmQgZXZlbiB0aGUKPj4+IFR5cG86IHMvZXhwZWN0cyBGRlVOQy9leHBlY3RzIHRoZSBGRlVOQy8K Pj4+ID4gcGFydGljdWxhciBpbnN0cnVjdGlvbiB0byBiZSBleGVjdXRlZCkgYXQgdGhlIG1vbWVu dCB3aGVuIHN0YWNrdHJhY2UgaXMKPj4+ID4gYmVpbmcgY29sbGVjdGVkLiBVbmZvcnR1bmF0ZWx5 LCBpdCBsZWFkcyB0byB0ZXN0IHJvdXRpbmUgaGFuZyBmb3IKPj4+IFR5cG86IHMvdG8gdGVzdCBy b3V0aW5lIGhhbmcvdG8gdGhlIHRlc3Qgcm91dGluZSBoYW5naW5nLwo+Pj4gPiBzZXZlcmFsIGVu dmlyb25tZW50cyBhbmQgaWYgaXQgZG9lcyBub3Qgd2UgY2Fubm90IGd1YXJhbnRlZSB0aGF0IHRo ZQo+Pj4gVHlwbzogcy9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnRzLC8KPj4+IFR5cG86IHMvYW5k IGlmIGl0IGRvZXMgbm90L2FuZCBldmVuIGlmIGl0IGRvZXMgbm90LC8KPj4+ID4gZGVzaXJlZCBz Y2VuYXJpbyBpcyB0ZXN0ZWQgKG9ubHkgcmVseSBvbiBzdGF0aXN0aWNzKS4gQXMgYSByZXN1bHQg dGhlCj4+PiBUeXBvOiBzL0FzIGEgcmVzdWx0L0FzIGEgcmVzdWx0LC8KPj4+ID4gdGVzdCBmb3Ig dGhlIGFmb3JlbWVudGlvbmVkIHBhdGNoIHdhcyBkaXNhYmxlZCBmb3IgVGFyYW50b29sIENJIGlu IHRoZQo+Pj4gPiBjb21taXQgZmVmNjBhMTA1MmI4NDQ0YmU2MWU5YTk5MzJhYjQ4NzVhZmYwYjJl ZCAoInRlc3Q6IHByZXZlbnQgaGFuZ2luZwo+Pj4gPiBUYXJhbnRvb2wgQ0kgYnkgc3lzcHJvZiB0 ZXN0IikgdW50aWwgdGhlIGlzc3VlIGlzIG5vdCByZXNvbHZlZC4KPj4+ID4KPj4+ID4gVGhpcyBw YXRjaCBpbnRyb2R1Y2VzIHRoZSBuZXcgYXBwcm9hY2ggZm9yIHRlc3Rpbmcgb3VyIHNhbXBsaW5n IHByb2ZpbGVyCj4+PiA+IHZpYSA8cHRyYWNlPiBpbXBsZW1lbnRpbmcgcHJlY2lzZSBtYW5hZ2Vk IGV4ZWN1dGlvbiBvZiB0aGUgcHJvZmlsZWQKPj4+IFR5cG86IHMvPHB0cmFjZT4vPHB0cmFjZT4s Lwo+Pj4gPiBpbnN0YW5jZSBtZW50aW9uZWQgaW4gdGFyYW50b29sL3RhcmFudG9vbCM5Mzg3Lgo+ Pj4gPgo+Pj4gPiBJbnN0ZWFkIG9mIHJ1bm5pbmcgYXJvdW5kIDx0b3N0cmluZz4gZ2F6aWxsaW9u IHRpbWVzIHdlIGFjY3VyYXRlbHkgc3RlcAo+Pj4gVHlwbzogcy90aW1lcy90aW1lcywvCj4+PiA+ IHRvIHRoZSBleGFjdCBwbGFjZSB3aGVyZSB0aGUgaXNzdWUgcmVwcm9kdWNlcyBhbmQgbWFudWFs bHkgZW1pdCBTSUdQUk9GCj4+PiA+IHRvIHRoZSBMdWEgVk0gYmVpbmcgcHJvZmlsZWQuIFRoZSBw YXJ0aWN1bGFyIGFwcHJvYWNoIGltcGxlbWVudGVkIGluCj4+PiA+IHRoaXMgcGF0Y2ggaXMgZGVz Y3JpYmVkIGJlbG93Lgo+Pj4gPgo+Pj4gPiBBcyBpdCB3YXMgbWVudGlvbmVkLCB0aGUgdGVzdCBt YWtlcyBzeXNwcm9mIHRvIGNvbGxlY3QgdGhlIHBhcnRpY3VsYXIKPj4+IFR5cG86IHMvdG8gY29s bGVjdC9jb2xsZWN0Lwo+Pj4gPiBldmVudCAoRkZVTkMpIGF0IHRoZSBjZXJ0YWluIGluc3RydWN0 aW9uIGluIEx1YSBWTSAoPGxqX2ZmZl9yZXMxPikgdG8KPj4+ID4gcmVwcm9kdWNlIHRoZSBpc3N1 ZSBmcm9tIHRhcmFudG9vbC90YXJhbnRvb2wjODU5NC4gSGVuY2UgaXQncyBlbm91Z2ggdG8KPj4+ IFR5cG86IHMvSGVuY2UvSGVuY2UsLwo+Pj4gPiBjYWxsIDx0b3N0cmluZz4gZmFzdCBmdW5jdGlv biBpbiB0aGUgcHJvZmlsZWQgaW5zdGFuY2UgKGkuZS4gInRyYWNlZSIpLgo+Pj4gVHlwbzogcy9p LmUuL2kuZS4sLwo+Pj4gPiBUbyBlbWl0IFNJR1BST0YgcmlnaHQgYXQgPGxqX2ZmZl9yZXMxPiBp biBzY29wZSBvZiA8dG9zdHJpbmc+IGJ1aWx0aW4sCj4+PiBUeXBvOiBzL2luIHNjb3BlL2luIHRo ZSBzY29wZS8KPj4+ID4gdGhlIG1hbmFnZXIgKGkuZS4gInRyYWNlciIpIGlzIGltcGxlbWVudGVk Lgo+Pj4gVHlwbzogcy9pLmUuL2kuZS4sLwo+Pj4gPgo+Pj4gPiBIZXJlIGFyZSB0aGUgbWFpbiBz dGVwcyAoc2VlIGNvbW1lbnRzIGFuZCBgbWFuIDIgcHRyYWNlJyBmb3IgbW9yZSBpbmZvKToKPj4+ ID4gMS4gUG9pc29uIDxpbnQgMz4gaW5zdHJ1Y3Rpb24gYXMgdGhlIGZpcnN0IGluc3RydWN0aW9u IGF0Cj4+PiA+IDxsal9mZl90b3N0cmluZz4gdG8gc3RvcCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRo ZSBmYXN0IGZ1bmN0aW9uOwo+Pj4gPiAyLiBSZXN1bWUgdGhlICJ0cmFjZWUiIGZyb20gdGhlICJ0 cmFjZXIiOwo+Pj4gPiAzLiBIaXQgdGhlIGVtaXR0ZWQgaW50ZXJydXB0aW9uLCByZXN0b3JlIHRo ZSBvcmlnaW5hbCBpbnN0cnVjdGlvbiBhbmQKPj4+ID4gInJld2luZCIgdGhlIFJJUCB0byAicmVw bGF5IiB0aGUgaW5zdHJ1Y3Rpb24gYXQgPGxqX2ZmX3Rvc3RyaW5nPjsKPj4+ID4gNC4gRG8gdGhl IGhhY2sgMS0zIGZvciA8bGpfZmZmX3JlczE+Owo+Pj4gPiA1LiBFbWl0IFNJR1BST0Ygd2hpbGUg cmVzdW1pbWcgdGhlICJ0cmFjZWUiOwo+Pj4gVHlwbzogcy9yZXN1bWltZy9yZXN1bWluZy8KPj4+ ID4KPj4+ID4gQXMgYSByZXN1bHQgc3lzcHJvZiBjb2xsZWN0cyB0aGUgZnVsbCBiYWNrdHJhY2Ug d2l0aCA8dG9zdHJpbmc+IGZhc3QKPj4+IFR5cG86IHMvYSByZXN1bHQvYSByZXN1bHQsLwo+Pj4g PiBmdW5jdGlvbiBhcyB0aGUgdG9wbW9zdCBmcmFtZS4KPj4+ID4KPj4+ID4gUmVzb2x2ZXMgdGFy YW50b29sL3RhcmFudG9vbCM5Mzg3Cj4+PiA+IEZvbGxvd3MgdXAgdGFyYW50b29sL3RhcmFudG9v bCM4NTk0Cj4+PiA+Cj4+PiA+IFNpZ25lZC1vZmYtYnk6IElnb3IgTXVua2luIDwgaW11bkB0YXJh bnRvb2wub3JnID4KPj4KPj5IZXJlIGlzIHRoZSB1cGRhdGVkIGNvbW1pdCBtZXNzYWdlOgo+Pgo+ Pj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Cj4+Cj4+dGVzdDogcmV3cml0ZSBzeXNwcm9mIHRlc3Qg dXNpbmcgbWFuYWdlZCBleGVjdXRpb24KPj4KPj5PZnRlbiwgdGVzdHMgZm9yIHNhbXBsaW5nIHBy b2ZpbGVyIHJlcXVpcmUgbG9uZyBydW5uaW5nIGxvb3BzIHRvIGJlCj4+ZXhlY3V0ZWQsIHNvIGEg Y2VydGFpbiBzaXR1YXRpb24gaXMgbGlrZWx5IHRvIG9jY3VyLiBUaHVzLCB0aGUgdGVzdAo+PmFk ZGVkIGluIGNvbW1pdCAyODVhMWIwYTE2YzFjMzIyNGFiOTNmN2NmMWZlZjE3YWIyOWU0YWI0ICgi c3lzcHJvZjogZml4Cj4+Y3Jhc2ggZHVyaW5nIEZGVU5DIHN0cmVhbSIpIGV4cGVjdHMgdGhlIEZG VU5DIFZNIHN0YXRlIChhbmQgZXZlbiB0aGUKPj5wYXJ0aWN1bGFyIGluc3RydWN0aW9uIHRvIGJl IGV4ZWN1dGVkKSBhdCB0aGUgbW9tZW50IHdoZW4gc3RhY2t0cmFjZSBpcwo+PmJlaW5nIGNvbGxl Y3RlZC4gVW5mb3J0dW5hdGVseSwgaXQgbGVhZHMgdG8gdGhlIHRlc3Qgcm91dGluZSBoYW5nIGZv cgo+PnNldmVyYWwgZW52aXJvbm1lbnRzLCBhbmQgZXZlbiBpZiBpdCBkb2VzIG5vdCwgd2UgY2Fu bm90IGd1YXJhbnRlZSB0aGF0Cj4+dGhlIGRlc2lyZWQgc2NlbmFyaW8gaXMgdGVzdGVkIChvbmx5 IHJlbHkgb24gc3RhdGlzdGljcykuIEFzIGEgcmVzdWx0LAo+PnRoZSB0ZXN0IGZvciB0aGUgYWZv cmVtZW50aW9uZWQgcGF0Y2ggd2FzIGRpc2FibGVkIGZvciBUYXJhbnRvb2wgQ0kgaW4KPj50aGUg Y29tbWl0IGZlZjYwYTEwNTJiODQ0NGJlNjFlOWE5OTMyYWI0ODc1YWZmMGIyZWQgKCJ0ZXN0OiBw cmV2ZW50Cj4+aGFuZ2luZyBUYXJhbnRvb2wgQ0kgYnkgc3lzcHJvZiB0ZXN0IikgdW50aWwgdGhl IGlzc3VlIGlzIG5vdCByZXNvbHZlZC4KPj4KPj5UaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIG5l dyBhcHByb2FjaCBmb3IgdGVzdGluZyBvdXIgc2FtcGxpbmcgcHJvZmlsZXIKPj52aWEgPHB0cmFj ZT4sIGltcGxlbWVudGluZyBwcmVjaXNlIG1hbmFnZWQgZXhlY3V0aW9uIG9mIHRoZSBwcm9maWxl ZAo+Pmluc3RhbmNlIG1lbnRpb25lZCBpbiB0YXJhbnRvb2wvdGFyYW50b29sIzkzODcuCj4+Cj4+ SW5zdGVhZCBvZiBydW5uaW5nIGFyb3VuZCA8dG9zdHJpbmc+IGdhemlsbGlvbiB0aW1lcywgd2Ug YWNjdXJhdGVseSBzdGVwCj4+dG8gdGhlIGV4YWN0IHBsYWNlIHdoZXJlIHRoZSBpc3N1ZSByZXBy b2R1Y2VzIGFuZCBtYW51YWxseSBlbWl0IFNJR1BST0YKPj50byB0aGUgTHVhIFZNIGJlaW5nIHBy b2ZpbGVkLiBUaGUgcGFydGljdWxhciBhcHByb2FjaCBpbXBsZW1lbnRlZCBpbgo+PnRoaXMgcGF0 Y2ggaXMgZGVzY3JpYmVkIGJlbG93Lgo+Pgo+PkFzIGl0IHdhcyBtZW50aW9uZWQsIHRoZSB0ZXN0 IG1ha2VzIHN5c3Byb2YgY29sbGVjdCB0aGUgcGFydGljdWxhciBldmVudAo+PnR5cGUgKEZGVU5D KSBhdCB0aGUgY2VydGFpbiBpbnN0cnVjdGlvbiBpbiBMdWEgVk0gKDxsal9mZmZfcmVzMT4pIHRv Cj4+cmVwcm9kdWNlIHRoZSBpc3N1ZSBmcm9tIHRhcmFudG9vbC90YXJhbnRvb2wjODU5NC4gSGVu Y2UsIGl0J3MgZW5vdWdoIHRvCj4+Y2FsbCA8dG9zdHJpbmc+IGZhc3QgZnVuY3Rpb24gaW4gdGhl IHByb2ZpbGVkIGluc3RhbmNlIChpLmUuLCAidHJhY2VlIikuCj4+VG8gZW1pdCBTSUdQUk9GIHJp Z2h0IGF0IDxsal9mZmZfcmVzMT4gaW4gdGhlIHNjb3BlIG9mIDx0b3N0cmluZz4KPj5idWlsdGlu LCB0aGUgbWFuYWdlciAoaS5lLiwgInRyYWNlciIpIGlzIGltcGxlbWVudGVkLgo+Pgo+PkhlcmUg YXJlIHRoZSBtYWluIHN0ZXBzIChzZWUgY29tbWVudHMgYW5kIGBtYW4gMiBwdHJhY2UnIGZvciBt b3JlIGluZm8pOgo+PsKgwqAxLiBQb2lzb24gPGludCAzPiBpbnN0cnVjdGlvbiBhcyB0aGUgZmly c3QgaW5zdHJ1Y3Rpb24gYXQKPj7CoMKgwqDCoMKgPGxqX2ZmX3Rvc3RyaW5nPiB0byBzdG9wIGF0 IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZhc3QgZnVuY3Rpb247Cj4+wqDCoDIuIFJlc3VtZSB0aGUg InRyYWNlZSIgZnJvbSB0aGUgInRyYWNlciI7Cj4+wqDCoDMuIEhpdCB0aGUgZW1pdHRlZCBpbnRl cnJ1cHRpb24sIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGluc3RydWN0aW9uIGFuZAo+PsKgwqDCoMKg wqAicmV3aW5kIiB0aGUgUklQIHRvICJyZXBsYXkiIHRoZSBpbnN0cnVjdGlvbiBhdCA8bGpfZmZf dG9zdHJpbmc+Owo+PsKgwqA0LiBEbyB0aGUgaGFjayAxLTMgZm9yIDxsal9mZmZfcmVzMT47Cj4+ wqDCoDUuIEVtaXQgU0lHUFJPRiB3aGlsZSByZXN1bWluZyB0aGUgInRyYWNlZSI7Cj4+Cj4+QXMg YSByZXN1bHQsIHN5c3Byb2YgY29sbGVjdHMgdGhlIGZ1bGwgYmFja3RyYWNlIHdpdGggPHRvc3Ry aW5nPiBmYXN0Cj4+ZnVuY3Rpb24gYXMgdGhlIHRvcG1vc3QgZnJhbWUuCj4+Cj4+UmVzb2x2ZXMg dGFyYW50b29sL3RhcmFudG9vbCM5Mzg3Cj4+Rm9sbG93cyB1cCB0YXJhbnRvb2wvdGFyYW50b29s Izg1OTQKPj4KPj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+Pgo+Pj4gPiAtLS0KPj4+ID4gLi4u L2doLTg1OTQtc3lzcHJvZi1mZnVuYy1jcmFzaC50ZXN0LmMgfCAyNjkgKysrKysrKysrKysrKysr KysrCj4+PiA+IC4uLi9naC04NTk0LXN5c3Byb2YtZmZ1bmMtY3Jhc2gudGVzdC5sdWEgfCA1NSAt LS0tCj4+PiA+IDIgZmlsZXMgY2hhbmdlZCwgMjY5IGluc2VydGlvbnMoKyksIDU1IGRlbGV0aW9u cygtKQo+Pj4gPiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9naC04 NTk0LXN5c3Byb2YtZmZ1bmMtY3Jhc2gudGVzdC5jCj4+PiA+IGRlbGV0ZSBtb2RlIDEwMDY0NCB0 ZXN0L3RhcmFudG9vbC10ZXN0cy9naC04NTk0LXN5c3Byb2YtZmZ1bmMtY3Jhc2gudGVzdC5sdWEK Pj4+ID4KPj4+ID4gZGlmZiAtLWdpdCBhL3Rlc3QvdGFyYW50b29sLWMtdGVzdHMvZ2gtODU5NC1z eXNwcm9mLWZmdW5jLWNyYXNoLnRlc3QuYyBiL3Rlc3QvdGFyYW50b29sLWMtdGVzdHMvZ2gtODU5 NC1zeXNwcm9mLWZmdW5jLWNyYXNoLnRlc3QuYwo+Pj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ Pj4gPiBpbmRleCAwMDAwMDAwMC4uNGNhZWQ4Y2IKPj4+ID4gLS0tIC9kZXYvbnVsbAo+Pj4gPiAr KysgYi90ZXN0L3RhcmFudG9vbC1jLXRlc3RzL2doLTg1OTQtc3lzcHJvZi1mZnVuYy1jcmFzaC50 ZXN0LmMKPj4+ID4gQEAgLTAsMCArMSwyNjkgQEAKPj4+ID4gKyNpbmNsdWRlICJsYXV4bGliLmgi Cj4+PiA+ICsjaW5jbHVkZSAibG1pc2NsaWIuaCIKPj4+ID4gKyNpbmNsdWRlICJsdWEuaCIKPj4+ ID4gKwo+Pj4gPiArI2luY2x1ZGUgInRlc3QuaCIKPj4+ID4gKyNpbmNsdWRlICJ1dGlscy5oIgo+ Pj4gPiArCj4+PiA+ICsjaW5jbHVkZSA8c2lnbmFsLmg+Cj4+PiA+ICsjaW5jbHVkZSA8c3lzL3B0 cmFjZS5oPgo+Pj4gPiArI2luY2x1ZGUgPHN5cy91c2VyLmg+Cj4+PiA+ICsjaW5jbHVkZSA8c3lz L3dhaXQuaD4KPj4+ID4gKyNpbmNsdWRlIDx1bmlzdGQuaD4KPj4+ID4gKwo+Pj4gPiArLyogWFhY OiBTdGlsbCBuZWVkIG5vcm1hbCBhc3NlcnQgaW5zaWRlIDx0cmFjZWU+IGFuZCBoZWxwZXJzLiAq Lwo+Pj4gPiArI3VuZGVmIE5ERUJVRwo+Pj4gPiArI2luY2x1ZGUgPGFzc2VydC5oPgo+Pj4gPiAr Cj4+PiA+ICsvKgo+Pj4gPiArICogWFhYOiBUaGUgdGVzdCBpcyAqdmVyeSogTGludXgveDg2XzY0 IHNwZWNpZmljLiBGb3J0dW5hdGVseSwgc28KPj4+ID4gKyAqIGRvZXMgdGhlIHNhbXBsaW5nIHBy b2ZpbGVyLiA8bGpfYXJjaC4+IGlzIG5lZWRlZCBmb3IgTFVBSklUX09TCj4+PiA+ICsgKiBhbmQg TFVBSklUX1RBUkdFVC4KPj4+ID4gKyAqLwo+Pj4gPiArI2luY2x1ZGUgImxqX2FyY2guaCIKPj4+ ID4gKwo+Pj4gPiArI2lmIExVQUpJVF9PUyA9PSBMVUFKSVRfT1NfTElOVVggJiYgTFVBSklUX1RB UkdFVCA9PSBMVUFKSVRfQVJDSF9YNjQKPj4+IFdoeSBub3QgdXNlIHRoZSBgTEpfSEFTU1lTUFJP RmAgZmxhZz8KPj4KPj5TaW5jZSB0aGUgdGVzdCBwZXIgc2UgaXMgTGludXgveDg2XzY0IHNwZWNp ZmljIChjb25zaWRlciB0aGUgcGFydGljdWxhcgo+PnJlZ2lzdGVyIG5hbWUgdXNlZCBiZWxvdyku IEUuZy4gc3lzcHJvZiBpcyBpbXBsZW1lbnRlZCBmb3IgeDg2IGVpdGhlciwKPj5idXQgdGhlIHRl c3QgaXMgbm90LiBJZiBzb21lYm9keSAoU2VyZ2V5IEthcGx1bikgZmluYWxseSBkZWNpZGVkIHRv Cj4+aW50cm9kdWNlIHg4NiB0ZXN0aW5nIGVudmlyb25tZW50LCB0aGUgdGVzdCB3b3VsZCBjcmFz aC4gSSBwcmVmZXIgbW9yZQo+PmRldmVsb3Blci1mcmllbmRseSBhcHByb2FjaCBoZXJlIChjb25z aWRlcmluZyA8cHRyYWNlPiBwZWN1bGlhcml0aWVzKS4KPj4KPj4+ID4gKwo+Pj4gPiArLyoKPj4+ ID4gKyAqIFhYWDogVGhlIHRlc3QgbWFrZXMgc3lzcHJvZiB0byBjb2xsZWN0IHRoZSBwYXJ0aWN1 bGFyIGV2ZW50Cj4+PiBUeXBvOiBzL3N5c3Byb2YgdG8vc3lzcHJvZi8KPj4+ID4gKyAqIChGRlVO QykgYXQgdGhlIHBhcnRpY3VsYXIgaW5zdHJ1Y3Rpb24gKDxsal9mZmZfcmVzMT4pIHRvCj4+PiA+ ICsgKiByZXByb2R1Y2UgdGhlIGlzc3VlICM4NTk0LiBIZW5jZSBpdCdzIGVub3VnaCB0byBjYWxs IDx0b3N0cmluZz4KPj4+IFR5cG86IHMvSGVuY2UvSGVuY2UsLwo+Pj4gPiArICogZmFzdCBmdW5j dGlvbiAodGhpcyBpcyBkb25lIGluIDx0cmFjZWU+IGZ1bmN0aW9uKS4gVG8gZW1pdAo+Pj4gPiAr ICogU0lHUFJPRiByaWdodCBhdCA8bGpfZmZmX3JlczE+IGluIHNjb3BlIG9mIDx0b3N0cmluZz4g ZmFzdAo+Pj4gPiArICogZnVuY3Rpb24sIHRoZSBtYW5hZ2VkIGV4ZWN1dGlvbiBpcyBpbXBsZW1l bnRlZCBpbiB0aGUgZnVuY3Rpb24KPj4+ID4gKyAqIDx0cmFjZXI+OiA8aW50IDM+IGluc3RydWN0 aW9uIGlzIHBvaXNvbmVkIGFzIHRoZSBmaXJzdAo+Pj4gPiArICogaW5zdHJ1Y3Rpb24gYXQgPGxq X2ZmX3Rvc3RyaW5nPiB0byBzdG9wIDx0cmFjZWU+IGF0IHRoZQo+Pj4gPiArICogYmVnaW5uaW5n IG9mIHRoZSBmYXN0IGZ1bmN0aW9uOyA8dHJhY2VyPiByZXN1bWVzIHRoZSA8dHJhY2VlPjsKPj4+ ID4gKyAqIHRoZSBzYW1lIGhhY2sgaXMgZG9uZSBmb3IgPGxqX2ZmZl9yZXMxPi4gV2hlbiB0aGUg PHRyYWNlZT4gaGl0cwo+Pj4gPiArICogdGhlIGludGVycnVwdGlvbiBhdCA8bGpfZmZmX3JlczE+ LCBTSUdQUk9GIGlzIGVtaXR0ZWQgd2hpbGUKPj4+ID4gKyAqIHJlc3VtaW5nIHRoZSA8dHJhY2Vl Pi4gQXMgYSByZXN1bHQgc3lzcHJvZiBjb2xsZWN0cyB0aGUgZnVsbAo+Pj4gVHlwbzogcy9hIHJl c3VsdC9hIHJlc3VsdCwvCj4+PiA+ICsgKiBiYWNrdHJhY2Ugd2l0aCA8dG9zdHJpbmc+IGZhc3Qg ZnVuY3Rpb24gYXMgdGhlIHRvcG1vc3QgZnJhbWUuCj4+PiA+ICsgKgo+Pj4gPiArICogU2VlIG1v cmUgaW5mbyBoZXJlOgo+Pj4gPiArICogKiAgaHR0cHM6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFn ZXMvbWFuMi9wdHJhY2UuMi5odG1sCj4+PiA+ICsgKiAqICBodHRwczovL2dpdGh1Yi5jb20vdGFy YW50b29sL3RhcmFudG9vbC9pc3N1ZXMvODU5NAo+Pj4gPiArICogKiAgaHR0cHM6Ly9naXRodWIu Y29tL3RhcmFudG9vbC90YXJhbnRvb2wvaXNzdWVzLzkzODcKPj4+ID4gKyAqLwo+Pgo+PkZpeGVk LiBUaGUgZGlmZiBpcyBiZWxvdzoKPj4KPj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+Pgo+PmRp ZmYgLS1naXQgYS90ZXN0L3RhcmFudG9vbC1jLXRlc3RzL2doLTg1OTQtc3lzcHJvZi1mZnVuYy1j cmFzaC50ZXN0LmMgYi90ZXN0L3RhcmFudG9vbC1jLXRlc3RzL2doLTg1OTQtc3lzcHJvZi1mZnVu Yy1jcmFzaC50ZXN0LmMKPj5pbmRleCA0Y2FlZDhjYi4uZjA2MDc2MGIgMTAwNjQ0Cj4+LS0tIGEv dGVzdC90YXJhbnRvb2wtYy10ZXN0cy9naC04NTk0LXN5c3Byb2YtZmZ1bmMtY3Jhc2gudGVzdC5j Cj4+KysrIGIvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9naC04NTk0LXN5c3Byb2YtZmZ1bmMtY3Jh c2gudGVzdC5jCj4+QEAgLTI1LDE4ICsyNSwxOCBAQAo+PsKgI2lmIExVQUpJVF9PUyA9PSBMVUFK SVRfT1NfTElOVVggJiYgTFVBSklUX1RBUkdFVCA9PSBMVUFKSVRfQVJDSF9YNjQKPj7CoAo+PsKg LyoKPj4tICogWFhYOiBUaGUgdGVzdCBtYWtlcyBzeXNwcm9mIHRvIGNvbGxlY3QgdGhlIHBhcnRp Y3VsYXIgZXZlbnQKPj4rICogWFhYOiBUaGUgdGVzdCBtYWtlcyBzeXNwcm9mIGNvbGxlY3QgdGhl IHBhcnRpY3VsYXIgZXZlbnQKPj7CoMKgKiAoRkZVTkMpIGF0IHRoZSBwYXJ0aWN1bGFyIGluc3Ry dWN0aW9uICg8bGpfZmZmX3JlczE+KSB0bwo+Pi0gKiByZXByb2R1Y2UgdGhlIGlzc3VlICM4NTk0 LiBIZW5jZSBpdCdzIGVub3VnaCB0byBjYWxsIDx0b3N0cmluZz4KPj4tICogZmFzdCBmdW5jdGlv biAodGhpcyBpcyBkb25lIGluIDx0cmFjZWU+IGZ1bmN0aW9uKS4gVG8gZW1pdAo+Pi0gKiBTSUdQ Uk9GIHJpZ2h0IGF0IDxsal9mZmZfcmVzMT4gaW4gc2NvcGUgb2YgPHRvc3RyaW5nPiBmYXN0Cj4+ LSAqIGZ1bmN0aW9uLCB0aGUgbWFuYWdlZCBleGVjdXRpb24gaXMgaW1wbGVtZW50ZWQgaW4gdGhl IGZ1bmN0aW9uCj4+LSAqIDx0cmFjZXI+OiA8aW50IDM+IGluc3RydWN0aW9uIGlzIHBvaXNvbmVk IGFzIHRoZSBmaXJzdAo+PisgKiByZXByb2R1Y2UgdGhlIGlzc3VlICM4NTk0LiBIZW5jZSwgaXQn cyBlbm91Z2ggdG8gY2FsbAo+PisgKiA8dG9zdHJpbmc+IGZhc3QgZnVuY3Rpb24gKHRoaXMgaXMg ZG9uZSBpbiA8dHJhY2VlPiBmdW5jdGlvbikuCj4+KyAqIFRvIGVtaXQgU0lHUFJPRiByaWdodCBh dCA8bGpfZmZmX3JlczE+IGluIHNjb3BlIG9mIDx0b3N0cmluZz4KPj4rICogZmFzdCBmdW5jdGlv biwgdGhlIG1hbmFnZWQgZXhlY3V0aW9uIGlzIGltcGxlbWVudGVkIGluIHRoZQo+PisgKiBmdW5j dGlvbiA8dHJhY2VyPjogPGludCAzPiBpbnN0cnVjdGlvbiBpcyBwb2lzb25lZCBhcyB0aGUgZmly c3QKPj7CoMKgKiBpbnN0cnVjdGlvbiBhdCA8bGpfZmZfdG9zdHJpbmc+IHRvIHN0b3AgPHRyYWNl ZT4gYXQgdGhlCj4+wqDCoCogYmVnaW5uaW5nIG9mIHRoZSBmYXN0IGZ1bmN0aW9uOyA8dHJhY2Vy PiByZXN1bWVzIHRoZSA8dHJhY2VlPjsKPj7CoMKgKiB0aGUgc2FtZSBoYWNrIGlzIGRvbmUgZm9y IDxsal9mZmZfcmVzMT4uIFdoZW4gdGhlIDx0cmFjZWU+IGhpdHMKPj7CoMKgKiB0aGUgaW50ZXJy dXB0aW9uIGF0IDxsal9mZmZfcmVzMT4sIFNJR1BST0YgaXMgZW1pdHRlZCB3aGlsZQo+Pi0gKiBy ZXN1bWluZyB0aGUgPHRyYWNlZT4uIEFzIGEgcmVzdWx0IHN5c3Byb2YgY29sbGVjdHMgdGhlIGZ1 bGwKPj4rICogcmVzdW1pbmcgdGhlIDx0cmFjZWU+LiBBcyBhIHJlc3VsdCwgc3lzcHJvZiBjb2xs ZWN0cyB0aGUgZnVsbAo+PsKgwqAqIGJhY2t0cmFjZSB3aXRoIDx0b3N0cmluZz4gZmFzdCBmdW5j dGlvbiBhcyB0aGUgdG9wbW9zdCBmcmFtZS4KPj7CoMKgKgo+PsKgwqAqIFNlZSBtb3JlIGluZm8g aGVyZToKPj4KPj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+Pgo+Pj4gPiArCj4+Cj4+PHNuaXBw ZWQ+Cj4+Cj4+PiA+ICsKPj4+ID4gKyAvKiBBbGxvdyB0cmFjaW5nIGZvciB0aGlzIHByb2Nlc3Mg Ki8KPj4+ID4gKyBpZiAocHRyYWNlKFBUUkFDRV9UUkFDRU1FLCAwLCAwLCAwKSA8IDApIHsKPj4+ ID4gKyBwZXJyb3IoIkZhaWxlZCB0byB0dXJuIHRoZSBjYWxsaW5nIHRocmVhZCBpbnRvIGEgdHJh Y2VlIik7Cj4+PiBUeXBvPzogcy90aHJlYWQvcHJvY2Vzcy8KPj4KPj5ZZWFoLCBjb3B5LXBhc3Rl ZCBmcm9tIHRoZSA8cHRyYWNlPiByZWNpcGUuIEZpeGVkLgo+Pgo+Pj4gPiArIHJldHVybiBFWElU X0ZBSUxVUkU7Cj4+PiA+ICsgfQo+Pgo+PjxzbmlwcGVkPgo+Pgo+Pj4gPiArIC8qIFRlcm1pbmF0 ZSBwcm9maWxlciBhbmQgTHVhIHVuaXZlcnNlLiAqLwo+Pj4gPiArIGFzc2VydChsdWFNX3N5c3By b2Zfc3RvcChMKSA9PSBQUk9GSUxFX1NVQ0NFU1MpOwo+Pj4gPiArIHV0aWxzX2x1YV9jbG9zZShM KTsKPj4+IEl0IGRvZXNuJ3Qgc2VlbSB0byBiZSBzZW1hbnRpY2FsbHkgY29ycmVjdCB0byB0ZXJt aW5hdGUgTHVhIHVuaXZlcnNlCj4+PiBiZWZvcmUgb2J0YWluaW5nIHRoZSBjb3VudGVycywgZXZl biB0aG91Z2ggdGhlcmUgaXMgbm8gb2JzdGFjbGVzIHRvIGRvCj4+PiBzbyBpbiB0aGUgQVBJIGlt cGxlbWVudGF0aW9uIGl0c2VsZi4KPj4KPj5Ub1tNQUhddG8gdnMuVG9bTUFZXXRvOiBmaXhlZC4g VGhlIGRpZmYgaXMgYmVsb3cuCj4+Cj4+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPj4KPj5kaWZm IC0tZ2l0IGEvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9naC04NTk0LXN5c3Byb2YtZmZ1bmMtY3Jh c2gudGVzdC5jIGIvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9naC04NTk0LXN5c3Byb2YtZmZ1bmMt Y3Jhc2gudGVzdC5jCj4+aW5kZXggYzBmOWQxY2EuLjVhMjUyM2VmIDEwMDY0NAo+Pi0tLSBhL3Rl c3QvdGFyYW50b29sLWMtdGVzdHMvZ2gtODU5NC1zeXNwcm9mLWZmdW5jLWNyYXNoLnRlc3QuYwo+ PisrKyBiL3Rlc3QvdGFyYW50b29sLWMtdGVzdHMvZ2gtODU5NC1zeXNwcm9mLWZmdW5jLWNyYXNo LnRlc3QuYwo+PkBAIC0xNDIsOSArMTQyLDggQEAgc3RhdGljIGludCB0cmFjZWUoY29uc3QgY2hh ciAqbHVhY29kZSkgewo+PsKgIGFzc2VydChsdWFMX2Rvc3RyaW5nKEwsIGx1YWNvZGUpID09IExV QV9PSyk7Cj4+wqAgYXNzZXJ0KHN0cmNtcChsdWFfdG9zdHJpbmcoTCwgLTEpLCBNRVNTQUdFKSA9 PSAwKTsKPj7CoAo+Pi0gLyogVGVybWluYXRlIHByb2ZpbGVyIGFuZCBMdWEgdW5pdmVyc2UuICov Cj4+KyAvKiBUZXJtaW5hdGUgcHJvZmlsZXIuICovCj4+wqAgYXNzZXJ0KGx1YU1fc3lzcHJvZl9z dG9wKEwpID09IFBST0ZJTEVfU1VDQ0VTUyk7Cj4+LSB1dGlsc19sdWFfY2xvc2UoTCk7Cj4+wqAK Pj7CoCAvKgo+PsKgICogWFhYOiBUaGUgb25seSBldmVudCB0byBiZSBzdHJlYW1lZCBtdXN0IGJl IEZGVU5DIGF0Cj4+QEAgLTE1NSw2ICsxNTQsOSBAQCBzdGF0aWMgaW50IHRyYWNlZShjb25zdCBj aGFyICpsdWFjb2RlKSB7Cj4+wqAgYXNzZXJ0KGNvdW50ZXJzLnNhbXBsZXMgPT0gMSk7Cj4+wqAg YXNzZXJ0KGNvdW50ZXJzLnZtc3RfZmZ1bmMgPT0gMSk7Cj4+wqAKPj4rIC8qIFRlcm1pbmF0ZSBM dWEgdW5pdmVyc2UuICovCj4+KyB1dGlsc19sdWFfY2xvc2UoTCk7Cj4+Kwo+PsKgIHJldHVybiBF WElUX1NVQ0NFU1M7Cj4+wqB9Cj4+wqAKPj4KPj49PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+Pgo+ Pj4gPiArCj4+Cj4+PHNuaXBwZWQ+Cj4+Cj4+PiA+ICsgLyogUmVzdW1lIDxjaHBpZD4gdHJhY2Vl IHVudGlsIFNJR1RSQVAgb2NjdXJzLiAqLwo+Pj4gPiArIHB0cmFjZShQVFJBQ0VfQ09OVCwgY2hw aWQsIDAsIDApOwo+Pj4gPiArIC8qIFdhaXQgPGNocGlkPiB0cmFjZWUgc2lnbmFsLWRlbGl2ZXJ5 LXN0b3AuICovCj4+PiA+ICsgd2FpdHBpZChjaHBpZCwgJndzdGF0dXMsIDApOwo+Pj4gU2hvdWxk IHdlIGNoZWNrIHRoZSBgd3N0YXR1c2AgaGVyZSB0b28/Cj4+Cj4+SW1wbGVtZW50ZWQgdmlhIDx3 YWl0X2FsaXZlPiBoZWxwZXIgKHNlZSB0aGUgZGV0YWlscyBiZWxvdykuCj4+Cj4+PiA+ICsKPj4K Pj48c25pcHBlZD4KPj4KPj4+ID4gKwo+Pj4gPiArc3RhdGljIGludCB0cmFjZXIocGlkX3QgY2hw aWQpIHsKPj4+ID4gKyBpbnQgd3N0YXR1czsKPj4+ID4gKwo+Pj4gPiArIC8qIFdhaXQgdW50aWwg PGNocGlkPiB0cmFjZWUgaXMgcmVhZHkuICovCj4+PiA+ICsgd2FpdHBpZChjaHBpZCwgJndzdGF0 dXMsIDApOwo+Pj4gU2hvdWxkIHdlIGNoZWNrIHRoZSBwcm9jZXNzIHN0YXR1cyBoZXJlIHRvbz8K Pj4KPj5JbXBsZW1lbnRlZCB2aWEgPHdhaXRfYWxpdmU+IGhlbHBlciAoc2VlIHRoZSBpbXBsZW1l bnRhdGlvbiBiZWxvdykuCj4+Cj4+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPj4KPj5kaWZmIC0t Z2l0IGEvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9naC04NTk0LXN5c3Byb2YtZmZ1bmMtY3Jhc2gu dGVzdC5jIGIvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9naC04NTk0LXN5c3Byb2YtZmZ1bmMtY3Jh c2gudGVzdC5jCj4+aW5kZXggODRjMDI0ZjAuLmQxNzM4NmRkIDEwMDY0NAo+Pi0tLSBhL3Rlc3Qv dGFyYW50b29sLWMtdGVzdHMvZ2gtODU5NC1zeXNwcm9mLWZmdW5jLWNyYXNoLnRlc3QuYwo+Pisr KyBiL3Rlc3QvdGFyYW50b29sLWMtdGVzdHMvZ2gtODU5NC1zeXNwcm9mLWZmdW5jLWNyYXNoLnRl c3QuYwo+PkBAIC0yMjIsNyArMjIyLDcgQEAgc3RhdGljIGludCB0cmFjZXIocGlkX3QgY2hwaWQp IHsKPj7CoCBpbnQgd3N0YXR1czsKPj7CoAo+PsKgIC8qIFdhaXQgdW50aWwgPGNocGlkPiB0cmFj ZWUgaXMgcmVhZHkuICovCj4+LSB3YWl0cGlkKGNocGlkLCAmd3N0YXR1cywgMCk7Cj4+KyB3YWl0 X2FsaXZlKGNocGlkKTsKPj7CoAo+PsKgIC8qCj4+wqAgKiBSZXN1bWUgPGNocGlkPiB0cmFjZWUg dW50aWwgPGxqX2ZmX3Rvc3RyaW5nPi4KPj4KPj49PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+Pgo+ Pj4gPiArCj4+PiA+ICsgLyogUmVzdW1lIDxjaHBpZD4gdHJhY2VlIHVudGlsIDxsal9mZl90b3N0 cmluZz4uICovCj4+PiA+ICsgd3N0YXR1cyA9IGNvbnRpbnVlX3VudGlsKGNocGlkLCBsal9mZl90 b3N0cmluZyk7Cj4+PiA+ICsKPj4+ID4gKyAvKiBUaGUgdHJhY2VlIGhhcyB0byBiZSBhbGl2ZSBh bmQgc3RvcHBlZCBieSBTSUdUUkFQLiAqLwo+Pj4gPiArIGFzc2VydF9mYWxzZShXSUZFWElURUQo d3N0YXR1cykpOwo+Pj4gPiArIGFzc2VydF90cnVlKFdJRlNUT1BQRUQod3N0YXR1cykpOwo+Pj4g PiArCj4+PiA+ICsgLyogUmVzdW1lIDxjaHBpZD4gdHJhY2VlIHVudGlsIDxsal9mZmZfcmVzMT4u ICovCj4+PiA+ICsgd3N0YXR1cyA9IGNvbnRpbnVlX3VudGlsKGNocGlkLCBsal9mZmZfcmVzMSk7 Cj4+PiA+ICsKPj4+ID4gKyAvKiBUaGUgdHJhY2VlIGhhcyB0byBiZSBhbGl2ZSBhbmQgc3RvcHBl ZCBieSBTSUdUUkFQLiAqLwo+Pj4gPiArIGFzc2VydF9mYWxzZShXSUZFWElURUQod3N0YXR1cykp Owo+Pj4gPiArIGFzc2VydF90cnVlKFdJRlNUT1BQRUQod3N0YXR1cykpOwo+Pj4gVGhpcyBwYXJ0 IGlzIGR1cGxpY2F0ZWQsIGxldCdzIG1vdmUgaXQgdG8gYSBzZXBhcmF0ZSBgaGVhbHRoY2hlY2tg Cj4+PiBmdW5jdGlvbiwgb3Igc29tZXRoaW5nIGxpa2UgdGhhdC4KPj4KPj5JdCdzIG9ubHkgZHVw bGljYXRlZCBpbiBzZW5zZSBvZiByZXVzaW5nIHRoaXMgcGFydGljdWxhciBjb2RlLCBubyBtb3Jl Lgo+Pkhvd2V2ZXIsIGxldCdzIGNvbnNpZGVyIHRoZXNlIGNvbmRpdGlvbnMgYXJlIG5vdCBwYXJ0 cyBvZiB0aGUgdGVzdAo+PmFzc2VydGlvbnMgc2V0LCBidXQgcmF0aGVyIGludmFyaWFudHMgZm9y IDxjb250aW51ZV91bnRpbD4gaGVscGVyIChpLmUuCj4+PGNvbnRpbnVlX3VudGlsPiBoYXMgdG8g eWllbGQgdGhlIGV4ZWN1dGlvbiB3aXRoIHRoZSAiYWxpdmUiIHRyYWNlZSkuCj4+Cj4+SW4gdGhp cyBjYXNlLCB0aGUgcGF0Y2ggZm9yIDxjb250aW51ZV91bnRpbD4gaXMgdGhlIGZvbGxvd2luZzoK Pj4KPj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+Pgo+PmRpZmYgLS1naXQgYS90ZXN0L3RhcmFu dG9vbC1jLXRlc3RzL2doLTg1OTQtc3lzcHJvZi1mZnVuYy1jcmFzaC50ZXN0LmMgYi90ZXN0L3Rh cmFudG9vbC1jLXRlc3RzL2doLTg1OTQtc3lzcHJvZi1mZnVuYy1jcmFzaC50ZXN0LmMKPj5pbmRl eCA1YTI1MjNlZi4uODRjMDI0ZjAgMTAwNjQ0Cj4+LS0tIGEvdGVzdC90YXJhbnRvb2wtYy10ZXN0 cy9naC04NTk0LXN5c3Byb2YtZmZ1bmMtY3Jhc2gudGVzdC5jCj4+KysrIGIvdGVzdC90YXJhbnRv b2wtYy10ZXN0cy9naC04NTk0LXN5c3Byb2YtZmZ1bmMtY3Jhc2gudGVzdC5jCj4+QEAgLTE2MCw2 ICsxNjAsMTggQEAgc3RhdGljIGludCB0cmFjZWUoY29uc3QgY2hhciAqbHVhY29kZSkgewo+PsKg IHJldHVybiBFWElUX1NVQ0NFU1M7Cj4+wqB9Cj4+wqAKPj4rc3RhdGljIHZvaWQgd2FpdF9hbGl2 ZShwaWRfdCBjaHBpZCkgewo+PisgaW50IHdzdGF0dXM7Cj4+Kwo+PisgLyogV2FpdCA8Y2hwaWQ+ IHRyYWNlZSBzaWduYWwtZGVsaXZlcnktc3RvcC4gKi8KPj4rIHdhaXRwaWQoY2hwaWQsICZ3c3Rh dHVzLCAwKTsKPj4rCj4+KyAvKiBDaGVjayB0aGUgdHJhY2VlIGlzIHN0aWxsIGFsaXZlIGFuZCBq dXN0IHN0b3BwZWQuICovCj4+KyBhc3NlcnQoIVdJRkVYSVRFRCh3c3RhdHVzKSk7Cj4+KyBhc3Nl cnQoIVdJRlNJR05BTEVEKHdzdGF0dXMpKTsKPj4rIGFzc2VydChXSUZTVE9QUEVEKHdzdGF0dXMp KTsKPj4rfQo+PisKPj7CoGNvbnN0IHVpbnQ4X3QgSU5UMyA9IDB4Q0M7Cj4+wqBzdGF0aWMgaW5s aW5lIHVuc2lnbmVkIGxvbmcgaW50M3BvaXNvbih1bnNpZ25lZCBsb25nIGluc3RydWN0aW9uKSB7 Cj4+wqAgY29uc3Qgc2l6ZV90IGludDNiaXRzID0gc2l6ZW9mKElOVDMpICogODsKPj5AQCAtMTY3 LDggKzE3OSw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBpbnQzcG9pc29uKHVuc2ln bmVkIGxvbmcgaW5zdHJ1Y3Rpb24pIHsKPj7CoCByZXR1cm4gKGluc3RydWN0aW9uICYgaW50M21h c2spIHwgSU5UMzsKPj7CoH0KPj7CoAo+Pi1zdGF0aWMgaW50IGNvbnRpbnVlX3VudGlsKHBpZF90 IGNocGlkLCB2b2lkICphZGRyKSB7Cj4+LSBpbnQgd3N0YXR1czsKPj4rc3RhdGljIHZvaWQgY29u dGludWVfdW50aWwocGlkX3QgY2hwaWQsIHZvaWQgKmFkZHIpIHsKPj7CoCBzdHJ1Y3QgdXNlcl9y ZWdzX3N0cnVjdCByZWdzOwo+PsKgCj4+wqAgLyogT2J0YWluIHRoZSBpbnN0cnVjdGlvbnMgYXQg dGhlIDxhZGRyPi4gKi8KPj5AQCAtMTgyLDggKzE5MywxMiBAQCBzdGF0aWMgaW50IGNvbnRpbnVl X3VudGlsKHBpZF90IGNocGlkLCB2b2lkICphZGRyKSB7Cj4+wqAKPj7CoCAvKiBSZXN1bWUgPGNo cGlkPiB0cmFjZWUgdW50aWwgU0lHVFJBUCBvY2N1cnMuICovCj4+wqAgcHRyYWNlKFBUUkFDRV9D T05ULCBjaHBpZCwgMCwgMCk7Cj4+LSAvKiBXYWl0IDxjaHBpZD4gdHJhY2VlIHNpZ25hbC1kZWxp dmVyeS1zdG9wLiAqLwo+Pi0gd2FpdHBpZChjaHBpZCwgJndzdGF0dXMsIDApOwo+PisKPj4rIC8q Cj4+KyAqIFdhaXQgPGNocGlkPiB0cmFjZWUgc2lnbmFsLWRlbGl2ZXJ5LXN0b3AgYW5kIGNoZWNr Cj4+KyAqIHdoZXRoZXIgaXQncyBzdGlsbCBhbGl2ZSBhbmQganVzdCBzdG9wcGVkIHZpYSBTSUdU UkFQLgo+PisgKi8KPj4rIHdhaXRfYWxpdmUoY2hwaWQpOwo+PsKgCj4+wqAgLyogT2J0YWluIEdQ UiBzZXQgdG8gdHdlYWsgUklQIGZvciBmdXJ0aGVyIGV4ZWN1dGlvbi4gKi8KPj7CoCBwdHJhY2Uo UFRSQUNFX0dFVFJFR1MsIGNocGlkLCAwLCAmcmVncyk7Cj4+QEAgLTIwMSw5ICsyMTYsNiBAQCBz dGF0aWMgaW50IGNvbnRpbnVlX3VudGlsKHBpZF90IGNocGlkLCB2b2lkICphZGRyKSB7Cj4+wqAg cmVncy5yaXAgLT0gc2l6ZW9mKElOVDMpOwo+PsKgIHB0cmFjZShQVFJBQ0VfU0VUUkVHUywgY2hw aWQsIDAsICZyZWdzKTsKPj7CoCBwdHJhY2UoUFRSQUNFX1BPS0VURVhULCBjaHBpZCwgYWRkciwg ZGF0YSk7Cj4+LQo+Pi0gLyogUmV0dXJuIHdhaXQgc3RhdHVzIHRvIHRoZSBjYWxsZXIgZm9yIHRl c3QgY2hlY2tzLiAqLwo+Pi0gcmV0dXJuIHdzdGF0dXM7Cj4+wqB9Cj4+wqAKPj7CoHN0YXRpYyBp bnQgdHJhY2VyKHBpZF90IGNocGlkKSB7Cj4+QEAgLTIxMiwxOSArMjI0LDE5IEBAIHN0YXRpYyBp bnQgdHJhY2VyKHBpZF90IGNocGlkKSB7Cj4+wqAgLyogV2FpdCB1bnRpbCA8Y2hwaWQ+IHRyYWNl ZSBpcyByZWFkeS4gKi8KPj7CoCB3YWl0cGlkKGNocGlkLCAmd3N0YXR1cywgMCk7Cj4+wqAKPj4t IC8qIFJlc3VtZSA8Y2hwaWQ+IHRyYWNlZSB1bnRpbCA8bGpfZmZfdG9zdHJpbmc+LiAqLwo+Pi0g d3N0YXR1cyA9IGNvbnRpbnVlX3VudGlsKGNocGlkLCBsal9mZl90b3N0cmluZyk7Cj4+LQo+Pi0g LyogVGhlIHRyYWNlZSBoYXMgdG8gYmUgYWxpdmUgYW5kIHN0b3BwZWQgYnkgU0lHVFJBUC4gKi8K Pj4tIGFzc2VydF9mYWxzZShXSUZFWElURUQod3N0YXR1cykpOwo+Pi0gYXNzZXJ0X3RydWUoV0lG U1RPUFBFRCh3c3RhdHVzKSk7Cj4+LQo+Pi0gLyogUmVzdW1lIDxjaHBpZD4gdHJhY2VlIHVudGls IDxsal9mZmZfcmVzMT4uICovCj4+LSB3c3RhdHVzID0gY29udGludWVfdW50aWwoY2hwaWQsIGxq X2ZmZl9yZXMxKTsKPj4rIC8qCj4+KyAqIFJlc3VtZSA8Y2hwaWQ+IHRyYWNlZSB1bnRpbCA8bGpf ZmZfdG9zdHJpbmc+Lgo+PisgKiBUaGUgdHJhY2VlIGlzIGFsaXZlIGFuZCBzdG9wcGVkIGJ5IFNJ R1RSQVAgaWYKPj4rICogPGNvbnRpbnVlX3VudGlsPiByZXR1cm5zLgo+PisgKi8KPj4rIGNvbnRp bnVlX3VudGlsKGNocGlkLCBsal9mZl90b3N0cmluZyk7Cj4+wqAKPj4tIC8qIFRoZSB0cmFjZWUg aGFzIHRvIGJlIGFsaXZlIGFuZCBzdG9wcGVkIGJ5IFNJR1RSQVAuICovCj4+LSBhc3NlcnRfZmFs c2UoV0lGRVhJVEVEKHdzdGF0dXMpKTsKPj4tIGFzc2VydF90cnVlKFdJRlNUT1BQRUQod3N0YXR1 cykpOwo+PisgLyoKPj4rICogUmVzdW1lIDxjaHBpZD4gdHJhY2VlIHVudGlsIDxsal9mZmZfcmVz MT4uCj4+KyAqIFRoZSB0cmFjZWUgaXMgYWxpdmUgYW5kIHN0b3BwZWQgYnkgU0lHVFJBUCBpZgo+ PisgKiA8Y29udGludWVfdW50aWw+IHJldHVybnMuCj4+KyAqLwo+PisgY29udGludWVfdW50aWwo Y2hwaWQsIGxqX2ZmZl9yZXMxKTsKPj7CoAo+PsKgIC8qIFNlbmQgU0lHUFJPRiB0byBtYWtlIHN5 c3Byb2YgY29sbGVjdCB0aGUgZXZlbnQuICovCj4+wqAgcHRyYWNlKFBUUkFDRV9DT05ULCBjaHBp ZCwgMCwgU0lHUFJPRik7Cj4+Cj4+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPj4KPj4+ID4gKwo+ Pgo+PjxzbmlwcGVkPgo+Pgo+Pi0tCj4+QmVzdCByZWdhcmRzLAo+PklNCj7CoA== ----ALT--1994dD1177AadB2c9306E6e8831158Ca1701782597 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+SGksIElnb3IhPC9kaXY+PGRpdj5UaGFua3MgZm9yIHRoZSBmaXhl cyE8L2Rpdj48ZGl2PkxHVE08L2Rpdj48ZGl2IGRhdGEtc2lnbmF0dXJlLXdpZGdldD0iY29udGFp bmVyIj48ZGl2IGRhdGEtc2lnbmF0dXJlLXdpZGdldD0iY29udGVudCI+PGRpdj4tLTxicj5CZXN0 IHJlZ2FyZHMsPC9kaXY+PGRpdj5NYXhpbSBLb2tyeWFzaGtpbjwvZGl2PjwvZGl2PjwvZGl2Pjxk aXY+Jm5ic3A7PC9kaXY+PGRpdj4mbmJzcDs8L2Rpdj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVy LWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7 Ij48ZGl2PiZuYnNwOzxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4 NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXYgaWQ9IiI+PGRpdiBj bGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXYgaWQ9InN0eWxlXzE3MDE3 NzYxMjcwMzExNTQxMTI3X0JPRFkiPk1heCw8YnI+PGJyPlRoYW5rcyBmb3IgeW91ciByZXZpZXch PGJyPjxicj5PbiAwMy4xMi4yMywgTWF4aW0gS29rcnlhc2hraW4gd3JvdGU6PGJyPiZndDsgSGks IElnb3IhPGJyPiZndDsgVGhhbmtzIGZvciB0aGUgcGF0Y2ghPGJyPiZndDsgUGxlYXNlIGNvbnNp ZGVyIG15IGNvbW1lbnRzIGJlbG93Ljxicj4mZ3Q7PGJyPiZndDsgU2lkZSBub3RlOiBUaGlzIG5l dyB0ZXN0aW5nIGFwcHJvYWNoIGlzIGFtYXppbmcsIHRoYW5rcyBhIGxvdCE8YnI+Jmd0Ozxicj4m Z3Q7IE9uIFR1ZSwgTm92IDI4LCAyMDIzIGF0IDAyOjUzOjE3UE0gKzAwMDAsIElnb3IgTXVua2lu IHdyb3RlOjxicj4mZ3Q7ICZndDsgT2Z0ZW4gdGVzdHMgZm9yIHNhbXBsaW5nIHByb2ZpbGVyIHJl cXVpcmUgbG9uZyBydW5uaW5nIGxvb3BzIHRvIGJlPGJyPiZndDsgVHlwbzogcy9PZnRlbi9PZnRl biwvPGJyPiZndDsgJmd0OyBleGVjdXRlZCwgc28gYSBjZXJ0YWluIHNpdHVhdGlvbiBpcyBsaWtl bHkgdG8gb2NjdXIuIFRodXMgdGhlIHRlc3QgYWRkZWQ8YnI+Jmd0OyBUeXBvOiBzL1RodXMvVGh1 cywvPGJyPiZndDsgJmd0OyBpbiB0aGUgY29tbWl0IDI4NWExYjBhMTZjMWMzMjI0YWI5M2Y3Y2Yx ZmVmMTdhYjI5ZTRhYjQgKCJzeXNwcm9mOiBmaXg8YnI+Jmd0OyBUeXBvOiBzL2luIHRoZS9pbi88 YnI+Jmd0OyAmZ3Q7IGNyYXNoIGR1cmluZyBGRlVOQyBzdHJlYW0iKSBleHBlY3RzIEZGVU5DIFZN IHN0YXRlIChhbmQgZXZlbiB0aGU8YnI+Jmd0OyBUeXBvOiBzL2V4cGVjdHMgRkZVTkMvZXhwZWN0 cyB0aGUgRkZVTkMvPGJyPiZndDsgJmd0OyBwYXJ0aWN1bGFyIGluc3RydWN0aW9uIHRvIGJlIGV4 ZWN1dGVkKSBhdCB0aGUgbW9tZW50IHdoZW4gc3RhY2t0cmFjZSBpczxicj4mZ3Q7ICZndDsgYmVp bmcgY29sbGVjdGVkLiBVbmZvcnR1bmF0ZWx5LCBpdCBsZWFkcyB0byB0ZXN0IHJvdXRpbmUgaGFu ZyBmb3I8YnI+Jmd0OyBUeXBvOiBzL3RvIHRlc3Qgcm91dGluZSBoYW5nL3RvIHRoZSB0ZXN0IHJv dXRpbmUgaGFuZ2luZy88YnI+Jmd0OyAmZ3Q7IHNldmVyYWwgZW52aXJvbm1lbnRzIGFuZCBpZiBp dCBkb2VzIG5vdCB3ZSBjYW5ub3QgZ3VhcmFudGVlIHRoYXQgdGhlPGJyPiZndDsgVHlwbzogcy9l bnZpcm9ubWVudHMvZW52aXJvbm1lbnRzLC88YnI+Jmd0OyBUeXBvOiBzL2FuZCBpZiBpdCBkb2Vz IG5vdC9hbmQgZXZlbiBpZiBpdCBkb2VzIG5vdCwvPGJyPiZndDsgJmd0OyBkZXNpcmVkIHNjZW5h cmlvIGlzIHRlc3RlZCAob25seSByZWx5IG9uIHN0YXRpc3RpY3MpLiBBcyBhIHJlc3VsdCB0aGU8 YnI+Jmd0OyBUeXBvOiBzL0FzIGEgcmVzdWx0L0FzIGEgcmVzdWx0LC88YnI+Jmd0OyAmZ3Q7IHRl c3QgZm9yIHRoZSBhZm9yZW1lbnRpb25lZCBwYXRjaCB3YXMgZGlzYWJsZWQgZm9yIFRhcmFudG9v bCBDSSBpbiB0aGU8YnI+Jmd0OyAmZ3Q7IGNvbW1pdCBmZWY2MGExMDUyYjg0NDRiZTYxZTlhOTkz MmFiNDg3NWFmZjBiMmVkICgidGVzdDogcHJldmVudCBoYW5naW5nPGJyPiZndDsgJmd0OyBUYXJh bnRvb2wgQ0kgYnkgc3lzcHJvZiB0ZXN0IikgdW50aWwgdGhlIGlzc3VlIGlzIG5vdCByZXNvbHZl ZC48YnI+Jmd0OyAmZ3Q7PGJyPiZndDsgJmd0OyBUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIG5l dyBhcHByb2FjaCBmb3IgdGVzdGluZyBvdXIgc2FtcGxpbmcgcHJvZmlsZXI8YnI+Jmd0OyAmZ3Q7 IHZpYSAmbHQ7cHRyYWNlJmd0OyBpbXBsZW1lbnRpbmcgcHJlY2lzZSBtYW5hZ2VkIGV4ZWN1dGlv biBvZiB0aGUgcHJvZmlsZWQ8YnI+Jmd0OyBUeXBvOiBzLyZsdDtwdHJhY2UmZ3Q7LyZsdDtwdHJh Y2UmZ3Q7LC88YnI+Jmd0OyAmZ3Q7IGluc3RhbmNlIG1lbnRpb25lZCBpbiB0YXJhbnRvb2wvdGFy YW50b29sIzkzODcuPGJyPiZndDsgJmd0Ozxicj4mZ3Q7ICZndDsgSW5zdGVhZCBvZiBydW5uaW5n IGFyb3VuZCAmbHQ7dG9zdHJpbmcmZ3Q7IGdhemlsbGlvbiB0aW1lcyB3ZSBhY2N1cmF0ZWx5IHN0 ZXA8YnI+Jmd0OyBUeXBvOiBzL3RpbWVzL3RpbWVzLC88YnI+Jmd0OyAmZ3Q7IHRvIHRoZSBleGFj dCBwbGFjZSB3aGVyZSB0aGUgaXNzdWUgcmVwcm9kdWNlcyBhbmQgbWFudWFsbHkgZW1pdCBTSUdQ Uk9GPGJyPiZndDsgJmd0OyB0byB0aGUgTHVhIFZNIGJlaW5nIHByb2ZpbGVkLiBUaGUgcGFydGlj dWxhciBhcHByb2FjaCBpbXBsZW1lbnRlZCBpbjxicj4mZ3Q7ICZndDsgdGhpcyBwYXRjaCBpcyBk ZXNjcmliZWQgYmVsb3cuPGJyPiZndDsgJmd0Ozxicj4mZ3Q7ICZndDsgQXMgaXQgd2FzIG1lbnRp b25lZCwgdGhlIHRlc3QgbWFrZXMgc3lzcHJvZiB0byBjb2xsZWN0IHRoZSBwYXJ0aWN1bGFyPGJy PiZndDsgVHlwbzogcy90byBjb2xsZWN0L2NvbGxlY3QvPGJyPiZndDsgJmd0OyBldmVudCAoRkZV TkMpIGF0IHRoZSBjZXJ0YWluIGluc3RydWN0aW9uIGluIEx1YSBWTSAoJmx0O2xqX2ZmZl9yZXMx Jmd0OykgdG88YnI+Jmd0OyAmZ3Q7IHJlcHJvZHVjZSB0aGUgaXNzdWUgZnJvbSB0YXJhbnRvb2wv dGFyYW50b29sIzg1OTQuIEhlbmNlIGl0J3MgZW5vdWdoIHRvPGJyPiZndDsgVHlwbzogcy9IZW5j ZS9IZW5jZSwvPGJyPiZndDsgJmd0OyBjYWxsICZsdDt0b3N0cmluZyZndDsgZmFzdCBmdW5jdGlv biBpbiB0aGUgcHJvZmlsZWQgaW5zdGFuY2UgKGkuZS4gInRyYWNlZSIpLjxicj4mZ3Q7IFR5cG86 IHMvaS5lLi9pLmUuLC88YnI+Jmd0OyAmZ3Q7IFRvIGVtaXQgU0lHUFJPRiByaWdodCBhdCAmbHQ7 bGpfZmZmX3JlczEmZ3Q7IGluIHNjb3BlIG9mICZsdDt0b3N0cmluZyZndDsgYnVpbHRpbiw8YnI+ Jmd0OyBUeXBvOiBzL2luIHNjb3BlL2luIHRoZSBzY29wZS88YnI+Jmd0OyAmZ3Q7IHRoZSBtYW5h Z2VyIChpLmUuICJ0cmFjZXIiKSBpcyBpbXBsZW1lbnRlZC48YnI+Jmd0OyBUeXBvOiBzL2kuZS4v aS5lLiwvPGJyPiZndDsgJmd0Ozxicj4mZ3Q7ICZndDsgSGVyZSBhcmUgdGhlIG1haW4gc3RlcHMg KHNlZSBjb21tZW50cyBhbmQgYG1hbiAyIHB0cmFjZScgZm9yIG1vcmUgaW5mbyk6PGJyPiZndDsg Jmd0OyAxLiBQb2lzb24gJmx0O2ludCAzJmd0OyBpbnN0cnVjdGlvbiBhcyB0aGUgZmlyc3QgaW5z dHJ1Y3Rpb24gYXQ8YnI+Jmd0OyAmZ3Q7ICZsdDtsal9mZl90b3N0cmluZyZndDsgdG8gc3RvcCBh dCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmYXN0IGZ1bmN0aW9uOzxicj4mZ3Q7ICZndDsgMi4gUmVz dW1lIHRoZSAidHJhY2VlIiBmcm9tIHRoZSAidHJhY2VyIjs8YnI+Jmd0OyAmZ3Q7IDMuIEhpdCB0 aGUgZW1pdHRlZCBpbnRlcnJ1cHRpb24sIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGluc3RydWN0aW9u IGFuZDxicj4mZ3Q7ICZndDsgInJld2luZCIgdGhlIFJJUCB0byAicmVwbGF5IiB0aGUgaW5zdHJ1 Y3Rpb24gYXQgJmx0O2xqX2ZmX3Rvc3RyaW5nJmd0Ozs8YnI+Jmd0OyAmZ3Q7IDQuIERvIHRoZSBo YWNrIDEtMyBmb3IgJmx0O2xqX2ZmZl9yZXMxJmd0Ozs8YnI+Jmd0OyAmZ3Q7IDUuIEVtaXQgU0lH UFJPRiB3aGlsZSByZXN1bWltZyB0aGUgInRyYWNlZSI7PGJyPiZndDsgVHlwbzogcy9yZXN1bWlt Zy9yZXN1bWluZy88YnI+Jmd0OyAmZ3Q7PGJyPiZndDsgJmd0OyBBcyBhIHJlc3VsdCBzeXNwcm9m IGNvbGxlY3RzIHRoZSBmdWxsIGJhY2t0cmFjZSB3aXRoICZsdDt0b3N0cmluZyZndDsgZmFzdDxi cj4mZ3Q7IFR5cG86IHMvYSByZXN1bHQvYSByZXN1bHQsLzxicj4mZ3Q7ICZndDsgZnVuY3Rpb24g YXMgdGhlIHRvcG1vc3QgZnJhbWUuPGJyPiZndDsgJmd0Ozxicj4mZ3Q7ICZndDsgUmVzb2x2ZXMg dGFyYW50b29sL3RhcmFudG9vbCM5Mzg3PGJyPiZndDsgJmd0OyBGb2xsb3dzIHVwIHRhcmFudG9v bC90YXJhbnRvb2wjODU5NDxicj4mZ3Q7ICZndDs8YnI+Jmd0OyAmZ3Q7IFNpZ25lZC1vZmYtYnk6 IElnb3IgTXVua2luICZsdDs8YSBocmVmPSIvY29tcG9zZT9Ubz1pbXVuQHRhcmFudG9vbC5vcmci PmltdW5AdGFyYW50b29sLm9yZzwvYT4mZ3Q7PGJyPjxicj5IZXJlIGlzIHRoZSB1cGRhdGVkIGNv bW1pdCBtZXNzYWdlOjxicj48YnI+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT08YnI+PGJyPnRlc3Q6 IHJld3JpdGUgc3lzcHJvZiB0ZXN0IHVzaW5nIG1hbmFnZWQgZXhlY3V0aW9uPGJyPjxicj5PZnRl biwgdGVzdHMgZm9yIHNhbXBsaW5nIHByb2ZpbGVyIHJlcXVpcmUgbG9uZyBydW5uaW5nIGxvb3Bz IHRvIGJlPGJyPmV4ZWN1dGVkLCBzbyBhIGNlcnRhaW4gc2l0dWF0aW9uIGlzIGxpa2VseSB0byBv Y2N1ci4gVGh1cywgdGhlIHRlc3Q8YnI+YWRkZWQgaW4gY29tbWl0IDI4NWExYjBhMTZjMWMzMjI0 YWI5M2Y3Y2YxZmVmMTdhYjI5ZTRhYjQgKCJzeXNwcm9mOiBmaXg8YnI+Y3Jhc2ggZHVyaW5nIEZG VU5DIHN0cmVhbSIpIGV4cGVjdHMgdGhlIEZGVU5DIFZNIHN0YXRlIChhbmQgZXZlbiB0aGU8YnI+ cGFydGljdWxhciBpbnN0cnVjdGlvbiB0byBiZSBleGVjdXRlZCkgYXQgdGhlIG1vbWVudCB3aGVu IHN0YWNrdHJhY2UgaXM8YnI+YmVpbmcgY29sbGVjdGVkLiBVbmZvcnR1bmF0ZWx5LCBpdCBsZWFk cyB0byB0aGUgdGVzdCByb3V0aW5lIGhhbmcgZm9yPGJyPnNldmVyYWwgZW52aXJvbm1lbnRzLCBh bmQgZXZlbiBpZiBpdCBkb2VzIG5vdCwgd2UgY2Fubm90IGd1YXJhbnRlZSB0aGF0PGJyPnRoZSBk ZXNpcmVkIHNjZW5hcmlvIGlzIHRlc3RlZCAob25seSByZWx5IG9uIHN0YXRpc3RpY3MpLiBBcyBh IHJlc3VsdCw8YnI+dGhlIHRlc3QgZm9yIHRoZSBhZm9yZW1lbnRpb25lZCBwYXRjaCB3YXMgZGlz YWJsZWQgZm9yIFRhcmFudG9vbCBDSSBpbjxicj50aGUgY29tbWl0IGZlZjYwYTEwNTJiODQ0NGJl NjFlOWE5OTMyYWI0ODc1YWZmMGIyZWQgKCJ0ZXN0OiBwcmV2ZW50PGJyPmhhbmdpbmcgVGFyYW50 b29sIENJIGJ5IHN5c3Byb2YgdGVzdCIpIHVudGlsIHRoZSBpc3N1ZSBpcyBub3QgcmVzb2x2ZWQu PGJyPjxicj5UaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIG5ldyBhcHByb2FjaCBmb3IgdGVzdGlu ZyBvdXIgc2FtcGxpbmcgcHJvZmlsZXI8YnI+dmlhICZsdDtwdHJhY2UmZ3Q7LCBpbXBsZW1lbnRp bmcgcHJlY2lzZSBtYW5hZ2VkIGV4ZWN1dGlvbiBvZiB0aGUgcHJvZmlsZWQ8YnI+aW5zdGFuY2Ug bWVudGlvbmVkIGluIHRhcmFudG9vbC90YXJhbnRvb2wjOTM4Ny48YnI+PGJyPkluc3RlYWQgb2Yg cnVubmluZyBhcm91bmQgJmx0O3Rvc3RyaW5nJmd0OyBnYXppbGxpb24gdGltZXMsIHdlIGFjY3Vy YXRlbHkgc3RlcDxicj50byB0aGUgZXhhY3QgcGxhY2Ugd2hlcmUgdGhlIGlzc3VlIHJlcHJvZHVj ZXMgYW5kIG1hbnVhbGx5IGVtaXQgU0lHUFJPRjxicj50byB0aGUgTHVhIFZNIGJlaW5nIHByb2Zp bGVkLiBUaGUgcGFydGljdWxhciBhcHByb2FjaCBpbXBsZW1lbnRlZCBpbjxicj50aGlzIHBhdGNo IGlzIGRlc2NyaWJlZCBiZWxvdy48YnI+PGJyPkFzIGl0IHdhcyBtZW50aW9uZWQsIHRoZSB0ZXN0 IG1ha2VzIHN5c3Byb2YgY29sbGVjdCB0aGUgcGFydGljdWxhciBldmVudDxicj50eXBlIChGRlVO QykgYXQgdGhlIGNlcnRhaW4gaW5zdHJ1Y3Rpb24gaW4gTHVhIFZNICgmbHQ7bGpfZmZmX3JlczEm Z3Q7KSB0bzxicj5yZXByb2R1Y2UgdGhlIGlzc3VlIGZyb20gdGFyYW50b29sL3RhcmFudG9vbCM4 NTk0LiBIZW5jZSwgaXQncyBlbm91Z2ggdG88YnI+Y2FsbCAmbHQ7dG9zdHJpbmcmZ3Q7IGZhc3Qg ZnVuY3Rpb24gaW4gdGhlIHByb2ZpbGVkIGluc3RhbmNlIChpLmUuLCAidHJhY2VlIikuPGJyPlRv IGVtaXQgU0lHUFJPRiByaWdodCBhdCAmbHQ7bGpfZmZmX3JlczEmZ3Q7IGluIHRoZSBzY29wZSBv ZiAmbHQ7dG9zdHJpbmcmZ3Q7PGJyPmJ1aWx0aW4sIHRoZSBtYW5hZ2VyIChpLmUuLCAidHJhY2Vy IikgaXMgaW1wbGVtZW50ZWQuPGJyPjxicj5IZXJlIGFyZSB0aGUgbWFpbiBzdGVwcyAoc2VlIGNv bW1lbnRzIGFuZCBgbWFuIDIgcHRyYWNlJyBmb3IgbW9yZSBpbmZvKTo8YnI+Jm5ic3A7Jm5ic3A7 MS4gUG9pc29uICZsdDtpbnQgMyZndDsgaW5zdHJ1Y3Rpb24gYXMgdGhlIGZpcnN0IGluc3RydWN0 aW9uIGF0PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZsdDtsal9mZl90b3N0cmlu ZyZndDsgdG8gc3RvcCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmYXN0IGZ1bmN0aW9uOzxicj4m bmJzcDsmbmJzcDsyLiBSZXN1bWUgdGhlICJ0cmFjZWUiIGZyb20gdGhlICJ0cmFjZXIiOzxicj4m bmJzcDsmbmJzcDszLiBIaXQgdGhlIGVtaXR0ZWQgaW50ZXJydXB0aW9uLCByZXN0b3JlIHRoZSBv cmlnaW5hbCBpbnN0cnVjdGlvbiBhbmQ8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 InJld2luZCIgdGhlIFJJUCB0byAicmVwbGF5IiB0aGUgaW5zdHJ1Y3Rpb24gYXQgJmx0O2xqX2Zm X3Rvc3RyaW5nJmd0Ozs8YnI+Jm5ic3A7Jm5ic3A7NC4gRG8gdGhlIGhhY2sgMS0zIGZvciAmbHQ7 bGpfZmZmX3JlczEmZ3Q7Ozxicj4mbmJzcDsmbmJzcDs1LiBFbWl0IFNJR1BST0Ygd2hpbGUgcmVz dW1pbmcgdGhlICJ0cmFjZWUiOzxicj48YnI+QXMgYSByZXN1bHQsIHN5c3Byb2YgY29sbGVjdHMg dGhlIGZ1bGwgYmFja3RyYWNlIHdpdGggJmx0O3Rvc3RyaW5nJmd0OyBmYXN0PGJyPmZ1bmN0aW9u IGFzIHRoZSB0b3Btb3N0IGZyYW1lLjxicj48YnI+UmVzb2x2ZXMgdGFyYW50b29sL3RhcmFudG9v bCM5Mzg3PGJyPkZvbGxvd3MgdXAgdGFyYW50b29sL3RhcmFudG9vbCM4NTk0PGJyPjxicj49PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PTxicj48YnI+Jmd0OyAmZ3Q7IC0tLTxicj4mZ3Q7ICZndDsgLi4u L2doLTg1OTQtc3lzcHJvZi1mZnVuYy1jcmFzaC50ZXN0LmMgfCAyNjkgKysrKysrKysrKysrKysr KysrPGJyPiZndDsgJmd0OyAuLi4vZ2gtODU5NC1zeXNwcm9mLWZmdW5jLWNyYXNoLnRlc3QubHVh IHwgNTUgLS0tLTxicj4mZ3Q7ICZndDsgMiBmaWxlcyBjaGFuZ2VkLCAyNjkgaW5zZXJ0aW9ucygr KSwgNTUgZGVsZXRpb25zKC0pPGJyPiZndDsgJmd0OyBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC90 YXJhbnRvb2wtYy10ZXN0cy9naC04NTk0LXN5c3Byb2YtZmZ1bmMtY3Jhc2gudGVzdC5jPGJyPiZn dDsgJmd0OyBkZWxldGUgbW9kZSAxMDA2NDQgdGVzdC90YXJhbnRvb2wtdGVzdHMvZ2gtODU5NC1z eXNwcm9mLWZmdW5jLWNyYXNoLnRlc3QubHVhPGJyPiZndDsgJmd0Ozxicj4mZ3Q7ICZndDsgZGlm ZiAtLWdpdCBhL3Rlc3QvdGFyYW50b29sLWMtdGVzdHMvZ2gtODU5NC1zeXNwcm9mLWZmdW5jLWNy YXNoLnRlc3QuYyBiL3Rlc3QvdGFyYW50b29sLWMtdGVzdHMvZ2gtODU5NC1zeXNwcm9mLWZmdW5j LWNyYXNoLnRlc3QuYzxicj4mZ3Q7ICZndDsgbmV3IGZpbGUgbW9kZSAxMDA2NDQ8YnI+Jmd0OyAm Z3Q7IGluZGV4IDAwMDAwMDAwLi40Y2FlZDhjYjxicj4mZ3Q7ICZndDsgLS0tIC9kZXYvbnVsbDxi cj4mZ3Q7ICZndDsgKysrIGIvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9naC04NTk0LXN5c3Byb2Yt ZmZ1bmMtY3Jhc2gudGVzdC5jPGJyPiZndDsgJmd0OyBAQCAtMCwwICsxLDI2OSBAQDxicj4mZ3Q7 ICZndDsgKyNpbmNsdWRlICJsYXV4bGliLmgiPGJyPiZndDsgJmd0OyArI2luY2x1ZGUgImxtaXNj bGliLmgiPGJyPiZndDsgJmd0OyArI2luY2x1ZGUgImx1YS5oIjxicj4mZ3Q7ICZndDsgKzxicj4m Z3Q7ICZndDsgKyNpbmNsdWRlICJ0ZXN0LmgiPGJyPiZndDsgJmd0OyArI2luY2x1ZGUgInV0aWxz LmgiPGJyPiZndDsgJmd0OyArPGJyPiZndDsgJmd0OyArI2luY2x1ZGUgJmx0O3NpZ25hbC5oJmd0 Ozxicj4mZ3Q7ICZndDsgKyNpbmNsdWRlICZsdDtzeXMvcHRyYWNlLmgmZ3Q7PGJyPiZndDsgJmd0 OyArI2luY2x1ZGUgJmx0O3N5cy91c2VyLmgmZ3Q7PGJyPiZndDsgJmd0OyArI2luY2x1ZGUgJmx0 O3N5cy93YWl0LmgmZ3Q7PGJyPiZndDsgJmd0OyArI2luY2x1ZGUgJmx0O3VuaXN0ZC5oJmd0Ozxi cj4mZ3Q7ICZndDsgKzxicj4mZ3Q7ICZndDsgKy8qIFhYWDogU3RpbGwgbmVlZCBub3JtYWwgYXNz ZXJ0IGluc2lkZSAmbHQ7dHJhY2VlJmd0OyBhbmQgaGVscGVycy4gKi88YnI+Jmd0OyAmZ3Q7ICsj dW5kZWYgTkRFQlVHPGJyPiZndDsgJmd0OyArI2luY2x1ZGUgJmx0O2Fzc2VydC5oJmd0Ozxicj4m Z3Q7ICZndDsgKzxicj4mZ3Q7ICZndDsgKy8qPGJyPiZndDsgJmd0OyArICogWFhYOiBUaGUgdGVz dCBpcyAqdmVyeSogTGludXgveDg2XzY0IHNwZWNpZmljLiBGb3J0dW5hdGVseSwgc288YnI+Jmd0 OyAmZ3Q7ICsgKiBkb2VzIHRoZSBzYW1wbGluZyBwcm9maWxlci4gJmx0O2xqX2FyY2guJmd0OyBp cyBuZWVkZWQgZm9yIExVQUpJVF9PUzxicj4mZ3Q7ICZndDsgKyAqIGFuZCBMVUFKSVRfVEFSR0VU Ljxicj4mZ3Q7ICZndDsgKyAqLzxicj4mZ3Q7ICZndDsgKyNpbmNsdWRlICJsal9hcmNoLmgiPGJy PiZndDsgJmd0OyArPGJyPiZndDsgJmd0OyArI2lmIExVQUpJVF9PUyA9PSBMVUFKSVRfT1NfTElO VVggJmFtcDsmYW1wOyBMVUFKSVRfVEFSR0VUID09IExVQUpJVF9BUkNIX1g2NDxicj4mZ3Q7IFdo eSBub3QgdXNlIHRoZSBgTEpfSEFTU1lTUFJPRmAgZmxhZz88YnI+PGJyPlNpbmNlIHRoZSB0ZXN0 IHBlciBzZSBpcyBMaW51eC94ODZfNjQgc3BlY2lmaWMgKGNvbnNpZGVyIHRoZSBwYXJ0aWN1bGFy PGJyPnJlZ2lzdGVyIG5hbWUgdXNlZCBiZWxvdykuIEUuZy4gc3lzcHJvZiBpcyBpbXBsZW1lbnRl ZCBmb3IgeDg2IGVpdGhlciw8YnI+YnV0IHRoZSB0ZXN0IGlzIG5vdC4gSWYgc29tZWJvZHkgKFNl cmdleSBLYXBsdW4pIGZpbmFsbHkgZGVjaWRlZCB0bzxicj5pbnRyb2R1Y2UgeDg2IHRlc3Rpbmcg ZW52aXJvbm1lbnQsIHRoZSB0ZXN0IHdvdWxkIGNyYXNoLiBJIHByZWZlciBtb3JlPGJyPmRldmVs b3Blci1mcmllbmRseSBhcHByb2FjaCBoZXJlIChjb25zaWRlcmluZyAmbHQ7cHRyYWNlJmd0OyBw ZWN1bGlhcml0aWVzKS48YnI+PGJyPiZndDsgJmd0OyArPGJyPiZndDsgJmd0OyArLyo8YnI+Jmd0 OyAmZ3Q7ICsgKiBYWFg6IFRoZSB0ZXN0IG1ha2VzIHN5c3Byb2YgdG8gY29sbGVjdCB0aGUgcGFy dGljdWxhciBldmVudDxicj4mZ3Q7IFR5cG86IHMvc3lzcHJvZiB0by9zeXNwcm9mLzxicj4mZ3Q7 ICZndDsgKyAqIChGRlVOQykgYXQgdGhlIHBhcnRpY3VsYXIgaW5zdHJ1Y3Rpb24gKCZsdDtsal9m ZmZfcmVzMSZndDspIHRvPGJyPiZndDsgJmd0OyArICogcmVwcm9kdWNlIHRoZSBpc3N1ZSAjODU5 NC4gSGVuY2UgaXQncyBlbm91Z2ggdG8gY2FsbCAmbHQ7dG9zdHJpbmcmZ3Q7PGJyPiZndDsgVHlw bzogcy9IZW5jZS9IZW5jZSwvPGJyPiZndDsgJmd0OyArICogZmFzdCBmdW5jdGlvbiAodGhpcyBp cyBkb25lIGluICZsdDt0cmFjZWUmZ3Q7IGZ1bmN0aW9uKS4gVG8gZW1pdDxicj4mZ3Q7ICZndDsg KyAqIFNJR1BST0YgcmlnaHQgYXQgJmx0O2xqX2ZmZl9yZXMxJmd0OyBpbiBzY29wZSBvZiAmbHQ7 dG9zdHJpbmcmZ3Q7IGZhc3Q8YnI+Jmd0OyAmZ3Q7ICsgKiBmdW5jdGlvbiwgdGhlIG1hbmFnZWQg ZXhlY3V0aW9uIGlzIGltcGxlbWVudGVkIGluIHRoZSBmdW5jdGlvbjxicj4mZ3Q7ICZndDsgKyAq ICZsdDt0cmFjZXImZ3Q7OiAmbHQ7aW50IDMmZ3Q7IGluc3RydWN0aW9uIGlzIHBvaXNvbmVkIGFz IHRoZSBmaXJzdDxicj4mZ3Q7ICZndDsgKyAqIGluc3RydWN0aW9uIGF0ICZsdDtsal9mZl90b3N0 cmluZyZndDsgdG8gc3RvcCAmbHQ7dHJhY2VlJmd0OyBhdCB0aGU8YnI+Jmd0OyAmZ3Q7ICsgKiBi ZWdpbm5pbmcgb2YgdGhlIGZhc3QgZnVuY3Rpb247ICZsdDt0cmFjZXImZ3Q7IHJlc3VtZXMgdGhl ICZsdDt0cmFjZWUmZ3Q7Ozxicj4mZ3Q7ICZndDsgKyAqIHRoZSBzYW1lIGhhY2sgaXMgZG9uZSBm b3IgJmx0O2xqX2ZmZl9yZXMxJmd0Oy4gV2hlbiB0aGUgJmx0O3RyYWNlZSZndDsgaGl0czxicj4m Z3Q7ICZndDsgKyAqIHRoZSBpbnRlcnJ1cHRpb24gYXQgJmx0O2xqX2ZmZl9yZXMxJmd0OywgU0lH UFJPRiBpcyBlbWl0dGVkIHdoaWxlPGJyPiZndDsgJmd0OyArICogcmVzdW1pbmcgdGhlICZsdDt0 cmFjZWUmZ3Q7LiBBcyBhIHJlc3VsdCBzeXNwcm9mIGNvbGxlY3RzIHRoZSBmdWxsPGJyPiZndDsg VHlwbzogcy9hIHJlc3VsdC9hIHJlc3VsdCwvPGJyPiZndDsgJmd0OyArICogYmFja3RyYWNlIHdp dGggJmx0O3Rvc3RyaW5nJmd0OyBmYXN0IGZ1bmN0aW9uIGFzIHRoZSB0b3Btb3N0IGZyYW1lLjxi cj4mZ3Q7ICZndDsgKyAqPGJyPiZndDsgJmd0OyArICogU2VlIG1vcmUgaW5mbyBoZXJlOjxicj4m Z3Q7ICZndDsgKyAqICogPGEgaHJlZj0iaHR0cHM6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMv bWFuMi9wdHJhY2UuMi5odG1sIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9tYW43Lm9yZy9saW51 eC9tYW4tcGFnZXMvbWFuMi9wdHJhY2UuMi5odG1sPC9hPjxicj4mZ3Q7ICZndDsgKyAqICogPGEg aHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvaXNzdWVzLzg1OTQi IHRhcmdldD0iX2JsYW5rIj5odHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9p c3N1ZXMvODU5NDwvYT48YnI+Jmd0OyAmZ3Q7ICsgKiAqIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHVi LmNvbS90YXJhbnRvb2wvdGFyYW50b29sL2lzc3Vlcy85Mzg3IiB0YXJnZXQ9Il9ibGFuayI+aHR0 cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvaXNzdWVzLzkzODc8L2E+PGJyPiZn dDsgJmd0OyArICovPGJyPjxicj5GaXhlZC4gVGhlIGRpZmYgaXMgYmVsb3c6PGJyPjxicj49PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PTxicj48YnI+ZGlmZiAtLWdpdCBhL3Rlc3QvdGFyYW50b29sLWMt dGVzdHMvZ2gtODU5NC1zeXNwcm9mLWZmdW5jLWNyYXNoLnRlc3QuYyBiL3Rlc3QvdGFyYW50b29s LWMtdGVzdHMvZ2gtODU5NC1zeXNwcm9mLWZmdW5jLWNyYXNoLnRlc3QuYzxicj5pbmRleCA0Y2Fl ZDhjYi4uZjA2MDc2MGIgMTAwNjQ0PGJyPi0tLSBhL3Rlc3QvdGFyYW50b29sLWMtdGVzdHMvZ2gt ODU5NC1zeXNwcm9mLWZmdW5jLWNyYXNoLnRlc3QuYzxicj4rKysgYi90ZXN0L3RhcmFudG9vbC1j LXRlc3RzL2doLTg1OTQtc3lzcHJvZi1mZnVuYy1jcmFzaC50ZXN0LmM8YnI+QEAgLTI1LDE4ICsy NSwxOCBAQDxicj4mbmJzcDsjaWYgTFVBSklUX09TID09IExVQUpJVF9PU19MSU5VWCAmYW1wOyZh bXA7IExVQUpJVF9UQVJHRVQgPT0gTFVBSklUX0FSQ0hfWDY0PGJyPiZuYnNwOzxicj4mbmJzcDsv Kjxicj4tICogWFhYOiBUaGUgdGVzdCBtYWtlcyBzeXNwcm9mIHRvIGNvbGxlY3QgdGhlIHBhcnRp Y3VsYXIgZXZlbnQ8YnI+KyAqIFhYWDogVGhlIHRlc3QgbWFrZXMgc3lzcHJvZiBjb2xsZWN0IHRo ZSBwYXJ0aWN1bGFyIGV2ZW50PGJyPiZuYnNwOyZuYnNwOyogKEZGVU5DKSBhdCB0aGUgcGFydGlj dWxhciBpbnN0cnVjdGlvbiAoJmx0O2xqX2ZmZl9yZXMxJmd0OykgdG88YnI+LSAqIHJlcHJvZHVj ZSB0aGUgaXNzdWUgIzg1OTQuIEhlbmNlIGl0J3MgZW5vdWdoIHRvIGNhbGwgJmx0O3Rvc3RyaW5n Jmd0Ozxicj4tICogZmFzdCBmdW5jdGlvbiAodGhpcyBpcyBkb25lIGluICZsdDt0cmFjZWUmZ3Q7 IGZ1bmN0aW9uKS4gVG8gZW1pdDxicj4tICogU0lHUFJPRiByaWdodCBhdCAmbHQ7bGpfZmZmX3Jl czEmZ3Q7IGluIHNjb3BlIG9mICZsdDt0b3N0cmluZyZndDsgZmFzdDxicj4tICogZnVuY3Rpb24s IHRoZSBtYW5hZ2VkIGV4ZWN1dGlvbiBpcyBpbXBsZW1lbnRlZCBpbiB0aGUgZnVuY3Rpb248YnI+ LSAqICZsdDt0cmFjZXImZ3Q7OiAmbHQ7aW50IDMmZ3Q7IGluc3RydWN0aW9uIGlzIHBvaXNvbmVk IGFzIHRoZSBmaXJzdDxicj4rICogcmVwcm9kdWNlIHRoZSBpc3N1ZSAjODU5NC4gSGVuY2UsIGl0 J3MgZW5vdWdoIHRvIGNhbGw8YnI+KyAqICZsdDt0b3N0cmluZyZndDsgZmFzdCBmdW5jdGlvbiAo dGhpcyBpcyBkb25lIGluICZsdDt0cmFjZWUmZ3Q7IGZ1bmN0aW9uKS48YnI+KyAqIFRvIGVtaXQg U0lHUFJPRiByaWdodCBhdCAmbHQ7bGpfZmZmX3JlczEmZ3Q7IGluIHNjb3BlIG9mICZsdDt0b3N0 cmluZyZndDs8YnI+KyAqIGZhc3QgZnVuY3Rpb24sIHRoZSBtYW5hZ2VkIGV4ZWN1dGlvbiBpcyBp bXBsZW1lbnRlZCBpbiB0aGU8YnI+KyAqIGZ1bmN0aW9uICZsdDt0cmFjZXImZ3Q7OiAmbHQ7aW50 IDMmZ3Q7IGluc3RydWN0aW9uIGlzIHBvaXNvbmVkIGFzIHRoZSBmaXJzdDxicj4mbmJzcDsmbmJz cDsqIGluc3RydWN0aW9uIGF0ICZsdDtsal9mZl90b3N0cmluZyZndDsgdG8gc3RvcCAmbHQ7dHJh Y2VlJmd0OyBhdCB0aGU8YnI+Jm5ic3A7Jm5ic3A7KiBiZWdpbm5pbmcgb2YgdGhlIGZhc3QgZnVu Y3Rpb247ICZsdDt0cmFjZXImZ3Q7IHJlc3VtZXMgdGhlICZsdDt0cmFjZWUmZ3Q7Ozxicj4mbmJz cDsmbmJzcDsqIHRoZSBzYW1lIGhhY2sgaXMgZG9uZSBmb3IgJmx0O2xqX2ZmZl9yZXMxJmd0Oy4g V2hlbiB0aGUgJmx0O3RyYWNlZSZndDsgaGl0czxicj4mbmJzcDsmbmJzcDsqIHRoZSBpbnRlcnJ1 cHRpb24gYXQgJmx0O2xqX2ZmZl9yZXMxJmd0OywgU0lHUFJPRiBpcyBlbWl0dGVkIHdoaWxlPGJy Pi0gKiByZXN1bWluZyB0aGUgJmx0O3RyYWNlZSZndDsuIEFzIGEgcmVzdWx0IHN5c3Byb2YgY29s bGVjdHMgdGhlIGZ1bGw8YnI+KyAqIHJlc3VtaW5nIHRoZSAmbHQ7dHJhY2VlJmd0Oy4gQXMgYSBy ZXN1bHQsIHN5c3Byb2YgY29sbGVjdHMgdGhlIGZ1bGw8YnI+Jm5ic3A7Jm5ic3A7KiBiYWNrdHJh Y2Ugd2l0aCAmbHQ7dG9zdHJpbmcmZ3Q7IGZhc3QgZnVuY3Rpb24gYXMgdGhlIHRvcG1vc3QgZnJh bWUuPGJyPiZuYnNwOyZuYnNwOyo8YnI+Jm5ic3A7Jm5ic3A7KiBTZWUgbW9yZSBpbmZvIGhlcmU6 PGJyPjxicj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PTxicj48YnI+Jmd0OyAmZ3Q7ICs8YnI+PGJy PiZsdDtzbmlwcGVkJmd0Ozxicj48YnI+Jmd0OyAmZ3Q7ICs8YnI+Jmd0OyAmZ3Q7ICsgLyogQWxs b3cgdHJhY2luZyBmb3IgdGhpcyBwcm9jZXNzICovPGJyPiZndDsgJmd0OyArIGlmIChwdHJhY2Uo UFRSQUNFX1RSQUNFTUUsIDAsIDAsIDApICZsdDsgMCkgezxicj4mZ3Q7ICZndDsgKyBwZXJyb3Io IkZhaWxlZCB0byB0dXJuIHRoZSBjYWxsaW5nIHRocmVhZCBpbnRvIGEgdHJhY2VlIik7PGJyPiZn dDsgVHlwbz86IHMvdGhyZWFkL3Byb2Nlc3MvPGJyPjxicj5ZZWFoLCBjb3B5LXBhc3RlZCBmcm9t IHRoZSAmbHQ7cHRyYWNlJmd0OyByZWNpcGUuIEZpeGVkLjxicj48YnI+Jmd0OyAmZ3Q7ICsgcmV0 dXJuIEVYSVRfRkFJTFVSRTs8YnI+Jmd0OyAmZ3Q7ICsgfTxicj48YnI+Jmx0O3NuaXBwZWQmZ3Q7 PGJyPjxicj4mZ3Q7ICZndDsgKyAvKiBUZXJtaW5hdGUgcHJvZmlsZXIgYW5kIEx1YSB1bml2ZXJz ZS4gKi88YnI+Jmd0OyAmZ3Q7ICsgYXNzZXJ0KGx1YU1fc3lzcHJvZl9zdG9wKEwpID09IFBST0ZJ TEVfU1VDQ0VTUyk7PGJyPiZndDsgJmd0OyArIHV0aWxzX2x1YV9jbG9zZShMKTs8YnI+Jmd0OyBJ dCBkb2Vzbid0IHNlZW0gdG8gYmUgc2VtYW50aWNhbGx5IGNvcnJlY3QgdG8gdGVybWluYXRlIEx1 YSB1bml2ZXJzZTxicj4mZ3Q7IGJlZm9yZSBvYnRhaW5pbmcgdGhlIGNvdW50ZXJzLCBldmVuIHRo b3VnaCB0aGVyZSBpcyBubyBvYnN0YWNsZXMgdG8gZG88YnI+Jmd0OyBzbyBpbiB0aGUgQVBJIGlt cGxlbWVudGF0aW9uIGl0c2VsZi48YnI+PGJyPlRvW01BSF10byB2cy5Ub1tNQVlddG86IGZpeGVk LiBUaGUgZGlmZiBpcyBiZWxvdy48YnI+PGJyPj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PGJyPjxi cj5kaWZmIC0tZ2l0IGEvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9naC04NTk0LXN5c3Byb2YtZmZ1 bmMtY3Jhc2gudGVzdC5jIGIvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9naC04NTk0LXN5c3Byb2Yt ZmZ1bmMtY3Jhc2gudGVzdC5jPGJyPmluZGV4IGMwZjlkMWNhLi41YTI1MjNlZiAxMDA2NDQ8YnI+ LS0tIGEvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9naC04NTk0LXN5c3Byb2YtZmZ1bmMtY3Jhc2gu dGVzdC5jPGJyPisrKyBiL3Rlc3QvdGFyYW50b29sLWMtdGVzdHMvZ2gtODU5NC1zeXNwcm9mLWZm dW5jLWNyYXNoLnRlc3QuYzxicj5AQCAtMTQyLDkgKzE0Miw4IEBAIHN0YXRpYyBpbnQgdHJhY2Vl KGNvbnN0IGNoYXIgKmx1YWNvZGUpIHs8YnI+Jm5ic3A7IGFzc2VydChsdWFMX2Rvc3RyaW5nKEws IGx1YWNvZGUpID09IExVQV9PSyk7PGJyPiZuYnNwOyBhc3NlcnQoc3RyY21wKGx1YV90b3N0cmlu ZyhMLCAtMSksIE1FU1NBR0UpID09IDApOzxicj4mbmJzcDs8YnI+LSAvKiBUZXJtaW5hdGUgcHJv ZmlsZXIgYW5kIEx1YSB1bml2ZXJzZS4gKi88YnI+KyAvKiBUZXJtaW5hdGUgcHJvZmlsZXIuICov PGJyPiZuYnNwOyBhc3NlcnQobHVhTV9zeXNwcm9mX3N0b3AoTCkgPT0gUFJPRklMRV9TVUNDRVNT KTs8YnI+LSB1dGlsc19sdWFfY2xvc2UoTCk7PGJyPiZuYnNwOzxicj4mbmJzcDsgLyo8YnI+Jm5i c3A7ICogWFhYOiBUaGUgb25seSBldmVudCB0byBiZSBzdHJlYW1lZCBtdXN0IGJlIEZGVU5DIGF0 PGJyPkBAIC0xNTUsNiArMTU0LDkgQEAgc3RhdGljIGludCB0cmFjZWUoY29uc3QgY2hhciAqbHVh Y29kZSkgezxicj4mbmJzcDsgYXNzZXJ0KGNvdW50ZXJzLnNhbXBsZXMgPT0gMSk7PGJyPiZuYnNw OyBhc3NlcnQoY291bnRlcnMudm1zdF9mZnVuYyA9PSAxKTs8YnI+Jm5ic3A7PGJyPisgLyogVGVy bWluYXRlIEx1YSB1bml2ZXJzZS4gKi88YnI+KyB1dGlsc19sdWFfY2xvc2UoTCk7PGJyPis8YnI+ Jm5ic3A7IHJldHVybiBFWElUX1NVQ0NFU1M7PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPjxicj49 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PTxicj48YnI+Jmd0OyAmZ3Q7ICs8YnI+PGJyPiZsdDtzbmlw cGVkJmd0Ozxicj48YnI+Jmd0OyAmZ3Q7ICsgLyogUmVzdW1lICZsdDtjaHBpZCZndDsgdHJhY2Vl IHVudGlsIFNJR1RSQVAgb2NjdXJzLiAqLzxicj4mZ3Q7ICZndDsgKyBwdHJhY2UoUFRSQUNFX0NP TlQsIGNocGlkLCAwLCAwKTs8YnI+Jmd0OyAmZ3Q7ICsgLyogV2FpdCAmbHQ7Y2hwaWQmZ3Q7IHRy YWNlZSBzaWduYWwtZGVsaXZlcnktc3RvcC4gKi88YnI+Jmd0OyAmZ3Q7ICsgd2FpdHBpZChjaHBp ZCwgJmFtcDt3c3RhdHVzLCAwKTs8YnI+Jmd0OyBTaG91bGQgd2UgY2hlY2sgdGhlIGB3c3RhdHVz YCBoZXJlIHRvbz88YnI+PGJyPkltcGxlbWVudGVkIHZpYSAmbHQ7d2FpdF9hbGl2ZSZndDsgaGVs cGVyIChzZWUgdGhlIGRldGFpbHMgYmVsb3cpLjxicj48YnI+Jmd0OyAmZ3Q7ICs8YnI+PGJyPiZs dDtzbmlwcGVkJmd0Ozxicj48YnI+Jmd0OyAmZ3Q7ICs8YnI+Jmd0OyAmZ3Q7ICtzdGF0aWMgaW50 IHRyYWNlcihwaWRfdCBjaHBpZCkgezxicj4mZ3Q7ICZndDsgKyBpbnQgd3N0YXR1czs8YnI+Jmd0 OyAmZ3Q7ICs8YnI+Jmd0OyAmZ3Q7ICsgLyogV2FpdCB1bnRpbCAmbHQ7Y2hwaWQmZ3Q7IHRyYWNl ZSBpcyByZWFkeS4gKi88YnI+Jmd0OyAmZ3Q7ICsgd2FpdHBpZChjaHBpZCwgJmFtcDt3c3RhdHVz LCAwKTs8YnI+Jmd0OyBTaG91bGQgd2UgY2hlY2sgdGhlIHByb2Nlc3Mgc3RhdHVzIGhlcmUgdG9v Pzxicj48YnI+SW1wbGVtZW50ZWQgdmlhICZsdDt3YWl0X2FsaXZlJmd0OyBoZWxwZXIgKHNlZSB0 aGUgaW1wbGVtZW50YXRpb24gYmVsb3cpLjxicj48YnI+PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT08 YnI+PGJyPmRpZmYgLS1naXQgYS90ZXN0L3RhcmFudG9vbC1jLXRlc3RzL2doLTg1OTQtc3lzcHJv Zi1mZnVuYy1jcmFzaC50ZXN0LmMgYi90ZXN0L3RhcmFudG9vbC1jLXRlc3RzL2doLTg1OTQtc3lz cHJvZi1mZnVuYy1jcmFzaC50ZXN0LmM8YnI+aW5kZXggODRjMDI0ZjAuLmQxNzM4NmRkIDEwMDY0 NDxicj4tLS0gYS90ZXN0L3RhcmFudG9vbC1jLXRlc3RzL2doLTg1OTQtc3lzcHJvZi1mZnVuYy1j cmFzaC50ZXN0LmM8YnI+KysrIGIvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9naC04NTk0LXN5c3By b2YtZmZ1bmMtY3Jhc2gudGVzdC5jPGJyPkBAIC0yMjIsNyArMjIyLDcgQEAgc3RhdGljIGludCB0 cmFjZXIocGlkX3QgY2hwaWQpIHs8YnI+Jm5ic3A7IGludCB3c3RhdHVzOzxicj4mbmJzcDs8YnI+ Jm5ic3A7IC8qIFdhaXQgdW50aWwgJmx0O2NocGlkJmd0OyB0cmFjZWUgaXMgcmVhZHkuICovPGJy Pi0gd2FpdHBpZChjaHBpZCwgJmFtcDt3c3RhdHVzLCAwKTs8YnI+KyB3YWl0X2FsaXZlKGNocGlk KTs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAvKjxicj4mbmJzcDsgKiBSZXN1bWUgJmx0O2NocGlkJmd0 OyB0cmFjZWUgdW50aWwgJmx0O2xqX2ZmX3Rvc3RyaW5nJmd0Oy48YnI+PGJyPj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PGJyPjxicj4mZ3Q7ICZndDsgKzxicj4mZ3Q7ICZndDsgKyAvKiBSZXN1bWUg Jmx0O2NocGlkJmd0OyB0cmFjZWUgdW50aWwgJmx0O2xqX2ZmX3Rvc3RyaW5nJmd0Oy4gKi88YnI+ Jmd0OyAmZ3Q7ICsgd3N0YXR1cyA9IGNvbnRpbnVlX3VudGlsKGNocGlkLCBsal9mZl90b3N0cmlu Zyk7PGJyPiZndDsgJmd0OyArPGJyPiZndDsgJmd0OyArIC8qIFRoZSB0cmFjZWUgaGFzIHRvIGJl IGFsaXZlIGFuZCBzdG9wcGVkIGJ5IFNJR1RSQVAuICovPGJyPiZndDsgJmd0OyArIGFzc2VydF9m YWxzZShXSUZFWElURUQod3N0YXR1cykpOzxicj4mZ3Q7ICZndDsgKyBhc3NlcnRfdHJ1ZShXSUZT VE9QUEVEKHdzdGF0dXMpKTs8YnI+Jmd0OyAmZ3Q7ICs8YnI+Jmd0OyAmZ3Q7ICsgLyogUmVzdW1l ICZsdDtjaHBpZCZndDsgdHJhY2VlIHVudGlsICZsdDtsal9mZmZfcmVzMSZndDsuICovPGJyPiZn dDsgJmd0OyArIHdzdGF0dXMgPSBjb250aW51ZV91bnRpbChjaHBpZCwgbGpfZmZmX3JlczEpOzxi cj4mZ3Q7ICZndDsgKzxicj4mZ3Q7ICZndDsgKyAvKiBUaGUgdHJhY2VlIGhhcyB0byBiZSBhbGl2 ZSBhbmQgc3RvcHBlZCBieSBTSUdUUkFQLiAqLzxicj4mZ3Q7ICZndDsgKyBhc3NlcnRfZmFsc2Uo V0lGRVhJVEVEKHdzdGF0dXMpKTs8YnI+Jmd0OyAmZ3Q7ICsgYXNzZXJ0X3RydWUoV0lGU1RPUFBF RCh3c3RhdHVzKSk7PGJyPiZndDsgVGhpcyBwYXJ0IGlzIGR1cGxpY2F0ZWQsIGxldCdzIG1vdmUg aXQgdG8gYSBzZXBhcmF0ZSBgaGVhbHRoY2hlY2tgPGJyPiZndDsgZnVuY3Rpb24sIG9yIHNvbWV0 aGluZyBsaWtlIHRoYXQuPGJyPjxicj5JdCdzIG9ubHkgZHVwbGljYXRlZCBpbiBzZW5zZSBvZiBy ZXVzaW5nIHRoaXMgcGFydGljdWxhciBjb2RlLCBubyBtb3JlLjxicj5Ib3dldmVyLCBsZXQncyBj b25zaWRlciB0aGVzZSBjb25kaXRpb25zIGFyZSBub3QgcGFydHMgb2YgdGhlIHRlc3Q8YnI+YXNz ZXJ0aW9ucyBzZXQsIGJ1dCByYXRoZXIgaW52YXJpYW50cyBmb3IgJmx0O2NvbnRpbnVlX3VudGls Jmd0OyBoZWxwZXIgKGkuZS48YnI+Jmx0O2NvbnRpbnVlX3VudGlsJmd0OyBoYXMgdG8geWllbGQg dGhlIGV4ZWN1dGlvbiB3aXRoIHRoZSAiYWxpdmUiIHRyYWNlZSkuPGJyPjxicj5JbiB0aGlzIGNh c2UsIHRoZSBwYXRjaCBmb3IgJmx0O2NvbnRpbnVlX3VudGlsJmd0OyBpcyB0aGUgZm9sbG93aW5n Ojxicj48YnI+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT08YnI+PGJyPmRpZmYgLS1naXQgYS90ZXN0 L3RhcmFudG9vbC1jLXRlc3RzL2doLTg1OTQtc3lzcHJvZi1mZnVuYy1jcmFzaC50ZXN0LmMgYi90 ZXN0L3RhcmFudG9vbC1jLXRlc3RzL2doLTg1OTQtc3lzcHJvZi1mZnVuYy1jcmFzaC50ZXN0LmM8 YnI+aW5kZXggNWEyNTIzZWYuLjg0YzAyNGYwIDEwMDY0NDxicj4tLS0gYS90ZXN0L3RhcmFudG9v bC1jLXRlc3RzL2doLTg1OTQtc3lzcHJvZi1mZnVuYy1jcmFzaC50ZXN0LmM8YnI+KysrIGIvdGVz dC90YXJhbnRvb2wtYy10ZXN0cy9naC04NTk0LXN5c3Byb2YtZmZ1bmMtY3Jhc2gudGVzdC5jPGJy PkBAIC0xNjAsNiArMTYwLDE4IEBAIHN0YXRpYyBpbnQgdHJhY2VlKGNvbnN0IGNoYXIgKmx1YWNv ZGUpIHs8YnI+Jm5ic3A7IHJldHVybiBFWElUX1NVQ0NFU1M7PGJyPiZuYnNwO308YnI+Jm5ic3A7 PGJyPitzdGF0aWMgdm9pZCB3YWl0X2FsaXZlKHBpZF90IGNocGlkKSB7PGJyPisgaW50IHdzdGF0 dXM7PGJyPis8YnI+KyAvKiBXYWl0ICZsdDtjaHBpZCZndDsgdHJhY2VlIHNpZ25hbC1kZWxpdmVy eS1zdG9wLiAqLzxicj4rIHdhaXRwaWQoY2hwaWQsICZhbXA7d3N0YXR1cywgMCk7PGJyPis8YnI+ KyAvKiBDaGVjayB0aGUgdHJhY2VlIGlzIHN0aWxsIGFsaXZlIGFuZCBqdXN0IHN0b3BwZWQuICov PGJyPisgYXNzZXJ0KCFXSUZFWElURUQod3N0YXR1cykpOzxicj4rIGFzc2VydCghV0lGU0lHTkFM RUQod3N0YXR1cykpOzxicj4rIGFzc2VydChXSUZTVE9QUEVEKHdzdGF0dXMpKTs8YnI+K308YnI+ Kzxicj4mbmJzcDtjb25zdCB1aW50OF90IElOVDMgPSAweENDOzxicj4mbmJzcDtzdGF0aWMgaW5s aW5lIHVuc2lnbmVkIGxvbmcgaW50M3BvaXNvbih1bnNpZ25lZCBsb25nIGluc3RydWN0aW9uKSB7 PGJyPiZuYnNwOyBjb25zdCBzaXplX3QgaW50M2JpdHMgPSBzaXplb2YoSU5UMykgKiA4Ozxicj5A QCAtMTY3LDggKzE3OSw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBpbnQzcG9pc29u KHVuc2lnbmVkIGxvbmcgaW5zdHJ1Y3Rpb24pIHs8YnI+Jm5ic3A7IHJldHVybiAoaW5zdHJ1Y3Rp b24gJmFtcDsgaW50M21hc2spIHwgSU5UMzs8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+LXN0YXRp YyBpbnQgY29udGludWVfdW50aWwocGlkX3QgY2hwaWQsIHZvaWQgKmFkZHIpIHs8YnI+LSBpbnQg d3N0YXR1czs8YnI+K3N0YXRpYyB2b2lkIGNvbnRpbnVlX3VudGlsKHBpZF90IGNocGlkLCB2b2lk ICphZGRyKSB7PGJyPiZuYnNwOyBzdHJ1Y3QgdXNlcl9yZWdzX3N0cnVjdCByZWdzOzxicj4mbmJz cDs8YnI+Jm5ic3A7IC8qIE9idGFpbiB0aGUgaW5zdHJ1Y3Rpb25zIGF0IHRoZSAmbHQ7YWRkciZn dDsuICovPGJyPkBAIC0xODIsOCArMTkzLDEyIEBAIHN0YXRpYyBpbnQgY29udGludWVfdW50aWwo cGlkX3QgY2hwaWQsIHZvaWQgKmFkZHIpIHs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAvKiBSZXN1bWUg Jmx0O2NocGlkJmd0OyB0cmFjZWUgdW50aWwgU0lHVFJBUCBvY2N1cnMuICovPGJyPiZuYnNwOyBw dHJhY2UoUFRSQUNFX0NPTlQsIGNocGlkLCAwLCAwKTs8YnI+LSAvKiBXYWl0ICZsdDtjaHBpZCZn dDsgdHJhY2VlIHNpZ25hbC1kZWxpdmVyeS1zdG9wLiAqLzxicj4tIHdhaXRwaWQoY2hwaWQsICZh bXA7d3N0YXR1cywgMCk7PGJyPis8YnI+KyAvKjxicj4rICogV2FpdCAmbHQ7Y2hwaWQmZ3Q7IHRy YWNlZSBzaWduYWwtZGVsaXZlcnktc3RvcCBhbmQgY2hlY2s8YnI+KyAqIHdoZXRoZXIgaXQncyBz dGlsbCBhbGl2ZSBhbmQganVzdCBzdG9wcGVkIHZpYSBTSUdUUkFQLjxicj4rICovPGJyPisgd2Fp dF9hbGl2ZShjaHBpZCk7PGJyPiZuYnNwOzxicj4mbmJzcDsgLyogT2J0YWluIEdQUiBzZXQgdG8g dHdlYWsgUklQIGZvciBmdXJ0aGVyIGV4ZWN1dGlvbi4gKi88YnI+Jm5ic3A7IHB0cmFjZShQVFJB Q0VfR0VUUkVHUywgY2hwaWQsIDAsICZhbXA7cmVncyk7PGJyPkBAIC0yMDEsOSArMjE2LDYgQEAg c3RhdGljIGludCBjb250aW51ZV91bnRpbChwaWRfdCBjaHBpZCwgdm9pZCAqYWRkcikgezxicj4m bmJzcDsgcmVncy5yaXAgLT0gc2l6ZW9mKElOVDMpOzxicj4mbmJzcDsgcHRyYWNlKFBUUkFDRV9T RVRSRUdTLCBjaHBpZCwgMCwgJmFtcDtyZWdzKTs8YnI+Jm5ic3A7IHB0cmFjZShQVFJBQ0VfUE9L RVRFWFQsIGNocGlkLCBhZGRyLCBkYXRhKTs8YnI+LTxicj4tIC8qIFJldHVybiB3YWl0IHN0YXR1 cyB0byB0aGUgY2FsbGVyIGZvciB0ZXN0IGNoZWNrcy4gKi88YnI+LSByZXR1cm4gd3N0YXR1czs8 YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5ic3A7c3RhdGljIGludCB0cmFjZXIocGlkX3QgY2hw aWQpIHs8YnI+QEAgLTIxMiwxOSArMjI0LDE5IEBAIHN0YXRpYyBpbnQgdHJhY2VyKHBpZF90IGNo cGlkKSB7PGJyPiZuYnNwOyAvKiBXYWl0IHVudGlsICZsdDtjaHBpZCZndDsgdHJhY2VlIGlzIHJl YWR5LiAqLzxicj4mbmJzcDsgd2FpdHBpZChjaHBpZCwgJmFtcDt3c3RhdHVzLCAwKTs8YnI+Jm5i c3A7PGJyPi0gLyogUmVzdW1lICZsdDtjaHBpZCZndDsgdHJhY2VlIHVudGlsICZsdDtsal9mZl90 b3N0cmluZyZndDsuICovPGJyPi0gd3N0YXR1cyA9IGNvbnRpbnVlX3VudGlsKGNocGlkLCBsal9m Zl90b3N0cmluZyk7PGJyPi08YnI+LSAvKiBUaGUgdHJhY2VlIGhhcyB0byBiZSBhbGl2ZSBhbmQg c3RvcHBlZCBieSBTSUdUUkFQLiAqLzxicj4tIGFzc2VydF9mYWxzZShXSUZFWElURUQod3N0YXR1 cykpOzxicj4tIGFzc2VydF90cnVlKFdJRlNUT1BQRUQod3N0YXR1cykpOzxicj4tPGJyPi0gLyog UmVzdW1lICZsdDtjaHBpZCZndDsgdHJhY2VlIHVudGlsICZsdDtsal9mZmZfcmVzMSZndDsuICov PGJyPi0gd3N0YXR1cyA9IGNvbnRpbnVlX3VudGlsKGNocGlkLCBsal9mZmZfcmVzMSk7PGJyPisg Lyo8YnI+KyAqIFJlc3VtZSAmbHQ7Y2hwaWQmZ3Q7IHRyYWNlZSB1bnRpbCAmbHQ7bGpfZmZfdG9z dHJpbmcmZ3Q7Ljxicj4rICogVGhlIHRyYWNlZSBpcyBhbGl2ZSBhbmQgc3RvcHBlZCBieSBTSUdU UkFQIGlmPGJyPisgKiAmbHQ7Y29udGludWVfdW50aWwmZ3Q7IHJldHVybnMuPGJyPisgKi88YnI+ KyBjb250aW51ZV91bnRpbChjaHBpZCwgbGpfZmZfdG9zdHJpbmcpOzxicj4mbmJzcDs8YnI+LSAv KiBUaGUgdHJhY2VlIGhhcyB0byBiZSBhbGl2ZSBhbmQgc3RvcHBlZCBieSBTSUdUUkFQLiAqLzxi cj4tIGFzc2VydF9mYWxzZShXSUZFWElURUQod3N0YXR1cykpOzxicj4tIGFzc2VydF90cnVlKFdJ RlNUT1BQRUQod3N0YXR1cykpOzxicj4rIC8qPGJyPisgKiBSZXN1bWUgJmx0O2NocGlkJmd0OyB0 cmFjZWUgdW50aWwgJmx0O2xqX2ZmZl9yZXMxJmd0Oy48YnI+KyAqIFRoZSB0cmFjZWUgaXMgYWxp dmUgYW5kIHN0b3BwZWQgYnkgU0lHVFJBUCBpZjxicj4rICogJmx0O2NvbnRpbnVlX3VudGlsJmd0 OyByZXR1cm5zLjxicj4rICovPGJyPisgY29udGludWVfdW50aWwoY2hwaWQsIGxqX2ZmZl9yZXMx KTs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAvKiBTZW5kIFNJR1BST0YgdG8gbWFrZSBzeXNwcm9mIGNv bGxlY3QgdGhlIGV2ZW50LiAqLzxicj4mbmJzcDsgcHRyYWNlKFBUUkFDRV9DT05ULCBjaHBpZCwg MCwgU0lHUFJPRik7PGJyPjxicj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PTxicj48YnI+Jmd0OyAm Z3Q7ICs8YnI+PGJyPiZsdDtzbmlwcGVkJmd0Ozxicj48YnI+LS08YnI+QmVzdCByZWdhcmRzLDxi cj5JTTwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48ZGl2PiZuYnNwOzwvZGl2 PjwvZGl2PjwvYmxvY2txdW90ZT48L0JPRFk+PC9IVE1MPgo= ----ALT--1994dD1177AadB2c9306E6e8831158Ca1701782597--