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=-16.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable 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 4B85AC4743C for ; Mon, 14 Jun 2021 15:29:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 2F85461352 for ; Mon, 14 Jun 2021 15:29:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234307AbhFNPbH (ORCPT ); Mon, 14 Jun 2021 11:31:07 -0400 Received: from mail-ej1-f47.google.com ([209.85.218.47]:33537 "EHLO mail-ej1-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234196AbhFNP3u (ORCPT ); Mon, 14 Jun 2021 11:29:50 -0400 Received: by mail-ej1-f47.google.com with SMTP id g20so17440937ejt.0 for ; Mon, 14 Jun 2021 08:27:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monstr-eu.20150623.gappssmtp.com; s=20150623; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Zn8Y8N57YHd1bEFyCFoGR6ey+RtBpPTsCBiCe8Jyrhc=; b=18AO2fYsuLQpKw7M+i8R/s2nSsjxyepVSHn7Aj55Re8glAoSIgxEZ/5amuRHCf/N4f KB9upfOeLoHZs/I5aFqWaELoO2T9B6HwgCxpbIqj1t+mRvA5VeKL53R3aoLiMWhKTG3H J4AYdvJnAM77XfsuYif/YUMe8dcoP/t5k8LsBQ1H3nWUx4wgCDAgSJcLBjLDfFhYzAfO pEbW2Pdv+Cs/MN8ZxBbFV/vIjuZF+DltIi0DdHX26p4iv5aUhPspyyLYfSl11mUr1LIO zekG9wGS7YwUBXjkzEdCy9AGZqCo3qukXMa9slM3EudQj0ZayN87hO7QnmEdjoqCSgOI PKtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=Zn8Y8N57YHd1bEFyCFoGR6ey+RtBpPTsCBiCe8Jyrhc=; b=sxObocJhnl+hlVCi+U7qQASKNynOa9wpa6C9N63sh1g1PQDjhc9ap1NK3AjDFvPOlg wYKqUZfl/0PRgyOasH6UjR17LJcnoJ++nVFzlUCONcMaQLGcMDG40tgirC8sA6S8lqO+ m/PpXk93uR7ZOe/ukae/eWqQH6HWxondhTz8mM4umzuxLLgFUDBGfSB3uST7Dv1F243y W50pZDXj3nWbGKK8O1swhac4XdptotMHHnVdEcZMwcHFT6aHDBv/aM7wf30mIsoMS/Su U6BcohyD1sWSxmslbk5A317+3+FX/rOWrRbT+9N/ZsXst7eMGxFlvtpVtW7ykQ/4Tk7S XtaA== X-Gm-Message-State: AOAM530jR/RQJMQdFNqkhFvlPcNahSZhqBvxRWm7EsMA76AStJRBoGlh breYNoWArFh4vG0FbsOMxtx6461A/9kwzcxd X-Google-Smtp-Source: ABdhPJxyAqW9YP/TjSWvSiaecvjD8eQVeiISwwwZLkhsZyl39T2sHxZXHaEZEIsZEH8Szh7y/xdANA== X-Received: by 2002:a17:906:a294:: with SMTP id i20mr15999237ejz.330.1623684391734; Mon, 14 Jun 2021 08:26:31 -0700 (PDT) Received: from localhost ([2a02:768:2307:40d6:f666:9af6:3fed:e53b]) by smtp.gmail.com with ESMTPSA id j22sm7479024eje.123.2021.06.14.08.26.30 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 14 Jun 2021 08:26:31 -0700 (PDT) Sender: Michal Simek From: Michal Simek To: linux-kernel@vger.kernel.org, monstr@monstr.eu, michal.simek@xilinx.com, git@xilinx.com, Viresh Kumar Cc: Geert Uytterhoeven , Krzysztof Kozlowski , Michael Walle , Rob Herring , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 33/33] arm64: zynqmp: Add support for Xilinx Kria SOM board Date: Mon, 14 Jun 2021 17:25:41 +0200 Message-Id: <97588ccfcdc21c53f732d3948ae85abed6539256.1623684253.git.michal.simek@xilinx.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org There are couple of revisions of SOMs (k26) and associated carrier cards (kv260). SOM itself has two major versions: sm-k26 - SOM with EMMC smk-k26 - SOM without EMMC used on starter kit with preprogrammed firmware in QSPI. SOMs are describing only devices available on the SOM or connections which are described in specification (for example UART, fwuen). Signed-off-by: Michal Simek --- Changes in v2: - Use sugar syntax - reported by Geert - Update copyright years - Fix SD3.0 comment alignment - Remove one newline from Makefile https://www.xilinx.com/products/som/kria.html --- .../devicetree/bindings/arm/xilinx.yaml | 31 ++ arch/arm64/boot/dts/xilinx/Makefile | 10 + .../boot/dts/xilinx/zynqmp-sck-kv-g-revA.dts | 335 ++++++++++++++++++ .../boot/dts/xilinx/zynqmp-sck-kv-g-revB.dts | 318 +++++++++++++++++ .../boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 289 +++++++++++++++ .../boot/dts/xilinx/zynqmp-smk-k26-revA.dts | 21 ++ 6 files changed, 1004 insertions(+) create mode 100644 arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dts create mode 100644 arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dts create mode 100644 arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts create mode 100644 arch/arm64/boot/dts/xilinx/zynqmp-smk-k26-revA.dts diff --git a/Documentation/devicetree/bindings/arm/xilinx.yaml b/Documentation/devicetree/bindings/arm/xilinx.yaml index a0b1ae6e3e71..1a4a03dfaf7f 100644 --- a/Documentation/devicetree/bindings/arm/xilinx.yaml +++ b/Documentation/devicetree/bindings/arm/xilinx.yaml @@ -116,6 +116,37 @@ properties: - const: xlnx,zynqmp-zcu111 - const: xlnx,zynqmp + - description: Xilinx Kria SOMs + items: + - const: xlnx,zynqmp-sm-k26-rev1 + - const: xlnx,zynqmp-sm-k26-revB + - const: xlnx,zynqmp-sm-k26-revA + - const: xlnx,zynqmp-sm-k26 + - const: xlnx,zynqmp + + - description: Xilinx Kria SOMs (starter) + items: + - const: xlnx,zynqmp-smk-k26-rev1 + - const: xlnx,zynqmp-smk-k26-revB + - const: xlnx,zynqmp-smk-k26-revA + - const: xlnx,zynqmp-smk-k26 + - const: xlnx,zynqmp + + - description: Xilinx Kria Carrier Cards (revA/Y/Z) + items: + - const: xlnx,zynqmp-sk-kv260-revZ + - const: xlnx,zynqmp-sk-kv260-revY + - const: xlnx,zynqmp-sk-kv260-revA + - const: xlnx,zynqmp-sk-k260 + - const: xlnx,zynqmp + + - description: Xilinx Kria Carrier Cards (revB/1) + items: + - const: xlnx,zynqmp-sk-kv260-rev1 + - const: xlnx,zynqmp-sk-kv260-revB + - const: xlnx,zynqmp-sk-k260 + - const: xlnx,zynqmp + additionalProperties: true ... diff --git a/arch/arm64/boot/dts/xilinx/Makefile b/arch/arm64/boot/dts/xilinx/Makefile index 083ed52337fd..8e43bef2c57e 100644 --- a/arch/arm64/boot/dts/xilinx/Makefile +++ b/arch/arm64/boot/dts/xilinx/Makefile @@ -17,3 +17,13 @@ dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu104-revA.dtb dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu104-revC.dtb dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu106-revA.dtb dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu111-revA.dtb + +dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-sm-k26-revA.dtb +dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-smk-k26-revA.dtb + +som-AA-dtbs := zynqmp-sm-k26-revA.dtb zynqmp-sck-kv-g-revA.dtbo +som-AB-dtbs := zynqmp-sm-k26-revA.dtb zynqmp-sck-kv-g-revB.dtbo +starter-AA-dtbs := zynqmp-smk-k26-revA.dtb zynqmp-sck-kv-g-revA.dtbo +starter-AB-dtbs := zynqmp-smk-k26-revA.dtb zynqmp-sck-kv-g-revB.dtbo + +dtb-$(CONFIG_ARCH_ZYNQMP) += som-AA.dtb som-AB.dtb starter-AA.dtb starter-AB.dtb diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dts new file mode 100644 index 000000000000..59d5751e0634 --- /dev/null +++ b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dts @@ -0,0 +1,335 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * dts file for KV260 revA Carrier Card + * + * (C) Copyright 2020 - 2021, Xilinx, Inc. + * + * SD level shifter: + * "A" – A01 board un-modified (NXP) + * "Y" – A01 board modified with legacy interposer (Nexperia) + * "Z" – A01 board modified with Diode interposer + * + * Michal Simek + */ + + #include + #include + #include + #include + +/dts-v1/; +/plugin/; + +&{/} { + compatible = "xlnx,zynqmp-sk-kv260-revA", + "xlnx,zynqmp-sk-kv260-revY", + "xlnx,zynqmp-sk-kv260-revZ", + "xlnx,zynqmp-sk-kv260", "xlnx,zynqmp"; +}; + +&i2c1 { /* I2C_SCK C23/C24 - MIO from SOM */ + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&pinctrl_i2c1_default>; + pinctrl-1 = <&pinctrl_i2c1_gpio>; + scl-gpios = <&gpio 24 GPIO_ACTIVE_HIGH>; + sda-gpios = <&gpio 25 GPIO_ACTIVE_HIGH>; + + u14: ina260@40 { /* u14 */ + compatible = "ti,ina260"; + #io-channel-cells = <1>; + label = "ina260-u14"; + reg = <0x40>; + }; + /* u27 - 0xe0 - STDP4320 DP/HDMI splitter */ +}; + +&amba { + ina260-u14 { + compatible = "iio-hwmon"; + io-channels = <&u14 0>, <&u14 1>, <&u14 2>; + }; + + si5332_0: si5332_0 { /* u17 */ + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <125000000>; + }; + + si5332_1: si5332_1 { /* u17 */ + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <25000000>; + }; + + si5332_2: si5332_2 { /* u17 */ + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <48000000>; + }; + + si5332_3: si5332_3 { /* u17 */ + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <24000000>; + }; + + si5332_4: si5332_4 { /* u17 */ + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <26000000>; + }; + + si5332_5: si5332_5 { /* u17 */ + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <27000000>; + }; +}; + +/* DP/USB 3.0 and SATA */ +&psgtr { + status = "okay"; + /* pcie, usb3, sata */ + clocks = <&si5332_5>, <&si5332_4>, <&si5332_0>; + clock-names = "ref0", "ref1", "ref2"; +}; + +&sata { + status = "okay"; + /* SATA OOB timing settings */ + ceva,p0-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>; + ceva,p0-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>; + ceva,p0-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; + ceva,p0-retry-params = /bits/ 16 <0x96A4 0x3FFC>; + ceva,p1-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>; + ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>; + ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; + ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>; + phy-names = "sata-phy"; + phys = <&psgtr 3 PHY_TYPE_SATA 1 2>; +}; + +&zynqmp_dpsub { + status = "disabled"; + phy-names = "dp-phy0", "dp-phy1"; + phys = <&psgtr 1 PHY_TYPE_DP 0 0>, <&psgtr 0 PHY_TYPE_DP 1 0>; +}; + +&zynqmp_dpdma { + status = "okay"; +}; + +&usb0 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usb0_default>; + usbhub: usb5744 { /* u43 */ + compatible = "microchip,usb5744"; + reset-gpios = <&gpio 44 GPIO_ACTIVE_HIGH>; + }; +}; + +&dwc3_0 { + status = "okay"; + dr_mode = "host"; + snps,usb3_lpm_capable; + phy-names = "usb3-phy"; + phys = <&psgtr 2 PHY_TYPE_USB3 0 1>; + maximum-speed = "super-speed"; +}; + +&sdhci1 { /* on CC with tuned parameters */ + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_sdhci1_default>; + /* + * SD 3.0 requires level shifter and this property + * should be removed if the board has level shifter and + * need to work in UHS mode + */ + no-1-8-v; + disable-wp; + xlnx,mio-bank = <1>; +}; + +&gem3 { /* required by spec */ + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gem3_default>; + phy-handle = <&phy0>; + phy-mode = "rgmii-id"; + + mdio: mdio { + #address-cells = <1>; + #size-cells = <0>; + reset-gpios = <&gpio 38 GPIO_ACTIVE_LOW>; + reset-delay-us = <2>; + + phy0: ethernet-phy@1 { + #phy-cells = <1>; + reg = <1>; + ti,rx-internal-delay = ; + ti,tx-internal-delay = ; + ti,fifo-depth = ; + ti,dp83867-rxctrl-strap-quirk; + }; + }; +}; + +&pinctrl0 { /* required by spec */ + status = "okay"; + + pinctrl_uart1_default: uart1-default { + conf { + groups = "uart1_9_grp"; + slew-rate = ; + power-source = ; + drive-strength = <12>; + }; + + conf-rx { + pins = "MIO37"; + bias-high-impedance; + }; + + conf-tx { + pins = "MIO36"; + bias-disable; + }; + + mux { + groups = "uart1_9_grp"; + function = "uart1"; + }; + }; + + pinctrl_i2c1_default: i2c1-default { + conf { + groups = "i2c1_6_grp"; + bias-pull-up; + slew-rate = ; + power-source = ; + }; + + mux { + groups = "i2c1_6_grp"; + function = "i2c1"; + }; + }; + + pinctrl_i2c1_gpio: i2c1-gpio { + conf { + groups = "gpio0_24_grp", "gpio0_25_grp"; + slew-rate = ; + power-source = ; + }; + + mux { + groups = "gpio0_24_grp", "gpio0_25_grp"; + function = "gpio0"; + }; + }; + + pinctrl_gem3_default: gem3-default { + conf { + groups = "ethernet3_0_grp"; + slew-rate = ; + power-source = ; + }; + + conf-rx { + pins = "MIO70", "MIO72", "MIO74"; + bias-high-impedance; + low-power-disable; + }; + + conf-bootstrap { + pins = "MIO71", "MIO73", "MIO75"; + bias-disable; + low-power-disable; + }; + + conf-tx { + pins = "MIO64", "MIO65", "MIO66", + "MIO67", "MIO68", "MIO69"; + bias-disable; + low-power-enable; + }; + + conf-mdio { + groups = "mdio3_0_grp"; + slew-rate = ; + power-source = ; + bias-disable; + }; + + mux-mdio { + function = "mdio3"; + groups = "mdio3_0_grp"; + }; + + mux { + function = "ethernet3"; + groups = "ethernet3_0_grp"; + }; + }; + + pinctrl_usb0_default: usb0-default { + conf { + groups = "usb0_0_grp"; + slew-rate = ; + power-source = ; + }; + + conf-rx { + pins = "MIO52", "MIO53", "MIO55"; + bias-high-impedance; + }; + + conf-tx { + pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59", + "MIO60", "MIO61", "MIO62", "MIO63"; + bias-disable; + }; + + mux { + groups = "usb0_0_grp"; + function = "usb0"; + }; + }; + + pinctrl_sdhci1_default: sdhci1-default { + conf { + groups = "sdio1_0_grp"; + slew-rate = ; + power-source = ; + bias-disable; + }; + + conf-cd { + groups = "sdio1_cd_0_grp"; + bias-high-impedance; + bias-pull-up; + slew-rate = ; + power-source = ; + }; + + mux-cd { + groups = "sdio1_cd_0_grp"; + function = "sdio1_cd"; + }; + + mux { + groups = "sdio1_0_grp"; + function = "sdio1"; + }; + }; +}; + +&uart1 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart1_default>; +}; diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dts b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dts new file mode 100644 index 000000000000..b5443afff982 --- /dev/null +++ b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dts @@ -0,0 +1,318 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * dts file for KV260 revA Carrier Card + * + * (C) Copyright 2020 - 2021, Xilinx, Inc. + * + * Michal Simek + */ + + #include + #include + #include + #include + +/dts-v1/; +/plugin/; + +&{/} { + compatible = "xlnx,zynqmp-sk-kv260-rev1", + "xlnx,zynqmp-sk-kv260-revB", + "xlnx,zynqmp-sk-kv260", "xlnx,zynqmp"; +}; + +&i2c1 { /* I2C_SCK C23/C24 - MIO from SOM */ + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&pinctrl_i2c1_default>; + pinctrl-1 = <&pinctrl_i2c1_gpio>; + scl-gpios = <&gpio 24 GPIO_ACTIVE_HIGH>; + sda-gpios = <&gpio 25 GPIO_ACTIVE_HIGH>; + + u14: ina260@40 { /* u14 */ + compatible = "ti,ina260"; + #io-channel-cells = <1>; + label = "ina260-u14"; + reg = <0x40>; + }; + usbhub: usb5744@2d { /* u43 */ + compatible = "microchip,usb5744"; + reg = <0x2d>; + reset-gpios = <&gpio 44 GPIO_ACTIVE_HIGH>; + }; + /* u27 - 0xe0 - STDP4320 DP/HDMI splitter */ +}; + +&amba { + ina260-u14 { + compatible = "iio-hwmon"; + io-channels = <&u14 0>, <&u14 1>, <&u14 2>; + }; + + si5332_0: si5332_0 { /* u17 */ + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <125000000>; + }; + + si5332_1: si5332_1 { /* u17 */ + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <25000000>; + }; + + si5332_2: si5332_2 { /* u17 */ + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <48000000>; + }; + + si5332_3: si5332_3 { /* u17 */ + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <24000000>; + }; + + si5332_4: si5332_4 { /* u17 */ + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <26000000>; + }; + + si5332_5: si5332_5 { /* u17 */ + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <27000000>; + }; +}; + +/* DP/USB 3.0 */ +&psgtr { + status = "okay"; + /* pcie, usb3, sata */ + clocks = <&si5332_5>, <&si5332_4>, <&si5332_0>; + clock-names = "ref0", "ref1", "ref2"; +}; + +&zynqmp_dpsub { + status = "disabled"; + phy-names = "dp-phy0", "dp-phy1"; + phys = <&psgtr 1 PHY_TYPE_DP 0 0>, <&psgtr 0 PHY_TYPE_DP 1 0>; +}; + +&zynqmp_dpdma { + status = "okay"; +}; + +&usb0 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usb0_default>; +}; + +&dwc3_0 { + status = "okay"; + dr_mode = "host"; + snps,usb3_lpm_capable; + phy-names = "usb3-phy"; + phys = <&psgtr 2 PHY_TYPE_USB3 0 1>; + maximum-speed = "super-speed"; +}; + +&sdhci1 { /* on CC with tuned parameters */ + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_sdhci1_default>; + /* + * SD 3.0 requires level shifter and this property + * should be removed if the board has level shifter and + * need to work in UHS mode + */ + no-1-8-v; + disable-wp; + xlnx,mio-bank = <1>; + clk-phase-sd-hs = <126>, <60>; + clk-phase-uhs-sdr25 = <120>, <60>; + clk-phase-uhs-ddr50 = <126>, <48>; +}; + +&gem3 { /* required by spec */ + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gem3_default>; + phy-handle = <&phy0>; + phy-mode = "rgmii-id"; + + mdio: mdio { + #address-cells = <1>; + #size-cells = <0>; + reset-gpios = <&gpio 38 GPIO_ACTIVE_LOW>; + reset-delay-us = <2>; + + phy0: ethernet-phy@1 { + #phy-cells = <1>; + reg = <1>; + ti,rx-internal-delay = ; + ti,tx-internal-delay = ; + ti,fifo-depth = ; + ti,dp83867-rxctrl-strap-quirk; + }; + }; +}; + +&pinctrl0 { /* required by spec */ + status = "okay"; + + pinctrl_uart1_default: uart1-default { + conf { + groups = "uart1_9_grp"; + slew-rate = ; + power-source = ; + drive-strength = <12>; + }; + + conf-rx { + pins = "MIO37"; + bias-high-impedance; + }; + + conf-tx { + pins = "MIO36"; + bias-disable; + }; + + mux { + groups = "uart1_9_grp"; + function = "uart1"; + }; + }; + + pinctrl_i2c1_default: i2c1-default { + conf { + groups = "i2c1_6_grp"; + bias-pull-up; + slew-rate = ; + power-source = ; + }; + + mux { + groups = "i2c1_6_grp"; + function = "i2c1"; + }; + }; + + pinctrl_i2c1_gpio: i2c1-gpio { + conf { + groups = "gpio0_24_grp", "gpio0_25_grp"; + slew-rate = ; + power-source = ; + }; + + mux { + groups = "gpio0_24_grp", "gpio0_25_grp"; + function = "gpio0"; + }; + }; + + pinctrl_gem3_default: gem3-default { + conf { + groups = "ethernet3_0_grp"; + slew-rate = ; + power-source = ; + }; + + conf-rx { + pins = "MIO70", "MIO72", "MIO74"; + bias-high-impedance; + low-power-disable; + }; + + conf-bootstrap { + pins = "MIO71", "MIO73", "MIO75"; + bias-disable; + low-power-disable; + }; + + conf-tx { + pins = "MIO64", "MIO65", "MIO66", + "MIO67", "MIO68", "MIO69"; + bias-disable; + low-power-enable; + }; + + conf-mdio { + groups = "mdio3_0_grp"; + slew-rate = ; + power-source = ; + bias-disable; + }; + + mux-mdio { + function = "mdio3"; + groups = "mdio3_0_grp"; + }; + + mux { + function = "ethernet3"; + groups = "ethernet3_0_grp"; + }; + }; + + pinctrl_usb0_default: usb0-default { + conf { + groups = "usb0_0_grp"; + slew-rate = ; + power-source = ; + }; + + conf-rx { + pins = "MIO52", "MIO53", "MIO55"; + bias-high-impedance; + }; + + conf-tx { + pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59", + "MIO60", "MIO61", "MIO62", "MIO63"; + bias-disable; + }; + + mux { + groups = "usb0_0_grp"; + function = "usb0"; + }; + }; + + pinctrl_sdhci1_default: sdhci1-default { + conf { + groups = "sdio1_0_grp"; + slew-rate = ; + power-source = ; + bias-disable; + }; + + conf-cd { + groups = "sdio1_cd_0_grp"; + bias-high-impedance; + bias-pull-up; + slew-rate = ; + power-source = ; + }; + + mux-cd { + groups = "sdio1_cd_0_grp"; + function = "sdio1_cd"; + }; + + mux { + groups = "sdio1_0_grp"; + function = "sdio1"; + }; + }; +}; + +&uart1 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart1_default>; +}; diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts new file mode 100644 index 000000000000..173a59ceb49a --- /dev/null +++ b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts @@ -0,0 +1,289 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * dts file for Xilinx ZynqMP SM-K26 rev1/B/A + * + * (C) Copyright 2020 - 2021, Xilinx, Inc. + * + * Michal Simek + */ + +/dts-v1/; + +#include "zynqmp.dtsi" +#include "zynqmp-clk-ccf.dtsi" +#include +#include +#include + +/ { + model = "ZynqMP SM-K26 Rev1/B/A"; + compatible = "xlnx,zynqmp-sm-k26-rev1", "xlnx,zynqmp-sm-k26-revB", + "xlnx,zynqmp-sm-k26-revA", "xlnx,zynqmp-sm-k26", + "xlnx,zynqmp"; + + aliases { + i2c0 = &i2c0; + i2c1 = &i2c1; + mmc0 = &sdhci0; + mmc1 = &sdhci1; + nvmem0 = &eeprom; + nvmem1 = &eeprom_cc; + rtc0 = &rtc; + serial0 = &uart0; + serial1 = &uart1; + serial2 = &dcc; + spi0 = &qspi; + spi1 = &spi0; + spi2 = &spi1; + usb0 = &usb0; + usb1 = &usb1; + }; + + chosen { + bootargs = "earlycon"; + stdout-path = "serial1:115200n8"; + }; + + memory@0 { + device_type = "memory"; /* 4GB */ + reg = <0x0 0x0 0x0 0x80000000>, <0x8 0x00000000 0x0 0x80000000>; + }; + + gpio-keys { + compatible = "gpio-keys"; + autorepeat; + fwuen { + label = "fwuen"; + gpios = <&gpio 12 GPIO_ACTIVE_LOW>; + }; + }; + + leds { + compatible = "gpio-leds"; + ds35 { + label = "heartbeat"; + gpios = <&gpio 7 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + }; + + ds36 { + label = "vbus_det"; + gpios = <&gpio 8 GPIO_ACTIVE_HIGH>; + default-state = "on"; + }; + }; +}; + +&uart1 { /* MIO36/MIO37 */ + status = "okay"; +}; + +&qspi { /* MIO 0-5 - U143 */ + status = "okay"; + flash@0 { /* MT25QU512A */ + compatible = "mt25qu512a", "jedec,spi-nor"; /* 64MB */ + #address-cells = <1>; + #size-cells = <1>; + reg = <0>; + spi-tx-bus-width = <1>; + spi-rx-bus-width = <4>; + spi-max-frequency = <40000000>; /* 40MHz */ + partition@0 { + label = "Image Selector"; + reg = <0x0 0x80000>; /* 512KB */ + read-only; + lock; + }; + partition@80000 { + label = "Image Selector Golden"; + reg = <0x80000 0x80000>; /* 512KB */ + read-only; + lock; + }; + partition@100000 { + label = "Persistent Register"; + reg = <0x100000 0x20000>; /* 128KB */ + }; + partition@120000 { + label = "Persistent Register Backup"; + reg = <0x120000 0x20000>; /* 128KB */ + }; + partition@140000 { + label = "Open_1"; + reg = <0x140000 0xC0000>; /* 768KB */ + }; + partition@200000 { + label = "Image A (FSBL, PMU, ATF, U-Boot)"; + reg = <0x200000 0xD00000>; /* 13MB */ + }; + partition@f00000 { + label = "ImgSel Image A Catch"; + reg = <0xF00000 0x80000>; /* 512KB */ + read-only; + lock; + }; + partition@f80000 { + label = "Image B (FSBL, PMU, ATF, U-Boot)"; + reg = <0xF80000 0xD00000>; /* 13MB */ + }; + partition@1c80000 { + label = "ImgSel Image B Catch"; + reg = <0x1C80000 0x80000>; /* 512KB */ + read-only; + lock; + }; + partition@1d00000 { + label = "Open_2"; + reg = <0x1D00000 0x100000>; /* 1MB */ + }; + partition@1e00000 { + label = "Recovery Image"; + reg = <0x1E00000 0x200000>; /* 2MB */ + read-only; + lock; + }; + partition@2000000 { + label = "Recovery Image Backup"; + reg = <0x2000000 0x200000>; /* 2MB */ + read-only; + lock; + }; + partition@2200000 { + label = "U-Boot storage variables"; + reg = <0x2200000 0x20000>; /* 128KB */ + }; + partition@2220000 { + label = "U-Boot storage variables backup"; + reg = <0x2220000 0x20000>; /* 128KB */ + }; + partition@2240000 { + label = "SHA256"; + reg = <0x2240000 0x10000>; /* 256B but 64KB sector */ + read-only; + lock; + }; + partition@2250000 { + label = "User"; + reg = <0x2250000 0x1db0000>; /* 29.5 MB */ + }; + }; +}; + +&sdhci0 { /* MIO13-23 - 16GB emmc MTFC16GAPALBH-IT - U133A*/ + status = "okay"; + non-removable; + disable-wp; + bus-width = <8>; + xlnx,mio-bank = <0>; +}; + +&spi1 { /* MIO6, 9-11 */ + status = "okay"; + label = "TPM"; + num-cs = <1>; + tpm@0 { /* slm9670 - U144 */ + compatible = "infineon,slb9670", "tcg,tpm_tis-spi"; + reg = <0>; + spi-max-frequency = <18500000>; + }; +}; + +&i2c1 { + status = "okay"; + clock-frequency = <400000>; + scl-gpios = <&gpio 24 GPIO_ACTIVE_HIGH>; + sda-gpios = <&gpio 25 GPIO_ACTIVE_HIGH>; + + eeprom: eeprom@50 { /* u46 - also at address 0x58 */ + compatible = "st,24c64", "atmel,24c64"; /* st m24c64 */ + reg = <0x50>; + /* WP pin EE_WP_EN connected to slg7x644092@68 */ + }; + + eeprom_cc: eeprom@51 { /* required by spec - also at address 0x59 */ + compatible = "st,24c64", "atmel,24c64"; /* st m24c64 */ + reg = <0x51>; + }; + + /* da9062@30 - u170 - also at address 0x31 */ + /* da9131@33 - u167 */ + da9131: pmic@33 { + compatible = "dlg,da9131"; + reg = <0x33>; + regulators { + da9131_buck1: buck1 { + regulator-name = "da9131_buck1"; + regulator-boot-on; + regulator-always-on; + }; + da9131_buck2: buck2 { + regulator-name = "da9131_buck2"; + regulator-boot-on; + regulator-always-on; + }; + }; + }; + + /* da9130@32 - u166 */ + da9130: pmic@32 { + compatible = "dlg,da9130"; + reg = <0x32>; + regulators { + da9130_buck1: buck1 { + regulator-name = "da9130_buck1"; + regulator-boot-on; + regulator-always-on; + }; + }; + }; + + /* slg7x644091@70 - u168 NOT accessible due to address conflict with stdp4320 */ + /* + * stdp4320 - u27 FW has below two issues to be fixed in next board revision. + * Device acknowledging to addresses 0x5C, 0x5D, 0x70, 0x72, 0x76. + * Address conflict with slg7x644091@70 making both the devices NOT accessible. + * With the FW fix, stdp4320 should respond to address 0x73 only. + */ + /* slg7x644092@68 - u169 */ + /* Also connected via JA1C as C23/C24 */ +}; + +&gpio { + status = "okay"; + gpio-line-names = "QSPI_CLK", "QSPI_DQ1", "QSPI_DQ2", "QSPI_DQ3", "QSPI_DQ0", /* 0 - 4 */ + "QSPI_CS_B", "SPI_CLK", "LED1", "LED2", "SPI_CS_B", /* 5 - 9 */ + "SPI_MISO", "SPI_MOSI", "FWUEN", "EMMC_DAT0", "EMMC_DAT1", /* 10 - 14 */ + "EMMC_DAT2", "EMMC_DAT3", "EMMC_DAT4", "EMMC_DAT5", "EMMC_DAT6", /* 15 - 19 */ + "EMMC_DAT7", "EMMC_CMD", "EMMC_CLK", "EMMC_RST", "I2C1_SCL", /* 20 - 24 */ + "I2C1_SDA", "", "", "", "", /* 25 - 29 */ + "", "", "", "", "", /* 30 - 34 */ + "", "", "", "", "", /* 35 - 39 */ + "", "", "", "", "", /* 40 - 44 */ + "", "", "", "", "", /* 45 - 49 */ + "", "", "", "", "", /* 50 - 54 */ + "", "", "", "", "", /* 55 - 59 */ + "", "", "", "", "", /* 60 - 64 */ + "", "", "", "", "", /* 65 - 69 */ + "", "", "", "", "", /* 70 - 74 */ + "", "", "", /* 75 - 77, MIO end and EMIO start */ + "", "", /* 78 - 79 */ + "", "", "", "", "", /* 80 - 84 */ + "", "", "", "", "", /* 85 - 89 */ + "", "", "", "", "", /* 90 - 94 */ + "", "", "", "", "", /* 95 - 99 */ + "", "", "", "", "", /* 100 - 104 */ + "", "", "", "", "", /* 105 - 109 */ + "", "", "", "", "", /* 110 - 114 */ + "", "", "", "", "", /* 115 - 119 */ + "", "", "", "", "", /* 120 - 124 */ + "", "", "", "", "", /* 125 - 129 */ + "", "", "", "", "", /* 130 - 134 */ + "", "", "", "", "", /* 135 - 139 */ + "", "", "", "", "", /* 140 - 144 */ + "", "", "", "", "", /* 145 - 149 */ + "", "", "", "", "", /* 150 - 154 */ + "", "", "", "", "", /* 155 - 159 */ + "", "", "", "", "", /* 160 - 164 */ + "", "", "", "", "", /* 165 - 169 */ + "", "", "", ""; /* 170 - 174 */ +}; diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-smk-k26-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-smk-k26-revA.dts new file mode 100644 index 000000000000..c70966c1f344 --- /dev/null +++ b/arch/arm64/boot/dts/xilinx/zynqmp-smk-k26-revA.dts @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * dts file for Xilinx ZynqMP SMK-K26 rev1/B/A + * + * (C) Copyright 2020 - 2021, Xilinx, Inc. + * + * Michal Simek + */ + +#include "zynqmp-sm-k26-revA.dts" + +/ { + model = "ZynqMP SMK-K26 Rev1/B/A"; + compatible = "xlnx,zynqmp-smk-k26-rev1", "xlnx,zynqmp-smk-k26-revB", + "xlnx,zynqmp-smk-k26-revA", "xlnx,zynqmp-smk-k26", + "xlnx,zynqmp"; +}; + +&sdhci0 { + status = "disabled"; +}; -- 2.32.0 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=-16.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT 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 C1D5AC2B9F4 for ; Mon, 14 Jun 2021 16:06:39 +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 8270261004 for ; Mon, 14 Jun 2021 16:06:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8270261004 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=xilinx.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+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.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Q2J5Oc533aEYVoZir/KzUpuxhRrNO6nZNqAwyWzZEbA=; b=CtNevigvNeM11J mKWnLwL33ZhQoT+WomtHvvTn4DYnEESjCvt0/Y6NNQ+L2aKsF7A5wuqsxCTgQhTEEK3hXi178o0Aq NME3FU3AeZx1PP7SmdoRirg8YOM6VW/D2cDus/qtXU9w26/lf5S/2D/pNOPFjfXaZ44UKvCPVHgaA c/+1LFhjTD2y30K7jvVS90pANgPdov6ecCwo+aD2GA9iD52BnRr+oamHWydOQkP4qdskJ3/QXCDiU ODTeupeniWsxmT0aFOwLf1CdoBf7s+iyhUAsrQDo2O9hw/qh/y5c1n9FFpbSb6ONSiY1JK0XMqtQB n6+eKvM18yFxUQSGIEBg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lsp4R-00Eyea-9y; Mon, 14 Jun 2021 16:04:15 +0000 Received: from mail-ej1-f44.google.com ([209.85.218.44]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lsoUv-00Ejc5-9X for linux-arm-kernel@lists.infradead.org; Mon, 14 Jun 2021 15:27:37 +0000 Received: by mail-ej1-f44.google.com with SMTP id k25so17351767eja.9 for ; Mon, 14 Jun 2021 08:27:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monstr-eu.20150623.gappssmtp.com; s=20150623; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Zn8Y8N57YHd1bEFyCFoGR6ey+RtBpPTsCBiCe8Jyrhc=; b=18AO2fYsuLQpKw7M+i8R/s2nSsjxyepVSHn7Aj55Re8glAoSIgxEZ/5amuRHCf/N4f KB9upfOeLoHZs/I5aFqWaELoO2T9B6HwgCxpbIqj1t+mRvA5VeKL53R3aoLiMWhKTG3H J4AYdvJnAM77XfsuYif/YUMe8dcoP/t5k8LsBQ1H3nWUx4wgCDAgSJcLBjLDfFhYzAfO pEbW2Pdv+Cs/MN8ZxBbFV/vIjuZF+DltIi0DdHX26p4iv5aUhPspyyLYfSl11mUr1LIO zekG9wGS7YwUBXjkzEdCy9AGZqCo3qukXMa9slM3EudQj0ZayN87hO7QnmEdjoqCSgOI PKtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=Zn8Y8N57YHd1bEFyCFoGR6ey+RtBpPTsCBiCe8Jyrhc=; b=Mz7HZlA2sO/OYVYwMRnu9AetxwDt0w5r2cDowlFz756tDPOYO5hh+pHcFYOGRN8IMr bpPiHDFDsjJsCxLfdUSzq+a1j8CnK7z0ApVy2ErKLbUE5iXtubqwiHlppLO40CloCVoN H3Is4YGZ6dpg2QOqusEUm2E161bbAxU0s93yfTAEBug3iOVZX7ywe8vfNFegyjyQnH/4 W953tR4oczaR8KdAXHN6OQyq4EdSatwCJVr89LSUAHe6m+pAHXWq3bAHNF6N3czm2HFi PlO9wQEqzFEMERTdNtADrwjl3cEi/fz8oJdii1OvOKZOBkPfbTsNc1i6YvyHiIK7aqG8 CguQ== X-Gm-Message-State: AOAM530ig3SgvBIO5GQe98yGMDdZlc4VNsNm4814yeVc1wxhlkt36vAw GwugSS6o6vgk40q4BMzbANT3MQ== X-Google-Smtp-Source: ABdhPJxyAqW9YP/TjSWvSiaecvjD8eQVeiISwwwZLkhsZyl39T2sHxZXHaEZEIsZEH8Szh7y/xdANA== X-Received: by 2002:a17:906:a294:: with SMTP id i20mr15999237ejz.330.1623684391734; Mon, 14 Jun 2021 08:26:31 -0700 (PDT) Received: from localhost ([2a02:768:2307:40d6:f666:9af6:3fed:e53b]) by smtp.gmail.com with ESMTPSA id j22sm7479024eje.123.2021.06.14.08.26.30 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 14 Jun 2021 08:26:31 -0700 (PDT) From: Michal Simek To: linux-kernel@vger.kernel.org, monstr@monstr.eu, michal.simek@xilinx.com, git@xilinx.com, Viresh Kumar Cc: Geert Uytterhoeven , Krzysztof Kozlowski , Michael Walle , Rob Herring , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 33/33] arm64: zynqmp: Add support for Xilinx Kria SOM board Date: Mon, 14 Jun 2021 17:25:41 +0200 Message-Id: <97588ccfcdc21c53f732d3948ae85abed6539256.1623684253.git.michal.simek@xilinx.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210614_082733_465051_88098AEA X-CRM114-Status: GOOD ( 19.90 ) 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 VGhlcmUgYXJlIGNvdXBsZSBvZiByZXZpc2lvbnMgb2YgU09NcyAoazI2KSBhbmQgYXNzb2NpYXRl ZCBjYXJyaWVyIGNhcmRzCihrdjI2MCkuClNPTSBpdHNlbGYgaGFzIHR3byBtYWpvciB2ZXJzaW9u czoKc20tazI2IC0gU09NIHdpdGggRU1NQwpzbWstazI2IC0gU09NIHdpdGhvdXQgRU1NQyB1c2Vk IG9uIHN0YXJ0ZXIga2l0IHdpdGggcHJlcHJvZ3JhbW1lZCBmaXJtd2FyZQppbiBRU1BJLgoKU09N cyBhcmUgZGVzY3JpYmluZyBvbmx5IGRldmljZXMgYXZhaWxhYmxlIG9uIHRoZSBTT00gb3IgY29u bmVjdGlvbnMgd2hpY2gKYXJlIGRlc2NyaWJlZCBpbiBzcGVjaWZpY2F0aW9uIChmb3IgZXhhbXBs ZSBVQVJULCBmd3VlbikuCgpTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1pY2hhbC5zaW1l a0B4aWxpbnguY29tPgotLS0KCkNoYW5nZXMgaW4gdjI6Ci0gVXNlIHN1Z2FyIHN5bnRheCAtIHJl cG9ydGVkIGJ5IEdlZXJ0Ci0gVXBkYXRlIGNvcHlyaWdodCB5ZWFycwotIEZpeCBTRDMuMCBjb21t ZW50IGFsaWdubWVudAotIFJlbW92ZSBvbmUgbmV3bGluZSBmcm9tIE1ha2VmaWxlCgpodHRwczov L3d3dy54aWxpbnguY29tL3Byb2R1Y3RzL3NvbS9rcmlhLmh0bWwKLS0tCiAuLi4vZGV2aWNldHJl ZS9iaW5kaW5ncy9hcm0veGlsaW54LnlhbWwgICAgICAgfCAgMzEgKysKIGFyY2gvYXJtNjQvYm9v dC9kdHMveGlsaW54L01ha2VmaWxlICAgICAgICAgICB8ICAxMCArCiAuLi4vYm9vdC9kdHMveGls aW54L3p5bnFtcC1zY2sta3YtZy1yZXZBLmR0cyAgfCAzMzUgKysrKysrKysrKysrKysrKysrCiAu Li4vYm9vdC9kdHMveGlsaW54L3p5bnFtcC1zY2sta3YtZy1yZXZCLmR0cyAgfCAzMTggKysrKysr KysrKysrKysrKysKIC4uLi9ib290L2R0cy94aWxpbngvenlucW1wLXNtLWsyNi1yZXZBLmR0cyAg ICB8IDI4OSArKysrKysrKysrKysrKysKIC4uLi9ib290L2R0cy94aWxpbngvenlucW1wLXNtay1r MjYtcmV2QS5kdHMgICB8ICAyMSArKwogNiBmaWxlcyBjaGFuZ2VkLCAxMDA0IGluc2VydGlvbnMo KykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybTY0L2Jvb3QvZHRzL3hpbGlueC96eW5xbXAt c2NrLWt2LWctcmV2QS5kdHMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybTY0L2Jvb3QvZHRz L3hpbGlueC96eW5xbXAtc2NrLWt2LWctcmV2Qi5kdHMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNo L2FybTY0L2Jvb3QvZHRzL3hpbGlueC96eW5xbXAtc20tazI2LXJldkEuZHRzCiBjcmVhdGUgbW9k ZSAxMDA2NDQgYXJjaC9hcm02NC9ib290L2R0cy94aWxpbngvenlucW1wLXNtay1rMjYtcmV2QS5k dHMKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL3hp bGlueC55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS94aWxpbngu eWFtbAppbmRleCBhMGIxYWU2ZTNlNzEuLjFhNGEwM2RmYWY3ZiAxMDA2NDQKLS0tIGEvRG9jdW1l bnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS94aWxpbngueWFtbAorKysgYi9Eb2N1bWVu dGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL3hpbGlueC55YW1sCkBAIC0xMTYsNiArMTE2 LDM3IEBAIHByb3BlcnRpZXM6CiAgICAgICAgICAgLSBjb25zdDogeGxueCx6eW5xbXAtemN1MTEx CiAgICAgICAgICAgLSBjb25zdDogeGxueCx6eW5xbXAKIAorICAgICAgLSBkZXNjcmlwdGlvbjog WGlsaW54IEtyaWEgU09NcworICAgICAgICBpdGVtczoKKyAgICAgICAgICAtIGNvbnN0OiB4bG54 LHp5bnFtcC1zbS1rMjYtcmV2MQorICAgICAgICAgIC0gY29uc3Q6IHhsbngsenlucW1wLXNtLWsy Ni1yZXZCCisgICAgICAgICAgLSBjb25zdDogeGxueCx6eW5xbXAtc20tazI2LXJldkEKKyAgICAg ICAgICAtIGNvbnN0OiB4bG54LHp5bnFtcC1zbS1rMjYKKyAgICAgICAgICAtIGNvbnN0OiB4bG54 LHp5bnFtcAorCisgICAgICAtIGRlc2NyaXB0aW9uOiBYaWxpbnggS3JpYSBTT01zIChzdGFydGVy KQorICAgICAgICBpdGVtczoKKyAgICAgICAgICAtIGNvbnN0OiB4bG54LHp5bnFtcC1zbWstazI2 LXJldjEKKyAgICAgICAgICAtIGNvbnN0OiB4bG54LHp5bnFtcC1zbWstazI2LXJldkIKKyAgICAg ICAgICAtIGNvbnN0OiB4bG54LHp5bnFtcC1zbWstazI2LXJldkEKKyAgICAgICAgICAtIGNvbnN0 OiB4bG54LHp5bnFtcC1zbWstazI2CisgICAgICAgICAgLSBjb25zdDogeGxueCx6eW5xbXAKKwor ICAgICAgLSBkZXNjcmlwdGlvbjogWGlsaW54IEtyaWEgQ2FycmllciBDYXJkcyAocmV2QS9ZL1op CisgICAgICAgIGl0ZW1zOgorICAgICAgICAgIC0gY29uc3Q6IHhsbngsenlucW1wLXNrLWt2MjYw LXJldloKKyAgICAgICAgICAtIGNvbnN0OiB4bG54LHp5bnFtcC1zay1rdjI2MC1yZXZZCisgICAg ICAgICAgLSBjb25zdDogeGxueCx6eW5xbXAtc2sta3YyNjAtcmV2QQorICAgICAgICAgIC0gY29u c3Q6IHhsbngsenlucW1wLXNrLWsyNjAKKyAgICAgICAgICAtIGNvbnN0OiB4bG54LHp5bnFtcAor CisgICAgICAtIGRlc2NyaXB0aW9uOiBYaWxpbnggS3JpYSBDYXJyaWVyIENhcmRzIChyZXZCLzEp CisgICAgICAgIGl0ZW1zOgorICAgICAgICAgIC0gY29uc3Q6IHhsbngsenlucW1wLXNrLWt2MjYw LXJldjEKKyAgICAgICAgICAtIGNvbnN0OiB4bG54LHp5bnFtcC1zay1rdjI2MC1yZXZCCisgICAg ICAgICAgLSBjb25zdDogeGxueCx6eW5xbXAtc2stazI2MAorICAgICAgICAgIC0gY29uc3Q6IHhs bngsenlucW1wCisKIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB0cnVlCiAKIC4uLgpkaWZmIC0tZ2l0 IGEvYXJjaC9hcm02NC9ib290L2R0cy94aWxpbngvTWFrZWZpbGUgYi9hcmNoL2FybTY0L2Jvb3Qv ZHRzL3hpbGlueC9NYWtlZmlsZQppbmRleCAwODNlZDUyMzM3ZmQuLjhlNDNiZWYyYzU3ZSAxMDA2 NDQKLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy94aWxpbngvTWFrZWZpbGUKKysrIGIvYXJjaC9h cm02NC9ib290L2R0cy94aWxpbngvTWFrZWZpbGUKQEAgLTE3LDMgKzE3LDEzIEBAIGR0Yi0kKENP TkZJR19BUkNIX1pZTlFNUCkgKz0genlucW1wLXpjdTEwNC1yZXZBLmR0YgogZHRiLSQoQ09ORklH X0FSQ0hfWllOUU1QKSArPSB6eW5xbXAtemN1MTA0LXJldkMuZHRiCiBkdGItJChDT05GSUdfQVJD SF9aWU5RTVApICs9IHp5bnFtcC16Y3UxMDYtcmV2QS5kdGIKIGR0Yi0kKENPTkZJR19BUkNIX1pZ TlFNUCkgKz0genlucW1wLXpjdTExMS1yZXZBLmR0YgorCitkdGItJChDT05GSUdfQVJDSF9aWU5R TVApICs9IHp5bnFtcC1zbS1rMjYtcmV2QS5kdGIKK2R0Yi0kKENPTkZJR19BUkNIX1pZTlFNUCkg Kz0genlucW1wLXNtay1rMjYtcmV2QS5kdGIKKworc29tLUFBLWR0YnMgOj0genlucW1wLXNtLWsy Ni1yZXZBLmR0YiB6eW5xbXAtc2NrLWt2LWctcmV2QS5kdGJvCitzb20tQUItZHRicyA6PSB6eW5x bXAtc20tazI2LXJldkEuZHRiIHp5bnFtcC1zY2sta3YtZy1yZXZCLmR0Ym8KK3N0YXJ0ZXItQUEt ZHRicyA6PSB6eW5xbXAtc21rLWsyNi1yZXZBLmR0YiB6eW5xbXAtc2NrLWt2LWctcmV2QS5kdGJv CitzdGFydGVyLUFCLWR0YnMgOj0genlucW1wLXNtay1rMjYtcmV2QS5kdGIgenlucW1wLXNjay1r di1nLXJldkIuZHRibworCitkdGItJChDT05GSUdfQVJDSF9aWU5RTVApICs9IHNvbS1BQS5kdGIg c29tLUFCLmR0YiBzdGFydGVyLUFBLmR0YiBzdGFydGVyLUFCLmR0YgpkaWZmIC0tZ2l0IGEvYXJj aC9hcm02NC9ib290L2R0cy94aWxpbngvenlucW1wLXNjay1rdi1nLXJldkEuZHRzIGIvYXJjaC9h cm02NC9ib290L2R0cy94aWxpbngvenlucW1wLXNjay1rdi1nLXJldkEuZHRzCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNTlkNTc1MWUwNjM0Ci0tLSAvZGV2L251bGwK KysrIGIvYXJjaC9hcm02NC9ib290L2R0cy94aWxpbngvenlucW1wLXNjay1rdi1nLXJldkEuZHRz CkBAIC0wLDAgKzEsMzM1IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAor LyoKKyAqIGR0cyBmaWxlIGZvciBLVjI2MCByZXZBIENhcnJpZXIgQ2FyZAorICoKKyAqIChDKSBD b3B5cmlnaHQgMjAyMCAtIDIwMjEsIFhpbGlueCwgSW5jLgorICoKKyAqIFNEIGxldmVsIHNoaWZ0 ZXI6CisgKiAiQSIg4oCTIEEwMSBib2FyZCB1bi1tb2RpZmllZCAoTlhQKQorICogIlkiIOKAkyBB MDEgYm9hcmQgbW9kaWZpZWQgd2l0aCBsZWdhY3kgaW50ZXJwb3NlciAoTmV4cGVyaWEpCisgKiAi WiIg4oCTIEEwMSBib2FyZCBtb2RpZmllZCB3aXRoIERpb2RlIGludGVycG9zZXIKKyAqCisgKiBN aWNoYWwgU2ltZWsgPG1pY2hhbC5zaW1la0B4aWxpbnguY29tPgorICovCisKKyAjaW5jbHVkZSA8 ZHQtYmluZGluZ3MvZ3Bpby9ncGlvLmg+CisgI2luY2x1ZGUgPGR0LWJpbmRpbmdzL25ldC90aS1k cDgzODY3Lmg+CisgI2luY2x1ZGUgPGR0LWJpbmRpbmdzL3BoeS9waHkuaD4KKyAjaW5jbHVkZSA8 ZHQtYmluZGluZ3MvcGluY3RybC9waW5jdHJsLXp5bnFtcC5oPgorCisvZHRzLXYxLzsKKy9wbHVn aW4vOworCismey99IHsKKwljb21wYXRpYmxlID0gInhsbngsenlucW1wLXNrLWt2MjYwLXJldkEi LAorCQkgICAgICJ4bG54LHp5bnFtcC1zay1rdjI2MC1yZXZZIiwKKwkJICAgICAieGxueCx6eW5x bXAtc2sta3YyNjAtcmV2WiIsCisJCSAgICAgInhsbngsenlucW1wLXNrLWt2MjYwIiwgInhsbngs enlucW1wIjsKK307CisKKyZpMmMxIHsgLyogSTJDX1NDSyBDMjMvQzI0IC0gTUlPIGZyb20gU09N ICovCisJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJI3NpemUtY2VsbHMgPSA8MD47CisJcGluY3Ry bC1uYW1lcyA9ICJkZWZhdWx0IiwgImdwaW8iOworCXBpbmN0cmwtMCA9IDwmcGluY3RybF9pMmMx X2RlZmF1bHQ+OworCXBpbmN0cmwtMSA9IDwmcGluY3RybF9pMmMxX2dwaW8+OworCXNjbC1ncGlv cyA9IDwmZ3BpbyAyNCBHUElPX0FDVElWRV9ISUdIPjsKKwlzZGEtZ3Bpb3MgPSA8JmdwaW8gMjUg R1BJT19BQ1RJVkVfSElHSD47CisKKwl1MTQ6IGluYTI2MEA0MCB7IC8qIHUxNCAqLworCQljb21w YXRpYmxlID0gInRpLGluYTI2MCI7CisJCSNpby1jaGFubmVsLWNlbGxzID0gPDE+OworCQlsYWJl bCA9ICJpbmEyNjAtdTE0IjsKKwkJcmVnID0gPDB4NDA+OworCX07CisJLyogdTI3IC0gMHhlMCAt IFNURFA0MzIwIERQL0hETUkgc3BsaXR0ZXIgKi8KK307CisKKyZhbWJhIHsKKwlpbmEyNjAtdTE0 IHsKKwkJY29tcGF0aWJsZSA9ICJpaW8taHdtb24iOworCQlpby1jaGFubmVscyA9IDwmdTE0IDA+ LCA8JnUxNCAxPiwgPCZ1MTQgMj47CisJfTsKKworCXNpNTMzMl8wOiBzaTUzMzJfMCB7IC8qIHUx NyAqLworCQljb21wYXRpYmxlID0gImZpeGVkLWNsb2NrIjsKKwkJI2Nsb2NrLWNlbGxzID0gPDA+ OworCQljbG9jay1mcmVxdWVuY3kgPSA8MTI1MDAwMDAwPjsKKwl9OworCisJc2k1MzMyXzE6IHNp NTMzMl8xIHsgLyogdTE3ICovCisJCWNvbXBhdGlibGUgPSAiZml4ZWQtY2xvY2siOworCQkjY2xv Y2stY2VsbHMgPSA8MD47CisJCWNsb2NrLWZyZXF1ZW5jeSA9IDwyNTAwMDAwMD47CisJfTsKKwor CXNpNTMzMl8yOiBzaTUzMzJfMiB7IC8qIHUxNyAqLworCQljb21wYXRpYmxlID0gImZpeGVkLWNs b2NrIjsKKwkJI2Nsb2NrLWNlbGxzID0gPDA+OworCQljbG9jay1mcmVxdWVuY3kgPSA8NDgwMDAw MDA+OworCX07CisKKwlzaTUzMzJfMzogc2k1MzMyXzMgeyAvKiB1MTcgKi8KKwkJY29tcGF0aWJs ZSA9ICJmaXhlZC1jbG9jayI7CisJCSNjbG9jay1jZWxscyA9IDwwPjsKKwkJY2xvY2stZnJlcXVl bmN5ID0gPDI0MDAwMDAwPjsKKwl9OworCisJc2k1MzMyXzQ6IHNpNTMzMl80IHsgLyogdTE3ICov CisJCWNvbXBhdGlibGUgPSAiZml4ZWQtY2xvY2siOworCQkjY2xvY2stY2VsbHMgPSA8MD47CisJ CWNsb2NrLWZyZXF1ZW5jeSA9IDwyNjAwMDAwMD47CisJfTsKKworCXNpNTMzMl81OiBzaTUzMzJf NSB7IC8qIHUxNyAqLworCQljb21wYXRpYmxlID0gImZpeGVkLWNsb2NrIjsKKwkJI2Nsb2NrLWNl bGxzID0gPDA+OworCQljbG9jay1mcmVxdWVuY3kgPSA8MjcwMDAwMDA+OworCX07Cit9OworCisv KiBEUC9VU0IgMy4wIGFuZCBTQVRBICovCismcHNndHIgeworCXN0YXR1cyA9ICJva2F5IjsKKwkv KiBwY2llLCB1c2IzLCBzYXRhICovCisJY2xvY2tzID0gPCZzaTUzMzJfNT4sIDwmc2k1MzMyXzQ+ LCA8JnNpNTMzMl8wPjsKKwljbG9jay1uYW1lcyA9ICJyZWYwIiwgInJlZjEiLCAicmVmMiI7Cit9 OworCismc2F0YSB7CisJc3RhdHVzID0gIm9rYXkiOworCS8qIFNBVEEgT09CIHRpbWluZyBzZXR0 aW5ncyAqLworCWNldmEscDAtY29taW5pdC1wYXJhbXMgPSAvYml0cy8gOCA8MHgxOCAweDQwIDB4 MTggMHgyOD47CisJY2V2YSxwMC1jb213YWtlLXBhcmFtcyA9IC9iaXRzLyA4IDwweDA2IDB4MTQg MHgwOCAweDBFPjsKKwljZXZhLHAwLWJ1cnN0LXBhcmFtcyA9IC9iaXRzLyA4IDwweDEzIDB4MDgg MHg0QSAweDA2PjsKKwljZXZhLHAwLXJldHJ5LXBhcmFtcyA9IC9iaXRzLyAxNiA8MHg5NkE0IDB4 M0ZGQz47CisJY2V2YSxwMS1jb21pbml0LXBhcmFtcyA9IC9iaXRzLyA4IDwweDE4IDB4NDAgMHgx OCAweDI4PjsKKwljZXZhLHAxLWNvbXdha2UtcGFyYW1zID0gL2JpdHMvIDggPDB4MDYgMHgxNCAw eDA4IDB4MEU+OworCWNldmEscDEtYnVyc3QtcGFyYW1zID0gL2JpdHMvIDggPDB4MTMgMHgwOCAw eDRBIDB4MDY+OworCWNldmEscDEtcmV0cnktcGFyYW1zID0gL2JpdHMvIDE2IDwweDk2QTQgMHgz RkZDPjsKKwlwaHktbmFtZXMgPSAic2F0YS1waHkiOworCXBoeXMgPSA8JnBzZ3RyIDMgUEhZX1RZ UEVfU0FUQSAxIDI+OworfTsKKworJnp5bnFtcF9kcHN1YiB7CisJc3RhdHVzID0gImRpc2FibGVk IjsKKwlwaHktbmFtZXMgPSAiZHAtcGh5MCIsICJkcC1waHkxIjsKKwlwaHlzID0gPCZwc2d0ciAx IFBIWV9UWVBFX0RQIDAgMD4sIDwmcHNndHIgMCBQSFlfVFlQRV9EUCAxIDA+OworfTsKKworJnp5 bnFtcF9kcGRtYSB7CisJc3RhdHVzID0gIm9rYXkiOworfTsKKworJnVzYjAgeworCXN0YXR1cyA9 ICJva2F5IjsKKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworCXBpbmN0cmwtMCA9IDwmcGlu Y3RybF91c2IwX2RlZmF1bHQ+OworCXVzYmh1YjogdXNiNTc0NCB7IC8qIHU0MyAqLworCQljb21w YXRpYmxlID0gIm1pY3JvY2hpcCx1c2I1NzQ0IjsKKwkJcmVzZXQtZ3Bpb3MgPSA8JmdwaW8gNDQg R1BJT19BQ1RJVkVfSElHSD47CisJfTsKK307CisKKyZkd2MzXzAgeworCXN0YXR1cyA9ICJva2F5 IjsKKwlkcl9tb2RlID0gImhvc3QiOworCXNucHMsdXNiM19scG1fY2FwYWJsZTsKKwlwaHktbmFt ZXMgPSAidXNiMy1waHkiOworCXBoeXMgPSA8JnBzZ3RyIDIgUEhZX1RZUEVfVVNCMyAwIDE+Owor CW1heGltdW0tc3BlZWQgPSAic3VwZXItc3BlZWQiOworfTsKKworJnNkaGNpMSB7IC8qIG9uIEND IHdpdGggdHVuZWQgcGFyYW1ldGVycyAqLworCXN0YXR1cyA9ICJva2F5IjsKKwlwaW5jdHJsLW5h bWVzID0gImRlZmF1bHQiOworCXBpbmN0cmwtMCA9IDwmcGluY3RybF9zZGhjaTFfZGVmYXVsdD47 CisJLyoKKwkgKiBTRCAzLjAgcmVxdWlyZXMgbGV2ZWwgc2hpZnRlciBhbmQgdGhpcyBwcm9wZXJ0 eQorCSAqIHNob3VsZCBiZSByZW1vdmVkIGlmIHRoZSBib2FyZCBoYXMgbGV2ZWwgc2hpZnRlciBh bmQKKwkgKiBuZWVkIHRvIHdvcmsgaW4gVUhTIG1vZGUKKwkgKi8KKwluby0xLTgtdjsKKwlkaXNh YmxlLXdwOworCXhsbngsbWlvLWJhbmsgPSA8MT47Cit9OworCismZ2VtMyB7IC8qIHJlcXVpcmVk IGJ5IHNwZWMgKi8KKwlzdGF0dXMgPSAib2theSI7CisJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0 IjsKKwlwaW5jdHJsLTAgPSA8JnBpbmN0cmxfZ2VtM19kZWZhdWx0PjsKKwlwaHktaGFuZGxlID0g PCZwaHkwPjsKKwlwaHktbW9kZSA9ICJyZ21paS1pZCI7CisKKwltZGlvOiBtZGlvIHsKKwkJI2Fk ZHJlc3MtY2VsbHMgPSA8MT47CisJCSNzaXplLWNlbGxzID0gPDA+OworCQlyZXNldC1ncGlvcyA9 IDwmZ3BpbyAzOCBHUElPX0FDVElWRV9MT1c+OworCQlyZXNldC1kZWxheS11cyA9IDwyPjsKKwor CQlwaHkwOiBldGhlcm5ldC1waHlAMSB7CisJCQkjcGh5LWNlbGxzID0gPDE+OworCQkJcmVnID0g PDE+OworCQkJdGkscngtaW50ZXJuYWwtZGVsYXkgPSA8RFA4Mzg2N19SR01JSURDVExfMl8yNV9O Uz47CisJCQl0aSx0eC1pbnRlcm5hbC1kZWxheSA9IDxEUDgzODY3X1JHTUlJRENUTF8yXzc1X05T PjsKKwkJCXRpLGZpZm8tZGVwdGggPSA8RFA4Mzg2N19QSFlDUl9GSUZPX0RFUFRIXzRfQl9OSUI+ OworCQkJdGksZHA4Mzg2Ny1yeGN0cmwtc3RyYXAtcXVpcms7CisJCX07CisJfTsKK307CisKKyZw aW5jdHJsMCB7IC8qIHJlcXVpcmVkIGJ5IHNwZWMgKi8KKwlzdGF0dXMgPSAib2theSI7CisKKwlw aW5jdHJsX3VhcnQxX2RlZmF1bHQ6IHVhcnQxLWRlZmF1bHQgeworCQljb25mIHsKKwkJCWdyb3Vw cyA9ICJ1YXJ0MV85X2dycCI7CisJCQlzbGV3LXJhdGUgPSA8U0xFV19SQVRFX1NMT1c+OworCQkJ cG93ZXItc291cmNlID0gPElPX1NUQU5EQVJEX0xWQ01PUzE4PjsKKwkJCWRyaXZlLXN0cmVuZ3Ro ID0gPDEyPjsKKwkJfTsKKworCQljb25mLXJ4IHsKKwkJCXBpbnMgPSAiTUlPMzciOworCQkJYmlh cy1oaWdoLWltcGVkYW5jZTsKKwkJfTsKKworCQljb25mLXR4IHsKKwkJCXBpbnMgPSAiTUlPMzYi OworCQkJYmlhcy1kaXNhYmxlOworCQl9OworCisJCW11eCB7CisJCQlncm91cHMgPSAidWFydDFf OV9ncnAiOworCQkJZnVuY3Rpb24gPSAidWFydDEiOworCQl9OworCX07CisKKwlwaW5jdHJsX2ky YzFfZGVmYXVsdDogaTJjMS1kZWZhdWx0IHsKKwkJY29uZiB7CisJCQlncm91cHMgPSAiaTJjMV82 X2dycCI7CisJCQliaWFzLXB1bGwtdXA7CisJCQlzbGV3LXJhdGUgPSA8U0xFV19SQVRFX1NMT1c+ OworCQkJcG93ZXItc291cmNlID0gPElPX1NUQU5EQVJEX0xWQ01PUzE4PjsKKwkJfTsKKworCQlt dXggeworCQkJZ3JvdXBzID0gImkyYzFfNl9ncnAiOworCQkJZnVuY3Rpb24gPSAiaTJjMSI7CisJ CX07CisJfTsKKworCXBpbmN0cmxfaTJjMV9ncGlvOiBpMmMxLWdwaW8geworCQljb25mIHsKKwkJ CWdyb3VwcyA9ICJncGlvMF8yNF9ncnAiLCAiZ3BpbzBfMjVfZ3JwIjsKKwkJCXNsZXctcmF0ZSA9 IDxTTEVXX1JBVEVfU0xPVz47CisJCQlwb3dlci1zb3VyY2UgPSA8SU9fU1RBTkRBUkRfTFZDTU9T MTg+OworCQl9OworCisJCW11eCB7CisJCQlncm91cHMgPSAiZ3BpbzBfMjRfZ3JwIiwgImdwaW8w XzI1X2dycCI7CisJCQlmdW5jdGlvbiA9ICJncGlvMCI7CisJCX07CisJfTsKKworCXBpbmN0cmxf Z2VtM19kZWZhdWx0OiBnZW0zLWRlZmF1bHQgeworCQljb25mIHsKKwkJCWdyb3VwcyA9ICJldGhl cm5ldDNfMF9ncnAiOworCQkJc2xldy1yYXRlID0gPFNMRVdfUkFURV9TTE9XPjsKKwkJCXBvd2Vy LXNvdXJjZSA9IDxJT19TVEFOREFSRF9MVkNNT1MxOD47CisJCX07CisKKwkJY29uZi1yeCB7CisJ CQlwaW5zID0gIk1JTzcwIiwgIk1JTzcyIiwgIk1JTzc0IjsKKwkJCWJpYXMtaGlnaC1pbXBlZGFu Y2U7CisJCQlsb3ctcG93ZXItZGlzYWJsZTsKKwkJfTsKKworCQljb25mLWJvb3RzdHJhcCB7CisJ CQlwaW5zID0gIk1JTzcxIiwgIk1JTzczIiwgIk1JTzc1IjsKKwkJCWJpYXMtZGlzYWJsZTsKKwkJ CWxvdy1wb3dlci1kaXNhYmxlOworCQl9OworCisJCWNvbmYtdHggeworCQkJcGlucyA9ICJNSU82 NCIsICJNSU82NSIsICJNSU82NiIsCisJCQkJIk1JTzY3IiwgIk1JTzY4IiwgIk1JTzY5IjsKKwkJ CWJpYXMtZGlzYWJsZTsKKwkJCWxvdy1wb3dlci1lbmFibGU7CisJCX07CisKKwkJY29uZi1tZGlv IHsKKwkJCWdyb3VwcyA9ICJtZGlvM18wX2dycCI7CisJCQlzbGV3LXJhdGUgPSA8U0xFV19SQVRF X1NMT1c+OworCQkJcG93ZXItc291cmNlID0gPElPX1NUQU5EQVJEX0xWQ01PUzE4PjsKKwkJCWJp YXMtZGlzYWJsZTsKKwkJfTsKKworCQltdXgtbWRpbyB7CisJCQlmdW5jdGlvbiA9ICJtZGlvMyI7 CisJCQlncm91cHMgPSAibWRpbzNfMF9ncnAiOworCQl9OworCisJCW11eCB7CisJCQlmdW5jdGlv biA9ICJldGhlcm5ldDMiOworCQkJZ3JvdXBzID0gImV0aGVybmV0M18wX2dycCI7CisJCX07CisJ fTsKKworCXBpbmN0cmxfdXNiMF9kZWZhdWx0OiB1c2IwLWRlZmF1bHQgeworCQljb25mIHsKKwkJ CWdyb3VwcyA9ICJ1c2IwXzBfZ3JwIjsKKwkJCXNsZXctcmF0ZSA9IDxTTEVXX1JBVEVfU0xPVz47 CisJCQlwb3dlci1zb3VyY2UgPSA8SU9fU1RBTkRBUkRfTFZDTU9TMTg+OworCQl9OworCisJCWNv bmYtcnggeworCQkJcGlucyA9ICJNSU81MiIsICJNSU81MyIsICJNSU81NSI7CisJCQliaWFzLWhp Z2gtaW1wZWRhbmNlOworCQl9OworCisJCWNvbmYtdHggeworCQkJcGlucyA9ICJNSU81NCIsICJN SU81NiIsICJNSU81NyIsICJNSU81OCIsICJNSU81OSIsCisJCQkiTUlPNjAiLCAiTUlPNjEiLCAi TUlPNjIiLCAiTUlPNjMiOworCQkJYmlhcy1kaXNhYmxlOworCQl9OworCisJCW11eCB7CisJCQln cm91cHMgPSAidXNiMF8wX2dycCI7CisJCQlmdW5jdGlvbiA9ICJ1c2IwIjsKKwkJfTsKKwl9Owor CisJcGluY3RybF9zZGhjaTFfZGVmYXVsdDogc2RoY2kxLWRlZmF1bHQgeworCQljb25mIHsKKwkJ CWdyb3VwcyA9ICJzZGlvMV8wX2dycCI7CisJCQlzbGV3LXJhdGUgPSA8U0xFV19SQVRFX1NMT1c+ OworCQkJcG93ZXItc291cmNlID0gPElPX1NUQU5EQVJEX0xWQ01PUzE4PjsKKwkJCWJpYXMtZGlz YWJsZTsKKwkJfTsKKworCQljb25mLWNkIHsKKwkJCWdyb3VwcyA9ICJzZGlvMV9jZF8wX2dycCI7 CisJCQliaWFzLWhpZ2gtaW1wZWRhbmNlOworCQkJYmlhcy1wdWxsLXVwOworCQkJc2xldy1yYXRl ID0gPFNMRVdfUkFURV9TTE9XPjsKKwkJCXBvd2VyLXNvdXJjZSA9IDxJT19TVEFOREFSRF9MVkNN T1MxOD47CisJCX07CisKKwkJbXV4LWNkIHsKKwkJCWdyb3VwcyA9ICJzZGlvMV9jZF8wX2dycCI7 CisJCQlmdW5jdGlvbiA9ICJzZGlvMV9jZCI7CisJCX07CisKKwkJbXV4IHsKKwkJCWdyb3VwcyA9 ICJzZGlvMV8wX2dycCI7CisJCQlmdW5jdGlvbiA9ICJzZGlvMSI7CisJCX07CisJfTsKK307CisK KyZ1YXJ0MSB7CisJc3RhdHVzID0gIm9rYXkiOworCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7 CisJcGluY3RybC0wID0gPCZwaW5jdHJsX3VhcnQxX2RlZmF1bHQ+OworfTsKZGlmZiAtLWdpdCBh L2FyY2gvYXJtNjQvYm9vdC9kdHMveGlsaW54L3p5bnFtcC1zY2sta3YtZy1yZXZCLmR0cyBiL2Fy Y2gvYXJtNjQvYm9vdC9kdHMveGlsaW54L3p5bnFtcC1zY2sta3YtZy1yZXZCLmR0cwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmI1NDQzYWZmZjk4MgotLS0gL2Rldi9u dWxsCisrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMveGlsaW54L3p5bnFtcC1zY2sta3YtZy1yZXZC LmR0cwpAQCAtMCwwICsxLDMxOCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0y LjAKKy8qCisgKiBkdHMgZmlsZSBmb3IgS1YyNjAgcmV2QSBDYXJyaWVyIENhcmQKKyAqCisgKiAo QykgQ29weXJpZ2h0IDIwMjAgLSAyMDIxLCBYaWxpbngsIEluYy4KKyAqCisgKiBNaWNoYWwgU2lt ZWsgPG1pY2hhbC5zaW1la0B4aWxpbnguY29tPgorICovCisKKyAjaW5jbHVkZSA8ZHQtYmluZGlu Z3MvZ3Bpby9ncGlvLmg+CisgI2luY2x1ZGUgPGR0LWJpbmRpbmdzL25ldC90aS1kcDgzODY3Lmg+ CisgI2luY2x1ZGUgPGR0LWJpbmRpbmdzL3BoeS9waHkuaD4KKyAjaW5jbHVkZSA8ZHQtYmluZGlu Z3MvcGluY3RybC9waW5jdHJsLXp5bnFtcC5oPgorCisvZHRzLXYxLzsKKy9wbHVnaW4vOworCism ey99IHsKKwljb21wYXRpYmxlID0gInhsbngsenlucW1wLXNrLWt2MjYwLXJldjEiLAorCQkgICAg ICJ4bG54LHp5bnFtcC1zay1rdjI2MC1yZXZCIiwKKwkJICAgICAieGxueCx6eW5xbXAtc2sta3Yy NjAiLCAieGxueCx6eW5xbXAiOworfTsKKworJmkyYzEgeyAvKiBJMkNfU0NLIEMyMy9DMjQgLSBN SU8gZnJvbSBTT00gKi8KKwkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkjc2l6ZS1jZWxscyA9IDww PjsKKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiLCAiZ3BpbyI7CisJcGluY3RybC0wID0gPCZw aW5jdHJsX2kyYzFfZGVmYXVsdD47CisJcGluY3RybC0xID0gPCZwaW5jdHJsX2kyYzFfZ3Bpbz47 CisJc2NsLWdwaW9zID0gPCZncGlvIDI0IEdQSU9fQUNUSVZFX0hJR0g+OworCXNkYS1ncGlvcyA9 IDwmZ3BpbyAyNSBHUElPX0FDVElWRV9ISUdIPjsKKworCXUxNDogaW5hMjYwQDQwIHsgLyogdTE0 ICovCisJCWNvbXBhdGlibGUgPSAidGksaW5hMjYwIjsKKwkJI2lvLWNoYW5uZWwtY2VsbHMgPSA8 MT47CisJCWxhYmVsID0gImluYTI2MC11MTQiOworCQlyZWcgPSA8MHg0MD47CisJfTsKKwl1c2Jo dWI6IHVzYjU3NDRAMmQgeyAvKiB1NDMgKi8KKwkJY29tcGF0aWJsZSA9ICJtaWNyb2NoaXAsdXNi NTc0NCI7CisJCXJlZyA9IDwweDJkPjsKKwkJcmVzZXQtZ3Bpb3MgPSA8JmdwaW8gNDQgR1BJT19B Q1RJVkVfSElHSD47CisJfTsKKwkvKiB1MjcgLSAweGUwIC0gU1REUDQzMjAgRFAvSERNSSBzcGxp dHRlciAqLworfTsKKworJmFtYmEgeworCWluYTI2MC11MTQgeworCQljb21wYXRpYmxlID0gImlp by1od21vbiI7CisJCWlvLWNoYW5uZWxzID0gPCZ1MTQgMD4sIDwmdTE0IDE+LCA8JnUxNCAyPjsK Kwl9OworCisJc2k1MzMyXzA6IHNpNTMzMl8wIHsgLyogdTE3ICovCisJCWNvbXBhdGlibGUgPSAi Zml4ZWQtY2xvY2siOworCQkjY2xvY2stY2VsbHMgPSA8MD47CisJCWNsb2NrLWZyZXF1ZW5jeSA9 IDwxMjUwMDAwMDA+OworCX07CisKKwlzaTUzMzJfMTogc2k1MzMyXzEgeyAvKiB1MTcgKi8KKwkJ Y29tcGF0aWJsZSA9ICJmaXhlZC1jbG9jayI7CisJCSNjbG9jay1jZWxscyA9IDwwPjsKKwkJY2xv Y2stZnJlcXVlbmN5ID0gPDI1MDAwMDAwPjsKKwl9OworCisJc2k1MzMyXzI6IHNpNTMzMl8yIHsg LyogdTE3ICovCisJCWNvbXBhdGlibGUgPSAiZml4ZWQtY2xvY2siOworCQkjY2xvY2stY2VsbHMg PSA8MD47CisJCWNsb2NrLWZyZXF1ZW5jeSA9IDw0ODAwMDAwMD47CisJfTsKKworCXNpNTMzMl8z OiBzaTUzMzJfMyB7IC8qIHUxNyAqLworCQljb21wYXRpYmxlID0gImZpeGVkLWNsb2NrIjsKKwkJ I2Nsb2NrLWNlbGxzID0gPDA+OworCQljbG9jay1mcmVxdWVuY3kgPSA8MjQwMDAwMDA+OworCX07 CisKKwlzaTUzMzJfNDogc2k1MzMyXzQgeyAvKiB1MTcgKi8KKwkJY29tcGF0aWJsZSA9ICJmaXhl ZC1jbG9jayI7CisJCSNjbG9jay1jZWxscyA9IDwwPjsKKwkJY2xvY2stZnJlcXVlbmN5ID0gPDI2 MDAwMDAwPjsKKwl9OworCisJc2k1MzMyXzU6IHNpNTMzMl81IHsgLyogdTE3ICovCisJCWNvbXBh dGlibGUgPSAiZml4ZWQtY2xvY2siOworCQkjY2xvY2stY2VsbHMgPSA8MD47CisJCWNsb2NrLWZy ZXF1ZW5jeSA9IDwyNzAwMDAwMD47CisJfTsKK307CisKKy8qIERQL1VTQiAzLjAgKi8KKyZwc2d0 ciB7CisJc3RhdHVzID0gIm9rYXkiOworCS8qIHBjaWUsIHVzYjMsIHNhdGEgKi8KKwljbG9ja3Mg PSA8JnNpNTMzMl81PiwgPCZzaTUzMzJfND4sIDwmc2k1MzMyXzA+OworCWNsb2NrLW5hbWVzID0g InJlZjAiLCAicmVmMSIsICJyZWYyIjsKK307CisKKyZ6eW5xbXBfZHBzdWIgeworCXN0YXR1cyA9 ICJkaXNhYmxlZCI7CisJcGh5LW5hbWVzID0gImRwLXBoeTAiLCAiZHAtcGh5MSI7CisJcGh5cyA9 IDwmcHNndHIgMSBQSFlfVFlQRV9EUCAwIDA+LCA8JnBzZ3RyIDAgUEhZX1RZUEVfRFAgMSAwPjsK K307CisKKyZ6eW5xbXBfZHBkbWEgeworCXN0YXR1cyA9ICJva2F5IjsKK307CisKKyZ1c2IwIHsK KwlzdGF0dXMgPSAib2theSI7CisJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKwlwaW5jdHJs LTAgPSA8JnBpbmN0cmxfdXNiMF9kZWZhdWx0PjsKK307CisKKyZkd2MzXzAgeworCXN0YXR1cyA9 ICJva2F5IjsKKwlkcl9tb2RlID0gImhvc3QiOworCXNucHMsdXNiM19scG1fY2FwYWJsZTsKKwlw aHktbmFtZXMgPSAidXNiMy1waHkiOworCXBoeXMgPSA8JnBzZ3RyIDIgUEhZX1RZUEVfVVNCMyAw IDE+OworCW1heGltdW0tc3BlZWQgPSAic3VwZXItc3BlZWQiOworfTsKKworJnNkaGNpMSB7IC8q IG9uIENDIHdpdGggdHVuZWQgcGFyYW1ldGVycyAqLworCXN0YXR1cyA9ICJva2F5IjsKKwlwaW5j dHJsLW5hbWVzID0gImRlZmF1bHQiOworCXBpbmN0cmwtMCA9IDwmcGluY3RybF9zZGhjaTFfZGVm YXVsdD47CisJLyoKKwkgKiBTRCAzLjAgcmVxdWlyZXMgbGV2ZWwgc2hpZnRlciBhbmQgdGhpcyBw cm9wZXJ0eQorCSAqIHNob3VsZCBiZSByZW1vdmVkIGlmIHRoZSBib2FyZCBoYXMgbGV2ZWwgc2hp ZnRlciBhbmQKKwkgKiBuZWVkIHRvIHdvcmsgaW4gVUhTIG1vZGUKKwkgKi8KKwluby0xLTgtdjsK KwlkaXNhYmxlLXdwOworCXhsbngsbWlvLWJhbmsgPSA8MT47CisJY2xrLXBoYXNlLXNkLWhzID0g PDEyNj4sIDw2MD47CisJY2xrLXBoYXNlLXVocy1zZHIyNSA9IDwxMjA+LCA8NjA+OworCWNsay1w aGFzZS11aHMtZGRyNTAgPSA8MTI2PiwgPDQ4PjsKK307CisKKyZnZW0zIHsgLyogcmVxdWlyZWQg Ynkgc3BlYyAqLworCXN0YXR1cyA9ICJva2F5IjsKKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQi OworCXBpbmN0cmwtMCA9IDwmcGluY3RybF9nZW0zX2RlZmF1bHQ+OworCXBoeS1oYW5kbGUgPSA8 JnBoeTA+OworCXBoeS1tb2RlID0gInJnbWlpLWlkIjsKKworCW1kaW86IG1kaW8geworCQkjYWRk cmVzcy1jZWxscyA9IDwxPjsKKwkJI3NpemUtY2VsbHMgPSA8MD47CisJCXJlc2V0LWdwaW9zID0g PCZncGlvIDM4IEdQSU9fQUNUSVZFX0xPVz47CisJCXJlc2V0LWRlbGF5LXVzID0gPDI+OworCisJ CXBoeTA6IGV0aGVybmV0LXBoeUAxIHsKKwkJCSNwaHktY2VsbHMgPSA8MT47CisJCQlyZWcgPSA8 MT47CisJCQl0aSxyeC1pbnRlcm5hbC1kZWxheSA9IDxEUDgzODY3X1JHTUlJRENUTF8yXzI1X05T PjsKKwkJCXRpLHR4LWludGVybmFsLWRlbGF5ID0gPERQODM4NjdfUkdNSUlEQ1RMXzJfNzVfTlM+ OworCQkJdGksZmlmby1kZXB0aCA9IDxEUDgzODY3X1BIWUNSX0ZJRk9fREVQVEhfNF9CX05JQj47 CisJCQl0aSxkcDgzODY3LXJ4Y3RybC1zdHJhcC1xdWlyazsKKwkJfTsKKwl9OworfTsKKworJnBp bmN0cmwwIHsgLyogcmVxdWlyZWQgYnkgc3BlYyAqLworCXN0YXR1cyA9ICJva2F5IjsKKworCXBp bmN0cmxfdWFydDFfZGVmYXVsdDogdWFydDEtZGVmYXVsdCB7CisJCWNvbmYgeworCQkJZ3JvdXBz ID0gInVhcnQxXzlfZ3JwIjsKKwkJCXNsZXctcmF0ZSA9IDxTTEVXX1JBVEVfU0xPVz47CisJCQlw b3dlci1zb3VyY2UgPSA8SU9fU1RBTkRBUkRfTFZDTU9TMTg+OworCQkJZHJpdmUtc3RyZW5ndGgg PSA8MTI+OworCQl9OworCisJCWNvbmYtcnggeworCQkJcGlucyA9ICJNSU8zNyI7CisJCQliaWFz LWhpZ2gtaW1wZWRhbmNlOworCQl9OworCisJCWNvbmYtdHggeworCQkJcGlucyA9ICJNSU8zNiI7 CisJCQliaWFzLWRpc2FibGU7CisJCX07CisKKwkJbXV4IHsKKwkJCWdyb3VwcyA9ICJ1YXJ0MV85 X2dycCI7CisJCQlmdW5jdGlvbiA9ICJ1YXJ0MSI7CisJCX07CisJfTsKKworCXBpbmN0cmxfaTJj MV9kZWZhdWx0OiBpMmMxLWRlZmF1bHQgeworCQljb25mIHsKKwkJCWdyb3VwcyA9ICJpMmMxXzZf Z3JwIjsKKwkJCWJpYXMtcHVsbC11cDsKKwkJCXNsZXctcmF0ZSA9IDxTTEVXX1JBVEVfU0xPVz47 CisJCQlwb3dlci1zb3VyY2UgPSA8SU9fU1RBTkRBUkRfTFZDTU9TMTg+OworCQl9OworCisJCW11 eCB7CisJCQlncm91cHMgPSAiaTJjMV82X2dycCI7CisJCQlmdW5jdGlvbiA9ICJpMmMxIjsKKwkJ fTsKKwl9OworCisJcGluY3RybF9pMmMxX2dwaW86IGkyYzEtZ3BpbyB7CisJCWNvbmYgeworCQkJ Z3JvdXBzID0gImdwaW8wXzI0X2dycCIsICJncGlvMF8yNV9ncnAiOworCQkJc2xldy1yYXRlID0g PFNMRVdfUkFURV9TTE9XPjsKKwkJCXBvd2VyLXNvdXJjZSA9IDxJT19TVEFOREFSRF9MVkNNT1Mx OD47CisJCX07CisKKwkJbXV4IHsKKwkJCWdyb3VwcyA9ICJncGlvMF8yNF9ncnAiLCAiZ3BpbzBf MjVfZ3JwIjsKKwkJCWZ1bmN0aW9uID0gImdwaW8wIjsKKwkJfTsKKwl9OworCisJcGluY3RybF9n ZW0zX2RlZmF1bHQ6IGdlbTMtZGVmYXVsdCB7CisJCWNvbmYgeworCQkJZ3JvdXBzID0gImV0aGVy bmV0M18wX2dycCI7CisJCQlzbGV3LXJhdGUgPSA8U0xFV19SQVRFX1NMT1c+OworCQkJcG93ZXIt c291cmNlID0gPElPX1NUQU5EQVJEX0xWQ01PUzE4PjsKKwkJfTsKKworCQljb25mLXJ4IHsKKwkJ CXBpbnMgPSAiTUlPNzAiLCAiTUlPNzIiLCAiTUlPNzQiOworCQkJYmlhcy1oaWdoLWltcGVkYW5j ZTsKKwkJCWxvdy1wb3dlci1kaXNhYmxlOworCQl9OworCisJCWNvbmYtYm9vdHN0cmFwIHsKKwkJ CXBpbnMgPSAiTUlPNzEiLCAiTUlPNzMiLCAiTUlPNzUiOworCQkJYmlhcy1kaXNhYmxlOworCQkJ bG93LXBvd2VyLWRpc2FibGU7CisJCX07CisKKwkJY29uZi10eCB7CisJCQlwaW5zID0gIk1JTzY0 IiwgIk1JTzY1IiwgIk1JTzY2IiwKKwkJCQkiTUlPNjciLCAiTUlPNjgiLCAiTUlPNjkiOworCQkJ Ymlhcy1kaXNhYmxlOworCQkJbG93LXBvd2VyLWVuYWJsZTsKKwkJfTsKKworCQljb25mLW1kaW8g eworCQkJZ3JvdXBzID0gIm1kaW8zXzBfZ3JwIjsKKwkJCXNsZXctcmF0ZSA9IDxTTEVXX1JBVEVf U0xPVz47CisJCQlwb3dlci1zb3VyY2UgPSA8SU9fU1RBTkRBUkRfTFZDTU9TMTg+OworCQkJYmlh cy1kaXNhYmxlOworCQl9OworCisJCW11eC1tZGlvIHsKKwkJCWZ1bmN0aW9uID0gIm1kaW8zIjsK KwkJCWdyb3VwcyA9ICJtZGlvM18wX2dycCI7CisJCX07CisKKwkJbXV4IHsKKwkJCWZ1bmN0aW9u ID0gImV0aGVybmV0MyI7CisJCQlncm91cHMgPSAiZXRoZXJuZXQzXzBfZ3JwIjsKKwkJfTsKKwl9 OworCisJcGluY3RybF91c2IwX2RlZmF1bHQ6IHVzYjAtZGVmYXVsdCB7CisJCWNvbmYgeworCQkJ Z3JvdXBzID0gInVzYjBfMF9ncnAiOworCQkJc2xldy1yYXRlID0gPFNMRVdfUkFURV9TTE9XPjsK KwkJCXBvd2VyLXNvdXJjZSA9IDxJT19TVEFOREFSRF9MVkNNT1MxOD47CisJCX07CisKKwkJY29u Zi1yeCB7CisJCQlwaW5zID0gIk1JTzUyIiwgIk1JTzUzIiwgIk1JTzU1IjsKKwkJCWJpYXMtaGln aC1pbXBlZGFuY2U7CisJCX07CisKKwkJY29uZi10eCB7CisJCQlwaW5zID0gIk1JTzU0IiwgIk1J TzU2IiwgIk1JTzU3IiwgIk1JTzU4IiwgIk1JTzU5IiwKKwkJCSJNSU82MCIsICJNSU82MSIsICJN SU82MiIsICJNSU82MyI7CisJCQliaWFzLWRpc2FibGU7CisJCX07CisKKwkJbXV4IHsKKwkJCWdy b3VwcyA9ICJ1c2IwXzBfZ3JwIjsKKwkJCWZ1bmN0aW9uID0gInVzYjAiOworCQl9OworCX07CisK KwlwaW5jdHJsX3NkaGNpMV9kZWZhdWx0OiBzZGhjaTEtZGVmYXVsdCB7CisJCWNvbmYgeworCQkJ Z3JvdXBzID0gInNkaW8xXzBfZ3JwIjsKKwkJCXNsZXctcmF0ZSA9IDxTTEVXX1JBVEVfU0xPVz47 CisJCQlwb3dlci1zb3VyY2UgPSA8SU9fU1RBTkRBUkRfTFZDTU9TMTg+OworCQkJYmlhcy1kaXNh YmxlOworCQl9OworCisJCWNvbmYtY2QgeworCQkJZ3JvdXBzID0gInNkaW8xX2NkXzBfZ3JwIjsK KwkJCWJpYXMtaGlnaC1pbXBlZGFuY2U7CisJCQliaWFzLXB1bGwtdXA7CisJCQlzbGV3LXJhdGUg PSA8U0xFV19SQVRFX1NMT1c+OworCQkJcG93ZXItc291cmNlID0gPElPX1NUQU5EQVJEX0xWQ01P UzE4PjsKKwkJfTsKKworCQltdXgtY2QgeworCQkJZ3JvdXBzID0gInNkaW8xX2NkXzBfZ3JwIjsK KwkJCWZ1bmN0aW9uID0gInNkaW8xX2NkIjsKKwkJfTsKKworCQltdXggeworCQkJZ3JvdXBzID0g InNkaW8xXzBfZ3JwIjsKKwkJCWZ1bmN0aW9uID0gInNkaW8xIjsKKwkJfTsKKwl9OworfTsKKwor JnVhcnQxIHsKKwlzdGF0dXMgPSAib2theSI7CisJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsK KwlwaW5jdHJsLTAgPSA8JnBpbmN0cmxfdWFydDFfZGVmYXVsdD47Cit9OwpkaWZmIC0tZ2l0IGEv YXJjaC9hcm02NC9ib290L2R0cy94aWxpbngvenlucW1wLXNtLWsyNi1yZXZBLmR0cyBiL2FyY2gv YXJtNjQvYm9vdC9kdHMveGlsaW54L3p5bnFtcC1zbS1rMjYtcmV2QS5kdHMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xNzNhNTljZWI0OWEKLS0tIC9kZXYvbnVsbAor KysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3hpbGlueC96eW5xbXAtc20tazI2LXJldkEuZHRzCkBA IC0wLDAgKzEsMjg5IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoK KyAqIGR0cyBmaWxlIGZvciBYaWxpbnggWnlucU1QIFNNLUsyNiByZXYxL0IvQQorICoKKyAqIChD KSBDb3B5cmlnaHQgMjAyMCAtIDIwMjEsIFhpbGlueCwgSW5jLgorICoKKyAqIE1pY2hhbCBTaW1l ayA8bWljaGFsLnNpbWVrQHhpbGlueC5jb20+CisgKi8KKworL2R0cy12MS87CisKKyNpbmNsdWRl ICJ6eW5xbXAuZHRzaSIKKyNpbmNsdWRlICJ6eW5xbXAtY2xrLWNjZi5kdHNpIgorI2luY2x1ZGUg PGR0LWJpbmRpbmdzL2lucHV0L2lucHV0Lmg+CisjaW5jbHVkZSA8ZHQtYmluZGluZ3MvZ3Bpby9n cGlvLmg+CisjaW5jbHVkZSA8ZHQtYmluZGluZ3MvcGh5L3BoeS5oPgorCisvIHsKKwltb2RlbCA9 ICJaeW5xTVAgU00tSzI2IFJldjEvQi9BIjsKKwljb21wYXRpYmxlID0gInhsbngsenlucW1wLXNt LWsyNi1yZXYxIiwgInhsbngsenlucW1wLXNtLWsyNi1yZXZCIiwKKwkJICAgICAieGxueCx6eW5x bXAtc20tazI2LXJldkEiLCAieGxueCx6eW5xbXAtc20tazI2IiwKKwkJICAgICAieGxueCx6eW5x bXAiOworCisJYWxpYXNlcyB7CisJCWkyYzAgPSAmaTJjMDsKKwkJaTJjMSA9ICZpMmMxOworCQlt bWMwID0gJnNkaGNpMDsKKwkJbW1jMSA9ICZzZGhjaTE7CisJCW52bWVtMCA9ICZlZXByb207CisJ CW52bWVtMSA9ICZlZXByb21fY2M7CisJCXJ0YzAgPSAmcnRjOworCQlzZXJpYWwwID0gJnVhcnQw OworCQlzZXJpYWwxID0gJnVhcnQxOworCQlzZXJpYWwyID0gJmRjYzsKKwkJc3BpMCA9ICZxc3Bp OworCQlzcGkxID0gJnNwaTA7CisJCXNwaTIgPSAmc3BpMTsKKwkJdXNiMCA9ICZ1c2IwOworCQl1 c2IxID0gJnVzYjE7CisJfTsKKworCWNob3NlbiB7CisJCWJvb3RhcmdzID0gImVhcmx5Y29uIjsK KwkJc3Rkb3V0LXBhdGggPSAic2VyaWFsMToxMTUyMDBuOCI7CisJfTsKKworCW1lbW9yeUAwIHsK KwkJZGV2aWNlX3R5cGUgPSAibWVtb3J5IjsgLyogNEdCICovCisJCXJlZyA9IDwweDAgMHgwIDB4 MCAweDgwMDAwMDAwPiwgPDB4OCAweDAwMDAwMDAwIDB4MCAweDgwMDAwMDAwPjsKKwl9OworCisJ Z3Bpby1rZXlzIHsKKwkJY29tcGF0aWJsZSA9ICJncGlvLWtleXMiOworCQlhdXRvcmVwZWF0Owor CQlmd3VlbiB7CisJCQlsYWJlbCA9ICJmd3VlbiI7CisJCQlncGlvcyA9IDwmZ3BpbyAxMiBHUElP X0FDVElWRV9MT1c+OworCQl9OworCX07CisKKwlsZWRzIHsKKwkJY29tcGF0aWJsZSA9ICJncGlv LWxlZHMiOworCQlkczM1IHsKKwkJCWxhYmVsID0gImhlYXJ0YmVhdCI7CisJCQlncGlvcyA9IDwm Z3BpbyA3IEdQSU9fQUNUSVZFX0hJR0g+OworCQkJbGludXgsZGVmYXVsdC10cmlnZ2VyID0gImhl YXJ0YmVhdCI7CisJCX07CisKKwkJZHMzNiB7CisJCQlsYWJlbCA9ICJ2YnVzX2RldCI7CisJCQln cGlvcyA9IDwmZ3BpbyA4IEdQSU9fQUNUSVZFX0hJR0g+OworCQkJZGVmYXVsdC1zdGF0ZSA9ICJv biI7CisJCX07CisJfTsKK307CisKKyZ1YXJ0MSB7IC8qIE1JTzM2L01JTzM3ICovCisJc3RhdHVz ID0gIm9rYXkiOworfTsKKworJnFzcGkgeyAvKiBNSU8gMC01IC0gVTE0MyAqLworCXN0YXR1cyA9 ICJva2F5IjsKKwlmbGFzaEAwIHsgLyogTVQyNVFVNTEyQSAqLworCQljb21wYXRpYmxlID0gIm10 MjVxdTUxMmEiLCAiamVkZWMsc3BpLW5vciI7IC8qIDY0TUIgKi8KKwkJI2FkZHJlc3MtY2VsbHMg PSA8MT47CisJCSNzaXplLWNlbGxzID0gPDE+OworCQlyZWcgPSA8MD47CisJCXNwaS10eC1idXMt d2lkdGggPSA8MT47CisJCXNwaS1yeC1idXMtd2lkdGggPSA8ND47CisJCXNwaS1tYXgtZnJlcXVl bmN5ID0gPDQwMDAwMDAwPjsgLyogNDBNSHogKi8KKwkJcGFydGl0aW9uQDAgeworCQkJbGFiZWwg PSAiSW1hZ2UgU2VsZWN0b3IiOworCQkJcmVnID0gPDB4MCAweDgwMDAwPjsgLyogNTEyS0IgKi8K KwkJCXJlYWQtb25seTsKKwkJCWxvY2s7CisJCX07CisJCXBhcnRpdGlvbkA4MDAwMCB7CisJCQls YWJlbCA9ICJJbWFnZSBTZWxlY3RvciBHb2xkZW4iOworCQkJcmVnID0gPDB4ODAwMDAgMHg4MDAw MD47IC8qIDUxMktCICovCisJCQlyZWFkLW9ubHk7CisJCQlsb2NrOworCQl9OworCQlwYXJ0aXRp b25AMTAwMDAwIHsKKwkJCWxhYmVsID0gIlBlcnNpc3RlbnQgUmVnaXN0ZXIiOworCQkJcmVnID0g PDB4MTAwMDAwIDB4MjAwMDA+OyAvKiAxMjhLQiAqLworCQl9OworCQlwYXJ0aXRpb25AMTIwMDAw IHsKKwkJCWxhYmVsID0gIlBlcnNpc3RlbnQgUmVnaXN0ZXIgQmFja3VwIjsKKwkJCXJlZyA9IDww eDEyMDAwMCAweDIwMDAwPjsgLyogMTI4S0IgKi8KKwkJfTsKKwkJcGFydGl0aW9uQDE0MDAwMCB7 CisJCQlsYWJlbCA9ICJPcGVuXzEiOworCQkJcmVnID0gPDB4MTQwMDAwIDB4QzAwMDA+OyAvKiA3 NjhLQiAqLworCQl9OworCQlwYXJ0aXRpb25AMjAwMDAwIHsKKwkJCWxhYmVsID0gIkltYWdlIEEg KEZTQkwsIFBNVSwgQVRGLCBVLUJvb3QpIjsKKwkJCXJlZyA9IDwweDIwMDAwMCAweEQwMDAwMD47 IC8qIDEzTUIgKi8KKwkJfTsKKwkJcGFydGl0aW9uQGYwMDAwMCB7CisJCQlsYWJlbCA9ICJJbWdT ZWwgSW1hZ2UgQSBDYXRjaCI7CisJCQlyZWcgPSA8MHhGMDAwMDAgMHg4MDAwMD47IC8qIDUxMktC ICovCisJCQlyZWFkLW9ubHk7CisJCQlsb2NrOworCQl9OworCQlwYXJ0aXRpb25AZjgwMDAwIHsK KwkJCWxhYmVsID0gIkltYWdlIEIgKEZTQkwsIFBNVSwgQVRGLCBVLUJvb3QpIjsKKwkJCXJlZyA9 IDwweEY4MDAwMCAweEQwMDAwMD47IC8qIDEzTUIgKi8KKwkJfTsKKwkJcGFydGl0aW9uQDFjODAw MDAgeworCQkJbGFiZWwgPSAiSW1nU2VsIEltYWdlIEIgQ2F0Y2giOworCQkJcmVnID0gPDB4MUM4 MDAwMCAweDgwMDAwPjsgLyogNTEyS0IgKi8KKwkJCXJlYWQtb25seTsKKwkJCWxvY2s7CisJCX07 CisJCXBhcnRpdGlvbkAxZDAwMDAwIHsKKwkJCWxhYmVsID0gIk9wZW5fMiI7CisJCQlyZWcgPSA8 MHgxRDAwMDAwIDB4MTAwMDAwPjsgLyogMU1CICovCisJCX07CisJCXBhcnRpdGlvbkAxZTAwMDAw IHsKKwkJCWxhYmVsID0gIlJlY292ZXJ5IEltYWdlIjsKKwkJCXJlZyA9IDwweDFFMDAwMDAgMHgy MDAwMDA+OyAvKiAyTUIgKi8KKwkJCXJlYWQtb25seTsKKwkJCWxvY2s7CisJCX07CisJCXBhcnRp dGlvbkAyMDAwMDAwIHsKKwkJCWxhYmVsID0gIlJlY292ZXJ5IEltYWdlIEJhY2t1cCI7CisJCQly ZWcgPSA8MHgyMDAwMDAwIDB4MjAwMDAwPjsgLyogMk1CICovCisJCQlyZWFkLW9ubHk7CisJCQls b2NrOworCQl9OworCQlwYXJ0aXRpb25AMjIwMDAwMCB7CisJCQlsYWJlbCA9ICJVLUJvb3Qgc3Rv cmFnZSB2YXJpYWJsZXMiOworCQkJcmVnID0gPDB4MjIwMDAwMCAweDIwMDAwPjsgLyogMTI4S0Ig Ki8KKwkJfTsKKwkJcGFydGl0aW9uQDIyMjAwMDAgeworCQkJbGFiZWwgPSAiVS1Cb290IHN0b3Jh Z2UgdmFyaWFibGVzIGJhY2t1cCI7CisJCQlyZWcgPSA8MHgyMjIwMDAwIDB4MjAwMDA+OyAvKiAx MjhLQiAqLworCQl9OworCQlwYXJ0aXRpb25AMjI0MDAwMCB7CisJCQlsYWJlbCA9ICJTSEEyNTYi OworCQkJcmVnID0gPDB4MjI0MDAwMCAweDEwMDAwPjsgLyogMjU2QiBidXQgNjRLQiBzZWN0b3Ig Ki8KKwkJCXJlYWQtb25seTsKKwkJCWxvY2s7CisJCX07CisJCXBhcnRpdGlvbkAyMjUwMDAwIHsK KwkJCWxhYmVsID0gIlVzZXIiOworCQkJcmVnID0gPDB4MjI1MDAwMCAweDFkYjAwMDA+OyAvKiAy OS41IE1CICovCisJCX07CisJfTsKK307CisKKyZzZGhjaTAgeyAvKiBNSU8xMy0yMyAtIDE2R0Ig ZW1tYyBNVEZDMTZHQVBBTEJILUlUIC0gVTEzM0EqLworCXN0YXR1cyA9ICJva2F5IjsKKwlub24t cmVtb3ZhYmxlOworCWRpc2FibGUtd3A7CisJYnVzLXdpZHRoID0gPDg+OworCXhsbngsbWlvLWJh bmsgPSA8MD47Cit9OworCismc3BpMSB7IC8qIE1JTzYsIDktMTEgKi8KKwlzdGF0dXMgPSAib2th eSI7CisJbGFiZWwgPSAiVFBNIjsKKwludW0tY3MgPSA8MT47CisJdHBtQDAgeyAvKiBzbG05Njcw IC0gVTE0NCAqLworCQljb21wYXRpYmxlID0gImluZmluZW9uLHNsYjk2NzAiLCAidGNnLHRwbV90 aXMtc3BpIjsKKwkJcmVnID0gPDA+OworCQlzcGktbWF4LWZyZXF1ZW5jeSA9IDwxODUwMDAwMD47 CisJfTsKK307CisKKyZpMmMxIHsKKwlzdGF0dXMgPSAib2theSI7CisJY2xvY2stZnJlcXVlbmN5 ID0gPDQwMDAwMD47CisJc2NsLWdwaW9zID0gPCZncGlvIDI0IEdQSU9fQUNUSVZFX0hJR0g+Owor CXNkYS1ncGlvcyA9IDwmZ3BpbyAyNSBHUElPX0FDVElWRV9ISUdIPjsKKworCWVlcHJvbTogZWVw cm9tQDUwIHsgLyogdTQ2IC0gYWxzbyBhdCBhZGRyZXNzIDB4NTggKi8KKwkJY29tcGF0aWJsZSA9 ICJzdCwyNGM2NCIsICJhdG1lbCwyNGM2NCI7IC8qIHN0IG0yNGM2NCAqLworCQlyZWcgPSA8MHg1 MD47CisJCS8qIFdQIHBpbiBFRV9XUF9FTiBjb25uZWN0ZWQgdG8gc2xnN3g2NDQwOTJANjggKi8K Kwl9OworCisJZWVwcm9tX2NjOiBlZXByb21ANTEgeyAvKiByZXF1aXJlZCBieSBzcGVjIC0gYWxz byBhdCBhZGRyZXNzIDB4NTkgKi8KKwkJY29tcGF0aWJsZSA9ICJzdCwyNGM2NCIsICJhdG1lbCwy NGM2NCI7IC8qIHN0IG0yNGM2NCAqLworCQlyZWcgPSA8MHg1MT47CisJfTsKKworCS8qIGRhOTA2 MkAzMCAtIHUxNzAgLSBhbHNvIGF0IGFkZHJlc3MgMHgzMSAqLworCS8qIGRhOTEzMUAzMyAtIHUx NjcgKi8KKwlkYTkxMzE6IHBtaWNAMzMgeworCQljb21wYXRpYmxlID0gImRsZyxkYTkxMzEiOwor CQlyZWcgPSA8MHgzMz47CisJCXJlZ3VsYXRvcnMgeworCQkJZGE5MTMxX2J1Y2sxOiBidWNrMSB7 CisJCQkJcmVndWxhdG9yLW5hbWUgPSAiZGE5MTMxX2J1Y2sxIjsKKwkJCQlyZWd1bGF0b3ItYm9v dC1vbjsKKwkJCQlyZWd1bGF0b3ItYWx3YXlzLW9uOworCQkJfTsKKwkJCWRhOTEzMV9idWNrMjog YnVjazIgeworCQkJCXJlZ3VsYXRvci1uYW1lID0gImRhOTEzMV9idWNrMiI7CisJCQkJcmVndWxh dG9yLWJvb3Qtb247CisJCQkJcmVndWxhdG9yLWFsd2F5cy1vbjsKKwkJCX07CisJCX07CisJfTsK KworCS8qIGRhOTEzMEAzMiAtIHUxNjYgKi8KKwlkYTkxMzA6IHBtaWNAMzIgeworCQljb21wYXRp YmxlID0gImRsZyxkYTkxMzAiOworCQlyZWcgPSA8MHgzMj47CisJCXJlZ3VsYXRvcnMgeworCQkJ ZGE5MTMwX2J1Y2sxOiBidWNrMSB7CisJCQkJcmVndWxhdG9yLW5hbWUgPSAiZGE5MTMwX2J1Y2sx IjsKKwkJCQlyZWd1bGF0b3ItYm9vdC1vbjsKKwkJCQlyZWd1bGF0b3ItYWx3YXlzLW9uOworCQkJ fTsKKwkJfTsKKwl9OworCisJLyogc2xnN3g2NDQwOTFANzAgLSB1MTY4IE5PVCBhY2Nlc3NpYmxl IGR1ZSB0byBhZGRyZXNzIGNvbmZsaWN0IHdpdGggc3RkcDQzMjAgKi8KKwkvKgorCSAqIHN0ZHA0 MzIwIC0gdTI3IEZXIGhhcyBiZWxvdyB0d28gaXNzdWVzIHRvIGJlIGZpeGVkIGluIG5leHQgYm9h cmQgcmV2aXNpb24uCisJICogRGV2aWNlIGFja25vd2xlZGdpbmcgdG8gYWRkcmVzc2VzIDB4NUMs IDB4NUQsIDB4NzAsIDB4NzIsIDB4NzYuCisJICogQWRkcmVzcyBjb25mbGljdCB3aXRoIHNsZzd4 NjQ0MDkxQDcwIG1ha2luZyBib3RoIHRoZSBkZXZpY2VzIE5PVCBhY2Nlc3NpYmxlLgorCSAqIFdp dGggdGhlIEZXIGZpeCwgc3RkcDQzMjAgc2hvdWxkIHJlc3BvbmQgdG8gYWRkcmVzcyAweDczIG9u bHkuCisJICovCisJLyogc2xnN3g2NDQwOTJANjggLSB1MTY5ICovCisJLyogQWxzbyBjb25uZWN0 ZWQgdmlhIEpBMUMgYXMgQzIzL0MyNCAqLworfTsKKworJmdwaW8geworCXN0YXR1cyA9ICJva2F5 IjsKKwlncGlvLWxpbmUtbmFtZXMgPSAiUVNQSV9DTEsiLCAiUVNQSV9EUTEiLCAiUVNQSV9EUTIi LCAiUVNQSV9EUTMiLCAiUVNQSV9EUTAiLCAvKiAwIC0gNCAqLworCQkJICAiUVNQSV9DU19CIiwg IlNQSV9DTEsiLCAiTEVEMSIsICJMRUQyIiwgIlNQSV9DU19CIiwgLyogNSAtIDkgKi8KKwkJCSAg IlNQSV9NSVNPIiwgIlNQSV9NT1NJIiwgIkZXVUVOIiwgIkVNTUNfREFUMCIsICJFTU1DX0RBVDEi LCAvKiAxMCAtIDE0ICovCisJCQkgICJFTU1DX0RBVDIiLCAiRU1NQ19EQVQzIiwgIkVNTUNfREFU NCIsICJFTU1DX0RBVDUiLCAiRU1NQ19EQVQ2IiwgLyogMTUgLSAxOSAqLworCQkJICAiRU1NQ19E QVQ3IiwgIkVNTUNfQ01EIiwgIkVNTUNfQ0xLIiwgIkVNTUNfUlNUIiwgIkkyQzFfU0NMIiwgLyog MjAgLSAyNCAqLworCQkJICAiSTJDMV9TREEiLCAiIiwgIiIsICIiLCAiIiwgLyogMjUgLSAyOSAq LworCQkJICAiIiwgIiIsICIiLCAiIiwgIiIsIC8qIDMwIC0gMzQgKi8KKwkJCSAgIiIsICIiLCAi IiwgIiIsICIiLCAvKiAzNSAtIDM5ICovCisJCQkgICIiLCAiIiwgIiIsICIiLCAiIiwgLyogNDAg LSA0NCAqLworCQkJICAiIiwgIiIsICIiLCAiIiwgIiIsIC8qIDQ1IC0gNDkgKi8KKwkJCSAgIiIs ICIiLCAiIiwgIiIsICIiLCAvKiA1MCAtIDU0ICovCisJCQkgICIiLCAiIiwgIiIsICIiLCAiIiwg LyogNTUgLSA1OSAqLworCQkJICAiIiwgIiIsICIiLCAiIiwgIiIsIC8qIDYwIC0gNjQgKi8KKwkJ CSAgIiIsICIiLCAiIiwgIiIsICIiLCAvKiA2NSAtIDY5ICovCisJCQkgICIiLCAiIiwgIiIsICIi LCAiIiwgLyogNzAgLSA3NCAqLworCQkJICAiIiwgIiIsICIiLCAvKiA3NSAtIDc3LCBNSU8gZW5k IGFuZCBFTUlPIHN0YXJ0ICovCisJCQkgICIiLCAiIiwgLyogNzggLSA3OSAqLworCQkJICAiIiwg IiIsICIiLCAiIiwgIiIsIC8qIDgwIC0gODQgKi8KKwkJCSAgIiIsICIiLCAiIiwgIiIsICIiLCAv KiA4NSAtIDg5ICovCisJCQkgICIiLCAiIiwgIiIsICIiLCAiIiwgLyogOTAgLSA5NCAqLworCQkJ ICAiIiwgIiIsICIiLCAiIiwgIiIsIC8qIDk1IC0gOTkgKi8KKwkJCSAgIiIsICIiLCAiIiwgIiIs ICIiLCAvKiAxMDAgLSAxMDQgKi8KKwkJCSAgIiIsICIiLCAiIiwgIiIsICIiLCAvKiAxMDUgLSAx MDkgKi8KKwkJCSAgIiIsICIiLCAiIiwgIiIsICIiLCAvKiAxMTAgLSAxMTQgKi8KKwkJCSAgIiIs ICIiLCAiIiwgIiIsICIiLCAvKiAxMTUgLSAxMTkgKi8KKwkJCSAgIiIsICIiLCAiIiwgIiIsICIi LCAvKiAxMjAgLSAxMjQgKi8KKwkJCSAgIiIsICIiLCAiIiwgIiIsICIiLCAvKiAxMjUgLSAxMjkg Ki8KKwkJCSAgIiIsICIiLCAiIiwgIiIsICIiLCAvKiAxMzAgLSAxMzQgKi8KKwkJCSAgIiIsICIi LCAiIiwgIiIsICIiLCAvKiAxMzUgLSAxMzkgKi8KKwkJCSAgIiIsICIiLCAiIiwgIiIsICIiLCAv KiAxNDAgLSAxNDQgKi8KKwkJCSAgIiIsICIiLCAiIiwgIiIsICIiLCAvKiAxNDUgLSAxNDkgKi8K KwkJCSAgIiIsICIiLCAiIiwgIiIsICIiLCAvKiAxNTAgLSAxNTQgKi8KKwkJCSAgIiIsICIiLCAi IiwgIiIsICIiLCAvKiAxNTUgLSAxNTkgKi8KKwkJCSAgIiIsICIiLCAiIiwgIiIsICIiLCAvKiAx NjAgLSAxNjQgKi8KKwkJCSAgIiIsICIiLCAiIiwgIiIsICIiLCAvKiAxNjUgLSAxNjkgKi8KKwkJ CSAgIiIsICIiLCAiIiwgIiI7IC8qIDE3MCAtIDE3NCAqLworfTsKZGlmZiAtLWdpdCBhL2FyY2gv YXJtNjQvYm9vdC9kdHMveGlsaW54L3p5bnFtcC1zbWstazI2LXJldkEuZHRzIGIvYXJjaC9hcm02 NC9ib290L2R0cy94aWxpbngvenlucW1wLXNtay1rMjYtcmV2QS5kdHMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5jNzA5NjZjMWYzNDQKLS0tIC9kZXYvbnVsbAorKysg Yi9hcmNoL2FybTY0L2Jvb3QvZHRzL3hpbGlueC96eW5xbXAtc21rLWsyNi1yZXZBLmR0cwpAQCAt MCwwICsxLDIxIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAq IGR0cyBmaWxlIGZvciBYaWxpbnggWnlucU1QIFNNSy1LMjYgcmV2MS9CL0EKKyAqCisgKiAoQykg Q29weXJpZ2h0IDIwMjAgLSAyMDIxLCBYaWxpbngsIEluYy4KKyAqCisgKiBNaWNoYWwgU2ltZWsg PG1pY2hhbC5zaW1la0B4aWxpbnguY29tPgorICovCisKKyNpbmNsdWRlICJ6eW5xbXAtc20tazI2 LXJldkEuZHRzIgorCisvIHsKKwltb2RlbCA9ICJaeW5xTVAgU01LLUsyNiBSZXYxL0IvQSI7CisJ Y29tcGF0aWJsZSA9ICJ4bG54LHp5bnFtcC1zbWstazI2LXJldjEiLCAieGxueCx6eW5xbXAtc21r LWsyNi1yZXZCIiwKKwkJICAgICAieGxueCx6eW5xbXAtc21rLWsyNi1yZXZBIiwgInhsbngsenlu cW1wLXNtay1rMjYiLAorCQkgICAgICJ4bG54LHp5bnFtcCI7Cit9OworCismc2RoY2kwIHsKKwlz dGF0dXMgPSAiZGlzYWJsZWQiOworfTsKLS0gCjIuMzIuMAoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0 CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK