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 3F4E1406A8 for ; Sun, 27 Feb 2022 12:40:18 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 95BAD68B0E7; Sun, 27 Feb 2022 14:40:17 +0200 (EET) Received: from mail-oo1-f43.google.com (mail-oo1-f43.google.com [209.85.161.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8AF0668B0E9 for ; Sun, 27 Feb 2022 14:40:10 +0200 (EET) Received: by mail-oo1-f43.google.com with SMTP id i10-20020a4aab0a000000b002fccf890d5fso14573459oon.5 for ; Sun, 27 Feb 2022 04:40:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:content-language:to :references:from:subject:in-reply-to:content-transfer-encoding; bh=IUoYFJqeOGj3l9IzkS4IrNrVhII2TVOnoQlvdNcT4SE=; b=ZQhFJRz5f5cnyFSay9w2iqKZ7sQKZqgVlYPj9n1ts6in++FA/gcwDROCtDeUAhDhw3 cidhX3E0Ko2xw3c67Smzw4ANJnI827hxkQT/nm8GbEMBx+sgthU9YdsiScG0iPlcAO3l gXbAR+ZWjZzEkvzhVc5Y57Pw7H83S3gAr2YzdlVunXlgdW3Tlo3bfT8fmnm/JkH3yAV1 raf/ixn5o+0hhzNGr6V+zU8vT6YzKnargn7pPZ8wFY3lquLBDc8X4EcDlh+3hREzL0x9 lZNJd2g9220XJDMvUbja7TrbYNf79xkswees294PCGkH8m51ceF4czrGNSg2K1TS6Qqm HsbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent :content-language:to:references:from:subject:in-reply-to :content-transfer-encoding; bh=IUoYFJqeOGj3l9IzkS4IrNrVhII2TVOnoQlvdNcT4SE=; b=eg90L1PTfCUc5DlIjH5WpYJRjYIzeRkT+JBzhVMt/043G13gdGl7lcmwgJJa4OVgcG ptTIoB5Rzc18UeiYqXiLYRZRKC+v3gT0U6IwwTr5KDbzJlqKklpSEWpGGLNw8cFaGbgR 0/7Tsmp0ZJg+3KSfgpCMfnfwL7CparM1JZ0N0CEeEZGxr5J7A039lsNnK/CKUneEo1KI E2xuIgGvD/sGmbQ4zdT8/q3mb5JQjDrPkC+/Y8StE1Pbn9O6ne7QBAQlf9d09JDp3l8b IBlzHzHm2vncItgYIL9CT9PAXIs8DHw9QkEADoLtoZ1pQ5AHnrav9EI/gRVWRWu8eRrt d+mQ== X-Gm-Message-State: AOAM533Sd0TUaZla6VsZWKY4yTqo04IHN3LlpncTSR37WFLcsH/oi43+ OH9YP0ruAbgLfQR7Jj3m169jTV+/mIxZOg== X-Google-Smtp-Source: ABdhPJwAhGJH2nEwgwQfOIR9liUZDT3Vyls+Z7I+Y6FZSrXQ5AWuCZs8jFaVUZAcD4PDnaOxOLhk3A== X-Received: by 2002:a05:6870:6019:b0:d3:cb2d:d408 with SMTP id t25-20020a056870601900b000d3cb2dd408mr5620520oaa.210.1645965607906; Sun, 27 Feb 2022 04:40:07 -0800 (PST) Received: from [192.168.0.10] ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id n22-20020a056870e41600b000d6d4ac3c64sm3148273oag.39.2022.02.27.04.40.06 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 27 Feb 2022 04:40:07 -0800 (PST) Message-ID: Date: Sun, 27 Feb 2022 09:40:06 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <63a183b7-98e4-314a-9444-a6197edf18e5@gmail.com> From: James Almer In-Reply-To: <63a183b7-98e4-314a-9444-a6197edf18e5@gmail.com> Subject: Re: [FFmpeg-devel] [PATCH v4 1/2] libavcodec: Added DFPWM1a codec 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: T24gMi8yNy8yMDIyIDU6NTUgQU0sIEphY2sgQnJ1aWVubmUgd3JvdGU6Cj4gCj4gIEZyb20gdGhl IHdpa2kgcGFnZSAoaHR0cHM6Ly93aWtpLnZleGF0b3MuY29tL2RmcHdtKToKPj4gREZQV00gKER5 bmFtaWMgRmlsdGVyIFB1bHNlIFdpZHRoIE1vZHVsYXRpb24pIGlzIGFuIGF1ZGlvIGNvZGVjCj4+ IGNyZWF0ZWQgYnkgQmVuIOKAnEdyZWFzZU1vbmtleeKAnSBSdXNzZWxsIGluIDIwMTIsIG9yaWdp bmFsbHkgdG8gYmUgdXNlZAo+PiBhcyBhIHZvaWNlIGNvZGVjIGZvciBhc2lla2llcmthJ3MgcGl4 bWVzcywgYSBDIHJlbWFrZSBvZiA2NHBpeGVscy4KPj4gSXQgaXMgYSAxLWJpdC1wZXItc2FtcGxl IGNvZGVjIHdoaWNoIHVzZXMgYSBkeW5hbWljLXN0cmVuZ3RoIG9uZS1wb2xlCj4+IGxvdy1wYXNz IGZpbHRlciBhcyBhIHByZWRpY3Rvci4gRHVlIHRvIHRoZSBmYWN0IHRoYXQgYSByYXcgRFBGV00g ZGVjb2RpbmcKPj4gY3JlYXRlcyBhIGhpZ2gtcGl0Y2hlZCB3aGluZSwgaXQgaXMgb2Z0ZW4gZm9s bG93ZWQgYnkgc29tZSAKPj4gcG9zdC1wcm9jZXNzaW5nCj4+IGZpbHRlcnMgdG8gbWFrZSB0aGUg c3RyZWFtIG1vcmUgbGlzdGVuYWJsZS4KPiAKPiBJdCBoYXMgcmVjZW50bHkgZ2FpbmVkIHBvcHVs YXJpdHkgdGhyb3VnaCB0aGUgQ29tcHV0ZXJDcmFmdCBtb2QgZm9yCj4gTWluZWNyYWZ0LCB3aGlj aCBhZGRlZCBzdXBwb3J0IGZvciBhdWRpbyB0aHJvdWdoIHRoaXMgY29kZWMsIGFzIHdlbGwgYXMK PiB0aGUgQ29tcHV0cm9uaWNzIGV4cGFuc2lvbiB3aGljaCBwcmVjZWVkZWQgdGhlIG9mZmljaWFs IHN1cHBvcnQuIFRoZXNlCj4gYm90aCBpbXBsZW1lbnQgdGhlIHNsaWdodGx5IGFkanVzdGVkIDFh IHZlcnNpb24gb2YgdGhlIGNvZGVjLCB3aGljaCBpcwo+IHRoZSB2ZXJzaW9uIEkgaGF2ZSBjaG9z ZW4gZm9yIHRoaXMgcGF0Y2guCj4gCj4gVGhpcyBwYXRjaCBhZGRzIGEgbmV3IGNvZGVjICh3aXRo IGVuY29kaW5nIGFuZCBkZWNvZGluZykgZm9yIERGUFdNMWEuCj4gVGhlIGNvZGVjIHNvdXJjZXMg YXJlIHByZXR0eSBzaW1wbGU6IHRoZXkgdXNlIHRoZSByZWZlcmVuY2UgY29kZWMgd2l0aAo+IGEg YmFzaWMgd3JhcHBlciB0byBjb25uZWN0IGl0IHRvIHRoZSBGRm1wZWcgQVZDb2RlYyBzeXN0ZW0u Cj4gCj4gVG8gY2xhcmlmeSwgdGhlIGNvZGVjIGRvZXMgbm90IGhhdmUgYSBzcGVjaWZpYyBzYW1w bGUgcmF0ZSAtIGl0IGlzCj4gcHJvdmlkZWQgYnkgdGhlIGNvbnRhaW5lciAob3IgdXNlciksIHdo aWNoIGlzIHR5cGljYWxseSA0ODAwMCwgYnV0IGhhcwo+IGFsc28gYmVlbiBrbm93biB0byBiZSAz Mjc2OC4gVGhlIGNvZGVjIGRvZXMgbm90IHNwZWNpZnkgY2hhbm5lbCBpbmZvCj4gZWl0aGVyLCBh bmQgaXQncyBwcmV0dHkgbXVjaCBhbHdheXMgdXNlZCB3aXRoIG9uZSBtb25vIGNoYW5uZWwuCj4g SG93ZXZlciwgc2luY2UgaXQgYXBwZWFycyB0aGF0IGxpYmF2Y29kZWMgZXhwZWN0cyBib3RoIHNh bXBsZSByYXRlIGFuZAo+IGNoYW5uZWwgY291bnQgdG8gYmUgaGFuZGxlZCBieSBlaXRoZXIgdGhl IGNvZGVjIG9yIGNvbnRhaW5lciwgSSBoYXZlCj4gbWFkZSB0aGUgZGVjaXNpb24gdG8gYWxsb3cg bXVsdGlwbGUgY2hhbm5lbHMgaW50ZXJsZWF2ZWQsIHdoaWNoIGFzIGZhcgo+IGFzIEkga25vdyBo YXMgbmV2ZXIgYmVlbiB1c2VkLCBidXQgaXQgd29ya3MgZmluZSBoZXJlIG5ldmVydGhlbGVzcy4g VGhlCj4gYWNjb21wYW55aW5nIHJhdyBmb3JtYXQgaGFzIGEgY2hhbm5lbHMgb3B0aW9uIHRvIHNl dCB0aGlzLiAoSSBleHBlY3QKPiBtb3N0IHVzZXJzIG9mIHRoaXMgd2lsbCBub3QgdXNlIG11bHRp cGxlIGNoYW5uZWxzLCBidXQgaXQgcmVtYWlucyBhbgo+IG9wdGlvbiBqdXN0IGluIGNhc2UuKQo+ IAo+IFRoaXMgcGF0Y2ggd2lsbCBiZSBoaWdobHkgdXNlZnVsIHRvIENvbXB1dGVyQ3JhZnQgZGV2 ZWxvcGVycyB3aG8gYXJlCj4gd29ya2luZyB3aXRoIGF1ZGlvLCBhcyBpdCBpcyB0aGUgc3RhbmRh cmQgZm9ybWF0IGZvciBhdWRpbywgYW5kIHRoZXJlCj4gYXJlIGZldyB1c2VyLWZyaWVuZGx5IGVu Y29kZXJzIG91dCB0aGVyZSwgYW5kIGV2ZW4gZmV3ZXIgZGVjb2RlcnMuIEl0Cj4gd2lsbCBzdHJl YW1saW5lIHRoZSBwcm9jZXNzIGZvciBpbXBvcnRpbmcgYW5kIGxpc3RlbmluZyB0byBhdWRpbywg Cj4gcmVwbGFjaW5nIHRoZSBuZWVkIHRvIHdyaXRlIGNvZGUgb3IgdXNlIHRvb2xzIHRoYXQgcmVx dWlyZSB2ZXJ5Cj4gc3BlY2lmaWMgaW5wdXQgZm9ybWF0cy4KPiAKPiBZb3UgbWF5IHVzZSB0aGUg Q3JhZnRPUy1QQyBwcm9ncmFtIChodHRwczovL3d3dy5jcmFmdG9zLXBjLmNjKSB0byB0ZXN0Cj4g b3V0IERGUFdNIHBsYXliYWNrLiBUbyB1c2UgaXQsIHJ1biB0aGUgcHJvZ3JhbSBhbmQgdHlwZSB0 aGlzIGNvbW1hbmQ6Cj4gImF0dGFjaCBsZWZ0IHNwZWFrZXIiIFRoZW4gcnVuICJzcGVha2VyIHBs YXkgPGZpbGUuZGZwd20+IiBmb3IgZWFjaCBmaWxlLgo+IFRoZSBhcHAgcnVucyBpbiBhIHNhbmRi b3gsIHNvIGZpbGVzIGhhdmUgdG8gYmUgdHJhbnNmZXJyZWQgaW4gZmlyc3Q7Cj4gdGhlIGVhc2ll c3Qgd2F5IHRvIGRvIHRoaXMgaXMgdG8gc2ltcGx5IGRyYWcgdGhlIGZpbGUgb24gdGhlIHdpbmRv dy4KPiAoT3IgY29weSBmaWxlcyB0byB0aGUgZm9sZGVyIGF0IGh0dHBzOi8vd3d3LmNyYWZ0b3Mt cGMuY2MvZG9jcy9zYXZlcy4pCj4gCj4gU2FtcGxlIERGUFdNIGZpbGVzIGNhbiBiZSBnZW5lcmF0 ZWQgd2l0aCBhbiBvbmxpbmUgdG9vbCBhdAo+IGh0dHBzOi8vbXVzaWMubWFkZWZvci5jYy4gVGhp cyBpcyB0aGUgY3VycmVudCBiZXN0IHdheSB0byBlbmNvZGUgREZQV00KPiBmaWxlcy4gU2ltcGx5 IGRyYWcgYW4gYXVkaW8gZmlsZSBvbnRvIHRoZSBwYWdlLCBhbmQgaXQgd2lsbCBlbmNvZGUgaXQs Cj4gZ2l2aW5nIGEgZG93bmxvYWQgbGluayBvbiB0aGUgcGFnZS4KPiAKPiBJJ3ZlIG1hZGUgc3Vy ZSB0byB1cGRhdGUgYWxsIG9mIHRoZSBkb2NzIGFzIHBlciBEZXZlbG9wZXLCpzcsIGFuZCBJJ3Zl Cj4gdGVzdGVkIGl0IGFzIHBlciBzZWN0aW9uIDguIFRlc3QgZmlsZXMgZW5jb2RlZCB0byBERlBX TSBwbGF5IGNvcnJlY3RseQo+IGluIENvbXB1dGVyQ3JhZnQsIGFuZCBvdGhlciBmaWxlcyB0aGF0 IHdvcmsgaW4gQ0MgYXJlIGNvcnJlY3RseSBkZWNvZGVkLgo+IEkgaGF2ZSBhbHNvIHZlcmlmaWVk IHRoYXQgY29ycnVwdCBmaWxlcyBkbyBub3QgY3Jhc2ggdGhlIGRlY29kZXIgLSB0aGlzCj4gc2hv dWxkIHRoZW9yZXRpY2FsbHkgbm90IGJlIGFuIGlzc3VlIGFzIHRoZSByZXN1bHQgc2l6ZSBpcyBj b25zdGFudCB3aXRoCj4gcmVzcGVjdCB0byB0aGUgaW5wdXQgc2l6ZS4KPiAKPiBDaGFuZ2VzIHNp bmNlIHYzOgo+IEFkZGVkIHN1cHBvcnQgZm9yIG11bHRpcGxlIGludGVybGVhdmVkIGNoYW5uZWxz LCBhbmQgY2xlYW5lZCB1cCB0aGUKPiBjb2RlIGEgYnVuY2guCj4gCj4gQ2hhbmdlcyBzaW5jZSB2 MjoKPiBJJ3ZlIGZvdW5kIHRoYXQgdGhlIHJlZmVyZW5jZSBlbmNvZGVyIGhhcyBhIGZldyBlcnJv cnMsIGFuZCBzb3VuZHMKPiB3b3JzZSB0aGFuIHRoZSBKYXZhLWJhc2VkIGltcGxlbWVudGF0aW9u IHRoYXQgaXMgdXNlZCBtb3N0IG9mdGVuLiBJIGdvdAo+IGluIGNvbnRhY3Qgd2l0aCBzb21lb25l IHdobyBrbm93cyBERlBXTSBtdWNoIGJldHRlciB0aGFuIEkgZG8sIGFuZCBJCj4gd29ya2VkIHdp dGggdGhlbSB0byBtYWtlIGEgZmV3IGFkanVzdG1lbnRzIHRoYXQgc2hvdWxkIGltcHJvdmUgdGhl Cj4gYXVkaW8gcXVhbGl0eS4gSSBhbHNvIG1hZGUgc3VyZSB0aGF0IHRoZSBvdXRwdXQgbWF0Y2hl cyB0aGUgSmF2YQo+IGNvZGVjIGV4YWN0bHksIHNvIGl0IHNob3VsZCBoYXZlIHRoZSBleGFjdCBz YW1lIHF1YWxpdHkgYXMgb3RoZXIgY29kZWNzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEphY2sgQnJ1 aWVubmUgPGphY2ticnVpZW5uZUBnbWFpbC5jb20+Cj4gLS0tCj4gIMKgQ2hhbmdlbG9nwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMSArCj4gIMKgTUFJTlRBSU5FUlPCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDEgKwo+ICDCoGRvYy9nZW5lcmFsX2NvbnRl bnRzLnRleGkgfMKgwqAgMSArCj4gIMKgbGliYXZjb2RlYy9NYWtlZmlsZcKgwqDCoMKgwqDCoCB8 wqDCoCAyICsKPiAgwqBsaWJhdmNvZGVjL2FsbGNvZGVjcy5jwqDCoMKgIHzCoMKgIDIgKwo+ICDC oGxpYmF2Y29kZWMvY29kZWNfZGVzYy5jwqDCoCB8wqDCoCA3ICsrKwo+ICDCoGxpYmF2Y29kZWMv Y29kZWNfaWQuaMKgwqDCoMKgIHzCoMKgIDEgKwo+ICDCoGxpYmF2Y29kZWMvZGZwd21kZWMuY8Kg wqDCoMKgIHwgMTI3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIMKg bGliYXZjb2RlYy9kZnB3bWVuYy5jwqDCoMKgwqAgfCAxMjEgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCj4gIMKgbGliYXZjb2RlYy91dGlscy5jwqDCoMKgwqDCoMKgwqAgfMKg wqAgMiArCj4gIMKgbGliYXZjb2RlYy92ZXJzaW9uLmjCoMKgwqDCoMKgIHzCoMKgIDIgKy0KPiAg wqAxMSBmaWxlcyBjaGFuZ2VkLCAyNjYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ICDC oGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL2RmcHdtZGVjLmMKPiAgwqBjcmVhdGUgbW9k ZSAxMDA2NDQgbGliYXZjb2RlYy9kZnB3bWVuYy5jCgo+IGRpZmYgLS1naXQgYS9DaGFuZ2Vsb2cg Yi9DaGFuZ2Vsb2cKPiBpbmRleCA1YWQyY2VmLi41MTcwYTZhIDEwMDY0NAo+IC0tLSBhL0NoYW5n ZWxvZwo+ICsrKyBiL0NoYW5nZWxvZwo+IEBAIC00LDYgKzQsNyBAQCByZWxlYXNlcyBhcmUgc29y dGVkIGZyb20geW91bmdlc3QgdG8gb2xkZXN0Lgo+ICB2ZXJzaW9uIDUuMToKPiAgLSBkaWFsb2d1 ZSBlbmhhbmNlIGF1ZGlvIGZpbHRlcgo+ICAtIGRyb3BwZWQgb2Jzb2xldGUgWHZNQyBod2FjY2Vs Cj4gKy0gREZQV00gYXVkaW8gZW5jb2Rlci9kZWNvZGVyCj4gIAo+ICAKPiAgdmVyc2lvbiA1LjA6 Cj4gZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKPiBpbmRleCBmMzNjY2Jk Li41N2I2ZjMzIDEwMDY0NAo+IC0tLSBhL01BSU5UQUlORVJTCj4gKysrIGIvTUFJTlRBSU5FUlMK PiBAQCAtMTYxLDYgKzE2MSw3IEBAIENvZGVjczoKPiAgICBjc2NkLmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJlaW1hciBEb2VmZmluZ2VyCj4gICAgY3V2aWRkZWMuYyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBUaW1vIFJvdGhlbnBpZWxlcgo+ICAgIGRjYSogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZm9vODYKPiArICBkZnB3bSogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEphY2sgQnJ1aWVubmUKPiAgICBkaXJhYyogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJvc3Rpc2xhdiBQZWhsaXZhbm92Cj4gICAgZG54aGQqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBCYXB0aXN0ZSBDb3VkdXJpZXIKPiAgICBkb2xieV9lKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbzg2Cj4gZGlmZiAtLWdpdCBhL2RvYy9nZW5l cmFsX2NvbnRlbnRzLnRleGkgYi9kb2MvZ2VuZXJhbF9jb250ZW50cy50ZXhpCj4gaW5kZXggZGYx NjkyYy4uMTRhZWFlZCAxMDA2NDQKPiAtLS0gYS9kb2MvZ2VuZXJhbF9jb250ZW50cy50ZXhpCj4g KysrIGIvZG9jL2dlbmVyYWxfY29udGVudHMudGV4aQo+IEBAIC0xMTk0LDYgKzExOTQsNyBAQCBm b2xsb3dpbmcgaW1hZ2UgZm9ybWF0cyBhcmUgc3VwcG9ydGVkOgo+ICBAaXRlbSBDUkkgSENBICAg ICAgICAgICAgICAgIEB0YWIgICAgIEB0YWIgWAo+ICBAaXRlbSBEZWxwaGluZSBTb2Z0d2FyZSBJ bnRlcm5hdGlvbmFsIENJTiBhdWRpbyAgQHRhYiAgICAgQHRhYiAgWAo+ICAgICAgQHRhYiBDb2Rl YyB1c2VkIGluIERlbHBoaW5lIFNvZnR3YXJlIEludGVybmF0aW9uYWwgZ2FtZXMuCj4gK0BpdGVt IERGUFdNICAgICAgICAgICAgICAgICAgQHRhYiAgWCAgQHRhYiAgWAo+ICBAaXRlbSBEaWdpdGFs IFNwZWVjaCBTdGFuZGFyZCAtIFN0YW5kYXJkIFBsYXkgbW9kZSAoRFNTIFNQKSBAdGFiICAgICBA dGFiICBYCj4gIEBpdGVtIERpc2N3b3JsZCBJSSBCTVYgQXVkaW8gQHRhYiAgICAgQHRhYiAgWAo+ ICBAaXRlbSBDT09LICAgICAgICAgICAgICAgICAgIEB0YWIgICAgIEB0YWIgIFgKPiBkaWZmIC0t Z2l0IGEvbGliYXZjb2RlYy9NYWtlZmlsZSBiL2xpYmF2Y29kZWMvTWFrZWZpbGUKPiBpbmRleCA2 MDc2YjRhLi43NDc0MjIwIDEwMDY0NAo+IC0tLSBhL2xpYmF2Y29kZWMvTWFrZWZpbGUKPiArKysg Yi9saWJhdmNvZGVjL01ha2VmaWxlCj4gQEAgLTI4OSw2ICsyODksOCBAQCBPQkpTLSQoQ09ORklH X0RFUkZfRFBDTV9ERUNPREVSKSAgICAgICArPSBkcGNtLm8KPiAgT0JKUy0kKENPTkZJR19ESVJB Q19ERUNPREVSKSAgICAgICAgICAgKz0gZGlyYWNkZWMubyBkaXJhYy5vIGRpcmFjZHNwLm8gZGly YWN0YWIubyBcCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRp cmFjX2FyaXRoLm8gZGlyYWNfZHd0Lm8gZGlyYWNfdmxjLm8KPiAgT0JKUy0kKENPTkZJR19ERkFf REVDT0RFUikgICAgICAgICAgICAgKz0gZGZhLm8KPiArT0JKUy0kKENPTkZJR19ERlBXTV9ERUNP REVSKSAgICAgICAgICAgKz0gZGZwd21kZWMubwo+ICtPQkpTLSQoQ09ORklHX0RGUFdNX0VOQ09E RVIpICAgICAgICAgICArPSBkZnB3bWVuYy5vCj4gIE9CSlMtJChDT05GSUdfRE5YSERfREVDT0RF UikgICAgICAgICAgICs9IGRueGhkZGVjLm8gZG54aGRkYXRhLm8KPiAgT0JKUy0kKENPTkZJR19E TlhIRF9FTkNPREVSKSAgICAgICAgICAgKz0gZG54aGRlbmMubyBkbnhoZGRhdGEubwo+ICBPQkpT LSQoQ09ORklHX0RPTEJZX0VfREVDT0RFUikgICAgICAgICArPSBkb2xieV9lLm8gZG9sYnlfZV9w YXJzZS5vIGtiZHdpbi5vCj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMgYi9s aWJhdmNvZGVjL2FsbGNvZGVjcy5jCj4gaW5kZXggZDFlMTAxOS4uYzNhMGMyNiAxMDA2NDQKPiAt LS0gYS9saWJhdmNvZGVjL2FsbGNvZGVjcy5jCj4gKysrIGIvbGliYXZjb2RlYy9hbGxjb2RlY3Mu Ywo+IEBAIC00MzcsNiArNDM3LDggQEAgZXh0ZXJuIGNvbnN0IEFWQ29kZWMgZmZfYm12X2F1ZGlv X2RlY29kZXI7Cj4gIGV4dGVybiBjb25zdCBBVkNvZGVjIGZmX2Nvb2tfZGVjb2RlcjsKPiAgZXh0 ZXJuIGNvbnN0IEFWQ29kZWMgZmZfZGNhX2VuY29kZXI7Cj4gIGV4dGVybiBjb25zdCBBVkNvZGVj IGZmX2RjYV9kZWNvZGVyOwo+ICtleHRlcm4gY29uc3QgQVZDb2RlYyBmZl9kZnB3bV9lbmNvZGVy Owo+ICtleHRlcm4gY29uc3QgQVZDb2RlYyBmZl9kZnB3bV9kZWNvZGVyOwo+ICBleHRlcm4gY29u c3QgQVZDb2RlYyBmZl9kb2xieV9lX2RlY29kZXI7Cj4gIGV4dGVybiBjb25zdCBBVkNvZGVjIGZm X2RzZF9sc2JmX2RlY29kZXI7Cj4gIGV4dGVybiBjb25zdCBBVkNvZGVjIGZmX2RzZF9tc2JmX2Rl Y29kZXI7Cj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvY29kZWNfZGVzYy5jIGIvbGliYXZjb2Rl Yy9jb2RlY19kZXNjLmMKPiBpbmRleCA3MjVjNjg3Li44MWYzYjNjIDEwMDY0NAo+IC0tLSBhL2xp YmF2Y29kZWMvY29kZWNfZGVzYy5jCj4gKysrIGIvbGliYXZjb2RlYy9jb2RlY19kZXNjLmMKPiBA QCAtMzIzNyw2ICszMjM3LDEzIEBAIHN0YXRpYyBjb25zdCBBVkNvZGVjRGVzY3JpcHRvciBjb2Rl Y19kZXNjcmlwdG9yc1tdID0gewo+ICAgICAgICAgIC5sb25nX25hbWUgPSBOVUxMX0lGX0NPTkZJ R19TTUFMTCgiTVNOIFNpcmVuIiksCj4gICAgICAgICAgLnByb3BzICAgICA9IEFWX0NPREVDX1BS T1BfSU5UUkFfT05MWSB8IEFWX0NPREVDX1BST1BfTE9TU1ksCj4gICAgICB9LAo+ICsgICAgewo+ ICsgICAgICAgIC5pZCAgICAgICAgPSBBVl9DT0RFQ19JRF9ERlBXTSwKPiArICAgICAgICAudHlw ZSAgICAgID0gQVZNRURJQV9UWVBFX0FVRElPLAo+ICsgICAgICAgIC5uYW1lICAgICAgPSAiZGZw d20iLAo+ICsgICAgICAgIC5sb25nX25hbWUgPSBOVUxMX0lGX0NPTkZJR19TTUFMTCgiREZQV00g KER5bmFtaWMgRmlsdGVyIFB1bHNlIFdpZHRoIE1vZHVsYXRpb24pIiksCj4gKyAgICAgICAgLnBy b3BzICAgICA9IEFWX0NPREVDX1BST1BfTE9TU1ksCj4gKyAgICB9LAo+ICAKPiAgICAgIC8qIHN1 YnRpdGxlIGNvZGVjcyAqLwo+ICAgICAgewo+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2NvZGVj X2lkLmggYi9saWJhdmNvZGVjL2NvZGVjX2lkLmgKPiBpbmRleCBhYjI2NWVjLi4zZmZiOWJkIDEw MDY0NAo+IC0tLSBhL2xpYmF2Y29kZWMvY29kZWNfaWQuaAo+ICsrKyBiL2xpYmF2Y29kZWMvY29k ZWNfaWQuaAo+IEBAIC01MTYsNiArNTE2LDcgQEAgZW51bSBBVkNvZGVjSUQgewo+ICAgICAgQVZf Q09ERUNfSURfSENBLAo+ICAgICAgQVZfQ09ERUNfSURfRkFTVEFVRElPLAo+ICAgICAgQVZfQ09E RUNfSURfTVNOU0lSRU4sCj4gKyAgICBBVl9DT0RFQ19JRF9ERlBXTSwKPiAgCj4gICAgICAvKiBz dWJ0aXRsZSBjb2RlY3MgKi8KPiAgICAgIEFWX0NPREVDX0lEX0ZJUlNUX1NVQlRJVExFID0gMHgx NzAwMCwgICAgICAgICAgLy8vPCBBIGR1bW15IElEIHBvaW50aW5nIGF0IHRoZSBzdGFydCBvZiBz dWJ0aXRsZSBjb2RlY3MuCj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvZGZwd21kZWMuYyBiL2xp YmF2Y29kZWMvZGZwd21kZWMuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAw MC4uMjM3YzI3Mwo+IC0tLSAvZGV2L251bGwKPiArKysgYi9saWJhdmNvZGVjL2RmcHdtZGVjLmMK PiBAQCAtMCwwICsxLDEyNyBAQAo+ICsvKgo+ICsgKiBERlBXTSBkZWNvZGVyCj4gKyAqIENvcHly aWdodCAoYykgMjAyMiBKYWNrIEJydWllbm5lCj4gKyAqIENvcHlyaWdodCAoYykgMjAxMiwgMjAx NiBCZW4gIkdyZWFzZU1vbmtleSIgUnVzc2VsbAo+ICsgKgo+ICsgKiBUaGlzIGZpbGUgaXMgcGFy dCBvZiBGRm1wZWcuCj4gKyAqCj4gKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKPiArICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+ICsgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKPiArICogdmVyc2lvbiAy LjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u Cj4gKyAqCj4gKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAo+ICsgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo+ICsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQo+ICsgKiBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+ICsgKgo+ICsgKiBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj Cj4gKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy ZWUgU29mdHdhcmUKPiArICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG aWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQo+ICsgKi8KPiArCj4gKy8qKgo+ ICsgKiBAZmlsZQo+ICsgKiBERlBXTTFhIGRlY29kZXIKPiArICovCj4gKwo+ICsjaW5jbHVkZSAi bGliYXZ1dGlsL2ludGVybmFsLmgiCj4gKyNpbmNsdWRlICJhdmNvZGVjLmgiCj4gKyNpbmNsdWRl ICJjb2RlY19pZC5oIgo+ICsjaW5jbHVkZSAiaW50ZXJuYWwuaCIKPiArCj4gK3R5cGVkZWYgc3Ry dWN0IHsKPiArICAgIGludCBmcSwgcSwgcywgbHQ7Cj4gK30gREZQV01TdGF0ZTsKPiArCj4gKy8v IERGUFdNIGNvZGVjIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL0NoZW5UaHJlYWQvZGZwd20vYmxv Yi9tYXN0ZXIvMWEvCj4gKy8vIExpY2Vuc2VkIGluIHRoZSBwdWJsaWMgZG9tYWluCj4gKwo+ICtz dGF0aWMgdm9pZCBhdV9kZWNvbXByZXNzKERGUFdNU3RhdGUgKnN0YXRlLCBpbnQgZnMsIGludCBs ZW4sIHVpbnQ4X3QgKm91dGJ1ZiwgdWludDhfdCAqaW5idWYpCj4gK3sKPiArICAgIHVuc2lnbmVk IGQ7Cj4gKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7Cj4gKyAgICAgICAgLy8g Z2V0IGJpdHMKPiArICAgICAgICBkID0gKihpbmJ1ZisrKTsKPiArICAgICAgICBmb3IgKGludCBq ID0gMDsgaiA8IDg7IGorKykgewo+ICsgICAgICAgICAgICBpbnQgbnEsIGxxLCBzdCwgbnMsIG92 Owo+ICsgICAgICAgICAgICAvLyBzZXQgdGFyZ2V0Cj4gKyAgICAgICAgICAgIGludCB0ID0gKChk JjEpID8gMTI3IDogLTEyOCk7Cj4gKyAgICAgICAgICAgIGQgPj49IDE7Cj4gKwo+ICsgICAgICAg ICAgICAvLyBhZGp1c3QgY2hhcmdlCj4gKyAgICAgICAgICAgIG5xID0gc3RhdGUtPnEgKyAoKHN0 YXRlLT5zICogKHQtc3RhdGUtPnEpICsgNTEyKT4+MTApOwo+ICsgICAgICAgICAgICBpZihucSA9 PSBzdGF0ZS0+cSAmJiBucSAhPSB0KQo+ICsgICAgICAgICAgICAgICAgbnEgKz0gKHQgPT0gMTI3 ID8gMSA6IC0xKTsKPiArICAgICAgICAgICAgbHEgPSBzdGF0ZS0+cTsKPiArICAgICAgICAgICAg c3RhdGUtPnEgPSBucTsKPiArCj4gKyAgICAgICAgICAgIC8vIGFkanVzdCBzdHJlbmd0aAo+ICsg ICAgICAgICAgICBzdCA9ICh0ICE9IHN0YXRlLT5sdCA/IDAgOiAxMDIzKTsKPiArICAgICAgICAg ICAgbnMgPSBzdGF0ZS0+czsKPiArICAgICAgICAgICAgaWYobnMgIT0gc3QpCj4gKyAgICAgICAg ICAgICAgICBucyArPSAoc3QgIT0gMCA/IDEgOiAtMSk7Cj4gKyAgICAgICAgICAgIGlmKG5zIDwg OCkgbnMgPSA4Owo+ICsgICAgICAgICAgICBzdGF0ZS0+cyA9IG5zOwo+ICsKPiArICAgICAgICAg ICAgLy8gRklMVEVSOiBwZXJmb3JtIGFudGlqZXJrCj4gKyAgICAgICAgICAgIG92ID0gKHQgIT0g c3RhdGUtPmx0ID8gKG5xK2xxKzEpPj4xIDogbnEpOwo+ICsKPiArICAgICAgICAgICAgLy8gRklM VEVSOiBwZXJmb3JtIExQRgo+ICsgICAgICAgICAgICBzdGF0ZS0+ZnEgKz0gKChmcyoob3Ytc3Rh dGUtPmZxKSArIDB4ODApPj44KTsKPiArICAgICAgICAgICAgb3YgPSBzdGF0ZS0+ZnE7Cj4gKwo+ ICsgICAgICAgICAgICAvLyBvdXRwdXQgc2FtcGxlCj4gKyAgICAgICAgICAgICoob3V0YnVmKysp ID0gb3YgKyAxMjg7Cj4gKwo+ICsgICAgICAgICAgICBzdGF0ZS0+bHQgPSB0Owo+ICsgICAgICAg IH0KPiArICAgIH0KPiArfQo+ICsKPiArc3RhdGljIGF2X2NvbGQgaW50IGRmcHdtX2RlY19pbml0 KHN0cnVjdCBBVkNvZGVjQ29udGV4dCAqY3R4KQo+ICt7Cj4gKyAgICBERlBXTVN0YXRlICpzdGF0 ZSA9IGN0eC0+cHJpdl9kYXRhOwo+ICsKPiArICAgIHN0YXRlLT5mcSA9IDA7Cj4gKyAgICBzdGF0 ZS0+cSA9IDA7Cj4gKyAgICBzdGF0ZS0+cyA9IDA7Cj4gKyAgICBzdGF0ZS0+bHQgPSAtMTI4Owo+ ICsKPiArICAgIGN0eC0+c2FtcGxlX2ZtdCA9IEFWX1NBTVBMRV9GTVRfVTg7Cj4gKyAgICBjdHgt PmJpdHNfcGVyX3Jhd19zYW1wbGUgPSA4Owo+ICsKPiArICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ ICtzdGF0aWMgaW50IGRmcHdtX2RlY19mcmFtZShzdHJ1Y3QgQVZDb2RlY0NvbnRleHQgKmN0eCwg dm9pZCAqZGF0YSwKPiArICAgIGludCAqZ290X2ZyYW1lLCBzdHJ1Y3QgQVZQYWNrZXQgKnBhY2tl dCkKPiArewo+ICsgICAgREZQV01TdGF0ZSAqc3RhdGUgPSBjdHgtPnByaXZfZGF0YTsKPiArICAg IEFWRnJhbWUgKmZyYW1lID0gZGF0YTsKPiArICAgIGludCByZXQ7Cj4gKyAgICAKPiArICAgIGZy YW1lLT5uYl9zYW1wbGVzID0gcGFja2V0LT5zaXplICogOCAvIGN0eC0+Y2hhbm5lbHM7CgpZb3Ug bmVlZCB0byBhYm9ydCBpZiBjdHgtPmNoYW5uZWxzIDw9IDAgaW4gZGZwd21fZGVjX2luaXQoKSBu b3cgdGhhdCAKdGhpcyBkZWNvZGVyIGRvZXNuJ3Qgc2V0IGl0IGFuZCBkZXBlbmRzIG9uIHRoZSBj b250YWluZXIgKG9yIHRoZSB1c2VyKSAKZG9pbmcgc28uIE90aGVyd2lzZSB0aGlzIGNhbiBlbmQg dXAgaW4gYSBkaXZpc2lvbiBieSAwLgoKPiArICAgIHJldCA9IGZmX2dldF9idWZmZXIoY3R4LCBm cmFtZSwgMCk7Cj4gKyAgICBpZiAocmV0KSB7Cj4gKyAgICAgICAgKmdvdF9mcmFtZSA9IDA7Cj4g KyAgICAgICAgcmV0dXJuIHJldDsKPiArICAgIH0KPiArCj4gKyAgICBhdV9kZWNvbXByZXNzKHN0 YXRlLCAxNDAsIHBhY2tldC0+c2l6ZSwgZnJhbWUtPmRhdGFbMF0sIHBhY2tldC0+ZGF0YSk7Cj4g Kwo+ICsgICAgKmdvdF9mcmFtZSA9IDE7Cj4gKyAgICByZXR1cm4gcGFja2V0LT5zaXplOwo+ICt9 Cj4gKwo+ICtjb25zdCBBVkNvZGVjIGZmX2RmcHdtX2RlY29kZXIgPSB7Cj4gKyAgICAubmFtZSAg ICAgICAgICAgPSAiZGZwd20iLAo+ICsgICAgLmxvbmdfbmFtZSAgICAgID0gTlVMTF9JRl9DT05G SUdfU01BTEwoIkRGUFdNMWEgYXVkaW8iKSwKPiArICAgIC50eXBlICAgICAgICAgICA9IEFWTUVE SUFfVFlQRV9BVURJTywKPiArICAgIC5pZCAgICAgICAgICAgICA9IEFWX0NPREVDX0lEX0RGUFdN LAo+ICsgICAgLnByaXZfZGF0YV9zaXplID0gc2l6ZW9mKERGUFdNU3RhdGUpLAo+ICsgICAgLmlu aXQgICAgICAgICAgID0gZGZwd21fZGVjX2luaXQsCj4gKyAgICAuZGVjb2RlICAgICAgICAgPSBk ZnB3bV9kZWNfZnJhbWUsCj4gKyAgICAuY2FwYWJpbGl0aWVzICAgPSBBVl9DT0RFQ19DQVBfRFIx LAo+ICsgICAgLmNhcHNfaW50ZXJuYWwgID0gRkZfQ09ERUNfQ0FQX0lOSVRfVEhSRUFEU0FGRSwK PiArfTsKPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9kZnB3bWVuYy5jIGIvbGliYXZjb2RlYy9k ZnB3bWVuYy5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi4wMmYyZTY0 Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2xpYmF2Y29kZWMvZGZwd21lbmMuYwo+IEBAIC0wLDAg KzEsMTIxIEBACj4gKy8qCj4gKyAqIERGUFdNIGVuY29kZXIKPiArICogQ29weXJpZ2h0IChjKSAy MDIyIEphY2sgQnJ1aWVubmUKPiArICogQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE2IEJlbiAiR3Jl YXNlTW9ua2V5IiBSdXNzZWxsCj4gKyAqCj4gKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBl Zy4KPiArICoKPiArICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vcgo+ICsgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg TGVzc2VyIEdlbmVyYWwgUHVibGljCj4gKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgo+ICsgKiB2ZXJzaW9uIDIuMSBvZiB0aGUg TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiArICoKPiAr ICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCj4gKyAqIExlc3NlciBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4gKyAqCj4gKyAqIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPiArICogTGlj ZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy ZQo+ICsgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y LCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCj4gKyAqLwo+ICsKPiArLyoqCj4gKyAqIEBmaWxl Cj4gKyAqIERGUFdNMWEgZW5jb2Rlcgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlICJsaWJhdnV0aWwv aW50ZXJuYWwuaCIKPiArI2luY2x1ZGUgImF2Y29kZWMuaCIKPiArI2luY2x1ZGUgImNvZGVjX2lk LmgiCj4gKyNpbmNsdWRlICJlbmNvZGUuaCIKPiArI2luY2x1ZGUgImludGVybmFsLmgiCj4gKwo+ ICt0eXBlZGVmIHN0cnVjdCB7Cj4gKyAgICBpbnQgZnEsIHEsIHMsIGx0Owo+ICt9IERGUFdNU3Rh dGU7Cj4gKwo+ICsvLyBERlBXTSBjb2RlYyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9DaGVuVGhy ZWFkL2RmcHdtL2Jsb2IvbWFzdGVyLzFhLwo+ICsvLyBMaWNlbnNlZCBpbiB0aGUgcHVibGljIGRv bWFpbgo+ICsKPiArLy8gbm90ZSwgbGVuIGRlbm90ZXMgaG93IG1hbnkgY29tcHJlc3NlZCBieXRl cyB0aGVyZSBhcmUgKHVuY29tcHJlc3NlZCBieXRlcyAvIDgpLgo+ICtzdGF0aWMgdm9pZCBhdV9j b21wcmVzcyhERlBXTVN0YXRlICpzdGF0ZSwgaW50IGxlbiwgdWludDhfdCAqb3V0YnVmLCB1aW50 OF90ICppbmJ1ZikKPiArewo+ICsgICAgdW5zaWduZWQgZCA9IDA7Cj4gKyAgICBmb3IgKGludCBp ID0gMDsgaSA8IGxlbjsgaSsrKSB7Cj4gKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCA4OyBq KyspIHsKPiArICAgICAgICAgICAgaW50IG5xLCBzdCwgbnM7Cj4gKyAgICAgICAgICAgIC8vIGdl dCBzYW1wbGUKPiArICAgICAgICAgICAgaW50IHYgPSAqKGluYnVmKyspIC0gMTI4Owo+ICsgICAg ICAgICAgICAvLyBzZXQgYml0IC8gdGFyZ2V0Cj4gKyAgICAgICAgICAgIGludCB0ID0gKHYgPiBz dGF0ZS0+cSB8fCAodiA9PSBzdGF0ZS0+cSAmJiB2ID09IDEyNykgPyAxMjcgOiAtMTI4KTsKPiAr ICAgICAgICAgICAgZCA+Pj0gMTsKPiArICAgICAgICAgICAgaWYodCA+IDApCj4gKyAgICAgICAg ICAgICAgICBkIHw9IDB4ODA7Cj4gKwo+ICsgICAgICAgICAgICAvLyBhZGp1c3QgY2hhcmdlCj4g KyAgICAgICAgICAgIG5xID0gc3RhdGUtPnEgKyAoKHN0YXRlLT5zICogKHQtc3RhdGUtPnEpICsg NTEyKT4+MTApOwo+ICsgICAgICAgICAgICBpZihucSA9PSBzdGF0ZS0+cSAmJiBucSAhPSB0KQo+ ICsgICAgICAgICAgICAgICAgbnEgKz0gKHQgPT0gMTI3ID8gMSA6IC0xKTsKPiArICAgICAgICAg ICAgc3RhdGUtPnEgPSBucTsKPiArCj4gKyAgICAgICAgICAgIC8vIGFkanVzdCBzdHJlbmd0aAo+ ICsgICAgICAgICAgICBzdCA9ICh0ICE9IHN0YXRlLT5sdCA/IDAgOiAxMDIzKTsKPiArICAgICAg ICAgICAgbnMgPSBzdGF0ZS0+czsKPiArICAgICAgICAgICAgaWYobnMgIT0gc3QpCj4gKyAgICAg ICAgICAgICAgICBucyArPSAoc3QgIT0gMCA/IDEgOiAtMSk7Cj4gKyAgICAgICAgICAgIGlmKG5z IDwgOCkgbnMgPSA4Owo+ICsgICAgICAgICAgICBzdGF0ZS0+cyA9IG5zOwo+ICsKPiArICAgICAg ICAgICAgc3RhdGUtPmx0ID0gdDsKPiArICAgICAgICB9Cj4gKwo+ICsgICAgICAgIC8vIG91dHB1 dCBiaXRzCj4gKyAgICAgICAgKihvdXRidWYrKykgPSBkOwo+ICsgICAgfQo+ICt9Cj4gKwo+ICtz dGF0aWMgYXZfY29sZCBpbnQgZGZwd21fZW5jX2luaXQoc3RydWN0IEFWQ29kZWNDb250ZXh0ICpj dHgpCj4gK3sKPiArICAgIERGUFdNU3RhdGUgKnN0YXRlID0gY3R4LT5wcml2X2RhdGE7Cj4gKwo+ ICsgICAgc3RhdGUtPmZxID0gMDsKPiArICAgIHN0YXRlLT5xID0gMDsKPiArICAgIHN0YXRlLT5z ID0gMDsKPiArICAgIHN0YXRlLT5sdCA9IC0xMjg7Cj4gKwo+ICsgICAgY3R4LT5iaXRzX3Blcl9j b2RlZF9zYW1wbGUgPSAxOwo+ICsKPiArICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMg aW50IGRmcHdtX2VuY19mcmFtZShzdHJ1Y3QgQVZDb2RlY0NvbnRleHQgKmN0eCwgc3RydWN0IEFW UGFja2V0ICpwYWNrZXQsCj4gKyAgICBjb25zdCBzdHJ1Y3QgQVZGcmFtZSAqZnJhbWUsIGludCAq Z290X3BhY2tldCkKPiArewo+ICsgICAgREZQV01TdGF0ZSAqc3RhdGUgPSBjdHgtPnByaXZfZGF0 YTsKPiArICAgIGludCBzaXplID0gZnJhbWUtPm5iX3NhbXBsZXMgKiBmcmFtZS0+Y2hhbm5lbHMg LyA4ICsgKGZyYW1lLT5uYl9zYW1wbGVzICUgOCA+IDAgPyAxIDogMCk7Cj4gKyAgICBpbnQgcmV0 ID0gZmZfZ2V0X2VuY29kZV9idWZmZXIoY3R4LCBwYWNrZXQsIHNpemUsIDApOwo+ICsKPiArICAg IGlmIChyZXQpIHsKPiArICAgICAgICAqZ290X3BhY2tldCA9IDA7Cj4gKyAgICAgICAgcmV0dXJu IHJldDsKPiArICAgIH0KPiArCj4gKyAgICBhdV9jb21wcmVzcyhzdGF0ZSwgc2l6ZSwgcGFja2V0 LT5kYXRhLCBmcmFtZS0+ZGF0YVswXSk7Cj4gKwo+ICsgICAgKmdvdF9wYWNrZXQgPSAxOwo+ICsg ICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gK2NvbnN0IEFWQ29kZWMgZmZfZGZwd21fZW5jb2RlciA9 IHsKPiArICAgIC5uYW1lICAgICAgICAgICAgPSAiZGZwd20iLAo+ICsgICAgLmxvbmdfbmFtZSAg ICAgICA9IE5VTExfSUZfQ09ORklHX1NNQUxMKCJERlBXTTFhIGF1ZGlvIiksCj4gKyAgICAudHlw ZSAgICAgICAgICAgID0gQVZNRURJQV9UWVBFX0FVRElPLAo+ICsgICAgLmlkICAgICAgICAgICAg ICA9IEFWX0NPREVDX0lEX0RGUFdNLAo+ICsgICAgLnByaXZfZGF0YV9zaXplICA9IHNpemVvZihE RlBXTVN0YXRlKSwKPiArICAgIC5pbml0ICAgICAgICAgICAgPSBkZnB3bV9lbmNfaW5pdCwKPiAr ICAgIC5lbmNvZGUyICAgICAgICAgPSBkZnB3bV9lbmNfZnJhbWUsCj4gKyAgICAuc2FtcGxlX2Zt dHMgICAgID0gKGNvbnN0IGVudW0gQVZTYW1wbGVGb3JtYXRbXSl7QVZfU0FNUExFX0ZNVF9VOCwg QVZfU0FNUExFX0ZNVF9OT05FfSwKPiArICAgIC5jYXBhYmlsaXRpZXMgICAgPSBBVl9DT0RFQ19D QVBfRFIxIHwgQVZfQ09ERUNfQ0FQX1ZBUklBQkxFX0ZSQU1FX1NJWkUsCj4gKyAgICAuY2Fwc19p bnRlcm5hbCAgID0gRkZfQ09ERUNfQ0FQX0lOSVRfVEhSRUFEU0FGRSwKPiArfTsKPiBkaWZmIC0t Z2l0IGEvbGliYXZjb2RlYy91dGlscy5jIGIvbGliYXZjb2RlYy91dGlscy5jCj4gaW5kZXggNmY5 ZDkwYS4uMDY2ZGE3NiAxMDA2NDQKPiAtLS0gYS9saWJhdmNvZGVjL3V0aWxzLmMKPiArKysgYi9s aWJhdmNvZGVjL3V0aWxzLmMKPiBAQCAtNTc3LDYgKzU3Nyw4IEBAIGVudW0gQVZDb2RlY0lEIGF2 X2dldF9wY21fY29kZWMoZW51bSBBVlNhbXBsZUZvcm1hdCBmbXQsIGludCBiZSkKPiAgaW50IGF2 X2dldF9iaXRzX3Blcl9zYW1wbGUoZW51bSBBVkNvZGVjSUQgY29kZWNfaWQpCj4gIHsKPiAgICAg IHN3aXRjaCAoY29kZWNfaWQpIHsKPiArICAgIGNhc2UgQVZfQ09ERUNfSURfREZQV006Cj4gKyAg ICAgICAgcmV0dXJuIDE7Cj4gICAgICBjYXNlIEFWX0NPREVDX0lEX0FEUENNX1NCUFJPXzI6Cj4g ICAgICAgICAgcmV0dXJuIDI7Cj4gICAgICBjYXNlIEFWX0NPREVDX0lEX0FEUENNX1NCUFJPXzM6 Cj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdmVyc2lvbi5oIGIvbGliYXZjb2RlYy92ZXJzaW9u LmgKPiBpbmRleCBkOTAwNTAzLi44NGYzOTc5IDEwMDY0NAo+IC0tLSBhL2xpYmF2Y29kZWMvdmVy c2lvbi5oCj4gKysrIGIvbGliYXZjb2RlYy92ZXJzaW9uLmgKPiBAQCAtMjgsNyArMjgsNyBAQAo+ ICAjaW5jbHVkZSAibGliYXZ1dGlsL3ZlcnNpb24uaCIKPiAgCj4gICNkZWZpbmUgTElCQVZDT0RF Q19WRVJTSU9OX01BSk9SICA1OQo+IC0jZGVmaW5lIExJQkFWQ09ERUNfVkVSU0lPTl9NSU5PUiAg MjEKPiArI2RlZmluZSBMSUJBVkNPREVDX1ZFUlNJT05fTUlOT1IgIDIyCj4gICNkZWZpbmUgTElC QVZDT0RFQ19WRVJTSU9OX01JQ1JPIDEwMAo+ICAKPiAgI2RlZmluZSBMSUJBVkNPREVDX1ZFUlNJ T05fSU5UICBBVl9WRVJTSU9OX0lOVChMSUJBVkNPREVDX1ZFUlNJT05fTUFKT1IsIFwKPiAKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVs IG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcv bWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5r IGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3Vi amVjdCAidW5zdWJzY3JpYmUiLgo=