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 6B44A4B671 for ; Fri, 12 Jul 2024 04:58:20 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 19B8568DB01; Fri, 12 Jul 2024 07:58:18 +0300 (EEST) Received: from mail-ua1-f46.google.com (mail-ua1-f46.google.com [209.85.222.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2117468DA05 for ; Fri, 12 Jul 2024 07:58:11 +0300 (EEST) Received: by mail-ua1-f46.google.com with SMTP id a1e0cc1a2514c-80fa1509989so870776241.0 for ; Thu, 11 Jul 2024 21:58:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sandflow-com.20230601.gappssmtp.com; s=20230601; t=1720760289; x=1721365089; darn=ffmpeg.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=DMxaBpSfnUT2+LkoK/XkFmeyY/bS1t+i63VVkb3JVKQ=; b=PGeAV23KmGwKZZp4K0I9OgLU/dptzLUWzvBngwEwFsApZZek+/oGFJB8Ama/hj2lhE R0lzpzTVyIBm/bZPtRhFyefvj2H0Sjc0QB905zWZpxBPpG5pcPBhkeRRc0rBEugsnpbh m09Y+wngf91VIgQ5cr0UO8rZH9BLMHeS5UrnGe68DEN5i6WZ/Rd+s4Kf+h5l5sFrjfEH yNP2bzeV0oAlzFXD0bj4WfUUgGHm7pFnLjlpPf7HbVC+AQoTMImfWG0xTC6hoth5KmX2 zUxJUBgaljWQEokbbNQCcAey317sB4OrsqIqFlTJers90DXyTKFryL3Mno9hI2EsON89 CMKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720760289; x=1721365089; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DMxaBpSfnUT2+LkoK/XkFmeyY/bS1t+i63VVkb3JVKQ=; b=GNi4LLSPH8F8SdMZxTQdDQCpKQmFrZKIdGehrNISn+jNKPS8NJ7CQhNyE3DhNcNjM+ 1QrM0IgEoZ8RT7HWYgpH/Va8bA9NCzf4zeYVpTnPFOJo9ByFD8LMOjDWP4OcfdC8rnbO 8loL+UgkvVr8zNlIX+/05tzgKBU6veFHnfJrZtqV+gHtAdQuiGSzsd68sAW949wk1hru Wcn2kL/knQMUweTgCmILEA7rAkpy2wHCCJ+Y7kFP3TLJOLxo8y1rAV2Cg2EV8ckvSv+G DmjuQcka2feeR75h66N3F9n6RJjEeNogwjpgXtE/6VXA2X1K9TG9AG18RU/TEuw1HM8V BfQA== X-Gm-Message-State: AOJu0YxiLUJ0/OLfuVnyq8Wv8xTyBAMRaGcb7CyyVECL5/lQorSvjepz gv+NrzOq5hHawBRMuH3/Vj8WgD3QGJU8XBjHje/NWqJ9oalysfIE593oOW6RL+wIBMZFxGGvdP/ OTQw= X-Google-Smtp-Source: AGHT+IGaHXl1bA2nnSJ73U/Gq1ClmfSr8u4xdnPCbxDs1so4nVEsi/siX2pXQ4dqdlZyPILTzQyAOw== X-Received: by 2002:a05:6102:5e8e:b0:48f:82c5:90eb with SMTP id ada2fe7eead31-49119b032a1mr1344579137.13.1720760288412; Thu, 11 Jul 2024 21:58:08 -0700 (PDT) Received: from mail-vs1-f54.google.com (mail-vs1-f54.google.com. [209.85.217.54]) by smtp.gmail.com with ESMTPSA id ada2fe7eead31-490314fa288sm1461770137.18.2024.07.11.21.58.07 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 11 Jul 2024 21:58:07 -0700 (PDT) Received: by mail-vs1-f54.google.com with SMTP id ada2fe7eead31-48fe9381454so1320981137.1 for ; Thu, 11 Jul 2024 21:58:07 -0700 (PDT) X-Received: by 2002:a05:6102:290b:b0:48f:2709:2cf3 with SMTP id ada2fe7eead31-4911f4fff24mr90783137.6.1720760287041; Thu, 11 Jul 2024 21:58:07 -0700 (PDT) MIME-Version: 1.0 References: <20240624133734.3032409-1-owatanab@es.takushoku-u.ac.jp> In-Reply-To: <20240624133734.3032409-1-owatanab@es.takushoku-u.ac.jp> From: Pierre-Anthony Lemieux Date: Thu, 11 Jul 2024 21:57:56 -0700 X-Gmail-Original-Message-ID: Message-ID: To: Osamu Watanabe Subject: Re: [FFmpeg-devel] [PATCH v4 1/3] avcodec/jpeg2000dec: Add support for CAP and CPF markers 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 Cc: ffmpeg-devel@ffmpeg.org 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: SSBjaGVja2VkIHRoYXQgdGhlIHBhdGNoIHJlc3VsdHMgaW4gRkZNUEVHIGRlY29kaW5nIHdpdGhv dXQgZXJyb3IgdGhlCmFkZGl0aW9uYWwgY29uZm9ybWFuY2UgY29kZXN0cmVhbXMgYXQgWzFdLgoK WzFdIGh0dHBzOi8vZmZtcGVnLm9yZy9waXBlcm1haWwvZmZtcGVnLWRldmVsLzIwMjQtSnVuZS8z Mjk3MjcuaHRtbAoKQE9zYW11LCBkaWQgeW91IGNoZWNrIGlmIHRoZSBkZWNvZGVkIGltYWdlcyBm YWxsIHdpdGhpbiB0aGUgdG9sZXJhbmNlcwpzcGVjaWZpZWQgaW4gMTU0NDQtND8KClRoZXJlIGlz IGFuIGVycmFudCBzcGFjZSBjaGFyYWN0ZXIgYXQgdGhlIGVuZCBvZiBmb3VyIGxpbmVzIGZvciBz b21lCnJlYXNvbi4gSSBjYW4gZml4IHRoYXQgYmVmb3JlIG1lcmdpbmcuCgpBbnkgb3RoZXIgY29t bWVudHM/IElmIG5vdCwgSSBwbGFuIHRvIG1lcmdlIHNvbWV0aW1lIHRoaXMgd2VlaywgYW5kCnBs YW4gdG8gdGhlbiBzdWJtaXQgYSBwYXRjaCB0byBhZGQgdGhlIGNvbmZvcm1hbmNlIGNvZGVzdHJl YW0gdG8gRkFURS4KCk9uIE1vbiwgSnVuIDI0LCAyMDI0IGF0IDY6MzfigK9BTSBPc2FtdSBXYXRh bmFiZQo8b3dhdGFuYWJAZXMudGFrdXNob2t1LXUuYWMuanA+IHdyb3RlOgo+Cj4gVGhpcyBjb21t aXQgYWRkcyBzdXBwb3J0IGZvciBDQVAgYW5kIENQRiBtYXJrZXJzLgo+Cj4gVGhlIHByZXZpb3Vz IHZlcnNpb24KPiAodjMsIGh0dHBzOi8vcGF0Y2h3b3JrLmZmbXBlZy5vcmcvcHJvamVjdC9mZm1w ZWcvbGlzdC8/c2VyaWVzPTEyMjQ2KQo+IHdhcyB3cm9uZ2x5IHNlcGFyYXRlZC4gSSBoYXZlIGZp eGVkIHRoZSB3YXkgdG8gc2VwYXJhdGlvbi4KPgo+IFRoZSBjaGFuZ2VzIGFyZSBlc3NlbnRpYWxs eSB0aGUgc2FtZSBhcyB2Mgo+IChodHRwczovL3BhdGNod29yay5mZm1wZWcub3JnL3Byb2plY3Qv ZmZtcGVnL2xpc3QvP3Nlcmllcz0xMjE5OSkuCj4gVGhlIHN1Z2dlc3RlZCBtb2RpZmljYXRpb25z IGhhdmUgYmVlbiBtYWRlIGFjY29yZGluZyB0byB0aGUgZGlzY3Vzc2lvbgo+IG9uIHRoaXMgbWFp bGluZyBsaXN0Lgo+Cj4gU2lnbmVkLW9mZi1ieTogT3NhbXUgV2F0YW5hYmUgPG93YXRhbmFiQGVz LnRha3VzaG9rdS11LmFjLmpwPgo+IC0tLQo+ICBsaWJhdmNvZGVjL2pwZWcyMDAwLmggICAgfCAg IDggKysrCj4gIGxpYmF2Y29kZWMvanBlZzIwMDBkZWMuYyB8IDExMiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0KPiAgbGliYXZjb2RlYy9qcGVnMjAwMGRlYy5oIHwgICA3 ICsrKwo+ICAzIGZpbGVzIGNoYW5nZWQsIDEyNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p Cj4KPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9qcGVnMjAwMC5oIGIvbGliYXZjb2RlYy9qcGVn MjAwMC5oCj4gaW5kZXggZDAwNGMwOGYxMC4uNGJkYzM4ZGY3YyAxMDA2NDQKPiAtLS0gYS9saWJh dmNvZGVjL2pwZWcyMDAwLmgKPiArKysgYi9saWJhdmNvZGVjL2pwZWcyMDAwLmgKPiBAQCAtMzcs MTIgKzM3LDE0IEBACj4KPiAgZW51bSBKcGVnMjAwME1hcmtlcnMgewo+ICAgICAgSlBFRzIwMDBf U09DID0gMHhmZjRmLCAvLyBzdGFydCBvZiBjb2Rlc3RyZWFtCj4gKyAgICBKUEVHMjAwMF9DQVAg PSAweGZmNTAsIC8vIGV4dGVuZGVkIGNhcGFiaWxpdGllcwo+ICAgICAgSlBFRzIwMDBfU0laID0g MHhmZjUxLCAvLyBpbWFnZSBhbmQgdGlsZSBzaXplCj4gICAgICBKUEVHMjAwMF9DT0QsICAgICAg ICAgIC8vIGNvZGluZyBzdHlsZSBkZWZhdWx0Cj4gICAgICBKUEVHMjAwMF9DT0MsICAgICAgICAg IC8vIGNvZGluZyBzdHlsZSBjb21wb25lbnQKPiAgICAgIEpQRUcyMDAwX1RMTSA9IDB4ZmY1NSwg Ly8gdGlsZS1wYXJ0IGxlbmd0aCwgbWFpbiBoZWFkZXIKPiAgICAgIEpQRUcyMDAwX1BMTSA9IDB4 ZmY1NywgLy8gcGFja2V0IGxlbmd0aCwgbWFpbiBoZWFkZXIKPiAgICAgIEpQRUcyMDAwX1BMVCwg ICAgICAgICAgLy8gcGFja2V0IGxlbmd0aCwgdGlsZS1wYXJ0IGhlYWRlcgo+ICsgICAgSlBFRzIw MDBfQ1BGLCAgICAgICAgICAvLyBjb3JyZXNwb25kaW5nIHByb2ZpbGUKPiAgICAgIEpQRUcyMDAw X1FDRCA9IDB4ZmY1YywgLy8gcXVhbnRpemF0aW9uIGRlZmF1bHQKPiAgICAgIEpQRUcyMDAwX1FD QywgICAgICAgICAgLy8gcXVhbnRpemF0aW9uIGNvbXBvbmVudAo+ICAgICAgSlBFRzIwMDBfUkdO LCAgICAgICAgICAvLyByZWdpb24gb2YgaW50ZXJlc3QKPiBAQCAtNTgsNiArNjAsMTIgQEAgZW51 bSBKcGVnMjAwME1hcmtlcnMgewo+ICAgICAgSlBFRzIwMDBfRU9DID0gMHhmZmQ5LCAvLyBlbmQg b2YgY29kZXN0cmVhbQo+ICB9Owo+Cj4gK2VudW0gSlBFRzIwMDBfQ2NhcDE1X2IxNF8xNV9wYXJh bXMgewo+ICsgICAgSFRKMktfSFRPTkxZID0gMCwgICAgICAvLyBIVE9OTFksIGJpdCAxNCBhbmQg MTUgYXJlIDAKPiArICAgIEhUSjJLX0hUREVDTEFSRUQsICAgICAgLy8gSFRERUNMQVJFRCwgYml0 IDE0ID0gMSBhbmQgYml0IDE1ID0gMAo+ICsgICAgSFRKMktfTUlYRUQgPSAzLCAgICAgICAvLyBN SVhFRCwgYml0IDE0IGFuZCAxNSBhcmUgMQo+ICt9Owo+ICsKPiAgI2RlZmluZSBKUEVHMjAwMF9T T1BfRklYRURfQllURVMgMHhGRjkxMDAwNAo+ICAjZGVmaW5lIEpQRUcyMDAwX1NPUF9CWVRFX0xF TkdUSCA2Cj4KPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9qcGVnMjAwMGRlYy5jIGIvbGliYXZj b2RlYy9qcGVnMjAwMGRlYy5jCj4gaW5kZXggMDkxOTMxYjFmZi4uZDEwNDY2NjFjNCAxMDA2NDQK PiAtLS0gYS9saWJhdmNvZGVjL2pwZWcyMDAwZGVjLmMKPiArKysgYi9saWJhdmNvZGVjL2pwZWcy MDAwZGVjLmMKPiBAQCAtNDA4LDYgKzQwOCw3MyBAQCBzdGF0aWMgaW50IGdldF9zaXooSnBlZzIw MDBEZWNvZGVyQ29udGV4dCAqcykKPiAgICAgIHMtPmF2Y3R4LT5iaXRzX3Blcl9yYXdfc2FtcGxl ID0gcy0+cHJlY2lzaW9uOwo+ICAgICAgcmV0dXJuIDA7Cj4gIH0KPiArLyogZ2V0IGV4dGVuZGVk IGNhcGFiaWxpdGllcyAoQ0FQKSBtYXJrZXIgc2VnbWVudCAqLwo+ICtzdGF0aWMgaW50IGdldF9j YXAoSnBlZzIwMDBEZWNvZGVyQ29udGV4dCAqcywgSnBlZzIwMDBDb2RpbmdTdHlsZSAqYykKPiAr ewo+ICsgICAgdWludDMyX3QgUGNhcDsKPiArICAgIHVpbnQxNl90IENjYXBfaVszMl0gPSB7IDAg fTsKPiArICAgIHVpbnQxNl90IENjYXBfMTU7Cj4gKyAgICB1aW50OF90IFA7Cj4gKwo+ICsgICAg aWYgKGJ5dGVzdHJlYW0yX2dldF9ieXRlc19sZWZ0KCZzLT5nKSA8IDYpIHsKPiArICAgICAgICBh dl9sb2cocy0+YXZjdHgsIEFWX0xPR19FUlJPUiwgIkluc3VmZmljaWVudCBzcGFjZSBmb3IgQ0FQ XG4iKTsKPiArICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiArICAgIH0KPiAr Cj4gKyAgICBQY2FwID0gYnl0ZXN0cmVhbTJfZ2V0X2JlMzJ1KCZzLT5nKTsKPiArICAgIHMtPmlz SFQgPSAoUGNhcCA+PiAoMzEgLSAoMTUgLSAxKSkpICYgMTsKPiArICAgIGZvciAoaW50IGkgPSAw OyBpIDwgMzI7IGkrKykgewo+ICsgICAgICAgIGlmICgoUGNhcCA+PiAoMzEgLSBpKSkgJiAxKQo+ ICsgICAgICAgICAgICBDY2FwX2lbaV0gPSBieXRlc3RyZWFtMl9nZXRfYmUxNnUoJnMtPmcpOwo+ ICsgICAgfQo+ICsgICAgQ2NhcF8xNSA9IENjYXBfaVsxNF07Cj4gKyAgICBpZiAocy0+aXNIVCA9 PSAxKSB7Cj4gKyAgICAgICAgYXZfbG9nKHMtPmF2Y3R4LCBBVl9MT0dfSU5GTywgIlRoaXMgaXMg YW4gSFRKMksgY29kZXN0cmVhbS5cbiIpOwo+ICsgICAgICAgIC8vIEJpdHMgMTQtMTUKPiArICAg ICAgICBzd2l0Y2ggKChDY2FwXzE1ID4+IDE0KSAmIDB4Mykgewo+ICsgICAgICAgICAgICBjYXNl IDB4MzoKPiArICAgICAgICAgICAgICAgIHMtPkNjYXAxNV9iMTRfMTUgPSBIVEoyS19NSVhFRDsK PiArICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgICAgICBjYXNlIDB4MToKPiArICAg ICAgICAgICAgICAgIHMtPkNjYXAxNV9iMTRfMTUgPSBIVEoyS19IVERFQ0xBUkVEOwo+ICsgICAg ICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgIGNhc2UgMHgwOgo+ICsgICAgICAgICAg ICAgICAgcy0+Q2NhcDE1X2IxNF8xNSA9IEhUSjJLX0hUT05MWTsKPiArICAgICAgICAgICAgICAg IGJyZWFrOwo+ICsgICAgICAgICAgICBkZWZhdWx0Ogo+ICsgICAgICAgICAgICAgICAgYXZfbG9n KHMtPmF2Y3R4LCBBVl9MT0dfRVJST1IsICJVbmtub3duIENDYXAgdmFsdWUuXG4iKTsKPiArICAg ICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7Cj4gKyAgICAgICAgICAgICAgICBi cmVhazsKPiArICAgICAgICB9Cj4gKyAgICAgICAgLy8gQml0IDEzCj4gKyAgICAgICAgaWYgKChD Y2FwXzE1ID4+IDEzKSAmIDEpIHsKPiArICAgICAgICAgICAgYXZfbG9nKHMtPmF2Y3R4LCBBVl9M T0dfRVJST1IsICJNVUxUSUhUIHNldCBpcyBub3Qgc3VwcG9ydGVkLlxuIik7Cj4gKyAgICAgICAg ICAgIHJldHVybiBBVkVSUk9SX1BBVENIV0VMQ09NRTsKPiArICAgICAgICB9Cj4gKyAgICAgICAg Ly8gQml0IDEyCj4gKyAgICAgICAgcy0+Q2NhcDE1X2IxMiA9IChDY2FwXzE1ID4+IDEyKSAmIDE7 Cj4gKyAgICAgICAgLy8gQml0IDExCj4gKyAgICAgICAgcy0+Q2NhcDE1X2IxMSA9IChDY2FwXzE1 ID4+IDExKSAmIDE7Cj4gKyAgICAgICAgLy8gQml0IDUKPiArICAgICAgICBzLT5DY2FwMTVfYjA1 ID0gKENjYXBfMTUgPj4gNSkgJiAxOwo+ICsgICAgICAgIC8vIEJpdCAwLTQKPiArICAgICAgICBQ ID0gQ2NhcF8xNSAmIDB4MUY7Cj4gKyAgICAgICAgaWYgKCFQKQo+ICsgICAgICAgICAgICBzLT5I VF9NQUdCID0gODsKPiArICAgICAgICBlbHNlIGlmIChQIDwgMjApCj4gKyAgICAgICAgICAgIHMt PkhUX01BR0IgPSBQICsgODsKPiArICAgICAgICBlbHNlIGlmIChQIDwgMzEpCj4gKyAgICAgICAg ICAgIHMtPkhUX01BR0IgPSA0ICogKFAgLSAxOSkgKyAyNzsKPiArICAgICAgICBlbHNlCj4gKyAg ICAgICAgICAgIHMtPkhUX01BR0IgPSA3NDsKPiArCj4gKyAgICAgICAgaWYgKHMtPkhUX01BR0Ig PiAzMSkgewo+ICsgICAgICAgICAgICAgICAgYXZfbG9nKHMtPmF2Y3R4LCBBVl9MT0dfRVJST1Is ICJBdmFpbGFibGUgaW50ZXJuYWwgcHJlY2lzaW9uIGlzIGV4Y2VlZGVkIChNQUdCPiAzMSkuXG4i KTsKPiArICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfUEFUQ0hXRUxDT01FOwo+ICsgICAgICAg IH0KPiArICAgIH0KPiArICAgIHJldHVybiAwOwo+ICt9Cj4KPiAgLyogZ2V0IGNvbW1vbiBwYXJ0 IGZvciBDT0QgYW5kIENPQyBzZWdtZW50cyAqLwo+ICBzdGF0aWMgaW50IGdldF9jb3goSnBlZzIw MDBEZWNvZGVyQ29udGV4dCAqcywgSnBlZzIwMDBDb2RpbmdTdHlsZSAqYykKPiBAQCAtODAyLDYg Kzg2OSwxNSBAQCBzdGF0aWMgaW50IHJlYWRfY3JnKEpwZWcyMDAwRGVjb2RlckNvbnRleHQgKnMs IGludCBuKQo+ICAgICAgYnl0ZXN0cmVhbTJfc2tpcCgmcy0+ZywgbiAtIDIpOwo+ICAgICAgcmV0 dXJuIDA7Cj4gIH0KPiArCj4gK3N0YXRpYyBpbnQgcmVhZF9jcGYoSnBlZzIwMDBEZWNvZGVyQ29u dGV4dCAqcywgaW50IG4pCj4gK3sKPiArICAgIGlmIChieXRlc3RyZWFtMl9nZXRfYnl0ZXNfbGVm dCgmcy0+ZykgPCAobiAtIDIpKQo+ICsgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRB Owo+ICsgICAgYnl0ZXN0cmVhbTJfc2tpcCgmcy0+ZywgbiAtIDIpOwo+ICsgICAgcmV0dXJuIDA7 Cj4gK30KPiArCj4gIC8qIFRpbGUtcGFydCBsZW5ndGhzOiBzZWUgSVNPIDE1NDQ0LTE6MjAwMiwg c2VjdGlvbiBBLjcuMQo+ICAgKiBVc2VkIHRvIGtub3cgdGhlIG51bWJlciBvZiB0aWxlIHBhcnRz IGFuZCBsZW5ndGhzLgo+ICAgKiBUaGVyZSBtYXkgYmUgbXVsdGlwbGUgVExNcyBpbiB0aGUgaGVh ZGVyLgo+IEBAIC05NjUsNiArMTA0MSwxNCBAQCBzdGF0aWMgaW50IGluaXRfdGlsZShKcGVnMjAw MERlY29kZXJDb250ZXh0ICpzLCBpbnQgdGlsZW5vKQo+ICAgICAgICAgICAgICBjb21wLT5yb2lf c2hpZnQgPSBzLT5yb2lfc2hpZnRbY29tcG5vXTsKPiAgICAgICAgICBpZiAoIWNvZHN0eS0+aW5p dCkKPiAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gKyAgICAgICAg aWYgKHMtPmlzSFQgJiYgKCFzLT5DY2FwMTVfYjA1KSAmJiAoIWNvZHN0eS0+dHJhbnNmb3JtKSkg ewo+ICsgICAgICAgICAgICBhdl9sb2cocy0+YXZjdHgsIEFWX0xPR19FUlJPUiwgIlRyYW5zZm9y bWF0aW9uID0gMCAobG9zc3kgRFdUKSBpcyBmb3VuZCBpbiBIVFJFViBIVCBzZXRcbiIpOwo+ICsg ICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiArICAgICAgICB9Cj4gKyAg ICAgICAgaWYgKHMtPmlzSFQgJiYgcy0+Q2NhcDE1X2IxNF8xNSAhPSAoY29kc3R5LT5jYmxrX3N0 eWxlID4+IDYpICYmIHMtPkNjYXAxNV9iMTRfMTUgIT0gSFRKMktfSFRPTkxZKSB7Cj4gKyAgICAg ICAgICAgIGF2X2xvZyhzLT5hdmN0eCwgQVZfTE9HX0VSUk9SLCAiU1Bjb2QvU1Bjb2MgdmFsdWUg ZG9lcyBub3QgbWF0Y2ggYml0IDE0LTE1IHZhbHVlcyBvZiBDY2FwMTVcbiIpOwo+ICsgICAgICAg ICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiArICAgICAgICB9Cj4gICAgICAgICAg aWYgKHJldCA9IGZmX2pwZWcyMDAwX2luaXRfY29tcG9uZW50KGNvbXAsIGNvZHN0eSwgcW50c3R5 LAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLT5jYnBz W2NvbXBub10sIHMtPmNkeFtjb21wbm9dLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzLT5jZHlbY29tcG5vXSwgcy0+YXZjdHgpKQo+IEBAIC0yMTg3LDIy ICsyMjcxLDQzIEBAIHN0YXRpYyBpbnQganBlZzIwMDBfcmVhZF9tYWluX2hlYWRlcnMoSnBlZzIw MDBEZWNvZGVyQ29udGV4dCAqcykKPiAgICAgICAgICAgICAgaWYgKCFzLT50aWxlKQo+ICAgICAg ICAgICAgICAgICAgcy0+bnVtWHRpbGVzID0gcy0+bnVtWXRpbGVzID0gMDsKPiAgICAgICAgICAg ICAgYnJlYWs7Cj4gKyAgICAgICAgY2FzZSBKUEVHMjAwMF9DQVA6Cj4gKyAgICAgICAgICAgIGlm ICghcy0+bmNvbXBvbmVudHMpIHsKPiArICAgICAgICAgICAgICAgIGF2X2xvZyhzLT5hdmN0eCwg QVZfTE9HX0VSUk9SLCAiQ0FQIG1hcmtlciBzZWdtZW50IHNoYWxsIGNvbWUgYWZ0ZXIgU0laXG4i KTsKPiArICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+ICsgICAg ICAgICAgICB9Cj4gKyAgICAgICAgICAgIHJldCA9IGdldF9jYXAocywgY29kc3R5KTsKPiArICAg ICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgY2FzZSBKUEVHMjAwMF9DT0M6Cj4gKyAgICAgICAg ICAgIGlmIChzLT5pbl90aWxlX2hlYWRlcnMgPT0gMSAmJiBzLT5pc0hUICYmICghcy0+Q2NhcDE1 X2IxMSkpCj4gKyAgICAgICAgICAgICAgICBhdl9sb2cocy0+YXZjdHgsIEFWX0xPR19XQVJOSU5H LCAiQ09DIG1hcmtlciBpcyBmb3VuZCBpbiBIT01PR0VORU9VUyBIVCBzZXRcbiIpOwo+ICAgICAg ICAgICAgICByZXQgPSBnZXRfY29jKHMsIGNvZHN0eSwgcHJvcGVydGllcyk7Cj4gICAgICAgICAg ICAgIGJyZWFrOwo+ICAgICAgICAgIGNhc2UgSlBFRzIwMDBfQ09EOgo+ICsgICAgICAgICAgICBp ZiAocy0+aW5fdGlsZV9oZWFkZXJzID09IDEgJiYgcy0+aXNIVCAmJiAoIXMtPkNjYXAxNV9iMTEp KQo+ICsgICAgICAgICAgICAgICAgYXZfbG9nKHMtPmF2Y3R4LCBBVl9MT0dfV0FSTklORywgIkNP RCBtYXJrZXIgaXMgZm91bmQgaW4gSE9NT0dFTkVPVVMgSFQgc2V0XG4iKTsKPiAgICAgICAgICAg ICAgcmV0ID0gZ2V0X2NvZChzLCBjb2RzdHksIHByb3BlcnRpZXMpOwo+ICAgICAgICAgICAgICBi cmVhazsKPiAgICAgICAgICBjYXNlIEpQRUcyMDAwX1JHTjoKPiArICAgICAgICAgICAgaWYgKHMt PmluX3RpbGVfaGVhZGVycyA9PSAxICYmIHMtPmlzSFQgJiYgKCFzLT5DY2FwMTVfYjExKSkKPiAr ICAgICAgICAgICAgICAgIGF2X2xvZyhzLT5hdmN0eCwgQVZfTE9HX1dBUk5JTkcsICJSR0IgbWFy a2VyIGlzIGZvdW5kIGluIEhPTU9HRU5FT1VTIEhUIHNldFxuIik7Cj4gICAgICAgICAgICAgIHJl dCA9IGdldF9yZ24ocywgbGVuKTsKPiArICAgICAgICAgICAgaWYgKCghcy0+Q2NhcDE1X2IxMikg JiYgcy0+aXNIVCkKPiArICAgICAgICAgICAgICAgIGF2X2xvZyhzLT5hdmN0eCwgQVZfTE9HX1dB Uk5JTkcsICJSR04gbWFya2VyIGlzIGZvdW5kIGluIFJHTkZSRUUgSFQgc2V0XG4iKTsKPiAgICAg ICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgY2FzZSBKUEVHMjAwMF9RQ0M6Cj4gKyAgICAgICAg ICAgIGlmIChzLT5pbl90aWxlX2hlYWRlcnMgPT0gMSAmJiBzLT5pc0hUICYmICghcy0+Q2NhcDE1 X2IxMSkpCj4gKyAgICAgICAgICAgICAgICBhdl9sb2cocy0+YXZjdHgsIEFWX0xPR19XQVJOSU5H LCAiUUNDIG1hcmtlciBpcyBmb3VuZCBpbiBIT01PR0VORU9VUyBIVCBzZXRcbiIpOwo+ICAgICAg ICAgICAgICByZXQgPSBnZXRfcWNjKHMsIGxlbiwgcW50c3R5LCBwcm9wZXJ0aWVzKTsKPiAgICAg ICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgY2FzZSBKUEVHMjAwMF9RQ0Q6Cj4gKyAgICAgICAg ICAgIGlmIChzLT5pbl90aWxlX2hlYWRlcnMgPT0gMSAmJiBzLT5pc0hUICYmICghcy0+Q2NhcDE1 X2IxMSkpCj4gKyAgICAgICAgICAgICAgICBhdl9sb2cocy0+YXZjdHgsIEFWX0xPR19XQVJOSU5H LCAiUUNEIG1hcmtlciBpcyBmb3VuZCBpbiBIT01PR0VORU9VUyBIVCBzZXRcbiIpOwo+ICAgICAg ICAgICAgICByZXQgPSBnZXRfcWNkKHMsIGxlbiwgcW50c3R5LCBwcm9wZXJ0aWVzKTsKPiAgICAg ICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgY2FzZSBKUEVHMjAwMF9QT0M6Cj4gKyAgICAgICAg ICAgIGlmIChzLT5pbl90aWxlX2hlYWRlcnMgPT0gMSAmJiBzLT5pc0hUICYmICghcy0+Q2NhcDE1 X2IxMSkpCj4gKyAgICAgICAgICAgICAgICBhdl9sb2cocy0+YXZjdHgsIEFWX0xPR19XQVJOSU5H LCAiUE9DIG1hcmtlciBpcyBmb3VuZCBpbiBIT01PR0VORU9VUyBIVCBzZXRcbiIpOwo+ICAgICAg ICAgICAgICByZXQgPSBnZXRfcG9jKHMsIGxlbiwgcG9jKTsKPiAgICAgICAgICAgICAgYnJlYWs7 Cj4gICAgICAgICAgY2FzZSBKUEVHMjAwMF9TT1Q6Cj4gQEAgLTIyNTIsOSArMjM1NywxNCBAQCBz dGF0aWMgaW50IGpwZWcyMDAwX3JlYWRfbWFpbl9oZWFkZXJzKEpwZWcyMDAwRGVjb2RlckNvbnRl eHQgKnMpCj4gICAgICAgICAgICAgICAgICAgICAgICAgIkNhbm5vdCBoYXZlIGJvdGggUFBUIGFu ZCBQUE0gbWFya2VyLlxuIik7Cj4gICAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZB TElEREFUQTsKPiAgICAgICAgICAgICAgfQo+IC0KPiArICAgICAgICAgICAgaWYgKCghcy0+Q2Nh cDE1X2IxMSkgJiYgcy0+aXNIVCkKPiArICAgICAgICAgICAgICAgIGF2X2xvZyhzLT5hdmN0eCwg QVZfTE9HX1dBUk5JTkcsICJQUFQgbWFya2VyIGlzIGZvdW5kIGluIEhPTU9HRU5FT1VTIEhUIHNl dFxuIik7Cj4gICAgICAgICAgICAgIHJldCA9IGdldF9wcHQocywgbGVuKTsKPiAgICAgICAgICAg ICAgYnJlYWs7Cj4gKyAgICAgICAgY2FzZSBKUEVHMjAwMF9DUEY6Cj4gKyAgICAgICAgICAgIC8v IENvcnJlc3BvbmRpbmcgcHJvZmlsZSBtYXJrZXIKPiArICAgICAgICAgICAgcmV0ID0gcmVhZF9j cGYocywgbGVuKTsKPiArICAgICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgZGVmYXVsdDoKPiAg ICAgICAgICAgICAgYXZfbG9nKHMtPmF2Y3R4LCBBVl9MT0dfRVJST1IsCj4gICAgICAgICAgICAg ICAgICAgICAidW5zdXBwb3J0ZWQgbWFya2VyIDB4JS40IlBSSVgxNiIgYXQgcG9zIDB4JVhcbiIs Cj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvanBlZzIwMDBkZWMuaCBiL2xpYmF2Y29kZWMvanBl ZzIwMDBkZWMuaAo+IGluZGV4IGQwY2E2ZTdhNzkuLjMyNmE1NzI3MjIgMTAwNjQ0Cj4gLS0tIGEv bGliYXZjb2RlYy9qcGVnMjAwMGRlYy5oCj4gKysrIGIvbGliYXZjb2RlYy9qcGVnMjAwMGRlYy5o Cj4gQEAgLTExMiw2ICsxMTIsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgSnBlZzIwMDBEZWNvZGVyQ29u dGV4dCB7Cj4gICAgICBKcGVnMjAwMFRpbGUgICAgKnRpbGU7Cj4gICAgICBKcGVnMjAwMERTUENv bnRleHQgZHNwOwo+Cj4gKyAgICB1aW50OF90ICAgICAgICAgaXNIVDsgLy8gSFRKMks/Cj4gKyAg ICB1aW50OF90ICAgICAgICAgQ2NhcDE1X2IxNF8xNTsgLy8gSFRPTkxZKD0gMCkgb3IgSFRERUNM QVJFRCg9IDEpIG9yIE1JWEVEKD0gMykgPwo+ICsgICAgdWludDhfdCAgICAgICAgIENjYXAxNV9i MTI7IC8vIFJHTkZSRUUoPSAwKSBvciBSR04oPSAxKT8KPiArICAgIHVpbnQ4X3QgICAgICAgICBD Y2FwMTVfYjExOyAvLyBIT01PR0VORU9VUyg9IDApIG9yIEhFVEVST0dFTkVPVVMoPSAxKSA/Cj4g KyAgICB1aW50OF90ICAgICAgICAgQ2NhcDE1X2IwNTsgLy8gSFRSRVYoPSAwKSBvciBIVElSVig9 IDEpID8KPiArICAgIHVpbnQ4X3QgICAgICAgICBIVF9NQUdCOyAvLyBNQUdCIHZhbHVlCj4gKwo+ ICAgICAgLypvcHRpb25zIHBhcmFtZXRlcnMqLwo+ICAgICAgaW50ICAgICAgICAgICAgIHJlZHVj dGlvbl9mYWN0b3I7Cj4gIH0gSnBlZzIwMDBEZWNvZGVyQ29udGV4dDsKPiAtLQo+IDIuMzQuMQo+ Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1k ZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcu b3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQg bGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRo IHN1YmplY3QgInVuc3Vic2NyaWJlIi4K