From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 7A448436A1 for ; Tue, 21 Jun 2022 08:29:06 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CFEBA68B661; Tue, 21 Jun 2022 11:29:03 +0300 (EEST) Received: from out162-62-57-137.mail.qq.com (out162-62-57-137.mail.qq.com [162.62.57.137]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 664E868B27B for ; Tue, 21 Jun 2022 11:28:41 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1655800118; bh=IrH1eVmyUYuiD1eN/TPZGSdCT6+UfGr3yHsKv+FUOAE=; h=Subject:From:In-Reply-To:Date:References:To; b=A/W78F64DGu0CnMoXhOqexrBQFIEa1WR8qpZV39qwF1y8Ru6/T/rq2NZTvbBNs/YG aHYwe63DlsJiiU7i+njcyBoPhw6FAnFKMeUH5yvtHERndfEp0rH5TfZ6qvj3tRdNTU A8X2iRAldeFwA30k882gLpbdVvJanM8flK4SVT28= Received: from [192.168.255.10] ([59.37.125.121]) by newxmesmtplogicsvrsza31.qq.com (NewEsmtp) with SMTP id 72526CE6; Tue, 21 Jun 2022 16:28:37 +0800 X-QQ-mid: xmsmtpt1655800117tqgpdavrk Message-ID: X-QQ-XMAILINFO: NvKyM24IHTKSOQ05ffKLHPylmsBh6g3+nhOQIZKihEy+8lskISGVbnZ88Qdt9K IQrfYDT+5v44b/c8ccHXcbgdD7M+yM/tl5Dg7onhJ01igdCbXrB/ZRLPYrQguouHHSMjZybWym2r Z/P70uDZHioZTfE36h7TC+/mqesTJtlM6O4AiQHG4udrZ7z6dBvMSJS332DFYBMPC+kS8Yom+sh/ pTcaMdag21BtEFM/ZYievkS5GQO9w3OOUoQpRV5/6iQKrM78qtjsny8if/ypeN5bIr3MXfIECbNx +oEY08arviQQdXOIwP6+Grd5qrkmzWxfRAKG7Qo5P32hMw4YnwJPLKy7m/JziqNZmI8FKRwZBesu tnc2EYrdUZbPfUBktyPq0iIVd2obh0mCWHgnPOFZcnpMQs9R5VVC721TCFE5WuhqfUT99HXCwjcY FhDl0Oa7QsCcX4+PK6aCTYNaL8c+H4vPP8ekkZG5jneKtlB2/RQaB5DhvXB3FYs1sqWLKmlEPEwK 3PD3q1lFjxKrg3+5nT9YL+Aw7Bs3gyd+Qlj9gGrhIrdGr450RHbzDNZpqnMk7R+8oBPlInBLzqIA N/F0sit1AubhAr48Dras6R0jh0pHl+UbnjobEIzVPpfdSL/E6ihHfScDbrzdkxUDO7JV7hrWLNta 1uhg3GTF7RcF/Av/MvjRzCKQNE9jr94XWUrqk1E3GQY0zZlkdaZgq0Ys9FvKnQQW4f1Uq4NmW07m OfNFSCCfKMY6VF0Pdav5xJ3GyF+IUzgw4pxp5JYHD68lnhtHs2J17EbhLteRuWoTlpJ3qH35jKK8 dJJLpB1HXatc4LUwCZds4Eizur7DeZGt0Yq7X6PmDHfTa+mhVjlcEoSg9xh66Mkz7jlT8x0ebluF ZroEFYKuT39dTZTy/fDxz24ThDLR5OVaErVgR/mN4J9hmlGXQywxeemOm9+Crie1edg5I1LHAhzs B/6QeAodTkLhqLzopj+dBUi60p2MUQbTyUigAG/VkXTGnv3vmuMLKSaYGBcbvFgJliOlCHuxE= Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\)) From: =?utf-8?B?InpoaWxpemhhbyjotbXlv5fnq4spIg==?= X-Priority: 3 In-Reply-To: Date: Tue, 21 Jun 2022 16:28:37 +0800 X-OQ-MSGID: <76E4B3C8-70A9-4CCF-99F9-1E86FA28D80D@foxmail.com> References: <20220613033636.84271-1-quinkblack@foxmail.com> <1b0ddae1.1fbb.1818426f4d5.Coremail.hwrenx@126.com> To: FFmpeg development discussions and patches X-Mailer: Apple Mail (2.3654.60.0.2.21) Subject: Re: [FFmpeg-devel] [PATCH v3 3/5] avcodec/avs2_parser: parse more info X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Cgo+IE9uIEp1biAyMSwgMjAyMiwgYXQgNDoyNSBQTSwgemhpbGl6aGFvKOi1teW/l+eriykgPHF1 aW5rYmxhY2tAZm94bWFpbC5jb20+IHdyb3RlOgo+IAo+PiBPbiBKdW4gMjEsIDIwMjIsIGF0IDEw OjQ1IEFNLCBod3JlbiA8aHdyZW54QDEyNi5jb20+IHdyb3RlOgo+PiAKPj4gQXQgMjAyMi0wNi0x MyAxMTozNjozNCwgIlpoYW8gWmhpbGkiIDxxdWlua2JsYWNrQGZveG1haWwuY29tPiB3cm90ZToK Pj4+IEluY2x1ZGluZyB2aWRlbyByZXNvbHV0aW9uLCBmcmFtZXJhdGUgYW5kIHBpY3R1cmUgdHlw ZSwgZXRjLgo+Pj4gCj4+PiBTaWduZWQtb2ZmLWJ5OiBaaGFvIFpoaWxpIDx6aGlsaXpoYW9AdGVu Y2VudC5jb20+Cj4+PiAtLS0KPj4+IGxpYmF2Y29kZWMvTWFrZWZpbGUgICAgICB8ICAgMiArLQo+ Pj4gbGliYXZjb2RlYy9hdnMyLmMgICAgICAgIHwgIDQyICsrKysrKysrKysrKysrKysKPj4+IGxp YmF2Y29kZWMvYXZzMi5oICAgICAgICB8ICAxMCArKysrCj4+PiBsaWJhdmNvZGVjL2F2czJfcGFy c2VyLmMgfCAxMDUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+PiA0 IGZpbGVzIGNoYW5nZWQsIDE1OCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+PiBjcmVh dGUgbW9kZSAxMDA2NDQgbGliYXZjb2RlYy9hdnMyLmMKPj4+IAo+Pj4gZGlmZiAtLWdpdCBhL2xp YmF2Y29kZWMvTWFrZWZpbGUgYi9saWJhdmNvZGVjL01ha2VmaWxlCj4+PiBpbmRleCAzYjhmN2I1 ZTAxLi42Y2M2Zjg0MzdjIDEwMDY0NAo+Pj4gLS0tIGEvbGliYXZjb2RlYy9NYWtlZmlsZQo+Pj4g KysrIGIvbGliYXZjb2RlYy9NYWtlZmlsZQo+Pj4gQEAgLTExMTQsNyArMTExNCw3IEBAIE9CSlMt JChDT05GSUdfQUMzX1BBUlNFUikgICAgICAgICAgICAgICs9IGFhY19hYzNfcGFyc2VyLm8gYWMz dGFiLm8gXAo+Pj4gT0JKUy0kKENPTkZJR19BRFhfUEFSU0VSKSAgICAgICAgICAgICAgKz0gYWR4 X3BhcnNlci5vIGFkeC5vCj4+PiBPQkpTLSQoQ09ORklHX0FNUl9QQVJTRVIpICAgICAgICAgICAg ICArPSBhbXJfcGFyc2VyLm8KPj4+IE9CSlMtJChDT05GSUdfQVYxX1BBUlNFUikgICAgICAgICAg ICAgICs9IGF2MV9wYXJzZXIubwo+Pj4gLU9CSlMtJChDT05GSUdfQVZTMl9QQVJTRVIpICAgICAg ICAgICAgICs9IGF2czJfcGFyc2VyLm8KPj4+ICtPQkpTLSQoQ09ORklHX0FWUzJfUEFSU0VSKSAg ICAgICAgICAgICArPSBhdnMyLm8gYXZzMl9wYXJzZXIubwo+Pj4gT0JKUy0kKENPTkZJR19BVlMz X1BBUlNFUikgICAgICAgICAgICAgKz0gYXZzM19wYXJzZXIubwo+Pj4gT0JKUy0kKENPTkZJR19C TVBfUEFSU0VSKSAgICAgICAgICAgICAgKz0gYm1wX3BhcnNlci5vCj4+PiBPQkpTLSQoQ09ORklH X0NBVlNWSURFT19QQVJTRVIpICAgICAgICArPSBjYXZzX3BhcnNlci5vCj4+PiBkaWZmIC0tZ2l0 IGEvbGliYXZjb2RlYy9hdnMyLmMgYi9saWJhdmNvZGVjL2F2czIuYwo+Pj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQKPj4+IGluZGV4IDAwMDAwMDAwMDAuLmVhZDg2ODdkMGEKPj4+IC0tLSAvZGV2L251 bGwKPj4+ICsrKyBiL2xpYmF2Y29kZWMvYXZzMi5jCj4+PiBAQCAtMCwwICsxLDQyIEBACj4+PiAr LyoKPj4+ICsgKiBBVlMyIHJlbGF0ZWQgZGVmaW5pdGlvbnMKPj4+ICsgKgo+Pj4gKyAqIENvcHly aWdodCAoQykgMjAyMiBaaGFvIFpoaWxpLCA8emhpbGl6aGFvQHRlbmNlbnQuY29tPgo+Pj4gKyAq Cj4+PiArICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgo+Pj4gKyAqCj4+PiArICogRkZt cGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgo+Pj4g KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMKPj4+ICsgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIKPj4+ICsgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3Ig KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPj4+ICsgKgo+Pj4gKyAqIEZGbXBl ZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo+Pj4g KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCj4+PiArICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKPj4+ICsgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+Pj4gKyAqCj4+PiArICogWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+Pj4gKyAq IExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m dHdhcmUKPj4+ICsgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo IEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCj4+PiArICovCj4+PiArCj4+PiArI2lu Y2x1ZGUgImF2czIuaCIKPj4+ICsKPj4+ICtjb25zdCBBVlJhdGlvbmFsIGZmX2F2czJfZnJhbWVf cmF0ZV90YWJbMTZdID0gewo+Pj4gKyAgICB7IDAgICAgLCAwICAgfSwgLy8gZm9yYmlkCj4+PiAr ICAgIHsgMjQwMDAsIDEwMDF9LAo+Pj4gKyAgICB7IDI0ICAgLCAxICAgfSwKPj4+ICsgICAgeyAy NSAgICwgMSAgIH0sCj4+PiArICAgIHsgMzAwMDAsIDEwMDF9LAo+Pj4gKyAgICB7IDMwICAgLCAx ICAgfSwKPj4+ICsgICAgeyA1MCAgICwgMSAgIH0sCj4+PiArICAgIHsgNjAwMDAsIDEwMDF9LAo+ Pj4gKyAgICB7IDYwICAgLCAxICAgfSwKPj4+ICsgICAgeyAxMDAgICwgMSAgIH0sCj4+PiArICAg IHsgMTIwICAsIDEgICB9LAo+Pj4gKyAgICB7IDIwMCAgLCAxICAgfSwKPj4+ICsgICAgeyAyNDAg ICwgMSAgIH0sCj4+PiArICAgIHsgMzAwICAsIDEgICB9LAo+Pj4gKyAgICB7IDAgICAgLCAwICAg fSwgLy8gcmVzZXJ2ZWQKPj4+ICsgICAgeyAwICAgICwgMCAgIH0gIC8vIHJlc2VydmVkCj4+PiAr fTsKPj4gCj4+IFRoYXQgdGFibGUgc2VlbXMgdG8gYXBwZWFyIG9ubHkgaW4gYXZzMiBkZWNvZGVy LiBJZiBzbywgdGhleSBhcmUgc3VwcG9zZWQgdG8gYmUgZGVjbGFyZWQgaW4gbGliZGF2czIuYy4K Pj4gSWYgbm90LCBwbGVhc2UgcG9pbnQgb3V0IHRoZSB1c2FnZSBvZiB0aGlzIHNlcGFyYXRlIHNv dXJjZSBmaWxlLgo+IAo+IEl04oCZcyB1c2VkIGluIHRoaXMgcGF0Y2gsIHBhcnNlX2F2czJfc2Vx X2hlYWRlcigpLgo+IAo+PiAKPj4gUGVyc2lvbmFsbHksIHRoZSBmcmFtZV9yYXRlIHRhYmxlIGNh biBiZSB1c2VkIGluIGJvdGggZW5jb2RlciBhbmQgZGVjb2Rlci4gU28gaXQgaXMgd2hhdCBzaG91 bGQgYmUKPj4gZGVmaW5lZCBpbiB0aGUgYXZzMi5oICh3aXRoIHJlbGF0ZWQgZW5jL2RlYyBjaGFu Z2VzKS4KPiAKPiBJdOKAmXMgZGVjbGFyZWQgaW4gYXZzMi5oLCBzbyBpdCBjYW4gYmUgdXNlZCBi eSBlbmMvZGVjLgo+IEl04oCZcyBkZWZpbmVkIGluIC5jIHRvIHJlZHVjZSBiaW5hcnkgc2l6ZS4K PiAKPj4gCj4+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hdnMyLmggYi9saWJhdmNvZGVjL2F2 czIuaAo+Pj4gaW5kZXggZjM0MmJhNTJhMC4uNTQ0Y2Y1MDJkNyAxMDA2NDQKPj4+IC0tLSBhL2xp YmF2Y29kZWMvYXZzMi5oCj4+PiArKysgYi9saWJhdmNvZGVjL2F2czIuaAo+Pj4gQEAgLTIzLDYg KzIzLDggQEAKPj4+ICNpZm5kZWYgQVZDT0RFQ19BVlMyX0gKPj4+ICNkZWZpbmUgQVZDT0RFQ19B VlMyX0gKPj4+IAo+Pj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvcmF0aW9uYWwuaCIKPj4+ICsKPj4+ ICNkZWZpbmUgQVZTMl9TTElDRV9NQVhfU1RBUlRfQ09ERSAgICAweDAwMDAwMUFGCj4+PiAKPj4+ IGVudW0gewo+Pj4gQEAgLTM4LDQgKzQwLDEyIEBAIGVudW0gewo+Pj4gI2RlZmluZSBBVlMyX0lT UElDKHgpICAoKHgpID09IEFWUzJfSU5UUkFfUElDX1NUQVJUX0NPREUgfHwgKHgpID09IEFWUzJf SU5URVJfUElDX1NUQVJUX0NPREUpCj4+PiAjZGVmaW5lIEFWUzJfSVNVTklUKHgpICgoeCkgPT0g QVZTMl9TRVFfU1RBUlRfQ09ERSB8fCBBVlMyX0lTUElDKHgpKQo+Pj4gCj4+IAo+PiBTYW1lIGFz IGFib3ZlLiBNZW50aW9uZWQgZGVmaW5pdGlvbnMgbm93IGFyZSBvbmx5IHVzZWQgaW4gYXZzMl9w YXJzZXIuYy4gSWYgc28sIHRoZXkgYXJlIHN1cHBvc2VkIHRvIGJlCj4+IGtlcHQgaW4gYXZzMl9w YXJzZXIuYy4KPiAKPiBJdOKAmXMgbm90IHRoZSBzYW1lIGFzIGZmX2F2czJfZnJhbWVfcmF0ZV90 YWIuIEZpcnN0bHksIGRlZmluZSBlbnVtCj4gYW5kIG1hY3JvcyBkb2VzbuKAmXQgZ2VuZXJhdGUg YmluYXJ5LiBTZWNvbmRseSwgdGhleSBhcmUgYmUgdXNlZAo+IGJ5IGF2czIgcGFyc2VyL2RlY29k ZXIvZW5jb2RlciBhbmQgc28gb24sIHRoZSBzYW1lIGFzIGF2czMuaC4KCkkgbWVhbiB0aGV5IOKA mGNhbuKAmSBiZSB1c2VkIGJ5IGF2czIgcGFyc2VyL2RlY29kZXIvZW5jb2Rlci4KCj4gCj4gVGhl eSBhcmUgb25seSB1c2VkIGJ5IGF2czIgcGFyc2VyIG5vdywgYnV0IHRoZXkgYXJlIGhhbmR5IHdo ZW4gZGVidWcKPiBkZWNvZGVyLCBmb3IgZXhhbXBsZSwgYW5kIGZ1dHVyZSBwcm9vZi4KPiAKPj4g Cj4+IAo+Pj4gK2VudW0gQVZTMlByb2ZpbGUgewo+Pj4gKyAgICBBVlMyX1BST0ZJTEVfTUFJTl9Q SUMgICA9IDB4MTIsCj4+PiArICAgIEFWUzJfUFJPRklMRV9NQUlOICAgICAgID0gMHgyMCwKPj4+ ICsgICAgQVZTMl9QUk9GSUxFX01BSU4xMCAgICAgPSAweDIyLAo+Pj4gK307Cj4+IAo+PiBOb3Qg bWVudGlvbmVkIGVsc2V3aGVyZS4gSWYgdGhleSBhcmUgdG8gd29yayBpbiB0aGUgZW5jb2Rlci9k ZWNvZGVyLCBwbGVhc2UgcGFja2FnZSB0aGVtIHdpdGggcmVsYXRlZCBjaGFuZ2VzLgo+IAo+IEFW UzJfUFJPRklMRV9NQUlOMTAgaXMgdXNlZCBpbiB0aGlzIHBhdGNoLgo+IAo+PiAKPj4+ICsKPj4+ ICtleHRlcm4gY29uc3QgQVZSYXRpb25hbCBmZl9hdnMyX2ZyYW1lX3JhdGVfdGFiWzE2XTsKPj4+ ICsKPj4+ICNlbmRpZgo+Pj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYXZzMl9wYXJzZXIuYyBi L2xpYmF2Y29kZWMvYXZzMl9wYXJzZXIuYwo+Pj4gaW5kZXggNzFjZjQ0MjkwMy4uMDM1MDUxNzQ5 MyAxMDA2NDQKPj4+IC0tLSBhL2xpYmF2Y29kZWMvYXZzMl9wYXJzZXIuYwo+Pj4gKysrIGIvbGli YXZjb2RlYy9hdnMyX3BhcnNlci5jCj4+PiBAQCAtMTksNyArMTksOSBAQAo+Pj4gKiBGb3VuZGF0 aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAy MTEwLTEzMDEgVVNBCj4+PiAqLwo+Pj4gCj4+PiArI2luY2x1ZGUgImxpYmF2dXRpbC9hdnV0aWwu aCIKPj4+ICNpbmNsdWRlICJhdnMyLmgiCj4+PiArI2luY2x1ZGUgImdldF9iaXRzLmgiCj4+PiAj aW5jbHVkZSAicGFyc2VyLmgiCj4+PiAKPj4+IHN0YXRpYyBpbnQgYXZzMl9maW5kX2ZyYW1lX2Vu ZChQYXJzZUNvbnRleHQgKnBjLCBjb25zdCB1aW50OF90ICpidWYsIGludCBidWZfc2l6ZSkKPj4+ IEBAIC01OCw2ICs2MCwxMDcgQEAgc3RhdGljIGludCBhdnMyX2ZpbmRfZnJhbWVfZW5kKFBhcnNl Q29udGV4dCAqcGMsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IGJ1Zl9zaXoKPj4+ICAgcmV0dXJu IEVORF9OT1RfRk9VTkQ7Cj4+PiB9Cj4+PiAKPj4+ICtzdGF0aWMgdm9pZCBwYXJzZV9hdnMyX3Nl cV9oZWFkZXIoQVZDb2RlY1BhcnNlckNvbnRleHQgKnMsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwKPj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYnVmX3NpemUsIEFWQ29kZWND b250ZXh0ICphdmN0eCkKPj4+ICt7Cj4+PiArICAgIEdldEJpdENvbnRleHQgZ2I7Cj4+PiArICAg IGludCBwcm9maWxlLCBsZXZlbDsKPj4+ICsgICAgaW50IHdpZHRoLCBoZWlnaHQ7Cj4+PiArICAg IGludCBjaHJvbWEsIHNhbXBsZV9wcmVjaXNpb24sIGVuY29kaW5nX3ByZWNpc2lvbiA9IDE7Cj4+ PiArICAgIC8vIHNhbXBsZV9wcmVjaXNpb24gYW5kIGVuY29kaW5nX3ByZWNpc2lvbiBpcyAzIGJp dHMKPj4+ICsgICAgc3RhdGljIGNvbnN0IHVpbnQ4X3QgcHJlY2lzaW9uWzhdID0geyAwLCA4LCAx MCB9Owo+Pj4gKyAgICB1bnNpZ25lZCBhc3BlY3RfcmF0aW87Cj4+PiArICAgIHVuc2lnbmVkIGZy YW1lX3JhdGVfY29kZTsKPj4+ICsgICAgaW50IGxvd19kZWxheTsKPj4+ICsgICAgLy8gdXBkYXRl IGJ1Zl9zaXplX21pbiBpZiBwYXJzZSBtb3JlIGRlZXBlcgo+Pj4gKyAgICBjb25zdCBpbnQgYnVm X3NpemVfbWluID0gMTU7Cj4+PiArCj4+PiArICAgIGlmIChidWZfc2l6ZSA8IGJ1Zl9zaXplX21p bikKPj4+ICsgICAgICAgIHJldHVybjsKPj4+ICsKPj4+ICsgICAgaW5pdF9nZXRfYml0czgoJmdi LCBidWYsIGJ1Zl9zaXplX21pbik7Cj4+PiArCj4+PiArICAgIHMtPmtleV9mcmFtZSA9IDE7Cj4+ PiArICAgIHMtPnBpY3RfdHlwZSA9IEFWX1BJQ1RVUkVfVFlQRV9JOwo+Pj4gKwo+Pj4gKyAgICBw cm9maWxlID0gZ2V0X2JpdHMoJmdiLCA4KTsKPj4+ICsgICAgbGV2ZWwgPSBnZXRfYml0cygmZ2Is IDgpOwo+Pj4gKwo+Pj4gKyAgICAvLyBwcm9ncmVzc2l2ZV9zZXF1ZW5jZSAgICAgdSgxKQo+Pj4g KyAgICAvLyBmaWVsZF9jb2RlZF9zZXF1ZW5jZSAgICAgdSgxKQo+Pj4gKyAgICBza2lwX2JpdHMo JmdiLCAyKTsKPj4+ICsKPj4+ICsgICAgd2lkdGggPSBnZXRfYml0cygmZ2IsIDE0KTsKPj4+ICsg ICAgaGVpZ2h0ID0gZ2V0X2JpdHMoJmdiLCAxNCk7Cj4+PiArCj4+PiArICAgIGNocm9tYSA9IGdl dF9iaXRzKCZnYiwgMik7Cj4+PiArICAgIHNhbXBsZV9wcmVjaXNpb24gPSBnZXRfYml0cygmZ2Is IDMpOwo+Pj4gKyAgICBpZiAocHJvZmlsZSA9PSBBVlMyX1BST0ZJTEVfTUFJTjEwKQo+Pj4gKyAg ICAgICAgZW5jb2RpbmdfcHJlY2lzaW9uID0gZ2V0X2JpdHMoJmdiLCAzKTsKPj4+ICsKPj4+ICsg ICAgYXNwZWN0X3JhdGlvID0gZ2V0X2JpdHMoJmdiLCA0KTsKPj4+ICsgICAgZnJhbWVfcmF0ZV9j b2RlID0gZ2V0X2JpdHMoJmdiLCA0KTsKPj4+ICsKPj4+ICsgICAgLy8gYml0X3JhdGVfbG93ZXIg ICAgICAgdSgxOCkKPj4+ICsgICAgLy8gbWFya2VyX2JpdCAgICAgICAgICAgZigxKQo+Pj4gKyAg ICAvLyBiaXRfcmF0ZV91cHBlciAgICAgICB1KDEyKQo+Pj4gKyAgICBza2lwX2JpdHMoJmdiLCAz MSk7Cj4+PiArCj4+PiArICAgIGxvd19kZWxheSA9IGdldF9iaXRzKCZnYiwgMSk7Cj4+PiArCj4+ PiArICAgIHMtPndpZHRoID0gd2lkdGg7Cj4+PiArICAgIHMtPmhlaWdodCA9IGhlaWdodDsKPj4+ ICsgICAgcy0+Y29kZWRfd2lkdGggPSBGRkFMSUdOKHdpZHRoLCA4KTsKPj4+ICsgICAgcy0+Y29k ZWRfaGVpZ2h0ID0gRkZBTElHTihoZWlnaHQsIDgpOwo+Pj4gKyAgICBhdmN0eC0+ZnJhbWVyYXRl Lm51bSA9IGF2Y3R4LT50aW1lX2Jhc2UuZGVuID0KPj4+ICsgICAgICAgIGZmX2F2czJfZnJhbWVf cmF0ZV90YWJbZnJhbWVfcmF0ZV9jb2RlXS5udW07Cj4+PiArICAgIGF2Y3R4LT5mcmFtZXJhdGUu ZGVuID0gYXZjdHgtPnRpbWVfYmFzZS5udW0gPQo+Pj4gKyAgICAgICAgZmZfYXZzMl9mcmFtZV9y YXRlX3RhYltmcmFtZV9yYXRlX2NvZGVdLmRlbjsKPj4+ICsgICAgYXZjdHgtPmhhc19iX2ZyYW1l cyA9IEZGTUFYKGF2Y3R4LT5oYXNfYl9mcmFtZXMsICFsb3dfZGVsYXkpOwo+Pj4gKwo+Pj4gKyAg ICBhdl9sb2coYXZjdHgsIEFWX0xPR19ERUJVRywKPj4+ICsgICAgICAgICAgICJBVlMyIHBhcnNl IHNlcSBIRFI6IHByb2ZpbGUgJXgsIGxldmVsICV4LCAiCj4+PiArICAgICAgICAgICAid2lkdGgg JWQsIGhlaWdodCAlZCwgIgo+Pj4gKyAgICAgICAgICAgImNocm9tYSAlZCwgc2FtcGxlX3ByZWNp c2lvbiAlZCBiaXRzLCBlbmNvZGluZ19wcmVjaXNpb24gJWQgYml0cywgIgo+Pj4gKyAgICAgICAg ICAgImFzcGVjdF9yYXRpbyAweCV4LCBmcmFtZXJhdGUgJWQvJWQsIGxvd19kZWxheSAlZFxuIiwK Pj4+ICsgICAgICAgICAgIHByb2ZpbGUsIGxldmVsLAo+Pj4gKyAgICAgICAgICAgd2lkdGgsIGhl aWdodCwKPj4+ICsgICAgICAgICAgIGNocm9tYSwgcHJlY2lzaW9uW3NhbXBsZV9wcmVjaXNpb25d LCBwcmVjaXNpb25bZW5jb2RpbmdfcHJlY2lzaW9uXSwKPj4+ICsgICAgICAgICAgIGFzcGVjdF9y YXRpbywgYXZjdHgtPmZyYW1lcmF0ZS5udW0sIGF2Y3R4LT5mcmFtZXJhdGUuZGVuLCBsb3dfZGVs YXkpOwo+Pj4gK30KPj4+ICsKPj4+ICtzdGF0aWMgdm9pZCBwYXJzZV9hdnMyX3VuaXRzKEFWQ29k ZWNQYXJzZXJDb250ZXh0ICpzLCBjb25zdCB1aW50OF90ICpidWYsCj4+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnQgYnVmX3NpemUsIEFWQ29kZWNDb250ZXh0ICphdmN0eCkKPj4+ ICt7Cj4+PiArICAgIGlmIChidWZfc2l6ZSA8IDUpCj4+PiArICAgICAgICByZXR1cm47Cj4+PiAr Cj4+PiArICAgIGlmICghKGJ1ZlswXSA9PSAweDAgJiYgYnVmWzFdID09IDB4MCAmJiBidWZbMl0g PT0gMHgxKSkKPj4+ICsgICAgICAgIHJldHVybjsKPj4+ICsKPj4+ICsgICAgc3dpdGNoIChidWZb M10pIHsKPj4+ICsgICAgY2FzZSBBVlMyX1NFUV9TVEFSVF9DT0RFOgo+Pj4gKyAgICAgICAgcGFy c2VfYXZzMl9zZXFfaGVhZGVyKHMsIGJ1ZiArIDQsIGJ1Zl9zaXplIC0gNCwgYXZjdHgpOwo+Pj4g KyAgICAgICAgcmV0dXJuOwo+Pj4gKyAgICBjYXNlIEFWUzJfSU5UUkFfUElDX1NUQVJUX0NPREU6 Cj4+PiArICAgICAgICBzLT5rZXlfZnJhbWUgPSAxOwo+Pj4gKyAgICAgICAgcy0+cGljdF90eXBl ID0gQVZfUElDVFVSRV9UWVBFX0k7Cj4+PiArICAgICAgICByZXR1cm47Cj4+PiArICAgIGNhc2Ug QVZTMl9JTlRFUl9QSUNfU1RBUlRfQ09ERToKPj4+ICsgICAgICAgIHMtPmtleV9mcmFtZSA9IDA7 Cj4+PiArICAgICAgICBpZiAoYnVmX3NpemUgPiA5KSB7Cj4+PiArICAgICAgICAgICAgaW50IHBp Y19jb2RlX3R5cGUgPSBidWZbOF0gJiAweDM7Cj4+PiArICAgICAgICAgICAgaWYgKHBpY19jb2Rl X3R5cGUgPT0gMSkKPj4+ICsgICAgICAgICAgICAgICAgcy0+cGljdF90eXBlID0gQVZfUElDVFVS RV9UWVBFX1A7Cj4+PiArICAgICAgICAgICAgZWxzZSBpZiAocGljX2NvZGVfdHlwZSA9PSAzKQo+ Pj4gKyAgICAgICAgICAgICAgICBzLT5waWN0X3R5cGUgPSBBVl9QSUNUVVJFX1RZUEVfUzsKPj4+ ICsgICAgICAgICAgICBlbHNlCj4+PiArICAgICAgICAgICAgICAgIHMtPnBpY3RfdHlwZSA9IEFW X1BJQ1RVUkVfVFlQRV9COwo+Pj4gKyAgICAgICAgfQo+Pj4gKyAgICAgICAgcmV0dXJuOwo+Pj4g KyAgICB9Cj4+PiArfQo+Pj4gKwo+Pj4gc3RhdGljIGludCBhdnMyX3BhcnNlKEFWQ29kZWNQYXJz ZXJDb250ZXh0ICpzLCBBVkNvZGVjQ29udGV4dCAqYXZjdHgsCj4+PiAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHVpbnQ4X3QgKipwb3V0YnVmLCBpbnQgKnBvdXRidWZfc2l6ZSwKPj4+ICAgICAg ICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqYnVmLCBpbnQgYnVmX3NpemUpCj4+PiBAQCAt NzYsNiArMTc5LDggQEAgc3RhdGljIGludCBhdnMyX3BhcnNlKEFWQ29kZWNQYXJzZXJDb250ZXh0 ICpzLCBBVkNvZGVjQ29udGV4dCAqYXZjdHgsCj4+PiAgICAgICB9Cj4+PiAgIH0KPj4+IAo+Pj4g KyAgICBwYXJzZV9hdnMyX3VuaXRzKHMsIGJ1ZiwgYnVmX3NpemUsIGF2Y3R4KTsKPj4+ICsKPj4+ ICAgKnBvdXRidWYgPSBidWY7Cj4+PiAgICpwb3V0YnVmX3NpemUgPSBidWZfc2l6ZTsKPj4+IAo+ Pj4gLS0gCj4+PiAyLjM1LjMKPj4gCj4+IAo+PiBCZXN0IFJlZ2FyZHMsCj4+IEh1aXdlbiBSZW4K Pj4gCj4+PiAKPj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCj4+PiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4+PiBmZm1wZWctZGV2ZWxAZmZtcGVn Lm9yZwo+Pj4gaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVs Cj4+PiAKPj4+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbAo+Pj4g ZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJl Ii4KPj4gCj4+IAo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+PiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4+IGZmbXBlZy1kZXZlbEBmZm1wZWcu b3JnCj4+IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAo+ PiAKPj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4+IGZmbXBl Zy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCj4g Cj4+IE9uIEp1biAyMSwgMjAyMiwgYXQgMTA6NDUgQU0sIGh3cmVuIDxod3JlbnhAMTI2LmNvbT4g d3JvdGU6Cj4+IAo+PiBBdCAyMDIyLTA2LTEzIDExOjM2OjM0LCAiWmhhbyBaaGlsaSIgPHF1aW5r YmxhY2tAZm94bWFpbC5jb20+IHdyb3RlOgo+Pj4gSW5jbHVkaW5nIHZpZGVvIHJlc29sdXRpb24s IGZyYW1lcmF0ZSBhbmQgcGljdHVyZSB0eXBlLCBldGMuCj4+PiAKPj4+IFNpZ25lZC1vZmYtYnk6 IFpoYW8gWmhpbGkgPHpoaWxpemhhb0B0ZW5jZW50LmNvbT4KPj4+IC0tLQo+Pj4gbGliYXZjb2Rl Yy9NYWtlZmlsZSAgICAgIHwgICAyICstCj4+PiBsaWJhdmNvZGVjL2F2czIuYyAgICAgICAgfCAg NDIgKysrKysrKysrKysrKysrKwo+Pj4gbGliYXZjb2RlYy9hdnMyLmggICAgICAgIHwgIDEwICsr KysKPj4+IGxpYmF2Y29kZWMvYXZzMl9wYXJzZXIuYyB8IDEwNSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKPj4+IDQgZmlsZXMgY2hhbmdlZCwgMTU4IGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKPj4+IGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL2F2czIu Ywo+Pj4gCj4+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9NYWtlZmlsZSBiL2xpYmF2Y29kZWMv TWFrZWZpbGUKPj4+IGluZGV4IDNiOGY3YjVlMDEuLjZjYzZmODQzN2MgMTAwNjQ0Cj4+PiAtLS0g YS9saWJhdmNvZGVjL01ha2VmaWxlCj4+PiArKysgYi9saWJhdmNvZGVjL01ha2VmaWxlCj4+PiBA QCAtMTExNCw3ICsxMTE0LDcgQEAgT0JKUy0kKENPTkZJR19BQzNfUEFSU0VSKSAgICAgICAgICAg ICAgKz0gYWFjX2FjM19wYXJzZXIubyBhYzN0YWIubyBcCj4+PiBPQkpTLSQoQ09ORklHX0FEWF9Q QVJTRVIpICAgICAgICAgICAgICArPSBhZHhfcGFyc2VyLm8gYWR4Lm8KPj4+IE9CSlMtJChDT05G SUdfQU1SX1BBUlNFUikgICAgICAgICAgICAgICs9IGFtcl9wYXJzZXIubwo+Pj4gT0JKUy0kKENP TkZJR19BVjFfUEFSU0VSKSAgICAgICAgICAgICAgKz0gYXYxX3BhcnNlci5vCj4+PiAtT0JKUy0k KENPTkZJR19BVlMyX1BBUlNFUikgICAgICAgICAgICAgKz0gYXZzMl9wYXJzZXIubwo+Pj4gK09C SlMtJChDT05GSUdfQVZTMl9QQVJTRVIpICAgICAgICAgICAgICs9IGF2czIubyBhdnMyX3BhcnNl ci5vCj4+PiBPQkpTLSQoQ09ORklHX0FWUzNfUEFSU0VSKSAgICAgICAgICAgICArPSBhdnMzX3Bh cnNlci5vCj4+PiBPQkpTLSQoQ09ORklHX0JNUF9QQVJTRVIpICAgICAgICAgICAgICArPSBibXBf cGFyc2VyLm8KPj4+IE9CSlMtJChDT05GSUdfQ0FWU1ZJREVPX1BBUlNFUikgICAgICAgICs9IGNh dnNfcGFyc2VyLm8KPj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2F2czIuYyBiL2xpYmF2Y29k ZWMvYXZzMi5jCj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+Pj4gaW5kZXggMDAwMDAwMDAwMC4u ZWFkODY4N2QwYQo+Pj4gLS0tIC9kZXYvbnVsbAo+Pj4gKysrIGIvbGliYXZjb2RlYy9hdnMyLmMK Pj4+IEBAIC0wLDAgKzEsNDIgQEAKPj4+ICsvKgo+Pj4gKyAqIEFWUzIgcmVsYXRlZCBkZWZpbml0 aW9ucwo+Pj4gKyAqCj4+PiArICogQ29weXJpZ2h0IChDKSAyMDIyIFpoYW8gWmhpbGksIDx6aGls aXpoYW9AdGVuY2VudC5jb20+Cj4+PiArICoKPj4+ICsgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBG Rm1wZWcuCj4+PiArICoKPj4+ICsgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCj4+PiArICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+Pj4gKyAqIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgo+Pj4gKyAqIHZlcnNp b24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgo+Pj4gKyAqCj4+PiArICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4+PiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPj4+ICsgKiBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQo+Pj4g KyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4+PiAr ICoKPj4+ICsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCj4+PiArICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYg bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQo+Pj4gKyAqIEZvdW5kYXRpb24sIEluYy4s IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBV U0EKPj4+ICsgKi8KPj4+ICsKPj4+ICsjaW5jbHVkZSAiYXZzMi5oIgo+Pj4gKwo+Pj4gK2NvbnN0 IEFWUmF0aW9uYWwgZmZfYXZzMl9mcmFtZV9yYXRlX3RhYlsxNl0gPSB7Cj4+PiArICAgIHsgMCAg ICAsIDAgICB9LCAvLyBmb3JiaWQKPj4+ICsgICAgeyAyNDAwMCwgMTAwMX0sCj4+PiArICAgIHsg MjQgICAsIDEgICB9LAo+Pj4gKyAgICB7IDI1ICAgLCAxICAgfSwKPj4+ICsgICAgeyAzMDAwMCwg MTAwMX0sCj4+PiArICAgIHsgMzAgICAsIDEgICB9LAo+Pj4gKyAgICB7IDUwICAgLCAxICAgfSwK Pj4+ICsgICAgeyA2MDAwMCwgMTAwMX0sCj4+PiArICAgIHsgNjAgICAsIDEgICB9LAo+Pj4gKyAg ICB7IDEwMCAgLCAxICAgfSwKPj4+ICsgICAgeyAxMjAgICwgMSAgIH0sCj4+PiArICAgIHsgMjAw ICAsIDEgICB9LAo+Pj4gKyAgICB7IDI0MCAgLCAxICAgfSwKPj4+ICsgICAgeyAzMDAgICwgMSAg IH0sCj4+PiArICAgIHsgMCAgICAsIDAgICB9LCAvLyByZXNlcnZlZAo+Pj4gKyAgICB7IDAgICAg LCAwICAgfSAgLy8gcmVzZXJ2ZWQKPj4+ICt9Owo+PiAKPj4gVGhhdCB0YWJsZSBzZWVtcyB0byBh cHBlYXIgb25seSBpbiBhdnMyIGRlY29kZXIuIElmIHNvLCB0aGV5IGFyZSBzdXBwb3NlZCB0byBi ZSBkZWNsYXJlZCBpbiBsaWJkYXZzMi5jLgo+PiBJZiBub3QsIHBsZWFzZSBwb2ludCBvdXQgdGhl IHVzYWdlIG9mIHRoaXMgc2VwYXJhdGUgc291cmNlIGZpbGUuCj4gCj4gSXTigJlzIHVzZWQgaW4g dGhpcyBwYXRjaCwgcGFyc2VfYXZzMl9zZXFfaGVhZGVyKCkuCj4gCj4+IAo+PiBQZXJzaW9uYWxs eSwgdGhlIGZyYW1lX3JhdGUgdGFibGUgY2FuIGJlIHVzZWQgaW4gYm90aCBlbmNvZGVyIGFuZCBk ZWNvZGVyLiBTbyBpdCBpcyB3aGF0IHNob3VsZCBiZQo+PiBkZWZpbmVkIGluIHRoZSBhdnMyLmgg KHdpdGggcmVsYXRlZCBlbmMvZGVjIGNoYW5nZXMpLgo+IAo+IEl04oCZcyBkZWNsYXJlZCBpbiBh dnMyLmgsIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IGVuYy9kZWMuCj4gSXTigJlzIGRlZmluZWQgaW4g LmMgdG8gcmVkdWNlIGJpbmFyeSBzaXplLgo+IAo+PiAKPj4+IGRpZmYgLS1naXQgYS9saWJhdmNv ZGVjL2F2czIuaCBiL2xpYmF2Y29kZWMvYXZzMi5oCj4+PiBpbmRleCBmMzQyYmE1MmEwLi41NDRj ZjUwMmQ3IDEwMDY0NAo+Pj4gLS0tIGEvbGliYXZjb2RlYy9hdnMyLmgKPj4+ICsrKyBiL2xpYmF2 Y29kZWMvYXZzMi5oCj4+PiBAQCAtMjMsNiArMjMsOCBAQAo+Pj4gI2lmbmRlZiBBVkNPREVDX0FW UzJfSAo+Pj4gI2RlZmluZSBBVkNPREVDX0FWUzJfSAo+Pj4gCj4+PiArI2luY2x1ZGUgImxpYmF2 dXRpbC9yYXRpb25hbC5oIgo+Pj4gKwo+Pj4gI2RlZmluZSBBVlMyX1NMSUNFX01BWF9TVEFSVF9D T0RFICAgIDB4MDAwMDAxQUYKPj4+IAo+Pj4gZW51bSB7Cj4+PiBAQCAtMzgsNCArNDAsMTIgQEAg ZW51bSB7Cj4+PiAjZGVmaW5lIEFWUzJfSVNQSUMoeCkgICgoeCkgPT0gQVZTMl9JTlRSQV9QSUNf U1RBUlRfQ09ERSB8fCAoeCkgPT0gQVZTMl9JTlRFUl9QSUNfU1RBUlRfQ09ERSkKPj4+ICNkZWZp bmUgQVZTMl9JU1VOSVQoeCkgKCh4KSA9PSBBVlMyX1NFUV9TVEFSVF9DT0RFIHx8IEFWUzJfSVNQ SUMoeCkpCj4+PiAKPj4gCj4+IFNhbWUgYXMgYWJvdmUuIE1lbnRpb25lZCBkZWZpbml0aW9ucyBu b3cgYXJlIG9ubHkgdXNlZCBpbiBhdnMyX3BhcnNlci5jLiBJZiBzbywgdGhleSBhcmUgc3VwcG9z ZWQgdG8gYmUKPj4ga2VwdCBpbiBhdnMyX3BhcnNlci5jLgo+IAo+IEl04oCZcyBub3QgdGhlIHNh bWUgYXMgZmZfYXZzMl9mcmFtZV9yYXRlX3RhYi4gRmlyc3RseSwgZGVmaW5lIGVudW0KPiBhbmQg bWFjcm9zIGRvZXNu4oCZdCBnZW5lcmF0ZSBiaW5hcnkuIFNlY29uZGx5LCB0aGV5IGFyZSBiZSB1 c2VkCj4gYnkgYXZzMiBwYXJzZXIvZGVjb2Rlci9lbmNvZGVyIGFuZCBzbyBvbiwgdGhlIHNhbWUg YXMgYXZzMy5oLgo+IAo+IFRoZXkgYXJlIG9ubHkgdXNlZCBieSBhdnMyIHBhcnNlciBub3csIGJ1 dCB0aGV5IGFyZSBoYW5keSB3aGVuIGRlYnVnCj4gZGVjb2RlciwgZm9yIGV4YW1wbGUsIGFuZCBm dXR1cmUgcHJvb2YuCj4gCj4+IAo+PiAKPj4+ICtlbnVtIEFWUzJQcm9maWxlIHsKPj4+ICsgICAg QVZTMl9QUk9GSUxFX01BSU5fUElDICAgPSAweDEyLAo+Pj4gKyAgICBBVlMyX1BST0ZJTEVfTUFJ TiAgICAgICA9IDB4MjAsCj4+PiArICAgIEFWUzJfUFJPRklMRV9NQUlOMTAgICAgID0gMHgyMiwK Pj4+ICt9Owo+PiAKPj4gTm90IG1lbnRpb25lZCBlbHNld2hlcmUuIElmIHRoZXkgYXJlIHRvIHdv cmsgaW4gdGhlIGVuY29kZXIvZGVjb2RlciwgcGxlYXNlIHBhY2thZ2UgdGhlbSB3aXRoIHJlbGF0 ZWQgY2hhbmdlcy4KPiAKPiBBVlMyX1BST0ZJTEVfTUFJTjEwIGlzIHVzZWQgaW4gdGhpcyBwYXRj aC4KPiAKPj4gCj4+PiArCj4+PiArZXh0ZXJuIGNvbnN0IEFWUmF0aW9uYWwgZmZfYXZzMl9mcmFt ZV9yYXRlX3RhYlsxNl07Cj4+PiArCj4+PiAjZW5kaWYKPj4+IGRpZmYgLS1naXQgYS9saWJhdmNv ZGVjL2F2czJfcGFyc2VyLmMgYi9saWJhdmNvZGVjL2F2czJfcGFyc2VyLmMKPj4+IGluZGV4IDcx Y2Y0NDI5MDMuLjAzNTA1MTc0OTMgMTAwNjQ0Cj4+PiAtLS0gYS9saWJhdmNvZGVjL2F2czJfcGFy c2VyLmMKPj4+ICsrKyBiL2xpYmF2Y29kZWMvYXZzMl9wYXJzZXIuYwo+Pj4gQEAgLTE5LDcgKzE5 LDkgQEAKPj4+ICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG bG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQo+Pj4gKi8KPj4+IAo+Pj4gKyNpbmNsdWRl ICJsaWJhdnV0aWwvYXZ1dGlsLmgiCj4+PiAjaW5jbHVkZSAiYXZzMi5oIgo+Pj4gKyNpbmNsdWRl ICJnZXRfYml0cy5oIgo+Pj4gI2luY2x1ZGUgInBhcnNlci5oIgo+Pj4gCj4+PiBzdGF0aWMgaW50 IGF2czJfZmluZF9mcmFtZV9lbmQoUGFyc2VDb250ZXh0ICpwYywgY29uc3QgdWludDhfdCAqYnVm LCBpbnQgYnVmX3NpemUpCj4+PiBAQCAtNTgsNiArNjAsMTA3IEBAIHN0YXRpYyBpbnQgYXZzMl9m aW5kX2ZyYW1lX2VuZChQYXJzZUNvbnRleHQgKnBjLCBjb25zdCB1aW50OF90ICpidWYsIGludCBi dWZfc2l6Cj4+PiAgIHJldHVybiBFTkRfTk9UX0ZPVU5EOwo+Pj4gfQo+Pj4gCj4+PiArc3RhdGlj IHZvaWQgcGFyc2VfYXZzMl9zZXFfaGVhZGVyKEFWQ29kZWNQYXJzZXJDb250ZXh0ICpzLCBjb25z dCB1aW50OF90ICpidWYsCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 IGJ1Zl9zaXplLCBBVkNvZGVjQ29udGV4dCAqYXZjdHgpCj4+PiArewo+Pj4gKyAgICBHZXRCaXRD b250ZXh0IGdiOwo+Pj4gKyAgICBpbnQgcHJvZmlsZSwgbGV2ZWw7Cj4+PiArICAgIGludCB3aWR0 aCwgaGVpZ2h0Owo+Pj4gKyAgICBpbnQgY2hyb21hLCBzYW1wbGVfcHJlY2lzaW9uLCBlbmNvZGlu Z19wcmVjaXNpb24gPSAxOwo+Pj4gKyAgICAvLyBzYW1wbGVfcHJlY2lzaW9uIGFuZCBlbmNvZGlu Z19wcmVjaXNpb24gaXMgMyBiaXRzCj4+PiArICAgIHN0YXRpYyBjb25zdCB1aW50OF90IHByZWNp c2lvbls4XSA9IHsgMCwgOCwgMTAgfTsKPj4+ICsgICAgdW5zaWduZWQgYXNwZWN0X3JhdGlvOwo+ Pj4gKyAgICB1bnNpZ25lZCBmcmFtZV9yYXRlX2NvZGU7Cj4+PiArICAgIGludCBsb3dfZGVsYXk7 Cj4+PiArICAgIC8vIHVwZGF0ZSBidWZfc2l6ZV9taW4gaWYgcGFyc2UgbW9yZSBkZWVwZXIKPj4+ ICsgICAgY29uc3QgaW50IGJ1Zl9zaXplX21pbiA9IDE1Owo+Pj4gKwo+Pj4gKyAgICBpZiAoYnVm X3NpemUgPCBidWZfc2l6ZV9taW4pCj4+PiArICAgICAgICByZXR1cm47Cj4+PiArCj4+PiArICAg IGluaXRfZ2V0X2JpdHM4KCZnYiwgYnVmLCBidWZfc2l6ZV9taW4pOwo+Pj4gKwo+Pj4gKyAgICBz LT5rZXlfZnJhbWUgPSAxOwo+Pj4gKyAgICBzLT5waWN0X3R5cGUgPSBBVl9QSUNUVVJFX1RZUEVf STsKPj4+ICsKPj4+ICsgICAgcHJvZmlsZSA9IGdldF9iaXRzKCZnYiwgOCk7Cj4+PiArICAgIGxl dmVsID0gZ2V0X2JpdHMoJmdiLCA4KTsKPj4+ICsKPj4+ICsgICAgLy8gcHJvZ3Jlc3NpdmVfc2Vx dWVuY2UgICAgIHUoMSkKPj4+ICsgICAgLy8gZmllbGRfY29kZWRfc2VxdWVuY2UgICAgIHUoMSkK Pj4+ICsgICAgc2tpcF9iaXRzKCZnYiwgMik7Cj4+PiArCj4+PiArICAgIHdpZHRoID0gZ2V0X2Jp dHMoJmdiLCAxNCk7Cj4+PiArICAgIGhlaWdodCA9IGdldF9iaXRzKCZnYiwgMTQpOwo+Pj4gKwo+ Pj4gKyAgICBjaHJvbWEgPSBnZXRfYml0cygmZ2IsIDIpOwo+Pj4gKyAgICBzYW1wbGVfcHJlY2lz aW9uID0gZ2V0X2JpdHMoJmdiLCAzKTsKPj4+ICsgICAgaWYgKHByb2ZpbGUgPT0gQVZTMl9QUk9G SUxFX01BSU4xMCkKPj4+ICsgICAgICAgIGVuY29kaW5nX3ByZWNpc2lvbiA9IGdldF9iaXRzKCZn YiwgMyk7Cj4+PiArCj4+PiArICAgIGFzcGVjdF9yYXRpbyA9IGdldF9iaXRzKCZnYiwgNCk7Cj4+ PiArICAgIGZyYW1lX3JhdGVfY29kZSA9IGdldF9iaXRzKCZnYiwgNCk7Cj4+PiArCj4+PiArICAg IC8vIGJpdF9yYXRlX2xvd2VyICAgICAgIHUoMTgpCj4+PiArICAgIC8vIG1hcmtlcl9iaXQgICAg ICAgICAgIGYoMSkKPj4+ICsgICAgLy8gYml0X3JhdGVfdXBwZXIgICAgICAgdSgxMikKPj4+ICsg ICAgc2tpcF9iaXRzKCZnYiwgMzEpOwo+Pj4gKwo+Pj4gKyAgICBsb3dfZGVsYXkgPSBnZXRfYml0 cygmZ2IsIDEpOwo+Pj4gKwo+Pj4gKyAgICBzLT53aWR0aCA9IHdpZHRoOwo+Pj4gKyAgICBzLT5o ZWlnaHQgPSBoZWlnaHQ7Cj4+PiArICAgIHMtPmNvZGVkX3dpZHRoID0gRkZBTElHTih3aWR0aCwg OCk7Cj4+PiArICAgIHMtPmNvZGVkX2hlaWdodCA9IEZGQUxJR04oaGVpZ2h0LCA4KTsKPj4+ICsg ICAgYXZjdHgtPmZyYW1lcmF0ZS5udW0gPSBhdmN0eC0+dGltZV9iYXNlLmRlbiA9Cj4+PiArICAg ICAgICBmZl9hdnMyX2ZyYW1lX3JhdGVfdGFiW2ZyYW1lX3JhdGVfY29kZV0ubnVtOwo+Pj4gKyAg ICBhdmN0eC0+ZnJhbWVyYXRlLmRlbiA9IGF2Y3R4LT50aW1lX2Jhc2UubnVtID0KPj4+ICsgICAg ICAgIGZmX2F2czJfZnJhbWVfcmF0ZV90YWJbZnJhbWVfcmF0ZV9jb2RlXS5kZW47Cj4+PiArICAg IGF2Y3R4LT5oYXNfYl9mcmFtZXMgPSBGRk1BWChhdmN0eC0+aGFzX2JfZnJhbWVzLCAhbG93X2Rl bGF5KTsKPj4+ICsKPj4+ICsgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfREVCVUcsCj4+PiArICAg ICAgICAgICAiQVZTMiBwYXJzZSBzZXEgSERSOiBwcm9maWxlICV4LCBsZXZlbCAleCwgIgo+Pj4g KyAgICAgICAgICAgIndpZHRoICVkLCBoZWlnaHQgJWQsICIKPj4+ICsgICAgICAgICAgICJjaHJv bWEgJWQsIHNhbXBsZV9wcmVjaXNpb24gJWQgYml0cywgZW5jb2RpbmdfcHJlY2lzaW9uICVkIGJp dHMsICIKPj4+ICsgICAgICAgICAgICJhc3BlY3RfcmF0aW8gMHgleCwgZnJhbWVyYXRlICVkLyVk LCBsb3dfZGVsYXkgJWRcbiIsCj4+PiArICAgICAgICAgICBwcm9maWxlLCBsZXZlbCwKPj4+ICsg ICAgICAgICAgIHdpZHRoLCBoZWlnaHQsCj4+PiArICAgICAgICAgICBjaHJvbWEsIHByZWNpc2lv bltzYW1wbGVfcHJlY2lzaW9uXSwgcHJlY2lzaW9uW2VuY29kaW5nX3ByZWNpc2lvbl0sCj4+PiAr ICAgICAgICAgICBhc3BlY3RfcmF0aW8sIGF2Y3R4LT5mcmFtZXJhdGUubnVtLCBhdmN0eC0+ZnJh bWVyYXRlLmRlbiwgbG93X2RlbGF5KTsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGljIHZvaWQgcGFy c2VfYXZzMl91bml0cyhBVkNvZGVjUGFyc2VyQ29udGV4dCAqcywgY29uc3QgdWludDhfdCAqYnVm LAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJ1Zl9zaXplLCBBVkNvZGVj Q29udGV4dCAqYXZjdHgpCj4+PiArewo+Pj4gKyAgICBpZiAoYnVmX3NpemUgPCA1KQo+Pj4gKyAg ICAgICAgcmV0dXJuOwo+Pj4gKwo+Pj4gKyAgICBpZiAoIShidWZbMF0gPT0gMHgwICYmIGJ1Zlsx XSA9PSAweDAgJiYgYnVmWzJdID09IDB4MSkpCj4+PiArICAgICAgICByZXR1cm47Cj4+PiArCj4+ PiArICAgIHN3aXRjaCAoYnVmWzNdKSB7Cj4+PiArICAgIGNhc2UgQVZTMl9TRVFfU1RBUlRfQ09E RToKPj4+ICsgICAgICAgIHBhcnNlX2F2czJfc2VxX2hlYWRlcihzLCBidWYgKyA0LCBidWZfc2l6 ZSAtIDQsIGF2Y3R4KTsKPj4+ICsgICAgICAgIHJldHVybjsKPj4+ICsgICAgY2FzZSBBVlMyX0lO VFJBX1BJQ19TVEFSVF9DT0RFOgo+Pj4gKyAgICAgICAgcy0+a2V5X2ZyYW1lID0gMTsKPj4+ICsg ICAgICAgIHMtPnBpY3RfdHlwZSA9IEFWX1BJQ1RVUkVfVFlQRV9JOwo+Pj4gKyAgICAgICAgcmV0 dXJuOwo+Pj4gKyAgICBjYXNlIEFWUzJfSU5URVJfUElDX1NUQVJUX0NPREU6Cj4+PiArICAgICAg ICBzLT5rZXlfZnJhbWUgPSAwOwo+Pj4gKyAgICAgICAgaWYgKGJ1Zl9zaXplID4gOSkgewo+Pj4g KyAgICAgICAgICAgIGludCBwaWNfY29kZV90eXBlID0gYnVmWzhdICYgMHgzOwo+Pj4gKyAgICAg ICAgICAgIGlmIChwaWNfY29kZV90eXBlID09IDEpCj4+PiArICAgICAgICAgICAgICAgIHMtPnBp Y3RfdHlwZSA9IEFWX1BJQ1RVUkVfVFlQRV9QOwo+Pj4gKyAgICAgICAgICAgIGVsc2UgaWYgKHBp Y19jb2RlX3R5cGUgPT0gMykKPj4+ICsgICAgICAgICAgICAgICAgcy0+cGljdF90eXBlID0gQVZf UElDVFVSRV9UWVBFX1M7Cj4+PiArICAgICAgICAgICAgZWxzZQo+Pj4gKyAgICAgICAgICAgICAg ICBzLT5waWN0X3R5cGUgPSBBVl9QSUNUVVJFX1RZUEVfQjsKPj4+ICsgICAgICAgIH0KPj4+ICsg ICAgICAgIHJldHVybjsKPj4+ICsgICAgfQo+Pj4gK30KPj4+ICsKPj4+IHN0YXRpYyBpbnQgYXZz Ml9wYXJzZShBVkNvZGVjUGFyc2VyQ29udGV4dCAqcywgQVZDb2RlY0NvbnRleHQgKmF2Y3R4LAo+ Pj4gICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICoqcG91dGJ1ZiwgaW50ICpwb3V0 YnVmX3NpemUsCj4+PiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50 IGJ1Zl9zaXplKQo+Pj4gQEAgLTc2LDYgKzE3OSw4IEBAIHN0YXRpYyBpbnQgYXZzMl9wYXJzZShB VkNvZGVjUGFyc2VyQ29udGV4dCAqcywgQVZDb2RlY0NvbnRleHQgKmF2Y3R4LAo+Pj4gICAgICAg fQo+Pj4gICB9Cj4+PiAKPj4+ICsgICAgcGFyc2VfYXZzMl91bml0cyhzLCBidWYsIGJ1Zl9zaXpl LCBhdmN0eCk7Cj4+PiArCj4+PiAgICpwb3V0YnVmID0gYnVmOwo+Pj4gICAqcG91dGJ1Zl9zaXpl ID0gYnVmX3NpemU7Cj4+PiAKPj4+IC0tIAo+Pj4gMi4zNS4zCj4+IAo+PiAKPj4gQmVzdCBSZWdh cmRzLAo+PiBIdWl3ZW4gUmVuCj4+IAo+Pj4gCj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwo+Pj4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+Pj4g ZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPj4+IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ZmbXBlZy1kZXZlbAo+Pj4gCj4+PiBUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBh Ym92ZSwgb3IgZW1haWwKPj4+IGZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBz dWJqZWN0ICJ1bnN1YnNjcmliZSIuCj4+IAo+PiAKPj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPj4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+PiBm Zm1wZWctZGV2ZWxAZmZtcGVnLm9yZwo+PiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0 aW5mby9mZm1wZWctZGV2ZWwKPj4gCj4+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3Zl LCBvciBlbWFpbAo+PiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVj dCAidW5zdWJzY3JpYmUiLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9y ZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVu c3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVz dEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=