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 6B8286EFF1; Tue, 28 Jul 2026 22:52:30 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 6B8286EFF1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1785268350; bh=xwkJeYANOVblMp44krj64n4bTjcCFicaKpPxE1k8624=; 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=S9WjMiNfTKCWGd6sG9ReM1DyRO0sL+B8DqktyKVcvVJEbpow7zBDxSfUJpQEq7/J9 Md9V6VzO4ZdVf2WmOUck1Mo4MKGxYR6B1dUj4iZ7cdRmF7btMRUpVqf1hNbEgWTVCk e0Lw7Y29mP2tBgNWSUnLbreoMFxLSZOiie+i2xyk= Received: from send84.i.mail.ru (send84.i.mail.ru [89.221.237.179]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id DA4776EFF1 for ; Tue, 28 Jul 2026 22:52:28 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org DA4776EFF1 Received: by exim-f-7989bf9c75-c74q2 with local (envelope-from ) id 1wonqS-000000006GY-0Isv; Tue, 28 Jul 2026 22:52:28 +0300 Received: by e.mail.ru with HTTP; Tue, 28 Jul 2026 22:52:08 +0300 To: =?UTF-8?B?U2VyZ2V5IEthcGx1bg==?= MIME-Version: 1.0 X-Priority: 3 (Normal) X-Mailer: Mail.Ru Mailer 1.0 X-Senderfield-Remsg: 17847288581760086382 X-Senderfield-Remind: 0 Date: Tue, 28 Jul 2026 22:52:08 +0300 Message-Id: <1785268328.931937759@5.f.mail-release.rc.mrucl.ru> Content-Type: multipart/alternative; boundary="--ALT--c10931Bf35aA6939399baC5f89Ac5A931785268328" In-Reply-To: <20260722140036.3606677-1-skaplun@tarantool.org> References: <20260722140036.3606677-1-skaplun@tarantool.org> X-Mailru-Src: fe X-4EC0790: 10 X-7564579A: 646B95376F6C166E X-77F55803: 119C1F4DF6A9251C751999FB4FFA6863314B51047D678C9BC5C402798BD287638FD872164937FA4CEE948828562C3C703DE06ABAFEAF6705D248DD9B3005429613ED1D96AE13709E0A44A602C5B4A8CD X-7FA49CB5: 70AAF3C13DB70168C09775C1D3CA48CF78E4A477AD5BEBE5B2086D80B0504778CF19DD082D7633A0587C8798DFFB2F5764CD17681C2FEB7A176DF2183F8FC7C07D3D92443D23A869C4224003CC836476519853189F76E43EBFD28B28ED4578739E625A9149C048EE1E561CDFBCA1751F6CEA61CADDE926D9B287FD4696A6DC2FA8DF7F3B2552694A4E2F5AFA99E116B42401471946AA11AF176DF2183F8FC7C0AEA4A6B3AFC9B9578F08D7030A58E5ADC58D69EE07B14084F39EFFDF887939037866D6147AF826D834582D2FCFDE038DB82C348B68C3A58020C2C165C15DAFEECC7F00164DA146DAFE8445B8C89999728AA50765F7900637DCE3DBD6F8E38AFD389733CBF5DBD5E9C8A9BA7A39EFB766F5D81C698A659EA7CC7F00164DA146DA9985D098DBDEAEC8C2B5EEE3591E0D35F6B57BC7E6449061A352F6E88A58FB86F5D81C698A659EA7E827F84554CEF5019E625A9149C048EE9ECD01F8117BC8BEE2021AF6380DFAD18AA50765F790063735872C767BF85DA227C277FBC8AE2E8B80B9CEB5436E71E375ECD9A6C639B01B4E70A05D1297E1BBCB5012B2E24CD356 X-C1DE0DAB: 0D63561A33F958A57C7D89572C5316085002B1117B3ED69620C42F99D6E558BCCA7E60A991436CA2823CB91A9FED034534781492E4B8EEAD1A3F3A3731258CC5BDAD6C7F3747799A X-C8649E89: 1C3962B70DF3F0AD73CAD6646DEDE191543584D22441D852AB70F9BE574AE9C625B6776AC983F447FC0B9F89525902EE6F57B2FD27647F25E66C117BDB76D659AB732799DBF60EF7FD3C7E6FA94864A641FF77453D5C0470DE3BC4FD29C7AA30D6878996FE00515CB8341EE9D5BE9A0A52935A0C157E7B7B95BA61772F717785AF47F152A89477E36536EB022892E5344C41F94D744909CEEF9E35A692215F79327F81E6EEE0AEB67A0F9F91F029B6AF33F2C28C22F508233FCF178C6DD14203 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu53w8ahmwBjZKM/YPHZyZHvz5uv+WouB9+Od3uM/CLT152eL7j4ZacoUSF0MSa0v5VBmEtSutdC50BIKdL3VIRlkt/X9Gr7QWYXucPUinHATAeHXorM+S1NQOd7Dfgh+EySVKEHArapYnD0B57NeIZnts= X-Mailru-MI: 20000000010000000000400800 X-Mailru-Sender: 67F79B6D769303DDF42BF8E8391677BCFB5EC6A628DBC5733DE06ABAFEAF6705D248DD9B30054296986EE5CCFC2C05DB53795A90D59AB0669E2A4D2ACEEDC1CDFDD19BE592D491F27730E7C25FFAFF432A114EDA040D8818F01FF9DF31C397A372D6B4FCE48DF648AE208404248635DF X-Mras: Ok X-Spam: undefined Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_luajit=5D_test=3A_add_tes?= =?utf-8?q?ts_for_the_leb128_encode/decode?= 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: Evgeniy Temirgaleev via Tarantool-patches Reply-To: =?UTF-8?B?RXZnZW5peSBUZW1pcmdhbGVldg==?= Cc: tarantool-patches@dev.tarantool.org Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" ----ALT--c10931Bf35aA6939399baC5f89Ac5A931785268328 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 SGksIFNlcmdleSHCoFRoYW5rcyBmb3IgdGhlIHBhdGNoIQoKTEdUTQoKLS0KQmVzdCByZWdhcmRz LApFdmdlbml5IFRlbWlyZ2FsZWV2Cgo+IAo+IEZyb206IFNlcmdleSBLYXBsdW4gPHNrYXBsdW5A dGFyYW50b29sLm9yZz4KPiBUbzogU2VyZ2V5IEJyb25uaWtvdiA8c2VyZ2V5YkB0YXJhbnRvb2wu b3JnPiwgRXZnZW5peSBUZW1pcmdhbGVldiA8ZS50ZW1pcmdhbGVldkB0YXJhbnRvb2wub3JnCj4g Pgo+IENjOiB0YXJhbnRvb2wtcGF0Y2hlc0BkZXYudGFyYW50b29sLm9yZywgU2VyZ2V5IEthcGx1 biA8c2thcGx1bkB0YXJhbnRvb2wub3JnCj4gPgo+IERhdGU6IFdlZG5lc2RheSwgSnVseSAyMiwg MjAyNiA1OjAwIFBNICswMzowMAo+IFRoaXMgcGF0Y2ggaXMgYSBmb2xsb3ctdXAgdG8gdGhlIGNv bW1pdAo+IDcwNThlOTIxNWY4YTUwZDAwNzAxMzAyZWNiYjUxMDUwM2QyMTE0OGQgKCJ1dGlsczog aW50cm9kdWNlIGxlYjEyOAo+IHJlYWRlciBhbmQgd3JpdGVyIikuCj4gCj4gVGhlIGxlYjEyOCBl bmNvZGluZyBpcyB1c2VkIGluc2lkZSBvdXIgcHJvZmlsZXJzIChtZW1wcm9mL3N5c3Byb2YpLiBC dXQKPiB0aGVyZSBhcmUgbm8gdGVzdHMgZm9yIHRoaXMgbW9kdWxlLCBzbyBpdHMgY292ZXJhZ2Ug aXMgbG93LCBzaW5jZSBvbmx5Cj4gYGxqX3V0aWxzX3dyaXRlX3VsZWIxMjgoKWAgaXMgdXNlZC4g QWxzbywgdGhlcmUgaXMgbm8gY29ycmVjdG5lc3MgY2hlY2sKPiBmb3IgdGhpcyBpbXBsZW1lbnRh dGlvbi4KPiAKPiBUaGlzIHBhdGNoIGFkYXB0cyB0aGUgTHVhVmVsYSB0ZXN0cyBbMV0gdG8gY292 ZXIgdGhpcyBtb2R1bGUuIFNpbmNlIHRoZQo+IGluaXRpYWwgdmVyc2lvbiBvZiB0aGUgbW9kdWxl IHdhc24ndCBhZGFwdGVkIGFzIGlzLCB0aGUgZ3VhcmRlZCB2ZXJzaW9uCj4gb2YgdGhlIHJlYWRl ciBmdW5jdGlvbnMgaGFzIGRpZmZlcmVudCBiZWhhdmlvdXIgZm9yIHplcm8tc2l6ZWQgcmVxdWVz dGVkCj4gcmVhZHMuIEhlbmNlLCB0aGlzIGNhc2UgaXMgcmVtb3ZlZCBmb3Igbm93LiBUaGUgcmVh ZGVycyB3aXRoIGEgcmVxdWVzdGVkCj4gc2l6ZSBhcmUgdW51c2VkIGluIG91ciBjb2RlLCBzbyB0 aGlzIGlzIG5vdCBjcnVjaWFsIGF0IHRoZSBtb21lbnQuCj4gCj4gQWxzbywgdGhpcyBwYXRjaCBm aXhlcyB0aGUgVUJTYW4gd2FybmluZyBpbiB0aGUKPiBgbGpfdXRpbHNfd3JpdGVfbGViMTI4KClg IG9uIGNoZWNraW5nIHRoZSByZW1haW5pbmcgdmFsdWUgdG8gYmUgd3JpdHRlbgo+IGJ5IGZpeGlu ZyB0aGUgY2FzdCB0byB1aW50NjRfdC4KPiAKPiBbMV06IGh0dHBzOi8vZ2l0aHViLmNvbS9sdWF2 ZWxhL2x1YXZlbGEvYmxvYi8yODhlOGE5NTIxOGVkNDdkYWQ5MzAxNjI1OTUzMzQwNmUzMGIxMDli L3Rlc3RzL2ltcGwvdUpJVC10ZXN0cy1DL3N1aXRlL3Rlc3RfbGViMTI4LmMKPiAKPiAtLS0KPiAK PiBUaGUgbWFpbiBpZGVhIG9mIHRoZSBwYXRjaCBpcyB0byBpbmNyZWFzZSBjb3ZlcmFnZSBmb3Ig dGhlCj4gbGpfdXRpbHNfbGViMTI4LmMuIFRoZSBVQlNhbiAiYnVnIiAobm90IHJlYWxseSwgc2lu Y2UgdGhpcyBwYXJ0IGlzCj4gdW51c2VkLCBhbnl3YXkpIGlzIGZpeGVkIGFzIGEgc2lkZSBlZmZl Y3QuIFlvdSBtYXkgY29tcGFyZSB0aGUgY292ZXJhZ2UKPiBiZXR3ZWVuIG1hc3RlciBbMV0gYW5k IHRoaXMgYnJhbmNoIFsyXSB3aXRoIGNvdmVyYWxscy4KPiAKPiBCcmFuY2g6IGh0dHBzOi8vZ2l0 aHViLmNvbS90YXJhbnRvb2wvbHVhaml0L3RyZWUvc2thcGx1bi9naC1ub3RpY2tldC1sZWIxMjgt dGVzdHNpbmcKPiAKPiAKPiBbMV06IGh0dHBzOi8vY292ZXJhbGxzLmlvL2J1aWxkcy84MDM5NDE0 MC9zb3VyY2U/ZmlsZW5hbWU9c3JjJTJGbGpfdXRpbHNfbGViMTI4LmMKPiAKPiBbMl06IGh0dHBz Oi8vY292ZXJhbGxzLmlvL2J1aWxkcy84MDcyODA1My9zb3VyY2U/ZmlsZW5hbWU9c3JjJTJGbGpf dXRpbHNfbGViMTI4LmMKPiAKPiAKPiBzcmMvbGpfdXRpbHNfbGViMTI4LmMgfCAyICstCj4gdGVz dC90YXJhbnRvb2wtYy10ZXN0cy91bml0LWxlYjEyOC50ZXN0LmMgfCAzNjYgKysrKysrKysrKysr KysrKysrKysrKwo+IDIgZmlsZXMgY2hhbmdlZCwgMzY3IGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKPiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC90YXJhbnRvb2wtYy10ZXN0cy91bml0LWxl YjEyOC50ZXN0LmMKPiAKPiBkaWZmIC0tZ2l0IGEvc3JjL2xqX3V0aWxzX2xlYjEyOC5jIGIvc3Jj L2xqX3V0aWxzX2xlYjEyOC5jCj4gaW5kZXggZDY2OTYxZGEuLjVhZDJiZDNjIDEwMDY0NAo+IC0t LSBhL3NyYy9sal91dGlsc19sZWIxMjguYwo+ICsrKyBiL3NyYy9sal91dGlsc19sZWIxMjguYwo+ IEBAIC0xMDUsNyArMTA1LDcgQEAgc2l6ZV90IExKX0ZBU1RDQUxMIGxqX3V0aWxzX3dyaXRlX2xl YjEyOCh1aW50OF90Cj4gKmJ1ZmZlciwgaW50NjRfdCB2YWx1ZSkKPiBzaXplX3QgaSA9IDA7Cj4g Cj4gLyogTEVCX1NJR05fQklUIHByb3BhZ2F0aW9uIHRvIGNoZWNrIHRoZSByZW1haW5pbmcgdmFs dWUuICovCj4gLSB3aGlsZSAoKHVpbnQ2NF90KSh2YWx1ZSArIExFQl9TSUdOX0JJVCkgPj0gTUlO X1RXT0JZVEVfVkFMVUUpIHsKPiArIHdoaWxlICgodWludDY0X3QpdmFsdWUgKyBMRUJfU0lHTl9C SVQgPj0gTUlOX1RXT0JZVEVfVkFMVUUpIHsKPiBidWZmZXJbaSsrXSA9ICh1aW50OF90KSgodmFs dWUgJiBQQVlMT0FEX01BU0spIHwgTElOS19CSVQpOwo+IHZhbHVlID4+PSBTSElGVF9TVEVQOwo+ IH0KPiBkaWZmIC0tZ2l0IGEvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy91bml0LWxlYjEyOC50ZXN0 LmMKPiBiL3Rlc3QvdGFyYW50b29sLWMtdGVzdHMvdW5pdC1sZWIxMjgudGVzdC5jCj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMC4uMTQyNDc2ZmIKPiAtLS0gL2Rldi9udWxs Cj4gKysrIGIvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy91bml0LWxlYjEyOC50ZXN0LmMKPiBAQCAt MCwwICsxLDM2NiBAQAo+ICsvKgo+ICsqKiBUZXN0aW5nIG9mIExFQjEyOC9VTEVCMTI4IGVuY29k aW5nLgo+ICsqKgo+ICsqKiBNYWpvciBwb3J0aW9ucyB0YWtlbiB2ZXJiYXRpbSBvciBhZGFwdGVk IGZyb20gdGhlIEx1YVZlbGEuCj4gKyoqIENvcHlyaWdodCAoQykgMjAyMC0yMDI2IEx1YVZlbGEg QXV0aG9ycy4KPiArKiogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjAgSVBPTldFQiBMdGQuCj4gKyov Cj4gKwo+ICsjaW5jbHVkZSA8c3RkaW50Lmg+Cj4gKyNpbmNsdWRlIDxzdHJpbmcuaD4KPiArCj4g KyNpbmNsdWRlICJ0ZXN0LmgiCj4gKwo+ICsjaW5jbHVkZSAibGpfdXRpbHMuaCIKPiArCj4gKyNk ZWZpbmUgQlVGRkVSX1NJWkUgMTYKPiArCj4gK3N0YXRpYyBpbnQgdGVzdF93cml0ZV91bGViMTI4 KHZvaWQgKnN0YXRlKQo+ICt7Cj4gKyBzaXplX3QgYnl0ZXNfd3JpdHRlbiA9IDA7Cj4gKyB1aW50 OF90IGJ1ZmZlcltCVUZGRVJfU0laRV0gPSB7MH07Cj4gKwo+ICsgVU5VU0VEKHN0YXRlKTsKPiAr Cj4gKyBieXRlc193cml0dGVuID0gbGpfdXRpbHNfd3JpdGVfdWxlYjEyOChidWZmZXIsIDApOwo+ ICsgYXNzZXJ0X3RydWUoYnl0ZXNfd3JpdHRlbiA9PSAxKTsKPiArIGFzc2VydF90cnVlKGJ1ZmZl clswXSA9PSAweDApOwo+ICsKPiArIGJ5dGVzX3dyaXR0ZW4gPSBsal91dGlsc193cml0ZV91bGVi MTI4KGJ1ZmZlciwgNjQpOwo+ICsgYXNzZXJ0X3RydWUoYnl0ZXNfd3JpdHRlbiA9PSAxKTsKPiAr IGFzc2VydF90cnVlKGJ1ZmZlclswXSA9PSAweDQwKTsKPiArCj4gKyBieXRlc193cml0dGVuID0g bGpfdXRpbHNfd3JpdGVfdWxlYjEyOChidWZmZXIsIDEyOCk7Cj4gKyBhc3NlcnRfdHJ1ZShieXRl c193cml0dGVuID09IDIpOwo+ICsgYXNzZXJ0X3RydWUoYnVmZmVyWzBdID09IDB4ODAgJiYgYnVm ZmVyWzFdID09IDB4MDEpOwo+ICsKPiArIGJ5dGVzX3dyaXR0ZW4gPSBsal91dGlsc193cml0ZV91 bGViMTI4KGJ1ZmZlciwgVUlOVDY0X01BWCk7Cj4gKyBhc3NlcnRfdHJ1ZShieXRlc193cml0dGVu ID09IDEwKTsKPiArIGFzc2VydF90cnVlKGJ1ZmZlclswXSA9PSAweGZmICYmIGJ1ZmZlclsxXSA9 PSAweGZmICYmCj4gKyBidWZmZXJbMl0gPT0gMHhmZiAmJiBidWZmZXJbM10gPT0gMHhmZiAmJgo+ ICsgYnVmZmVyWzRdID09IDB4ZmYgJiYgYnVmZmVyWzVdID09IDB4ZmYgJiYKPiArIGJ1ZmZlcls2 XSA9PSAweGZmICYmIGJ1ZmZlcls3XSA9PSAweGZmICYmCj4gKyBidWZmZXJbOF0gPT0gMHhmZiAm JiBidWZmZXJbOV0gPT0gMHgwMSk7Cj4gKwo+ICsgcmV0dXJuIFRFU1RfRVhJVF9TVUNDRVNTOwo+ ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHRlc3Rfd3JpdGVfbGViMTI4KHZvaWQgKnN0YXRlKQo+ICt7 Cj4gKyBzaXplX3QgYnl0ZXNfd3JpdHRlbiA9IDA7Cj4gKyB1aW50OF90IGJ1ZmZlcltCVUZGRVJf U0laRV0gPSB7MH07Cj4gKwo+ICsgVU5VU0VEKHN0YXRlKTsKPiArCj4gKyBieXRlc193cml0dGVu ID0gbGpfdXRpbHNfd3JpdGVfbGViMTI4KGJ1ZmZlciwgMCk7Cj4gKyBhc3NlcnRfdHJ1ZShieXRl c193cml0dGVuID09IDEpOwo+ICsgYXNzZXJ0X3RydWUoYnVmZmVyWzBdID09IDB4MCk7Cj4gKwo+ ICsgYnl0ZXNfd3JpdHRlbiA9IGxqX3V0aWxzX3dyaXRlX2xlYjEyOChidWZmZXIsIC02MjQ0ODUp Owo+ICsgYXNzZXJ0X3RydWUoYnl0ZXNfd3JpdHRlbiA9PSAzKTsKPiArIGFzc2VydF90cnVlKGJ1 ZmZlclswXSA9PSAweDliICYmIGJ1ZmZlclsxXSA9PSAweGYxICYmCj4gKyBidWZmZXJbMl0gPT0g MHg1OSk7Cj4gKwo+ICsgYnl0ZXNfd3JpdHRlbiA9IGxqX3V0aWxzX3dyaXRlX2xlYjEyOChidWZm ZXIsIElOVDY0X01JTik7Cj4gKyBhc3NlcnRfdHJ1ZShieXRlc193cml0dGVuID09IDEwKTsKPiAr IGFzc2VydF90cnVlKGJ1ZmZlclswXSA9PSAweDgwICYmIGJ1ZmZlclsxXSA9PSAweDgwICYmCj4g KyBidWZmZXJbMl0gPT0gMHg4MCAmJiBidWZmZXJbM10gPT0gMHg4MCAmJgo+ICsgYnVmZmVyWzRd ID09IDB4ODAgJiYgYnVmZmVyWzVdID09IDB4ODAgJiYKPiArIGJ1ZmZlcls2XSA9PSAweDgwICYm IGJ1ZmZlcls3XSA9PSAweDgwICYmCj4gKyBidWZmZXJbOF0gPT0gMHg4MCAmJiBidWZmZXJbOV0g PT0gMHg3Zik7Cj4gKwo+ICsgYnl0ZXNfd3JpdHRlbiA9IGxqX3V0aWxzX3dyaXRlX2xlYjEyOChi dWZmZXIsIElOVDY0X01BWCk7Cj4gKyBhc3NlcnRfdHJ1ZShieXRlc193cml0dGVuID09IDEwKTsK PiArIGFzc2VydF90cnVlKGJ1ZmZlclswXSA9PSAweGZmICYmIGJ1ZmZlclsxXSA9PSAweGZmICYm Cj4gKyBidWZmZXJbMl0gPT0gMHhmZiAmJiBidWZmZXJbM10gPT0gMHhmZiAmJgo+ICsgYnVmZmVy WzRdID09IDB4ZmYgJiYgYnVmZmVyWzVdID09IDB4ZmYgJiYKPiArIGJ1ZmZlcls2XSA9PSAweGZm ICYmIGJ1ZmZlcls3XSA9PSAweGZmICYmCj4gKyBidWZmZXJbOF0gPT0gMHhmZiAmJiBidWZmZXJb OV0gPT0gMHgwMCk7Cj4gKwo+ICsgcmV0dXJuIFRFU1RfRVhJVF9TVUNDRVNTOwo+ICt9Cj4gKwo+ ICsvKiBUZXN0IG1pc2NlbGxhbmVvdXMgd3JpdGVzLCBib3RoIHNpZ25lZCBhbmQgdW5zaWduZWQu ICovCj4gK3N0YXRpYyBpbnQgdGVzdF9taXNjX3dyaXRlcyh2b2lkICpzdGF0ZSkKPiArewo+ICsg c2l6ZV90IGJ5dGVzX3dyaXR0ZW4gPSAwOwo+ICsgdWludDhfdCBidWZmZXJbQlVGRkVSX1NJWkVd ID0gezB9Owo+ICsKPiArIFVOVVNFRChzdGF0ZSk7Cj4gKwo+ICsgYnl0ZXNfd3JpdHRlbiA9IGxq X3V0aWxzX3dyaXRlX2xlYjEyOChidWZmZXIsIDB4MTApOwo+ICsgYXNzZXJ0X3RydWUoYnl0ZXNf d3JpdHRlbiA9PSAxKTsKPiArIGFzc2VydF90cnVlKGJ1ZmZlclswXSA9PSAweDEwKTsKPiArCj4g KyBieXRlc193cml0dGVuID0gbGpfdXRpbHNfd3JpdGVfdWxlYjEyOChidWZmZXIsIDB4MTApOwo+ ICsgYXNzZXJ0X3RydWUoYnl0ZXNfd3JpdHRlbiA9PSAxKTsKPiArIGFzc2VydF90cnVlKGJ1ZmZl clswXSA9PSAweDEwKTsKPiArCj4gKyBieXRlc193cml0dGVuID0gbGpfdXRpbHNfd3JpdGVfbGVi MTI4KGJ1ZmZlciwgLTB4M2IpOwo+ICsgYXNzZXJ0X3RydWUoYnl0ZXNfd3JpdHRlbiA9PSAxKTsK PiArIGFzc2VydF90cnVlKGJ1ZmZlclswXSA9PSAweDQ1KTsKPiArCj4gKyBieXRlc193cml0dGVu ID0gbGpfdXRpbHNfd3JpdGVfdWxlYjEyOChidWZmZXIsIDB4NDUpOwo+ICsgYXNzZXJ0X3RydWUo Ynl0ZXNfd3JpdHRlbiA9PSAxKTsKPiArIGFzc2VydF90cnVlKGJ1ZmZlclswXSA9PSAweDQ1KTsK PiArCj4gKyBieXRlc193cml0dGVuID0gbGpfdXRpbHNfd3JpdGVfbGViMTI4KGJ1ZmZlciwgMHgx OTBlKTsKPiArIGFzc2VydF90cnVlKGJ5dGVzX3dyaXR0ZW4gPT0gMik7Cj4gKyBhc3NlcnRfdHJ1 ZShidWZmZXJbMF0gPT0gMHg4ZSAmJiBidWZmZXJbMV0gPT0gMHgzMik7Cj4gKwo+ICsgYnl0ZXNf d3JpdHRlbiA9IGxqX3V0aWxzX3dyaXRlX3VsZWIxMjgoYnVmZmVyLCAweDE5MGUpOwo+ICsgYXNz ZXJ0X3RydWUoYnl0ZXNfd3JpdHRlbiA9PSAyKTsKPiArIGFzc2VydF90cnVlKGJ1ZmZlclswXSA9 PSAweDhlICYmIGJ1ZmZlclsxXSA9PSAweDMyKTsKPiArCj4gKyBieXRlc193cml0dGVuID0gbGpf dXRpbHNfd3JpdGVfbGViMTI4KGJ1ZmZlciwgLTB4MTQzZik7Cj4gKyBhc3NlcnRfdHJ1ZShieXRl c193cml0dGVuID09IDIpOwo+ICsgYXNzZXJ0X3RydWUoYnVmZmVyWzBdID09IDB4YzEgJiYgYnVm ZmVyWzFdID09IDB4NTcpOwo+ICsKPiArIGJ5dGVzX3dyaXR0ZW4gPSBsal91dGlsc193cml0ZV91 bGViMTI4KGJ1ZmZlciwgMHgyYmMxKTsKPiArIGFzc2VydF90cnVlKGJ5dGVzX3dyaXR0ZW4gPT0g Mik7Cj4gKyBhc3NlcnRfdHJ1ZShidWZmZXJbMF0gPT0gMHhjMSAmJiBidWZmZXJbMV0gPT0gMHg1 Nyk7Cj4gKwo+ICsgYnl0ZXNfd3JpdHRlbiA9IGxqX3V0aWxzX3dyaXRlX2xlYjEyOChidWZmZXIs IDB4N2UwMDAwMCk7Cj4gKyBhc3NlcnRfdHJ1ZShieXRlc193cml0dGVuID09IDQpOwo+ICsgYXNz ZXJ0X3RydWUoYnVmZmVyWzBdID09IDB4ODAgJiYgYnVmZmVyWzFdID09IDB4ODAgJiYKPiArIGJ1 ZmZlclsyXSA9PSAweDgwICYmIGJ1ZmZlclszXSA9PSAweDNmKTsKPiArCj4gKyBieXRlc193cml0 dGVuID0gbGpfdXRpbHNfd3JpdGVfdWxlYjEyOChidWZmZXIsIDB4N2UwMDAwMCk7Cj4gKyBhc3Nl cnRfdHJ1ZShieXRlc193cml0dGVuID09IDQpOwo+ICsgYXNzZXJ0X3RydWUoYnVmZmVyWzBdID09 IDB4ODAgJiYgYnVmZmVyWzFdID09IDB4ODAgJiYKPiArIGJ1ZmZlclsyXSA9PSAweDgwICYmIGJ1 ZmZlclszXSA9PSAweDNmKTsKPiArCj4gKyBieXRlc193cml0dGVuID0gbGpfdXRpbHNfd3JpdGVf bGViMTI4KGJ1ZmZlciwgLTB4NjIwMDAwMCk7Cj4gKyBhc3NlcnRfdHJ1ZShieXRlc193cml0dGVu ID09IDQpOwo+ICsgYXNzZXJ0X3RydWUoYnVmZmVyWzBdID09IDB4ODAgJiYgYnVmZmVyWzFdID09 IDB4ODAgJiYKPiArIGJ1ZmZlclsyXSA9PSAweDgwICYmIGJ1ZmZlclszXSA9PSAweDRmKTsKPiAr Cj4gKyBieXRlc193cml0dGVuID0gbGpfdXRpbHNfd3JpdGVfdWxlYjEyOChidWZmZXIsIDB4OWUw MDAwMCk7Cj4gKyBhc3NlcnRfdHJ1ZShieXRlc193cml0dGVuID09IDQpOwo+ICsgYXNzZXJ0X3Ry dWUoYnVmZmVyWzBdID09IDB4ODAgJiYgYnVmZmVyWzFdID09IDB4ODAgJiYKPiArIGJ1ZmZlclsy XSA9PSAweDgwICYmIGJ1ZmZlclszXSA9PSAweDRmKTsKPiArCj4gKyByZXR1cm4gVEVTVF9FWElU X1NVQ0NFU1M7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgdGVzdF9yZWFkX3VsZWIxMjgodm9pZCAq c3RhdGUpCj4gK3sKPiArIHVpbnQ2NF90IHZhbHVlID0gMDsKPiArIHNpemVfdCBieXRlc19yZWFk ID0gMDsKPiArIHVpbnQ4X3QgYnVmZmVyW0JVRkZFUl9TSVpFXSA9IHswfTsKPiArCj4gKyBVTlVT RUQoc3RhdGUpOwo+ICsKPiArIGJ5dGVzX3JlYWQgPSBsal91dGlsc19yZWFkX3VsZWIxMjgoJnZh bHVlLCBidWZmZXIpOwo+ICsgYXNzZXJ0X3RydWUoYnl0ZXNfcmVhZCA9PSAxKTsKPiArIGFzc2Vy dF90cnVlKHZhbHVlID09IDApOwo+ICsKPiArIGJ1ZmZlclswXSA9IDB4NDA7Cj4gKyBieXRlc19y ZWFkID0gbGpfdXRpbHNfcmVhZF91bGViMTI4KCZ2YWx1ZSwgYnVmZmVyKTsKPiArIGFzc2VydF90 cnVlKGJ5dGVzX3JlYWQgPT0gMSk7Cj4gKyBhc3NlcnRfdHJ1ZSh2YWx1ZSA9PSA2NCk7Cj4gKwo+ ICsgYnVmZmVyWzBdID0gMHg4MDsKPiArIGJ1ZmZlclsxXSA9IDB4MDE7Cj4gKyBieXRlc19yZWFk ID0gbGpfdXRpbHNfcmVhZF91bGViMTI4KCZ2YWx1ZSwgYnVmZmVyKTsKPiArIGFzc2VydF90cnVl KGJ5dGVzX3JlYWQgPT0gMik7Cj4gKyBhc3NlcnRfdHJ1ZSh2YWx1ZSA9PSAxMjgpOwo+ICsKPiAr IG1lbXNldChidWZmZXIsIDB4ZmYsIDkpOwo+ICsgYnVmZmVyWzldID0gMHgwMTsKPiArIGJ5dGVz X3JlYWQgPSBsal91dGlsc19yZWFkX3VsZWIxMjgoJnZhbHVlLCBidWZmZXIpOwo+ICsgYXNzZXJ0 X3RydWUoYnl0ZXNfcmVhZCA9PSAxMCk7Cj4gKyBhc3NlcnRfdHJ1ZSh2YWx1ZSA9PSBVSU5UNjRf TUFYKTsKPiArCj4gKyByZXR1cm4gVEVTVF9FWElUX1NVQ0NFU1M7Cj4gK30KPiArCj4gK3N0YXRp YyBpbnQgdGVzdF9yZWFkX2xlYjEyOCh2b2lkICpzdGF0ZSkKPiArewo+ICsgaW50NjRfdCB2YWx1 ZSA9IDA7Cj4gKyBzaXplX3QgYnl0ZXNfcmVhZCA9IDA7Cj4gKyB1aW50OF90IGJ1ZmZlcltCVUZG RVJfU0laRV0gPSB7MH07Cj4gKwo+ICsgVU5VU0VEKHN0YXRlKTsKPiArCj4gKyBieXRlc19yZWFk ID0gbGpfdXRpbHNfcmVhZF9sZWIxMjgoJnZhbHVlLCBidWZmZXIpOwo+ICsgYXNzZXJ0X3RydWUo Ynl0ZXNfcmVhZCA9PSAxKTsKPiArIGFzc2VydF90cnVlKHZhbHVlID09IDApOwo+ICsKPiArIGJ1 ZmZlclswXSA9IDB4OWI7Cj4gKyBidWZmZXJbMV0gPSAweGYxOwo+ICsgYnVmZmVyWzJdID0gMHg1 OTsKPiArIGJ5dGVzX3JlYWQgPSBsal91dGlsc19yZWFkX2xlYjEyOCgmdmFsdWUsIGJ1ZmZlcik7 Cj4gKyBhc3NlcnRfdHJ1ZShieXRlc19yZWFkID09IDMpOwo+ICsgYXNzZXJ0X3RydWUodmFsdWUg PT0gKGludDY0X3QpLTYyNDQ4NSk7Cj4gKwo+ICsgbWVtc2V0KGJ1ZmZlciwgMHg4MCwgOSk7Cj4g KyBidWZmZXJbOV0gPSAweDdmOwo+ICsgYnl0ZXNfcmVhZCA9IGxqX3V0aWxzX3JlYWRfbGViMTI4 KCZ2YWx1ZSwgYnVmZmVyKTsKPiArIGFzc2VydF90cnVlKGJ5dGVzX3JlYWQgPT0gMTApOwo+ICsg YXNzZXJ0X3RydWUodmFsdWUgPT0gSU5UNjRfTUlOKTsKPiArCj4gKyBtZW1zZXQoYnVmZmVyLCAw eGZmLCA5KTsKPiArIGJ1ZmZlcls5XSA9IDB4MDA7Cj4gKyBieXRlc19yZWFkID0gbGpfdXRpbHNf cmVhZF9sZWIxMjgoJnZhbHVlLCBidWZmZXIpOwo+ICsgYXNzZXJ0X3RydWUoYnl0ZXNfcmVhZCA9 PSAxMCk7Cj4gKyBhc3NlcnRfdHJ1ZSh2YWx1ZSA9PSBJTlQ2NF9NQVgpOwo+ICsKPiArIHJldHVy biBURVNUX0VYSVRfU1VDQ0VTUzsKPiArfQo+ICsKPiArLyogVGVzdCBtaXNjZWxsYW5lb3VzIHJl YWRzLCBib3RoIHNpZ25lZCBhbmQgdW5zaWduZWQuICovCj4gK3N0YXRpYyBpbnQgdGVzdF9taXNj X3JlYWRzKHZvaWQgKnN0YXRlKQo+ICt7Cj4gKyBpbnQ2NF90IGlfdmFsdWUgPSAwOwo+ICsgdWlu dDY0X3QgdV92YWx1ZSA9IDA7Cj4gKwo+ICsgc2l6ZV90IGJ5dGVzX3JlYWQgPSAwOwo+ICsgdWlu dDhfdCBidWZmZXJbQlVGRkVSX1NJWkVdID0gezB9Owo+ICsKPiArIFVOVVNFRChzdGF0ZSk7Cj4g Kwo+ICsgYnVmZmVyWzBdID0gMHgxMDsKPiArCj4gKyBieXRlc19yZWFkID0gbGpfdXRpbHNfcmVh ZF9sZWIxMjgoJmlfdmFsdWUsIGJ1ZmZlcik7Cj4gKyBhc3NlcnRfdHJ1ZShieXRlc19yZWFkID09 IDEpOwo+ICsgYXNzZXJ0X3RydWUoaV92YWx1ZSA9PSAoaW50NjRfdCkweDEwKTsKPiArCj4gKyBi eXRlc19yZWFkID0gbGpfdXRpbHNfcmVhZF91bGViMTI4KCZ1X3ZhbHVlLCBidWZmZXIpOwo+ICsg YXNzZXJ0X3RydWUoYnl0ZXNfcmVhZCA9PSAxKTsKPiArIGFzc2VydF90cnVlKHVfdmFsdWUgPT0g KHVpbnQ2NF90KTB4MTApOwo+ICsKPiArIGJ1ZmZlclswXSA9IDB4NDU7Cj4gKwo+ICsgYnl0ZXNf cmVhZCA9IGxqX3V0aWxzX3JlYWRfbGViMTI4KCZpX3ZhbHVlLCBidWZmZXIpOwo+ICsgYXNzZXJ0 X3RydWUoYnl0ZXNfcmVhZCA9PSAxKTsKPiArIGFzc2VydF90cnVlKGlfdmFsdWUgPT0gKGludDY0 X3QpLTB4M2IpOwo+ICsKPiArIGJ5dGVzX3JlYWQgPSBsal91dGlsc19yZWFkX3VsZWIxMjgoJnVf dmFsdWUsIGJ1ZmZlcik7Cj4gKyBhc3NlcnRfdHJ1ZShieXRlc19yZWFkID09IDEpOwo+ICsgYXNz ZXJ0X3RydWUodV92YWx1ZSA9PSAodWludDY0X3QpMHg0NSk7Cj4gKwo+ICsgYnVmZmVyWzBdID0g MHg4ZTsKPiArIGJ1ZmZlclsxXSA9IDB4MzI7Cj4gKwo+ICsgYnl0ZXNfcmVhZCA9IGxqX3V0aWxz X3JlYWRfbGViMTI4KCZpX3ZhbHVlLCBidWZmZXIpOwo+ICsgYXNzZXJ0X3RydWUoYnl0ZXNfcmVh ZCA9PSAyKTsKPiArIGFzc2VydF90cnVlKGlfdmFsdWUgPT0gKGludDY0X3QpMHgxOTBlKTsKPiAr Cj4gKyBieXRlc19yZWFkID0gbGpfdXRpbHNfcmVhZF91bGViMTI4KCZ1X3ZhbHVlLCBidWZmZXIp Owo+ICsgYXNzZXJ0X3RydWUoYnl0ZXNfcmVhZCA9PSAyKTsKPiArIGFzc2VydF90cnVlKHVfdmFs dWUgPT0gKHVpbnQ2NF90KTB4MTkwZSk7Cj4gKwo+ICsgYnVmZmVyWzBdID0gMHhjMTsKPiArIGJ1 ZmZlclsxXSA9IDB4NTc7Cj4gKwo+ICsgYnl0ZXNfcmVhZCA9IGxqX3V0aWxzX3JlYWRfbGViMTI4 KCZpX3ZhbHVlLCBidWZmZXIpOwo+ICsgYXNzZXJ0X3RydWUoYnl0ZXNfcmVhZCA9PSAyKTsKPiAr IGFzc2VydF90cnVlKGlfdmFsdWUgPT0gKGludDY0X3QpLTB4MTQzZik7Cj4gKwo+ICsgYnl0ZXNf cmVhZCA9IGxqX3V0aWxzX3JlYWRfdWxlYjEyOCgmdV92YWx1ZSwgYnVmZmVyKTsKPiArIGFzc2Vy dF90cnVlKGJ5dGVzX3JlYWQgPT0gMik7Cj4gKyBhc3NlcnRfdHJ1ZSh1X3ZhbHVlID09ICh1aW50 NjRfdCkweDJiYzEpOwo+ICsKPiArIGJ1ZmZlclswXSA9IDB4YzE7Cj4gKyBidWZmZXJbMV0gPSAw eDU3Owo+ICsKPiArIGJ5dGVzX3JlYWQgPSBsal91dGlsc19yZWFkX2xlYjEyOCgmaV92YWx1ZSwg YnVmZmVyKTsKPiArIGFzc2VydF90cnVlKGJ5dGVzX3JlYWQgPT0gMik7Cj4gKyBhc3NlcnRfdHJ1 ZShpX3ZhbHVlID09IChpbnQ2NF90KS0weDE0M2YpOwo+ICsKPiArIGJ5dGVzX3JlYWQgPSBsal91 dGlsc19yZWFkX3VsZWIxMjgoJnVfdmFsdWUsIGJ1ZmZlcik7Cj4gKyBhc3NlcnRfdHJ1ZShieXRl c19yZWFkID09IDIpOwo+ICsgYXNzZXJ0X3RydWUodV92YWx1ZSA9PSAodWludDY0X3QpMHgyYmMx KTsKPiArCj4gKyBidWZmZXJbMF0gPSAweDgwOwo+ICsgYnVmZmVyWzFdID0gMHg4MDsKPiArIGJ1 ZmZlclsyXSA9IDB4ODA7Cj4gKyBidWZmZXJbM10gPSAweDNmOwo+ICsKPiArIGJ5dGVzX3JlYWQg PSBsal91dGlsc19yZWFkX2xlYjEyOCgmaV92YWx1ZSwgYnVmZmVyKTsKPiArIGFzc2VydF90cnVl KGJ5dGVzX3JlYWQgPT0gNCk7Cj4gKyBhc3NlcnRfdHJ1ZShpX3ZhbHVlID09IChpbnQ2NF90KTB4 N2UwMDAwMCk7Cj4gKwo+ICsgYnl0ZXNfcmVhZCA9IGxqX3V0aWxzX3JlYWRfdWxlYjEyOCgmdV92 YWx1ZSwgYnVmZmVyKTsKPiArIGFzc2VydF90cnVlKGJ5dGVzX3JlYWQgPT0gNCk7Cj4gKyBhc3Nl cnRfdHJ1ZSh1X3ZhbHVlID09ICh1aW50NjRfdCkweDdlMDAwMDApOwo+ICsKPiArIGJ1ZmZlclsw XSA9IDB4ODA7Cj4gKyBidWZmZXJbMV0gPSAweDgwOwo+ICsgYnVmZmVyWzJdID0gMHg4MDsKPiAr IGJ1ZmZlclszXSA9IDB4NGY7Cj4gKwo+ICsgYnl0ZXNfcmVhZCA9IGxqX3V0aWxzX3JlYWRfbGVi MTI4KCZpX3ZhbHVlLCBidWZmZXIpOwo+ICsgYXNzZXJ0X3RydWUoYnl0ZXNfcmVhZCA9PSA0KTsK PiArIGFzc2VydF90cnVlKGlfdmFsdWUgPT0gKGludDY0X3QpLTB4NjIwMDAwMCk7Cj4gKwo+ICsg Ynl0ZXNfcmVhZCA9IGxqX3V0aWxzX3JlYWRfdWxlYjEyOCgmdV92YWx1ZSwgYnVmZmVyKTsKPiAr IGFzc2VydF90cnVlKGJ5dGVzX3JlYWQgPT0gNCk7Cj4gKyBhc3NlcnRfdHJ1ZSh1X3ZhbHVlID09 ICh1aW50NjRfdCkweDllMDAwMDApOwo+ICsKPiArIHJldHVybiBURVNUX0VYSVRfU1VDQ0VTUzsK PiArfQo+ICsKPiArc3RhdGljIGludCB0ZXN0X3JlYWRfbih2b2lkICpzdGF0ZSkKPiArewo+ICsg aW50NjRfdCBpX3ZhbHVlID0gMDsKPiArIHVpbnQ2NF90IHVfdmFsdWUgPSAwOwo+ICsKPiArIHNp emVfdCBieXRlc19yZWFkID0gMDsKPiArIHVpbnQ4X3QgYnVmZmVyW0JVRkZFUl9TSVpFXSA9IHsw fTsKPiArCj4gKyBVTlVTRUQoc3RhdGUpOwo+ICsKPiArIGJ5dGVzX3JlYWQgPSBsal91dGlsc19y ZWFkX2xlYjEyOF9uKCZpX3ZhbHVlLCBidWZmZXIsIDEpOwo+ICsgYXNzZXJ0X3RydWUoYnl0ZXNf cmVhZCA9PSAxKTsKPiArIGFzc2VydF90cnVlKGlfdmFsdWUgPT0gMCk7Cj4gKwo+ICsgYnl0ZXNf cmVhZCA9IGxqX3V0aWxzX3JlYWRfdWxlYjEyOF9uKCZ1X3ZhbHVlLCBidWZmZXIsIDEpOwo+ICsg YXNzZXJ0X3RydWUoYnl0ZXNfcmVhZCA9PSAxKTsKPiArIGFzc2VydF90cnVlKHVfdmFsdWUgPT0g MCk7Cj4gKwo+ICsgYnVmZmVyWzBdID0gMHg4MDsKPiArIGJ1ZmZlclsxXSA9IDB4ODA7Cj4gKyBi dWZmZXJbMl0gPSAweDgwOwo+ICsgYnVmZmVyWzNdID0gMHgzZjsKPiArCj4gKyBhc3NlcnRfdHJ1 ZShsal91dGlsc19yZWFkX2xlYjEyOF9uKCZpX3ZhbHVlLCBidWZmZXIsIDMpID09IDApOwo+ICsg YXNzZXJ0X3RydWUobGpfdXRpbHNfcmVhZF91bGViMTI4X24oJnVfdmFsdWUsIGJ1ZmZlciwgMykg PT0gMCk7Cj4gKyAvKiBWYWx1ZXMgYXJlIHVudG91Y2hlZCBpbiBjYXNlIG9mIGZhaWx1cmUuICov Cj4gKyBhc3NlcnRfdHJ1ZShpX3ZhbHVlID09IDApOwo+ICsgYXNzZXJ0X3RydWUodV92YWx1ZSA9 PSAwKTsKPiArCj4gKyBieXRlc19yZWFkID0gbGpfdXRpbHNfcmVhZF9sZWIxMjhfbigmaV92YWx1 ZSwgYnVmZmVyLCA0KTsKPiArIGFzc2VydF90cnVlKGJ5dGVzX3JlYWQgPT0gNCk7Cj4gKyBhc3Nl cnRfdHJ1ZShpX3ZhbHVlID09IChpbnQ2NF90KTB4N2UwMDAwMCk7Cj4gKwo+ICsgYnl0ZXNfcmVh ZCA9IGxqX3V0aWxzX3JlYWRfdWxlYjEyOF9uKCZ1X3ZhbHVlLCBidWZmZXIsIDQpOwo+ICsgYXNz ZXJ0X3RydWUoYnl0ZXNfcmVhZCA9PSA0KTsKPiArIGFzc2VydF90cnVlKHVfdmFsdWUgPT0gKHVp bnQ2NF90KTB4N2UwMDAwMCk7Cj4gKwo+ICsgYnl0ZXNfcmVhZCA9IGxqX3V0aWxzX3JlYWRfbGVi MTI4X24oJmlfdmFsdWUsIGJ1ZmZlciwgNSk7Cj4gKyBhc3NlcnRfdHJ1ZShieXRlc19yZWFkID09 IDQpOwo+ICsgYXNzZXJ0X3RydWUoaV92YWx1ZSA9PSAoaW50NjRfdCkweDdlMDAwMDApOwo+ICsK PiArIGJ5dGVzX3JlYWQgPSBsal91dGlsc19yZWFkX3VsZWIxMjhfbigmdV92YWx1ZSwgYnVmZmVy LCA1KTsKPiArIGFzc2VydF90cnVlKGJ5dGVzX3JlYWQgPT0gNCk7Cj4gKyBhc3NlcnRfdHJ1ZSh1 X3ZhbHVlID09ICh1aW50NjRfdCkweDdlMDAwMDApOwo+ICsKPiArIHJldHVybiBURVNUX0VYSVRf U1VDQ0VTUzsKPiArfQo+ICsKPiAraW50IG1haW4odm9pZCkKPiArewo+ICsgY29uc3Qgc3RydWN0 IHRlc3RfdW5pdCB0Z3JvdXBbXSA9IHsKPiArIHRlc3RfdW5pdF9kZWYodGVzdF93cml0ZV91bGVi MTI4KSwKPiArIHRlc3RfdW5pdF9kZWYodGVzdF93cml0ZV9sZWIxMjgpLAo+ICsgdGVzdF91bml0 X2RlZih0ZXN0X21pc2Nfd3JpdGVzKSwKPiArIHRlc3RfdW5pdF9kZWYodGVzdF9yZWFkX3VsZWIx MjgpLAo+ICsgdGVzdF91bml0X2RlZih0ZXN0X3JlYWRfbGViMTI4KSwKPiArIHRlc3RfdW5pdF9k ZWYodGVzdF9taXNjX3JlYWRzKSwKPiArIHRlc3RfdW5pdF9kZWYodGVzdF9yZWFkX24pLAo+ICsg fTsKPiArIGNvbnN0IGludCB0ZXN0X3Jlc3VsdCA9IHRlc3RfcnVuX2dyb3VwKHRncm91cCwgTlVM TCk7Cj4gKyByZXR1cm4gdGVzdF9yZXN1bHQ7Cj4gK30KPiAtLQo+IDIuNTUuMAo+ ----ALT--c10931Bf35aA6939399baC5f89Ac5A931785268328 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXYgY2xhc3M9ImNsLW1uc3VoeTlnemkiPjxkaXY+SGksIFNlcmdleSEm bmJzcDtUaGFua3MgZm9yIHRoZSBwYXRjaCE8L2Rpdj48ZGl2PiZuYnNwOzwvZGl2PjxkaXY+TEdU TTxicj4mbmJzcDs8L2Rpdj48ZGl2IGRhdGEtc2lnbmF0dXJlLXdpZGdldD0iY29udGFpbmVyIj48 ZGl2IGRhdGEtc2lnbmF0dXJlLXdpZGdldD0iY29udGVudCI+PGRpdj4tLTxicj5CZXN0IHJlZ2Fy ZHMsPC9kaXY+PGRpdj5Fdmdlbml5IFRlbWlyZ2FsZWV2PC9kaXY+PC9kaXY+PC9kaXY+PGJyPjxk aXYgY2xhc3M9Im1haWwtcXVvdGUtY29sbGFwc2UiPjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXIt bGVmdDoxcHggc29saWQgIzA4NTdBNjttYXJnaW46MTBweDtwYWRkaW5nOjAgMCAwIDEwcHgiPjxz cGFuPkZyb206IFNlcmdleSBLYXBsdW4gJmx0OzxhIGhyZWY9Im1haWx0bzpza2FwbHVuQHRhcmFu dG9vbC5vcmciPnNrYXBsdW5AdGFyYW50b29sLm9yZzwvYT4mZ3Q7PGJyPlRvOiBTZXJnZXkgQnJv bm5pa292ICZsdDs8YSBocmVmPSJtYWlsdG86c2VyZ2V5YkB0YXJhbnRvb2wub3JnIj5zZXJnZXli QHRhcmFudG9vbC5vcmc8L2E+Jmd0OywgRXZnZW5peSBUZW1pcmdhbGVldiAmbHQ7PGEgaHJlZj0i bWFpbHRvOmUudGVtaXJnYWxlZXZAdGFyYW50b29sLm9yZyI+ZS50ZW1pcmdhbGVldkB0YXJhbnRv b2wub3JnPC9hPiZndDs8YnI+Q2M6IHRhcmFudG9vbC1wYXRjaGVzQGRldi50YXJhbnRvb2wub3Jn LCBTZXJnZXkgS2FwbHVuICZsdDs8YSBocmVmPSJtYWlsdG86c2thcGx1bkB0YXJhbnRvb2wub3Jn Ij5za2FwbHVuQHRhcmFudG9vbC5vcmc8L2E+Jmd0Ozxicj5EYXRlOiBXZWRuZXNkYXksIEp1bHkg MjIsIDIwMjYgNTowMCBQTSArMDM6MDA8L3NwYW4+PGJyPiZuYnNwOzxkaXY+PGRpdiBpZD0iIj48 ZGl2IGNsYXNzPSJjbC1xc21jb3MxMmhzIj48ZGl2IGNsYXNzPSJqcy1oZWxwZXJfbXJfY3NzX2F0 dHIganMtcmVhZG1zZy1tc2dfbXJfY3NzX2F0dHIiPjxkaXYgaWQ9InN0eWxlXzE3ODQ3Mjg4NTgx NzYwMDg2MzgyX21yX2Nzc19hdHRyIj48ZGl2IGlkPSJzdHlsZV8xNzg0NzI4ODU4MTc2MDA4NjM4 Ml9CT0RZX21yX2Nzc19hdHRyIj5UaGlzIHBhdGNoIGlzIGEgZm9sbG93LXVwIHRvIHRoZSBjb21t aXQ8YnI+NzA1OGU5MjE1ZjhhNTBkMDA3MDEzMDJlY2JiNTEwNTAzZDIxMTQ4ZCAoInV0aWxzOiBp bnRyb2R1Y2UgbGViMTI4PGJyPnJlYWRlciBhbmQgd3JpdGVyIikuPGJyPjxicj5UaGUgbGViMTI4 IGVuY29kaW5nIGlzIHVzZWQgaW5zaWRlIG91ciBwcm9maWxlcnMgKG1lbXByb2Yvc3lzcHJvZiku IEJ1dDxicj50aGVyZSBhcmUgbm8gdGVzdHMgZm9yIHRoaXMgbW9kdWxlLCBzbyBpdHMgY292ZXJh Z2UgaXMgbG93LCBzaW5jZSBvbmx5PGJyPmBsal91dGlsc193cml0ZV91bGViMTI4KClgIGlzIHVz ZWQuIEFsc28sIHRoZXJlIGlzIG5vIGNvcnJlY3RuZXNzIGNoZWNrPGJyPmZvciB0aGlzIGltcGxl bWVudGF0aW9uLjxicj48YnI+VGhpcyBwYXRjaCBhZGFwdHMgdGhlIEx1YVZlbGEgdGVzdHMgWzFd IHRvIGNvdmVyIHRoaXMgbW9kdWxlLiBTaW5jZSB0aGU8YnI+aW5pdGlhbCB2ZXJzaW9uIG9mIHRo ZSBtb2R1bGUgd2Fzbid0IGFkYXB0ZWQgYXMgaXMsIHRoZSBndWFyZGVkIHZlcnNpb248YnI+b2Yg dGhlIHJlYWRlciBmdW5jdGlvbnMgaGFzIGRpZmZlcmVudCBiZWhhdmlvdXIgZm9yIHplcm8tc2l6 ZWQgcmVxdWVzdGVkPGJyPnJlYWRzLiBIZW5jZSwgdGhpcyBjYXNlIGlzIHJlbW92ZWQgZm9yIG5v dy4gVGhlIHJlYWRlcnMgd2l0aCBhIHJlcXVlc3RlZDxicj5zaXplIGFyZSB1bnVzZWQgaW4gb3Vy IGNvZGUsIHNvIHRoaXMgaXMgbm90IGNydWNpYWwgYXQgdGhlIG1vbWVudC48YnI+PGJyPkFsc28s IHRoaXMgcGF0Y2ggZml4ZXMgdGhlIFVCU2FuIHdhcm5pbmcgaW4gdGhlPGJyPmBsal91dGlsc193 cml0ZV9sZWIxMjgoKWAgb24gY2hlY2tpbmcgdGhlIHJlbWFpbmluZyB2YWx1ZSB0byBiZSB3cml0 dGVuPGJyPmJ5IGZpeGluZyB0aGUgY2FzdCB0byB1aW50NjRfdC48YnI+PGJyPlsxXTogPGEgaHJl Zj0iaHR0cHM6Ly9naXRodWIuY29tL2x1YXZlbGEvbHVhdmVsYS9ibG9iLzI4OGU4YTk1MjE4ZWQ0 N2RhZDkzMDE2MjU5NTMzNDA2ZTMwYjEwOWIvdGVzdHMvaW1wbC91SklULXRlc3RzLUMvc3VpdGUv dGVzdF9sZWIxMjguYyI+aHR0cHM6Ly9naXRodWIuY29tL2x1YXZlbGEvbHVhdmVsYS9ibG9iLzI4 OGU4YTk1MjE4ZWQ0N2RhZDkzMDE2MjU5NTMzNDA2ZTMwYjEwOWIvdGVzdHMvaW1wbC91SklULXRl c3RzLUMvc3VpdGUvdGVzdF9sZWIxMjguYzwvYT48YnI+LS0tPGJyPjxicj5UaGUgbWFpbiBpZGVh IG9mIHRoZSBwYXRjaCBpcyB0byBpbmNyZWFzZSBjb3ZlcmFnZSBmb3IgdGhlPGJyPmxqX3V0aWxz X2xlYjEyOC5jLiBUaGUgVUJTYW4gImJ1ZyIgKG5vdCByZWFsbHksIHNpbmNlIHRoaXMgcGFydCBp czxicj51bnVzZWQsIGFueXdheSkgaXMgZml4ZWQgYXMgYSBzaWRlIGVmZmVjdC4gWW91IG1heSBj b21wYXJlIHRoZSBjb3ZlcmFnZTxicj5iZXR3ZWVuIG1hc3RlciBbMV0gYW5kIHRoaXMgYnJhbmNo IFsyXSB3aXRoIGNvdmVyYWxscy48YnI+PGJyPkJyYW5jaDogPGEgaHJlZj0iaHR0cHM6Ly9naXRo dWIuY29tL3RhcmFudG9vbC9sdWFqaXQvdHJlZS9za2FwbHVuL2doLW5vdGlja2V0LWxlYjEyOC10 ZXN0c2luZyI+aHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC9sdWFqaXQvdHJlZS9za2FwbHVu L2doLW5vdGlja2V0LWxlYjEyOC10ZXN0c2luZzwvYT48YnI+PGJyPlsxXTogPGEgaHJlZj0iaHR0 cHM6Ly9jb3ZlcmFsbHMuaW8vYnVpbGRzLzgwMzk0MTQwL3NvdXJjZT9maWxlbmFtZT1zcmMlMkZs al91dGlsc19sZWIxMjguYyI+aHR0cHM6Ly9jb3ZlcmFsbHMuaW8vYnVpbGRzLzgwMzk0MTQwL3Nv dXJjZT9maWxlbmFtZT1zcmMlMkZsal91dGlsc19sZWIxMjguYzwvYT48YnI+WzJdOiA8YSBocmVm PSJodHRwczovL2NvdmVyYWxscy5pby9idWlsZHMvODA3MjgwNTMvc291cmNlP2ZpbGVuYW1lPXNy YyUyRmxqX3V0aWxzX2xlYjEyOC5jIj5odHRwczovL2NvdmVyYWxscy5pby9idWlsZHMvODA3Mjgw NTMvc291cmNlP2ZpbGVuYW1lPXNyYyUyRmxqX3V0aWxzX2xlYjEyOC5jPC9hPjxicj48YnI+c3Jj L2xqX3V0aWxzX2xlYjEyOC5jIHwgMiArLTxicj50ZXN0L3RhcmFudG9vbC1jLXRlc3RzL3VuaXQt bGViMTI4LnRlc3QuYyB8IDM2NiArKysrKysrKysrKysrKysrKysrKysrPGJyPjIgZmlsZXMgY2hh bmdlZCwgMzY3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSk8YnI+Y3JlYXRlIG1vZGUgMTAw NjQ0IHRlc3QvdGFyYW50b29sLWMtdGVzdHMvdW5pdC1sZWIxMjgudGVzdC5jPGJyPjxicj5kaWZm IC0tZ2l0IGEvc3JjL2xqX3V0aWxzX2xlYjEyOC5jIGIvc3JjL2xqX3V0aWxzX2xlYjEyOC5jPGJy PmluZGV4IGQ2Njk2MWRhLi41YWQyYmQzYyAxMDA2NDQ8YnI+LS0tIGEvc3JjL2xqX3V0aWxzX2xl YjEyOC5jPGJyPisrKyBiL3NyYy9sal91dGlsc19sZWIxMjguYzxicj5AQCAtMTA1LDcgKzEwNSw3 IEBAIHNpemVfdCBMSl9GQVNUQ0FMTCBsal91dGlsc193cml0ZV9sZWIxMjgodWludDhfdCAqYnVm ZmVyLCBpbnQ2NF90IHZhbHVlKTxicj5zaXplX3QgaSA9IDA7PGJyPjxicj4vKiBMRUJfU0lHTl9C SVQgcHJvcGFnYXRpb24gdG8gY2hlY2sgdGhlIHJlbWFpbmluZyB2YWx1ZS4gKi88YnI+LSB3aGls ZSAoKHVpbnQ2NF90KSh2YWx1ZSArIExFQl9TSUdOX0JJVCkgJmd0Oz0gTUlOX1RXT0JZVEVfVkFM VUUpIHs8YnI+KyB3aGlsZSAoKHVpbnQ2NF90KXZhbHVlICsgTEVCX1NJR05fQklUICZndDs9IE1J Tl9UV09CWVRFX1ZBTFVFKSB7PGJyPmJ1ZmZlcltpKytdID0gKHVpbnQ4X3QpKCh2YWx1ZSAmYW1w OyBQQVlMT0FEX01BU0spIHwgTElOS19CSVQpOzxicj52YWx1ZSAmZ3Q7Jmd0Oz0gU0hJRlRfU1RF UDs8YnI+fTxicj5kaWZmIC0tZ2l0IGEvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy91bml0LWxlYjEy OC50ZXN0LmMgYi90ZXN0L3RhcmFudG9vbC1jLXRlc3RzL3VuaXQtbGViMTI4LnRlc3QuYzxicj5u ZXcgZmlsZSBtb2RlIDEwMDY0NDxicj5pbmRleCAwMDAwMDAwMC4uMTQyNDc2ZmI8YnI+LS0tIC9k ZXYvbnVsbDxicj4rKysgYi90ZXN0L3RhcmFudG9vbC1jLXRlc3RzL3VuaXQtbGViMTI4LnRlc3Qu Yzxicj5AQCAtMCwwICsxLDM2NiBAQDxicj4rLyo8YnI+KyoqIFRlc3Rpbmcgb2YgTEVCMTI4L1VM RUIxMjggZW5jb2RpbmcuPGJyPisqKjxicj4rKiogTWFqb3IgcG9ydGlvbnMgdGFrZW4gdmVyYmF0 aW0gb3IgYWRhcHRlZCBmcm9tIHRoZSBMdWFWZWxhLjxicj4rKiogQ29weXJpZ2h0IChDKSAyMDIw LTIwMjYgTHVhVmVsYSBBdXRob3JzLjxicj4rKiogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjAgSVBP TldFQiBMdGQuPGJyPisqLzxicj4rPGJyPisjaW5jbHVkZSAmbHQ7c3RkaW50LmgmZ3Q7PGJyPisj aW5jbHVkZSAmbHQ7c3RyaW5nLmgmZ3Q7PGJyPis8YnI+KyNpbmNsdWRlICJ0ZXN0LmgiPGJyPis8 YnI+KyNpbmNsdWRlICJsal91dGlscy5oIjxicj4rPGJyPisjZGVmaW5lIEJVRkZFUl9TSVpFIDE2 PGJyPis8YnI+K3N0YXRpYyBpbnQgdGVzdF93cml0ZV91bGViMTI4KHZvaWQgKnN0YXRlKTxicj4r ezxicj4rIHNpemVfdCBieXRlc193cml0dGVuID0gMDs8YnI+KyB1aW50OF90IGJ1ZmZlcltCVUZG RVJfU0laRV0gPSB7MH07PGJyPis8YnI+KyBVTlVTRUQoc3RhdGUpOzxicj4rPGJyPisgYnl0ZXNf d3JpdHRlbiA9IGxqX3V0aWxzX3dyaXRlX3VsZWIxMjgoYnVmZmVyLCAwKTs8YnI+KyBhc3NlcnRf dHJ1ZShieXRlc193cml0dGVuID09IDEpOzxicj4rIGFzc2VydF90cnVlKGJ1ZmZlclswXSA9PSAw eDApOzxicj4rPGJyPisgYnl0ZXNfd3JpdHRlbiA9IGxqX3V0aWxzX3dyaXRlX3VsZWIxMjgoYnVm ZmVyLCA2NCk7PGJyPisgYXNzZXJ0X3RydWUoYnl0ZXNfd3JpdHRlbiA9PSAxKTs8YnI+KyBhc3Nl cnRfdHJ1ZShidWZmZXJbMF0gPT0gMHg0MCk7PGJyPis8YnI+KyBieXRlc193cml0dGVuID0gbGpf dXRpbHNfd3JpdGVfdWxlYjEyOChidWZmZXIsIDEyOCk7PGJyPisgYXNzZXJ0X3RydWUoYnl0ZXNf d3JpdHRlbiA9PSAyKTs8YnI+KyBhc3NlcnRfdHJ1ZShidWZmZXJbMF0gPT0gMHg4MCAmYW1wOyZh bXA7IGJ1ZmZlclsxXSA9PSAweDAxKTs8YnI+Kzxicj4rIGJ5dGVzX3dyaXR0ZW4gPSBsal91dGls c193cml0ZV91bGViMTI4KGJ1ZmZlciwgVUlOVDY0X01BWCk7PGJyPisgYXNzZXJ0X3RydWUoYnl0 ZXNfd3JpdHRlbiA9PSAxMCk7PGJyPisgYXNzZXJ0X3RydWUoYnVmZmVyWzBdID09IDB4ZmYgJmFt cDsmYW1wOyBidWZmZXJbMV0gPT0gMHhmZiAmYW1wOyZhbXA7PGJyPisgYnVmZmVyWzJdID09IDB4 ZmYgJmFtcDsmYW1wOyBidWZmZXJbM10gPT0gMHhmZiAmYW1wOyZhbXA7PGJyPisgYnVmZmVyWzRd ID09IDB4ZmYgJmFtcDsmYW1wOyBidWZmZXJbNV0gPT0gMHhmZiAmYW1wOyZhbXA7PGJyPisgYnVm ZmVyWzZdID09IDB4ZmYgJmFtcDsmYW1wOyBidWZmZXJbN10gPT0gMHhmZiAmYW1wOyZhbXA7PGJy PisgYnVmZmVyWzhdID09IDB4ZmYgJmFtcDsmYW1wOyBidWZmZXJbOV0gPT0gMHgwMSk7PGJyPis8 YnI+KyByZXR1cm4gVEVTVF9FWElUX1NVQ0NFU1M7PGJyPit9PGJyPis8YnI+K3N0YXRpYyBpbnQg dGVzdF93cml0ZV9sZWIxMjgodm9pZCAqc3RhdGUpPGJyPit7PGJyPisgc2l6ZV90IGJ5dGVzX3dy aXR0ZW4gPSAwOzxicj4rIHVpbnQ4X3QgYnVmZmVyW0JVRkZFUl9TSVpFXSA9IHswfTs8YnI+Kzxi cj4rIFVOVVNFRChzdGF0ZSk7PGJyPis8YnI+KyBieXRlc193cml0dGVuID0gbGpfdXRpbHNfd3Jp dGVfbGViMTI4KGJ1ZmZlciwgMCk7PGJyPisgYXNzZXJ0X3RydWUoYnl0ZXNfd3JpdHRlbiA9PSAx KTs8YnI+KyBhc3NlcnRfdHJ1ZShidWZmZXJbMF0gPT0gMHgwKTs8YnI+Kzxicj4rIGJ5dGVzX3dy aXR0ZW4gPSBsal91dGlsc193cml0ZV9sZWIxMjgoYnVmZmVyLCAtNjI0NDg1KTs8YnI+KyBhc3Nl cnRfdHJ1ZShieXRlc193cml0dGVuID09IDMpOzxicj4rIGFzc2VydF90cnVlKGJ1ZmZlclswXSA9 PSAweDliICZhbXA7JmFtcDsgYnVmZmVyWzFdID09IDB4ZjEgJmFtcDsmYW1wOzxicj4rIGJ1ZmZl clsyXSA9PSAweDU5KTs8YnI+Kzxicj4rIGJ5dGVzX3dyaXR0ZW4gPSBsal91dGlsc193cml0ZV9s ZWIxMjgoYnVmZmVyLCBJTlQ2NF9NSU4pOzxicj4rIGFzc2VydF90cnVlKGJ5dGVzX3dyaXR0ZW4g PT0gMTApOzxicj4rIGFzc2VydF90cnVlKGJ1ZmZlclswXSA9PSAweDgwICZhbXA7JmFtcDsgYnVm ZmVyWzFdID09IDB4ODAgJmFtcDsmYW1wOzxicj4rIGJ1ZmZlclsyXSA9PSAweDgwICZhbXA7JmFt cDsgYnVmZmVyWzNdID09IDB4ODAgJmFtcDsmYW1wOzxicj4rIGJ1ZmZlcls0XSA9PSAweDgwICZh bXA7JmFtcDsgYnVmZmVyWzVdID09IDB4ODAgJmFtcDsmYW1wOzxicj4rIGJ1ZmZlcls2XSA9PSAw eDgwICZhbXA7JmFtcDsgYnVmZmVyWzddID09IDB4ODAgJmFtcDsmYW1wOzxicj4rIGJ1ZmZlcls4 XSA9PSAweDgwICZhbXA7JmFtcDsgYnVmZmVyWzldID09IDB4N2YpOzxicj4rPGJyPisgYnl0ZXNf d3JpdHRlbiA9IGxqX3V0aWxzX3dyaXRlX2xlYjEyOChidWZmZXIsIElOVDY0X01BWCk7PGJyPisg YXNzZXJ0X3RydWUoYnl0ZXNfd3JpdHRlbiA9PSAxMCk7PGJyPisgYXNzZXJ0X3RydWUoYnVmZmVy WzBdID09IDB4ZmYgJmFtcDsmYW1wOyBidWZmZXJbMV0gPT0gMHhmZiAmYW1wOyZhbXA7PGJyPisg YnVmZmVyWzJdID09IDB4ZmYgJmFtcDsmYW1wOyBidWZmZXJbM10gPT0gMHhmZiAmYW1wOyZhbXA7 PGJyPisgYnVmZmVyWzRdID09IDB4ZmYgJmFtcDsmYW1wOyBidWZmZXJbNV0gPT0gMHhmZiAmYW1w OyZhbXA7PGJyPisgYnVmZmVyWzZdID09IDB4ZmYgJmFtcDsmYW1wOyBidWZmZXJbN10gPT0gMHhm ZiAmYW1wOyZhbXA7PGJyPisgYnVmZmVyWzhdID09IDB4ZmYgJmFtcDsmYW1wOyBidWZmZXJbOV0g PT0gMHgwMCk7PGJyPis8YnI+KyByZXR1cm4gVEVTVF9FWElUX1NVQ0NFU1M7PGJyPit9PGJyPis8 YnI+Ky8qIFRlc3QgbWlzY2VsbGFuZW91cyB3cml0ZXMsIGJvdGggc2lnbmVkIGFuZCB1bnNpZ25l ZC4gKi88YnI+K3N0YXRpYyBpbnQgdGVzdF9taXNjX3dyaXRlcyh2b2lkICpzdGF0ZSk8YnI+K3s8 YnI+KyBzaXplX3QgYnl0ZXNfd3JpdHRlbiA9IDA7PGJyPisgdWludDhfdCBidWZmZXJbQlVGRkVS X1NJWkVdID0gezB9Ozxicj4rPGJyPisgVU5VU0VEKHN0YXRlKTs8YnI+Kzxicj4rIGJ5dGVzX3dy aXR0ZW4gPSBsal91dGlsc193cml0ZV9sZWIxMjgoYnVmZmVyLCAweDEwKTs8YnI+KyBhc3NlcnRf dHJ1ZShieXRlc193cml0dGVuID09IDEpOzxicj4rIGFzc2VydF90cnVlKGJ1ZmZlclswXSA9PSAw eDEwKTs8YnI+Kzxicj4rIGJ5dGVzX3dyaXR0ZW4gPSBsal91dGlsc193cml0ZV91bGViMTI4KGJ1 ZmZlciwgMHgxMCk7PGJyPisgYXNzZXJ0X3RydWUoYnl0ZXNfd3JpdHRlbiA9PSAxKTs8YnI+KyBh c3NlcnRfdHJ1ZShidWZmZXJbMF0gPT0gMHgxMCk7PGJyPis8YnI+KyBieXRlc193cml0dGVuID0g bGpfdXRpbHNfd3JpdGVfbGViMTI4KGJ1ZmZlciwgLTB4M2IpOzxicj4rIGFzc2VydF90cnVlKGJ5 dGVzX3dyaXR0ZW4gPT0gMSk7PGJyPisgYXNzZXJ0X3RydWUoYnVmZmVyWzBdID09IDB4NDUpOzxi cj4rPGJyPisgYnl0ZXNfd3JpdHRlbiA9IGxqX3V0aWxzX3dyaXRlX3VsZWIxMjgoYnVmZmVyLCAw eDQ1KTs8YnI+KyBhc3NlcnRfdHJ1ZShieXRlc193cml0dGVuID09IDEpOzxicj4rIGFzc2VydF90 cnVlKGJ1ZmZlclswXSA9PSAweDQ1KTs8YnI+Kzxicj4rIGJ5dGVzX3dyaXR0ZW4gPSBsal91dGls c193cml0ZV9sZWIxMjgoYnVmZmVyLCAweDE5MGUpOzxicj4rIGFzc2VydF90cnVlKGJ5dGVzX3dy aXR0ZW4gPT0gMik7PGJyPisgYXNzZXJ0X3RydWUoYnVmZmVyWzBdID09IDB4OGUgJmFtcDsmYW1w OyBidWZmZXJbMV0gPT0gMHgzMik7PGJyPis8YnI+KyBieXRlc193cml0dGVuID0gbGpfdXRpbHNf d3JpdGVfdWxlYjEyOChidWZmZXIsIDB4MTkwZSk7PGJyPisgYXNzZXJ0X3RydWUoYnl0ZXNfd3Jp dHRlbiA9PSAyKTs8YnI+KyBhc3NlcnRfdHJ1ZShidWZmZXJbMF0gPT0gMHg4ZSAmYW1wOyZhbXA7 IGJ1ZmZlclsxXSA9PSAweDMyKTs8YnI+Kzxicj4rIGJ5dGVzX3dyaXR0ZW4gPSBsal91dGlsc193 cml0ZV9sZWIxMjgoYnVmZmVyLCAtMHgxNDNmKTs8YnI+KyBhc3NlcnRfdHJ1ZShieXRlc193cml0 dGVuID09IDIpOzxicj4rIGFzc2VydF90cnVlKGJ1ZmZlclswXSA9PSAweGMxICZhbXA7JmFtcDsg YnVmZmVyWzFdID09IDB4NTcpOzxicj4rPGJyPisgYnl0ZXNfd3JpdHRlbiA9IGxqX3V0aWxzX3dy aXRlX3VsZWIxMjgoYnVmZmVyLCAweDJiYzEpOzxicj4rIGFzc2VydF90cnVlKGJ5dGVzX3dyaXR0 ZW4gPT0gMik7PGJyPisgYXNzZXJ0X3RydWUoYnVmZmVyWzBdID09IDB4YzEgJmFtcDsmYW1wOyBi dWZmZXJbMV0gPT0gMHg1Nyk7PGJyPis8YnI+KyBieXRlc193cml0dGVuID0gbGpfdXRpbHNfd3Jp dGVfbGViMTI4KGJ1ZmZlciwgMHg3ZTAwMDAwKTs8YnI+KyBhc3NlcnRfdHJ1ZShieXRlc193cml0 dGVuID09IDQpOzxicj4rIGFzc2VydF90cnVlKGJ1ZmZlclswXSA9PSAweDgwICZhbXA7JmFtcDsg YnVmZmVyWzFdID09IDB4ODAgJmFtcDsmYW1wOzxicj4rIGJ1ZmZlclsyXSA9PSAweDgwICZhbXA7 JmFtcDsgYnVmZmVyWzNdID09IDB4M2YpOzxicj4rPGJyPisgYnl0ZXNfd3JpdHRlbiA9IGxqX3V0 aWxzX3dyaXRlX3VsZWIxMjgoYnVmZmVyLCAweDdlMDAwMDApOzxicj4rIGFzc2VydF90cnVlKGJ5 dGVzX3dyaXR0ZW4gPT0gNCk7PGJyPisgYXNzZXJ0X3RydWUoYnVmZmVyWzBdID09IDB4ODAgJmFt cDsmYW1wOyBidWZmZXJbMV0gPT0gMHg4MCAmYW1wOyZhbXA7PGJyPisgYnVmZmVyWzJdID09IDB4 ODAgJmFtcDsmYW1wOyBidWZmZXJbM10gPT0gMHgzZik7PGJyPis8YnI+KyBieXRlc193cml0dGVu ID0gbGpfdXRpbHNfd3JpdGVfbGViMTI4KGJ1ZmZlciwgLTB4NjIwMDAwMCk7PGJyPisgYXNzZXJ0 X3RydWUoYnl0ZXNfd3JpdHRlbiA9PSA0KTs8YnI+KyBhc3NlcnRfdHJ1ZShidWZmZXJbMF0gPT0g MHg4MCAmYW1wOyZhbXA7IGJ1ZmZlclsxXSA9PSAweDgwICZhbXA7JmFtcDs8YnI+KyBidWZmZXJb Ml0gPT0gMHg4MCAmYW1wOyZhbXA7IGJ1ZmZlclszXSA9PSAweDRmKTs8YnI+Kzxicj4rIGJ5dGVz X3dyaXR0ZW4gPSBsal91dGlsc193cml0ZV91bGViMTI4KGJ1ZmZlciwgMHg5ZTAwMDAwKTs8YnI+ KyBhc3NlcnRfdHJ1ZShieXRlc193cml0dGVuID09IDQpOzxicj4rIGFzc2VydF90cnVlKGJ1ZmZl clswXSA9PSAweDgwICZhbXA7JmFtcDsgYnVmZmVyWzFdID09IDB4ODAgJmFtcDsmYW1wOzxicj4r IGJ1ZmZlclsyXSA9PSAweDgwICZhbXA7JmFtcDsgYnVmZmVyWzNdID09IDB4NGYpOzxicj4rPGJy PisgcmV0dXJuIFRFU1RfRVhJVF9TVUNDRVNTOzxicj4rfTxicj4rPGJyPitzdGF0aWMgaW50IHRl c3RfcmVhZF91bGViMTI4KHZvaWQgKnN0YXRlKTxicj4rezxicj4rIHVpbnQ2NF90IHZhbHVlID0g MDs8YnI+KyBzaXplX3QgYnl0ZXNfcmVhZCA9IDA7PGJyPisgdWludDhfdCBidWZmZXJbQlVGRkVS X1NJWkVdID0gezB9Ozxicj4rPGJyPisgVU5VU0VEKHN0YXRlKTs8YnI+Kzxicj4rIGJ5dGVzX3Jl YWQgPSBsal91dGlsc19yZWFkX3VsZWIxMjgoJmFtcDt2YWx1ZSwgYnVmZmVyKTs8YnI+KyBhc3Nl cnRfdHJ1ZShieXRlc19yZWFkID09IDEpOzxicj4rIGFzc2VydF90cnVlKHZhbHVlID09IDApOzxi cj4rPGJyPisgYnVmZmVyWzBdID0gMHg0MDs8YnI+KyBieXRlc19yZWFkID0gbGpfdXRpbHNfcmVh ZF91bGViMTI4KCZhbXA7dmFsdWUsIGJ1ZmZlcik7PGJyPisgYXNzZXJ0X3RydWUoYnl0ZXNfcmVh ZCA9PSAxKTs8YnI+KyBhc3NlcnRfdHJ1ZSh2YWx1ZSA9PSA2NCk7PGJyPis8YnI+KyBidWZmZXJb MF0gPSAweDgwOzxicj4rIGJ1ZmZlclsxXSA9IDB4MDE7PGJyPisgYnl0ZXNfcmVhZCA9IGxqX3V0 aWxzX3JlYWRfdWxlYjEyOCgmYW1wO3ZhbHVlLCBidWZmZXIpOzxicj4rIGFzc2VydF90cnVlKGJ5 dGVzX3JlYWQgPT0gMik7PGJyPisgYXNzZXJ0X3RydWUodmFsdWUgPT0gMTI4KTs8YnI+Kzxicj4r IG1lbXNldChidWZmZXIsIDB4ZmYsIDkpOzxicj4rIGJ1ZmZlcls5XSA9IDB4MDE7PGJyPisgYnl0 ZXNfcmVhZCA9IGxqX3V0aWxzX3JlYWRfdWxlYjEyOCgmYW1wO3ZhbHVlLCBidWZmZXIpOzxicj4r IGFzc2VydF90cnVlKGJ5dGVzX3JlYWQgPT0gMTApOzxicj4rIGFzc2VydF90cnVlKHZhbHVlID09 IFVJTlQ2NF9NQVgpOzxicj4rPGJyPisgcmV0dXJuIFRFU1RfRVhJVF9TVUNDRVNTOzxicj4rfTxi cj4rPGJyPitzdGF0aWMgaW50IHRlc3RfcmVhZF9sZWIxMjgodm9pZCAqc3RhdGUpPGJyPit7PGJy PisgaW50NjRfdCB2YWx1ZSA9IDA7PGJyPisgc2l6ZV90IGJ5dGVzX3JlYWQgPSAwOzxicj4rIHVp bnQ4X3QgYnVmZmVyW0JVRkZFUl9TSVpFXSA9IHswfTs8YnI+Kzxicj4rIFVOVVNFRChzdGF0ZSk7 PGJyPis8YnI+KyBieXRlc19yZWFkID0gbGpfdXRpbHNfcmVhZF9sZWIxMjgoJmFtcDt2YWx1ZSwg YnVmZmVyKTs8YnI+KyBhc3NlcnRfdHJ1ZShieXRlc19yZWFkID09IDEpOzxicj4rIGFzc2VydF90 cnVlKHZhbHVlID09IDApOzxicj4rPGJyPisgYnVmZmVyWzBdID0gMHg5Yjs8YnI+KyBidWZmZXJb MV0gPSAweGYxOzxicj4rIGJ1ZmZlclsyXSA9IDB4NTk7PGJyPisgYnl0ZXNfcmVhZCA9IGxqX3V0 aWxzX3JlYWRfbGViMTI4KCZhbXA7dmFsdWUsIGJ1ZmZlcik7PGJyPisgYXNzZXJ0X3RydWUoYnl0 ZXNfcmVhZCA9PSAzKTs8YnI+KyBhc3NlcnRfdHJ1ZSh2YWx1ZSA9PSAoaW50NjRfdCktNjI0NDg1 KTs8YnI+Kzxicj4rIG1lbXNldChidWZmZXIsIDB4ODAsIDkpOzxicj4rIGJ1ZmZlcls5XSA9IDB4 N2Y7PGJyPisgYnl0ZXNfcmVhZCA9IGxqX3V0aWxzX3JlYWRfbGViMTI4KCZhbXA7dmFsdWUsIGJ1 ZmZlcik7PGJyPisgYXNzZXJ0X3RydWUoYnl0ZXNfcmVhZCA9PSAxMCk7PGJyPisgYXNzZXJ0X3Ry dWUodmFsdWUgPT0gSU5UNjRfTUlOKTs8YnI+Kzxicj4rIG1lbXNldChidWZmZXIsIDB4ZmYsIDkp Ozxicj4rIGJ1ZmZlcls5XSA9IDB4MDA7PGJyPisgYnl0ZXNfcmVhZCA9IGxqX3V0aWxzX3JlYWRf bGViMTI4KCZhbXA7dmFsdWUsIGJ1ZmZlcik7PGJyPisgYXNzZXJ0X3RydWUoYnl0ZXNfcmVhZCA9 PSAxMCk7PGJyPisgYXNzZXJ0X3RydWUodmFsdWUgPT0gSU5UNjRfTUFYKTs8YnI+Kzxicj4rIHJl dHVybiBURVNUX0VYSVRfU1VDQ0VTUzs8YnI+K308YnI+Kzxicj4rLyogVGVzdCBtaXNjZWxsYW5l b3VzIHJlYWRzLCBib3RoIHNpZ25lZCBhbmQgdW5zaWduZWQuICovPGJyPitzdGF0aWMgaW50IHRl c3RfbWlzY19yZWFkcyh2b2lkICpzdGF0ZSk8YnI+K3s8YnI+KyBpbnQ2NF90IGlfdmFsdWUgPSAw Ozxicj4rIHVpbnQ2NF90IHVfdmFsdWUgPSAwOzxicj4rPGJyPisgc2l6ZV90IGJ5dGVzX3JlYWQg PSAwOzxicj4rIHVpbnQ4X3QgYnVmZmVyW0JVRkZFUl9TSVpFXSA9IHswfTs8YnI+Kzxicj4rIFVO VVNFRChzdGF0ZSk7PGJyPis8YnI+KyBidWZmZXJbMF0gPSAweDEwOzxicj4rPGJyPisgYnl0ZXNf cmVhZCA9IGxqX3V0aWxzX3JlYWRfbGViMTI4KCZhbXA7aV92YWx1ZSwgYnVmZmVyKTs8YnI+KyBh c3NlcnRfdHJ1ZShieXRlc19yZWFkID09IDEpOzxicj4rIGFzc2VydF90cnVlKGlfdmFsdWUgPT0g KGludDY0X3QpMHgxMCk7PGJyPis8YnI+KyBieXRlc19yZWFkID0gbGpfdXRpbHNfcmVhZF91bGVi MTI4KCZhbXA7dV92YWx1ZSwgYnVmZmVyKTs8YnI+KyBhc3NlcnRfdHJ1ZShieXRlc19yZWFkID09 IDEpOzxicj4rIGFzc2VydF90cnVlKHVfdmFsdWUgPT0gKHVpbnQ2NF90KTB4MTApOzxicj4rPGJy PisgYnVmZmVyWzBdID0gMHg0NTs8YnI+Kzxicj4rIGJ5dGVzX3JlYWQgPSBsal91dGlsc19yZWFk X2xlYjEyOCgmYW1wO2lfdmFsdWUsIGJ1ZmZlcik7PGJyPisgYXNzZXJ0X3RydWUoYnl0ZXNfcmVh ZCA9PSAxKTs8YnI+KyBhc3NlcnRfdHJ1ZShpX3ZhbHVlID09IChpbnQ2NF90KS0weDNiKTs8YnI+ Kzxicj4rIGJ5dGVzX3JlYWQgPSBsal91dGlsc19yZWFkX3VsZWIxMjgoJmFtcDt1X3ZhbHVlLCBi dWZmZXIpOzxicj4rIGFzc2VydF90cnVlKGJ5dGVzX3JlYWQgPT0gMSk7PGJyPisgYXNzZXJ0X3Ry dWUodV92YWx1ZSA9PSAodWludDY0X3QpMHg0NSk7PGJyPis8YnI+KyBidWZmZXJbMF0gPSAweDhl Ozxicj4rIGJ1ZmZlclsxXSA9IDB4MzI7PGJyPis8YnI+KyBieXRlc19yZWFkID0gbGpfdXRpbHNf cmVhZF9sZWIxMjgoJmFtcDtpX3ZhbHVlLCBidWZmZXIpOzxicj4rIGFzc2VydF90cnVlKGJ5dGVz X3JlYWQgPT0gMik7PGJyPisgYXNzZXJ0X3RydWUoaV92YWx1ZSA9PSAoaW50NjRfdCkweDE5MGUp Ozxicj4rPGJyPisgYnl0ZXNfcmVhZCA9IGxqX3V0aWxzX3JlYWRfdWxlYjEyOCgmYW1wO3VfdmFs dWUsIGJ1ZmZlcik7PGJyPisgYXNzZXJ0X3RydWUoYnl0ZXNfcmVhZCA9PSAyKTs8YnI+KyBhc3Nl cnRfdHJ1ZSh1X3ZhbHVlID09ICh1aW50NjRfdCkweDE5MGUpOzxicj4rPGJyPisgYnVmZmVyWzBd ID0gMHhjMTs8YnI+KyBidWZmZXJbMV0gPSAweDU3Ozxicj4rPGJyPisgYnl0ZXNfcmVhZCA9IGxq X3V0aWxzX3JlYWRfbGViMTI4KCZhbXA7aV92YWx1ZSwgYnVmZmVyKTs8YnI+KyBhc3NlcnRfdHJ1 ZShieXRlc19yZWFkID09IDIpOzxicj4rIGFzc2VydF90cnVlKGlfdmFsdWUgPT0gKGludDY0X3Qp LTB4MTQzZik7PGJyPis8YnI+KyBieXRlc19yZWFkID0gbGpfdXRpbHNfcmVhZF91bGViMTI4KCZh bXA7dV92YWx1ZSwgYnVmZmVyKTs8YnI+KyBhc3NlcnRfdHJ1ZShieXRlc19yZWFkID09IDIpOzxi cj4rIGFzc2VydF90cnVlKHVfdmFsdWUgPT0gKHVpbnQ2NF90KTB4MmJjMSk7PGJyPis8YnI+KyBi dWZmZXJbMF0gPSAweGMxOzxicj4rIGJ1ZmZlclsxXSA9IDB4NTc7PGJyPis8YnI+KyBieXRlc19y ZWFkID0gbGpfdXRpbHNfcmVhZF9sZWIxMjgoJmFtcDtpX3ZhbHVlLCBidWZmZXIpOzxicj4rIGFz c2VydF90cnVlKGJ5dGVzX3JlYWQgPT0gMik7PGJyPisgYXNzZXJ0X3RydWUoaV92YWx1ZSA9PSAo aW50NjRfdCktMHgxNDNmKTs8YnI+Kzxicj4rIGJ5dGVzX3JlYWQgPSBsal91dGlsc19yZWFkX3Vs ZWIxMjgoJmFtcDt1X3ZhbHVlLCBidWZmZXIpOzxicj4rIGFzc2VydF90cnVlKGJ5dGVzX3JlYWQg PT0gMik7PGJyPisgYXNzZXJ0X3RydWUodV92YWx1ZSA9PSAodWludDY0X3QpMHgyYmMxKTs8YnI+ Kzxicj4rIGJ1ZmZlclswXSA9IDB4ODA7PGJyPisgYnVmZmVyWzFdID0gMHg4MDs8YnI+KyBidWZm ZXJbMl0gPSAweDgwOzxicj4rIGJ1ZmZlclszXSA9IDB4M2Y7PGJyPis8YnI+KyBieXRlc19yZWFk ID0gbGpfdXRpbHNfcmVhZF9sZWIxMjgoJmFtcDtpX3ZhbHVlLCBidWZmZXIpOzxicj4rIGFzc2Vy dF90cnVlKGJ5dGVzX3JlYWQgPT0gNCk7PGJyPisgYXNzZXJ0X3RydWUoaV92YWx1ZSA9PSAoaW50 NjRfdCkweDdlMDAwMDApOzxicj4rPGJyPisgYnl0ZXNfcmVhZCA9IGxqX3V0aWxzX3JlYWRfdWxl YjEyOCgmYW1wO3VfdmFsdWUsIGJ1ZmZlcik7PGJyPisgYXNzZXJ0X3RydWUoYnl0ZXNfcmVhZCA9 PSA0KTs8YnI+KyBhc3NlcnRfdHJ1ZSh1X3ZhbHVlID09ICh1aW50NjRfdCkweDdlMDAwMDApOzxi cj4rPGJyPisgYnVmZmVyWzBdID0gMHg4MDs8YnI+KyBidWZmZXJbMV0gPSAweDgwOzxicj4rIGJ1 ZmZlclsyXSA9IDB4ODA7PGJyPisgYnVmZmVyWzNdID0gMHg0Zjs8YnI+Kzxicj4rIGJ5dGVzX3Jl YWQgPSBsal91dGlsc19yZWFkX2xlYjEyOCgmYW1wO2lfdmFsdWUsIGJ1ZmZlcik7PGJyPisgYXNz ZXJ0X3RydWUoYnl0ZXNfcmVhZCA9PSA0KTs8YnI+KyBhc3NlcnRfdHJ1ZShpX3ZhbHVlID09IChp bnQ2NF90KS0weDYyMDAwMDApOzxicj4rPGJyPisgYnl0ZXNfcmVhZCA9IGxqX3V0aWxzX3JlYWRf dWxlYjEyOCgmYW1wO3VfdmFsdWUsIGJ1ZmZlcik7PGJyPisgYXNzZXJ0X3RydWUoYnl0ZXNfcmVh ZCA9PSA0KTs8YnI+KyBhc3NlcnRfdHJ1ZSh1X3ZhbHVlID09ICh1aW50NjRfdCkweDllMDAwMDAp Ozxicj4rPGJyPisgcmV0dXJuIFRFU1RfRVhJVF9TVUNDRVNTOzxicj4rfTxicj4rPGJyPitzdGF0 aWMgaW50IHRlc3RfcmVhZF9uKHZvaWQgKnN0YXRlKTxicj4rezxicj4rIGludDY0X3QgaV92YWx1 ZSA9IDA7PGJyPisgdWludDY0X3QgdV92YWx1ZSA9IDA7PGJyPis8YnI+KyBzaXplX3QgYnl0ZXNf cmVhZCA9IDA7PGJyPisgdWludDhfdCBidWZmZXJbQlVGRkVSX1NJWkVdID0gezB9Ozxicj4rPGJy PisgVU5VU0VEKHN0YXRlKTs8YnI+Kzxicj4rIGJ5dGVzX3JlYWQgPSBsal91dGlsc19yZWFkX2xl YjEyOF9uKCZhbXA7aV92YWx1ZSwgYnVmZmVyLCAxKTs8YnI+KyBhc3NlcnRfdHJ1ZShieXRlc19y ZWFkID09IDEpOzxicj4rIGFzc2VydF90cnVlKGlfdmFsdWUgPT0gMCk7PGJyPis8YnI+KyBieXRl c19yZWFkID0gbGpfdXRpbHNfcmVhZF91bGViMTI4X24oJmFtcDt1X3ZhbHVlLCBidWZmZXIsIDEp Ozxicj4rIGFzc2VydF90cnVlKGJ5dGVzX3JlYWQgPT0gMSk7PGJyPisgYXNzZXJ0X3RydWUodV92 YWx1ZSA9PSAwKTs8YnI+Kzxicj4rIGJ1ZmZlclswXSA9IDB4ODA7PGJyPisgYnVmZmVyWzFdID0g MHg4MDs8YnI+KyBidWZmZXJbMl0gPSAweDgwOzxicj4rIGJ1ZmZlclszXSA9IDB4M2Y7PGJyPis8 YnI+KyBhc3NlcnRfdHJ1ZShsal91dGlsc19yZWFkX2xlYjEyOF9uKCZhbXA7aV92YWx1ZSwgYnVm ZmVyLCAzKSA9PSAwKTs8YnI+KyBhc3NlcnRfdHJ1ZShsal91dGlsc19yZWFkX3VsZWIxMjhfbigm YW1wO3VfdmFsdWUsIGJ1ZmZlciwgMykgPT0gMCk7PGJyPisgLyogVmFsdWVzIGFyZSB1bnRvdWNo ZWQgaW4gY2FzZSBvZiBmYWlsdXJlLiAqLzxicj4rIGFzc2VydF90cnVlKGlfdmFsdWUgPT0gMCk7 PGJyPisgYXNzZXJ0X3RydWUodV92YWx1ZSA9PSAwKTs8YnI+Kzxicj4rIGJ5dGVzX3JlYWQgPSBs al91dGlsc19yZWFkX2xlYjEyOF9uKCZhbXA7aV92YWx1ZSwgYnVmZmVyLCA0KTs8YnI+KyBhc3Nl cnRfdHJ1ZShieXRlc19yZWFkID09IDQpOzxicj4rIGFzc2VydF90cnVlKGlfdmFsdWUgPT0gKGlu dDY0X3QpMHg3ZTAwMDAwKTs8YnI+Kzxicj4rIGJ5dGVzX3JlYWQgPSBsal91dGlsc19yZWFkX3Vs ZWIxMjhfbigmYW1wO3VfdmFsdWUsIGJ1ZmZlciwgNCk7PGJyPisgYXNzZXJ0X3RydWUoYnl0ZXNf cmVhZCA9PSA0KTs8YnI+KyBhc3NlcnRfdHJ1ZSh1X3ZhbHVlID09ICh1aW50NjRfdCkweDdlMDAw MDApOzxicj4rPGJyPisgYnl0ZXNfcmVhZCA9IGxqX3V0aWxzX3JlYWRfbGViMTI4X24oJmFtcDtp X3ZhbHVlLCBidWZmZXIsIDUpOzxicj4rIGFzc2VydF90cnVlKGJ5dGVzX3JlYWQgPT0gNCk7PGJy PisgYXNzZXJ0X3RydWUoaV92YWx1ZSA9PSAoaW50NjRfdCkweDdlMDAwMDApOzxicj4rPGJyPisg Ynl0ZXNfcmVhZCA9IGxqX3V0aWxzX3JlYWRfdWxlYjEyOF9uKCZhbXA7dV92YWx1ZSwgYnVmZmVy LCA1KTs8YnI+KyBhc3NlcnRfdHJ1ZShieXRlc19yZWFkID09IDQpOzxicj4rIGFzc2VydF90cnVl KHVfdmFsdWUgPT0gKHVpbnQ2NF90KTB4N2UwMDAwMCk7PGJyPis8YnI+KyByZXR1cm4gVEVTVF9F WElUX1NVQ0NFU1M7PGJyPit9PGJyPis8YnI+K2ludCBtYWluKHZvaWQpPGJyPit7PGJyPisgY29u c3Qgc3RydWN0IHRlc3RfdW5pdCB0Z3JvdXBbXSA9IHs8YnI+KyB0ZXN0X3VuaXRfZGVmKHRlc3Rf d3JpdGVfdWxlYjEyOCksPGJyPisgdGVzdF91bml0X2RlZih0ZXN0X3dyaXRlX2xlYjEyOCksPGJy PisgdGVzdF91bml0X2RlZih0ZXN0X21pc2Nfd3JpdGVzKSw8YnI+KyB0ZXN0X3VuaXRfZGVmKHRl c3RfcmVhZF91bGViMTI4KSw8YnI+KyB0ZXN0X3VuaXRfZGVmKHRlc3RfcmVhZF9sZWIxMjgpLDxi cj4rIHRlc3RfdW5pdF9kZWYodGVzdF9taXNjX3JlYWRzKSw8YnI+KyB0ZXN0X3VuaXRfZGVmKHRl c3RfcmVhZF9uKSw8YnI+KyB9Ozxicj4rIGNvbnN0IGludCB0ZXN0X3Jlc3VsdCA9IHRlc3RfcnVu X2dyb3VwKHRncm91cCwgTlVMTCk7PGJyPisgcmV0dXJuIHRlc3RfcmVzdWx0Ozxicj4rfTxicj4t LTxicj4yLjU1LjA8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVv dGU+PC9kaXY+PC9kaXY+PC9CT0RZPjwvSFRNTD4K ----ALT--c10931Bf35aA6939399baC5f89Ac5A931785268328--