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 CE0DD411F6 for ; Tue, 15 Nov 2022 10:44:06 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0DB0268BD1E; Tue, 15 Nov 2022 12:44:04 +0200 (EET) Received: from mail-pj1-f47.google.com (mail-pj1-f47.google.com [209.85.216.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 034A168BCAF for ; Tue, 15 Nov 2022 12:43:57 +0200 (EET) Received: by mail-pj1-f47.google.com with SMTP id w3-20020a17090a460300b00218524e8877so130622pjg.1 for ; Tue, 15 Nov 2022 02:43:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=spin-digital-com.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Tdiwn4s9o28fMf4VNMTytdSSFo34bfaj2yEqrquO9rc=; b=nxqE01vq3WMD2Pns949dcPt2UIJVAXuPHrZBMaXc2tTwzPlkg0Zf/dAr848g9/tQU6 Pe0XHOb+UwEGOXuzkuYIkSAPN8XxuIRhm2qqDSQkrx4EdqrWVDVAyNY72bOl3R9TfWjL 76pczrO2pyIcgtod4+5v7qKQpCVynUOLO4GG/6hpprWDpPpxeeMmef5nKzhnEj1+9EgH keQ5n1uVhHwlEzkcIMHsvt0clhvzrXgaTAAoBF/b8+CeZsbDpGIuGCoyRA7DsHsZ/qIr SUfWke/Dj9mnEY8Cyn0Tn/B1vjLDbEyBuIFD/XWjFphiJtz8/34A9GWloVwBKzln1yT6 A0Jg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=Tdiwn4s9o28fMf4VNMTytdSSFo34bfaj2yEqrquO9rc=; b=2L7yFha4s9LiIEwXhgcp/Hhw/Q7iMV7UxGeTaeZPopppd11/hLlEQvEZNwUG97qn/C d8UE1LZ8W9ZsWIm+40hBQlOOlZR3JZO8CpX+0r44WRw3zQsnZjcPvn10qn8CQDrMqT4l pQFSrV/KN3KCfiDyh0+azM3wanqBxZ4kNoXdrHczJuXI48JzjFmZhDayJxNRkwDmaLQL zqVea/a8MGOgpircVcDa3H3qepn4uD/6w4fHRgeiQfhvowuEYJ4wHb586Ah42AH2n8H0 PnOIA9B2Ae8ayWSdxIg7TujK4tnw3bcHH3i7JkEiWkMYvwoPRZCkq5/DJySSautFxk2Q 8aQw== X-Gm-Message-State: ANoB5plcfpIDIVYKChqBHq/6Q7LmVot3V49KZ+w2LMRor0xGliWLKigK E8s85jOSQFUHKoDTNhL7REsBd+3KVAxficxnexfhDQ== X-Google-Smtp-Source: AA0mqf5XFDNtYta/F2CCGbuwZq8g1cU70XxS/2F3/ZXw2wQGl1Ow27+B2b5Gr7vVN4MI82cMvmWAKNSigap7wbRaE9E= X-Received: by 2002:a17:902:aa4c:b0:188:9ae7:bb81 with SMTP id c12-20020a170902aa4c00b001889ae7bb81mr3467002plr.66.1668509035827; Tue, 15 Nov 2022 02:43:55 -0800 (PST) MIME-Version: 1.0 References: <20221103122158.27169-1-thomas.ff@spin-digital.com> <20221103122158.27169-6-thomas.ff@spin-digital.com> In-Reply-To: From: Thomas Siedel Date: Tue, 15 Nov 2022 11:43:41 +0100 Message-ID: To: mypopy@gmail.com X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH v3 05/10] avformat: add demuxer and probe support for H266/VVC 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: 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: T24gTW9uLCA3IE5vdiAyMDIyIGF0IDAzOjI4LCBteXBvcHlAZ21haWwuY29tIDxteXBvcHlAZ21h aWwuY29tPiB3cm90ZToKCj4gT24gVGh1LCBOb3YgMywgMjAyMiBhdCA4OjIzIFBNIFRob21hcyBT aWVkZWwgPHRob21hcy5mZkBzcGluLWRpZ2l0YWwuY29tPgo+IHdyb3RlOgo+ID4KPiA+IEFkZCBk ZW11eGVyIHRvIHByb2JlIHJhdyB2dmMgYW5kIHBhcnNlIHZ2Y2MgYnl0ZSBzdHJlYW0gZm9ybWF0 Lgo+ID4KPiA+IFNpZ25lZC1vZmYtYnk6IFRob21hcyBTaWVkZWwgPHRob21hcy5mZkBzcGluLWRp Z2l0YWwuY29tPgo+ID4gLS0tCj4gPiAgbGliYXZmb3JtYXQvTWFrZWZpbGUgICAgIHwgICAxICsK PiA+ICBsaWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMgfCAgIDEgKwo+ID4gIGxpYmF2Zm9ybWF0L2Rl bXV4LmMgICAgICB8ICAgNyArLQo+ID4gIGxpYmF2Zm9ybWF0L3Z2Yy5jICAgICAgICB8IDkxOSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ICBsaWJhdmZvcm1hdC92 dmMuaCAgICAgICAgfCAgOTkgKysrKysKPiA+ICBsaWJhdmZvcm1hdC92dmNkZWMuYyAgICAgfCAg NjEgKysrCj4gPiAgNiBmaWxlcyBjaGFuZ2VkLCAxMDg2IGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Zm9ybWF0L3Z2Yy5jCj4gPiAgY3Jl YXRlIG1vZGUgMTAwNjQ0IGxpYmF2Zm9ybWF0L3Z2Yy5oCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IGxpYmF2Zm9ybWF0L3Z2Y2RlYy5jCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L01h a2VmaWxlIGIvbGliYXZmb3JtYXQvTWFrZWZpbGUKPiA+IGluZGV4IGQ3ZjE5OGJmMzkuLjAwYWI0 ZGVkODkgMTAwNjQ0Cj4gPiAtLS0gYS9saWJhdmZvcm1hdC9NYWtlZmlsZQo+ID4gKysrIGIvbGli YXZmb3JtYXQvTWFrZWZpbGUKPiA+IEBAIC01OTUsNiArNTk1LDcgQEAgT0JKUy0kKENPTkZJR19W T0NfTVVYRVIpICAgICAgICAgICAgICAgICArPSB2b2NlbmMubwo+IHZvYy5vCj4gPiAgT0JKUy0k KENPTkZJR19WUEtfREVNVVhFUikgICAgICAgICAgICAgICArPSB2cGsubwo+ID4gIE9CSlMtJChD T05GSUdfVlBMQVlFUl9ERU1VWEVSKSAgICAgICAgICAgKz0gdnBsYXllcmRlYy5vIHN1YnRpdGxl cy5vCj4gPiAgT0JKUy0kKENPTkZJR19WUUZfREVNVVhFUikgICAgICAgICAgICAgICArPSB2cWYu bwo+ID4gK09CSlMtJChDT05GSUdfVlZDX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0gdnZjZGVj Lm8gcmF3ZGVjLm8KPiA+ICBPQkpTLSQoQ09ORklHX1c2NF9ERU1VWEVSKSAgICAgICAgICAgICAg ICs9IHdhdmRlYy5vIHc2NC5vIHBjbS5vCj4gPiAgT0JKUy0kKENPTkZJR19XNjRfTVVYRVIpICAg ICAgICAgICAgICAgICArPSB3YXZlbmMubyB3NjQubwo+ID4gIE9CSlMtJChDT05GSUdfV0FWX0RF TVVYRVIpICAgICAgICAgICAgICAgKz0gd2F2ZGVjLm8gcGNtLm8KPiA+IGRpZmYgLS1naXQgYS9s aWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMgYi9saWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMKPiA+IGlu ZGV4IDQ3YzQxOWEwMDkuLmE0ZTM4MjI2ODEgMTAwNjQ0Cj4gPiAtLS0gYS9saWJhdmZvcm1hdC9h bGxmb3JtYXRzLmMKPiA+ICsrKyBiL2xpYmF2Zm9ybWF0L2FsbGZvcm1hdHMuYwo+ID4gQEAgLTQ3 NCw2ICs0NzQsNyBAQCBleHRlcm4gY29uc3QgQVZPdXRwdXRGb3JtYXQgZmZfdm9jX211eGVyOwo+ ID4gIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl92cGtfZGVtdXhlcjsKPiA+ICBleHRl cm4gY29uc3QgQVZJbnB1dEZvcm1hdCAgZmZfdnBsYXllcl9kZW11eGVyOwo+ID4gIGV4dGVybiBj b25zdCBBVklucHV0Rm9ybWF0ICBmZl92cWZfZGVtdXhlcjsKPiA+ICtleHRlcm4gY29uc3QgQVZJ bnB1dEZvcm1hdCAgZmZfdnZjX2RlbXV4ZXI7Cj4gPiAgZXh0ZXJuIGNvbnN0IEFWSW5wdXRGb3Jt YXQgIGZmX3c2NF9kZW11eGVyOwo+ID4gIGV4dGVybiBjb25zdCBBVk91dHB1dEZvcm1hdCBmZl93 NjRfbXV4ZXI7Cj4gPiAgZXh0ZXJuIGNvbnN0IEFWSW5wdXRGb3JtYXQgIGZmX3dhdl9kZW11eGVy Owo+ID4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2RlbXV4LmMgYi9saWJhdmZvcm1hdC9kZW11 eC5jCj4gPiBpbmRleCAyZGZkODJhNjNjLi44ZGJkZTIzZmNkIDEwMDY0NAo+ID4gLS0tIGEvbGli YXZmb3JtYXQvZGVtdXguYwo+ID4gKysrIGIvbGliYXZmb3JtYXQvZGVtdXguYwo+ID4gQEAgLTEy MCw2ICsxMjAsNyBAQCBzdGF0aWMgaW50IHNldF9jb2RlY19mcm9tX3Byb2JlX2RhdGEoQVZGb3Jt YXRDb250ZXh0Cj4gKnMsIEFWU3RyZWFtICpzdCwKPiA+ICAgICAgICAgIHsgIm1wMyIsICAgICAg ICBBVl9DT0RFQ19JRF9NUDMsICAgICAgICAgIEFWTUVESUFfVFlQRV9BVURJTwo+IH0sCj4gPiAg ICAgICAgICB7ICJtcGVndmlkZW8iLCAgQVZfQ09ERUNfSURfTVBFRzJWSURFTywgICBBVk1FRElB X1RZUEVfVklERU8KPiB9LAo+ID4gICAgICAgICAgeyAidHJ1ZWhkIiwgICAgIEFWX0NPREVDX0lE X1RSVUVIRCwgICAgICAgQVZNRURJQV9UWVBFX0FVRElPCj4gfSwKPiA+ICsgICAgICAgIHsgInZ2 YyIsICAgICAgICBBVl9DT0RFQ19JRF9WVkMsICAgICAgICAgIEFWTUVESUFfVFlQRV9WSURFTwo+ IH0sCj4gPiAgICAgICAgICB7IDAgfQo+ID4gICAgICB9Owo+ID4gICAgICBpbnQgc2NvcmU7Cj4g PiBAQCAtNzQzLDcgKzc0NCw4IEBAIHN0YXRpYyBpbnQ2NF90IHNlbGVjdF9mcm9tX3B0c19idWZm ZXIoQVZTdHJlYW0gKnN0LAo+IGludDY0X3QgKnB0c19idWZmZXIsIGludDY0X3QKPiA+ICB7Cj4g PiAgICAgIEZGU3RyZWFtICpjb25zdCBzdGkgPSBmZnN0cmVhbShzdCk7Cj4gPiAgICAgIGludCBv bmVpbl9vbmVvdXQgPSBzdC0+Y29kZWNwYXItPmNvZGVjX2lkICE9IEFWX0NPREVDX0lEX0gyNjQg JiYKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIHN0LT5jb2RlY3Bhci0+Y29kZWNfaWQgIT0g QVZfQ09ERUNfSURfSEVWQzsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHN0LT5jb2RlY3Bh ci0+Y29kZWNfaWQgIT0gQVZfQ09ERUNfSURfSEVWQyAmJgo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgc3QtPmNvZGVjcGFyLT5jb2RlY19pZCAhPSBBVl9DT0RFQ19JRF9WVkM7Cj4gPgo+ID4g ICAgICBpZiAoIW9uZWluX29uZW91dCkgewo+ID4gICAgICAgICAgaW50IGRlbGF5ID0gc3RpLT5h dmN0eC0+aGFzX2JfZnJhbWVzOwo+ID4gQEAgLTkzMyw3ICs5MzUsOCBAQCBzdGF0aWMgdm9pZCBj b21wdXRlX3BrdF9maWVsZHMoQVZGb3JtYXRDb250ZXh0ICpzLAo+IEFWU3RyZWFtICpzdCwKPiA+ ICAgICAgaW50NjRfdCBvZmZzZXQ7Cj4gPiAgICAgIEFWUmF0aW9uYWwgZHVyYXRpb247Cj4gPiAg ICAgIGludCBvbmVpbl9vbmVvdXQgPSBzdC0+Y29kZWNwYXItPmNvZGVjX2lkICE9IEFWX0NPREVD X0lEX0gyNjQgJiYKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIHN0LT5jb2RlY3Bhci0+Y29k ZWNfaWQgIT0gQVZfQ09ERUNfSURfSEVWQzsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHN0 LT5jb2RlY3Bhci0+Y29kZWNfaWQgIT0gQVZfQ09ERUNfSURfSEVWQyAmJgo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgc3QtPmNvZGVjcGFyLT5jb2RlY19pZCAhPSBBVl9DT0RFQ19JRF9WVkM7 Cj4gPgo+ID4gICAgICBpZiAocy0+ZmxhZ3MgJiBBVkZNVF9GTEFHX05PRklMTElOKQo+ID4gICAg ICAgICAgcmV0dXJuOwo+ID4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L3Z2Yy5jIGIvbGliYXZm b3JtYXQvdnZjLmMKPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiBpbmRleCAwMDAwMDAwMDAw Li5iMjdhNTIyMDA5Cj4gPiAtLS0gL2Rldi9udWxsCj4gPiArKysgYi9saWJhdmZvcm1hdC92dmMu Ywo+ID4gQEAgLTAsMCArMSw5MTkgQEAKPiA+ICsvKgo+ID4gKyAqIFZWQyBoZWxwZXIgZnVuY3Rp b25zIGZvciBtdXhlcnMKPiA+ICsgKgo+ID4gKyAqIENvcHlyaWdodCAoQykgMjAyMiwgVGhvbWFz IFNpZWRlbAo+ID4gKyAqCj4gPiArICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgo+ID4g KyAqCj4gPiArICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vcgo+ID4gKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMKPiA+ICsgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKPiA+ICsgKiB2ZXJzaW9uIDIuMSBvZiB0 aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiA+ICsg Kgo+ID4gKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAo+ID4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4gPiArICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKPiA+ICsgKiBMZXNzZXIg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+ID4gKyAqCj4gPiArICog WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYwo+ID4gKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUg dG8gdGhlIEZyZWUgU29mdHdhcmUKPiA+ICsgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp biBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCj4gMDIxMTAtMTMwMSBVU0EKPiA+ICsg Ki8KPiA+ICsKPiA+ICsjaW5jbHVkZSAibGliYXZjb2RlYy9nZXRfYml0cy5oIgo+ID4gKyNpbmNs dWRlICJsaWJhdmNvZGVjL2dvbG9tYi5oIgo+ID4gKyNpbmNsdWRlICJsaWJhdmNvZGVjL3Z2Yy5o Igo+ID4gKyNpbmNsdWRlICJsaWJhdnV0aWwvaW50cmVhZHdyaXRlLmgiCj4gPiArI2luY2x1ZGUg ImF2Yy5oIgo+ID4gKyNpbmNsdWRlICJhdmlvLmgiCj4gPiArI2luY2x1ZGUgImF2aW9faW50ZXJu YWwuaCIKPiA+ICsjaW5jbHVkZSAidnZjLmgiCj4gPiArCj4gPiArdHlwZWRlZiBzdHJ1Y3QgVlZD Q05BTFVuaXRBcnJheSB7Cj4gPiArICAgIHVpbnQ4X3QgIGFycmF5X2NvbXBsZXRlbmVzczsKPiA+ ICsgICAgdWludDhfdCAgTkFMX3VuaXRfdHlwZTsKPiA+ICsgICAgdWludDE2X3QgbnVtX25hbHVz Owo+ID4gKyAgICB1aW50MTZfdCAqbmFsX3VuaXRfbGVuZ3RoOwo+ID4gKyAgICB1aW50OF90ICAq Km5hbF91bml0Owo+ID4gK30gVlZDQ05BTFVuaXRBcnJheTsKPiA+ICsKPiA+ICt0eXBlZGVmIHN0 cnVjdCBWVkNQVExSZWNvcmQgewo+ID4gKyAgICB1aW50OF90ICBudW1fYnl0ZXNfY29uc3RyYWlu dF9pbmZvOwo+ID4gKyAgICB1aW50OF90ICBnZW5lcmFsX3Byb2ZpbGVfaWRjOwo+ID4gKyAgICB1 aW50OF90ICBnZW5lcmFsX3RpZXJfZmxhZzsKPiA+ICsgICAgdWludDhfdCAgZ2VuZXJhbF9sZXZl bF9pZGM7Cj4gPiArICAgIHVpbnQ4X3QgIHB0bF9mcmFtZV9vbmx5X2NvbnN0cmFpbnRfZmxhZzsK PiA+ICsgICAgdWludDhfdCAgcHRsX211bHRpbGF5ZXJfZW5hYmxlZF9mbGFnOwo+ID4gKyAgICB1 aW50OF90ICBnZW5lcmFsX2NvbnN0cmFpbnRfaW5mb1s5XTsKPiA+ICsgICAgdWludDhfdCAgKnB0 bF9zdWJsYXllcl9sZXZlbF9wcmVzZW50X2ZsYWc7Cj4gPiArICAgIHVpbnQ4X3QgICpzdWJsYXll cl9sZXZlbF9pZGM7Cj4gPiArICAgIHVpbnQ4X3QgIHB0bF9udW1fc3ViX3Byb2ZpbGVzOwo+ID4g KyAgICB1aW50MzJfdCAqZ2VuZXJhbF9zdWJfcHJvZmlsZV9pZGM7Cj4gPiArfSBWVkNQVExSZWNv cmQ7Cj4gPiArCj4gPiArdHlwZWRlZiBzdHJ1Y3QgVlZDRGVjb2RlckNvbmZpZ3VyYXRpb25SZWNv cmQgewo+ID4gKyAgICB1aW50OF90ICBsZW5ndGhTaXplTWludXNPbmU7Cj4gPiArICAgIHVpbnQ4 X3QgIHB0bF9wcmVzZW50X2ZsYWc7Cj4gPiArICAgIHVpbnQxNl90IG9sc19pZHg7Cj4gPiArICAg IHVpbnQ4X3QgIG51bV9zdWJsYXllcnM7Cj4gPiArICAgIHVpbnQ4X3QgIGNvbnN0YW50X2ZyYW1l X3JhdGU7Cj4gPiArICAgIHVpbnQ4X3QgIGNocm9tYV9mb3JtYXRfaWRjOwo+ID4gKyAgICB1aW50 OF90ICBiaXRfZGVwdGhfbWludXM4Owo+ID4gKyAgICBWVkNQVExSZWNvcmQgcHRsOwo+ID4gKyAg ICB1aW50MTZfdCBtYXhfcGljdHVyZV93aWR0aDsKPiA+ICsgICAgdWludDE2X3QgbWF4X3BpY3R1 cmVfaGVpZ2h0Owo+ID4gKyAgICB1aW50MTZfdCBhdmdfZnJhbWVfcmF0ZTsKPiA+ICsgICAgdWlu dDhfdCAgbnVtX29mX2FycmF5czsKPiA+ICsgICAgVlZDQ05BTFVuaXRBcnJheSAqYXJyYXk7Cj4g PiArfSBWVkNEZWNvZGVyQ29uZmlndXJhdGlvblJlY29yZDsKPiA+ICsKPiA+ICt0eXBlZGVmIHN0 cnVjdCBWVkNDUHJvZmlsZVRpZXJMZXZlbCB7Cj4gPiArICAgIHVpbnQ4X3QgcHJvZmlsZV9pZGM7 Cj4gPiArICAgIHVpbnQ4X3QgdGllcl9mbGFnOwo+ID4gKyAgICB1aW50OF90IGdlbmVyYWxfbGV2 ZWxfaWRjOwo+ID4gKyAgICB1aW50OF90IHB0bF9mcmFtZV9vbmx5X2NvbnN0cmFpbnRfZmxhZzsK PiA+ICsgICAgdWludDhfdCBwdGxfbXVsdGlsYXllcl9lbmFibGVkX2ZsYWc7Cj4gPiArLy8gZ2Vu ZXJhbF9jb25zdHJhaW50X2luZm8KPiA+ICsgICAgdWludDhfdCAgZ2NpX3ByZXNlbnRfZmxhZzsK PiA+ICsgICAgdWludDhfdCAgZ2NpX2dlbmVyYWxfY29uc3RyYWludHNbOV07Cj4gPiArICAgIHVp bnQ4X3QgIGdjaV9udW1fcmVzZXJ2ZWRfYml0czsKPiA+ICsvLyBlbmQgZ2VuZXJhbF9jb25zdHJh aW50X2luZm8KPiA+ICsgICAgdWludDhfdCAgKnB0bF9zdWJsYXllcl9sZXZlbF9wcmVzZW50X2Zs YWc7Cj4gPiArICAgIHVpbnQ4X3QgICpzdWJsYXllcl9sZXZlbF9pZGM7Cj4gPiArICAgIHVpbnQ4 X3QgIHB0bF9udW1fc3ViX3Byb2ZpbGVzOwo+ID4gKyAgICB1aW50MzJfdCAqZ2VuZXJhbF9zdWJf cHJvZmlsZV9pZGM7Cj4gPiArfSBWVkNDUHJvZmlsZVRpZXJMZXZlbDsKPiA+ICsKPiA+ICsKPiA+ ICtzdGF0aWMgdm9pZCB2dmNjX3VwZGF0ZV9wdGwoVlZDRGVjb2RlckNvbmZpZ3VyYXRpb25SZWNv cmQgKnZ2Y2MsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZWQ0NQcm9maWxlVGll ckxldmVsICpwdGwpCj4gPiArewo+ID4gKyAgICAvKgo+ID4gKyAgICAgKiBUaGUgbGV2ZWwgaW5k aWNhdGlvbiBnZW5lcmFsX2xldmVsX2lkYyBtdXN0IGluZGljYXRlIGEgbGV2ZWwgb2YKPiA+ICsg ICAgICogY2FwYWJpbGl0eSBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gdGhlIGhpZ2hlc3QgbGV2 ZWwgaW5kaWNhdGVkCj4gZm9yIHRoZQo+ID4gKyAgICAgKiBoaWdoZXN0IHRpZXIgaW4gYWxsIHRo ZSBwYXJhbWV0ZXIgc2V0cy4KPiA+ICsgICAgICovCj4gPiArICAgIGlmICh2dmNjLT5wdGwuZ2Vu ZXJhbF90aWVyX2ZsYWcgPCBwdGwtPnRpZXJfZmxhZykKPiA+ICsgICAgICAgIHZ2Y2MtPnB0bC5n ZW5lcmFsX2xldmVsX2lkYyA9IHB0bC0+Z2VuZXJhbF9sZXZlbF9pZGM7Cj4gPiArICAgIGVsc2UK PiA+ICsgICAgICAgIHZ2Y2MtPnB0bC5nZW5lcmFsX2xldmVsX2lkYyA9Cj4gRkZNQVgodnZjYy0+ cHRsLmdlbmVyYWxfbGV2ZWxfaWRjLCBwdGwtPmdlbmVyYWxfbGV2ZWxfaWRjKTsKPiA+ICsKPiA+ ICsgICAgLyoKPiA+ICsgICAgICogVGhlIHRpZXIgaW5kaWNhdGlvbiBnZW5lcmFsX3RpZXJfZmxh ZyBtdXN0IGluZGljYXRlIGEgdGllciBlcXVhbAo+IHRvIG9yCj4gPiArICAgICAqIGdyZWF0ZXIg dGhhbiB0aGUgaGlnaGVzdCB0aWVyIGluZGljYXRlZCBpbiBhbGwgdGhlIHBhcmFtZXRlcgo+IHNl dHMuCj4gPiArICAgICAqLwo+ID4gKyAgICB2dmNjLT5wdGwuZ2VuZXJhbF90aWVyX2ZsYWcgPSBG Rk1BWCh2dmNjLT5wdGwuZ2VuZXJhbF90aWVyX2ZsYWcsCj4gcHRsLT50aWVyX2ZsYWcpOwo+ID4g Kwo+ID4gKyAgICAvKgo+ID4gKyAgICAgKiBUaGUgcHJvZmlsZSBpbmRpY2F0aW9uIGdlbmVyYWxf cHJvZmlsZV9pZGMgbXVzdCBpbmRpY2F0ZSBhCj4gcHJvZmlsZSB0bwo+ID4gKyAgICAgKiB3aGlj aCB0aGUgc3RyZWFtIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbmZpZ3VyYXRpb24gcmVjb3JkCj4g Y29uZm9ybXMuCj4gPiArICAgICAqCj4gPiArICAgICAqIElmIHRoZSBzZXF1ZW5jZSBwYXJhbWV0 ZXIgc2V0cyBhcmUgbWFya2VkIHdpdGggZGlmZmVyZW50Cj4gcHJvZmlsZXMsIHRoZW4KPiA+ICsg ICAgICogdGhlIHN0cmVhbSBtYXkgbmVlZCBleGFtaW5hdGlvbiB0byBkZXRlcm1pbmUgd2hpY2gg cHJvZmlsZSwgaWYKPiBhbnksIHRoZQo+ID4gKyAgICAgKiBlbnRpcmUgc3RyZWFtIGNvbmZvcm1z IHRvLiBJZiB0aGUgZW50aXJlIHN0cmVhbSBpcyBub3QgZXhhbWluZWQsCj4gb3IgdGhlCj4gPiAr ICAgICAqIGV4YW1pbmF0aW9uIHJldmVhbHMgdGhhdCB0aGVyZSBpcyBubyBwcm9maWxlIHRvIHdo aWNoIHRoZSBlbnRpcmUKPiBzdHJlYW0KPiA+ICsgICAgICogY29uZm9ybXMsIHRoZW4gdGhlIGVu dGlyZSBzdHJlYW0gbXVzdCBiZSBzcGxpdCBpbnRvIHR3byBvciBtb3JlCj4gPiArICAgICAqIHN1 Yi1zdHJlYW1zIHdpdGggc2VwYXJhdGUgY29uZmlndXJhdGlvbiByZWNvcmRzIGluIHdoaWNoIHRo ZXNlCj4gcnVsZXMgY2FuCj4gPiArICAgICAqIGJlIG1ldC4KPiA+ICsgICAgICoKPiA+ICsgICAg ICogTm90ZTogc2V0IHRoZSBwcm9maWxlIHRvIHRoZSBoaWdoZXN0IHZhbHVlIGZvciB0aGUgc2Fr ZSBvZgo+IHNpbXBsaWNpdHkuCj4gPiArICAgICAqLwo+ID4gKyAgICB2dmNjLT5wdGwuZ2VuZXJh bF9wcm9maWxlX2lkYyA9Cj4gRkZNQVgodnZjYy0+cHRsLmdlbmVyYWxfcHJvZmlsZV9pZGMsIHB0 bC0+cHJvZmlsZV9pZGMpOwo+ID4gKwo+ID4gKyAgICAvKgo+ID4gKyAgICAgKiBFYWNoIGJpdCBp biBmbGFncyBtYXkgb25seSBiZSBzZXQgaWYgYWxsCj4gPiArICAgICAqIHRoZSBwYXJhbWV0ZXIg c2V0cyBzZXQgdGhhdCBiaXQuCj4gPiArICAgICAqLwo+ID4gKyAgICB2dmNjLT5wdGwucHRsX2Zy YW1lX29ubHlfY29uc3RyYWludF9mbGFnICY9Cj4gcHRsLT5wdGxfZnJhbWVfb25seV9jb25zdHJh aW50X2ZsYWc7Cj4gPiArICAgIHZ2Y2MtPnB0bC5wdGxfbXVsdGlsYXllcl9lbmFibGVkX2ZsYWcg Jj0KPiBwdGwtPnB0bF9tdWx0aWxheWVyX2VuYWJsZWRfZmxhZzsKPiA+ICsKPiA+ICsgICAgLyoK PiA+ICsgICAgICogQ29uc3RyYWludHMgSW5mbwo+ID4gKyAgICAgKi8KPiA+ICsgICAgaWYocHRs LT5nY2lfcHJlc2VudF9mbGFnKSB7Cj4gPiArICAgICAgICB2dmNjLT5wdGwubnVtX2J5dGVzX2Nv bnN0cmFpbnRfaW5mbyA9IDk7Cj4gPiArICAgICAgICBtZW1jcHkoJnZ2Y2MtPnB0bC5nZW5lcmFs X2NvbnN0cmFpbnRfaW5mb1swXSwKPiAmcHRsLT5nY2lfZ2VuZXJhbF9jb25zdHJhaW50c1swXSwg c2l6ZW9mKHVpbnQ4X3QpKjkpOwo+ID4gKwo+ID4gKyAgICB9IGVsc2Ugewo+ID4gKyAgICAgICAg dnZjYy0+cHRsLm51bV9ieXRlc19jb25zdHJhaW50X2luZm8gPSAxOwo+ID4gKyAgICAgICAgbWVt c2V0KCZ2dmNjLT5wdGwuZ2VuZXJhbF9jb25zdHJhaW50X2luZm9bMF0sIDAsCj4gc2l6ZW9mKHVp bnQ4X3QpKjkpOwo+ID4gKyAgICB9Cj4gPiArCj4gPiArICAgIC8qCj4gPiArICAgICAqIEVhY2gg Yml0IGluIGZsYWdzIG1heSBvbmx5IGJlIHNldCBpZiBvbmUgb2YKPiA+ICsgICAgICogdGhlIHBh cmFtZXRlciBzZXRzIHNldCB0aGF0IGJpdC4KPiA+ICsgICAgICovCj4gPiArICAgIHZ2Y2MtPnB0 bC5wdGxfc3VibGF5ZXJfbGV2ZWxfcHJlc2VudF9mbGFnID0gKHVpbnQ4X3QgKikKPiBtYWxsb2Mo c2l6ZW9mKHVpbnQ4X3QpKnZ2Y2MtPm51bV9zdWJsYXllcnMtMSk7Cj4gPiArICAgIHZ2Y2MtPnB0 bC5zdWJsYXllcl9sZXZlbF9pZGMgICAgICAgICAgICAgID0gKHVpbnQ4X3QgKikKPiBtYWxsb2Mo c2l6ZW9mKHVpbnQ4X3QpKnZ2Y2MtPm51bV9zdWJsYXllcnMtMSk7Cj4gPiArCj4gPiArICAgIG1l bXNldCh2dmNjLT5wdGwucHRsX3N1YmxheWVyX2xldmVsX3ByZXNlbnRfZmxhZywgMCwKPiBzaXpl b2YodWludDhfdCkqdnZjYy0+bnVtX3N1YmxheWVycy0xKTsKPiA+ICsgICAgbWVtc2V0KHZ2Y2Mt PnB0bC5zdWJsYXllcl9sZXZlbF9pZGMsIDAsCj4gc2l6ZW9mKHVpbnQ4X3QpKnZ2Y2MtPm51bV9z dWJsYXllcnMtMSk7Cj4gPiArCj4gPiArICAgIGZvcihpbnQgaSA9IHZ2Y2MtPm51bV9zdWJsYXll cnMgLSAyOyBpID49IDA7IGktLSkKPiA+ICsgICAgewo+ID4gKyAgICAgICAgdnZjYy0+cHRsLnB0 bF9zdWJsYXllcl9sZXZlbF9wcmVzZW50X2ZsYWdbaV0gfD0KPiBwdGwtPnB0bF9zdWJsYXllcl9s ZXZlbF9wcmVzZW50X2ZsYWdbaV07Cj4gPiArICAgICAgICBpZih2dmNjLT5wdGwucHRsX3N1Ymxh eWVyX2xldmVsX3ByZXNlbnRfZmxhZ1tpXSl7Cj4gPiArICAgICAgICAgICAgdnZjYy0+cHRsLnN1 YmxheWVyX2xldmVsX2lkY1tpXSA9Cj4gRkZNQVgodnZjYy0+cHRsLnN1YmxheWVyX2xldmVsX2lk Y1tpXSwgcHRsLT5zdWJsYXllcl9sZXZlbF9pZGNbaV0pOwo+ID4gKyAgICAgICAgfQo+ID4gKyAg ICAgICAgZWxzZXsKPiA+ICsgICAgICAgICAgaWYoaSA9PSB2dmNjLT5udW1fc3VibGF5ZXJzIC0g MSl7Cj4gPiArICAgICAgICAgICAgICB2dmNjLT5wdGwuc3VibGF5ZXJfbGV2ZWxfaWRjW2ldID0K PiB2dmNjLT5wdGwuZ2VuZXJhbF9sZXZlbF9pZGM7Cj4gPiArICAgICAgICAgIH1lbHNlewo+ID4g KyAgICAgICAgICAgICAgdnZjYy0+cHRsLnN1YmxheWVyX2xldmVsX2lkY1tpXSA9Cj4gdnZjYy0+ cHRsLnN1YmxheWVyX2xldmVsX2lkY1tpKzFdOwo+ID4gKyAgICAgICAgICB9Cj4gPiArICAgICAg ICB9Cj4gPiArICAgIH0KPiA+ICsKPiA+ICsgICAgdnZjYy0+cHRsLnB0bF9udW1fc3ViX3Byb2Zp bGVzID0KPiBGRk1BWCh2dmNjLT5wdGwucHRsX251bV9zdWJfcHJvZmlsZXMsIHB0bC0+cHRsX251 bV9zdWJfcHJvZmlsZXMpOwo+ID4gKyAgICBpZiggdnZjYy0+cHRsLnB0bF9udW1fc3ViX3Byb2Zp bGVzICl7Cj4gPiArICAgICAgICB2dmNjLT5wdGwuZ2VuZXJhbF9zdWJfcHJvZmlsZV9pZGMgPSAo dWludDMyX3QgKikKPiBtYWxsb2Moc2l6ZW9mKHVpbnQzMl90KSp2dmNjLT5wdGwucHRsX251bV9z dWJfcHJvZmlsZXMpOwo+ID4gKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IHZ2Y2MtPnB0bC5w dGxfbnVtX3N1Yl9wcm9maWxlczsgaSsrKSB7Cj4gPiArICAgICAgICAgICAgdnZjYy0+cHRsLmdl bmVyYWxfc3ViX3Byb2ZpbGVfaWRjW2ldID0KPiBwdGwtPmdlbmVyYWxfc3ViX3Byb2ZpbGVfaWRj W2ldOwo+ID4gKyAgICAgICAgfQo+ID4gKyAgICB9Cj4gPiArICAgIGVsc2UKPiA+ICsgICAgewo+ ID4gKyAgICAgIHZ2Y2MtPnB0bC5nZW5lcmFsX3N1Yl9wcm9maWxlX2lkYyA9ICh1aW50MzJfdCAq KQo+IG1hbGxvYyhzaXplb2YodWludDMyX3QpKTsKPiA+ICsgICAgfQo+ID4gK30KPiA+ICsKPiA+ ICtzdGF0aWMgdm9pZCB2dmNjX3BhcnNlX3B0bChHZXRCaXRDb250ZXh0ICpnYiwKPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICBWVkNEZWNvZGVyQ29uZmlndXJhdGlvblJlY29yZCAqdnZj YywKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcHJvZmlsZVRp ZXJQcmVzZW50RmxhZywKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgbWF4X3N1Yl9sYXllcnNfbWludXMxKQo+ID4gK3sKPiA+ICsgICAgVlZDQ1Byb2ZpbGVUaWVy TGV2ZWwgZ2VuZXJhbF9wdGw7Cj4gPiArICAgIGludCBqOwo+ID4gKwo+ID4gKyAgICBpZihwcm9m aWxlVGllclByZXNlbnRGbGFnKSB7Cj4gPiArICAgICAgICBnZW5lcmFsX3B0bC5wcm9maWxlX2lk YyAgICAgICAgICAgICAgICAgPSBnZXRfYml0cyhnYiwgNyk7Cj4gPiArICAgICAgICBnZW5lcmFs X3B0bC50aWVyX2ZsYWcgICAgICAgICAgICAgICAgICAgPSBnZXRfYml0czEoZ2IpOwo+ID4gKyAg ICB9Cj4gPiArICAgIGdlbmVyYWxfcHRsLmdlbmVyYWxfbGV2ZWxfaWRjICAgICAgICAgICAgICAg ICAgID0gZ2V0X2JpdHMoZ2IsIDgpOwo+ID4gKwo+ID4gKyAgICBnZW5lcmFsX3B0bC5wdGxfZnJh bWVfb25seV9jb25zdHJhaW50X2ZsYWcgPSBnZXRfYml0czEoZ2IpOwo+ID4gKyAgICBnZW5lcmFs X3B0bC5wdGxfbXVsdGlsYXllcl9lbmFibGVkX2ZsYWcgPSBnZXRfYml0czEoZ2IpOwo+ID4gKyAg ICBpZihwcm9maWxlVGllclByZXNlbnRGbGFnKSB7ICAvLyBwYXJzZSBjb25zdHJhaW50IGluZm8K PiA+ICsgICAgICAgIGdlbmVyYWxfcHRsLmdjaV9wcmVzZW50X2ZsYWcgPSBnZXRfYml0czEoZ2Ip Owo+ID4gKyAgICAgICAgaWYoZ2VuZXJhbF9wdGwuZ2NpX3ByZXNlbnRfZmxhZykgewo+ID4gKyAg ICAgICAgICAgIGZvciAoaiA9IDA7IGogPCA4OyBqKyspCj4gPiArICAgICAgICAgICAgICAgIGdl bmVyYWxfcHRsLmdjaV9nZW5lcmFsX2NvbnN0cmFpbnRzW2pdID0gZ2V0X2JpdHMoZ2IsCj4gOCk7 Cj4gPiArICAgICAgICAgICAgZ2VuZXJhbF9wdGwuZ2NpX2dlbmVyYWxfY29uc3RyYWludHNbOF0g PSAwOwo+ID4gKyAgICAgICAgICAgIGdlbmVyYWxfcHRsLmdjaV9nZW5lcmFsX2NvbnN0cmFpbnRz WzhdID0gZ2V0X2JpdHMoZ2IsIDcpOwo+ID4gKwo+ID4gKyAgICAgICAgICAgIGdlbmVyYWxfcHRs LmdjaV9udW1fcmVzZXJ2ZWRfYml0cyA9IGdldF9iaXRzKGdiLCA4KTsKPiA+ICsgICAgICAgICAg ICBza2lwX2JpdHMoZ2IsIGdlbmVyYWxfcHRsLmdjaV9udW1fcmVzZXJ2ZWRfYml0cyk7Cj4gPiAr ICAgICAgICB9Cj4gPiArICAgICAgICB3aGlsZShnYi0+aW5kZXggJSA4ICE9IDApCj4gPiArICAg ICAgICAgICAgc2tpcF9iaXRzMShnYik7Cj4gPiArICAgIH0KPiA+ICsKPiA+ICsgICAgZ2VuZXJh bF9wdGwucHRsX3N1YmxheWVyX2xldmVsX3ByZXNlbnRfZmxhZyA9ICh1aW50OF90ICopCj4gbWFs bG9jKHNpemVvZih1aW50OF90KSptYXhfc3ViX2xheWVyc19taW51czEpOwo+ID4gKyAgICBmb3Io aW50IGkgPSBtYXhfc3ViX2xheWVyc19taW51czEtMTsgaSA+PSAwOyBpLS0pIHsKPiA+ICsgICAg ICAgIGdlbmVyYWxfcHRsLnB0bF9zdWJsYXllcl9sZXZlbF9wcmVzZW50X2ZsYWdbaV0gPSBnZXRf Yml0czEoZ2IpOwo+ID4gKyAgICB9Cj4gPiArICAgIHdoaWxlKGdiLT5pbmRleCU4ICE9IDApCj4g PiArICAgICAgICBza2lwX2JpdHMxKGdiKTsKPiA+ICsKPiA+ICsgICAgZ2VuZXJhbF9wdGwuc3Vi bGF5ZXJfbGV2ZWxfaWRjID0gKHVpbnQ4X3QgKikKPiBtYWxsb2Moc2l6ZW9mKHVpbnQ4X3QpKm1h eF9zdWJfbGF5ZXJzX21pbnVzMSk7Cj4gPiArICAgIGZvcihpbnQgaSA9IG1heF9zdWJfbGF5ZXJz X21pbnVzMS0xOyBpID49IDA7IGktLSkgewo+ID4gKyAgICAgICAgaWYoIGdlbmVyYWxfcHRsLnB0 bF9zdWJsYXllcl9sZXZlbF9wcmVzZW50X2ZsYWdbaV0gKQo+ID4gKyAgICAgICAgICAgIGdlbmVy YWxfcHRsLnN1YmxheWVyX2xldmVsX2lkY1tpXSA9IGdldF9iaXRzKGdiLCA4KTsKPiA+ICsgICAg fQo+ID4gKwo+ID4gKyAgICBpZihwcm9maWxlVGllclByZXNlbnRGbGFnKSB7Cj4gPiArICAgICAg ICBnZW5lcmFsX3B0bC5wdGxfbnVtX3N1Yl9wcm9maWxlcyA9IGdldF9iaXRzKGdiLCA4KTsKPiA+ ICsgICAgICAgIGlmKCBnZW5lcmFsX3B0bC5wdGxfbnVtX3N1Yl9wcm9maWxlcykgewo+ID4gKyAg ICAgICAgICAgIGdlbmVyYWxfcHRsLmdlbmVyYWxfc3ViX3Byb2ZpbGVfaWRjID0gKHVpbnQzMl90 ICopCj4gbWFsbG9jKHNpemVvZih1aW50MzJfdCkqZ2VuZXJhbF9wdGwucHRsX251bV9zdWJfcHJv ZmlsZXMpOwo+ID4gKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBnZW5lcmFsX3B0bC5w dGxfbnVtX3N1Yl9wcm9maWxlczsgaSsrKSB7Cj4gPiArICAgICAgICAgICAgICAgIGdlbmVyYWxf cHRsLmdlbmVyYWxfc3ViX3Byb2ZpbGVfaWRjW2ldID0KPiBnZXRfYml0c19sb25nKGdiLCAzMik7 Cj4gPiArICAgICAgICAgICAgfQo+ID4gKyAgICAgICAgfQo+ID4gKyAgICAgICAgZWxzZQo+ID4g KyAgICAgICAgewo+ID4gKyAgICAgICAgICAgIGdlbmVyYWxfcHRsLmdlbmVyYWxfc3ViX3Byb2Zp bGVfaWRjID0gKHVpbnQzMl90ICopCj4gbWFsbG9jKHNpemVvZih1aW50MzJfdCkpOwo+ID4gKyAg ICAgICAgfQo+ID4gKyAgICB9Cj4gPiArCj4gPiArICAgIHZ2Y2NfdXBkYXRlX3B0bCh2dmNjLCAm Z2VuZXJhbF9wdGwpOwo+ID4gKwo+ID4gKyAgICBmcmVlKGdlbmVyYWxfcHRsLnB0bF9zdWJsYXll cl9sZXZlbF9wcmVzZW50X2ZsYWcpOwo+ID4gKyAgICBmcmVlKGdlbmVyYWxfcHRsLnN1YmxheWVy X2xldmVsX2lkYyk7Cj4gPiArICAgIGZyZWUoZ2VuZXJhbF9wdGwuZ2VuZXJhbF9zdWJfcHJvZmls ZV9pZGMpOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgaW50IHZ2Y2NfcGFyc2VfdnBzKEdldEJp dENvbnRleHQgKmdiLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgVlZDRGVjb2RlckNv bmZpZ3VyYXRpb25SZWNvcmQgKnZ2Y2MpCj4gPiArewo+ID4gKyAgdW5zaWduZWQgaW50IHZwc19t YXhfbGF5ZXJzX21pbnVzMTsKPiA+ICsgIHVuc2lnbmVkIGludCB2cHNfbWF4X3N1Yl9sYXllcnNf bWludXMxOwo+ID4gKyAgdW5zaWduZWQgaW50IHZwc19kZWZhdWx0X3B0bF9kcGJfaHJkX21heF90 aWRfZmxhZzsKPiA+ICsgIHVuc2lnbmVkIGludCB2cHNfYWxsX2luZGVwZW5kYW50X2xheWVyX2Zs YWc7Cj4gPiArICB1bnNpZ25lZCBpbnQgdnBzX2VhY2hfbGF5ZXJfaXNfYW5fb2xzX2ZsYWc7Cj4g PiArICB1bnNpZ25lZCBpbnQgdnBzX29sc19tb2RlX2lkYzsKPiA+ICsKPgo+IGluIEZGbXBlZ++8 jCB0aGUgaW5kZW50IHNpemUgaXMgNAo+Cj4KVGhhbmsgeW91IGZvciBwb2ludGluZyB0aGlzIG91 dC4KSSBub3cgdXBkYXRlZCB0aGUgY29kZSBmb3JtYXR0aW5nIGFuZCBzdWJtaXR0ZWQgYSBuZXcg dmVyc2lvbiBvZiB0aGUgcGF0Y2gKc2VyaWVzLCBzbyBub3cgaXQgc2hvdWxkIGJlIGNvcnJlY3Qg ZXZlcnl3aGVyZS4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRw czovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2Ny aWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1w ZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=