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 2B4A94779D for ; Thu, 20 Jun 2024 02:12:27 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6F95368D87D; Thu, 20 Jun 2024 05:12:23 +0300 (EEST) Received: from vidala.lynne.ee (vidala.pars.ee [116.203.72.101]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0C3EA68D804 for ; Thu, 20 Jun 2024 05:12:16 +0300 (EEST) Message-ID: Date: Thu, 20 Jun 2024 04:12:15 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta To: ffmpeg-devel@ffmpeg.org References: <20240616085454.2560973-1-dev@lynne.ee> <20240616085454.2560973-6-dev@lynne.ee> Content-Language: en-US Autocrypt: addr=dev@lynne.ee; keydata= xjMEXnFG3BYJKwYBBAHaRw8BAQdA3FyJpqEdfQj4GA7OUWVrNheT9dUsIs+yUx6Hljr9mYvN FEx5bm5lIDxkZXZAbHlubmUuZWU+wpAEExYIADgWIQT+UBOcaAVyyv1SH42i/qXwPwNEZAUC XnFG3AIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCi/qXwPwNEZOTWAQCSNEA+kZLI NZ2dsR5Qg988c0HXpOXThZEjg+h1TL7KGgEA3Gff0c28efI02S6iMxazrpdWGHqHk7JN7pCj nt397wzOOARecUbcEgorBgEEAZdVAQUBAQdAjDdFQ5H+AJ9vwXrOb7val460g45EsheIaL5S 7/zSaX8DAQgHwngEGBYIACAWIQT+UBOcaAVyyv1SH42i/qXwPwNEZAUCXnFG3AIbDAAKCRCi /qXwPwNEZKaxAQCHLV4gAk/B9JvRG27MYm22X3+5QRCLBtEILP29aDh+MQD/V8JFHATDXRY3 0LsmqR3sPQ0BJ1UFVZA5BUoIJPJZWwg= In-Reply-To: <20240616085454.2560973-6-dev@lynne.ee> Subject: Re: [FFmpeg-devel] [PATCH 6/6] aacdec_usac, aacsbr: implement SBR support for USAC 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: Lynne via ffmpeg-devel Reply-To: FFmpeg development discussions and patches Cc: Lynne Content-Type: multipart/mixed; boundary="===============3810135614417569764==" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --===============3810135614417569764== Content-Language: en-US Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------x7a7Q6OxVy8pulUKIkKmyyUy" This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------x7a7Q6OxVy8pulUKIkKmyyUy Content-Type: multipart/mixed; boundary="------------OCnJ0H7GlJiy2bi6i0Cz0FTc"; protected-headers="v1" From: Lynne To: ffmpeg-devel@ffmpeg.org Message-ID: Subject: Re: [PATCH 6/6] aacdec_usac, aacsbr: implement SBR support for USAC References: <20240616085454.2560973-1-dev@lynne.ee> <20240616085454.2560973-6-dev@lynne.ee> In-Reply-To: <20240616085454.2560973-6-dev@lynne.ee> --------------OCnJ0H7GlJiy2bi6i0Cz0FTc Content-Type: multipart/mixed; boundary="------------Dj8hlPSblrzsLnbHj6z0NsrF" --------------Dj8hlPSblrzsLnbHj6z0NsrF Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 T24gMTYvMDYvMjAyNCAxMDo1NCwgTHlubmUgd3JvdGU6DQo+IEN1cnJlbnRseSwgbm8gZVNC UiBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkLg0KPiBUaGFua2Z1bGx5LCBubyBlbmNvZGVycyBl eGlzdCBmb3IgaXQgeWV0Lg0KPiAtLS0NCj4gICBsaWJhdmNvZGVjL2FhYy9hYWNkZWNfdXNh Yy5jIHwgMTE5ICsrKysrKysrKysrKysrKy0tLQ0KPiAgIGxpYmF2Y29kZWMvYWFjc2JyLmgg ICAgICAgICAgfCAgMTEgKysNCj4gICBsaWJhdmNvZGVjL2FhY3Nicl90ZW1wbGF0ZS5jIHwg MjMyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tDQo+ICAgbGliYXZjb2Rl Yy9zYnIuaCAgICAgICAgICAgICB8ICAzMiArKystLQ0KPiAgIDQgZmlsZXMgY2hhbmdlZCwg MzUxIGluc2VydGlvbnMoKyksIDQzIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBh L2xpYmF2Y29kZWMvYWFjL2FhY2RlY191c2FjLmMgYi9saWJhdmNvZGVjL2FhYy9hYWNkZWNf dXNhYy5jDQo+IGluZGV4IGU1NTA0MTE3ZDAuLjEzMmZmZWU5YzIgMTAwNjQ0DQo+IC0tLSBh L2xpYmF2Y29kZWMvYWFjL2FhY2RlY191c2FjLmMNCj4gKysrIGIvbGliYXZjb2RlYy9hYWMv YWFjZGVjX3VzYWMuYw0KPiBAQCAtMjMsNiArMjMsOCBAQA0KPiAgICNpbmNsdWRlICJhYWNk ZWNfbHBkLmgiDQo+ICAgI2luY2x1ZGUgImFhY2RlY19hYy5oIg0KPiAgIA0KPiArI2luY2x1 ZGUgImxpYmF2Y29kZWMvYWFjc2JyLmgiDQo+ICsNCj4gICAjaW5jbHVkZSAibGliYXZjb2Rl Yy9hYWN0YWIuaCINCj4gICAjaW5jbHVkZSAibGliYXZ1dGlsL21lbS5oIg0KPiAgICNpbmNs dWRlICJsaWJhdmNvZGVjL21wZWc0YXVkaW8uaCINCj4gQEAgLTE0NSw3ICsxNDcsOCBAQCBz dGF0aWMgaW50IGRlY29kZV9sb3VkbmVzc19zZXQoQUFDRGVjQ29udGV4dCAqYWMsIEFBQ1VT QUNDb25maWcgKnVzYWMsDQo+ICAgICAgIHJldHVybiAwOw0KPiAgIH0NCj4gICANCj4gLXN0 YXRpYyB2b2lkIGRlY29kZV91c2FjX3Nicl9kYXRhKEFBQ1VzYWNFbGVtQ29uZmlnICplLCBH ZXRCaXRDb250ZXh0ICpnYikNCj4gK3N0YXRpYyBpbnQgZGVjb2RlX3VzYWNfc2JyX2RhdGEo QUFDRGVjQ29udGV4dCAqYWMsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFBQ1VzYWNFbGVtQ29uZmlnICplLCBHZXRCaXRDb250ZXh0ICpnYikNCj4gICB7DQo+ICAg ICAgIHVpbnQ4X3QgaGVhZGVyX2V4dHJhMTsNCj4gICAgICAgdWludDhfdCBoZWFkZXJfZXh0 cmEyOw0KPiBAQCAtMTUzLDYgKzE1NiwxMCBAQCBzdGF0aWMgdm9pZCBkZWNvZGVfdXNhY19z YnJfZGF0YShBQUNVc2FjRWxlbUNvbmZpZyAqZSwgR2V0Qml0Q29udGV4dCAqZ2IpDQo+ICAg ICAgIGUtPnNici5oYXJtb25pY19zYnIgPSBnZXRfYml0czEoZ2IpOyAvKiBoYXJtb25pY1NC UiAqLw0KPiAgICAgICBlLT5zYnIuYnNfaW50ZXJ0ZXMgPSBnZXRfYml0czEoZ2IpOyAvKiBi c19pbnRlclRlcyAqLw0KPiAgICAgICBlLT5zYnIuYnNfcHZjID0gZ2V0X2JpdHMxKGdiKTsg LyogYnNfcHZjICovDQo+ICsgICAgaWYgKGUtPnNici5oYXJtb25pY19zYnIgfHwgZS0+c2Jy LmJzX2ludGVydGVzIHx8IGUtPnNici5ic19wdmMpIHsNCj4gKyAgICAgICAgYXZwcml2X3Jl cG9ydF9taXNzaW5nX2ZlYXR1cmUoYWMtPmF2Y3R4LCAiQUFDIFVTQUMgZVNCUiIpOw0KPiAr ICAgICAgICByZXR1cm4gQVZFUlJPUl9QQVRDSFdFTENPTUU7DQo+ICsgICAgfQ0KPiAgIA0K PiAgICAgICBlLT5zYnIuZGZsdC5zdGFydF9mcmVxID0gZ2V0X2JpdHMoZ2IsIDQpOyAvKiBk Zmx0X3N0YXJ0X2ZyZXEgKi8NCj4gICAgICAgZS0+c2JyLmRmbHQuc3RvcF9mcmVxID0gZ2V0 X2JpdHMoZ2IsIDQpOyAvKiBkZmx0X3N0b3BfZnJlcSAqLw0KPiBAQCAtMTc5LDYgKzE4Niw4 IEBAIHN0YXRpYyB2b2lkIGRlY29kZV91c2FjX3Nicl9kYXRhKEFBQ1VzYWNFbGVtQ29uZmln ICplLCBHZXRCaXRDb250ZXh0ICpnYikNCj4gICAgICAgICAgIGUtPnNici5kZmx0LmludGVy cG9sX2ZyZXEgPSBnZXRfYml0czEoZ2IpOyAvKiBkZmx0X2ludGVycG9sX2ZyZXEgKi8NCj4g ICAgICAgICAgIGUtPnNici5kZmx0LnNtb290aGluZ19tb2RlID0gZ2V0X2JpdHMxKGdiKTsg LyogZGZsdF9zbW9vdGhpbmdfbW9kZSAqLw0KPiAgICAgICB9DQo+ICsNCj4gKyAgICByZXR1 cm4gMDsNCj4gICB9DQo+ICAgDQo+ICAgc3RhdGljIHZvaWQgZGVjb2RlX3VzYWNfZWxlbWVu dF9jb3JlKEFBQ1VzYWNFbGVtQ29uZmlnICplLA0KPiBAQCAtMTkwLDEzICsxOTksMTcgQEAg c3RhdGljIHZvaWQgZGVjb2RlX3VzYWNfZWxlbWVudF9jb3JlKEFBQ1VzYWNFbGVtQ29uZmln ICplLA0KPiAgICAgICBlLT5zYnIucmF0aW8gPSBzYnJfcmF0aW87DQo+ICAgfQ0KPiAgIA0K PiAtc3RhdGljIHZvaWQgZGVjb2RlX3VzYWNfZWxlbWVudF9wYWlyKEFBQ1VzYWNFbGVtQ29u ZmlnICplLCBHZXRCaXRDb250ZXh0ICpnYikNCj4gK3N0YXRpYyBpbnQgZGVjb2RlX3VzYWNf ZWxlbWVudF9wYWlyKEFBQ0RlY0NvbnRleHQgKmFjLA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQUFDVXNhY0VsZW1Db25maWcgKmUsIEdldEJpdENvbnRleHQg KmdiKQ0KPiAgIHsNCj4gICAgICAgZS0+c3RlcmVvX2NvbmZpZ19pbmRleCA9IDA7DQo+ICAg ICAgIGlmIChlLT5zYnIucmF0aW8pIHsNCj4gLSAgICAgICAgZGVjb2RlX3VzYWNfc2JyX2Rh dGEoZSwgZ2IpOw0KPiArICAgICAgICBpbnQgcmV0ID0gZGVjb2RlX3VzYWNfc2JyX2RhdGEo YWMsIGUsIGdiKTsNCj4gKyAgICAgICAgaWYgKHJldCA8IDApDQo+ICsgICAgICAgICAgICBy ZXR1cm4gcmV0Ow0KPiAgICAgICAgICAgZS0+c3RlcmVvX2NvbmZpZ19pbmRleCA9IGdldF9i aXRzKGdiLCAyKTsNCj4gICAgICAgfQ0KPiArDQo+ICAgICAgIGlmIChlLT5zdGVyZW9fY29u ZmlnX2luZGV4KSB7DQo+ICAgICAgICAgICBlLT5tcHMuZnJlcV9yZXMgPSBnZXRfYml0cyhn YiwgMyk7IC8qIGJzRnJlcVJlcyAqLw0KPiAgICAgICAgICAgZS0+bXBzLmZpeGVkX2dhaW4g PSBnZXRfYml0cyhnYiwgMyk7IC8qIGJzRml4ZWRHYWluRE1YICovDQo+IEBAIC0yMTYsNiAr MjI5LDggQEAgc3RhdGljIHZvaWQgZGVjb2RlX3VzYWNfZWxlbWVudF9wYWlyKEFBQ1VzYWNF bGVtQ29uZmlnICplLCBHZXRCaXRDb250ZXh0ICpnYikNCj4gICAgICAgICAgIGlmIChlLT5t cHMudGVtcF9zaGFwZV9jb25maWcgPT0gMikNCj4gICAgICAgICAgICAgICBlLT5tcHMuZW52 X3F1YW50X21vZGUgPSBnZXRfYml0czEoZ2IpOyAvKiBic0VudlF1YW50TW9kZSAqLw0KPiAg ICAgICB9DQo+ICsNCj4gKyAgICByZXR1cm4gMDsNCj4gICB9DQo+ICAgDQo+ICAgc3RhdGlj IGludCBkZWNvZGVfdXNhY19leHRlbnNpb24oQUFDRGVjQ29udGV4dCAqYWMsIEFBQ1VzYWNF bGVtQ29uZmlnICplLA0KPiBAQCAtMjk0LDYgKzMwOSw5IEBAIGludCBmZl9hYWNfdXNhY19y ZXNldF9zdGF0ZShBQUNEZWNDb250ZXh0ICphYywgT3V0cHV0Q29uZmlndXJhdGlvbiAqb2Mp DQo+ICAgICAgICAgICAgICAgQUFDVXNhY1N0ZXJlbyAqdXMgPSAmY2hlLT51czsNCj4gICAg ICAgICAgICAgICBtZW1zZXQodXMsIDAsIHNpemVvZigqdXMpKTsNCj4gICANCj4gKyAgICAg ICAgICAgIGlmIChlLT5zYnIucmF0aW8pDQo+ICsgICAgICAgICAgICAgICAgZmZfYWFjX3Ni cl9jb25maWdfdXNhYyhhYywgY2hlLCBlKTsNCj4gKw0KPiAgICAgICAgICAgICAgIGZvciAo aW50IGogPSAwOyBqIDwgY2g7IGorKykgew0KPiAgICAgICAgICAgICAgICAgICBTaW5nbGVD aGFubmVsRWxlbWVudCAqc2NlID0gJmNoZS0+Y2hbY2hdOw0KPiAgICAgICAgICAgICAgICAg ICBBQUNVc2FjRWxlbURhdGEgKnVlID0gJnNjZS0+dWU7DQo+IEBAIC0zMjAsNiArMzM4LDcg QEAgaW50IGZmX2FhY191c2FjX2NvbmZpZ19kZWNvZGUoQUFDRGVjQ29udGV4dCAqYWMsIEFW Q29kZWNDb250ZXh0ICphdmN0eCwNCj4gICAgICAgdWludDhfdCBmcmVxX2lkeDsNCj4gICAg ICAgdWludDhfdCBjaGFubmVsX2NvbmZpZ19pZHg7DQo+ICAgICAgIGludCBuYl9jaGFubmVs cyA9IDA7DQo+ICsgICAgaW50IHJhdGlvX211bHQsIHJhdGlvX2RlYzsNCj4gICAgICAgaW50 IHNhbXBsZXJhdGU7DQo+ICAgICAgIGludCBzYnJfcmF0aW87DQo+ICAgICAgIE1QRUc0QXVk aW9Db25maWcgKm00YWMgPSAmb2MtPm00YWM7DQo+IEBAIC0zNDAsOCArMzU5LDYgQEAgaW50 IGZmX2FhY191c2FjX2NvbmZpZ19kZWNvZGUoQUFDRGVjQ29udGV4dCAqYWMsIEFWQ29kZWND b250ZXh0ICphdmN0eCwNCj4gICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFSU5WQUwp Ow0KPiAgICAgICB9DQo+ICAgDQo+IC0gICAgbTRhYy0+c2FtcGxlX3JhdGUgPSBhdmN0eC0+ c2FtcGxlX3JhdGUgPSBzYW1wbGVyYXRlOw0KPiAtDQo+ICAgICAgIHVzYWMtPmNvcmVfc2Jy X2ZyYW1lX2xlbl9pZHggPSBnZXRfYml0cyhnYiwgMyk7IC8qIGNvcmVTYnJGcmFtZUxlbmd0 aEluZGV4ICovDQo+ICAgICAgIG00YWMtPmZyYW1lX2xlbmd0aF9zaG9ydCA9IHVzYWMtPmNv cmVfc2JyX2ZyYW1lX2xlbl9pZHggPT0gMCB8fA0KPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1c2FjLT5jb3JlX3Nicl9mcmFtZV9sZW5faWR4ID09IDI7DQo+IEBAIC0z NTQsNyArMzcxLDI2IEBAIGludCBmZl9hYWNfdXNhY19jb25maWdfZGVjb2RlKEFBQ0RlY0Nv bnRleHQgKmFjLCBBVkNvZGVjQ29udGV4dCAqYXZjdHgsDQo+ICAgICAgICAgICAgICAgICAg IHVzYWMtPmNvcmVfc2JyX2ZyYW1lX2xlbl9pZHggPT0gNCA/IDEgOg0KPiAgICAgICAgICAg ICAgICAgICAwOw0KPiAgIA0KPiArICAgIGlmIChzYnJfcmF0aW8gPT0gMikgew0KPiArICAg ICAgICByYXRpb19tdWx0ID0gODsNCj4gKyAgICAgICAgcmF0aW9fZGVjID0gMzsNCj4gKyAg ICB9IGVsc2UgaWYgKHNicl9yYXRpbyA9PSAzKSB7DQo+ICsgICAgICAgIHJhdGlvX211bHQg PSAyOw0KPiArICAgICAgICByYXRpb19kZWMgPSAxOw0KPiArICAgIH0gZWxzZSBpZiAoc2Jy X3JhdGlvID09IDQpIHsNCj4gKyAgICAgICAgcmF0aW9fbXVsdCA9IDQ7DQo+ICsgICAgICAg IHJhdGlvX2RlYyA9IDE7DQo+ICsgICAgfSBlbHNlIHsNCj4gKyAgICAgICAgcmF0aW9fbXVs dCA9IDE7DQo+ICsgICAgICAgIHJhdGlvX2RlYyA9IDE7DQo+ICsgICAgfQ0KPiArDQo+ICsg ICAgYXZjdHgtPnNhbXBsZV9yYXRlID0gc2FtcGxlcmF0ZTsNCj4gKyAgICBtNGFjLT5leHRf c2FtcGxlX3JhdGUgPSBzYW1wbGVyYXRlOw0KPiArICAgIG00YWMtPnNhbXBsZV9yYXRlID0g KHNhbXBsZXJhdGUgKiByYXRpb19kZWMpIC8gcmF0aW9fbXVsdDsNCj4gKw0KPiAgICAgICBt NGFjLT5zYW1wbGluZ19pbmRleCA9IGZmX2FhY19zYW1wbGVfcmF0ZV9pZHgobTRhYy0+c2Ft cGxlX3JhdGUpOw0KPiArICAgIG00YWMtPnNiciA9IHNicl9yYXRpbyA+IDA7DQo+ICAgDQo+ ICAgICAgIGNoYW5uZWxfY29uZmlnX2lkeCA9IGdldF9iaXRzKGdiLCA1KTsgLyogY2hhbm5l bENvbmZpZ3VyYXRpb25JbmRleCAqLw0KPiAgICAgICBpZiAoIWNoYW5uZWxfY29uZmlnX2lk eCkgew0KPiBAQCAtNDI2LDggKzQ2MiwxMSBAQCBpbnQgZmZfYWFjX3VzYWNfY29uZmlnX2Rl Y29kZShBQUNEZWNDb250ZXh0ICphYywgQVZDb2RlY0NvbnRleHQgKmF2Y3R4LA0KPiAgICAg ICAgICAgY2FzZSBJRF9VU0FDX1NDRTogLyogU0NFICovDQo+ICAgICAgICAgICAgICAgLyog VXNhY0NvcmVDb25maWcgKi8NCj4gICAgICAgICAgICAgICBkZWNvZGVfdXNhY19lbGVtZW50 X2NvcmUoZSwgZ2IsIHNicl9yYXRpbyk7DQo+IC0gICAgICAgICAgICBpZiAoZS0+c2JyLnJh dGlvID4gMCkNCj4gLSAgICAgICAgICAgICAgICBkZWNvZGVfdXNhY19zYnJfZGF0YShlLCBn Yik7DQo+ICsgICAgICAgICAgICBpZiAoZS0+c2JyLnJhdGlvID4gMCkgew0KPiArICAgICAg ICAgICAgICAgIHJldCA9IGRlY29kZV91c2FjX3Nicl9kYXRhKGFjLCBlLCBnYik7DQo+ICsg ICAgICAgICAgICAgICAgaWYgKHJldCA8IDApDQo+ICsgICAgICAgICAgICAgICAgICAgIHJl dHVybiByZXQ7DQo+ICsgICAgICAgICAgICB9DQo+ICAgICAgICAgICAgICAgbGF5b3V0X21h cFttYXBfY291bnRdWzBdID0gVFlQRV9TQ0U7DQo+ICAgICAgICAgICAgICAgbGF5b3V0X21h cFttYXBfY291bnRdWzFdID0gZWxlbV9pZFswXSsrOw0KPiAgICAgICAgICAgICAgIGlmICgh bWFwX3Bvc19zZXQpDQo+IEBAIC00MzcsNyArNDc2LDkgQEAgaW50IGZmX2FhY191c2FjX2Nv bmZpZ19kZWNvZGUoQUFDRGVjQ29udGV4dCAqYWMsIEFWQ29kZWNDb250ZXh0ICphdmN0eCwN Cj4gICAgICAgICAgIGNhc2UgSURfVVNBQ19DUEU6IC8qIFVzYWNDaGFubmVsUGFpckVsZW1l bnRDb25mICovDQo+ICAgICAgICAgICAgICAgLyogVXNhY0NvcmVDb25maWcgKi8NCj4gICAg ICAgICAgICAgICBkZWNvZGVfdXNhY19lbGVtZW50X2NvcmUoZSwgZ2IsIHNicl9yYXRpbyk7 DQo+IC0gICAgICAgICAgICBkZWNvZGVfdXNhY19lbGVtZW50X3BhaXIoZSwgZ2IpOw0KPiAr ICAgICAgICAgICAgcmV0ID0gZGVjb2RlX3VzYWNfZWxlbWVudF9wYWlyKGFjLCBlLCBnYik7 DQo+ICsgICAgICAgICAgICBpZiAocmV0IDwgMCkNCj4gKyAgICAgICAgICAgICAgICByZXR1 cm4gcmV0Ow0KPiAgICAgICAgICAgICAgIGxheW91dF9tYXBbbWFwX2NvdW50XVswXSA9IFRZ UEVfQ1BFOw0KPiAgICAgICAgICAgICAgIGxheW91dF9tYXBbbWFwX2NvdW50XVsxXSA9IGVs ZW1faWRbMV0rKzsNCj4gICAgICAgICAgICAgICBpZiAoIW1hcF9wb3Nfc2V0KQ0KPiBAQCAt MTMwNywxMyArMTM0OCwxNCBAQCBzdGF0aWMgaW50IGRlY29kZV91c2FjX2NvcmVfY29kZXIo QUFDRGVjQ29udGV4dCAqYWMsIEFBQ1VTQUNDb25maWcgKnVzYWMsDQo+ICAgICAgIGludCBy ZXQ7DQo+ICAgICAgIGludCBhcml0aF9yZXNldF9mbGFnOw0KPiAgICAgICBBQUNVc2FjU3Rl cmVvICp1cyA9ICZjaGUtPnVzOw0KPiArICAgIGludCBjb3JlX25iX2NoYW5uZWxzID0gbmJf Y2hhbm5lbHM7DQo+ICAgDQo+ICAgICAgIC8qIExvY2FsIHN5bWJvbHMgKi8NCj4gICAgICAg dWludDhfdCBnbG9iYWxfZ2FpbjsNCj4gICANCj4gICAgICAgdXMtPmNvbW1vbl93aW5kb3cg PSAwOw0KPiAgIA0KPiAtICAgIGZvciAoaW50IGNoID0gMDsgY2ggPCBuYl9jaGFubmVsczsg Y2grKykgew0KPiArICAgIGZvciAoaW50IGNoID0gMDsgY2ggPCBjb3JlX25iX2NoYW5uZWxz OyBjaCsrKSB7DQo+ICAgICAgICAgICBTaW5nbGVDaGFubmVsRWxlbWVudCAqc2NlID0gJmNo ZS0+Y2hbY2hdOw0KPiAgICAgICAgICAgQUFDVXNhY0VsZW1EYXRhICp1ZSA9ICZzY2UtPnVl Ow0KPiAgIA0KPiBAQCAtMTMyMywxMyArMTM2NSwxNiBAQCBzdGF0aWMgaW50IGRlY29kZV91 c2FjX2NvcmVfY29kZXIoQUFDRGVjQ29udGV4dCAqYWMsIEFBQ1VTQUNDb25maWcgKnVzYWMs DQo+ICAgICAgICAgICB1ZS0+Y29yZV9tb2RlID0gZ2V0X2JpdHMxKGdiKTsNCj4gICAgICAg fQ0KPiAgIA0KPiAtICAgIGlmIChuYl9jaGFubmVscyA9PSAyKSB7DQo+ICsgICAgaWYgKG5i X2NoYW5uZWxzID4gMSAmJiBlYy0+c3RlcmVvX2NvbmZpZ19pbmRleCA9PSAxKQ0KPiArICAg ICAgICBjb3JlX25iX2NoYW5uZWxzID0gMTsNCj4gKw0KPiArICAgIGlmIChjb3JlX25iX2No YW5uZWxzID09IDIpIHsNCj4gICAgICAgICAgIHJldCA9IGRlY29kZV91c2FjX3N0ZXJlb19p bmZvKGFjLCB1c2FjLCBlYywgY2hlLCBnYiwgaW5kZXBfZmxhZyk7DQo+ICAgICAgICAgICBp ZiAocmV0KQ0KPiAgICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ICAgICAgIH0NCj4gICAN Cj4gLSAgICBmb3IgKGludCBjaCA9IDA7IGNoIDwgbmJfY2hhbm5lbHM7IGNoKyspIHsNCj4g KyAgICBmb3IgKGludCBjaCA9IDA7IGNoIDwgY29yZV9uYl9jaGFubmVsczsgY2grKykgew0K PiAgICAgICAgICAgU2luZ2xlQ2hhbm5lbEVsZW1lbnQgKnNjZSA9ICZjaGUtPmNoW2NoXTsN Cj4gICAgICAgICAgIEluZGl2aWR1YWxDaGFubmVsU3RyZWFtICppY3MgPSAmc2NlLT5pY3M7 DQo+ICAgICAgICAgICBBQUNVc2FjRWxlbURhdGEgKnVlID0gJnNjZS0+dWU7DQo+IEBAIC0x MzQxLDcgKzEzODYsNyBAQCBzdGF0aWMgaW50IGRlY29kZV91c2FjX2NvcmVfY29kZXIoQUFD RGVjQ29udGV4dCAqYWMsIEFBQ1VTQUNDb25maWcgKnVzYWMsDQo+ICAgICAgICAgICAgICAg Y29udGludWU7DQo+ICAgICAgICAgICB9DQo+ICAgDQo+IC0gICAgICAgIGlmICgobmJfY2hh bm5lbHMgPT0gMSkgfHwNCj4gKyAgICAgICAgaWYgKChjb3JlX25iX2NoYW5uZWxzID09IDEp IHx8DQo+ICAgICAgICAgICAgICAgKGNoZS0+Y2hbMF0udWUuY29yZV9tb2RlICE9IGNoZS0+ Y2hbMV0udWUuY29yZV9tb2RlKSkNCj4gICAgICAgICAgICAgICB1ZS0+dG5zX2RhdGFfcHJl c2VudCA9IGdldF9iaXRzMShnYik7DQo+ICAgDQo+IEBAIC0xNDI0LDcgKzE0NjksMjkgQEAg c3RhdGljIGludCBkZWNvZGVfdXNhY19jb3JlX2NvZGVyKEFBQ0RlY0NvbnRleHQgKmFjLCBB QUNVU0FDQ29uZmlnICp1c2FjLA0KPiAgICAgICAgICAgfQ0KPiAgICAgICB9DQo+ICAgDQo+ IC0gICAgc3BlY3RydW1fZGVjb2RlKGFjLCB1c2FjLCBjaGUsIG5iX2NoYW5uZWxzKTsNCj4g KyAgICBpZiAoZWMtPnNici5yYXRpbykgew0KPiArICAgICAgICBpbnQgc2JyX2NoID0gbmJf Y2hhbm5lbHM7DQo+ICsgICAgICAgIGlmIChuYl9jaGFubmVscyA9PSAyICYmDQo+ICsgICAg ICAgICAgICAhKGVjLT5zdGVyZW9fY29uZmlnX2luZGV4ID09IDAgfHwgZWMtPnN0ZXJlb19j b25maWdfaW5kZXggPT0gMykpDQo+ICsgICAgICAgICAgICBzYnJfY2ggPSAxOw0KPiArDQo+ ICsgICAgICAgIHJldCA9IGZmX2FhY19zYnJfZGVjb2RlX3VzYWNfZGF0YShhYywgY2hlLCBl YywgZ2IsIHNicl9jaCwgaW5kZXBfZmxhZyk7DQo+ICsgICAgICAgIGlmIChyZXQgPCAwKQ0K PiArICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gKw0KPiArICAgICAgICBpZiAoZWMtPnN0 ZXJlb19jb25maWdfaW5kZXgpIHsNCj4gKyAgICAgICAgICAgIGF2cHJpdl9yZXBvcnRfbWlz c2luZ19mZWF0dXJlKGFjLT5hdmN0eCwgIkFBQyBVU0FDIE1wczIxMiIpOw0KPiArICAgICAg ICAgICAgcmV0dXJuIEFWRVJST1JfUEFUQ0hXRUxDT01FOw0KPiArICAgICAgICB9DQo+ICsg ICAgfQ0KPiArDQo+ICsgICAgc3BlY3RydW1fZGVjb2RlKGFjLCB1c2FjLCBjaGUsIGNvcmVf bmJfY2hhbm5lbHMpOw0KPiArDQo+ICsgICAgaWYgKGFjLT5vY1sxXS5tNGFjLnNiciA+IDAp IHsNCj4gKyAgICAgICAgYWMtPnByb2Muc2JyX2FwcGx5KGFjLCBjaGUsIG5iX2NoYW5uZWxz ID09IDIgPyBUWVBFX0NQRSA6IFRZUEVfU0NFLA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2hlLT5jaFswXS5vdXRwdXQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICBjaGUtPmNoWzFdLm91dHB1dCk7DQo+ICsgICAgfQ0KPiAgIA0KPiAgICAgICByZXR1cm4g MDsNCj4gICB9DQo+IEBAIC0xNTkxLDkgKzE2NTgsMjkgQEAgaW50IGZmX2FhY191c2FjX2Rl Y29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFBQ0RlY0NvbnRleHQgKmFjLA0K PiAgICAgICBpbnQgaW5kZXBfZmxhZywgc2FtcGxlcyA9IDA7DQo+ICAgICAgIGludCBhdWRp b19mb3VuZCA9IDA7DQo+ICAgICAgIGludCBlbGVtX2lkWzMgLyogU0NFLCBDUEUsIExGRSAq L10gPSB7IDAsIDAsIDAgfTsNCj4gLQ0KPiAgICAgICBBVkZyYW1lICpmcmFtZSA9IGFjLT5m cmFtZTsNCj4gICANCj4gKyAgICBpbnQgcmF0aW9fbXVsdCwgcmF0aW9fZGVjOw0KPiArICAg IEFBQ1VTQUNDb25maWcgKnVzYWMgPSAmYWMtPm9jWzFdLnVzYWM7DQo+ICsgICAgaW50IHNi cl9yYXRpbyA9IHVzYWMtPmNvcmVfc2JyX2ZyYW1lX2xlbl9pZHggPT0gMiA/IDIgOg0KPiAr ICAgICAgICAgICAgICAgICAgICB1c2FjLT5jb3JlX3Nicl9mcmFtZV9sZW5faWR4ID09IDMg PyAzIDoNCj4gKyAgICAgICAgICAgICAgICAgICAgdXNhYy0+Y29yZV9zYnJfZnJhbWVfbGVu X2lkeCA9PSA0ID8gMSA6DQo+ICsgICAgICAgICAgICAgICAgICAgIDA7DQo+ICsNCj4gKyAg ICBpZiAoc2JyX3JhdGlvID09IDIpIHsNCj4gKyAgICAgICAgcmF0aW9fbXVsdCA9IDg7DQo+ ICsgICAgICAgIHJhdGlvX2RlYyA9IDM7DQo+ICsgICAgfSBlbHNlIGlmIChzYnJfcmF0aW8g PT0gMykgew0KPiArICAgICAgICByYXRpb19tdWx0ID0gMjsNCj4gKyAgICAgICAgcmF0aW9f ZGVjID0gMTsNCj4gKyAgICB9IGVsc2UgaWYgKHNicl9yYXRpbyA9PSA0KSB7DQo+ICsgICAg ICAgIHJhdGlvX211bHQgPSA0Ow0KPiArICAgICAgICByYXRpb19kZWMgPSAxOw0KPiArICAg IH0gZWxzZSB7DQo+ICsgICAgICAgIHJhdGlvX211bHQgPSAxOw0KPiArICAgICAgICByYXRp b19kZWMgPSAxOw0KPiArICAgIH0NCj4gKw0KPiAgICAgICBmZl9hYWNfb3V0cHV0X2NvbmZp Z3VyZShhYywgYWMtPm9jWzFdLmxheW91dF9tYXAsIGFjLT5vY1sxXS5sYXlvdXRfbWFwX3Rh Z3MsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjLT5vY1sxXS5zdGF0dXMs IDApOw0KPiAgIA0KPiBAQCAtMTY2MCw4ICsxNzQ3LDEwIEBAIGludCBmZl9hYWNfdXNhY19k ZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBQUNEZWNDb250ZXh0ICphYywN Cj4gICAgICAgaWYgKGF1ZGlvX2ZvdW5kKQ0KPiAgICAgICAgICAgc2FtcGxlcyA9IGFjLT5v Y1sxXS5tNGFjLmZyYW1lX2xlbmd0aF9zaG9ydCA/IDc2OCA6IDEwMjQ7DQo+ICAgDQo+ICsg ICAgc2FtcGxlcyA9IChzYW1wbGVzICogcmF0aW9fbXVsdCkgLyByYXRpb19kZWM7DQo+ICsN Cj4gICAgICAgaWYgKGFjLT5vY1sxXS5zdGF0dXMgJiYgYXVkaW9fZm91bmQpIHsNCj4gLSAg ICAgICAgYXZjdHgtPnNhbXBsZV9yYXRlID0gYWMtPm9jWzFdLm00YWMuc2FtcGxlX3JhdGU7 DQo+ICsgICAgICAgIGF2Y3R4LT5zYW1wbGVfcmF0ZSA9IGFjLT5vY1sxXS5tNGFjLmV4dF9z YW1wbGVfcmF0ZTsNCj4gICAgICAgICAgIGF2Y3R4LT5mcmFtZV9zaXplID0gc2FtcGxlczsN Cj4gICAgICAgICAgIGFjLT5vY1sxXS5zdGF0dXMgPSBPQ19MT0NLRUQ7DQo+ICAgICAgIH0N Cj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYWFjc2JyLmggYi9saWJhdmNvZGVjL2FhY3Ni ci5oDQo+IGluZGV4IGQ0NTgyZDExMDAuLjM5NThiNDNiOTEgMTAwNjQ0DQo+IC0tLSBhL2xp YmF2Y29kZWMvYWFjc2JyLmgNCj4gKysrIGIvbGliYXZjb2RlYy9hYWNzYnIuaA0KPiBAQCAt ODgsNiArODgsMTcgQEAgaW50IGZmX2FhY19zYnJfZGVjb2RlX2V4dGVuc2lvbihBQUNEZWND b250ZXh0ICphYywgQ2hhbm5lbEVsZW1lbnQgKmNoZSwNCj4gICBpbnQgZmZfYWFjX3Nicl9k ZWNvZGVfZXh0ZW5zaW9uX2ZpeGVkKEFBQ0RlY0NvbnRleHQgKmFjLCBDaGFubmVsRWxlbWVu dCAqY2hlLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2V0 Qml0Q29udGV4dCAqZ2IsIGludCBjcmMsIGludCBjbnQsIGludCBpZF9hYWMpOw0KPiAgIA0K PiArLyoqIER1ZSB0byBjaGFubmVsIGFsbG9jYXRpb24gbm90IGJlaW5nIGtub3duIHVwb24g U0JSIHBhcmFtZXRlciB0cmFuc21pc3Npb24sDQo+ICsgKiBzdXBwbHkgdGhlIHBhcmFtZXRl cnMgc2VwYXJhdGVseS4NCj4gKyAqIEZ1bmN0aW9uYWxseSBpZGVudGljYWwgdG8gZmZfYWFj X3Nicl9kZWNvZGVfZXh0ZW5zaW9uKCkgKi8NCj4gK2ludCBmZl9hYWNfc2JyX2NvbmZpZ191 c2FjKEFBQ0RlY0NvbnRleHQgKmFjLCBDaGFubmVsRWxlbWVudCAqY2hlLA0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgQUFDVXNhY0VsZW1Db25maWcgKnVlKTsNCj4gKw0KPiAr LyoqIERlY29kZSBmcmFtZSBTQlIgZGF0YSwgVVNBQy4gKi8NCj4gK2ludCBmZl9hYWNfc2Jy X2RlY29kZV91c2FjX2RhdGEoQUFDRGVjQ29udGV4dCAqYWMsIENoYW5uZWxFbGVtZW50ICpj aGUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFBQ1VzYWNFbGVtQ29u ZmlnICp1ZSwgR2V0Qml0Q29udGV4dCAqZ2IsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCBzYnJfY2gsIGludCBpbmRlcF9mbGFnKTsNCj4gKw0KPiAgIC8qKiBB cHBseSBvbmUgU0JSIGVsZW1lbnQgdG8gb25lIEFBQyBlbGVtZW50LiAqLw0KPiAgIHZvaWQg ZmZfYWFjX3Nicl9hcHBseShBQUNEZWNDb250ZXh0ICphYywgQ2hhbm5lbEVsZW1lbnQgKmNo ZSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlkX2FhYywgdm9pZCAvKiBmbG9h dCAqLyAqTCwgdm9pZCAvKiBmbG9hdCAqLyAqUik7DQo+IGRpZmYgLS1naXQgYS9saWJhdmNv ZGVjL2FhY3Nicl90ZW1wbGF0ZS5jIGIvbGliYXZjb2RlYy9hYWNzYnJfdGVtcGxhdGUuYw0K PiBpbmRleCA4NmY0ZDhjMjZlLi5lNWJjNGQ0NjU5IDEwMDY0NA0KPiAtLS0gYS9saWJhdmNv ZGVjL2FhY3Nicl90ZW1wbGF0ZS5jDQo+ICsrKyBiL2xpYmF2Y29kZWMvYWFjc2JyX3RlbXBs YXRlLmMNCj4gQEAgLTU3LDYgKzU3LDcgQEAgYXZfY29sZCB2b2lkIEFBQ19SRU5BTUUoZmZf YWFjX3Nicl9pbml0KSh2b2lkKQ0KPiAgIC8qKiBQbGFjZXMgU0JSIGluIHB1cmUgdXBzYW1w bGluZyBtb2RlLiAqLw0KPiAgIHN0YXRpYyB2b2lkIHNicl90dXJub2ZmKFNwZWN0cmFsQmFu ZFJlcGxpY2F0aW9uICpzYnIpIHsNCj4gICAgICAgc2JyLT5zdGFydCA9IDA7DQo+ICsgICAg c2JyLT51c2FjID0gMDsNCj4gICAgICAgc2JyLT5yZWFkeV9mb3JfZGVxdWFudCA9IDA7DQo+ ICAgICAgIC8vIEluaXQgZGVmdWx0cyB1c2VkIGluIHB1cmUgdXBzYW1wbGluZyBtb2RlDQo+ ICAgICAgIHNici0+a3hbMV0gPSAzMjsgLy9UeXBvIGluIHNwZWMsIGt4JyBpbml0cyB0byAz Mg0KPiBAQCAtMTg0LDcgKzE4NSw4IEBAIHN0YXRpYyB2b2lkIHNicl9tYWtlX2ZfdGFibGVs aW0oU3BlY3RyYWxCYW5kUmVwbGljYXRpb24gKnNicikNCj4gICAgICAgfQ0KPiAgIH0NCj4g ICANCj4gLXN0YXRpYyB1bnNpZ25lZCBpbnQgcmVhZF9zYnJfaGVhZGVyKFNwZWN0cmFsQmFu ZFJlcGxpY2F0aW9uICpzYnIsIEdldEJpdENvbnRleHQgKmdiKQ0KPiArc3RhdGljIHVuc2ln bmVkIGludCByZWFkX3Nicl9oZWFkZXIoU3BlY3RyYWxCYW5kUmVwbGljYXRpb24gKnNiciwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdldEJpdENvbnRleHQg KmdiLCBpbnQgaXNfdXNhYykNCj4gICB7DQo+ICAgICAgIHVuc2lnbmVkIGludCBjbnQgPSBn ZXRfYml0c19jb3VudChnYik7DQo+ICAgICAgIHVpbnQ4X3QgYnNfaGVhZGVyX2V4dHJhXzE7 DQo+IEBAIC0xOTQsMTUgKzE5NiwyMCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHJlYWRfc2Jy X2hlYWRlcihTcGVjdHJhbEJhbmRSZXBsaWNhdGlvbiAqc2JyLCBHZXRCaXRDb250ZXh0DQo+ ICAgDQo+ICAgICAgIHNici0+c3RhcnQgPSAxOw0KPiAgICAgICBzYnItPnJlYWR5X2Zvcl9k ZXF1YW50ID0gMDsNCj4gKyAgICBzYnItPnVzYWMgPSBpc191c2FjOw0KPiAgIA0KPiAgICAg ICAvLyBTYXZlIGxhc3Qgc3BlY3RydW0gcGFyYW1ldGVycyB2YXJpYWJsZXMgdG8gY29tcGFy ZSB0byBuZXcgb25lcw0KPiAgICAgICBtZW1jcHkoJm9sZF9zcGVjdHJ1bV9wYXJhbXMsICZz YnItPnNwZWN0cnVtX3BhcmFtcywgc2l6ZW9mKFNwZWN0cnVtUGFyYW1ldGVycykpOw0KPiAg IA0KPiAtICAgIHNici0+YnNfYW1wX3Jlc19oZWFkZXIgICAgICAgICAgICAgID0gZ2V0X2Jp dHMxKGdiKTsNCj4gKyAgICBpZiAoIWlzX3VzYWMpDQo+ICsgICAgICAgIHNici0+YnNfYW1w X3Jlc19oZWFkZXIgICAgICAgICAgPSBnZXRfYml0czEoZ2IpOw0KPiArDQo+ICAgICAgIHNi ci0+c3BlY3RydW1fcGFyYW1zLmJzX3N0YXJ0X2ZyZXEgID0gZ2V0X2JpdHMoZ2IsIDQpOw0K PiAgICAgICBzYnItPnNwZWN0cnVtX3BhcmFtcy5ic19zdG9wX2ZyZXEgICA9IGdldF9iaXRz KGdiLCA0KTsNCj4gLSAgICBzYnItPnNwZWN0cnVtX3BhcmFtcy5ic194b3Zlcl9iYW5kICA9 IGdldF9iaXRzKGdiLCAzKTsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNraXBfYml0cyhnYiwgMik7IC8vIGJzX3Jlc2VydmVkDQo+ICsNCj4gKyAg ICBpZiAoIWlzX3VzYWMpDQo+ICsgICAgICAgIHNici0+c3BlY3RydW1fcGFyYW1zLmJzX3hv dmVyX2JhbmQgPSBnZXRfYml0cyhnYiwgMyk7DQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBza2lwX2JpdHMoZ2IsIDIpOyAvLyBic19yZXNlcnZl ZA0KPiAgIA0KPiAgICAgICBic19oZWFkZXJfZXh0cmFfMSA9IGdldF9iaXRzMShnYik7DQo+ ICAgICAgIGJzX2hlYWRlcl9leHRyYV8yID0gZ2V0X2JpdHMxKGdiKTsNCj4gQEAgLTY0NSw3 ICs2NTIsNyBAQCBzdGF0aWMgaW50IHJlYWRfc2JyX2dyaWQoQUFDRGVjQ29udGV4dCAqYWMs IFNwZWN0cmFsQmFuZFJlcGxpY2F0aW9uICpzYnIsDQo+ICAgICAgIHN3aXRjaCAoYnNfZnJh bWVfY2xhc3MgPSBnZXRfYml0cyhnYiwgMikpIHsNCj4gICAgICAgY2FzZSBGSVhGSVg6DQo+ ICAgICAgICAgICBic19udW1fZW52ID0gMSA8PCBnZXRfYml0cyhnYiwgMik7DQo+IC0gICAg ICAgIGlmIChic19udW1fZW52ID4gNCkgew0KPiArICAgICAgICBpZiAoYnNfbnVtX2VudiA+ IChzYnItPnVzYWMgPyA4IDogNSkpIHsNCj4gICAgICAgICAgICAgICBhdl9sb2coYWMtPmF2 Y3R4LCBBVl9MT0dfRVJST1IsDQo+ICAgICAgICAgICAgICAgICAgICAgICJJbnZhbGlkIGJp dHN0cmVhbSwgdG9vIG1hbnkgU0JSIGVudmVsb3BlcyBpbiBGSVhGSVggdHlwZSBTQlIgZnJh bWU6ICVkXG4iLA0KPiAgICAgICAgICAgICAgICAgICAgICBic19udW1fZW52KTsNCj4gQEAg LTc5MywxMCArODAwLDI2IEBAIHN0YXRpYyB2b2lkIGNvcHlfc2JyX2dyaWQoU0JSRGF0YSAq ZHN0LCBjb25zdCBTQlJEYXRhICpzcmMpIHsNCj4gICANCj4gICAvLy8gUmVhZCBob3cgdGhl IGVudmVsb3BlIGFuZCBub2lzZSBmbG9vciBkYXRhIGlzIGRlbHRhIGNvZGVkDQo+ICAgc3Rh dGljIHZvaWQgcmVhZF9zYnJfZHRkZihTcGVjdHJhbEJhbmRSZXBsaWNhdGlvbiAqc2JyLCBH ZXRCaXRDb250ZXh0ICpnYiwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgU0JSRGF0 YSAqY2hfZGF0YSkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgU0JSRGF0YSAqY2hf ZGF0YSwgaW50IGluZGVwX2ZsYWcpDQo+ICAgew0KPiAtICAgIGdldF9iaXRzMV92ZWN0b3Io Z2IsIGNoX2RhdGEtPmJzX2RmX2VudiwgICBjaF9kYXRhLT5ic19udW1fZW52KTsNCj4gLSAg ICBnZXRfYml0czFfdmVjdG9yKGdiLCBjaF9kYXRhLT5ic19kZl9ub2lzZSwgY2hfZGF0YS0+ YnNfbnVtX25vaXNlKTsNCj4gKyAgICBpZiAoc2JyLT51c2FjKSB7DQo+ICsgICAgICAgIGlm IChpbmRlcF9mbGFnKSB7DQo+ICsgICAgICAgICAgICBjaF9kYXRhLT5ic19kZl9lbnZbMF0g PSAwOw0KPiArICAgICAgICAgICAgZ2V0X2JpdHMxX3ZlY3RvcihnYiwgJmNoX2RhdGEtPmJz X2RmX2VudlsxXSwgY2hfZGF0YS0+YnNfbnVtX2VudiAtIDEpOw0KPiArICAgICAgICB9IGVs c2Ugew0KPiArICAgICAgICAgICAgZ2V0X2JpdHMxX3ZlY3RvcihnYiwgY2hfZGF0YS0+YnNf ZGZfZW52LCBjaF9kYXRhLT5ic19udW1fZW52KTsNCj4gKyAgICAgICAgfQ0KPiArDQo+ICsg ICAgICAgIGlmIChpbmRlcF9mbGFnKSB7DQo+ICsgICAgICAgICAgICBjaF9kYXRhLT5ic19k Zl9ub2lzZVswXSA9IDA7DQo+ICsgICAgICAgICAgICBnZXRfYml0czFfdmVjdG9yKGdiLCAm Y2hfZGF0YS0+YnNfZGZfbm9pc2VbMV0sIGNoX2RhdGEtPmJzX251bV9ub2lzZSAtIDEpOw0K PiArICAgICAgICB9IGVsc2Ugew0KPiArICAgICAgICAgICAgZ2V0X2JpdHMxX3ZlY3Rvcihn YiwgY2hfZGF0YS0+YnNfZGZfbm9pc2UsIGNoX2RhdGEtPmJzX251bV9ub2lzZSk7DQo+ICsg ICAgICAgIH0NCj4gKyAgICB9IGVsc2Ugew0KPiArICAgICAgICBnZXRfYml0czFfdmVjdG9y KGdiLCBjaF9kYXRhLT5ic19kZl9lbnYsICAgY2hfZGF0YS0+YnNfbnVtX2Vudik7DQo+ICsg ICAgICAgIGdldF9iaXRzMV92ZWN0b3IoZ2IsIGNoX2RhdGEtPmJzX2RmX25vaXNlLCBjaF9k YXRhLT5ic19udW1fbm9pc2UpOw0KPiArICAgIH0NCj4gICB9DQo+ICAgDQo+ICAgLy8vIFJl YWQgaW52ZXJzZSBmaWx0ZXJpbmcgZGF0YQ0KPiBAQCAtODExLDcgKzgzNCw3IEBAIHN0YXRp YyB2b2lkIHJlYWRfc2JyX2ludmYoU3BlY3RyYWxCYW5kUmVwbGljYXRpb24gKnNiciwgR2V0 Qml0Q29udGV4dCAqZ2IsDQo+ICAgfQ0KPiAgIA0KPiAgIHN0YXRpYyBpbnQgcmVhZF9zYnJf ZW52ZWxvcGUoQUFDRGVjQ29udGV4dCAqYWMsIFNwZWN0cmFsQmFuZFJlcGxpY2F0aW9uICpz YnIsIEdldEJpdENvbnRleHQgKmdiLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU0JSRGF0YSAqY2hfZGF0YSwgaW50IGNoKQ0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTQlJEYXRhICpjaF9kYXRhLCBpbnQgY2gpDQo+ICAgew0KPiAgICAgICBpbnQg Yml0czsNCj4gICAgICAgaW50IGksIGosIGs7DQo+IEBAIC04ODEsNiArOTA0LDEzIEBAIHN0 YXRpYyBpbnQgcmVhZF9zYnJfZW52ZWxvcGUoQUFDRGVjQ29udGV4dCAqYWMsIFNwZWN0cmFs QmFuZFJlcGxpY2F0aW9uICpzYnIsIEdlDQo+ICAgICAgICAgICAgICAgICAgIH0NCj4gICAg ICAgICAgICAgICB9DQo+ICAgICAgICAgICB9DQo+ICsgICAgICAgIGlmIChzYnItPnVzYWMp IHsNCj4gKyAgICAgICAgICAgIGlmIChzYnItPmludGVyX3Rlcykgew0KPiArICAgICAgICAg ICAgICAgIGNoX2RhdGEtPnRlbXBfc2hhcGVbaV0gPSBnZXRfYml0cyhnYiwgMSk7DQo+ICsg ICAgICAgICAgICAgICAgaWYgKGNoX2RhdGEtPnRlbXBfc2hhcGVbaV0pDQo+ICsgICAgICAg ICAgICAgICAgICAgIGNoX2RhdGEtPnRlbXBfc2hhcGVfbW9kZVtpXSA9IGdldF9iaXRzKGdi LCAyKTsNCj4gKyAgICAgICAgICAgIH0NCj4gKyAgICAgICAgfQ0KPiAgICAgICB9DQo+ICAg DQo+ICAgICAgIC8vYXNzaWduIDB0aCBlbGVtZW50cyBvZiBlbnZfZmFjc19xIGZyb20gbGFz dCBlbGVtZW50cw0KPiBAQCAtOTcwLDcgKzEwMDAsNyBAQCBzdGF0aWMgaW50IHJlYWRfc2Jy X3NpbmdsZV9jaGFubmVsX2VsZW1lbnQoQUFDRGVjQ29udGV4dCAqYWMsDQo+ICAgDQo+ICAg ICAgIGlmIChyZWFkX3Nicl9ncmlkKGFjLCBzYnIsIGdiLCAmc2JyLT5kYXRhWzBdKSkNCj4g ICAgICAgICAgIHJldHVybiAtMTsNCj4gLSAgICByZWFkX3Nicl9kdGRmKHNiciwgZ2IsICZz YnItPmRhdGFbMF0pOw0KPiArICAgIHJlYWRfc2JyX2R0ZGYoc2JyLCBnYiwgJnNici0+ZGF0 YVswXSwgMCk7DQo+ICAgICAgIHJlYWRfc2JyX2ludmYoc2JyLCBnYiwgJnNici0+ZGF0YVsw XSk7DQo+ICAgICAgIGlmKChyZXQgPSByZWFkX3Nicl9lbnZlbG9wZShhYywgc2JyLCBnYiwg JnNici0+ZGF0YVswXSwgMCkpIDwgMCkNCj4gICAgICAgICAgIHJldHVybiByZXQ7DQo+IEBA IC05OTYsOCArMTAyNiw4IEBAIHN0YXRpYyBpbnQgcmVhZF9zYnJfY2hhbm5lbF9wYWlyX2Vs ZW1lbnQoQUFDRGVjQ29udGV4dCAqYWMsDQo+ICAgICAgICAgICBpZiAocmVhZF9zYnJfZ3Jp ZChhYywgc2JyLCBnYiwgJnNici0+ZGF0YVswXSkpDQo+ICAgICAgICAgICAgICAgcmV0dXJu IC0xOw0KPiAgICAgICAgICAgY29weV9zYnJfZ3JpZCgmc2JyLT5kYXRhWzFdLCAmc2JyLT5k YXRhWzBdKTsNCj4gLSAgICAgICAgcmVhZF9zYnJfZHRkZihzYnIsIGdiLCAmc2JyLT5kYXRh WzBdKTsNCj4gLSAgICAgICAgcmVhZF9zYnJfZHRkZihzYnIsIGdiLCAmc2JyLT5kYXRhWzFd KTsNCj4gKyAgICAgICAgcmVhZF9zYnJfZHRkZihzYnIsIGdiLCAmc2JyLT5kYXRhWzBdLCAw KTsNCj4gKyAgICAgICAgcmVhZF9zYnJfZHRkZihzYnIsIGdiLCAmc2JyLT5kYXRhWzFdLCAw KTsNCj4gICAgICAgICAgIHJlYWRfc2JyX2ludmYoc2JyLCBnYiwgJnNici0+ZGF0YVswXSk7 DQo+ICAgICAgICAgICBtZW1jcHkoc2JyLT5kYXRhWzFdLmJzX2ludmZfbW9kZVsxXSwgc2Jy LT5kYXRhWzFdLmJzX2ludmZfbW9kZVswXSwgc2l6ZW9mKHNici0+ZGF0YVsxXS5ic19pbnZm X21vZGVbMF0pKTsNCj4gICAgICAgICAgIG1lbWNweShzYnItPmRhdGFbMV0uYnNfaW52Zl9t b2RlWzBdLCBzYnItPmRhdGFbMF0uYnNfaW52Zl9tb2RlWzBdLCBzaXplb2Yoc2JyLT5kYXRh WzFdLmJzX2ludmZfbW9kZVswXSkpOw0KPiBAQCAtMTAxMyw4ICsxMDQzLDggQEAgc3RhdGlj IGludCByZWFkX3Nicl9jaGFubmVsX3BhaXJfZWxlbWVudChBQUNEZWNDb250ZXh0ICphYywN Cj4gICAgICAgICAgIGlmIChyZWFkX3Nicl9ncmlkKGFjLCBzYnIsIGdiLCAmc2JyLT5kYXRh WzBdKSB8fA0KPiAgICAgICAgICAgICAgIHJlYWRfc2JyX2dyaWQoYWMsIHNiciwgZ2IsICZz YnItPmRhdGFbMV0pKQ0KPiAgICAgICAgICAgICAgIHJldHVybiAtMTsNCj4gLSAgICAgICAg cmVhZF9zYnJfZHRkZihzYnIsIGdiLCAmc2JyLT5kYXRhWzBdKTsNCj4gLSAgICAgICAgcmVh ZF9zYnJfZHRkZihzYnIsIGdiLCAmc2JyLT5kYXRhWzFdKTsNCj4gKyAgICAgICAgcmVhZF9z YnJfZHRkZihzYnIsIGdiLCAmc2JyLT5kYXRhWzBdLCAwKTsNCj4gKyAgICAgICAgcmVhZF9z YnJfZHRkZihzYnIsIGdiLCAmc2JyLT5kYXRhWzFdLCAwKTsNCj4gICAgICAgICAgIHJlYWRf c2JyX2ludmYoc2JyLCBnYiwgJnNici0+ZGF0YVswXSk7DQo+ICAgICAgICAgICByZWFkX3Ni cl9pbnZmKHNiciwgZ2IsICZzYnItPmRhdGFbMV0pOw0KPiAgICAgICAgICAgaWYoKHJldCA9 IHJlYWRfc2JyX2VudmVsb3BlKGFjLCBzYnIsIGdiLCAmc2JyLT5kYXRhWzBdLCAwKSkgPCAw KQ0KPiBAQCAtMTEyOSw3ICsxMTU5LDcgQEAgaW50IEFBQ19SRU5BTUUoZmZfYWFjX3Nicl9k ZWNvZGVfZXh0ZW5zaW9uKShBQUNEZWNDb250ZXh0ICphYywgQ2hhbm5lbEVsZW1lbnQgKmMN Cj4gICANCj4gICAgICAgbnVtX3Nicl9iaXRzKys7DQo+ICAgICAgIGlmIChnZXRfYml0czEo Z2IpKSAvLyBic19oZWFkZXJfZmxhZw0KPiAtICAgICAgICBudW1fc2JyX2JpdHMgKz0gcmVh ZF9zYnJfaGVhZGVyKHNiciwgZ2IpOw0KPiArICAgICAgICBudW1fc2JyX2JpdHMgKz0gcmVh ZF9zYnJfaGVhZGVyKHNiciwgZ2IsIDApOw0KPiAgIA0KPiAgICAgICBpZiAoc2JyLT5yZXNl dCkNCj4gICAgICAgICAgIHNicl9yZXNldChhYywgc2JyKTsNCj4gQEAgLTExNDgsNiArMTE3 OCwxNzggQEAgaW50IEFBQ19SRU5BTUUoZmZfYWFjX3Nicl9kZWNvZGVfZXh0ZW5zaW9uKShB QUNEZWNDb250ZXh0ICphYywgQ2hhbm5lbEVsZW1lbnQgKmMNCj4gICAgICAgcmV0dXJuIGNu dDsNCj4gICB9DQo+ICAgDQo+ICsjaWYgIVVTRV9GSVhFRA0KPiArc3RhdGljIHZvaWQgY29w eV91c2FjX2RlZmF1bHRfaGVhZGVyKFNwZWN0cmFsQmFuZFJlcGxpY2F0aW9uICpzYnIsDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUFDVXNhY0VsZW1Db25m aWcgKnVlKQ0KPiArew0KPiArICAgIHNici0+aW50ZXJfdGVzID0gdWUtPnNici5ic19pbnRl cnRlczsNCj4gKw0KPiArICAgIHNici0+c3BlY3RydW1fcGFyYW1zLmJzX3N0YXJ0X2ZyZXEg PSB1ZS0+c2JyLmRmbHQuc3RhcnRfZnJlcTsNCj4gKyAgICBzYnItPnNwZWN0cnVtX3BhcmFt cy5ic19zdG9wX2ZyZXEgPSB1ZS0+c2JyLmRmbHQuc3RvcF9mcmVxOw0KPiArDQo+ICsgICAg c2JyLT5zcGVjdHJ1bV9wYXJhbXMuYnNfZnJlcV9zY2FsZSA9IHVlLT5zYnIuZGZsdC5mcmVx X3NjYWxlOw0KPiArICAgIHNici0+c3BlY3RydW1fcGFyYW1zLmJzX2FsdGVyX3NjYWxlID0g dWUtPnNici5kZmx0LmFsdGVyX3NjYWxlOw0KPiArICAgIHNici0+c3BlY3RydW1fcGFyYW1z LmJzX25vaXNlX2JhbmRzID0gdWUtPnNici5kZmx0Lm5vaXNlX2JhbmRzOw0KPiArDQo+ICsg ICAgc2JyLT5ic19saW1pdGVyX2JhbmRzID0gdWUtPnNici5kZmx0LmxpbWl0ZXJfYmFuZHM7 DQo+ICsgICAgc2JyLT5ic19saW1pdGVyX2dhaW5zID0gdWUtPnNici5kZmx0LmxpbWl0ZXJf Z2FpbnM7DQo+ICsgICAgc2JyLT5ic19pbnRlcnBvbF9mcmVxID0gdWUtPnNici5kZmx0Lmlu dGVycG9sX2ZyZXE7DQo+ICsgICAgc2JyLT5ic19zbW9vdGhpbmdfbW9kZSA9IHVlLT5zYnIu ZGZsdC5zbW9vdGhpbmdfbW9kZTsNCj4gK30NCj4gKw0KPiAraW50IGZmX2FhY19zYnJfY29u ZmlnX3VzYWMoQUFDRGVjQ29udGV4dCAqYWMsIENoYW5uZWxFbGVtZW50ICpjaGUsDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICBBQUNVc2FjRWxlbUNvbmZpZyAqdWUpDQo+ICt7 DQo+ICsgICAgU3BlY3RyYWxCYW5kUmVwbGljYXRpb24gKnNiciA9IGdldF9zYnIoY2hlKTsN Cj4gKyAgICBzYnJfdHVybm9mZihzYnIpOw0KPiArICAgIHJldHVybiAwOw0KPiArfQ0KPiAr DQo+ICtpbnQgZmZfYWFjX3Nicl9kZWNvZGVfdXNhY19kYXRhKEFBQ0RlY0NvbnRleHQgKmFj LCBDaGFubmVsRWxlbWVudCAqY2hlLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBQUNVc2FjRWxlbUNvbmZpZyAqdWUsIEdldEJpdENvbnRleHQgKmdiLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2JyX2NoLCBpbnQgaW5kZXBfZmxh ZykNCj4gK3sNCj4gKyAgICBpbnQgcmV0Ow0KPiArICAgIFNwZWN0cmFsQmFuZFJlcGxpY2F0 aW9uICpzYnIgPSBnZXRfc2JyKGNoZSk7DQo+ICsgICAgaW50IGluZm9fcHJlc2VudCA9IDE7 DQo+ICsgICAgaW50IGhlYWRlcl9wcmVzZW50ID0gMTsNCj4gKw0KPiArICAgIHNici0+cmVz ZXQgPSAwOw0KPiArICAgIHNici0+dXNhYyA9IDE7DQo+ICsNCj4gKyAgICBzYnItPnNhbXBs ZV9yYXRlID0gYWMtPm9jWzFdLm00YWMuZXh0X3NhbXBsZV9yYXRlOw0KPiArICAgIHNici0+ aWRfYWFjID0gc2JyX2NoID09IDIgPyBUWVBFX0NQRSA6IFRZUEVfU0NFOw0KPiArDQo+ICsg ICAgaWYgKCFpbmRlcF9mbGFnKSB7DQo+ICsgICAgICAgIGluZm9fcHJlc2VudCA9IGdldF9i aXRzMShnYik7DQo+ICsgICAgICAgIGlmIChpbmZvX3ByZXNlbnQpDQo+ICsgICAgICAgICAg ICBoZWFkZXJfcHJlc2VudCA9IGdldF9iaXRzMShnYik7DQo+ICsgICAgICAgIGVsc2UNCj4g KyAgICAgICAgICAgIGhlYWRlcl9wcmVzZW50ID0gMDsNCj4gKyAgICB9DQo+ICsNCj4gKyAg ICBpZiAoaW5mb19wcmVzZW50KSB7DQo+ICsgICAgICAgIC8qIFNickluZm8oKSAqLw0KPiAr ICAgICAgICBzYnItPmJzX2FtcF9yZXNfaGVhZGVyID0gZ2V0X2JpdHMxKGdiKTsNCj4gKyAg ICAgICAgc2JyLT5zcGVjdHJ1bV9wYXJhbXMuYnNfeG92ZXJfYmFuZCA9IGdldF9iaXRzKGdi LCA0KTsNCj4gKyAgICAgICAgc2JyLT5ic19zYnJfcHJlcHJvY2Vzc2luZyA9IGdldF9iaXRz MShnYik7DQo+ICsgICAgICAgIC8qIGlmIChic19wdmMpIC4uLiAqLw0KPiArICAgIH0NCj4g Kw0KPiArICAgIGlmIChoZWFkZXJfcHJlc2VudCkgew0KPiArICAgICAgICBpZiAoZ2V0X2Jp dHMxKGdiKSkgew0KPiArICAgICAgICAgICAgaW50IG9sZF9ic19saW1pdGVyX2JhbmRzID0g c2JyLT5ic19saW1pdGVyX2JhbmRzOw0KPiArICAgICAgICAgICAgU3BlY3RydW1QYXJhbWV0 ZXJzIG9sZF9zcGVjdHJ1bV9wYXJhbXM7DQo+ICsgICAgICAgICAgICBtZW1jcHkoJm9sZF9z cGVjdHJ1bV9wYXJhbXMsICZzYnItPnNwZWN0cnVtX3BhcmFtcywNCj4gKyAgICAgICAgICAg ICAgICAgICBzaXplb2YoU3BlY3RydW1QYXJhbWV0ZXJzKSk7DQo+ICsNCj4gKyAgICAgICAg ICAgIGNvcHlfdXNhY19kZWZhdWx0X2hlYWRlcihzYnIsIHVlKTsNCj4gKyAgICAgICAgICAg IC8vIENoZWNrIGlmIHNwZWN0cnVtIHBhcmFtZXRlcnMgY2hhbmdlZA0KPiArICAgICAgICAg ICAgaWYgKG1lbWNtcCgmb2xkX3NwZWN0cnVtX3BhcmFtcywgJnNici0+c3BlY3RydW1fcGFy YW1zLA0KPiArICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoU3BlY3RydW1QYXJhbWV0 ZXJzKSkpDQo+ICsgICAgICAgICAgICAgICAgc2JyLT5yZXNldCA9IDE7DQo+ICsNCj4gKyAg ICAgICAgICAgIGlmIChzYnItPmJzX2xpbWl0ZXJfYmFuZHMgIT0gb2xkX2JzX2xpbWl0ZXJf YmFuZHMgJiYgIXNici0+cmVzZXQpDQo+ICsgICAgICAgICAgICAgICAgc2JyX21ha2VfZl90 YWJsZWxpbShzYnIpOw0KPiArICAgICAgICB9IGVsc2Ugew0KPiArICAgICAgICAgICAgcmVh ZF9zYnJfaGVhZGVyKHNiciwgZ2IsIDEpOw0KPiArICAgICAgICB9DQo+ICsNCj4gKyAgICAg ICAgc2JyLT5zdGFydCA9IDE7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgLy9TYXZlIHNvbWUg c3RhdGUgZnJvbSB0aGUgcHJldmlvdXMgZnJhbWUuDQo+ICsgICAgc2JyLT5reFswXSA9IHNi ci0+a3hbMV07DQo+ICsgICAgc2JyLT5tWzBdID0gc2JyLT5tWzFdOw0KPiArICAgIHNici0+ a3hfYW5kX21fcHVzaGVkID0gMTsNCj4gKw0KPiArICAgIGlmIChzYnItPnJlc2V0KQ0KPiAr ICAgICAgICBzYnJfcmVzZXQoYWMsIHNicik7DQo+ICsNCj4gKyAgICBzYnItPnJlYWR5X2Zv cl9kZXF1YW50ID0gMTsNCj4gKw0KPiArICAgIGludCBzdGFydCA9IGdldF9iaXRzX2NvdW50 KGdiKTsNCj4gKw0KPiArICAgIGlmIChzYnJfY2ggPT0gMSkgeyAvKiBzYnJfc2luZ2xlX2No YW5uZWxfZWxlbWVudCAqLw0KPiArICAgICAgICAvKiBpZiAoaGFybW9uaWNTQlIpIC4uLiAq Lw0KPiArDQo+ICsgICAgICAgIGlmIChyZWFkX3Nicl9ncmlkKGFjLCBzYnIsIGdiLCAmc2Jy LT5kYXRhWzBdKSkNCj4gKyAgICAgICAgICAgIHJldHVybiAtMTsNCj4gKw0KPiArICAgICAg ICByZWFkX3Nicl9kdGRmKHNiciwgZ2IsICZzYnItPmRhdGFbMF0sIGluZGVwX2ZsYWcpOw0K PiArICAgICAgICByZWFkX3Nicl9pbnZmKHNiciwgZ2IsICZzYnItPmRhdGFbMF0pOw0KPiAr DQo+ICsgICAgICAgIGlmICgocmV0ID0gcmVhZF9zYnJfZW52ZWxvcGUoYWMsIHNiciwgZ2Is ICZzYnItPmRhdGFbMF0sIDApKSA8IDApDQo+ICsgICAgICAgICAgICByZXR1cm4gcmV0Ow0K PiArDQo+ICsgICAgICAgIGlmICgocmV0ID0gcmVhZF9zYnJfbm9pc2UoYWMsIHNiciwgZ2Is ICZzYnItPmRhdGFbMF0sIDApKSA8IDApDQo+ICsgICAgICAgICAgICByZXR1cm4gcmV0Ow0K PiArDQo+ICsgICAgICAgIGlmICgoc2JyLT5kYXRhWzBdLmJzX2FkZF9oYXJtb25pY19mbGFn ID0gZ2V0X2JpdHMxKGdiKSkpDQo+ICsgICAgICAgICAgICBnZXRfYml0czFfdmVjdG9yKGdi LCBzYnItPmRhdGFbMF0uYnNfYWRkX2hhcm1vbmljLCBzYnItPm5bMV0pOw0KPiArICAgIH0g ZWxzZSBpZiAoZ2V0X2JpdHMxKGdiKSkgeyAvKiBic19jb3VwbGluZyA9PSAxICovDQo+ICsg ICAgICAgIC8qIGlmIChoYXJtb25pY1NCUikgLi4uICovDQo+ICsNCj4gKyAgICAgICAgaWYg KHJlYWRfc2JyX2dyaWQoYWMsIHNiciwgZ2IsICZzYnItPmRhdGFbMF0pKQ0KPiArICAgICAg ICAgICAgcmV0dXJuIC0xOw0KPiArICAgICAgICBjb3B5X3Nicl9ncmlkKCZzYnItPmRhdGFb MV0sICZzYnItPmRhdGFbMF0pOw0KPiArDQo+ICsgICAgICAgIHJlYWRfc2JyX2R0ZGYoc2Jy LCBnYiwgJnNici0+ZGF0YVswXSwgaW5kZXBfZmxhZyk7DQo+ICsgICAgICAgIHJlYWRfc2Jy X2R0ZGYoc2JyLCBnYiwgJnNici0+ZGF0YVsxXSwgaW5kZXBfZmxhZyk7DQo+ICsNCj4gKyAg ICAgICAgcmVhZF9zYnJfaW52ZihzYnIsIGdiLCAmc2JyLT5kYXRhWzBdKTsNCj4gKyAgICAg ICAgbWVtY3B5KHNici0+ZGF0YVsxXS5ic19pbnZmX21vZGVbMV0sIHNici0+ZGF0YVsxXS5i c19pbnZmX21vZGVbMF0sDQo+ICsgICAgICAgICAgICAgICBzaXplb2Yoc2JyLT5kYXRhWzFd LmJzX2ludmZfbW9kZVswXSkpOw0KPiArICAgICAgICBtZW1jcHkoc2JyLT5kYXRhWzFdLmJz X2ludmZfbW9kZVswXSwgc2JyLT5kYXRhWzBdLmJzX2ludmZfbW9kZVswXSwNCj4gKyAgICAg ICAgICAgICAgIHNpemVvZihzYnItPmRhdGFbMV0uYnNfaW52Zl9tb2RlWzBdKSk7DQo+ICsN Cj4gKyAgICAgICAgaWYgKChyZXQgPSByZWFkX3Nicl9lbnZlbG9wZShhYywgc2JyLCBnYiwg JnNici0+ZGF0YVswXSwgMCkpIDwgMCkNCj4gKyAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ ICsgICAgICAgIGlmICgocmV0ID0gcmVhZF9zYnJfbm9pc2UoYWMsIHNiciwgZ2IsICZzYnIt PmRhdGFbMF0sIDApKSA8IDApDQo+ICsgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiArDQo+ ICsgICAgICAgIGlmICgocmV0ID0gcmVhZF9zYnJfZW52ZWxvcGUoYWMsIHNiciwgZ2IsICZz YnItPmRhdGFbMV0sIDEpKSA8IDApDQo+ICsgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiAr ICAgICAgICBpZiAoKHJldCA9IHJlYWRfc2JyX25vaXNlKGFjLCBzYnIsIGdiLCAmc2JyLT5k YXRhWzFdLCAxKSkgPCAwKQ0KPiArICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gKw0KPiAr ICAgICAgICBpZiAoKHNici0+ZGF0YVswXS5ic19hZGRfaGFybW9uaWNfZmxhZyA9IGdldF9i aXRzMShnYikpKQ0KPiArICAgICAgICAgICAgZ2V0X2JpdHMxX3ZlY3RvcihnYiwgc2JyLT5k YXRhWzBdLmJzX2FkZF9oYXJtb25pYywgc2JyLT5uWzFdKTsNCj4gKyAgICAgICAgaWYgKChz YnItPmRhdGFbMV0uYnNfYWRkX2hhcm1vbmljX2ZsYWcgPSBnZXRfYml0czEoZ2IpKSkNCj4g KyAgICAgICAgICAgIGdldF9iaXRzMV92ZWN0b3IoZ2IsIHNici0+ZGF0YVsxXS5ic19hZGRf aGFybW9uaWMsIHNici0+blsxXSk7DQo+ICsgICAgfSBlbHNlIHsgLyogYnNfY291cGxpbmcg PT0gMCAqLw0KPiArICAgICAgICAvKiBpZiAoaGFybW9uaWNTQlIpIC4uLiAqLw0KPiArICAg ICAgICBpZiAocmVhZF9zYnJfZ3JpZChhYywgc2JyLCBnYiwgJnNici0+ZGF0YVswXSkpDQo+ ICsgICAgICAgICAgICByZXR1cm4gLTE7DQo+ICsgICAgICAgIGlmIChyZWFkX3Nicl9ncmlk KGFjLCBzYnIsIGdiLCAmc2JyLT5kYXRhWzFdKSkNCj4gKyAgICAgICAgICAgIHJldHVybiAt MTsNCj4gKw0KPiArICAgICAgICByZWFkX3Nicl9kdGRmKHNiciwgZ2IsICZzYnItPmRhdGFb MF0sIGluZGVwX2ZsYWcpOw0KPiArICAgICAgICByZWFkX3Nicl9kdGRmKHNiciwgZ2IsICZz YnItPmRhdGFbMV0sIGluZGVwX2ZsYWcpOw0KPiArDQo+ICsgICAgICAgIHJlYWRfc2JyX2lu dmYoc2JyLCBnYiwgJnNici0+ZGF0YVswXSk7DQo+ICsgICAgICAgIHJlYWRfc2JyX2ludmYo c2JyLCBnYiwgJnNici0+ZGF0YVsxXSk7DQo+ICsNCj4gKyAgICAgICAgaWYgKChyZXQgPSBy ZWFkX3Nicl9lbnZlbG9wZShhYywgc2JyLCBnYiwgJnNici0+ZGF0YVswXSwgMCkpIDwgMCkN Cj4gKyAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ICsgICAgICAgIGlmICgocmV0ID0gcmVh ZF9zYnJfZW52ZWxvcGUoYWMsIHNiciwgZ2IsICZzYnItPmRhdGFbMV0sIDEpKSA8IDApDQo+ ICsgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiArDQo+ICsgICAgICAgIGlmICgocmV0ID0g cmVhZF9zYnJfbm9pc2UoYWMsIHNiciwgZ2IsICZzYnItPmRhdGFbMF0sIDApKSA8IDApDQo+ ICsgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiArICAgICAgICBpZiAoKHJldCA9IHJlYWRf c2JyX25vaXNlKGFjLCBzYnIsIGdiLCAmc2JyLT5kYXRhWzFdLCAxKSkgPCAwKQ0KPiArICAg ICAgICAgICAgcmV0dXJuIHJldDsNCj4gKw0KPiArICAgICAgICBpZiAoKHNici0+ZGF0YVsw XS5ic19hZGRfaGFybW9uaWNfZmxhZyA9IGdldF9iaXRzMShnYikpKQ0KPiArICAgICAgICAg ICAgZ2V0X2JpdHMxX3ZlY3RvcihnYiwgc2JyLT5kYXRhWzBdLmJzX2FkZF9oYXJtb25pYywg c2JyLT5uWzFdKTsNCj4gKyAgICAgICAgaWYgKChzYnItPmRhdGFbMV0uYnNfYWRkX2hhcm1v bmljX2ZsYWcgPSBnZXRfYml0czEoZ2IpKSkNCj4gKyAgICAgICAgICAgIGdldF9iaXRzMV92 ZWN0b3IoZ2IsIHNici0+ZGF0YVsxXS5ic19hZGRfaGFybW9uaWMsIHNici0+blsxXSk7DQo+ ICsgICAgfQ0KPiArDQo+ICsgICAgcmV0dXJuIDA7DQo+ICt9DQo+ICsjZW5kaWYNCj4gKw0K PiAgIC8qKg0KPiAgICAqIEFuYWx5c2lzIFFNRiBCYW5rICgxNDQ5Ni0zIHNwMDQgcDIwNikN Cj4gICAgKg0KPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9zYnIuaCBiL2xpYmF2Y29kZWMv c2JyLmgNCj4gaW5kZXggZmUzYTM5NjAzYS4uNDBiYjMwZTA0ZCAxMDA2NDQNCj4gLS0tIGEv bGliYXZjb2RlYy9zYnIuaA0KPiArKysgYi9saWJhdmNvZGVjL3Nici5oDQo+IEBAIC02OCw5 ICs2OCw5IEBAIHR5cGVkZWYgc3RydWN0IFNCUkRhdGEgew0KPiAgICAgICB1bnNpZ25lZCAg ICAgICAgICAgYnNfZnJhbWVfY2xhc3M7DQo+ICAgICAgIHVuc2lnbmVkICAgICAgICAgICBi c19hZGRfaGFybW9uaWNfZmxhZzsNCj4gICAgICAgQUFDX1NJR05FICAgICAgICAgIGJzX251 bV9lbnY7DQo+IC0gICAgdWludDhfdCAgICAgICAgICAgIGJzX2ZyZXFfcmVzWzddOw0KPiAr ICAgIHVpbnQ4X3QgICAgICAgICAgICBic19mcmVxX3Jlc1s5XTsNCj4gICAgICAgQUFDX1NJ R05FICAgICAgICAgIGJzX251bV9ub2lzZTsNCj4gLSAgICB1aW50OF90ICAgICAgICAgICAg YnNfZGZfZW52WzVdOw0KPiArICAgIHVpbnQ4X3QgICAgICAgICAgICBic19kZl9lbnZbOV07 DQo+ICAgICAgIHVpbnQ4X3QgICAgICAgICAgICBic19kZl9ub2lzZVsyXTsNCj4gICAgICAg dWludDhfdCAgICAgICAgICAgIGJzX2ludmZfbW9kZVsyXVs1XTsNCj4gICAgICAgdWludDhf dCAgICAgICAgICAgIGJzX2FkZF9oYXJtb25pY1s0OF07DQo+IEBAIC05NSwyMSArOTUsMjQg QEAgdHlwZWRlZiBzdHJ1Y3QgU0JSRGF0YSB7DQo+ICAgICAgIERFQ0xBUkVfQUxJR05FRCgx NiwgSU5URkxPQVQsIFkpWzJdWzM4XVs2NF1bMl07DQo+ICAgICAgIERFQ0xBUkVfQUxJR05F RCgxNiwgQUFDX0ZMT0FULCBnX3RlbXApWzQyXVs0OF07DQo+ICAgICAgIEFBQ19GTE9BVCAg ICAgICAgICBxX3RlbXBbNDJdWzQ4XTsNCj4gLSAgICB1aW50OF90ICAgICAgICAgICAgc19p bmRleG1hcHBlZFs4XVs0OF07DQo+ICsgICAgdWludDhfdCAgICAgICAgICAgIHNfaW5kZXht YXBwZWRbOV1bNDhdOw0KPiAgICAgICAvLy9FbnZlbG9wZSBzY2FsZWZhY3RvcnMNCj4gLSAg ICB1aW50OF90ICAgICAgICAgICAgZW52X2ZhY3NfcVs2XVs0OF07DQo+IC0gICAgQUFDX0ZM T0FUICAgICAgICAgIGVudl9mYWNzWzZdWzQ4XTsNCj4gKyAgICB1aW50OF90ICAgICAgICAg ICAgZW52X2ZhY3NfcVs5XVs0OF07DQo+ICsgICAgQUFDX0ZMT0FUICAgICAgICAgIGVudl9m YWNzWzldWzQ4XTsNCj4gICAgICAgLy8vTm9pc2Ugc2NhbGVmYWN0b3JzDQo+ICAgICAgIHVp bnQ4X3QgICAgICAgICAgICBub2lzZV9mYWNzX3FbM11bNV07DQo+ICAgICAgIEFBQ19GTE9B VCAgICAgICAgICBub2lzZV9mYWNzWzNdWzVdOw0KPiAgICAgICAvLy9FbnZlbG9wZSB0aW1l IGJvcmRlcnMNCj4gLSAgICB1aW50OF90ICAgICAgICAgICAgdF9lbnZbOF07DQo+ICsgICAg dWludDhfdCAgICAgICAgICAgIHRfZW52WzldOw0KPiAgICAgICAvLy9FbnZlbG9wZSB0aW1l IGJvcmRlciBvZiB0aGUgbGFzdCBlbnZlbG9wZSBvZiB0aGUgcHJldmlvdXMgZnJhbWUNCj4g ICAgICAgdWludDhfdCAgICAgICAgICAgIHRfZW52X251bV9lbnZfb2xkOw0KPiAgICAgICAv Ly9Ob2lzZSB0aW1lIGJvcmRlcnMNCj4gICAgICAgdWludDhfdCAgICAgICAgICAgIHRfcVsz XTsNCj4gICAgICAgdW5zaWduZWQgICAgICAgICAgIGZfaW5kZXhub2lzZTsNCj4gICAgICAg dW5zaWduZWQgICAgICAgICAgIGZfaW5kZXhzaW5lOw0KPiArICAgIC8vaW50ZXJfdGVzIChV U0FDKQ0KPiArICAgIHVpbnQ4X3QgICAgICAgICAgICB0ZW1wX3NoYXBlWzZdOw0KPiArICAg IHVpbnQ4X3QgICAgICAgICAgICB0ZW1wX3NoYXBlX21vZGVbNl07DQo+ICAgICAgIC8qKiBA fSAqLw0KPiAgIH0gU0JSRGF0YTsNCj4gICANCj4gQEAgLTE0Miw5ICsxNDUsMTIgQEAgc3Ry dWN0IFNwZWN0cmFsQmFuZFJlcGxpY2F0aW9uIHsNCj4gICAgICAgaW50ICAgICAgICAgICAg ICAgIHN0YXJ0Ow0KPiAgICAgICBpbnQgICAgICAgICAgICAgICAgcmVhZHlfZm9yX2RlcXVh bnQ7DQo+ICAgICAgIGludCAgICAgICAgICAgICAgICBpZF9hYWM7DQo+ICsgICAgaW50ICAg ICAgICAgICAgICAgIHVzYWM7DQo+ICsgICAgaW50ICAgICAgICAgICAgICAgIGludGVyX3Rl czsgLy8gVVNBQy1vbmx5DQo+ICAgICAgIGludCAgICAgICAgICAgICAgICByZXNldDsNCj4g ICAgICAgU3BlY3RydW1QYXJhbWV0ZXJzIHNwZWN0cnVtX3BhcmFtczsNCj4gICAgICAgaW50 ICAgICAgICAgICAgICAgIGJzX2FtcF9yZXNfaGVhZGVyOw0KPiArICAgIGludCAgICAgICAg ICAgICAgICBic19zYnJfcHJlcHJvY2Vzc2luZzsgLy8gVVNBQy1vbmx5DQo+ICAgICAgIC8q Kg0KPiAgICAgICAgKiBAbmFtZSBWYXJpYWJsZXMgYXNzb2NpYXRlZCB3aXRoIGJzX2hlYWRl cl9leHRyYV8yDQo+ICAgICAgICAqIEB7DQo+IEBAIC0xOTYsMTggKzIwMiwxOCBAQCBzdHJ1 Y3QgU3BlY3RyYWxCYW5kUmVwbGljYXRpb24gew0KPiAgICAgICAvLy9GaXJzdCBjb2VmZmlj aWVudCB1c2VkIHRvIGZpbHRlciB0aGUgc3ViYmFuZCBzaWduYWxzDQo+ICAgICAgIERFQ0xB UkVfQUxJR05FRCgxNiwgSU5URkxPQVQsIGFscGhhMSlbNjRdWzJdOw0KPiAgICAgICAvLy9E ZXF1YW50aXplZCBlbnZlbG9wZSBzY2FsZWZhY3RvcnMsIHJlbWFwcGVkDQo+IC0gICAgQUFD X0ZMT0FUICAgICAgICAgIGVfb3JpZ21hcHBlZFs3XVs0OF07DQo+ICsgICAgQUFDX0ZMT0FU ICAgICAgICAgIGVfb3JpZ21hcHBlZFs4XVs0OF07DQo+ICAgICAgIC8vL0RlcXVhbnRpemVk IG5vaXNlIHNjYWxlZmFjdG9ycywgcmVtYXBwZWQNCj4gLSAgICBBQUNfRkxPQVQgICAgICAg ICAgcV9tYXBwZWRbN11bNDhdOw0KPiArICAgIEFBQ19GTE9BVCAgICAgICAgICBxX21hcHBl ZFs4XVs0OF07DQo+ICAgICAgIC8vL1NpbnVzb2lkYWwgcHJlc2VuY2UsIHJlbWFwcGVkDQo+ IC0gICAgdWludDhfdCAgICAgICAgICAgIHNfbWFwcGVkWzddWzQ4XTsNCj4gKyAgICB1aW50 OF90ICAgICAgICAgICAgc19tYXBwZWRbOF1bNDhdOw0KPiAgICAgICAvLy9Fc3RpbWF0ZWQg ZW52ZWxvcGUNCj4gLSAgICBBQUNfRkxPQVQgICAgICAgICAgZV9jdXJyWzddWzQ4XTsNCj4g KyAgICBBQUNfRkxPQVQgICAgICAgICAgZV9jdXJyWzhdWzQ4XTsNCj4gICAgICAgLy8vQW1w bGl0dWRlIGFkanVzdGVkIG5vaXNlIHNjYWxlZmFjdG9ycw0KPiAtICAgIEFBQ19GTE9BVCAg ICAgICAgICBxX21bN11bNDhdOw0KPiArICAgIEFBQ19GTE9BVCAgICAgICAgICBxX21bOF1b NDhdOw0KPiAgICAgICAvLy9TaW51c29pZGFsIGxldmVscw0KPiAtICAgIEFBQ19GTE9BVCAg ICAgICAgICBzX21bN11bNDhdOw0KPiAtICAgIEFBQ19GTE9BVCAgICAgICAgICBnYWluWzdd WzQ4XTsNCj4gKyAgICBBQUNfRkxPQVQgICAgICAgICAgc19tWzhdWzQ4XTsNCj4gKyAgICBB QUNfRkxPQVQgICAgICAgICAgZ2Fpbls4XVs0OF07DQo+ICAgICAgIERFQ0xBUkVfQUxJR05F RCgzMiwgSU5URkxPQVQsIHFtZl9maWx0ZXJfc2NyYXRjaClbNV1bNjRdOw0KPiAgICAgICBB VlRYQ29udGV4dCAgICAgICAqbWRjdF9hbmE7DQo+ICAgICAgIGF2X3R4X2ZuICAgICAgICAg ICBtZGN0X2FuYV9mbjsNCg0KSSdsbCB3YWl0IDIgbW9yZSBkYXlzIGJlZm9yZSBtZXJnaW5n IHRoaXMgcGF0Y2gsIGJ1dCBJJ2xsIHB1c2ggdGhlIG90aGVyIA0KNSBmaXgvcHJlcCBwYXRj aGVzIHRvbW9ycm93Lg0K --------------Dj8hlPSblrzsLnbHj6z0NsrF Content-Type: application/pgp-keys; name="OpenPGP_0xA2FEA5F03F034464.asc" Content-Disposition: attachment; filename="OpenPGP_0xA2FEA5F03F034464.asc" Content-Description: OpenPGP public key Content-Transfer-Encoding: quoted-printable -----BEGIN PGP PUBLIC KEY BLOCK----- xjMEXnFG3BYJKwYBBAHaRw8BAQdA3FyJpqEdfQj4GA7OUWVrNheT9dUsIs+yUx6H ljr9mYvNFEx5bm5lIDxkZXZAbHlubmUuZWU+wpAEExYIADgWIQT+UBOcaAVyyv1S H42i/qXwPwNEZAUCXnFG3AIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCi /qXwPwNEZOTWAQCSNEA+kZLINZ2dsR5Qg988c0HXpOXThZEjg+h1TL7KGgEA3Gff 0c28efI02S6iMxazrpdWGHqHk7JN7pCjnt397wzOOARecUbcEgorBgEEAZdVAQUB AQdAjDdFQ5H+AJ9vwXrOb7val460g45EsheIaL5S7/zSaX8DAQgHwngEGBYIACAW IQT+UBOcaAVyyv1SH42i/qXwPwNEZAUCXnFG3AIbDAAKCRCi/qXwPwNEZKaxAQCH LV4gAk/B9JvRG27MYm22X3+5QRCLBtEILP29aDh+MQD/V8JFHATDXRY30LsmqR3s PQ0BJ1UFVZA5BUoIJPJZWwg=3D =3DylY5 -----END PGP PUBLIC KEY BLOCK----- --------------Dj8hlPSblrzsLnbHj6z0NsrF-- --------------OCnJ0H7GlJiy2bi6i0Cz0FTc-- --------------x7a7Q6OxVy8pulUKIkKmyyUy Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQT+UBOcaAVyyv1SH42i/qXwPwNEZAUCZnOP/wUDAAAAAAAKCRCi/qXwPwNEZOK6 APwKkKGVhl2/jiWhnJs0MBO+uaIt7uNOh4+XXNnvSjv3MwD+Kgw3KaSoOItNB95IstzmhO11iidB omb1J7c3NCxIuAg= =p8cF -----END PGP SIGNATURE----- --------------x7a7Q6OxVy8pulUKIkKmyyUy-- --===============3810135614417569764== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". --===============3810135614417569764==--