From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 55B47C54E90 for ; Wed, 21 May 2025 19:05:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=lrpznwLeH6moyklCQZ4NGCmSsZXm+jD4Ju+x15NJjuI=; b=pVC+e9/LNrY5vq jOr3J6LKXzeFFEiJlcC9xdnpP3+mEoKLPE2F/2PrROW05vE1TYFKbUv2mbjUHDsjYsHIj77BwHTf5 EM2QDpCMqtSdF1M5yRnLJ8yRkDrXQHbGPZJOe7wW4rWLOyC3SvwvbS/Muto7cGsrvVMqG1bH4gTt6 tmgXw541hU8EjEFrJjSRvpzLf4z7w4N+X75G6UkSoQGsTubE7hqTqtJQWeOd4ELfxHZG9vwAZsgIi IQM9WHkCo2Et0SevvhYV5h2pR2Xhx8CVCFIrv5Krrk91mhkdHTVlnOWoYdT9Zp6+kbj6bipCkIceI NSJk08WbQ+jypxiYjtNA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uHokv-0000000GhaN-1TvT; Wed, 21 May 2025 19:05:33 +0000 Received: from perceval.ideasonboard.com ([213.167.242.64]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uHoij-0000000GhPC-1MWF; Wed, 21 May 2025 19:03:18 +0000 Received: from pendragon.ideasonboard.com (179.218-130-109.adsl-dyn.isp.belgacom.be [109.130.218.179]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 01FD36AF; Wed, 21 May 2025 21:02:52 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1747854173; bh=vPvuwM/u6pIaMk4JleeZDQfpq6e7V/QhYzjGPzUWzvU=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=b2z2+Tyww+BF+od3NVjTp2B0clH/Tgpur5Oa7hsMZDItXAFI7fJ7LGL4PZr9IZrXk spTxfIW7+zUmBa3KN3286SE5SoeKNG1AzVLCfiAVx8wfgAXRaqAJABKFIwuViNMDGw kbahZi1oSnS+ziSLw/Qks9hTKeTtMqYOQD2bXpHU= Date: Wed, 21 May 2025 21:03:08 +0200 From: Laurent Pinchart To: Paul Elder Cc: Krzysztof =?utf-8?Q?Ha=C5=82asa?= , Dafna Hirschfeld , Mauro Carvalho Chehab , Heiko Stuebner , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Jacopo Mondi , Ondrej Jirman , Tomi Valkeinen , stefan.klug@ideasonboard.com Subject: Re: [PATCH] RKISP1: correct histogram window size Message-ID: <20250521190308.GB6792@pendragon.ideasonboard.com> References: <20250521101042.GC12514@pendragon.ideasonboard.com> <174784811736.14042.11404187248848039485@calcite> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <174784811736.14042.11404187248848039485@calcite> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250521_120317_830439_DC1984E3 X-CRM114-Status: GOOD ( 49.77 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org T24gV2VkLCBNYXkgMjEsIDIwMjUgYXQgMDc6MjE6NTdQTSArMDIwMCwgUGF1bCBFbGRlciB3cm90 ZToKPiBRdW90aW5nIExhdXJlbnQgUGluY2hhcnQgKDIwMjUtMDUtMjEgMTI6MTA6NDIpCj4gPiBP biBUdWUsIE1heSAyMCwgMjAyNSBhdCAwMzoyNjo1OFBNICswMjAwLCBLcnp5c3p0b2YgSGHFgmFz YSB3cm90ZToKPiA+ID4gUGF1bCBFbGRlciA8cGF1bC5lbGRlckBpZGVhc29uYm9hcmQuY29tPiB3 cml0ZXM6Cj4gPiA+IAo+ID4gPiA+PiBXaXRob3V0IHRoZSBwYXRjaCAoaS5NWDhNUCwgYWxsLXdo aXRlIFJHR0ItMTIgZnVsbCBIRCBpbnB1dCBmcm9tCj4gPiA+ID4+IHRoZSBzZW5zb3IsIFlVViBO VjEyIG91dHB1dCBmcm9tIElTUCwgZnVsbCByYW5nZSwgaGlzdG9ncmFtIFkgbW9kZSkuCj4gPiA+ ID4+IEhJU1RfU1RFUFNJWkUgPSAzIChsb3dlc3QgcGVybWl0dGVkKToKPiA+ID4gPgo+ID4gPiA+ IEFjY29yZGluZyB0byB0aGUgZGF0YXNoZWV0LCB0aGUgaGlzdG9ncmFtIGJpbnMgYXJlIDE2LWJp dCBpbnRlZ2VyIHdpdGggYQo+ID4gPiA+IDQtYml0IGZyYWN0aW9uYWwgcGFydC4gVG8gcHJldmVu dCBvdmVyZmxvd2luZyB0aGUgMTYtYml0IGludGVnZXIKPiA+ID4gPiBjb3VudGVyLCB0aGUgc3Rl cCBzaXplIHNob3VsZCBiZSAxMC4KPiA+IAo+ID4gVGhhdCB3b3VsZCBiZSBmb3IgY29tYmluZWQg UkdCIG1vZGUsIGFzIGV2ZXJ5IHBpeGVsIGlzIGFjY291bnRlZCBmb3IKPiA+IHRocmVlIHRpbWVz IGluIHRoYXQgbW9kZS4gSW4gb3RoZXIgbW9kZXMsIGEgc3RlcCBzaXplIG9mIDggc2hvdWxkIGJl Cj4gPiBmaW5lLgo+IAo+IEFoLCByaWdodC4KPiAKPiA+ID4gPgo+ID4gPiA+IERvIHlvdSBoYXZl IGFueSBvdGhlciBpbmZvcm1hdGlvbiBvbiB0aGlzPyBJcyBpdCBrbm93biB0aGF0IGl0J3Mgc3Rh YmxlCj4gPiA+ID4gYW5kIGNvbnNpc3RlbnQgdG8gdXNlIGFsbCAyMCBiaXRzIGFueXdheT8KPiA+ IAo+ID4gVGhlIGRvY3VtZW50YXRpb24gc3RhdGVzIHRoYXQgdGhlIHdpZHRoIG9mIHRoZSBiaW4g Y291bnRlciByZWdpc3RlcnMgaXMKPiA+IDIwIGJpdHMgd2lkZSBpbmNsdWRpbmcgYSA0LWJpdCBm cmFjdGlvbmFsIHBhcnQsIGFuZCB0aGF0IHRoZSBzb2Z0d2FyZQo+ID4gc2hvdWxkIHVzZSBvbmx5 IHRoZSB1cHBlciAxNiBiaXRzIG9mIHRoZSBiaW4gY291bnRlcnMuIFRoZSBmcmFjdGlvbmFsCj4g PiBwYXJ0IGlzIGNhdXNlZCBieSB0aGUgd2VpZ2h0cy4gVGhlcmUncyBhIGNvcnJlc3BvbmRpbmcg dG9kbyBjb21tZW50IGluCj4gPiBsaWJjYW1lcmE6Cj4gPiAKPiA+ICAgICAgICAgLi4uCj4gPiAg ICAgICAgICAqCj4gPiAgICAgICAgICAqIFx0b2RvIFRha2UgaW50byBhY2NvdW50IHdlaWdodHMu IFRoYXQgaXMsIGlmIHRoZSB3ZWlnaHRzIGFyZSBsb3cKPiA+ICAgICAgICAgICogZW5vdWdoIHdl IGNhbiBwb3RlbnRpYWxseSByZWR1Y2UgdGhlIHByZWRpdmlkZXIgdG8gaW5jcmVhc2UKPiA+ICAg ICAgICAgICogcHJlY2lzaW9uLiBUaGlzIG5lZWRzIHNvbWUgaW52ZXN0aWdhdGlvbiBob3dldmVy LCBhcyB0aGlzIGhhcmR3YXJlCj4gPiAgICAgICAgICAqIGJlaGF2aW9yIGlzIHVuZG9jdW1lbnRl ZCBhbmQgaXMgb25seSBhbiBlZHVjYXRlZCBndWVzcy4KPiA+ICAgICAgICAgICovCj4gPiAgICAg ICAgIGludCBjb3VudCA9IG1vZGUgPT0gUktJU1AxX0NJRl9JU1BfSElTVE9HUkFNX01PREVfUkdC X0NPTUJJTkVEID8gMyA6IDE7Cj4gPiAgICAgICAgIGRvdWJsZSBmYWN0b3IgPSBzaXplLndpZHRo ICogc2l6ZS5oZWlnaHQgKiBjb3VudCAvIDY1NTM2LjA7Cj4gPiAgICAgICAgIGRvdWJsZSByb290 ID0gc3RkOjpzcXJ0KGZhY3Rvcik7Cj4gPiAgICAgICAgIHVpbnQ4X3QgcHJlZGl2aWRlciA9IHN0 YXRpY19jYXN0PHVpbnQ4X3Q+KHN0ZDo6Y2VpbChyb290KSk7Cj4gPiAKPiA+ICAgICAgICAgcmV0 dXJuIHN0ZDo6Y2xhbXA8dWludDhfdD4ocHJlZGl2aWRlciwgMywgMTI3KTsKPiA+IAo+ID4gbGli Y2FtZXJhIHNldHMgdGhlIGRlZmF1bHQgd2VpZ2h0cyB0byAxLCBhbmQgZGlzY2FyZHMgdGhlIDQg ZnJhY3Rpb25hbAo+ID4gYml0cy4gSXQgc2VlbXMgdGhhdCB0aGUgCj4gCj4gKHdoYXQgZGlkIHlv dSBtZWFuIHRvIGZpbmlzaCBzYXlpbmcuLi4/KQoKT29wcy4gSWdub3JlIHRoYXQsIEkgc3BsaXQg bXkgcmVhc29uaW5nIHRvIHR3byBwYXJhZ3JhcGhzIGFuZCBmb3Jnb3QgdG8KZGVsZXRlIHRoYXQg aGFsZiBsaW5lLgoKPiA+IEkgZXhwZWN0IHRoYXQgZWFjaCBwaXhlbCBjb250cmlidXRlcyB0byBp dHMgYmluIGJ5IGFkZGluZyB0aGUgd2VpZ2h0Cj4gPiB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIGl0 cyB6b25lLiBTZXR0aW5nIGFsbCB3ZWlnaHRzIHRvIDEsIEkgd291bGQKPiA+IGV4cGVjdCB0aGF0 IHRoZSA0IGZyYWN0aW9uYWwgYml0cyBjb3VsZCBiZSB1c2VkIHRvIGluY3JlYXNlIHRoZSBiaW4g c2l6ZQo+ID4gdG8gMTA0ODU3NSBwaXhlbHMgKDIwIGJpdHMpLCBhbmQgdGhlcmVmb3JlIGRlY3Jl YXNlIHRoZSBwcmVkaXZpZGVyIGZyb20KPiA+IDEwIHRvIDMuCj4gCj4gVHJ1ZS4gSSBzdXBwb3Nl IGlmIGFsbCB0aGUgd2VpZ2h0cyBhcmUgMSB0aGVuIHdlIGNhbiBzcXVlZXplIG91dCBtb3JlIGJp dAo+IHByZWNpc2lvbiB0aGVuLiBCdXQgdGhhdCdzIGEgdG9kbyBmb3IgbGliY2FtZXJhLgo+IAo+ ID4gPiBJbnRlcmVzdGluZy4gSSBvbmx5IGhhdmUgdGhvc2UgbXJ2XyouaCBmaWxlcyB3aGljaCBj b21lIHdpdGgKPiA+ID4gaXNwLWlteC00LjIuMi4qIHBhY2thZ2UocykuIEhlcmUgd2UgaGF2ZSAo YW1vbmcgb3RoZXJzKToKPiA+ID4gCj4gPiA+IC8qISBSZWdpc3RlcjogaXNwX2hpc3RfcHJvcDog SGlzdG9ncmFtIHByb3BlcnRpZXMgKDB4MDAwMDAwMDApKi8KPiA+ID4gLyohIFNsaWNlOiBzdGVw c2l6ZToqLwo+ID4gPiAvKiEgaGlzdG9ncmFtIHByZWRpdmlkZXIsIHByb2Nlc3MgZXZlcnkgKHN0 ZXBzaXplKXRoIHBpeGVsLCBhbGwgb3RoZXIgcGl4ZWxzIGFyZSBza2lwcGVkICovCj4gPiA+IC8q IDAsMSwyOiBub3QgYWxsb3dlZCAqLwo+ID4gPiAvKiAzOiBwcm9jZXNzIGV2ZXJ5IHRoaXJkIGlu cHV0IHBpeGVsICovCj4gPiA+IC8qIDQ6IHByb2Nlc3MgZXZlcnkgZm91cnRoIGlucHV0IHBpeGVs ICovCj4gPiA+IC8qIC4uLiovCj4gPiA+IC8qIDdGSDogcHJvY2VzcyBldmVyeSAxMjd0aCBwaXhl bCAqLwo+ID4gPiAjZGVmaW5lIE1SVl9ISVNUX1NURVBTSVpFX01BU0sgMHgwMDAwMDNGOAo+ID4g PiAjZGVmaW5lIE1SVl9ISVNUX1NURVBTSVpFX1NISUZUIDMKPiA+ID4gCj4gPiA+IEluIGNhc2Ug b2YgbXkgSU1YMjkwIDE5MjB4MTA4MCBzZW5zb3IsIDEgZG9lc24ndCB3b3JrIHdlbGwgKGl0IHN0 b3BzCj4gPiA+IGNvdW50aW5nIGJlZm9yZSByZWFjaGluZyAkKCgxOTIweDEwODApKSBpbiBlYWNo IGJpbiwgYW5kIGV2ZW4gaWYgbm8gYmluCj4gPiA+IHJlYWNoZXMgdGhpcyBtYWdpYyB2YWx1ZSwg dGhlIHRvdGFsIGNvdW50IG1heSBiZSBpbnZhbGlkIChub3QgZXF1YWwgdG8KPiA+ID4gdGhlIG51 bWJlciBvZiBwaXhlbHMpLiBJSVJDLCAyIHdvcmtlZCB3ZWxsLiBNYXliZSB3aXRoIGhpZ2hlcgo+ ID4gPiByZXNvbHV0aW9ucywgSSBkb24ndCBrbm93Lgo+ID4gPiAKPiA+ID4gSSdtIGN1cnJlbnRs eSB1c2luZyAiMyIgcGVyIHRoZSAuaCBmaWxlOgo+ID4gPiBpc3BfaGlzdF9wcm9wOgo+ID4gPiAz MkUxMjQwMDogMURoCj4gPiA+IGhpc3RvZ3JhbV9tZWFzdXJlbWVudF9yZXN1bHQ6Cj4gPiA+IDMy RTEyNDE0OiAwIDAgMSAxMDA0IDU2OSA0NzYgNjMzIDExOTcgMjM3MyAyMjEyIDE5MjMgMjk0NSAz NjMyIDMwMjUgNTgyMSAyMDQ1ODkKPiA+ID4gd2hpY2ggc3VtcyB0byA1MTg0MDAgPSAxOTIwKjEw ODAvOS4KPiA+ID4gCj4gPiA+IFNldHRpbmcgIjIiLCB0aGUgc2FtZSBpbnB1dCBzY2VuZToKPiA+ ID4gMzJFMTI0MDA6IDE1aAo+ID4gPiAzMkUxMjQxNDogMCAwIDAgMjE5NCAxMjYzIDEwOTYgMTQw NiAyNTI4IDUyMjggNTA1MiA0MjkxIDYzNTQgODMyMiA2OTQzIDEzMjAxIDQ2MDUyMgo+ID4gPiB3 aGljaCBzdW1zIHRvIDUxODQwMCA9IDE5MjAqMTA4MC80Lgo+IAo+IFllcywgdGhlc2UgbG9vayBn b29kIChhbHRob3VnaCBJIHRoaW5rIHlvdSBtaWdodCd2ZSBjb3B5JnBhc3RlZCB0aGUgd3JvbmcK PiBudW1iZXIgZm9yIHRoZSBzdW0pCj4gCj4gPiA+IFNldHRpbmcgIjEiLCB0aGUgc2FtZSBpbnB1 dCBzY2VuZToKPiA+ID4gMzJFMTI0MDA6IERoCj4gPiA+IDMyRTEyNDE0OiAwIDAgMjUgOTA0NiA0 OTI0IDQzMTcgNTQzNSAxMDY1NSAyMDc4MSAxODk2NSAxNjA1MSAyNDcxNiAzMjY4MSAyODM2OCA1 NDMwMSAxMDQ4NTU5Cj4gPiA+IHdoaWNoIHN1bXMgdG8gMTI3ODgyNCB3aGljaCBpcyByYXRoZXIg bGVzcyB0aGFuIDIwNzM2MDAuCj4gPiA+IFRoZSBsYXN0IG51bWJlciAoMTA0ODU1OSkgaXMgdGhl IG1hZ2ljIG9uZSwgbm8gYmluIGNhbiBnbyBoaWdoZXIuIExlc3MgbGlnaHRzIGFuZDoKPiAKPiBP aD8gSSB3b3VsZCd2ZSBleHBlY3RlZCAyXjIwLTEgPSAxMDQ4NTc1IHRvIGJlIHRoZSBtYWdpYyBu dW1iZXIsIGJ1dCBvayBJCj4gc3VwcG9zZSB0aGUgaGFyZHdhcmUgY2FwcyBhdCAxMDQ4NTU5IGlu c3RlYWQuIEl0IHByb2JhYmx5IG92ZXJmbG93ZWQgYW5kIHRoYXQncwo+IHdoeSB0aGUgc3VtIGlz IHNvIGxvdy4KPiAKPiA+ID4gMzJFMTI0MDA6IERoCj4gPiA+IDMyRTEyNDE0OiAwIDAgMCAwIDAg MCAxODQgMzA1OSAxMTk3MCA3NTI5OCAxMTQ4OTggMjExNDQ0IDQyOTc3MiA0Mzk5MjIgNDAwMzU4 IDM4NjY5NQo+ID4gPiB0b3RhbCA9IDIwNzM2MDAuIEJ1dCBkb24ndCByZWx5IG9uIGl0IHRvbyBt dWNoLCB0aGUgIjEiIGhhcyBwcm9ibGVtcy4KPiAKPiBUaGF0J3MgaW50ZXJlc3RpbmcuIE15IGd1 ZXNzIHdvdWxkIGJlIHRoYXQgaW4gcHJhY3RpY2UgYSBkaXZpZGVyIG9mIDEgd291bGQKPiBzdGls bCB3b3JrIGFzIGxvbmcgYXMgeW91IG1ha2Ugc3VyZSB0aGF0IGl0IGRvZXNuJ3Qgb3ZlcmZsb3cu IE1heWJlIHRoZSB1c2FnZQo+IGRvY3VtZW50YXRpb24gd2FzIGJhc2VkIG9uIGEgcnVsZS1vZi10 aHVtYi4KPiAKPiA+ID4gSW4gc2hvcnQsIHRob3NlIGFyZSBpbnRlZ2VyIHZhbHVlcy4gT25lIG1h eSB1c2UgdGhlbSBhcyBmcmFjdGlvbmFscyB3aXRoCj4gPiA+IHNvbWUgY2xldmVyIHN0ZXAgc2l6 ZSwgSSBndWVzcy4KPiA+ID4gCj4gPiA+ID4+IGlzcF9oaXN0X2hfc2l6ZTogMzgzICg9IDE5MjAg LyA1IC0gMSkKPiA+ID4gPj4gaXNwX2hpc3Rfdl9zaXplOiAyMTUgKD0gMTA4MCAvIDUgLSAxKQo+ ID4gPiA+PiBoaXN0b2dyYW1fbWVhc3VyZW1lbnRfcmVzdWx0WzE2XTogMCAwIDAgMCAgMCAwIDAg MCAgMCAwIDAgMCAgMCAwIDAgMjI5NDAxCj4gPiA+ID4+Cj4gPiA+ID4+IEFwcGFyZW50bHkgdGhl IGhpc3RvZ3JhbSBpcyBtaXNzaW5nIHRoZSBsYXN0IGNvbHVtbiAoMy1waXhlbCB3aWRlLAo+ID4g PiA+PiB0aG91Z2ggb25seSBzaW5nbGUgcGl4ZWxzIGNvdW50KSBhbmQgdGhlIGxhc3QgKHNhbWUg aWRlYSkgcm93Cj4gPiA+ID4+IG9mIHRoZSBpbnB1dCBpbWFnZTogMTkxNyAqIDEwNzcgLyAzIC8g MyA9IDIyOTQwMQo+ID4gPiA+Cj4gPiA+ID4gSSBkb24ndCBxdWl0ZSB1bmRlcnN0YW5kIHRoaXMu IFdpdGggYSBzdWItd2luZG93IHdpZHRoIG9mCj4gPiA+ID4gMTkyMCAvIDUgLSAxID0gMzgzLCBz aG91bGRuJ3QgdGhlIHJlc3VsdGluZyB0b3RhbCB3aW5kb3cgd2lkdGggYmUKPiA+ID4gPiAzODMg KiA1ID0gMTkxNT8gU2FtZSBpZGVhIGZvciB0aGUgaGVpZ2h0Lgo+ID4gPiAKPiA+ID4gSXQgd291 bGQsIGJ1dCB0aGUgc3RlcHNpemUgPSAzIG1ha2VzIGl0IGlnbm9yZSBvbmx5IHRoZSBsYXN0IG9u ZQo+ID4gPiAtIGkuZS4sIG5vcm1hbGx5IHRoZSBjb3VudGVkIG9uZXMgYXJlIDAsIDMsIC4uLiAx OTE0LCAxOTE3ICh3aGljaCBtYWtlcwo+ID4gPiAxOTIwLzMpIGFuZCB3aXRoIDM4MywgaXQgZW5k cyBhdCAxOTE0LCB0aHVzIG9ubHkgMyBwaXhlbHMgKDEgcmVhbGx5LAo+ID4gPiBpbnN0ZWFkIG9m IDIpIGFyZSBtaXNzaW5nIGZyb20gY2FsY3VsYXRpb25zIChub3QgNSkuIEkgZ3Vlc3MgdGhlIHNh bWUKPiA+ID4gdmVydGljYWxseSwgMTA4MCBkaXZpZGVzIC8gMyBhbmQgMTA3NSBkb2Vzbid0Lgo+ IAo+IEFoIG9rLCBJIHNlZS4gVGhhbmtzIGZvciB0aGUgY2xhcmlmaWNhdGlvbi4KPiAKPiA+ID4g Cj4gPiA+ID4gVGhlIGZpeCBsb29rcyBmaW5lIHRob3VnaC4gQWx0aG91Z2gsIEknbSB3b25kZXJp bmcgaWYgdGhlcmUncyBhIHJlYXNvbgo+ID4gPiA+IHdoeSB0aGVyZSB3YXMgYSAtMSBpbiB0aGUg Zmlyc3QgcGxhY2UuIERvZXMgYW55Ym9keSBrbm93Pwo+ID4gPiAKPiA+ID4gVGhlcmUgaXMgc2xp Z2h0IGNoYW5jZSBpdCdzIGRpZmZlcmVudCBvbiBzb21lIG90aGVyIFNvQywgYnV0IEkgd291bGQg YmUKPiA+ID4gc3VycHJpc2VkLgo+ID4gCj4gPiBUaGUgZG9jdW1lbnRlZCBjb25zdHJhaW50IGlz Cj4gPiAKPiA+ICAgICBoaXN0X2hfb2Zmc2V0ICsgaGlzdF9oX3NpemUgeCA1IHNob3VsZCBiZSBs ZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlCj4gPiAgICAgaG9yaXpvbnRhbCBzaXplIG9mIHRoZSBw aWN0dXJlLgo+ID4gCj4gPiAoYW5kIHNpbWlsYXIgZm9yIHRoZSB2ZXJ0aWNhbCBkaXJlY3Rpb24p LiBUaGUgaW5pdGlhbCAtMSBzZWVtcyB0byBiZSBhCj4gPiBidWcuCj4gCj4gT2suCj4gCj4gTG9v a3MgZ28gdG8gbWUuCj4gCj4gUmV2aWV3ZWQtYnk6IFBhdWwgRUxkZXIgPHBhdWwuZWxkZXJAaWRl YXNvbmJvYXJkLmNvbT4KClNob3VsZCB3ZSB1cGRhdGUgdGhlIGNvbW1pdCBtZXNzYWdlIGFzIHlv dSBpbml0aWFsbHkgcHJvcG9zZWQgPwoKLS0gClJlZ2FyZHMsCgpMYXVyZW50IFBpbmNoYXJ0Cgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1yb2Nr Y2hpcCBtYWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJvY2tjaGlwCg==