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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0E429C6379F for ; Mon, 30 Jan 2023 12:10:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235703AbjA3MKD (ORCPT ); Mon, 30 Jan 2023 07:10:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38224 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235612AbjA3MJp (ORCPT ); Mon, 30 Jan 2023 07:09:45 -0500 Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com [IPv6:2a00:1450:4864:20::632]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 06E6F2ED76; Mon, 30 Jan 2023 04:09:02 -0800 (PST) Received: by mail-ej1-x632.google.com with SMTP id qw12so15172776ejc.2; Mon, 30 Jan 2023 04:09:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=+as/cFVge0lJVrdDwvrgX/iEPP8hvHeAoqRiQ2luvqw=; b=lXbASWkrHwlsiD9uw5IITnuKL50JIEJe4Ld4TV/D5s5bbMGUVaqHlnStjmu3W+Lhbp XZQVz4hO61nQ1QzPHPef4YZwOGT8VJfl8MryBxizWDZQAT2ciEJomDlyEkq1DP8LHU3b 74KyqXy5JtNyyKKFHfkn3TXCB+74zw5BgSdCbkH820JL4Qck17/fOmPTCQpojocy1369 KcJnDkQXncfvHiNazSd/9u14j8MisJP0kkKVIU+v0ubml/vT4kFZ8wfWGSh5oLrngHZR svxsKrS3rH7ex2Aj+aDWgU2w2gxxBACWUAtEq3/JGOgxPsQLEHEIL5RxCWxt6BmLugvF mTDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+as/cFVge0lJVrdDwvrgX/iEPP8hvHeAoqRiQ2luvqw=; b=mNsneBDf5E3clsRBw91Cb7AdoQR6mAomkQEvl/Kj+DVzQdmfQCA2nydiO+Un1KoPwq IfH+uskDTJ0ED+mHpxOzHXEWOGJiRWppYjBWONJ5ZzG7CfT8nlvHfQhkFhRp+mT8wKdG Obf2fQF+LApd7bybPSZgBTNHyZsINpe93l9q+hlK2T0BeLggzoTNeBswjjndhSATAHJN xmq3wwWFvgpIgkLs6Xb34MfBE5JDWYJ/YpBYvZ7M9Voo2uOlzkq1raOiOnXCBTNWnmb6 SUKwjAeoETR4eqOtmdU0n9yMblm6mRtAj8Lp/acWQPGGFccufHA9tluBomWLJSqHOA9c +wNw== X-Gm-Message-State: AO0yUKU17NnoYcboI/zw37i9LkJM4cBuKjsVq7zdCQ8aGYB55J9ZGT1L f7QAcV+peDABECViKxiRjarDv8PIqEOykzAR0P4= X-Google-Smtp-Source: AK7set/xCTH/vbtxcDVedmbu+GvEkhEjIPKNV3pppkvrTOnKrqxjz0H3YmENdtx4XbIc/2vKUX5PUwjXu7VZ2Zx5cmI= X-Received: by 2002:a17:906:4e0e:b0:88a:9e08:330f with SMTP id z14-20020a1709064e0e00b0088a9e08330fmr270154eju.3.1675080538756; Mon, 30 Jan 2023 04:08:58 -0800 (PST) MIME-Version: 1.0 References: <20230127001141.407071-1-saravanak@google.com> <20230130114839.379f08bd@xps-13> In-Reply-To: <20230130114839.379f08bd@xps-13> From: Maxim Kiselev Date: Mon, 30 Jan 2023 15:08:46 +0300 Message-ID: Subject: Re: [PATCH v2 00/11] fw_devlink improvements To: Miquel Raynal Cc: Saravana Kannan , Greg Kroah-Hartman , "Rafael J. Wysocki" , Sudeep Holla , Cristian Marussi , Linus Walleij , Bartosz Golaszewski , Thomas Gleixner , Marc Zyngier , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Rob Herring , Frank Rowand , Geert Uytterhoeven , Magnus Damm , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Tony Lindgren , Linux Kernel Functional Testing , Naresh Kamboju , Abel Vesa , Alexander Stein , Geert Uytterhoeven , John Stultz , Doug Anderson , Guenter Roeck , Dmitry Baryshkov , Maxim Kochetkov , Luca Weiss , Colin Foster , Martin Kepplinger , Jean-Philippe Brucker , kernel-team@android.com, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-acpi@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org Hi Saravana & Miquel. Sorry for the long response. I finally got access to my test device and tried this patch series. And unfortunately it didn't solve my issue. I'm still getting a hanging f1070000.ethernet dependency from the nvmem-cell mac@6 subnode. Here are related parts of my kernel log and device tree: [ 2.713302] device: 'mtd-0': device_add [ 2.719528] device: 'spi0': device_add [ 2.724180] device: 'spi0.0': device_add [ 2.728957] spi-nor spi0.0: mx66l51235f (65536 Kbytes) [ 2.735338] 7 fixed-partitions partitions found on MTD device spi0.0 [ 2.741978] device: 'f1010600.spi:m25p80@0:partitions:partition@1': device_add [ 2.749636] Creating 7 MTD partitions on "spi0.0": [ 2.754564] 0x000000000000-0x000000080000 : "SPI.U_BOOT" [ 2.759981] device: 'mtd0': device_add [ 2.764323] device: 'mtd0': device_add [ 2.768280] device: 'mtd0ro': device_add [ 2.772624] 0x0000000a0000-0x0000000c0000 : "SPI.INV_INFO" [ 2.778218] device: 'mtd1': device_add [ 2.782549] device: 'mtd1': device_add [ 2.786582] device: 'mtd1ro': device_add ... [ 5.426625] mvneta_bm f10c0000.bm: Buffer Manager for network controller enabled [ 5.492867] platform f1070000.ethernet: error -EPROBE_DEFER: wait for supplier mac@6 [ 5.528636] device: 'Fixed MDIO bus.0': device_add [ 5.533726] device: 'fixed-0': device_add [ 5.547564] device: 'f1072004.mdio-eth-mii': device_add [ 5.616368] device: 'f1072004.mdio-eth-mii:00': device_add [ 5.645127] device: 'f1072004.mdio-eth-mii:1e': device_add [ 5.651530] devices_kset: Moving f1070000.ethernet to end of list [ 5.657948] platform f1070000.ethernet: error -EPROBE_DEFER: wait for supplier mac@6 spi@10600 { m25p80@0 { compatible =3D "mx66l51235l"; partitions { compatible =3D "fixed-partitions"; partition@0 { label =3D "SPI.U_BOOT"; }; partition@1 { compatible =3D "nvmem-cells"; label =3D "SPI.INV_INFO"; macaddr: mac@6 { reg =3D <0x6 0x6>; }; }; ... }; }; }; enet1: ethernet@70000 { nvmem-cells =3D <&macaddr>; nvmem-cell-names =3D "mac-address"; phy-mode =3D "rgmii"; phy =3D <&phy0>; }; Maybe I should provide some additional debug info? =D0=BF=D0=BD, 30 =D1=8F=D0=BD=D0=B2. 2023 =D0=B3. =D0=B2 13:48, Miquel Rayn= al : > > Hi Maxim & Maxim, > > saravanak@google.com wrote on Thu, 26 Jan 2023 16:11:27 -0800: > > > This patch series improves fw_devlink in the following ways: > > > > 1. It no longer cares about a fwnode having a "compatible" property. It > > figures this our more dynamically. The only expectation is that > > fwnode that are converted to devices actually get probed by a driver > > for the dependencies to be enforced correctly. > > > > 2. Finer grained dependency tracking. fw_devlink will now create device > > links from the consumer to the actual resource's device (if it has o= ne, > > Eg: gpio_device) instead of the parent supplier device. This improve= s > > things like async suspend/resume ordering, potentially remove the ne= ed > > for frameworks to create device links, more parallelized async probi= ng, > > and better sync_state() tracking. > > > > 3. Handle hardware/software quirks where a child firmware node gets > > populated as a device before its parent firmware node AND actually > > supplies a non-optional resource to the parent firmware node's > > device. > > > > 4. Way more robust at cycle handling (see patch for the insane cases). > > > > 5. Stops depending on OF_POPULATED to figure out some corner cases. > > > > 6. Simplifies the work that needs to be done by the firmware specific > > code. > > > > Sorry it took a while to roll in the fixes I gave in the v1 series > > thread[1] into a v2 series. > > > > Since I didn't make any additional changes on top of what I already gav= e > > in the v1 thread and Dmitry is very eager to get this series going, I'm > > sending it out without testing locally. I already tested these patches = a > > few months ago as part of the v1 series. So I don't expect any major > > issues. I'll test them again on my end in the next few days and will > > report here if I actually find anything wrong. > > > > Tony, Naresh, Abel, Sudeep, Geert, > > > > I got the following reviewed by's and tested by's a few months back, bu= t > > it's been 5 months since I sent out v1. So I wasn't sure if it was okay > > to include them in the v2 commits. Let me know if you are okay with thi= s > > being included in the commits and/or if you want to test this series > > again. > > > > Reviewed-by: Tony Lindgren > > Tested-by: Tony Lindgren > > Tested-by: Linux Kernel Functional Testing > > Tested-by: Naresh Kamboju > > Tested-by: Abel Vesa > > Tested-by: Sudeep Holla > > Tested-by: Geert Uytterhoeven > > > > Dmitry, Maxim(s), Miquel, Luca, Doug, Colin, Martin, Jean-Philippe, > > > > I've Cc-ed you because I had pointed you to v1 of this series + the > > patches in that thread at one point or another as a fix to some issue > > you were facing. It'd appreciate it if you can test this series and > > report any issues, or things it fixed and give Tested-bys. > > Maxim & Maxim I would really appreciate if you could validate that the > original issue you had is solved with this version? I don't have any > hardware suffering from this issue. > > > In addition, if you can also apply a revert of this series[2] and delet= e > > driver_deferred_probe_check_state() from your tree and see if you hit > > any issues and report them, that'd be great too! I'm pretty sure some o= f > > you will hit issues with that. I want to fix those next and then > > revert[2]. > > > > Thanks, > > Saravana > > > > [1] - https://lore.kernel.org/lkml/20220810060040.321697-1-saravanak@go= ogle.com/ > > [2] - https://lore.kernel.org/lkml/20220819221616.2107893-1-saravanak@g= oogle.com/ > > [3] - https://lore.kernel.org/lkml/CAGETcx-JUV1nj8wBJrTPfyvM7=3DMre5j_v= kVmZojeiumUGG6QZQ@mail.gmail.com/ > > > > v1 -> v2: > > - Fixed Patch 1 to handle a corner case discussed in [3]. > > - New patch 10 to handle "fsl,imx8mq-gpc" being initialized by 2 driver= s. > > - New patch 11 to add fw_devlink support for SCMI devices. > > > > Cc: Abel Vesa > > Cc: Alexander Stein > > Cc: Tony Lindgren > > Cc: Sudeep Holla > > Cc: Geert Uytterhoeven > > Cc: John Stultz > > Cc: Doug Anderson > > Cc: Guenter Roeck > > Cc: Dmitry Baryshkov > > Cc: Maxim Kiselev > > Cc: Maxim Kochetkov > > Cc: Miquel Raynal > > Cc: Luca Weiss > > Cc: Colin Foster > > Cc: Martin Kepplinger > > Cc: Jean-Philippe Brucker > > > > Saravana Kannan (11): > > driver core: fw_devlink: Don't purge child fwnode's consumer links > > driver core: fw_devlink: Improve check for fwnode with no > > device/driver > > soc: renesas: Move away from using OF_POPULATED for fw_devlink > > gpiolib: Clear the gpio_device's fwnode initialized flag before addin= g > > driver core: fw_devlink: Add DL_FLAG_CYCLE support to device links > > driver core: fw_devlink: Allow marking a fwnode link as being part of > > a cycle > > driver core: fw_devlink: Consolidate device link flag computation > > driver core: fw_devlink: Make cycle detection more robust > > of: property: Simplify of_link_to_phandle() > > irqchip/irq-imx-gpcv2: Mark fwnode device as not initialized > > firmware: arm_scmi: Set fwnode for the scmi_device > > > > drivers/base/core.c | 443 +++++++++++++++++++++----------- > > drivers/firmware/arm_scmi/bus.c | 2 + > > drivers/gpio/gpiolib.c | 6 + > > drivers/irqchip/irq-imx-gpcv2.c | 1 + > > drivers/of/property.c | 84 +----- > > drivers/soc/imx/gpcv2.c | 1 + > > drivers/soc/renesas/rcar-sysc.c | 2 +- > > include/linux/device.h | 1 + > > include/linux/fwnode.h | 12 +- > > 9 files changed, 332 insertions(+), 220 deletions(-) > > > > > Thanks, > Miqu=C3=A8l 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 12D8DC54EAA for ; Mon, 30 Jan 2023 12:11:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=AUeXLeFk1LU0PWd8KPBG1aTUkEzNQFLW/8fpWAMCoqw=; b=AOxAwB1kU5O6vR 4W/glNhCLrOXMQvGQe9et6GhlJjJuvGqSaYtQ91opyU86SwbgXDTVW596QdnP1qii36l4UKM3+9wz 6UzzEjuy7XVLRdEfmei7MxLFcRN+vonY4STKHK+sfWXSLdvxq3BSKVeDJ1cs6C8r4B1sUmz+zt4hp ZdbYwUYJQn0Mk8Egd7mcNC6a32wFmtGiZ9H0jI3iCNB1WBmPpAlPKU30brtQ+Mk3EPuJzuTMXUPTJ 40IUTS26QTdUDPzXkp+NOtUs9YMf8iXIeNI20sxBsOtBgJqK+2OBCGhZNzlwKzpH8vN+lKmFou95M /AKIs4hqw02MjrXJNLMg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pMSyh-003RVf-Hw; Mon, 30 Jan 2023 12:09:39 +0000 Received: from mail-ej1-x634.google.com ([2a00:1450:4864:20::634]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pMSy7-003RS1-Ay for linux-arm-kernel@lists.infradead.org; Mon, 30 Jan 2023 12:09:05 +0000 Received: by mail-ej1-x634.google.com with SMTP id mc11so8594977ejb.10 for ; Mon, 30 Jan 2023 04:09:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=+as/cFVge0lJVrdDwvrgX/iEPP8hvHeAoqRiQ2luvqw=; b=lXbASWkrHwlsiD9uw5IITnuKL50JIEJe4Ld4TV/D5s5bbMGUVaqHlnStjmu3W+Lhbp XZQVz4hO61nQ1QzPHPef4YZwOGT8VJfl8MryBxizWDZQAT2ciEJomDlyEkq1DP8LHU3b 74KyqXy5JtNyyKKFHfkn3TXCB+74zw5BgSdCbkH820JL4Qck17/fOmPTCQpojocy1369 KcJnDkQXncfvHiNazSd/9u14j8MisJP0kkKVIU+v0ubml/vT4kFZ8wfWGSh5oLrngHZR svxsKrS3rH7ex2Aj+aDWgU2w2gxxBACWUAtEq3/JGOgxPsQLEHEIL5RxCWxt6BmLugvF mTDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+as/cFVge0lJVrdDwvrgX/iEPP8hvHeAoqRiQ2luvqw=; b=J4WLjXR5fgTZTSD/zepILieGKW6BS9IN/FF6La5bCjM5IGkF0t1agT0fFkZNy8sVg7 dJtlCEut3NJCIVznxdqqy1f8AIxKKzhYeP3OPiUyiUQgHJG4qYlHs5TzIlgQNawDtHRC jyV8+rVpfSC5GzCqh4ruQ5Fo35evEfGwHKN64FZ91NBNk1HY/rn3mmkY8IQhXDKyuCMA wlebKmUfzKwebT2sGJesdrmkk41W7ChG7MCSkS6OBglBc3qGXUiX5g5Q4gOWbWlvrUys 0PWe7Qok8Utd/FOOmVlbDYb3skMOEtgXDe+qX/UfEoCsrQecXrlI+iqzDn8jc4OqNOgT NvmQ== X-Gm-Message-State: AO0yUKWd5VCHT5s3Tkm8j+j8jtNnown57NXwUbE4gXGkwrsgSUWdF8Wi jnISBkPvFga+I1RgdHgNapMGm1R54EWuM017OUnjxLY7N8hY0w== X-Google-Smtp-Source: AK7set/xCTH/vbtxcDVedmbu+GvEkhEjIPKNV3pppkvrTOnKrqxjz0H3YmENdtx4XbIc/2vKUX5PUwjXu7VZ2Zx5cmI= X-Received: by 2002:a17:906:4e0e:b0:88a:9e08:330f with SMTP id z14-20020a1709064e0e00b0088a9e08330fmr270154eju.3.1675080538756; Mon, 30 Jan 2023 04:08:58 -0800 (PST) MIME-Version: 1.0 References: <20230127001141.407071-1-saravanak@google.com> <20230130114839.379f08bd@xps-13> In-Reply-To: <20230130114839.379f08bd@xps-13> From: Maxim Kiselev Date: Mon, 30 Jan 2023 15:08:46 +0300 Message-ID: Subject: Re: [PATCH v2 00/11] fw_devlink improvements To: Miquel Raynal Cc: Saravana Kannan , Greg Kroah-Hartman , "Rafael J. Wysocki" , Sudeep Holla , Cristian Marussi , Linus Walleij , Bartosz Golaszewski , Thomas Gleixner , Marc Zyngier , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Rob Herring , Frank Rowand , Geert Uytterhoeven , Magnus Damm , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Tony Lindgren , Linux Kernel Functional Testing , Naresh Kamboju , Abel Vesa , Alexander Stein , Geert Uytterhoeven , John Stultz , Doug Anderson , Guenter Roeck , Dmitry Baryshkov , Maxim Kochetkov , Luca Weiss , Colin Foster , Martin Kepplinger , Jean-Philippe Brucker , kernel-team@android.com, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-acpi@vger.kernel.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230130_040903_425691_154387B3 X-CRM114-Status: GOOD ( 49.16 ) 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 SGkgU2FyYXZhbmEgJiBNaXF1ZWwuCgpTb3JyeSBmb3IgdGhlIGxvbmcgcmVzcG9uc2UuIEkgZmlu YWxseSBnb3QgYWNjZXNzIHRvIG15IHRlc3QgZGV2aWNlCmFuZCB0cmllZCB0aGlzIHBhdGNoIHNl cmllcy4KCkFuZCB1bmZvcnR1bmF0ZWx5IGl0IGRpZG4ndCBzb2x2ZSBteSBpc3N1ZS4gSSdtIHN0 aWxsIGdldHRpbmcgYQpoYW5naW5nIGYxMDcwMDAwLmV0aGVybmV0IGRlcGVuZGVuY3kKZnJvbSB0 aGUgbnZtZW0tY2VsbCBtYWNANiBzdWJub2RlLgoKSGVyZSBhcmUgcmVsYXRlZCBwYXJ0cyBvZiBt eSBrZXJuZWwgbG9nIGFuZCBkZXZpY2UgdHJlZToKCgogICAgWyAgICAyLjcxMzMwMl0gZGV2aWNl OiAnbXRkLTAnOiBkZXZpY2VfYWRkCiAgICBbICAgIDIuNzE5NTI4XSBkZXZpY2U6ICdzcGkwJzog ZGV2aWNlX2FkZAogICAgWyAgICAyLjcyNDE4MF0gZGV2aWNlOiAnc3BpMC4wJzogZGV2aWNlX2Fk ZAogICAgWyAgICAyLjcyODk1N10gc3BpLW5vciBzcGkwLjA6IG14NjZsNTEyMzVmICg2NTUzNiBL Ynl0ZXMpCiAgICBbICAgIDIuNzM1MzM4XSA3IGZpeGVkLXBhcnRpdGlvbnMgcGFydGl0aW9ucyBm b3VuZCBvbiBNVEQgZGV2aWNlIHNwaTAuMAogICAgWyAgICAyLjc0MTk3OF0gZGV2aWNlOgonZjEw MTA2MDAuc3BpOm0yNXA4MEAwOnBhcnRpdGlvbnM6cGFydGl0aW9uQDEnOiBkZXZpY2VfYWRkCiAg ICBbICAgIDIuNzQ5NjM2XSBDcmVhdGluZyA3IE1URCBwYXJ0aXRpb25zIG9uICJzcGkwLjAiOgog ICAgWyAgICAyLjc1NDU2NF0gMHgwMDAwMDAwMDAwMDAtMHgwMDAwMDAwODAwMDAgOiAiU1BJLlVf Qk9PVCIKICAgIFsgICAgMi43NTk5ODFdIGRldmljZTogJ210ZDAnOiBkZXZpY2VfYWRkCiAgICBb ICAgIDIuNzY0MzIzXSBkZXZpY2U6ICdtdGQwJzogZGV2aWNlX2FkZAogICAgWyAgICAyLjc2ODI4 MF0gZGV2aWNlOiAnbXRkMHJvJzogZGV2aWNlX2FkZAogICAgWyAgICAyLjc3MjYyNF0gMHgwMDAw MDAwYTAwMDAtMHgwMDAwMDAwYzAwMDAgOiAiU1BJLklOVl9JTkZPIgogICAgWyAgICAyLjc3ODIx OF0gZGV2aWNlOiAnbXRkMSc6IGRldmljZV9hZGQKICAgIFsgICAgMi43ODI1NDldIGRldmljZTog J210ZDEnOiBkZXZpY2VfYWRkCiAgICBbICAgIDIuNzg2NTgyXSBkZXZpY2U6ICdtdGQxcm8nOiBk ZXZpY2VfYWRkCiAgICAuLi4KICAgIFsgICAgNS40MjY2MjVdIG12bmV0YV9ibSBmMTBjMDAwMC5i bTogQnVmZmVyIE1hbmFnZXIgZm9yIG5ldHdvcmsKY29udHJvbGxlciBlbmFibGVkCiAgICBbICAg IDUuNDkyODY3XSBwbGF0Zm9ybSBmMTA3MDAwMC5ldGhlcm5ldDogZXJyb3IgLUVQUk9CRV9ERUZF UjoKd2FpdCBmb3Igc3VwcGxpZXIgbWFjQDYKICAgIFsgICAgNS41Mjg2MzZdIGRldmljZTogJ0Zp eGVkIE1ESU8gYnVzLjAnOiBkZXZpY2VfYWRkCiAgICBbICAgIDUuNTMzNzI2XSBkZXZpY2U6ICdm aXhlZC0wJzogZGV2aWNlX2FkZAogICAgWyAgICA1LjU0NzU2NF0gZGV2aWNlOiAnZjEwNzIwMDQu bWRpby1ldGgtbWlpJzogZGV2aWNlX2FkZAogICAgWyAgICA1LjYxNjM2OF0gZGV2aWNlOiAnZjEw NzIwMDQubWRpby1ldGgtbWlpOjAwJzogZGV2aWNlX2FkZAogICAgWyAgICA1LjY0NTEyN10gZGV2 aWNlOiAnZjEwNzIwMDQubWRpby1ldGgtbWlpOjFlJzogZGV2aWNlX2FkZAogICAgWyAgICA1LjY1 MTUzMF0gZGV2aWNlc19rc2V0OiBNb3ZpbmcgZjEwNzAwMDAuZXRoZXJuZXQgdG8gZW5kIG9mIGxp c3QKICAgIFsgICAgNS42NTc5NDhdIHBsYXRmb3JtIGYxMDcwMDAwLmV0aGVybmV0OiBlcnJvciAt RVBST0JFX0RFRkVSOgp3YWl0IGZvciBzdXBwbGllciBtYWNANgoKICAgIHNwaUAxMDYwMCB7CiAg ICAgICAgbTI1cDgwQDAgewogICAgICAgICAgICBjb21wYXRpYmxlID0gIm14NjZsNTEyMzVsIjsK CiAgICAgICAgICAgIHBhcnRpdGlvbnMgewogICAgICAgICAgICAgICAgY29tcGF0aWJsZSA9ICJm aXhlZC1wYXJ0aXRpb25zIjsKCiAgICAgICAgICAgICAgICBwYXJ0aXRpb25AMCB7CiAgICAgICAg ICAgICAgICAgICAgbGFiZWwgPSAiU1BJLlVfQk9PVCI7CiAgICAgICAgICAgICAgICB9OwogICAg ICAgICAgICAgICAgcGFydGl0aW9uQDEgewogICAgICAgICAgICAgICAgICAgIGNvbXBhdGlibGUg PSAibnZtZW0tY2VsbHMiOwogICAgICAgICAgICAgICAgICAgIGxhYmVsID0gIlNQSS5JTlZfSU5G TyI7CiAgICAgICAgICAgICAgICAgICAgbWFjYWRkcjogbWFjQDYgewogICAgICAgICAgICAgICAg ICAgICAgICByZWcgPSA8MHg2IDB4Nj47CiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAg ICAgICAgIH07CiAgICAgICAgICAgICAgICAuLi4KICAgICAgICAgICAgfTsKICAgICAgICB9Owog ICAgfTsKCiAgICBlbmV0MTogZXRoZXJuZXRANzAwMDAgewogICAgICAgIG52bWVtLWNlbGxzID0g PCZtYWNhZGRyPjsKICAgICAgICBudm1lbS1jZWxsLW5hbWVzID0gIm1hYy1hZGRyZXNzIjsKICAg ICAgICBwaHktbW9kZSA9ICJyZ21paSI7CiAgICAgICAgcGh5ID0gPCZwaHkwPjsKICAgIH07CgoK TWF5YmUgSSBzaG91bGQgcHJvdmlkZSBzb21lIGFkZGl0aW9uYWwgZGVidWcgaW5mbz8KCtC/0L0s IDMwINGP0L3Qsi4gMjAyMyDQsy4g0LIgMTM6NDgsIE1pcXVlbCBSYXluYWwgPG1pcXVlbC5yYXlu YWxAYm9vdGxpbi5jb20+Ogo+Cj4gSGkgTWF4aW0gJiBNYXhpbSwKPgo+IHNhcmF2YW5ha0Bnb29n bGUuY29tIHdyb3RlIG9uIFRodSwgMjYgSmFuIDIwMjMgMTY6MTE6MjcgLTA4MDA6Cj4KPiA+IFRo aXMgcGF0Y2ggc2VyaWVzIGltcHJvdmVzIGZ3X2RldmxpbmsgaW4gdGhlIGZvbGxvd2luZyB3YXlz Ogo+ID4KPiA+IDEuIEl0IG5vIGxvbmdlciBjYXJlcyBhYm91dCBhIGZ3bm9kZSBoYXZpbmcgYSAi Y29tcGF0aWJsZSIgcHJvcGVydHkuIEl0Cj4gPiAgICBmaWd1cmVzIHRoaXMgb3VyIG1vcmUgZHlu YW1pY2FsbHkuIFRoZSBvbmx5IGV4cGVjdGF0aW9uIGlzIHRoYXQKPiA+ICAgIGZ3bm9kZSB0aGF0 IGFyZSBjb252ZXJ0ZWQgdG8gZGV2aWNlcyBhY3R1YWxseSBnZXQgcHJvYmVkIGJ5IGEgZHJpdmVy Cj4gPiAgICBmb3IgdGhlIGRlcGVuZGVuY2llcyB0byBiZSBlbmZvcmNlZCBjb3JyZWN0bHkuCj4g Pgo+ID4gMi4gRmluZXIgZ3JhaW5lZCBkZXBlbmRlbmN5IHRyYWNraW5nLiBmd19kZXZsaW5rIHdp bGwgbm93IGNyZWF0ZSBkZXZpY2UKPiA+ICAgIGxpbmtzIGZyb20gdGhlIGNvbnN1bWVyIHRvIHRo ZSBhY3R1YWwgcmVzb3VyY2UncyBkZXZpY2UgKGlmIGl0IGhhcyBvbmUsCj4gPiAgICBFZzogZ3Bp b19kZXZpY2UpIGluc3RlYWQgb2YgdGhlIHBhcmVudCBzdXBwbGllciBkZXZpY2UuIFRoaXMgaW1w cm92ZXMKPiA+ICAgIHRoaW5ncyBsaWtlIGFzeW5jIHN1c3BlbmQvcmVzdW1lIG9yZGVyaW5nLCBw b3RlbnRpYWxseSByZW1vdmUgdGhlIG5lZWQKPiA+ICAgIGZvciBmcmFtZXdvcmtzIHRvIGNyZWF0 ZSBkZXZpY2UgbGlua3MsIG1vcmUgcGFyYWxsZWxpemVkIGFzeW5jIHByb2JpbmcsCj4gPiAgICBh bmQgYmV0dGVyIHN5bmNfc3RhdGUoKSB0cmFja2luZy4KPiA+Cj4gPiAzLiBIYW5kbGUgaGFyZHdh cmUvc29mdHdhcmUgcXVpcmtzIHdoZXJlIGEgY2hpbGQgZmlybXdhcmUgbm9kZSBnZXRzCj4gPiAg ICBwb3B1bGF0ZWQgYXMgYSBkZXZpY2UgYmVmb3JlIGl0cyBwYXJlbnQgZmlybXdhcmUgbm9kZSBB TkQgYWN0dWFsbHkKPiA+ICAgIHN1cHBsaWVzIGEgbm9uLW9wdGlvbmFsIHJlc291cmNlIHRvIHRo ZSBwYXJlbnQgZmlybXdhcmUgbm9kZSdzCj4gPiAgICBkZXZpY2UuCj4gPgo+ID4gNC4gV2F5IG1v cmUgcm9idXN0IGF0IGN5Y2xlIGhhbmRsaW5nIChzZWUgcGF0Y2ggZm9yIHRoZSBpbnNhbmUgY2Fz ZXMpLgo+ID4KPiA+IDUuIFN0b3BzIGRlcGVuZGluZyBvbiBPRl9QT1BVTEFURUQgdG8gZmlndXJl IG91dCBzb21lIGNvcm5lciBjYXNlcy4KPiA+Cj4gPiA2LiBTaW1wbGlmaWVzIHRoZSB3b3JrIHRo YXQgbmVlZHMgdG8gYmUgZG9uZSBieSB0aGUgZmlybXdhcmUgc3BlY2lmaWMKPiA+ICAgIGNvZGUu Cj4gPgo+ID4gU29ycnkgaXQgdG9vayBhIHdoaWxlIHRvIHJvbGwgaW4gdGhlIGZpeGVzIEkgZ2F2 ZSBpbiB0aGUgdjEgc2VyaWVzCj4gPiB0aHJlYWRbMV0gaW50byBhIHYyIHNlcmllcy4KPiA+Cj4g PiBTaW5jZSBJIGRpZG4ndCBtYWtlIGFueSBhZGRpdGlvbmFsIGNoYW5nZXMgb24gdG9wIG9mIHdo YXQgSSBhbHJlYWR5IGdhdmUKPiA+IGluIHRoZSB2MSB0aHJlYWQgYW5kIERtaXRyeSBpcyB2ZXJ5 IGVhZ2VyIHRvIGdldCB0aGlzIHNlcmllcyBnb2luZywgSSdtCj4gPiBzZW5kaW5nIGl0IG91dCB3 aXRob3V0IHRlc3RpbmcgbG9jYWxseS4gSSBhbHJlYWR5IHRlc3RlZCB0aGVzZSBwYXRjaGVzIGEK PiA+IGZldyBtb250aHMgYWdvIGFzIHBhcnQgb2YgdGhlIHYxIHNlcmllcy4gU28gSSBkb24ndCBl eHBlY3QgYW55IG1ham9yCj4gPiBpc3N1ZXMuIEknbGwgdGVzdCB0aGVtIGFnYWluIG9uIG15IGVu ZCBpbiB0aGUgbmV4dCBmZXcgZGF5cyBhbmQgd2lsbAo+ID4gcmVwb3J0IGhlcmUgaWYgSSBhY3R1 YWxseSBmaW5kIGFueXRoaW5nIHdyb25nLgo+ID4KPiA+IFRvbnksIE5hcmVzaCwgQWJlbCwgU3Vk ZWVwLCBHZWVydCwKPiA+Cj4gPiBJIGdvdCB0aGUgZm9sbG93aW5nIHJldmlld2VkIGJ5J3MgYW5k IHRlc3RlZCBieSdzIGEgZmV3IG1vbnRocyBiYWNrLCBidXQKPiA+IGl0J3MgYmVlbiA1IG1vbnRo cyBzaW5jZSBJIHNlbnQgb3V0IHYxLiBTbyBJIHdhc24ndCBzdXJlIGlmIGl0IHdhcyBva2F5Cj4g PiB0byBpbmNsdWRlIHRoZW0gaW4gdGhlIHYyIGNvbW1pdHMuIExldCBtZSBrbm93IGlmIHlvdSBh cmUgb2theSB3aXRoIHRoaXMKPiA+IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBjb21taXRzIGFuZC9v ciBpZiB5b3Ugd2FudCB0byB0ZXN0IHRoaXMgc2VyaWVzCj4gPiBhZ2Fpbi4KPiA+Cj4gPiBSZXZp ZXdlZC1ieTogVG9ueSBMaW5kZ3JlbiA8dG9ueUBhdG9taWRlLmNvbT4KPiA+IFRlc3RlZC1ieTog VG9ueSBMaW5kZ3JlbiA8dG9ueUBhdG9taWRlLmNvbT4KPiA+IFRlc3RlZC1ieTogTGludXggS2Vy bmVsIEZ1bmN0aW9uYWwgVGVzdGluZyA8bGtmdEBsaW5hcm8ub3JnPgo+ID4gVGVzdGVkLWJ5OiBO YXJlc2ggS2FtYm9qdSA8bmFyZXNoLmthbWJvanVAbGluYXJvLm9yZz4KPiA+IFRlc3RlZC1ieTog QWJlbCBWZXNhIDxhYmVsLnZlc2FAbGluYXJvLm9yZz4KPiA+IFRlc3RlZC1ieTogU3VkZWVwIEhv bGxhIDxzdWRlZXAuaG9sbGFAYXJtLmNvbT4KPiA+IFRlc3RlZC1ieTogR2VlcnQgVXl0dGVyaG9l dmVuIDxnZWVydCtyZW5lc2FzQGdsaWRlci5iZT4KPiA+Cj4gPiBEbWl0cnksIE1heGltKHMpLCBN aXF1ZWwsIEx1Y2EsIERvdWcsIENvbGluLCBNYXJ0aW4sIEplYW4tUGhpbGlwcGUsCj4gPgo+ID4g SSd2ZSBDYy1lZCB5b3UgYmVjYXVzZSBJIGhhZCBwb2ludGVkIHlvdSB0byB2MSBvZiB0aGlzIHNl cmllcyArIHRoZQo+ID4gcGF0Y2hlcyBpbiB0aGF0IHRocmVhZCBhdCBvbmUgcG9pbnQgb3IgYW5v dGhlciBhcyBhIGZpeCB0byBzb21lIGlzc3VlCj4gPiB5b3Ugd2VyZSBmYWNpbmcuIEl0J2QgYXBw cmVjaWF0ZSBpdCBpZiB5b3UgY2FuIHRlc3QgdGhpcyBzZXJpZXMgYW5kCj4gPiByZXBvcnQgYW55 IGlzc3Vlcywgb3IgdGhpbmdzIGl0IGZpeGVkIGFuZCBnaXZlIFRlc3RlZC1ieXMuCj4KPiBNYXhp bSAmIE1heGltIEkgd291bGQgcmVhbGx5IGFwcHJlY2lhdGUgaWYgeW91IGNvdWxkIHZhbGlkYXRl IHRoYXQgdGhlCj4gb3JpZ2luYWwgaXNzdWUgeW91IGhhZCBpcyBzb2x2ZWQgd2l0aCB0aGlzIHZl cnNpb24/IEkgZG9uJ3QgaGF2ZSBhbnkKPiBoYXJkd2FyZSBzdWZmZXJpbmcgZnJvbSB0aGlzIGlz c3VlLgo+Cj4gPiBJbiBhZGRpdGlvbiwgaWYgeW91IGNhbiBhbHNvIGFwcGx5IGEgcmV2ZXJ0IG9m IHRoaXMgc2VyaWVzWzJdIGFuZCBkZWxldGUKPiA+IGRyaXZlcl9kZWZlcnJlZF9wcm9iZV9jaGVj a19zdGF0ZSgpIGZyb20geW91ciB0cmVlIGFuZCBzZWUgaWYgeW91IGhpdAo+ID4gYW55IGlzc3Vl cyBhbmQgcmVwb3J0IHRoZW0sIHRoYXQnZCBiZSBncmVhdCB0b28hIEknbSBwcmV0dHkgc3VyZSBz b21lIG9mCj4gPiB5b3Ugd2lsbCBoaXQgaXNzdWVzIHdpdGggdGhhdC4gSSB3YW50IHRvIGZpeCB0 aG9zZSBuZXh0IGFuZCB0aGVuCj4gPiByZXZlcnRbMl0uCj4gPgo+ID4gVGhhbmtzLAo+ID4gU2Fy YXZhbmEKPiA+Cj4gPiBbMV0gLSBodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzIwMjIwODEw MDYwMDQwLjMyMTY5Ny0xLXNhcmF2YW5ha0Bnb29nbGUuY29tLwo+ID4gWzJdIC0gaHR0cHM6Ly9s b3JlLmtlcm5lbC5vcmcvbGttbC8yMDIyMDgxOTIyMTYxNi4yMTA3ODkzLTEtc2FyYXZhbmFrQGdv b2dsZS5jb20vCj4gPiBbM10gLSBodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sL0NBR0VUY3gt SlVWMW5qOHdCSnJUUGZ5dk03PU1yZTVqX3ZrVm1ab2plaXVtVUdHNlFaUUBtYWlsLmdtYWlsLmNv bS8KPiA+Cj4gPiB2MSAtPiB2MjoKPiA+IC0gRml4ZWQgUGF0Y2ggMSB0byBoYW5kbGUgYSBjb3Ju ZXIgY2FzZSBkaXNjdXNzZWQgaW4gWzNdLgo+ID4gLSBOZXcgcGF0Y2ggMTAgdG8gaGFuZGxlICJm c2wsaW14OG1xLWdwYyIgYmVpbmcgaW5pdGlhbGl6ZWQgYnkgMiBkcml2ZXJzLgo+ID4gLSBOZXcg cGF0Y2ggMTEgdG8gYWRkIGZ3X2Rldmxpbmsgc3VwcG9ydCBmb3IgU0NNSSBkZXZpY2VzLgo+ID4K PiA+IENjOiBBYmVsIFZlc2EgPGFiZWwudmVzYUBsaW5hcm8ub3JnPgo+ID4gQ2M6IEFsZXhhbmRl ciBTdGVpbiA8YWxleGFuZGVyLnN0ZWluQGV3LnRxLWdyb3VwLmNvbT4KPiA+IENjOiBUb255IExp bmRncmVuIDx0b255QGF0b21pZGUuY29tPgo+ID4gQ2M6IFN1ZGVlcCBIb2xsYSA8c3VkZWVwLmhv bGxhQGFybS5jb20+Cj4gPiBDYzogR2VlcnQgVXl0dGVyaG9ldmVuIDxnZWVydEBsaW51eC1tNjhr Lm9yZz4KPiA+IENjOiBKb2huIFN0dWx0eiA8anN0dWx0ekBnb29nbGUuY29tPgo+ID4gQ2M6IERv dWcgQW5kZXJzb24gPGRpYW5kZXJzQGNocm9taXVtLm9yZz4KPiA+IENjOiBHdWVudGVyIFJvZWNr IDxsaW51eEByb2Vjay11cy5uZXQ+Cj4gPiBDYzogRG1pdHJ5IEJhcnlzaGtvdiA8ZG1pdHJ5LmJh cnlzaGtvdkBsaW5hcm8ub3JnPgo+ID4gQ2M6IE1heGltIEtpc2VsZXYgPGJpZ3VuY2xlbWF4QGdt YWlsLmNvbT4KPiA+IENjOiBNYXhpbSBLb2NoZXRrb3YgPGZpZG9fbWF4QGluYm94LnJ1Pgo+ID4g Q2M6IE1pcXVlbCBSYXluYWwgPG1pcXVlbC5yYXluYWxAYm9vdGxpbi5jb20+Cj4gPiBDYzogTHVj YSBXZWlzcyA8bHVjYS53ZWlzc0BmYWlycGhvbmUuY29tPgo+ID4gQ2M6IENvbGluIEZvc3RlciA8 Y29saW4uZm9zdGVyQGluLWFkdmFudGFnZS5jb20+Cj4gPiBDYzogTWFydGluIEtlcHBsaW5nZXIg PG1hcnRpbi5rZXBwbGluZ2VyQHB1cmkuc20+Cj4gPiBDYzogSmVhbi1QaGlsaXBwZSBCcnVja2Vy IDxqcGJAa2VybmVsLm9yZz4KPiA+Cj4gPiBTYXJhdmFuYSBLYW5uYW4gKDExKToKPiA+ICAgZHJp dmVyIGNvcmU6IGZ3X2Rldmxpbms6IERvbid0IHB1cmdlIGNoaWxkIGZ3bm9kZSdzIGNvbnN1bWVy IGxpbmtzCj4gPiAgIGRyaXZlciBjb3JlOiBmd19kZXZsaW5rOiBJbXByb3ZlIGNoZWNrIGZvciBm d25vZGUgd2l0aCBubwo+ID4gICAgIGRldmljZS9kcml2ZXIKPiA+ICAgc29jOiByZW5lc2FzOiBN b3ZlIGF3YXkgZnJvbSB1c2luZyBPRl9QT1BVTEFURUQgZm9yIGZ3X2RldmxpbmsKPiA+ICAgZ3Bp b2xpYjogQ2xlYXIgdGhlIGdwaW9fZGV2aWNlJ3MgZndub2RlIGluaXRpYWxpemVkIGZsYWcgYmVm b3JlIGFkZGluZwo+ID4gICBkcml2ZXIgY29yZTogZndfZGV2bGluazogQWRkIERMX0ZMQUdfQ1lD TEUgc3VwcG9ydCB0byBkZXZpY2UgbGlua3MKPiA+ICAgZHJpdmVyIGNvcmU6IGZ3X2Rldmxpbms6 IEFsbG93IG1hcmtpbmcgYSBmd25vZGUgbGluayBhcyBiZWluZyBwYXJ0IG9mCj4gPiAgICAgYSBj eWNsZQo+ID4gICBkcml2ZXIgY29yZTogZndfZGV2bGluazogQ29uc29saWRhdGUgZGV2aWNlIGxp bmsgZmxhZyBjb21wdXRhdGlvbgo+ID4gICBkcml2ZXIgY29yZTogZndfZGV2bGluazogTWFrZSBj eWNsZSBkZXRlY3Rpb24gbW9yZSByb2J1c3QKPiA+ICAgb2Y6IHByb3BlcnR5OiBTaW1wbGlmeSBv Zl9saW5rX3RvX3BoYW5kbGUoKQo+ID4gICBpcnFjaGlwL2lycS1pbXgtZ3BjdjI6IE1hcmsgZndu b2RlIGRldmljZSBhcyBub3QgaW5pdGlhbGl6ZWQKPiA+ICAgZmlybXdhcmU6IGFybV9zY21pOiBT ZXQgZndub2RlIGZvciB0aGUgc2NtaV9kZXZpY2UKPiA+Cj4gPiAgZHJpdmVycy9iYXNlL2NvcmUu YyAgICAgICAgICAgICB8IDQ0MyArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQo+ID4g IGRyaXZlcnMvZmlybXdhcmUvYXJtX3NjbWkvYnVzLmMgfCAgIDIgKwo+ID4gIGRyaXZlcnMvZ3Bp by9ncGlvbGliLmMgICAgICAgICAgfCAgIDYgKwo+ID4gIGRyaXZlcnMvaXJxY2hpcC9pcnEtaW14 LWdwY3YyLmMgfCAgIDEgKwo+ID4gIGRyaXZlcnMvb2YvcHJvcGVydHkuYyAgICAgICAgICAgfCAg ODQgKy0tLS0tCj4gPiAgZHJpdmVycy9zb2MvaW14L2dwY3YyLmMgICAgICAgICB8ICAgMSArCj4g PiAgZHJpdmVycy9zb2MvcmVuZXNhcy9yY2FyLXN5c2MuYyB8ICAgMiArLQo+ID4gIGluY2x1ZGUv bGludXgvZGV2aWNlLmggICAgICAgICAgfCAgIDEgKwo+ID4gIGluY2x1ZGUvbGludXgvZndub2Rl LmggICAgICAgICAgfCAgMTIgKy0KPiA+ICA5IGZpbGVzIGNoYW5nZWQsIDMzMiBpbnNlcnRpb25z KCspLCAyMjAgZGVsZXRpb25zKC0pCj4gPgo+Cj4KPiBUaGFua3MsCj4gTWlxdcOobAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5l bCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=