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 C33A74495C for ; Wed, 28 Sep 2022 10:05:42 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8BE4D68BBBD; Wed, 28 Sep 2022 13:05:41 +0300 (EEST) Received: from mail.frobbit.se (mail.frobbit.se [85.30.129.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 47C6868B58D for ; Wed, 28 Sep 2022 13:05:35 +0300 (EEST) Received: from debian.lan (unknown [IPv6:2a00:66c0:a::72c]) by mail.frobbit.se (Postfix) with ESMTPSA id B607C2093D for ; Wed, 28 Sep 2022 12:05:34 +0200 (CEST) Message-ID: From: Tomas =?ISO-8859-1?Q?H=E4rdin?= To: FFmpeg development discussions and patches Date: Wed, 28 Sep 2022 12:05:33 +0200 In-Reply-To: <65e79fe701374868bb2f4b70ce8fd220938e2e86.camel@haerdin.se> References: <65e79fe701374868bb2f4b70ce8fd220938e2e86.camel@haerdin.se> Content-Type: multipart/mixed; boundary="=-X6QpctkhH9nqUg0fhsQq" User-Agent: Evolution 3.38.3-1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 03/11] lavc/jpeg2000dwt: Implement sliced transforms 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --=-X6QpctkhH9nqUg0fhsQq Content-Type: text/plain Content-Transfer-Encoding: 7bit --=-X6QpctkhH9nqUg0fhsQq Content-Disposition: attachment; filename="0003-lavc-jpeg2000dwt-Implement-sliced-transforms.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0003-lavc-jpeg2000dwt-Implement-sliced-transforms.patch"; charset="UTF-8" RnJvbSAxNTlkNzQ0ZjA5ZjM5ZTMzNTBhYzM5YWM1ZDA1ZmVhY2EyMjEwM2FmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/VG9tYXM9MjBIPUMzPUE0cmRpbj89IDxnaXRA aGFlcmRpbi5zZT4KRGF0ZTogRnJpLCAxMCBKdW4gMjAyMiAxNzoxODoxNCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMDMvMTFdIGxhdmMvanBlZzIwMDBkd3Q6IEltcGxlbWVudCBzbGljZWQgdHJhbnNm b3JtcwoKbGF2Yy90ZXN0cy9qcGVnMjAwMGR3dCB0ZXN0cyB0aGlzLgotLS0KIGxpYmF2Y29kZWMv ajJrZW5jLmMgICAgICAgICAgICB8ICAgMyArLQogbGliYXZjb2RlYy9qcGVnMjAwMC5jICAgICAg ICAgIHwgICA1ICstCiBsaWJhdmNvZGVjL2pwZWcyMDAwLmggICAgICAgICAgfCAgIDIgKy0KIGxp YmF2Y29kZWMvanBlZzIwMDBkZWMuYyAgICAgICB8IDEwOSArKysrKysrKysrKysrKysrKysrKysr Ky0tLS0KIGxpYmF2Y29kZWMvanBlZzIwMDBkd3QuYyAgICAgICB8IDEzMiArKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0KIGxpYmF2Y29kZWMvanBlZzIwMDBkd3QuaCAgICAgICB8ICAg NiArLQogbGliYXZjb2RlYy90ZXN0cy9qcGVnMjAwMGR3dC5jIHwgIDE1ICsrLS0KIDcgZmlsZXMg Y2hhbmdlZCwgMTg5IGluc2VydGlvbnMoKyksIDgzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2xpYmF2Y29kZWMvajJrZW5jLmMgYi9saWJhdmNvZGVjL2oya2VuYy5jCmluZGV4IGU4ODNkNWRl YjcuLmNkMzI1ZTk0ZTAgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvajJrZW5jLmMKKysrIGIvbGli YXZjb2RlYy9qMmtlbmMuYwpAQCAtNDk0LDcgKzQ5NCw4IEBAIHN0YXRpYyBpbnQgaW5pdF90aWxl cyhKcGVnMjAwMEVuY29kZXJDb250ZXh0ICpzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcy0+Y2Jwc1tjb21wbm9dLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG5vPzE8PHMtPmNocm9tYV9zaGlmdFsw XToxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29t cG5vPzE8PHMtPmNocm9tYV9zaGlmdFsxXToxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcy0+YXZjdHgKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHMtPmF2Y3R4LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICApKSA8IDApCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7 CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2pwZWcyMDAwLmMgYi9saWJh dmNvZGVjL2pwZWcyMDAwLmMKaW5kZXggMGFhOTg0YmM1My4uOTQ1Yjc4NzU2NSAxMDA2NDQKLS0t IGEvbGliYXZjb2RlYy9qcGVnMjAwMC5jCisrKyBiL2xpYmF2Y29kZWMvanBlZzIwMDAuYwpAQCAt NDY3LDcgKzQ2Nyw3IEBAIGludCBmZl9qcGVnMjAwMF9pbml0X2NvbXBvbmVudChKcGVnMjAwMENv bXBvbmVudCAqY29tcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKcGVnMjAwMENv ZGluZ1N0eWxlICpjb2RzdHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSnBlZzIw MDBRdWFudFN0eWxlICpxbnRzdHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 IGNicHMsIGludCBkeCwgaW50IGR5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFW Q29kZWNDb250ZXh0ICphdmN0eCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVkNv ZGVjQ29udGV4dCAqYXZjdHgsIGludCBtYXhfc2xpY2VzKQogewogICAgIGludCByZXNsZXZlbG5v LCBiYW5kbm8sIGdiYW5kbm8gPSAwLCByZXQsIGksIGo7CiAgICAgdWludDMyX3QgY3NpemU7CkBA IC00NzksNyArNDc5LDggQEAgaW50IGZmX2pwZWcyMDAwX2luaXRfY29tcG9uZW50KEpwZWcyMDAw Q29tcG9uZW50ICpjb21wLAogCiAgICAgaWYgKHJldCA9IGZmX2pwZWcyMDAwX2R3dF9pbml0KCZj b21wLT5kd3QsIGNvbXAtPmNvb3JkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb2RzdHktPm5yZXNsZXZlbHMyZGVjb2RlIC0gMSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29kc3R5LT50cmFuc2Zvcm0pKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb2RzdHktPnRyYW5zZm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbWF4X3NsaWNlcykpCiAgICAgICAgIHJldHVybiByZXQ7CiAKICAgICBpZiAoYXZf aW1hZ2VfY2hlY2tfc2l6ZShjb21wLT5jb29yZFswXVsxXSAtIGNvbXAtPmNvb3JkWzBdWzBdLApk aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9qcGVnMjAwMC5oIGIvbGliYXZjb2RlYy9qcGVnMjAwMC5o CmluZGV4IGU1ZWNiNGNiZjkuLjM4OTgxM2E5YjkgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvanBl ZzIwMDAuaAorKysgYi9saWJhdmNvZGVjL2pwZWcyMDAwLmgKQEAgLTI4MCw3ICsyODAsNyBAQCBp bnQgZmZfanBlZzIwMDBfaW5pdF9jb21wb25lbnQoSnBlZzIwMDBDb21wb25lbnQgKmNvbXAsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSnBlZzIwMDBDb2RpbmdTdHlsZSAqY29kc3R5 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpwZWcyMDAwUXVhbnRTdHlsZSAqcW50 c3R5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjYnBzLCBpbnQgZHgsIGlu dCBkeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVkNvZGVjQ29udGV4dCAqY3R4 KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVkNvZGVjQ29udGV4dCAqY3R4LCBp bnQgbWF4X3NsaWNlcyk7CiAKIHZvaWQgZmZfanBlZzIwMDBfcmVpbml0KEpwZWcyMDAwQ29tcG9u ZW50ICpjb21wLCBKcGVnMjAwMENvZGluZ1N0eWxlICpjb2RzdHkpOwogCmRpZmYgLS1naXQgYS9s aWJhdmNvZGVjL2pwZWcyMDAwZGVjLmMgYi9saWJhdmNvZGVjL2pwZWcyMDAwZGVjLmMKaW5kZXgg OTJiZDc2ZDkwZi4uMjczMzQ2NTM4ZiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9qcGVnMjAwMGRl Yy5jCisrKyBiL2xpYmF2Y29kZWMvanBlZzIwMDBkZWMuYwpAQCAtMTUwLDYgKzE1MCwxMCBAQCB0 eXBlZGVmIHN0cnVjdCBKcGVnMjAwMERlY29kZXJDb250ZXh0IHsKICAgICBzaXplX3QgaWR3dF9h bGxvY2F0ZWQ7CiAgICAgSnBlZzIwMDBDb2RlYmxvY2tUaHJlYWQgKmNiOwogICAgIHNpemVfdCBj Yl9hbGxvY2F0ZWQ7CisKKyAgICAvLyB1c2VkIGZvciBpZHd0IHNsaWNpbmcKKyAgICBpbnQgcmVz bGV2ZWwsIGRpciwgc2xpY2VzOworICAgIGludCBoYXZlX2R3dDk3X2ludDsgLy8gMSBpZiBhbnkg Y29kaW5nIHN0eWxlIGlzIEZGX0RXVDk3X0lOVAogfSBKcGVnMjAwMERlY29kZXJDb250ZXh0Owog CiAvKiBnZXRfYml0cyBmdW5jdGlvbnMgZm9yIEpQRUcyMDAwIHBhY2tldCBiaXRzdHJlYW0KQEAg LTU0NSw5ICs1NDksMTAgQEAgc3RhdGljIGludCBnZXRfY294KEpwZWcyMDAwRGVjb2RlckNvbnRl eHQgKnMsIEpwZWcyMDAwQ29kaW5nU3R5bGUgKmMpCiAgICAgfQogICAgIGMtPnRyYW5zZm9ybSA9 IGJ5dGVzdHJlYW0yX2dldF9ieXRldSgmcy0+Zyk7IC8vIERXVCB0cmFuc2Zvcm1hdGlvbiB0eXBl CiAgICAgLyogc2V0IGludGVnZXIgOS83IERXVCBpbiBjYXNlIG9mIEJJVEVYQUNUIGZsYWcgKi8K LSAgICBpZiAoKHMtPmF2Y3R4LT5mbGFncyAmIEFWX0NPREVDX0ZMQUdfQklURVhBQ1QpICYmIChj LT50cmFuc2Zvcm0gPT0gRkZfRFdUOTcpKQorICAgIGlmICgocy0+YXZjdHgtPmZsYWdzICYgQVZf Q09ERUNfRkxBR19CSVRFWEFDVCkgJiYgKGMtPnRyYW5zZm9ybSA9PSBGRl9EV1Q5NykpIHsKICAg ICAgICAgYy0+dHJhbnNmb3JtID0gRkZfRFdUOTdfSU5UOwotICAgIGVsc2UgaWYgKGMtPnRyYW5z Zm9ybSA9PSBGRl9EV1Q1MykgeworICAgICAgICBzLT5oYXZlX2R3dDk3X2ludCA9IDE7CisgICAg fSBlbHNlIGlmIChjLT50cmFuc2Zvcm0gPT0gRkZfRFdUNTMpIHsKICAgICAgICAgcy0+YXZjdHgt PnByb3BlcnRpZXMgfD0gRkZfQ09ERUNfUFJPUEVSVFlfTE9TU0xFU1M7CiAgICAgfQogCkBAIC0x MDU2LDcgKzEwNjEsNyBAQCBzdGF0aWMgaW50IGluaXRfdGlsZShKcGVnMjAwMERlY29kZXJDb250 ZXh0ICpzLCBpbnQgdGlsZW5vKQogICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERB VEE7CiAgICAgICAgIGlmIChyZXQgPSBmZl9qcGVnMjAwMF9pbml0X2NvbXBvbmVudChjb21wLCBj b2RzdHksIHFudHN0eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHMtPmNicHNbY29tcG5vXSwgcy0+Y2R4W2NvbXBub10sCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzLT5jZHlbY29tcG5vXSwgcy0+YXZjdHgpKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy0+Y2R5W2NvbXBub10s IHMtPmF2Y3R4LCBzLT5zbGljZXMpKQogICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICB9CiAg ICAgcmV0dXJuIDA7CkBAIC0xOTk3LDE5ICsyMDAyLDc0IEBAIHN0YXRpYyBpbnQganBlZzIwMDBf ZGVjb2RlX2NiKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgdm9pZCAqdGQsCiAgICAgcmV0dXJuIDA7 CiB9CiAKK3N0YXRpYyBpbnQganBlZzIwMDBfZHd0OTdfaW50X3ByZXNoaWZ0KEFWQ29kZWNDb250 ZXh0ICphdmN0eCwgdm9pZCAqdGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgam9ibnIsIGludCB0aHJlYWRucikKK3sKKyAgICBjb25zdCBKcGVnMjAwMERlY29k ZXJDb250ZXh0ICpzID0gYXZjdHgtPnByaXZfZGF0YTsKKyAgICBKcGVnMjAwMElkd3RUaHJlYWQg Kmlkd3QgICAgICAgID0gcy0+aWR3dCArIGpvYm5yIC8gcy0+c2xpY2VzOworICAgIEpwZWcyMDAw VGlsZSAqdGlsZSAgICAgICAgICAgICAgPSBzLT50aWxlICsgam9ibnIgLyBzLT5zbGljZXMgLyBz LT5uY29tcG9uZW50czsKKyAgICBpbnQgY29tcG5vICAgICAgICAgICAgICAgICAgICAgID0gKGpv Ym5yIC8gcy0+c2xpY2VzKSAlIHMtPm5jb21wb25lbnRzOworICAgIGludCBzbGljZSAgICAgICAg ICAgICAgICAgICAgICAgPSBqb2JuciAlIHMtPnNsaWNlczsKKyAgICBKcGVnMjAwMENvbXBvbmVu dCAqY29tcCAgICAgICAgID0gdGlsZS0+Y29tcCArIGNvbXBubzsKKyAgICBKcGVnMjAwMENvZGlu Z1N0eWxlICpjb2RzdHkgICAgID0gdGlsZS0+Y29kc3R5ICsgY29tcG5vOworICAgIGludCBhID0g Y29tcC0+ZHd0LmxpbmVsZW5bY29tcC0+ZHd0Lm5kZWNsZXZlbHMgLSAxXVswXSAqCisgICAgICAg ICAgICBjb21wLT5kd3QubGluZWxlbltjb21wLT5kd3QubmRlY2xldmVscyAtIDFdWzFdOworICAg IGludCBhcyA9IChhICsgcy0+c2xpY2VzIC0gMSkvcy0+c2xpY2VzOworCisgICAgZm9yIChpbnQg aSA9IGlkd3QtPmNiX3N0YXJ0OyBpIDwgaWR3dC0+Y2JfZW5kOyBpKyspIHsKKyAgICAgICAgaWYg KHMtPmNiW2ldLmNvZGVkKSB7CisgICAgICAgICAgICBpZiAoY29kc3R5LT50cmFuc2Zvcm0gPT0g RkZfRFdUOTdfSU5UKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IGFzKnNsaWNlOyBp IC0gYXMgPCBhcypzbGljZTsgaSsrKQorICAgICAgICAgICAgICAgICAgICBjb21wLT5pX2RhdGFb aV0gKj0gMUxMIDw8IElfUFJFU0hJRlQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVh azsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgaW50IGpw ZWcyMDAwX2lkd3QoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCB2b2lkICp0ZCwKICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQgam9ibnIsIGludCB0aHJlYWRucikKIHsKICAgICBjb25zdCBKcGVn MjAwMERlY29kZXJDb250ZXh0ICpzID0gYXZjdHgtPnByaXZfZGF0YTsKLSAgICBKcGVnMjAwMElk d3RUaHJlYWQgKmlkd3QgICAgICAgID0gcy0+aWR3dCArIGpvYm5yOwotICAgIEpwZWcyMDAwVGls ZSAqdGlsZSAgICAgICAgICAgICAgPSBzLT50aWxlICsgam9ibnIgLyBzLT5uY29tcG9uZW50czsK LSAgICBpbnQgY29tcG5vICAgICAgICAgICAgICAgICAgICAgID0gam9ibnIgJSBzLT5uY29tcG9u ZW50czsKKyAgICBKcGVnMjAwMElkd3RUaHJlYWQgKmlkd3QgICAgICAgID0gcy0+aWR3dCArIGpv Ym5yIC8gcy0+c2xpY2VzOworICAgIEpwZWcyMDAwVGlsZSAqdGlsZSAgICAgICAgICAgICAgPSBz LT50aWxlICsgam9ibnIgLyBzLT5zbGljZXMgLyBzLT5uY29tcG9uZW50czsKKyAgICBpbnQgY29t cG5vICAgICAgICAgICAgICAgICAgICAgID0gKGpvYm5yIC8gcy0+c2xpY2VzKSAlIHMtPm5jb21w b25lbnRzOworICAgIGludCBzbGljZSAgICAgICAgICAgICAgICAgICAgICAgPSBqb2JuciAlIHMt PnNsaWNlczsKICAgICBKcGVnMjAwMENvbXBvbmVudCAqY29tcCAgICAgICAgID0gdGlsZS0+Y29t cCArIGNvbXBubzsKICAgICBKcGVnMjAwMENvZGluZ1N0eWxlICpjb2RzdHkgICAgID0gdGlsZS0+ Y29kc3R5ICsgY29tcG5vOwogCiAgICAgZm9yIChpbnQgaSA9IGlkd3QtPmNiX3N0YXJ0OyBpIDwg aWR3dC0+Y2JfZW5kOyBpKyspIHsKICAgICAgICAgaWYgKHMtPmNiW2ldLmNvZGVkKSB7Ci0gICAg ICAgICAgICBmZl9kd3RfZGVjb2RlKCZjb21wLT5kd3QsIGNvZHN0eS0+dHJhbnNmb3JtID09IEZG X0RXVDk3ID8gKHZvaWQqKWNvbXAtPmZfZGF0YSA6ICh2b2lkKiljb21wLT5pX2RhdGEpOworICAg ICAgICAgICAgZmZfZHd0X2RlY29kZV90aHJlYWQoJmNvbXAtPmR3dCwgY29kc3R5LT50cmFuc2Zv cm0gPT0gRkZfRFdUOTcgPyAodm9pZCopY29tcC0+Zl9kYXRhIDogKHZvaWQqKWNvbXAtPmlfZGF0 YSwgcy0+cmVzbGV2ZWwsIHMtPmRpciwgc2xpY2UsIHMtPnNsaWNlcyk7CisgICAgICAgICAgICBi cmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50 IGpwZWcyMDAwX2R3dDk3X2ludF9wb3N0c2hpZnQoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCB2b2lk ICp0ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgam9ibnIs IGludCB0aHJlYWRucikKK3sKKyAgICBjb25zdCBKcGVnMjAwMERlY29kZXJDb250ZXh0ICpzID0g YXZjdHgtPnByaXZfZGF0YTsKKyAgICBKcGVnMjAwMElkd3RUaHJlYWQgKmlkd3QgICAgICAgID0g cy0+aWR3dCArIGpvYm5yIC8gcy0+c2xpY2VzOworICAgIEpwZWcyMDAwVGlsZSAqdGlsZSAgICAg ICAgICAgICAgPSBzLT50aWxlICsgam9ibnIgLyBzLT5zbGljZXMgLyBzLT5uY29tcG9uZW50czsK KyAgICBpbnQgY29tcG5vICAgICAgICAgICAgICAgICAgICAgID0gKGpvYm5yIC8gcy0+c2xpY2Vz KSAlIHMtPm5jb21wb25lbnRzOworICAgIGludCBzbGljZSAgICAgICAgICAgICAgICAgICAgICAg PSBqb2JuciAlIHMtPnNsaWNlczsKKyAgICBKcGVnMjAwMENvbXBvbmVudCAqY29tcCAgICAgICAg ID0gdGlsZS0+Y29tcCArIGNvbXBubzsKKyAgICBKcGVnMjAwMENvZGluZ1N0eWxlICpjb2RzdHkg ICAgID0gdGlsZS0+Y29kc3R5ICsgY29tcG5vOworICAgIGludCBhID0gY29tcC0+ZHd0LmxpbmVs ZW5bY29tcC0+ZHd0Lm5kZWNsZXZlbHMgLSAxXVswXSAqCisgICAgICAgICAgICBjb21wLT5kd3Qu bGluZWxlbltjb21wLT5kd3QubmRlY2xldmVscyAtIDFdWzFdOworICAgIGludCBhcyA9IChhICsg cy0+c2xpY2VzIC0gMSkvcy0+c2xpY2VzOworCisgICAgZm9yIChpbnQgaSA9IGlkd3QtPmNiX3N0 YXJ0OyBpIDwgaWR3dC0+Y2JfZW5kOyBpKyspIHsKKyAgICAgICAgaWYgKHMtPmNiW2ldLmNvZGVk KSB7CisgICAgICAgICAgICBpZiAoY29kc3R5LT50cmFuc2Zvcm0gPT0gRkZfRFdUOTdfSU5UKSB7 CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IGFzKnNsaWNlOyBpIC0gYXMgPCBhcypzbGlj ZTsgaSsrKQorICAgICAgICAgICAgICAgICAgICBjb21wLT5pX2RhdGFbaV0gPSAoY29tcC0+aV9k YXRhW2ldICsgKCgxTEw8PElfUFJFU0hJRlQpPj4xKSkgPj4gSV9QUkVTSElGVDsKKyAgICAgICAg ICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQpAQCAtMjQ4MCw3ICsy NTQwLDcgQEAgc3RhdGljIGF2X2NvbGQgaW50IGpwZWcyMDAwX2RlY29kZV9pbml0KEFWQ29kZWND b250ZXh0ICphdmN0eCkKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBqcGVnMjAwMF9z ZXR1cF9jYnMoSnBlZzIwMDBEZWNvZGVyQ29udGV4dCAqcywgaW50ICpjYnNfb3V0KQorc3RhdGlj IGludCBqcGVnMjAwMF9zZXR1cF9jYnMoSnBlZzIwMDBEZWNvZGVyQ29udGV4dCAqcywgaW50ICpj YnNfb3V0LCBpbnQgKm1heHJlc2xldmVsc19vdXQpCiB7CiAgICAgaWYgKHMtPm51bVh0aWxlcyAq IHMtPm51bVl0aWxlcyA+IElOVF9NQVgvcy0+bmNvbXBvbmVudHMpCiAgICAgICAgIHJldHVybiBB VkVSUk9SKEVOT01FTSk7CkBAIC0yNDkxLDcgKzI1NTEsNyBAQCBzdGF0aWMgaW50IGpwZWcyMDAw X3NldHVwX2NicyhKcGVnMjAwMERlY29kZXJDb250ZXh0ICpzLCBpbnQgKmNic19vdXQpCiAgICAg ICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7CiAKICAgICBmb3IgKGludCBwYXNzID0gMDsgcGFz cyA8IDI7IHBhc3MrKykgewotICAgICAgICBpbnQgY2JzID0gMDsKKyAgICAgICAgaW50IGNicyA9 IDAsIG1heHJlc2xldmVscyA9IDA7CiAgICAgICAgIGZvciAoaW50IHRpbGVubyA9IDA7IHRpbGVu byA8IHMtPm51bVh0aWxlcyAqIHMtPm51bVl0aWxlczsgdGlsZW5vKyspIHsKICAgICAgICAgICAg IGZvciAoaW50IGNvbXBubyA9IDA7IGNvbXBubyA8IHMtPm5jb21wb25lbnRzOyBjb21wbm8rKykg ewogICAgICAgICAgICAgICAgIEpwZWcyMDAwVGlsZSAqdGlsZSAgICAgICAgICA9IHMtPnRpbGUg KyB0aWxlbm87CkBAIC0yNTAwLDYgKzI1NjAsNyBAQCBzdGF0aWMgaW50IGpwZWcyMDAwX3NldHVw X2NicyhKcGVnMjAwMERlY29kZXJDb250ZXh0ICpzLCBpbnQgKmNic19vdXQpCiAgICAgICAgICAg ICAgICAgSnBlZzIwMDBJZHd0VGhyZWFkICppZHd0ICAgID0gcy0+aWR3dCArIGNvbXBubyArIHRp bGVubyAqIHMtPm5jb21wb25lbnRzOwogCiAgICAgICAgICAgICAgICAgaWR3dC0+Y2Jfc3RhcnQg PSBjYnM7CisgICAgICAgICAgICAgICAgbWF4cmVzbGV2ZWxzID0gRkZNQVgobWF4cmVzbGV2ZWxz LCBjb2RzdHktPm5yZXNsZXZlbHMyZGVjb2RlKTsKIAogICAgICAgICAgICAgICAgIGZvciAoaW50 IHJlc2xldmVsbm8gPSAwOyByZXNsZXZlbG5vIDwgY29kc3R5LT5ucmVzbGV2ZWxzMmRlY29kZTsg cmVzbGV2ZWxubysrKSB7CiAgICAgICAgICAgICAgICAgICAgIEpwZWcyMDAwUmVzTGV2ZWwgKnJs ZXZlbCA9IGNvbXAtPnJlc2xldmVsICsgcmVzbGV2ZWxubzsKQEAgLTI1NDQsNiArMjYwNSw3IEBA IHN0YXRpYyBpbnQganBlZzIwMDBfc2V0dXBfY2JzKEpwZWcyMDAwRGVjb2RlckNvbnRleHQgKnMs IGludCAqY2JzX291dCkKICAgICAgICAgfQogCiAgICAgICAgICpjYnNfb3V0ID0gY2JzOworICAg ICAgICAqbWF4cmVzbGV2ZWxzX291dCA9IG1heHJlc2xldmVsczsKICAgICB9CiAgICAgcmV0dXJu IDA7CiB9CkBAIC0yNTUyLDcgKzI2MTQsNyBAQCBzdGF0aWMgaW50IGpwZWcyMDAwX2RlY29kZV9m cmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJhbWUgKnBpY3R1cmUsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQgKmdvdF9mcmFtZSwgQVZQYWNrZXQgKmF2cGt0KQog ewogICAgIEpwZWcyMDAwRGVjb2RlckNvbnRleHQgKnMgPSBhdmN0eC0+cHJpdl9kYXRhOwotICAg IGludCByZXQsIGNiczsKKyAgICBpbnQgcmV0LCBjYnMsIG1heHJlc2xldmVsczsKIAogICAgIHMt PmF2Y3R4ICAgICA9IGF2Y3R4OwogICAgIGJ5dGVzdHJlYW0yX2luaXQoJnMtPmcsIGF2cGt0LT5k YXRhLCBhdnBrdC0+c2l6ZSk7CkBAIC0yNjA0LDYgKzI2NjYsNyBAQCBzdGF0aWMgaW50IGpwZWcy MDAwX2RlY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJhbWUgKnBpY3R1cmUs CiAgICAgICAgIGdvdG8gZW5kOwogICAgIHBpY3R1cmUtPnBpY3RfdHlwZSA9IEFWX1BJQ1RVUkVf VFlQRV9JOwogICAgIHBpY3R1cmUtPmtleV9mcmFtZSA9IDE7CisgICAgcy0+c2xpY2VzID0gYXZj dHgtPmFjdGl2ZV90aHJlYWRfdHlwZSA9PSBGRl9USFJFQURfU0xJQ0UgPyBhdmN0eC0+dGhyZWFk X2NvdW50IDogMTsKIAogICAgIGlmIChyZXQgPSBqcGVnMjAwMF9yZWFkX2JpdHN0cmVhbV9wYWNr ZXRzKHMpKQogICAgICAgICBnb3RvIGVuZDsKQEAgLTI2MTksMTIgKzI2ODIsMzAgQEAgc3RhdGlj IGludCBqcGVnMjAwMF9kZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1l ICpwaWN0dXJlLAogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKChyZXQgPSBqcGVnMjAwMF9z ZXR1cF9jYnMocywgJmNicykpIDwgMCB8fAotICAgICAgICAocmV0ID0gYXZjdHgtPmV4ZWN1dGUy KGF2Y3R4LCBqcGVnMjAwMF9kZWNvZGVfY2IsIE5VTEwsIE5VTEwsIGNicykpIDwgMCB8fAotICAg ICAgICAocmV0ID0gYXZjdHgtPmV4ZWN1dGUyKGF2Y3R4LCBqcGVnMjAwMF9pZHd0LCBOVUxMLCBO VUxMLCBzLT5udW1YdGlsZXMgKiBzLT5udW1ZdGlsZXMgKiBzLT5uY29tcG9uZW50cykpIDwgMCB8 fAotICAgICAgICAocmV0ID0gYXZjdHgtPmV4ZWN1dGUyKGF2Y3R4LCBqcGVnMjAwMF9tY3Rfd3Jp dGVfZnJhbWUsIHBpY3R1cmUsIE5VTEwsIHMtPm51bVh0aWxlcyAqIHMtPm51bVl0aWxlcykpIDwg MCkKKyAgICBpZiAoKHJldCA9IGpwZWcyMDAwX3NldHVwX2NicyhzLCAmY2JzLCAmbWF4cmVzbGV2 ZWxzKSkgPCAwIHx8CisgICAgICAgIChyZXQgPSBhdmN0eC0+ZXhlY3V0ZTIoYXZjdHgsIGpwZWcy MDAwX2RlY29kZV9jYiwgTlVMTCwgTlVMTCwgY2JzKSkgPCAwKQorICAgICAgICBnb3RvIGVuZDsK KworICAgIGlmIChzLT5oYXZlX2R3dDk3X2ludCAmJgorICAgICAgICAocmV0ID0gYXZjdHgtPmV4 ZWN1dGUyKGF2Y3R4LCBqcGVnMjAwMF9kd3Q5N19pbnRfcHJlc2hpZnQsIE5VTEwsIE5VTEwsCisg ICAgICAgICAgICBzLT5udW1YdGlsZXMgKiBzLT5udW1ZdGlsZXMgKiBzLT5uY29tcG9uZW50cyAq IHMtPnNsaWNlcykpIDwgMCkKICAgICAgICAgZ290byBlbmQ7CiAKKyAgICBmb3IgKHMtPnJlc2xl dmVsID0gMDsgcy0+cmVzbGV2ZWwgPCBtYXhyZXNsZXZlbHM7IHMtPnJlc2xldmVsKyspIHsKKyAg ICAgICAgZm9yIChzLT5kaXIgPSAwOyBzLT5kaXIgPCAyOyBzLT5kaXIrKykgeworICAgICAgICAg ICAgaWYgKChyZXQgPSBhdmN0eC0+ZXhlY3V0ZTIoYXZjdHgsIGpwZWcyMDAwX2lkd3QsIE5VTEws IE5VTEwsCisgICAgICAgICAgICAgICAgICAgIHMtPm51bVh0aWxlcyAqIHMtPm51bVl0aWxlcyAq IHMtPm5jb21wb25lbnRzICogcy0+c2xpY2VzKSkgPCAwKQorICAgICAgICAgICAgICAgIGdvdG8g ZW5kOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHMtPmhhdmVfZHd0OTdfaW50ICYmCisg ICAgICAgIChyZXQgPSBhdmN0eC0+ZXhlY3V0ZTIoYXZjdHgsIGpwZWcyMDAwX2R3dDk3X2ludF9w b3N0c2hpZnQsIE5VTEwsIE5VTEwsCisgICAgICAgICAgICBzLT5udW1YdGlsZXMgKiBzLT5udW1Z dGlsZXMgKiBzLT5uY29tcG9uZW50cyAqIHMtPnNsaWNlcykpIDwgMCkKKyAgICAgICAgZ290byBl bmQ7CisKKyAgICBpZiAoKHJldCA9IGF2Y3R4LT5leGVjdXRlMihhdmN0eCwganBlZzIwMDBfbWN0 X3dyaXRlX2ZyYW1lLCBwaWN0dXJlLCBOVUxMLCBzLT5udW1YdGlsZXMgKiBzLT5udW1ZdGlsZXMp KSA8IDApCisgICAgICAgIGdvdG8gZW5kOwogCiAgICAganBlZzIwMDBfZGVjX2NsZWFudXAocyk7 CiAKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvanBlZzIwMDBkd3QuYyBiL2xpYmF2Y29kZWMvanBl ZzIwMDBkd3QuYwppbmRleCBmMmRhNzMwN2M0Li45MjE0NjFiNmQ3IDEwMDY0NAotLS0gYS9saWJh dmNvZGVjL2pwZWcyMDAwZHd0LmMKKysrIGIvbGliYXZjb2RlYy9qcGVnMjAwMGR3dC5jCkBAIC00 NSw3ICs0NSw2IEBACiAjZGVmaW5lIElfTEZUR19ERUxUQSAgIDI5MDY2bGwKICNkZWZpbmUgSV9M RlRHX0sgICAgICAgODA2MjFsbAogI2RlZmluZSBJX0xGVEdfWCAgICAgICA1MzI3NGxsCi0jZGVm aW5lIElfUFJFU0hJRlQgOAogCiBzdGF0aWMgaW5saW5lIHZvaWQgZXh0ZW5kNTMoaW50ICpwLCBp bnQgaTAsIGludCBpMSkKIHsKQEAgLTMyMiwyNCArMzIxLDI0IEBAIHN0YXRpYyB2b2lkIHNyXzFk NTModW5zaWduZWQgKnAsIGludCBpMCwgaW50IGkxKQogICAgICAgICBwWzIgKiBpICsgMV0gKz0g KGludCkocFsyICogaV0gKyBwWzIgKiBpICsgMl0pID4+IDE7CiB9CiAKLXN0YXRpYyB2b2lkIGR3 dF9kZWNvZGU1MyhEV1RDb250ZXh0ICpzLCBpbnQgKnQpCitzdGF0aWMgdm9pZCBkd3RfZGVjb2Rl NTMoRFdUQ29udGV4dCAqcywgaW50ICp0LCBpbnQgbGV2LCBpbnQgZGlyLCBpbnQgc2xpY2UsIGlu dCBzbGljZXMpCiB7Ci0gICAgaW50IGxldjsKICAgICBpbnQgdyAgICAgPSBzLT5saW5lbGVuW3Mt Pm5kZWNsZXZlbHMgLSAxXVswXTsKLSAgICBpbnQzMl90ICpsaW5lID0gcy0+aV9saW5lYnVmOwot ICAgIGxpbmUgKz0gMzsKKyAgICBpbnQzMl90ICpsaW5lID0gcy0+aV9saW5lYnVmICsgc2xpY2Ug KiBzLT5saW5lc2l6ZSArIDM7CiAKLSAgICBmb3IgKGxldiA9IDA7IGxldiA8IHMtPm5kZWNsZXZl bHM7IGxldisrKSB7CiAgICAgICAgIGludCBsaCA9IHMtPmxpbmVsZW5bbGV2XVswXSwKICAgICAg ICAgICAgIGx2ID0gcy0+bGluZWxlbltsZXZdWzFdLAogICAgICAgICAgICAgbWggPSBzLT5tb2Rb bGV2XVswXSwKICAgICAgICAgICAgIG12ID0gcy0+bW9kW2xldl1bMV0sCisgICAgICAgICAgICBz aCA9IChsaCArIHNsaWNlcyAtIDEpL3NsaWNlcywKKyAgICAgICAgICAgIHN2ID0gKGx2ICsgc2xp Y2VzIC0gMSkvc2xpY2VzLAogICAgICAgICAgICAgbHA7CiAgICAgICAgIGludCAqbDsKIAorICAg IGlmIChkaXIgPT0gMCkgewogICAgICAgICAvLyBIT1JfU0QKICAgICAgICAgbCA9IGxpbmUgKyBt aDsKLSAgICAgICAgZm9yIChscCA9IDA7IGxwIDwgbHY7IGxwKyspIHsKKyAgICAgICAgZm9yIChs cCA9IHNsaWNlKnN2OyBscCA8IGx2ICYmIGxwIC0gc3YgPCBzbGljZSpzdjsgbHArKykgewogICAg ICAgICAgICAgaW50IGksIGogPSAwOwogICAgICAgICAgICAgLy8gY29weSB3aXRoIGludGVybGVh dmluZwogICAgICAgICAgICAgZm9yIChpID0gbWg7IGkgPCBsaDsgaSArPSAyLCBqKyspCkBAIC0z NTIsMTAgKzM1MSwxMCBAQCBzdGF0aWMgdm9pZCBkd3RfZGVjb2RlNTMoRFdUQ29udGV4dCAqcywg aW50ICp0KQogICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGxoOyBpKyspCiAgICAgICAgICAg ICAgICAgdFt3ICogbHAgKyBpXSA9IGxbaV07CiAgICAgICAgIH0KLQorICAgIH0gZWxzZSB7CiAg ICAgICAgIC8vIFZFUl9TRAogICAgICAgICBsID0gbGluZSArIG12OwotICAgICAgICBmb3IgKGxw ID0gMDsgbHAgPCBsaDsgbHArKykgeworICAgICAgICBmb3IgKGxwID0gc2xpY2Uqc2g7IGxwIDwg bGggJiYgbHAgLSBzaCA8IHNsaWNlKnNoOyBscCsrKSB7CiAgICAgICAgICAgICBpbnQgaSwgaiA9 IDA7CiAgICAgICAgICAgICAvLyBjb3B5IHdpdGggaW50ZXJsZWF2aW5nCiAgICAgICAgICAgICBm b3IgKGkgPSBtdjsgaSA8IGx2OyBpICs9IDIsIGorKykKQEAgLTM5OCwyNSArMzk3LDI2IEBAIHN0 YXRpYyB2b2lkIHNyXzFkOTdfZmxvYXQoZmxvYXQgKnAsIGludCBpMCwgaW50IGkxKQogICAgICAg ICBwWzIgKiBpICsgMV0gKz0gRl9MRlRHX0FMUEhBICogKHBbMiAqIGldICAgICArIHBbMiAqIGkg KyAyXSk7CiB9CiAKLXN0YXRpYyB2b2lkIGR3dF9kZWNvZGU5N19mbG9hdChEV1RDb250ZXh0ICpz LCBmbG9hdCAqdCkKK3N0YXRpYyB2b2lkIGR3dF9kZWNvZGU5N19mbG9hdChEV1RDb250ZXh0ICpz LCBmbG9hdCAqdCwgaW50IGxldiwgaW50IGRpciwgaW50IHNsaWNlLCBpbnQgc2xpY2VzKQogewot ICAgIGludCBsZXY7CiAgICAgaW50IHcgICAgICAgPSBzLT5saW5lbGVuW3MtPm5kZWNsZXZlbHMg LSAxXVswXTsKLSAgICBmbG9hdCAqbGluZSA9IHMtPmZfbGluZWJ1ZjsKLSAgICBmbG9hdCAqZGF0 YSA9IHQ7CiAgICAgLyogcG9zaXRpb24gYXQgaW5kZXggTyBvZiBsaW5lIHJhbmdlIFswLTUsdys1 XSBjZi4gZXh0ZW5kIGZ1bmN0aW9uICovCi0gICAgbGluZSArPSA1OworICAgIGZsb2F0ICpsaW5l ID0gcy0+Zl9saW5lYnVmICsgc2xpY2UgKiBzLT5saW5lc2l6ZSArIDU7CisgICAgZmxvYXQgKmRh dGEgPSB0OwogCi0gICAgZm9yIChsZXYgPSAwOyBsZXYgPCBzLT5uZGVjbGV2ZWxzOyBsZXYrKykg ewogICAgICAgICBpbnQgbGggPSBzLT5saW5lbGVuW2xldl1bMF0sCiAgICAgICAgICAgICBsdiA9 IHMtPmxpbmVsZW5bbGV2XVsxXSwKICAgICAgICAgICAgIG1oID0gcy0+bW9kW2xldl1bMF0sCiAg ICAgICAgICAgICBtdiA9IHMtPm1vZFtsZXZdWzFdLAorICAgICAgICAgICAgc2ggPSAobGggKyBz bGljZXMgLSAxKS9zbGljZXMsCisgICAgICAgICAgICBzdiA9IChsdiArIHNsaWNlcyAtIDEpL3Ns aWNlcywKICAgICAgICAgICAgIGxwOwogICAgICAgICBmbG9hdCAqbDsKKworICAgIGlmIChkaXIg PT0gMCkgewogICAgICAgICAvLyBIT1JfU0QKICAgICAgICAgbCA9IGxpbmUgKyBtaDsKLSAgICAg ICAgZm9yIChscCA9IDA7IGxwIDwgbHY7IGxwKyspIHsKKyAgICAgICAgZm9yIChscCA9IHNsaWNl KnN2OyBscCA8IGx2ICYmIGxwIC0gc3YgPCBzbGljZSpzdjsgbHArKykgewogICAgICAgICAgICAg aW50IGksIGogPSAwOwogICAgICAgICAgICAgLy8gY29weSB3aXRoIGludGVybGVhdmluZwogICAg ICAgICAgICAgZm9yIChpID0gbWg7IGkgPCBsaDsgaSArPSAyLCBqKyspCkBAIC00MjksMTAgKzQy OSwxMCBAQCBzdGF0aWMgdm9pZCBkd3RfZGVjb2RlOTdfZmxvYXQoRFdUQ29udGV4dCAqcywgZmxv YXQgKnQpCiAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGg7IGkrKykKICAgICAgICAgICAg ICAgICBkYXRhW3cgKiBscCArIGldID0gbFtpXTsKICAgICAgICAgfQotCisgICAgfSBlbHNlIHsK ICAgICAgICAgLy8gVkVSX1NECiAgICAgICAgIGwgPSBsaW5lICsgbXY7Ci0gICAgICAgIGZvciAo bHAgPSAwOyBscCA8IGxoOyBscCsrKSB7CisgICAgICAgIGZvciAobHAgPSBzbGljZSpzaDsgbHAg PCBsaCAmJiBscCAtIHNoIDwgc2xpY2Uqc2g7IGxwKyspIHsKICAgICAgICAgICAgIGludCBpLCBq ID0gMDsKICAgICAgICAgICAgIC8vIGNvcHkgd2l0aCBpbnRlcmxlYXZpbmcKICAgICAgICAgICAg IGZvciAoaSA9IG12OyBpIDwgbHY7IGkgKz0gMiwgaisrKQpAQCAtNDc1LDMwICs0NzUsMjYgQEAg c3RhdGljIHZvaWQgc3JfMWQ5N19pbnQoaW50MzJfdCAqcCwgaW50IGkwLCBpbnQgaTEpCiAgICAg ICAgIHBbMiAqIGkgKyAxXSArPSAoSV9MRlRHX0FMUEhBICogKHBbMiAqIGldICAgICArIChpbnQ2 NF90KXBbMiAqIGkgKyAyXSkgKyAoMSA8PCAxNSkpID4+IDE2OwogfQogCi1zdGF0aWMgdm9pZCBk d3RfZGVjb2RlOTdfaW50KERXVENvbnRleHQgKnMsIGludDMyX3QgKnQpCitzdGF0aWMgdm9pZCBk d3RfZGVjb2RlOTdfaW50KERXVENvbnRleHQgKnMsIGludDMyX3QgKnQsIGludCBsZXYsIGludCBk aXIsIGludCBzbGljZSwgaW50IHNsaWNlcykKIHsKLSAgICBpbnQgbGV2OwogICAgIGludCB3ICAg ICAgID0gcy0+bGluZWxlbltzLT5uZGVjbGV2ZWxzIC0gMV1bMF07Ci0gICAgaW50IGggICAgICAg PSBzLT5saW5lbGVuW3MtPm5kZWNsZXZlbHMgLSAxXVsxXTsKLSAgICBpbnQgaTsKLSAgICBpbnQz Ml90ICpsaW5lID0gcy0+aV9saW5lYnVmOwotICAgIGludDMyX3QgKmRhdGEgPSB0OwogICAgIC8q IHBvc2l0aW9uIGF0IGluZGV4IE8gb2YgbGluZSByYW5nZSBbMC01LHcrNV0gY2YuIGV4dGVuZCBm dW5jdGlvbiAqLwotICAgIGxpbmUgKz0gNTsKLQotICAgIGZvciAoaSA9IDA7IGkgPCB3ICogaDsg aSsrKQotICAgICAgICBkYXRhW2ldICo9IDFMTCA8PCBJX1BSRVNISUZUOworICAgIGludDMyX3Qg KmxpbmUgPSBzLT5pX2xpbmVidWYgKyBzbGljZSAqIHMtPmxpbmVzaXplICsgNTsKKyAgICBpbnQz Ml90ICpkYXRhID0gdDsKIAotICAgIGZvciAobGV2ID0gMDsgbGV2IDwgcy0+bmRlY2xldmVsczsg bGV2KyspIHsKICAgICAgICAgaW50IGxoID0gcy0+bGluZWxlbltsZXZdWzBdLAogICAgICAgICAg ICAgbHYgPSBzLT5saW5lbGVuW2xldl1bMV0sCiAgICAgICAgICAgICBtaCA9IHMtPm1vZFtsZXZd WzBdLAogICAgICAgICAgICAgbXYgPSBzLT5tb2RbbGV2XVsxXSwKKyAgICAgICAgICAgIHNoID0g KGxoICsgc2xpY2VzIC0gMSkvc2xpY2VzLAorICAgICAgICAgICAgc3YgPSAobHYgKyBzbGljZXMg LSAxKS9zbGljZXMsCiAgICAgICAgICAgICBscDsKICAgICAgICAgaW50MzJfdCAqbDsKKworICAg IGlmIChkaXIgPT0gMCkgewogICAgICAgICAvLyBIT1JfU0QKICAgICAgICAgbCA9IGxpbmUgKyBt aDsKLSAgICAgICAgZm9yIChscCA9IDA7IGxwIDwgbHY7IGxwKyspIHsKKyAgICAgICAgZm9yIChs cCA9IHNsaWNlKnN2OyBscCA8IGx2ICYmIGxwIC0gc3YgPCBzbGljZSpzdjsgbHArKykgewogICAg ICAgICAgICAgaW50IGksIGogPSAwOwogICAgICAgICAgICAgLy8gcmVzY2FsZSB3aXRoIGludGVy bGVhdmluZwogICAgICAgICAgICAgZm9yIChpID0gbWg7IGkgPCBsaDsgaSArPSAyLCBqKyspCkBA IC01MTEsMTAgKzUwNywxMCBAQCBzdGF0aWMgdm9pZCBkd3RfZGVjb2RlOTdfaW50KERXVENvbnRl eHQgKnMsIGludDMyX3QgKnQpCiAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGg7IGkrKykK ICAgICAgICAgICAgICAgICBkYXRhW3cgKiBscCArIGldID0gbFtpXTsKICAgICAgICAgfQotCisg ICAgfSBlbHNlIHsKICAgICAgICAgLy8gVkVSX1NECiAgICAgICAgIGwgPSBsaW5lICsgbXY7Ci0g ICAgICAgIGZvciAobHAgPSAwOyBscCA8IGxoOyBscCsrKSB7CisgICAgICAgIGZvciAobHAgPSBz bGljZSpzaDsgbHAgPCBsaCAmJiBscCAtIHNoIDwgc2xpY2Uqc2g7IGxwKyspIHsKICAgICAgICAg ICAgIGludCBpLCBqID0gMDsKICAgICAgICAgICAgIC8vIHJlc2NhbGUgd2l0aCBpbnRlcmxlYXZp bmcKICAgICAgICAgICAgIGZvciAoaSA9IG12OyBpIDwgbHY7IGkgKz0gMiwgaisrKQpAQCAtNTI4 LDI2ICs1MjQsMjkgQEAgc3RhdGljIHZvaWQgZHd0X2RlY29kZTk3X2ludChEV1RDb250ZXh0ICpz LCBpbnQzMl90ICp0KQogICAgICAgICAgICAgICAgIGRhdGFbdyAqIGkgKyBscF0gPSBsW2ldOwog ICAgICAgICB9CiAgICAgfQotCi0gICAgZm9yIChpID0gMDsgaSA8IHcgKiBoOyBpKyspCi0gICAg ICAgIGRhdGFbaV0gPSAoZGF0YVtpXSArICgoMUxMPDxJX1BSRVNISUZUKT4+MSkpID4+IElfUFJF U0hJRlQ7CiB9CiAKIGludCBmZl9qcGVnMjAwMF9kd3RfaW5pdChEV1RDb250ZXh0ICpzLCBpbnQg Ym9yZGVyWzJdWzJdLAotICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZWNvbXBfbGV2ZWxz LCBpbnQgdHlwZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVjb21wX2xldmVscywg aW50IHR5cGUsIGludCBtYXhfc2xpY2VzKQogewotICAgIGludCBpLCBqLCBsZXYgPSBkZWNvbXBf bGV2ZWxzLCBtYXhsZW4sCisgICAgaW50IGksIGosIGxldiA9IGRlY29tcF9sZXZlbHMsCiAgICAg ICAgIGJbMl1bMl07CiAKICAgICBzLT5uZGVjbGV2ZWxzID0gZGVjb21wX2xldmVsczsKICAgICBz LT50eXBlICAgICAgID0gdHlwZTsKKyAgICBzLT5tYXhfc2xpY2VzID0gbWF4X3NsaWNlczsKKwor ICAgIGlmIChzLT5tYXhfc2xpY2VzID4gSU5UX01BWC9GRk1BWChzaXplb2YoKnMtPmZfbGluZWJ1 Ziksc2l6ZW9mKCpzLT5pX2xpbmVidWYpKSkKKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVN KTsKIAogICAgIGZvciAoaSA9IDA7IGkgPCAyOyBpKyspCiAgICAgICAgIGZvciAoaiA9IDA7IGog PCAyOyBqKyspCiAgICAgICAgICAgICBiW2ldW2pdID0gYm9yZGVyW2ldW2pdOwogCi0gICAgbWF4 bGVuID0gRkZNQVgoYlswXVsxXSAtIGJbMF1bMF0sCi0gICAgICAgICAgICAgICAgICAgYlsxXVsx XSAtIGJbMV1bMF0pOworICAgIHMtPmxpbmVzaXplICAgPSBGRk1BWChiWzBdWzFdIC0gYlswXVsw XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYlsxXVsxXSAtIGJbMV1bMF0pICsKKyAgICAg ICAgICAgICAgICAgICAgKHR5cGUgPT0gRkZfRFdUNTMgPyA2IDogMTIpOworCiAgICAgd2hpbGUg KC0tbGV2ID49IDApCiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAyOyBpKyspIHsKICAgICAgICAg ICAgIHMtPmxpbmVsZW5bbGV2XVtpXSA9IGJbaV1bMV0gLSBiW2ldWzBdOwpAQCAtNTU1LDI0ICs1 NTQsMTUgQEAgaW50IGZmX2pwZWcyMDAwX2R3dF9pbml0KERXVENvbnRleHQgKnMsIGludCBib3Jk ZXJbMl1bMl0sCiAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgMjsgaisrKQogICAgICAgICAg ICAgICAgIGJbaV1bal0gPSAoYltpXVtqXSArIDEpID4+IDE7CiAgICAgICAgIH0KLSAgICBzd2l0 Y2ggKHR5cGUpIHsKLSAgICBjYXNlIEZGX0RXVDk3OgotICAgICAgICBzLT5mX2xpbmVidWYgPSBh dl9tYWxsb2NfYXJyYXkoKG1heGxlbiArIDEyKSwgc2l6ZW9mKCpzLT5mX2xpbmVidWYpKTsKKwor ICAgIGlmICh0eXBlID09IEZGX0RXVDk3KSB7CisgICAgICAgIHMtPmZfbGluZWJ1ZiA9IGF2X21h bGxvY19hcnJheShzLT5saW5lc2l6ZSwgcy0+bWF4X3NsaWNlcypzaXplb2YoKnMtPmZfbGluZWJ1 ZikpOwogICAgICAgICBpZiAoIXMtPmZfbGluZWJ1ZikKICAgICAgICAgICAgIHJldHVybiBBVkVS Uk9SKEVOT01FTSk7Ci0gICAgICAgIGJyZWFrOwotICAgICBjYXNlIEZGX0RXVDk3X0lOVDoKLSAg ICAgICAgcy0+aV9saW5lYnVmID0gYXZfbWFsbG9jX2FycmF5KChtYXhsZW4gKyAxMiksIHNpemVv Zigqcy0+aV9saW5lYnVmKSk7Ci0gICAgICAgIGlmICghcy0+aV9saW5lYnVmKQotICAgICAgICAg ICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBGRl9E V1Q1MzoKLSAgICAgICAgcy0+aV9saW5lYnVmID0gYXZfbWFsbG9jX2FycmF5KChtYXhsZW4gKyAg NiksIHNpemVvZigqcy0+aV9saW5lYnVmKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcy0+aV9s aW5lYnVmID0gYXZfbWFsbG9jX2FycmF5KHMtPmxpbmVzaXplLCBzLT5tYXhfc2xpY2VzKnNpemVv Zigqcy0+aV9saW5lYnVmKSk7CiAgICAgICAgIGlmICghcy0+aV9saW5lYnVmKQogICAgICAgICAg ICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoK LSAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KICAgICByZXR1cm4gMDsKIH0KQEAgLTU5NywxOCAr NTg3LDQ2IEBAIGludCBmZl9kd3RfZW5jb2RlKERXVENvbnRleHQgKnMsIHZvaWQgKnQpCiAKIGlu dCBmZl9kd3RfZGVjb2RlKERXVENvbnRleHQgKnMsIHZvaWQgKnQpCiB7Ci0gICAgaWYgKHMtPm5k ZWNsZXZlbHMgPT0gMCkKKyAgICBpbnQgdyA9IHMtPmxpbmVsZW5bcy0+bmRlY2xldmVscyAtIDFd WzBdOworICAgIGludCBoID0gcy0+bGluZWxlbltzLT5uZGVjbGV2ZWxzIC0gMV1bMV07CisgICAg aW50MzJfdCAqZGF0YSA9IHQ7CisKKyAgICBpZiAocy0+dHlwZSA9PSBGRl9EV1Q5N19JTlQpCisg ICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdyAqIGg7IGkrKykKKyAgICAgICAgICAgIGRhdGFb aV0gKj0gMUxMIDw8IElfUFJFU0hJRlQ7CisKKyAgICBmb3IgKGludCBsZXYgPSAwOyBsZXYgPCBz LT5uZGVjbGV2ZWxzOyBsZXYrKykKKyAgICAgICAgZm9yIChpbnQgZGlyID0gMDsgZGlyIDwgMjsg ZGlyKyspCisgICAgICAgICAgICBmb3IgKGludCBzbGljZSA9IDA7IHNsaWNlIDwgcy0+bWF4X3Ns aWNlczsgc2xpY2UrKykgeworICAgICAgICAgICAgICAgIGludCByZXQgPSBmZl9kd3RfZGVjb2Rl X3RocmVhZChzLCB0LCBsZXYsIGRpciwgc2xpY2UsIHMtPm1heF9zbGljZXMpOworICAgICAgICAg ICAgICAgIGlmIChyZXQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAg ICAgICB9CisKKyAgICBpZiAocy0+dHlwZSA9PSBGRl9EV1Q5N19JTlQpCisgICAgICAgIGZvciAo aW50IGkgPSAwOyBpIDwgdyAqIGg7IGkrKykKKyAgICAgICAgICAgIGRhdGFbaV0gPSAoZGF0YVtp XSArICgoMUxMPDxJX1BSRVNISUZUKT4+MSkpID4+IElfUFJFU0hJRlQ7CisKKyAgICByZXR1cm4g MDsKK30KKworaW50IGZmX2R3dF9kZWNvZGVfdGhyZWFkKERXVENvbnRleHQgKnMsIHZvaWQgKnQs IGludCBsZXYsIGludCBkaXIsIGludCBzbGljZSwgaW50IHNsaWNlcykKK3sKKyAgICBzbGljZXMg PSBGRk1JTihzLT5tYXhfc2xpY2VzLCBzbGljZXMpOworCisgICAgLy8gbGV2IGNhbiBiZSA+PSBz LT5uZGVjbGV2ZWxzIGluIGZpbGVzIHdpdGggbWl4ZWQgcmVzbGV2ZWxzIGluIHRpbGVzL2NvbXBv bmVudHMKKyAgICBpZiAocy0+bmRlY2xldmVscyA9PSAwIHx8IGxldiA+PSBzLT5uZGVjbGV2ZWxz IHx8IHNsaWNlID49IHNsaWNlcykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBzd2l0Y2ggKHMt PnR5cGUpIHsKICAgICBjYXNlIEZGX0RXVDk3OgotICAgICAgICBkd3RfZGVjb2RlOTdfZmxvYXQo cywgdCk7CisgICAgICAgIGR3dF9kZWNvZGU5N19mbG9hdChzLCB0LCBsZXYsIGRpciwgc2xpY2Us IHNsaWNlcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRkZfRFdUOTdfSU5UOgotICAgICAg ICBkd3RfZGVjb2RlOTdfaW50KHMsIHQpOworICAgICAgICBkd3RfZGVjb2RlOTdfaW50KHMsIHQs IGxldiwgZGlyLCBzbGljZSwgc2xpY2VzKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGRl9E V1Q1MzoKLSAgICAgICAgZHd0X2RlY29kZTUzKHMsIHQpOworICAgICAgICBkd3RfZGVjb2RlNTMo cywgdCwgbGV2LCBkaXIsIHNsaWNlLCBzbGljZXMpOwogICAgICAgICBicmVhazsKICAgICBkZWZh dWx0OgogICAgICAgICByZXR1cm4gLTE7CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2pwZWcyMDAw ZHd0LmggYi9saWJhdmNvZGVjL2pwZWcyMDAwZHd0LmgKaW5kZXggNzE4ZDE4M2FjMS4uZDVlOTRj OTkxNiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9qcGVnMjAwMGR3dC5oCisrKyBiL2xpYmF2Y29k ZWMvanBlZzIwMDBkd3QuaApAQCAtMzIsNiArMzIsNyBAQAogI2RlZmluZSBGRl9EV1RfTUFYX0RF Q0xWTFMgMzIgLy8vPCBtYXggbnVtYmVyIG9mIGRlY29tcG9zaXRpb24gbGV2ZWxzCiAjZGVmaW5l IEZfTEZUR19LICAgICAgMS4yMzAxNzQxMDQ5MTQwMDFmCiAjZGVmaW5lIEZfTEZUR19YICAgICAg MC44MTI4OTMwNjYxMTU5NjFmCisjZGVmaW5lIElfUFJFU0hJRlQgOAogCiBlbnVtIERXVFR5cGUg ewogICAgIEZGX0RXVDk3LApAQCAtNDgsNiArNDksOCBAQCB0eXBlZGVmIHN0cnVjdCBEV1RDb250 ZXh0IHsKICAgICB1aW50OF90IHR5cGU7ICAgICAgICAgICAgICAgICAgICAgICAgLy8vPCAwIGZv ciA5Lzc7IDEgZm9yIDUvMwogICAgIGludDMyX3QgKmlfbGluZWJ1ZjsgICAgICAgICAgICAgICAg ICAvLy88IGludCBidWZmZXIgdXNlZCBieSB0cmFuc2Zvcm0KICAgICBmbG9hdCAgICpmX2xpbmVi dWY7ICAgICAgICAgICAgICAgICAgLy8vPCBmbG9hdCBidWZmZXIgdXNlZCBieSB0cmFuc2Zvcm0K KyAgICBpbnQgbWF4X3NsaWNlczsKKyAgICBpbnQgbGluZXNpemU7CiB9IERXVENvbnRleHQ7CiAK IC8qKgpAQCAtNTgsMTAgKzYxLDExIEBAIHR5cGVkZWYgc3RydWN0IERXVENvbnRleHQgewogICog QHBhcmFtIHR5cGUgICAgICAgICAgICAgIDAgZm9yIERXVCA5Lzc7IDEgZm9yIERXVCA1LzMKICAq LwogaW50IGZmX2pwZWcyMDAwX2R3dF9pbml0KERXVENvbnRleHQgKnMsIGludCBib3JkZXJbMl1b Ml0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlY29tcF9sZXZlbHMsIGludCB0eXBl KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVjb21wX2xldmVscywgaW50IHR5cGUs IGludCBtYXhfc2xpY2VzKTsKIAogaW50IGZmX2R3dF9lbmNvZGUoRFdUQ29udGV4dCAqcywgdm9p ZCAqdCk7CiBpbnQgZmZfZHd0X2RlY29kZShEV1RDb250ZXh0ICpzLCB2b2lkICp0KTsKK2ludCBm Zl9kd3RfZGVjb2RlX3RocmVhZChEV1RDb250ZXh0ICpzLCB2b2lkICp0LCBpbnQgbGV2LCBpbnQg ZGlyLCBpbnQgc2xpY2UsIGludCBzbGljZXMpOwogCiB2b2lkIGZmX2R3dF9kZXN0cm95KERXVENv bnRleHQgKnMpOwogCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Rlc3RzL2pwZWcyMDAwZHd0LmMg Yi9saWJhdmNvZGVjL3Rlc3RzL2pwZWcyMDAwZHd0LmMKaW5kZXggMGU1YTZlZDk0Ny4uZDRkOWU2 ZDIyNCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy90ZXN0cy9qcGVnMjAwMGR3dC5jCisrKyBiL2xp YmF2Y29kZWMvdGVzdHMvanBlZzIwMDBkd3QuYwpAQCAtMzEsMTIgKzMxLDEyIEBACiAKICNkZWZp bmUgTUFYX1cgMjU2CiAKLXN0YXRpYyBpbnQgdGVzdF9kd3QoaW50ICphcnJheSwgaW50ICpyZWYs IGludCBib3JkZXJbMl1bMl0sIGludCBkZWNvbXBfbGV2ZWxzLCBpbnQgdHlwZSwgaW50IG1heF9k aWZmKSB7CitzdGF0aWMgaW50IHRlc3RfZHd0KGludCAqYXJyYXksIGludCAqcmVmLCBpbnQgYm9y ZGVyWzJdWzJdLCBpbnQgZGVjb21wX2xldmVscywgaW50IHR5cGUsIGludCBtYXhfZGlmZiwgaW50 IHNsaWNlcykgewogICAgIGludCByZXQsIGo7CiAgICAgRFdUQ29udGV4dCBzMT17e3swfX19LCAq cz0gJnMxOwogICAgIGludDY0X3QgZXJyMiA9IDA7CiAKLSAgICByZXQgPSBmZl9qcGVnMjAwMF9k d3RfaW5pdChzLCAgYm9yZGVyLCBkZWNvbXBfbGV2ZWxzLCB0eXBlKTsKKyAgICByZXQgPSBmZl9q cGVnMjAwMF9kd3RfaW5pdChzLCAgYm9yZGVyLCBkZWNvbXBfbGV2ZWxzLCB0eXBlLCBzbGljZXMp OwogICAgIGlmIChyZXQgPCAwKSB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZmZfanBlZzIw MDBfZHd0X2luaXQgZmFpbGVkXG4iKTsKICAgICAgICAgcmV0dXJuIDE7CkBAIC03MCwxMiArNzAs MTIgQEAgc3RhdGljIGludCB0ZXN0X2R3dChpbnQgKmFycmF5LCBpbnQgKnJlZiwgaW50IGJvcmRl clsyXVsyXSwgaW50IGRlY29tcF9sZXZlbHMsIGkKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGlj IGludCB0ZXN0X2R3dGYoZmxvYXQgKmFycmF5LCBmbG9hdCAqcmVmLCBpbnQgYm9yZGVyWzJdWzJd LCBpbnQgZGVjb21wX2xldmVscywgZmxvYXQgbWF4X2RpZmYpIHsKK3N0YXRpYyBpbnQgdGVzdF9k d3RmKGZsb2F0ICphcnJheSwgZmxvYXQgKnJlZiwgaW50IGJvcmRlclsyXVsyXSwgaW50IGRlY29t cF9sZXZlbHMsIGZsb2F0IG1heF9kaWZmLCBpbnQgc2xpY2VzKSB7CiAgICAgaW50IHJldCwgajsK ICAgICBEV1RDb250ZXh0IHMxPXt7ezB9fX0sICpzPSAmczE7CiAgICAgZG91YmxlIGVycjIgPSAw OwogCi0gICAgcmV0ID0gZmZfanBlZzIwMDBfZHd0X2luaXQocywgIGJvcmRlciwgZGVjb21wX2xl dmVscywgRkZfRFdUOTcpOworICAgIHJldCA9IGZmX2pwZWcyMDAwX2R3dF9pbml0KHMsICBib3Jk ZXIsIGRlY29tcF9sZXZlbHMsIEZGX0RXVDk3LCBzbGljZXMpOwogICAgIGlmIChyZXQgPCAwKSB7 CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZmZfanBlZzIwMDBfZHd0X2luaXQgZmFpbGVkXG4i KTsKICAgICAgICAgcmV0dXJuIDE7CkBAIC0xMjUsMTkgKzEyNSwyMCBAQCBpbnQgbWFpbih2b2lk KSB7CiAgICAgICAgIGFycmF5ZltpXSA9IHJlZmZbaV0gPSBhcnJheVtpXSA9IHJlZltpXSA9ICBh dl9sZmdfZ2V0KCZwcm5nKSAlIDIwNDg7CiAKICAgICBmb3IgKGkgPSAwOyBpIDwgMTAwOyBpKysp IHsKKyAgICAgICAgaW50IHNsaWNlcyA9IDEgKyAoaSAlIDEwKTsKICAgICAgICAgZm9yIChqPTA7 IGo8NDsgaisrKQogICAgICAgICAgICAgYm9yZGVyW2o+PjFdW2omMV0gPSBhdl9sZmdfZ2V0KCZw cm5nKSAlIE1BWF9XOwogICAgICAgICBpZiAoYm9yZGVyWzBdWzBdID49IGJvcmRlclswXVsxXSB8 fCBib3JkZXJbMV1bMF0gPj0gYm9yZGVyWzFdWzFdKQogICAgICAgICAgICAgY29udGludWU7CiAg ICAgICAgIGRlY29tcF9sZXZlbHMgPSBhdl9sZmdfZ2V0KCZwcm5nKSAlIEZGX0RXVF9NQVhfREVD TFZMUzsKIAotICAgICAgICByZXQgPSB0ZXN0X2R3dChhcnJheSwgcmVmLCBib3JkZXIsIGRlY29t cF9sZXZlbHMsIEZGX0RXVDUzLCAwKTsKKyAgICAgICAgcmV0ID0gdGVzdF9kd3QoYXJyYXksIHJl ZiwgYm9yZGVyLCBkZWNvbXBfbGV2ZWxzLCBGRl9EV1Q1MywgMCwgc2xpY2VzKTsKICAgICAgICAg aWYgKHJldCkKICAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgIHJldCA9IHRlc3RfZHd0 KGFycmF5LCByZWYsIGJvcmRlciwgZGVjb21wX2xldmVscywgRkZfRFdUOTdfSU5ULCBGRk1JTig3 KzUqZGVjb21wX2xldmVscywgMTUrMypkZWNvbXBfbGV2ZWxzKSk7CisgICAgICAgIHJldCA9IHRl c3RfZHd0KGFycmF5LCByZWYsIGJvcmRlciwgZGVjb21wX2xldmVscywgRkZfRFdUOTdfSU5ULCBG Rk1JTig3KzUqZGVjb21wX2xldmVscywgMTUrMypkZWNvbXBfbGV2ZWxzKSwgc2xpY2VzKTsKICAg ICAgICAgaWYgKHJldCkKICAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgIHJldCA9IHRl c3RfZHd0ZihhcnJheWYsIHJlZmYsIGJvcmRlciwgZGVjb21wX2xldmVscywgMC4wNSk7CisgICAg ICAgIHJldCA9IHRlc3RfZHd0ZihhcnJheWYsIHJlZmYsIGJvcmRlciwgZGVjb21wX2xldmVscywg MC4wNSwgc2xpY2VzKTsKICAgICAgICAgaWYgKHJldCkKICAgICAgICAgICAgIHJldHVybiByZXQ7 CiAgICAgfQotLSAKMi4zMC4yCgo= --=-X6QpctkhH9nqUg0fhsQq Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". --=-X6QpctkhH9nqUg0fhsQq--