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 316A048063 for ; Fri, 7 Jun 2024 20:22:54 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 121FB68D83A; Fri, 7 Jun 2024 23:22:52 +0300 (EEST) Received: from mail-ua1-f54.google.com (mail-ua1-f54.google.com [209.85.222.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1DE6B68D81B for ; Fri, 7 Jun 2024 23:22:45 +0300 (EEST) Received: by mail-ua1-f54.google.com with SMTP id a1e0cc1a2514c-80b86cd886fso19219241.0 for ; Fri, 07 Jun 2024 13:22:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717791763; x=1718396563; darn=ffmpeg.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=o8LO30r7wh0ZvXO7QZyYRRApN6oIUPQowNziXbIXrX4=; b=Vtu4XhtjAi/IXi4eeevvzKqolzfjUtttkj3mnSkojKb2C9YkUoeisZISF5oekCLUyY gNvjVuWbL/a3KX18veDewXppQPzQmgax3jK9RjDv/MMXSykq/Re6KNK1FLbX5Cj+aw4/ kL9RZHCutLmjVxqmpLHkY4NBQ9FeIGSU/gO83J3OBL2Pll2RfHIU/vsW4rOPPnCAcC9L F4M2mzmAcm5asfEzroy0F/3L3+kUMiQJTudIs0cfwMkyDF1it8GBjd7gM4P66RPxuAvJ GdDnJpS+iD4j3hEE5erfMU8DPlSILAhM5StrnrEH22oJa3eYN+1hvqDiCx7jrTLYxtfl q2dg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717791763; x=1718396563; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=o8LO30r7wh0ZvXO7QZyYRRApN6oIUPQowNziXbIXrX4=; b=S+xEMAIhdCTerQtdu+Mh4Byjk2z38tN7/zSQ8wAtZvmZn0udBNR0DjO6ZE8/NBurhR 4SuBHMyTl3qGOsFGRUFI6IW5yYEO91v3ff7nlIE96ktxIxONlX6240+r/ReuJ/ywizEj lYK06CU6H+NHAq0uXjLadYUFFVr1DWHEKjV0o404qsxYfiWqEM+/xh97+xEWcsSFL90Q fM9VGFwP7UQRQ6qOEJMaDoHkexUqxxn90VLvm1F7XaW/uu8kcVRAjpyRDXcw7xsPXWBh Y+QrMtJL/cxuYZg8c0upMkU75sguLPxneO6GeBHtMCzXNrCg45AsROc12IWRngcOp/Iv qC9g== X-Gm-Message-State: AOJu0YxVEk1qU3KQU1FKZqE1/Yu8v3K6BlAI+0q84hG1tWdNP+CvKMbP MYIeyEmX7ax50h0xZeYwoz/4ErhLrHqj7t9SL5hjNMGxTYodWnlwuB2a8BYX7wjfx3xG5Mh3t3X kvPWlrmrFNRn50w5o7EUSJG0gucCCmQ== X-Google-Smtp-Source: AGHT+IGCLGbB+LgO/3cA/e+PwTVBGOr+5vWs5hsCYkx3RLcnASpQBoiov4YR28spMSe0BsEAaURKAPfB1Ch/x06i3gw= X-Received: by 2002:ac5:c7c4:0:b0:4eb:1b53:47a8 with SMTP id 71dfb90a1353d-4eb562d9602mr3378366e0c.15.1717791761530; Fri, 07 Jun 2024 13:22:41 -0700 (PDT) MIME-Version: 1.0 References: <20240607174718.18539-1-marcus@marcusspencer.xyz> In-Reply-To: From: Paul B Mahol Date: Fri, 7 Jun 2024 22:22:25 +0200 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH v10] avcodec: add farbfeld encoder, decoder and demuxer 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 Cc: Lynne 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: T24gRnJpLCBKdW4gNywgMjAyNCBhdCA4OjEy4oCvUE0gTHlubmUgdmlhIGZmbXBlZy1kZXZlbCA8 CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnPiB3cm90ZToKCj4gT24gMDcvMDYvMjAyNCAxOTo0Nywg TWFyY3VzIEIgU3BlbmNlciB3cm90ZToKPiA+IGZhcmJmZWxkIGlzIGFuIHVuY29tcHJlc3NlZCBp bWFnZSBmb3JtYXQgdGhhdCBpcyBhIHBhcnQgb2Ygc3Vja2xlc3MKPiA+IHRvb2xzIChodHRwczov L3Rvb2xzLnN1Y2tsZXNzLm9yZykuCj4gPgo+ID4gSXRzIGRvY3VtZW50YXRpb24gaXMgYXZhaWxh YmxlIGF0IGh0dHBzOi8vdG9vbHMuc3Vja2xlc3Mub3JnL2ZhcmJmZWxkLgo+ID4KPiA+IEFkZCBz dXBwb3J0IGZvciB0aGlzIGltYWdlIGZvcm1hdCBpbiBhdmNvZGVjIGFuZCBhdmZvcm1hdCwgYW5k IHVwZGF0ZQo+IHRoZSBpbWFnZTIKPiA+IGZvcm1hdCBhY2NvcmRpbmdseS4KPiA+Cj4gPiBTaWdu ZWQtb2ZmLWJ5OiBNYXJjdXMgQiBTcGVuY2VyIDxtYXJjdXNAbWFyY3Vzc3BlbmNlci54eXo+Cj4g PiAtLS0KPiA+ICAgQ2hhbmdlbG9nICAgICAgICAgICAgICAgICB8ICAxICsKPiA+ICAgZG9jL2dl bmVyYWxfY29udGVudHMudGV4aSB8ICAyICsKPiA+ICAgbGliYXZjb2RlYy9NYWtlZmlsZSAgICAg ICB8ICAyICsKPiA+ICAgbGliYXZjb2RlYy9hbGxjb2RlY3MuYyAgICB8ICAyICsKPiA+ICAgbGli YXZjb2RlYy9jb2RlY19kZXNjLmMgICB8ICA3ICsrKwo+ID4gICBsaWJhdmNvZGVjL2NvZGVjX2lk LmggICAgIHwgIDEgKwo+ID4gICBsaWJhdmNvZGVjL2ZhcmJmZWxkZGVjLmMgIHwgODIgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgIGxpYmF2Y29kZWMvZmFyYmZlbGRlbmMu YyAgfCA5NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ICAgbGli YXZjb2RlYy92ZXJzaW9uLmggICAgICB8ICA0ICstCj4gPiAgIGxpYmF2Zm9ybWF0L01ha2VmaWxl ICAgICAgfCAgMSArCj4gPiAgIGxpYmF2Zm9ybWF0L2FsbGZvcm1hdHMuYyAgfCAgMSArCj4gPiAg IGxpYmF2Zm9ybWF0L2ltZzIuYyAgICAgICAgfCAgMSArCj4gPiAgIGxpYmF2Zm9ybWF0L2ltZzJk ZWMuYyAgICAgfCAxNiArKysrKysrCj4gPiAgIGxpYmF2Zm9ybWF0L2ltZzJlbmMuYyAgICAgfCAg MiArLQo+ID4gICBsaWJhdmZvcm1hdC92ZXJzaW9uLmggICAgIHwgIDQgKy0KPiA+ICAgMTUgZmls ZXMgY2hhbmdlZCwgMjE3IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCj4gPiAgIGNyZWF0 ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL2ZhcmJmZWxkZGVjLmMKPiA+ICAgY3JlYXRlIG1vZGUg MTAwNjQ0IGxpYmF2Y29kZWMvZmFyYmZlbGRlbmMuYwo+ID4KPiA+IGRpZmYgLS1naXQgYS9DaGFu Z2Vsb2cgYi9DaGFuZ2Vsb2cKPiA+IGluZGV4IDAzZDZiMjlhZDguLjEwMmM3MThmZmMgMTAwNjQ0 Cj4gPiAtLS0gYS9DaGFuZ2Vsb2cKPiA+ICsrKyBiL0NoYW5nZWxvZwo+ID4gQEAgLTEyLDYgKzEy LDcgQEAgdmVyc2lvbiA8bmV4dD46Cj4gPiAgIC0gcXN2X3BhcmFtcyBvcHRpb24gYWRkZWQgZm9y IFFTViBlbmNvZGVycwo+ID4gICAtIFZWQyBkZWNvZGVyIGNvbXBhdGlibGUgd2l0aCBEVkIgdGVz dCBjb250ZW50Cj4gPiAgIC0geEhFLUFBQyBkZWNvZGVyCj4gPiArLSBmYXJiZmVsZCBlbmNvZGVy LCBkZWNvZGVyIGFuZCBkZW11eGVyCj4gPgo+ID4KPiA+ICAgdmVyc2lvbiA3LjA6Cj4gPiBkaWZm IC0tZ2l0IGEvZG9jL2dlbmVyYWxfY29udGVudHMudGV4aSBiL2RvYy9nZW5lcmFsX2NvbnRlbnRz LnRleGkKPiA+IGluZGV4IGU3Y2Y0ZjgyMzkuLmZhYjMwNjEwYTQgMTAwNjQ0Cj4gPiAtLS0gYS9k b2MvZ2VuZXJhbF9jb250ZW50cy50ZXhpCj4gPiArKysgYi9kb2MvZ2VuZXJhbF9jb250ZW50cy50 ZXhpCj4gPiBAQCAtODUzLDYgKzg1Myw4IEBAIGZvbGxvd2luZyBpbWFnZSBmb3JtYXRzIGFyZSBz dXBwb3J0ZWQ6Cj4gPiAgICAgICBAdGFiIFggUGl4TWFwIGltYWdlIGZvcm1hdAo+ID4gICBAaXRl bSBYV0QgIEB0YWIgWCBAdGFiIFgKPiA+ICAgICAgIEB0YWIgWCBXaW5kb3cgRHVtcCBpbWFnZSBm b3JtYXQKPiA+ICtAaXRlbSBGRiAgICAgICAgICAgQHRhYiBYIEB0YWIgWAo+ID4gKyAgICBAdGFi IGZhcmJmZWxkIHVuY29tcHJlc3NlZCBpbWFnZSBmb3JtYXQKPiA+ICAgQGVuZCBtdWx0aXRhYmxl Cj4gPgo+ID4gICBAY29kZXtYfSBtZWFucyB0aGF0IHRoZSBmZWF0dXJlIGluIHRoYXQgY29sdW1u IChlbmNvZGluZyAvIGRlY29kaW5nKQo+IGlzIHN1cHBvcnRlZC4KPiA+IGRpZmYgLS1naXQgYS9s aWJhdmNvZGVjL01ha2VmaWxlIGIvbGliYXZjb2RlYy9NYWtlZmlsZQo+ID4gaW5kZXggOGFiNDM5 OGI2Yy4uMDhhM2QzOWFmMCAxMDA2NDQKPiA+IC0tLSBhL2xpYmF2Y29kZWMvTWFrZWZpbGUKPiA+ ICsrKyBiL2xpYmF2Y29kZWMvTWFrZWZpbGUKPiA+IEBAIC0zNTYsNiArMzU2LDggQEAgT0JKUy0k KENPTkZJR19FU0NBUEUxMzBfREVDT0RFUikgICAgICAgKz0gZXNjYXBlMTMwLm8KPiA+ICAgT0JK Uy0kKENPTkZJR19FVlJDX0RFQ09ERVIpICAgICAgICAgICAgKz0gZXZyY2RlYy5vIGFjZWxwX3Zl Y3RvcnMubwo+IGxzcC5vCj4gPiAgIE9CSlMtJChDT05GSUdfRVhSX0RFQ09ERVIpICAgICAgICAg ICAgICs9IGV4ci5vIGV4cmRzcC5vIGhhbGYyZmxvYXQubwo+ID4gICBPQkpTLSQoQ09ORklHX0VY Ul9FTkNPREVSKSAgICAgICAgICAgICArPSBleHJlbmMubyBmbG9hdDJoYWxmLm8KPiA+ICtPQkpT LSQoQ09ORklHX0ZBUkJGRUxEX0RFQ09ERVIpICAgICAgICArPSBmYXJiZmVsZGRlYy5vCj4gPiAr T0JKUy0kKENPTkZJR19GQVJCRkVMRF9FTkNPREVSKSAgICAgICAgKz0gZmFyYmZlbGRlbmMubwo+ ID4gICBPQkpTLSQoQ09ORklHX0ZBU1RBVURJT19ERUNPREVSKSAgICAgICArPSBmYXN0YXVkaW8u bwo+ID4gICBPQkpTLSQoQ09ORklHX0ZGVjFfREVDT0RFUikgICAgICAgICAgICArPSBmZnYxZGVj Lm8gZmZ2MS5vCj4gPiAgIE9CSlMtJChDT05GSUdfRkZWMV9FTkNPREVSKSAgICAgICAgICAgICs9 IGZmdjFlbmMubyBmZnYxLm8KPiA+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2FsbGNvZGVjcy5j IGIvbGliYXZjb2RlYy9hbGxjb2RlY3MuYwo+ID4gaW5kZXggYjEwMmE4MDY5ZS4uOWY5ZWRhOGVj NiAxMDA2NDQKPiA+IC0tLSBhL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMKPiA+ICsrKyBiL2xpYmF2 Y29kZWMvYWxsY29kZWNzLmMKPiA+IEBAIC0xMTUsNiArMTE1LDggQEAgZXh0ZXJuIGNvbnN0IEZG Q29kZWMgZmZfZXNjYXBlMTI0X2RlY29kZXI7Cj4gPiAgIGV4dGVybiBjb25zdCBGRkNvZGVjIGZm X2VzY2FwZTEzMF9kZWNvZGVyOwo+ID4gICBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9leHJfZW5j b2RlcjsKPiA+ICAgZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfZXhyX2RlY29kZXI7Cj4gPiArZXh0 ZXJuIGNvbnN0IEZGQ29kZWMgZmZfZmFyYmZlbGRfZGVjb2RlcjsKPiA+ICtleHRlcm4gY29uc3Qg RkZDb2RlYyBmZl9mYXJiZmVsZF9lbmNvZGVyOwo+ID4gICBleHRlcm4gY29uc3QgRkZDb2RlYyBm Zl9mZnYxX2VuY29kZXI7Cj4gPiAgIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX2ZmdjFfZGVjb2Rl cjsKPiA+ICAgZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfZmZ2aHVmZl9lbmNvZGVyOwo+ID4gZGlm ZiAtLWdpdCBhL2xpYmF2Y29kZWMvY29kZWNfZGVzYy5jIGIvbGliYXZjb2RlYy9jb2RlY19kZXNj LmMKPiA+IGluZGV4IGEyOGVmNjgwNjEuLjMzZGJkMmNlOTQgMTAwNjQ0Cj4gPiAtLS0gYS9saWJh dmNvZGVjL2NvZGVjX2Rlc2MuYwo+ID4gKysrIGIvbGliYXZjb2RlYy9jb2RlY19kZXNjLmMKPiA+ IEBAIC0xOTU5LDYgKzE5NTksMTMgQEAgc3RhdGljIGNvbnN0IEFWQ29kZWNEZXNjcmlwdG9yCj4g Y29kZWNfZGVzY3JpcHRvcnNbXSA9IHsKPiA+ICAgICAgICAgICAubG9uZ19uYW1lID0gTlVMTF9J Rl9DT05GSUdfU01BTEwoIkxFQUQgTUNNUCIpLAo+ID4gICAgICAgICAgIC5wcm9wcyAgICAgPSBB Vl9DT0RFQ19QUk9QX0lOVFJBX09OTFkgfCBBVl9DT0RFQ19QUk9QX0xPU1NZLAo+ID4gICAgICAg fSwKPiA+ICsgICAgewo+ID4gKyAgICAgICAgLmlkICAgICAgICA9IEFWX0NPREVDX0lEX0ZBUkJG RUxELAo+ID4gKyAgICAgICAgLnR5cGUgICAgICA9IEFWTUVESUFfVFlQRV9WSURFTywKPiA+ICsg ICAgICAgIC5uYW1lICAgICAgPSAiZmFyYmZlbGQiLAo+ID4gKyAgICAgICAgLmxvbmdfbmFtZSA9 IE5VTExfSUZfQ09ORklHX1NNQUxMKCJmYXJiZmVsZCB1bmNvbXByZXNzZWQKPiBpbWFnZSIpLAo+ ID4gKyAgICAgICAgLnByb3BzICAgICA9IEFWX0NPREVDX1BST1BfSU5UUkFfT05MWSB8IEFWX0NP REVDX1BST1BfTE9TU0xFU1MsCj4gPiArICAgIH0sCj4gPgo+ID4gICAgICAgLyogdmFyaW91cyBQ Q00gImNvZGVjcyIgKi8KPiA+ICAgICAgIHsKPiA+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2Nv ZGVjX2lkLmggYi9saWJhdmNvZGVjL2NvZGVjX2lkLmgKPiA+IGluZGV4IDBhYjFlMzRhNjEuLmQ0 YjBkMjNmN2UgMTAwNjQ0Cj4gPiAtLS0gYS9saWJhdmNvZGVjL2NvZGVjX2lkLmgKPiA+ICsrKyBi L2xpYmF2Y29kZWMvY29kZWNfaWQuaAo+ID4gQEAgLTMyMiw2ICszMjIsNyBAQCBlbnVtIEFWQ29k ZWNJRCB7Cj4gPiAgICAgICBBVl9DT0RFQ19JRF9SVFYxLAo+ID4gICAgICAgQVZfQ09ERUNfSURf Vk1JWCwKPiA+ICAgICAgIEFWX0NPREVDX0lEX0xFQUQsCj4gPiArICAgIEFWX0NPREVDX0lEX0ZB UkJGRUxELAo+ID4KPiA+ICAgICAgIC8qIHZhcmlvdXMgUENNICJjb2RlY3MiICovCj4gPiAgICAg ICBBVl9DT0RFQ19JRF9GSVJTVF9BVURJTyA9IDB4MTAwMDAsICAgICAvLy88IEEgZHVtbXkgaWQg cG9pbnRpbmcgYXQKPiB0aGUgc3RhcnQgb2YgYXVkaW8gY29kZWNzCj4gPiBkaWZmIC0tZ2l0IGEv bGliYXZjb2RlYy9mYXJiZmVsZGRlYy5jIGIvbGliYXZjb2RlYy9mYXJiZmVsZGRlYy5jCj4gPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gaW5kZXggMDAwMDAwMDAwMC4uYjU2NzI3MjI1Ywo+ID4g LS0tIC9kZXYvbnVsbAo+ID4gKysrIGIvbGliYXZjb2RlYy9mYXJiZmVsZGRlYy5jCj4gPiBAQCAt MCwwICsxLDgyIEBACj4gPiArLyoKPiA+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjQgTWFyY3VzIEIg U3BlbmNlciA8bWFyY3VzQG1hcmN1c3NwZW5jZXIueHl6Pgo+ID4gKyAqCj4gPiArICogUGVybWlz c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KPiBv YnRhaW5pbmcgYSBjb3B5Cj4gPiArICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBk b2N1bWVudGF0aW9uIGZpbGVzICh0aGUKPiDigJxTb2Z0d2FyZeKAnSksIHRvCj4gPiArICogZGVh bCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQK PiBsaW1pdGF0aW9uIHRoZQo+ID4gKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy Z2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4gYW5kL29yCj4gPiArICogc2Vs bCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0 aGUKPiBTb2Z0d2FyZSBpcwo+ID4gKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0 aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gPiArICoKPiA+ICsgKiBUaGUgYWJvdmUgY29weXJp Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQo+IGluY2x1ZGVk IGluCj4gPiArICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29m dHdhcmUuCj4gPiArICoKPiA+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg4oCcQVMgSVPi gJ0sIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCj4gRVhQUkVTUyBPUgo+ID4gKyAqIElN UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKPiBN RVJDSEFOVEFCSUxJVFksCj4gPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug QU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQKPiBTSEFMTCBUSEUKPiA+ICsgKiBBVVRI T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VT IE9SCj4gT1RIRVIKPiA+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP TlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKPiBBUklTSU5HCj4gPiArICogRlJPTSwgT1VUIE9G IE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgo+ IERFQUxJTkdTCj4gPiArICogSU4gVEhFIFNPRlRXQVJFLgo+ID4gKyAqLwo+ID4gKwo+ID4gKyNp bmNsdWRlICJhdmNvZGVjLmgiCj4gPiArI2luY2x1ZGUgImJ5dGVzdHJlYW0uaCIKPiA+ICsjaW5j bHVkZSAiY29kZWNfaW50ZXJuYWwuaCIKPiA+ICsjaW5jbHVkZSAiZGVjb2RlLmgiCj4gPiArI2lu Y2x1ZGUgImxpYmF2dXRpbC9pbWd1dGlscy5oIgo+ID4gKyNpbmNsdWRlICJ0aHJlYWQuaCIKPiA+ ICsKPiA+ICtzdGF0aWMgaW50IGZhcmJmZWxkX2RlY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAq Y3R4LCBBVkZyYW1lICpwLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCAqZ290X2ZyYW1lLCBBVlBhY2tldCAqcGt0KQo+ID4gK3sKPiA+ICsgICAgaW50IHdpZHRoLCBo ZWlnaHQ7Cj4gPiArICAgIEdldEJ5dGVDb250ZXh0IGc7Cj4gPiArICAgIGludCByZXQ7Cj4gPiAr Cj4gPiArICAgIGJ5dGVzdHJlYW0yX2luaXQoJmcsIHBrdC0+ZGF0YSwgcGt0LT5zaXplKTsKPiA+ ICsgICAgYnl0ZXN0cmVhbTJfc2tpcCgmZywgOCk7Cj4gPiArCj4gPiArICAgIHdpZHRoICA9IGJ5 dGVzdHJlYW0yX2dldF9iZTMyKCZnKTsKPiA+ICsgICAgaGVpZ2h0ID0gYnl0ZXN0cmVhbTJfZ2V0 X2JlMzIoJmcpOwo+ID4gKwo+ID4gKyAgICBpZiAoKHJldCA9IGZmX3NldF9kaW1lbnNpb25zKGN0 eCwgd2lkdGgsIGhlaWdodCkpIDwgMCkKPiA+ICsgICAgICAgIHJldHVybiByZXQ7Cj4gPiArCj4g PiArICAgIGN0eC0+cGl4X2ZtdCA9IEFWX1BJWF9GTVRfUkdCQTY0QkU7Cj4gPiArCj4gPiArICAg IGlmIChjdHgtPnNraXBfZnJhbWUgPj0gQVZESVNDQVJEX0FMTCkKPiA+ICsgICAgICAgIHJldHVy biBwa3QtPnNpemU7Cj4gPiArCj4gPiArICAgIGlmICgocmV0ID0gZmZfdGhyZWFkX2dldF9idWZm ZXIoY3R4LCBwLCAwKSkgPCAwKQo+ID4gKyAgICAgICAgcmV0dXJuIHJldDsKPiA+ICsKPiA+ICsg ICAgaWYgKChyZXQgPSBhdl9pbWFnZV9nZXRfYnVmZmVyX3NpemUoY3R4LT5waXhfZm10LCB3aWR0 aCwgaGVpZ2h0LAo+IDEpKSA8IDApCj4gPiArICAgICAgICByZXR1cm4gcmV0Owo+ID4gKwo+ID4g KyAgICBpZiAoYnl0ZXN0cmVhbTJfZ2V0X2J5dGVzX2xlZnQoJmcpIDwgcmV0KQo+ID4gKyAgICAg ICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gPiArCj4gPiArICAgIGF2X2ltYWdlX2Zp bGxfYXJyYXlzKAo+ID4gKyAgICAgICAgcC0+ZGF0YSwKPiA+ICsgICAgICAgIHAtPmxpbmVzaXpl LAo+ID4gKyAgICAgICAgZy5idWZmZXIsCj4gPiArICAgICAgICBjdHgtPnBpeF9mbXQsCj4gPiAr ICAgICAgICB3aWR0aCwKPiA+ICsgICAgICAgIGhlaWdodCwKPiA+ICsgICAgICAgIDEKPiA+ICsg ICAgKTsKPiA+ICsKPiA+ICsgICAgKmdvdF9mcmFtZSA9IDE7Cj4gPiArCj4gPiArICAgIHJldHVy biBwa3QtPnNpemU7Cj4gPiArfQo+ID4gKwo+ID4gK2NvbnN0IEZGQ29kZWMgZmZfZmFyYmZlbGRf ZGVjb2RlciA9IHsKPiA+ICsgICAgLnAubmFtZSAgICAgICAgID0gImZhcmJmZWxkIiwKPiA+ICsg ICAgQ09ERUNfTE9OR19OQU1FKCJmYXJiZmVsZCB1bmNvbXByZXNzZWQgaW1hZ2UiKSwKPiA+ICsg ICAgLnAudHlwZSAgICAgICAgID0gQVZNRURJQV9UWVBFX1ZJREVPLAo+ID4gKyAgICAucC5pZCAg ICAgICAgICAgPSBBVl9DT0RFQ19JRF9GQVJCRkVMRCwKPiA+ICsgICAgLnAuY2FwYWJpbGl0aWVz ID0gQVZfQ09ERUNfQ0FQX0RSMSB8IEFWX0NPREVDX0NBUF9GUkFNRV9USFJFQURTLAo+ID4gKyAg ICBGRl9DT0RFQ19ERUNPREVfQ0IoZmFyYmZlbGRfZGVjb2RlX2ZyYW1lKSwKPiA+ICt9Owo+ID4g ZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvZmFyYmZlbGRlbmMuYyBiL2xpYmF2Y29kZWMvZmFyYmZl bGRlbmMuYwo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+IGluZGV4IDAwMDAwMDAwMDAuLjI4 MDEzMjQ4NTIKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL2xpYmF2Y29kZWMvZmFyYmZlbGRl bmMuYwo+ID4gQEAgLTAsMCArMSw5NiBAQAo+ID4gKy8qCj4gPiArICogQ29weXJpZ2h0IChjKSAy MDI0IE1hcmN1cyBCIFNwZW5jZXIgPG1hcmN1c0BtYXJjdXNzcGVuY2VyLnh5ej4KPiA+ICsgKgo+ ID4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBh bnkgcGVyc29uCj4gb2J0YWluaW5nIGEgY29weQo+ID4gKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5k IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCj4g4oCcU29mdHdhcmXigJ0pLCB0 bwo+ID4gKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1 ZGluZyB3aXRob3V0Cj4gbGltaXRhdGlvbiB0aGUKPiA+ICsgKiByaWdodHMgdG8gdXNlLCBjb3B5 LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+IGFuZC9v cgo+ID4gKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJz b25zIHRvIHdob20gdGhlCj4gU29mdHdhcmUgaXMKPiA+ICsgKiBmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+ID4gKyAqCj4gPiArICogVGhl IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg YmUKPiBpbmNsdWRlZCBpbgo+ID4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv bnMgb2YgdGhlIFNvZnR3YXJlLgo+ID4gKyAqCj4gPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJ REVEIOKAnEFTIElT4oCdLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAo+IEVYUFJFU1Mg T1IKPiA+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS QU5USUVTIE9GCj4gTUVSQ0hBTlRBQklMSVRZLAo+ID4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UCj4gU0hBTEwgVEhF Cj4gPiArICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBD TEFJTSwgREFNQUdFUyBPUgo+IE9USEVSCj4gPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFO IEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCj4gQVJJU0lORwo+ID4gKyAq IEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBV U0UgT1IgT1RIRVIKPiBERUFMSU5HUwo+ID4gKyAqIElOIFRIRSBTT0ZUV0FSRS4KPiA+ICsgKi8K PiA+ICsKPiA+ICsjaW5jbHVkZSAiYXZjb2RlYy5oIgo+ID4gKyNpbmNsdWRlICJieXRlc3RyZWFt LmgiCj4gPiArI2luY2x1ZGUgImNvZGVjX2ludGVybmFsLmgiCj4gPiArI2luY2x1ZGUgImVuY29k ZS5oIgo+ID4gKyNpbmNsdWRlICJsaWJhdnV0aWwvaW1ndXRpbHMuaCIKPiA+ICsKPiA+ICsjZGVm aW5lIEhFQURFUl9TSVpFIDE2Cj4gPiArI2RlZmluZSBQTEFORV9DT1VOVCA0IC8vIHJlcXVpcmVk IGJ5IGF2X2ltYWdlX2NvcHlfdG9fYnVmZmVyCj4gPiArCj4gPiArc3RhdGljIGludCBmYXJiZmVs ZF9lbmNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmN0eCwgQVZQYWNrZXQgKnBrdCwKPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBVkZyYW1lICpwLCBpbnQgKmdv dF9wYWNrZXQpCj4gPiArewo+ID4gKyAgICBpbnQgcmF3X2ltZ19zaXplID0gYXZfaW1hZ2VfZ2V0 X2J1ZmZlcl9zaXplKAo+ID4gKyAgICAgICAgcC0+Zm9ybWF0LAo+ID4gKyAgICAgICAgcC0+d2lk dGgsCj4gPiArICAgICAgICBwLT5oZWlnaHQsCj4gPiArICAgICAgICAxCj4gPiArICAgICk7Cj4g PiArICAgIGNvbnN0IHVpbnQ4X3QgKnBsYW5lc1s0XTsKPiA+ICsgICAgaW50NjRfdCBidWZfc2l6 ZTsKPiA+ICsgICAgdWludDhfdCAqYnVmOwo+ID4gKyAgICBpbnQgcmV0Owo+ID4gKwo+ID4gKyAg ICBpZiAocmF3X2ltZ19zaXplIDwgMCkKPiA+ICsgICAgICAgIHJldHVybiByYXdfaW1nX3NpemU7 Cj4gPiArCj4gPiArI2lmIElOVF9NQVggPiBJTlQ2NF9NQVggLSBIRUFERVJfU0laRQo+ID4gKyAg ICBpZiAocmF3X2ltZ19zaXplID4gSU5UNjRfTUFYIC0gSEVBREVSX1NJWkUpCj4gPiArICAgICAg ICByZXR1cm4gQVZFUlJPUihFUkFOR0UpOwo+ID4gKyNlbmRpZgo+ID4gKwo+ID4gKyAgICBidWZf c2l6ZSA9IChpbnQ2NF90KXJhd19pbWdfc2l6ZSArIEhFQURFUl9TSVpFOwo+ID4gKwo+ID4gKyAg ICBpZiAoKHJldCA9IGZmX2dldF9lbmNvZGVfYnVmZmVyKGN0eCwgcGt0LCBidWZfc2l6ZSwgMCkp IDwgMCkKPiA+ICsgICAgICAgIHJldHVybiByZXQ7Cj4gPiArCj4gPiArICAgIGJ1ZiA9IHBrdC0+ ZGF0YTsKPiA+ICsKPiA+ICsgICAgYnl0ZXN0cmVhbV9wdXRfYnVmZmVyKCZidWYsICJmYXJiZmVs ZCIsIDgpOwo+ID4gKwo+ID4gKyAgICBieXRlc3RyZWFtX3B1dF9iZTMyKCZidWYsIGN0eC0+d2lk dGgpOwo+ID4gKyAgICBieXRlc3RyZWFtX3B1dF9iZTMyKCZidWYsIGN0eC0+aGVpZ2h0KTsKPiA+ ICsKPiA+ICsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBQTEFORV9DT1VOVDsgKytpKQo+ID4gKyAg ICAgICAgcGxhbmVzW2ldID0gcC0+ZGF0YVtpXTsKPiA+ICsKPiA+ICsgICAgYXZfaW1hZ2VfY29w eV90b19idWZmZXIoCj4gPiArICAgICAgICBidWYsCj4gPiArICAgICAgICByYXdfaW1nX3NpemUs Cj4gPiArICAgICAgICBwbGFuZXMsCj4gPiArICAgICAgICBwLT5saW5lc2l6ZSwKPiA+ICsgICAg ICAgIHAtPmZvcm1hdCwKPiA+ICsgICAgICAgIHAtPndpZHRoLAo+ID4gKyAgICAgICAgcC0+aGVp Z2h0LAo+ID4gKyAgICAgICAgMQo+ID4gKyAgICApOwo+ID4gKwo+ID4gKyAgICAqZ290X3BhY2tl dCA9IDE7Cj4gPiArCj4gPiArICAgIHJldHVybiAwOwo+ID4gK30KPiA+ICsKPiA+ICtjb25zdCBG RkNvZGVjIGZmX2ZhcmJmZWxkX2VuY29kZXIgPSB7Cj4gPiArICAgIC5wLm5hbWUgICAgICAgICA9 ICJmYXJiZmVsZCIsCj4gPiArICAgIENPREVDX0xPTkdfTkFNRSgiZmFyYmZlbGQgdW5jb21wcmVz c2VkIGltYWdlIiksCj4gPiArICAgIC5wLnR5cGUgICAgICAgICA9IEFWTUVESUFfVFlQRV9WSURF TywKPiA+ICsgICAgLnAuaWQgICAgICAgICAgID0gQVZfQ09ERUNfSURfRkFSQkZFTEQsCj4gPiAr ICAgIC5wLmNhcGFiaWxpdGllcyA9IEFWX0NPREVDX0NBUF9EUjEgfCBBVl9DT0RFQ19DQVBfRlJB TUVfVEhSRUFEUywKPiA+ICsgICAgRkZfQ09ERUNfRU5DT0RFX0NCKGZhcmJmZWxkX2VuY29kZV9m cmFtZSksCj4gPiArICAgIC5wLnBpeF9mbXRzICAgICA9IChjb25zdCBlbnVtIEFWUGl4ZWxGb3Jt YXRbXSl7Cj4gPiArICAgICAgICBBVl9QSVhfRk1UX1JHQkE2NEJFLAo+ID4gKyAgICAgICAgQVZf UElYX0ZNVF9OT05FCj4gPiArICAgIH0sCj4gPiArfTsKPiA+IGRpZmYgLS1naXQgYS9saWJhdmNv ZGVjL3ZlcnNpb24uaCBiL2xpYmF2Y29kZWMvdmVyc2lvbi5oCj4gPiBpbmRleCAzOWRiZWMwMjA4 Li43YWNiMjYxYmIzIDEwMDY0NAo+ID4gLS0tIGEvbGliYXZjb2RlYy92ZXJzaW9uLmgKPiA+ICsr KyBiL2xpYmF2Y29kZWMvdmVyc2lvbi5oCj4gPiBAQCAtMjksOCArMjksOCBAQAo+ID4KPiA+ICAg I2luY2x1ZGUgInZlcnNpb25fbWFqb3IuaCIKPiA+Cj4gPiAtI2RlZmluZSBMSUJBVkNPREVDX1ZF UlNJT05fTUlOT1IgICA2Cj4gPiAtI2RlZmluZSBMSUJBVkNPREVDX1ZFUlNJT05fTUlDUk8gMTAx Cj4gPiArI2RlZmluZSBMSUJBVkNPREVDX1ZFUlNJT05fTUlOT1IgICA3Cj4gPiArI2RlZmluZSBM SUJBVkNPREVDX1ZFUlNJT05fTUlDUk8gMTAwCj4gPgo+ID4gICAjZGVmaW5lIExJQkFWQ09ERUNf VkVSU0lPTl9JTlQKPiBBVl9WRVJTSU9OX0lOVChMSUJBVkNPREVDX1ZFUlNJT05fTUFKT1IsIFwK PiA+Cj4gTElCQVZDT0RFQ19WRVJTSU9OX01JTk9SLCBcCj4gPiBkaWZmIC0tZ2l0IGEvbGliYXZm b3JtYXQvTWFrZWZpbGUgYi9saWJhdmZvcm1hdC9NYWtlZmlsZQo+ID4gaW5kZXggMWM0ZDlkZWNj ZC4uNTg4YTA5NzE0OSAxMDA2NDQKPiA+IC0tLSBhL2xpYmF2Zm9ybWF0L01ha2VmaWxlCj4gPiAr KysgYi9saWJhdmZvcm1hdC9NYWtlZmlsZQo+ID4gQEAgLTI4NCw2ICsyODQsNyBAQCBPQkpTLSQo Q09ORklHX0lNQUdFX0NSSV9QSVBFX0RFTVVYRVIpICAgICArPQo+IGltZzJkZWMubyBpbWcyLm8K PiA+ICAgT0JKUy0kKENPTkZJR19JTUFHRV9ERFNfUElQRV9ERU1VWEVSKSAgICAgKz0gaW1nMmRl Yy5vIGltZzIubwo+ID4gICBPQkpTLSQoQ09ORklHX0lNQUdFX0RQWF9QSVBFX0RFTVVYRVIpICAg ICArPSBpbWcyZGVjLm8gaW1nMi5vCj4gPiAgIE9CSlMtJChDT05GSUdfSU1BR0VfRVhSX1BJUEVf REVNVVhFUikgICAgICs9IGltZzJkZWMubyBpbWcyLm8KPiA+ICtPQkpTLSQoQ09ORklHX0lNQUdF X0ZBUkJGRUxEX1BJUEVfREVNVVhFUikrPSBpbWcyZGVjLm8gaW1nMi5vCj4gPiAgIE9CSlMtJChD T05GSUdfSU1BR0VfR0VNX1BJUEVfREVNVVhFUikgICAgICs9IGltZzJkZWMubyBpbWcyLm8KPiA+ ICAgT0JKUy0kKENPTkZJR19JTUFHRV9HSUZfUElQRV9ERU1VWEVSKSAgICAgKz0gaW1nMmRlYy5v IGltZzIubwo+ID4gICBPQkpTLSQoQ09ORklHX0lNQUdFX0hEUl9QSVBFX0RFTVVYRVIpICAgICAr PSBpbWcyZGVjLm8gaW1nMi5vCj4gPiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvYWxsZm9ybWF0 cy5jIGIvbGliYXZmb3JtYXQvYWxsZm9ybWF0cy5jCj4gPiBpbmRleCAzMDVmYTQ2NTMyLi42OTAw ZWU4MTk5IDEwMDY0NAo+ID4gLS0tIGEvbGliYXZmb3JtYXQvYWxsZm9ybWF0cy5jCj4gPiArKysg Yi9saWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMKPiA+IEBAIC01MzcsNiArNTM3LDcgQEAgZXh0ZXJu IGNvbnN0IEZGSW5wdXRGb3JtYXQKPiBmZl9pbWFnZV9jcmlfcGlwZV9kZW11eGVyOwo+ID4gICBl eHRlcm4gY29uc3QgRkZJbnB1dEZvcm1hdCAgZmZfaW1hZ2VfZGRzX3BpcGVfZGVtdXhlcjsKPiA+ ICAgZXh0ZXJuIGNvbnN0IEZGSW5wdXRGb3JtYXQgIGZmX2ltYWdlX2RweF9waXBlX2RlbXV4ZXI7 Cj4gPiAgIGV4dGVybiBjb25zdCBGRklucHV0Rm9ybWF0ICBmZl9pbWFnZV9leHJfcGlwZV9kZW11 eGVyOwo+ID4gK2V4dGVybiBjb25zdCBGRklucHV0Rm9ybWF0ICBmZl9pbWFnZV9mYXJiZmVsZF9w aXBlX2RlbXV4ZXI7Cj4gPiAgIGV4dGVybiBjb25zdCBGRklucHV0Rm9ybWF0ICBmZl9pbWFnZV9n ZW1fcGlwZV9kZW11eGVyOwo+ID4gICBleHRlcm4gY29uc3QgRkZJbnB1dEZvcm1hdCAgZmZfaW1h Z2VfZ2lmX3BpcGVfZGVtdXhlcjsKPiA+ICAgZXh0ZXJuIGNvbnN0IEZGSW5wdXRGb3JtYXQgIGZm X2ltYWdlX2hkcl9waXBlX2RlbXV4ZXI7Cj4gPiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvaW1n Mi5jIGIvbGliYXZmb3JtYXQvaW1nMi5jCj4gPiBpbmRleCA5OTgxODY3ZjgyLi43N2VkYzdmZjli IDEwMDY0NAo+ID4gLS0tIGEvbGliYXZmb3JtYXQvaW1nMi5jCj4gPiArKysgYi9saWJhdmZvcm1h dC9pbWcyLmMKPiA+IEBAIC05NSw2ICs5NSw3IEBACj4gPiAgICAgICBUQUcoUU9JLCAgICAgICAg ICAgICBxb2kgICAgICApIFwKPiA+ICAgICAgIFRBRyhSQURJQU5DRV9IRFIsICAgIGhkciAgICAg ICkgXAo+ID4gICAgICAgVEFHKFdCTVAsICAgICAgICAgICAgd2JtcCAgICAgKSBcCj4gPiArICAg IFRBRyhGQVJCRkVMRCwgICAgICAgIGZmICAgICAgICkgXAo+ID4gICAgICAgVEFHKE5PTkUsICAg ICAgICAgICAgICAgICAgICAgKQo+ID4KPiA+ICAgI2RlZmluZSBMRU5HVEhfQ0hFQ0soQ09ERUNJ RCwgU1RSKSBcCj4gPiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvaW1nMmRlYy5jIGIvbGliYXZm b3JtYXQvaW1nMmRlYy5jCj4gPiBpbmRleCBhNDA2NzVkNDM0Li43MDA5MWM3MGYyIDEwMDY0NAo+ ID4gLS0tIGEvbGliYXZmb3JtYXQvaW1nMmRlYy5jCj4gPiArKysgYi9saWJhdmZvcm1hdC9pbWcy ZGVjLmMKPiA+IEBAIC0xMjA1LDYgKzEyMDUsMjEgQEAgc3RhdGljIGludCB2Ym5fcHJvYmUoY29u c3QgQVZQcm9iZURhdGEgKnApCj4gPiAgICAgICByZXR1cm4gMDsKPiA+ICAgfQo+ID4KPiA+ICtz dGF0aWMgaW50IGZhcmJmZWxkX3Byb2JlKGNvbnN0IEFWUHJvYmVEYXRhICpwKQo+ID4gK3sKPiA+ ICsgICAgaWYgKHAtPmJ1Zl9zaXplIDwgMTYpCj4gPiArICAgICAgICByZXR1cm4gMDsKPiA+ICsK PiA+ICsgICAgaWYgKG1lbWNtcChwLT5idWYsICJmYXJiZmVsZCIsIDgpKQo+ID4gKyAgICAgICAg cmV0dXJuIDA7Cj4gPiArCj4gPiArICAgIC8vIGNoZWNrIGlmIHdpZHRoIG9yIGhlaWdodCBpcyB6 ZXJvCj4gPiArICAgIGlmIChBVl9SQjMyKHAtPmJ1ZiArIDgpID09IDAgfHwgQVZfUkIzMihwLT5i dWYgKyAxMikgPT0gMCkKPiA+ICsgICAgICAgIHJldHVybiAwOwo+ID4gKwo+ID4gKyAgICByZXR1 cm4gQVZQUk9CRV9TQ09SRV9NQVggLSAxOwo+ID4gK30KPiA+ICsKPiA+ICAgI2RlZmluZSBJTUFH RUFVVE9fREVNVVhFUl8wKGltZ25hbWUsIGNvZGVjaWQpCj4gPiAgICNkZWZpbmUgSU1BR0VBVVRP X0RFTVVYRVJfMShpbWduYW1lLCBjb2RlY2lkKVwKPiA+ICAgY29uc3QgRkZJbnB1dEZvcm1hdCBm Zl9pbWFnZV8gIyMgaW1nbmFtZSAjIyBfcGlwZV9kZW11eGVyID0ge1wKPiA+IEBAIC0xMjM0LDYg KzEyNDksNyBAQCBJTUFHRUFVVE9fREVNVVhFUihjcmksICAgICAgIENSSSkKPiA+ICAgSU1BR0VB VVRPX0RFTVVYRVIoZGRzLCAgICAgICBERFMpCj4gPiAgIElNQUdFQVVUT19ERU1VWEVSKGRweCwg ICAgICAgRFBYKQo+ID4gICBJTUFHRUFVVE9fREVNVVhFUihleHIsICAgICAgIEVYUikKPiA+ICtJ TUFHRUFVVE9fREVNVVhFUihmYXJiZmVsZCwgIEZBUkJGRUxEKQo+ID4gICBJTUFHRUFVVE9fREVN VVhFUihnZW0sICAgICAgIEdFTSkKPiA+ICAgSU1BR0VBVVRPX0RFTVVYRVIoZ2lmLCAgICAgICBH SUYpCj4gPiAgIElNQUdFQVVUT19ERU1VWEVSX0VYVChoZHIsICAgUkFESUFOQ0VfSERSLCBIRFIp Cj4gPiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvaW1nMmVuYy5jIGIvbGliYXZmb3JtYXQvaW1n MmVuYy5jCj4gPiBpbmRleCA1MjZhMTFlNWVlLi4xMzM1NWE2ZmFkIDEwMDY0NAo+ID4gLS0tIGEv bGliYXZmb3JtYXQvaW1nMmVuYy5jCj4gPiArKysgYi9saWJhdmZvcm1hdC9pbWcyZW5jLmMKPiA+ IEBAIC0yNzYsNyArMjc2LDcgQEAgY29uc3QgRkZPdXRwdXRGb3JtYXQgZmZfaW1hZ2UyX211eGVy ID0gewo+ID4gICAgICAgLnAubG9uZ19uYW1lICAgID0gTlVMTF9JRl9DT05GSUdfU01BTEwoImlt YWdlMiBzZXF1ZW5jZSIpLAo+ID4gICAgICAgLnAuZXh0ZW5zaW9ucyAgID0KPiAiYm1wLGRweCxl eHIsamxzLGpwZWcsanBnLGp4bCxsanBnLHBhbSxwYm0scGN4LHBmbSxwZ20scGdteXV2LHBobSwi Cj4gPgo+ICAicG5nLHBwbSxzZ2ksdGdhLHRpZix0aWZmLGpwMixqMmMsajJrLHh3ZCxzdW4scmFz LHJzLGltMSxpbTgsIgo+ID4gLQo+ICJpbTI0LHN1bnJhcyx2Ym4seGJtLHhmYWNlLHBpeCx5LGF2 aWYscW9pLGhkcix3Ym1wIiwKPiA+ICsKPiAiaW0yNCxzdW5yYXMsdmJuLHhibSx4ZmFjZSxwaXgs eSxhdmlmLHFvaSxoZHIsd2JtcCxmZiIsCj4gPiAgICAgICAucHJpdl9kYXRhX3NpemUgPSBzaXpl b2YoVmlkZW9NdXhEYXRhKSwKPiA+ICAgICAgIC5wLnZpZGVvX2NvZGVjICA9IEFWX0NPREVDX0lE X01KUEVHLAo+ID4gICAgICAgLndyaXRlX2hlYWRlciAgID0gd3JpdGVfaGVhZGVyLAo+ID4gZGlm ZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L3ZlcnNpb24uaCBiL2xpYmF2Zm9ybWF0L3ZlcnNpb24uaAo+ ID4gaW5kZXggNDY4N2NkODU3Yy4uYWY3ZDBhMTAyNCAxMDA2NDQKPiA+IC0tLSBhL2xpYmF2Zm9y bWF0L3ZlcnNpb24uaAo+ID4gKysrIGIvbGliYXZmb3JtYXQvdmVyc2lvbi5oCj4gPiBAQCAtMzEs OCArMzEsOCBAQAo+ID4KPiA+ICAgI2luY2x1ZGUgInZlcnNpb25fbWFqb3IuaCIKPiA+Cj4gPiAt I2RlZmluZSBMSUJBVkZPUk1BVF9WRVJTSU9OX01JTk9SICAgMwo+ID4gLSNkZWZpbmUgTElCQVZG T1JNQVRfVkVSU0lPTl9NSUNSTyAxMDQKPiA+ICsjZGVmaW5lIExJQkFWRk9STUFUX1ZFUlNJT05f TUlOT1IgICA0Cj4gPiArI2RlZmluZSBMSUJBVkZPUk1BVF9WRVJTSU9OX01JQ1JPIDEwMAo+ID4K PiA+ICAgI2RlZmluZSBMSUJBVkZPUk1BVF9WRVJTSU9OX0lOVAo+IEFWX1ZFUlNJT05fSU5UKExJ QkFWRk9STUFUX1ZFUlNJT05fTUFKT1IsIFwKPiA+Cj4gTElCQVZGT1JNQVRfVkVSU0lPTl9NSU5P UiwgXAo+Cj4gU2luY2UgdGhlICJjb2RlYyIgaXMgZXNzZW50aWFsbHkganVzdCByYXcgZGF0YSwg eW91IHNob3VsZCBqdXN0IG1ha2UgdGhlCj4gZGVtdXhlciBvdXRwdXQgbmF0aXZlIFJHQkE2NCwg YW5kIHRoZSBtdXhlciBhY2NlcHQgUkdCQTY0LiBUaGVyZSdzIG5vCj4gcmVhc29uIHRvIGhhdmUg dGhpcyBhcyBhIGNvZGVjLCBzaW5jZSB0aGUgaGVhZGVyIGZpZWxkIGlzIGNvbXBsZXRlbHkKPiBy ZWR1bmRhbnQgd2l0aCB0aGUgZmllbGRzIGFuIEFWRnJhbWUgY29udGFpbnMuCj4KPiBQbHVzLCB5 b3UgYXZvaWQgYWxsIGNvcGllcyBlbnRpcmVseSBpbiB0aGlzIHdheS4KPgoKQnV0IGVhY2ggc2lu Z2xlIGZyYW1lIGhhdmUgaGVhZGVyIGFuZCBkaW1lbnNpb25zIGluIGl0LgpBbHNvIHBpcGUgZGVt dXhlciB3aWxsIG5lZWQgcGFyc2VyLCBpdHMgdHJpdmlhbCB0byB3cml0ZSBvbmUgZm9yIHRoaXMK Zm9ybWF0LgoKCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcK PiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKPgo+IFRv IHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbAo+IGZmbXBlZy1kZXZlbC1y ZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCj4KX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxp bmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1h bi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3Zl LCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAi dW5zdWJzY3JpYmUiLgo=