From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id ACC8B4E3A4 for ; Wed, 9 Jul 2025 13:28:24 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id B602E68F6F2; Wed, 9 Jul 2025 16:28:19 +0300 (EEST) Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 9CC8468F6E9 for ; Wed, 9 Jul 2025 16:28:13 +0300 (EEST) Received: by mail-ej1-f47.google.com with SMTP id a640c23a62f3a-adfb562266cso890396666b.0 for ; Wed, 09 Jul 2025 06:28:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752067693; x=1752672493; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=nfseW4Zrl7Q4+j+oh1Q2QWNVKPrPzmeq7QJ2RV+JBx8=; b=VKX6Xk9owjaCauSRsFyjc1+0zroDkEFNmWkX1Qf6fsjIJgh4OvbyDfStDS4atEgbI/ qKgyXvLfl2+S5qVjwvW/JzyDO2ziL5kk+PKaOIYb/j6S/eqX09jHgygY0Pas7JQQIkIG KGAdXJtPAbiRqus6mgChtgcILPxDWwJr8S1f0wcQqtooJ3y6QeRehAEX+9LUJki8Q1ol qRZTesQb/sS1FozvD2FC0LamfPS8u2I/LFlSKm+yV5gFlltNhr6zx5k+Zw8tSfRNONIt A3T3MYGU+st9/3Noc4Rbkbwh18RUVTWAHJe/PrJh9R8DpRrScD+1JbXlCMw688uErxtQ XkWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752067693; x=1752672493; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nfseW4Zrl7Q4+j+oh1Q2QWNVKPrPzmeq7QJ2RV+JBx8=; b=kUkGC1+2PlRb20HMTEJIsGrxpLkLdTWrQiiD+nbvsiQqXKL9E09g4EUOrfc2bgSRSK Q3/5EcfbDSdGhxh+tOYEcrusiJzvo2v1vvjjDV2nkcD4YkcmYOTId+D3yR0EwmIuEZXB V6l2UjJuWwtB+2Ae1w07GvpSDONi0MgvzzNajL0IJ4cdYatCuuBR/bFmwSbjbggxQpdU N0ESnU6j+X8DlcmBMieRxbYLLYjrdhLDFfOKSSTak4JGRuirLA6C6/0n0sCYdAx0Av5t sx9n7Z16yuhqAPFX1b97SX3Dno0ZFqOzr6iNgQWTRTRwsdwGLfCPr6ozZESoRyW1jLaX 0Meg== X-Gm-Message-State: AOJu0YxFOPwxnhf1iloM+qR0dF4rwN0pA7nWu7qs67vd97SUOGcjJ7jF c25CmnAWNCVV20jVTwizzU9nx9cQxmcAJCbwD1PhmauMTh+OJsHFMYZjIIKoDg== X-Gm-Gg: ASbGncu8Lwhb8ILbhrH7lEnDn4AUDdOtJwkm87b0gQUWGWlLuvaTtoQOjgyMvGbqCUN iPjoimBS6uLU3yA54Y7jMETzMTpOsE4jbu8SUnO9D3+5ClH082d3j0OkCaSk/T1jX1iAcfW4DXN svlw1+MeoY2tciQ1MtlOSebl6bl4K4YHSnmOE7p2ZSrJJNoeUA0nqI6+VRcm5PxsDrYKtoL1ubp dh00a80m+X7y8gX7ulFEmR6LvAVFVuxG7kRfWzBh7eaF8veniK4SWuli+dGQsk6+n+WsdmbgaNG ozAtcId9WSEaZ5HgLJtZsc1WpAL9yR3KH9Z6XD7sImHs5qx99nagF51/LMf1FeM/yYrRPs0pTwK GL4rOOR7YGAw8WT2IJZ9Bsi6JkfksZzOLXNx8rXXVJLS2hjrr/HwYEDh2NQW48vJV1x9PJAbmHc 6G X-Google-Smtp-Source: AGHT+IFEt5PMDMlqA0gEDuFpFNLX8s6mqii5tD84pbRiwYdnEKiTTnEqM6sl5nbbbFtDSb8DJ5P1Hg== X-Received: by 2002:a17:907:1c1e:b0:ae0:ce40:11c6 with SMTP id a640c23a62f3a-ae6cf5fef94mr265324566b.21.1752067692489; Wed, 09 Jul 2025 06:28:12 -0700 (PDT) Received: from [192.168.178.143] (p200301023701fa00258573ace0251429.dip0.t-ipconnect.de. [2003:102:3701:fa00:2585:73ac:e025:1429]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ae3f6b04d30sm1097546366b.133.2025.07.09.06.28.11 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 09 Jul 2025 06:28:12 -0700 (PDT) From: Marvin Scholz To: FFmpeg development discussions and patches Date: Wed, 09 Jul 2025 15:28:11 +0200 X-Mailer: MailMate Free Mode (2.0r6222) Message-ID: <58A60C03-FDE5-4926-8F15-9CD8BAEBBE25@gmail.com> In-Reply-To: References: <20250708191412.68722-1-epirat07@gmail.com> MIME-Version: 1.0 Subject: Re: [FFmpeg-devel] [RFC PATCH] avformat: remove HLS protocol 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: CgpPbiA5IEp1bCAyMDI1LCBhdCAxMToxOCwgU3RldmVuIExpdSB3cm90ZToKCj4gTWFydmluIFNj aG9seiA8ZXBpcmF0MDctYXQtZ21haWwuY29tQGZmbXBlZy5vcmc+IOS6jjIwMjXlubQ35pyIOeaX peWRqOS4iSAwMzoxNOWGmemBk++8mgo+IEhpIE1hcnZpbiwKPgo+Pgo+PiBUaGUgdXNlIG9mIHRo aXMgcHJvdG9jb2wgd2FzIGFscmVhZHkgZGlzY291cmFnZWQgYW5kIHdhcm5lZCBhYm91dAo+PiBm b3IgeWVhcnMgd2l0aCB0aGUgcmVjb21tZW5kYXRpb24gdG8gdXNlIHRoZSBITFMgZGVtdXhlciBp bnN0ZWFkLgo+IFdoYXQgYWJvdXQgbWFrZSBkZXByZWNhdGVkIHdhcm5pbmcgdG8gdXNlcnMgYW5k IHJlbW92ZSBpdCBuZXh0IG1ham9yIHZlcnNpb24/CgpZb3UgbWVhbiBjaGFuZ2UgdGhlIGRpc2Nv dXJhZ2VkIHRvIGRlcHJlY2F0ZWQ/IFdlIGNvdWxkIGRvIHRoYXQgYnV0IElNSE8KdGhlIHByZXZp b3VzIG1lc3NhZ2Ugd2FzIHF1aXRlIGNsZWFyIGl0IHNob3VsZG4ndCBiZSB1c2VkIGFueW1vcmUu CgpCdXQgSSBkb24ndCBtaW5kIHdhaXRpbmcgYW5vdGhlciB5ZWFyIGZvciB0aGlzIHRpbGwgbmV4 dCBtYWpvcgpidW1wIGFmdGVyIDguMCwgaWYgdGhhdHMgd2hhdCBwZW9wbGUgcHJlZmVyLgoKPj4g LS0tCj4+ICBkb2MvcHJvdG9jb2xzLnRleGkgICAgICB8ICAyMCAtLS0KPj4gIGxpYmF2Zm9ybWF0 L01ha2VmaWxlICAgIHwgICAyIC0KPj4gIGxpYmF2Zm9ybWF0L2hsc3Byb3RvLmMgIHwgMzE4IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gIGxpYmF2Zm9ybWF0L3By b3RvY29scy5jIHwgICAxIC0KPj4gIDQgZmlsZXMgY2hhbmdlZCwgMzQxIGRlbGV0aW9ucygtKQo+ PiAgZGVsZXRlIG1vZGUgMTAwNjQ0IGxpYmF2Zm9ybWF0L2hsc3Byb3RvLmMKPj4KPj4gZGlmZiAt LWdpdCBhL2RvYy9wcm90b2NvbHMudGV4aSBiL2RvYy9wcm90b2NvbHMudGV4aQo+PiBpbmRleCA5 NjlmNGJmMDIyLi45OWFhZjJlMjUyIDEwMDY0NAo+PiAtLS0gYS9kb2MvcHJvdG9jb2xzLnRleGkK Pj4gKysrIGIvZG9jL3Byb3RvY29scy50ZXhpCj4+IEBAIC00MDYsMjYgKzQwNiw2IEBAIEdvcGhl cnMgcHJvdG9jb2wuCj4+Cj4+ICBUaGUgR29waGVyIHByb3RvY29sIHdpdGggVExTIGVuY2Fwc3Vs YXRpb24uCj4+Cj4+IC1Ac2VjdGlvbiBobHMKPj4gLQo+PiAtUmVhZCBBcHBsZSBIVFRQIExpdmUg U3RyZWFtaW5nIGNvbXBsaWFudCBzZWdtZW50ZWQgc3RyZWFtIGFzCj4+IC1hIHVuaWZvcm0gb25l LiBUaGUgTTNVOCBwbGF5bGlzdHMgZGVzY3JpYmluZyB0aGUgc2VnbWVudHMgY2FuIGJlCj4+IC1y ZW1vdGUgSFRUUCByZXNvdXJjZXMgb3IgbG9jYWwgZmlsZXMsIGFjY2Vzc2VkIHVzaW5nIHRoZSBz dGFuZGFyZAo+PiAtZmlsZSBwcm90b2NvbC4KPj4gLVRoZSBuZXN0ZWQgcHJvdG9jb2wgaXMgZGVj bGFyZWQgYnkgc3BlY2lmeWluZwo+PiAtIitAdmFye3Byb3RvfSIgYWZ0ZXIgdGhlIGhscyBVUkkg c2NoZW1lIG5hbWUsIHdoZXJlIEB2YXJ7cHJvdG99Cj4+IC1pcyBlaXRoZXIgImZpbGUiIG9yICJo dHRwIi4KPj4gLQo+PiAtQGV4YW1wbGUKPj4gLWhscytodHRwOi8vaG9zdC9wYXRoL3RvL3JlbW90 ZS9yZXNvdXJjZS5tM3U4Cj4+IC1obHMrZmlsZTovL3BhdGgvdG8vbG9jYWwvcmVzb3VyY2UubTN1 OAo+PiAtQGVuZCBleGFtcGxlCj4+IC0KPj4gLVVzaW5nIHRoaXMgcHJvdG9jb2wgaXMgZGlzY291 cmFnZWQgLSB0aGUgaGxzIGRlbXV4ZXIgc2hvdWxkIHdvcmsKPj4gLWp1c3QgYXMgd2VsbCAoaWYg bm90LCBwbGVhc2UgcmVwb3J0IHRoZSBpc3N1ZXMpIGFuZCBpcyBtb3JlIGNvbXBsZXRlLgo+PiAt VG8gdXNlIHRoZSBobHMgZGVtdXhlciBpbnN0ZWFkLCBzaW1wbHkgdXNlIHRoZSBkaXJlY3QgVVJM cyB0byB0aGUKPj4gLW0zdTggZmlsZXMuCj4+IC0KPj4gIEBzZWN0aW9uIGh0dHAKPj4KPj4gIEhU VFAgKEh5cGVyIFRleHQgVHJhbnNmZXIgUHJvdG9jb2wpLgo+PiBkaWZmIC0tZ2l0IGEvbGliYXZm b3JtYXQvTWFrZWZpbGUgYi9saWJhdmZvcm1hdC9NYWtlZmlsZQo+PiBpbmRleCA4MTZlYjliZTRh Li4yZWY2MzExNjMyIDEwMDY0NAo+PiAtLS0gYS9saWJhdmZvcm1hdC9NYWtlZmlsZQo+PiArKysg Yi9saWJhdmZvcm1hdC9NYWtlZmlsZQo+PiBAQCAtNjcyLDcgKzY3Miw2IEBAIE9CSlMtJChDT05G SUdfVkFQT1VSU1lOVEhfREVNVVhFUikgICAgICAgKz0gdmFwb3Vyc3ludGgubwo+PiAgIyBwcm90 b2NvbHMgSS9PCj4+ICBPQkpTLSQoQ09ORklHX0FORFJPSURfQ09OVEVOVF9QUk9UT0NPTCkgICs9 IGZpbGUubwo+PiAgT0JKUy0kKENPTkZJR19BU1lOQ19QUk9UT0NPTCkgICAgICAgICAgICArPSBh c3luYy5vCj4+IC1PQkpTLSQoQ09ORklHX0FQUExFSFRUUF9QUk9UT0NPTCkgICAgICAgICs9IGhs c3Byb3RvLm8KPj4gIE9CSlMtJChDT05GSUdfQkxVUkFZX1BST1RPQ09MKSAgICAgICAgICAgKz0g Ymx1cmF5Lm8KPj4gIE9CSlMtJChDT05GSUdfQ0FDSEVfUFJPVE9DT0wpICAgICAgICAgICAgKz0g Y2FjaGUubwo+PiAgT0JKUy0kKENPTkZJR19DT05DQVRfUFJPVE9DT0wpICAgICAgICAgICArPSBj b25jYXQubwo+PiBAQCAtNjg2LDcgKzY4NSw2IEBAIE9CSlMtJChDT05GSUdfRkRfUFJPVE9DT0wp ICAgICAgICAgICAgICAgKz0gZmlsZS5vCj4+ICBPQkpTLSQoQ09ORklHX0ZUUF9QUk9UT0NPTCkg ICAgICAgICAgICAgICs9IGZ0cC5vIHVybGRlY29kZS5vCj4+ICBPQkpTLSQoQ09ORklHX0dPUEhF Ul9QUk9UT0NPTCkgICAgICAgICAgICs9IGdvcGhlci5vCj4+ICBPQkpTLSQoQ09ORklHX0dPUEhF UlNfUFJPVE9DT0wpICAgICAgICAgICs9IGdvcGhlci5vCj4+IC1PQkpTLSQoQ09ORklHX0hMU19Q Uk9UT0NPTCkgICAgICAgICAgICAgICs9IGhsc3Byb3RvLm8KPj4gIE9CSlMtJChDT05GSUdfSFRU UF9QUk9UT0NPTCkgICAgICAgICAgICAgKz0gaHR0cC5vIGh0dHBhdXRoLm8gdXJsZGVjb2RlLm8K Pj4gIE9CSlMtJChDT05GSUdfSFRUUFBST1hZX1BST1RPQ09MKSAgICAgICAgKz0gaHR0cC5vIGh0 dHBhdXRoLm8gdXJsZGVjb2RlLm8KPj4gIE9CSlMtJChDT05GSUdfSFRUUFNfUFJPVE9DT0wpICAg ICAgICAgICAgKz0gaHR0cC5vIGh0dHBhdXRoLm8gdXJsZGVjb2RlLm8KPj4gZGlmZiAtLWdpdCBh L2xpYmF2Zm9ybWF0L2hsc3Byb3RvLmMgYi9saWJhdmZvcm1hdC9obHNwcm90by5jCj4+IGRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMmY2OTVjMWRiLi4wMDAwMDAwMDAwCj4+IC0t LSBhL2xpYmF2Zm9ybWF0L2hsc3Byb3RvLmMKPj4gKysrIC9kZXYvbnVsbAo+PiBAQCAtMSwzMTgg KzAsMCBAQAo+PiAtLyoKPj4gLSAqIEFwcGxlIEhUVFAgTGl2ZSBTdHJlYW1pbmcgUHJvdG9jb2wg SGFuZGxlcgo+PiAtICogQ29weXJpZ2h0IChjKSAyMDEwIE1hcnRpbiBTdG9yc2pvCj4+IC0gKgo+ PiAtICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgo+PiAtICoKPj4gLSAqIEZGbXBlZyBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKPj4gLSAqIG1v ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK Pj4gLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlcgo+PiAtICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4+IC0gKgo+PiAtICogRkZtcGVnIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4+IC0gKiBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo+ PiAtICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZSBHTlUKPj4gLSAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCj4+IC0gKgo+PiAtICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+PiAtICogTGljZW5zZSBhbG9uZyB3 aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQo+PiAtICogRm91 bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN QSAwMjExMC0xMzAxIFVTQQo+PiAtICovCj4+IC0KPj4gLS8qKgo+PiAtICogQGZpbGUKPj4gLSAq IEFwcGxlIEhUVFAgTGl2ZSBTdHJlYW1pbmcgUHJvdG9jb2wgSGFuZGxlcgo+PiAtICogaHR0cHM6 Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzgyMTYudHh0Cj4+IC0gKi8KPj4gLQo+PiAtI2lu Y2x1ZGUgImxpYmF2dXRpbC9hdnN0cmluZy5oIgo+PiAtI2luY2x1ZGUgImxpYmF2dXRpbC9tZW0u aCIKPj4gLSNpbmNsdWRlICJsaWJhdnV0aWwvdGltZS5oIgo+PiAtI2luY2x1ZGUgImF2aW9faW50 ZXJuYWwuaCIKPj4gLSNpbmNsdWRlICJpbnRlcm5hbC5oIgo+PiAtI2luY2x1ZGUgInVybC5oIgo+ PiAtCj4+IC0vKgo+PiAtICogQW4gYXBwbGUgaHR0cCBzdHJlYW0gY29uc2lzdHMgb2YgYSBwbGF5 bGlzdCB3aXRoIG1lZGlhIHNlZ21lbnQgZmlsZXMsCj4+IC0gKiBwbGF5ZWQgc2VxdWVudGlhbGx5 LiBUaGVyZSBtYXkgYmUgc2V2ZXJhbCBwbGF5bGlzdHMgd2l0aCB0aGUgc2FtZQo+PiAtICogdmlk ZW8gY29udGVudCwgaW4gZGlmZmVyZW50IGJhbmR3aWR0aCB2YXJpYW50cywgdGhhdCBhcmUgcGxh eWVkIGluCj4+IC0gKiBwYXJhbGxlbCAocHJlZmVyYWJseSBvbmx5IG9uZSBiYW5kd2lkdGggdmFy aWFudCBhdCBhIHRpbWUpLiBJbiB0aGlzIGNhc2UsCj4+IC0gKiB0aGUgdXNlciBzdXBwbGllZCB0 aGUgdXJsIHRvIGEgbWFpbiBwbGF5bGlzdCB0aGF0IG9ubHkgbGlzdHMgdGhlIHZhcmlhbnQKPj4g LSAqIHBsYXlsaXN0cy4KPj4gLSAqCj4+IC0gKiBJZiB0aGUgbWFpbiBwbGF5bGlzdCBkb2Vzbid0 IHBvaW50IGF0IGFueSB2YXJpYW50cywgd2Ugc3RpbGwgY3JlYXRlCj4+IC0gKiBvbmUgYW5vbnlt b3VzIHRvcGxldmVsIHZhcmlhbnQgZm9yIHRoaXMsIHRvIG1haW50YWluIHRoZSBzdHJ1Y3R1cmUu Cj4+IC0gKi8KPj4gLQo+PiAtc3RydWN0IHNlZ21lbnQgewo+PiAtICAgIGludDY0X3QgZHVyYXRp b247Cj4+IC0gICAgY2hhciB1cmxbTUFYX1VSTF9TSVpFXTsKPj4gLX07Cj4+IC0KPj4gLXN0cnVj dCB2YXJpYW50IHsKPj4gLSAgICBpbnQgYmFuZHdpZHRoOwo+PiAtICAgIGNoYXIgdXJsW01BWF9V UkxfU0laRV07Cj4+IC19Owo+PiAtCj4+IC10eXBlZGVmIHN0cnVjdCBITFNDb250ZXh0IHsKPj4g LSAgICBjaGFyIHBsYXlsaXN0dXJsW01BWF9VUkxfU0laRV07Cj4+IC0gICAgaW50NjRfdCB0YXJn ZXRfZHVyYXRpb247Cj4+IC0gICAgaW50IHN0YXJ0X3NlcV9ubzsKPj4gLSAgICBpbnQgZmluaXNo ZWQ7Cj4+IC0gICAgaW50IG5fc2VnbWVudHM7Cj4+IC0gICAgc3RydWN0IHNlZ21lbnQgKipzZWdt ZW50czsKPj4gLSAgICBpbnQgbl92YXJpYW50czsKPj4gLSAgICBzdHJ1Y3QgdmFyaWFudCAqKnZh cmlhbnRzOwo+PiAtICAgIGludCBjdXJfc2VxX25vOwo+PiAtICAgIFVSTENvbnRleHQgKnNlZ19o ZDsKPj4gLSAgICBpbnQ2NF90IGxhc3RfbG9hZF90aW1lOwo+PiAtfSBITFNDb250ZXh0Owo+PiAt Cj4+IC1zdGF0aWMgdm9pZCBmcmVlX3NlZ21lbnRfbGlzdChITFNDb250ZXh0ICpzKQo+PiAtewo+ PiAtICAgIGludCBpOwo+PiAtICAgIGZvciAoaSA9IDA7IGkgPCBzLT5uX3NlZ21lbnRzOyBpKysp Cj4+IC0gICAgICAgIGF2X2ZyZWVwKCZzLT5zZWdtZW50c1tpXSk7Cj4+IC0gICAgYXZfZnJlZXAo JnMtPnNlZ21lbnRzKTsKPj4gLSAgICBzLT5uX3NlZ21lbnRzID0gMDsKPj4gLX0KPj4gLQo+PiAt c3RhdGljIHZvaWQgZnJlZV92YXJpYW50X2xpc3QoSExTQ29udGV4dCAqcykKPj4gLXsKPj4gLSAg ICBpbnQgaTsKPj4gLSAgICBmb3IgKGkgPSAwOyBpIDwgcy0+bl92YXJpYW50czsgaSsrKQo+PiAt ICAgICAgICBhdl9mcmVlcCgmcy0+dmFyaWFudHNbaV0pOwo+PiAtICAgIGF2X2ZyZWVwKCZzLT52 YXJpYW50cyk7Cj4+IC0gICAgcy0+bl92YXJpYW50cyA9IDA7Cj4+IC19Cj4+IC0KPj4gLXN0cnVj dCB2YXJpYW50X2luZm8gewo+PiAtICAgIGNoYXIgYmFuZHdpZHRoWzIwXTsKPj4gLX07Cj4+IC0K Pj4gLXN0YXRpYyB2b2lkIGhhbmRsZV92YXJpYW50X2FyZ3Moc3RydWN0IHZhcmlhbnRfaW5mbyAq aW5mbywgY29uc3QgY2hhciAqa2V5LAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQga2V5X2xlbiwgY2hhciAqKmRlc3QsIGludCAqZGVzdF9sZW4pCj4+IC17Cj4+IC0gICAg aWYgKCFzdHJuY21wKGtleSwgIkJBTkRXSURUSD0iLCBrZXlfbGVuKSkgewo+PiAtICAgICAgICAq ZGVzdCAgICAgPSAgICAgICAgaW5mby0+YmFuZHdpZHRoOwo+PiAtICAgICAgICAqZGVzdF9sZW4g PSBzaXplb2YoaW5mby0+YmFuZHdpZHRoKTsKPj4gLSAgICB9Cj4+IC19Cj4+IC0KPj4gLXN0YXRp YyBpbnQgcGFyc2VfcGxheWxpc3QoVVJMQ29udGV4dCAqaCwgY29uc3QgY2hhciAqdXJsKQo+PiAt ewo+PiAtICAgIEhMU0NvbnRleHQgKnMgPSBoLT5wcml2X2RhdGE7Cj4+IC0gICAgQVZJT0NvbnRl eHQgKmluOwo+PiAtICAgIGludCByZXQgPSAwLCBpc19zZWdtZW50ID0gMCwgaXNfdmFyaWFudCA9 IDAsIGJhbmR3aWR0aCA9IDA7Cj4+IC0gICAgaW50NjRfdCBkdXJhdGlvbiA9IDA7Cj4+IC0gICAg Y2hhciBsaW5lWzEwMjRdOwo+PiAtICAgIGNvbnN0IGNoYXIgKnB0cjsKPj4gLQo+PiAtICAgIGlm ICgocmV0ID0gZmZpb19vcGVuX3doaXRlbGlzdCgmaW4sIHVybCwgQVZJT19GTEFHX1JFQUQsCj4+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZoLT5pbnRlcnJ1cHRfY2FsbGJh Y2ssIE5VTEwsCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGgtPnByb3Rv Y29sX3doaXRlbGlzdCwgaC0+cHJvdG9jb2xfYmxhY2tsaXN0KSkgPCAwKQo+PiAtICAgICAgICBy ZXR1cm4gcmV0Owo+PiAtCj4+IC0gICAgZmZfZ2V0X2Nob21wX2xpbmUoaW4sIGxpbmUsIHNpemVv ZihsaW5lKSk7Cj4+IC0gICAgaWYgKHN0cmNtcChsaW5lLCAiI0VYVE0zVSIpKSB7Cj4+IC0gICAg ICAgIHJldCA9IEFWRVJST1JfSU5WQUxJRERBVEE7Cj4+IC0gICAgICAgIGdvdG8gZmFpbDsKPj4g LSAgICB9Cj4+IC0KPj4gLSAgICBmcmVlX3NlZ21lbnRfbGlzdChzKTsKPj4gLSAgICBzLT5maW5p c2hlZCA9IDA7Cj4+IC0gICAgd2hpbGUgKCFhdmlvX2Zlb2YoaW4pKSB7Cj4+IC0gICAgICAgIGZm X2dldF9jaG9tcF9saW5lKGluLCBsaW5lLCBzaXplb2YobGluZSkpOwo+PiAtICAgICAgICBpZiAo YXZfc3Ryc3RhcnQobGluZSwgIiNFWFQtWC1TVFJFQU0tSU5GOiIsICZwdHIpKSB7Cj4+IC0gICAg ICAgICAgICBzdHJ1Y3QgdmFyaWFudF9pbmZvIGluZm8gPSB7ezB9fTsKPj4gLSAgICAgICAgICAg IGlzX3ZhcmlhbnQgPSAxOwo+PiAtICAgICAgICAgICAgZmZfcGFyc2Vfa2V5X3ZhbHVlKHB0ciwg KGZmX3BhcnNlX2tleV92YWxfY2IpIGhhbmRsZV92YXJpYW50X2FyZ3MsCj4+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJmluZm8pOwo+PiAtICAgICAgICAgICAgYmFuZHdpZHRoID0g YXRvaShpbmZvLmJhbmR3aWR0aCk7Cj4+IC0gICAgICAgIH0gZWxzZSBpZiAoYXZfc3Ryc3RhcnQo bGluZSwgIiNFWFQtWC1UQVJHRVREVVJBVElPTjoiLCAmcHRyKSkgewo+PiAtICAgICAgICAgICAg cy0+dGFyZ2V0X2R1cmF0aW9uID0gYXRvaShwdHIpICogQVZfVElNRV9CQVNFOwo+PiAtICAgICAg ICB9IGVsc2UgaWYgKGF2X3N0cnN0YXJ0KGxpbmUsICIjRVhULVgtTUVESUEtU0VRVUVOQ0U6Iiwg JnB0cikpIHsKPj4gLSAgICAgICAgICAgIHMtPnN0YXJ0X3NlcV9ubyA9IGF0b2kocHRyKTsKPj4g LSAgICAgICAgfSBlbHNlIGlmIChhdl9zdHJzdGFydChsaW5lLCAiI0VYVC1YLUVORExJU1QiLCAm cHRyKSkgewo+PiAtICAgICAgICAgICAgcy0+ZmluaXNoZWQgPSAxOwo+PiAtICAgICAgICB9IGVs c2UgaWYgKGF2X3N0cnN0YXJ0KGxpbmUsICIjRVhUSU5GOiIsICZwdHIpKSB7Cj4+IC0gICAgICAg ICAgICBpc19zZWdtZW50ID0gMTsKPj4gLSAgICAgICAgICAgIGR1cmF0aW9uID0gYXRvZihwdHIp ICogQVZfVElNRV9CQVNFOwo+PiAtICAgICAgICB9IGVsc2UgaWYgKGF2X3N0cnN0YXJ0KGxpbmUs ICIjIiwgTlVMTCkpIHsKPj4gLSAgICAgICAgICAgIGNvbnRpbnVlOwo+PiAtICAgICAgICB9IGVs c2UgaWYgKGxpbmVbMF0pIHsKPj4gLSAgICAgICAgICAgIGlmIChpc19zZWdtZW50KSB7Cj4+IC0g ICAgICAgICAgICAgICAgc3RydWN0IHNlZ21lbnQgKnNlZyA9IGF2X21hbGxvYyhzaXplb2Yoc3Ry dWN0IHNlZ21lbnQpKTsKPj4gLSAgICAgICAgICAgICAgICBpZiAoIXNlZykgewo+PiAtICAgICAg ICAgICAgICAgICAgICByZXQgPSBBVkVSUk9SKEVOT01FTSk7Cj4+IC0gICAgICAgICAgICAgICAg ICAgIGdvdG8gZmFpbDsKPj4gLSAgICAgICAgICAgICAgICB9Cj4+IC0gICAgICAgICAgICAgICAg c2VnLT5kdXJhdGlvbiA9IGR1cmF0aW9uOwo+PiAtICAgICAgICAgICAgICAgIGZmX21ha2VfYWJz b2x1dGVfdXJsKHNlZy0+dXJsLCBzaXplb2Yoc2VnLT51cmwpLCB1cmwsIGxpbmUpOwo+PiAtICAg ICAgICAgICAgICAgIGR5bmFycmF5X2FkZCgmcy0+c2VnbWVudHMsICZzLT5uX3NlZ21lbnRzLCBz ZWcpOwo+PiAtICAgICAgICAgICAgICAgIGlzX3NlZ21lbnQgPSAwOwo+PiAtICAgICAgICAgICAg fSBlbHNlIGlmIChpc192YXJpYW50KSB7Cj4+IC0gICAgICAgICAgICAgICAgc3RydWN0IHZhcmlh bnQgKnZhciA9IGF2X21hbGxvYyhzaXplb2Yoc3RydWN0IHZhcmlhbnQpKTsKPj4gLSAgICAgICAg ICAgICAgICBpZiAoIXZhcikgewo+PiAtICAgICAgICAgICAgICAgICAgICByZXQgPSBBVkVSUk9S KEVOT01FTSk7Cj4+IC0gICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKPj4gLSAgICAgICAg ICAgICAgICB9Cj4+IC0gICAgICAgICAgICAgICAgdmFyLT5iYW5kd2lkdGggPSBiYW5kd2lkdGg7 Cj4+IC0gICAgICAgICAgICAgICAgZmZfbWFrZV9hYnNvbHV0ZV91cmwodmFyLT51cmwsIHNpemVv Zih2YXItPnVybCksIHVybCwgbGluZSk7Cj4+IC0gICAgICAgICAgICAgICAgZHluYXJyYXlfYWRk KCZzLT52YXJpYW50cywgJnMtPm5fdmFyaWFudHMsIHZhcik7Cj4+IC0gICAgICAgICAgICAgICAg aXNfdmFyaWFudCA9IDA7Cj4+IC0gICAgICAgICAgICB9Cj4+IC0gICAgICAgIH0KPj4gLSAgICB9 Cj4+IC0gICAgcy0+bGFzdF9sb2FkX3RpbWUgPSBhdl9nZXR0aW1lX3JlbGF0aXZlKCk7Cj4+IC0K Pj4gLWZhaWw6Cj4+IC0gICAgYXZpb19jbG9zZShpbik7Cj4+IC0gICAgcmV0dXJuIHJldDsKPj4g LX0KPj4gLQo+PiAtc3RhdGljIGludCBobHNfY2xvc2UoVVJMQ29udGV4dCAqaCkKPj4gLXsKPj4g LSAgICBITFNDb250ZXh0ICpzID0gaC0+cHJpdl9kYXRhOwo+PiAtCj4+IC0gICAgZnJlZV9zZWdt ZW50X2xpc3Qocyk7Cj4+IC0gICAgZnJlZV92YXJpYW50X2xpc3Qocyk7Cj4+IC0gICAgZmZ1cmxf Y2xvc2VwKCZzLT5zZWdfaGQpOwo+PiAtICAgIHJldHVybiAwOwo+PiAtfQo+PiAtCj4+IC1zdGF0 aWMgaW50IGhsc19vcGVuKFVSTENvbnRleHQgKmgsIGNvbnN0IGNoYXIgKnVyaSwgaW50IGZsYWdz KQo+PiAtewo+PiAtICAgIEhMU0NvbnRleHQgKnMgPSBoLT5wcml2X2RhdGE7Cj4+IC0gICAgaW50 IHJldCwgaTsKPj4gLSAgICBjb25zdCBjaGFyICpuZXN0ZWRfdXJsOwo+PiAtCj4+IC0gICAgaWYg KGZsYWdzICYgQVZJT19GTEFHX1dSSVRFKQo+PiAtICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9T WVMpOwo+PiAtCj4+IC0gICAgaC0+aXNfc3RyZWFtZWQgPSAxOwo+PiAtCj4+IC0gICAgaWYgKGF2 X3N0cnN0YXJ0KHVyaSwgImhscysiLCAmbmVzdGVkX3VybCkpIHsKPj4gLSAgICAgICAgYXZfc3Ry bGNweShzLT5wbGF5bGlzdHVybCwgbmVzdGVkX3VybCwgc2l6ZW9mKHMtPnBsYXlsaXN0dXJsKSk7 Cj4+IC0gICAgfSBlbHNlIGlmIChhdl9zdHJzdGFydCh1cmksICJobHM6Ly8iLCAmbmVzdGVkX3Vy bCkpIHsKPj4gLSAgICAgICAgYXZfbG9nKGgsIEFWX0xPR19FUlJPUiwKPj4gLSAgICAgICAgICAg ICAgICJObyBuZXN0ZWQgcHJvdG9jb2wgc3BlY2lmaWVkLiBTcGVjaWZ5IGUuZy4gaGxzK2h0dHA6 Ly8lc1xuIiwKPj4gLSAgICAgICAgICAgICAgIG5lc3RlZF91cmwpOwo+PiAtICAgICAgICByZXQg PSBBVkVSUk9SKEVJTlZBTCk7Cj4+IC0gICAgICAgIGdvdG8gZmFpbDsKPj4gLSAgICB9IGVsc2Ug ewo+PiAtICAgICAgICBhdl9sb2coaCwgQVZfTE9HX0VSUk9SLCAiVW5zdXBwb3J0ZWQgdXJsICVz XG4iLCB1cmkpOwo+PiAtICAgICAgICByZXQgPSBBVkVSUk9SKEVJTlZBTCk7Cj4+IC0gICAgICAg IGdvdG8gZmFpbDsKPj4gLSAgICB9Cj4+IC0gICAgYXZfbG9nKGgsIEFWX0xPR19XQVJOSU5HLAo+ PiAtICAgICAgICAgICAiVXNpbmcgdGhlIGhscyBwcm90b2NvbCBpcyBkaXNjb3VyYWdlZCwgcGxl YXNlIHRyeSB1c2luZyB0aGUgIgo+PiAtICAgICAgICAgICAiaGxzIGRlbXV4ZXIgaW5zdGVhZC4g VGhlIGhscyBkZW11eGVyIHNob3VsZCBiZSBtb3JlIGNvbXBsZXRlICIKPj4gLSAgICAgICAgICAg ImFuZCB3b3JrIGFzIHdlbGwgYXMgdGhlIHByb3RvY29sIGltcGxlbWVudGF0aW9uLiAoSWYgbm90 LCAiCj4+IC0gICAgICAgICAgICJwbGVhc2UgcmVwb3J0IGl0LikgVG8gdXNlIHRoZSBkZW11eGVy LCBzaW1wbHkgdXNlICVzIGFzIHVybC5cbiIsCj4+IC0gICAgICAgICAgIHMtPnBsYXlsaXN0dXJs KTsKPj4gLQo+PiAtICAgIGlmICgocmV0ID0gcGFyc2VfcGxheWxpc3QoaCwgcy0+cGxheWxpc3R1 cmwpKSA8IDApCj4+IC0gICAgICAgIGdvdG8gZmFpbDsKPj4gLQo+PiAtICAgIGlmIChzLT5uX3Nl Z21lbnRzID09IDAgJiYgcy0+bl92YXJpYW50cyA+IDApIHsKPj4gLSAgICAgICAgaW50IG1heF9i YW5kd2lkdGggPSAwLCBtYXh2YXIgPSAtMTsKPj4gLSAgICAgICAgZm9yIChpID0gMDsgaSA8IHMt Pm5fdmFyaWFudHM7IGkrKykgewo+PiAtICAgICAgICAgICAgaWYgKHMtPnZhcmlhbnRzW2ldLT5i YW5kd2lkdGggPiBtYXhfYmFuZHdpZHRoIHx8IGkgPT0gMCkgewo+PiAtICAgICAgICAgICAgICAg IG1heF9iYW5kd2lkdGggPSBzLT52YXJpYW50c1tpXS0+YmFuZHdpZHRoOwo+PiAtICAgICAgICAg ICAgICAgIG1heHZhciA9IGk7Cj4+IC0gICAgICAgICAgICB9Cj4+IC0gICAgICAgIH0KPj4gLSAg ICAgICAgYXZfc3RybGNweShzLT5wbGF5bGlzdHVybCwgcy0+dmFyaWFudHNbbWF4dmFyXS0+dXJs LAo+PiAtICAgICAgICAgICAgICAgICAgIHNpemVvZihzLT5wbGF5bGlzdHVybCkpOwo+PiAtICAg ICAgICBpZiAoKHJldCA9IHBhcnNlX3BsYXlsaXN0KGgsIHMtPnBsYXlsaXN0dXJsKSkgPCAwKQo+ PiAtICAgICAgICAgICAgZ290byBmYWlsOwo+PiAtICAgIH0KPj4gLQo+PiAtICAgIGlmIChzLT5u X3NlZ21lbnRzID09IDApIHsKPj4gLSAgICAgICAgYXZfbG9nKGgsIEFWX0xPR19XQVJOSU5HLCAi RW1wdHkgcGxheWxpc3RcbiIpOwo+PiAtICAgICAgICByZXQgPSBBVkVSUk9SKEVJTyk7Cj4+IC0g ICAgICAgIGdvdG8gZmFpbDsKPj4gLSAgICB9Cj4+IC0gICAgcy0+Y3VyX3NlcV9ubyA9IHMtPnN0 YXJ0X3NlcV9ubzsKPj4gLSAgICBpZiAoIXMtPmZpbmlzaGVkICYmIHMtPm5fc2VnbWVudHMgPj0g MykKPj4gLSAgICAgICAgcy0+Y3VyX3NlcV9ubyA9IHMtPnN0YXJ0X3NlcV9ubyArIHMtPm5fc2Vn bWVudHMgLSAzOwo+PiAtCj4+IC0gICAgcmV0dXJuIDA7Cj4+IC0KPj4gLWZhaWw6Cj4+IC0gICAg aGxzX2Nsb3NlKGgpOwo+PiAtICAgIHJldHVybiByZXQ7Cj4+IC19Cj4+IC0KPj4gLXN0YXRpYyBp bnQgaGxzX3JlYWQoVVJMQ29udGV4dCAqaCwgdWludDhfdCAqYnVmLCBpbnQgc2l6ZSkKPj4gLXsK Pj4gLSAgICBITFNDb250ZXh0ICpzID0gaC0+cHJpdl9kYXRhOwo+PiAtICAgIGNvbnN0IGNoYXIg KnVybDsKPj4gLSAgICBpbnQgcmV0Owo+PiAtICAgIGludDY0X3QgcmVsb2FkX2ludGVydmFsOwo+ PiAtCj4+IC1zdGFydDoKPj4gLSAgICBpZiAocy0+c2VnX2hkKSB7Cj4+IC0gICAgICAgIHJldCA9 IGZmdXJsX3JlYWQocy0+c2VnX2hkLCBidWYsIHNpemUpOwo+PiAtICAgICAgICBpZiAocmV0ID4g MCkKPj4gLSAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+IC0gICAgfQo+PiAtICAgIGlmIChzLT5z ZWdfaGQpIHsKPj4gLSAgICAgICAgZmZ1cmxfY2xvc2VwKCZzLT5zZWdfaGQpOwo+PiAtICAgICAg ICBzLT5jdXJfc2VxX25vKys7Cj4+IC0gICAgfQo+PiAtICAgIHJlbG9hZF9pbnRlcnZhbCA9IHMt Pm5fc2VnbWVudHMgPiAwID8KPj4gLSAgICAgICAgICAgICAgICAgICAgICBzLT5zZWdtZW50c1tz LT5uX3NlZ21lbnRzIC0gMV0tPmR1cmF0aW9uIDoKPj4gLSAgICAgICAgICAgICAgICAgICAgICBz LT50YXJnZXRfZHVyYXRpb247Cj4+IC1yZXRyeToKPj4gLSAgICBpZiAoIXMtPmZpbmlzaGVkKSB7 Cj4+IC0gICAgICAgIGludDY0X3Qgbm93ID0gYXZfZ2V0dGltZV9yZWxhdGl2ZSgpOwo+PiAtICAg ICAgICBpZiAobm93IC0gcy0+bGFzdF9sb2FkX3RpbWUgPj0gcmVsb2FkX2ludGVydmFsKSB7Cj4+ IC0gICAgICAgICAgICBpZiAoKHJldCA9IHBhcnNlX3BsYXlsaXN0KGgsIHMtPnBsYXlsaXN0dXJs KSkgPCAwKQo+PiAtICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+IC0gICAgICAgICAgICAv KiBJZiB3ZSBuZWVkIHRvIHJlbG9hZCB0aGUgcGxheWxpc3QgYWdhaW4gYmVsb3cgKGlmCj4+IC0g ICAgICAgICAgICAgKiB0aGVyZSdzIHN0aWxsIG5vIG1vcmUgc2VnbWVudHMpLCBzd2l0Y2ggdG8g YSByZWxvYWQKPj4gLSAgICAgICAgICAgICAqIGludGVydmFsIG9mIGhhbGYgdGhlIHRhcmdldCBk dXJhdGlvbi4gKi8KPj4gLSAgICAgICAgICAgIHJlbG9hZF9pbnRlcnZhbCA9IHMtPnRhcmdldF9k dXJhdGlvbiAvIDI7Cj4+IC0gICAgICAgIH0KPj4gLSAgICB9Cj4+IC0gICAgaWYgKHMtPmN1cl9z ZXFfbm8gPCBzLT5zdGFydF9zZXFfbm8pIHsKPj4gLSAgICAgICAgYXZfbG9nKGgsIEFWX0xPR19X QVJOSU5HLAo+PiAtICAgICAgICAgICAgICAgInNraXBwaW5nICVkIHNlZ21lbnRzIGFoZWFkLCBl eHBpcmVkIGZyb20gcGxheWxpc3RcbiIsCj4+IC0gICAgICAgICAgICAgICBzLT5zdGFydF9zZXFf bm8gLSBzLT5jdXJfc2VxX25vKTsKPj4gLSAgICAgICAgcy0+Y3VyX3NlcV9ubyA9IHMtPnN0YXJ0 X3NlcV9ubzsKPj4gLSAgICB9Cj4+IC0gICAgaWYgKHMtPmN1cl9zZXFfbm8gLSBzLT5zdGFydF9z ZXFfbm8gPj0gcy0+bl9zZWdtZW50cykgewo+PiAtICAgICAgICBpZiAocy0+ZmluaXNoZWQpCj4+ IC0gICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9FT0Y7Cj4+IC0gICAgICAgIHdoaWxlIChhdl9n ZXR0aW1lX3JlbGF0aXZlKCkgLSBzLT5sYXN0X2xvYWRfdGltZSA8IHJlbG9hZF9pbnRlcnZhbCkg ewo+PiAtICAgICAgICAgICAgaWYgKGZmX2NoZWNrX2ludGVycnVwdCgmaC0+aW50ZXJydXB0X2Nh bGxiYWNrKSkKPj4gLSAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9FWElUOwo+PiAtICAg ICAgICAgICAgYXZfdXNsZWVwKDEwMCoxMDAwKTsKPj4gLSAgICAgICAgfQo+PiAtICAgICAgICBn b3RvIHJldHJ5Owo+PiAtICAgIH0KPj4gLSAgICB1cmwgPSBzLT5zZWdtZW50c1tzLT5jdXJfc2Vx X25vIC0gcy0+c3RhcnRfc2VxX25vXS0+dXJsOwo+PiAtICAgIGF2X2xvZyhoLCBBVl9MT0dfREVC VUcsICJvcGVuaW5nICVzXG4iLCB1cmwpOwo+PiAtICAgIHJldCA9IGZmdXJsX29wZW5fd2hpdGVs aXN0KCZzLT5zZWdfaGQsIHVybCwgQVZJT19GTEFHX1JFQUQsCj4+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmgtPmludGVycnVwdF9jYWxsYmFjaywgTlVMTCwKPj4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBoLT5wcm90b2NvbF93aGl0ZWxpc3QsIGgtPnByb3RvY29s X2JsYWNrbGlzdCwgaCk7Cj4+IC0gICAgaWYgKHJldCA8IDApIHsKPj4gLSAgICAgICAgaWYgKGZm X2NoZWNrX2ludGVycnVwdCgmaC0+aW50ZXJydXB0X2NhbGxiYWNrKSkKPj4gLSAgICAgICAgICAg IHJldHVybiBBVkVSUk9SX0VYSVQ7Cj4+IC0gICAgICAgIGF2X2xvZyhoLCBBVl9MT0dfV0FSTklO RywgIlVuYWJsZSB0byBvcGVuICVzXG4iLCB1cmwpOwo+PiAtICAgICAgICBzLT5jdXJfc2VxX25v Kys7Cj4+IC0gICAgICAgIGdvdG8gcmV0cnk7Cj4+IC0gICAgfQo+PiAtICAgIGdvdG8gc3RhcnQ7 Cj4+IC19Cj4+IC0KPj4gLWNvbnN0IFVSTFByb3RvY29sIGZmX2hsc19wcm90b2NvbCA9IHsKPj4g LSAgICAubmFtZSAgICAgICAgICAgPSAiaGxzIiwKPj4gLSAgICAudXJsX29wZW4gICAgICAgPSBo bHNfb3BlbiwKPj4gLSAgICAudXJsX3JlYWQgICAgICAgPSBobHNfcmVhZCwKPj4gLSAgICAudXJs X2Nsb3NlICAgICAgPSBobHNfY2xvc2UsCj4+IC0gICAgLmZsYWdzICAgICAgICAgID0gVVJMX1BS T1RPQ09MX0ZMQUdfTkVTVEVEX1NDSEVNRSwKPj4gLSAgICAucHJpdl9kYXRhX3NpemUgPSBzaXpl b2YoSExTQ29udGV4dCksCj4+IC19Owo+PiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvcHJvdG9j b2xzLmMgYi9saWJhdmZvcm1hdC9wcm90b2NvbHMuYwo+PiBpbmRleCBkMzk0NDU0ZDQxLi4yMDdi NmJmOGQ5IDEwMDY0NAo+PiAtLS0gYS9saWJhdmZvcm1hdC9wcm90b2NvbHMuYwo+PiArKysgYi9s aWJhdmZvcm1hdC9wcm90b2NvbHMuYwo+PiBAQCAtMzksNyArMzksNiBAQCBleHRlcm4gY29uc3Qg VVJMUHJvdG9jb2wgZmZfZmlsZV9wcm90b2NvbDsKPj4gIGV4dGVybiBjb25zdCBVUkxQcm90b2Nv bCBmZl9mdHBfcHJvdG9jb2w7Cj4+ICBleHRlcm4gY29uc3QgVVJMUHJvdG9jb2wgZmZfZ29waGVy X3Byb3RvY29sOwo+PiAgZXh0ZXJuIGNvbnN0IFVSTFByb3RvY29sIGZmX2dvcGhlcnNfcHJvdG9j b2w7Cj4+IC1leHRlcm4gY29uc3QgVVJMUHJvdG9jb2wgZmZfaGxzX3Byb3RvY29sOwo+PiAgZXh0 ZXJuIGNvbnN0IFVSTFByb3RvY29sIGZmX2h0dHBfcHJvdG9jb2w7Cj4+ICBleHRlcm4gY29uc3Qg VVJMUHJvdG9jb2wgZmZfaHR0cHByb3h5X3Byb3RvY29sOwo+PiAgZXh0ZXJuIGNvbnN0IFVSTFBy b3RvY29sIGZmX2h0dHBzX3Byb3RvY29sOwo+PiAtLQo+PiAyLjM5LjUgKEFwcGxlIEdpdC0xNTQp Cj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+ IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKPj4gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPj4g aHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCj4+Cj4+IFRv IHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbAo+PiBmZm1wZWctZGV2ZWwt cmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZmZtcGVnLWRldmVsIG1h aWxpbmcgbGlzdAo+IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4gaHR0cHM6Ly9mZm1wZWcub3Jn L21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCj4KPiBUbyB1bnN1YnNjcmliZSwgdmlzaXQg bGluayBhYm92ZSwgb3IgZW1haWwKPiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdp dGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBm Zm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZl bAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZl bC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==