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=-5.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=no 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 039A4C433DB for ; Tue, 9 Mar 2021 07:36:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A7C9565295 for ; Tue, 9 Mar 2021 07:36:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229530AbhCIHfb (ORCPT ); Tue, 9 Mar 2021 02:35:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53502 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229701AbhCIHfQ (ORCPT ); Tue, 9 Mar 2021 02:35:16 -0500 Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7416CC06174A for ; Mon, 8 Mar 2021 23:35:16 -0800 (PST) Received: by mail-wm1-x32a.google.com with SMTP id 124-20020a1c00820000b029010b871409cfso5276595wma.4 for ; Mon, 08 Mar 2021 23:35:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=U5dowiwok/5Kv0iszCk9Q8m3rsHy7K8vI/jZ90onFFc=; b=FZOKYkBDcM4UCta1ULa65m2yWcJMH4zmgeab3S8VpJvwddX2qk4FXTTsUs+uudiHWY X0zwAkc0tKC4LRZC28tD3QOIZwR2zdR8vb+3TyJCu96S57Dto9Gyt7zPKRH0VbtVe5dN 5h57U+wXrlGs4GAeY1sAz/lrK+YDB1tGCaJwNdqOmM6P4UAOzveY/+5sU0gv5d544V0O XlZZE5PVNwqrm/5EWC7NhTJ6DB3GhmQJ1Qk+6UhuN9vFUBOnW7glHUPMfvnRRJxJwK/e ZIOExg2BfGxUk+cMOJfGoeHu1N1yR8zXA6iwweed5oOCXQEmzh2Unf0A/2hXNu+ZQrsJ 1ygw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=U5dowiwok/5Kv0iszCk9Q8m3rsHy7K8vI/jZ90onFFc=; b=mU6t2dASEQp1ovqMhVsx8Q6mUELgyUNlIKt/JhUfblm2yYEhq2rNjStrnyhFynVy+J pvSlRSu1CiuaAzBF/6jQ1FkHRPZFEPWi28aHku7hQviUvsXVhVIlW/T80g0b9sHaRUW2 ksZkShgjdHBceLdrXWJ3eSGfz/jCJQmsqd12g9yep+oTeSH4Lj4AIX0siJ7lsqIqWie1 k8R7N7iksMN7b/rTEfcNqk/8nxMrn2UVJNlwYVnh1Es+C/hPkvP/kG3EPd9hMb2FbORf WyKLTKywwQ+Sh9D61+ugmeQ/O0l2E4x+x4OMJZzG1S4WhsbmN7lrzBOcbeZPziL+1Ggl cONw== X-Gm-Message-State: AOAM533AYWoRAcCLUe1vU/DgPfxDZOC/Q6+vKcEmw66oT3laRHBoApYK nlD1oHwOCVsXGo0FU0xzmNE= X-Google-Smtp-Source: ABdhPJw2jjcvbBLcAaxpzi37Bh323s/cIrlttvDTJl4HWHfKea+pXWQZbQItj0/7FJE8tK6A6z5d9g== X-Received: by 2002:a05:600c:2106:: with SMTP id u6mr2524123wml.55.1615275315059; Mon, 08 Mar 2021 23:35:15 -0800 (PST) Received: from hthiery.fritz.box (ip1f1322f8.dynamic.kabel-deutschland.de. [31.19.34.248]) by smtp.gmail.com with ESMTPSA id i8sm24772968wry.90.2021.03.08.23.35.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Mar 2021 23:35:14 -0800 (PST) From: Heiko Thiery To: l.stach@pengutronix.de Cc: abel.vesa@nxp.com, adrian.hunter@intel.com, agx@sigxcpu.org, angus@akkea.ca, festevam@gmail.com, haibo.chen@nxp.com, kernel@pengutronix.de, leonard.crestez@nxp.com, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-mmc@vger.kernel.org, mturquette@baylibre.com, peng.fan@nxp.com, ping.bai@nxp.com, sboyd@kernel.org, ulf.hansson@linaro.org Subject: Re: sdhci timeout on imx8mq Date: Tue, 9 Mar 2021 08:35:12 +0100 Message-Id: <20210309073512.8247-1-heiko.thiery@gmail.com> X-Mailer: git-send-email 2.30.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-mmc@vger.kernel.org Hi all, > Hi Jacky, > > Am Donnerstag, dem 07.01.2021 um 01:30 +0000 schrieb Jacky Bai: > > > -----Original Message----- > > > From: Fabio Estevam [mailto:festevam@gmail.com] > > > Sent: Thursday, January 7, 2021 2:57 AM > > > To: Lucas Stach > > > Cc: Bough Chen ; Angus Ainslie > > > ; > > > Leonard Crestez ; Peng Fan > > > ; Abel Vesa ; Stephen Boyd > > > ; Michael Turquette ; > > > Ulf > > > Hansson ; Guido Günther ; > > > linux-mmc ; Adrian Hunter > > > ; dl-linux-imx ; Sascha > > > Hauer ; moderated list:ARM/FREESCALE IMX / > > > MXC > > > ARM ARCHITECTURE > > > Subject: Re: sdhci timeout on imx8mq > > > > > > Hi Lucas, > > > > > > On Tue, Jan 5, 2021 at 12:06 PM Lucas Stach > > > > > > wrote: > > > > > > > The reference manual states about this situation: "For any clock, > > > > its > > > > source must be left on when it is kept on. Behavior is undefined > > > > if > > > > this rule is violated." > > > > And it seems this is exactly what's happening here: some kind of > > > > glitch is introduced in the nand_usdhc_bus clock, which prevents > > > > the > > > > SDHCI controller from working, even though the clock branch is > > > > properly enabled later on. On my system the SDHCI timeout and > > > > following runtime suspend/resume cycle on the nand_usdhc_bus > > > > clock > > > > seem to get it back into a working state. > > > > > > I think your analysis is correct and I recall helping a customer > > > with a similar > > > issue: > > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcomm > > > unity.nxp.com%2Ft5%2Fi-MX-Processors%2FExternal-clock-that-provide- > > > root > > > -clock-for-SAI3-and-SPDIF%2Fm-p%2F1019834&data=04%7C01%7Cping > > > .bai%40nxp.com%7C8d250a158cce469c378308d8b274d6d1%7C686ea1d3bc > > > 2b4c6fa92cd99c5c301635%7C0%7C0%7C637455562183497049%7CUnknow > > > n%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1ha > > > WwiLCJXVCI6Mn0%3D%7C1000&sdata=VkxuhmhDifzOxxfIgFz9PR5gKC1 > > > SyQhGeSHYysX1Co4%3D&reserved=0 > > > > > > > For the customer case, it seem not the same issue. the customer issue > > is caused by clock source change while parent has no clock output. > > This is inherit limitation for the CCM clock slice when using the > > smart interface to change the clock parent. > > > > For current mmc timeout issue, I think we can have a try with > > nand_usdhc_bus clock gated at the beginning of kernel boot, directly > > modify the nand_usdhc_bus > > Clock's HW register gate bit in clock-imx8mq.c. > > While this might be an option to fix this specific issue, I would hope > we can come up with something more generic, as the current clock > framework behavior allows to violate the system specification > constraint that parent clocks must not be disabled when any of the > children are active. This seems like a fundamental issue and might hurt > us also with other clocks than this specific nand_usdhc_bus clock. I am not sure if an error in the fec driver has the same or similar cause as this. But I noticed that the SOC hangs when accessing the timecounter register while the FEC is down. The CCGR10 seems to gate the ENET_REF_CLK_ROOT and the ENET_TIMER_CLK_ROOT. The clocks are disabled as soon as the interface is down. [1] https://lore.kernel.org/lkml/20210220065654.25598-1-heiko.thiery@gmail.com/ > > Can you tell us if there were other issues found with the PLL1/2 gating > patch? The fact that, according to Bough, it's reverted in your tree > seems to suggest this. > > Regards, > Lucas Thank you -- Heiko 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=-3.7 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=no 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 B24CEC433E0 for ; Tue, 9 Mar 2021 07:37:08 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 3421665268 for ; Tue, 9 Mar 2021 07:37:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3421665268 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.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=desiato.20200630; 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=WJ2NHaOs7SivLqwIBxeFG9kmdW/ZvtOgMqVGSfaG3tw=; b=pX3PTt6Edq/lCstSBaUicm4ct QnelpZ43nmxuYkrO32RlSUz9uYnjAxMP+goHsBUCy3OvYBMTMWOLqeuY5Fwro37ER1o6kz2/WX8Uz tVxir20Fc5Y8EOpY2lq7qmyerVttFCyQ5u5GriWRdek8l401wedVu+kCQAV00wvID1uu1U0+jaFTx WSrmrnKdSa4eP9gSHWn/UMX7MKZsE7dFyLwcGXy3jBCjTOdHaqEZ/92zcRMosQZ8H+l0wdYkrsPS0 2rUIZsaJoFA2i2cozGHlcqDHg9d7RlAQ5OmoYEhB2VUbkTGUQRnXXHzmwhTXljkG9nwFHWj7m8IAH +xLWwnodQ==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lJWtk-003xo9-Qc; Tue, 09 Mar 2021 07:35:21 +0000 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lJWtf-003xnp-Jj for linux-arm-kernel@lists.infradead.org; Tue, 09 Mar 2021 07:35:18 +0000 Received: by mail-wm1-x335.google.com with SMTP id r15-20020a05600c35cfb029010e639ca09eso5291552wmq.1 for ; Mon, 08 Mar 2021 23:35:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=U5dowiwok/5Kv0iszCk9Q8m3rsHy7K8vI/jZ90onFFc=; b=FZOKYkBDcM4UCta1ULa65m2yWcJMH4zmgeab3S8VpJvwddX2qk4FXTTsUs+uudiHWY X0zwAkc0tKC4LRZC28tD3QOIZwR2zdR8vb+3TyJCu96S57Dto9Gyt7zPKRH0VbtVe5dN 5h57U+wXrlGs4GAeY1sAz/lrK+YDB1tGCaJwNdqOmM6P4UAOzveY/+5sU0gv5d544V0O XlZZE5PVNwqrm/5EWC7NhTJ6DB3GhmQJ1Qk+6UhuN9vFUBOnW7glHUPMfvnRRJxJwK/e ZIOExg2BfGxUk+cMOJfGoeHu1N1yR8zXA6iwweed5oOCXQEmzh2Unf0A/2hXNu+ZQrsJ 1ygw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=U5dowiwok/5Kv0iszCk9Q8m3rsHy7K8vI/jZ90onFFc=; b=PN6g+8uM7FnE4nmdOUlLxQT8kNK1Dp06bK69A6d306T1boy1yn7nTljyEDLizXfid7 gItBk/atp7VMSoOfqcoFaAedi4EceGjYR0tEqlD+z5Gv2bhHzfS64uIUPiMDhDlgoUNc zxuNGYZvcFPPEk6dq7iKuKL+4npZJfNGAYRNxYC11UwAHMnfW+iSbfhrABDYsxYZUzxV XE60F39or/Z9SOUtH5V8WyngMMMYzmZbjF9TxIcLV7y2H4pjVLoC3aoGUC0CVT2MGtYs WhmPqdiT2E2+0x03E7N0ea40Gde/RcWyxKL0GwsI3Z25HFIQYJNm2YnR5GK6Qj8oLp/j oKvA== X-Gm-Message-State: AOAM530vTU3R7MDnjyodaANwOkxLfwYXbCBZCUG2PgyMrF5q2IjRJCsR 5TMUvQJ3MRXC/1IuDfAXEBs= X-Google-Smtp-Source: ABdhPJw2jjcvbBLcAaxpzi37Bh323s/cIrlttvDTJl4HWHfKea+pXWQZbQItj0/7FJE8tK6A6z5d9g== X-Received: by 2002:a05:600c:2106:: with SMTP id u6mr2524123wml.55.1615275315059; Mon, 08 Mar 2021 23:35:15 -0800 (PST) Received: from hthiery.fritz.box (ip1f1322f8.dynamic.kabel-deutschland.de. [31.19.34.248]) by smtp.gmail.com with ESMTPSA id i8sm24772968wry.90.2021.03.08.23.35.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Mar 2021 23:35:14 -0800 (PST) From: Heiko Thiery To: l.stach@pengutronix.de Cc: abel.vesa@nxp.com, adrian.hunter@intel.com, agx@sigxcpu.org, angus@akkea.ca, festevam@gmail.com, haibo.chen@nxp.com, kernel@pengutronix.de, leonard.crestez@nxp.com, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-mmc@vger.kernel.org, mturquette@baylibre.com, peng.fan@nxp.com, ping.bai@nxp.com, sboyd@kernel.org, ulf.hansson@linaro.org Subject: Re: sdhci timeout on imx8mq Date: Tue, 9 Mar 2021 08:35:12 +0100 Message-Id: <20210309073512.8247-1-heiko.thiery@gmail.com> X-Mailer: git-send-email 2.30.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-20210309_073516_450751_72FF8E6C X-CRM114-Status: GOOD ( 35.44 ) 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 SGkgYWxsLAoKPiBIaSBKYWNreSwKPiAKPiBBbSBEb25uZXJzdGFnLCBkZW0gMDcuMDEuMjAyMSB1 bSAwMTozMCArMDAwMCBzY2hyaWViIEphY2t5IEJhaToKPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0KPiA+ID4gRnJvbTogRmFiaW8gRXN0ZXZhbSBbbWFpbHRvOmZlc3RldmFtQGdtYWls LmNvbV0KPiA+ID4gU2VudDogVGh1cnNkYXksIEphbnVhcnkgNywgMjAyMSAyOjU3IEFNCj4gPiA+ IFRvOiBMdWNhcyBTdGFjaCA8bC5zdGFjaEBwZW5ndXRyb25peC5kZT4KPiA+ID4gQ2M6IEJvdWdo IENoZW4gPGhhaWJvLmNoZW5AbnhwLmNvbT47IEFuZ3VzIEFpbnNsaWUKPiA+ID4gPGFuZ3VzQGFr a2VhLmNhPjsKPiA+ID4gTGVvbmFyZCBDcmVzdGV6IDxsZW9uYXJkLmNyZXN0ZXpAbnhwLmNvbT47 IFBlbmcgRmFuCj4gPiA+IDxwZW5nLmZhbkBueHAuY29tPjsgQWJlbCBWZXNhIDxhYmVsLnZlc2FA bnhwLmNvbT47IFN0ZXBoZW4gQm95ZAo+ID4gPiA8c2JveWRAa2VybmVsLm9yZz47IE1pY2hhZWwg VHVycXVldHRlIDxtdHVycXVldHRlQGJheWxpYnJlLmNvbT47Cj4gPiA+IFVsZgo+ID4gPiBIYW5z c29uIDx1bGYuaGFuc3NvbkBsaW5hcm8ub3JnPjsgR3VpZG8gR8O8bnRoZXIgPGFneEBzaWd4Y3B1 Lm9yZz47Cj4gPiA+IGxpbnV4LW1tYyA8bGludXgtbW1jQHZnZXIua2VybmVsLm9yZz47IEFkcmlh biBIdW50ZXIKPiA+ID4gPGFkcmlhbi5odW50ZXJAaW50ZWwuY29tPjsgZGwtbGludXgtaW14IDxs aW51eC1pbXhAbnhwLmNvbT47IFNhc2NoYQo+ID4gPiBIYXVlciA8a2VybmVsQHBlbmd1dHJvbml4 LmRlPjsgbW9kZXJhdGVkIGxpc3Q6QVJNL0ZSRUVTQ0FMRSBJTVggLwo+ID4gPiBNWEMKPiA+ID4g QVJNIEFSQ0hJVEVDVFVSRSA8bGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnPgo+ ID4gPiBTdWJqZWN0OiBSZTogc2RoY2kgdGltZW91dCBvbiBpbXg4bXEKPiA+ID4gCj4gPiA+IEhp IEx1Y2FzLAo+ID4gPiAKPiA+ID4gT24gVHVlLCBKYW4gNSwgMjAyMSBhdCAxMjowNiBQTSBMdWNh cyBTdGFjaAo+ID4gPiA8bC5zdGFjaEBwZW5ndXRyb25peC5kZT4KPiA+ID4gd3JvdGU6Cj4gPiA+ IAo+ID4gPiA+IFRoZSByZWZlcmVuY2UgbWFudWFsIHN0YXRlcyBhYm91dCB0aGlzIHNpdHVhdGlv bjogIkZvciBhbnkgY2xvY2ssCj4gPiA+ID4gaXRzCj4gPiA+ID4gc291cmNlIG11c3QgYmUgbGVm dCBvbiB3aGVuIGl0IGlzIGtlcHQgb24uIEJlaGF2aW9yIGlzIHVuZGVmaW5lZAo+ID4gPiA+IGlm Cj4gPiA+ID4gdGhpcyBydWxlIGlzIHZpb2xhdGVkLiIKPiA+ID4gPiBBbmQgaXQgc2VlbXMgdGhp cyBpcyBleGFjdGx5IHdoYXQncyBoYXBwZW5pbmcgaGVyZTogc29tZSBraW5kIG9mCj4gPiA+ID4g Z2xpdGNoIGlzIGludHJvZHVjZWQgaW4gdGhlIG5hbmRfdXNkaGNfYnVzIGNsb2NrLCB3aGljaCBw cmV2ZW50cwo+ID4gPiA+IHRoZQo+ID4gPiA+IFNESENJIGNvbnRyb2xsZXIgZnJvbSB3b3JraW5n LCBldmVuIHRob3VnaCB0aGUgY2xvY2sgYnJhbmNoIGlzCj4gPiA+ID4gcHJvcGVybHkgZW5hYmxl ZCBsYXRlciBvbi4gT24gbXkgc3lzdGVtIHRoZSBTREhDSSB0aW1lb3V0IGFuZAo+ID4gPiA+IGZv bGxvd2luZyBydW50aW1lIHN1c3BlbmQvcmVzdW1lIGN5Y2xlIG9uIHRoZSBuYW5kX3VzZGhjX2J1 cwo+ID4gPiA+IGNsb2NrCj4gPiA+ID4gc2VlbSB0byBnZXQgaXQgYmFjayBpbnRvIGEgd29ya2lu ZyBzdGF0ZS4KPiA+ID4gCj4gPiA+IEkgdGhpbmsgeW91ciBhbmFseXNpcyBpcyBjb3JyZWN0IGFu ZCBJIHJlY2FsbCBoZWxwaW5nIGEgY3VzdG9tZXIKPiA+ID4gd2l0aCBhIHNpbWlsYXIKPiA+ID4g aXNzdWU6Cj4gPiA+IGh0dHBzOi8vZXVyMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5j b20vP3VybD1odHRwcyUzQSUyRiUyRmNvbW0KPiA+ID4gdW5pdHkubnhwLmNvbSUyRnQ1JTJGaS1N WC1Qcm9jZXNzb3JzJTJGRXh0ZXJuYWwtY2xvY2stdGhhdC1wcm92aWRlLQo+ID4gPiByb290Cj4g PiA+IC1jbG9jay1mb3ItU0FJMy1hbmQtU1BESUYlMkZtLXAlMkYxMDE5ODM0JmFtcDtkYXRhPTA0 JTdDMDElN0NwaW5nCj4gPiA+IC5iYWklNDBueHAuY29tJTdDOGQyNTBhMTU4Y2NlNDY5YzM3ODMw OGQ4YjI3NGQ2ZDElN0M2ODZlYTFkM2JjCj4gPiA+IDJiNGM2ZmE5MmNkOTljNWMzMDE2MzUlN0Mw JTdDMCU3QzYzNzQ1NTU2MjE4MzQ5NzA0OSU3Q1Vua25vdwo+ID4gPiBuJTdDVFdGcGJHWnNiM2Q4 ZXlKV0lqb2lNQzR3TGpBd01EQWlMQ0pRSWpvaVYybHVNeklpTENKQlRpSTZJazFoYQo+ID4gPiBX d2lMQ0pYVkNJNk1uMCUzRCU3QzEwMDAmYW1wO3NkYXRhPVZreHVobWhEaWZ6T3h4ZklnRno5UFI1 Z0tDMQo+ID4gPiBTeVFoR2VTSFl5c1gxQ280JTNEJmFtcDtyZXNlcnZlZD0wCj4gPiA+IAo+ID4g Cj4gPiBGb3IgdGhlIGN1c3RvbWVyIGNhc2UsIGl0IHNlZW0gbm90IHRoZSBzYW1lIGlzc3VlLiB0 aGUgY3VzdG9tZXIgaXNzdWUKPiA+IGlzIGNhdXNlZCBieSBjbG9jayBzb3VyY2UgY2hhbmdlIHdo aWxlIHBhcmVudCBoYXMgbm8gY2xvY2sgb3V0cHV0Lgo+ID4gVGhpcyBpcyBpbmhlcml0IGxpbWl0 YXRpb24gZm9yIHRoZSBDQ00gY2xvY2sgc2xpY2Ugd2hlbiB1c2luZyB0aGUKPiA+IHNtYXJ0IGlu dGVyZmFjZSB0byBjaGFuZ2UgdGhlIGNsb2NrIHBhcmVudC4KPiA+IAo+ID4gRm9yIGN1cnJlbnQg bW1jIHRpbWVvdXQgaXNzdWUsIEkgdGhpbmsgd2UgY2FuIGhhdmUgYSB0cnkgd2l0aAo+ID4gbmFu ZF91c2RoY19idXMgY2xvY2sgZ2F0ZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBrZXJuZWwgYm9vdCwg ZGlyZWN0bHkKPiA+IG1vZGlmeSB0aGUgbmFuZF91c2RoY19idXMKPiA+IENsb2NrJ3MgSFcgcmVn aXN0ZXIgZ2F0ZSBiaXQgaW4gY2xvY2staW14OG1xLmMuCj4gCj4gV2hpbGUgdGhpcyBtaWdodCBi ZSBhbiBvcHRpb24gdG8gZml4IHRoaXMgc3BlY2lmaWMgaXNzdWUsIEkgd291bGQgaG9wZQo+IHdl IGNhbiBjb21lIHVwIHdpdGggc29tZXRoaW5nIG1vcmUgZ2VuZXJpYywgYXMgdGhlIGN1cnJlbnQg Y2xvY2sKPiBmcmFtZXdvcmsgYmVoYXZpb3IgYWxsb3dzIHRvIHZpb2xhdGUgdGhlIHN5c3RlbSBz cGVjaWZpY2F0aW9uCj4gY29uc3RyYWludCB0aGF0IHBhcmVudCBjbG9ja3MgbXVzdCBub3QgYmUg ZGlzYWJsZWQgd2hlbiBhbnkgb2YgdGhlCj4gY2hpbGRyZW4gYXJlIGFjdGl2ZS4gVGhpcyBzZWVt cyBsaWtlIGEgZnVuZGFtZW50YWwgaXNzdWUgYW5kIG1pZ2h0IGh1cnQKPiB1cyBhbHNvIHdpdGgg b3RoZXIgY2xvY2tzIHRoYW4gdGhpcyBzcGVjaWZpYyBuYW5kX3VzZGhjX2J1cyBjbG9jay4KCkkg YW0gbm90IHN1cmUgaWYgYW4gZXJyb3IgaW4gdGhlIGZlYyBkcml2ZXIgaGFzIHRoZSBzYW1lIG9y IHNpbWlsYXIgY2F1c2UgYXMgdGhpcy4gQnV0IEkgbm90aWNlZCB0aGF0IHRoZSBTT0MgaGFuZ3Mg d2hlbiBhY2Nlc3NpbmcgdGhlIHRpbWVjb3VudGVyIHJlZ2lzdGVyIHdoaWxlIHRoZSBGRUMgaXMg ZG93bi4gVGhlIENDR1IxMCBzZWVtcyB0byBnYXRlIHRoZSBFTkVUX1JFRl9DTEtfUk9PVCBhbmQg dGhlIEVORVRfVElNRVJfQ0xLX1JPT1QuIFRoZSBjbG9ja3MgYXJlIGRpc2FibGVkIGFzIHNvb24g YXMgdGhlIGludGVyZmFjZSBpcyBkb3duLgoKWzFdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xr bWwvMjAyMTAyMjAwNjU2NTQuMjU1OTgtMS1oZWlrby50aGllcnlAZ21haWwuY29tLwoKPiAKPiBD YW4geW91IHRlbGwgdXMgaWYgdGhlcmUgd2VyZSBvdGhlciBpc3N1ZXMgZm91bmQgd2l0aCB0aGUg UExMMS8yIGdhdGluZwo+IHBhdGNoPyBUaGUgZmFjdCB0aGF0LCBhY2NvcmRpbmcgdG8gQm91Z2gs IGl0J3MgcmV2ZXJ0ZWQgaW4geW91ciB0cmVlCj4gc2VlbXMgdG8gc3VnZ2VzdCB0aGlzLgo+IAo+ IFJlZ2FyZHMsCj4gTHVjYXMKClRoYW5rIHlvdQoKLS0gCkhlaWtvCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcg bGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==