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 X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C913FC43381 for ; Thu, 21 Mar 2019 14:48:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 91883218D3 for ; Thu, 21 Mar 2019 14:48:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728138AbfCUOst (ORCPT ); Thu, 21 Mar 2019 10:48:49 -0400 Received: from metis.ext.pengutronix.de ([85.220.165.71]:40173 "EHLO metis.ext.pengutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727823AbfCUOst (ORCPT ); Thu, 21 Mar 2019 10:48:49 -0400 Received: from kresse.hi.pengutronix.de ([2001:67c:670:100:1d::2a]) by metis.ext.pengutronix.de with esmtp (Exim 4.89) (envelope-from ) id 1h6yzk-0002zw-DW; Thu, 21 Mar 2019 15:48:36 +0100 Message-ID: <1553179714.4806.39.camel@pengutronix.de> Subject: Re: [PATCH v4] arm64: dts: fsl: imx8mq: enable the multi sensor TMU From: Lucas Stach To: "Angus Ainslie (Purism)" , Fabio Estevam Cc: Rob Herring , Mark Rutland , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , NXP Linux Team , Carlo Caione , Abel Vesa , Daniel Baluta , Guido =?ISO-8859-1?Q?G=FCnther?= , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Date: Thu, 21 Mar 2019 15:48:34 +0100 In-Reply-To: <20190321125252.4498-1-angus@akkea.ca> References: <20190311213124.29325-1-angus@akkea.ca> <20190321125252.4498-1-angus@akkea.ca> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.22.6-1+deb9u1 Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::2a X-SA-Exim-Mail-From: l.stach@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am Donnerstag, den 21.03.2019, 05:52 -0700 schrieb Angus Ainslie (Purism): > Add the imx8mq TMU (Thermal management unit) nodes for CPU, > GPU, and VPU. > > Signed-off-by: Angus Ainslie (Purism) Reviewed-by: Lucas Stach > --- > > Changes since v3: > > Moved the annotation. > > Changes since v2: > > Updated alert and critical temps for commercial parts. > Fixed node names. > > Changes since v1: > > Removed references to multi sensor patch. > >  arch/arm64/boot/dts/freescale/imx8mq.dtsi | 118 ++++++++++++++++++++++ >  1 file changed, 118 insertions(+) > > diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq.dtsi > index b39c6c75c043..81d5ce1b1ec1 100644 > --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi > +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi > @@ -8,6 +8,7 @@ >  #include >  #include >  #include > +#include >  #include "imx8mq-pinfunc.h" >   >  / { > @@ -89,6 +90,7 @@ > >   reg = <0x0>; > >   enable-method = "psci"; > >   next-level-cache = <&A53_L2>; > > + #cooling-cells = <2>; > >   }; >   > > >   A53_1: cpu@1 { > @@ -97,6 +99,7 @@ > >   reg = <0x1>; > >   enable-method = "psci"; > >   next-level-cache = <&A53_L2>; > > + #cooling-cells = <2>; > >   }; >   > > >   A53_2: cpu@2 { > @@ -105,6 +108,7 @@ > >   reg = <0x2>; > >   enable-method = "psci"; > >   next-level-cache = <&A53_L2>; > > + #cooling-cells = <2>; > >   }; >   > > >   A53_3: cpu@3 { > @@ -113,6 +117,7 @@ > >   reg = <0x3>; > >   enable-method = "psci"; > >   next-level-cache = <&A53_L2>; > > + #cooling-cells = <2>; > >   }; >   > >   A53_L2: l2-cache0 { > @@ -210,6 +215,119 @@ > >   #interrupt-cells = <2>; > >   }; >   > > > + tmu: tmu@30260000 { > > + compatible = "fsl,imx8mq-tmu"; > > + reg = <0x30260000 0x10000>; > > + interrupt = ; > > + little-endian; > > + fsl,tmu-range = <0xb0000 0xa0026 0x80048 0x70061>; > > + fsl,tmu-calibration = <0x00000000 0x00000023 > > +        0x00000001 0x00000029 > > +        0x00000002 0x0000002f > > +        0x00000003 0x00000035 > > +        0x00000004 0x0000003d > > +        0x00000005 0x00000043 > > +        0x00000006 0x0000004b > > +        0x00000007 0x00000051 > > +        0x00000008 0x00000057 > > +        0x00000009 0x0000005f > > +        0x0000000a 0x00000067 > > +        0x0000000b 0x0000006f > + > > +        0x00010000 0x0000001b > > +        0x00010001 0x00000023 > > +        0x00010002 0x0000002b > > +        0x00010003 0x00000033 > > +        0x00010004 0x0000003b > > +        0x00010005 0x00000043 > > +        0x00010006 0x0000004b > > +        0x00010007 0x00000055 > > +        0x00010008 0x0000005d > > +        0x00010009 0x00000067 > > +        0x0001000a 0x00000070 > + > > +        0x00020000 0x00000017 > > +        0x00020001 0x00000023 > > +        0x00020002 0x0000002d > > +        0x00020003 0x00000037 > > +        0x00020004 0x00000041 > > +        0x00020005 0x0000004b > > +        0x00020006 0x00000057 > > +        0x00020007 0x00000063 > > +        0x00020008 0x0000006f > + > > +        0x00030000 0x00000015 > > +        0x00030001 0x00000021 > > +        0x00030002 0x0000002d > > +        0x00030003 0x00000039 > > +        0x00030004 0x00000045 > > +        0x00030005 0x00000053 > > +        0x00030006 0x0000005f > > +        0x00030007 0x00000071>; > > + #thermal-sensor-cells =  <1>; > > + }; > + > > + thermal-zones { > > + cpu-thermal { > > + polling-delay-passive = <250>; > > + polling-delay = <2000>; > > + thermal-sensors = <&tmu 0>; > + > > + trips { > > + cpu_alert: cpu-alert { > > + temperature = <80000>; > > + hysteresis = <2000>; > > + type = "passive"; > > + }; > + > > + cpu-crit { > > + temperature = <90000>; > > + hysteresis = <2000>; > > + type = "critical"; > > + }; > > + }; > + > > + cooling-maps { > > + map0 { > > + trip = <&cpu_alert>; > > + cooling-device = > > + <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > > + <&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > > + <&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > > + <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; > > + }; > > + }; > > + }; > + > > + gpu-thermal { > > + polling-delay-passive = <250>; > > + polling-delay = <2000>; > > + thermal-sensors = <&tmu 1>; > + > > + trips { > > + gpu-crit { > > + temperature = <90000>; > > + hysteresis = <2000>; > > + type = "critical"; > > + }; > > + }; > > + }; > + > > + vpu-thermal { > > + polling-delay-passive = <250>; > > + polling-delay = <2000>; > > + thermal-sensors = <&tmu 2>; > + > > + trips { > > + vpu-crit { > > + temperature = <90000>; > > + hysteresis = <2000>; > > + type = "critical"; > > + }; > > + }; > > + }; > > + }; > + > > >   wdog1: watchdog@30280000 { > >   compatible = "fsl,imx8mq-wdt", "fsl,imx21-wdt"; > >   reg = <0x30280000 0x10000>; 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 X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A5B74C43381 for ; Thu, 21 Mar 2019 14:48:59 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 76C6320693 for ; Thu, 21 Mar 2019 14:48:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="raGkiDhG" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 76C6320693 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=pengutronix.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Mime-Version:References:In-Reply-To: Date:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=YqZuOUyBD8JzcDXe/Twh6DZBBwAa8A5jrvREqfXJHkg=; b=raGkiDhGoYGnE+ VBjrI8LG7aY6NwjHnYQZefjrbc4LiI902hLvzJpnXPNmNi6X4cM8gZzPDW3nhPZZ565off/bDWR1/ pNBhmoZnYmb4LTxKzRJu9s3F0BwdjKNe18MmYT4lzDSM+bECcKWew3x+C860PpIJ104vY0qSWcybR /YqWXJ+aqFCHns5GA7fXHT18PI1LReNF6KGXujDkPgI7033m8m0Xe2H9eHAiE72TuIegZ1tiJsAAT tBtpR0apyRWiuxE0m+y7YV7kdbvVmvCmX1/jkcf9J1WXUFTqRIsA2adstV+edjaFEERxk4czZS/Bp SpR5RnVKk0cC7gchUpjA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h6z01-0006IM-Mn; Thu, 21 Mar 2019 14:48:53 +0000 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1h6yzx-0006Ha-Cd for linux-arm-kernel@lists.infradead.org; Thu, 21 Mar 2019 14:48:50 +0000 Received: from kresse.hi.pengutronix.de ([2001:67c:670:100:1d::2a]) by metis.ext.pengutronix.de with esmtp (Exim 4.89) (envelope-from ) id 1h6yzk-0002zw-DW; Thu, 21 Mar 2019 15:48:36 +0100 Message-ID: <1553179714.4806.39.camel@pengutronix.de> Subject: Re: [PATCH v4] arm64: dts: fsl: imx8mq: enable the multi sensor TMU From: Lucas Stach To: "Angus Ainslie (Purism)" , Fabio Estevam Date: Thu, 21 Mar 2019 15:48:34 +0100 In-Reply-To: <20190321125252.4498-1-angus@akkea.ca> References: <20190311213124.29325-1-angus@akkea.ca> <20190321125252.4498-1-angus@akkea.ca> X-Mailer: Evolution 3.22.6-1+deb9u1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::2a X-SA-Exim-Mail-From: l.stach@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190321_074849_590179_4A3EAA14 X-CRM114-Status: GOOD ( 13.44 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , devicetree@vger.kernel.org, Abel Vesa , Carlo Caione , Daniel Baluta , Sascha Hauer , linux-kernel@vger.kernel.org, Rob Herring , NXP Linux Team , Pengutronix Kernel Team , Shawn Guo , Guido =?ISO-8859-1?Q?G=FCnther?= , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org QW0gRG9ubmVyc3RhZywgZGVuIDIxLjAzLjIwMTksIDA1OjUyIC0wNzAwIHNjaHJpZWIgQW5ndXMg QWluc2xpZSAoUHVyaXNtKToKPiBBZGQgdGhlIGlteDhtcSBUTVUgKFRoZXJtYWwgbWFuYWdlbWVu dCB1bml0KSBub2RlcyBmb3IgQ1BVLAo+IEdQVSwgYW5kIFZQVS4KPiAKPiBTaWduZWQtb2ZmLWJ5 OiBBbmd1cyBBaW5zbGllIChQdXJpc20pIDxhbmd1c0Bha2tlYS5jYT4KClJldmlld2VkLWJ5OiBM dWNhcyBTdGFjaCA8bC5zdGFjaEBwZW5ndXRyb25peC5kZT4KCj4gLS0tCj4gCj4gQ2hhbmdlcyBz aW5jZSB2MzoKPiAKPiBNb3ZlZCB0aGUgYW5ub3RhdGlvbi4KPiAKPiBDaGFuZ2VzIHNpbmNlIHYy Ogo+IAo+IFVwZGF0ZWQgYWxlcnQgYW5kIGNyaXRpY2FsIHRlbXBzIGZvciBjb21tZXJjaWFsIHBh cnRzLgo+IEZpeGVkIG5vZGUgbmFtZXMuCj4gCj4gQ2hhbmdlcyBzaW5jZSB2MToKPiAKPiBSZW1v dmVkIHJlZmVyZW5jZXMgdG8gbXVsdGkgc2Vuc29yIHBhdGNoLgo+IAo+IMKgYXJjaC9hcm02NC9i b290L2R0cy9mcmVlc2NhbGUvaW14OG1xLmR0c2kgfCAxMTggKysrKysrKysrKysrKysrKysrKysr Kwo+IMKgMSBmaWxlIGNoYW5nZWQsIDExOCBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBh L2FyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2lteDhtcS5kdHNpIGIvYXJjaC9hcm02NC9i b290L2R0cy9mcmVlc2NhbGUvaW14OG1xLmR0c2kKPiBpbmRleCBiMzljNmM3NWMwNDMuLjgxZDVj ZTFiMWVjMSAxMDA2NDQKPiAtLS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9pbXg4 bXEuZHRzaQo+ICsrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2lteDhtcS5kdHNp Cj4gQEAgLTgsNiArOCw3IEBACj4gwqAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvcG93ZXIvaW14OG1x LXBvd2VyLmg+Cj4gwqAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvZ3Bpby9ncGlvLmg+Cj4gwqAjaW5j bHVkZSA8ZHQtYmluZGluZ3MvaW50ZXJydXB0LWNvbnRyb2xsZXIvYXJtLWdpYy5oPgo+ICsjaW5j bHVkZSA8ZHQtYmluZGluZ3MvdGhlcm1hbC90aGVybWFsLmg+Cj4gwqAjaW5jbHVkZSAiaW14OG1x LXBpbmZ1bmMuaCIKPiDCoAo+IMKgLyB7Cj4gQEAgLTg5LDYgKzkwLDcgQEAKPiA+IMKgCQkJcmVn ID0gPDB4MD47Cj4gPiDCoAkJCWVuYWJsZS1tZXRob2QgPSAicHNjaSI7Cj4gPiDCoAkJCW5leHQt bGV2ZWwtY2FjaGUgPSA8JkE1M19MMj47Cj4gPiArCQkJI2Nvb2xpbmctY2VsbHMgPSA8Mj47Cj4g PiDCoAkJfTsKPiDCoAo+ID4gPiDCoAkJQTUzXzE6IGNwdUAxIHsKPiBAQCAtOTcsNiArOTksNyBA QAo+ID4gwqAJCQlyZWcgPSA8MHgxPjsKPiA+IMKgCQkJZW5hYmxlLW1ldGhvZCA9ICJwc2NpIjsK PiA+IMKgCQkJbmV4dC1sZXZlbC1jYWNoZSA9IDwmQTUzX0wyPjsKPiA+ICsJCQkjY29vbGluZy1j ZWxscyA9IDwyPjsKPiA+IMKgCQl9Owo+IMKgCj4gPiA+IMKgCQlBNTNfMjogY3B1QDIgewo+IEBA IC0xMDUsNiArMTA4LDcgQEAKPiA+IMKgCQkJcmVnID0gPDB4Mj47Cj4gPiDCoAkJCWVuYWJsZS1t ZXRob2QgPSAicHNjaSI7Cj4gPiDCoAkJCW5leHQtbGV2ZWwtY2FjaGUgPSA8JkE1M19MMj47Cj4g PiArCQkJI2Nvb2xpbmctY2VsbHMgPSA8Mj47Cj4gPiDCoAkJfTsKPiDCoAo+ID4gPiDCoAkJQTUz XzM6IGNwdUAzIHsKPiBAQCAtMTEzLDYgKzExNyw3IEBACj4gPiDCoAkJCXJlZyA9IDwweDM+Owo+ ID4gwqAJCQllbmFibGUtbWV0aG9kID0gInBzY2kiOwo+ID4gwqAJCQluZXh0LWxldmVsLWNhY2hl ID0gPCZBNTNfTDI+Owo+ID4gKwkJCSNjb29saW5nLWNlbGxzID0gPDI+Owo+ID4gwqAJCX07Cj4g wqAKPiA+IMKgCQlBNTNfTDI6IGwyLWNhY2hlMCB7Cj4gQEAgLTIxMCw2ICsyMTUsMTE5IEBACj4g PiDCoAkJCQkjaW50ZXJydXB0LWNlbGxzID0gPDI+Owo+ID4gwqAJCQl9Owo+IMKgCj4gPiA+ICsJ CQl0bXU6IHRtdUAzMDI2MDAwMCB7Cj4gPiArCQkJCWNvbXBhdGlibGUgPSAiZnNsLGlteDhtcS10 bXUiOwo+ID4gKwkJCQlyZWcgPSA8MHgzMDI2MDAwMCAweDEwMDAwPjsKPiA+ICsJCQkJaW50ZXJy dXB0ID0gPEdJQ19TUEkgNDkgSVJRX1RZUEVfTEVWRUxfSElHSD47Cj4gPiArCQkJCWxpdHRsZS1l bmRpYW47Cj4gPiArCQkJCWZzbCx0bXUtcmFuZ2UgPSA8MHhiMDAwMCAweGEwMDI2IDB4ODAwNDgg MHg3MDA2MT47Cj4gPiArCQkJCWZzbCx0bXUtY2FsaWJyYXRpb24gPSA8MHgwMDAwMDAwMCAweDAw MDAwMDIzCj4gPiArCQkJCQkJwqDCoMKgwqDCoMKgwqAweDAwMDAwMDAxIDB4MDAwMDAwMjkKPiA+ ICsJCQkJCQnCoMKgwqDCoMKgwqDCoDB4MDAwMDAwMDIgMHgwMDAwMDAyZgo+ID4gKwkJCQkJCcKg wqDCoMKgwqDCoMKgMHgwMDAwMDAwMyAweDAwMDAwMDM1Cj4gPiArCQkJCQkJwqDCoMKgwqDCoMKg wqAweDAwMDAwMDA0IDB4MDAwMDAwM2QKPiA+ICsJCQkJCQnCoMKgwqDCoMKgwqDCoDB4MDAwMDAw MDUgMHgwMDAwMDA0Mwo+ID4gKwkJCQkJCcKgwqDCoMKgwqDCoMKgMHgwMDAwMDAwNiAweDAwMDAw MDRiCj4gPiArCQkJCQkJwqDCoMKgwqDCoMKgwqAweDAwMDAwMDA3IDB4MDAwMDAwNTEKPiA+ICsJ CQkJCQnCoMKgwqDCoMKgwqDCoDB4MDAwMDAwMDggMHgwMDAwMDA1Nwo+ID4gKwkJCQkJCcKgwqDC oMKgwqDCoMKgMHgwMDAwMDAwOSAweDAwMDAwMDVmCj4gPiArCQkJCQkJwqDCoMKgwqDCoMKgwqAw eDAwMDAwMDBhIDB4MDAwMDAwNjcKPiA+ICsJCQkJCQnCoMKgwqDCoMKgwqDCoDB4MDAwMDAwMGIg MHgwMDAwMDA2Zgo+ICsKPiA+ICsJCQkJCQnCoMKgwqDCoMKgwqDCoDB4MDAwMTAwMDAgMHgwMDAw MDAxYgo+ID4gKwkJCQkJCcKgwqDCoMKgwqDCoMKgMHgwMDAxMDAwMSAweDAwMDAwMDIzCj4gPiAr CQkJCQkJwqDCoMKgwqDCoMKgwqAweDAwMDEwMDAyIDB4MDAwMDAwMmIKPiA+ICsJCQkJCQnCoMKg wqDCoMKgwqDCoDB4MDAwMTAwMDMgMHgwMDAwMDAzMwo+ID4gKwkJCQkJCcKgwqDCoMKgwqDCoMKg MHgwMDAxMDAwNCAweDAwMDAwMDNiCj4gPiArCQkJCQkJwqDCoMKgwqDCoMKgwqAweDAwMDEwMDA1 IDB4MDAwMDAwNDMKPiA+ICsJCQkJCQnCoMKgwqDCoMKgwqDCoDB4MDAwMTAwMDYgMHgwMDAwMDA0 Ygo+ID4gKwkJCQkJCcKgwqDCoMKgwqDCoMKgMHgwMDAxMDAwNyAweDAwMDAwMDU1Cj4gPiArCQkJ CQkJwqDCoMKgwqDCoMKgwqAweDAwMDEwMDA4IDB4MDAwMDAwNWQKPiA+ICsJCQkJCQnCoMKgwqDC oMKgwqDCoDB4MDAwMTAwMDkgMHgwMDAwMDA2Nwo+ID4gKwkJCQkJCcKgwqDCoMKgwqDCoMKgMHgw MDAxMDAwYSAweDAwMDAwMDcwCj4gKwo+ID4gKwkJCQkJCcKgwqDCoMKgwqDCoMKgMHgwMDAyMDAw MCAweDAwMDAwMDE3Cj4gPiArCQkJCQkJwqDCoMKgwqDCoMKgwqAweDAwMDIwMDAxIDB4MDAwMDAw MjMKPiA+ICsJCQkJCQnCoMKgwqDCoMKgwqDCoDB4MDAwMjAwMDIgMHgwMDAwMDAyZAo+ID4gKwkJ CQkJCcKgwqDCoMKgwqDCoMKgMHgwMDAyMDAwMyAweDAwMDAwMDM3Cj4gPiArCQkJCQkJwqDCoMKg wqDCoMKgwqAweDAwMDIwMDA0IDB4MDAwMDAwNDEKPiA+ICsJCQkJCQnCoMKgwqDCoMKgwqDCoDB4 MDAwMjAwMDUgMHgwMDAwMDA0Ygo+ID4gKwkJCQkJCcKgwqDCoMKgwqDCoMKgMHgwMDAyMDAwNiAw eDAwMDAwMDU3Cj4gPiArCQkJCQkJwqDCoMKgwqDCoMKgwqAweDAwMDIwMDA3IDB4MDAwMDAwNjMK PiA+ICsJCQkJCQnCoMKgwqDCoMKgwqDCoDB4MDAwMjAwMDggMHgwMDAwMDA2Zgo+ICsKPiA+ICsJ CQkJCQnCoMKgwqDCoMKgwqDCoDB4MDAwMzAwMDAgMHgwMDAwMDAxNQo+ID4gKwkJCQkJCcKgwqDC oMKgwqDCoMKgMHgwMDAzMDAwMSAweDAwMDAwMDIxCj4gPiArCQkJCQkJwqDCoMKgwqDCoMKgwqAw eDAwMDMwMDAyIDB4MDAwMDAwMmQKPiA+ICsJCQkJCQnCoMKgwqDCoMKgwqDCoDB4MDAwMzAwMDMg MHgwMDAwMDAzOQo+ID4gKwkJCQkJCcKgwqDCoMKgwqDCoMKgMHgwMDAzMDAwNCAweDAwMDAwMDQ1 Cj4gPiArCQkJCQkJwqDCoMKgwqDCoMKgwqAweDAwMDMwMDA1IDB4MDAwMDAwNTMKPiA+ICsJCQkJ CQnCoMKgwqDCoMKgwqDCoDB4MDAwMzAwMDYgMHgwMDAwMDA1Zgo+ID4gKwkJCQkJCcKgwqDCoMKg wqDCoMKgMHgwMDAzMDAwNyAweDAwMDAwMDcxPjsKPiA+ICsJCQkJI3RoZXJtYWwtc2Vuc29yLWNl bGxzID3CoMKgPDE+Owo+ID4gKwkJCX07Cj4gKwo+ID4gKwkJCXRoZXJtYWwtem9uZXMgewo+ID4g KwkJCQljcHUtdGhlcm1hbCB7Cj4gPiArCQkJCQlwb2xsaW5nLWRlbGF5LXBhc3NpdmUgPSA8MjUw PjsKPiA+ICsJCQkJCXBvbGxpbmctZGVsYXkgPSA8MjAwMD47Cj4gPiArCQkJCQl0aGVybWFsLXNl bnNvcnMgPSA8JnRtdSAwPjsKPiArCj4gPiArCQkJCQl0cmlwcyB7Cj4gPiArCQkJCQkJY3B1X2Fs ZXJ0OiBjcHUtYWxlcnQgewo+ID4gKwkJCQkJCQl0ZW1wZXJhdHVyZSA9IDw4MDAwMD47Cj4gPiAr CQkJCQkJCWh5c3RlcmVzaXMgPSA8MjAwMD47Cj4gPiArCQkJCQkJCXR5cGUgPSAicGFzc2l2ZSI7 Cj4gPiArCQkJCQkJfTsKPiArCj4gPiArCQkJCQkJY3B1LWNyaXQgewo+ID4gKwkJCQkJCQl0ZW1w ZXJhdHVyZSA9IDw5MDAwMD47Cj4gPiArCQkJCQkJCWh5c3RlcmVzaXMgPSA8MjAwMD47Cj4gPiAr CQkJCQkJCXR5cGUgPSAiY3JpdGljYWwiOwo+ID4gKwkJCQkJCX07Cj4gPiArCQkJCQl9Owo+ICsK PiA+ICsJCQkJCWNvb2xpbmctbWFwcyB7Cj4gPiArCQkJCQkJbWFwMCB7Cj4gPiArCQkJCQkJCXRy aXAgPSA8JmNwdV9hbGVydD47Cj4gPiArCQkJCQkJCWNvb2xpbmctZGV2aWNlID0KPiA+ICsJCQkJ CQkJCTwmQTUzXzAgVEhFUk1BTF9OT19MSU1JVCBUSEVSTUFMX05PX0xJTUlUPiwKPiA+ICsJCQkJ CQkJCTwmQTUzXzEgVEhFUk1BTF9OT19MSU1JVCBUSEVSTUFMX05PX0xJTUlUPiwKPiA+ICsJCQkJ CQkJCTwmQTUzXzIgVEhFUk1BTF9OT19MSU1JVCBUSEVSTUFMX05PX0xJTUlUPiwKPiA+ICsJCQkJ CQkJCTwmQTUzXzMgVEhFUk1BTF9OT19MSU1JVCBUSEVSTUFMX05PX0xJTUlUPjsKPiA+ICsJCQkJ CQl9Owo+ID4gKwkJCQkJfTsKPiA+ICsJCQkJfTsKPiArCj4gPiArCQkJCWdwdS10aGVybWFsIHsK PiA+ICsJCQkJCXBvbGxpbmctZGVsYXktcGFzc2l2ZSA9IDwyNTA+Owo+ID4gKwkJCQkJcG9sbGlu Zy1kZWxheSA9IDwyMDAwPjsKPiA+ICsJCQkJCXRoZXJtYWwtc2Vuc29ycyA9IDwmdG11IDE+Owo+ ICsKPiA+ICsJCQkJCXRyaXBzIHsKPiA+ICsJCQkJCQlncHUtY3JpdCB7Cj4gPiArCQkJCQkJCXRl bXBlcmF0dXJlID0gPDkwMDAwPjsKPiA+ICsJCQkJCQkJaHlzdGVyZXNpcyA9IDwyMDAwPjsKPiA+ ICsJCQkJCQkJdHlwZSA9ICJjcml0aWNhbCI7Cj4gPiArCQkJCQkJfTsKPiA+ICsJCQkJCX07Cj4g PiArCQkJCX07Cj4gKwo+ID4gKwkJCQl2cHUtdGhlcm1hbCB7Cj4gPiArCQkJCQlwb2xsaW5nLWRl bGF5LXBhc3NpdmUgPSA8MjUwPjsKPiA+ICsJCQkJCXBvbGxpbmctZGVsYXkgPSA8MjAwMD47Cj4g PiArCQkJCQl0aGVybWFsLXNlbnNvcnMgPSA8JnRtdSAyPjsKPiArCj4gPiArCQkJCQl0cmlwcyB7 Cj4gPiArCQkJCQkJdnB1LWNyaXQgewo+ID4gKwkJCQkJCQl0ZW1wZXJhdHVyZSA9IDw5MDAwMD47 Cj4gPiArCQkJCQkJCWh5c3RlcmVzaXMgPSA8MjAwMD47Cj4gPiArCQkJCQkJCXR5cGUgPSAiY3Jp dGljYWwiOwo+ID4gKwkJCQkJCX07Cj4gPiArCQkJCQl9Owo+ID4gKwkJCQl9Owo+ID4gKwkJCX07 Cj4gKwo+ID4gPiDCoAkJCXdkb2cxOiB3YXRjaGRvZ0AzMDI4MDAwMCB7Cj4gPiDCoAkJCQljb21w YXRpYmxlID0gImZzbCxpbXg4bXEtd2R0IiwgImZzbCxpbXgyMS13ZHQiOwo+ID4gwqAJCQkJcmVn ID0gPDB4MzAyODAwMDAgMHgxMDAwMD47CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0t a2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==