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 98FA8C25B08 for ; Wed, 17 Aug 2022 23:10:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231510AbiHQXKP (ORCPT ); Wed, 17 Aug 2022 19:10:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39994 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231496AbiHQXKO (ORCPT ); Wed, 17 Aug 2022 19:10:14 -0400 Received: from sin.source.kernel.org (sin.source.kernel.org [IPv6:2604:1380:40e1:4800::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AEF53ACA00 for ; Wed, 17 Aug 2022 16:10:12 -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 sin.source.kernel.org (Postfix) with ESMTPS id B5D9CCE1D96 for ; Wed, 17 Aug 2022 23:10:10 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 80B69C433D6; Wed, 17 Aug 2022 23:10:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1660777808; bh=g/T+cdMgv4NiyqVOdny6bpWQSlPLHgRqxYEakmMgjrc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=JNukOTKmkDKHJN7BdO0NhwaER/vPrN0RWG+7912wGzM4TUNtTuV0vml5A2x2nz/XC oxbSKj9kOYV86vuamJSxqRZXbXfl1QULlNXYmiHb8Ga4ytaoCET1u07oxmw8U0a2Tj pMwxIXIOM4LmHn1dazBlHxkNbUpOEbM1o4Yrnsna6pjXUNYhruQP8m2e5z7FOdZ6EN V2FouYW6QTmClyGagL/V4Zw5Rh6XKn7xycv+FkD58Xr3LDjtYkvxSgYEF1JJqPoZlo /ptZ+JR4q6vjLHxctnZoX6xxRuObz3lGie27SlanGHi+hRNWSciETBRqORUCDATs1o ZuwNPjjY+/Oew== Received: by pali.im (Postfix) id 1458477A; Thu, 18 Aug 2022 01:10:06 +0200 (CEST) Date: Thu, 18 Aug 2022 01:10:05 +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: <20220817231005.5nonyify5os6opah@pali> References: <20220801141254.ojljy2lewgrkga3f@pali> <20220801175645.bnknpfg26acbat7c@pali> <20220802171736.n7jwtbssnwr5hojv@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 Wednesday 17 August 2022 11:40:32 Robert Marko wrote: > On Tue, Aug 2, 2022 at 7:17 PM Pali Rohár wrote: > > > > 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. > > Ok, finally got time to try it. > I am now printing from the clk driver instead, hopefully in the right places: > https://gist.github.com/robimarko/d297c81f70ef9620c830435bad8a6a8d > > Trying to enlarge the wait to 100ms does not help. Could you provide also diff which you applied to driver? > Regards, > Robert > > > > > 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 > > > > -- > 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 6F372C25B08 for ; Wed, 17 Aug 2022 23:11:24 +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=1NoQE70pJ0NDIXMgBjmVI/k8772hlX4MoiZE33ZGEGw=; b=shhHIohZxoU0TS /1BXuDKt0fSoN/BnfJa8Pds/as+h4tkkrwd9t/Vm/ba0F+8oD0Ji5zJKmpxIxyQ/hSNvUFq3gXzYZ 2ZrX1FLCl7oXMALQV3xBF9THb8/0h/yLU4YH285P5j6IkN7nBB8m1oZ0g120w6x73v6Gt2XAWQxdl 1SRj1sou5i0yCTh+KpUb5tYlBgsxC6Ak4eEpm9sv4w/N0Nz5SarpX/+FMELISYBoXWAPgFtNTDrjU p6IJ1PKWLhv0iIsJw9Z1KtLvzVmxNuQEGx7B4sDybUwgDGZO1hYCAzeDqhttm8jtdzkSeZZmBA82m ajRkF8X2NO36OYpGpJXQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oOSAw-008IpA-A7; Wed, 17 Aug 2022 23:10:14 +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 1oOSAs-008Ikt-AA for linux-arm-kernel@lists.infradead.org; Wed, 17 Aug 2022 23:10:13 +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 7917460EF0; Wed, 17 Aug 2022 23:10:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 80B69C433D6; Wed, 17 Aug 2022 23:10:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1660777808; bh=g/T+cdMgv4NiyqVOdny6bpWQSlPLHgRqxYEakmMgjrc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=JNukOTKmkDKHJN7BdO0NhwaER/vPrN0RWG+7912wGzM4TUNtTuV0vml5A2x2nz/XC oxbSKj9kOYV86vuamJSxqRZXbXfl1QULlNXYmiHb8Ga4ytaoCET1u07oxmw8U0a2Tj pMwxIXIOM4LmHn1dazBlHxkNbUpOEbM1o4Yrnsna6pjXUNYhruQP8m2e5z7FOdZ6EN V2FouYW6QTmClyGagL/V4Zw5Rh6XKn7xycv+FkD58Xr3LDjtYkvxSgYEF1JJqPoZlo /ptZ+JR4q6vjLHxctnZoX6xxRuObz3lGie27SlanGHi+hRNWSciETBRqORUCDATs1o ZuwNPjjY+/Oew== Received: by pali.im (Postfix) id 1458477A; Thu, 18 Aug 2022 01:10:06 +0200 (CEST) Date: Thu, 18 Aug 2022 01:10:05 +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: <20220817231005.5nonyify5os6opah@pali> References: <20220801141254.ojljy2lewgrkga3f@pali> <20220801175645.bnknpfg26acbat7c@pali> <20220802171736.n7jwtbssnwr5hojv@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-20220817_161010_469006_2541D4B6 X-CRM114-Status: GOOD ( 59.95 ) 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 T24gV2VkbmVzZGF5IDE3IEF1Z3VzdCAyMDIyIDExOjQwOjMyIFJvYmVydCBNYXJrbyB3cm90ZToK PiBPbiBUdWUsIEF1ZyAyLCAyMDIyIGF0IDc6MTcgUE0gUGFsaSBSb2jDoXIgPHBhbGlAa2VybmVs Lm9yZz4gd3JvdGU6Cj4gPgo+ID4gT24gVHVlc2RheSAwMiBBdWd1c3QgMjAyMiAxODo1NjowNyBS b2JlcnQgTWFya28gd3JvdGU6Cj4gPiA+IE9uIFR1ZSwgQXVnIDIsIDIwMjIgYXQgNjo1MiBQTSBF bGFkIE5hY2htYW4gPGVuYWNobWFuQG1hcnZlbGwuY29tPiB3cm90ZToKPiA+ID4gPgo+ID4gPiA+ IEhpLAo+ID4gPiA+Cj4gPiA+ID4gVW5sZXNzIHRoZSBsb2dzIGFyZSBtaXNsZWFkaW5nLCB0aGVu IEkgc2VlIGhlcmU6Cj4gPiA+ID4KPiA+ID4gPiBjcHUgY3B1MDogX3NldF9vcHA6IHN3aXRjaGlu ZyBPUFA6IEZyZXEgMjAwMDAwMDAwIC0+IDEyMDAwMDAwMDAgSHosIExldmVsIDAgLT4gMCwgQncg MCAtPiAwCj4gPiA+ID4KPiA+ID4gPiBXaGljaCB2aW9sYXRlcyB0aGUgZXJyYXRhLgo+ID4gPiA+ IElmIHRoZXJlIGlzIGFuIGludGVyaW0gc3RlcCBpbiBiZXR3ZWVuLCBJIHRoaW5rIGl0IHNob3Vs ZCBiZSBwcmludGVkIG91dCBpbiB0aGUgZGVidWcgc28gd2UgY2FuIGNsZWFybHkgdW5kZXJzdGFu ZCB3aGF0IGlzIHRoZSBpbnRlcmltIGZyZXF1ZW5jeSBzZXR0aW5nIGJldHdlZW4gMjAwIGFuZCAx MjAwIE1Iei4KPiA+ID4KPiA+ID4gVGhpcyBpcyBwcmludGVkIGRpcmVjdGx5IGJ5IHRoZSBfc2V0 X29wcCBmcm9tIHRoZSBjcHVmcmVxIGNvcmUsIHNvIGl0Cj4gPiA+IHNob3VsZCBiZSBhY2N1cmF0 ZS4KPiA+ID4gUGFsaSwgYW0gSSBkb2luZyB0aGlzIGNvcnJlY3RseSBvciBJIG5lZWQgdG8gcHJp bnQgZnJvbSB0aGUgQTNLCj4gPiA+IGNwdWZyZXEgb3IgY2xrIGRyaXZlcnM/Cj4gPgo+ID4gSGVs bG8hIFlvdSBuZWVkIHRvIHByaW50IGl0IGZyb20gYTNrIGNsayBkcml2ZXIuIGNwdWZyZXEgY29y ZSBqdXN0IGFzawo+ID4gZHJpdmVyIHRvIHN3aXRjaCBzcGVlZCBmcm9tIDIwMDAwMDAwMCB0byAx MjAwMDAwMDAwIGFuZCBjbGsgZHJpdmVyIHRoZW4KPiA+IGNoYW5nZSBpdCB3aXRoIGl0cyBvd24g d29ya2Fyb3VuZCBmdW5jdGlvbi4KPiA+Cj4gPiBUaGUgcmVhbCBjaGFuZ2Ugb2YgTGV2ZWwgaXMg ZG9uZSBhdCB0aGVzZSBwbGFjZXM6Cj4gPiBodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20v bGludXgva2VybmVsL2dpdC9zdGFibGUvbGludXguZ2l0L3RyZWUvZHJpdmVycy9jbGsvbXZlYnUv YXJtYWRhLTM3eHgtcGVyaXBoLmM/aD12NS4xOSNuNTQ4Cj4gPiBodHRwczovL2dpdC5rZXJuZWwu b3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9zdGFibGUvbGludXguZ2l0L3RyZWUvZHJpdmVy cy9jbGsvbXZlYnUvYXJtYWRhLTM3eHgtcGVyaXBoLmM/aD12NS4xOSNuNTkyCj4gPgo+ID4gQ2hl Y2sgcGxhY2VzIHdoZXJlIGlzIGRvbmUgd3JpdGUgb3BlcmF0aW9uIHRvIHJlZ2lzdGVyCj4gPiBB Uk1BREFfMzdYWF9OQl9DUFVfTE9BRC4KPiAKPiBPaywgZmluYWxseSBnb3QgdGltZSB0byB0cnkg aXQuCj4gSSBhbSBub3cgcHJpbnRpbmcgZnJvbSB0aGUgY2xrIGRyaXZlciBpbnN0ZWFkLCBob3Bl ZnVsbHkgaW4gdGhlIHJpZ2h0IHBsYWNlczoKPiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9yb2Jp bWFya28vZDI5N2M4MWY3MGVmOTYyMGM4MzA0MzViYWQ4YTZhOGQKPiAKPiBUcnlpbmcgdG8gZW5s YXJnZSB0aGUgd2FpdCB0byAxMDBtcyBkb2VzIG5vdCBoZWxwLgoKQ291bGQgeW91IHByb3ZpZGUg YWxzbyBkaWZmIHdoaWNoIHlvdSBhcHBsaWVkIHRvIGRyaXZlcj8KCj4gUmVnYXJkcywKPiBSb2Jl cnQKPiA+Cj4gPiA+IFJlZ2FyZHMsCj4gPiA+IFJvYmVydAo+ID4gPiA+Cj4gPiA+ID4gRWxhZC4K PiA+ID4gPgo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPiA+ID4gRnJvbTog Um9iZXJ0IE1hcmtvIDxyb2JlcnQubWFya29Ac2FydHVyYS5ocj4KPiA+ID4gPiBTZW50OiBUdWVz ZGF5LCBBdWd1c3QgMiwgMjAyMiA3OjQyIFBNCj4gPiA+ID4gVG86IEVsYWQgTmFjaG1hbiA8ZW5h Y2htYW5AbWFydmVsbC5jb20+Cj4gPiA+ID4gQ2M6IFBhbGkgUm9ow6FyIDxwYWxpQGtlcm5lbC5v cmc+OyBXb2pjaWVjaCBCYXJ0Y3phayA8d2JhcnRjemFrQG1hcnZlbGwuY29tPjsgTWFyZWsgQmVo w7puIDxrYWJlbEBrZXJuZWwub3JnPjsgVmlyZXNoIEt1bWFyIDx2aXJlc2gua3VtYXJAbGluYXJv Lm9yZz47IEdyZWdvcnkgQ0xFTUVOVCA8Z3JlZ29yeS5jbGVtZW50QGJvb3RsaW4uY29tPjsgVG9t YXN6IE1hY2llaiBOb3dhayA8dG1uNTA1QGdtYWlsLmNvbT47IEFuZGVycyBUcmllciBPbGVzZW4g PGFuZGVycy50cmllci5vbGVzZW5AZ21haWwuY29tPjsgUGhpbGlwIFNvYXJlcyA8cGhpbGlwc0Bu ZXRpc2Vuc2UuY29tPjsgbGludXgtcG1Admdlci5rZXJuZWwub3JnOyBTZWJhc3RpYW4gSGVzc2Vs YmFydGggPHNlYmFzdGlhbi5oZXNzZWxiYXJ0aEBnbWFpbC5jb20+OyBsaW51eC1hcm0ta2VybmVs QGxpc3RzLmluZnJhZGVhZC5vcmc7IG5uZXQgPG5uZXRAZmFzdG1haWwuZm0+OyBHw6lyYWxkIEtl cm1hIDxnYW5kYWxmQGdrMi5uZXQ+Cj4gPiA+ID4gU3ViamVjdDogUmU6IFtFWFRdIFJlOiBbUEFU Q0ggdjJdIGNwdWZyZXE6IGFybWFkYS0zN3h4OiBmb3JiaWQgY3B1ZnJlcSBmb3IgMS4yIEdIeiB2 YXJpYW50Cj4gPiA+ID4KPiA+ID4gPiBPbiBNb24sIEF1ZyAxLCAyMDIyIGF0IDg6NTAgUE0gRWxh ZCBOYWNobWFuIDxlbmFjaG1hbkBtYXJ2ZWxsLmNvbT4gd3JvdGU6Cj4gPiA+ID4gPgo+ID4gPiA+ ID4gSGkgUGFsaSwKPiA+ID4gPiA+Cj4gPiA+ID4gPiBDb3VsZCB5b3UgcGxlYXNlIHByb3ZpZGUg dGhlIGNyYXNoIGR1bXAgLyBjYWxsIHRyYWNlPwo+ID4gPiA+ID4KPiA+ID4gPiA+IEFsc28sIGlm IHlvdSBjYW4gcGxlYXNlIGFubm90YXRlIHdpdGggcHJpbnRrIHRoZSBleGFjdCB2b2x0YWdlL2Zy ZXF1ZW5jeSBjaGFuZ2VzIHRha2VuIGJ5IHRoZSBkcml2ZXIsIHVwIHRvIHRoZSBwb2ludCBvZiB0 aGUgY3Jhc2g/Cj4gPiA+ID4gPgo+ID4gPiA+ID4gVGhpcyB3aWxsIGhlbHAgdW5kZXJzdGFuZCB0 aGUgc2VxdWVuY2Ugb2YgZXZlbnRzIGxlYWRpbmcgdG8gdGhlIGNyYXNoLgo+ID4gPiA+ID4KPiA+ ID4gPiA+IFRoYW5rcywKPiA+ID4gPiA+Cj4gPiA+ID4gPiBFbGFkLgo+ID4gPiA+Cj4gPiA+ID4K PiA+ID4gPiBIaSBFbGFkLAo+ID4gPiA+IEhlcmUgYXJlIDIgYm9vdGxvZ3MsIGJ1dCBJIGRvbnQg dGhpbmsgdGhleSBhcmUgb2YgYW55IHVzZSBhcyB0aGUgdHJhY2VzIGFyZSByYXRoZXIgcmFuZG9t IGFuZCB0aGV5IGFyZSBhbHdheXMgZGlmZmVyZW50LCBsaWtlIGEgcmVhbCB2b2x0YWdlIGlzc3Vl Ogo+ID4gPiA+IGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/dT1odHRw cy0zQV9fZ2lzdC5naXRodWIuY29tX3JvYmltYXJrb18xMTMyMTZmNTY2Y2NmMTU5ZGZkMzM5MzM4 ODlkYTA0MiZkPUR3SUZhUSZjPW5LaldlYzJiNlIwbU95UGF6N3h0ZlEmcj1lVGVOVExFSzUtVHhY Y3pqT2NLUGhBTklGdGxCOXBQNGxxOXFoZGxGcndRJm09dTM5bjdYUEJkUVZhb2F2aU0zMlFjRmFp TzBLRHMzQlZ6a2VGLTR6cnFQS0VsTkgzaWdIOUtxRUtmeFNLTHotSCZzPWp2bVIzTXlrNDQzRGVs dk5adjFPa2htcHFuTXA5WThtdnp6WXoyZzEzck0mZT0KPiA+ID4gPiBodHRwczovL3VybGRlZmVu c2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cHMtM0FfX2dpc3QuZ2l0aHViLmNvbV9yb2Jp bWFya29fOTkwZDc1Nzg3MGQ0NGEzYzVhY2RmZWI5NTc1NDc3MDUmZD1Ed0lGYVEmYz1uS2pXZWMy YjZSMG1PeVBhejd4dGZRJnI9ZVRlTlRMRUs1LVR4WGN6ak9jS1BoQU5JRnRsQjlwUDRscTlxaGRs RnJ3USZtPXUzOW43WFBCZFFWYW9hdmlNMzJRY0ZhaU8wS0RzM0JWemtlRi00enJxUEtFbE5IM2ln SDlLcUVLZnhTS0x6LUgmcz1Yck1GZUpwRUdPNUE0cklLamtITE5jNE1IelBHT0JLZU9rdERXQ2JR TUFjJmU9Cj4gPiA+ID4KPiA+ID4gPiBIZXJlIGlzIGEgYm9vdGxlZyB3aXRoIHRoZSBmcmVxdWVu Y3kgY2hhbmdlcywgT1BQIHBvaW50cyB0aGF0IGFyZSBzZXQgYnkgdGhlIENQVUZyZXEgZHJpdmVy IGFyZSBhbHNvIGhlcmU6Cj4gPiA+ID4gaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29t L3YyL3VybD91PWh0dHBzLTNBX19naXN0LmdpdGh1Yi5jb21fcm9iaW1hcmtvXzFhODFiMGM2ZTkz NzM1Yjc1ZmY0NDYxZDQwNWM4MDMzJmQ9RHdJRmFRJmM9bktqV2VjMmI2UjBtT3lQYXo3eHRmUSZy PWVUZU5UTEVLNS1UeFhjempPY0tQaEFOSUZ0bEI5cFA0bHE5cWhkbEZyd1EmbT11MzluN1hQQmRR VmFvYXZpTTMyUWNGYWlPMEtEczNCVnprZUYtNHpycVBLRWxOSDNpZ0g5S3FFS2Z4U0tMei1IJnM9 MDJsanFoUUFkWmtpLUp3RFlOUEthU3RtelNraHVpdEJSUDZSMTdpT1pxQSZlPQo+ID4gPiA+Cj4g PiA+ID4gSSBhbSBzdGlsbCBkaWdnaW5nIHRvIHByaW50IHRoZSB2b2x0YWdlIGNoYW5nZXMgYXMg X3NldF9vcHBfdm9sdGFnZSBpcyBub3QgYmVpbmcgdXNlZC4KPiA+ID4gPgo+ID4gPiA+IFJlZ2Fy ZHMsCj4gPiA+ID4gUm9iZXJ0Cj4gPiA+ID4gPgo+ID4gPiA+ID4KPiA+ID4gPiA+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4gPiA+ID4gPiDXnteQ16o6IFBhbGkgUm9ow6FyIDxw YWxpQGtlcm5lbC5vcmc+Cj4gPiA+ID4gPiDigI/igI/XoNep15zXlzog15nXldedINep16DXmSAw MSDXkNeV15LXldeh15ggMjAyMiAyMDo1Ngo+ID4gPiA+ID4g4oCP4oCP15DXnDogRWxhZCBOYWNo bWFuIDxlbmFjaG1hbkBtYXJ2ZWxsLmNvbT4KPiA+ID4gPiA+INei15XXqtenOiBXb2pjaWVjaCBC YXJ0Y3phayA8d2JhcnRjemFrQG1hcnZlbGwuY29tPjsgTWFyZWsgQmVow7puCj4gPiA+ID4gPiA8 a2FiZWxAa2VybmVsLm9yZz47IFZpcmVzaCBLdW1hciA8dmlyZXNoLmt1bWFyQGxpbmFyby5vcmc+ OyBHcmVnb3J5Cj4gPiA+ID4gPiBDTEVNRU5UIDxncmVnb3J5LmNsZW1lbnRAYm9vdGxpbi5jb20+ OyBSb2JlcnQgTWFya28KPiA+ID4gPiA+IDxyb2JlcnQubWFya29Ac2FydHVyYS5ocj47IFRvbWFz eiBNYWNpZWogTm93YWsgPHRtbjUwNUBnbWFpbC5jb20+Owo+ID4gPiA+ID4gQW5kZXJzIFRyaWVy IE9sZXNlbiA8YW5kZXJzLnRyaWVyLm9sZXNlbkBnbWFpbC5jb20+OyBQaGlsaXAgU29hcmVzCj4g PiA+ID4gPiA8cGhpbGlwc0BuZXRpc2Vuc2UuY29tPjsgbGludXgtcG1Admdlci5rZXJuZWwub3Jn Cj4gPiA+ID4gPiA8bGludXgtcG1Admdlci5rZXJuZWwub3JnPjsgU2ViYXN0aWFuIEhlc3NlbGJh cnRoCj4gPiA+ID4gPiA8c2ViYXN0aWFuLmhlc3NlbGJhcnRoQGdtYWlsLmNvbT47Cj4gPiA+ID4g PiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKPiA+ID4gPiA+IDxsaW51eC1h cm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmc+OyBubmV0IDxubmV0QGZhc3RtYWlsLmZtPjsK PiA+ID4gPiA+IEfDqXJhbGQgS2VybWEgPGdhbmRhbGZAZ2syLm5ldD4KPiA+ID4gPiA+IOKAj+KA j9eg15XXqdeQOiBSZTogW0VYVF0gUmU6IFtQQVRDSCB2Ml0gY3B1ZnJlcTogYXJtYWRhLTM3eHg6 IGZvcmJpZCBjcHVmcmVxCj4gPiA+ID4gPiBmb3IgMS4yIEdIeiB2YXJpYW50Cj4gPiA+ID4gPgo+ ID4gPiA+ID4gSGVsbG8gRWxhZCEKPiA+ID4gPiA+Cj4gPiA+ID4gPiBSb2JlcnQgKGluIENDKSB0 ZXN0ZWQgdGhpcyBwcm9wb3NlZCBjaGFuZ2UuIEJ1dCBpbmNyZWFzaW5nIGRlbGF5IHRvCj4gPiA+ ID4gPiAxMDBtcyBkb2VzIG5vdCBoZWxwLiBDUFUgc3RpbGwgY3Jhc2hlcyBlYXJseSBkdXJpbmcg Ym9vdC4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBPbiBNb25kYXkgMDEgQXVndXN0IDIwMjIgMTQ6MTU6 MjcgRWxhZCBOYWNobWFuIHdyb3RlOgo+ID4gPiA+ID4gPiBIaSwKPiA+ID4gPiA+ID4KPiA+ID4g PiA+ID4gQXMgZmlyc3Qgc3RlcCwgcGxlYXNlIHRyeSB0byBpbmNyZWFzZSB0aGUgZGVsYXkgdG8g MTAwbXMsIHNlZSBpZiBpdCBoZWxwcy4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gRWxhZC4KPiA+ ID4gPiA+ID4KPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+ID4gPiA+ ID4gRnJvbTogUGFsaSBSb2jDoXIgPHBhbGlAa2VybmVsLm9yZz4KPiA+ID4gPiA+ID4gU2VudDog TW9uZGF5LCBBdWd1c3QgMSwgMjAyMiA1OjEzIFBNCj4gPiA+ID4gPiA+IFRvOiBFbGFkIE5hY2ht YW4gPGVuYWNobWFuQG1hcnZlbGwuY29tPgo+ID4gPiA+ID4gPiBDYzogV29qY2llY2ggQmFydGN6 YWsgPHdiYXJ0Y3pha0BtYXJ2ZWxsLmNvbT47IE1hcmVrIEJlaMO6bgo+ID4gPiA+ID4gPiA8a2Fi ZWxAa2VybmVsLm9yZz47IFZpcmVzaCBLdW1hciA8dmlyZXNoLmt1bWFyQGxpbmFyby5vcmc+OyBH cmVnb3J5Cj4gPiA+ID4gPiA+IENMRU1FTlQgPGdyZWdvcnkuY2xlbWVudEBib290bGluLmNvbT47 IFJvYmVydCBNYXJrbwo+ID4gPiA+ID4gPiA8cm9iZXJ0Lm1hcmtvQHNhcnR1cmEuaHI+OyBUb21h c3ogTWFjaWVqIE5vd2FrIDx0bW41MDVAZ21haWwuY29tPjsKPiA+ID4gPiA+ID4gQW5kZXJzIFRy aWVyIE9sZXNlbiA8YW5kZXJzLnRyaWVyLm9sZXNlbkBnbWFpbC5jb20+OyBQaGlsaXAgU29hcmVz Cj4gPiA+ID4gPiA+IDxwaGlsaXBzQG5ldGlzZW5zZS5jb20+OyBsaW51eC1wbUB2Z2VyLmtlcm5l bC5vcmc7IFNlYmFzdGlhbgo+ID4gPiA+ID4gPiBIZXNzZWxiYXJ0aCA8c2ViYXN0aWFuLmhlc3Nl bGJhcnRoQGdtYWlsLmNvbT47Cj4gPiA+ID4gPiA+IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5m cmFkZWFkLm9yZzsgbm5ldCA8bm5ldEBmYXN0bWFpbC5mbT4KPiA+ID4gPiA+ID4gU3ViamVjdDog UmU6IFtFWFRdIFJlOiBbUEFUQ0ggdjJdIGNwdWZyZXE6IGFybWFkYS0zN3h4OiBmb3JiaWQKPiA+ ID4gPiA+ID4gY3B1ZnJlcSBmb3IgMS4yIEdIeiB2YXJpYW50Cj4gPiA+ID4gPiA+Cj4gPiA+ID4g PiA+IEhlbGxvIEVsYWQgYW5kIHRoYW5rIHlvdSBmb3IgcmVzcG9uc2UhCj4gPiA+ID4gPiA+Cj4g PiA+ID4gPiA+IFRoaXMgZXJyYXRhIGlzIGFscmVhZHkgaW1wbGVtZW50ZWQgaW4gdGhlIGtlcm5l bCBmb3IgYSBsb25nZXIgdGltZSBieSBHcmVnb3J5J3MgY29tbWl0Ogo+ID4gPiA+ID4gPiBodHRw czovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cHMtM0FfX2dpdC5rZXJu ZWwub3JnXwo+ID4gPiA+ID4gPiBwdWJfc2NtX2xpbnV4X2tlcm5lbF9naXRfc3RhYmxlX2xpbnV4 LmdpdF9jb21taXRfLTNGaWQtM0Q2MWM0MGYzNWY1Ywo+ID4gPiA+ID4gPiBkNmY2N2NjYmQ3MzE5 YTE3MjJlYjc4YzgxNTk4OSZkPUR3SURhUSZjPW5LaldlYzJiNlIwbU95UGF6N3h0ZlEmcj1lVAo+ ID4gPiA+ID4gPiBlTlRMRUs1LVR4WGN6ak9jS1BoQU5JRnRsQjlwUDRscTlxaGRsRnJ3USZtPS1F LUF3QjlTVFZ4OHhnYXBhQ05TcERKSQo+ID4gPiA+ID4gPiBQUG5rcnpyV2taWDB1RnoyYmZOR0Zu Y2taZWxUX1hhb3ZVVVByTklnJnM9NEVVY2REV0JfZ3FuRVY4blJFUWk5RV9peQo+ID4gPiA+ID4g PiBtNWJqb002bDV6THJiaF9HVnMmZT0KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gVGhlcmUgaXMg YWxzbyAyMG1zIGRlbGF5IGFmdGVyIEwyL0wzIHRvIEwxIHN0YXRlIHN3aXRjaC4KPiA+ID4gPiA+ ID4KPiA+ID4gPiA+ID4gQW55IGlkZWEgd2hhdCBjb3VsZCBiZSB3cm9uZyBoZXJlPyBPciBpcyBz b21ldGhpbmcgbW9yZSB0aGFuIGFib3ZlIGNvbW1pdCBuZWVkZWQgdG8gY29ycmVjdGx5IGltcGxl bWVudCB0aGF0IGVycmF0YT8KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gT24gTW9uZGF5IDAxIEF1 Z3VzdCAyMDIyIDE0OjAxOjA3IEVsYWQgTmFjaG1hbiB3cm90ZToKPiA+ID4gPiA+ID4gPiBIaSBQ YWxpLAo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gVGhlcmUgaXMgYW4gZXJyYXRhIGZvciB0 aGF0Lgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gIgo+ID4gPiA+ID4gPiA+IFN3aXRjaGlu ZyBmcm9tIEwyL0wzIHN0YXRlICgyMDAvMzAwIE1IeikgdG8gTDAgc3RhdGUgKDEyMDAgTUh6KQo+ ID4gPiA+ID4gPiA+IHJlcXVpcmVzIHN1ZGRlbiBjaGFuZ2VzIG9mIFZERCBzdXBwbHksIGFuZCBp dCByZXF1aXJlcyB0aW1lIHRvCj4gPiA+ID4gPiA+ID4gc3RhYmlsaXplIHRoZSBWREQgc3VwcGx5 LiBUaGUgc29sdXRpb24gaXMgdG8gdXNlIGdyYWR1YWwgc3dpdGNoaW5nIGZyb20gTDIvTDMgdG8g TDEgYW5kIHRoZW4gTDEgdG8gTDAgc3RhdGUuCj4gPiA+ID4gPiA+ID4gIgo+ID4gPiA+ID4gPiA+ Cj4gPiA+ID4gPiA+ID4gSSB3b3VsZCBhbHNvIGFkZCBhZGRpdGlvbmFsIGRlbGF5IGZvciB0aGUg VkREIHN1cHBseSBzdGFiaWxpemF0aW9uLgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gRllJ LAo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gRWxhZC4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPiA+ID4gPiA+ID4gRnJvbTogUGFs aSBSb2jDoXIgPHBhbGlAa2VybmVsLm9yZz4KPiA+ID4gPiA+ID4gPiBTZW50OiBNb25kYXksIEF1 Z3VzdCAxLCAyMDIyIDM6MzYgUE0KPiA+ID4gPiA+ID4gPiBUbzogRWxhZCBOYWNobWFuIDxlbmFj aG1hbkBtYXJ2ZWxsLmNvbT47IFdvamNpZWNoIEJhcnRjemFrCj4gPiA+ID4gPiA+ID4gPHdiYXJ0 Y3pha0BtYXJ2ZWxsLmNvbT4KPiA+ID4gPiA+ID4gPiBDYzogTWFyZWsgQmVow7puIDxrYWJlbEBr ZXJuZWwub3JnPjsgVmlyZXNoIEt1bWFyCj4gPiA+ID4gPiA+ID4gPHZpcmVzaC5rdW1hckBsaW5h cm8ub3JnPjsgR3JlZ29yeSBDTEVNRU5UCj4gPiA+ID4gPiA+ID4gPGdyZWdvcnkuY2xlbWVudEBi b290bGluLmNvbT47IFJvYmVydCBNYXJrbwo+ID4gPiA+ID4gPiA+IDxyb2JlcnQubWFya29Ac2Fy dHVyYS5ocj47IFRvbWFzeiBNYWNpZWogTm93YWsgPHRtbjUwNUBnbWFpbC5jb20+Owo+ID4gPiA+ ID4gPiA+IEFuZGVycyBUcmllciBPbGVzZW4gPGFuZGVycy50cmllci5vbGVzZW5AZ21haWwuY29t PjsgUGhpbGlwIFNvYXJlcwo+ID4gPiA+ID4gPiA+IDxwaGlsaXBzQG5ldGlzZW5zZS5jb20+OyBs aW51eC1wbUB2Z2VyLmtlcm5lbC5vcmc7IFNlYmFzdGlhbgo+ID4gPiA+ID4gPiA+IEhlc3NlbGJh cnRoIDxzZWJhc3RpYW4uaGVzc2VsYmFydGhAZ21haWwuY29tPjsKPiA+ID4gPiA+ID4gPiBsaW51 eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmc7IG5uZXQgPG5uZXRAZmFzdG1haWwuZm0+ Cj4gPiA+ID4gPiA+ID4gU3ViamVjdDogW0VYVF0gUmU6IFtQQVRDSCB2Ml0gY3B1ZnJlcTogYXJt YWRhLTM3eHg6IGZvcmJpZCBjcHVmcmVxCj4gPiA+ID4gPiA+ID4gZm9yCj4gPiA+ID4gPiA+ID4g MS4yIEdIeiB2YXJpYW50Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBFeHRlcm5hbCBFbWFp bAo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4gPiA+ID4gLS0t LQo+ID4gPiA+ID4gPiA+ICsgRWxhZCBhbmQgV29qY2llY2ggZnJvbSBNYXJ2ZWxsCj4gPiA+ID4g PiA+ID4KPiA+ID4gPiA+ID4gPiBDb3VsZCB5b3UgcGxlYXNlIGxvb2sgYXQgdGhpcyBpc3N1ZSBh bmQvb3IgZm9yd2FyZCBpdCB0byByZWxldmFudCBNYXJ2ZWxsIHRlYW0/Cj4gPiA+ID4gPiA+ID4K PiA+ID4gPiA+ID4gPiBNYWludGFpbmVyIFZpcmVzaCBhbHJlYWR5IHdyb3RlIHRoYXQgd2UgY2Fu bm90IGhhbmcgZm9yZXZlciBmb3IgTWFydmVsbCBhbmQgcGF0Y2ggd2hpY2ggZGlzYWJsZXMgc3Vw cG9ydCBmb3IgMS4yIEdIeiB3YXMgbWVyZ2VkOgo+ID4gPiA+ID4gPiA+IGh0dHBzOi8vdXJsZGVm ZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/dT1odHRwcy0zQV9fbG9yZS5rZXJuZWwubwo+ID4g PiA+ID4gPiA+IHJnX2wKPiA+ID4gPiA+ID4gPiBpbnV4LTJEcG1fMjAyMTA4MDkwNDAyMjQuajJy dm9wbW1xZGEzdXRjNS00MHZpcmVzaGstMkRpN18mZD1Ed0lEYVEKPiA+ID4gPiA+ID4gPiAmYz1u Cj4gPiA+ID4gPiA+ID4gS2pXZWMyYjZSMG1PeVBhejd4dGZRJnI9ZVRlTlRMRUs1LVR4WGN6ak9j S1BoQU5JRnRsQjlwUDRscTlxaGRsRnJ3Cj4gPiA+ID4gPiA+ID4gUSZtPQo+ID4gPiA+ID4gPiA+ IDVuTU1LeUtPT00zWGRNZV9QZXJaUng4TDctRDdNa1doQ2w3R3hwWFRQaW90VmYxVFI0ajh2M2Jw alFtUktDTEMmcwo+ID4gPiA+ID4gPiA+ID1jWGkgQ1pCeWtuZnoxck9JZ0psNGZKSGwxS0xMUnEy c2hIdWwyLVZQcFlQMCZlPQo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gT24gU3VuZGF5IDA4 IEF1Z3VzdCAyMDIxIDIxOjMwOjI2IFBhbGkgUm9ow6FyIHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4g R2VudGxlIHJlbWluZGVyLiBUaGlzIGlzIHJlYWxseSBzZXJpb3VzIGlzc3VlLiBDb3VsZCB5b3Ug cGxlYXNlIGxvb2sgYXQgaXQ/Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gQWRkaW5n IG1vcmUgTWFydmVsbEVtYmVkZGVkUHJvY2Vzc29ycyBwZW9wbGUgdG8gdGhlIGxvb3A6IEV2YW4s Cj4gPiA+ID4gPiA+ID4gPiBCZW5qYW1pbiBhbiBJZ2FsCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiA+ID4gT24gVGh1cnNkYXkgMTUgSnVseSAyMDIxIDIxOjMzOjIxIFBhbGkgUm9ow6FyIHdy b3RlOgo+ID4gPiA+ID4gPiA+ID4gPiBQaW5nISBHZW50bGUgcmVtaW5kZXIgZm9yIE1hcnZlbGwg cGVvcGxlLgo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBPbiBUaHVyc2RheSAw OCBKdWx5IDIwMjEgMTY6MzQ6NTEgUGFsaSBSb2jDoXIgd3JvdGU6Cj4gPiA+ID4gPiA+ID4gPiA+ ID4gS29uc3RhbnRpbiwgTmFkYXYsIEtlbiwgVmljdG9yLCBKYXNvbjogVGhpcyBpc3N1ZSBpcyBw cmV0dHkKPiA+ID4gPiA+ID4gPiA+ID4gPiBzZXJpb3VzLCBDUFUgb24gMS4yR0h6IEEzNzIwIGlz IGNyYXNoaW5nLiBDb3VsZCB5b3UgcGxlYXNlIGxvb2sgYXQgaXQ/Cj4gPiA+ID4gPiA+ID4gPiA+ ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiBPbiBGcmlkYXkgMDIgSnVseSAyMDIxIDE4OjMwOjM1IFBh bGkgUm9ow6FyIHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gK0phc29uIGZyb20gR2xvYmFs U2NhbGUgYXMgdGhpcyBpc3N1ZSBhZmZlY3RzIEdsb2JhbFNjYWxlIEVzcHJlc3NvYmluIFVsdHJh IGFuZCBWNyAxLjIgR0h6IGJvYXJkcy4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiBPbiBUaHVyc2RheSAwMSBKdWx5IDIwMjEgMDA6NTY6MDEgTWFyZWsgQmVow7pu IHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGUgMS4yIEdIeiB2YXJpYW50IG9mIHRo ZSBBcm1hZGEgMzcyMCBTT0MgaXMgdW5zdGFibGUKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gd2l0 aAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBEVkZTOiB3aGVuIHRoZSBTT0MgYm9vdHMsIHRoZSBX VE1JIGZpcm13YXJlIHNldHMgY2xvY2tzCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGFuZCBBVlMg dmFsdWVzIHRoYXQgd29yayBjb3JyZWN0bHkgd2l0aCAxLjIgR0h6IENQVQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiBmcmVxdWVuY3ksIGJ1dCByYW5kb20gY3Jhc2hlcyBvY2N1ciBvbmNlIGNwdWZy ZXEgZHJpdmVyIHN0YXJ0cyBzY2FsaW5nLgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiBXZSBkbyBub3Qga25vdyBjdXJyZW50bHkgd2hhdCBpcyB0aGUgcmVh c29uOgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAtIGl0IG1heSBiZSB0aGF0IHRoZSB2b2x0YWdl IHZhbHVlIGZvciBMMCBmb3IgMS4yIEdIeiB2YXJpYW50IHByb3ZpZGVkCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ICAgYnkgdGhlIHZlbmRvciBpbiB0aGUgT1RQIGlzIHNpbXBseSBpbmNvcnJlY3Qg d2hlbgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBzY2FsaW5nIGlzIHVzZWQsCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IC0gaXQgbWF5IGJlIHRoYXQgc29tZSBkZWxheSBpcyBuZWVkZWQgc29tZXdo ZXJlLAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAtIGl0IG1heSBiZSBzb21ldGhpbmcgZWxzZS4K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVGhlIG1vc3Qg c2FuZSBzb2x1dGlvbiBub3cgc2VlbXMgdG8gYmUgdG8gc2ltcGx5IGZvcmJpZAo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiB0aGUgY3B1ZnJlcSBkcml2ZXIgb24gMS4yIEdIeiB2YXJpYW50Lgo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5 OiBNYXJlayBCZWjDum4gPGthYmVsQGtlcm5lbC5vcmc+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IEZpeGVzOiA5MmNlNDVmYjg3NWQgKCJjcHVmcmVxOiBBZGQgRFZGUyBzdXBwb3J0IGZvcgo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiBBcm1hZGEKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gMzd4eCIp Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBJZiBz b21lb25lIGZyb20gTWFydmVsbCBjb3VsZCBsb29rIGludG8gdGhpcywgaXQgd291bGQKPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gYmUgZ3JlYXQgc2luY2UgYmFzaWNhbGx5IDEuMiBHSHogdmFyaWFu dCBjYW5ub3Qgc2NhbGUsCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHdoaWNoIGlzIGEgZmVhdHVy ZSB0aGF0IHdhcyBjbGFpbWVkIHRvIGJlIHN1cHBvcnRlZCBieSB0aGUgU09DLgo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBLZW4gTWEgLyBWaWN0b3IgR3Us IHlvdSBoYXZlIHdvcmtlZCBvbiBjb21taXQKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaHR0cHM6 Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHBzLTNBX19naXRodWIuCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+IGNvCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IG1fTWFydmVs bEVtYmVkZGVkUHJvY2Vzc29yc19saW51eC0yRG1hcnZlbGxfY29tbWl0X2Q2NzE5Cj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+IGZkYzIKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gYjMKPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gY2FjNTgwNjRmNDFiNTMxZjg2OTkzYzkxOWFhOWEmZD1Ed0lEYVEmYz1u S2pXZWMyYjZSMG1PeVAKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gYXo3eAo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiB0Zgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBRJnI9ZVRlTlRMRUs1LVR4WGN6 ak9jS1BoQU5JRnRsQjlwUDRscTlxaGRsRnJ3USZtPTVuTU1LeQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiBLT09NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IDNYCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+IGRNZV9QZXJaUng4TDctRDdNa1doQ2w3R3hwWFRQaW90VmYxVFI0ajh2M2JwalFtUktDTEMm cz1iCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IDljREsgZW0gdDcwT2lUSkY2S1hqMHlTemJ4cHNC X251dGVYSkU4N3ZpYTgwJmU9Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGluIGxpbnV4LW1hcnZl bGwuCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFlvdXIgcGF0Y2ggdGFrZXMgYXdheSB0aGUgMTIw MiBtViBjb25zdGFudCBmb3IgMS4yIEdIego+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBiYXNlIENQ VSBmcmVxdWVuY3kgYW5kIGluc3RlYWQgYWRkcyBjb2RlIHRoYXQgY29tcHV0ZXMKPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gdGhlIHZvbHRhZ2VzIGZyb20gdGhlIHZvbHRhZ2UgZm91bmQgaW4gTDAg QVZTIHJlZ2lzdGVyICh3aGljaCBpcyBmaWxsZWQgaW4gYnkgV1RNSSBmaXJtd2FyZSkuCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IERvIHlvdSBrbm93IHdo eSB0aGUgY29kZSBkb2VzIG5vdCB3b3JrIGNvcnJlY3RseSBmb3IKPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gc29tZQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAxLjIgR0h6IGJvYXJkcz8gRG8gd2Ug bmVlZCB0byBmb3JjZSB0aGUgTDAgdm9sdGFnZSB0bwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAx MjAyIG1WIGlmIGl0IGlzIGxvd2VyLCBvciBzb21ldGhpbmc/Cj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+IC0tLQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgZHJpdmVycy9jcHVmcmVxL2FybWFkYS0z N3h4LWNwdWZyZXEuYyB8IDYgKysrKystCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAxIGZpbGUg Y2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NwdWZy ZXEvYXJtYWRhLTM3eHgtY3B1ZnJlcS5jCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGIvZHJpdmVy cy9jcHVmcmVxL2FybWFkYS0zN3h4LWNwdWZyZXEuYwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBp bmRleCAzZmM5OGEzZmZkOTEuLmMxMGZjMzNiMjliMSAxMDA2NDQKPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gLS0tIGEvZHJpdmVycy9jcHVmcmVxL2FybWFkYS0zN3h4LWNwdWZyZXEuYwo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2NwdWZyZXEvYXJtYWRhLTM3eHgtY3B1ZnJl cS5jCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEBAIC0xMDQsNyArMTA0LDExIEBAIHN0cnVjdCBh cm1hZGFfMzd4eF9kdmZzIHsgIH07Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ICBzdGF0aWMgc3RydWN0IGFybWFkYV8zN3h4X2R2ZnMgYXJtYWRhXzM3eHhf ZHZmc1tdID0gewo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAtIHsuY3B1X2ZyZXFfbWF4ID0gMTIw MCoxMDAwKjEwMDAsIC5kaXZpZGVyID0gezEsIDIsIDQsCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IDZ9IH0sCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsgLyoKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gKyAgKiBUaGUgY3B1ZnJlcSBzY2FsaW5nIGZvciAxLjIgR0h6IHZhcmlhbnQgb2YgdGhlIFNP Qwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAraXMgY3VycmVudGx5Cj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ICsgICogdW5zdGFibGUgYmVjYXVzZSB3ZSBkbyBub3Qga25vdyBob3cgdG8gY29uZmln dXJlIGl0IHByb3Blcmx5Lgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArICAqLwo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiArIC8qIHsuY3B1X2ZyZXFfbWF4ID0gMTIwMCoxMDAwKjEwMDAsIC5kaXZp ZGVyID0gezEsIDIsCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICs0LCA2fSB9LCAqLwo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiAgICB7LmNwdV9mcmVxX21heCA9IDEwMDAqMTAwMCoxMDAwLCAuZGl2 aWRlciA9IHsxLCAyLCA0LCA1fSB9LAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICB7LmNwdV9m cmVxX21heCA9IDgwMCoxMDAwKjEwMDAsICAuZGl2aWRlciA9IHsxLCAyLCAzLCA0fSB9LAo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiAgICB7LmNwdV9mcmVxX21heCA9IDYwMCoxMDAwKjEwMDAsICAu ZGl2aWRlciA9IHsyLCA0LCA1LAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA2fSB9LAo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiAtLQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAyLjMxLjEKPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPiAtLQo+ID4g PiA+IFJvYmVydCBNYXJrbwo+ID4gPiA+IFN0YWZmIEVtYmVkZGVkIExpbnV4IEVuZ2luZWVyCj4g PiA+ID4gU2FydHVyYSBMdGQuCj4gPiA+ID4gTGVuZGF2c2thIHVsaWNhIDE2YQo+ID4gPiA+IDEw MDAwIFphZ3JlYiwgQ3JvYXRpYQo+ID4gPiA+IEVtYWlsOiByb2JlcnQubWFya29Ac2FydHVyYS5o cgo+ID4gPiA+IFdlYjogaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91 PWh0dHAtM0FfX3d3dy5zYXJ0dXJhLmhyJmQ9RHdJRmFRJmM9bktqV2VjMmI2UjBtT3lQYXo3eHRm USZyPWVUZU5UTEVLNS1UeFhjempPY0tQaEFOSUZ0bEI5cFA0bHE5cWhkbEZyd1EmbT11MzluN1hQ QmRRVmFvYXZpTTMyUWNGYWlPMEtEczNCVnprZUYtNHpycVBLRWxOSDNpZ0g5S3FFS2Z4U0tMei1I JnM9X2FCb2tURVROVnpUckhxZXd1cHI0UGVMdXNCTmY3TEdyVG1qSTJocHBGayZlPQo+ID4gPgo+ ID4gPgo+ID4gPgo+ID4gPiAtLQo+ID4gPiBSb2JlcnQgTWFya28KPiA+ID4gU3RhZmYgRW1iZWRk ZWQgTGludXggRW5naW5lZXIKPiA+ID4gU2FydHVyYSBMdGQuCj4gPiA+IExlbmRhdnNrYSB1bGlj YSAxNmEKPiA+ID4gMTAwMDAgWmFncmViLCBDcm9hdGlhCj4gPiA+IEVtYWlsOiByb2JlcnQubWFy a29Ac2FydHVyYS5ocgo+ID4gPiBXZWI6IHd3dy5zYXJ0dXJhLmhyCj4gCj4gCj4gCj4gLS0gCj4g Um9iZXJ0IE1hcmtvCj4gU3RhZmYgRW1iZWRkZWQgTGludXggRW5naW5lZXIKPiBTYXJ0dXJhIEx0 ZC4KPiBMZW5kYXZza2EgdWxpY2EgMTZhCj4gMTAwMDAgWmFncmViLCBDcm9hdGlhCj4gRW1haWw6 IHJvYmVydC5tYXJrb0BzYXJ0dXJhLmhyCj4gV2ViOiB3d3cuc2FydHVyYS5ocgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBt YWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=