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 96F544B883 for ; Mon, 17 Jun 2024 14:52:56 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 97D3268D371; Mon, 17 Jun 2024 17:52:52 +0300 (EEST) Received: from 13.mo561.mail-out.ovh.net (13.mo561.mail-out.ovh.net [188.165.33.202]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 528C668D5B1 for ; Mon, 17 Jun 2024 17:52:46 +0300 (EEST) Received: from director5.ghost.mail-out.ovh.net (unknown [10.109.139.163]) by mo561.mail-out.ovh.net (Postfix) with ESMTP id 4W2tCd1szzz1PZg for ; Mon, 17 Jun 2024 14:52:45 +0000 (UTC) Received: from ghost-submission-6684bf9d7b-28pfg (unknown [10.110.178.91]) by director5.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 9F0761FD21 for ; Mon, 17 Jun 2024 14:52:44 +0000 (UTC) Received: from courmont.net ([37.59.142.97]) by ghost-submission-6684bf9d7b-28pfg with ESMTPSA id Ip9zHLxNcGZ5gAEAMbk8nA (envelope-from ) for ; Mon, 17 Jun 2024 14:52:44 +0000 Authentication-Results: garm.ovh; auth=pass (GARM-97G00283289324-74de-440b-ad7c-02dcb5b6fb1b, 1CC5FD6270C593FED11428881F3FCCE8B7FC6B80) smtp.auth=postmaster@courmont.net X-OVh-ClientIp: 37.33.249.79 Date: Mon, 17 Jun 2024 16:52:39 +0200 From: =?ISO-8859-1?Q?R=E9mi_Denis-Courmont?= To: FFmpeg development discussions and patches User-Agent: K-9 Mail for Android In-Reply-To: <20240617111812.84575-3-yigithanyigitdevel@gmail.com> References: <20240617111812.84575-1-yigithanyigitdevel@gmail.com> <20240617111812.84575-3-yigithanyigitdevel@gmail.com> Message-ID: <92092055-E0A7-45C5-A479-E43D41DF2BE6@remlab.net> MIME-Version: 1.0 X-Ovh-Tracer-Id: 5601633513088031225 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvledrfedvhedgkedvucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhepfffhvffufggjfhfkgggtgfesthhqmhdttderjeenucfhrhhomheptformhhiucffvghnihhsqdevohhurhhmohhnthcuoehrvghmihesrhgvmhhlrggsrdhnvghtqeenucggtffrrghtthgvrhhnpefgueelhfefffegveegteegueehgeduvdffledtjeegteduvddtjefhhfegtedvjeenucfkphepuddvjedrtddrtddruddpfeejrdeffedrvdegledrjeelpdefjedrheelrddugedvrdeljeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomheprhgvmhhisehrvghmlhgrsgdrnhgvthdpnhgspghrtghpthhtohepuddprhgtphhtthhopehffhhmphgvghdquggvvhgvlhesfhhfmhhpvghgrdhorhhgpdfovfetjfhoshhtpehmohehiedupdhmohguvgepshhmthhpohhuth Subject: Re: [FFmpeg-devel] [PATCH 2/3] avfilter/af_volumedetect.c: Add 32bit float audio support X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-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: CgpMZSAxNyBqdWluIDIwMjQgMTM6MTg6MTEgR01UKzAyOjAwLCBZaWdpdGhhbiBZaWdpdCA8eWln aXRoYW55aWdpdGRldmVsQGdtYWlsLmNvbT4gYSDDqWNyaXTCoDoKPi0tLQo+IGxpYmF2ZmlsdGVy L2FmX3ZvbHVtZWRldGVjdC5jIHwgMTU5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0KPiAxIGZpbGUgY2hhbmdlZCwgMTMzIGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQo+ Cj5kaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvYWZfdm9sdW1lZGV0ZWN0LmMgYi9saWJhdmZpbHRl ci9hZl92b2x1bWVkZXRlY3QuYwo+aW5kZXggMzI3ODAxYTdmOS4uZGJiY2QwMzdhNSAxMDA2NDQK Pi0tLSBhL2xpYmF2ZmlsdGVyL2FmX3ZvbHVtZWRldGVjdC5jCj4rKysgYi9saWJhdmZpbHRlci9h Zl92b2x1bWVkZXRlY3QuYwo+QEAgLTIwLDI3ICsyMCw1MSBAQAo+IAo+ICNpbmNsdWRlICJsaWJh dnV0aWwvY2hhbm5lbF9sYXlvdXQuaCIKPiAjaW5jbHVkZSAibGliYXZ1dGlsL2F2YXNzZXJ0Lmgi Cj4rI2luY2x1ZGUgImxpYmF2dXRpbC9tZW0uaCIKPiAjaW5jbHVkZSAiYXVkaW8uaCIKPiAjaW5j bHVkZSAiYXZmaWx0ZXIuaCIKPiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKPiAKPisjZGVmaW5lIE1B WF9EQl9GTFQgMTAyNAo+ICNkZWZpbmUgTUFYX0RCIDkxCj4rI2RlZmluZSBISVNUT0dSQU1fU0la RSAweDEwMDAwCj4rI2RlZmluZSBISVNUT0dSQU1fU0laRV9GTFQgKE1BWF9EQl9GTFQqMikKPiAK PiB0eXBlZGVmIHN0cnVjdCBWb2xEZXRlY3RDb250ZXh0IHsKPi0gICAgLyoqCj4tICAgICAqIE51 bWJlciBvZiBzYW1wbGVzIGF0IGVhY2ggUENNIHZhbHVlLgo+LSAgICAgKiBoaXN0b2dyYW1bMHg4 MDAwICsgaV0gaXMgdGhlIG51bWJlciBvZiBzYW1wbGVzIGF0IHZhbHVlIGkuCj4tICAgICAqIFRo ZSBleHRyYSBlbGVtZW50IGlzIHRoZXJlIGZvciBzeW1tZXRyeS4KPi0gICAgICovCj4tICAgIHVp bnQ2NF90IGhpc3RvZ3JhbVsweDEwMDAxXTsKPisgICAgdWludDY0X3QqIGhpc3RvZ3JhbTsgLy8v PCBmb3IgaW50ZWdlciBudW1iZXIgb2Ygc2FtcGxlcyBhdCBlYWNoIFBDTSB2YWx1ZSwgZm9yIGZs b2F0IG51bWJlciBvZiBzYW1wbGVzIGF0IGVhY2ggZEIKPisgICAgdWludDY0X3QgbmJfc2FtcGxl czsgLy8vPCBudW1iZXIgb2Ygc2FtcGxlcwo+KyAgICBkb3VibGUgc3VtMjsgICAgICAgICAvLy88 IHN1bSBvZiB0aGUgc3F1YXJlcyBvZiB0aGUgc2FtcGxlcwo+KyAgICBkb3VibGUgbWF4OyAgICAg ICAgICAvLy88IG1heGltdW0gc2FtcGxlIHZhbHVlCj4rICAgIGludCBpc19mbG9hdDsgICAgICAg IC8vLzwgdHJ1ZSBpZiB0aGUgaW5wdXQgaXMgaW4gZmxvYXRpbmcgcG9pbnQKPiB9IFZvbERldGVj dENvbnRleHQ7Cj4gCj4tc3RhdGljIGlubGluZSBkb3VibGUgbG9nZGIodWludDY0X3QgdikKPitz dGF0aWMgaW5saW5lIGRvdWJsZSBsb2dkYihkb3VibGUgdiwgZW51bSBBVlNhbXBsZUZvcm1hdCBz YW1wbGVfZm10KQo+IHsKPi0gICAgZG91YmxlIGQgPSB2IC8gKGRvdWJsZSkoMHg4MDAwICogMHg4 MDAwKTsKPi0gICAgaWYgKCF2KQo+LSAgICAgICAgcmV0dXJuIE1BWF9EQjsKPi0gICAgcmV0dXJu IC1sb2cxMChkKSAqIDEwOwo+KyAgICBpZiAoc2FtcGxlX2ZtdCA9PSBBVl9TQU1QTEVfRk1UX0ZM VCkgewo+KyAgICAgICAgaWYgKCF2KQo+KyAgICAgICAgICAgIHJldHVybiBNQVhfREJfRkxUOwo+ KyAgICAgICAgcmV0dXJuIC1sb2cxMCh2KSAqIDEwOwo+KyAgICB9IGVsc2Ugewo+KyAgICAgICAg ZG91YmxlIGQgPSB2IC8gKGRvdWJsZSkoMHg4MDAwICogMHg4MDAwKTsKPisgICAgICAgIGlmICgh dikKPisgICAgICAgICAgICByZXR1cm4gTUFYX0RCOwo+KyAgICAgICAgcmV0dXJuIC1sb2cxMChk KSAqIDEwOwo+KyAgICB9Cj4rfQo+Kwo+K3N0YXRpYyB2b2lkIHVwZGF0ZV9mbG9hdF9zdGF0cyhW b2xEZXRlY3RDb250ZXh0ICp2ZCwgZmxvYXQgKmF1ZGlvX2RhdGEpCj4rewo+KyAgICBkb3VibGUg c2FtcGxlOwo+KyAgICBpbnQgaWR4Owo+KyAgICBpZighaXNub3JtYWwoKmF1ZGlvX2RhdGEpKQo+ KyAgICAgICAgcmV0dXJuOwoKRG8gd2UgcmVhbGx5IG5lZWQgdG8gY2xhc3NpZnkgZmxvYXRzIGhl cmU/IFRoYXQncyBwcm9iYWJseSBnb2luZyB0byBodXJ0IHBlcmZzIGJhZGx5LCBhbmQgbWFrZXMg YW4gb3RoZXJ3aXNlIHZlcnkgdmVjdG9yaXNhYmxlIGZ1bmN0aW9uIG5vdCBzbyBlYXNpbHkgdmVj dG9yZWQuCgo+KyAgICBzYW1wbGUgPSBmYWJzZigqYXVkaW9fZGF0YSk7Cj4rICAgIGlmIChzYW1w bGUgPiB2ZC0+bWF4KQo+KyAgICAgICAgdmQtPm1heCA9IHNhbXBsZTsKPisgICAgdmQtPnN1bTIg Kz0gc2FtcGxlICogc2FtcGxlOwo+KyAgICBpZHggPSBscmludGYoZmxvb3JmKGxvZ2RiKHNhbXBs ZSAqIHNhbXBsZSwgQVZfU0FNUExFX0ZNVF9GTFQpKSkgKyBNQVhfREJfRkxUOwoKWW91J3JlIHJl Y29tcHV0aW5nIHRoZSBzYW1lIHZhbHVlIGFnYWluLCBhbmQgeW91IHNlZW0gdG8gYmUgcm91bmRp bmcgdHdpY2UgaW4gYSByb3c/Cgo+KyAgICB2ZC0+aGlzdG9ncmFtW2lkeF0rKzsKPisgICAgdmQt Pm5iX3NhbXBsZXMrKzsKPiB9Cj4gCj4gc3RhdGljIGludCBmaWx0ZXJfZnJhbWUoQVZGaWx0ZXJM aW5rICppbmxpbmssIEFWRnJhbWUgKnNhbXBsZXMpCj5AQCAtNTEsMTggKzc1LDQxIEBAIHN0YXRp YyBpbnQgZmlsdGVyX2ZyYW1lKEFWRmlsdGVyTGluayAqaW5saW5rLCBBVkZyYW1lICpzYW1wbGVz KQo+ICAgICBpbnQgbmJfY2hhbm5lbHMgPSBzYW1wbGVzLT5jaF9sYXlvdXQubmJfY2hhbm5lbHM7 Cj4gICAgIGludCBuYl9wbGFuZXMgICA9IG5iX2NoYW5uZWxzOwo+ICAgICBpbnQgcGxhbmUsIGk7 Cj4tICAgIGludDE2X3QgKnBjbTsKPisgICAgaW50IHBsYW5hciA9IDA7Cj4gCj4tICAgIGlmICgh YXZfc2FtcGxlX2ZtdF9pc19wbGFuYXIoc2FtcGxlcy0+Zm9ybWF0KSkgewo+LSAgICAgICAgbmJf c2FtcGxlcyAqPSBuYl9jaGFubmVsczsKPisgICAgcGxhbmFyID0gYXZfc2FtcGxlX2ZtdF9pc19w bGFuYXIoc2FtcGxlcy0+Zm9ybWF0KTsKPisgICAgaWYgKCFwbGFuYXIpCj4gICAgICAgICBuYl9w bGFuZXMgPSAxOwo+KyAgICBpZiAodmQtPmlzX2Zsb2F0KSB7Cj4rICAgICAgICBmbG9hdCAqYXVk aW9fZGF0YTsKPisgICAgICAgIGZvciAocGxhbmUgPSAwOyBwbGFuZSA8IG5iX3BsYW5lczsgcGxh bmUrKykgewo+KyAgICAgICAgICAgIGF1ZGlvX2RhdGEgPSAoZmxvYXQgKilzYW1wbGVzLT5leHRl bmRlZF9kYXRhW3BsYW5lXTsKPisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmJfc2FtcGxl czsgaSsrKSB7Cj4rICAgICAgICAgICAgICAgIGlmIChwbGFuYXIpIHsKPisgICAgICAgICAgICAg ICAgICAgIHVwZGF0ZV9mbG9hdF9zdGF0cyh2ZCwgJmF1ZGlvX2RhdGFbaV0pOwo+KyAgICAgICAg ICAgICAgICB9IGVsc2Ugewo+KyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGog PCBuYl9jaGFubmVsczsgaisrKQo+KyAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZV9mbG9h dF9zdGF0cyh2ZCwgJmF1ZGlvX2RhdGFbaSAqIG5iX2NoYW5uZWxzICsgal0pOwo+KyAgICAgICAg ICAgICAgICB9Cj4rICAgICAgICAgICAgfQo+KyAgICAgICAgfQo+KyAgICB9IGVsc2Ugewo+KyAg ICAgICAgaW50MTZfdCAqcGNtOwo+KyAgICAgICAgZm9yIChwbGFuZSA9IDA7IHBsYW5lIDwgbmJf cGxhbmVzOyBwbGFuZSsrKSB7Cj4rICAgICAgICAgICAgcGNtID0gKGludDE2X3QgKilzYW1wbGVz LT5leHRlbmRlZF9kYXRhW3BsYW5lXTsKPisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmJf c2FtcGxlczsgaSsrKSB7Cj4rICAgICAgICAgICAgICAgIGlmIChwbGFuYXIpIHsKPisgICAgICAg ICAgICAgICAgICAgIHZkLT5oaXN0b2dyYW1bcGNtW2ldICsgMHg4MDAwXSsrOwo+KyAgICAgICAg ICAgICAgICAgICAgdmQtPm5iX3NhbXBsZXMrKzsKPisgICAgICAgICAgICAgICAgfSBlbHNlIHsK PisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbmJfY2hhbm5lbHM7IGor Kykgewo+KyAgICAgICAgICAgICAgICAgICAgICAgIHZkLT5oaXN0b2dyYW1bcGNtW2kgKiBuYl9j aGFubmVscyArIGpdICsgMHg4MDAwXSsrOwo+KyAgICAgICAgICAgICAgICAgICAgICAgIHZkLT5u Yl9zYW1wbGVzKys7Cj4rICAgICAgICAgICAgICAgICAgICB9Cj4rICAgICAgICAgICAgICAgIH0K PisgICAgICAgICAgICB9Cj4rICAgICAgICB9CgpDYW4ndCB3ZSBwaWNrIHRoZSBjb3JyZWN0IGlt cGxlbWVudGF0aW9uIChwbGFuYXIvcGFja2VkIGFuZCBmbG9hdC9pbnQpIG9uY2UgYW5kIGZvciBh bGwgd2hpbHN0IGNvbmZpZ3VyaW5nIHRoZSBmaWx0ZXI/Cgo+ICAgICB9Cj4tICAgIGZvciAocGxh bmUgPSAwOyBwbGFuZSA8IG5iX3BsYW5lczsgcGxhbmUrKykgewo+LSAgICAgICAgcGNtID0gKGlu dDE2X3QgKilzYW1wbGVzLT5leHRlbmRlZF9kYXRhW3BsYW5lXTsKPi0gICAgICAgIGZvciAoaSA9 IDA7IGkgPCBuYl9zYW1wbGVzOyBpKyspCj4tICAgICAgICAgICAgdmQtPmhpc3RvZ3JhbVtwY21b aV0gKyAweDgwMDBdKys7Cj4tICAgIH0KPi0KPiAgICAgcmV0dXJuIGZmX2ZpbHRlcl9mcmFtZShp bmxpbmstPmRzdC0+b3V0cHV0c1swXSwgc2FtcGxlcyk7Cj4gfQo+IAo+QEAgLTczLDYgKzEyMCwy MCBAQCBzdGF0aWMgdm9pZCBwcmludF9zdGF0cyhBVkZpbHRlckNvbnRleHQgKmN0eCkKPiAgICAg dWludDY0X3QgbmJfc2FtcGxlcyA9IDAsIHBvd2VyID0gMCwgbmJfc2FtcGxlc19zaGlmdCA9IDAs IHN1bSA9IDA7Cj4gICAgIHVpbnQ2NF90IGhpc3RkYltNQVhfREIgKyAxXSA9IHsgMCB9Owo+IAo+ KyAgICBpZiAoIXZkLT5uYl9zYW1wbGVzKQo+KyAgICAgICAgcmV0dXJuOwo+KyAgICBpZiAodmQt PmlzX2Zsb2F0KSB7Cj4rICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfSU5GTywgIm5fc2FtcGxl czogJSIgUFJJZDY0ICJcbiIsIHZkLT5uYl9zYW1wbGVzKTsKPisgICAgICAgIGF2X2xvZyhjdHgs IEFWX0xPR19JTkZPLCAibWVhbl92b2x1bWU6ICUuMWYgZEJcbiIsIC1sb2dkYih2ZC0+c3VtMiAv IHZkLT5uYl9zYW1wbGVzLCBBVl9TQU1QTEVfRk1UX0ZMVCkpOwo+KyAgICAgICAgYXZfbG9nKGN0 eCwgQVZfTE9HX0lORk8sICJtYXhfdm9sdW1lOiAlLjFmIGRCXG4iLCAtMi4wKmxvZ2RiKHZkLT5t YXgsIEFWX1NBTVBMRV9GTVRfRkxUKSk7Cj4rICAgICAgICBmb3IgKGkgPSAwOyBpIDwgSElTVE9H UkFNX1NJWkVfRkxUICYmICF2ZC0+aGlzdG9ncmFtW2ldOyBpKyspOwo+KyAgICAgICAgZm9yICg7 IGkgPj0gMCAmJiBzdW0gPCB2ZC0+bmJfc2FtcGxlcyAvIDEwMDA7IGkrKykgewo+KyAgICAgICAg ICAgIGlmICghdmQtPmhpc3RvZ3JhbVtpXSkKPisgICAgICAgICAgICAgICAgY29udGludWU7Cj4r ICAgICAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0lORk8sICJoaXN0b2dyYW1fJWRkYjogJSIg UFJJZDY0ICJcbiIsIE1BWF9EQl9GTFQgLSBpLCB2ZC0+aGlzdG9ncmFtW2ldKTsKPisgICAgICAg ICAgICBzdW0gKz0gdmQtPmhpc3RvZ3JhbVtpXTsKPisgICAgICAgIH0KPisgICAgfSBlbHNlIHsK PiAgICAgZm9yIChpID0gMDsgaSA8IDB4MTAwMDA7IGkrKykKPiAgICAgICAgIG5iX3NhbXBsZXMg Kz0gdmQtPmhpc3RvZ3JhbVtpXTsKPiAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0lORk8sICJuX3Nh bXBsZXM6ICUiUFJJZDY0IlxuIiwgbmJfc2FtcGxlcyk7Cj5AQCAtOTIsMjYgKzE1Myw2MSBAQCBz dGF0aWMgdm9pZCBwcmludF9zdGF0cyhBVkZpbHRlckNvbnRleHQgKmN0eCkKPiAgICAgICAgIHJl dHVybjsKPiAgICAgcG93ZXIgPSAocG93ZXIgKyBuYl9zYW1wbGVzX3NoaWZ0IC8gMikgLyBuYl9z YW1wbGVzX3NoaWZ0Owo+ICAgICBhdl9hc3NlcnQwKHBvd2VyIDw9IDB4ODAwMCAqIDB4ODAwMCk7 Cj4tICAgIGF2X2xvZyhjdHgsIEFWX0xPR19JTkZPLCAibWVhbl92b2x1bWU6ICUuMWYgZEJcbiIs IC1sb2dkYihwb3dlcikpOwo+KyAgICBhdl9sb2coY3R4LCBBVl9MT0dfSU5GTywgIm1lYW5fdm9s dW1lOiAlLjFmIGRCXG4iLCAtbG9nZGIoKGRvdWJsZSlwb3dlciwgQVZfU0FNUExFX0ZNVF9TMTYp KTsKPiAKPiAgICAgbWF4X3ZvbHVtZSA9IDB4ODAwMDsKPiAgICAgd2hpbGUgKG1heF92b2x1bWUg PiAwICYmICF2ZC0+aGlzdG9ncmFtWzB4ODAwMCArIG1heF92b2x1bWVdICYmCj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAhdmQtPmhpc3RvZ3JhbVsweDgwMDAgLSBtYXhfdm9sdW1lXSkK PiAgICAgICAgIG1heF92b2x1bWUtLTsKPi0gICAgYXZfbG9nKGN0eCwgQVZfTE9HX0lORk8sICJt YXhfdm9sdW1lOiAlLjFmIGRCXG4iLCAtbG9nZGIobWF4X3ZvbHVtZSAqIG1heF92b2x1bWUpKTsK PisgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0lORk8sICJtYXhfdm9sdW1lOiAlLjFmIGRCXG4iLCAt bG9nZGIoKGRvdWJsZSkobWF4X3ZvbHVtZSAqIG1heF92b2x1bWUpLCBBVl9TQU1QTEVfRk1UX1Mx NikpOwo+IAo+ICAgICBmb3IgKGkgPSAwOyBpIDwgMHgxMDAwMDsgaSsrKQo+LSAgICAgICAgaGlz dGRiWyhpbnQpbG9nZGIoKGkgLSAweDgwMDApICogKGkgLSAweDgwMDApKV0gKz0gdmQtPmhpc3Rv Z3JhbVtpXTsKPisgICAgICAgIGhpc3RkYlsoaW50KWxvZ2RiKChkb3VibGUpKGkgLSAweDgwMDAp ICogKGkgLSAweDgwMDApLCBBVl9TQU1QTEVfRk1UX1MxNildICs9IHZkLT5oaXN0b2dyYW1baV07 Cj4gICAgIGZvciAoaSA9IDA7IGkgPD0gTUFYX0RCICYmICFoaXN0ZGJbaV07IGkrKyk7Cj4gICAg IGZvciAoOyBpIDw9IE1BWF9EQiAmJiBzdW0gPCBuYl9zYW1wbGVzIC8gMTAwMDsgaSsrKSB7Cj4t ICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfSU5GTywgImhpc3RvZ3JhbV8lZGRiOiAlIlBSSWQ2 NCJcbiIsIGksIGhpc3RkYltpXSk7Cj4rICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfSU5GTywg Imhpc3RvZ3JhbV8lZGRiOiAlIlBSSWQ2NCJcbiIsIC1pLCBoaXN0ZGJbaV0pOwo+ICAgICAgICAg c3VtICs9IGhpc3RkYltpXTsKPiAgICAgfQo+KyAgICB9Cj4rfQo+Kwo+K3N0YXRpYyBpbnQgY29u ZmlnX291dHB1dChBVkZpbHRlckxpbmsgKm91dGxpbmspCj4rewo+KyAgICBBVkZpbHRlckNvbnRl eHQgKmN0eCA9IG91dGxpbmstPnNyYzsKPisgICAgVm9sRGV0ZWN0Q29udGV4dCAqdmQgPSBjdHgt PnByaXY7Cj4rICAgIHNpemVfdCBoaXN0b2dyYW1fc2l6ZTsKPisKPisgICAgdmQtPmlzX2Zsb2F0 ID0gb3V0bGluay0+Zm9ybWF0ID09IEFWX1NBTVBMRV9GTVRfRkxUIHx8Cj4rICAgICAgICAgICAg ICAgICAgIG91dGxpbmstPmZvcm1hdCA9PSBBVl9TQU1QTEVfRk1UX0ZMVFA7Cj4rCj4rICAgIGlm ICghdmQtPmlzX2Zsb2F0KSB7Cj4rICAgICAgICAvKgo+KyAgICAgICAgKiBOdW1iZXIgb2Ygc2Ft cGxlcyBhdCBlYWNoIFBDTSB2YWx1ZS4KPisgICAgICAgICogT25seSB1c2VkIGZvciBpbnRlZ2Vy IGZvcm1hdHMuCj4rICAgICAgICAqIEZvciAxNiBiaXQgc2lnbmVkIFBDTSB0aGVyZSBhcmUgNjU1 MzYuCj4rICAgICAgICAqIGhpc3RvZ3JhbVsweDgwMDAgKyBpXSBpcyB0aGUgbnVtYmVyIG9mIHNh bXBsZXMgYXQgdmFsdWUgaS4KPisgICAgICAgICogVGhlIGV4dHJhIGVsZW1lbnQgaXMgdGhlcmUg Zm9yIHN5bW1ldHJ5Lgo+KyAgICAgICAgKi8KPisgICAgICAgIGhpc3RvZ3JhbV9zaXplID0gSElT VE9HUkFNX1NJWkUgKyAxOwo+KyAgICB9IGVsc2Ugewo+KyAgICAgICAgLyoKPisgICAgICAgICog VGhlIGhpc3RvZ3JhbSBpcyB1c2VkIHRvIHN0b3JlIHRoZSBudW1iZXIgb2Ygc2FtcGxlcyBhdCBl YWNoIGRCCj4rICAgICAgICAqIGluc3RlYWQgb2YgdGhlIG51bWJlciBvZiBzYW1wbGVzIGF0IGVh Y2ggUENNIHZhbHVlLgo+KyAgICAgICAgKi8KPisgICAgICAgIGhpc3RvZ3JhbV9zaXplID0gSElT VE9HUkFNX1NJWkVfRkxUICsgMTsKPisgICAgfQo+KyAgICB2ZC0+aGlzdG9ncmFtID0gYXZfY2Fs bG9jKGhpc3RvZ3JhbV9zaXplLCBzaXplb2YodWludDY0X3QpKTsKPisgICAgaWYgKCF2ZC0+aGlz dG9ncmFtKQo+KyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPisgICAgcmV0dXJuIDA7 Cj4gfQo+IAo+IHN0YXRpYyBhdl9jb2xkIHZvaWQgdW5pbml0KEFWRmlsdGVyQ29udGV4dCAqY3R4 KQo+IHsKPisgICAgVm9sRGV0ZWN0Q29udGV4dCAqdmQgPSBjdHgtPnByaXY7Cj4gICAgIHByaW50 X3N0YXRzKGN0eCk7Cj4rICAgIGlmICh2ZC0+aGlzdG9ncmFtKQo+KyAgICAgICAgYXZfZnJlZXAo JnZkLT5oaXN0b2dyYW0pOwo+IH0KPiAKPiBzdGF0aWMgY29uc3QgQVZGaWx0ZXJQYWQgdm9sdW1l ZGV0ZWN0X2lucHV0c1tdID0gewo+QEAgLTEyMiw2ICsyMTgsMTQgQEAgc3RhdGljIGNvbnN0IEFW RmlsdGVyUGFkIHZvbHVtZWRldGVjdF9pbnB1dHNbXSA9IHsKPiAgICAgfSwKPiB9Owo+IAo+K3N0 YXRpYyBjb25zdCBBVkZpbHRlclBhZCB2b2x1bWVkZXRlY3Rfb3V0cHV0c1tdID0gewo+KyAgICB7 Cj4rICAgICAgICAubmFtZSAgICAgICAgID0gImRlZmF1bHQiLAo+KyAgICAgICAgLnR5cGUgICAg ICAgICA9IEFWTUVESUFfVFlQRV9BVURJTywKPisgICAgICAgIC5jb25maWdfcHJvcHMgPSBjb25m aWdfb3V0cHV0LAo+KyAgICB9LAo+K307Cj4rCj4gY29uc3QgQVZGaWx0ZXIgZmZfYWZfdm9sdW1l ZGV0ZWN0ID0gewo+ICAgICAubmFtZSAgICAgICAgICA9ICJ2b2x1bWVkZXRlY3QiLAo+ICAgICAu ZGVzY3JpcHRpb24gICA9IE5VTExfSUZfQ09ORklHX1NNQUxMKCJEZXRlY3QgYXVkaW8gdm9sdW1l LiIpLAo+QEAgLTEyOSw2ICsyMzMsOSBAQCBjb25zdCBBVkZpbHRlciBmZl9hZl92b2x1bWVkZXRl Y3QgPSB7Cj4gICAgIC51bmluaXQgICAgICAgID0gdW5pbml0LAo+ICAgICAuZmxhZ3MgICAgICAg ICA9IEFWRklMVEVSX0ZMQUdfTUVUQURBVEFfT05MWSwKPiAgICAgRklMVEVSX0lOUFVUUyh2b2x1 bWVkZXRlY3RfaW5wdXRzKSwKPi0gICAgRklMVEVSX09VVFBVVFMoZmZfYXVkaW9fZGVmYXVsdF9m aWx0ZXJwYWQpLAo+LSAgICBGSUxURVJfU0FNUExFRk1UUyhBVl9TQU1QTEVfRk1UX1MxNiwgQVZf U0FNUExFX0ZNVF9TMTZQKSwKPisgICAgRklMVEVSX09VVFBVVFModm9sdW1lZGV0ZWN0X291dHB1 dHMpLAo+KyAgICBGSUxURVJfU0FNUExFRk1UUyhBVl9TQU1QTEVfRk1UX1MxNiwKPisgICAgICAg ICAgICAgICAgICAgICAgQVZfU0FNUExFX0ZNVF9TMTZQLAo+KyAgICAgICAgICAgICAgICAgICAg ICBBVl9TQU1QTEVfRk1UX0ZMVCwKPisgICAgICAgICAgICAgICAgICAgICAgQVZfU0FNUExFX0ZN VF9GTFRQKSwKPiB9OwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0 dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJz Y3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZm bXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==