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 5678B468F8 for ; Sat, 24 Jun 2023 15:25:02 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2D7E168C081; Sat, 24 Jun 2023 18:25:00 +0300 (EEST) Received: from mail-qt1-f181.google.com (mail-qt1-f181.google.com [209.85.160.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 56C3568BFE2 for ; Sat, 24 Jun 2023 18:24:53 +0300 (EEST) Received: by mail-qt1-f181.google.com with SMTP id d75a77b69052e-3f9e7bfbec4so4361871cf.1 for ; Sat, 24 Jun 2023 08:24:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687620291; x=1690212291; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=5GVyJDnuNI5k42YxLx/J8oqRXy5b5bfQwuXqf5FdVsM=; b=NRLkgu/bAwkoMo6Jdz5d0s3QDCCpqlRusEULG+tE7Bm2aFOZIlVdf+uG/tpjDZf9df +xzCdiWlisUWVXa4NOMlY6bXfj+E8+CoCs0iBGUpLCH8YxiH/aRbQG4t/MVzocsnWF0I lkU4+1RYIiDPxpCuQuj+Yk3ADcVc+KQDjSRO9TWG/3VvLfthlYjNotAs46YzhnHjOIYY s+y59lWWtYFUGCPQgJgbFMCa8FNMcLlF5/y9zoJpwgcJvPAbszPRIfYlZIURpIjTyPRt uDd2KhipbtLWRH8ufYzXt/S5sevzh4I671c63IzRvoMMwRxBO9vZXiYj7HOvNfXBvDYP vhqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687620291; x=1690212291; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=5GVyJDnuNI5k42YxLx/J8oqRXy5b5bfQwuXqf5FdVsM=; b=VsXwybqbfQX1M0h95Hi2AywAorB6sjeKJ3n//KI0VlE+GqvNkvtT42wci3r5z/QGGd 4pAJG3/APfcGXjSPh9l7n/RflXeOKc2/ciTzI4m2ee+oJqC9ozp3wOCzse85SimRvhxd w0jxB41JfM4R0ehjOADpx3VHcTo86YHzpVCapqRqaOCMWuNVnyJvesS7EpEsYtSg26DX YCP1na/p2RtETKS1dSIqnc4nSYPeNMYlaLULwcybxmLrGVyyl3NObnvbRnNhlqGMOPio sfKUIhoYGJAgY41q82oHJQchMbxqSc0+nMhUVRBlov0OcSmv/OyVN12dyZi8T83JT8cc lVAA== X-Gm-Message-State: AC+VfDy7OKGFBRk7DDyfoGvvfKNSYGMzZ35ByvJccGtnHUdIDC3ZQ79b FLjBmi8p45GYII+Ol4qC+TQr1trX3iQ= X-Google-Smtp-Source: ACHHUZ6z5anZZu6iRFuHA+y+vRSQYIkaxWEXa3LKfwYPfpgbcPls3Q0jatSmzA7bH92cAzuOIJYc8g== X-Received: by 2002:a05:620a:1a1c:b0:765:5813:d496 with SMTP id bk28-20020a05620a1a1c00b007655813d496mr3282936qkb.1.1687620291300; Sat, 24 Jun 2023 08:24:51 -0700 (PDT) Received: from [192.168.1.35] (c-98-224-219-15.hsd1.mi.comcast.net. [98.224.219.15]) by smtp.gmail.com with ESMTPSA id h124-20020a816c82000000b005768c46b2adsm383578ywc.1.2023.06.24.08.24.50 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 24 Jun 2023 08:24:50 -0700 (PDT) Message-ID: <1ad261cb-482a-459e-c045-02d749f1b302@gmail.com> Date: Sat, 24 Jun 2023 11:24:49 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 To: ffmpeg-devel@ffmpeg.org References: <20230624043853.12237-1-leo.izen@gmail.com> <20230624043853.12237-2-leo.izen@gmail.com> Content-Language: en-US-large From: Leo Izen In-Reply-To: Subject: Re: [FFmpeg-devel] [PATCH v3 1/4] avcodec/libjxldec: use internal AVFrame as buffered space 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: T24gNi8yNC8yMyAwNzo0OSwgSmFtZXMgQWxtZXIgd3JvdGU6Cj4gCj4gT24gNi8yNC8yMDIzIDE6 MzggQU0sIExlbyBJemVuIHdyb3RlOgo+PiBCZWZvcmUgdGhpcyBjb21taXQsIHRoZSBkZWNvZGVy IGVycm9uZW91c2x5IGFzc3VtZXMgdGhhdCB0aGUgQVZGcmFtZQo+PiBwYXNzZWQgdG8gdGhlIHJl Y2VpdmVfZnJhbWUgaXMgdGhlIHNhbWUgb25lIGVhY2ggdGltZS4gTm93IGl0IGtlZXBzIGFuCj4+ IGludGVybmFsIEFWRnJhbWUgdG8gd3JpdGUgaW50bywgYW5kIGNvcGllcyBpdCBvdmVyIHdoZW4g aXQncyBkb25lLgo+PiAtLS0KPj4gwqAgbGliYXZjb2RlYy9saWJqeGxkZWMuYyB8IDQwICsrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KPj4gwqAgMSBmaWxlIGNoYW5nZWQs IDIzIGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvbGli YXZjb2RlYy9saWJqeGxkZWMuYyBiL2xpYmF2Y29kZWMvbGlianhsZGVjLmMKPj4gaW5kZXggNTA0 MTdiY2IwMi4uY2VhN2VhMGQzYiAxMDA2NDQKPj4gLS0tIGEvbGliYXZjb2RlYy9saWJqeGxkZWMu Ywo+PiArKysgYi9saWJhdmNvZGVjL2xpYmp4bGRlYy5jCj4+IEBAIC01OCw2ICs1OCw3IEBAIHR5 cGVkZWYgc3RydWN0IExpYkp4bERlY29kZUNvbnRleHQgewo+PiDCoMKgwqDCoMKgIGludDY0X3Qg ZnJhbWVfZHVyYXRpb247Cj4+IMKgwqDCoMKgwqAgaW50IHByZXZfaXNfbGFzdDsKPj4gwqDCoMKg wqDCoCBBVlJhdGlvbmFsIHRpbWViYXNlOwo+PiArwqDCoMKgIEFWRnJhbWUgKmZyYW1lOwo+PiDC oCB9IExpYkp4bERlY29kZUNvbnRleHQ7Cj4+IMKgIHN0YXRpYyBpbnQgbGlianhsX2luaXRfanhs X2RlY29kZXIoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQo+PiBAQCAtMTA0LDYgKzEwNSw5IEBAIHN0 YXRpYyBhdl9jb2xkIGludCAKPj4gbGlianhsX2RlY29kZV9pbml0KEFWQ29kZWNDb250ZXh0ICph dmN0eCkKPj4gwqDCoMKgwqDCoCBjdHgtPmF2cGt0ID0gYXZjdHgtPmludGVybmFsLT5pbl9wa3Q7 Cj4+IMKgwqDCoMKgwqAgY3R4LT5wdHMgPSAwOwo+PiArwqDCoMKgIGN0eC0+ZnJhbWUgPSBhdl9m cmFtZV9hbGxvYygpOwo+PiArwqDCoMKgIGlmICghY3R4LT5mcmFtZSkKPj4gK8KgwqDCoMKgwqDC oMKgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4+IMKgwqDCoMKgwqAgcmV0dXJuIGxpYmp4bF9p bml0X2p4bF9kZWNvZGVyKGF2Y3R4KTsKPj4gwqAgfQo+PiBAQCAtMzUxLDEwICszNTUsMTIgQEAg c3RhdGljIGludCBsaWJqeGxfcmVjZWl2ZV9mcmFtZShBVkNvZGVjQ29udGV4dCAKPj4gKmF2Y3R4 LCBBVkZyYW1lICpmcmFtZSkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHNpemVfdCByZW1haW5pbmc7 Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoIXBrdC0+c2l6ZSkgewo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBhdl9sb2coYXZjdHgsIEFWX0xPR19ERUJVRywgIkZldGNoaW5nIG5ldyBwYWNr ZXRcbiIpOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9wYWNrZXRfdW5yZWYocGt0 KTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0gZmZfZGVjb2RlX2dldF9wYWNr ZXQoYXZjdHgsIHBrdCk7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChyZXQgPCAw ICYmIHJldCAhPSBBVkVSUk9SX0VPRikKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCByZXR1cm4gcmV0Owo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9sb2coYXZjdHgs IEFWX0xPR19ERUJVRywgIkZldGNoZWQgcGFja2V0IG9mIHNpemU6IAo+PiAlZFxuIiwgcGt0LT5z aXplKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCFwa3QtPnNpemUpIHsKPj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBqcmV0IHNldCBieSB0aGUgbGFz dCBpdGVyYXRpb24gb2YgdGhlIGxvb3AgKi8KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBpZiAoanJldCA9PSBKWExfREVDX05FRURfTU9SRV9JTlBVVCkgewo+PiBAQCAtMzg5 LDEwICszOTUsNiBAQCBzdGF0aWMgaW50IGxpYmp4bF9yZWNlaXZlX2ZyYW1lKEFWQ29kZWNDb250 ZXh0IAo+PiAqYXZjdHgsIEFWRnJhbWUgKmZyYW1lKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGNh c2UgSlhMX0RFQ19ORUVEX01PUkVfSU5QVVQ6Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGF2X2xvZyhhdmN0eCwgQVZfTE9HX0RFQlVHLCAiTkVFRF9NT1JFX0lOUFVUIGV2ZW50IAo+PiBl bWl0dGVkXG4iKTsKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCFwa3QtPnNpemUpIHsK Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9wYWNrZXRfdW5yZWYocGt0KTsK Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gQVZFUlJPUihFQUdBSU4p Owo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGNvbnRpbnVlOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgY2FzZSBKWExfREVDX0JBU0lDX0lO Rk86Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0RF QlVHLCAiQkFTSUNfSU5GTyBldmVudCBlbWl0dGVkXG4iKTsKPj4gQEAgLTQyMSwxNiArNDIzLDE4 IEBAIHN0YXRpYyBpbnQgbGlianhsX3JlY2VpdmVfZnJhbWUoQVZDb2RlY0NvbnRleHQgCj4+ICph dmN0eCwgQVZGcmFtZSAqZnJhbWUpCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRp bnVlOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgY2FzZSBKWExfREVDX0NPTE9SX0VOQ09ESU5HOgo+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9sb2coYXZjdHgsIEFWX0xPR19ERUJVRywg IkNPTE9SX0VOQ09ESU5HIGV2ZW50IAo+PiBlbWl0dGVkXG4iKTsKPj4gLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgaWYgKChyZXQgPSBsaWJqeGxfY29sb3JfZW5jb2RpbmdfZXZlbnQoYXZjdHgsIGZy YW1lKSkgPCAwKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoKHJldCA9IGxpYmp4bF9j b2xvcl9lbmNvZGluZ19ldmVudChhdmN0eCwgCj4+IGN0eC0+ZnJhbWUpKSA8IDApCj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJldDsKPj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgY29udGludWU7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBjYXNlIEpYTF9E RUNfTkVFRF9JTUFHRV9PVVRfQlVGRkVSOgo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBh dl9sb2coYXZjdHgsIEFWX0xPR19ERUJVRywgIk5FRURfSU1BR0VfT1VUX0JVRkZFUiBldmVudCAK Pj4gZW1pdHRlZFxuIik7Cj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICgocmV0ID0gZmZf Z2V0X2J1ZmZlcihhdmN0eCwgZnJhbWUsIDApKSA8IDApCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHJldCA9IGZmX2dldF9idWZmZXIoYXZjdHgsIGN0eC0+ZnJhbWUsIDApOwo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBpZiAocmV0IDwgMCkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjdHgtPmp4 bF9waXhmbXQuYWxpZ24gPSBmcmFtZS0+bGluZXNpemVbMF07Cj4+IC3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGlmIChKeGxEZWNvZGVyU2V0SW1hZ2VPdXRCdWZmZXIoY3R4LT5kZWNvZGVyLCAKPj4g JmN0eC0+anhsX3BpeGZtdCwgZnJhbWUtPmRhdGFbMF0sIGZyYW1lLT5idWZbMF0tPnNpemUpCj4+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIT0gSlhMX0RFQ19TVUNDRVNTKSB7Cj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGN0eC0+anhsX3BpeGZtdC5hbGlnbiA9IGN0eC0+ZnJh bWUtPmxpbmVzaXplWzBdOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoSnhsRGVjb2Rl clNldEltYWdlT3V0QnVmZmVyKGN0eC0+ZGVjb2RlciwgCj4+ICZjdHgtPmp4bF9waXhmbXQsCj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjdHgtPmZyYW1lLT5kYXRh WzBdLCBjdHgtPmZyYW1lLT5idWZbMF0tPnNpemUpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAhPSBKWExfREVDX1NVQ0NFU1MpIHsKPj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkJhZCBsaWJq eGwgZGVjIG5lZWQgCj4+IGltYWdlIG91dCBidWZmZXIgZXZlbnRcbiIpOwo+PiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBBVkVSUk9SX0VYVEVSTkFMOwo+PiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+IEBAIC00NDQsOCArNDQ4LDggQEAgc3RhdGljIGlu dCBsaWJqeGxfcmVjZWl2ZV9mcmFtZShBVkNvZGVjQ29udGV4dCAKPj4gKmF2Y3R4LCBBVkZyYW1l ICpmcmFtZSkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGNhc2UgSlhMX0RFQ19GUkFNRToKPj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfREVCVUcsICJGUkFN RSBldmVudCBlbWl0dGVkXG4iKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCFj dHgtPmJhc2ljX2luZm8uaGF2ZV9hbmltYXRpb24gfHwgY3R4LT5wcmV2X2lzX2xhc3QpIHsKPj4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmcmFtZS0+cGljdF90eXBlID0gQVZfUElD VFVSRV9UWVBFX0k7Cj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZnJhbWUtPmZs YWdzIHw9IEFWX0ZSQU1FX0ZMQUdfS0VZOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGN0eC0+ZnJhbWUtPnBpY3RfdHlwZSA9IEFWX1BJQ1RVUkVfVFlQRV9JOwo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGN0eC0+ZnJhbWUtPmZsYWdzIHw9IEFWX0ZSQU1FX0ZM QUdfS0VZOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGlmIChjdHgtPmJhc2ljX2luZm8uaGF2ZV9hbmltYXRpb24pIHsKPj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBKeGxGcmFtZUhlYWRlciBoZWFkZXI7Cj4+ IEBAIC00NjQsMjAgKzQ2OCwyMSBAQCBzdGF0aWMgaW50IGxpYmp4bF9yZWNlaXZlX2ZyYW1lKEFW Q29kZWNDb250ZXh0IAo+PiAqYXZjdHgsIEFWRnJhbWUgKmZyYW1lKQo+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAvKiBmdWxsIGltYWdlIGlzIG9uZSBmcmFtZSwgZXZlbiBpZiBhbmltYXRl ZCAqLwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9sb2coYXZjdHgsIEFWX0xPR19E RUJVRywgIkZVTExfSU1BR0UgZXZlbnQgZW1pdHRlZFxuIik7Cj4+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGlmIChjdHgtPmljY3ApIHsKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBBVkZyYW1lU2lkZURhdGEgKnNkID0gCj4+IGF2X2ZyYW1lX25ld19zaWRlX2RhdGFfZnJv bV9idWYoZnJhbWUsIEFWX0ZSQU1FX0RBVEFfSUNDX1BST0ZJTEUsIAo+PiBjdHgtPmljY3ApOwo+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEFWRnJhbWVTaWRlRGF0YSAqc2QgPSAK Pj4gYXZfZnJhbWVfbmV3X3NpZGVfZGF0YV9mcm9tX2J1ZihjdHgtPmZyYW1lLCBBVl9GUkFNRV9E QVRBX0lDQ19QUk9GSUxFLCAKPj4gY3R4LT5pY2NwKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBpZiAoIXNkKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAvKiBvd25lcnNoaXAgaXMgdHJhbnNmZXJlZCwgYW5kIGl0IGlzIG5v dCByZWYtZWQgKi8KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjdHgtPmlj Y3AgPSBOVUxMOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGlmIChhdmN0eC0+cGt0X3RpbWViYXNlLm51bSkgewo+PiAtwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZyYW1lLT5wdHMgPSBhdl9yZXNjYWxlX3EoY3R4LT5w dHMsIGN0eC0+dGltZWJhc2UsIAo+PiBhdmN0eC0+cGt0X3RpbWViYXNlKTsKPj4gLcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmcmFtZS0+ZHVyYXRpb24gPSBhdl9yZXNjYWxlX3EoY3R4 LT5mcmFtZV9kdXJhdGlvbiwgCj4+IGN0eC0+dGltZWJhc2UsIGF2Y3R4LT5wa3RfdGltZWJhc2Up Owo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGN0eC0+ZnJhbWUtPnB0cyA9IGF2 X3Jlc2NhbGVfcShjdHgtPnB0cywgCj4+IGN0eC0+dGltZWJhc2UsIGF2Y3R4LT5wa3RfdGltZWJh c2UpOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGN0eC0+ZnJhbWUtPmR1cmF0 aW9uID0gCj4+IGF2X3Jlc2NhbGVfcShjdHgtPmZyYW1lX2R1cmF0aW9uLCBjdHgtPnRpbWViYXNl LCBhdmN0eC0+cGt0X3RpbWViYXNlKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfSBl bHNlIHsKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmcmFtZS0+cHRzID0gY3R4 LT5wdHM7Cj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZnJhbWUtPmR1cmF0aW9u ID0gY3R4LT5mcmFtZV9kdXJhdGlvbjsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBjdHgtPmZyYW1lLT5wdHMgPSBjdHgtPnB0czsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBjdHgtPmZyYW1lLT5kdXJhdGlvbiA9IGN0eC0+ZnJhbWVfZHVyYXRpb247Cj4+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg Y3R4LT5wdHMgKz0gY3R4LT5mcmFtZV9kdXJhdGlvbjsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgYXZfZnJhbWVfbW92ZV9yZWYoZnJhbWUsIGN0eC0+ZnJhbWUpOwo+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCByZXR1cm4gMDsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGNhc2UgSlhMX0RF Q19TVUNDRVNTOgo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9sb2coYXZjdHgsIEFW X0xPR19ERUJVRywgIlNVQ0NFU1MgZXZlbnQgZW1pdHRlZFxuIik7Cj4+IEBAIC01MDgsNiArNTEz LDcgQEAgc3RhdGljIGF2X2NvbGQgaW50IAo+PiBsaWJqeGxfZGVjb2RlX2Nsb3NlKEFWQ29kZWND b250ZXh0ICphdmN0eCkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIEp4bERlY29kZXJEZXN0cm95KGN0 eC0+ZGVjb2Rlcik7Cj4+IMKgwqDCoMKgwqAgY3R4LT5kZWNvZGVyID0gTlVMTDsKPj4gwqDCoMKg wqDCoCBhdl9idWZmZXJfdW5yZWYoJmN0eC0+aWNjcCk7Cj4+ICvCoMKgwqAgYXZfZnJhbWVfZnJl ZSgmY3R4LT5mcmFtZSk7Cj4+IMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+IMKgIH0KPj4gQEAgLTUy MSw3ICs1MjcsNyBAQCBjb25zdCBGRkNvZGVjIGZmX2xpYmp4bF9kZWNvZGVyID0gewo+PiDCoMKg wqDCoMKgIC5pbml0wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgID0gbGlianhsX2RlY29kZV9pbml0 LAo+PiDCoMKgwqDCoMKgIEZGX0NPREVDX1JFQ0VJVkVfRlJBTUVfQ0IobGlianhsX3JlY2VpdmVf ZnJhbWUpLAo+PiDCoMKgwqDCoMKgIC5jbG9zZcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgPSBsaWJq eGxfZGVjb2RlX2Nsb3NlLAo+PiAtwqDCoMKgIC5wLmNhcGFiaWxpdGllc8KgwqAgPSBBVl9DT0RF Q19DQVBfRFIxIHwgQVZfQ09ERUNfQ0FQX09USEVSX1RIUkVBRFMsCj4gCj4gV2h5IHJlbW92ZSBE UjE/IGZmX2dldF9idWZmZXIoKSBpcyBzdGlsbCBjYWxsZWQgYW5kIHVzZXIgcHJvdmlkZWQgCj4g YnVmZmVycyBzaG91bGQgc3RpbGwgd29yayBmaW5lLgo+IAoKSSBoYWQgdGVzdGVkIGl0IGVhcmxp ZXIgYW5kIGl0IGZhaWxlZCBhbiBhc3NlcnQuIEhvd2V2ZXIsIGl0IGFwcGVhcnMgCnRoYXQgaXQn cyB3b3JraW5nIGZpbmUgbm93IHdpdGggaXQsIHNvIEknbGwgYWRkIGl0IGJhY2sgaW4uCgotIExl byBJemVuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZm bXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9m Zm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwg dmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9y ZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K