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 ESMTPS id A40CB4C62B for ; Sun, 9 Mar 2025 18:46:40 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 69DE968E687; Sun, 9 Mar 2025 20:46:36 +0200 (EET) Received: from mail-yw1-f179.google.com (mail-yw1-f179.google.com [209.85.128.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2692F68D0D9 for ; Sun, 9 Mar 2025 20:46:29 +0200 (EET) Received: by mail-yw1-f179.google.com with SMTP id 00721157ae682-6ef9b8b4f13so30309667b3.2 for ; Sun, 09 Mar 2025 11:46:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741545987; x=1742150787; darn=ffmpeg.org; h=mime-version:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=mP607apUDXYNWI7jjH0bqDASZCJxLbVJ8Eyt6NhefzQ=; b=Z4X8T5mHJu0kV16FuBGNl2hASbqQ3+GScrTt5M7tawUAXHpvKw4mXqxfMvQXyKVEwf juu0LhIEa5XEEL6V69s8CmlSvmyemJjyhR+lfSH4Mwe7nG7hzQxUqUyy5wpo0ym4mvmj Cixk+MlSLsmjCIEOzgPrfDwz9UrOA1UQv9R33du6PvJL/8hiq2g8e/hurpFUzkMXVGHJ bC6HWKbyrLg/Fa7LjHBg5pp3rWT0aD8yqBhpwlCz/MXI0sCCWH/hheT4uTDMSNHcmIWa sh+U8X/suYlsq2UfEbqleqHTtF9gyjoV2UwT8az+/ZgrDOPO6ui9ZoWr8g6DMCbmyd7f Eh0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741545987; x=1742150787; h=mime-version:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=mP607apUDXYNWI7jjH0bqDASZCJxLbVJ8Eyt6NhefzQ=; b=oYZDQgIaWouZFkUoCY9YBHsOm56L852wYX3Pmb6sVeWUyi47Q7ScQUnaqMHRIYwnkd s7Ag2HYjx63ERtzphMGIa3ilrRa3ruwmoHTteCuqV95rbYaKUUt3Rjvf16nWHhHiqHRf ON4FOhQ2u4DzSYm91DKnmv+GZlf5a9faAVAB0xI3W5liF4cYOv0ZJfKc7gNq471RZYkD wRthrMgu008onBAsLIT915+RG3/JbO4w4nOK43ST/NXXvXFYQhuyorM95P2lo59030ZE /C/vFLtcmGsDz5F7zpWeGtNZiv2MHGkKrfujju/O3iaDQIuiqSUp3CcFDzpZcU74Bbod OeQg== X-Gm-Message-State: AOJu0YyBMwGo2W5edHkHUYZGjU46ZzFDAaR9tz5cPvK3Y98ksVfq0OLZ 5LPpEnZDZ4UzZmYgWtGgtt51uma5DkFL7kGQb5MtrwhAR1gvTHzY5hv+WQ== X-Gm-Gg: ASbGncue3xhY8/JMf46W6y+WtMevEzG8G+n18Sp9BHQ1Ip31Kr/uJ9uOw4v1CQTJDoW oNIxIxBl4DomuzncmbGJcN6r0Jc5KKRq+KRX4O+FAIyM7QeXSwXX45t6aTGaRihG7vO8AMmQBKZ 3AnQpIxYWksLAvol9L9iqs9Tzlpi2I30Dz3efmaPYstLRvPG8eOfhlfFwNqqvzwjF5EgNHpbxey qtsWq0tMy9RauRITRuCQYyj8mLLYKWAOyJ9Tk5BOqKYFn/gI5GWPZ+Vl40ENI4BNbp/m1nUDWdp 7V8mxUMYgkIIpCHR+1mQnLlDebBvE+wNx7TTvS3+a2Hm8mWC9b9uU3K3n4MloAs5g18qY9+YDnz zz/JChD8VjlSsaM2LUk0/ekZWAguc7bEW2A== X-Google-Smtp-Source: AGHT+IE7c0KoKWo5NDIgtdQ03EnaEJqJqLaAZHgrk4QzUG5FY38NIPxW751SiWftMyW8C8/066JBOA== X-Received: by 2002:a05:690c:7090:b0:6fd:2fcf:12f5 with SMTP id 00721157ae682-6febf35c835mr154752547b3.27.1741545987054; Sun, 09 Mar 2025 11:46:27 -0700 (PDT) Received: from AS4PR03MB8436.eurprd03.prod.outlook.com ([2603:1026:c03:704b::5]) by smtp.gmail.com with ESMTPSA id 00721157ae682-6feb2c304b7sm17378367b3.92.2025.03.09.11.46.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Mar 2025 11:46:26 -0700 (PDT) From: Maximilian Kaindl To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH FFmpeg 1/15] libavutil: add detectionbbox util functions Thread-Index: AduQOERHTOCnyzHnS4K9or9LHo+23AAAh3/wADQCzYAABZ/pTQ== X-MS-Exchange-MessageSentRepresentingType: 1 Date: Sun, 9 Mar 2025 18:46:24 +0000 Message-ID: References: <007301db903a$7ea1afb0$7be50f10$@gmail.com> In-Reply-To: Accept-Language: en-US, de-DE Content-Language: en-GB X-MS-Has-Attach: X-MS-Exchange-Organization-SCL: -1 X-MS-TNEF-Correlator: X-MS-Exchange-Organization-RecordReviewCfmType: 0 x-ms-reactions: allow MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH FFmpeg 1/15] libavutil: add detectionbbox util functions 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: SGksDQoNCnRoYW5rIHlvdSBhbGwgZm9yIHRoZSBmYXN0IGZlZWRiYWNrLg0KDQpSZWdhcmRpbmcg dGhlIEdpdEh1YiByZWZlcmVuY2VzIGluIHRoZSBmb290ZXIsIEkgYXBvbG9naXplIGZvciB0aGUg b3Zlcmx5IHByb21vdGlvbmFsIG5hdHVyZSAtIHRoYXQgd2FzIG5vdCBteSBpbnRlbnRpb24uIEkg d2FzIHJ1c2hpbmcgdG8gcG9zdCBhbmQgaW1tZWRpYXRlbHkgcmVhbGl6ZWQgaXQgd2FzIGV4Y2Vz c2l2ZS4NCg0KUmVnYXJkaW5nIEx5bm5lJ3Mgc3VnZ2VzdGlvbiBhYm91dCByZWxvY2F0aW5nIGZ1 bmN0aW9ucyBmcm9tIHRoZSBkZXRlY3Rpb24gYm94IHRvIHRoZSBjbGFzc2lmeSBmaWx0ZXIgLSBJ IGhhZCBjb25zaWRlcmVkIHRoaXMgYXBwcm9hY2ggaW5pdGlhbGx5IGJ1dCBrZXB0IHRoZSBjb2Rl IGluIHRoZSBkZXRlY3Rpb24gYm94IGNsYXNzIHNpbmNlIHRoZSBjbGFzc2lmeSBmaWx0ZXIgZmls ZSBpcyBhbHJlYWR5IHF1aXRlIHN1YnN0YW50aWFsLiBXaGlsZSB0aGVzZSBmdW5jdGlvbnMgY291 bGQgdGhlb3JldGljYWxseSBiZSB1c2VkIGVsc2V3aGVyZSwgdGhhdCBpcyB1bmxpa2VseS4gSSBh bSBjb21mb3J0YWJsZSB3aXRoIGVpdGhlciBpbXBsZW1lbnRhdGlvbiBhcHByb2FjaC4NCg0KSSB3 aWxsIGZpeCB0aGUgZm9ybWF0dGluZyBpc3N1ZXMgaW4gdGhlIHBhdGNoZXMgcHJvbXB0bHkgYW5k IG1vdmUgdGhlIGNvZGUgdG8gdGhlIGNsYXNzaWZ5IGZpbHRlciBhcyBzdWdnZXN0ZWQuIFNpbmNl IG1vc3Qgb2YgdGhlIHBhdGNoZXMgbmVlZCBjb3JyZWN0aW9uLCBJIHdpbGwgc3VibWl0IGV2ZXJ5 dGhpbmcgYXMgYSB2MiBwYXRjaCBzZXQuDQoNCktpbmQgcmVnYXJkc+KAi+KAi+KAi+KAi+KAi+KA i+KAi+KAi+KAi+KAi+KAi+KAi+KAi+KAi+KAi+KAiw0KX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18NCkZyb206IGZmbXBlZy1kZXZlbCA8ZmZtcGVnLWRldmVsLWJvdW5jZXNAZmZtcGVn Lm9yZz4gb24gYmVoYWxmIG9mIEx5bm5lIDxkZXZAbHlubmUuZWU+DQpTZW50OiBTdW5kYXksIE1h cmNoIDksIDIwMjUgNDo0NjozMSBQTQ0KVG86IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnIDxmZm1w ZWctZGV2ZWxAZmZtcGVnLm9yZz4NClN1YmplY3Q6IFJlOiBbRkZtcGVnLWRldmVsXSBbUEFUQ0gg RkZtcGVnIDEvMTVdIGxpYmF2dXRpbDogYWRkIGRldGVjdGlvbmJib3ggdXRpbCBmdW5jdGlvbnMN Cg0KT24gMDgvMDMvMjAyNSAxNTo1OCwgbS5rYWluZGwwMjA4QGdtYWlsLmNvbSB3cm90ZToNCj4g VGhvc2UgZnVuY3Rpb25zIHdpbGwgYmUgdXNlZCBieSBjbGFzc2lmeSBpbiB0aGUgdXBjb21pbmcg cGF0Y2hlcy4NCj4NCj4gVHJ5IHRoZSBuZXcgZmlsdGVycyB1c2luZyBteSBHaXRodWIgUmVwbyBo dHRwczovL2dpdGh1Yi5jb20vTWF4aW1pbGlhbkthaW5kbC9EZWVwRkZNUEVHVmlkZW9DbGFzc2lm aWNhdGlvbi4NCj4NCj4gQW55IEZlZWRiYWNrIGlzIGFwcHJlY2lhdGVkIQ0KPg0KPiBTaWduZWQt b2ZmLWJ5OiBNYXhpbWlsaWFuS2FpbmRsIDxtLmthaW5kbDAyMDhAZ21haWwuY29tPg0KPiAtLS0N Cj4gICBsaWJhdnV0aWwvZGV0ZWN0aW9uX2Jib3guYyB8IDU0ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrDQo+ICAgbGliYXZ1dGlsL2RldGVjdGlvbl9iYm94LmggfCAzMSAr KysrKysrKysrKysrKysrKysrKysrDQo+ICAgMiBmaWxlcyBjaGFuZ2VkLCA4NSBpbnNlcnRpb25z KCspDQo+DQo+IGRpZmYgLS1naXQgYS9saWJhdnV0aWwvZGV0ZWN0aW9uX2Jib3guYyBiL2xpYmF2 dXRpbC9kZXRlY3Rpb25fYmJveC5jIGluZGV4IGNiMTU3YjM1NWIuLjM3ODIzMzEyMWQgMTAwNjQ0 DQo+IC0tLSBhL2xpYmF2dXRpbC9kZXRlY3Rpb25fYmJveC5jDQo+ICsrKyBiL2xpYmF2dXRpbC9k ZXRlY3Rpb25fYmJveC5jDQo+IEBAIC0xOCw2ICsxOCw3IEBADQo+DQo+ICAgI2luY2x1ZGUgImRl dGVjdGlvbl9iYm94LmgiDQo+ICAgI2luY2x1ZGUgIm1lbS5oIg0KPiArI2luY2x1ZGUgImxpYmF2 dXRpbC9hdnN0cmluZy5oIg0KPg0KPiAgIEFWRGV0ZWN0aW9uQkJveEhlYWRlciAqYXZfZGV0ZWN0 aW9uX2Jib3hfYWxsb2ModWludDMyX3QgbmJfYmJveGVzLCBzaXplX3QgKm91dF9zaXplKSAgeyBA QCAtNzEsMyArNzIsNTYgQEAgQVZEZXRlY3Rpb25CQm94SGVhZGVyICphdl9kZXRlY3Rpb25fYmJv eF9jcmVhdGVfc2lkZV9kYXRhKEFWRnJhbWUgKmZyYW1lLCB1aW50MzINCj4NCj4gICAgICAgcmV0 dXJuIGhlYWRlcjsNCj4gICB9DQo+ICsNCj4gK2ludCBhdl9kZXRlY3Rpb25fYmJveF9maWxsX3dp dGhfYmVzdF9sYWJlbHMoY2hhciAqKmxhYmVscywgZmxvYXQNCj4gKypwcm9iYWJpbGl0aWVzLCBp bnQgbnVtX2xhYmVscywgQVZEZXRlY3Rpb25CQm94ICpiYm94LCBpbnQgbWF4X2NsYXNzZXNfcGVy X2JveCwgZmxvYXQgY29uZmlkZW5jZV90aHJlc2hvbGQpIHsNCj4gKyAgICBpbnQgaSwgaiwgbWlu cG9zLCByZXQ7DQo+ICsgICAgZmxvYXQgbWluOw0KPiArDQo+ICsgICAgaWYgKCFsYWJlbHMgfHwg IXByb2JhYmlsaXRpZXMgfHwgIWJib3gpIHsNCj4gKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlO VkFMKTsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX2xhYmVsczsg aSsrKSB7DQo+ICsgICAgICAgIGlmIChwcm9iYWJpbGl0aWVzW2ldID49IGNvbmZpZGVuY2VfdGhy ZXNob2xkKSB7DQo+ICsgICAgICAgICAgICBpZiAoYmJveC0+Y2xhc3NpZnlfY291bnQgPj0gbWF4 X2NsYXNzZXNfcGVyX2JveCkgew0KPiArICAgICAgICAgICAgICAgIC8vIEZpbmQgbG93ZXN0IHBy b2JhYmlsaXR5IGNsYXNzaWZpY2F0aW9uDQo+ICsgICAgICAgICAgICAgICAgbWluID0gYXZfcTJk KGJib3gtPmNsYXNzaWZ5X2NvbmZpZGVuY2VzWzBdKTsNCj4gKyAgICAgICAgICAgICAgICBtaW5w b3MgPSAwOw0KPiArICAgICAgICAgICAgICAgIGZvciAoaiA9IDE7IGogPCBiYm94LT5jbGFzc2lm eV9jb3VudDsgaisrKSB7DQo+ICsgICAgICAgICAgICAgICAgICAgIGZsb2F0IHByb2IgPSBhdl9x MmQoYmJveC0+Y2xhc3NpZnlfY29uZmlkZW5jZXNbal0pOw0KPiArICAgICAgICAgICAgICAgICAg ICBpZiAocHJvYiA8IG1pbikgew0KPiArICAgICAgICAgICAgICAgICAgICAgICAgbWluID0gcHJv YjsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIG1pbnBvcyA9IGo7DQo+ICsgICAgICAgICAg ICAgICAgICAgIH0NCj4gKyAgICAgICAgICAgICAgICB9DQo+ICsNCj4gKyAgICAgICAgICAgICAg ICBpZiAocHJvYmFiaWxpdGllc1tpXSA+IG1pbikgew0KPiArICAgICAgICAgICAgICAgICAgICBy ZXQgPSBhdl9kZXRlY3Rpb25fYmJveF9zZXRfY29udGVudChiYm94LCBsYWJlbHNbaV0sIG1pbnBv cywgcHJvYmFiaWxpdGllc1tpXSk7DQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIChyZXQgPCAw KQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gKyAgICAgICAgICAg ICAgICB9DQo+ICsgICAgICAgICAgICB9IGVsc2Ugew0KPiArICAgICAgICAgICAgICAgIHJldCA9 IGF2X2RldGVjdGlvbl9iYm94X3NldF9jb250ZW50KGJib3gsIGxhYmVsc1tpXSwgYmJveC0+Y2xh c3NpZnlfY291bnQsIHByb2JhYmlsaXRpZXNbaV0pOw0KPiArICAgICAgICAgICAgICAgIGlmIChy ZXQgPCAwKQ0KPiArICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiArICAgICAgICAg ICAgICAgIGJib3gtPmNsYXNzaWZ5X2NvdW50Kys7DQo+ICsgICAgICAgICAgICB9DQo+ICsgICAg ICAgIH0NCj4gKyAgICB9DQo+ICsgICAgcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK2ludCBhdl9k ZXRlY3Rpb25fYmJveF9zZXRfY29udGVudChBVkRldGVjdGlvbkJCb3ggKmJib3gsIGNoYXIgKmxh YmVsLA0KPiAraW50IGluZGV4LCBmbG9hdCBwcm9iYWJpbGl0eSkgew0KPiArICAgIC8vIFNldCBw cm9iYWJpbGl0eQ0KPiArICAgIGJib3gtPmNsYXNzaWZ5X2NvbmZpZGVuY2VzW2luZGV4XSA9IGF2 X21ha2VfcSgoaW50KShwcm9iYWJpbGl0eSAqDQo+ICsxMDAwMCksIDEwMDAwKTsNCj4gKw0KPiAr ICAgIC8vIENvcHkgbGFiZWwgd2l0aCBzaXplIGNoZWNraW5nDQo+ICsgICAgaWYgKGF2X3N0cmxj cHkoYmJveC0+Y2xhc3NpZnlfbGFiZWxzW2luZGV4XSwgbGFiZWwsIEFWX0RFVEVDVElPTl9CQk9Y X0xBQkVMX05BTUVfTUFYX1NJWkUpID49DQo+ICsgICAgICAgIEFWX0RFVEVDVElPTl9CQk9YX0xB QkVMX05BTUVfTUFYX1NJWkUpIHsNCj4gKyAgICAgICAgYXZfbG9nKE5VTEwsIEFWX0xPR19XQVJO SU5HLCAiTGFiZWwgdHJ1bmNhdGVkIGluIHNldF9wcm9iX2FuZF9sYWJlbF9vZl9iYm94XG4iKTsN Cj4gKyAgICB9DQo+ICsNCj4gKyAgICByZXR1cm4gMDsNCj4gK30NCj4gZGlmZiAtLWdpdCBhL2xp YmF2dXRpbC9kZXRlY3Rpb25fYmJveC5oIGIvbGliYXZ1dGlsL2RldGVjdGlvbl9iYm94LmggaW5k ZXggMDExOTg4MDUyYy4uMjdkNzQ5YWQ1OSAxMDA2NDQNCj4gLS0tIGEvbGliYXZ1dGlsL2RldGVj dGlvbl9iYm94LmgNCj4gKysrIGIvbGliYXZ1dGlsL2RldGVjdGlvbl9iYm94LmgNCj4gQEAgLTEw NSw0ICsxMDUsMzUgQEAgQVZEZXRlY3Rpb25CQm94SGVhZGVyICphdl9kZXRlY3Rpb25fYmJveF9h bGxvYyh1aW50MzJfdCBuYl9iYm94ZXMsIHNpemVfdCAqb3V0X3MNCj4gICAgKiBBVl9GUkFNRV9E QVRBX0RFVEVDVElPTl9CQk9YRVMgYW5kIGluaXRpYWxpemVzIHRoZSB2YXJpYWJsZXMuDQo+ICAg ICovDQo+ICAgQVZEZXRlY3Rpb25CQm94SGVhZGVyICphdl9kZXRlY3Rpb25fYmJveF9jcmVhdGVf c2lkZV9kYXRhKEFWRnJhbWUgKmZyYW1lLCB1aW50MzJfdCBuYl9iYm94ZXMpOw0KPiArDQo+ICsv KioNCj4gKyAqIEZpbGxzIGFuIEFWRGV0ZWN0aW9uQkJveCBzdHJ1Y3R1cmUgd2l0aCB0aGUgYmVz dCBsYWJlbHMgYmFzZWQgb24gcHJvYmFiaWxpdGllcy4NCj4gKyAqDQo+ICsgKiBUaGlzIGZ1bmN0 aW9uIHNlbGVjdHMgdXAgdG8gbWF4X2NsYXNzZXNfcGVyX2JveCBsYWJlbHMgd2l0aCB0aGUNCj4g K2hpZ2hlc3QgcHJvYmFiaWxpdGllcw0KPiArICogdGhhdCBleGNlZWQgdGhlIGdpdmVuIGNvbmZp ZGVuY2UgdGhyZXNob2xkLCBhbmQgYXNzaWducyB0aGVtIHRvIHRoZSBib3VuZGluZyBib3guDQo+ ICsgKg0KPiArICogQHBhcmFtIGxhYmVscyBBcnJheSBvZiBsYWJlbCBzdHJpbmdzDQo+ICsgKiBA cGFyYW0gcHJvYmFiaWxpdGllcyBBcnJheSBvZiBwcm9iYWJpbGl0eSB2YWx1ZXMgY29ycmVzcG9u ZGluZyB0bw0KPiArZWFjaCBsYWJlbA0KPiArICogQHBhcmFtIG51bV9sYWJlbHMgTnVtYmVyIG9m IGVsZW1lbnRzIGluIHRoZSBsYWJlbHMgYW5kIHByb2JhYmlsaXRpZXMNCj4gK2FycmF5cw0KPiAr ICogQHBhcmFtIGJib3ggUG9pbnRlciB0byB0aGUgQVZEZXRlY3Rpb25CQm94IHN0cnVjdHVyZSB0 byBiZSBmaWxsZWQNCj4gKyAqIEBwYXJhbSBtYXhfY2xhc3Nlc19wZXJfYm94IE1heGltdW0gbnVt YmVyIG9mIGNsYXNzZXMgdG8gYXNzaWduIHRvDQo+ICt0aGUgYm91bmRpbmcgYm94DQo+ICsgKiBA cGFyYW0gY29uZmlkZW5jZV90aHJlc2hvbGQgTWluaW11bSBwcm9iYWJpbGl0eSB2YWx1ZSByZXF1 aXJlZCBmb3IgYQ0KPiArbGFiZWwgdG8gYmUgY29uc2lkZXJlZA0KPiArICogQHJldHVybiAwIG9u IHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZSAgKi8gaW50DQo+ICthdl9k ZXRlY3Rpb25fYmJveF9maWxsX3dpdGhfYmVzdF9sYWJlbHMoY2hhciAqKmxhYmVscywgZmxvYXQN Cj4gKypwcm9iYWJpbGl0aWVzLCBpbnQgbnVtX2xhYmVscywgQVZEZXRlY3Rpb25CQm94ICpiYm94 LCBpbnQNCj4gK21heF9jbGFzc2VzX3Blcl9ib3gsIGZsb2F0IGNvbmZpZGVuY2VfdGhyZXNob2xk KTsNCj4gKw0KPiArLyoqDQo+ICsgKiBTZXRzIHRoZSBjb250ZW50IG9mIGFuIEFWRGV0ZWN0aW9u QkJveCBhdCB0aGUgc3BlY2lmaWVkIGluZGV4Lg0KPiArICoNCj4gKyAqIFRoaXMgZnVuY3Rpb24g YXNzaWducyBhIGxhYmVsIGFuZCBpdHMgYXNzb2NpYXRlZCBwcm9iYWJpbGl0eSB0byB0aGUNCj4g K3NwZWNpZmllZCBpbmRleA0KPiArICogaW4gdGhlIGJvdW5kaW5nIGJveCdzIGludGVybmFsIHN0 b3JhZ2UuDQo+ICsgKg0KPiArICogQHBhcmFtIGJib3ggUG9pbnRlciB0byB0aGUgQVZEZXRlY3Rp b25CQm94IHN0cnVjdHVyZSB0byBtb2RpZnkNCj4gKyAqIEBwYXJhbSBsYWJlbCBUaGUgY2xhc3Mg bGFiZWwgdG8gYXNzaWduICh3aWxsIGJlIGNvcGllZCBpbnRlcm5hbGx5KQ0KPiArICogQHBhcmFt IGluZGV4IFRoZSBpbmRleCBhdCB3aGljaCB0byBzdG9yZSB0aGUgbGFiZWwgYW5kIHByb2JhYmls aXR5DQo+ICsgKiBAcGFyYW0gcHJvYmFiaWxpdHkgVGhlIGNvbmZpZGVuY2Ugc2NvcmUvcHJvYmFi aWxpdHkgZm9yIHRoaXMgbGFiZWwNCj4gKyAqIEByZXR1cm4gMCBvbiBzdWNjZXNzDQo+ICsgKi8N Cj4gK2ludCBhdl9kZXRlY3Rpb25fYmJveF9zZXRfY29udGVudChBVkRldGVjdGlvbkJCb3ggKmJi b3gsIGNoYXIgKmxhYmVsLA0KPiAraW50IGluZGV4LCBmbG9hdCBwcm9iYWJpbGl0eSk7DQoNClRo aXMgaXMgb3V0c2lkZSB0aGUgc2NvcGUgb2YgdGhlIGZpbGUgSU1PLiBOb3Qgc29tZXRoaW5nIHRo YXQgc2hvdWxkIGJlDQppbiB0aGUgcHVibGljIEFQSS4NCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fDQpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0DQpmZm1w ZWctZGV2ZWxAZmZtcGVnLm9yZw0KaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8v ZmZtcGVnLWRldmVsDQoNClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFp bA0KZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2Ny aWJlIi4NCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZm bXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9m Zm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwg dmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9y ZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K