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 27EA54B147 for ; Sat, 19 Jul 2025 12:59:23 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id C2FCE68C203; Sat, 19 Jul 2025 15:59:19 +0300 (EEST) Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 3778F68C02D for ; Sat, 19 Jul 2025 15:59:13 +0300 (EEST) Received: by mail-qv1-f54.google.com with SMTP id 6a1803df08f44-6fa980d05a8so17878076d6.2 for ; Sat, 19 Jul 2025 05:59:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752929951; x=1753534751; darn=ffmpeg.org; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=/JoVVp/1dEwYFKjMizTTbcePYHh0h6/Nvf0h4n8x1Rs=; b=fuTdSA850pFwdau/JJYPIDxksN5RjcxjN4mwCRjJTCdbUdL2UDDlINQY7To60jnswp EIMZOQjaHcTENJUJFmzudnhlFk2zl+Tokemwk/muiv+GCZg6HyLSi6TobWCQVxsOsmNd 1GJwIbEOsqGVYx/sLBhNvt3vTVV0KITxwzw1I2j3dQRmUb3exMzp4/5rI+WedZoUl7Yt 9p8QH04pBjWeRJfgBO6tI1Jrwl8gbtCuvSDSegqKVsGWQoTowYFCb6KZTvX6y5uLs7oS Xh3TsNmWRI7+CQ3zIbJwAJXZ58a3k1/Y059I6mybJ9yl1ZnmMxo0Cr32Y653nrLhu20q 6krw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752929951; x=1753534751; 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=/JoVVp/1dEwYFKjMizTTbcePYHh0h6/Nvf0h4n8x1Rs=; b=QeV2TYCLX+ZcM777OiKDVVAB1Zens2Y72Z7VcbPBRxe4cSlI54a+gl0Z9jKXyXDtPI x4QR1/1bDzlEUIA6pipqVIMzvzs4WitlYIKUdKnC8NNV0kWTaaWTh26xdylgY/H1e4DK o+s3arV3xgPiR6leGU7uBZGCZ45j5tK+15obj+KJX/m604zXegftP5X/jLHam7+uTfUU itnC+hScFZPumzjt/LqEpF41nLKh1mvNU1RS8dtdV/4BiHWEX4j80OgE5mRLdz8BfoBD BQjdWMIenhKuKCCKcXt1Is+5NEfXa66i6NAoxpG1H0vvCnc5VOzc6nVZs2qBv531qC9q IErA== X-Gm-Message-State: AOJu0YyFO8ccBhFB4lV/NKIQWhXQe0BXb7bN9G+x0eqwHdEAmT3qdFef dqfQLDbLqf22q2tpsp5bSE8q7PFSQUAdp190nPYdDNOKUDHgiGHXdcAwJ59lIB1KdHbNF+EwxMc Am2SXIE5Q6f7+ZKHUKdMHVTVc19F+rQJ6+TVE X-Gm-Gg: ASbGncv8nerFLOyFL3R8WP5UrBqnBo9X2Ws0ntzoyfzjtNgezAaPKb4+KLnYzA2koKn 3QJ+mId/VI8+OUBLGMfOa9w3rqqZ6c2alS5+Tl8/SeF8lBLugfMI+PQymVQYY7Gh2Bq8OPPyNzc NMVKoEFYsLQR/+5/TpKyNpZ8WbTbj7Cfh0pGP63WTFQ2o1899grLiTp6ImeX7cXNMx1s9M9wlhg OnHgSmWexb9MUY= X-Google-Smtp-Source: AGHT+IHqSqSxLQaWJff89rrKFJNDWKxVWk8Cznkh0el2QVZv5xcDflj8emfa+ipYWOL4oDjrgOv+2ngZ0JxqsjkfLik= X-Received: by 2002:a05:6214:54c2:b0:6f8:e66b:578e with SMTP id 6a1803df08f44-704f4ae20a2mr271092736d6.32.1752929951135; Sat, 19 Jul 2025 05:59:11 -0700 (PDT) MIME-Version: 1.0 References: <20250717085157.88889-1-vpalmisano@gmail.com> <20250719001553.GP29660@pb2> In-Reply-To: <20250719001553.GP29660@pb2> From: Vittorio Palmisano Date: Sat, 19 Jul 2025 14:58:44 +0200 X-Gm-Features: Ac12FXw64hOhPdo7v35gvjo5YcdI7_NG1mLr3DHHh3iqIXewVBdTrKaoyt_dXYk Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH] Whisper audio filter 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: SGksIEkndmUgYXBwbGllZCB0aGUgc3VnZ2VzdGVkIGNoYW5nZXMgYW5kIGNoYW5nZWQgdGhlIGNv bW1pdCBtZXNzYWdlCnRvIGZpeCB0aGUgcGF0Y2h3b3JrIHdhcm5pbmcuIExldCdzIGNvbnRpbnVl IHRoZSBkaXNjdXNzaW9uIHVuZGVyIHRoZQpuZXcgdGhyZWFkIChodHRwczovL2ZmbXBlZy5vcmcv cGlwZXJtYWlsL2ZmbXBlZy1kZXZlbC8yMDI1LUp1bHkvMzQ2ODUwLmh0bWwpLgoKT24gU2F0LCBK dWwgMTksIDIwMjUgYXQgMjoxNuKAr0FNIE1pY2hhZWwgTmllZGVybWF5ZXIKPG1pY2hhZWxAbmll ZGVybWF5ZXIuY2M+IHdyb3RlOgo+Cj4gSGkgVml0dG9yaW8KPgo+IE9uIFRodSwgSnVsIDE3LCAy MDI1IGF0IDEwOjUxOjU3QU0gKzAyMDAsIFZpdHRvcmlvIFBhbG1pc2FubyB3cm90ZToKPiA+IEl0 IGFkZHMgYSBuZXcgYXVkaW8gZmlsdGVyIGZvciBydW5uaW5nIGF1ZGlvIHRyYW5zY3JpcHRpb25z IHdpdGggdGhlIHdoaXNwZXIgbW9kZWwuCj4gPiBEb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlcyBh cmUgaW5jbHVkZWQgaW50byB0aGUgcGF0Y2guCj4gPgo+ID4gU2lnbmVkLW9mZi1ieTogVml0dG9y aW8gUGFsbWlzYW5vIDx2cGFsbWlzYW5vQGdtYWlsLmNvbT4KPiA+IC0tLQo+ID4gIGNvbmZpZ3Vy ZSAgICAgICAgICAgICAgICB8ICAgNSArCj4gPiAgZG9jL2ZpbHRlcnMudGV4aSAgICAgICAgIHwg MTA3ICsrKysrKysrKwo+ID4gIGxpYmF2ZmlsdGVyL01ha2VmaWxlICAgICB8ICAgMiArCj4gPiAg bGliYXZmaWx0ZXIvYWZfd2hpc3Blci5jIHwgNDUyICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwo+ID4gIGxpYmF2ZmlsdGVyL2FsbGZpbHRlcnMuYyB8ICAgMiArCj4gPiAg NSBmaWxlcyBjaGFuZ2VkLCA1NjggaW5zZXJ0aW9ucygrKQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCBsaWJhdmZpbHRlci9hZl93aGlzcGVyLmMKPiBbLi4uXQo+Cj4gPiArc3RhdGljIHZvaWQgY2Jf bG9nKGVudW0gZ2dtbF9sb2dfbGV2ZWwgbGV2ZWwsIGNvbnN0IGNoYXIgKnRleHQsIHZvaWQgKnVz ZXJfZGF0YSkKPiA+ICt7Cj4gPiArICAgIEFWRmlsdGVyQ29udGV4dCAqY3R4ID0gKEFWRmlsdGVy Q29udGV4dCAqKSB1c2VyX2RhdGE7Cj4gPiArICAgIHN3aXRjaCAobGV2ZWwpIHsKPiA+ICsgICAg Y2FzZSBHR01MX0xPR19MRVZFTF9FUlJPUjoKPiA+ICsgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xP R19FUlJPUiwgIiVzIiwgdGV4dCk7Cj4gPiArICAgICAgICBicmVhazsKPiA+ICsgICAgY2FzZSBH R01MX0xPR19MRVZFTF9XQVJOOgo+ID4gKyAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX1dBUk5J TkcsICIlcyIsIHRleHQpOwo+ID4gKyAgICAgICAgYnJlYWs7Cj4gPiArICAgIGNhc2UgR0dNTF9M T0dfTEVWRUxfSU5GTzoKPiA+ICsgICAgY2FzZSBHR01MX0xPR19MRVZFTF9ERUJVRzoKPiA+ICsg ICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19ERUJVRywgIiVzIiwgdGV4dCk7Cj4gPiArICAgICAg ICBicmVhazsKPiA+ICsgICAgfQo+ID4gK30KPgo+IHlvdSBjYW4gZmFjdG9yIHRoZSBmdW5jdGlv biBjYWxscyBvdXQgb2YgdGhlIHN3aXRjaC9jYXNlCj4KPgo+ID4gKwo+ID4gK3N0YXRpYyBpbnQg aW5pdChBVkZpbHRlckNvbnRleHQgKmN0eCkKPiA+ICt7Cj4gPiArICAgIFdoaXNwZXJDb250ZXh0 ICp3Y3R4ID0gY3R4LT5wcml2Owo+ID4gKwo+ID4gKyAgICBzdGF0aWMgQVZPbmNlIGluaXRfc3Rh dGljX29uY2UgPSBBVl9PTkNFX0lOSVQ7Cj4gPiArICAgIGZmX3RocmVhZF9vbmNlKCZpbml0X3N0 YXRpY19vbmNlLCBnZ21sX2JhY2tlbmRfbG9hZF9hbGwpOwo+ID4gKwo+ID4gKyAgICB3aGlzcGVy X2xvZ19zZXQoY2JfbG9nLCBjdHgpOwo+ID4gKwo+ID4gKyAgICAvLyBJbml0IHdoaXNwZXIgY29u dGV4dAo+ID4gKyAgICBpZiAoIXdjdHgtPm1vZGVsX3BhdGgpIHsKPiA+ICsgICAgICAgIGF2X2xv ZyhjdHgsIEFWX0xPR19FUlJPUiwgIk5vIHdoaXNwZXIgbW9kZWwgcGF0aCBzcGVjaWZpZWQuIFVz ZSB0aGUgJ21vZGVsJyBvcHRpb24uXG4iKTsKPiA+ICsgICAgICAgIHJldHVybiBBVkVSUk9SKEVJ TlZBTCk7Cj4gPiArICAgIH0KPiA+ICsKPiA+ICsgICAgc3RydWN0IHdoaXNwZXJfY29udGV4dF9w YXJhbXMgcGFyYW1zID0gd2hpc3Blcl9jb250ZXh0X2RlZmF1bHRfcGFyYW1zKCk7Cj4gPiArICAg IHBhcmFtcy51c2VfZ3B1ID0gd2N0eC0+dXNlX2dwdTsKPiA+ICsgICAgcGFyYW1zLmdwdV9kZXZp Y2UgPSB3Y3R4LT5ncHVfZGV2aWNlOwo+ID4gKwo+ID4gKyAgICB3Y3R4LT5jdHhfd3NwID0gd2hp c3Blcl9pbml0X2Zyb21fZmlsZV93aXRoX3BhcmFtcyh3Y3R4LT5tb2RlbF9wYXRoLCBwYXJhbXMp Owo+ID4gKyAgICBpZiAod2N0eC0+Y3R4X3dzcCA9PSBOVUxMKSB7Cj4gPiArICAgICAgICBhdl9s b2coY3R4LCBBVl9MT0dfRVJST1IsICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSB3aGlzcGVyIGNvbnRl eHQgZnJvbSBtb2RlbDogJXNcbiIsIHdjdHgtPm1vZGVsX3BhdGgpOwo+ID4gKyAgICAgICAgcmV0 dXJuIEFWRVJST1IoRUlPKTsKPiA+ICsgICAgfQo+ID4gKwo+ID4gKyAgICAvLyBJbml0IGJ1ZmZl cgo+Cj4gPiArICAgIHdjdHgtPmF1ZGlvX2J1ZmZlcl9xdWV1ZV9zaXplID0gV0hJU1BFUl9TQU1Q TEVfUkFURSAqIHdjdHgtPnF1ZXVlIC8gMTAwMDAwMDsKPgo+IFRoZSBtdWx0aXBsaWNhdGlvbiBj YW4gb3ZlcmZsb3cgYWxzbyB0aGUgMzJiaXQgb3V0cHV0IGNvdWxkIG92ZXJmbG93Cj4gYmVzdCBp cyBwcm9iYWJseSB0byBsaW1pdCBxdWV1ZSB0byBhIG1vcmUgcmVhc29uYWJsZSB2YWx1ZSB0aGFu IElOVDY0X01BWAo+Cj4KPiA+ICsgICAgd2N0eC0+YXVkaW9fYnVmZmVyID0gYXZfbWFsbG9jKHdj dHgtPmF1ZGlvX2J1ZmZlcl9xdWV1ZV9zaXplICogc2l6ZW9mKCp3Y3R4LT5hdWRpb19idWZmZXIp KTsKPgo+IGF2X2NhbGxvYygpIG9yIGF2X21hbGxvY19hcnJheSgpCj4KPgo+IFsuLi5dCj4gPiAr c3RhdGljIHZvaWQgcnVuX3RyYW5zY3JpcHRpb24oQVZGaWx0ZXJDb250ZXh0ICpjdHgsIEFWRGlj dGlvbmFyeSAqKm1ldGFkYXRhLCBpbnQgZW5kX3BvcykKPiA+ICt7Cj4gPiArICAgIFdoaXNwZXJD b250ZXh0ICp3Y3R4ID0gY3R4LT5wcml2Owo+ID4gKyAgICBlbmRfcG9zID0gRkZNQVgoMCwgRkZN SU4oZW5kX3Bvcywgd2N0eC0+YXVkaW9fYnVmZmVyX2ZpbGxfc2l6ZSkpOwo+ID4gKwo+ID4gKyAg ICBpZiAoIXdjdHgtPmN0eF93c3AgfHwgZW5kX3BvcyA9PSAwKQo+ID4gKyAgICAgICAgcmV0dXJu Owo+ID4gKwo+ID4gKyAgICBmbG9hdCBkdXJhdGlvbiA9IChmbG9hdCkgZW5kX3BvcyAvIFdISVNQ RVJfU0FNUExFX1JBVEU7Cj4gWy4uLl0KPgo+ID4gKyAgICB3Y3R4LT50aW1lc3RhbXAgKz0gZHVy YXRpb24gKiAxMDAwOwo+Cj4gZmxvYXRzIGFyZSBub3QgcHJlY2lzZSBhbmQgdGhlIGFjY3VtdWxh dGVkIHJvdW5kaW5nIGVycm9ycyB3aWxsCj4gYWRkIHVwIGFuZCBsZWFkIHRvIHN5bmNocm9uaXph dGlvbiBpc3N1ZXMgYmV0d2VlbiB0aGUgc3VidGl0bGVzCj4gYW5kIGF1ZGlvIG9yIHZpZGVvIG92 ZXIgYSBsb25nIGVub3VnaCB0aW1lc3Bhbgo+Cj4gQWxzbyBmb3IgcmVwcm9kdWNhYmlsaXR5IHRo aXMgc2hvdWxkIHVzZSBpbnRlZ2Vycwo+Cj4gd2hhdCB5b3UgY291bGQgZG8sIGlzIHRvIHVzZToK PiB3Y3R4LT50aW1lc3RhbXAgKz0gZW5kX3BvczsKPgo+IGFuZCB0aGVuIHJlcGxhY2UgZXZlcnkg dXNlIG9mIHdjdHgtPnRpbWVzdGFtcCBieSB3Y3R4LT50aW1lc3RhbXAgLyBXSElTUEVSX1NBTVBM RV9SQVRFCj4KPiBvciB3Y3R4LT50aW1lc3RhbXAgLyAoZG91YmxlKVdISVNQRVJfU0FNUExFX1JB VEUgaWYgdGhlIGNvbnRleHQgZGVtYW5kcyBhCj4gZG91YmxlIGZvciBleGFtcGxlCj4KPiB0aGF0 IHdheSB0aGUgY29kZSBpcyBleGFjdCBhbmQgbm8gZXJyb3JzIGFjY3VtdWxhdGUKPgo+Cj4gPiAr Cj4gPiArICAgIGlmIChtZXRhZGF0YSAmJiBzZWdtZW50c190ZXh0KSB7Cj4gPiArICAgICAgICBh dl9kaWN0X3NldChtZXRhZGF0YSwgImxhdmZpLndoaXNwZXIudGV4dCIsIHNlZ21lbnRzX3RleHQs IDApOwo+ID4gKyAgICAgICAgY2hhciAqZHVyYXRpb25fdGV4dCA9IGF2X2FzcHJpbnRmKCIlZiIs IGR1cmF0aW9uKTsKPiA+ICsgICAgICAgIGF2X2RpY3Rfc2V0KG1ldGFkYXRhLCAibGF2Zmkud2hp c3Blci5kdXJhdGlvbiIsIGR1cmF0aW9uX3RleHQsIEFWX0RJQ1RfRE9OVF9TVFJEVVBfVkFMKTsK PiA+ICsgICAgfQo+ID4gKyAgICBhdl9mcmVlcCgmc2VnbWVudHNfdGV4dCk7Cj4gPiArCj4gPiAr ICAgIG1lbWNweSh3Y3R4LT5hdWRpb19idWZmZXIsIHdjdHgtPmF1ZGlvX2J1ZmZlciArIGVuZF9w b3MsIGVuZF9wb3MgKiBzaXplb2YoKndjdHgtPmF1ZGlvX2J1ZmZlcikpOwo+ID4gKyAgICB3Y3R4 LT5hdWRpb19idWZmZXJfZmlsbF9zaXplIC09IGVuZF9wb3M7Cj4gPiArICAgIHdjdHgtPmF1ZGlv X2J1ZmZlcl92YWRfc2l6ZSA9IHdjdHgtPmF1ZGlvX2J1ZmZlcl9maWxsX3NpemU7Cj4gPiArfQo+ ID4gKwo+Cj4gPiArc3RhdGljIGludCBmaWx0ZXJfZnJhbWUoQVZGaWx0ZXJMaW5rICppbmxpbmss IEFWRnJhbWUgKmZyYW1lKQo+ID4gK3sKPiA+ICsgICAgQVZGaWx0ZXJDb250ZXh0ICpjdHggPSBp bmxpbmstPmRzdDsKPiA+ICsgICAgV2hpc3BlckNvbnRleHQgKndjdHggPSBjdHgtPnByaXY7Cj4g PiArICAgIEFWRmlsdGVyTGluayAqb3V0bGluayA9IGN0eC0+b3V0cHV0c1swXTsKPiA+ICsgICAg QVZEaWN0aW9uYXJ5ICoqbWV0YWRhdGEgPSAmZnJhbWUtPm1ldGFkYXRhOwo+ID4gKwo+ID4gKyAg ICBjb25zdCBpbnQgc2FtcGxlcyA9IGZyYW1lLT5uYl9zYW1wbGVzOwo+ID4gKyAgICBjb25zdCBm bG9hdCAqaW5wdXRfZGF0YSA9IChjb25zdCBmbG9hdCAqKSBmcmFtZS0+ZGF0YVswXTsKPiA+ICsK PiA+ICsgICAgaWYgKHdjdHgtPmF1ZGlvX2J1ZmZlcl9maWxsX3NpemUgKyBzYW1wbGVzID4gd2N0 eC0+YXVkaW9fYnVmZmVyX3F1ZXVlX3NpemUpIHsKPiA+ICsgICAgICAgIHJ1bl90cmFuc2NyaXB0 aW9uKGN0eCwgbWV0YWRhdGEsIHdjdHgtPmF1ZGlvX2J1ZmZlcl9maWxsX3NpemUpOwo+ID4gKyAg ICB9Cj4gPiArCj4gPiArICAgIG1lbWNweSh3Y3R4LT5hdWRpb19idWZmZXIgKyB3Y3R4LT5hdWRp b19idWZmZXJfZmlsbF9zaXplLCBpbnB1dF9kYXRhLCBzYW1wbGVzICogc2l6ZW9mKCp3Y3R4LT5h dWRpb19idWZmZXIpKTsKPiA+ICsgICAgd2N0eC0+YXVkaW9fYnVmZmVyX2ZpbGxfc2l6ZSArPSBz YW1wbGVzOwo+ID4gKwo+ID4gKyAgICBpZiAod2N0eC0+Y3R4X3ZhZAo+ID4gKyAgICAgICAgJiYg KHdjdHgtPmF1ZGlvX2J1ZmZlcl9maWxsX3NpemUgLSB3Y3R4LT5hdWRpb19idWZmZXJfdmFkX3Np emUpID49Cj4gPiArICAgICAgICBXSElTUEVSX1NBTVBMRV9SQVRFICogKHdjdHgtPnZhZF9taW5f c3BlZWNoX2R1cmF0aW9uICsgd2N0eC0+dmFkX21pbl9zaWxlbmNlX2R1cmF0aW9uKSAvIDEwMDAw MDApIHsKPiA+ICsgICAgICAgIHN0cnVjdCB3aGlzcGVyX3ZhZF9zZWdtZW50cyAqc2VnbWVudHMg PSB3aGlzcGVyX3ZhZF9zZWdtZW50c19mcm9tX3NhbXBsZXMod2N0eC0+Y3R4X3ZhZCwKPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgd2N0eC0+dmFkX3BhcmFtcywKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgd2N0eC0+YXVkaW9fYnVmZmVyLAo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB3Y3R4LT5hdWRpb19idWZmZXJfZmlsbF9zaXplKTsKPiA+ICsgICAgICAgIHdjdHgt PmF1ZGlvX2J1ZmZlcl92YWRfc2l6ZSA9IHdjdHgtPmF1ZGlvX2J1ZmZlcl9maWxsX3NpemU7Cj4g PiArCj4gPiArICAgICAgICBpZiAoIXNlZ21lbnRzKSB7Cj4gPiArICAgICAgICAgICAgYXZfbG9n KGN0eCwgQVZfTE9HX0VSUk9SLCAiZmFpbGVkIHRvIGRldGVjdCBWQURcbiIpOwo+ID4gKyAgICAg ICAgfSBlbHNlIHsKPiA+ICsgICAgICAgICAgICBpbnQgbl9zZWdtZW50cyA9IHdoaXNwZXJfdmFk X3NlZ21lbnRzX25fc2VnbWVudHMoc2VnbWVudHMpOwo+ID4gKwo+ID4gKyAgICAgICAgICAgIGlm IChuX3NlZ21lbnRzID4gMCkgewo+ID4gKyAgICAgICAgICAgICAgICBjb25zdCBmbG9hdCBzdGFy dF9tcyA9IHdoaXNwZXJfdmFkX3NlZ21lbnRzX2dldF9zZWdtZW50X3QwKHNlZ21lbnRzLCAwKSAq IDEwLjA7Cj4gPiArICAgICAgICAgICAgICAgIGNvbnN0IGZsb2F0IGVuZF9tcyA9IHdoaXNwZXJf dmFkX3NlZ21lbnRzX2dldF9zZWdtZW50X3QxKHNlZ21lbnRzLCBuX3NlZ21lbnRzIC0gMSkgKiAx MC4wOwo+ID4gKyAgICAgICAgICAgICAgICBpbnQgZW5kX3BvcyA9IChpbnQpIChlbmRfbXMgKiBX SElTUEVSX1NBTVBMRV9SQVRFIC8gMTAwMCk7Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgIGlm IChlbmRfcG9zIDw9IHdjdHgtPmF1ZGlvX2J1ZmZlcl9maWxsX3NpemUgLSBXSElTUEVSX1NBTVBM RV9SQVRFICogd2N0eC0+dmFkX21pbl9zaWxlbmNlX2R1cmF0aW9uIC8gMTAwMDAwMCkgewo+ID4g KyAgICAgICAgICAgICAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0lORk8sCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJWQUQgZGV0ZWN0ZWQgJWQgc2VnbWVudHMsIHN0YXJ0OiAl LjBmIG1zLCBlbmQ6ICUuMGYgbXMgKGJ1ZmZlcjogJWQgbXMpXG4iLAo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBuX3NlZ21lbnRzLCBzdGFydF9tcywgZW5kX21zLCAxMDAwICogd2N0 eC0+YXVkaW9fYnVmZmVyX2ZpbGxfc2l6ZSAvIFdISVNQRVJfU0FNUExFX1JBVEUpOwo+ID4gKyAg ICAgICAgICAgICAgICAgICAgcnVuX3RyYW5zY3JpcHRpb24oY3R4LCBtZXRhZGF0YSwgZW5kX3Bv cyk7Cj4gPiArICAgICAgICAgICAgICAgIH0KPiA+ICsgICAgICAgICAgICB9Cj4gPiArCj4gPiAr ICAgICAgICAgICAgd2hpc3Blcl92YWRfZnJlZV9zZWdtZW50cyhzZWdtZW50cyk7Cj4gPiArICAg ICAgICB9Cj4gPiArICAgIH0gZWxzZSBpZiAod2N0eC0+YXVkaW9fYnVmZmVyX2ZpbGxfc2l6ZSA+ PSB3Y3R4LT5hdWRpb19idWZmZXJfcXVldWVfc2l6ZSkKPiA+ICsgICAgICAgIHJ1bl90cmFuc2Ny aXB0aW9uKGN0eCwgbWV0YWRhdGEsIHdjdHgtPmF1ZGlvX2J1ZmZlcl9maWxsX3NpemUpOwo+ID4g Kwo+ID4gKyAgICB3Y3R4LT5uZXh0X3B0cyA9IGZyYW1lLT5wdHMgKyBhdl9yZXNjYWxlX3EoZnJh bWUtPm5iX3NhbXBsZXMsIChBVlJhdGlvbmFsKSB7Cj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAxLCBpbmxpbmstPnNhbXBsZV9yYXRlfQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBpbmxpbmstPnRp bWVfYmFzZSk7Cj4KPiBJIHRoaW5rIHlvdSBzaG91bGQgY29uc2lzdGVudGx5IHVzZSBzYW1wbGVz IG9yIGZyYW1lLT5uYl9zYW1wbGVzLCB0aGV5IGFyZSB0aGUgc2FtZQo+IHZhbHVlIGkgdGhpbmsK Pgo+IHRoeAo+Cj4gWy4uLl0KPiAtLQo+IE1pY2hhZWwgICAgIEdudVBHIGZpbmdlcnByaW50OiA5 RkYyMTI4QjE0N0VGNjczMEJBREYxMzM2MTFFQzc4NzA0MEIwRkFCCj4KPiBOZXZlciB0cnVzdCBh IGNvbXB1dGVyLCBvbmUgZGF5LCBpdCBtYXkgdGhpbmsgeW91IGFyZSB0aGUgdmlydXMuIC0tIENv bXBuCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBm Zm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPiBodHRw czovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKPgo+IFRvIHVuc3Vi c2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbAo+IGZmbXBlZy1kZXZlbC1yZXF1ZXN0 QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCgoKCi0tIAovVml0dG9yaW8g UGFsbWlzYW5vLwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBz Oi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3Jp YmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBl Zy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==