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 BB44247F17 for ; Sat, 2 Dec 2023 13:19:46 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CE17C68CA18; Sat, 2 Dec 2023 15:19:42 +0200 (EET) Received: from mail-vk1-f175.google.com (mail-vk1-f175.google.com [209.85.221.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4A31A68C919 for ; Sat, 2 Dec 2023 15:19:36 +0200 (EET) Received: by mail-vk1-f175.google.com with SMTP id 71dfb90a1353d-4b292cc7e5dso1014347e0c.2 for ; Sat, 02 Dec 2023 05:19:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701523175; x=1702127975; darn=ffmpeg.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=njzWCiqJgzM+sAW3yFz7pULgiPXw1UGw4u84fDWJLUg=; b=hcH5e0C4sRWp2plVN1sEW8EcDHmnKFu9Zc15e9kwG29dLmNUyqZnpKQX1uurJ2i7+Q fKpXUZ3cjazrsv0z849wHJKBS/Y6pfEBuIbwIgY0G+hlTwUSLeivZ9O1GPQiSUkYqu9q +6APsyU7IJ+OFko2vQT02wyQwAh3/5h8Wkl0ylHsjBhPP4JUFwYhIUk0459XjKnTws7k R0l/Ye48m2lTrOV3tgQzVmF6Z0t5US7ZOoIAslcHdYmrSQrmaAruKtAyKR8zCioPodUO Fz2cnNngPZQU2gKJBIOPEHFyX46ys91sIJ7fftXihEZHLzBDfG4exAK7UKVkVcjXD0F6 mMCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701523175; x=1702127975; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=njzWCiqJgzM+sAW3yFz7pULgiPXw1UGw4u84fDWJLUg=; b=cfQ0/XeOH9ZGSZj2yYqXpJlpGyzz+VgfAZKhO7F8ZWBER92HpERNiARmit7hWofip5 ikuSiVHt6YQaRFfvBR30+yuta1hX5N5dYJDNvPgSNhNHPNh1gP9uxbwzMoW3OKOylKue 76u6emYYlm3iKu+wUd657Wa9esegTeL1dQfdKGS7cnDyVSMCQOrstrL3rL0XLCwVxfGD L2SKiwknK7Yj6jRKOZEafTPbR/o0ODAAwpCzjtOBjCJPaLf9KujF2AM1/b7pDqZBAGxv uTaQo5K+XCHmcnOwAY67eVZzUts0yZjh69xpL8+SJvubD6OovJ6TIqatDR5lERZiOE1a C7+g== X-Gm-Message-State: AOJu0YzYOJzWaFikmhOFD+TEnkbUPmE13OuHnbTQ1Nkmd2ihRRBkQM91 hFQL3sCs2mO0yQtIxo99ns07blhAnFH0u2WDBcjDh4bk X-Google-Smtp-Source: AGHT+IH0KHsSg01720T0wwrhvlRyadGjW8pOjjSYLkbtZ2uv5u6AyVkoezwQlymk0VkSez+CdJjOZl8TSd/cEKNSCgo= X-Received: by 2002:a05:6122:222a:b0:49a:56d2:562d with SMTP id bb42-20020a056122222a00b0049a56d2562dmr508199vkb.4.1701523174698; Sat, 02 Dec 2023 05:19:34 -0800 (PST) MIME-Version: 1.0 From: Paul B Mahol Date: Sat, 2 Dec 2023 14:27:59 +0100 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="00000000000067d021060b86bc6f" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH] avfilter: add aspace filter 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: --00000000000067d021060b86bc6f Content-Type: text/plain; charset="UTF-8" Attached. --00000000000067d021060b86bc6f Content-Type: text/x-patch; charset="US-ASCII"; name="0001-avfilter-add-aspace-filter.patch" Content-Disposition: attachment; filename="0001-avfilter-add-aspace-filter.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lpo386g50 RnJvbSAwMzg4MDM4ZmYyYzc4MTYxOTRkMDFjZjRjODk2NmFhYjRhNTA0YjkyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IFNhdCwgMiBEZWMgMjAyMyAwMDo1MTo1NCArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIGF2ZmlsdGVy OiBhZGQgYXNwYWNlIGZpbHRlcgoKU2lnbmVkLW9mZi1ieTogUGF1bCBCIE1haG9sIDxvbmVtZGFA Z21haWwuY29tPgotLS0KIGRvYy9maWx0ZXJzLnRleGkgICAgICAgICAgICAgIHwgIDYyICsrKysr CiBsaWJhdmZpbHRlci9NYWtlZmlsZSAgICAgICAgICB8ICAgMSArCiBsaWJhdmZpbHRlci9hZl9h c3BhY2UuYyAgICAgICB8IDQyNyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBs aWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMgICAgICB8ICAgMSArCiBsaWJhdmZpbHRlci9hc3BhY2Vf dGVtcGxhdGUuYyB8ICA1NyArKysrKwogNSBmaWxlcyBjaGFuZ2VkLCA1NDggaW5zZXJ0aW9ucygr KQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2ZmlsdGVyL2FmX2FzcGFjZS5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgbGliYXZmaWx0ZXIvYXNwYWNlX3RlbXBsYXRlLmMKCmRpZmYgLS1naXQgYS9kb2Mv ZmlsdGVycy50ZXhpIGIvZG9jL2ZpbHRlcnMudGV4aQppbmRleCAyNzQzN2M0YTM2Li5kZDRkZDZj OWJkIDEwMDY0NAotLS0gYS9kb2MvZmlsdGVycy50ZXhpCisrKyBiL2RvYy9maWx0ZXJzLnRleGkK QEAgLTMyNzQsNiArMzI3NCw2OCBAQCBTZXQgb3ZlcnNhbXBsaW5nIGZhY3Rvci4KIAogVGhpcyBm aWx0ZXIgc3VwcG9ydHMgdGhlIGFsbCBhYm92ZSBvcHRpb25zIGFzIEByZWZ7Y29tbWFuZHN9Lgog CitAc2VjdGlvbiBhc3BhY2UKK0FwcGx5IEFyYml0cmFyeSBEaXN0YW5jZS1iYXNlZCBBbXBsaXR1 ZGUgUGFubmluZyB0byBpbnB1dCBhdWRpbyBzdHJlYW0uCisKK0FjY2VwdGVkIGlucHV0IGF1ZGlv IGNoYW5uZWwgbGF5b3V0IGlzIG1vbm8gb25seS4KKworSXQgYWNjZXB0cyB0aGUgZm9sbG93aW5n IG9wdGlvbnM6CitAdGFibGUgQG9wdGlvbgorQGl0ZW0gbGF5b3V0CitUaGUgY2hhbm5lbCBsYXlv dXQgb2YgdGhlIG91dHB1dCBzdHJlYW0uIFRoZSBkZWZhdWx0IGlzICJzdGVyZW8iLgorCitAaXRl bSBhCitTZXQgdGhlIHNvdXJjZSBhdWRpbyBhemltdXRoIHBvc2l0aW9uIGluIGRlZ3JlZXMuCitB bGxvd2VkIHZhbHVlcyBhcmUgZnJvbSBAdmFyey0xODAuMH0gdG8gQHZhcnsxODAuMH0uCisKK0Bp dGVtIGUKK1NldCB0aGUgc291cmNlIGF1ZGlvIGVsZXZhdGlvbiBwb3NpdGlvbiBpbiBkZWdyZWVz LgorQWxsb3dlZCB2YWx1ZXMgYXJlIGZyb20gQHZhcnstOTAuMH0gdG8gQHZhcns5MC4wfS4KKwor QGl0ZW0gcgorU2V0IHRoZSBzb3VyY2UgYXVkaW8gZGlzdGFuY2UgZnJvbSBjZW50cmFsIHBvaW50 LgorCitAaXRlbSBiCitTZXQgdGhlIHNwYXRpYWwgYmx1ciBmYWN0b3IuIEFsbG93ZWQgdmFsdWVz IGFyZSBmcm9tIEB2YXJ7MH0gdG8gQHZhcnsxMDAuMH0uCisKK0BpdGVtIG8KK1NldCB0aGUgcm9s bG9mZiBpbiBkZWNpYmVscywgdGhpcyBzZXRzIGludmVyc2UgZGlzdGFuY2UgbGF3IGZvciBzb3Vu ZCBwcm9wYWdhdGluZworaW4gYSBmcmVlIGZpZWxkLiBBbGxvd2VkIHJhbmdlIGlzIGZyb20gQHZh cnswfSB0byBAdmFyezkwfS4KKworQGl0ZW0gUgorU2V0IHRoZSBkaXN0YW5jZSBvZiBlYWNoIHNw ZWFrZXIgaW4gcmVndWxhciAoY2lyY3VsYXIpIGxheW91dCBmcm9tIGNlbnRyYWwgcG9pbnQuCitB bGxvd2VkIHZhbHVlcyBhcmUgZnJvbSBAdmFyezAuMDF9IHRvIEB2YXJ7MTAwLjB9LgorCitAaXRl bSBwcmVjaXNpb24KK1NldCB3aGljaCBwcmVjaXNpb24gdG8gdXNlIHdoZW4gcHJvY2Vzc2luZyBz YW1wbGVzLgorCitAdGFibGUgQG9wdGlvbgorQGl0ZW0gYXV0bworQXV0byBwaWNrIGludGVybmFs IHNhbXBsZSBmb3JtYXQgZGVwZW5kaW5nIG9uIG90aGVyIGZpbHRlcnMuCisKK0BpdGVtIGZsb2F0 CitBbHdheXMgdXNlIHNpbmdsZS1mbG9hdGluZyBwb2ludCBwcmVjaXNpb24gc2FtcGxlIGZvcm1h dC4KKworQGl0ZW0gZG91YmxlCitBbHdheXMgdXNlIGRvdWJsZS1mbG9hdGluZyBwb2ludCBwcmVj aXNpb24gc2FtcGxlIGZvcm1hdC4KK0BlbmQgdGFibGUKK0BlbmQgdGFibGUKKworQHN1YnNlY3Rp b24gRXhhbXBsZXMKKworQGl0ZW1pemUKK0BpdGVtCitQYW4gc2luZ2xlLWNoYW5uZWwgaW5wdXQg YXVkaW8gc3RyZWFtIGludG8gNS4xIGxheW91dCB3aXRoIGN1c3RvbSBhemltdXRoIHBvc2l0aW9u IG9mIC0xNSBkZWcKK2FuZCBzcGF0aWFsIGJsdXIgb2YgMC4xIHdpdGggY3VzdG9tIHJvbGxvZmYg b2YgNiBkQjoKK0BleGFtcGxlCithc3BhY2U9bGF5b3V0PTUuMTpiPTAuMTpvPTY6YT0tMTUKK0Bl bmQgZXhhbXBsZQorQGVuZCBpdGVtaXplCisKK0BzdWJzZWN0aW9uIENvbW1hbmRzCisKK1RoaXMg ZmlsdGVyIHN1cHBvcnRzIHRoZSBzb21lIG9mIGFib3ZlIG9wdGlvbnMgYXMgQHJlZntjb21tYW5k c30uCisKIEBzZWN0aW9uIGFzcGVjdHJhbHN0YXRzCiAKIERpc3BsYXkgZnJlcXVlbmN5IGRvbWFp biBzdGF0aXN0aWNhbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYXVkaW8gY2hhbm5lbHMuCmRpZmYg LS1naXQgYS9saWJhdmZpbHRlci9NYWtlZmlsZSBiL2xpYmF2ZmlsdGVyL01ha2VmaWxlCmluZGV4 IGYxYmY5NDgzYmIuLmIwNDkzODQwNmYgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL01ha2VmaWxl CisrKyBiL2xpYmF2ZmlsdGVyL01ha2VmaWxlCkBAIC0xMDgsNiArMTA4LDcgQEAgT0JKUy0kKENP TkZJR19BU0hPV0lORk9fRklMVEVSKSAgICAgICAgICAgICAgKz0gYWZfYXNob3dpbmZvLm8KIE9C SlMtJChDT05GSUdfQVNJREVEQVRBX0ZJTFRFUikgICAgICAgICAgICAgICs9IGZfc2lkZWRhdGEu bwogT0JKUy0kKENPTkZJR19BU0lTRFJfRklMVEVSKSAgICAgICAgICAgICAgICAgKz0gYWZfYXNk ci5vCiBPQkpTLSQoQ09ORklHX0FTT0ZUQ0xJUF9GSUxURVIpICAgICAgICAgICAgICArPSBhZl9h c29mdGNsaXAubworT0JKUy0kKENPTkZJR19BU1BBQ0VfRklMVEVSKSAgICAgICAgICAgICAgICAg Kz0gYWZfYXNwYWNlLm8KIE9CSlMtJChDT05GSUdfQVNQRUNUUkFMU1RBVFNfRklMVEVSKSAgICAg ICAgICs9IGFmX2FzcGVjdHJhbHN0YXRzLm8KIE9CSlMtJChDT05GSUdfQVNQTElUX0ZJTFRFUikg ICAgICAgICAgICAgICAgICs9IHNwbGl0Lm8KIE9CSlMtJChDT05GSUdfQVNSX0ZJTFRFUikgICAg ICAgICAgICAgICAgICAgICs9IGFmX2Fzci5vCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci9hZl9h c3BhY2UuYyBiL2xpYmF2ZmlsdGVyL2FmX2FzcGFjZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAuLmExZTJkMWVjNjEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJhdmZpbHRl ci9hZl9hc3BhY2UuYwpAQCAtMCwwICsxLDQyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAy MyBQYXVsIEIgTWFob2wKKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCisgKgor ICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBGRm1wZWcgaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl IEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdy aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp biBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisgKi8KKwor I2luY2x1ZGUgPGZsb2F0Lmg+CisjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+ CisKKyNpbmNsdWRlICJsaWJhdnV0aWwvYXZzdHJpbmcuaCIKKyNpbmNsdWRlICJsaWJhdnV0aWwv Y2hhbm5lbF9sYXlvdXQuaCIKKyNpbmNsdWRlICJsaWJhdnV0aWwvZmxvYXRfZHNwLmgiCisjaW5j bHVkZSAibGliYXZ1dGlsL29wdC5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC9hdmFzc2VydC5oIgor I2luY2x1ZGUgImF1ZGlvLmgiCisjaW5jbHVkZSAiYXZmaWx0ZXIuaCIKKyNpbmNsdWRlICJmb3Jt YXRzLmgiCisjaW5jbHVkZSAiaW50ZXJuYWwuaCIKKworZW51bSBQcmVjaXNpb25UeXBlIHsKKyAg ICBQX0FVVE8gPSAtMSwKKyAgICBQX1NJTkdMRSwKKyAgICBQX0RPVUJMRSwKKyAgICBOQl9QVFlQ RVMsCit9OworCit0eXBlZGVmIHN0cnVjdCBTcGVha2VyIHsKKyAgICBkb3VibGUgcG9zaXRpb25b M107CisgICAgZG91YmxlIGRpc3RhbmNlOworICAgIGRvdWJsZSBnYWluOworfSBTcGVha2VyOwor Cit0eXBlZGVmIHN0cnVjdCBBdWRpb1NwYWNlQ29udGV4dCB7CisgICAgY29uc3QgQVZDbGFzcyAq Y2xhc3M7CisKKyAgICBkb3VibGUgcG9sYXJbM107CisgICAgaW50IHByZWNpc2lvbjsKKyAgICBp bnQgc2V0OworICAgIEFWQ2hhbm5lbExheW91dCBvdXRsYXlvdXQ7CisgICAgQVZGcmFtZSAqdzsK KworICAgIGRvdWJsZSBhLCBrLCBkbWF4OworICAgIGRvdWJsZSBibHVyOworICAgIGRvdWJsZSBy YWRpdXM7CisgICAgZG91YmxlIHJvbGxvZmY7CisgICAgZG91YmxlIHNvdXJjZVszXTsKKyAgICBk b3VibGUgcHJldl9zb3VyY2VbM107CisgICAgZG91YmxlIHJlZmVyZW5jZVszXTsKKyAgICBTcGVh a2VyICpzcGVha2VyczsKKworICAgIHZvaWQgKCpwcm9jZXNzKShBVkZpbHRlckNvbnRleHQgKmN0 eCwgQVZGcmFtZSAqaW4sIEFWRnJhbWUgKm91dCwgQVZGcmFtZSAqdyk7CisgICAgQVZGbG9hdERT UENvbnRleHQgKmZkc3A7Cit9IEF1ZGlvU3BhY2VDb250ZXh0OworCisjZGVmaW5lIE9GRlNFVCh4 KSBvZmZzZXRvZihBdWRpb1NwYWNlQ29udGV4dCx4KQorI2RlZmluZSBBRiBBVl9PUFRfRkxBR19B VURJT19QQVJBTXxBVl9PUFRfRkxBR19GSUxURVJJTkdfUEFSQU0KKyNkZWZpbmUgQUZUIEFWX09Q VF9GTEFHX0FVRElPX1BBUkFNfEFWX09QVF9GTEFHX0ZJTFRFUklOR19QQVJBTXxBVl9PUFRfRkxB R19SVU5USU1FX1BBUkFNCisKK3N0YXRpYyBjb25zdCBBVk9wdGlvbiBhc3BhY2Vfb3B0aW9uc1td ID0geworICAgIHsgImxheW91dCIsICJzZXQgdGhlIGxheW91dCBvZiBvdXRwdXQgYXVkaW8iLCBP RkZTRVQob3V0bGF5b3V0KSwgQVZfT1BUX1RZUEVfQ0hMQVlPVVQsIHsuc3RyPSJzdGVyZW8ifSwg MCwgMCwgQUZ9LAorICAgIHsgImEiLCAic2V0IHRoZSBhemltdXRoIG9mIHNvdXJjZSBhdWRpbyIs IE9GRlNFVChwb2xhclswXSksIEFWX09QVF9UWVBFX0RPVUJMRSwgey5kYmw9MC59LCAtMTgwLCAx ODAuMCwgQUZUIH0sCisgICAgeyAiZSIsICJzZXQgdGhlIGVsZXZhdGlvbiBvZiBzb3VyY2UgYXVk aW8iLCBPRkZTRVQocG9sYXJbMV0pLCBBVl9PUFRfVFlQRV9ET1VCTEUsIHsuZGJsPTAufSwgLTkw LjAsIDkwLjAsIEFGVCB9LAorICAgIHsgInIiLCAic2V0IHRoZSBkaXN0YW5jZSBvZiBzb3VyY2Ug YXVkaW8iLCBPRkZTRVQocG9sYXJbMl0pLCBBVl9PUFRfVFlQRV9ET1VCTEUsIHsuZGJsPTIufSwg MC4wLCBEQkxfTUFYLCBBRlQgfSwKKyAgICB7ICJiIiwgInNldCB0aGUgc3BhdGlhbCBibHVyIGZh Y3RvciIsIE9GRlNFVChibHVyKSwgQVZfT1BUX1RZUEVfRE9VQkxFLCB7LmRibD0wLjJ9LCAwLjAs IDEwMC4wLCBBRlQgfSwKKyAgICB7ICJvIiwgInNldCB0aGUgcm9sbG9mZiIsIE9GRlNFVChyb2xs b2ZmKSwgQVZfT1BUX1RZUEVfRE9VQkxFLCB7LmRibD0xOH0sIDAsIDkwLCBBRlQgfSwKKyAgICB7 ICJSIiwgInNldCB0aGUgZGlzdGFuY2Ugb2YgZWFjaCBzcGVha2VyIGluIHJlZ3VsYXIgbGF5b3V0 IiwgT0ZGU0VUKHJhZGl1cyksIEFWX09QVF9UWVBFX0RPVUJMRSwgey5kYmw9MX0sIDAuMSwgMTAw LCBBRiB9LAorICAgIHsgInByZWNpc2lvbiIsICJwcm9jZXNzaW5nIHByZWNpc2lvbiIsIE9GRlNF VChwcmVjaXNpb24pLCBBVl9PUFRfVFlQRV9JTlQsIHsuaTY0PVBfQVVUT30sIFBfQVVUTywgTkJf UFRZUEVTLTEsIEFGLCAicHJlIn0sCisgICAgeyAgICJhdXRvIiwgICAiYXV0byIsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAwLCBBVl9PUFRfVFlQRV9DT05TVCwgey5pNjQ9UF9BVVRPfSwg MCwgMCwgQUYsICJwcmUifSwKKyAgICB7ICAgImZsb2F0IiwgICJzaW5nbGUgZmxvYXRpbmctcG9p bnQgcHJlY2lzaW9uIiwgIDAsIEFWX09QVF9UWVBFX0NPTlNULCB7Lmk2ND1QX1NJTkdMRX0sIDAs IDAsIEFGLCAicHJlIn0sCisgICAgeyAgICJkb3VibGUiLCAiZG91YmxlIGZsb2F0aW5nLXBvaW50 IHByZWNpc2lvbiIgLCAwLCBBVl9PUFRfVFlQRV9DT05TVCwgey5pNjQ9UF9ET1VCTEV9LCAwLCAw LCBBRiwgInByZSJ9LAorICAgIHtOVUxMfQorfTsKKworc3RhdGljIGludCBxdWVyeV9mb3JtYXRz KEFWRmlsdGVyQ29udGV4dCAqY3R4KQoreworICAgIEF1ZGlvU3BhY2VDb250ZXh0ICpzID0gY3R4 LT5wcml2OworICAgIEFWRmlsdGVyRm9ybWF0cyAqZm9ybWF0cyA9IE5VTEw7CisgICAgQVZGaWx0 ZXJDaGFubmVsTGF5b3V0cyAqb3V0bGF5b3V0cyA9IE5VTEw7CisgICAgQVZGaWx0ZXJDaGFubmVs TGF5b3V0cyAqaW5sYXlvdXRzID0gTlVMTDsKKyAgICBBVkNoYW5uZWxMYXlvdXQgaW5sYXlvdXQg PSBBVl9DSEFOTkVMX0xBWU9VVF9NT05POworICAgIGludCByZXQgPSAwOworCisgICAgaWYgKHMt PnByZWNpc2lvbiA9PSBQX0FVVE8pIHsKKyAgICAgICAgcmV0ID0gZmZfYWRkX2Zvcm1hdCgmZm9y bWF0cywgQVZfU0FNUExFX0ZNVF9GTFRQKTsKKyAgICAgICAgaWYgKHJldCkKKyAgICAgICAgICAg IHJldHVybiByZXQ7CisgICAgICAgIHJldCA9IGZmX2FkZF9mb3JtYXQoJmZvcm1hdHMsIEFWX1NB TVBMRV9GTVRfREJMUCk7CisgICAgfSBlbHNlIGlmIChzLT5wcmVjaXNpb24gPT0gUF9TSU5HTEUp IHsKKyAgICAgICAgcmV0ID0gZmZfYWRkX2Zvcm1hdCgmZm9ybWF0cywgQVZfU0FNUExFX0ZNVF9G TFRQKTsKKyAgICB9IGVsc2UgaWYgKHMtPnByZWNpc2lvbiA9PSBQX0RPVUJMRSkgeworICAgICAg ICByZXQgPSBmZl9hZGRfZm9ybWF0KCZmb3JtYXRzLCBBVl9TQU1QTEVfRk1UX0RCTFApOworICAg IH0KKyAgICBpZiAocmV0KQorICAgICAgICByZXR1cm4gcmV0OworICAgIHJldCA9IGZmX3NldF9j b21tb25fZm9ybWF0cyhjdHgsIGZvcm1hdHMpOworICAgIGlmIChyZXQpCisgICAgICAgIHJldHVy biByZXQ7CisKKyAgICByZXQgPSBmZl9hZGRfY2hhbm5lbF9sYXlvdXQoJm91dGxheW91dHMsICZz LT5vdXRsYXlvdXQpOworICAgIGlmIChyZXQpCisgICAgICAgIHJldHVybiByZXQ7CisKKyAgICBy ZXQgPSBmZl9jaGFubmVsX2xheW91dHNfcmVmKG91dGxheW91dHMsICZjdHgtPm91dHB1dHNbMF0t PmluY2ZnLmNoYW5uZWxfbGF5b3V0cyk7CisgICAgaWYgKHJldCkKKyAgICAgICAgcmV0dXJuIHJl dDsKKworICAgIHJldCA9IGZmX2FkZF9jaGFubmVsX2xheW91dCgmaW5sYXlvdXRzLCAmaW5sYXlv dXQpOworICAgIGlmIChyZXQpCisgICAgICAgIHJldHVybiByZXQ7CisKKyAgICByZXQgPSBmZl9j aGFubmVsX2xheW91dHNfcmVmKGlubGF5b3V0cywgJmN0eC0+aW5wdXRzWzBdLT5vdXRjZmcuY2hh bm5lbF9sYXlvdXRzKTsKKyAgICBpZiAocmV0KQorICAgICAgICByZXR1cm4gcmV0OworCisgICAg cmV0dXJuIGZmX3NldF9jb21tb25fYWxsX3NhbXBsZXJhdGVzKGN0eCk7Cit9CisKKyNkZWZpbmUg REVQVEggMzIKKyNpbmNsdWRlICJhc3BhY2VfdGVtcGxhdGUuYyIKKworI3VuZGVmIERFUFRICisj ZGVmaW5lIERFUFRIIDY0CisjaW5jbHVkZSAiYXNwYWNlX3RlbXBsYXRlLmMiCisKK3N0YXRpYyBk b3VibGUgc3FyKGRvdWJsZSB4KQoreworICAgIHJldHVybiB4ICogeDsKK30KKworc3RhdGljIGlu dCBjb25maWdfb3V0cHV0KEFWRmlsdGVyTGluayAqb3V0bGluaykKK3sKKyAgICBBVkZpbHRlckNv bnRleHQgKmN0eCA9IG91dGxpbmstPnNyYzsKKyAgICBBdWRpb1NwYWNlQ29udGV4dCAqcyA9IGN0 eC0+cHJpdjsKKworICAgIHN3aXRjaCAocy0+cHJlY2lzaW9uKSB7CisgICAgY2FzZSBQX0FVVE86 CisgICAgICAgIHMtPnByb2Nlc3MgPSBvdXRsaW5rLT5mb3JtYXQgPT0gQVZfU0FNUExFX0ZNVF9G TFRQID8gcHJvY2Vzc19mbG9hdCA6IHByb2Nlc3NfZG91YmxlOworICAgICAgICBicmVhazsKKyAg ICBjYXNlIFBfU0lOR0xFOgorICAgICAgICBzLT5wcm9jZXNzID0gcHJvY2Vzc19mbG9hdDsKKyAg ICAgICAgYnJlYWs7CisgICAgY2FzZSBQX0RPVUJMRToKKyAgICAgICAgcy0+cHJvY2VzcyA9IHBy b2Nlc3NfZG91YmxlOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OiBhdl9hc3NlcnQwKDAp OworICAgIH0KKworICAgIGlmICghcy0+c3BlYWtlcnMpIHsKKyAgICAgICAgcy0+c3BlYWtlcnMg PSBhdl9jYWxsb2Mob3V0bGluay0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzLCBzaXplb2YoKnMtPnNw ZWFrZXJzKSk7CisgICAgICAgIGlmICghcy0+c3BlYWtlcnMpCisgICAgICAgICAgICByZXR1cm4g QVZFUlJPUihFTk9NRU0pOworICAgIH0KKworICAgIHMtPnNvdXJjZVswXSA9IHMtPnBvbGFyWzJd ICogY29zKHMtPnBvbGFyWzBdICogTV9QSSAvIDE4MC4wKSAqIGNvcyhzLT5wb2xhclsxXSAqIE1f UEkgLyAxODAuMCk7CisgICAgcy0+c291cmNlWzFdID0gcy0+cG9sYXJbMl0gKiBzaW4ocy0+cG9s YXJbMF0gKiBNX1BJIC8gMTgwLjApICogY29zKHMtPnBvbGFyWzFdICogTV9QSSAvIDE4MC4wKTsK KyAgICBzLT5zb3VyY2VbMl0gPSBzLT5wb2xhclsyXSAqIHNpbihzLT5wb2xhclsxXSAqIE1fUEkg LyAxODAuMCk7CisKKyAgICBtZW1jcHkocy0+cHJldl9zb3VyY2UsIHMtPnNvdXJjZSwgc2l6ZW9m KHMtPnByZXZfc291cmNlKSk7CisKKyAgICBzLT5yZWZlcmVuY2VbMF0gPSAwLjA7CisgICAgcy0+ cmVmZXJlbmNlWzFdID0gMC4wOworICAgIHMtPnJlZmVyZW5jZVsyXSA9IDAuMDsKKworICAgIGZv ciAoaW50IGNoID0gMDsgY2ggPCBvdXRsaW5rLT5jaF9sYXlvdXQubmJfY2hhbm5lbHM7IGNoKysp IHsKKyAgICAgICAgU3BlYWtlciAqc3BlYWtlciA9ICZzLT5zcGVha2Vyc1tjaF07CisgICAgICAg IGludCBjaGFuID0gYXZfY2hhbm5lbF9sYXlvdXRfY2hhbm5lbF9mcm9tX2luZGV4KCZvdXRsaW5r LT5jaF9sYXlvdXQsIGNoKTsKKyAgICAgICAgZG91YmxlIGF6aW0gPSAwLCBlbGV2ID0gMDsKKwor ICAgICAgICBzd2l0Y2ggKGNoYW4pIHsKKyAgICAgICAgY2FzZSBBVl9DSEFOX0ZST05UX0xFRlQ6 ICAgICAgICAgIGF6aW0gPSAgMzA7ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVZfQ0hBTl9G Uk9OVF9SSUdIVDogICAgICAgICBhemltID0gMzMwOyAgICAgIGJyZWFrOworICAgICAgICBjYXNl IEFWX0NIQU5fRlJPTlRfQ0VOVEVSOiAgICAgICAgYXppbSA9ICAgMDsgICAgICBicmVhazsKKyAg ICAgICAgY2FzZSBBVl9DSEFOX0xPV19GUkVRVUVOQ1k6CisgICAgICAgIGNhc2UgQVZfQ0hBTl9M T1dfRlJFUVVFTkNZXzI6ICAgICBhemltID0gMDsgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl IEFWX0NIQU5fQkFDS19MRUZUOiAgICAgICAgICAgYXppbSA9IDE1MDsgICAgICBicmVhazsKKyAg ICAgICAgY2FzZSBBVl9DSEFOX0JBQ0tfUklHSFQ6ICAgICAgICAgIGF6aW0gPSAyMTA7ICAgICAg YnJlYWs7CisgICAgICAgIGNhc2UgQVZfQ0hBTl9CQUNLX0NFTlRFUjogICAgICAgICBhemltID0g MTgwOyAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFWX0NIQU5fU0lERV9MRUZUOiAgICAgICAg ICAgYXppbSA9ICA5MDsgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBVl9DSEFOX1NJREVfUklH SFQ6ICAgICAgICAgIGF6aW0gPSAyNzA7ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVZfQ0hB Tl9GUk9OVF9MRUZUX09GX0NFTlRFUjogIGF6aW0gPSAgMTU7ICAgIGJyZWFrOworICAgICAgICBj YXNlIEFWX0NIQU5fRlJPTlRfUklHSFRfT0ZfQ0VOVEVSOiBhemltID0gMzQ1OyAgICBicmVhazsK KyAgICAgICAgY2FzZSBBVl9DSEFOX1RPUF9DRU5URVI6ICAgICAgICAgIGF6aW0gPSAgIDA7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGV2ID0gIDkwOyAgICAg IGJyZWFrOworICAgICAgICBjYXNlIEFWX0NIQU5fVE9QX0ZST05UX0xFRlQ6ICAgICAgYXppbSA9 ICAzMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZXYgPSAg NDU7ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVZfQ0hBTl9UT1BfRlJPTlRfQ0VOVEVSOiAg ICBhemltID0gICAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZWxldiA9ICA0NTsgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBVl9DSEFOX1RPUF9GUk9OVF9S SUdIVDogICAgIGF6aW0gPSAzMzA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBlbGV2ID0gIDQ1OyAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFWX0NIQU5fVE9Q X0JBQ0tfTEVGVDogICAgICAgYXppbSA9IDE1MDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGVsZXYgPSAgNDU7ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVZf Q0hBTl9UT1BfQkFDS19SSUdIVDogICAgICBhemltID0gMjEwOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZWxldiA9ICA0NTsgICAgICBicmVhazsKKyAgICAgICAg Y2FzZSBBVl9DSEFOX1RPUF9CQUNLX0NFTlRFUjogICAgIGF6aW0gPSAxODA7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGV2ID0gIDQ1OyAgICAgIGJyZWFrOwor ICAgICAgICBjYXNlIEFWX0NIQU5fV0lERV9MRUZUOiAgICAgICAgICAgYXppbSA9ICA5MDsgICAg ICBicmVhazsKKyAgICAgICAgY2FzZSBBVl9DSEFOX1dJREVfUklHSFQ6ICAgICAgICAgIGF6aW0g PSAyNzA7ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVZfQ0hBTl9TVVJST1VORF9ESVJFQ1Rf TEVGVDogIGF6aW0gPSAgOTA7ICAgIGJyZWFrOworICAgICAgICBjYXNlIEFWX0NIQU5fU1VSUk9V TkRfRElSRUNUX1JJR0hUOiBhemltID0gMjcwOyAgICBicmVhazsKKyAgICAgICAgY2FzZSBBVl9D SEFOX1NURVJFT19MRUZUOiAgICAgICAgIGF6aW0gPSAgOTA7ICAgICAgYnJlYWs7CisgICAgICAg IGNhc2UgQVZfQ0hBTl9TVEVSRU9fUklHSFQ6ICAgICAgICBhemltID0gMjcwOyAgICAgIGJyZWFr OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsK KyAgICAgICAgfQorCisgICAgICAgIHNwZWFrZXItPnBvc2l0aW9uWzBdID0gcy0+cmFkaXVzICog Y29zKGF6aW0gKiBNX1BJIC8gMTgwLjApICogY29zKGVsZXYgKiBNX1BJIC8gMTgwLjApOworICAg ICAgICBzcGVha2VyLT5wb3NpdGlvblsxXSA9IHMtPnJhZGl1cyAqIHNpbihhemltICogTV9QSSAv IDE4MC4wKSAqIGNvcyhlbGV2ICogTV9QSSAvIDE4MC4wKTsKKyAgICAgICAgc3BlYWtlci0+cG9z aXRpb25bMl0gPSBzLT5yYWRpdXMgKiBzaW4oZWxldiAqIE1fUEkgLyAxODAuMCk7CisKKyAgICAg ICAgcy0+cmVmZXJlbmNlWzBdICs9IHNwZWFrZXItPnBvc2l0aW9uWzBdOworICAgICAgICBzLT5y ZWZlcmVuY2VbMV0gKz0gc3BlYWtlci0+cG9zaXRpb25bMV07CisgICAgICAgIHMtPnJlZmVyZW5j ZVsyXSArPSBzcGVha2VyLT5wb3NpdGlvblsyXTsKKyAgICB9CisKKyAgICBzLT5yZWZlcmVuY2Vb MF0gLz0gb3V0bGluay0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzOworICAgIHMtPnJlZmVyZW5jZVsx XSAvPSBvdXRsaW5rLT5jaF9sYXlvdXQubmJfY2hhbm5lbHM7CisgICAgcy0+cmVmZXJlbmNlWzJd IC89IG91dGxpbmstPmNoX2xheW91dC5uYl9jaGFubmVsczsKKworICAgIHMtPmRtYXggPSAwLjA7 CisgICAgZm9yIChpbnQgY2ggPSAwOyBjaCA8IG91dGxpbmstPmNoX2xheW91dC5uYl9jaGFubmVs czsgY2grKykgeworICAgICAgICBTcGVha2VyICpzcGVha2VyID0gJnMtPnNwZWFrZXJzW2NoXTsK KyAgICAgICAgZG91YmxlIGRpc3RhbmNlOworCisgICAgICAgIGRpc3RhbmNlID0gc3FydChzcXIo c3BlYWtlci0+cG9zaXRpb25bMF0gLSBzLT5yZWZlcmVuY2VbMF0pICsKKyAgICAgICAgICAgICAg ICAgICAgICAgIHNxcihzcGVha2VyLT5wb3NpdGlvblsxXSAtIHMtPnJlZmVyZW5jZVsxXSkgKwor ICAgICAgICAgICAgICAgICAgICAgICAgc3FyKHNwZWFrZXItPnBvc2l0aW9uWzJdIC0gcy0+cmVm ZXJlbmNlWzJdKSk7CisKKyAgICAgICAgcy0+ZG1heCA9IGZtYXgocy0+ZG1heCwgZGlzdGFuY2Up OworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgaXBvc2l0 aW9uKGRvdWJsZSAqb3V0LCBjb25zdCBkb3VibGUgKmEsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGRvdWJsZSAqYiwgZG91YmxlIGYpCit7CisgICAgb3V0WzBdID0gYVswXSAr IChiWzBdIC0gYVswXSkgKiBmOworICAgIG91dFsxXSA9IGFbMV0gKyAoYlsxXSAtIGFbMV0pICog ZjsKKyAgICBvdXRbMl0gPSBhWzJdICsgKGJbMl0gLSBhWzJdKSAqIGY7Cit9CisKK3N0YXRpYyBp bnQgZmlsdGVyX2ZyYW1lKEFWRmlsdGVyTGluayAqaW5saW5rLCBBVkZyYW1lICppbikKK3sKKyAg ICBBVkZpbHRlckNvbnRleHQgKmN0eCA9IGlubGluay0+ZHN0OworICAgIEF1ZGlvU3BhY2VDb250 ZXh0ICpzID0gY3R4LT5wcml2OworICAgIEFWRmlsdGVyTGluayAqb3V0bGluayA9IGN0eC0+b3V0 cHV0c1swXTsKKyAgICBkb3VibGUgc2NhbGU7CisgICAgQVZGcmFtZSAqb3V0OworCisgICAgaWYg KCFzLT53IHx8IHMtPnctPm5iX3NhbXBsZXMgPCBpbi0+bmJfc2FtcGxlcykgeworICAgICAgICBh dl9mcmFtZV9mcmVlKCZzLT53KTsKKyAgICAgICAgcy0+dyA9IGZmX2dldF9hdWRpb19idWZmZXIo b3V0bGluaywgaW4tPm5iX3NhbXBsZXMpOworICAgICAgICBpZiAoIXMtPncpIHsKKyAgICAgICAg ICAgIGF2X2ZyYW1lX2ZyZWUoJmluKTsKKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01F TSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBvdXQgPSBmZl9nZXRfYXVkaW9fYnVmZmVyKG91 dGxpbmssIGluLT5uYl9zYW1wbGVzKTsKKyAgICBpZiAoIW91dCkgeworICAgICAgICBhdl9mcmFt ZV9mcmVlKCZpbik7CisgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7CisgICAgfQorICAg IGF2X2ZyYW1lX2NvcHlfcHJvcHMob3V0LCBpbik7CisKKyAgICBzLT5zb3VyY2VbMF0gPSBzLT5w b2xhclsyXSAqIGNvcyhzLT5wb2xhclswXSAqIE1fUEkgLyAxODAuMCkgKiBjb3Mocy0+cG9sYXJb MV0gKiBNX1BJIC8gMTgwLjApOworICAgIHMtPnNvdXJjZVsxXSA9IHMtPnBvbGFyWzJdICogc2lu KHMtPnBvbGFyWzBdICogTV9QSSAvIDE4MC4wKSAqIGNvcyhzLT5wb2xhclsxXSAqIE1fUEkgLyAx ODAuMCk7CisgICAgcy0+c291cmNlWzJdID0gcy0+cG9sYXJbMl0gKiBzaW4ocy0+cG9sYXJbMV0g KiBNX1BJIC8gMTgwLjApOworCisgICAgc2NhbGUgPSAxLjAgLyBvdXQtPm5iX3NhbXBsZXM7Cisg ICAgcy0+YSA9IHMtPnJvbGxvZmYgLyAoMjAuMCAqIGxvZzEwKDIuMCkpOworICAgIGZvciAoaW50 IG4gPSAwOyBuIDwgb3V0LT5uYl9zYW1wbGVzOyBuKyspIHsKKyAgICAgICAgZG91YmxlIHNvdXJj ZVszXTsKKyAgICAgICAgZG91YmxlIHAsIGRyczsKKworICAgICAgICBpZiAocy0+c2V0ICYmICFt ZW1jbXAocy0+cHJldl9zb3VyY2UsIHMtPnNvdXJjZSwgc2l6ZW9mKHMtPnNvdXJjZSkpKSB7Cisg ICAgICAgICAgICBzd2l0Y2ggKG91dGxpbmstPmZvcm1hdCkgeworICAgICAgICAgICAgY2FzZSBB Vl9TQU1QTEVfRk1UX0ZMVFA6CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY2ggPSAwOyBjaCA8 IG91dGxpbmstPmNoX2xheW91dC5uYl9jaGFubmVsczsgY2grKykgeworICAgICAgICAgICAgICAg ICAgICBTcGVha2VyICpzcGVha2VyID0gJnMtPnNwZWFrZXJzW2NoXTsKKyAgICAgICAgICAgICAg ICAgICAgY29uc3QgZmxvYXQgZ2FpbiA9IHNwZWFrZXItPmdhaW47CisKKyAgICAgICAgICAgICAg ICAgICAgZm9yIChpbnQgbiA9IDA7IG4gPCBvdXQtPm5iX3NhbXBsZXM7IG4rKykgeworICAgICAg ICAgICAgICAgICAgICAgICAgZmxvYXQgKncgPSAoZmxvYXQgKilzLT53LT5leHRlbmRlZF9kYXRh W2NoXTsKKworICAgICAgICAgICAgICAgICAgICAgICAgd1tuXSA9IGdhaW47CisgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgICAgICBjYXNlIEFWX1NBTVBMRV9GTVRfREJMUDoKKyAgICAgICAgICAgICAgICBmb3Ig KGludCBjaCA9IDA7IGNoIDwgb3V0bGluay0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzOyBjaCsrKSB7 CisgICAgICAgICAgICAgICAgICAgIFNwZWFrZXIgKnNwZWFrZXIgPSAmcy0+c3BlYWtlcnNbY2hd OworICAgICAgICAgICAgICAgICAgICBjb25zdCBkb3VibGUgZ2FpbiA9IHNwZWFrZXItPmdhaW47 CisKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgbiA9IDA7IG4gPCBvdXQtPm5iX3NhbXBs ZXM7IG4rKykgeworICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlICp3ID0gKGRvdWJsZSAq KXMtPnctPmV4dGVuZGVkX2RhdGFbY2hdOworCisgICAgICAgICAgICAgICAgICAgICAgICB3W25d ID0gZ2FpbjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAg YXZfYXNzZXJ0MCgwKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgIH0KKworICAgICAgICBpcG9zaXRpb24oc291cmNlLCBzLT5wcmV2X3NvdXJjZSwgcy0+c291 cmNlLCBuICogc2NhbGUpOworCisgICAgICAgIHMtPmsgPSAwLjA7CisgICAgICAgIGZvciAoaW50 IGNoID0gMDsgY2ggPCBvdXRsaW5rLT5jaF9sYXlvdXQubmJfY2hhbm5lbHM7IGNoKyspIHsKKyAg ICAgICAgICAgIFNwZWFrZXIgKnNwZWFrZXIgPSAmcy0+c3BlYWtlcnNbY2hdOworCisgICAgICAg ICAgICBzcGVha2VyLT5kaXN0YW5jZSA9IHNxcnQoc3FyKHNwZWFrZXItPnBvc2l0aW9uWzBdIC0g c291cmNlWzBdKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3FyKHNw ZWFrZXItPnBvc2l0aW9uWzFdIC0gc291cmNlWzFdKSArCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3FyKHNwZWFrZXItPnBvc2l0aW9uWzJdIC0gc291cmNlWzJdKSArIHNx cihzLT5ibHVyKSk7CisKKyAgICAgICAgICAgIHMtPmsgKz0gMS4wIC8gcG93KHNwZWFrZXItPmRp c3RhbmNlLCAyLjAgKiBzLT5hKTsKKyAgICAgICAgfQorCisgICAgICAgIGRycyA9IHNxcnQoc3Fy KHMtPnJlZmVyZW5jZVswXSAtIHNvdXJjZVswXSkgKworICAgICAgICAgICAgICAgICAgIHNxcihz LT5yZWZlcmVuY2VbMV0gLSBzb3VyY2VbMV0pICsKKyAgICAgICAgICAgICAgICAgICBzcXIocy0+ cmVmZXJlbmNlWzJdIC0gc291cmNlWzJdKSk7CisKKyAgICAgICAgcCA9IGZtaW4ocy0+ZG1heCAv IGRycywgMS4wKTsKKyAgICAgICAgcy0+ayA9IHBvdyhwLCAyLjAgKiBzLT5hKSAvIHNxcnQocy0+ ayk7CisKKyAgICAgICAgc3dpdGNoIChvdXRsaW5rLT5mb3JtYXQpIHsKKyAgICAgICAgY2FzZSBB Vl9TQU1QTEVfRk1UX0ZMVFA6CisgICAgICAgICAgICBmb3IgKGludCBjaCA9IDA7IGNoIDwgb3V0 bGluay0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzOyBjaCsrKSB7CisgICAgICAgICAgICAgICAgZmxv YXQgKncgPSAoZmxvYXQgKilzLT53LT5leHRlbmRlZF9kYXRhW2NoXTsKKyAgICAgICAgICAgICAg ICBTcGVha2VyICpzcGVha2VyID0gJnMtPnNwZWFrZXJzW2NoXTsKKworICAgICAgICAgICAgICAg IHdbbl0gPSBzLT5rIC8gcG93ZihzcGVha2VyLT5kaXN0YW5jZSwgcy0+YSk7CisgICAgICAgICAg ICAgICAgc3BlYWtlci0+Z2FpbiA9IHdbbl07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBi cmVhazsKKyAgICAgICAgY2FzZSBBVl9TQU1QTEVfRk1UX0RCTFA6CisgICAgICAgICAgICBmb3Ig KGludCBjaCA9IDA7IGNoIDwgb3V0bGluay0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzOyBjaCsrKSB7 CisgICAgICAgICAgICAgICAgZG91YmxlICp3ID0gKGRvdWJsZSAqKXMtPnctPmV4dGVuZGVkX2Rh dGFbY2hdOworICAgICAgICAgICAgICAgIFNwZWFrZXIgKnNwZWFrZXIgPSAmcy0+c3BlYWtlcnNb Y2hdOworCisgICAgICAgICAgICAgICAgd1tuXSA9IHMtPmsgLyBwb3coc3BlYWtlci0+ZGlzdGFu Y2UsIHMtPmEpOworICAgICAgICAgICAgICAgIHNwZWFrZXItPmdhaW4gPSB3W25dOworICAgICAg ICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg ICBhdl9hc3NlcnQwKDApOworICAgICAgICB9CisKKyAgICAgICAgcy0+c2V0ID0gMTsKKyAgICB9 CisKKyAgICBtZW1jcHkocy0+cHJldl9zb3VyY2UsIHMtPnNvdXJjZSwgc2l6ZW9mKHMtPnByZXZf c291cmNlKSk7CisKKyAgICBzLT5wcm9jZXNzKGN0eCwgaW4sIG91dCwgcy0+dyk7CisKKyAgICBh dl9mcmFtZV9mcmVlKCZpbik7CisgICAgcmV0dXJuIGZmX2ZpbHRlcl9mcmFtZShvdXRsaW5rLCBv dXQpOworfQorCitzdGF0aWMgYXZfY29sZCBpbnQgaW5pdChBVkZpbHRlckNvbnRleHQgKmN0eCkK K3sKKyAgICBBdWRpb1NwYWNlQ29udGV4dCAqcyA9IGN0eC0+cHJpdjsKKworICAgIHMtPmZkc3Ag PSBhdnByaXZfZmxvYXRfZHNwX2FsbG9jKDApOworICAgIGlmICghcy0+ZmRzcCkKKyAgICAgICAg cmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgYXZf Y29sZCB2b2lkIHVuaW5pdChBVkZpbHRlckNvbnRleHQgKmN0eCkKK3sKKyAgICBBdWRpb1NwYWNl Q29udGV4dCAqcyA9IGN0eC0+cHJpdjsKKworICAgIGF2X2ZyZWVwKCZzLT5mZHNwKTsKKyAgICBh dl9mcmVlcCgmcy0+c3BlYWtlcnMpOworICAgIGF2X2ZyYW1lX2ZyZWUoJnMtPncpOworfQorCitz dGF0aWMgY29uc3QgQVZGaWx0ZXJQYWQgaW5wdXRzW10gPSB7CisgICAgeworICAgICAgICAubmFt ZSAgICAgICAgID0gImRlZmF1bHQiLAorICAgICAgICAudHlwZSAgICAgICAgID0gQVZNRURJQV9U WVBFX0FVRElPLAorICAgICAgICAuZmlsdGVyX2ZyYW1lID0gZmlsdGVyX2ZyYW1lLAorICAgIH0s Cit9OworCitzdGF0aWMgY29uc3QgQVZGaWx0ZXJQYWQgb3V0cHV0c1tdID0geworICAgIHsKKyAg ICAgICAgLm5hbWUgICAgICAgICA9ICJkZWZhdWx0IiwKKyAgICAgICAgLnR5cGUgICAgICAgICA9 IEFWTUVESUFfVFlQRV9BVURJTywKKyAgICAgICAgLmNvbmZpZ19wcm9wcyA9IGNvbmZpZ19vdXRw dXQsCisgICAgfSwKK307CisKK0FWRklMVEVSX0RFRklORV9DTEFTUyhhc3BhY2UpOworCitjb25z dCBBVkZpbHRlciBmZl9hZl9hc3BhY2UgPSB7CisgICAgLm5hbWUgICAgICAgICAgICA9ICJhc3Bh Y2UiLAorICAgIC5kZXNjcmlwdGlvbiAgICAgPSBOVUxMX0lGX0NPTkZJR19TTUFMTCgiQXJiaXRy YXJ5IERpc3RhbmNlIEFtcGxpdHVkZSBQYW5uaW5nIiksCisgICAgLnByaXZfc2l6ZSAgICAgICA9 IHNpemVvZihBdWRpb1NwYWNlQ29udGV4dCksCisgICAgLnByaXZfY2xhc3MgICAgICA9ICZhc3Bh Y2VfY2xhc3MsCisgICAgLmluaXQgICAgICAgICAgICA9IGluaXQsCisgICAgLnVuaW5pdCAgICAg ICAgICA9IHVuaW5pdCwKKyAgICBGSUxURVJfUVVFUllfRlVOQyhxdWVyeV9mb3JtYXRzKSwKKyAg ICBGSUxURVJfSU5QVVRTKGlucHV0cyksCisgICAgRklMVEVSX09VVFBVVFMob3V0cHV0cyksCisg ICAgLnByb2Nlc3NfY29tbWFuZCA9IGZmX2ZpbHRlcl9wcm9jZXNzX2NvbW1hbmQsCit9OwpkaWZm IC0tZ2l0IGEvbGliYXZmaWx0ZXIvYWxsZmlsdGVycy5jIGIvbGliYXZmaWx0ZXIvYWxsZmlsdGVy cy5jCmluZGV4IDE2MTY2NjFhNmYuLmI3NTE2YmJkYmYgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVy L2FsbGZpbHRlcnMuYworKysgYi9saWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMKQEAgLTk0LDYgKzk0 LDcgQEAgZXh0ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX2FmX2FzaG93aW5mbzsKIGV4dGVybiBjb25z dCBBVkZpbHRlciBmZl9hZl9hc2lkZWRhdGE7CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfYWZf YXNpc2RyOwogZXh0ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX2FmX2Fzb2Z0Y2xpcDsKK2V4dGVybiBj b25zdCBBVkZpbHRlciBmZl9hZl9hc3BhY2U7CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfYWZf YXNwZWN0cmFsc3RhdHM7CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfYWZfYXNwbGl0OwogZXh0 ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX2FmX2FzcjsKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL2Fz cGFjZV90ZW1wbGF0ZS5jIGIvbGliYXZmaWx0ZXIvYXNwYWNlX3RlbXBsYXRlLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYWU4YjJhZDViYwotLS0gL2Rldi9udWxsCisr KyBiL2xpYmF2ZmlsdGVyL2FzcGFjZV90ZW1wbGF0ZS5jCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisg KiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCisgKgorICogRkZtcGVnIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2 ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKyAqCisgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBM aWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3 YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y LCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisgKi8KKworI2luY2x1ZGUgImF2ZmlsdGVyLmgi CisjaW5jbHVkZSAiaW50ZXJuYWwuaCIKKyNpbmNsdWRlICJhdWRpby5oIgorCisjdW5kZWYgZnR5 cGUKKyN1bmRlZiBTQU1QTEVfRk9STUFUCisjaWYgREVQVEggPT0gMzIKKyNkZWZpbmUgU0FNUExF X0ZPUk1BVCBmbG9hdAorI2RlZmluZSBmdHlwZSBmbG9hdAorI2Vsc2UKKyNkZWZpbmUgU0FNUExF X0ZPUk1BVCBkb3VibGUKKyNkZWZpbmUgZnR5cGUgZG91YmxlCisjZW5kaWYKKworI2RlZmluZSBm bjMoYSxiKSAgIGEjI18jI2IKKyNkZWZpbmUgZm4yKGEsYikgICBmbjMoYSxiKQorI2RlZmluZSBm bihhKSAgICAgIGZuMihhLCBTQU1QTEVfRk9STUFUKQorCitzdGF0aWMgdm9pZCBmbihwcm9jZXNz KShBVkZpbHRlckNvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgIEFWRnJhbWUg KmluLCBBVkZyYW1lICpvdXQsIEFWRnJhbWUgKncpCit7CisgICAgY29uc3QgaW50IG5iX2NoYW5u ZWxzID0gb3V0LT5jaF9sYXlvdXQubmJfY2hhbm5lbHM7CisgICAgY29uc3QgaW50IG5iX3NhbXBs ZXMgPSBGRkFMSUdOKGluLT5uYl9zYW1wbGVzLCAxNik7CisgICAgQXVkaW9TcGFjZUNvbnRleHQg KnMgPSBjdHgtPnByaXY7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG5iX2NoYW5uZWxzOyBp KyspIHsKKyNpZiBERVBUSCA9PSAzMgorICAgICAgICBzLT5mZHNwLT52ZWN0b3JfZm11bCgoZnR5 cGUgKilvdXQtPmV4dGVuZGVkX2RhdGFbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChjb25zdCBmdHlwZSAqKWluLT5leHRlbmRlZF9kYXRhWzBdLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoY29uc3QgZnR5cGUgKil3LT5leHRlbmRlZF9kYXRhW2ldLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBuYl9zYW1wbGVzKTsKKyNlbHNlCisgICAgICAgIHMtPmZkc3At PnZlY3Rvcl9kbXVsKChmdHlwZSAqKW91dC0+ZXh0ZW5kZWRfZGF0YVtpXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGNvbnN0IGZ0eXBlICopaW4tPmV4dGVuZGVkX2RhdGFbMF0sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCBmdHlwZSAqKXctPmV4dGVuZGVkX2Rh dGFbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5iX3NhbXBsZXMpOworI2VuZGlm CisgICAgfQorfQotLSAKMi40Mi4xCgo= --00000000000067d021060b86bc6f 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". --00000000000067d021060b86bc6f--