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 ESMTPS id C68594CB0A for ; Tue, 11 Feb 2025 12:49:58 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8EB7168BDB7; Tue, 11 Feb 2025 14:49:53 +0200 (EET) Received: from out203-205-221-240.mail.qq.com (out203-205-221-240.mail.qq.com [203.205.221.240]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AF64B68B981 for ; Tue, 11 Feb 2025 14:49:45 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1739278182; bh=Pce88bB4/yDKEuN0xGueco2e1fIuB3Z21ugnqE2Tzpw=; h=From:Subject:Date:References:To:In-Reply-To; b=i0x5nSN00odH+KWd1msvBVTgtrv1/z4CVhYMAy8k8ZCebap0VmEUAZmIdti0M/Oap E3V6NW73ZKVQG2bnzhqMcNaMBIXvt8al9ECXDSxFpuJ6gKrViwZKQq9EYh4pfXjp/Z o25ijdkDLATnsoQDx5HH212xsa5g09s77QQBP+Jk= Received: from smtpclient.apple ([113.108.77.57]) by newxmesmtplogicsvrsza36-0.qq.com (NewEsmtp) with SMTP id C0D25686; Tue, 11 Feb 2025 20:48:13 +0800 X-QQ-mid: xmsmtpt1739278093t2j5wos2k Message-ID: X-QQ-XMAILINFO: MIJREJrs+ARNqd+ENBAEhrAoH8QJABm0qbDmGD3Loe9lueGkQR2vRFRv9JhDyw xQ23Ujo4zttlxLI4CiYV3k4XjjofXGzqafN4KPgJeAr/N5PUM7DSdegxcXMn2dW4j9ixqJ4c7g8v pY0GpOAJqwkNyAKI5wpSyoTNGbckYVhZTU88PSQP0EiPvDr+mu2yAaLkrlDmxNQv6PCKMMwdfJeJ mgN3MsD8OiH3OLtxB4UK/QI9ki9A/8EwrCnt5Tup0nHs3AxQml47x6dQFwbAJ7SrKFNwf2Odehmb 4/s1XtLNkAYmKV3L08lkOTJkdjMgL5IHLk4dKFvy1v43d+2yCRh2T7cZ12M9fcT0zckiJWN7Xzo+ L4PzkjzM6yDvoSTQRoI5dGQ3mbQmEOhzor4NqpB1D5mvjo7S3AF+eR9L8CqOQDLobBrVOQzqPpYd 5e/3b0wmJSXN7r3CjR0759SWZUlyVJa2ZKX0/U0JuZsvT7egHFZcJG6DKO18IlzMWsc/JeM8bjSV +U6NlLob+Yyc0R3NHtHMB/YZC/rIWCPbZrFIIxjJcvXFiiN/46HwcTLt3BlrzIikXHbGz5OATW7o ByW6peKkC9NQ7oCaYOvCMNHBU7jrAGjTphQKRkv59mY2hO2kQjIhoTwotn6jjD0MqpAfQTDMRwpZ ZNXwlAOQj3voD43w3z7CsQQSbyQNPr7Xkj5LrlPVT0v/MQyLPyAoYLAnvlkWcSFV+Ghn0px+Visr yoipGEtPW7YzmvRGk2l/f50z81NzYSfyqeU+Wb4ZdGfHwRGTRwvd94ZOqJierot26kMI8xPvrJjn g4dvym7pNnMRf7hcZ3PNQSTUm7lI85PRBgTi+h71nloMCwwzDw4t9NzkIohbZZYKfOegCPr/g4Uh HYdbaFHKM/VoyLKHwYhbEGdoVd3QlFjFup+mjv3sPrFuj0MgC1x7bQfi6dh+XXVlsmF31AzLMPFv JehdBSN1S3eXkOX/7kmKns0U0AIjTaBcDCf797InLK5meQ82m/9NkGEH5kDwIOqDduuzccMwY= X-QQ-XMRINFO: MSVp+SPm3vtS1Vd6Y4Mggwc= From: Zhao Zhili Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3818.100.11.1.3\)) Date: Tue, 11 Feb 2025 20:48:03 +0800 References: To: FFmpeg development discussions and patches In-Reply-To: X-OQ-MSGID: <18F4042F-67AE-43FC-8030-0082B1143110@foxmail.com> X-Mailer: Apple Mail (2.3818.100.11.1.3) Subject: Re: [FFmpeg-devel] [PATCH v6 3/3] avcodec/hevc: Add alpha layer support 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+IE9uIEZlYiAxMSwgMjAyNSwgYXQgMjA6MTIsIEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVh cy5yaGVpbmhhcmR0QG91dGxvb2suY29tPiB3cm90ZToKPiAKPiBaaGFvIFpoaWxpOgo+PiAKPj4g Cj4+PiBPbiBGZWIgMTEsIDIwMjUsIGF0IDE5OjIzLCBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJl YXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4gd3JvdGU6Cj4+PiAKPj4+IFpoYW8gWmhpbGk6Cj4+ Pj4gRnJvbTogWmhhbyBaaGlsaSA8emhpbGl6aGFvQHRlbmNlbnQuY29tPgo+Pj4+IAo+Pj4+IFNp Z25lZC1vZmYtYnk6IFpoYW8gWmhpbGkgPHpoaWxpemhhb0B0ZW5jZW50LmNvbT4KPj4+PiAtLS0K Pj4+PiBsaWJhdmNvZGVjL2hldmMvaGV2Y2RlYy5jIHwgNzMgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystCj4+Pj4gbGliYXZjb2RlYy9oZXZjL2hldmNkZWMuaCB8ICAyICsr Cj4+Pj4gbGliYXZjb2RlYy9oZXZjL3JlZnMuYyAgICB8IDM0ICsrKysrKysrKysrKysrKysrLQo+ Pj4+IDMgZmlsZXMgY2hhbmdlZCwgMTA3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4+ Pj4gCj4+Pj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvaGV2Yy9oZXZjZGVjLmMgYi9saWJhdmNv ZGVjL2hldmMvaGV2Y2RlYy5jCj4+Pj4gaW5kZXggZTljMDQ1ZjdhMS4uZjcxZWRmMjEzYiAxMDA2 NDQKPj4+PiAtLS0gYS9saWJhdmNvZGVjL2hldmMvaGV2Y2RlYy5jCj4+Pj4gKysrIGIvbGliYXZj b2RlYy9oZXZjL2hldmNkZWMuYwo+Pj4+IEBAIC00NjYsNiArNDY2LDI1IEBAIHN0YXRpYyBpbnQg ZXhwb3J0X211bHRpbGF5ZXIoSEVWQ0NvbnRleHQgKnMsIGNvbnN0IEhFVkNWUFMgKnZwcykKPj4+ PiAgICByZXR1cm4gMDsKPj4+PiB9Cj4+Pj4gCj4+Pj4gK2ludCBmZl9oZXZjX2lzX2FscGhhX3Zp ZGVvKGNvbnN0IEhFVkNDb250ZXh0ICpzKQo+Pj4+ICt7Cj4+Pj4gKyAgICBjb25zdCBIRVZDVlBT ICp2cHMgPSBzLT52cHM7Cj4+Pj4gKyAgICBpbnQgcmV0ID0gMDsKPj4+PiArCj4+Pj4gKyAgICBp ZiAodnBzLT5uYl9sYXllcnMgIT0gMiB8fCAhdnBzLT5sYXllcl9pZF9pbl9udWhbMV0pCj4+Pj4g KyAgICAgICAgcmV0dXJuIDA7Cj4+Pj4gKwo+Pj4+ICsgICAgLyogZGVjb2RlX3Zwc19leHQoKSBn dWFyYW50ZWVzIHRoYXQgU0NBTEFCSUxJVFlfQVVYSUxJQVJZIHdpdGggQXV4SWQgb3RoZXIKPj4+ PiArICAgICAqIHRoYW4gYWxwaGEgY2Fubm90IHJlYWNoIGhlcmUuCj4+Pj4gKyAgICAgKi8KPj4+ PiArICAgIHJldCA9IChzLT52cHMtPnNjYWxhYmlsaXR5X21hc2tfZmxhZyAmIEhFVkNfU0NBTEFC SUxJVFlfQVVYSUxJQVJZKTsKPj4+PiArCj4+Pj4gKyAgICBhdl9sb2cocy0+YXZjdHgsIEFWX0xP R19ERUJVRywgIk11bHRpIGxheWVyIHZpZGVvLCAlcyBhbHBoYSB2aWRlb1xuIiwKPj4+PiArICAg ICAgICAgICByZXQgPyAiaXMiIDogIm5vdCIpOwo+Pj4+ICsKPj4+PiArICAgIHJldHVybiByZXQ7 Cj4+Pj4gK30KPj4+PiArCj4+Pj4gc3RhdGljIGludCBzZXR1cF9tdWx0aWxheWVyKEhFVkNDb250 ZXh0ICpzLCBjb25zdCBIRVZDVlBTICp2cHMpCj4+Pj4gewo+Pj4+ICAgIHVuc2lnbmVkIGxheWVy c19hY3RpdmVfb3V0cHV0ID0gMCwgaGlnaGVzdF9sYXllcjsKPj4+PiBAQCAtNDczLDYgKzQ5Miwx OCBAQCBzdGF0aWMgaW50IHNldHVwX211bHRpbGF5ZXIoSEVWQ0NvbnRleHQgKnMsIGNvbnN0IEhF VkNWUFMgKnZwcykKPj4+PiAgICBzLT5sYXllcnNfYWN0aXZlX291dHB1dCA9IDE7Cj4+Pj4gICAg cy0+bGF5ZXJzX2FjdGl2ZV9kZWNvZGUgPSAxOwo+Pj4+IAo+Pj4+ICsgICAgaWYgKGZmX2hldmNf aXNfYWxwaGFfdmlkZW8ocykpIHsKPj4+PiArICAgICAgICBjb25zdCBBVlBpeEZtdERlc2NyaXB0 b3IgKmRlc2MgPSBhdl9waXhfZm10X2Rlc2NfZ2V0KHMtPmF2Y3R4LT5waXhfZm10KTsKPj4+PiAr Cj4+Pj4gKyAgICAgICAgaWYgKCEoZGVzYy0+ZmxhZ3MgJiBBVl9QSVhfRk1UX0ZMQUdfQUxQSEEp KQo+Pj4+ICsgICAgICAgICAgICByZXR1cm4gMDsKPj4+PiArCj4+Pj4gKyAgICAgICAgcy0+bGF5 ZXJzX2FjdGl2ZV9kZWNvZGUgPSAoMSA8PCB2cHMtPm5iX2xheWVycykgLSAxOwo+Pj4+ICsgICAg ICAgIHMtPmxheWVyc19hY3RpdmVfb3V0cHV0ID0gMTsKPj4+PiArCj4+Pj4gKyAgICAgICAgcmV0 dXJuIDA7Cj4+Pj4gKyAgICB9Cj4+Pj4gKwo+Pj4+ICAgIC8vIG5vdGhpbmcgcmVxdWVzdGVkIC0g ZGVjb2RlIGJhc2UgbGF5ZXIgb25seQo+Pj4+ICAgIGlmICghcy0+bmJfdmlld19pZHMpCj4+Pj4g ICAgICAgIHJldHVybiAwOwo+Pj4+IEBAIC01MzAsNiArNTYxLDM0IEBAIHN0YXRpYyBpbnQgc2V0 dXBfbXVsdGlsYXllcihIRVZDQ29udGV4dCAqcywgY29uc3QgSEVWQ1ZQUyAqdnBzKQo+Pj4+ICAg IHJldHVybiAwOwo+Pj4+IH0KPj4+PiAKPj4+PiArc3RhdGljIGVudW0gQVZQaXhlbEZvcm1hdCBt YXBfdG9fYWxwaGFfZm9ybWF0KEhFVkNDb250ZXh0ICpzLAo+Pj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBBVlBpeGVsRm9ybWF0IHBpeF9mbXQp Cj4+Pj4gK3sKPj4+PiArICAgIHN3aXRjaCAocGl4X2ZtdCkgewo+Pj4+ICsgICAgY2FzZSBBVl9Q SVhfRk1UX1lVVjQyMFA6Cj4+Pj4gKyAgICBjYXNlIEFWX1BJWF9GTVRfWVVWSjQyMFA6Cj4+Pj4g KyAgICAgICAgcmV0dXJuIEFWX1BJWF9GTVRfWVVWQTQyMFA7Cj4+Pj4gKyAgICBjYXNlIEFWX1BJ WF9GTVRfWVVWNDIwUDEwOgo+Pj4+ICsgICAgICAgIHJldHVybiBBVl9QSVhfRk1UX1lVVkE0MjBQ MTA7Cj4+Pj4gKyAgICBjYXNlIEFWX1BJWF9GTVRfWVVWNDQ0UDoKPj4+PiArICAgICAgICByZXR1 cm4gQVZfUElYX0ZNVF9ZVVZBNDQ0UDsKPj4+PiArICAgIGNhc2UgQVZfUElYX0ZNVF9ZVVY0MjJQ Ogo+Pj4+ICsgICAgICAgIHJldHVybiBBVl9QSVhfRk1UX1lVVkE0MjJQOwo+Pj4+ICsgICAgY2Fz ZSBBVl9QSVhfRk1UX1lVVjQyMlAxMExFOgo+Pj4+ICsgICAgICAgIHJldHVybiBBVl9QSVhfRk1U X1lVVkE0MjJQMTBMRTsKPj4+PiArICAgIGNhc2UgQVZfUElYX0ZNVF9ZVVY0NDRQMTA6Cj4+Pj4g KyAgICAgICAgcmV0dXJuIEFWX1BJWF9GTVRfWVVWQTQ0NFAxMDsKPj4+PiArICAgIGNhc2UgQVZf UElYX0ZNVF9ZVVY0NDRQMTI6Cj4+Pj4gKyAgICAgICAgcmV0dXJuIEFWX1BJWF9GTVRfWVVWQTQ0 NFAxMjsKPj4+PiArICAgIGNhc2UgQVZfUElYX0ZNVF9ZVVY0MjJQMTI6Cj4+Pj4gKyAgICAgICAg cmV0dXJuIEFWX1BJWF9GTVRfWVVWQTQyMlAxMjsKPj4+PiArICAgIGRlZmF1bHQ6Cj4+Pj4gKyAg ICAgICAgYXZfbG9nKHMtPmF2Y3R4LCBBVl9MT0dfV0FSTklORywgIk5vIGFscGhhIHBpeGVsIGZv cm1hdCBtYXAgZm9yICVzXG4iLAo+Pj4+ICsgICAgICAgICAgICAgICBhdl9nZXRfcGl4X2ZtdF9u YW1lKHBpeF9mbXQpKTsKPj4+PiArICAgICAgICByZXR1cm4gQVZfUElYX0ZNVF9OT05FOwo+Pj4+ ICsgICAgfQo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+IHN0YXRpYyBlbnVtIEFWUGl4ZWxGb3JtYXQgZ2V0 X2Zvcm1hdChIRVZDQ29udGV4dCAqcywgY29uc3QgSEVWQ1NQUyAqc3BzKQo+Pj4+IHsKPj4+PiAj ZGVmaW5lIEhXQUNDRUxfTUFYIChDT05GSUdfSEVWQ19EWFZBMl9IV0FDQ0VMICsgXAo+Pj4+IEBA IC01NDAsOSArNTk5LDEzIEBAIHN0YXRpYyBlbnVtIEFWUGl4ZWxGb3JtYXQgZ2V0X2Zvcm1hdChI RVZDQ29udGV4dCAqcywgY29uc3QgSEVWQ1NQUyAqc3BzKQo+Pj4+ICAgICAgICAgICAgICAgICAg ICAgQ09ORklHX0hFVkNfVklERU9UT09MQk9YX0hXQUNDRUwgKyBcCj4+Pj4gICAgICAgICAgICAg ICAgICAgICBDT05GSUdfSEVWQ19WRFBBVV9IV0FDQ0VMICsgXAo+Pj4+ICAgICAgICAgICAgICAg ICAgICAgQ09ORklHX0hFVkNfVlVMS0FOX0hXQUNDRUwpCj4+Pj4gLSAgICBlbnVtIEFWUGl4ZWxG b3JtYXQgcGl4X2ZtdHNbSFdBQ0NFTF9NQVggKyAyXSwgKmZtdCA9IHBpeF9mbXRzOwo+Pj4+ICsg ICAgZW51bSBBVlBpeGVsRm9ybWF0IHBpeF9mbXRzW0hXQUNDRUxfTUFYICsgM10sICpmbXQgPSBw aXhfZm10czsKPj4+PiArICAgIGVudW0gQVZQaXhlbEZvcm1hdCBhbHBoYV9mbXQgPSBBVl9QSVhf Rk1UX05PTkU7Cj4+Pj4gICAgaW50IHJldDsKPj4+PiAKPj4+PiArICAgIGlmIChmZl9oZXZjX2lz X2FscGhhX3ZpZGVvKHMpKQo+Pj4+ICsgICAgICAgIGFscGhhX2ZtdCA9IG1hcF90b19hbHBoYV9m b3JtYXQocywgc3BzLT5waXhfZm10KTsKPj4+PiArCj4+Pj4gICAgc3dpdGNoIChzcHMtPnBpeF9m bXQpIHsKPj4+PiAgICBjYXNlIEFWX1BJWF9GTVRfWVVWNDIwUDoKPj4+PiAgICBjYXNlIEFWX1BJ WF9GTVRfWVVWSjQyMFA6Cj4+Pj4gQEAgLTY2NCw2ICs3MjcsOCBAQCBzdGF0aWMgZW51bSBBVlBp eGVsRm9ybWF0IGdldF9mb3JtYXQoSEVWQ0NvbnRleHQgKnMsIGNvbnN0IEhFVkNTUFMgKnNwcykK Pj4+PiAgICAgICAgYnJlYWs7Cj4+Pj4gICAgfQo+Pj4+IAo+Pj4+ICsgICAgaWYgKGFscGhhX2Zt dCAhPSBBVl9QSVhfRk1UX05PTkUpCj4+Pj4gKyAgICAgICAgKmZtdCsrID0gYWxwaGFfZm10Owo+ Pj4+ICAgICpmbXQrKyA9IHNwcy0+cGl4X2ZtdDsKPj4+PiAgICAqZm10ID0gQVZfUElYX0ZNVF9O T05FOwo+Pj4+IAo+Pj4+IEBAIC0zMTk0LDYgKzMyNTksMTIgQEAgc3RhdGljIGludCBoZXZjX2Zy YW1lX3N0YXJ0KEhFVkNDb250ZXh0ICpzLCBIRVZDTGF5ZXJDb250ZXh0ICpsLAo+Pj4+ICAgICAg ICAgICAgICAgICFzcHMtPnZ1aS5jb21tb24udmlkZW9fc2lnbmFsX3R5cGVfcHJlc2VudF9mbGFn KQo+Pj4+ICAgICAgICAgICAgICAgIHBpeF9mbXQgPSBzcHNfYmFzZS0+cGl4X2ZtdDsKPj4+PiAK Pj4+PiArICAgICAgICAgICAgLy8gSWdub3JlIHJhbmdlIG1pc21hdGNoIGJldHdlZW4gYmFzZSBs YXllciBhbmQgYWxwaGEgbGF5ZXIKPj4+PiArICAgICAgICAgICAgaWYgKGZmX2hldmNfaXNfYWxw aGFfdmlkZW8ocykgJiYKPj4+PiArICAgICAgICAgICAgICAgIHNwc19iYXNlLT5waXhfZm10ID09 IEFWX1BJWF9GTVRfWVVWNDIwUCAmJgo+Pj4+ICsgICAgICAgICAgICAgICAgcGl4X2ZtdCA9PSBB Vl9QSVhfRk1UX1lVVko0MjBQKQo+Pj4+ICsgICAgICAgICAgICAgICAgcGl4X2ZtdCA9IHNwc19i YXNlLT5waXhfZm10Owo+Pj4+ICsKPj4+PiAgICAgICAgICAgIGlmIChwaXhfZm10ICAgICAhPSBz cHNfYmFzZS0+cGl4X2ZtdCB8fAo+Pj4+ICAgICAgICAgICAgICAgIHNwcy0+d2lkdGggICE9IHNw c19iYXNlLT53aWR0aCAgIHx8Cj4+Pj4gICAgICAgICAgICAgICAgc3BzLT5oZWlnaHQgIT0gc3Bz X2Jhc2UtPmhlaWdodCkgewo+Pj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2hldmMvaGV2Y2Rl Yy5oIGIvbGliYXZjb2RlYy9oZXZjL2hldmNkZWMuaAo+Pj4+IGluZGV4IDRlOTUwMzU2ODguLmIy YjcyNWI1Y2QgMTAwNjQ0Cj4+Pj4gLS0tIGEvbGliYXZjb2RlYy9oZXZjL2hldmNkZWMuaAo+Pj4+ ICsrKyBiL2xpYmF2Y29kZWMvaGV2Yy9oZXZjZGVjLmgKPj4+PiBAQCAtNzE0LDYgKzcxNCw4IEBA IHZvaWQgZmZfaGV2Y19obHNfcmVzaWR1YWxfY29kaW5nKEhFVkNMb2NhbENvbnRleHQgKmxjLCBj b25zdCBIRVZDUFBTICpwcHMsCj4+Pj4gCj4+Pj4gdm9pZCBmZl9oZXZjX2hsc19tdmRfY29kaW5n KEhFVkNMb2NhbENvbnRleHQgKmxjLCBpbnQgeDAsIGludCB5MCwgaW50IGxvZzJfY2Jfc2l6ZSk7 Cj4+Pj4gCj4+Pj4gK2ludCBmZl9oZXZjX2lzX2FscGhhX3ZpZGVvKGNvbnN0IEhFVkNDb250ZXh0 ICpzKTsKPj4+PiArCj4+Pj4gZXh0ZXJuIGNvbnN0IHVpbnQ4X3QgZmZfaGV2Y19xcGVsX2V4dHJh X2JlZm9yZVs0XTsKPj4+PiBleHRlcm4gY29uc3QgdWludDhfdCBmZl9oZXZjX3FwZWxfZXh0cmFf YWZ0ZXJbNF07Cj4+Pj4gZXh0ZXJuIGNvbnN0IHVpbnQ4X3QgZmZfaGV2Y19xcGVsX2V4dHJhWzRd Owo+Pj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2hldmMvcmVmcy5jIGIvbGliYXZjb2RlYy9o ZXZjL3JlZnMuYwo+Pj4+IGluZGV4IGRkN2Y3Zjk1YTguLmRhMGJhYzhkOWMgMTAwNjQ0Cj4+Pj4g LS0tIGEvbGliYXZjb2RlYy9oZXZjL3JlZnMuYwo+Pj4+ICsrKyBiL2xpYmF2Y29kZWMvaGV2Yy9y ZWZzLmMKPj4+PiBAQCAtNzksNiArNzksMzAgQEAgdm9pZCBmZl9oZXZjX2ZsdXNoX2RwYihIRVZD Q29udGV4dCAqcykKPj4+PiAgICB9Cj4+Pj4gfQo+Pj4+IAo+Pj4+ICtzdGF0aWMgaW50IHJlcGxh Y2VfYWxwaGFfcGxhbmUoQVZGcmFtZSAqYWxwaGEsIEFWRnJhbWUgKmJhc2UpCj4+Pj4gK3sKPj4+ PiArICAgIEFWQnVmZmVyUmVmICpiYXNlX2EgPSBhdl9mcmFtZV9nZXRfcGxhbmVfYnVmZmVyKGJh c2UsIDMpOwo+Pj4+ICsgICAgdWludDhfdCAqZGF0YSA9IGFscGhhLT5kYXRhWzBdOwo+Pj4+ICsg ICAgaW50IHJldDsKPj4+PiArCj4+Pj4gKyAgICBmb3IgKGludCBpID0gMDsgaSA8IEZGX0FSUkFZ X0VMRU1TKGFscGhhLT5idWYpICYmIGFscGhhLT5idWZbaV07IGkrKykgewo+Pj4+ICsgICAgICAg IEFWQnVmZmVyUmVmICpidWYgPSBhbHBoYS0+YnVmW2ldOwo+Pj4+ICsKPj4+PiArICAgICAgICBp ZiAoZGF0YSA+PSBidWYtPmRhdGEgJiYgZGF0YSA8IGJ1Zi0+ZGF0YSArIGJ1Zi0+c2l6ZSkgewo+ Pj4gCj4+PiBQb2ludGVyIGNvbXBhcmlzb25zIChvdGhlciB0aGFuIGVxdWFsaXR5L2lucXVhbGl0 eSBjb21wYXJpc29ucykgYXJlCj4+PiB1bmRlZmluZWQgYmVoYXZpb3IgdW5sZXNzIHRoZSB0d28g cG9pbnRlcnMgcG9pbnQgaW50byB0aGUgc2FtZSBhcnJheSAob3IKPj4+IG9uZSBwYXN0IHRoZSBs YXN0IGVsZW1lbnQgb2YgYW4gYXJyYXkpLgo+PiAKPj4gYXZfZnJhbWVfZ2V0X3BsYW5lX2J1ZmZl ciBkb2VzIHRoZSBzYW1lIGNvbXBhcmUuIEFueSBpZGVhIHRvIGZpeCB0aGlzIFVCPwo+IAo+IElT TyBDIGRvZXMgbm90IGhhdmUgYSBwb3J0YWJsZSB3YXkgdG8gYWNoaWV2ZSB0aGlzIChleGNlcHQg aXRlcmF0aW5nCj4gb3ZlciBidWYtPmRhdGFbMC4uYnVmLT5zaXplXSBhbmQgY2hlY2tpbmcgdmlh ID09KS4KPiBJbiBwcmFjdGljZSAoaW4gYSBmbGF0IG1lbW9yeSBzcGFjZSkgY2FzdGluZyB0byB1 aW50cHRyX3Qgc2hvdWxkIHdvcmsuCgpXaGF04oCZcyB0aGUgZGlmZmVyZW5jZSB3aXRoIGFuZCB3 aXRob3V0IGNhc3QgaW4gcHJhY3RpY2U/Cgo+IAo+PiAKPj4+IAo+Pj4+ICsgICAgICAgICAgICBy ZXQgPSBhdl9idWZmZXJfcmVwbGFjZSgmYWxwaGEtPmJ1ZltpXSwgYmFzZV9hKTsKPj4+PiArICAg ICAgICAgICAgaWYgKHJldCA8IDApCj4+Pj4gKyAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ Pj4+ICsKPj4+PiArICAgICAgICAgICAgYWxwaGEtPmxpbmVzaXplWzBdID0gYmFzZS0+bGluZXNp emVbM107Cj4+Pj4gKyAgICAgICAgICAgIGFscGhhLT5kYXRhWzBdID0gYmFzZS0+ZGF0YVszXTsK Pj4+PiArCj4+Pj4gKyAgICAgICAgICAgIHJldHVybiAwOwo+Pj4+ICsgICAgICAgIH0KPj4+PiAr ICAgIH0KPj4+PiArCj4+Pj4gKyAgICByZXR1cm4gQVZFUlJPUl9CVUc7Cj4+Pj4gK30KPj4+PiAr Cj4+Pj4gc3RhdGljIEhFVkNGcmFtZSAqYWxsb2NfZnJhbWUoSEVWQ0NvbnRleHQgKnMsIEhFVkNM YXllckNvbnRleHQgKmwpCj4+Pj4gewo+Pj4+ICAgIGNvbnN0IEhFVkNWUFMgKnZwcyA9IGwtPnNw cy0+dnBzOwo+Pj4+IEBAIC0xMDMsNyArMTI3LDcgQEAgc3RhdGljIEhFVkNGcmFtZSAqYWxsb2Nf ZnJhbWUoSEVWQ0NvbnRleHQgKnMsIEhFVkNMYXllckNvbnRleHQgKmwpCj4+Pj4gICAgICAgIH0K Pj4+PiAKPj4+PiAgICAgICAgLy8gYWRkIHZpZXcgSUQgc2lkZSBkYXRhIGlmIGl0J3Mgbm9udHJp dmlhbAo+Pj4+IC0gICAgICAgIGlmICh2cHMtPm5iX2xheWVycyA+IDEgfHwgdmlld19pZCkgewo+ Pj4+ICsgICAgICAgIGlmICghZmZfaGV2Y19pc19hbHBoYV92aWRlbyhzKSAmJiAodnBzLT5uYl9s YXllcnMgPiAxIHx8IHZpZXdfaWQpKSB7Cj4+Pj4gICAgICAgICAgICBIRVZDU0VJVERSREkgKnRk cmRpID0gJnMtPnNlaS50ZHJkaTsKPj4+PiAgICAgICAgICAgIEFWRnJhbWVTaWRlRGF0YSAqc2Qg PSBhdl9mcmFtZV9zaWRlX2RhdGFfbmV3KCZmcmFtZS0+Zi0+c2lkZV9kYXRhLAo+Pj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZyYW1l LT5mLT5uYl9zaWRlX2RhdGEsCj4+Pj4gQEAgLTE2MSw3ICsxODUsMTUgQEAgc3RhdGljIEhFVkNG cmFtZSAqYWxsb2NfZnJhbWUoSEVWQ0NvbnRleHQgKnMsIEhFVkNMYXllckNvbnRleHQgKmwpCj4+ Pj4gICAgICAgIGlmIChyZXQgPCAwKQo+Pj4+ICAgICAgICAgICAgZ290byBmYWlsOwo+Pj4+IAo+ Pj4+ICsKPj4+PiAgICAgICAgZnJhbWUtPnBwcyA9IGF2X3JlZnN0cnVjdF9yZWZfYyhzLT5wcHMp Owo+Pj4+ICsgICAgICAgIGlmIChsICE9ICZzLT5sYXllcnNbMF0gJiYgZmZfaGV2Y19pc19hbHBo YV92aWRlbyhzKSkgewo+Pj4+ICsgICAgICAgICAgICBBVkZyYW1lICphbHBoYSA9IGZyYW1lLT5m Owo+Pj4+ICsgICAgICAgICAgICBBVkZyYW1lICpiYXNlID0gcy0+bGF5ZXJzWzBdLmN1cl9mcmFt ZS0+ZjsKPj4+PiArICAgICAgICAgICAgcmV0ID0gcmVwbGFjZV9hbHBoYV9wbGFuZShhbHBoYSwg YmFzZSk7Cj4+Pj4gKyAgICAgICAgICAgIGlmIChyZXQgPCAwKQo+Pj4+ICsgICAgICAgICAgICAg ICAgZ290byBmYWlsOwo+Pj4+ICsgICAgICAgIH0KPj4+PiAKPj4+PiAgICAgICAgcmV0dXJuIGZy YW1lOwo+Pj4+IGZhaWw6Cj4+PiAKPj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4+PiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4+PiBmZm1wZWct ZGV2ZWxAZmZtcGVnLm9yZwo+Pj4gaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8v ZmZtcGVnLWRldmVsCj4+PiAKPj4+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBv ciBlbWFpbAo+Pj4gZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3Qg InVuc3Vic2NyaWJlIi4KPj4gCj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCj4+IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKPj4gZmZtcGVnLWRldmVs QGZmbXBlZy5vcmcKPj4gaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVn LWRldmVsCj4+IAo+PiBUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwK Pj4gZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2Ny aWJlIi4KPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xwo+IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwo+ IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAo+IAo+IFRv IHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbAo+IGZmbXBlZy1kZXZlbC1y ZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGlu ZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUs IG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1 bnN1YnNjcmliZSIuCg==