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 4C8A84C873 for ; Wed, 7 Aug 2024 04:16:59 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 47BDF68DB21; Wed, 7 Aug 2024 07:16:57 +0300 (EEST) Received: from mail-vs1-f42.google.com (mail-vs1-f42.google.com [209.85.217.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AE07268DADD for ; Wed, 7 Aug 2024 07:16:50 +0300 (EEST) Received: by mail-vs1-f42.google.com with SMTP id ada2fe7eead31-49296011b52so283845137.1 for ; Tue, 06 Aug 2024 21:16:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sandflow-com.20230601.gappssmtp.com; s=20230601; t=1723004208; x=1723609008; 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=jieH8cMf3TIQR5i0f7n9u0yUNP2mxJYqL5mgtlNvaxI=; b=3DC9XCg+x05jIJYCixkM4ynjtEokLMErIYgNig0dQrP/ytcwQxXBsBVMIFa3Y5Q9cK /JkWGxkdaohd4opPUK+pMMkiNWdmvK0RM/ol5A9VuLERxCXlwBW929S/dwPnIoh17hU5 w4pPSnaDbJabFq95brejCb0PNqx5xoUIKDNqkr8Ee4io8FNucewxN3NxD3tMfb4Fluv8 iskk4SGTCDKuEpqVY8wsRY4VSe7gcaw3Dz9lm0t7d/uI676nXA6pcKTED/JuZ1iOZ9Hs DfQyh6im6ekL+uzxVbG1SIkBEnrJrdWwT7ZMN73F5VEoj46MqgO/vWlr7ttPcUlXVe2D nPVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723004208; x=1723609008; 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=jieH8cMf3TIQR5i0f7n9u0yUNP2mxJYqL5mgtlNvaxI=; b=dnAigtvWYQ0p6BV2iMtMvk8Xqnw1eQCW4IbJKw4ng9Jr/ChkN0Vn1pKioyflDwTT9j Rso0W8qwjdE6C1rxKVc3yDPGa8tobb11kH+g5gBKlHeUID+X75PxtaI3FjY3cDb7hXGB L0MPDjuC0rwtXn0TbLqyZx2m72eQnVFiesvfS1R//FnJtEezDqOY8HlWJJ/fr6z0Nw7v PnYds9Aq7IUHPqkUp6OplDSKSrih9aYxw5z9Tp7pESoV7shT1Y4FnVe+sis7fk8xwoVO wTlNbIWdrzX8pLThAnV5pg1PLK+skCZBwKFjXEku8nkQG1xEQOcA/+8vjipAl74ulp8C IhkQ== X-Gm-Message-State: AOJu0Yz/sTzHblKKg8+2ftB9WZdunblrZsTYvpYow36bmn94KYiiYz60 hqk0IZX3JWRJr+xTqQgMn94zXRrycGrWx0aH54st0XAZuyx40ZOUMeT659yxApYC/hIzfILkdM/ x X-Google-Smtp-Source: AGHT+IGMUf5G0OQcTXQ4PglxijAZ4neWVap08c5tac1YN/dW31bSXggbYr2fCalasOkK4or6+h/ZKw== X-Received: by 2002:a05:6102:cd4:b0:493:bf96:9992 with SMTP id ada2fe7eead31-495b8239a4fmr449181137.4.1723004208485; Tue, 06 Aug 2024 21:16:48 -0700 (PDT) Received: from mail-vs1-f50.google.com (mail-vs1-f50.google.com. [209.85.217.50]) by smtp.gmail.com with ESMTPSA id ada2fe7eead31-4945da89e6fsm1945671137.3.2024.08.06.21.16.47 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 06 Aug 2024 21:16:48 -0700 (PDT) Received: by mail-vs1-f50.google.com with SMTP id ada2fe7eead31-492886d28e8so296350137.0 for ; Tue, 06 Aug 2024 21:16:47 -0700 (PDT) X-Received: by 2002:a05:6102:1629:b0:492:9e70:ef2b with SMTP id ada2fe7eead31-495b820f46emr369803137.1.1723004206989; Tue, 06 Aug 2024 21:16:46 -0700 (PDT) MIME-Version: 1.0 References: <20240807034845.363526-1-owatanab@es.takushoku-u.ac.jp> In-Reply-To: <20240807034845.363526-1-owatanab@es.takushoku-u.ac.jp> From: Pierre-Anthony Lemieux Date: Tue, 6 Aug 2024 21:16:36 -0700 X-Gmail-Original-Message-ID: Message-ID: To: ffmpeg-devel@ffmpeg.org Subject: Re: [FFmpeg-devel] [PATCH v8 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: Osamu Watanabe 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: SSBwbGFuIHRvIGFwcGx5IG9uIEZyaWRheSwgYWZ0ZXIgZml4aW5nIHRoZSBmZXcgZXJyYW50IHRy YWlsaW5nIHNwYWNlcy4KCk9uIFR1ZSwgQXVnIDYsIDIwMjQgYXQgODo0OOKAr1BNIE9zYW11IFdh dGFuYWJlCjxvd2F0YW5hYkBlcy50YWt1c2hva3UtdS5hYy5qcD4gd3JvdGU6Cj4KPiBUaGlzIGNv bW1pdCBhZGRzIHN1cHBvcnQgZm9yIENBUCBhbmQgQ1BGIG1hcmtlcnMuIERlY29kaW5nIHdpbGwg ZXhpdCB3aGVuIGVuY291bnRlcmluZyBJbGVnYWwgaW5wdXQgY29kZXN0cmVhbXMuCj4KPiBTaWdu ZWQtb2ZmLWJ5OiBPc2FtdSBXYXRhbmFiZSA8b3dhdGFuYWJAZXMudGFrdXNob2t1LXUuYWMuanA+ Cj4gLS0tCj4gIGxpYmF2Y29kZWMvanBlZzIwMDAuaCAgICB8ICAgOCArKysKPiAgbGliYXZjb2Rl Yy9qcGVnMjAwMGRlYy5jIHwgMTM0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLQo+ICBsaWJhdmNvZGVjL2pwZWcyMDAwZGVjLmggfCAgIDcgKysKPiAgMyBmaWxlcyBjaGFu Z2VkLCAxNDggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+Cj4gZGlmZiAtLWdpdCBhL2xp YmF2Y29kZWMvanBlZzIwMDAuaCBiL2xpYmF2Y29kZWMvanBlZzIwMDAuaAo+IGluZGV4IGQwMDRj MDhmMTAuLjRiZGMzOGRmN2MgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy9qcGVnMjAwMC5oCj4g KysrIGIvbGliYXZjb2RlYy9qcGVnMjAwMC5oCj4gQEAgLTM3LDEyICszNywxNCBAQAo+Cj4gIGVu dW0gSnBlZzIwMDBNYXJrZXJzIHsKPiAgICAgIEpQRUcyMDAwX1NPQyA9IDB4ZmY0ZiwgLy8gc3Rh cnQgb2YgY29kZXN0cmVhbQo+ICsgICAgSlBFRzIwMDBfQ0FQID0gMHhmZjUwLCAvLyBleHRlbmRl ZCBjYXBhYmlsaXRpZXMKPiAgICAgIEpQRUcyMDAwX1NJWiA9IDB4ZmY1MSwgLy8gaW1hZ2UgYW5k IHRpbGUgc2l6ZQo+ICAgICAgSlBFRzIwMDBfQ09ELCAgICAgICAgICAvLyBjb2Rpbmcgc3R5bGUg ZGVmYXVsdAo+ICAgICAgSlBFRzIwMDBfQ09DLCAgICAgICAgICAvLyBjb2Rpbmcgc3R5bGUgY29t cG9uZW50Cj4gICAgICBKUEVHMjAwMF9UTE0gPSAweGZmNTUsIC8vIHRpbGUtcGFydCBsZW5ndGgs IG1haW4gaGVhZGVyCj4gICAgICBKUEVHMjAwMF9QTE0gPSAweGZmNTcsIC8vIHBhY2tldCBsZW5n dGgsIG1haW4gaGVhZGVyCj4gICAgICBKUEVHMjAwMF9QTFQsICAgICAgICAgIC8vIHBhY2tldCBs ZW5ndGgsIHRpbGUtcGFydCBoZWFkZXIKPiArICAgIEpQRUcyMDAwX0NQRiwgICAgICAgICAgLy8g Y29ycmVzcG9uZGluZyBwcm9maWxlCj4gICAgICBKUEVHMjAwMF9RQ0QgPSAweGZmNWMsIC8vIHF1 YW50aXphdGlvbiBkZWZhdWx0Cj4gICAgICBKUEVHMjAwMF9RQ0MsICAgICAgICAgIC8vIHF1YW50 aXphdGlvbiBjb21wb25lbnQKPiAgICAgIEpQRUcyMDAwX1JHTiwgICAgICAgICAgLy8gcmVnaW9u IG9mIGludGVyZXN0Cj4gQEAgLTU4LDYgKzYwLDEyIEBAIGVudW0gSnBlZzIwMDBNYXJrZXJzIHsK PiAgICAgIEpQRUcyMDAwX0VPQyA9IDB4ZmZkOSwgLy8gZW5kIG9mIGNvZGVzdHJlYW0KPiAgfTsK Pgo+ICtlbnVtIEpQRUcyMDAwX0NjYXAxNV9iMTRfMTVfcGFyYW1zIHsKPiArICAgIEhUSjJLX0hU T05MWSA9IDAsICAgICAgLy8gSFRPTkxZLCBiaXQgMTQgYW5kIDE1IGFyZSAwCj4gKyAgICBIVEoy S19IVERFQ0xBUkVELCAgICAgIC8vIEhUREVDTEFSRUQsIGJpdCAxNCA9IDEgYW5kIGJpdCAxNSA9 IDAKPiArICAgIEhUSjJLX01JWEVEID0gMywgICAgICAgLy8gTUlYRUQsIGJpdCAxNCBhbmQgMTUg YXJlIDEKPiArfTsKPiArCj4gICNkZWZpbmUgSlBFRzIwMDBfU09QX0ZJWEVEX0JZVEVTIDB4RkY5 MTAwMDQKPiAgI2RlZmluZSBKUEVHMjAwMF9TT1BfQllURV9MRU5HVEggNgo+Cj4gZGlmZiAtLWdp dCBhL2xpYmF2Y29kZWMvanBlZzIwMDBkZWMuYyBiL2xpYmF2Y29kZWMvanBlZzIwMDBkZWMuYwo+ IGluZGV4IDA5MTkzMWIxZmYuLjYyZmFhOGQ5ZjUgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy9q cGVnMjAwMGRlYy5jCj4gKysrIGIvbGliYXZjb2RlYy9qcGVnMjAwMGRlYy5jCj4gQEAgLTQwOCw2 ICs0MDgsNzMgQEAgc3RhdGljIGludCBnZXRfc2l6KEpwZWcyMDAwRGVjb2RlckNvbnRleHQgKnMp Cj4gICAgICBzLT5hdmN0eC0+Yml0c19wZXJfcmF3X3NhbXBsZSA9IHMtPnByZWNpc2lvbjsKPiAg ICAgIHJldHVybiAwOwo+ICB9Cj4gKy8qIGdldCBleHRlbmRlZCBjYXBhYmlsaXRpZXMgKENBUCkg bWFya2VyIHNlZ21lbnQgKi8KPiArc3RhdGljIGludCBnZXRfY2FwKEpwZWcyMDAwRGVjb2RlckNv bnRleHQgKnMsIEpwZWcyMDAwQ29kaW5nU3R5bGUgKmMpCj4gK3sKPiArICAgIHVpbnQzMl90IFBj YXA7Cj4gKyAgICB1aW50MTZfdCBDY2FwX2lbMzJdID0geyAwIH07Cj4gKyAgICB1aW50MTZfdCBD Y2FwXzE1Owo+ICsgICAgdWludDhfdCBQOwo+ICsKPiArICAgIGlmIChieXRlc3RyZWFtMl9nZXRf Ynl0ZXNfbGVmdCgmcy0+ZykgPCA2KSB7Cj4gKyAgICAgICAgYXZfbG9nKHMtPmF2Y3R4LCBBVl9M T0dfRVJST1IsICJVbmRlcmZsb3cgd2hpbGUgcGFyc2luZyB0aGUgQ0FQIG1hcmtlclxuIik7Cj4g KyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gKyAgICB9Cj4gKwo+ICsgICAg UGNhcCA9IGJ5dGVzdHJlYW0yX2dldF9iZTMydSgmcy0+Zyk7Cj4gKyAgICBzLT5pc0hUID0gKFBj YXAgPj4gKDMxIC0gKDE1IC0gMSkpKSAmIDE7Cj4gKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDMy OyBpKyspIHsKPiArICAgICAgICBpZiAoKFBjYXAgPj4gKDMxIC0gaSkpICYgMSkKPiArICAgICAg ICAgICAgQ2NhcF9pW2ldID0gYnl0ZXN0cmVhbTJfZ2V0X2JlMTZ1KCZzLT5nKTsKPiArICAgIH0K PiArICAgIENjYXBfMTUgPSBDY2FwX2lbMTRdOwo+ICsgICAgaWYgKHMtPmlzSFQgPT0gMSkgewo+ ICsgICAgICAgIGF2X2xvZyhzLT5hdmN0eCwgQVZfTE9HX0lORk8sICJUaGlzIGNvZGVzdHJlYW0g dXNlcyB0aGUgSFQgYmxvY2sgY29kZXIuXG4iKTsKPiArICAgICAgICAvLyBCaXRzIDE0LTE1Cj4g KyAgICAgICAgc3dpdGNoICgoQ2NhcF8xNSA+PiAxNCkgJiAweDMpIHsKPiArICAgICAgICAgICAg Y2FzZSAweDM6Cj4gKyAgICAgICAgICAgICAgICBzLT5DY2FwMTVfYjE0XzE1ID0gSFRKMktfTUlY RUQ7Cj4gKyAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAgICAgICAgY2FzZSAweDE6Cj4g KyAgICAgICAgICAgICAgICBzLT5DY2FwMTVfYjE0XzE1ID0gSFRKMktfSFRERUNMQVJFRDsKPiAr ICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgICAgICBjYXNlIDB4MDoKPiArICAgICAg ICAgICAgICAgIHMtPkNjYXAxNV9iMTRfMTUgPSBIVEoyS19IVE9OTFk7Cj4gKyAgICAgICAgICAg ICAgICBicmVhazsKPiArICAgICAgICAgICAgZGVmYXVsdDoKPiArICAgICAgICAgICAgICAgIGF2 X2xvZyhzLT5hdmN0eCwgQVZfTE9HX0VSUk9SLCAiVW5rbm93biBDQ2FwIHZhbHVlLlxuIik7Cj4g KyAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFSU5WQUwpOwo+ICsgICAgICAgICAgICAg ICAgYnJlYWs7Cj4gKyAgICAgICAgfQo+ICsgICAgICAgIC8vIEJpdCAxMwo+ICsgICAgICAgIGlm ICgoQ2NhcF8xNSA+PiAxMykgJiAxKSB7Cj4gKyAgICAgICAgICAgIGF2X2xvZyhzLT5hdmN0eCwg QVZfTE9HX0VSUk9SLCAiTVVMVElIVCBzZXQgaXMgbm90IHN1cHBvcnRlZC5cbiIpOwo+ICsgICAg ICAgICAgICByZXR1cm4gQVZFUlJPUl9QQVRDSFdFTENPTUU7Cj4gKyAgICAgICAgfQo+ICsgICAg ICAgIC8vIEJpdCAxMgo+ICsgICAgICAgIHMtPkNjYXAxNV9iMTIgPSAoQ2NhcF8xNSA+PiAxMikg JiAxOwo+ICsgICAgICAgIC8vIEJpdCAxMQo+ICsgICAgICAgIHMtPkNjYXAxNV9iMTEgPSAoQ2Nh cF8xNSA+PiAxMSkgJiAxOwo+ICsgICAgICAgIC8vIEJpdCA1Cj4gKyAgICAgICAgcy0+Q2NhcDE1 X2IwNSA9IChDY2FwXzE1ID4+IDUpICYgMTsKPiArICAgICAgICAvLyBCaXQgMC00Cj4gKyAgICAg ICAgUCA9IENjYXBfMTUgJiAweDFGOwo+ICsgICAgICAgIGlmICghUCkKPiArICAgICAgICAgICAg cy0+SFRfQiA9IDg7Cj4gKyAgICAgICAgZWxzZSBpZiAoUCA8IDIwKQo+ICsgICAgICAgICAgICBz LT5IVF9CID0gUCArIDg7Cj4gKyAgICAgICAgZWxzZSBpZiAoUCA8IDMxKQo+ICsgICAgICAgICAg ICBzLT5IVF9CID0gNCAqIChQIC0gMTkpICsgMjc7Cj4gKyAgICAgICAgZWxzZQo+ICsgICAgICAg ICAgICBzLT5IVF9CID0gNzQ7Cj4gKwo+ICsgICAgICAgIGlmIChzLT5IVF9CID4gMzEpIHsKPiAr ICAgICAgICAgICAgYXZfbG9nKHMtPmF2Y3R4LCBBVl9MT0dfRVJST1IsICJDb2Rlc3RyZWFtIGV4 Y2VlZHMgYXZhaWxhYmxlIHByZWNpc2lvbiAoQiA+IDMxKS5cbiIpOwo+ICsgICAgICAgICAgICBy ZXR1cm4gQVZFUlJPUl9QQVRDSFdFTENPTUU7Cj4gKyAgICAgICAgfQo+ICsgICAgfQo+ICsgICAg cmV0dXJuIDA7Cj4gK30KPgo+ICAvKiBnZXQgY29tbW9uIHBhcnQgZm9yIENPRCBhbmQgQ09DIHNl Z21lbnRzICovCj4gIHN0YXRpYyBpbnQgZ2V0X2NveChKcGVnMjAwMERlY29kZXJDb250ZXh0ICpz LCBKcGVnMjAwMENvZGluZ1N0eWxlICpjKQo+IEBAIC04MDIsNiArODY5LDE1IEBAIHN0YXRpYyBp bnQgcmVhZF9jcmcoSnBlZzIwMDBEZWNvZGVyQ29udGV4dCAqcywgaW50IG4pCj4gICAgICBieXRl c3RyZWFtMl9za2lwKCZzLT5nLCBuIC0gMik7Cj4gICAgICByZXR1cm4gMDsKPiAgfQo+ICsKPiAr c3RhdGljIGludCByZWFkX2NwZihKcGVnMjAwMERlY29kZXJDb250ZXh0ICpzLCBpbnQgbikKPiAr ewo+ICsgICAgaWYgKGJ5dGVzdHJlYW0yX2dldF9ieXRlc19sZWZ0KCZzLT5nKSA8IChuIC0gMikp Cj4gKyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gKyAgICBieXRlc3RyZWFt Ml9za2lwKCZzLT5nLCBuIC0gMik7Cj4gKyAgICByZXR1cm4gMDsKPiArfQo+ICsKPiAgLyogVGls ZS1wYXJ0IGxlbmd0aHM6IHNlZSBJU08gMTU0NDQtMToyMDAyLCBzZWN0aW9uIEEuNy4xCj4gICAq IFVzZWQgdG8ga25vdyB0aGUgbnVtYmVyIG9mIHRpbGUgcGFydHMgYW5kIGxlbmd0aHMuCj4gICAq IFRoZXJlIG1heSBiZSBtdWx0aXBsZSBUTE1zIGluIHRoZSBoZWFkZXIuCj4gQEAgLTk2NSw2ICsx MDQxLDE0IEBAIHN0YXRpYyBpbnQgaW5pdF90aWxlKEpwZWcyMDAwRGVjb2RlckNvbnRleHQgKnMs IGludCB0aWxlbm8pCj4gICAgICAgICAgICAgIGNvbXAtPnJvaV9zaGlmdCA9IHMtPnJvaV9zaGlm dFtjb21wbm9dOwo+ICAgICAgICAgIGlmICghY29kc3R5LT5pbml0KQo+ICAgICAgICAgICAgICBy ZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiArICAgICAgICBpZiAocy0+aXNIVCAmJiAoIXMt PkNjYXAxNV9iMDUpICYmICghY29kc3R5LT50cmFuc2Zvcm0pKSB7Cj4gKyAgICAgICAgICAgIGF2 X2xvZyhzLT5hdmN0eCwgQVZfTE9HX0VSUk9SLCAiVHJhbnNmb3JtYXRpb24gPSAwIChsb3NzeSBE V1QpIGlzIGZvdW5kIGluIEhUUkVWIEhUIHNldFxuIik7Cj4gKyAgICAgICAgICAgIHJldHVybiBB VkVSUk9SX0lOVkFMSUREQVRBOwo+ICsgICAgICAgIH0KPiArICAgICAgICBpZiAocy0+aXNIVCAm JiBzLT5DY2FwMTVfYjE0XzE1ICE9IChjb2RzdHktPmNibGtfc3R5bGUgPj4gNikgJiYgcy0+Q2Nh cDE1X2IxNF8xNSAhPSBIVEoyS19IVE9OTFkpIHsKPiArICAgICAgICAgICAgYXZfbG9nKHMtPmF2 Y3R4LCBBVl9MT0dfRVJST1IsICJTUGNvZC9TUGNvYyB2YWx1ZSBkb2VzIG5vdCBtYXRjaCBiaXQg MTQtMTUgdmFsdWVzIG9mIENjYXAxNVxuIik7Cj4gKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9S X0lOVkFMSUREQVRBOwo+ICsgICAgICAgIH0KPiAgICAgICAgICBpZiAocmV0ID0gZmZfanBlZzIw MDBfaW5pdF9jb21wb25lbnQoY29tcCwgY29kc3R5LCBxbnRzdHksCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMtPmNicHNbY29tcG5vXSwgcy0+Y2R4W2Nv bXBub10sCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMt PmNkeVtjb21wbm9dLCBzLT5hdmN0eCkpCj4gQEAgLTIxODcsMjIgKzIyNzEsNjMgQEAgc3RhdGlj IGludCBqcGVnMjAwMF9yZWFkX21haW5faGVhZGVycyhKcGVnMjAwMERlY29kZXJDb250ZXh0ICpz KQo+ICAgICAgICAgICAgICBpZiAoIXMtPnRpbGUpCj4gICAgICAgICAgICAgICAgICBzLT5udW1Y dGlsZXMgPSBzLT5udW1ZdGlsZXMgPSAwOwo+ICAgICAgICAgICAgICBicmVhazsKPiArICAgICAg ICBjYXNlIEpQRUcyMDAwX0NBUDoKPiArICAgICAgICAgICAgaWYgKCFzLT5uY29tcG9uZW50cykg ewo+ICsgICAgICAgICAgICAgICAgYXZfbG9nKHMtPmF2Y3R4LCBBVl9MT0dfRVJST1IsICJDQVAg bWFya2VyIHNlZ21lbnQgc2hhbGwgY29tZSBhZnRlciBTSVpcbiIpOwo+ICsgICAgICAgICAgICAg ICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gKyAgICAgICAgICAgIH0KPiArICAgICAg ICAgICAgcmV0ID0gZ2V0X2NhcChzLCBjb2RzdHkpOwo+ICsgICAgICAgICAgICBicmVhazsKPiAg ICAgICAgICBjYXNlIEpQRUcyMDAwX0NPQzoKPiArICAgICAgICAgICAgaWYgKHMtPmluX3RpbGVf aGVhZGVycyA9PSAxICYmIHMtPmlzSFQgJiYgKCFzLT5DY2FwMTVfYjExKSkgewo+ICsgICAgICAg ICAgICAgICAgYXZfbG9nKHMtPmF2Y3R4LCBBVl9MT0dfRVJST1IsCj4gKyAgICAgICAgICAgICAg ICAgICAgIkNPQyBtYXJrZXIgZm91bmQgaW4gYSB0aWxlIGhlYWRlciBidXQgdGhlIGNvZGVzdHJl YW0gYmVsb25ncyB0byB0aGUgSE9NT0dFTkVPVVMgc2V0XG4iKTsKPiArICAgICAgICAgICAgICAg IHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+ICsgICAgICAgICAgICB9Cj4gICAgICAgICAg ICAgIHJldCA9IGdldF9jb2MocywgY29kc3R5LCBwcm9wZXJ0aWVzKTsKPiAgICAgICAgICAgICAg YnJlYWs7Cj4gICAgICAgICAgY2FzZSBKUEVHMjAwMF9DT0Q6Cj4gKyAgICAgICAgICAgIGlmIChz LT5pbl90aWxlX2hlYWRlcnMgPT0gMSAmJiBzLT5pc0hUICYmICghcy0+Q2NhcDE1X2IxMSkpIHsK PiArICAgICAgICAgICAgICAgIGF2X2xvZyhzLT5hdmN0eCwgQVZfTE9HX0VSUk9SLAo+ICsgICAg ICAgICAgICAgICAgICAgICJDT0QgbWFya2VyIGZvdW5kIGluIGEgdGlsZSBoZWFkZXIgYnV0IHRo ZSBjb2Rlc3RyZWFtIGJlbG9uZ3MgdG8gdGhlIEhPTU9HRU5FT1VTIHNldFxuIik7Cj4gKyAgICAg ICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiArICAgICAgICAgICAgfQo+ ICAgICAgICAgICAgICByZXQgPSBnZXRfY29kKHMsIGNvZHN0eSwgcHJvcGVydGllcyk7Cj4gICAg ICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAgIGNhc2UgSlBFRzIwMDBfUkdOOgo+ICsgICAgICAg ICAgICBpZiAocy0+aW5fdGlsZV9oZWFkZXJzID09IDEgJiYgcy0+aXNIVCAmJiAoIXMtPkNjYXAx NV9iMTEpKSB7Cj4gKyAgICAgICAgICAgICAgICBhdl9sb2cocy0+YXZjdHgsIEFWX0xPR19FUlJP UiwKPiArICAgICAgICAgICAgICAgICAgICAiUkdOIG1hcmtlciBmb3VuZCBpbiBhIHRpbGUgaGVh ZGVyIGJ1dCB0aGUgY29kZXN0cmVhbSBiZWxvbmdzIHRvIHRoZSBIT01PR0VORU9VUyBzZXRcbiIp Owo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gKyAgICAg ICAgICAgIH0KPiAgICAgICAgICAgICAgcmV0ID0gZ2V0X3JnbihzLCBsZW4pOwo+ICsgICAgICAg ICAgICBpZiAoKCFzLT5DY2FwMTVfYjEyKSAmJiBzLT5pc0hUKSB7Cj4gKyAgICAgICAgICAgICAg ICBhdl9sb2cocy0+YXZjdHgsIEFWX0xPR19FUlJPUiwgIlJHTiBtYXJrZXIgZm91bmQgYnV0IHRo ZSBjb2Rlc3RyZWFtIGJlbG9uZ3MgdG8gdGhlIFJHTkZSRUUgc2V0XG4iKTsKPiArICAgICAgICAg ICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+ICsgICAgICAgICAgICB9Cj4gICAg ICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAgIGNhc2UgSlBFRzIwMDBfUUNDOgo+ICsgICAgICAg ICAgICBpZiAocy0+aW5fdGlsZV9oZWFkZXJzID09IDEgJiYgcy0+aXNIVCAmJiAoIXMtPkNjYXAx NV9iMTEpKSB7Cj4gKyAgICAgICAgICAgICAgICBhdl9sb2cocy0+YXZjdHgsIEFWX0xPR19FUlJP UiwKPiArICAgICAgICAgICAgICAgICAgICAiUUNDIG1hcmtlciBmb3VuZCBpbiBhIHRpbGUgaGVh ZGVyIGJ1dCB0aGUgY29kZXN0cmVhbSBiZWxvbmdzIHRvIHRoZSBIT01PR0VORU9VUyBzZXRcbiIp Owo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gKyAgICAg ICAgICAgIH0KPiAgICAgICAgICAgICAgcmV0ID0gZ2V0X3FjYyhzLCBsZW4sIHFudHN0eSwgcHJv cGVydGllcyk7Cj4gICAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAgIGNhc2UgSlBFRzIwMDBf UUNEOgo+ICsgICAgICAgICAgICBpZiAocy0+aW5fdGlsZV9oZWFkZXJzID09IDEgJiYgcy0+aXNI VCAmJiAoIXMtPkNjYXAxNV9iMTEpKSB7Cj4gKyAgICAgICAgICAgICAgICBhdl9sb2cocy0+YXZj dHgsIEFWX0xPR19FUlJPUiwKPiArICAgICAgICAgICAgICAgICAgICAiUUNEIG1hcmtlciBmb3Vu ZCBpbiBhIHRpbGUgaGVhZGVyIGJ1dCB0aGUgY29kZXN0cmVhbSBiZWxvbmdzIHRvIHRoZSBIT01P R0VORU9VUyBzZXRcbiIpOwo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJ RERBVEE7Cj4gKyAgICAgICAgICAgIH0KPiAgICAgICAgICAgICAgcmV0ID0gZ2V0X3FjZChzLCBs ZW4sIHFudHN0eSwgcHJvcGVydGllcyk7Cj4gICAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAg IGNhc2UgSlBFRzIwMDBfUE9DOgo+ICsgICAgICAgICAgICBpZiAocy0+aW5fdGlsZV9oZWFkZXJz ID09IDEgJiYgcy0+aXNIVCAmJiAoIXMtPkNjYXAxNV9iMTEpKSB7Cj4gKyAgICAgICAgICAgICAg ICBhdl9sb2cocy0+YXZjdHgsIEFWX0xPR19FUlJPUiwKPiArICAgICAgICAgICAgICAgICAgICAi UE9DIG1hcmtlciBmb3VuZCBpbiBhIHRpbGUgaGVhZGVyIGJ1dCB0aGUgY29kZXN0cmVhbSBiZWxv bmdzIHRvIHRoZSBIT01PR0VORU9VUyBzZXRcbiIpOwo+ICsgICAgICAgICAgICAgICAgcmV0dXJu IEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gKyAgICAgICAgICAgIH0KPiAgICAgICAgICAgICAgcmV0 ID0gZ2V0X3BvYyhzLCBsZW4sIHBvYyk7Cj4gICAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAg IGNhc2UgSlBFRzIwMDBfU09UOgo+IEBAIC0yMjUyLDkgKzIzNzcsMTYgQEAgc3RhdGljIGludCBq cGVnMjAwMF9yZWFkX21haW5faGVhZGVycyhKcGVnMjAwMERlY29kZXJDb250ZXh0ICpzKQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICJDYW5ub3QgaGF2ZSBib3RoIFBQVCBhbmQgUFBNIG1hcmtl ci5cbiIpOwo+ICAgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4g ICAgICAgICAgICAgIH0KPiAtCj4gKyAgICAgICAgICAgIGlmICgoIXMtPkNjYXAxNV9iMTEpICYm IHMtPmlzSFQpIHsKPiArICAgICAgICAgICAgICAgIGF2X2xvZyhzLT5hdmN0eCwgQVZfTE9HX0VS Uk9SLCAiUFBUIG1hcmtlciBmb3VuZCBidXQgdGhlIGNvZGVzdHJlYW0gYmVsb25ncyB0byB0aGUg SE9NT0dFTkVPVVMgc2V0XG4iKTsKPiArICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lO VkFMSUREQVRBOwo+ICsgICAgICAgICAgICB9Cj4gICAgICAgICAgICAgIHJldCA9IGdldF9wcHQo cywgbGVuKTsKPiAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgY2FzZSBKUEVHMjAwMF9D UEY6Cj4gKyAgICAgICAgICAgIC8vIENvcnJlc3BvbmRpbmcgcHJvZmlsZSBtYXJrZXIKPiArICAg ICAgICAgICAgcmV0ID0gcmVhZF9jcGYocywgbGVuKTsKPiArICAgICAgICAgICAgYnJlYWs7Cj4g ICAgICAgICAgZGVmYXVsdDoKPiAgICAgICAgICAgICAgYXZfbG9nKHMtPmF2Y3R4LCBBVl9MT0df RVJST1IsCj4gICAgICAgICAgICAgICAgICAgICAidW5zdXBwb3J0ZWQgbWFya2VyIDB4JS40IlBS SVgxNiIgYXQgcG9zIDB4JVhcbiIsCj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvanBlZzIwMDBk ZWMuaCBiL2xpYmF2Y29kZWMvanBlZzIwMDBkZWMuaAo+IGluZGV4IGQwY2E2ZTdhNzkuLjE2NmNj ZTllYmEgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy9qcGVnMjAwMGRlYy5oCj4gKysrIGIvbGli YXZjb2RlYy9qcGVnMjAwMGRlYy5oCj4gQEAgLTExMiw2ICsxMTIsMTMgQEAgdHlwZWRlZiBzdHJ1 Y3QgSnBlZzIwMDBEZWNvZGVyQ29udGV4dCB7Cj4gICAgICBKcGVnMjAwMFRpbGUgICAgKnRpbGU7 Cj4gICAgICBKcGVnMjAwMERTUENvbnRleHQgZHNwOwo+Cj4gKyAgICB1aW50OF90ICAgICAgICAg aXNIVDsgLy8gSFRKMks/Cj4gKyAgICB1aW50OF90ICAgICAgICAgQ2NhcDE1X2IxNF8xNTsgLy8g SFRPTkxZKD0gMCkgb3IgSFRERUNMQVJFRCg9IDEpIG9yIE1JWEVEKD0gMykgPwo+ICsgICAgdWlu dDhfdCAgICAgICAgIENjYXAxNV9iMTI7IC8vIFJHTkZSRUUoPSAwKSBvciBSR04oPSAxKT8KPiAr ICAgIHVpbnQ4X3QgICAgICAgICBDY2FwMTVfYjExOyAvLyBIT01PR0VORU9VUyg9IDApIG9yIEhF VEVST0dFTkVPVVMoPSAxKSA/Cj4gKyAgICB1aW50OF90ICAgICAgICAgQ2NhcDE1X2IwNTsgLy8g SFRSRVYoPSAwKSBvciBIVElSVig9IDEpID8KPiArICAgIHVpbnQ4X3QgICAgICAgICBIVF9COyAv LyBNQUdCIHZhbHVlCj4gKwo+ICAgICAgLypvcHRpb25zIHBhcmFtZXRlcnMqLwo+ICAgICAgaW50 ICAgICAgICAgICAgIHJlZHVjdGlvbl9mYWN0b3I7Cj4gIH0gSnBlZzIwMDBEZWNvZGVyQ29udGV4 dDsKPiAtLQo+IDIuMzQuMQo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5v cmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1 bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVl c3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K