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 283D84E138 for ; Mon, 28 Apr 2025 14:35:05 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1CC0968A2A9; Mon, 28 Apr 2025 17:35:01 +0300 (EEST) Received: from sender2-op-o19.zoho.eu (sender2-op-o19.zoho.eu [136.143.171.19]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 07D22687D25 for ; Mon, 28 Apr 2025 17:34:53 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; t=1745850890; cv=none; d=zohomail.eu; s=zohoarc; b=bCYpH2QzhHPOrwFvtMNyLjNGlMaShIDSVmAoM64aGgZZ0+Qv7o0jDI/gWt/6U3qev6SHGRATsHxn8dQL725PgWGg/4Rvo9lxLyTBIMmcf6SDRjg8qQhQDmIHDTKd7ArWRcHJk1t3pSGZees+fHJZR4VVbFx8f3EibPW2UrDV96o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.eu; s=zohoarc; t=1745850890; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=MY+dehbNMmpfczRJM851Md2kOzQDJj3/IuMxsgF4yn4=; b=Kb4LGwPFQ9tla4MgfWFzdfA1zaSLE3P7oAW6zF4nVJgKlZE1/qonj0nyrFbFJV5hUHPyt7KiomDTg2uGyuMHYtGeoIR4UnRcir70QrgoDKTsWokIiACTyuAPoVzqcU69DgAklaDAq5F32Osz6/CdcTv4VJ5jqp2qUzYeesmbPqA= ARC-Authentication-Results: i=1; mx.zohomail.eu; dkim=pass header.i=frankplowman.com; spf=pass smtp.mailfrom=post@frankplowman.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1745850889; s=zmail; d=frankplowman.com; i=post@frankplowman.com; h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To:Cc; bh=MY+dehbNMmpfczRJM851Md2kOzQDJj3/IuMxsgF4yn4=; b=AsFgQdy3JvvM7BxTwKMMTC1ZPHG0am5HNui3w/UjtqIsfRXteEilRN2pfUpdHLYw s09L+WiPQ3PrT2/+Af11jn1XshfhlzxQvMWUrmicexSkg3ZfHIqMZPhEHHFUSj8Lbf+ ROVoPCXvi2mLRDuckmgINvBJn8mjkccNbiyDn7hQ= Received: by mx.zoho.eu with SMTPS id 1745850887349558.0929435154208; Mon, 28 Apr 2025 16:34:47 +0200 (CEST) Message-ID: Date: Mon, 28 Apr 2025 15:34:46 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-GB To: ffmpeg-devel@ffmpeg.org References: <20250427084843.39670-1-post@frankplowman.com> From: Frank Plowman In-Reply-To: X-ZohoMailClient: External Subject: Re: [FFmpeg-devel] [PATCH v2] lavc/vvc: Detect subpic overlaps at CTU level 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: T24gMjgvMDQvMjAyNSAxNDozMywgTnVvIE1pIHdyb3RlOgo+IEhpIEZyYW5rLAo+IFRoYW5rIHlv dSBmb3IgdGhlIHYyLgo+IENvdWxkIHdlIHJlbW92ZSBhbGwgYXNzZXJ0cz8KPiBBc3NlcnRzIGNh biBjYXVzZSB0aGUgYXBwbGljYXRpb24gdG8gY3Jhc2ggYXQgcnVudGltZS4KCkhpLAoKSSB0aGlu ayBhdl9hc3NlcnQycyBhcmUgdGhlIHJpZ2h0IHRoaW5nIHRvIHVzZSBoZXJlLiAgSW4gY2FzZSBp dCB3YXMgbm90CmNsZWFyLCB0aGVzZSBhc3NlcnRzIHNob3VsZCBuZXZlciBiZSB0cmlnZ2VyZWQg YnkgYW55IGJpdHN0cmVhbSAobGVnYWwKb3IgaWxsZWdhbCkuICBUaGUgYWx0ZXJuYXRpdmVzLCBh cyBJIHNlZSBpdCwgYXJlIGJvdGggbGVzcyBmYXZvdXJhYmxlOgoKKiBEb24ndCBjaGVjayB0aGUg cmV0dXJuIHZhbHVlIGF0IGFsbC4gIElmIHRoZSBhc3N1bXB0aW9uIGFib3ZlIHRoYXQKcHBzX2Fk ZF9jdHVzIHNob3VsZG4ndCBmYWlsIGluIHRoZXNlIGNhc2VzIGlzIGluY29ycmVjdCwgdGhlbiBh bGwgb2YgYQpzdWRkZW4gdGhlcmUgaXMgYSByYXRoZXIgdW5zY3J1dGFibGUgZXJyb3IgYXJpc2lu ZyBmcm9tIHN1YnRyYWN0aW5nIGEKdmFsdWUgZnJvbSBvZmYsIHdoaWNoIG1pZ2h0IGJlIHJhdGhl ciBkaWZmaWN1bHQgdG8gZGVidWcuICBBbiBhc3NlcnRpb24KaXMgYmV0dGVyIGJlY2F1c2UgaXQg bWFrZXMgdGhlIGlzc3VlIG9idmlvdXMgYnkgY3Jhc2hpbmcsIGFuZAppbW1lZGlhdGVseSBwb2lu dHMgdG8gdGhlIGxvY2F0aW9uIGluIHRoZSBjb2RlIHdoaWNoIGlzIHByb2JsZW1hdGljLgoKKiBB ZGQgYSBydW50aW1lIGNoZWNrIGZvciB0aGVzZSBjYXNlcy4gIElmIHRoZSBhc3N1bXB0aW9uIGFi b3ZlIGlzCmNvcnJlY3QsIHRoZW4gd2UncmUgaW5jdXJyaW5nIG5lZWRsZXNzIHJ1bnRpbWUgcGVu YWx0eSBjaGVja2luZyBmb3IKdGhpbmdzIHdoaWNoIGFyZSBhbHdheXMgdHJ1ZS4gIEFuIGF2X2Fz c2VydDIgaXMgYmV0dGVyIGJlY2F1c2UgaXQgaXMKb25seSBlbmFibGVkIGluIGRlYnVnIGJ1aWxk cywgYW5kIG5vdCB3aGVyZSBwZXJmb3JtYW5jZSBpcyBlc3NlbnRpYWwuCgo+IAo+IE9uIFN1biwg QXByIDI3LCAyMDI1IGF0IDQ6NDjigK9QTSBGcmFuayBQbG93bWFuIDxwb3N0QGZyYW5rcGxvd21h bi5jb20+IHdyb3RlOgo+IAo+PiBJbiBkNWRiY2MwMGQ4ODlmYjE3OTQ4YjAyNWE0NjhiMDBkZGJl YTllMDU4LCBpdCB3YXMgaG9wZWQgdGhhdCBkZXRlY3Rpb24KPj4gb2Ygc3VicGljdHVyZSBvdmVy bGFwcyBjb3VsZCBiZSBwZXJmb3JtZWQgYXQgdGhlIHRpbGUgbGV2ZWwsIHNvIGFzIHRvCj4+IGF2 b2lkIGludHJvZHVjaW5nIHBlci1DVFUgY2hlY2tzLiBVbmZvcnR1bmF0ZWx5IHNpbmNlIHRoYXQg cGF0Y2gsCj4+IGZ1enppbmcgaGFzIGluZGljYXRlZCB0aGVyZSBhcmUgc29tZSBzdHJ1Y3R1cmVz IGludm9sdmluZwo+PiBwcHNfc3VicGljX29uZV9vcl9tb3JlX3RpbGVzX3NsaWNlIHdoZXJlIHRp bGUtbGV2ZWwgY2hlY2tpbmcgaXMgbm90Cj4+IHN1ZmZpY2llbnQuICBQZXJmb3JtaW5nIHRoZSBj aGVjayBhdCB0aGUgQ1RVIGxldmVsIHNob3VsZCAodG91Y2ggd29vZCkKPj4gYmUgdGhlIGJlLWFs bCBhbmQgYW5kLWFsbCBvZiB0aGlzLCBhcyBDVFVzIGFyZSB0aGUgbG93ZXN0IGNvbW1vbgo+PiBk ZW5vbWluYXRvciBvZiB0aGUgcGljdHVyZSBwYXJ0aXRpb25pbmcuCj4+Cj4+IFNpZ25lZC1vZmYt Ynk6IEZyYW5rIFBsb3dtYW4gPHBvc3RAZnJhbmtwbG93bWFuLmNvbT4KPj4gLS0tCj4+IENoYW5n ZXMgc2luY2UgdjE6Cj4+ICogTWVyZ2UgcHBzX2FkZF9jdHVzIGFuZCBwcHNfYWRkX2N0dXNfY2hl Y2sKPj4gKiBDaGFuZ2UgaWYvZWxzZSBmb3IgZWFybHktZXhpdCB3aGVyZSBwb3NzaWJsZQo+Pgo+ PiAtLS0KPj4gIGxpYmF2Y29kZWMvdnZjL3BzLmMgfCA3MSArKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gIDEgZmlsZSBjaGFuZ2VkLCAzMSBpbnNlcnRpb25z KCspLCA0MCBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnZjL3Bz LmMgYi9saWJhdmNvZGVjL3Z2Yy9wcy5jCj4+IGluZGV4IGU4YzMxMmQ4YWMuLmVkOTYyNjhiYWUg MTAwNjQ0Cj4+IC0tLSBhL2xpYmF2Y29kZWMvdnZjL3BzLmMKPj4gKysrIGIvbGliYXZjb2RlYy92 dmMvcHMuYwo+PiBAQCAtNDA4LDYgKzQwOCw4IEBAIHN0YXRpYyBpbnQgcHBzX2FkZF9jdHVzKFZW Q1BQUyAqcHBzLCBpbnQgKm9mZiwgY29uc3QKPj4gaW50IHJ4LCBjb25zdCBpbnQgcnksCj4+ICAg ICAgaW50IHN0YXJ0ID0gKm9mZjsKPj4gICAgICBmb3IgKGludCB5ID0gMDsgeSA8IGg7IHkrKykg ewo+PiAgICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IHc7IHgrKykgewo+PiArICAgICAgICAg ICAgaWYgKCpvZmYgPj0gcHBzLT5jdGJfY291bnQpCj4+ICsgICAgICAgICAgICAgICAgcmV0dXJu IEFWRVJST1JfSU5WQUxJRERBVEE7Cj4+ICAgICAgICAgICAgICBwcHMtPmN0Yl9hZGRyX2luX3Ns aWNlWypvZmZdID0gY3R1X3JzKHJ4ICsgeCwgcnkgKyB5LCBwcHMpOwo+PiAgICAgICAgICAgICAg KCpvZmYpKys7Cj4+ICAgICAgICAgIH0KPj4gQEAgLTQyMCw5ICs0MjIsMTEgQEAgc3RhdGljIHZv aWQgcHBzX3NpbmdsZV9zbGljZV9waWN0dXJlKFZWQ1BQUyAqcHBzLCBpbnQKPj4gKm9mZikKPj4g ICAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNlWzBdID0gMDsKPj4gICAgICBmb3IgKGludCBqID0g MDsgaiA8IHBwcy0+ci0+bnVtX3RpbGVfcm93czsgaisrKSB7Cj4+ICAgICAgICAgIGZvciAoaW50 IGkgPSAwOyBpIDwgcHBzLT5yLT5udW1fdGlsZV9jb2x1bW5zOyBpKyspIHsKPj4gLSAgICAgICAg ICAgIHBwcy0+bnVtX2N0dXNfaW5fc2xpY2VbMF0gKz0gcHBzX2FkZF9jdHVzKHBwcywgb2ZmLAo+ PiArICAgICAgICAgICAgY29uc3QgaW50IHJldCA9IHBwc19hZGRfY3R1cyhwcHMsIG9mZiwKPj4g ICAgICAgICAgICAgICAgICBwcHMtPmNvbF9iZFtpXSwgcHBzLT5yb3dfYmRbal0sCj4+ICAgICAg ICAgICAgICAgICAgcHBzLT5yLT5jb2xfd2lkdGhfdmFsW2ldLCBwcHMtPnItPnJvd19oZWlnaHRf dmFsW2pdKTsKPj4gKyAgICAgICAgICAgIGF2X2Fzc2VydDIocmV0ID49IDApOwo+PiArICAgICAg ICAgICAgcHBzLT5udW1fY3R1c19pbl9zbGljZVswXSArPSByZXQ7Cj4+ICAgICAgICAgIH0KPj4g ICAgICB9Cj4+ICB9Cj4+IEBAIC00NTEsNTAgKzQ1NSwzNiBAQCBzdGF0aWMgdm9pZCBzdWJwaWNf dGlsZXMoaW50ICp0aWxlX3gsIGludCAqdGlsZV95LAo+PiBpbnQgKnRpbGVfeF9lbmQsIGludCAq dGlsZV95Xwo+PiAgICAgICAgICAoKnRpbGVfeV9lbmQpKys7Cj4+ICB9Cj4+Cj4+IC1zdGF0aWMg Ym9vbCBtYXJrX3RpbGVfYXNfdXNlZChib29sICp0aWxlX2luX3N1YnBpYywgY29uc3QgaW50IHR4 LCBjb25zdAo+PiBpbnQgdHksIGNvbnN0IGludCB0aWxlX2NvbHVtbnMpCj4+IC17Cj4+IC0gICAg Y29uc3Qgc2l6ZV90IHRpbGVfaWR4ID0gdHkgKiB0aWxlX2NvbHVtbnMgKyB0eDsKPj4gLSAgICBp ZiAodGlsZV9pbl9zdWJwaWNbdGlsZV9pZHhdKSB7Cj4+IC0gICAgICAgIC8qIHRoZSB0aWxlIGlz IGNvdmVyZWQgYnkgb3RoZXIgc3VicGljdHVyZXMgKi8KPj4gLSAgICAgICAgcmV0dXJuIGZhbHNl Owo+PiAtICAgIH0KPj4gLSAgICB0aWxlX2luX3N1YnBpY1t0aWxlX2lkeF0gPSB0cnVlOwo+PiAt ICAgIHJldHVybiB0cnVlOwo+PiAtfQo+PiAtCj4+IC1zdGF0aWMgaW50IHBwc19zdWJwaWNfbGVz c190aGFuX29uZV90aWxlX3NsaWNlKFZWQ1BQUyAqcHBzLCBjb25zdCBWVkNTUFMKPj4gKnNwcywg Y29uc3QgaW50IGksIGNvbnN0IGludCB0eCwgY29uc3QgaW50IHR5LCBpbnQgKm9mZiwgYm9vbAo+ PiAqdGlsZV9pbl9zdWJwaWMpCj4+ICtzdGF0aWMgaW50IHBwc19zdWJwaWNfbGVzc190aGFuX29u ZV90aWxlX3NsaWNlKFZWQ1BQUyAqcHBzLCBjb25zdCBWVkNTUFMKPj4gKnNwcywgY29uc3QgaW50 IGksIGNvbnN0IGludCB0eCwgY29uc3QgaW50IHR5LCBpbnQgKm9mZikKPj4gIHsKPj4gLSAgICBj b25zdCBpbnQgc3VicGljX2JvdHRvbSA9IHNwcy0+ci0+c3BzX3N1YnBpY19jdHVfdG9wX2xlZnRf eVtpXSArCj4+IHNwcy0+ci0+c3BzX3N1YnBpY19oZWlnaHRfbWludXMxW2ldOwo+PiAtICAgIGNv bnN0IGludCB0aWxlX2JvdHRvbSA9IHBwcy0+cm93X2JkW3R5XSArIHBwcy0+ci0+cm93X2hlaWdo dF92YWxbdHldCj4+IC0gMTsKPj4gLSAgICBjb25zdCBib29sIGlzX2ZpbmFsX3N1YnBpY19pbl90 aWxlID0gc3VicGljX2JvdHRvbSA9PSB0aWxlX2JvdHRvbTsKPj4gLQo+PiAtICAgIGlmIChpc19m aW5hbF9zdWJwaWNfaW5fdGlsZSAmJiAhbWFya190aWxlX2FzX3VzZWQodGlsZV9pbl9zdWJwaWMs IHR4LAo+PiB0eSwgcHBzLT5yLT5udW1fdGlsZV9jb2x1bW5zKSkKPj4gLSAgICAgICAgcmV0dXJu IEFWRVJST1JfSU5WQUxJRERBVEE7Cj4+IC0KPj4gLSAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNl W2ldID0gcHBzX2FkZF9jdHVzKHBwcywgb2ZmLAo+PiArICAgIGNvbnN0IGludCByZXQgPSBwcHNf YWRkX2N0dXMocHBzLCBvZmYsCj4+ICAgICAgICAgIHNwcy0+ci0+c3BzX3N1YnBpY19jdHVfdG9w X2xlZnRfeFtpXSwKPj4gc3BzLT5yLT5zcHNfc3VicGljX2N0dV90b3BfbGVmdF95W2ldLAo+PiAg ICAgICAgICBzcHMtPnItPnNwc19zdWJwaWNfd2lkdGhfbWludXMxW2ldICsgMSwKPj4gc3BzLT5y LT5zcHNfc3VicGljX2hlaWdodF9taW51czFbaV0gKyAxKTsKPj4gKyAgICBpZiAocmV0IDwgMCkK Pj4gKyAgICAgICAgcmV0dXJuIHJldDsKPj4KPj4gKyAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNl W2ldID0gcmV0Owo+PiAgICAgIHJldHVybiAwOwo+PiAgfQo+Pgo+PiAgc3RhdGljIGludCBwcHNf c3VicGljX29uZV9vcl9tb3JlX3RpbGVzX3NsaWNlKFZWQ1BQUyAqcHBzLCBjb25zdCBpbnQKPj4g dGlsZV94LCBjb25zdCBpbnQgdGlsZV95LCBjb25zdCBpbnQgeF9lbmQsIGNvbnN0IGludCB5X2Vu ZCwKPj4gLSAgICBjb25zdCBpbnQgaSwgaW50ICpvZmYsIGJvb2wgKnRpbGVfaW5fc3VicGljKQo+ PiArICAgIGNvbnN0IGludCBpLCBpbnQgKm9mZikKPj4gIHsKPj4gICAgICBmb3IgKGludCB0eSA9 IHRpbGVfeTsgdHkgPCB5X2VuZDsgdHkrKykgewo+PiAgICAgICAgICBmb3IgKGludCB0eCA9IHRp bGVfeDsgdHggPCB4X2VuZDsgdHgrKykgewo+PiAtICAgICAgICAgICAgaWYgKCFtYXJrX3RpbGVf YXNfdXNlZCh0aWxlX2luX3N1YnBpYywgdHgsIHR5LAo+PiBwcHMtPnItPm51bV90aWxlX2NvbHVt bnMpKQo+PiAtICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+PiAt Cj4+IC0gICAgICAgICAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNlW2ldICs9IHBwc19hZGRfY3R1 cyhwcHMsIG9mZiwKPj4gKyAgICAgICAgICAgIGNvbnN0IGludCByZXQgPSBwcHNfYWRkX2N0dXMo cHBzLCBvZmYsCj4+ICAgICAgICAgICAgICAgICAgcHBzLT5jb2xfYmRbdHhdLCBwcHMtPnJvd19i ZFt0eV0sCj4+ICAgICAgICAgICAgICAgICAgcHBzLT5yLT5jb2xfd2lkdGhfdmFsW3R4XSwgcHBz LT5yLT5yb3dfaGVpZ2h0X3ZhbFt0eV0pOwo+PiArICAgICAgICAgICAgaWYgKHJldCA8IDApCj4+ ICsgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4gKwo+PiArICAgICAgICAgICAgcHBzLT5u dW1fY3R1c19pbl9zbGljZVtpXSArPSByZXQ7Cj4+ICAgICAgICAgIH0KPj4gICAgICB9Cj4+ICAg ICAgcmV0dXJuIDA7Cj4+ICB9Cj4+Cj4+IC1zdGF0aWMgaW50IHBwc19zdWJwaWNfc2xpY2UoVlZD UFBTICpwcHMsIGNvbnN0IFZWQ1NQUyAqc3BzLCBjb25zdCBpbnQgaSwKPj4gaW50ICpvZmYsIGJv b2wgKnRpbGVfaW5fc3VicGljKQo+PiArc3RhdGljIGludCBwcHNfc3VicGljX3NsaWNlKFZWQ1BQ UyAqcHBzLCBjb25zdCBWVkNTUFMgKnNwcywgY29uc3QgaW50IGksCj4+IGludCAqb2ZmKQo+PiAg ewo+PiAgICAgIGludCB0eCwgdHksIHhfZW5kLCB5X2VuZDsKPj4KPj4gQEAgLTUwMyw5ICs0OTMs OSBAQCBzdGF0aWMgaW50IHBwc19zdWJwaWNfc2xpY2UoVlZDUFBTICpwcHMsIGNvbnN0IFZWQ1NQ Uwo+PiAqc3BzLCBjb25zdCBpbnQgaSwgaW50ICpvZgo+Pgo+PiAgICAgIHN1YnBpY190aWxlcygm dHgsICZ0eSwgJnhfZW5kLCAmeV9lbmQsIHNwcywgcHBzLCBpKTsKPj4gICAgICBpZiAodHkgKyAx ID09IHlfZW5kICYmIHNwcy0+ci0+c3BzX3N1YnBpY19oZWlnaHRfbWludXMxW2ldICsgMSA8Cj4+ IHBwcy0+ci0+cm93X2hlaWdodF92YWxbdHldKQo+PiAtICAgICAgICByZXR1cm4gcHBzX3N1YnBp Y19sZXNzX3RoYW5fb25lX3RpbGVfc2xpY2UocHBzLCBzcHMsIGksIHR4LCB0eSwKPj4gb2ZmLCB0 aWxlX2luX3N1YnBpYyk7Cj4+ICsgICAgICAgIHJldHVybiBwcHNfc3VicGljX2xlc3NfdGhhbl9v bmVfdGlsZV9zbGljZShwcHMsIHNwcywgaSwgdHgsIHR5LAo+PiBvZmYpOwo+PiAgICAgIGVsc2UK Pj4gLSAgICAgICAgcmV0dXJuIHBwc19zdWJwaWNfb25lX29yX21vcmVfdGlsZXNfc2xpY2UocHBz LCB0eCwgdHksIHhfZW5kLAo+PiB5X2VuZCwgaSwgb2ZmLCB0aWxlX2luX3N1YnBpYyk7Cj4+ICsg ICAgICAgIHJldHVybiBwcHNfc3VicGljX29uZV9vcl9tb3JlX3RpbGVzX3NsaWNlKHBwcywgdHgs IHR5LCB4X2VuZCwKPj4geV9lbmQsIGksIG9mZik7Cj4+ICB9Cj4+Cj4+ICBzdGF0aWMgaW50IHBw c19zaW5nbGVfc2xpY2VfcGVyX3N1YnBpYyhWVkNQUFMgKnBwcywgY29uc3QgVlZDU1BTICpzcHMs Cj4+IGludCAqb2ZmKQo+PiBAQCAtNTEzLDE4ICs1MDMsMTEgQEAgc3RhdGljIGludCBwcHNfc2lu Z2xlX3NsaWNlX3Blcl9zdWJwaWMoVlZDUFBTICpwcHMsCj4+IGNvbnN0IFZWQ1NQUyAqc3BzLCBp bnQgKm9mZikKPj4gICAgICBpZiAoIXNwcy0+ci0+c3BzX3N1YnBpY19pbmZvX3ByZXNlbnRfZmxh Zykgewo+PiAgICAgICAgICBwcHNfc2luZ2xlX3NsaWNlX3BpY3R1cmUocHBzLCBvZmYpOwo+PiAg ICAgIH0gZWxzZSB7Cj4+IC0gICAgICAgIGJvb2wgdGlsZV9pbl9zdWJwaWNbVlZDX01BWF9USUxF U19QRVJfQVVdID0gezB9Owo+PiAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBwcy0+ci0+ cHBzX251bV9zbGljZXNfaW5fcGljX21pbnVzMSArIDE7Cj4+IGkrKykgewo+PiAtICAgICAgICAg ICAgY29uc3QgaW50IHJldCA9IHBwc19zdWJwaWNfc2xpY2UocHBzLCBzcHMsIGksIG9mZiwKPj4g dGlsZV9pbl9zdWJwaWMpOwo+PiArICAgICAgICAgICAgY29uc3QgaW50IHJldCA9IHBwc19zdWJw aWNfc2xpY2UocHBzLCBzcHMsIGksIG9mZik7Cj4+ICAgICAgICAgICAgICBpZiAocmV0IDwgMCkK Pj4gICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+PiAgICAgICAgICB9Cj4+IC0KPj4gLSAg ICAgICAgLy8gV2Ugb25seSB1c2UgdGlsZV9pbl9zdWJwaWMgdG8gY2hlY2sgdGhhdCB0aGUgc3Vi cGljdHVyZXMgZG9uJ3QKPj4gb3ZlcmxhcAo+PiAtICAgICAgICAvLyBoZXJlOyB3ZSBkb24ndCB1 c2UgdGlsZV9pbl9zdWJwaWMgdG8gY2hlY2sgdGhhdCB0aGUKPj4gc3VicGljdHVyZXMgY292ZXIK Pj4gLSAgICAgICAgLy8gZXZlcnkgdGlsZS4gIEl0IGlzIHBvc3NpYmxlIHRvIGF2b2lkIGRvaW5n IHRoaXMgd29yayBoZXJlCj4+IGJlY2F1c2UgdGhlCj4+IC0gICAgICAgIC8vIGNvdmVyaW5nIHBy b3BlcnR5IG9mIHN1YnBpY3R1cmVzIGlzIGFscmVhZHkgZ3VhcmFudGVlZCBieSB0aGUKPj4gbWVj aGFuaXNtcwo+PiAtICAgICAgICAvLyB3aGljaCBjaGVjayBldmVyeSBDVFUgYmVsb25ncyB0byBh IHNsaWNlLgo+PiAgICAgIH0KPj4gICAgICByZXR1cm4gMDsKPj4gIH0KPj4gQEAgLTUzOCw5ICs1 MjEsMTIgQEAgc3RhdGljIGludCBwcHNfb25lX3RpbGVfc2xpY2VzKFZWQ1BQUyAqcHBzLCBjb25z dCBpbnQKPj4gdGlsZV9pZHgsIGludCBpLCBpbnQgKm9mZikKPj4gICAgICBjdHVfeHkoJnJ4LCAm cnksIHRpbGVfeCwgdGlsZV95LCBwcHMpOwo+PiAgICAgIGN0dV95X2VuZCA9IHJ5ICsgci0+cm93 X2hlaWdodF92YWxbdGlsZV95XTsKPj4gICAgICB3aGlsZSAocnkgPCBjdHVfeV9lbmQpIHsKPj4g KyAgICAgICAgaW50IHJldDsKPj4gICAgICAgICAgcHBzLT5zbGljZV9zdGFydF9vZmZzZXRbaV0g PSAqb2ZmOwo+PiAtICAgICAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNlW2ldID0gcHBzX2FkZF9j dHVzKHBwcywgb2ZmLCByeCwgcnksCj4+ICsgICAgICAgIHJldCA9IHBwc19hZGRfY3R1cyhwcHMs IG9mZiwgcngsIHJ5LAo+PiAgICAgICAgICAgICAgci0+Y29sX3dpZHRoX3ZhbFt0aWxlX3hdLCBy LT5zbGljZV9oZWlnaHRfaW5fY3R1c1tpXSk7Cj4+ICsgICAgICAgIGF2X2Fzc2VydDIocmV0ID49 IDApOwo+PiArICAgICAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNlW2ldID0gcmV0Owo+PiAgICAg ICAgICByeSArPSByLT5zbGljZV9oZWlnaHRfaW5fY3R1c1tpKytdOwo+PiAgICAgIH0KPj4gICAg ICBpLS07Cj4+IEBAIC01NTcsMTMgKzU0MywxNiBAQCBzdGF0aWMgaW50IHBwc19tdWx0aV90aWxl c19zbGljZShWVkNQUFMgKnBwcywgY29uc3QKPj4gaW50IHRpbGVfaWR4LCBjb25zdCBpbnQgaSwg aQo+PiAgICAgIHBwcy0+bnVtX2N0dXNfaW5fc2xpY2VbaV0gPSAwOwo+PiAgICAgIGZvciAoaW50 IHR5ID0gdGlsZV95OyB0eSA8PSB0aWxlX3kgKwo+PiByLT5wcHNfc2xpY2VfaGVpZ2h0X2luX3Rp bGVzX21pbnVzMVtpXTsgdHkrKykgewo+PiAgICAgICAgICBmb3IgKGludCB0eCA9IHRpbGVfeDsg dHggPD0gdGlsZV94ICsKPj4gci0+cHBzX3NsaWNlX3dpZHRoX2luX3RpbGVzX21pbnVzMVtpXTsg dHgrKykgewo+PiArICAgICAgICAgICAgaW50IHJldDsKPj4gICAgICAgICAgICAgIGNvbnN0IGlu dCBpZHggPSB0eSAqIHItPm51bV90aWxlX2NvbHVtbnMgKyB0eDsKPj4gICAgICAgICAgICAgIGlm ICh0aWxlX2luX3NsaWNlW2lkeF0pCj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1Jf SU5WQUxJRERBVEE7Cj4+ICAgICAgICAgICAgICB0aWxlX2luX3NsaWNlW2lkeF0gPSB0cnVlOwo+ PiAgICAgICAgICAgICAgY3R1X3h5KCZyeCwgJnJ5LCB0eCwgdHksIHBwcyk7Cj4+IC0gICAgICAg ICAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNlW2ldICs9IHBwc19hZGRfY3R1cyhwcHMsIG9mZiwg cngsIHJ5LAo+PiArICAgICAgICAgICAgcmV0ID0gcHBzX2FkZF9jdHVzKHBwcywgb2ZmLCByeCwg cnksCj4+ICAgICAgICAgICAgICAgICAgci0+Y29sX3dpZHRoX3ZhbFt0eF0sIHItPnJvd19oZWln aHRfdmFsW3R5XSk7Cj4+ICsgICAgICAgICAgICBhdl9hc3NlcnQyKHJldCA+PSAwKTsKPj4gKyAg ICAgICAgICAgIHBwcy0+bnVtX2N0dXNfaW5fc2xpY2VbaV0gKz0gcmV0Owo+PiAgICAgICAgICB9 Cj4+ICAgICAgfQo+Pgo+PiBAQCAtNjEwLDggKzU5OSwxMCBAQCBzdGF0aWMgdm9pZCBwcHNfbm9f cmVjdF9zbGljZShWVkNQUFMqIHBwcykKPj4KPj4gICAgICBmb3IgKGludCB0aWxlX3kgPSAwOyB0 aWxlX3kgPCByLT5udW1fdGlsZV9yb3dzOyB0aWxlX3krKykgewo+PiAgICAgICAgICBmb3IgKGlu dCB0aWxlX3ggPSAwOyB0aWxlX3ggPCByLT5udW1fdGlsZV9jb2x1bW5zOyB0aWxlX3grKykgewo+ PiArICAgICAgICAgICAgaW50IHJldDsKPj4gICAgICAgICAgICAgIGN0dV94eSgmcngsICZyeSwg dGlsZV94LCB0aWxlX3ksIHBwcyk7Cj4+IC0gICAgICAgICAgICBwcHNfYWRkX2N0dXMocHBzLCAm b2ZmLCByeCwgcnksIHItPmNvbF93aWR0aF92YWxbdGlsZV94XSwKPj4gci0+cm93X2hlaWdodF92 YWxbdGlsZV95XSk7Cj4+ICsgICAgICAgICAgICByZXQgPSBwcHNfYWRkX2N0dXMocHBzLCAmb2Zm LCByeCwgcnksCj4+IHItPmNvbF93aWR0aF92YWxbdGlsZV94XSwgci0+cm93X2hlaWdodF92YWxb dGlsZV95XSk7Cj4+ICsgICAgICAgICAgICBhdl9hc3NlcnQyKHJldCA+PSAwKTsKPj4gICAgICAg ICAgfQo+PiAgICAgIH0KPj4gIH0KPj4gLS0KPj4gMi40Ny4wCj4+Cj4+Cj4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBmZm1wZWctZGV2ZWwgbWFpbGlu ZyBsaXN0Cj4gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPiBodHRwczovL2ZmbXBlZy5vcmcvbWFp bG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKPiAKPiBUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGlu ayBhYm92ZSwgb3IgZW1haWwKPiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGgg c3ViamVjdCAidW5zdWJzY3JpYmUiLgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1w ZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoK VG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1y ZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==