From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="XWiYmfme" Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 68E1795; Wed, 29 Nov 2023 02:55:31 -0800 (PST) Received: from pendragon.ideasonboard.com (213-243-189-158.bb.dnainternet.fi [213.243.189.158]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 2C3CF842; Wed, 29 Nov 2023 11:54:53 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1701255293; bh=+thUs3ZwcJ7OeP27zmFr2bOov1zQu5Uq4z2RuS7YBr0=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=XWiYmfmeMKqDhB0F2WsNEs6VV63CnIAh3vt3iikQMvWHm6oJaFzS3UNUeiotYfog1 8/CaBBCqAbFGlgxu2wuse+PbF5pu3CKhP+UiRQ79+Tq/nVH2tGI99CcUOXyr9UYrv4 A2zvZ/HRl0wBisDUrTq7BNS4EFf+O5ON+G/Kdz3A= Date: Wed, 29 Nov 2023 12:55:36 +0200 From: Laurent Pinchart To: Adam Ford Cc: Marco Felsch , Alexander Stein , linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-imx@nxp.com, kernel@pengutronix.de, Shawn Guo , Krzysztof Kozlowski , Rob Herring , Jacopo Mondi , Xavier Roumegue , Kieran Bingham Subject: Re: [PATCH v1 1/2] arm64: dts: imx8mp: Add CSIS DT nodes Message-ID: <20231129105536.GE24293@pendragon.ideasonboard.com> References: <20230417055627.16482-1-laurent.pinchart@ideasonboard.com> <20230417055627.16482-2-laurent.pinchart@ideasonboard.com> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Hi Adam, (CC'ing Kieran) On Tue, Nov 28, 2023 at 09:17:51PM -0600, Adam Ford wrote: > On Mon, Apr 17, 2023 at 1:01 AM Laurent Pinchart wrote: > > > > Add DT nodes for the two CSI-2 receivers of the i.MX8MP. > > > > Signed-off-by: Laurent Pinchart > > --- > > Laurent, > > Sorry to dig up an old thread, but I have a concern about the clock > ratings and nominal mode vs overdrive mode. I started investigating > the different data sheets amongst the various imx8m[mnp] families to > make the default device trees run at nominal mode while also creating > a separate dtsi file with settings for overdrive so boards who use it > can include them without having to duplicate the clock settings for > everyone who supports overdrive. > > > arch/arm64/boot/dts/freescale/imx8mp.dtsi | 60 +++++++++++++++++++++++ > > 1 file changed, 60 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi > > index 2dd60e3252f3..2a374a4c14a2 100644 > > --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi > > +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi > > @@ -1239,6 +1239,66 @@ ldb_lvds_ch1: endpoint { > > }; > > }; > > > > + mipi_csi_0: csi@32e40000 { > > + compatible = "fsl,imx8mp-mipi-csi2", "fsl,imx8mm-mipi-csi2"; > > + reg = <0x32e40000 0x10000>; > > + interrupts = ; > > + clock-frequency = <500000000>; > > + clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>, > > + <&clk IMX8MP_CLK_MEDIA_CAM1_PIX_ROOT>, > > + <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF_ROOT>, > > + <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>; > > + clock-names = "pclk", "wrap", "phy", "axi"; > > + assigned-clocks = <&clk IMX8MP_CLK_MEDIA_CAM1_PIX>; > > + assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_1000M>; > > + assigned-clock-rates = <500000000>; > > According to Rev 2.1 of the Data sheet (IMX8MPCEC), dated July 2023, > 500MHz is listed as single-camera, overdrive mode. Single-camera, > nominal mode is 400MHz, but there is more... > If configured for dual cameras, both CSI can only support up to > 266MHz, but we have partially configured both albeit without the > actual camera sensors connected. > > > + power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_MIPI_CSI2_1>; > > + status = "disabled"; > > + > > + ports { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + port@0 { > > + reg = <0>; > > + }; > > + > > + port@1 { > > + reg = <1>; > > + }; > > + }; > > + }; > > + > > + mipi_csi_1: csi@32e50000 { > > + compatible = "fsl,imx8mp-mipi-csi2", "fsl,imx8mm-mipi-csi2"; > > + reg = <0x32e50000 0x10000>; > > + interrupts = ; > > + clock-frequency = <266000000>; > > + clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>, > > + <&clk IMX8MP_CLK_MEDIA_CAM2_PIX_ROOT>, > > + <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF_ROOT>, > > + <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>; > > + clock-names = "pclk", "wrap", "phy", "axi"; > > + assigned-clocks = <&clk IMX8MP_CLK_MEDIA_CAM2_PIX>; > > + assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_1000M>; > > + assigned-clock-rates = <266000000>; > > 266MHz is correct for dual camera, but in single camera, the second > CSI is capable of 277MHz. > > At a minimum, I'd like to fix the overdrive frequency to nominal, but > since we're plumbing in both cameras, I wonder if it would be better > to run both at 266MHz with a note on CSI0 that states it could run at > 400 or 500 if the second CSI is disabled and a note on the second CSI > that it could run at 277 when the first one is disabled? What are your > thoughts? My thoughts is that this all should be selected at runtime, based on how many cameras are used. That won't be trivial to do though :-S Kieran, you've been working with two cameras, any opinion ? > > + power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_MIPI_CSI2_2>; > > + status = "disabled"; > > + > > + ports { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + port@0 { > > + reg = <0>; > > + }; > > + > > + port@1 { > > + reg = <1>; > > + }; > > + }; > > + }; > > + > > pcie_phy: pcie-phy@32f00000 { > > compatible = "fsl,imx8mp-pcie-phy"; > > reg = <0x32f00000 0x10000>; -- Regards, Laurent Pinchart 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 08966C07CB1 for ; Wed, 29 Nov 2023 10:56:06 +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=pkca5hTQxm0yujNO4kLlv6R+G2JP7l00GHmcVhcgcJg=; b=PDSKjDNPCzs6NN 6T7qQVbyS3WzBURnC5GeYQbJCX44ZABK0JVz3qjZCTjzXDky6SQ2ooBRtqixquUx/hqyj0ho8axR3 DsgK/VpEcYK3pEnlCfLGuS18zHnIplgryVecSQVcRDgMGniySojRs+2JvDE1MPlsa9xM4JIFppzLv C55LhnBXAMwAVi3EfeChtEdgGXp8+IlkyRpDybKrXXgqXuvtw25CT/b6TeeDjWh7XT5BamFuMzOd7 IgSIZL00k4EXc7iEMSiqMOlBR7rizz96619aJP7dGe0AC3asR53uUzRUi7YwOYwN8/eRc3RxmN5Wx x1K6lmYi9BnXodfn57tg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r8IEB-007sbe-04; Wed, 29 Nov 2023 10:55:35 +0000 Received: from perceval.ideasonboard.com ([213.167.242.64]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r8IE7-007saW-36 for linux-arm-kernel@lists.infradead.org; Wed, 29 Nov 2023 10:55:33 +0000 Received: from pendragon.ideasonboard.com (213-243-189-158.bb.dnainternet.fi [213.243.189.158]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 2C3CF842; Wed, 29 Nov 2023 11:54:53 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1701255293; bh=+thUs3ZwcJ7OeP27zmFr2bOov1zQu5Uq4z2RuS7YBr0=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=XWiYmfmeMKqDhB0F2WsNEs6VV63CnIAh3vt3iikQMvWHm6oJaFzS3UNUeiotYfog1 8/CaBBCqAbFGlgxu2wuse+PbF5pu3CKhP+UiRQ79+Tq/nVH2tGI99CcUOXyr9UYrv4 A2zvZ/HRl0wBisDUrTq7BNS4EFf+O5ON+G/Kdz3A= Date: Wed, 29 Nov 2023 12:55:36 +0200 From: Laurent Pinchart To: Adam Ford Cc: Marco Felsch , Alexander Stein , linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-imx@nxp.com, kernel@pengutronix.de, Shawn Guo , Krzysztof Kozlowski , Rob Herring , Jacopo Mondi , Xavier Roumegue , Kieran Bingham Subject: Re: [PATCH v1 1/2] arm64: dts: imx8mp: Add CSIS DT nodes Message-ID: <20231129105536.GE24293@pendragon.ideasonboard.com> References: <20230417055627.16482-1-laurent.pinchart@ideasonboard.com> <20230417055627.16482-2-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231129_025532_140191_D53E4466 X-CRM114-Status: GOOD ( 30.05 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgQWRhbSwKCihDQydpbmcgS2llcmFuKQoKT24gVHVlLCBOb3YgMjgsIDIwMjMgYXQgMDk6MTc6 NTFQTSAtMDYwMCwgQWRhbSBGb3JkIHdyb3RlOgo+IE9uIE1vbiwgQXByIDE3LCAyMDIzIGF0IDE6 MDHigK9BTSBMYXVyZW50IFBpbmNoYXJ0IHdyb3RlOgo+ID4KPiA+IEFkZCBEVCBub2RlcyBmb3Ig dGhlIHR3byBDU0ktMiByZWNlaXZlcnMgb2YgdGhlIGkuTVg4TVAuCj4gPgo+ID4gU2lnbmVkLW9m Zi1ieTogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29t Pgo+ID4gLS0tCj4gCj4gTGF1cmVudCwKPiAKPiBTb3JyeSB0byBkaWcgdXAgYW4gb2xkIHRocmVh ZCwgYnV0IEkgaGF2ZSBhIGNvbmNlcm4gYWJvdXQgdGhlIGNsb2NrCj4gcmF0aW5ncyBhbmQgbm9t aW5hbCBtb2RlIHZzIG92ZXJkcml2ZSBtb2RlLiAgSSBzdGFydGVkIGludmVzdGlnYXRpbmcKPiB0 aGUgZGlmZmVyZW50IGRhdGEgc2hlZXRzIGFtb25nc3QgdGhlIHZhcmlvdXMgaW14OG1bbW5wXSBm YW1pbGllcyB0bwo+IG1ha2UgdGhlIGRlZmF1bHQgZGV2aWNlIHRyZWVzIHJ1biBhdCBub21pbmFs IG1vZGUgd2hpbGUgYWxzbyBjcmVhdGluZwo+IGEgc2VwYXJhdGUgZHRzaSBmaWxlIHdpdGggc2V0 dGluZ3MgZm9yIG92ZXJkcml2ZSBzbyBib2FyZHMgd2hvIHVzZSBpdAo+IGNhbiBpbmNsdWRlIHRo ZW0gd2l0aG91dCBoYXZpbmcgdG8gZHVwbGljYXRlIHRoZSBjbG9jayBzZXR0aW5ncyBmb3IKPiBl dmVyeW9uZSB3aG8gc3VwcG9ydHMgb3ZlcmRyaXZlLgo+IAo+ID4gIGFyY2gvYXJtNjQvYm9vdC9k dHMvZnJlZXNjYWxlL2lteDhtcC5kdHNpIHwgNjAgKysrKysrKysrKysrKysrKysrKysrKysKPiA+ ICAxIGZpbGUgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9h cmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9pbXg4bXAuZHRzaSBiL2FyY2gvYXJtNjQvYm9v dC9kdHMvZnJlZXNjYWxlL2lteDhtcC5kdHNpCj4gPiBpbmRleCAyZGQ2MGUzMjUyZjMuLjJhMzc0 YTRjMTRhMiAxMDA2NDQKPiA+IC0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2lt eDhtcC5kdHNpCj4gPiArKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9pbXg4bXAu ZHRzaQo+ID4gQEAgLTEyMzksNiArMTIzOSw2NiBAQCBsZGJfbHZkc19jaDE6IGVuZHBvaW50IHsK PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKPiA+ICAgICAgICAgICAgICAg ICAgICAgICAgIH07Cj4gPgo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgbWlwaV9jc2lfMDog Y3NpQDMyZTQwMDAwIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGF0 aWJsZSA9ICJmc2wsaW14OG1wLW1pcGktY3NpMiIsICJmc2wsaW14OG1tLW1pcGktY3NpMiI7Cj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZyA9IDwweDMyZTQwMDAwIDB4MTAw MDA+Owo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcnJ1cHRzID0gPEdJ Q19TUEkgMTcgSVJRX1RZUEVfTEVWRUxfSElHSD47Cj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNsb2NrLWZyZXF1ZW5jeSA9IDw1MDAwMDAwMDA+Owo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjbG9ja3MgPSA8JmNsayBJTVg4TVBfQ0xLX01FRElBX0FQQl9S T09UPiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCZjbGsg SU1YOE1QX0NMS19NRURJQV9DQU0xX1BJWF9ST09UPiwKPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPCZjbGsgSU1YOE1QX0NMS19NRURJQV9NSVBJX1BIWTFfUkVG X1JPT1Q+LAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8JmNs ayBJTVg4TVBfQ0xLX01FRElBX0FYSV9ST09UPjsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2xvY2stbmFtZXMgPSAicGNsayIsICJ3cmFwIiwgInBoeSIsICJheGkiOwo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NpZ25lZC1jbG9ja3MgPSA8JmNsayBJ TVg4TVBfQ0xLX01FRElBX0NBTTFfUElYPjsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzaWduZWQtY2xvY2stcGFyZW50cyA9IDwmY2xrIElNWDhNUF9TWVNfUExMMl8xMDAw TT47Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2lnbmVkLWNsb2NrLXJh dGVzID0gPDUwMDAwMDAwMD47Cj4gCj4gQWNjb3JkaW5nIHRvIFJldiAyLjEgb2YgdGhlIERhdGEg c2hlZXQgKElNWDhNUENFQyksIGRhdGVkIEp1bHkgMjAyMywKPiA1MDBNSHogaXMgbGlzdGVkIGFz IHNpbmdsZS1jYW1lcmEsIG92ZXJkcml2ZSBtb2RlLiAgU2luZ2xlLWNhbWVyYSwKPiBub21pbmFs IG1vZGUgaXMgNDAwTUh6LCBidXQgdGhlcmUgaXMgbW9yZS4uLgo+IElmIGNvbmZpZ3VyZWQgZm9y IGR1YWwgY2FtZXJhcywgYm90aCBDU0kgY2FuIG9ubHkgc3VwcG9ydCB1cCB0bwo+IDI2Nk1Ieiwg YnV0IHdlIGhhdmUgcGFydGlhbGx5IGNvbmZpZ3VyZWQgYm90aCBhbGJlaXQgd2l0aG91dCB0aGUK PiBhY3R1YWwgY2FtZXJhIHNlbnNvcnMgY29ubmVjdGVkLgo+IAo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwb3dlci1kb21haW5zID0gPCZtZWRpYV9ibGtfY3RybCBJTVg4TVBf TUVESUFCTEtfUERfTUlQSV9DU0kyXzE+Owo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdGF0dXMgPSAiZGlzYWJsZWQiOwo+ID4gKwo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwb3J0cyB7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgI2FkZHJlc3MtY2VsbHMgPSA8MT47Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgI3NpemUtY2VsbHMgPSA8MD47Cj4gPiArCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydEAwIHsKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZyA9IDwwPjsKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Owo+ID4gKwo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRAMSB7Cj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWcgPSA8MT47Cj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfTsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIH07Cj4gPiArCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICBtaXBpX2NzaV8xOiBjc2lAMzJlNTAwMDAgewo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYXRpYmxlID0gImZzbCxpbXg4bXAtbWlwaS1j c2kyIiwgImZzbCxpbXg4bW0tbWlwaS1jc2kyIjsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmVnID0gPDB4MzJlNTAwMDAgMHgxMDAwMD47Cj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludGVycnVwdHMgPSA8R0lDX1NQSSA4MCBJUlFfVFlQRV9MRVZFTF9I SUdIPjsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvY2stZnJlcXVlbmN5 ID0gPDI2NjAwMDAwMD47Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb2Nr cyA9IDwmY2xrIElNWDhNUF9DTEtfTUVESUFfQVBCX1JPT1Q+LAo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA8JmNsayBJTVg4TVBfQ0xLX01FRElBX0NBTTJfUElY X1JPT1Q+LAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8JmNs ayBJTVg4TVBfQ0xLX01FRElBX01JUElfUEhZMV9SRUZfUk9PVD4sCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwmY2xrIElNWDhNUF9DTEtfTUVESUFfQVhJX1JP T1Q+Owo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9jay1uYW1lcyA9ICJw Y2xrIiwgIndyYXAiLCAicGh5IiwgImF4aSI7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2lnbmVkLWNsb2NrcyA9IDwmY2xrIElNWDhNUF9DTEtfTUVESUFfQ0FNMl9QSVg+ Owo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NpZ25lZC1jbG9jay1wYXJl bnRzID0gPCZjbGsgSU1YOE1QX1NZU19QTEwyXzEwMDBNPjsKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzaWduZWQtY2xvY2stcmF0ZXMgPSA8MjY2MDAwMDAwPjsKPiAKPiAy NjZNSHogaXMgY29ycmVjdCBmb3IgZHVhbCBjYW1lcmEsIGJ1dCBpbiBzaW5nbGUgY2FtZXJhLCB0 aGUgc2Vjb25kCj4gQ1NJIGlzIGNhcGFibGUgb2YgMjc3TUh6Lgo+IAo+IEF0IGEgbWluaW11bSwg SSdkIGxpa2UgdG8gZml4IHRoZSBvdmVyZHJpdmUgZnJlcXVlbmN5IHRvIG5vbWluYWwsIGJ1dAo+ IHNpbmNlIHdlJ3JlIHBsdW1iaW5nIGluIGJvdGggY2FtZXJhcywgSSB3b25kZXIgaWYgaXQgd291 bGQgYmUgYmV0dGVyCj4gdG8gcnVuIGJvdGggYXQgMjY2TUh6IHdpdGggYSBub3RlIG9uIENTSTAg dGhhdCBzdGF0ZXMgaXQgY291bGQgcnVuIGF0Cj4gNDAwIG9yIDUwMCBpZiB0aGUgc2Vjb25kIENT SSBpcyBkaXNhYmxlZCBhbmQgYSBub3RlIG9uIHRoZSBzZWNvbmQgQ1NJCj4gdGhhdCBpdCBjb3Vs ZCBydW4gYXQgMjc3IHdoZW4gdGhlIGZpcnN0IG9uZSBpcyBkaXNhYmxlZD8gV2hhdCBhcmUgeW91 cgo+IHRob3VnaHRzPwoKTXkgdGhvdWdodHMgaXMgdGhhdCB0aGlzIGFsbCBzaG91bGQgYmUgc2Vs ZWN0ZWQgYXQgcnVudGltZSwgYmFzZWQgb24gaG93Cm1hbnkgY2FtZXJhcyBhcmUgdXNlZC4gVGhh dCB3b24ndCBiZSB0cml2aWFsIHRvIGRvIHRob3VnaCA6LVMgS2llcmFuLAp5b3UndmUgYmVlbiB3 b3JraW5nIHdpdGggdHdvIGNhbWVyYXMsIGFueSBvcGluaW9uID8KCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBvd2VyLWRvbWFpbnMgPSA8Jm1lZGlhX2Jsa19jdHJsIElNWDhN UF9NRURJQUJMS19QRF9NSVBJX0NTSTJfMj47Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0YXR1cyA9ICJkaXNhYmxlZCI7Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBvcnRzIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjYWRkcmVzcy1jZWxscyA9IDwxPjsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAjc2l6ZS1jZWxscyA9IDwwPjsKPiA+ICsKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0QDAgewo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnID0gPDA+Owo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07Cj4gPiArCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydEAxIHsKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZyA9IDwxPjsKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Owo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9Owo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgfTsKPiA+ICsKPiA+ICAg ICAgICAgICAgICAgICAgICAgICAgIHBjaWVfcGh5OiBwY2llLXBoeUAzMmYwMDAwMCB7Cj4gPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgPSAiZnNsLGlteDhtcC1w Y2llLXBoeSI7Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZyA9IDwweDMy ZjAwMDAwIDB4MTAwMDA+OwoKLS0gClJlZ2FyZHMsCgpMYXVyZW50IFBpbmNoYXJ0CgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVs IG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==