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 CC4AEC00140 for ; Tue, 2 Aug 2022 17:17:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233760AbiHBRRr (ORCPT ); Tue, 2 Aug 2022 13:17:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47562 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233741AbiHBRRp (ORCPT ); Tue, 2 Aug 2022 13:17:45 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F1E373E778 for ; Tue, 2 Aug 2022 10:17:42 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 492FEB81FCA for ; Tue, 2 Aug 2022 17:17:41 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 97443C433D6; Tue, 2 Aug 2022 17:17:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1659460660; bh=YMcBP/7MKRt/R3Zga9SBDZhaCnpy2+Pq7sy0iCAoPHs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=kpMm5aUYNHv1mmYrycdKjrWtflghs+Wg0TNoScNFgaJeDqWbiiktIrJv8iridLku0 zlOjiG5+wDu2zLdTAZd0UzYRZ4lu6T5GdwFcZQAcIqG/Asz2/qF0zf/K0HgJCdL9Te G/D4axOfBZCG3KwKAo3XDhR1HVOgzB1zhoBKH6S6iz88U/OPxoHewrpzQVVuqvREyk B2SljtylAeP5+YiJeyWok7ZKg2f148oWQLnFpKV61Vk3Z0gkHeCQOct8RHnxMAsY0B g3vto7FHn4mwyM+LPMr12jG+VAyxVk4UIJtFtVTYdocmx0p6rck0OxbfAXHu4J2NFs 782EJdq5aAPCA== Received: by pali.im (Postfix) id 8F5FCF81; Tue, 2 Aug 2022 19:17:36 +0200 (CEST) Date: Tue, 2 Aug 2022 19:17:36 +0200 From: Pali =?utf-8?B?Um9ow6Fy?= To: Robert Marko Cc: Elad Nachman , Wojciech Bartczak , Marek =?utf-8?B?QmVow7pu?= , Viresh Kumar , Gregory CLEMENT , Tomasz Maciej Nowak , Anders Trier Olesen , Philip Soares , "linux-pm@vger.kernel.org" , Sebastian Hesselbarth , "linux-arm-kernel@lists.infradead.org" , nnet , =?utf-8?Q?G=C3=A9rald?= Kerma Subject: Re: [EXT] Re: [PATCH v2] cpufreq: armada-37xx: forbid cpufreq for 1.2 GHz variant Message-ID: <20220802171736.n7jwtbssnwr5hojv@pali> References: <20210808193026.xuyaufi5wqnrcakd@pali> <20220801123616.uol4wrs6trttumsg@pali> <20220801141254.ojljy2lewgrkga3f@pali> <20220801175645.bnknpfg26acbat7c@pali> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: NeoMutt/20180716 Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org On Tuesday 02 August 2022 18:56:07 Robert Marko wrote: > On Tue, Aug 2, 2022 at 6:52 PM Elad Nachman wrote: > > > > Hi, > > > > Unless the logs are misleading, then I see here: > > > > cpu cpu0: _set_opp: switching OPP: Freq 200000000 -> 1200000000 Hz, Level 0 -> 0, Bw 0 -> 0 > > > > Which violates the errata. > > If there is an interim step in between, I think it should be printed out in the debug so we can clearly understand what is the interim frequency setting between 200 and 1200 MHz. > > This is printed directly by the _set_opp from the cpufreq core, so it > should be accurate. > Pali, am I doing this correctly or I need to print from the A3K > cpufreq or clk drivers? Hello! You need to print it from a3k clk driver. cpufreq core just ask driver to switch speed from 200000000 to 1200000000 and clk driver then change it with its own workaround function. The real change of Level is done at these places: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/clk/mvebu/armada-37xx-periph.c?h=v5.19#n548 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/clk/mvebu/armada-37xx-periph.c?h=v5.19#n592 Check places where is done write operation to register ARMADA_37XX_NB_CPU_LOAD. > Regards, > Robert > > > > Elad. > > > > -----Original Message----- > > From: Robert Marko > > Sent: Tuesday, August 2, 2022 7:42 PM > > To: Elad Nachman > > Cc: Pali Rohár ; Wojciech Bartczak ; Marek Behún ; Viresh Kumar ; Gregory CLEMENT ; Tomasz Maciej Nowak ; Anders Trier Olesen ; Philip Soares ; linux-pm@vger.kernel.org; Sebastian Hesselbarth ; linux-arm-kernel@lists.infradead.org; nnet ; Gérald Kerma > > Subject: Re: [EXT] Re: [PATCH v2] cpufreq: armada-37xx: forbid cpufreq for 1.2 GHz variant > > > > On Mon, Aug 1, 2022 at 8:50 PM Elad Nachman wrote: > > > > > > Hi Pali, > > > > > > Could you please provide the crash dump / call trace? > > > > > > Also, if you can please annotate with printk the exact voltage/frequency changes taken by the driver, up to the point of the crash? > > > > > > This will help understand the sequence of events leading to the crash. > > > > > > Thanks, > > > > > > Elad. > > > > > > Hi Elad, > > Here are 2 bootlogs, but I dont think they are of any use as the traces are rather random and they are always different, like a real voltage issue: > > https://urldefense.proofpoint.com/v2/url?u=https-3A__gist.github.com_robimarko_113216f566ccf159dfd33933889da042&d=DwIFaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=eTeNTLEK5-TxXczjOcKPhANIFtlB9pP4lq9qhdlFrwQ&m=u39n7XPBdQVaoaviM32QcFaiO0KDs3BVzkeF-4zrqPKElNH3igH9KqEKfxSKLz-H&s=jvmR3Myk443DelvNZv1OkhmpqnMp9Y8mvzzYz2g13rM&e= > > https://urldefense.proofpoint.com/v2/url?u=https-3A__gist.github.com_robimarko_990d757870d44a3c5acdfeb957547705&d=DwIFaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=eTeNTLEK5-TxXczjOcKPhANIFtlB9pP4lq9qhdlFrwQ&m=u39n7XPBdQVaoaviM32QcFaiO0KDs3BVzkeF-4zrqPKElNH3igH9KqEKfxSKLz-H&s=XrMFeJpEGO5A4rIKjkHLNc4MHzPGOBKeOktDWCbQMAc&e= > > > > Here is a bootleg with the frequency changes, OPP points that are set by the CPUFreq driver are also here: > > https://urldefense.proofpoint.com/v2/url?u=https-3A__gist.github.com_robimarko_1a81b0c6e93735b75ff4461d405c8033&d=DwIFaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=eTeNTLEK5-TxXczjOcKPhANIFtlB9pP4lq9qhdlFrwQ&m=u39n7XPBdQVaoaviM32QcFaiO0KDs3BVzkeF-4zrqPKElNH3igH9KqEKfxSKLz-H&s=02ljqhQAdZki-JwDYNPKaStmzSkhuitBRP6R17iOZqA&e= > > > > I am still digging to print the voltage changes as _set_opp_voltage is not being used. > > > > Regards, > > Robert > > > > > > > > > ________________________________ > > > מאת: Pali Rohár > > > ‏‏נשלח: יום שני 01 אוגוסט 2022 20:56 > > > ‏‏אל: Elad Nachman > > > עותק: Wojciech Bartczak ; Marek Behún > > > ; Viresh Kumar ; Gregory > > > CLEMENT ; Robert Marko > > > ; Tomasz Maciej Nowak ; > > > Anders Trier Olesen ; Philip Soares > > > ; linux-pm@vger.kernel.org > > > ; Sebastian Hesselbarth > > > ; > > > linux-arm-kernel@lists.infradead.org > > > ; nnet ; > > > Gérald Kerma > > > ‏‏נושא: Re: [EXT] Re: [PATCH v2] cpufreq: armada-37xx: forbid cpufreq > > > for 1.2 GHz variant > > > > > > Hello Elad! > > > > > > Robert (in CC) tested this proposed change. But increasing delay to > > > 100ms does not help. CPU still crashes early during boot. > > > > > > On Monday 01 August 2022 14:15:27 Elad Nachman wrote: > > > > Hi, > > > > > > > > As first step, please try to increase the delay to 100ms, see if it helps. > > > > > > > > Elad. > > > > > > > > -----Original Message----- > > > > From: Pali Rohár > > > > Sent: Monday, August 1, 2022 5:13 PM > > > > To: Elad Nachman > > > > Cc: Wojciech Bartczak ; Marek Behún > > > > ; Viresh Kumar ; Gregory > > > > CLEMENT ; Robert Marko > > > > ; Tomasz Maciej Nowak ; > > > > Anders Trier Olesen ; Philip Soares > > > > ; linux-pm@vger.kernel.org; Sebastian > > > > Hesselbarth ; > > > > linux-arm-kernel@lists.infradead.org; nnet > > > > Subject: Re: [EXT] Re: [PATCH v2] cpufreq: armada-37xx: forbid > > > > cpufreq for 1.2 GHz variant > > > > > > > > Hello Elad and thank you for response! > > > > > > > > This errata is already implemented in the kernel for a longer time by Gregory's commit: > > > > https://urldefense.proofpoint.com/v2/url?u=https-3A__git.kernel.org_ > > > > pub_scm_linux_kernel_git_stable_linux.git_commit_-3Fid-3D61c40f35f5c > > > > d6f67ccbd7319a1722eb78c815989&d=DwIDaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=eT > > > > eNTLEK5-TxXczjOcKPhANIFtlB9pP4lq9qhdlFrwQ&m=-E-AwB9STVx8xgapaCNSpDJI > > > > PPnkrzrWkZX0uFz2bfNGFnckZelT_XaovUUPrNIg&s=4EUcdDWB_gqnEV8nREQi9E_iy > > > > m5bjoM6l5zLrbh_GVs&e= > > > > > > > > There is also 20ms delay after L2/L3 to L1 state switch. > > > > > > > > Any idea what could be wrong here? Or is something more than above commit needed to correctly implement that errata? > > > > > > > > On Monday 01 August 2022 14:01:07 Elad Nachman wrote: > > > > > Hi Pali, > > > > > > > > > > There is an errata for that. > > > > > > > > > > " > > > > > Switching from L2/L3 state (200/300 MHz) to L0 state (1200 MHz) > > > > > requires sudden changes of VDD supply, and it requires time to > > > > > stabilize the VDD supply. The solution is to use gradual switching from L2/L3 to L1 and then L1 to L0 state. > > > > > " > > > > > > > > > > I would also add additional delay for the VDD supply stabilization. > > > > > > > > > > FYI, > > > > > > > > > > Elad. > > > > > > > > > > -----Original Message----- > > > > > From: Pali Rohár > > > > > Sent: Monday, August 1, 2022 3:36 PM > > > > > To: Elad Nachman ; Wojciech Bartczak > > > > > > > > > > Cc: Marek Behún ; Viresh Kumar > > > > > ; Gregory CLEMENT > > > > > ; Robert Marko > > > > > ; Tomasz Maciej Nowak ; > > > > > Anders Trier Olesen ; Philip Soares > > > > > ; linux-pm@vger.kernel.org; Sebastian > > > > > Hesselbarth ; > > > > > linux-arm-kernel@lists.infradead.org; nnet > > > > > Subject: [EXT] Re: [PATCH v2] cpufreq: armada-37xx: forbid cpufreq > > > > > for > > > > > 1.2 GHz variant > > > > > > > > > > External Email > > > > > > > > > > ------------------------------------------------------------------ > > > > > ---- > > > > > + Elad and Wojciech from Marvell > > > > > > > > > > Could you please look at this issue and/or forward it to relevant Marvell team? > > > > > > > > > > Maintainer Viresh already wrote that we cannot hang forever for Marvell and patch which disables support for 1.2 GHz was merged: > > > > > https://urldefense.proofpoint.com/v2/url?u=https-3A__lore.kernel.o > > > > > rg_l > > > > > inux-2Dpm_20210809040224.j2rvopmmqda3utc5-40vireshk-2Di7_&d=DwIDaQ > > > > > &c=n > > > > > KjWec2b6R0mOyPaz7xtfQ&r=eTeNTLEK5-TxXczjOcKPhANIFtlB9pP4lq9qhdlFrw > > > > > Q&m= > > > > > 5nMMKyKOOM3XdMe_PerZRx8L7-D7MkWhCl7GxpXTPiotVf1TR4j8v3bpjQmRKCLC&s > > > > > =cXi CZByknfz1rOIgJl4fJHl1KLLRq2shHul2-VPpYP0&e= > > > > > > > > > > On Sunday 08 August 2021 21:30:26 Pali Rohár wrote: > > > > > > Gentle reminder. This is really serious issue. Could you please look at it? > > > > > > > > > > > > Adding more MarvellEmbeddedProcessors people to the loop: Evan, > > > > > > Benjamin an Igal > > > > > > > > > > > > On Thursday 15 July 2021 21:33:21 Pali Rohár wrote: > > > > > > > Ping! Gentle reminder for Marvell people. > > > > > > > > > > > > > > On Thursday 08 July 2021 16:34:51 Pali Rohár wrote: > > > > > > > > Konstantin, Nadav, Ken, Victor, Jason: This issue is pretty > > > > > > > > serious, CPU on 1.2GHz A3720 is crashing. Could you please look at it? > > > > > > > > > > > > > > > > On Friday 02 July 2021 18:30:35 Pali Rohár wrote: > > > > > > > > > +Jason from GlobalScale as this issue affects GlobalScale Espressobin Ultra and V7 1.2 GHz boards. > > > > > > > > > > > > > > > > > > On Thursday 01 July 2021 00:56:01 Marek Behún wrote: > > > > > > > > > > The 1.2 GHz variant of the Armada 3720 SOC is unstable > > > > > > > > > > with > > > > > > > > > > DVFS: when the SOC boots, the WTMI firmware sets clocks > > > > > > > > > > and AVS values that work correctly with 1.2 GHz CPU > > > > > > > > > > frequency, but random crashes occur once cpufreq driver starts scaling. > > > > > > > > > > > > > > > > > > > > We do not know currently what is the reason: > > > > > > > > > > - it may be that the voltage value for L0 for 1.2 GHz variant provided > > > > > > > > > > by the vendor in the OTP is simply incorrect when > > > > > > > > > > scaling is used, > > > > > > > > > > - it may be that some delay is needed somewhere, > > > > > > > > > > - it may be something else. > > > > > > > > > > > > > > > > > > > > The most sane solution now seems to be to simply forbid > > > > > > > > > > the cpufreq driver on 1.2 GHz variant. > > > > > > > > > > > > > > > > > > > > Signed-off-by: Marek Behún > > > > > > > > > > Fixes: 92ce45fb875d ("cpufreq: Add DVFS support for > > > > > > > > > > Armada > > > > > > > > > > 37xx") > > > > > > > > > > --- > > > > > > > > > > If someone from Marvell could look into this, it would > > > > > > > > > > be great since basically 1.2 GHz variant cannot scale, > > > > > > > > > > which is a feature that was claimed to be supported by the SOC. > > > > > > > > > > > > > > > > > > > > Ken Ma / Victor Gu, you have worked on commit > > > > > > > > > > https://urldefense.proofpoint.com/v2/url?u=https-3A__github. > > > > > > > > > > co > > > > > > > > > > m_MarvellEmbeddedProcessors_linux-2Dmarvell_commit_d6719 > > > > > > > > > > fdc2 > > > > > > > > > > b3 > > > > > > > > > > cac58064f41b531f86993c919aa9a&d=DwIDaQ&c=nKjWec2b6R0mOyP > > > > > > > > > > az7x > > > > > > > > > > tf > > > > > > > > > > Q&r=eTeNTLEK5-TxXczjOcKPhANIFtlB9pP4lq9qhdlFrwQ&m=5nMMKy > > > > > > > > > > KOOM > > > > > > > > > > 3X > > > > > > > > > > dMe_PerZRx8L7-D7MkWhCl7GxpXTPiotVf1TR4j8v3bpjQmRKCLC&s=b > > > > > > > > > > 9cDK em t70OiTJF6KXj0ySzbxpsB_nuteXJE87via80&e= > > > > > > > > > > in linux-marvell. > > > > > > > > > > Your patch takes away the 1202 mV constant for 1.2 GHz > > > > > > > > > > base CPU frequency and instead adds code that computes > > > > > > > > > > the voltages from the voltage found in L0 AVS register (which is filled in by WTMI firmware). > > > > > > > > > > > > > > > > > > > > Do you know why the code does not work correctly for > > > > > > > > > > some > > > > > > > > > > 1.2 GHz boards? Do we need to force the L0 voltage to > > > > > > > > > > 1202 mV if it is lower, or something? > > > > > > > > > > --- > > > > > > > > > > drivers/cpufreq/armada-37xx-cpufreq.c | 6 +++++- > > > > > > > > > > 1 file changed, 5 insertions(+), 1 deletion(-) > > > > > > > > > > > > > > > > > > > > diff --git a/drivers/cpufreq/armada-37xx-cpufreq.c > > > > > > > > > > b/drivers/cpufreq/armada-37xx-cpufreq.c > > > > > > > > > > index 3fc98a3ffd91..c10fc33b29b1 100644 > > > > > > > > > > --- a/drivers/cpufreq/armada-37xx-cpufreq.c > > > > > > > > > > +++ b/drivers/cpufreq/armada-37xx-cpufreq.c > > > > > > > > > > @@ -104,7 +104,11 @@ struct armada_37xx_dvfs { }; > > > > > > > > > > > > > > > > > > > > static struct armada_37xx_dvfs armada_37xx_dvfs[] = { > > > > > > > > > > - {.cpu_freq_max = 1200*1000*1000, .divider = {1, 2, 4, > > > > > > > > > > 6} }, > > > > > > > > > > + /* > > > > > > > > > > + * The cpufreq scaling for 1.2 GHz variant of the SOC > > > > > > > > > > +is currently > > > > > > > > > > + * unstable because we do not know how to configure it properly. > > > > > > > > > > + */ > > > > > > > > > > + /* {.cpu_freq_max = 1200*1000*1000, .divider = {1, 2, > > > > > > > > > > +4, 6} }, */ > > > > > > > > > > {.cpu_freq_max = 1000*1000*1000, .divider = {1, 2, 4, 5} }, > > > > > > > > > > {.cpu_freq_max = 800*1000*1000, .divider = {1, 2, 3, 4} }, > > > > > > > > > > {.cpu_freq_max = 600*1000*1000, .divider = {2, 4, 5, > > > > > > > > > > 6} }, > > > > > > > > > > -- > > > > > > > > > > 2.31.1 > > > > > > > > > > > > > > > > > > -- > > Robert Marko > > Staff Embedded Linux Engineer > > Sartura Ltd. > > Lendavska ulica 16a > > 10000 Zagreb, Croatia > > Email: robert.marko@sartura.hr > > Web: https://urldefense.proofpoint.com/v2/url?u=http-3A__www.sartura.hr&d=DwIFaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=eTeNTLEK5-TxXczjOcKPhANIFtlB9pP4lq9qhdlFrwQ&m=u39n7XPBdQVaoaviM32QcFaiO0KDs3BVzkeF-4zrqPKElNH3igH9KqEKfxSKLz-H&s=_aBokTETNVzTrHqewupr4PeLusBNf7LGrTmjI2hppFk&e= > > > > -- > Robert Marko > Staff Embedded Linux Engineer > Sartura Ltd. > Lendavska ulica 16a > 10000 Zagreb, Croatia > Email: robert.marko@sartura.hr > Web: www.sartura.hr 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 CD7B8C00140 for ; Tue, 2 Aug 2022 17:18:57 +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:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=DFE3A/fGtoAE0eFQIy6eHnjXsM0zNKUkdv2O+gZomvE=; b=FHPjT2a8rwB/hc K6oZn1BvNiVwDByLCj0aTib1p3AfwPzE8G1BVlrwGZBaasrTIFp3sjGUqkznGg/Nf+lvLqpPkXiJC 8N5PLVKhAkTgCZpNfI4B+XtsgpuEUOCHhyumEY4APYPaAR5G1GCk7pADAF3XgxkbJxKL72AjZNR6M 7ubRkOwnFGRC/zKf1MQMnyEzc71HH70ePknAeQp/VuinR86vZ0OROf8of8VtbShliL+N4IJbORWwe Mxl0KeAq931d27JtBlV4ILTj27zl1fLhQLjwJvE4zowVt/gPi3OPy1UdaJ1Kcu15VJbAkKUfEQW8u gMpLaLflKz1n0LTDejOg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oIvWc-00G5md-Dv; Tue, 02 Aug 2022 17:17:46 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oIvWX-00G5jl-Tc for linux-arm-kernel@lists.infradead.org; Tue, 02 Aug 2022 17:17:44 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 0B9C7611D2; Tue, 2 Aug 2022 17:17:41 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 97443C433D6; Tue, 2 Aug 2022 17:17:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1659460660; bh=YMcBP/7MKRt/R3Zga9SBDZhaCnpy2+Pq7sy0iCAoPHs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=kpMm5aUYNHv1mmYrycdKjrWtflghs+Wg0TNoScNFgaJeDqWbiiktIrJv8iridLku0 zlOjiG5+wDu2zLdTAZd0UzYRZ4lu6T5GdwFcZQAcIqG/Asz2/qF0zf/K0HgJCdL9Te G/D4axOfBZCG3KwKAo3XDhR1HVOgzB1zhoBKH6S6iz88U/OPxoHewrpzQVVuqvREyk B2SljtylAeP5+YiJeyWok7ZKg2f148oWQLnFpKV61Vk3Z0gkHeCQOct8RHnxMAsY0B g3vto7FHn4mwyM+LPMr12jG+VAyxVk4UIJtFtVTYdocmx0p6rck0OxbfAXHu4J2NFs 782EJdq5aAPCA== Received: by pali.im (Postfix) id 8F5FCF81; Tue, 2 Aug 2022 19:17:36 +0200 (CEST) Date: Tue, 2 Aug 2022 19:17:36 +0200 From: Pali =?utf-8?B?Um9ow6Fy?= To: Robert Marko Cc: Elad Nachman , Wojciech Bartczak , Marek =?utf-8?B?QmVow7pu?= , Viresh Kumar , Gregory CLEMENT , Tomasz Maciej Nowak , Anders Trier Olesen , Philip Soares , "linux-pm@vger.kernel.org" , Sebastian Hesselbarth , "linux-arm-kernel@lists.infradead.org" , nnet , =?utf-8?Q?G=C3=A9rald?= Kerma Subject: Re: [EXT] Re: [PATCH v2] cpufreq: armada-37xx: forbid cpufreq for 1.2 GHz variant Message-ID: <20220802171736.n7jwtbssnwr5hojv@pali> References: <20210808193026.xuyaufi5wqnrcakd@pali> <20220801123616.uol4wrs6trttumsg@pali> <20220801141254.ojljy2lewgrkga3f@pali> <20220801175645.bnknpfg26acbat7c@pali> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20180716 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220802_101742_138609_66805BFF X-CRM114-Status: GOOD ( 63.38 ) 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 T24gVHVlc2RheSAwMiBBdWd1c3QgMjAyMiAxODo1NjowNyBSb2JlcnQgTWFya28gd3JvdGU6Cj4g T24gVHVlLCBBdWcgMiwgMjAyMiBhdCA2OjUyIFBNIEVsYWQgTmFjaG1hbiA8ZW5hY2htYW5AbWFy dmVsbC5jb20+IHdyb3RlOgo+ID4KPiA+IEhpLAo+ID4KPiA+IFVubGVzcyB0aGUgbG9ncyBhcmUg bWlzbGVhZGluZywgdGhlbiBJIHNlZSBoZXJlOgo+ID4KPiA+IGNwdSBjcHUwOiBfc2V0X29wcDog c3dpdGNoaW5nIE9QUDogRnJlcSAyMDAwMDAwMDAgLT4gMTIwMDAwMDAwMCBIeiwgTGV2ZWwgMCAt PiAwLCBCdyAwIC0+IDAKPiA+Cj4gPiBXaGljaCB2aW9sYXRlcyB0aGUgZXJyYXRhLgo+ID4gSWYg dGhlcmUgaXMgYW4gaW50ZXJpbSBzdGVwIGluIGJldHdlZW4sIEkgdGhpbmsgaXQgc2hvdWxkIGJl IHByaW50ZWQgb3V0IGluIHRoZSBkZWJ1ZyBzbyB3ZSBjYW4gY2xlYXJseSB1bmRlcnN0YW5kIHdo YXQgaXMgdGhlIGludGVyaW0gZnJlcXVlbmN5IHNldHRpbmcgYmV0d2VlbiAyMDAgYW5kIDEyMDAg TUh6Lgo+IAo+IFRoaXMgaXMgcHJpbnRlZCBkaXJlY3RseSBieSB0aGUgX3NldF9vcHAgZnJvbSB0 aGUgY3B1ZnJlcSBjb3JlLCBzbyBpdAo+IHNob3VsZCBiZSBhY2N1cmF0ZS4KPiBQYWxpLCBhbSBJ IGRvaW5nIHRoaXMgY29ycmVjdGx5IG9yIEkgbmVlZCB0byBwcmludCBmcm9tIHRoZSBBM0sKPiBj cHVmcmVxIG9yIGNsayBkcml2ZXJzPwoKSGVsbG8hIFlvdSBuZWVkIHRvIHByaW50IGl0IGZyb20g YTNrIGNsayBkcml2ZXIuIGNwdWZyZXEgY29yZSBqdXN0IGFzawpkcml2ZXIgdG8gc3dpdGNoIHNw ZWVkIGZyb20gMjAwMDAwMDAwIHRvIDEyMDAwMDAwMDAgYW5kIGNsayBkcml2ZXIgdGhlbgpjaGFu Z2UgaXQgd2l0aCBpdHMgb3duIHdvcmthcm91bmQgZnVuY3Rpb24uCgpUaGUgcmVhbCBjaGFuZ2Ug b2YgTGV2ZWwgaXMgZG9uZSBhdCB0aGVzZSBwbGFjZXM6Cmh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcv cHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3N0YWJsZS9saW51eC5naXQvdHJlZS9kcml2ZXJzL2Ns ay9tdmVidS9hcm1hZGEtMzd4eC1wZXJpcGguYz9oPXY1LjE5I241NDgKaHR0cHM6Ly9naXQua2Vy bmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvc3RhYmxlL2xpbnV4LmdpdC90cmVlL2Ry aXZlcnMvY2xrL212ZWJ1L2FybWFkYS0zN3h4LXBlcmlwaC5jP2g9djUuMTkjbjU5MgoKQ2hlY2sg cGxhY2VzIHdoZXJlIGlzIGRvbmUgd3JpdGUgb3BlcmF0aW9uIHRvIHJlZ2lzdGVyCkFSTUFEQV8z N1hYX05CX0NQVV9MT0FELgoKPiBSZWdhcmRzLAo+IFJvYmVydAo+ID4KPiA+IEVsYWQuCj4gPgo+ ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+IEZyb206IFJvYmVydCBNYXJrbyA8cm9i ZXJ0Lm1hcmtvQHNhcnR1cmEuaHI+Cj4gPiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMiwgMjAyMiA3 OjQyIFBNCj4gPiBUbzogRWxhZCBOYWNobWFuIDxlbmFjaG1hbkBtYXJ2ZWxsLmNvbT4KPiA+IENj OiBQYWxpIFJvaMOhciA8cGFsaUBrZXJuZWwub3JnPjsgV29qY2llY2ggQmFydGN6YWsgPHdiYXJ0 Y3pha0BtYXJ2ZWxsLmNvbT47IE1hcmVrIEJlaMO6biA8a2FiZWxAa2VybmVsLm9yZz47IFZpcmVz aCBLdW1hciA8dmlyZXNoLmt1bWFyQGxpbmFyby5vcmc+OyBHcmVnb3J5IENMRU1FTlQgPGdyZWdv cnkuY2xlbWVudEBib290bGluLmNvbT47IFRvbWFzeiBNYWNpZWogTm93YWsgPHRtbjUwNUBnbWFp bC5jb20+OyBBbmRlcnMgVHJpZXIgT2xlc2VuIDxhbmRlcnMudHJpZXIub2xlc2VuQGdtYWlsLmNv bT47IFBoaWxpcCBTb2FyZXMgPHBoaWxpcHNAbmV0aXNlbnNlLmNvbT47IGxpbnV4LXBtQHZnZXIu a2VybmVsLm9yZzsgU2ViYXN0aWFuIEhlc3NlbGJhcnRoIDxzZWJhc3RpYW4uaGVzc2VsYmFydGhA Z21haWwuY29tPjsgbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnOyBubmV0IDxu bmV0QGZhc3RtYWlsLmZtPjsgR8OpcmFsZCBLZXJtYSA8Z2FuZGFsZkBnazIubmV0Pgo+ID4gU3Vi amVjdDogUmU6IFtFWFRdIFJlOiBbUEFUQ0ggdjJdIGNwdWZyZXE6IGFybWFkYS0zN3h4OiBmb3Ji aWQgY3B1ZnJlcSBmb3IgMS4yIEdIeiB2YXJpYW50Cj4gPgo+ID4gT24gTW9uLCBBdWcgMSwgMjAy MiBhdCA4OjUwIFBNIEVsYWQgTmFjaG1hbiA8ZW5hY2htYW5AbWFydmVsbC5jb20+IHdyb3RlOgo+ ID4gPgo+ID4gPiBIaSBQYWxpLAo+ID4gPgo+ID4gPiBDb3VsZCB5b3UgcGxlYXNlIHByb3ZpZGUg dGhlIGNyYXNoIGR1bXAgLyBjYWxsIHRyYWNlPwo+ID4gPgo+ID4gPiBBbHNvLCBpZiB5b3UgY2Fu IHBsZWFzZSBhbm5vdGF0ZSB3aXRoIHByaW50ayB0aGUgZXhhY3Qgdm9sdGFnZS9mcmVxdWVuY3kg Y2hhbmdlcyB0YWtlbiBieSB0aGUgZHJpdmVyLCB1cCB0byB0aGUgcG9pbnQgb2YgdGhlIGNyYXNo Pwo+ID4gPgo+ID4gPiBUaGlzIHdpbGwgaGVscCB1bmRlcnN0YW5kIHRoZSBzZXF1ZW5jZSBvZiBl dmVudHMgbGVhZGluZyB0byB0aGUgY3Jhc2guCj4gPiA+Cj4gPiA+IFRoYW5rcywKPiA+ID4KPiA+ ID4gRWxhZC4KPiA+Cj4gPgo+ID4gSGkgRWxhZCwKPiA+IEhlcmUgYXJlIDIgYm9vdGxvZ3MsIGJ1 dCBJIGRvbnQgdGhpbmsgdGhleSBhcmUgb2YgYW55IHVzZSBhcyB0aGUgdHJhY2VzIGFyZSByYXRo ZXIgcmFuZG9tIGFuZCB0aGV5IGFyZSBhbHdheXMgZGlmZmVyZW50LCBsaWtlIGEgcmVhbCB2b2x0 YWdlIGlzc3VlOgo+ID4gaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91 PWh0dHBzLTNBX19naXN0LmdpdGh1Yi5jb21fcm9iaW1hcmtvXzExMzIxNmY1NjZjY2YxNTlkZmQz MzkzMzg4OWRhMDQyJmQ9RHdJRmFRJmM9bktqV2VjMmI2UjBtT3lQYXo3eHRmUSZyPWVUZU5UTEVL NS1UeFhjempPY0tQaEFOSUZ0bEI5cFA0bHE5cWhkbEZyd1EmbT11MzluN1hQQmRRVmFvYXZpTTMy UWNGYWlPMEtEczNCVnprZUYtNHpycVBLRWxOSDNpZ0g5S3FFS2Z4U0tMei1IJnM9anZtUjNNeWs0 NDNEZWx2Tlp2MU9raG1wcW5NcDlZOG12enpZejJnMTNyTSZlPQo+ID4gaHR0cHM6Ly91cmxkZWZl bnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHBzLTNBX19naXN0LmdpdGh1Yi5jb21fcm9i aW1hcmtvXzk5MGQ3NTc4NzBkNDRhM2M1YWNkZmViOTU3NTQ3NzA1JmQ9RHdJRmFRJmM9bktqV2Vj MmI2UjBtT3lQYXo3eHRmUSZyPWVUZU5UTEVLNS1UeFhjempPY0tQaEFOSUZ0bEI5cFA0bHE5cWhk bEZyd1EmbT11MzluN1hQQmRRVmFvYXZpTTMyUWNGYWlPMEtEczNCVnprZUYtNHpycVBLRWxOSDNp Z0g5S3FFS2Z4U0tMei1IJnM9WHJNRmVKcEVHTzVBNHJJS2prSExOYzRNSHpQR09CS2VPa3REV0Ni UU1BYyZlPQo+ID4KPiA+IEhlcmUgaXMgYSBib290bGVnIHdpdGggdGhlIGZyZXF1ZW5jeSBjaGFu Z2VzLCBPUFAgcG9pbnRzIHRoYXQgYXJlIHNldCBieSB0aGUgQ1BVRnJlcSBkcml2ZXIgYXJlIGFs c28gaGVyZToKPiA+IGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/dT1o dHRwcy0zQV9fZ2lzdC5naXRodWIuY29tX3JvYmltYXJrb18xYTgxYjBjNmU5MzczNWI3NWZmNDQ2 MWQ0MDVjODAzMyZkPUR3SUZhUSZjPW5LaldlYzJiNlIwbU95UGF6N3h0ZlEmcj1lVGVOVExFSzUt VHhYY3pqT2NLUGhBTklGdGxCOXBQNGxxOXFoZGxGcndRJm09dTM5bjdYUEJkUVZhb2F2aU0zMlFj RmFpTzBLRHMzQlZ6a2VGLTR6cnFQS0VsTkgzaWdIOUtxRUtmeFNLTHotSCZzPTAybGpxaFFBZFpr aS1Kd0RZTlBLYVN0bXpTa2h1aXRCUlA2UjE3aU9acUEmZT0KPiA+Cj4gPiBJIGFtIHN0aWxsIGRp Z2dpbmcgdG8gcHJpbnQgdGhlIHZvbHRhZ2UgY2hhbmdlcyBhcyBfc2V0X29wcF92b2x0YWdlIGlz IG5vdCBiZWluZyB1c2VkLgo+ID4KPiA+IFJlZ2FyZHMsCj4gPiBSb2JlcnQKPiA+ID4KPiA+ID4K PiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ID4g157XkNeqOiBQYWxp IFJvaMOhciA8cGFsaUBrZXJuZWwub3JnPgo+ID4gPiDigI/igI/XoNep15zXlzog15nXldedINep 16DXmSAwMSDXkNeV15LXldeh15ggMjAyMiAyMDo1Ngo+ID4gPiDigI/igI/XkNecOiBFbGFkIE5h Y2htYW4gPGVuYWNobWFuQG1hcnZlbGwuY29tPgo+ID4gPiDXoteV16rXpzogV29qY2llY2ggQmFy dGN6YWsgPHdiYXJ0Y3pha0BtYXJ2ZWxsLmNvbT47IE1hcmVrIEJlaMO6bgo+ID4gPiA8a2FiZWxA a2VybmVsLm9yZz47IFZpcmVzaCBLdW1hciA8dmlyZXNoLmt1bWFyQGxpbmFyby5vcmc+OyBHcmVn b3J5Cj4gPiA+IENMRU1FTlQgPGdyZWdvcnkuY2xlbWVudEBib290bGluLmNvbT47IFJvYmVydCBN YXJrbwo+ID4gPiA8cm9iZXJ0Lm1hcmtvQHNhcnR1cmEuaHI+OyBUb21hc3ogTWFjaWVqIE5vd2Fr IDx0bW41MDVAZ21haWwuY29tPjsKPiA+ID4gQW5kZXJzIFRyaWVyIE9sZXNlbiA8YW5kZXJzLnRy aWVyLm9sZXNlbkBnbWFpbC5jb20+OyBQaGlsaXAgU29hcmVzCj4gPiA+IDxwaGlsaXBzQG5ldGlz ZW5zZS5jb20+OyBsaW51eC1wbUB2Z2VyLmtlcm5lbC5vcmcKPiA+ID4gPGxpbnV4LXBtQHZnZXIu a2VybmVsLm9yZz47IFNlYmFzdGlhbiBIZXNzZWxiYXJ0aAo+ID4gPiA8c2ViYXN0aWFuLmhlc3Nl bGJhcnRoQGdtYWlsLmNvbT47Cj4gPiA+IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFk Lm9yZwo+ID4gPiA8bGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnPjsgbm5ldCA8 bm5ldEBmYXN0bWFpbC5mbT47Cj4gPiA+IEfDqXJhbGQgS2VybWEgPGdhbmRhbGZAZ2syLm5ldD4K PiA+ID4g4oCP4oCP16DXldep15A6IFJlOiBbRVhUXSBSZTogW1BBVENIIHYyXSBjcHVmcmVxOiBh cm1hZGEtMzd4eDogZm9yYmlkIGNwdWZyZXEKPiA+ID4gZm9yIDEuMiBHSHogdmFyaWFudAo+ID4g Pgo+ID4gPiBIZWxsbyBFbGFkIQo+ID4gPgo+ID4gPiBSb2JlcnQgKGluIENDKSB0ZXN0ZWQgdGhp cyBwcm9wb3NlZCBjaGFuZ2UuIEJ1dCBpbmNyZWFzaW5nIGRlbGF5IHRvCj4gPiA+IDEwMG1zIGRv ZXMgbm90IGhlbHAuIENQVSBzdGlsbCBjcmFzaGVzIGVhcmx5IGR1cmluZyBib290Lgo+ID4gPgo+ ID4gPiBPbiBNb25kYXkgMDEgQXVndXN0IDIwMjIgMTQ6MTU6MjcgRWxhZCBOYWNobWFuIHdyb3Rl Ogo+ID4gPiA+IEhpLAo+ID4gPiA+Cj4gPiA+ID4gQXMgZmlyc3Qgc3RlcCwgcGxlYXNlIHRyeSB0 byBpbmNyZWFzZSB0aGUgZGVsYXkgdG8gMTAwbXMsIHNlZSBpZiBpdCBoZWxwcy4KPiA+ID4gPgo+ ID4gPiA+IEVsYWQuCj4gPiA+ID4KPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ ID4gPiA+IEZyb206IFBhbGkgUm9ow6FyIDxwYWxpQGtlcm5lbC5vcmc+Cj4gPiA+ID4gU2VudDog TW9uZGF5LCBBdWd1c3QgMSwgMjAyMiA1OjEzIFBNCj4gPiA+ID4gVG86IEVsYWQgTmFjaG1hbiA8 ZW5hY2htYW5AbWFydmVsbC5jb20+Cj4gPiA+ID4gQ2M6IFdvamNpZWNoIEJhcnRjemFrIDx3YmFy dGN6YWtAbWFydmVsbC5jb20+OyBNYXJlayBCZWjDum4KPiA+ID4gPiA8a2FiZWxAa2VybmVsLm9y Zz47IFZpcmVzaCBLdW1hciA8dmlyZXNoLmt1bWFyQGxpbmFyby5vcmc+OyBHcmVnb3J5Cj4gPiA+ ID4gQ0xFTUVOVCA8Z3JlZ29yeS5jbGVtZW50QGJvb3RsaW4uY29tPjsgUm9iZXJ0IE1hcmtvCj4g PiA+ID4gPHJvYmVydC5tYXJrb0BzYXJ0dXJhLmhyPjsgVG9tYXN6IE1hY2llaiBOb3dhayA8dG1u NTA1QGdtYWlsLmNvbT47Cj4gPiA+ID4gQW5kZXJzIFRyaWVyIE9sZXNlbiA8YW5kZXJzLnRyaWVy Lm9sZXNlbkBnbWFpbC5jb20+OyBQaGlsaXAgU29hcmVzCj4gPiA+ID4gPHBoaWxpcHNAbmV0aXNl bnNlLmNvbT47IGxpbnV4LXBtQHZnZXIua2VybmVsLm9yZzsgU2ViYXN0aWFuCj4gPiA+ID4gSGVz c2VsYmFydGggPHNlYmFzdGlhbi5oZXNzZWxiYXJ0aEBnbWFpbC5jb20+Owo+ID4gPiA+IGxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZzsgbm5ldCA8bm5ldEBmYXN0bWFpbC5mbT4K PiA+ID4gPiBTdWJqZWN0OiBSZTogW0VYVF0gUmU6IFtQQVRDSCB2Ml0gY3B1ZnJlcTogYXJtYWRh LTM3eHg6IGZvcmJpZAo+ID4gPiA+IGNwdWZyZXEgZm9yIDEuMiBHSHogdmFyaWFudAo+ID4gPiA+ Cj4gPiA+ID4gSGVsbG8gRWxhZCBhbmQgdGhhbmsgeW91IGZvciByZXNwb25zZSEKPiA+ID4gPgo+ ID4gPiA+IFRoaXMgZXJyYXRhIGlzIGFscmVhZHkgaW1wbGVtZW50ZWQgaW4gdGhlIGtlcm5lbCBm b3IgYSBsb25nZXIgdGltZSBieSBHcmVnb3J5J3MgY29tbWl0Ogo+ID4gPiA+IGh0dHBzOi8vdXJs ZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/dT1odHRwcy0zQV9fZ2l0Lmtlcm5lbC5vcmdf Cj4gPiA+ID4gcHViX3NjbV9saW51eF9rZXJuZWxfZ2l0X3N0YWJsZV9saW51eC5naXRfY29tbWl0 Xy0zRmlkLTNENjFjNDBmMzVmNWMKPiA+ID4gPiBkNmY2N2NjYmQ3MzE5YTE3MjJlYjc4YzgxNTk4 OSZkPUR3SURhUSZjPW5LaldlYzJiNlIwbU95UGF6N3h0ZlEmcj1lVAo+ID4gPiA+IGVOVExFSzUt VHhYY3pqT2NLUGhBTklGdGxCOXBQNGxxOXFoZGxGcndRJm09LUUtQXdCOVNUVng4eGdhcGFDTlNw REpJCj4gPiA+ID4gUFBua3J6cldrWlgwdUZ6MmJmTkdGbmNrWmVsVF9YYW92VVVQck5JZyZzPTRF VWNkRFdCX2dxbkVWOG5SRVFpOUVfaXkKPiA+ID4gPiBtNWJqb002bDV6THJiaF9HVnMmZT0KPiA+ ID4gPgo+ID4gPiA+IFRoZXJlIGlzIGFsc28gMjBtcyBkZWxheSBhZnRlciBMMi9MMyB0byBMMSBz dGF0ZSBzd2l0Y2guCj4gPiA+ID4KPiA+ID4gPiBBbnkgaWRlYSB3aGF0IGNvdWxkIGJlIHdyb25n IGhlcmU/IE9yIGlzIHNvbWV0aGluZyBtb3JlIHRoYW4gYWJvdmUgY29tbWl0IG5lZWRlZCB0byBj b3JyZWN0bHkgaW1wbGVtZW50IHRoYXQgZXJyYXRhPwo+ID4gPiA+Cj4gPiA+ID4gT24gTW9uZGF5 IDAxIEF1Z3VzdCAyMDIyIDE0OjAxOjA3IEVsYWQgTmFjaG1hbiB3cm90ZToKPiA+ID4gPiA+IEhp IFBhbGksCj4gPiA+ID4gPgo+ID4gPiA+ID4gVGhlcmUgaXMgYW4gZXJyYXRhIGZvciB0aGF0Lgo+ ID4gPiA+ID4KPiA+ID4gPiA+ICIKPiA+ID4gPiA+IFN3aXRjaGluZyBmcm9tIEwyL0wzIHN0YXRl ICgyMDAvMzAwIE1IeikgdG8gTDAgc3RhdGUgKDEyMDAgTUh6KQo+ID4gPiA+ID4gcmVxdWlyZXMg c3VkZGVuIGNoYW5nZXMgb2YgVkREIHN1cHBseSwgYW5kIGl0IHJlcXVpcmVzIHRpbWUgdG8KPiA+ ID4gPiA+IHN0YWJpbGl6ZSB0aGUgVkREIHN1cHBseS4gVGhlIHNvbHV0aW9uIGlzIHRvIHVzZSBn cmFkdWFsIHN3aXRjaGluZyBmcm9tIEwyL0wzIHRvIEwxIGFuZCB0aGVuIEwxIHRvIEwwIHN0YXRl Lgo+ID4gPiA+ID4gIgo+ID4gPiA+ID4KPiA+ID4gPiA+IEkgd291bGQgYWxzbyBhZGQgYWRkaXRp b25hbCBkZWxheSBmb3IgdGhlIFZERCBzdXBwbHkgc3RhYmlsaXphdGlvbi4KPiA+ID4gPiA+Cj4g PiA+ID4gPiBGWUksCj4gPiA+ID4gPgo+ID4gPiA+ID4gRWxhZC4KPiA+ID4gPiA+Cj4gPiA+ID4g PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID4gPiA+ID4gRnJvbTogUGFsaSBSb2jDoXIg PHBhbGlAa2VybmVsLm9yZz4KPiA+ID4gPiA+IFNlbnQ6IE1vbmRheSwgQXVndXN0IDEsIDIwMjIg MzozNiBQTQo+ID4gPiA+ID4gVG86IEVsYWQgTmFjaG1hbiA8ZW5hY2htYW5AbWFydmVsbC5jb20+ OyBXb2pjaWVjaCBCYXJ0Y3phawo+ID4gPiA+ID4gPHdiYXJ0Y3pha0BtYXJ2ZWxsLmNvbT4KPiA+ ID4gPiA+IENjOiBNYXJlayBCZWjDum4gPGthYmVsQGtlcm5lbC5vcmc+OyBWaXJlc2ggS3VtYXIK PiA+ID4gPiA+IDx2aXJlc2gua3VtYXJAbGluYXJvLm9yZz47IEdyZWdvcnkgQ0xFTUVOVAo+ID4g PiA+ID4gPGdyZWdvcnkuY2xlbWVudEBib290bGluLmNvbT47IFJvYmVydCBNYXJrbwo+ID4gPiA+ ID4gPHJvYmVydC5tYXJrb0BzYXJ0dXJhLmhyPjsgVG9tYXN6IE1hY2llaiBOb3dhayA8dG1uNTA1 QGdtYWlsLmNvbT47Cj4gPiA+ID4gPiBBbmRlcnMgVHJpZXIgT2xlc2VuIDxhbmRlcnMudHJpZXIu b2xlc2VuQGdtYWlsLmNvbT47IFBoaWxpcCBTb2FyZXMKPiA+ID4gPiA+IDxwaGlsaXBzQG5ldGlz ZW5zZS5jb20+OyBsaW51eC1wbUB2Z2VyLmtlcm5lbC5vcmc7IFNlYmFzdGlhbgo+ID4gPiA+ID4g SGVzc2VsYmFydGggPHNlYmFzdGlhbi5oZXNzZWxiYXJ0aEBnbWFpbC5jb20+Owo+ID4gPiA+ID4g bGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnOyBubmV0IDxubmV0QGZhc3RtYWls LmZtPgo+ID4gPiA+ID4gU3ViamVjdDogW0VYVF0gUmU6IFtQQVRDSCB2Ml0gY3B1ZnJlcTogYXJt YWRhLTM3eHg6IGZvcmJpZCBjcHVmcmVxCj4gPiA+ID4gPiBmb3IKPiA+ID4gPiA+IDEuMiBHSHog dmFyaWFudAo+ID4gPiA+ID4KPiA+ID4gPiA+IEV4dGVybmFsIEVtYWlsCj4gPiA+ID4gPgo+ID4g PiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4gPiAtLS0tCj4gPiA+ID4gPiArIEVsYWQgYW5kIFdvamNp ZWNoIGZyb20gTWFydmVsbAo+ID4gPiA+ID4KPiA+ID4gPiA+IENvdWxkIHlvdSBwbGVhc2UgbG9v ayBhdCB0aGlzIGlzc3VlIGFuZC9vciBmb3J3YXJkIGl0IHRvIHJlbGV2YW50IE1hcnZlbGwgdGVh bT8KPiA+ID4gPiA+Cj4gPiA+ID4gPiBNYWludGFpbmVyIFZpcmVzaCBhbHJlYWR5IHdyb3RlIHRo YXQgd2UgY2Fubm90IGhhbmcgZm9yZXZlciBmb3IgTWFydmVsbCBhbmQgcGF0Y2ggd2hpY2ggZGlz YWJsZXMgc3VwcG9ydCBmb3IgMS4yIEdIeiB3YXMgbWVyZ2VkOgo+ID4gPiA+ID4gaHR0cHM6Ly91 cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHBzLTNBX19sb3JlLmtlcm5lbC5v Cj4gPiA+ID4gPiByZ19sCj4gPiA+ID4gPiBpbnV4LTJEcG1fMjAyMTA4MDkwNDAyMjQuajJydm9w bW1xZGEzdXRjNS00MHZpcmVzaGstMkRpN18mZD1Ed0lEYVEKPiA+ID4gPiA+ICZjPW4KPiA+ID4g PiA+IEtqV2VjMmI2UjBtT3lQYXo3eHRmUSZyPWVUZU5UTEVLNS1UeFhjempPY0tQaEFOSUZ0bEI5 cFA0bHE5cWhkbEZydwo+ID4gPiA+ID4gUSZtPQo+ID4gPiA+ID4gNW5NTUt5S09PTTNYZE1lX1Bl clpSeDhMNy1EN01rV2hDbDdHeHBYVFBpb3RWZjFUUjRqOHYzYnBqUW1SS0NMQyZzCj4gPiA+ID4g PiA9Y1hpIENaQnlrbmZ6MXJPSWdKbDRmSkhsMUtMTFJxMnNoSHVsMi1WUHBZUDAmZT0KPiA+ID4g PiA+Cj4gPiA+ID4gPiBPbiBTdW5kYXkgMDggQXVndXN0IDIwMjEgMjE6MzA6MjYgUGFsaSBSb2jD oXIgd3JvdGU6Cj4gPiA+ID4gPiA+IEdlbnRsZSByZW1pbmRlci4gVGhpcyBpcyByZWFsbHkgc2Vy aW91cyBpc3N1ZS4gQ291bGQgeW91IHBsZWFzZSBsb29rIGF0IGl0Pwo+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiBBZGRpbmcgbW9yZSBNYXJ2ZWxsRW1iZWRkZWRQcm9jZXNzb3JzIHBlb3BsZSB0byB0 aGUgbG9vcDogRXZhbiwKPiA+ID4gPiA+ID4gQmVuamFtaW4gYW4gSWdhbAo+ID4gPiA+ID4gPgo+ ID4gPiA+ID4gPiBPbiBUaHVyc2RheSAxNSBKdWx5IDIwMjEgMjE6MzM6MjEgUGFsaSBSb2jDoXIg d3JvdGU6Cj4gPiA+ID4gPiA+ID4gUGluZyEgR2VudGxlIHJlbWluZGVyIGZvciBNYXJ2ZWxsIHBl b3BsZS4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IE9uIFRodXJzZGF5IDA4IEp1bHkgMjAy MSAxNjozNDo1MSBQYWxpIFJvaMOhciB3cm90ZToKPiA+ID4gPiA+ID4gPiA+IEtvbnN0YW50aW4s IE5hZGF2LCBLZW4sIFZpY3RvciwgSmFzb246IFRoaXMgaXNzdWUgaXMgcHJldHR5Cj4gPiA+ID4g PiA+ID4gPiBzZXJpb3VzLCBDUFUgb24gMS4yR0h6IEEzNzIwIGlzIGNyYXNoaW5nLiBDb3VsZCB5 b3UgcGxlYXNlIGxvb2sgYXQgaXQ/Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gT24g RnJpZGF5IDAyIEp1bHkgMjAyMSAxODozMDozNSBQYWxpIFJvaMOhciB3cm90ZToKPiA+ID4gPiA+ ID4gPiA+ID4gK0phc29uIGZyb20gR2xvYmFsU2NhbGUgYXMgdGhpcyBpc3N1ZSBhZmZlY3RzIEds b2JhbFNjYWxlIEVzcHJlc3NvYmluIFVsdHJhIGFuZCBWNyAxLjIgR0h6IGJvYXJkcy4KPiA+ID4g PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gT24gVGh1cnNkYXkgMDEgSnVseSAyMDIxIDAw OjU2OjAxIE1hcmVrIEJlaMO6biB3cm90ZToKPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGUgMS4yIEdI eiB2YXJpYW50IG9mIHRoZSBBcm1hZGEgMzcyMCBTT0MgaXMgdW5zdGFibGUKPiA+ID4gPiA+ID4g PiA+ID4gPiB3aXRoCj4gPiA+ID4gPiA+ID4gPiA+ID4gRFZGUzogd2hlbiB0aGUgU09DIGJvb3Rz LCB0aGUgV1RNSSBmaXJtd2FyZSBzZXRzIGNsb2Nrcwo+ID4gPiA+ID4gPiA+ID4gPiA+IGFuZCBB VlMgdmFsdWVzIHRoYXQgd29yayBjb3JyZWN0bHkgd2l0aCAxLjIgR0h6IENQVQo+ID4gPiA+ID4g PiA+ID4gPiA+IGZyZXF1ZW5jeSwgYnV0IHJhbmRvbSBjcmFzaGVzIG9jY3VyIG9uY2UgY3B1ZnJl cSBkcml2ZXIgc3RhcnRzIHNjYWxpbmcuCj4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4g PiA+ID4gPiBXZSBkbyBub3Qga25vdyBjdXJyZW50bHkgd2hhdCBpcyB0aGUgcmVhc29uOgo+ID4g PiA+ID4gPiA+ID4gPiA+IC0gaXQgbWF5IGJlIHRoYXQgdGhlIHZvbHRhZ2UgdmFsdWUgZm9yIEww IGZvciAxLjIgR0h6IHZhcmlhbnQgcHJvdmlkZWQKPiA+ID4gPiA+ID4gPiA+ID4gPiAgIGJ5IHRo ZSB2ZW5kb3IgaW4gdGhlIE9UUCBpcyBzaW1wbHkgaW5jb3JyZWN0IHdoZW4KPiA+ID4gPiA+ID4g PiA+ID4gPiBzY2FsaW5nIGlzIHVzZWQsCj4gPiA+ID4gPiA+ID4gPiA+ID4gLSBpdCBtYXkgYmUg dGhhdCBzb21lIGRlbGF5IGlzIG5lZWRlZCBzb21ld2hlcmUsCj4gPiA+ID4gPiA+ID4gPiA+ID4g LSBpdCBtYXkgYmUgc29tZXRoaW5nIGVsc2UuCj4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gPiA+ID4gPiBUaGUgbW9zdCBzYW5lIHNvbHV0aW9uIG5vdyBzZWVtcyB0byBiZSB0byBzaW1w bHkgZm9yYmlkCj4gPiA+ID4gPiA+ID4gPiA+ID4gdGhlIGNwdWZyZXEgZHJpdmVyIG9uIDEuMiBH SHogdmFyaWFudC4KPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+IFNpZ25l ZC1vZmYtYnk6IE1hcmVrIEJlaMO6biA8a2FiZWxAa2VybmVsLm9yZz4KPiA+ID4gPiA+ID4gPiA+ ID4gPiBGaXhlczogOTJjZTQ1ZmI4NzVkICgiY3B1ZnJlcTogQWRkIERWRlMgc3VwcG9ydCBmb3IK PiA+ID4gPiA+ID4gPiA+ID4gPiBBcm1hZGEKPiA+ID4gPiA+ID4gPiA+ID4gPiAzN3h4IikKPiA+ ID4gPiA+ID4gPiA+ID4gPiAtLS0KPiA+ID4gPiA+ID4gPiA+ID4gPiBJZiBzb21lb25lIGZyb20g TWFydmVsbCBjb3VsZCBsb29rIGludG8gdGhpcywgaXQgd291bGQKPiA+ID4gPiA+ID4gPiA+ID4g PiBiZSBncmVhdCBzaW5jZSBiYXNpY2FsbHkgMS4yIEdIeiB2YXJpYW50IGNhbm5vdCBzY2FsZSwK PiA+ID4gPiA+ID4gPiA+ID4gPiB3aGljaCBpcyBhIGZlYXR1cmUgdGhhdCB3YXMgY2xhaW1lZCB0 byBiZSBzdXBwb3J0ZWQgYnkgdGhlIFNPQy4KPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4g PiA+ID4gPiA+IEtlbiBNYSAvIFZpY3RvciBHdSwgeW91IGhhdmUgd29ya2VkIG9uIGNvbW1pdAo+ ID4gPiA+ID4gPiA+ID4gPiA+IGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91 cmw/dT1odHRwcy0zQV9fZ2l0aHViLgo+ID4gPiA+ID4gPiA+ID4gPiA+IGNvCj4gPiA+ID4gPiA+ ID4gPiA+ID4gbV9NYXJ2ZWxsRW1iZWRkZWRQcm9jZXNzb3JzX2xpbnV4LTJEbWFydmVsbF9jb21t aXRfZDY3MTkKPiA+ID4gPiA+ID4gPiA+ID4gPiBmZGMyCj4gPiA+ID4gPiA+ID4gPiA+ID4gYjMK PiA+ID4gPiA+ID4gPiA+ID4gPiBjYWM1ODA2NGY0MWI1MzFmODY5OTNjOTE5YWE5YSZkPUR3SURh USZjPW5LaldlYzJiNlIwbU95UAo+ID4gPiA+ID4gPiA+ID4gPiA+IGF6N3gKPiA+ID4gPiA+ID4g PiA+ID4gPiB0Zgo+ID4gPiA+ID4gPiA+ID4gPiA+IFEmcj1lVGVOVExFSzUtVHhYY3pqT2NLUGhB TklGdGxCOXBQNGxxOXFoZGxGcndRJm09NW5NTUt5Cj4gPiA+ID4gPiA+ID4gPiA+ID4gS09PTQo+ ID4gPiA+ID4gPiA+ID4gPiA+IDNYCj4gPiA+ID4gPiA+ID4gPiA+ID4gZE1lX1BlclpSeDhMNy1E N01rV2hDbDdHeHBYVFBpb3RWZjFUUjRqOHYzYnBqUW1SS0NMQyZzPWIKPiA+ID4gPiA+ID4gPiA+ ID4gPiA5Y0RLIGVtIHQ3ME9pVEpGNktYajB5U3pieHBzQl9udXRlWEpFODd2aWE4MCZlPQo+ID4g PiA+ID4gPiA+ID4gPiA+IGluIGxpbnV4LW1hcnZlbGwuCj4gPiA+ID4gPiA+ID4gPiA+ID4gWW91 ciBwYXRjaCB0YWtlcyBhd2F5IHRoZSAxMjAyIG1WIGNvbnN0YW50IGZvciAxLjIgR0h6Cj4gPiA+ ID4gPiA+ID4gPiA+ID4gYmFzZSBDUFUgZnJlcXVlbmN5IGFuZCBpbnN0ZWFkIGFkZHMgY29kZSB0 aGF0IGNvbXB1dGVzCj4gPiA+ID4gPiA+ID4gPiA+ID4gdGhlIHZvbHRhZ2VzIGZyb20gdGhlIHZv bHRhZ2UgZm91bmQgaW4gTDAgQVZTIHJlZ2lzdGVyICh3aGljaCBpcyBmaWxsZWQgaW4gYnkgV1RN SSBmaXJtd2FyZSkuCj4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiBEbyB5 b3Uga25vdyB3aHkgdGhlIGNvZGUgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkgZm9yCj4gPiA+ID4g PiA+ID4gPiA+ID4gc29tZQo+ID4gPiA+ID4gPiA+ID4gPiA+IDEuMiBHSHogYm9hcmRzPyBEbyB3 ZSBuZWVkIHRvIGZvcmNlIHRoZSBMMCB2b2x0YWdlIHRvCj4gPiA+ID4gPiA+ID4gPiA+ID4gMTIw MiBtViBpZiBpdCBpcyBsb3dlciwgb3Igc29tZXRoaW5nPwo+ID4gPiA+ID4gPiA+ID4gPiA+IC0t LQo+ID4gPiA+ID4gPiA+ID4gPiA+ICBkcml2ZXJzL2NwdWZyZXEvYXJtYWRhLTM3eHgtY3B1ZnJl cS5jIHwgNiArKysrKy0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDUgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3B1ZnJlcS9hcm1hZGEtMzd4eC1jcHVmcmVx LmMKPiA+ID4gPiA+ID4gPiA+ID4gPiBiL2RyaXZlcnMvY3B1ZnJlcS9hcm1hZGEtMzd4eC1jcHVm cmVxLmMKPiA+ID4gPiA+ID4gPiA+ID4gPiBpbmRleCAzZmM5OGEzZmZkOTEuLmMxMGZjMzNiMjli MSAxMDA2NDQKPiA+ID4gPiA+ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2NwdWZyZXEvYXJtYWRh LTM3eHgtY3B1ZnJlcS5jCj4gPiA+ID4gPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9jcHVmcmVx L2FybWFkYS0zN3h4LWNwdWZyZXEuYwo+ID4gPiA+ID4gPiA+ID4gPiA+IEBAIC0xMDQsNyArMTA0 LDExIEBAIHN0cnVjdCBhcm1hZGFfMzd4eF9kdmZzIHsgIH07Cj4gPiA+ID4gPiA+ID4gPiA+ID4K PiA+ID4gPiA+ID4gPiA+ID4gPiAgc3RhdGljIHN0cnVjdCBhcm1hZGFfMzd4eF9kdmZzIGFybWFk YV8zN3h4X2R2ZnNbXSA9IHsKPiA+ID4gPiA+ID4gPiA+ID4gPiAtIHsuY3B1X2ZyZXFfbWF4ID0g MTIwMCoxMDAwKjEwMDAsIC5kaXZpZGVyID0gezEsIDIsIDQsCj4gPiA+ID4gPiA+ID4gPiA+ID4g Nn0gfSwKPiA+ID4gPiA+ID4gPiA+ID4gPiArIC8qCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgKiBU aGUgY3B1ZnJlcSBzY2FsaW5nIGZvciAxLjIgR0h6IHZhcmlhbnQgb2YgdGhlIFNPQwo+ID4gPiA+ ID4gPiA+ID4gPiA+ICtpcyBjdXJyZW50bHkKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAqIHVuc3Rh YmxlIGJlY2F1c2Ugd2UgZG8gbm90IGtub3cgaG93IHRvIGNvbmZpZ3VyZSBpdCBwcm9wZXJseS4K PiA+ID4gPiA+ID4gPiA+ID4gPiArICAqLwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgLyogey5jcHVf ZnJlcV9tYXggPSAxMjAwKjEwMDAqMTAwMCwgLmRpdmlkZXIgPSB7MSwgMiwKPiA+ID4gPiA+ID4g PiA+ID4gPiArNCwgNn0gfSwgKi8KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICB7LmNwdV9mcmVxX21h eCA9IDEwMDAqMTAwMCoxMDAwLCAuZGl2aWRlciA9IHsxLCAyLCA0LCA1fSB9LAo+ID4gPiA+ID4g PiA+ID4gPiA+ICAgIHsuY3B1X2ZyZXFfbWF4ID0gODAwKjEwMDAqMTAwMCwgIC5kaXZpZGVyID0g ezEsIDIsIDMsIDR9IH0sCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgey5jcHVfZnJlcV9tYXggPSA2 MDAqMTAwMCoxMDAwLCAgLmRpdmlkZXIgPSB7MiwgNCwgNSwKPiA+ID4gPiA+ID4gPiA+ID4gPiA2 fSB9LAo+ID4gPiA+ID4gPiA+ID4gPiA+IC0tCj4gPiA+ID4gPiA+ID4gPiA+ID4gMi4zMS4xCj4g PiA+ID4gPiA+ID4gPiA+ID4KPiA+Cj4gPgo+ID4KPiA+IC0tCj4gPiBSb2JlcnQgTWFya28KPiA+ IFN0YWZmIEVtYmVkZGVkIExpbnV4IEVuZ2luZWVyCj4gPiBTYXJ0dXJhIEx0ZC4KPiA+IExlbmRh dnNrYSB1bGljYSAxNmEKPiA+IDEwMDAwIFphZ3JlYiwgQ3JvYXRpYQo+ID4gRW1haWw6IHJvYmVy dC5tYXJrb0BzYXJ0dXJhLmhyCj4gPiBXZWI6IGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50 LmNvbS92Mi91cmw/dT1odHRwLTNBX193d3cuc2FydHVyYS5ociZkPUR3SUZhUSZjPW5LaldlYzJi NlIwbU95UGF6N3h0ZlEmcj1lVGVOVExFSzUtVHhYY3pqT2NLUGhBTklGdGxCOXBQNGxxOXFoZGxG cndRJm09dTM5bjdYUEJkUVZhb2F2aU0zMlFjRmFpTzBLRHMzQlZ6a2VGLTR6cnFQS0VsTkgzaWdI OUtxRUtmeFNLTHotSCZzPV9hQm9rVEVUTlZ6VHJIcWV3dXByNFBlTHVzQk5mN0xHclRtakkyaHBw RmsmZT0KPiAKPiAKPiAKPiAtLSAKPiBSb2JlcnQgTWFya28KPiBTdGFmZiBFbWJlZGRlZCBMaW51 eCBFbmdpbmVlcgo+IFNhcnR1cmEgTHRkLgo+IExlbmRhdnNrYSB1bGljYSAxNmEKPiAxMDAwMCBa YWdyZWIsIENyb2F0aWEKPiBFbWFpbDogcm9iZXJ0Lm1hcmtvQHNhcnR1cmEuaHIKPiBXZWI6IHd3 dy5zYXJ0dXJhLmhyCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3Rz LmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1hcm0ta2VybmVsCg==