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 A07595057D1; Thu, 29 Jun 2023 11:44:57 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org A07595057D1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1688028297; bh=VqkmYwIASaQgv/z8c29cWObFAsehc/BKCUsk9Xn9S0w=; 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=oI0LYh3DZ+Jje5T+LS9uOrO4or2jNSxfEfj3Cu+RlOGO4ZIu0BMzP+xdZorq2A+DV Sw9InRs6syumaDy6O5g31z8uFIccT9PZ/O5zQ+MWnC5uEBHIRNHAun17zp2AIBkiun MFqhoJW+4nzM88DGBZDvLC10YXE0aQa/G+h38D88= Received: from f341.i.mail.ru (f341.i.mail.ru [45.84.128.154]) (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 068E92ACFC1 for ; Thu, 29 Jun 2023 11:44:56 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 068E92ACFC1 Received: by f341.i.mail.ru with local (envelope-from ) id 1qEnGn-0006OP-Jo; Thu, 29 Jun 2023 11:44:54 +0300 Received: by e.mail.ru with HTTP; Thu, 29 Jun 2023 11:44:53 +0300 To: =?UTF-8?B?U2VyZ2V5IEthcGx1bg==?= MIME-Version: 1.0 X-Mailer: Mail.Ru Mailer 1.0 X-SenderField-ReMsg: 16874444192026193648 X-SenderField-Remind: 0 Date: Thu, 29 Jun 2023 11:44:53 +0300 X-Priority: 3 (Normal) Message-ID: <1688028293.317381945@f341.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--f32195B5CaEd8a388e7ADbD6cFcAe50E1688028293" In-Reply-To: <56e13650b2f5d7536c96c01bbbee3d4c42eedf67.1687439049.git.skaplun@tarantool.org> References: <56e13650b2f5d7536c96c01bbbee3d4c42eedf67.1687439049.git.skaplun@tarantool.org> X-4EC0790: 10 X-7564579A: 78E4E2B564C1792B X-77F55803: 119C1F4DF6A9251C6A06DDEE36CC300D4A0F453F1648D1BD3A57EA65009D56CDABF6EAE57C0FACE9D8C037E2AF868D0D6F317C39B7C33FAE7627F374744105682031A3DD069C1E5A X-7FA49CB5: 70AAF3C13DB7016878DA827A17800CE7A85A2BC93F0E5067D82A6BABE6F325ACACBFF42033827DA7BCF491FFA38154B613377AFFFEAFD269176DF2183F8FC7C081C4E570E9C9D556C2099A533E45F2D0395957E7521B51C2CFCAF695D4D8E9FCEA1F7E6F0F101C6778DA827A17800CE73C696014E2DCCA1EEA1F7E6F0F101C6723150C8DA25C47586E58E00D9D99D84E1BDDB23E98D2D38BE5CCB53A13BC8DBA7A29E0D50E585FA0F7408CC982E3A443CC7F00164DA146DAFE8445B8C89999728AA50765F7900637F6B57BC7E64490618DEB871D839B7333395957E7521B51C2DFABB839C843B9C08941B15DA834481F8AA50765F7900637CBDA538BD653CEDD389733CBF5DBD5E9B5C8C57E37DE458B9E9CE733340B9D5F3BBE47FD9DD3FB595F5C1EE8F4F765FC72CEEB2601E22B093A03B725D353964B0B7D0EA88DDEDAC722CA9DD8327EE4930A3850AC1BE2E73535872C767BF85DA2F004C90652538430E4A6367B16DE6309 X-C1DE0DAB: 0D63561A33F958A59CC39F34AFDDAD2C44A74FBE0BF3F03B7FEB8DF55D100A24F87CCE6106E1FC07E67D4AC08A07B9B0A6C7FFFE744CA7FBCB5012B2E24CD356 X-C8649E89: 1C3962B70DF3F0ADE2815F1F17DA7190F22D334B9B612B432CCB5A6D6581D03D0776B5B2C279835F17BCBE6708A5A68D02015372BE9702A2C4068D25A34D7A5C1E5503F4C03A28352E5290DD2239DFAC9E6C6C3292D5EBDB6C125899181736999B815B7972F6FBBEE5A05FDD95C3F4ACE9311BFCDD974D4B6536EB022892E5344C41F94D744909CED78ACA237E033A03E5771FB83DCB4455B2E44A6A118E769B33F2C28C22F508233FCF178C6DD14203 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5+wYjsrrSY/u8Y3PrTqANeitKFiSd6Yd7yPpbiiZ/d5BsxIjK0jGQgCHUM3Ry2Lt2G3MDkMauH3h0dBdQGj+BB/iPzQYh7XS329fgu+/vnDh9uXvfqejZFZxT0s/w58F6w== X-Mailru-MI: 10000000000400800 X-Mailru-Sender: 2924CFDDD3714C4036C9AA3608F8B66D42216114380CDF6C6455FAE2ACB23E9DD9464D8E1BC0A2D5BFB3BA3E651BDEC2B185BFF0AC246CC639BA73B415756C0B61AD1BC23DFB2133835FBBB635737089235A20A81F3B0E39AB3C5F247CB2F7F93A5DB60FBEB33A8A0DA7A0AF5A3A8387 X-Mras: Ok X-Spam: undefined Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_luajit_1/2=5D_Fix_lua=5Fy?= =?utf-8?q?ield=28=29_from_C_hook=2E?= 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--f32195B5CaEd8a388e7ADbD6cFcAe50E1688028293 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkhpLCBTZXJnZXkhClRoYW5rcyBmb3IgdGhlIHBhdGNoIQpQbGVhc2UgY29uc2lkZXIgbXkgY29t bWVudHMgYmVsb3cuCsKgCj7CoAo+PkZyb206IE1pa2UgUGFsbCA8bWlrZT4KPj4KPj5SZXBvcnRl ZCBieSBKYXNvbiBDYXJyLgo+Pgo+PihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGRkNTAzMmVk ODQ0YzU2OTY0MzQ3Yzc5MTZkYjY2YjBlYjExZDgwOTEpCj4+Cj4+V2hlbiB3ZSBjYWxsIGBsdWFf eWllbGQoKWAgZnJvbSB0aGUgQyBob29rIHRoZSBhZGRpdGlvbmFsIGNvbnRpbnVhdGlvbgo+VHlw bzogcy9ob29rIHRoZS9ob29rLCBhbi8KPj5mcmFtZSBpcyBhZGRlZC4gVGhpcyBmcmFtZSBjb250 YWlucyBhIGNvbnRpbnVhdGlvbiBmdW5jdGlvbiwgUEMgd2hlcmUgd2UKPj5zaG91bGQgcmV0dXJu LCB0aHJlYWQgR0Mgb2JqZWN0IHRvIGNvbnRpbnVlLCBhbmQgdGhpcyBmcmFtZSB0eXBlIGFuZAo+ VHlwbzogcy90aHJlYWQvYSB0aHJlYWQvCj5UeXBvOiBzL3RoaXMgZnJhbWUvdGhlIGZyYW1lLwo+ PnNpemUgKHNlZSBkZXRhaWxzIGluIDxzcmMvbGpfZnJhbWUuaD4pLiBGb3Igbm9uLUdDNjQgbW9k ZSwgd2hlbiB3ZSBzZXQKPj50aGUgR0MgdGhyZWFkIG9uIHRoZSBMdWEgc3RhY2ssIHN0YWNrIHRv cCBpc24ndCBpbmNyZW1lbnRlZCwgc28gdGhlIEdDCj5UeXBvOiBzL3N0YWNrIHRvcC90aGUgc3Rh Y2sgdG9wLwo+PnRocmVhZCBvdmVyd3JpdGVzIHRoZSBQQyB0byByZXR1cm4uIEZvciB0aGUgR0M2 NCBtb2RlIHRoZSBpbmNyZW1lbnQgaXMKPj5taXNzaW5nIGJlZm9yZSBzZXR0aW5nIGZyYW1lIHR5 cGUgYW5kIHNpemUuCj4+Cj4+VGhpcyBwYXRjaGVzIGZpeGVzIHRoZSBiZWhhdmlvdXIgYnkgYWRk aW5nIG1pc3Npbmcgc2xvdCBpbmNyZW1lbnRpbmcuCj5UeXBvOiBzL3BhdGNoZXMvcGF0Y2gvCj5U eXBvOiBzL2FkZGluZy9hZGRpbmcgdGhlLwo+VHlwbzogcy9pbmNyZW1lbnRpbmcvaW5jcmVtZW50 YXRpb24vCj4+QWxzbywgaXQgaGFyZGVucyB0aGUgY29uZGl0aW9ucyBvZiB1c2luZyBgbGpfZXJy X3Rocm93KClgLCBhY2NvcmRpbmcgdGhlCj5UeXBvOiBzL2FjY29yZGluZyB0aGUvYWNjb3JkaW5n IHRvIHRoZS8KPj5hdmFpbGFiaWxpdHkgb2YgZXh0ZXJuYWwgdW53aW5kZXIuCj5TaWRlIG5vdGU6 IHNob3VsZCB3ZSB0ZXN0IHRoYXQgY2hhbmdlIHRvbz8KPj4KPj5UaGUgYmVoYXZpb3VyIGZvciB0 aGUgR0M2NCBtb2RlIGlzIHN0aWxsIHdyb25nIGR1ZSB0byBtaXNjYWxjdWxhdGlvbiBvZgo+VHlw bzogcy90byBtaXNjYWxjdWxhdGlvbi90byBhIG1pc2NhbGN1bGF0aW9uLwo+PnRoZSBzbG90IG9m IHRoZSBHQyB0aHJlYWQgb2JqZWN0LiBUaGlzIHdpbGwgYmUgZml4ZWQgaW4gdGhlIG5leHQKPj5j b21taXQuCj4+Cj4+U2VyZ2V5IEthcGx1bjoKPj4qIGFkZGVkIHRoZSBkZXNjcmlwdGlvbiBhbmQg dGhlIHRlc3QgZm9yIHRoZSBwcm9ibGVtCj4+Cj4+UGFydCBvZiB0YXJhbnRvb2wvdGFyYW50b29s Izg1MTYKPj4tLS0KPj7CoHNyYy9sal9hcGkuYyB8IDUgKy0KPj7CoC4uLi9maXgteWllbGQtYy1o b29rLXNjcmlwdC5sdWEgfCAxOSArKysrKysrCj4+wqAuLi4vdGFyYW50b29sLWMtdGVzdHMvZml4 LXlpZWxkLWMtaG9vay50ZXN0LmMgfCA1MyArKysrKysrKysrKysrKysrKysrCj4+wqAzIGZpbGVz IGNoYW5nZWQsIDc1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4+wqBjcmVhdGUgbW9k ZSAxMDA2NDQgdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9maXgteWllbGQtYy1ob29rLXNjcmlwdC5s dWEKPj7CoGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L3RhcmFudG9vbC1jLXRlc3RzL2ZpeC15aWVs ZC1jLWhvb2sudGVzdC5jCj4+Cj4+ZGlmZiAtLWdpdCBhL3NyYy9sal9hcGkuYyBiL3NyYy9sal9h cGkuYwo+PmluZGV4IGRjY2ZlNjJlLi44OTk5ODgxNSAxMDA2NDQKPj4tLS0gYS9zcmMvbGpfYXBp LmMKPj4rKysgYi9zcmMvbGpfYXBpLmMKPj5AQCAtMTI0MiwxMSArMTI0MiwxMiBAQCBMVUFfQVBJ IGludCBsdWFfeWllbGQobHVhX1N0YXRlICpMLCBpbnQgbnJlc3VsdHMpCj4+wqDCoMKgwqDCoMKg wqBzZXRjb250KHRvcCwgbGpfY29udF9ob29rKTsKPj7CoMKgwqDCoMKgwqDCoGlmIChMSl9GUjIp IHRvcCsrOwo+PsKgwqDCoMKgwqDCoMKgc2V0ZnJhbWVfcGModG9wLCBjZnJhbWVfcGMoY2YpLTEp Owo+Pi0gaWYgKExKX0ZSMikgdG9wKys7Cj4+KyB0b3ArKzsKPj7CoMKgwqDCoMKgwqDCoHNldGZy YW1lX2djKHRvcCwgb2JqMmdjbyhMKSwgTEpfVFRIUkVBRCk7Cj4+KyBpZiAoTEpfRlIyKSB0b3Ar KzsKPj7CoMKgwqDCoMKgwqDCoHNldGZyYW1lX2Z0c3oodG9wLCAoKGNoYXIgKikodG9wKzEpLShj aGFyICopTC0+YmFzZSkrRlJBTUVfQ09OVCk7Cj4+wqDCoMKgwqDCoMKgwqBMLT50b3AgPSBMLT5i YXNlID0gdG9wKzE7Cj4+LSNpZiBMSl9UQVJHRVRfWDY0Cj4+KyNpZiAoKGRlZmluZWQoX19HTlVD X18pIHx8IGRlZmluZWQoX19jbGFuZ19fKSkgJiYgKExKX1RBUkdFVF9YNjQgfHwgZGVmaW5lZChM VUFKSVRfVU5XSU5EX0VYVEVSTkFMKSkgJiYgIUxKX05PX1VOV0lORCkgfHwgTEpfVEFSR0VUX1dJ TkRPV1MKPj7CoMKgwqDCoMKgwqDCoGxqX2Vycl90aHJvdyhMLCBMVUFfWUlFTEQpOwo+PsKgI2Vs c2UKPj7CoMKgwqDCoMKgwqDCoEwtPmNmcmFtZSA9IE5VTEw7Cj4+ZGlmZiAtLWdpdCBhL3Rlc3Qv dGFyYW50b29sLWMtdGVzdHMvZml4LXlpZWxkLWMtaG9vay1zY3JpcHQubHVhIGIvdGVzdC90YXJh bnRvb2wtYy10ZXN0cy9maXgteWllbGQtYy1ob29rLXNjcmlwdC5sdWEKPj5uZXcgZmlsZSBtb2Rl IDEwMDY0NAo+PmluZGV4IDAwMDAwMDAwLi4xMjRlZWIxMAo+Pi0tLSAvZGV2L251bGwKPj4rKysg Yi90ZXN0L3RhcmFudG9vbC1jLXRlc3RzL2ZpeC15aWVsZC1jLWhvb2stc2NyaXB0Lmx1YQo+PkBA IC0wLDAgKzEsMTkgQEAKPj4rLS0gQXV4aWxpYXJ5IHNjcmlwdCB0byBwcm92aWRlIEx1YSBmdW5j dGlvbnMgdG8gYmUgdXNlZCBpbiB0aGUKPj4rLS0gdGVzdCA8Zml4LXlpZWxkLWMtaG9vay50ZXN0 LmM+Lgo+Pitsb2NhbCBNID0ge30KPj4rCj4+Ky0tIFRoZSBmdW5jdGlvbiB0byBjYWxsLCB3aGVu IGxpbmUgaG9vayAoY2FsbHMgYGx1YV95aWVsZCgpYCkgaXMKPj4rLS0gc2V0Lgo+PitNLnlpZWxk X2luX2NfaG9vayA9IGZ1bmN0aW9uKCkKPj4rIGxvY2FsIGNvID0gY29yb3V0aW5lLmNyZWF0ZShm dW5jdGlvbigpCj4+KyAtLSBKdXN0IHNvbWUgcGF5bG9hZCwgZG9uJ3QgcmVhYWx5IG1hdHRlci4K PlR5cG86IHMvcmVhYWx5L3JlYWxseS8KPj4rIGxvY2FsIF8gPSB0b3N0cmluZygxKQo+PisgZW5k KQo+PisgLS0gRW50ZXIgY29yb3V0aW5lIGFuZCB5aWVsZCBmcm9tIHRoZSAxc3QgbGluZS4KPj4r IGNvcm91dGluZS5yZXN1bWUoY28pCj4+KyAtLSBUcnkgdG8gZ2V0IHRoZSBQQyB0byByZXR1cm4g YW5kIGNvbnRpbnVlIHRvIGV4ZWN1dGUgdGhlIGZpcnN0Cj4+KyAtLSBsaW5lIChzdGlsbCB3aWxs IHlpZWxkIGZyb20gdGhlIGhvb2spLgo+VHlwbzogcy9zdGlsbCB3aWxsL2l0IHdpbGwgc3RpbGwv Cj4+KyBjb3JvdXRpbmUucmVzdW1lKGNvKQo+PitlbmQKPj4rCj4+K3JldHVybiBNCj4+ZGlmZiAt LWdpdCBhL3Rlc3QvdGFyYW50b29sLWMtdGVzdHMvZml4LXlpZWxkLWMtaG9vay50ZXN0LmMgYi90 ZXN0L3RhcmFudG9vbC1jLXRlc3RzL2ZpeC15aWVsZC1jLWhvb2sudGVzdC5jCj4+bmV3IGZpbGUg bW9kZSAxMDA2NDQKPj5pbmRleCAwMDAwMDAwMC4uOTA2ODM2MGUKPj4tLS0gL2Rldi9udWxsCj4+ KysrIGIvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9maXgteWllbGQtYy1ob29rLnRlc3QuYwo+PkBA IC0wLDAgKzEsNTMgQEAKPj4rI2luY2x1ZGUgImx1YS5oIgo+PisKPj4rI2luY2x1ZGUgInRlc3Qu aCIKPj4rI2luY2x1ZGUgInV0aWxzLmgiCj4+Kwo+PisjZGVmaW5lIFVOVVNFRCh4KSAoKHZvaWQp KHgpKQo+PisKPj4rLyoKPj4rICogVGhpcyB0ZXN0IGRlbW9uc3RyYXRlcyBMdWFKSVQgaW5jb3Jy ZWN0IGJlaGF2aW91ciwgd2hlbiBjYWxsaW5nCj5UeXBvOiBzL0x1YUpJVOKAmXMvCj4+KyAqIGBs dWFfeWllbGQoKWAgaW5zaWRlIEMgaG9vay4KPlR5cG86IHMvaW5zaWRlL2luc2lkZSBhLwo+Pisg KiBTZWUgIGh0dHBzOi8vd3d3LmZyZWVsaXN0cy5vcmcvcG9zdC9sdWFqaXQvQlVHLVVuYWJsZS10 by15aWVsZC1pbi1hLWRlYnVnLWhvb2staW4tbGF0ZXN0LTIxLWJldGEKPj4rICogZm9yIGRldGFp bHMuCj4+KyAqLwo+PisKPj4rc3RhdGljIGx1YV9TdGF0ZSAqbWFpbl9MID0gTlVMTDsKPj4rCj4+ K3N0YXRpYyB2b2lkIHlpZWxkKGx1YV9TdGF0ZSAqTCwgbHVhX0RlYnVnICphcikKPj4rewo+Pisg VU5VU0VEKGFyKTsKPj4rIC8qIFdhaXQgZm9yIHRoZSBvdGhlciBjb3JvdXRpbmUgYW5kIHlpZWxk LiAqLwo+PisgaWYgKEwgIT0gbWFpbl9MKQo+PisgbHVhX3lpZWxkKEwsIDApOwo+Pit9Cj4+Kwo+ PisvKgo+PisgKiBYWFg6IFRoaXMgdGVzdCBzdGlsbCBsZWFkcyB0byBjb3JlIGR1bXAgaW4gdGhl IEdDNjQgbW9kZS4KPlR5cG86IHMvdG8gY29yZS90byBhIGNvcmUvCj4+KyAqIFRoaXMgd2lsbCBi ZSBmaXhlZCBpbiB0aGUgbmV4dCBjb21taXQuCj4+KyAqLwo+PitzdGF0aWMgaW50IHlpZWxkX2lu X2NfaG9vayh2b2lkICp0ZXN0X3N0YXRlKQo+Pit7Cj4+KyBsdWFfU3RhdGUgKkwgPSB0ZXN0X3N0 YXRlOwo+PisgdXRpbHNfZ2V0X2F1eF9sZnVuYyhMKTsKPj4rIGx1YV9zZXRob29rKEwsIHlpZWxk LCBMVUFfTUFTS0xJTkUsIDApOwo+PisgbHVhX2NhbGwoTCwgMCwgMCk7Cj4+KyAvKiBSZW1vdmUg aG9vay4gKi8KPj4rIGx1YV9zZXRob29rKEwsIHlpZWxkLCAwLCAwKTsKPj4rIHJldHVybiBURVNU X0VYSVRfU1VDQ0VTUzsKPj4rfQo+PisKPj4raW50IG1haW4odm9pZCkKPj4rewo+PisgbHVhX1N0 YXRlICpMID0gdXRpbHNfbHVhX2luaXQoKTsKPj4rIHV0aWxzX2xvYWRfYXV4X3NjcmlwdChMLCAi Zml4LXlpZWxkLWMtaG9vay1zY3JpcHQubHVhIik7Cj4+KyBtYWluX0wgPSBMOwo+PisKPj4rIGNv bnN0IHN0cnVjdCB0ZXN0X3VuaXQgdGdyb3VwW10gPSB7Cj4+KyB0ZXN0X3VuaXRfZGVmKHlpZWxk X2luX2NfaG9vaykKPj4rIH07Cj4+Kwo+PisgY29uc3QgaW50IHRlc3RfcmVzdWx0ID0gdGVzdF9y dW5fZ3JvdXAodGdyb3VwLCBMKTsKPj4rIHV0aWxzX2x1YV9jbG9zZShMKTsKPj4rIHJldHVybiB0 ZXN0X3Jlc3VsdDsKPj4rfQo+Pi0tCj4+Mi4zNC4xCj4tLQo+QmVzdCByZWdhcmRzLAo+TWF4aW0g S29rcnlhc2hraW4KPsKg ----ALT--f32195B5CaEd8a388e7ADbD6cFcAe50E1688028293 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+SGksIFNlcmdleSE8L2Rpdj48ZGl2PlRoYW5rcyBmb3IgdGhlIHBh dGNoITwvZGl2PjxkaXY+UGxlYXNlIGNvbnNpZGVyIG15IGNvbW1lbnRzIGJlbG93LjwvZGl2Pjxk aXY+Jm5ic3A7PC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAj MDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj4mbmJzcDs8Ymxv Y2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4 OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2IGlkPSIiPjxkaXYgY2xhc3M9ImpzLWhlbHBlciBq cy1yZWFkbXNnLW1zZyI+PGRpdj48ZGl2IGlkPSJzdHlsZV8xNjg3NDQ0NDE5MjAyNjE5MzY0OF9C T0RZIj5Gcm9tOiBNaWtlIFBhbGwgJmx0O21pa2UmZ3Q7PGJyPjxicj5SZXBvcnRlZCBieSBKYXNv biBDYXJyLjxicj48YnI+KGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZGQ1MDMyZWQ4NDRjNTY5 NjQzNDdjNzkxNmRiNjZiMGViMTFkODA5MSk8YnI+PGJyPldoZW4gd2UgY2FsbCBgbHVhX3lpZWxk KClgIGZyb20gdGhlIEMgaG9vayB0aGUgYWRkaXRpb25hbCBjb250aW51YXRpb248L2Rpdj48L2Rp dj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj5UeXBvOiBzL2hvb2sgdGhlL2hvb2ssIGFu LzwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsg bWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVs cGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXY+ZnJhbWUgaXMgYWRkZWQuIFRoaXMgZnJhbWUg Y29udGFpbnMgYSBjb250aW51YXRpb24gZnVuY3Rpb24sIFBDIHdoZXJlIHdlPGJyPnNob3VsZCBy ZXR1cm4sIHRocmVhZCBHQyBvYmplY3QgdG8gY29udGludWUsIGFuZCB0aGlzIGZyYW1lIHR5cGUg YW5kPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+VHlwbzogcy90aHJl YWQvYSB0aHJlYWQvPC9kaXY+PGRpdj5UeXBvOiBzL3RoaXMgZnJhbWUvdGhlIGZyYW1lLzwvZGl2 PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2lu OjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpz LXJlYWRtc2ctbXNnIj48ZGl2PjxkaXY+c2l6ZSAoc2VlIGRldGFpbHMgaW4gJmx0O3NyYy9sal9m cmFtZS5oJmd0OykuIEZvciBub24tR0M2NCBtb2RlLCB3aGVuIHdlIHNldDxicj50aGUgR0MgdGhy ZWFkIG9uIHRoZSBMdWEgc3RhY2ssIHN0YWNrIHRvcCBpc24ndCBpbmNyZW1lbnRlZCwgc28gdGhl IEdDPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+VHlwbzogcy9zdGFj ayB0b3AvdGhlIHN0YWNrIHRvcC88L2Rpdj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6 MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2 PjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+PGRpdj48ZGl2PnRocmVhZCBv dmVyd3JpdGVzIHRoZSBQQyB0byByZXR1cm4uIEZvciB0aGUgR0M2NCBtb2RlIHRoZSBpbmNyZW1l bnQgaXM8YnI+bWlzc2luZyBiZWZvcmUgc2V0dGluZyBmcmFtZSB0eXBlIGFuZCBzaXplLjxicj48 YnI+VGhpcyBwYXRjaGVzIGZpeGVzIHRoZSBiZWhhdmlvdXIgYnkgYWRkaW5nIG1pc3Npbmcgc2xv dCBpbmNyZW1lbnRpbmcuPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+ VHlwbzogcy9wYXRjaGVzL3BhdGNoLzwvZGl2PjxkaXY+VHlwbzogcy9hZGRpbmcvYWRkaW5nIHRo ZS88L2Rpdj48ZGl2PlR5cG86IHMvaW5jcmVtZW50aW5nL2luY3JlbWVudGF0aW9uLzwvZGl2Pjxi bG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEw cHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJl YWRtc2ctbXNnIj48ZGl2PjxkaXY+QWxzbywgaXQgaGFyZGVucyB0aGUgY29uZGl0aW9ucyBvZiB1 c2luZyBgbGpfZXJyX3Rocm93KClgLCBhY2NvcmRpbmcgdGhlPC9kaXY+PC9kaXY+PC9kaXY+PC9k aXY+PC9ibG9ja3F1b3RlPjxkaXY+VHlwbzogcy9hY2NvcmRpbmcgdGhlL2FjY29yZGluZyB0byB0 aGUvPC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2 OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1o ZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdj5hdmFpbGFiaWxpdHkgb2YgZXh0ZXJuYWwg dW53aW5kZXIuPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+U2lkZSBu b3RlOiBzaG91bGQgd2UgdGVzdCB0aGF0IGNoYW5nZSB0b28/PC9kaXY+PGJsb2NrcXVvdGUgc3R5 bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzow IDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxk aXY+PGRpdj48YnI+VGhlIGJlaGF2aW91ciBmb3IgdGhlIEdDNjQgbW9kZSBpcyBzdGlsbCB3cm9u ZyBkdWUgdG8gbWlzY2FsY3VsYXRpb24gb2Y8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2Nr cXVvdGU+PGRpdj5UeXBvOiBzL3RvIG1pc2NhbGN1bGF0aW9uL3RvIGEgbWlzY2FsY3VsYXRpb24v PC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBt YXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxw ZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdj50aGUgc2xvdCBvZiB0aGUgR0MgdGhyZWFkIG9i amVjdC4gVGhpcyB3aWxsIGJlIGZpeGVkIGluIHRoZSBuZXh0PGJyPmNvbW1pdC48YnI+PGJyPlNl cmdleSBLYXBsdW46PGJyPiogYWRkZWQgdGhlIGRlc2NyaXB0aW9uIGFuZCB0aGUgdGVzdCBmb3Ig dGhlIHByb2JsZW08YnI+PGJyPlBhcnQgb2YgdGFyYW50b29sL3RhcmFudG9vbCM4NTE2PGJyPi0t LTxicj4mbmJzcDtzcmMvbGpfYXBpLmMgfCA1ICstPGJyPiZuYnNwOy4uLi9maXgteWllbGQtYy1o b29rLXNjcmlwdC5sdWEgfCAxOSArKysrKysrPGJyPiZuYnNwOy4uLi90YXJhbnRvb2wtYy10ZXN0 cy9maXgteWllbGQtYy1ob29rLnRlc3QuYyB8IDUzICsrKysrKysrKysrKysrKysrKys8YnI+Jm5i c3A7MyBmaWxlcyBjaGFuZ2VkLCA3NSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKTxicj4m bmJzcDtjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9maXgteWllbGQt Yy1ob29rLXNjcmlwdC5sdWE8YnI+Jm5ic3A7Y3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3QvdGFyYW50 b29sLWMtdGVzdHMvZml4LXlpZWxkLWMtaG9vay50ZXN0LmM8YnI+PGJyPmRpZmYgLS1naXQgYS9z cmMvbGpfYXBpLmMgYi9zcmMvbGpfYXBpLmM8YnI+aW5kZXggZGNjZmU2MmUuLjg5OTk4ODE1IDEw MDY0NDxicj4tLS0gYS9zcmMvbGpfYXBpLmM8YnI+KysrIGIvc3JjL2xqX2FwaS5jPGJyPkBAIC0x MjQyLDExICsxMjQyLDEyIEBAIExVQV9BUEkgaW50IGx1YV95aWVsZChsdWFfU3RhdGUgKkwsIGlu dCBucmVzdWx0cyk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 c2V0Y29udCh0b3AsIGxqX2NvbnRfaG9vayk7PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwO2lmIChMSl9GUjIpIHRvcCsrOzxicj4mbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtzZXRmcmFtZV9wYyh0b3AsIGNmcmFtZV9wYyhjZiktMSk7 PGJyPi0gaWYgKExKX0ZSMikgdG9wKys7PGJyPisgdG9wKys7PGJyPiZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3NldGZyYW1lX2djKHRvcCwgb2JqMmdjbyhMKSwgTEpf VFRIUkVBRCk7PGJyPisgaWYgKExKX0ZSMikgdG9wKys7PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwO3NldGZyYW1lX2Z0c3oodG9wLCAoKGNoYXIgKikodG9wKzEp LShjaGFyICopTC0mZ3Q7YmFzZSkrRlJBTUVfQ09OVCk7PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwO0wtJmd0O3RvcCA9IEwtJmd0O2Jhc2UgPSB0b3ArMTs8YnI+ LSNpZiBMSl9UQVJHRVRfWDY0PGJyPisjaWYgKChkZWZpbmVkKF9fR05VQ19fKSB8fCBkZWZpbmVk KF9fY2xhbmdfXykpICZhbXA7JmFtcDsgKExKX1RBUkdFVF9YNjQgfHwgZGVmaW5lZChMVUFKSVRf VU5XSU5EX0VYVEVSTkFMKSkgJmFtcDsmYW1wOyAhTEpfTk9fVU5XSU5EKSB8fCBMSl9UQVJHRVRf V0lORE9XUzxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtsal9l cnJfdGhyb3coTCwgTFVBX1lJRUxEKTs8YnI+Jm5ic3A7I2Vsc2U8YnI+Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TC0mZ3Q7Y2ZyYW1lID0gTlVMTDs8YnI+ZGlmZiAt LWdpdCBhL3Rlc3QvdGFyYW50b29sLWMtdGVzdHMvZml4LXlpZWxkLWMtaG9vay1zY3JpcHQubHVh IGIvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9maXgteWllbGQtYy1ob29rLXNjcmlwdC5sdWE8YnI+ bmV3IGZpbGUgbW9kZSAxMDA2NDQ8YnI+aW5kZXggMDAwMDAwMDAuLjEyNGVlYjEwPGJyPi0tLSAv ZGV2L251bGw8YnI+KysrIGIvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9maXgteWllbGQtYy1ob29r LXNjcmlwdC5sdWE8YnI+QEAgLTAsMCArMSwxOSBAQDxicj4rLS0gQXV4aWxpYXJ5IHNjcmlwdCB0 byBwcm92aWRlIEx1YSBmdW5jdGlvbnMgdG8gYmUgdXNlZCBpbiB0aGU8YnI+Ky0tIHRlc3QgJmx0 O2ZpeC15aWVsZC1jLWhvb2sudGVzdC5jJmd0Oy48YnI+K2xvY2FsIE0gPSB7fTxicj4rPGJyPist LSBUaGUgZnVuY3Rpb24gdG8gY2FsbCwgd2hlbiBsaW5lIGhvb2sgKGNhbGxzIGBsdWFfeWllbGQo KWApIGlzPGJyPistLSBzZXQuPGJyPitNLnlpZWxkX2luX2NfaG9vayA9IGZ1bmN0aW9uKCk8YnI+ KyBsb2NhbCBjbyA9IGNvcm91dGluZS5jcmVhdGUoZnVuY3Rpb24oKTwvZGl2PjwvZGl2PjwvZGl2 PjwvZGl2PjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNv bGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2PjxkaXYg Y2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+PGRpdj48ZGl2PisgLS0gSnVzdCBzb21l IHBheWxvYWQsIGRvbid0IHJlYWFseSBtYXR0ZXIuPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9i bG9ja3F1b3RlPjxkaXY+VHlwbzogcy9yZWFhbHkvcmVhbGx5LzwvZGl2PjxibG9ja3F1b3RlIHN0 eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6 MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48 ZGl2PjxkaXY+KyBsb2NhbCBfID0gdG9zdHJpbmcoMSk8YnI+KyBlbmQpPGJyPisgLS0gRW50ZXIg Y29yb3V0aW5lIGFuZCB5aWVsZCBmcm9tIHRoZSAxc3QgbGluZS48YnI+KyBjb3JvdXRpbmUucmVz dW1lKGNvKTxicj4rIC0tIFRyeSB0byBnZXQgdGhlIFBDIHRvIHJldHVybiBhbmQgY29udGludWUg dG8gZXhlY3V0ZSB0aGUgZmlyc3Q8YnI+KyAtLSBsaW5lIChzdGlsbCB3aWxsIHlpZWxkIGZyb20g dGhlIGhvb2spLjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48ZGl2PlR5cG86 IHMvc3RpbGwgd2lsbC9pdCB3aWxsIHN0aWxsLzwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3Jk ZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBw eDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXY+ KyBjb3JvdXRpbmUucmVzdW1lKGNvKTxicj4rZW5kPGJyPis8YnI+K3JldHVybiBNPGJyPmRpZmYg LS1naXQgYS90ZXN0L3RhcmFudG9vbC1jLXRlc3RzL2ZpeC15aWVsZC1jLWhvb2sudGVzdC5jIGIv dGVzdC90YXJhbnRvb2wtYy10ZXN0cy9maXgteWllbGQtYy1ob29rLnRlc3QuYzxicj5uZXcgZmls ZSBtb2RlIDEwMDY0NDxicj5pbmRleCAwMDAwMDAwMC4uOTA2ODM2MGU8YnI+LS0tIC9kZXYvbnVs bDxicj4rKysgYi90ZXN0L3RhcmFudG9vbC1jLXRlc3RzL2ZpeC15aWVsZC1jLWhvb2sudGVzdC5j PGJyPkBAIC0wLDAgKzEsNTMgQEA8YnI+KyNpbmNsdWRlICJsdWEuaCI8YnI+Kzxicj4rI2luY2x1 ZGUgInRlc3QuaCI8YnI+KyNpbmNsdWRlICJ1dGlscy5oIjxicj4rPGJyPisjZGVmaW5lIFVOVVNF RCh4KSAoKHZvaWQpKHgpKTxicj4rPGJyPisvKjxicj4rICogVGhpcyB0ZXN0IGRlbW9uc3RyYXRl cyBMdWFKSVQgaW5jb3JyZWN0IGJlaGF2aW91ciwgd2hlbiBjYWxsaW5nPC9kaXY+PC9kaXY+PC9k aXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+VHlwbzogcy9MdWFKSVTigJlzLzwvZGl2PjxibG9j a3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7 IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRt c2ctbXNnIj48ZGl2PjxkaXY+KyAqIGBsdWFfeWllbGQoKWAgaW5zaWRlIEMgaG9vay48L2Rpdj48 L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj5UeXBvOiBzL2luc2lkZS9pbnNpZGUg YS88L2Rpdj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7 IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2PjxkaXYgY2xhc3M9ImpzLWhl bHBlciBqcy1yZWFkbXNnLW1zZyI+PGRpdj48ZGl2PisgKiBTZWUgPGEgaHJlZj0iaHR0cHM6Ly93 d3cuZnJlZWxpc3RzLm9yZy9wb3N0L2x1YWppdC9CVUctVW5hYmxlLXRvLXlpZWxkLWluLWEtZGVi dWctaG9vay1pbi1sYXRlc3QtMjEtYmV0YSIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vd3d3LmZy ZWVsaXN0cy5vcmcvcG9zdC9sdWFqaXQvQlVHLVVuYWJsZS10by15aWVsZC1pbi1hLWRlYnVnLWhv b2staW4tbGF0ZXN0LTIxLWJldGE8L2E+PGJyPisgKiBmb3IgZGV0YWlscy48YnI+KyAqLzxicj4r PGJyPitzdGF0aWMgbHVhX1N0YXRlICptYWluX0wgPSBOVUxMOzxicj4rPGJyPitzdGF0aWMgdm9p ZCB5aWVsZChsdWFfU3RhdGUgKkwsIGx1YV9EZWJ1ZyAqYXIpPGJyPit7PGJyPisgVU5VU0VEKGFy KTs8YnI+KyAvKiBXYWl0IGZvciB0aGUgb3RoZXIgY29yb3V0aW5lIGFuZCB5aWVsZC4gKi88YnI+ KyBpZiAoTCAhPSBtYWluX0wpPGJyPisgbHVhX3lpZWxkKEwsIDApOzxicj4rfTxicj4rPGJyPisv Kjxicj4rICogWFhYOiBUaGlzIHRlc3Qgc3RpbGwgbGVhZHMgdG8gY29yZSBkdW1wIGluIHRoZSBH QzY0IG1vZGUuPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+VHlwbzog cy90byBjb3JlL3RvIGEgY29yZS88L2Rpdj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6 MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2 PjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+PGRpdj48ZGl2PisgKiBUaGlz IHdpbGwgYmUgZml4ZWQgaW4gdGhlIG5leHQgY29tbWl0Ljxicj4rICovPGJyPitzdGF0aWMgaW50 IHlpZWxkX2luX2NfaG9vayh2b2lkICp0ZXN0X3N0YXRlKTxicj4rezxicj4rIGx1YV9TdGF0ZSAq TCA9IHRlc3Rfc3RhdGU7PGJyPisgdXRpbHNfZ2V0X2F1eF9sZnVuYyhMKTs8YnI+KyBsdWFfc2V0 aG9vayhMLCB5aWVsZCwgTFVBX01BU0tMSU5FLCAwKTs8YnI+KyBsdWFfY2FsbChMLCAwLCAwKTs8 YnI+KyAvKiBSZW1vdmUgaG9vay4gKi88YnI+KyBsdWFfc2V0aG9vayhMLCB5aWVsZCwgMCwgMCk7 PGJyPisgcmV0dXJuIFRFU1RfRVhJVF9TVUNDRVNTOzxicj4rfTxicj4rPGJyPitpbnQgbWFpbih2 b2lkKTxicj4rezxicj4rIGx1YV9TdGF0ZSAqTCA9IHV0aWxzX2x1YV9pbml0KCk7PGJyPisgdXRp bHNfbG9hZF9hdXhfc2NyaXB0KEwsICJmaXgteWllbGQtYy1ob29rLXNjcmlwdC5sdWEiKTs8YnI+ KyBtYWluX0wgPSBMOzxicj4rPGJyPisgY29uc3Qgc3RydWN0IHRlc3RfdW5pdCB0Z3JvdXBbXSA9 IHs8YnI+KyB0ZXN0X3VuaXRfZGVmKHlpZWxkX2luX2NfaG9vayk8YnI+KyB9Ozxicj4rPGJyPisg Y29uc3QgaW50IHRlc3RfcmVzdWx0ID0gdGVzdF9ydW5fZ3JvdXAodGdyb3VwLCBMKTs8YnI+KyB1 dGlsc19sdWFfY2xvc2UoTCk7PGJyPisgcmV0dXJuIHRlc3RfcmVzdWx0Ozxicj4rfTxicj4tLTxi cj4yLjM0LjE8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj48ZGl2Pi0t PGJyPkJlc3QgcmVnYXJkcyw8L2Rpdj48ZGl2Pk1heGltIEtva3J5YXNoa2luPC9kaXY+PC9kaXY+ PGRpdj4mbmJzcDs8L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PC9CT0RZPjwvSFRNTD4K ----ALT--f32195B5CaEd8a388e7ADbD6cFcAe50E1688028293--