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 2EB744C1AF for ; Wed, 30 Jul 2025 15:50:07 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 5A1D468C6D9; Wed, 30 Jul 2025 18:50:04 +0300 (EEST) Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id C8AE068C4E4 for ; Wed, 30 Jul 2025 18:49:57 +0300 (EEST) Received: by mail-qv1-f41.google.com with SMTP id 6a1803df08f44-6fada2dd785so63777776d6.2 for ; Wed, 30 Jul 2025 08:49:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753890596; x=1754495396; h=content-transfer-encoding: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=6aQJTmHqvZ4Pnkmhw43bwi9gcERO0Q9qMgbXZWy2a3A=; b=Qu9rxKelA09EWlepq+8dUTxCT3+OGMd56oWxsnQHOnq8LRvPlNkePKzrA4u30/Vbwy NcbpCJ8Sb3ubYmuNdH3TdgXkuatHrBZDXLFTILDrr0mbJf/kzaICwrGFdIL83ifjsBP3 6nkmRUqxjGAtNiBGsxD3tZjdXeztUQqtQ1sHN/C5FEKS38k8+5ot6OhlgMu5GdDCqhcK GRHTkhXq/1OvbUkilGd1PG9lQaKRj+K9Q/0iFLrCN6BRyJAFlYmURqAQJP5T9P3nKEmt pe/D4f74WMl6Z78XmYJD2E2qxaTLHU6GQx+VjnVci8AQU3e6S0AROH5sNDDSjZct7tuN v6+A== X-Gm-Message-State: AOJu0Yzan+Q+i0WiiLtA2DYYPlAZsMLsY/hBZK+LPe1l68po84gMWCWR i09kDTZ8B7na9EhRvcFJxPni+R5WeHa1m4X/nGUYqyZxCmKkLZuCI7vtf8gk5/hKDWZIjw8mogc zHqST3WQ5+Os5n5dVtshd9lK/kRx3WRursjkC6Oa9FpeujkEs3X2rh5kgJHs= X-Gm-Gg: ASbGncuGLl+aEwLvd5N96iU9dWFTC9N5mr6rO/9MUR1BaunShumY+wwI6bsEfJJ6/wH QWtR89UPKb2SPkfkKiqO4G/GZoNRdAR1YQCPCdVEaMmk4iDJJ4Ar+s8d7R2mBjSr/duIk9nV9Q2 FyD8YHW1qKp3htu8owlao5yEDy5bDN9dlR9hkm9jRWTPb0hmcc6pv6zUthPRrizMt7dxcXTpqaq g9i4eo= X-Google-Smtp-Source: AGHT+IEmkC+iBJU6VRxD5oh/8jNkASGufEHL2w4JHy5+XdV6kqZTJyNhBZRYnC6bRYE8uqMMmJ9Qlnqg0NhDaigYx8A= X-Received: by 2002:a05:6214:e4c:b0:706:c746:a3fa with SMTP id 6a1803df08f44-70767203e9cmr54018266d6.33.1753890595305; Wed, 30 Jul 2025 08:49:55 -0700 (PDT) MIME-Version: 1.0 References: <20250625155545.933182-1-maryla@google.com> In-Reply-To: <20250625155545.933182-1-maryla@google.com> Date: Wed, 30 Jul 2025 17:49:44 +0200 X-Gm-Features: Ac12FXwvcLEmOu5XgXfWDbWWZ2mLYT-9-YamfkUEBo_Xls3ZGhSDU9N1oCgVm90 Message-ID: To: ffmpeg-devel@ffmpeg.org Subject: Re: [FFmpeg-devel] [PATCH v2] avcodec/itut35: always check the provider code and country code together 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: , From: Maryla Ustarroz via ffmpeg-devel Reply-To: FFmpeg development discussions and patches Cc: Maryla Ustarroz 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: T24gV2VkLCBKdW4gMjUsIDIwMjUgYXQgNTo1NeKAr1BNIE1hcnlsYSBVc3RhcnJvei1DYWxvbmdl CjxtYXJ5bGFAZ29vZ2xlLmNvbT4gd3JvdGU6Cj4KPiBGcm9tOiBNYXJ5bGEgPG1hcnlsYUBnb29n bGUuY29tPgo+Cj4gSVRVLVQgVC4zNSBwcm92aWRlciBjb2RlcyBhcmUgYXR0cmlidXRlZCBieSBu YXRpb25hbCBib2RpZXMgYW5kIGl0J3MKPiBwb3NzaWJsZSB0byBoYXZlIGNvbGxpc2lvbnMgYWNy b3NzIGNvdW50cmllcy4gVGhpcyBpcyB3aHkgdGhlIGNvdW50cnkgY29kZQo+IG11c3QgYWx3YXlz IGJlIGNoZWNrZWQgYXMgd2VsbC4KPgo+IFVzZSBpZiBzdGF0ZW1lbnRzIHJhdGhlciB0aGFuIG5l c3RlZCBzd2l0Y2hlcyB3aGljaCB3b3VsZCBiZSB1bnJlYWRhYmxlLgo+Cj4gUmVuYW1lIHNvbWUg b2YgdGhlIGNvbnN0YW50cyB0byBtYXRjaCB0aGUgY29ycmVzcG9uZGluZyBvcmdhbml6YXRpb24u Cj4gQWRkIGEgY29uc3RhbnQgZm9yIEFPTS4KPiBXcml0ZSBhbGwgY29uc3RhbnRzIHdpdGggNCBo ZXggZGlnaXRzIHRvIG1ha2UgaXQgY2xlYXIgdGhhdCB0aGV5IGFyZSAyLWJ5dGUgaWRzLgo+Cj4g VGhlIGNvZGUgZm9yIFYtTm92YSBzaG91bGQgYmUgMHg1MDAwIGluc3RlYWQgb2YgMHgwMDUwIGFj Y29yZGluZyB0byB0aGUKPiBVSyBSZWdpc3RlciBvZiBNYW51ZmFjdHVyZXIgQ29kZXMgaHR0cHM6 Ly93d3cuY2l4LmNvLnVrL35icGVjaGV5L0gyMjEvaDIyMWNvZGUuaHRtCj4gYnV0IEkgaGF2ZSBi ZWVuIHVuYWJsZSB0byBmaW5kIGFueSByZWZlcmVuY2UgZm9yIHdoYXQgY29kZSBzaG91bGQgYmUg dXNlZCBmb3IKPiBMQ0VWQywgYW5kIHRoZSBhdXRob3Igb2YgdGhlIG9yaWdpbmFsIGNoYW5nZSBo YXMgbm90IHJlcGxpZWQgdG8gbXkgZW1haWxzLgo+Cj4gU2lnbmVkLW9mZi1ieTogTWFyeWxhIFVz dGFycm96LUNhbG9uZ2UgPG1hcnlsYUBnb29nbGUuY29tPgo+IC0tLQo+ICBsaWJhdmNvZGVjL2F2 MWRlYy5jICAgICAgIHwgIDMyICsrKy0tLS0tCj4gIGxpYmF2Y29kZWMvaDI2NDVfc2VpLmMgICAg fCAgMzYgKysrLS0tLS0tCj4gIGxpYmF2Y29kZWMvaXR1dDM1LmggICAgICAgfCAgMjEgKysrKy0t Cj4gIGxpYmF2Y29kZWMvbGliZGF2MWQuYyAgICAgfCAxNTQgKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0KPiAgbGliYXZmb3JtYXQvbWF0cm9za2FkZWMuYyB8ICAgMiArLQo+ ICBsaWJhdmZvcm1hdC9tYXRyb3NrYWVuYy5jIHwgICAyICstCj4gIDYgZmlsZXMgY2hhbmdlZCwg MTE2IGluc2VydGlvbnMoKyksIDEzMSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9saWJh dmNvZGVjL2F2MWRlYy5jIGIvbGliYXZjb2RlYy9hdjFkZWMuYwo+IGluZGV4IDhmZjFiZjM5NGMu LmJlNTk1NDg0ZDEgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy9hdjFkZWMuYwo+ICsrKyBiL2xp YmF2Y29kZWMvYXYxZGVjLmMKPiBAQCAtOTY1LDEzICs5NjUsMTMgQEAgc3RhdGljIGludCBleHBv cnRfaXR1dF90MzUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1lICpmcmFtZSwKPiAgewo+ ICAgICAgR2V0Qnl0ZUNvbnRleHQgZ2I7Cj4gICAgICBBVjFEZWNDb250ZXh0ICpzID0gYXZjdHgt PnByaXZfZGF0YTsKPiAtICAgIGludCByZXQsIHByb3ZpZGVyX2NvZGU7Cj4gKyAgICBpbnQgcmV0 LCBwcm92aWRlcl9jb2RlLCBjb3VudHJ5X2NvZGU7Cj4KPiAgICAgIGJ5dGVzdHJlYW0yX2luaXQo JmdiLCBpdHV0X3QzNS0+cGF5bG9hZCwgaXR1dF90MzUtPnBheWxvYWRfc2l6ZSk7Cj4KPiAgICAg IHByb3ZpZGVyX2NvZGUgPSBieXRlc3RyZWFtMl9nZXRfYmUxNigmZ2IpOwo+IC0gICAgc3dpdGNo IChwcm92aWRlcl9jb2RlKSB7Cj4gLSAgICBjYXNlIElUVV9UX1QzNV9QUk9WSURFUl9DT0RFX0FU U0M6IHsKPiArICAgIGNvdW50cnlfY29kZSA9IGl0dXRfdDM1LT5pdHVfdF90MzVfY291bnRyeV9j b2RlIDsKPiArICAgIGlmIChjb3VudHJ5X2NvZGUgPT0gSVRVX1RfVDM1X0NPVU5UUllfQ09ERV9V UyAmJiBwcm92aWRlcl9jb2RlID09IElUVV9UX1QzNV9QUk9WSURFUl9DT0RFX0FUU0MpIHsKPiAg ICAgICAgICB1aW50MzJfdCB1c2VyX2lkZW50aWZpZXIgPSBieXRlc3RyZWFtMl9nZXRfYmUzMigm Z2IpOwo+ICAgICAgICAgIHN3aXRjaCAodXNlcl9pZGVudGlmaWVyKSB7Cj4gICAgICAgICAgY2Fz ZSBNS0JFVEFHKCdHJywgJ0EnLCAnOScsICc0Jyk6IHsgLy8gY2xvc2VkIGNhcHRpb25zCj4gQEAg LTk5NywxNiArOTk3LDEzIEBAIEZGX0VOQUJMRV9ERVBSRUNBVElPTl9XQVJOSU5HUwo+ICAgICAg ICAgIGRlZmF1bHQ6IC8vIGlnbm9yZSB1bnN1cHBvcnRlZCBpZGVudGlmaWVycwo+ICAgICAgICAg ICAgICBicmVhazsKPiAgICAgICAgICB9Cj4gLSAgICAgICAgYnJlYWs7Cj4gLSAgICB9Cj4gLSAg ICBjYXNlIElUVV9UX1QzNV9QUk9WSURFUl9DT0RFX1NNVFBFOiB7Cj4gKyAgICB9IGVsc2UgaWYg KGNvdW50cnlfY29kZSA9PSBJVFVfVF9UMzVfQ09VTlRSWV9DT0RFX1VTICYmIHByb3ZpZGVyX2Nv ZGUgPT0gSVRVX1RfVDM1X1BST1ZJREVSX0NPREVfU0FNU1VORykgewo+ICAgICAgICAgIEFWRHlu YW1pY0hEUlBsdXMgKmhkcnBsdXM7Cj4gICAgICAgICAgaW50IHByb3ZpZGVyX29yaWVudGVkX2Nv ZGUgPSBieXRlc3RyZWFtMl9nZXRfYmUxNigmZ2IpOwo+ICAgICAgICAgIGludCBhcHBsaWNhdGlv bl9pZGVudGlmaWVyID0gYnl0ZXN0cmVhbTJfZ2V0X2J5dGUoJmdiKTsKPgo+IC0gICAgICAgIGlm IChpdHV0X3QzNS0+aXR1X3RfdDM1X2NvdW50cnlfY29kZSAhPSBJVFVfVF9UMzVfQ09VTlRSWV9D T0RFX1VTIHx8Cj4gLSAgICAgICAgICAgIHByb3ZpZGVyX29yaWVudGVkX2NvZGUgIT0gMSB8fCBh cHBsaWNhdGlvbl9pZGVudGlmaWVyICE9IDQpCj4gLSAgICAgICAgICAgIGJyZWFrOwo+ICsgICAg ICAgIGlmIChwcm92aWRlcl9vcmllbnRlZF9jb2RlICE9IDEgfHwgYXBwbGljYXRpb25faWRlbnRp ZmllciAhPSA0KQo+ICsgICAgICAgICAgICByZXR1cm4gMDsgLy8gaWdub3JlCj4KPiAgICAgICAg ICBoZHJwbHVzID0gYXZfZHluYW1pY19oZHJfcGx1c19jcmVhdGVfc2lkZV9kYXRhKGZyYW1lKTsK PiAgICAgICAgICBpZiAoIWhkcnBsdXMpCj4gQEAgLTEwMTYsMjggKzEwMTMsMjMgQEAgRkZfRU5B QkxFX0RFUFJFQ0FUSU9OX1dBUk5JTkdTCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBieXRlc3RyZWFtMl9nZXRfYnl0ZXNfbGVmdCgmZ2IpKTsKPiAgICAgICAg ICBpZiAocmV0IDwgMCkKPiAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiAtICAgICAgICBicmVh azsKPiAtICAgIH0KPiAtICAgIGNhc2UgSVRVX1RfVDM1X1BST1ZJREVSX0NPREVfRE9MQlk6IHsK PiArICAgIH0gZWxzZSBpZiAoY291bnRyeV9jb2RlID09IElUVV9UX1QzNV9DT1VOVFJZX0NPREVf VVMgJiYgcHJvdmlkZXJfY29kZSA9PSBJVFVfVF9UMzVfUFJPVklERVJfQ09ERV9ET0xCWSkgewo+ ICAgICAgICAgIGludCBwcm92aWRlcl9vcmllbnRlZF9jb2RlID0gYnl0ZXN0cmVhbTJfZ2V0X2Jl MzIoJmdiKTsKPiAtICAgICAgICBpZiAoaXR1dF90MzUtPml0dV90X3QzNV9jb3VudHJ5X2NvZGUg IT0gSVRVX1RfVDM1X0NPVU5UUllfQ09ERV9VUyB8fAo+IC0gICAgICAgICAgICBwcm92aWRlcl9v cmllbnRlZF9jb2RlICE9IDB4ODAwKQo+IC0gICAgICAgICAgICBicmVhazsKPiArICAgICAgICBp ZiAocHJvdmlkZXJfb3JpZW50ZWRfY29kZSAhPSAweDgwMCkKPiArICAgICAgICAgICAgcmV0dXJu IDA7IC8vIGlnbm9yZQo+Cj4gICAgICAgICAgcmV0ID0gZmZfZG92aV9ycHVfcGFyc2UoJnMtPmRv dmksIGdiLmJ1ZmZlciwgZ2IuYnVmZmVyX2VuZCAtIGdiLmJ1ZmZlciwKPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhdmN0eC0+ZXJyX3JlY29nbml0aW9uKTsKPiAgICAgICAgICBp ZiAocmV0IDwgMCkgewo+ICAgICAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19XQVJOSU5H LCAiRXJyb3IgcGFyc2luZyBET1ZJIE9CVS5cbiIpOwo+IC0gICAgICAgICAgICBicmVhazsgLy8g aWdub3JlCj4gKyAgICAgICAgICAgIHJldHVybiAwOyAvLyBpZ25vcmUKPiAgICAgICAgICB9Cj4K PiAgICAgICAgICByZXQgPSBmZl9kb3ZpX2F0dGFjaF9zaWRlX2RhdGEoJnMtPmRvdmksIGZyYW1l KTsKPiAgICAgICAgICBpZiAocmV0IDwgMCkKPiAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiAt ICAgICAgICBicmVhazsKPiAtICAgIH0KPiAtICAgIGRlZmF1bHQ6IC8vIGlnbm9yZSB1bnN1cHBv cnRlZCBwcm92aWRlciBjb2Rlcwo+IC0gICAgICAgIGJyZWFrOwo+ICsgICAgfSBlbHNlIHsKPiAr ICAgICAgICAvLyBpZ25vcmUgdW5zdXBwb3J0ZWQgcHJvdmlkZXIgY29kZXMKPiAgICAgIH0KPgo+ ICAgICAgcmV0dXJuIDA7Cj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvaDI2NDVfc2VpLmMgYi9s aWJhdmNvZGVjL2gyNjQ1X3NlaS5jCj4gaW5kZXggZDE3YzRmYjVmOS4uMDQ0MzJiNmE4ZCAxMDA2 NDQKPiAtLS0gYS9saWJhdmNvZGVjL2gyNjQ1X3NlaS5jCj4gKysrIGIvbGliYXZjb2RlYy9oMjY0 NV9zZWkuYwo+IEBAIC0xNTgsMjAgKzE1OCwxMCBAQCBzdGF0aWMgaW50IGRlY29kZV9yZWdpc3Rl cmVkX3VzZXJfZGF0YShIMjY0NVNFSSAqaCwgR2V0Qnl0ZUNvbnRleHQgKmdiLAo+ICAgICAgICAg IGJ5dGVzdHJlYW0yX3NraXB1KGdiLCAxKTsgIC8vIGl0dV90X3QzNV9jb3VudHJ5X2NvZGVfZXh0 ZW5zaW9uX2J5dGUKPiAgICAgIH0KPgo+IC0gICAgaWYgKGNvdW50cnlfY29kZSAhPSBJVFVfVF9U MzVfQ09VTlRSWV9DT0RFX1VTICYmCj4gLSAgICAgICAgY291bnRyeV9jb2RlICE9IElUVV9UX1Qz NV9DT1VOVFJZX0NPREVfVUsgJiYKPiAtICAgICAgICBjb3VudHJ5X2NvZGUgIT0gSVRVX1RfVDM1 X0NPVU5UUllfQ09ERV9DTikgewo+IC0gICAgICAgIGF2X2xvZyhsb2djdHgsIEFWX0xPR19WRVJC T1NFLAo+IC0gICAgICAgICAgICAgICAiVW5zdXBwb3J0ZWQgVXNlciBEYXRhIFJlZ2lzdGVyZWQg SVRVLVQgVDM1IFNFSSBtZXNzYWdlIChjb3VudHJ5X2NvZGUgPSAlZClcbiIsCj4gLSAgICAgICAg ICAgICAgIGNvdW50cnlfY29kZSk7Cj4gLSAgICAgICAgcmV0dXJuIDA7Cj4gLSAgICB9Cj4gLQo+ ICAgICAgLyogaXR1X3RfdDM1X3BheWxvYWRfYnl0ZSBmb2xsb3dzICovCj4gICAgICBwcm92aWRl cl9jb2RlID0gYnl0ZXN0cmVhbTJfZ2V0X2JlMTZ1KGdiKTsKPgo+IC0gICAgc3dpdGNoIChwcm92 aWRlcl9jb2RlKSB7Cj4gLSAgICBjYXNlIElUVV9UX1QzNV9QUk9WSURFUl9DT0RFX0FUU0M6IHsK PiArICAgIGlmIChjb3VudHJ5X2NvZGUgPT0gSVRVX1RfVDM1X0NPVU5UUllfQ09ERV9VUyAmJiBw cm92aWRlcl9jb2RlID09IElUVV9UX1QzNV9QUk9WSURFUl9DT0RFX0FUU0MpIHsKPiAgICAgICAg ICB1aW50MzJfdCB1c2VyX2lkZW50aWZpZXI7Cj4KPiAgICAgICAgICBpZiAoYnl0ZXN0cmVhbTJf Z2V0X2J5dGVzX2xlZnQoZ2IpIDwgNCkKPiBAQCAtMTg5LDkgKzE3OSw3IEBAIHN0YXRpYyBpbnQg ZGVjb2RlX3JlZ2lzdGVyZWRfdXNlcl9kYXRhKEgyNjQ1U0VJICpoLCBHZXRCeXRlQ29udGV4dCAq Z2IsCj4gICAgICAgICAgICAgICAgICAgICB1c2VyX2lkZW50aWZpZXIpOwo+ICAgICAgICAgICAg ICBicmVhazsKPiAgICAgICAgICB9Cj4gLSAgICAgICAgYnJlYWs7Cj4gLSAgICB9Cj4gLSAgICBj YXNlIElUVV9UX1QzNV9QUk9WSURFUl9DT0RFX0xDRVZDOiB7Cj4gKyAgICB9IGVsc2UgaWYgKGNv dW50cnlfY29kZSA9PSBJVFVfVF9UMzVfQ09VTlRSWV9DT0RFX1VLICYmIHByb3ZpZGVyX2NvZGUg PT0gSVRVX1RfVDM1X1BST1ZJREVSX0NPREVfVk5PVkEpIHsKPiAgICAgICAgICBpZiAoYnl0ZXN0 cmVhbTJfZ2V0X2J5dGVzX2xlZnQoZ2IpIDwgMikKPiAgICAgICAgICAgICAgcmV0dXJuIEFWRVJS T1JfSU5WQUxJRERBVEE7Cj4KPiBAQCAtMTk5LDcgKzE4Nyw3IEBAIHN0YXRpYyBpbnQgZGVjb2Rl X3JlZ2lzdGVyZWRfdXNlcl9kYXRhKEgyNjQ1U0VJICpoLCBHZXRCeXRlQ29udGV4dCAqZ2IsCj4g ICAgICAgICAgcmV0dXJuIGRlY29kZV9yZWdpc3RlcmVkX3VzZXJfZGF0YV9sY2V2YygmaC0+bGNl dmMsIGdiKTsKPiAgICAgIH0KPiAgI2lmIENPTkZJR19IRVZDX1NFSQo+IC0gICAgY2FzZSBJVFVf VF9UMzVfUFJPVklERVJfQ09ERV9DVVZBOiB7Cj4gKyAgICBlbHNlIGlmIChjb3VudHJ5X2NvZGUg PT0gSVRVX1RfVDM1X0NPVU5UUllfQ09ERV9DTiAmJiBwcm92aWRlcl9jb2RlID09IElUVV9UX1Qz NV9QUk9WSURFUl9DT0RFX0hEUl9WSVZJRCkgewo+ICAgICAgICAgIGNvbnN0IHVpbnQxNl90IGN1 dmFfcHJvdmlkZXJfb3JpZW50ZWRfY29kZSA9IDB4MDAwNTsKPiAgICAgICAgICB1aW50MTZfdCBw cm92aWRlcl9vcmllbnRlZF9jb2RlOwo+Cj4gQEAgLTIxMyw5ICsyMDEsNyBAQCBzdGF0aWMgaW50 IGRlY29kZV9yZWdpc3RlcmVkX3VzZXJfZGF0YShIMjY0NVNFSSAqaCwgR2V0Qnl0ZUNvbnRleHQg KmdiLAo+ICAgICAgICAgIGlmIChwcm92aWRlcl9vcmllbnRlZF9jb2RlID09IGN1dmFfcHJvdmlk ZXJfb3JpZW50ZWRfY29kZSkgewo+ICAgICAgICAgICAgICByZXR1cm4gZGVjb2RlX3JlZ2lzdGVy ZWRfdXNlcl9kYXRhX2R5bmFtaWNfaGRyX3ZpdmlkKCZoLT5keW5hbWljX2hkcl92aXZpZCwgZ2Ip Owo+ICAgICAgICAgIH0KPiAtICAgICAgICBicmVhazsKPiAtICAgIH0KPiAtICAgIGNhc2UgSVRV X1RfVDM1X1BST1ZJREVSX0NPREVfU01UUEU6IHsKPiArICAgIH0gZWxzZSBpZihjb3VudHJ5X2Nv ZGUgPT0gSVRVX1RfVDM1X0NPVU5UUllfQ09ERV9VUyAmJiBwcm92aWRlcl9jb2RlID09IElUVV9U X1QzNV9QUk9WSURFUl9DT0RFX1NBTVNVTkcpIHsKPiAgICAgICAgICAvLyBBLzM0MSBBbWVuZG1l bnQgLSAyMDk0LTQwCj4gICAgICAgICAgY29uc3QgdWludDE2X3Qgc21wdGUyMDk0XzQwX3Byb3Zp ZGVyX29yaWVudGVkX2NvZGUgPSAweDAwMDE7Cj4gICAgICAgICAgY29uc3QgdWludDhfdCBzbXB0 ZTIwOTRfNDBfYXBwbGljYXRpb25faWRlbnRpZmllciA9IDB4MDQ7Cj4gQEAgLTIzNCw5ICsyMjAs NyBAQCBzdGF0aWMgaW50IGRlY29kZV9yZWdpc3RlcmVkX3VzZXJfZGF0YShIMjY0NVNFSSAqaCwg R2V0Qnl0ZUNvbnRleHQgKmdiLAo+ICAgICAgICAgICAgICBhcHBsaWNhdGlvbl9pZGVudGlmaWVy ID09IHNtcHRlMjA5NF80MF9hcHBsaWNhdGlvbl9pZGVudGlmaWVyKSB7Cj4gICAgICAgICAgICAg IHJldHVybiBkZWNvZGVfcmVnaXN0ZXJlZF91c2VyX2RhdGFfZHluYW1pY19oZHJfcGx1cygmaC0+ ZHluYW1pY19oZHJfcGx1cywgZ2IpOwo+ICAgICAgICAgIH0KPiAtICAgICAgICBicmVhazsKPiAt ICAgIH0KPiAtICAgIGNhc2UgMHg1ODkwOiB7IC8vIGFvbV9wcm92aWRlcl9jb2RlCj4gKyAgICB9 IGVsc2UgaWYgKGNvdW50cnlfY29kZSA9PSBJVFVfVF9UMzVfQ09VTlRSWV9DT0RFX1VTICYmIHBy b3ZpZGVyX2NvZGUgPT0gSVRVX1RfVDM1X1BST1ZJREVSX0NPREVfQU9NKSB7Cj4gICAgICAgICAg Y29uc3QgdWludDE2X3QgYW9tX2dyYWluX3Byb3ZpZGVyX29yaWVudGVkX2NvZGUgPSAweDAwMDE7 Cj4gICAgICAgICAgdWludDE2X3QgcHJvdmlkZXJfb3JpZW50ZWRfY29kZTsKPgo+IEBAIC0yNTIs MTUgKzIzNiwxMyBAQCBzdGF0aWMgaW50IGRlY29kZV9yZWdpc3RlcmVkX3VzZXJfZGF0YShIMjY0 NVNFSSAqaCwgR2V0Qnl0ZUNvbnRleHQgKmdiLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBnYi0+YnVmZmVyLAo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlc3RyZWFtMl9nZXRfYnl0ZXNfbGVmdChn YikpOwo+ICAgICAgICAgIH0KPiAtICAgICAgICBicmVhazsKPiAgICAgIH0KPiAtICAgIHVuc3Vw cG9ydGVkX3Byb3ZpZGVyX2NvZGU6Cj4gICNlbmRpZgo+IC0gICAgZGVmYXVsdDoKPiArICAgIGVs c2Ugewo+ICsgICAgICAgIHVuc3VwcG9ydGVkX3Byb3ZpZGVyX2NvZGU6Cj4gICAgICAgICAgYXZf bG9nKGxvZ2N0eCwgQVZfTE9HX1ZFUkJPU0UsCj4gLSAgICAgICAgICAgICAgICJVbnN1cHBvcnRl ZCBVc2VyIERhdGEgUmVnaXN0ZXJlZCBJVFUtVCBUMzUgU0VJIG1lc3NhZ2UgKHByb3ZpZGVyX2Nv ZGUgPSAlZClcbiIsCj4gLSAgICAgICAgICAgICAgIHByb3ZpZGVyX2NvZGUpOwo+IC0gICAgICAg IGJyZWFrOwo+ICsgICAgICAgICAgICAgICAiVW5zdXBwb3J0ZWQgVXNlciBEYXRhIFJlZ2lzdGVy ZWQgSVRVLVQgVDM1IFNFSSBtZXNzYWdlIChjb3VudHJ5X2NvZGUgPSAlZCwgcHJvdmlkZXJfY29k ZSA9ICVkKVxuIiwKPiArICAgICAgICAgICAgICAgY291bnRyeV9jb2RlLCBwcm92aWRlcl9jb2Rl KTsKPiAgICAgIH0KPgo+ICAgICAgcmV0dXJuIDA7Cj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMv aXR1dDM1LmggYi9saWJhdmNvZGVjL2l0dXQzNS5oCj4gaW5kZXggYTc1ZWYzNzkyOS4uYjg5ODdk MGIwMSAxMDA2NDQKPiAtLS0gYS9saWJhdmNvZGVjL2l0dXQzNS5oCj4gKysrIGIvbGliYXZjb2Rl Yy9pdHV0MzUuaAo+IEBAIC0yMywxMCArMjMsMjEgQEAKPiAgI2RlZmluZSBJVFVfVF9UMzVfQ09V TlRSWV9DT0RFX1VLIDB4QjQKPiAgI2RlZmluZSBJVFVfVF9UMzVfQ09VTlRSWV9DT0RFX1VTIDB4 QjUKPgo+IC0jZGVmaW5lIElUVV9UX1QzNV9QUk9WSURFUl9DT0RFX0FUU0MgIDB4MzEKPiAtI2Rl ZmluZSBJVFVfVF9UMzVfUFJPVklERVJfQ09ERV9DVVZBICAweDA0Cj4gLSNkZWZpbmUgSVRVX1Rf VDM1X1BST1ZJREVSX0NPREVfRE9MQlkgMHgzQgo+IC0jZGVmaW5lIElUVV9UX1QzNV9QUk9WSURF Ul9DT0RFX0xDRVZDIDB4NTAKPiAtI2RlZmluZSBJVFVfVF9UMzVfUFJPVklERVJfQ09ERV9TTVRQ RSAweDNDCj4gKy8vIFRoZSBUZXJtaW5hbCBQcm92aWRlciBDb2RlIChvciAiTWFudWZhY3R1cmVy IENvZGUiKSBpZGVudGlmaWVzIHRoZQo+ICsvLyBtYW51ZmFjdHVyZXIgd2l0aGluIGEgY291bnRy eS4gQW4gQXNzaWdubWVudCBBdXRob3JpdHkgYXBwb2ludGVkIGJ5IHRoZQo+ICsvLyBuYXRpb25h bCBib2R5IGFzc2lnbnMgdGhpcyBjb2RlIG5hdGlvbmFsbHkuIFRoZSBtYW51ZmFjdHVyZXIgY29k ZSBpcyBhbHdheXMKPiArLy8gdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGEgY291bnRyeSBjb2Rl Lgo+ICsvLyAtIENOIHByb3ZpZGVycwo+ICsjZGVmaW5lIElUVV9UX1QzNV9QUk9WSURFUl9DT0RF X0hEUl9WSVZJRCAgICAweDAwMDQKPiArLy8gLSBVSyBwcm92aWRlcnMKPiArLy8gVi1Ob3ZhIHNo b3VsZCBiZSAweDUwMDAgYWNjb3JkaW5nIHRvIFVLIFJlZ2lzdGVyIG9mIE1hbnVmYWN0dXJlciBD b2Rlcwo+ICsvLyBodHRwczovL3d3dy5jaXguY28udWsvfmJwZWNoZXkvSDIyMS9oMjIxY29kZS5o dG0KPiArLy8gYnV0IEZGbXBlZyBoYXMgYmVlbiB1c2luZyAweDAwNTAKPiArI2RlZmluZSBJVFVf VF9UMzVfUFJPVklERVJfQ09ERV9WTk9WQSAgICAgICAgMHgwMDUwCj4gKy8vIC0gVVMgcHJvdmlk ZXJzCj4gKyNkZWZpbmUgSVRVX1RfVDM1X1BST1ZJREVSX0NPREVfQVRTQyAgICAgICAgIDB4MDAz MQo+ICsjZGVmaW5lIElUVV9UX1QzNV9QUk9WSURFUl9DT0RFX0RPTEJZICAgICAgICAweDAwM0IK PiArI2RlZmluZSBJVFVfVF9UMzVfUFJPVklERVJfQ09ERV9BT00gICAgICAgICAgMHg1ODkwCj4g KyNkZWZpbmUgSVRVX1RfVDM1X1BST1ZJREVSX0NPREVfU0FNU1VORyAgICAgIDB4MDAzQwo+Cj4g ICNlbmRpZiAvKiBBVkNPREVDX0lUVVQzNV9IICovCj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMv bGliZGF2MWQuYyBiL2xpYmF2Y29kZWMvbGliZGF2MWQuYwo+IGluZGV4IGY0Y2JjOTI3YjUuLmEx MTU4YTIzYzQgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy9saWJkYXYxZC5jCj4gKysrIGIvbGli YXZjb2RlYy9saWJkYXYxZC5jCj4gQEAgLTM4Niw2ICszODYsODAgQEAgc3RhdGljIGludCBsaWJk YXYxZF9yZWNlaXZlX2ZyYW1lX2ludGVybmFsKEFWQ29kZWNDb250ZXh0ICpjLCBEYXYxZFBpY3R1 cmUgKnApCj4gICAgICByZXR1cm4gcmVzOwo+ICB9Cj4KPiArc3RhdGljIGludCBwYXJzZV9pdHV0 X3QzNV9tZXRhZGF0YShMaWJkYXYxZENvbnRleHQgKmRhdjFkLCBEYXYxZFBpY3R1cmUgKnAsCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRGF2MWRJVFVUVDM1ICpp dHV0X3QzNSwgQVZDb2RlY0NvbnRleHQgKmMsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQVZGcmFtZSAqZnJhbWUpIHsKPiArICAgIEdldEJ5dGVDb250ZXh0IGdiOwo+ICsg ICAgaW50IHByb3ZpZGVyX2NvZGUsIGNvdW50cnlfY29kZTsKPiArICAgIGludCByZXM7Cj4gKwo+ ICsgICAgYnl0ZXN0cmVhbTJfaW5pdCgmZ2IsIGl0dXRfdDM1LT5wYXlsb2FkLCBpdHV0X3QzNS0+ cGF5bG9hZF9zaXplKTsKPiArCj4gKyAgICBwcm92aWRlcl9jb2RlID0gYnl0ZXN0cmVhbTJfZ2V0 X2JlMTYoJmdiKTsKPiArICAgIGNvdW50cnlfY29kZSA9IGl0dXRfdDM1LT5jb3VudHJ5X2NvZGU7 Cj4gKyAgICBpZiAoY291bnRyeV9jb2RlID09IElUVV9UX1QzNV9DT1VOVFJZX0NPREVfVVMgJiYg cHJvdmlkZXJfY29kZSA9PSBJVFVfVF9UMzVfUFJPVklERVJfQ09ERV9BVFNDKSB7Cj4gKyAgICAg ICAgdWludDMyX3QgdXNlcl9pZGVudGlmaWVyID0gYnl0ZXN0cmVhbTJfZ2V0X2JlMzIoJmdiKTsK PiArICAgICAgICBzd2l0Y2ggKHVzZXJfaWRlbnRpZmllcikgewo+ICsgICAgICAgIGNhc2UgTUtC RVRBRygnRycsICdBJywgJzknLCAnNCcpOiB7IC8vIGNsb3NlZCBjYXB0aW9ucwo+ICsgICAgICAg ICAgICBBVkJ1ZmZlclJlZiAqYnVmID0gTlVMTDsKPiArCj4gKyAgICAgICAgICAgIHJlcyA9IGZm X3BhcnNlX2E1M19jYygmYnVmLCBnYi5idWZmZXIsIGJ5dGVzdHJlYW0yX2dldF9ieXRlc19sZWZ0 KCZnYikpOwo+ICsgICAgICAgICAgICBpZiAocmVzIDwgMCkKPiArICAgICAgICAgICAgICAgIHJl dHVybiByZXM7Cj4gKyAgICAgICAgICAgIGlmICghcmVzKQo+ICsgICAgICAgICAgICAgICAgcmV0 dXJuIDA7ICAvLyBubyBjYyBmb3VuZCwgaWdub3JlCj4gKwo+ICsgICAgICAgICAgICByZXMgPSBm Zl9mcmFtZV9uZXdfc2lkZV9kYXRhX2Zyb21fYnVmKGMsIGZyYW1lLCBBVl9GUkFNRV9EQVRBX0E1 M19DQywgJmJ1Zik7Cj4gKyAgICAgICAgICAgIGlmIChyZXMgPCAwKQo+ICsgICAgICAgICAgICAg ICAgcmV0dXJuIHJlczsKPiArCj4gKyNpZiBGRl9BUElfQ09ERUNfUFJPUFMKPiArRkZfRElTQUJM RV9ERVBSRUNBVElPTl9XQVJOSU5HUwo+ICsgICAgICAgICAgICBjLT5wcm9wZXJ0aWVzIHw9IEZG X0NPREVDX1BST1BFUlRZX0NMT1NFRF9DQVBUSU9OUzsKPiArRkZfRU5BQkxFX0RFUFJFQ0FUSU9O X1dBUk5JTkdTCj4gKyNlbmRpZgo+ICsgICAgICAgICAgICBicmVhazsKPiArICAgICAgICB9Cj4g KyAgICAgICAgZGVmYXVsdDogLy8gaWdub3JlIHVuc3VwcG9ydGVkIGlkZW50aWZpZXJzCj4gKyAg ICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgIH0KPiArICAgIH0gZWxzZSBpZiAoY291bnRyeV9j b2RlID09IElUVV9UX1QzNV9DT1VOVFJZX0NPREVfVVMgJiYgcHJvdmlkZXJfY29kZSA9PSBJVFVf VF9UMzVfUFJPVklERVJfQ09ERV9TQU1TVU5HKSB7Cj4gKyAgICAgICAgQVZEeW5hbWljSERSUGx1 cyAqaGRycGx1czsKPiArICAgICAgICBpbnQgcHJvdmlkZXJfb3JpZW50ZWRfY29kZSA9IGJ5dGVz dHJlYW0yX2dldF9iZTE2KCZnYik7Cj4gKyAgICAgICAgaW50IGFwcGxpY2F0aW9uX2lkZW50aWZp ZXIgPSBieXRlc3RyZWFtMl9nZXRfYnl0ZSgmZ2IpOwo+ICsKPiArICAgICAgICBpZiAocHJvdmlk ZXJfb3JpZW50ZWRfY29kZSAhPSAxIHx8IGFwcGxpY2F0aW9uX2lkZW50aWZpZXIgIT0gNCkKPiAr ICAgICAgICAgICAgcmV0dXJuIDA7IC8vIGlnbm9yZQo+ICsKPiArICAgICAgICBoZHJwbHVzID0g YXZfZHluYW1pY19oZHJfcGx1c19jcmVhdGVfc2lkZV9kYXRhKGZyYW1lKTsKPiArICAgICAgICBp ZiAoIWhkcnBsdXMpCj4gKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4gKwo+ ICsgICAgICAgIHJlcyA9IGF2X2R5bmFtaWNfaGRyX3BsdXNfZnJvbV90MzUoaGRycGx1cywgZ2Iu YnVmZmVyLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5 dGVzdHJlYW0yX2dldF9ieXRlc19sZWZ0KCZnYikpOwo+ICsgICAgICAgIGlmIChyZXMgPCAwKQo+ ICsgICAgICAgICAgICByZXR1cm4gcmVzOwo+ICsgICAgfSBlbHNlIGlmIChjb3VudHJ5X2NvZGUg PT0gSVRVX1RfVDM1X0NPVU5UUllfQ09ERV9VUyAmJiBwcm92aWRlcl9jb2RlID09IElUVV9UX1Qz NV9QUk9WSURFUl9DT0RFX0RPTEJZKSB7Cj4gKyAgICAgICAgaW50IHByb3ZpZGVyX29yaWVudGVk X2NvZGUgPSBieXRlc3RyZWFtMl9nZXRfYmUzMigmZ2IpOwo+ICsgICAgICAgIGlmIChwcm92aWRl cl9vcmllbnRlZF9jb2RlICE9IDB4ODAwKQo+ICsgICAgICAgICAgICByZXR1cm4gMDsgLy8gaWdu b3JlCj4gKwo+ICsgICAgICAgIHJlcyA9IGZmX2RvdmlfcnB1X3BhcnNlKCZkYXYxZC0+ZG92aSwg Z2IuYnVmZmVyLCBnYi5idWZmZXJfZW5kIC0gZ2IuYnVmZmVyLAo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGMtPmVycl9yZWNvZ25pdGlvbik7Cj4gKyAgICAgICAgaWYgKHJlcyA8 IDApIHsKPiArICAgICAgICAgICAgYXZfbG9nKGMsIEFWX0xPR19XQVJOSU5HLCAiRXJyb3IgcGFy c2luZyBET1ZJIE9CVS5cbiIpOwo+ICsgICAgICAgICAgICByZXR1cm4gMDsgLy8gaWdub3JlCj4g KyAgICAgICAgfQo+ICsKPiArICAgICAgICByZXMgPSBmZl9kb3ZpX2F0dGFjaF9zaWRlX2RhdGEo JmRhdjFkLT5kb3ZpLCBmcmFtZSk7Cj4gKyAgICAgICAgaWYgKHJlcyA8IDApCj4gKyAgICAgICAg ICAgIHJldHVybiByZXM7Cj4gKyAgICB9IGVsc2Ugewo+ICsgICAgICAgIC8vIGlnbm9yZSB1bnN1 cHBvcnRlZCBwcm92aWRlciBjb2Rlcwo+ICsgICAgfQo+ICsgICAgcmV0dXJuIDA7Cj4gK30KPiAr Cj4gIHN0YXRpYyBpbnQgbGliZGF2MWRfcmVjZWl2ZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYywg QVZGcmFtZSAqZnJhbWUpCj4gIHsKPiAgICAgIExpYmRhdjFkQ29udGV4dCAqZGF2MWQgPSBjLT5w cml2X2RhdGE7Cj4gQEAgLTUxNCw4MyArNTg4LDkgQEAgc3RhdGljIGludCBsaWJkYXYxZF9yZWNl aXZlX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICpjLCBBVkZyYW1lICpmcmFtZSkKPiAgI2Vsc2UKPiAg ICAgICAgICBjb25zdCBEYXYxZElUVVRUMzUgKml0dXRfdDM1ID0gcC0+aXR1dF90MzU7Cj4gICNl bmRpZgo+IC0gICAgICAgIEdldEJ5dGVDb250ZXh0IGdiOwo+IC0gICAgICAgIGludCBwcm92aWRl cl9jb2RlOwo+IC0KPiAtICAgICAgICBieXRlc3RyZWFtMl9pbml0KCZnYiwgaXR1dF90MzUtPnBh eWxvYWQsIGl0dXRfdDM1LT5wYXlsb2FkX3NpemUpOwo+IC0KPiAtICAgICAgICBwcm92aWRlcl9j b2RlID0gYnl0ZXN0cmVhbTJfZ2V0X2JlMTYoJmdiKTsKPiAtICAgICAgICBzd2l0Y2ggKHByb3Zp ZGVyX2NvZGUpIHsKPiAtICAgICAgICBjYXNlIElUVV9UX1QzNV9QUk9WSURFUl9DT0RFX0FUU0M6 IHsKPiAtICAgICAgICAgICAgdWludDMyX3QgdXNlcl9pZGVudGlmaWVyID0gYnl0ZXN0cmVhbTJf Z2V0X2JlMzIoJmdiKTsKPiAtICAgICAgICAgICAgc3dpdGNoICh1c2VyX2lkZW50aWZpZXIpIHsK PiAtICAgICAgICAgICAgY2FzZSBNS0JFVEFHKCdHJywgJ0EnLCAnOScsICc0Jyk6IHsgLy8gY2xv c2VkIGNhcHRpb25zCj4gLSAgICAgICAgICAgICAgICBBVkJ1ZmZlclJlZiAqYnVmID0gTlVMTDsK PiAtCj4gLSAgICAgICAgICAgICAgICByZXMgPSBmZl9wYXJzZV9hNTNfY2MoJmJ1ZiwgZ2IuYnVm ZmVyLCBieXRlc3RyZWFtMl9nZXRfYnl0ZXNfbGVmdCgmZ2IpKTsKPiAtICAgICAgICAgICAgICAg IGlmIChyZXMgPCAwKQo+IC0gICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKPiAtICAgICAg ICAgICAgICAgIGlmICghcmVzKQo+IC0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+IC0KPiAt ICAgICAgICAgICAgICAgIHJlcyA9IGZmX2ZyYW1lX25ld19zaWRlX2RhdGFfZnJvbV9idWYoYywg ZnJhbWUsIEFWX0ZSQU1FX0RBVEFfQTUzX0NDLCAmYnVmKTsKPiAtICAgICAgICAgICAgICAgIGlm IChyZXMgPCAwKQo+IC0gICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKPiAtCj4gLSNpZiBG Rl9BUElfQ09ERUNfUFJPUFMKPiAtRkZfRElTQUJMRV9ERVBSRUNBVElPTl9XQVJOSU5HUwo+IC0g ICAgICAgICAgICAgICAgYy0+cHJvcGVydGllcyB8PSBGRl9DT0RFQ19QUk9QRVJUWV9DTE9TRURf Q0FQVElPTlM7Cj4gLUZGX0VOQUJMRV9ERVBSRUNBVElPTl9XQVJOSU5HUwo+IC0jZW5kaWYKPiAt ICAgICAgICAgICAgICAgIGJyZWFrOwo+IC0gICAgICAgICAgICB9Cj4gLSAgICAgICAgICAgIGRl ZmF1bHQ6IC8vIGlnbm9yZSB1bnN1cHBvcnRlZCBpZGVudGlmaWVycwo+IC0gICAgICAgICAgICAg ICAgYnJlYWs7Cj4gLSAgICAgICAgICAgIH0KPiAtICAgICAgICAgICAgYnJlYWs7Cj4gLSAgICAg ICAgfQo+IC0gICAgICAgIGNhc2UgSVRVX1RfVDM1X1BST1ZJREVSX0NPREVfU01UUEU6IHsKPiAt ICAgICAgICAgICAgQVZEeW5hbWljSERSUGx1cyAqaGRycGx1czsKPiAtICAgICAgICAgICAgaW50 IHByb3ZpZGVyX29yaWVudGVkX2NvZGUgPSBieXRlc3RyZWFtMl9nZXRfYmUxNigmZ2IpOwo+IC0g ICAgICAgICAgICBpbnQgYXBwbGljYXRpb25faWRlbnRpZmllciA9IGJ5dGVzdHJlYW0yX2dldF9i eXRlKCZnYik7Cj4gLQo+IC0gICAgICAgICAgICBpZiAoaXR1dF90MzUtPmNvdW50cnlfY29kZSAh PSBJVFVfVF9UMzVfQ09VTlRSWV9DT0RFX1VTIHx8Cj4gLSAgICAgICAgICAgICAgICBwcm92aWRl cl9vcmllbnRlZF9jb2RlICE9IDEgfHwgYXBwbGljYXRpb25faWRlbnRpZmllciAhPSA0KQo+IC0g ICAgICAgICAgICAgICAgYnJlYWs7Cj4gLQo+IC0gICAgICAgICAgICBoZHJwbHVzID0gYXZfZHlu YW1pY19oZHJfcGx1c19jcmVhdGVfc2lkZV9kYXRhKGZyYW1lKTsKPiAtICAgICAgICAgICAgaWYg KCFoZHJwbHVzKSB7Cj4gLSAgICAgICAgICAgICAgICByZXMgPSBBVkVSUk9SKEVOT01FTSk7Cj4g LSAgICAgICAgICAgICAgICBnb3RvIGZhaWw7Cj4gLSAgICAgICAgICAgIH0KPiAtCj4gLSAgICAg ICAgICAgIHJlcyA9IGF2X2R5bmFtaWNfaGRyX3BsdXNfZnJvbV90MzUoaGRycGx1cywgZ2IuYnVm ZmVyLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5 dGVzdHJlYW0yX2dldF9ieXRlc19sZWZ0KCZnYikpOwo+IC0gICAgICAgICAgICBpZiAocmVzIDwg MCkKPiAtICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKPiAtICAgICAgICAgICAgYnJlYWs7Cj4g LSAgICAgICAgfQo+IC0gICAgICAgIGNhc2UgSVRVX1RfVDM1X1BST1ZJREVSX0NPREVfRE9MQlk6 IHsKPiAtICAgICAgICAgICAgaW50IHByb3ZpZGVyX29yaWVudGVkX2NvZGUgPSBieXRlc3RyZWFt Ml9nZXRfYmUzMigmZ2IpOwo+IC0gICAgICAgICAgICBpZiAoaXR1dF90MzUtPmNvdW50cnlfY29k ZSAhPSBJVFVfVF9UMzVfQ09VTlRSWV9DT0RFX1VTIHx8Cj4gLSAgICAgICAgICAgICAgICBwcm92 aWRlcl9vcmllbnRlZF9jb2RlICE9IDB4ODAwKQo+IC0gICAgICAgICAgICAgICAgYnJlYWs7Cj4g LQo+IC0gICAgICAgICAgICByZXMgPSBmZl9kb3ZpX3JwdV9wYXJzZSgmZGF2MWQtPmRvdmksIGdi LmJ1ZmZlciwgZ2IuYnVmZmVyX2VuZCAtIGdiLmJ1ZmZlciwKPiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYy0+ZXJyX3JlY29nbml0aW9uKTsKPiAtICAgICAgICAgICAgaWYg KHJlcyA8IDApIHsKPiAtICAgICAgICAgICAgICAgIGF2X2xvZyhjLCBBVl9MT0dfV0FSTklORywg IkVycm9yIHBhcnNpbmcgRE9WSSBPQlUuXG4iKTsKPiAtICAgICAgICAgICAgICAgIGJyZWFrOyAv LyBpZ25vcmUKPiAtICAgICAgICAgICAgfQo+IC0KPiAtICAgICAgICAgICAgcmVzID0gZmZfZG92 aV9hdHRhY2hfc2lkZV9kYXRhKCZkYXYxZC0+ZG92aSwgZnJhbWUpOwo+IC0gICAgICAgICAgICBp ZiAocmVzIDwgMCkKPiAtICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKPiAtICAgICAgICAgICAg YnJlYWs7Cj4gLSAgICAgICAgfQo+IC0gICAgICAgIGRlZmF1bHQ6IC8vIGlnbm9yZSB1bnN1cHBv cnRlZCBwcm92aWRlciBjb2Rlcwo+IC0gICAgICAgICAgICBicmVhazsKPiAtICAgICAgICB9Cj4g KyAgICAgICAgcmVzID0gcGFyc2VfaXR1dF90MzVfbWV0YWRhdGEoZGF2MWQsIHAsIGl0dXRfdDM1 LCBjLCBmcmFtZSk7Cj4gKyAgICAgICAgaWYgKHJlcyA8IDApCj4gKyAgICAgICAgICAgIGdvdG8g ZmFpbDsKPiAgI2lmIEZGX0RBVjFEX1ZFUlNJT05fQVRfTEVBU1QoNiw5KQo+ICAgICAgICAgIH0K PiAgI2VuZGlmCj4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L21hdHJvc2thZGVjLmMgYi9saWJh dmZvcm1hdC9tYXRyb3NrYWRlYy5jCj4gaW5kZXggZGE1MTY2MzE5ZS4uMjdiYWYzZjE4ZSAxMDA2 NDQKPiAtLS0gYS9saWJhdmZvcm1hdC9tYXRyb3NrYWRlYy5jCj4gKysrIGIvbGliYXZmb3JtYXQv bWF0cm9za2FkZWMuYwo+IEBAIC0zOTMxLDcgKzM5MzEsNyBAQCBzdGF0aWMgaW50IG1hdHJvc2th X3BhcnNlX2Jsb2NrX2FkZGl0aW9uYWwoTWF0cm9za2FEZW11eENvbnRleHQgKm1hdHJvc2thLAo+ ICAgICAgICAgIHByb3ZpZGVyX2NvZGUgPSBieXRlc3RyZWFtMl9nZXRfYmUxNnUoJmJjKTsKPgo+ ICAgICAgICAgIGlmIChjb3VudHJ5X2NvZGUgIT0gSVRVX1RfVDM1X0NPVU5UUllfQ09ERV9VUyB8 fAo+IC0gICAgICAgICAgICBwcm92aWRlcl9jb2RlICE9IElUVV9UX1QzNV9QUk9WSURFUl9DT0RF X1NNVFBFKQo+ICsgICAgICAgICAgICBwcm92aWRlcl9jb2RlICE9IElUVV9UX1QzNV9QUk9WSURF Ul9DT0RFX1NBTVNVTkcpCj4gICAgICAgICAgICAgIGJyZWFrOyAvLyBpZ25vcmUKPgo+ICAgICAg ICAgIHByb3ZpZGVyX29yaWVudGVkX2NvZGUgPSBieXRlc3RyZWFtMl9nZXRfYmUxNnUoJmJjKTsK PiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvbWF0cm9za2FlbmMuYyBiL2xpYmF2Zm9ybWF0L21h dHJvc2thZW5jLmMKPiBpbmRleCA0MDg4OTBmYTg5Li44MTQyZDkxMjVlIDEwMDY0NAo+IC0tLSBh L2xpYmF2Zm9ybWF0L21hdHJvc2thZW5jLmMKPiArKysgYi9saWJhdmZvcm1hdC9tYXRyb3NrYWVu Yy5jCj4gQEAgLTI4NjksNyArMjg2OSw3IEBAIHN0YXRpYyBpbnQgbWt2X3dyaXRlX2Jsb2NrKHZv aWQgKmxvZ2N0eCwgTWF0cm9za2FNdXhDb250ZXh0ICpta3YsCj4gICAgICAgICAgICAgIHNpemVf dCBwYXlsb2FkX3NpemUgPSBzaXplb2YodDM1X2J1ZikgLSA2Owo+Cj4gICAgICAgICAgICAgIGJ5 dGVzdHJlYW1fcHV0X2J5dGUoJnBheWxvYWQsIElUVV9UX1QzNV9DT1VOVFJZX0NPREVfVVMpOwo+ IC0gICAgICAgICAgICBieXRlc3RyZWFtX3B1dF9iZTE2KCZwYXlsb2FkLCBJVFVfVF9UMzVfUFJP VklERVJfQ09ERV9TTVRQRSk7Cj4gKyAgICAgICAgICAgIGJ5dGVzdHJlYW1fcHV0X2JlMTYoJnBh eWxvYWQsIElUVV9UX1QzNV9QUk9WSURFUl9DT0RFX1NBTVNVTkcpOwo+ICAgICAgICAgICAgICBi eXRlc3RyZWFtX3B1dF9iZTE2KCZwYXlsb2FkLCAweDAxKTsgLy8gcHJvdmlkZXJfb3JpZW50ZWRf Y29kZQo+ICAgICAgICAgICAgICBieXRlc3RyZWFtX3B1dF9ieXRlKCZwYXlsb2FkLCAweDA0KTsg Ly8gYXBwbGljYXRpb25faWRlbnRpZmllcgo+Cj4gLS0KPiAyLjUwLjAuNzE0LmcxOTZiZjlmNDIy LWdvb2cKPgoKRnJpZW5kbHkgcGluZy4KVGhpcyBpcyB2MiB3aGVyZSBJIGNoYW5nZWQgZnJvbSBz d2l0Y2ggc3RhdGVtZW50cyB0byBpZi9lbHNlCnN0YXRlbWVudHMsIHdoaWNoIEkgdGhpbmsgaXMg ZWFzaWVyIHRvIHJlYWQgYW5kIHJlZHVjZXMgbmVzdGluZy4KX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1w ZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9m Zm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApm Zm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUi Lgo=