From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 154B74BBAF for <ffmpegdev@gitmailbox.com>; Wed, 2 Apr 2025 20:07:11 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 455CD68AD97; Wed, 2 Apr 2025 23:07:08 +0300 (EEST) Received: from mail-pg1-f172.google.com (mail-pg1-f172.google.com [209.85.215.172]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F11FC687D2A for <ffmpeg-devel@ffmpeg.org>; Wed, 2 Apr 2025 23:07:01 +0300 (EEST) Received: by mail-pg1-f172.google.com with SMTP id 41be03b00d2f7-af5085f7861so160073a12.3 for <ffmpeg-devel@ffmpeg.org>; Wed, 02 Apr 2025 13:07:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743624419; x=1744229219; darn=ffmpeg.org; h=message-id:in-reply-to:to:references:date:subject:mime-version :content-transfer-encoding:from:from:to:cc:subject:date:message-id :reply-to; bh=S9/KXaovf+Zfoo0hyzOEDeIDJXleLuEiZe+01SzV9uQ=; b=h2ZXjMX3SW4ZcQghDnqV4622pnYjaGi6JyOpC2xF3RqVHDaHthy3Y4bC7kDMKEAend XK50N6bLWc4W8hVxiiO7rUppdp0jUsXQPW2TxmbtS7Ci2B0vIYE0ZacNaOTfqXfbK6EZ RP6HKj0vLifvVb/HYOE5OVwvBkk9/1EM6ahq88XpkxMinIahr0PkCHhehoKJF32t9Iqm ADroC4SVAaLRETaNv4AJ4d9dyisP8ksbbG+usj5eHNLK0JcwJSRwsRv3p9CU8BrdMsmK hqrFJoaULoZNiuxFtQmWndkCPn+/896fiZFZlPQsxARHQBL7EDkE+Mr2trhrAMJ9nKPg O0RQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743624419; x=1744229219; h=message-id:in-reply-to:to:references:date:subject:mime-version :content-transfer-encoding:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=S9/KXaovf+Zfoo0hyzOEDeIDJXleLuEiZe+01SzV9uQ=; b=FMvgIQSBnJCuM1a1EIMBAhQvadZbPcoA+3NLurBiMjCAeoIaCtRtCIaOw3oRlLlaMC YcHFuzkXqy70E0aM4CB79qoGSu3sxpKscGBL6f0BbYRBfJsFcdsaQIGzwFqCyRYcovW+ 9aleZ8uXQ+SGRagANaAXL1NPyu6vhJWOayOhKosItPTlaiVNsU7gXX5lc0xXZdJ23/GJ zE3em919x/FCSiv/CK5zznncFtvWN/Po3R8WBHqvPrOeav0CQU2wZSgHGOWissnUmOlU Vn1LmFbCFZQV2Xgo1RN5N27P7RtkzLVjbuMb2pm9P92QKdUTWyJ3gdgzyWhbmwR4ef9m RfMA== X-Gm-Message-State: AOJu0YzltXqiFLs3MCsDNImKP91GraakfZgUkzSEguu4W5wOdWYle6YK NfCRfBr5BWRvulk7Yc6a8pbxwqmxp8A9yB7DRi4uxrWUhEHNOdnyX9q0Hw== X-Gm-Gg: ASbGncvauMbhzITbXaBnc7Vf0S7i81hjpzPM46dKqz1wPPUHSJR0qEmQ2zS+7mZnkjr wBivAyqbv8GW3c2CipAM1GDZ/hO4owD49MSoNglWTCcMV0i3osOk1vEYOAFMXWzX/FIY5yodc60 CdemTSNsabpko6Ssk8+D4iWZmGug/68qajYTU+nD6q2/QPY3he/4i1NSDFfnIcxDKNjcHyPJ9z/ I9W0Xa2GbGrU41YivNMbXR8nqzTFSEYABam/owF4tHNOkFr6Z1fwQVcu/v7ii9qrKgqApmWsg1/ ySOtvb43AOlL1CiD9fFnO7LKNjcdXMdZpqNn+IY4VOkMKLAPXK3t+A83iE/Y8jnMKnjXUShj/pp UIm8d+KQDDChqZl2rjZ2sD8PE0DqkTCJyufMNdNKTZg+MkuRDRl5cktyxvQ== X-Google-Smtp-Source: AGHT+IEJRPCgT2x+ikdW86qswtPWd9IAuCxNanNXE7pb6GhuxJmXSFg3IOytDbH3nDE45LY88JUpqA== X-Received: by 2002:a17:90b:2644:b0:2ff:62f3:5b19 with SMTP id 98e67ed59e1d1-3057cb3486amr102703a91.13.1743624418007; Wed, 02 Apr 2025 13:06:58 -0700 (PDT) Received: from smtpclient.apple ([2a00:79e1:2e00:5b01:b17c:9518:7af1:3252]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3057cb9500dsm40044a91.47.2025.04.02.13.06.56 for <ffmpeg-devel@ffmpeg.org> (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 02 Apr 2025 13:06:57 -0700 (PDT) From: Peter Xia <aattyy@gmail.com> Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.400.131.1.6\)) Date: Wed, 2 Apr 2025 13:06:46 -0700 References: <20250401102902.89332-1-aattyy@gmail.com> To: ffmpeg-devel@ffmpeg.org In-Reply-To: <20250401102902.89332-1-aattyy@gmail.com> Message-Id: <3AE673DA-FD00-4C99-9064-3A2A8D82C953@gmail.com> X-Mailer: Apple Mail (2.3826.400.131.1.6) Subject: Re: [FFmpeg-devel] [PATCH] avcodec/libwebpdec: Add libwebp WebP decoder. X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org> List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe> List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel> List-Post: <mailto:ffmpeg-devel@ffmpeg.org> List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help> List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe> Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/3AE673DA-FD00-4C99-9064-3A2A8D82C953@gmail.com/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> Q2FuIGFueW9uZSB0YWtlIGEgbG9vayBhdCB0aGlzPyBUaGlzIGlzIG15IGZpcnN0IHBhdGNoIHNv IG5vdCBlbnRpcmVseSBzdXJlIGFib3V0IHRoZSBwcm9jZXNzLgoKVGhhbmtzLApQZXRlcgoKPiBP biBBcHIgMSwgMjAyNSwgYXQgMzoyOeKAr0FNLCBQZXRlciBYaWEgPGFhdHR5eUBnbWFpbC5jb20+ IHdyb3RlOgo+IAo+IEFkZHMgc3VwcG9ydCBvZiBkZWNvZGluZyBhbmltYXRlZCB3ZWJwLgo+IAo+ IFNpZ25lZC1vZmYtYnk6IFBldGVyIFhpYSA8YWF0dHl5QGdtYWlsLmNvbT4KPiAtLS0KPiBDaGFu Z2Vsb2cgICAgICAgICAgICAgICAgIHwgICAxICsKPiBjb25maWd1cmUgICAgICAgICAgICAgICAg IHwgICA0ICstCj4gZG9jL2dlbmVyYWxfY29udGVudHMudGV4aSB8ICAgMiArLQo+IGxpYmF2Y29k ZWMvTWFrZWZpbGUgICAgICAgfCAgIDEgKwo+IGxpYmF2Y29kZWMvYWxsY29kZWNzLmMgICAgfCAg IDMgKy0KPiBsaWJhdmNvZGVjL2xpYndlYnBkZWMuYyAgIHwgMjAwICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCj4gbGliYXZjb2RlYy92ZXJzaW9uLmggICAgICB8ICAgMiAr LQo+IDcgZmlsZXMgY2hhbmdlZCwgMjA5IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4g Y3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMvbGlid2VicGRlYy5jCj4gCj4gZGlmZiAtLWdp dCBhL0NoYW5nZWxvZyBiL0NoYW5nZWxvZwo+IGluZGV4IGEwM2E3OWQxN2EuLjQ2MzVlMTZjMDUg MTAwNjQ0Cj4gLS0tIGEvQ2hhbmdlbG9nCj4gKysrIGIvQ2hhbmdlbG9nCj4gQEAgLTEyLDYgKzEy LDcgQEAgdmVyc2lvbiA8bmV4dD46Cj4gLSBBbmltYXRlZCBKUEVHIFhMIGVuY29kaW5nICh2aWEg bGlianhsKQo+IC0gVlZDIGluIE1hdHJvc2thCj4gLSBDRU5DIEFWMSBzdXBwb3J0IGluIE1QNCBt dXhlcgo+ICstIEFuaW1hdGVkIFdlYlAgZGVjb2RpbmcKPiAKPiB2ZXJzaW9uIDcuMToKPiAtIFJh dyBDYXB0aW9ucyB3aXRoIFRpbWUgKFJDV1QpIGNsb3NlZCBjYXB0aW9uIGRlbXV4ZXIKPiBkaWZm IC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCj4gaW5kZXggNDU1OTk2MmE0YS4uMjhhNTMy NjQxYiAxMDA3NTUKPiAtLS0gYS9jb25maWd1cmUKPiArKysgYi9jb25maWd1cmUKPiBAQCAtMzYx MSw2ICszNjExLDcgQEAgbGlidnB4X3ZwOV9lbmNvZGVyX2RlcHM9ImxpYnZweCIKPiBsaWJ2dmVu Y19lbmNvZGVyX2RlcHM9ImxpYnZ2ZW5jIgo+IGxpYndlYnBfZW5jb2Rlcl9kZXBzPSJsaWJ3ZWJw Igo+IGxpYndlYnBfYW5pbV9lbmNvZGVyX2RlcHM9ImxpYndlYnAiCj4gK2xpYndlYnBfZGVjb2Rl cl9kZXBzPSJsaWJ3ZWJwIgo+IGxpYngyNjJfZW5jb2Rlcl9kZXBzPSJsaWJ4MjYyIgo+IGxpYngy NjRfZW5jb2Rlcl9kZXBzPSJsaWJ4MjY0Igo+IGxpYngyNjRfZW5jb2Rlcl9zZWxlY3Q9ImF0c2Nf YTUzIGdvbG9tYiIKPiBAQCAtNzA4MSw3ICs3MDgyLDggQEAgZW5hYmxlZCBsaWJ2cHggICAgICAg ICAgICAmJiB7Cj4gZW5hYmxlZCBsaWJ2dmVuYyAgICAgICAgICAmJiByZXF1aXJlX3BrZ19jb25m aWcgbGlidnZlbmMgImxpYnZ2ZW5jID49IDEuNi4xIiAidnZlbmMvdnZlbmMuaCIgdnZlbmNfZ2V0 X3ZlcnNpb24KPiBlbmFibGVkIGxpYndlYnAgICAgICAgICAgICYmIHsKPiAgICAgZW5hYmxlZCBs aWJ3ZWJwX2VuY29kZXIgICAgICAmJiByZXF1aXJlX3BrZ19jb25maWcgbGlid2VicCAibGlid2Vi cCA+PSAwLjIuMCIgd2VicC9lbmNvZGUuaCBXZWJQR2V0RW5jb2RlclZlcnNpb24KPiAtICAgIGVu YWJsZWQgbGlid2VicF9hbmltX2VuY29kZXIgJiYgY2hlY2tfcGtnX2NvbmZpZyBsaWJ3ZWJwX2Fu aW1fZW5jb2RlciAibGlid2VicG11eCA+PSAwLjQuMCIgd2VicC9tdXguaCBXZWJQQW5pbUVuY29k ZXJPcHRpb25zSW5pdDsgfQo+ICsgICAgZW5hYmxlZCBsaWJ3ZWJwX2FuaW1fZW5jb2RlciAmJiBj aGVja19wa2dfY29uZmlnIGxpYndlYnBfYW5pbV9lbmNvZGVyICJsaWJ3ZWJwbXV4ID49IDAuNC4w IiB3ZWJwL211eC5oIFdlYlBBbmltRW5jb2Rlck9wdGlvbnNJbml0Cj4gKyAgICBlbmFibGVkIGxp YndlYnBfZGVjb2RlciAgICAgICYmIGNoZWNrX3BrZ19jb25maWcgbGlid2VicF9kZWNvZGVyICJs aWJ3ZWJwZGVtdXggPj0gMS41LjAiIHdlYnAvZGVtdXguaCBXZWJQQW5pbURlY29kZXJPcHRpb25z SW5pdEludGVybmFsOyB9Cj4gZW5hYmxlZCBsaWJ4MjY0ICAgICAgICAgICAmJiByZXF1aXJlX3Br Z19jb25maWcgbGlieDI2NCB4MjY0ICJzdGRpbnQuaCB4MjY0LmgiIHgyNjRfZW5jb2Rlcl9lbmNv ZGUgJiYKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVfY3BwX2NvbmRpdGlv biBsaWJ4MjY0IHgyNjQuaCAiWDI2NF9CVUlMRCA+PSAxNTUiICYmIHsKPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFsgIiR0b29sY2hhaW4iICE9ICJtc3ZjIiBdIHx8Cj4gZGlmZiAtLWdp dCBhL2RvYy9nZW5lcmFsX2NvbnRlbnRzLnRleGkgYi9kb2MvZ2VuZXJhbF9jb250ZW50cy50ZXhp Cj4gaW5kZXggNWZhZjg5ODE1Yi4uNGYxMGMzZTM0YSAxMDA2NDQKPiAtLS0gYS9kb2MvZ2VuZXJh bF9jb250ZW50cy50ZXhpCj4gKysrIGIvZG9jL2dlbmVyYWxfY29udGVudHMudGV4aQo+IEBAIC04 NTcsNyArODU3LDcgQEAgZm9sbG93aW5nIGltYWdlIGZvcm1hdHMgYXJlIHN1cHBvcnRlZDoKPiBA aXRlbSBXQk1QICAgICAgICAgQHRhYiBYIEB0YWIgWAo+ICAgICBAdGFiIFdpcmVsZXNzIEFwcGxp Y2F0aW9uIFByb3RvY29sIEJpdG1hcCBpbWFnZSBmb3JtYXQKPiBAaXRlbSBXZWJQICAgICAgICAg QHRhYiBFIEB0YWIgWAo+IC0gICAgQHRhYiBXZWJQIGltYWdlIGZvcm1hdCwgZW5jb2Rpbmcgc3Vw cG9ydGVkIHRocm91Z2ggZXh0ZXJuYWwgbGlicmFyeSBsaWJ3ZWJwCj4gKyAgICBAdGFiIFdlYlAg aW1hZ2UgZm9ybWF0LCBzdXBwb3J0ZWQgdGhyb3VnaCBleHRlcm5hbCBsaWJyYXJ5IGxpYndlYnAK PiBAaXRlbSBYQk0gIEB0YWIgWCBAdGFiIFgKPiAgICAgQHRhYiBYIEJpdE1hcCBpbWFnZSBmb3Jt YXQKPiBAaXRlbSBYRmFjZSBAdGFiIFggQHRhYiBYCj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMv TWFrZWZpbGUgYi9saWJhdmNvZGVjL01ha2VmaWxlCj4gaW5kZXggYjI0MjAxYjFhZi4uYzk2Mzdh MjExNCAxMDA2NDQKPiAtLS0gYS9saWJhdmNvZGVjL01ha2VmaWxlCj4gKysrIGIvbGliYXZjb2Rl Yy9NYWtlZmlsZQo+IEBAIC0xMTc5LDYgKzExNzksNyBAQCBPQkpTLSQoQ09ORklHX0xJQlZQWF9W UDlfRU5DT0RFUikgICAgICAgICArPSBsaWJ2cHhlbmMubwo+IE9CSlMtJChDT05GSUdfTElCVlZF TkNfRU5DT0RFUikgICAgICAgICAgICs9IGxpYnZ2ZW5jLm8KPiBPQkpTLSQoQ09ORklHX0xJQldF QlBfRU5DT0RFUikgICAgICAgICAgICArPSBsaWJ3ZWJwZW5jX2NvbW1vbi5vIGxpYndlYnBlbmMu bwo+IE9CSlMtJChDT05GSUdfTElCV0VCUF9BTklNX0VOQ09ERVIpICAgICAgICs9IGxpYndlYnBl bmNfY29tbW9uLm8gbGlid2VicGVuY19hbmltZW5jb2Rlci5vCj4gK09CSlMtJChDT05GSUdfTElC V0VCUF9ERUNPREVSKSAgICAgICAgICAgICs9IGxpYndlYnBkZWMubwo+IE9CSlMtJChDT05GSUdf TElCWDI2Ml9FTkNPREVSKSAgICAgICAgICAgICs9IGxpYngyNjQubwo+IE9CSlMtJChDT05GSUdf TElCWDI2NF9FTkNPREVSKSAgICAgICAgICAgICs9IGxpYngyNjQubwo+IE9CSlMtJChDT05GSUdf TElCWDI2NV9FTkNPREVSKSAgICAgICAgICAgICs9IGxpYngyNjUubwo+IGRpZmYgLS1naXQgYS9s aWJhdmNvZGVjL2FsbGNvZGVjcy5jIGIvbGliYXZjb2RlYy9hbGxjb2RlY3MuYwo+IGluZGV4IGYx MDUxOTYxN2UuLjVmOGY2ODIxMTEgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy9hbGxjb2RlY3Mu Ywo+ICsrKyBiL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMKPiBAQCAtODEwLDggKzgxMCw5IEBAIGV4 dGVybiBGRkNvZGVjIGZmX2xpYnZweF92cDlfZW5jb2RlcjsKPiBleHRlcm4gY29uc3QgRkZDb2Rl YyBmZl9saWJ2cHhfdnA5X2RlY29kZXI7Cj4gZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfbGlidnZl bmNfZW5jb2RlcjsKPiAvKiBwcmVmZXJyZWQgb3ZlciBsaWJ3ZWJwICovCj4gLWV4dGVybiBjb25z dCBGRkNvZGVjIGZmX2xpYndlYnBfYW5pbV9lbmNvZGVyOwo+IGV4dGVybiBjb25zdCBGRkNvZGVj IGZmX2xpYndlYnBfZW5jb2RlcjsKPiArZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfbGlid2VicF9h bmltX2VuY29kZXI7Cj4gK2V4dGVybiBjb25zdCBGRkNvZGVjIGZmX2xpYndlYnBfZGVjb2RlcjsK PiBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9saWJ4MjYyX2VuY29kZXI7Cj4gZXh0ZXJuIGNvbnN0 IEZGQ29kZWMgZmZfbGlieDI2NF9lbmNvZGVyOwo+IGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX2xp YngyNjRyZ2JfZW5jb2RlcjsKPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9saWJ3ZWJwZGVjLmMg Yi9saWJhdmNvZGVjL2xpYndlYnBkZWMuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXgg MDAwMDAwMDAwMC4uOWVjM2I2MDcwOQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9saWJhdmNvZGVj L2xpYndlYnBkZWMuYwo+IEBAIC0wLDAgKzEsMjAwIEBACj4gKy8qCj4gKyAqIExpYldlYlAgZGVj b2Rlcgo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjUgUGV0ZXIgWGlhCj4gKyAqCj4gKyAqIFRoaXMg ZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KPiArICoKPiArICogRkZtcGVnIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgo+ICsgKiBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCj4gKyAqIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgo+ICsg KiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KPiArICoKPiArICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4gKyAqIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCj4gKyAq IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4gKyAqCj4g KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMKPiArICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0 ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQo+ICsgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp biBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCj4gKyAqLwo+ ICsKPiArLyoqCj4gKyAqIEBmaWxlCj4gKyAqIExpYldlYlAgZGVjb2Rlcgo+ICsgKi8KPiArCj4g KyNpbmNsdWRlICJkZWNvZGUuaCIKPiArI2luY2x1ZGUgImNvZGVjX2ludGVybmFsLmgiCj4gKyNp bmNsdWRlICJsaWJhdnV0aWwvYXZ1dGlsLmgiCj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvb3B0Lmgi Cj4gKyNpbmNsdWRlICJsaWJhdmZvcm1hdC9hdmZvcm1hdC5oIgo+ICsjaW5jbHVkZSAibGliYXZm b3JtYXQvYXZpby5oIgo+ICsKPiArI2luY2x1ZGUgPHdlYnAvZGVtdXguaD4KPiArI2luY2x1ZGUg PHdlYnAvZGVjb2RlLmg+Cj4gKwo+ICt0eXBlZGVmIHN0cnVjdCBBbmltYXRlZFdlYlBDb250ZXh0 Cj4gK3sKPiArICAgIGNvbnN0IEFWQ2xhc3MgKmNsYXNzOwo+ICsgICAgV2ViUEFuaW1EZWNvZGVy T3B0aW9ucyBkZWNfb3B0aW9uczsKPiArICAgIFdlYlBBbmltRGVjb2RlciAqZGVjOwo+ICsgICAg QVZCdWZmZXJSZWYgKmZpbGVfY29udGVudDsKPiArICAgIFdlYlBEYXRhIHdlYnBfZGF0YTsgLy8g cmVmZXJlbmNlcyB8ZmlsZV9jb250ZW50fAo+ICsgICAgdWludDMyX3QgbG9vcF90b19zZW5kOwo+ ICsgICAgdWludDMyX3QgbG9vcF9zZW50Owo+ICsKPiArICAgIC8vIC0tLSBPcHRpb25zIC0tLQo+ ICsgICAgaW50IGlnbm9yZV9sb29wOwo+ICt9IEFuaW1hdGVkV2ViUENvbnRleHQ7Cj4gKwo+ICsv LyBJbml0aWFsaXplIHRoZSBkZWNvZGVyIGNvbnRleHQKPiArc3RhdGljIGF2X2NvbGQgaW50IGRl Y29kZV9saWJ3ZWJwX2luaXQoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQo+ICt7Cj4gKyAgICBBbmlt YXRlZFdlYlBDb250ZXh0ICpzID0gYXZjdHgtPnByaXZfZGF0YTsKPiArCj4gKyAgICBpZiAoIVdl YlBBbmltRGVjb2Rlck9wdGlvbnNJbml0KCZzLT5kZWNfb3B0aW9ucykpCj4gKyAgICB7Cj4gKyAg ICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfREVCVUcsICJDYW5ub3QgaW5pdGlhbGl6ZSBXZWJQ QW5pbURlY29kZXJPcHRpb25zXG4iKTsKPiArICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0p Owo+ICsgICAgfQo+ICsgICAgcy0+ZGVjX29wdGlvbnMuY29sb3JfbW9kZSA9IE1PREVfUkdCQTsK PiArICAgIHMtPmRlY19vcHRpb25zLnVzZV90aHJlYWRzID0gMTsKPiArICAgIHMtPmZpbGVfY29u dGVudCA9IE5VTEw7Cj4gKyAgICBzLT5sb29wX3NlbnQgPSAwOwo+ICsKPiArICAgIGF2Y3R4LT5w aXhfZm10ID0gQVZfUElYX0ZNVF9SR0JBOwo+ICsgICAgYXZjdHgtPnBrdF90aW1lYmFzZSA9IGF2 X21ha2VfcSgxLCAxMDAwKTsKPiArICAgIGF2Y3R4LT5mcmFtZXJhdGUgPSBhdl9tYWtlX3EoMSwg MCk7Cj4gKwo+ICsgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfREVCVUcsICJBbmltYXRlZCBXZWJQ IGRlY29kZXIgaW5pdGlhbGl6ZWQuXG4iKTsKPiArICAgIHJldHVybiAwOyAvLyBTdWNjZXNzCj4g K30KPiArCj4gKy8vIERlY29kZSBvbmUgZnJhbWUgb2YgdGhlIGFuaW1hdGVkIFdlYlAKPiArLy8g VGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBieSBGRm1wZWcuCj4g Ky8vIFRoZSBmaXJzdCBjYWxsIHJlY2VpdmVzIHRoZSBBVlBhY2tldCB3aXRoIHRoZSBmdWxsIFdl YlAgZmlsZS4KPiArLy8gU3Vic2VxdWVudCBjYWxscyByZWNlaXZlIGVtcHR5IEFWUGFja2V0IHVu dGlsIGFsbCBmcmFtZXMgYXJlIGRlY29kZWQuCj4gK3N0YXRpYyBpbnQgZGVjb2RlX2xpYndlYnBf ZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1lICpwLAo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCAqZ290X2ZyYW1lLCBBVlBhY2tldCAqYXZwa3QpCj4gK3sK PiArICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0lORk8sICJkZWNvZGVfbGlid2VicF9mcmFtZSgp XG4iKTsKPiArCj4gKyAgICBXZWJQQW5pbUluZm8gYW5pbV9pbmZvOwo+ICsgICAgdWludDhfdCAq ZnJhbWVfcmdiYTsKPiArICAgIGludCB0aW1lc3RhbXBfbXM7Cj4gKwo+ICsgICAgQW5pbWF0ZWRX ZWJQQ29udGV4dCAqcyA9IGF2Y3R4LT5wcml2X2RhdGE7Cj4gKyAgICBpbnQgcmV0ID0gYXZwa3Qt PnNpemU7Cj4gKwo+ICsgICAgLy8gSW5pdGlhbGl6YXRpb24gUGhhc2UgKEZpcnN0IENhbGwpCj4g KyAgICAvLyB8YXZwa3R8IGNvbnRhaW5zIHRoZSBlbnRpcmUgZmlsZS4KPiArICAgIGlmICghcy0+ ZGVjKQo+ICsgICAgewo+ICsgICAgICAgIGlmICghYXZwa3QgfHwgYXZwa3QtPnNpemUgPD0gMCkK PiArICAgICAgICB7Cj4gKyAgICAgICAgICAgIC8vIFNob3VsZCBub3QgaGFwcGVuIG9uIHRoZSBm aXJzdCBjYWxsLCBidXQgY2hlY2sgYW55d2F5Lgo+ICsgICAgICAgICAgICBhdl9sb2coYXZjdHgs IEFWX0xPR19FUlJPUiwgIk5vIGlucHV0IGRhdGEgcHJvdmlkZWQgb24gZmlyc3QgY2FsbC5cbiIp Owo+ICsgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFSU5WQUwpOwo+ICsgICAgICAgIH0KPiAr Cj4gKyAgICAgICAgLy8gU3RvcmUgZW50aXJlIFdlYlAgZmlsZSBpbiBtZW1vcnkuCj4gKyAgICAg ICAgcy0+ZmlsZV9jb250ZW50ID0gYXZfYnVmZmVyX3JlZihhdnBrdC0+YnVmKTsKPiArICAgICAg ICBzLT53ZWJwX2RhdGEuYnl0ZXMgPSBzLT5maWxlX2NvbnRlbnQtPmRhdGE7Cj4gKyAgICAgICAg cy0+d2VicF9kYXRhLnNpemUgPSBzLT5maWxlX2NvbnRlbnQtPnNpemU7Cj4gKwo+ICsgICAgICAg IHMtPmRlYyA9IFdlYlBBbmltRGVjb2Rlck5ldygmcy0+d2VicF9kYXRhLCAmcy0+ZGVjX29wdGlv bnMpOwo+ICsgICAgICAgIGlmICghcy0+ZGVjKQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAg YXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJFcnJvciBjcmVhdGluZyBXZWJQQW5pbURlY29k ZXIuXG4iKTsKPiArICAgICAgICAgICAgYXZfYnVmZmVyX3VucmVmKCZzLT5maWxlX2NvbnRlbnQp Owo+ICsgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+ICsgICAgICAgIH0KPiAr Cj4gKyAgICAgICAgV2ViUEFuaW1EZWNvZGVyR2V0SW5mbyhzLT5kZWMsICZhbmltX2luZm8pOwo+ ICsKPiArICAgICAgICBzLT5sb29wX3RvX3NlbmQgPSBzLT5pZ25vcmVfbG9vcCA/IDEgOiBhbmlt X2luZm8ubG9vcF9jb3VudDsKPiArICAgICAgICBhdmN0eC0+d2lkdGggPSBhbmltX2luZm8uY2Fu dmFzX3dpZHRoOwo+ICsgICAgICAgIGF2Y3R4LT5jb2RlZF93aWR0aCA9IGFuaW1faW5mby5jYW52 YXNfd2lkdGg7Cj4gKyAgICAgICAgYXZjdHgtPmhlaWdodCA9IGFuaW1faW5mby5jYW52YXNfaGVp Z2h0Owo+ICsgICAgICAgIGF2Y3R4LT5jb2RlZF9oZWlnaHQgPSBhbmltX2luZm8uY2FudmFzX2hl aWdodDsKPiArICAgICAgICBhdmN0eC0+ZnJhbWVyYXRlID0gYXZfbWFrZV9xKDEsIDApOwo+ICsg ICAgfQo+ICsKPiArICAgIGlmICghV2ViUEFuaW1EZWNvZGVySGFzTW9yZUZyYW1lcyhzLT5kZWMp KQo+ICsgICAgewo+ICsgICAgICAgIHMtPmxvb3Bfc2VudCsrOwo+ICsgICAgICAgIFdlYlBBbmlt RGVjb2RlclJlc2V0KHMtPmRlYyk7Cj4gKyAgICB9Cj4gKwo+ICsgICAgaWYgKHMtPmxvb3Bfc2Vu dCA+PSBzLT5sb29wX3RvX3NlbmQpCj4gKyAgICB7Cj4gKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBB Vl9MT0dfREVCVUcsICJFbmQgb2YgYW5pbWF0ZWQgV2ViUCBzdHJlYW0uXG4iKTsKPiArICAgICAg ICByZXR1cm4gQVZFUlJPUl9FT0Y7Cj4gKyAgICB9Cj4gKwo+ICsKPiArICAgIGlmICghV2ViUEFu aW1EZWNvZGVyR2V0TmV4dChzLT5kZWMsICZmcmFtZV9yZ2JhLCAmdGltZXN0YW1wX21zKSkKPiAr ICAgIHsKPiArICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkVycm9yIGdldHRp bmcgbmV4dCBmcmFtZSBmcm9tIFdlYlBBbmltRGVjb2Rlci5cbiIpOwo+ICsgICAgICAgIHJldHVy biBBVkVSUk9SKEVJTlZBTCk7Cj4gKyAgICB9Cj4gKwo+ICsgICAgcmV0ID0gZmZfZ2V0X2J1ZmZl cihhdmN0eCwgcCwgMCk7Cj4gKyAgICBpZiAocmV0KQo+ICsgICAgewo+ICsgICAgICAgIGF2X2xv ZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIGFsbG9jYXRlZCBidWZmZXIuXG4iKTsK PiArICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+ICsgICAgfQo+ICsKPiArICAgIHAt PndpZHRoID0gYXZjdHgtPndpZHRoOwo+ICsgICAgcC0+aGVpZ2h0ID0gYXZjdHgtPmhlaWdodDsK PiArICAgIHAtPmZvcm1hdCA9IEFWX1BJWF9GTVRfUkdCQTsKPiArICAgIHAtPnB0cyA9IHRpbWVz dGFtcF9tczsKPiArICAgIHAtPnBrdF9kdHMgPSAwOwo+ICsgICAgcC0+cGljdF90eXBlID0gQVZf UElDVFVSRV9UWVBFX0k7Cj4gKwo+ICsgICAgbWVtY3B5KHAtPmRhdGFbMF0sIGZyYW1lX3JnYmEs IHAtPndpZHRoICogcC0+aGVpZ2h0ICogNCk7Cj4gKwo+ICsgICAgKmdvdF9mcmFtZSA9IDE7Cj4g KyAgICByZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgYXZfY29sZCBpbnQgZGVjb2RlX2xp YndlYnBfY2xvc2UoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQo+ICt7Cj4gKyAgICBBbmltYXRlZFdl YlBDb250ZXh0ICpzID0gYXZjdHgtPnByaXZfZGF0YTsKPiArICAgIGF2X2J1ZmZlcl91bnJlZigm cy0+ZmlsZV9jb250ZW50KTsKPiArICAgIGlmIChzLT5kZWMpCj4gKyAgICB7Cj4gKyAgICAgICAg V2ViUEFuaW1EZWNvZGVyRGVsZXRlKHMtPmRlYyk7Cj4gKyAgICAgICAgcy0+ZGVjID0gTlVMTDsK PiArICAgIH0KPiArICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3QgQVZPcHRp b24gb3B0aW9uc1tdID0gewo+ICsgICAgeyJpZ25vcmVfbG9vcCIsICJpZ25vcmUgbG9vcCBzZXR0 aW5nIChuZXRzY2FwZSBleHRlbnNpb24pIiwgb2Zmc2V0b2YoQW5pbWF0ZWRXZWJQQ29udGV4dCwg aWdub3JlX2xvb3ApLCBBVl9PUFRfVFlQRV9CT09MLCB7Lmk2NCA9IDF9LCAwLCAxLCBBVl9PUFRf RkxBR19ERUNPRElOR19QQVJBTX0sCj4gKyAgICB7TlVMTH19Owo+ICsKPiArc3RhdGljIGNvbnN0 IEFWQ2xhc3MgbGlid2VicF9kZWNvZGVyX2NsYXNzID0gewo+ICsgICAgLmNsYXNzX25hbWUgPSAi bGlid2VicF9kZWNvZGVyIiwKPiArICAgIC5pdGVtX25hbWUgPSBhdl9kZWZhdWx0X2l0ZW1fbmFt ZSwKPiArICAgIC5vcHRpb24gPSBvcHRpb25zLAo+ICsgICAgLnZlcnNpb24gPSBMSUJBVlVUSUxf VkVSU0lPTl9JTlQsCj4gKyAgICAuY2F0ZWdvcnkgPSBBVl9DTEFTU19DQVRFR09SWV9ERUNPREVS LAo+ICt9Owo+ICsKPiArLy8gRGVmaW5lIHRoZSBBVkNvZGVjIHN0cnVjdHVyZSBmb3IgRkZtcGVn Cj4gK2NvbnN0IEZGQ29kZWMgZmZfbGlid2VicF9kZWNvZGVyID0gewo+ICsgICAgLnAubmFtZSAg ICAgICAgID0gImxpYndlYnAiLAo+ICsgICAgQ09ERUNfTE9OR19OQU1FKCJsaWJ3ZWJwIGltYWdl L2FuaW1hdGlvbiBkZWNvZGVyIiksCj4gKyAgICAucC50eXBlICAgICAgICAgPSBBVk1FRElBX1RZ UEVfVklERU8sCj4gKyAgICAucC5pZCAgICAgICAgICAgPSBBVl9DT0RFQ19JRF9XRUJQLAo+ICsg ICAgLnAucHJpdl9jbGFzcyAgID0gJmxpYndlYnBfZGVjb2Rlcl9jbGFzcywKPiArICAgIC5wcml2 X2RhdGFfc2l6ZSA9IHNpemVvZihBbmltYXRlZFdlYlBDb250ZXh0KSwKPiArICAgIC5wLndyYXBw ZXJfbmFtZSA9ICJsaWJ3ZWJwIiwKPiArICAgIC5pbml0ICAgICAgICAgICA9IGRlY29kZV9saWJ3 ZWJwX2luaXQsCj4gKyAgICBGRl9DT0RFQ19ERUNPREVfQ0IoZGVjb2RlX2xpYndlYnBfZnJhbWUp LAo+ICsgICAgLmNsb3NlICAgICAgICAgID0gZGVjb2RlX2xpYndlYnBfY2xvc2UsCj4gKyAgICAu cC5jYXBhYmlsaXRpZXMgPSBBVl9DT0RFQ19DQVBfRFIxIHwgQVZfQ09ERUNfQ0FQX0RFTEFZLAo+ ICt9Owo+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3ZlcnNpb24uaCBiL2xpYmF2Y29kZWMvdmVy c2lvbi5oCj4gaW5kZXggOGMzZDQ3NjAwMy4uNTk1NzAwOTQ1NyAxMDA2NDQKPiAtLS0gYS9saWJh dmNvZGVjL3ZlcnNpb24uaAo+ICsrKyBiL2xpYmF2Y29kZWMvdmVyc2lvbi5oCj4gQEAgLTI5LDcg KzI5LDcgQEAKPiAKPiAjaW5jbHVkZSAidmVyc2lvbl9tYWpvci5oIgo+IAo+IC0jZGVmaW5lIExJ QkFWQ09ERUNfVkVSU0lPTl9NSU5PUiAgIDAKPiArI2RlZmluZSBMSUJBVkNPREVDX1ZFUlNJT05f TUlOT1IgICAxCj4gI2RlZmluZSBMSUJBVkNPREVDX1ZFUlNJT05fTUlDUk8gMTAwCj4gCj4gI2Rl ZmluZSBMSUJBVkNPREVDX1ZFUlNJT05fSU5UICBBVl9WRVJTSU9OX0lOVChMSUJBVkNPREVDX1ZF UlNJT05fTUFKT1IsIFwKPiAtLSAKPiAyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCj4gCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFp bGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJv dmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0 ICJ1bnN1YnNjcmliZSIuCg==