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 44E7FC27C5E for ; Mon, 10 Jun 2024 08:28:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date: Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=sjXlOHOI8iZ4Bcj7xFfEtqjPN9u8o/v4kuXJ9ZuWh40=; b=XInA3UjPHCQTMF4rpM+dcSFqiq tRV5FtCqt0fHDwGXIBIs1RD2rv2NxRO4/cWeezYZc36GIW3bd20Fo1ENQr6dGL/77yhzbcItS2HCI YNOYgIA/hBGjd1zPk/MM0OoM7eqYvrJKsWX08ZIa9qef+JVL/A08Rwa4um0pyGiiEiFq63aMDGfTn xO70u57KZorPnLLeyDNtKBWL0UewL2g+GQyVOhhmxrSNp0EzVNKTVhhbib4MsWaDtLv2Dkaam8DFA o0CJ2MODGlHVWTRhOEoH9viSVADf4Cf9lfQ7P0mRS+mVpphTzWpTg+6uhLlzQRPw04qn68WH/eij6 Snb5lDeg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sGaO5-00000004FRM-2l0z; Mon, 10 Jun 2024 08:28:21 +0000 Received: from madrid.collaboradmins.com ([2a00:1098:ed:100::25]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sGaNv-00000004FNY-37A7; Mon, 10 Jun 2024 08:28:18 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1718008090; bh=77a5ilB2nTJ6IsP4JbR1r9Z3pyXjF+7OpvhGRP9P4bw=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=I+ItxFrdkchDgmlZlRtLv/xLaQ7CLAayNIkW/mOtnGoxYS0CZrh426PEYYULDPALs v55PywnNZ6QkvkjIaf9nmCPgrLxtfRMunE3DpTKGmzUnBljvztIWICqEHx2Uu2cNrn Ro/Yk71+NpC/00y0uKsjz6TahYBYpEdtR6cJ+FALqUcDOMPFAwgo4psEqZmLkYgBcV w2OonlJkItmJmgCoftOGlOAARazgiAr8H3V+U2H8+EfbcIyAeALuBKzSGhwTwa84bI XfRQ5i7ufocQT1PkikkDhMQNKZrsecMaECAO2pu4tVXuk2fPfzeibtkaZftZ6ZZSgZ lPM4oiNUw8mUA== Received: from [100.113.186.2] (cola.collaboradmins.com [195.201.22.229]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: kholk11) by madrid.collaboradmins.com (Postfix) with ESMTPSA id BF5EA3780626; Mon, 10 Jun 2024 08:28:08 +0000 (UTC) Message-ID: <47f05439-815e-4ca1-b20d-8e427fef0a2a@collabora.com> Date: Mon, 10 Jun 2024 10:28:08 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v5 2/3] dt-bindings: arm: mediatek: mmsys: Add OF graph support for board path To: =?UTF-8?B?Q0sgSHUgKOiDoeS/iuWFiSk=?= , "chunkuang.hu@kernel.org" Cc: "linux-kernel@vger.kernel.org" , "linux-mediatek@lists.infradead.org" , "wenst@chromium.org" , "devicetree@vger.kernel.org" , "tzimmermann@suse.de" , =?UTF-8?B?U2hhd24gU3VuZyAo5a6L5a2d6KyZKQ==?= , "mripard@kernel.org" , =?UTF-8?B?Sml0YW8gU2hpICjnn7PorrDmtpsp?= , "daniel@ffwll.ch" , "p.zabel@pengutronix.de" , "conor+dt@kernel.org" , "maarten.lankhorst@linux.intel.com" , "robh@kernel.org" , "dri-devel@lists.freedesktop.org" , "airlied@gmail.com" , "krzysztof.kozlowski+dt@linaro.org" , "kernel@collabora.com" , "matthias.bgg@gmail.com" , =?UTF-8?B?WXUtY2hhbmcgTGVlICjmnY7nprnnkosp?= , "linux-arm-kernel@lists.infradead.org" , "amergnat@baylibre.com" References: <20240521075717.50330-1-angelogioacchino.delregno@collabora.com> <20240521075717.50330-3-angelogioacchino.delregno@collabora.com> <0e0fe86c-92da-43f5-89d7-8084274a908a@collabora.com> <0f20214ab3a86f68669ad1392398b16228e699ee.camel@mediatek.com> From: AngeloGioacchino Del Regno Content-Language: en-US In-Reply-To: <0f20214ab3a86f68669ad1392398b16228e699ee.camel@mediatek.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240610_012812_426857_1E801A38 X-CRM114-Status: GOOD ( 33.54 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org Il 06/06/24 07:29, CK Hu (胡俊光) ha scritto: > Hi, Angelo: > > On Wed, 2024-06-05 at 13:15 +0200, AngeloGioacchino Del Regno wrote: >> Il 05/06/24 03:38, CK Hu (胡俊光) ha scritto: >>> Hi, Angelo: >>> >>> On Tue, 2024-05-21 at 09:57 +0200, AngeloGioacchino Del Regno wrote: >>>> Document OF graph on MMSYS/VDOSYS: this supports up to three DDP paths >>>> per HW instance (so potentially up to six displays for multi-vdo SoCs). >>>> >>>> The MMSYS or VDOSYS is always the first component in the DDP pipeline, >>>> so it only supports an output port with multiple endpoints - where each >>>> endpoint defines the starting point for one of the (currently three) >>>> possible hardware paths. >>>> >>>> Reviewed-by: Rob Herring (Arm) >>>> Reviewed-by: Alexandre Mergnat >>>> Tested-by: Alexandre Mergnat >>>> Signed-off-by: AngeloGioacchino Del Regno >>>> --- >>>> .../bindings/arm/mediatek/mediatek,mmsys.yaml | 28 +++++++++++++++++++ >>>> 1 file changed, 28 insertions(+) >>>> >>>> diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml >>>> index b3c6888c1457..0ef67ca4122b 100644 >>>> --- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml >>>> +++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml >>>> @@ -93,6 +93,34 @@ properties: >>>> '#reset-cells': >>>> const: 1 >>>> >>>> + port: >>>> + $ref: /schemas/graph.yaml#/properties/port >>>> + description: >>>> + Output port node. This port connects the MMSYS/VDOSYS output to >>>> + the first component of one display pipeline, for example one of >>>> + the available OVL or RDMA blocks. >>>> + Some MediaTek SoCs support multiple display outputs per MMSYS. >>> >>> This patch looks good to me. Just want to share another information for you. >>> Here is an example that mmsys/vdosys could point to the display interface node. >>> >>> vdosys0: syscon@1c01a000 { >>> mmsys-display-interface = <&dsi0>, <&dsi1>, <&dp_intf0>; >>> }; >>> >>> vdosys1: syscon@1c100000 { >>> mmsys-display-interface = <&dp_intf1>; >>> }; >>> >>> There is no conflict that mmsys/vdosys point to first component of one display pipeline or point to display interface. >>> Both could co-exist. >>> >> >> Hey CK, >> >> yes, this could be an alternative to the OF graphs, and I'm sure that it'd work, >> even though this kind of solution would still require partial hardcoding of the >> display paths up until mmsys-display-interface (so, up until DSI0, or DSI1, etc). >> >> The problem with a solution like this is that, well, even though it would work, >> even if we ignore the suboptimal partial hardcoding, OF graphs are something >> generic, while the mmsys-display-interface would be a MediaTek specific/custom >> property. >> >> In the end, reusing generic kernel apis/interfaces/etc is always preferred >> compared to custom solutions, especially in this case, in which the generic >> stuff is on-par (or actually, depending purely on personal opinions, superior). >> >> As for the two to co-exist, I'm not sure that this is actually needed, as the >> OF graphs are already (at the end of the graph) pointing to the display interface. >> >> In any case, just as a reminder: if there will be any need to add any custom >> MediaTek specific properties later, it's ok and we can do that at any time. > > The alternative solution is using OF graphs to point display interface and use MediaTek specific property to first component: > > vdosys0: syscon@1c01a000 { > ports { > port@0 { > endpoint { > remote-endpoint = <&dsi0_endpoint>; > }; > }; > > port@1 { > endpoint { > remote-endpoint = <&dsi1_endpoint>; > }; > }; > > port@2 { > endpoint { > remote-endpoint = <&dp_intf0_endpoint>; > }; > }; > }; > > display-first-component = <&ovl0>; > }; > > And I agree to it's better to keep only OF graphs property, so it would be > > vdosys0: syscon@1c01a000 { > ports { > port@0 { > endpoint { > remote-endpoint = <&dsi0_endpoint>; > > }; > }; > > port@1 { > endpoint { > remote-endpoint = <&dsi1_endpoint>; > > }; > }; > > port@2 { > endpoint { > remote-endpoint = <&dp_intf0_endpoint>; > } > ; > }; > }; > }; > > Maybe we could use OF graphs for both first component and display interface and drop using MediaTek specific property. > We could, or we can simply walk through the OF Graph in the driver and get the display interface like that, as it's board-specific ;-) ...but anyway, let's see that later: after getting this series upstreamed, I will convert all MediaTek boards (including Chromebooks) to use the graphs instead, and you'll see that, at least for the currently supported boards, there's no need for any custom property. Also, setting the DSI0/1/dpintf endpoint to VDO0 is technically wrong, as that is supposed to be the last one, and a graph is conceptually supposed to go from the first to the last in sequence. *if* we will ever need (probably not) to get the VDO0 node to point directly to the last node for whatever reason, the right way would be the first one you said, so, mediatek,mmsys-display-interface = <&dsi0>, <&dsi1>, etc etc ...or mediatek,mmsys-possible-displays = < ... phandles > ...or anyway, many other solutions are possible - but again, I think this is not the right time to think about that. Knowing that there are eventual solutions for any need that might arise in the future is enough, IMO :-) Cheers, Angelo > Regards, > CK > >> >> Cheers! >> Angelo >> >>> Regards, >>> CK >>> >>>> + properties: >>>> + endpoint@0: >>>> + $ref: /schemas/graph.yaml#/properties/endpoint >>>> + description: Output to the primary display pipeline >>>> + >>>> + endpoint@1: >>>> + $ref: /schemas/graph.yaml#/properties/endpoint >>>> + description: Output to the secondary display pipeline >>>> + >>>> + endpoint@2: >>>> + $ref: /schemas/graph.yaml#/properties/endpoint >>>> + description: Output to the tertiary display pipeline >>>> + >>>> + anyOf: >>>> + - required: >>>> + - endpoint@0 >>>> + - required: >>>> + - endpoint@1 >>>> + - required: >>>> + - endpoint@2 >>>> + >>>> required: >>>> - compatible >>>> - reg >> >> 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 C6787C27C5E for ; Mon, 10 Jun 2024 08:28:35 +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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=d+IxJCDarFGz4vWHvwUWy6CUrqEfo6rhskUqX+2zVmc=; b=z8grnlJG4MNN7L 9wcn8skjme5JtDBHJKzm8J4iZVKToijqMGyIgiFX3RmSm2yT4H9yEwkhd+R12kM8SAGjJedpW49i7 JusS9WOx3Cbfglgl9+NyEx6Orf6/GbwgWBOqnK05K2cfJ3Lf5mTVxAW/08fH0hWECxlbbtVeXbptL yrEH4FvDkcW/p30Rv6PnAIqk0ouuVJM+cjHo8Rc0xYmmz7vNn09PEeHu+yj0EE7nk9Zg+gxbIh5f6 KcUP8fkt9mUjDCAbEtjkoH5NMGFi4sqBCW0hnBDQathmB7z4tWQrEMaafIh5Jstue9wZ438899wLJ bgy0lUoG5m0acrdJ1YUw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sGaO4-00000004FQn-3gS8; Mon, 10 Jun 2024 08:28:20 +0000 Received: from madrid.collaboradmins.com ([2a00:1098:ed:100::25]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sGaNv-00000004FNY-37A7; Mon, 10 Jun 2024 08:28:18 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1718008090; bh=77a5ilB2nTJ6IsP4JbR1r9Z3pyXjF+7OpvhGRP9P4bw=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=I+ItxFrdkchDgmlZlRtLv/xLaQ7CLAayNIkW/mOtnGoxYS0CZrh426PEYYULDPALs v55PywnNZ6QkvkjIaf9nmCPgrLxtfRMunE3DpTKGmzUnBljvztIWICqEHx2Uu2cNrn Ro/Yk71+NpC/00y0uKsjz6TahYBYpEdtR6cJ+FALqUcDOMPFAwgo4psEqZmLkYgBcV w2OonlJkItmJmgCoftOGlOAARazgiAr8H3V+U2H8+EfbcIyAeALuBKzSGhwTwa84bI XfRQ5i7ufocQT1PkikkDhMQNKZrsecMaECAO2pu4tVXuk2fPfzeibtkaZftZ6ZZSgZ lPM4oiNUw8mUA== Received: from [100.113.186.2] (cola.collaboradmins.com [195.201.22.229]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: kholk11) by madrid.collaboradmins.com (Postfix) with ESMTPSA id BF5EA3780626; Mon, 10 Jun 2024 08:28:08 +0000 (UTC) Message-ID: <47f05439-815e-4ca1-b20d-8e427fef0a2a@collabora.com> Date: Mon, 10 Jun 2024 10:28:08 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v5 2/3] dt-bindings: arm: mediatek: mmsys: Add OF graph support for board path To: =?UTF-8?B?Q0sgSHUgKOiDoeS/iuWFiSk=?= , "chunkuang.hu@kernel.org" Cc: "linux-kernel@vger.kernel.org" , "linux-mediatek@lists.infradead.org" , "wenst@chromium.org" , "devicetree@vger.kernel.org" , "tzimmermann@suse.de" , =?UTF-8?B?U2hhd24gU3VuZyAo5a6L5a2d6KyZKQ==?= , "mripard@kernel.org" , =?UTF-8?B?Sml0YW8gU2hpICjnn7PorrDmtpsp?= , "daniel@ffwll.ch" , "p.zabel@pengutronix.de" , "conor+dt@kernel.org" , "maarten.lankhorst@linux.intel.com" , "robh@kernel.org" , "dri-devel@lists.freedesktop.org" , "airlied@gmail.com" , "krzysztof.kozlowski+dt@linaro.org" , "kernel@collabora.com" , "matthias.bgg@gmail.com" , =?UTF-8?B?WXUtY2hhbmcgTGVlICjmnY7nprnnkosp?= , "linux-arm-kernel@lists.infradead.org" , "amergnat@baylibre.com" References: <20240521075717.50330-1-angelogioacchino.delregno@collabora.com> <20240521075717.50330-3-angelogioacchino.delregno@collabora.com> <0e0fe86c-92da-43f5-89d7-8084274a908a@collabora.com> <0f20214ab3a86f68669ad1392398b16228e699ee.camel@mediatek.com> From: AngeloGioacchino Del Regno Content-Language: en-US In-Reply-To: <0f20214ab3a86f68669ad1392398b16228e699ee.camel@mediatek.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240610_012812_426857_1E801A38 X-CRM114-Status: GOOD ( 33.54 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SWwgMDYvMDYvMjQgMDc6MjksIENLIEh1ICjog6Hkv4rlhYkpIGhhIHNjcml0dG86Cj4gSGksIEFu Z2VsbzoKPiAKPiBPbiBXZWQsIDIwMjQtMDYtMDUgYXQgMTM6MTUgKzAyMDAsIEFuZ2Vsb0dpb2Fj Y2hpbm8gRGVsIFJlZ25vIHdyb3RlOgo+PiBJbCAwNS8wNi8yNCAwMzozOCwgQ0sgSHUgKOiDoeS/ iuWFiSkgaGEgc2NyaXR0bzoKPj4+IEhpLCBBbmdlbG86Cj4+Pgo+Pj4gT24gVHVlLCAyMDI0LTA1 LTIxIGF0IDA5OjU3ICswMjAwLCBBbmdlbG9HaW9hY2NoaW5vIERlbCBSZWdubyB3cm90ZToKPj4+ PiBEb2N1bWVudCBPRiBncmFwaCBvbiBNTVNZUy9WRE9TWVM6IHRoaXMgc3VwcG9ydHMgdXAgdG8g dGhyZWUgRERQIHBhdGhzCj4+Pj4gcGVyIEhXIGluc3RhbmNlIChzbyBwb3RlbnRpYWxseSB1cCB0 byBzaXggZGlzcGxheXMgZm9yIG11bHRpLXZkbyBTb0NzKS4KPj4+Pgo+Pj4+IFRoZSBNTVNZUyBv ciBWRE9TWVMgaXMgYWx3YXlzIHRoZSBmaXJzdCBjb21wb25lbnQgaW4gdGhlIEREUCBwaXBlbGlu ZSwKPj4+PiBzbyBpdCBvbmx5IHN1cHBvcnRzIGFuIG91dHB1dCBwb3J0IHdpdGggbXVsdGlwbGUg ZW5kcG9pbnRzIC0gd2hlcmUgZWFjaAo+Pj4+IGVuZHBvaW50IGRlZmluZXMgdGhlIHN0YXJ0aW5n IHBvaW50IGZvciBvbmUgb2YgdGhlIChjdXJyZW50bHkgdGhyZWUpCj4+Pj4gcG9zc2libGUgaGFy ZHdhcmUgcGF0aHMuCj4+Pj4KPj4+PiBSZXZpZXdlZC1ieTogUm9iIEhlcnJpbmcgKEFybSkgPHJv YmhAa2VybmVsLm9yZz4KPj4+PiBSZXZpZXdlZC1ieTogQWxleGFuZHJlIE1lcmduYXQgPGFtZXJn bmF0QGJheWxpYnJlLmNvbT4KPj4+PiBUZXN0ZWQtYnk6IEFsZXhhbmRyZSBNZXJnbmF0IDxhbWVy Z25hdEBiYXlsaWJyZS5jb20+Cj4+Pj4gU2lnbmVkLW9mZi1ieTogQW5nZWxvR2lvYWNjaGlubyBE ZWwgUmVnbm8gPGFuZ2Vsb2dpb2FjY2hpbm8uZGVscmVnbm9AY29sbGFib3JhLmNvbT4KPj4+PiAt LS0KPj4+PiAgICAuLi4vYmluZGluZ3MvYXJtL21lZGlhdGVrL21lZGlhdGVrLG1tc3lzLnlhbWwg fCAyOCArKysrKysrKysrKysrKysrKysrCj4+Pj4gICAgMSBmaWxlIGNoYW5nZWQsIDI4IGluc2Vy dGlvbnMoKykKPj4+Pgo+Pj4+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUv YmluZGluZ3MvYXJtL21lZGlhdGVrL21lZGlhdGVrLG1tc3lzLnlhbWwgYi9Eb2N1bWVudGF0aW9u L2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21lZGlhdGVrL21lZGlhdGVrLG1tc3lzLnlhbWwKPj4+ PiBpbmRleCBiM2M2ODg4YzE0NTcuLjBlZjY3Y2E0MTIyYiAxMDA2NDQKPj4+PiAtLS0gYS9Eb2N1 bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21lZGlhdGVrL21lZGlhdGVrLG1tc3lz LnlhbWwKPj4+PiArKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21l ZGlhdGVrL21lZGlhdGVrLG1tc3lzLnlhbWwKPj4+PiBAQCAtOTMsNiArOTMsMzQgQEAgcHJvcGVy dGllczoKPj4+PiAgICAgICcjcmVzZXQtY2VsbHMnOgo+Pj4+ICAgICAgICBjb25zdDogMQo+Pj4+ ICAgIAo+Pj4+ICsgIHBvcnQ6Cj4+Pj4gKyAgICAkcmVmOiAvc2NoZW1hcy9ncmFwaC55YW1sIy9w cm9wZXJ0aWVzL3BvcnQKPj4+PiArICAgIGRlc2NyaXB0aW9uOgo+Pj4+ICsgICAgICBPdXRwdXQg cG9ydCBub2RlLiBUaGlzIHBvcnQgY29ubmVjdHMgdGhlIE1NU1lTL1ZET1NZUyBvdXRwdXQgdG8K Pj4+PiArICAgICAgdGhlIGZpcnN0IGNvbXBvbmVudCBvZiBvbmUgZGlzcGxheSBwaXBlbGluZSwg Zm9yIGV4YW1wbGUgb25lIG9mCj4+Pj4gKyAgICAgIHRoZSBhdmFpbGFibGUgT1ZMIG9yIFJETUEg YmxvY2tzLgo+Pj4+ICsgICAgICBTb21lIE1lZGlhVGVrIFNvQ3Mgc3VwcG9ydCBtdWx0aXBsZSBk aXNwbGF5IG91dHB1dHMgcGVyIE1NU1lTLgo+Pj4KPj4+IFRoaXMgcGF0Y2ggbG9va3MgZ29vZCB0 byBtZS4gSnVzdCB3YW50IHRvIHNoYXJlIGFub3RoZXIgaW5mb3JtYXRpb24gZm9yIHlvdS4KPj4+ IEhlcmUgaXMgYW4gZXhhbXBsZSB0aGF0IG1tc3lzL3Zkb3N5cyBjb3VsZCBwb2ludCB0byB0aGUg ZGlzcGxheSBpbnRlcmZhY2Ugbm9kZS4KPj4+Cj4+PiB2ZG9zeXMwOiBzeXNjb25AMWMwMWEwMDAg ewo+Pj4gICAgICAgICAgICAgbW1zeXMtZGlzcGxheS1pbnRlcmZhY2UgPSA8JmRzaTA+LCA8JmRz aTE+LCA8JmRwX2ludGYwPjsKPj4+IH07Cj4+PiAgICAKPj4+IHZkb3N5czE6IHN5c2NvbkAxYzEw MDAwMCB7Cj4+PiAgICAgICAgICAgICBtbXN5cy1kaXNwbGF5LWludGVyZmFjZSA9IDwmZHBfaW50 ZjE+Owo+Pj4gfTsKPj4+Cj4+PiBUaGVyZSBpcyBubyBjb25mbGljdCB0aGF0IG1tc3lzL3Zkb3N5 cyBwb2ludCB0byBmaXJzdCBjb21wb25lbnQgb2Ygb25lIGRpc3BsYXkgcGlwZWxpbmUgb3IgcG9p bnQgdG8gZGlzcGxheSBpbnRlcmZhY2UuCj4+PiBCb3RoIGNvdWxkIGNvLWV4aXN0Lgo+Pj4KPj4K Pj4gSGV5IENLLAo+Pgo+PiB5ZXMsIHRoaXMgY291bGQgYmUgYW4gYWx0ZXJuYXRpdmUgdG8gdGhl IE9GIGdyYXBocywgYW5kIEknbSBzdXJlIHRoYXQgaXQnZCB3b3JrLAo+PiBldmVuIHRob3VnaCB0 aGlzIGtpbmQgb2Ygc29sdXRpb24gd291bGQgc3RpbGwgcmVxdWlyZSBwYXJ0aWFsIGhhcmRjb2Rp bmcgb2YgdGhlCj4+IGRpc3BsYXkgcGF0aHMgdXAgdW50aWwgbW1zeXMtZGlzcGxheS1pbnRlcmZh Y2UgKHNvLCB1cCB1bnRpbCBEU0kwLCBvciBEU0kxLCBldGMpLgo+Pgo+PiBUaGUgcHJvYmxlbSB3 aXRoIGEgc29sdXRpb24gbGlrZSB0aGlzIGlzIHRoYXQsIHdlbGwsIGV2ZW4gdGhvdWdoIGl0IHdv dWxkIHdvcmssCj4+IGV2ZW4gaWYgd2UgaWdub3JlIHRoZSBzdWJvcHRpbWFsIHBhcnRpYWwgaGFy ZGNvZGluZywgT0YgZ3JhcGhzIGFyZSBzb21ldGhpbmcKPj4gZ2VuZXJpYywgd2hpbGUgdGhlIG1t c3lzLWRpc3BsYXktaW50ZXJmYWNlIHdvdWxkIGJlIGEgTWVkaWFUZWsgc3BlY2lmaWMvY3VzdG9t Cj4+IHByb3BlcnR5Lgo+Pgo+PiBJbiB0aGUgZW5kLCByZXVzaW5nIGdlbmVyaWMga2VybmVsIGFw aXMvaW50ZXJmYWNlcy9ldGMgaXMgYWx3YXlzIHByZWZlcnJlZAo+PiBjb21wYXJlZCB0byBjdXN0 b20gc29sdXRpb25zLCBlc3BlY2lhbGx5IGluIHRoaXMgY2FzZSwgaW4gd2hpY2ggdGhlIGdlbmVy aWMKPj4gc3R1ZmYgaXMgb24tcGFyIChvciBhY3R1YWxseSwgZGVwZW5kaW5nIHB1cmVseSBvbiBw ZXJzb25hbCBvcGluaW9ucywgc3VwZXJpb3IpLgo+Pgo+PiBBcyBmb3IgdGhlIHR3byB0byBjby1l eGlzdCwgSSdtIG5vdCBzdXJlIHRoYXQgdGhpcyBpcyBhY3R1YWxseSBuZWVkZWQsIGFzIHRoZQo+ PiBPRiBncmFwaHMgYXJlIGFscmVhZHkgKGF0IHRoZSBlbmQgb2YgdGhlIGdyYXBoKSBwb2ludGlu ZyB0byB0aGUgZGlzcGxheSBpbnRlcmZhY2UuCj4+Cj4+IEluIGFueSBjYXNlLCBqdXN0IGFzIGEg cmVtaW5kZXI6IGlmIHRoZXJlIHdpbGwgYmUgYW55IG5lZWQgdG8gYWRkIGFueSBjdXN0b20KPj4g TWVkaWFUZWsgc3BlY2lmaWMgcHJvcGVydGllcyBsYXRlciwgaXQncyBvayBhbmQgd2UgY2FuIGRv IHRoYXQgYXQgYW55IHRpbWUuCj4gCj4gVGhlIGFsdGVybmF0aXZlIHNvbHV0aW9uIGlzIHVzaW5n IE9GIGdyYXBocyB0byBwb2ludCBkaXNwbGF5IGludGVyZmFjZSBhbmQgdXNlIE1lZGlhVGVrIHNw ZWNpZmljIHByb3BlcnR5IHRvIGZpcnN0IGNvbXBvbmVudDoKPiAKPiB2ZG9zeXMwOiBzeXNjb25A MWMwMWEwMDAgewo+ICAgICAgICAgICAgcG9ydHMgewo+ICAgICAgICAgICAgICAgICAgICAgcG9y dEAwIHsKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludCB7Cj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3RlLWVuZHBvaW50ID0gPCZkc2kw X2VuZHBvaW50PjsKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Owo+ICAgICAgICAg ICAgICAgICAgICAgfTsKPiAgIAo+ICAgICAgICAgICAgICAgICAgICAgcG9ydEAxIHsKPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludCB7Cj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmVtb3RlLWVuZHBvaW50ID0gPCZkc2kxX2VuZHBvaW50PjsK PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Owo+ICAgICAgICAgICAgICAgICAgICAg fTsKPiAgIAo+ICAgICAgICAgICAgICAgICAgICAgcG9ydEAyIHsKPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBlbmRwb2ludCB7Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmVtb3RlLWVuZHBvaW50ID0gPCZkcF9pbnRmMF9lbmRwb2ludD47Cj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfTsKPiAgICAgICAgICAgICAgICAgICAgIH07Cj4gICAg ICAgICAgICB9Owo+ICAgCj4gICAgICAgICAgICBkaXNwbGF5LWZpcnN0LWNvbXBvbmVudCA9IDwm b3ZsMD47Cj4gfTsKPiAKPiBBbmQgSSBhZ3JlZSB0byBpdCdzIGJldHRlciB0byBrZWVwIG9ubHkg T0YgZ3JhcGhzIHByb3BlcnR5LCBzbyBpdCB3b3VsZCBiZQo+IAo+IHZkb3N5czA6IHN5c2NvbkAx YzAxYTAwMCB7Cj4gICAgICAgICAgICBwb3J0cyB7Cj4gICAgICAgICAgICAgICAgICAgICBwb3J0 QDAgewo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50IHsKPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdGUtZW5kcG9pbnQgPSA8JmRzaTBf ZW5kcG9pbnQ+Owo+ICAgICAgICAgICAgICAgICAgICAKPiAgICAgICAgICAgICB9Owo+ICAgICAg ICAgICAgICAgICAgICAgfTsKPiAgIAo+ICAgICAgICAgICAgICAgICAgICAgcG9ydEAxIHsKPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludCB7Cj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3RlLWVuZHBvaW50ID0gPCZkc2kxX2VuZHBvaW50 PjsKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPiAgICAgfTsKPiAgICAgICAgICAgICAg ICAgICAgIH07Cj4gICAKPiAgICAgICAgICAgICAgICAgICAgIHBvcnRAMiB7Cj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQgewo+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJlbW90ZS1lbmRwb2ludCA9IDwmZHBfaW50ZjBfZW5kcG9pbnQ+Owo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KPiA7Cj4gICAgICAgICAgICAgICAgICAg ICB9Owo+ICAgICAgICAgICAgfTsKPiB9Owo+IAo+IE1heWJlIHdlIGNvdWxkIHVzZSBPRiBncmFw aHMgZm9yIGJvdGggZmlyc3QgY29tcG9uZW50IGFuZCBkaXNwbGF5IGludGVyZmFjZSBhbmQgZHJv cCB1c2luZyBNZWRpYVRlayBzcGVjaWZpYyBwcm9wZXJ0eS4KPiAKCldlIGNvdWxkLCBvciB3ZSBj YW4gc2ltcGx5IHdhbGsgdGhyb3VnaCB0aGUgT0YgR3JhcGggaW4gdGhlIGRyaXZlciBhbmQgZ2V0 IHRoZQpkaXNwbGF5IGludGVyZmFjZSBsaWtlIHRoYXQsIGFzIGl0J3MgYm9hcmQtc3BlY2lmaWMg Oy0pCgouLi5idXQgYW55d2F5LCBsZXQncyBzZWUgdGhhdCBsYXRlcjogYWZ0ZXIgZ2V0dGluZyB0 aGlzIHNlcmllcyB1cHN0cmVhbWVkLCBJIHdpbGwKY29udmVydCBhbGwgTWVkaWFUZWsgYm9hcmRz IChpbmNsdWRpbmcgQ2hyb21lYm9va3MpIHRvIHVzZSB0aGUgZ3JhcGhzIGluc3RlYWQsIGFuZAp5 b3UnbGwgc2VlIHRoYXQsIGF0IGxlYXN0IGZvciB0aGUgY3VycmVudGx5IHN1cHBvcnRlZCBib2Fy ZHMsIHRoZXJlJ3Mgbm8gbmVlZCBmb3IKYW55IGN1c3RvbSBwcm9wZXJ0eS4KCkFsc28sIHNldHRp bmcgdGhlIERTSTAvMS9kcGludGYgZW5kcG9pbnQgdG8gVkRPMCBpcyB0ZWNobmljYWxseSB3cm9u ZywgYXMgdGhhdCBpcwpzdXBwb3NlZCB0byBiZSB0aGUgbGFzdCBvbmUsIGFuZCBhIGdyYXBoIGlz IGNvbmNlcHR1YWxseSBzdXBwb3NlZCB0byBnbyBmcm9tIHRoZQpmaXJzdCB0byB0aGUgbGFzdCBp biBzZXF1ZW5jZS4KCippZiogd2Ugd2lsbCBldmVyIG5lZWQgKHByb2JhYmx5IG5vdCkgdG8gZ2V0 IHRoZSBWRE8wIG5vZGUgdG8gcG9pbnQgZGlyZWN0bHkgdG8KdGhlIGxhc3Qgbm9kZSBmb3Igd2hh dGV2ZXIgcmVhc29uLCB0aGUgcmlnaHQgd2F5IHdvdWxkIGJlIHRoZSBmaXJzdCBvbmUgeW91IHNh aWQsCnNvLCBtZWRpYXRlayxtbXN5cy1kaXNwbGF5LWludGVyZmFjZSA9IDwmZHNpMD4sIDwmZHNp MT4sIGV0YyBldGMKCi4uLm9yIG1lZGlhdGVrLG1tc3lzLXBvc3NpYmxlLWRpc3BsYXlzID0gPCAu Li4gcGhhbmRsZXMgPgoKLi4ub3IgYW55d2F5LCBtYW55IG90aGVyIHNvbHV0aW9ucyBhcmUgcG9z c2libGUgLSBidXQgYWdhaW4sIEkgdGhpbmsgdGhpcyBpcyBub3QKdGhlIHJpZ2h0IHRpbWUgdG8g dGhpbmsgYWJvdXQgdGhhdC4gS25vd2luZyB0aGF0IHRoZXJlIGFyZSBldmVudHVhbCBzb2x1dGlv bnMgZm9yCmFueSBuZWVkIHRoYXQgbWlnaHQgYXJpc2UgaW4gdGhlIGZ1dHVyZSBpcyBlbm91Z2gs IElNTyA6LSkKCkNoZWVycywKQW5nZWxvCgo+IFJlZ2FyZHMsCj4gQ0sKPiAKPj4KPj4gQ2hlZXJz IQo+PiBBbmdlbG8KPj4KPj4+IFJlZ2FyZHMsCj4+PiBDSwo+Pj4KPj4+PiArICAgIHByb3BlcnRp ZXM6Cj4+Pj4gKyAgICAgIGVuZHBvaW50QDA6Cj4+Pj4gKyAgICAgICAgJHJlZjogL3NjaGVtYXMv Z3JhcGgueWFtbCMvcHJvcGVydGllcy9lbmRwb2ludAo+Pj4+ICsgICAgICAgIGRlc2NyaXB0aW9u OiBPdXRwdXQgdG8gdGhlIHByaW1hcnkgZGlzcGxheSBwaXBlbGluZQo+Pj4+ICsKPj4+PiArICAg ICAgZW5kcG9pbnRAMToKPj4+PiArICAgICAgICAkcmVmOiAvc2NoZW1hcy9ncmFwaC55YW1sIy9w cm9wZXJ0aWVzL2VuZHBvaW50Cj4+Pj4gKyAgICAgICAgZGVzY3JpcHRpb246IE91dHB1dCB0byB0 aGUgc2Vjb25kYXJ5IGRpc3BsYXkgcGlwZWxpbmUKPj4+PiArCj4+Pj4gKyAgICAgIGVuZHBvaW50 QDI6Cj4+Pj4gKyAgICAgICAgJHJlZjogL3NjaGVtYXMvZ3JhcGgueWFtbCMvcHJvcGVydGllcy9l bmRwb2ludAo+Pj4+ICsgICAgICAgIGRlc2NyaXB0aW9uOiBPdXRwdXQgdG8gdGhlIHRlcnRpYXJ5 IGRpc3BsYXkgcGlwZWxpbmUKPj4+PiArCj4+Pj4gKyAgICBhbnlPZjoKPj4+PiArICAgICAgLSBy ZXF1aXJlZDoKPj4+PiArICAgICAgICAgIC0gZW5kcG9pbnRAMAo+Pj4+ICsgICAgICAtIHJlcXVp cmVkOgo+Pj4+ICsgICAgICAgICAgLSBlbmRwb2ludEAxCj4+Pj4gKyAgICAgIC0gcmVxdWlyZWQ6 Cj4+Pj4gKyAgICAgICAgICAtIGVuZHBvaW50QDIKPj4+PiArCj4+Pj4gICAgcmVxdWlyZWQ6Cj4+ Pj4gICAgICAtIGNvbXBhdGlibGUKPj4+PiAgICAgIC0gcmVnCj4+Cj4+CgoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFp bGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK