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 C3218C25B0E for ; Fri, 19 Aug 2022 07:36:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346683AbiHSHgH convert rfc822-to-8bit (ORCPT ); Fri, 19 Aug 2022 03:36:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49176 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346639AbiHSHf7 (ORCPT ); Fri, 19 Aug 2022 03:35:59 -0400 Received: from mail-qv1-f50.google.com (mail-qv1-f50.google.com [209.85.219.50]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E1238CACBE; Fri, 19 Aug 2022 00:35:55 -0700 (PDT) Received: by mail-qv1-f50.google.com with SMTP id m17so2823242qvv.7; Fri, 19 Aug 2022 00:35:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc; bh=XRbV7J+2A2p1Es19V1DJXlJ5MTO6MnMsKMF62Ysfi58=; b=ayoQFi0HbRGHkvIJEnkfRugePk5YSwhWB/hNc7ZJ8OTHOvCWpPTgJ9RlgYnEj2M0ds Lcsmt6ARJ/y8obiGdLFEvw9IIfTPBkgeeWO/GHPinSbZVg/yt4N/W9dGAZtdLkY7Mfl+ 4rXSpMH1W+QCbUfsXIRY/tw43NaCFuX18HjeU+MmPR6sLriwZNhIZeAsdFyWI/zeK/Dj L3xc6TWHK0UTt1hdLAdVQUf0VfJN3YsnoWQPzp3akLvl2BI0LMuaO+wfbhgcym6iXF4X Br0jdqyJ2e22GfmnuAE4Q5MG/v5dPEj28luwEacoFZcKqwf5ExPcmFUJYqIkIPRWUlEL XxGg== X-Gm-Message-State: ACgBeo01rVg6tc1G7WS3Tc1Sn1wSwsME5EVTFkgCUbDA5nXa4plaX2Er xYlJoPCx+NT+9TxMQ0hQyEO21Vvqp7GtCQ== X-Google-Smtp-Source: AA6agR74Q1HXwdqQiTR3l0jvRGi+PALCd7mB25L96CAWRp1bEnuGKifVLLF3SbZ5nd4S5id7KTo2Xw== X-Received: by 2002:ad4:5dcd:0:b0:476:a48d:4c43 with SMTP id m13-20020ad45dcd000000b00476a48d4c43mr5581966qvh.13.1660894554552; Fri, 19 Aug 2022 00:35:54 -0700 (PDT) Received: from mail-yw1-f180.google.com (mail-yw1-f180.google.com. [209.85.128.180]) by smtp.gmail.com with ESMTPSA id ge8-20020a05622a5c8800b003437a694049sm2527677qtb.96.2022.08.19.00.35.52 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 19 Aug 2022 00:35:53 -0700 (PDT) Received: by mail-yw1-f180.google.com with SMTP id 00721157ae682-3378303138bso60761727b3.9; Fri, 19 Aug 2022 00:35:52 -0700 (PDT) X-Received: by 2002:a5b:bcd:0:b0:68f:b4c0:7eca with SMTP id c13-20020a5b0bcd000000b0068fb4c07ecamr6552996ybr.202.1660894552417; Fri, 19 Aug 2022 00:35:52 -0700 (PDT) MIME-Version: 1.0 References: <20220815151451.23293-1-prabhakar.mahadev-lad.rj@bp.renesas.com> <20220815151451.23293-5-prabhakar.mahadev-lad.rj@bp.renesas.com> In-Reply-To: From: Geert Uytterhoeven Date: Fri, 19 Aug 2022 09:35:40 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2 4/8] RISC-V: Kconfig.socs: Add Renesas RZ/Five SoC kconfig option To: Conor Dooley Cc: Prabhakar Lad , "Lad, Prabhakar" , Rob Herring , Krzysztof Kozlowski , Paul Walmsley , Palmer Dabbelt , Albert Ou , Anup Patel , Linux-Renesas , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , linux-riscv , Linux Kernel Mailing List , Biju Das , Samuel Holland Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8BIT Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Conor, On Thu, Aug 18, 2022 at 8:54 PM wrote: > On 18/08/2022 19:19, Lad, Prabhakar wrote: > > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > On Thu, Aug 18, 2022 at 4:16 PM Geert Uytterhoeven wrote: > >> On Mon, Aug 15, 2022 at 5:16 PM Lad Prabhakar > >> wrote: > >>> Introduce SOC_RENESAS_RZFIVE config option to enable Renesas RZ/Five > >>> (R9A07G043) SoC, along side also add ARCH_RENESAS config option as most > >>> of the Renesas drivers depend on this config option. > >>> > >>> Signed-off-by: Lad Prabhakar > >> > >> Thanks for your patch! > >> > >> The technical part LGTM, so > >> Reviewed-by: Geert Uytterhoeven > >> > >>> --- a/arch/riscv/Kconfig.socs > >>> +++ b/arch/riscv/Kconfig.socs > >>> @@ -80,4 +80,18 @@ config SOC_CANAAN_K210_DTB_SOURCE > >>> > >>> endif # SOC_CANAAN > >>> > >>> +config ARCH_RENESAS > >> > >> We definitely want ARCH_RENESAS, as it serves as a gatekeeper for > >> Kconfig options for IP cores found on Renesas ARM and RISC-V SoCs. > >> > > Agreed, or else we will end up touching too many Kconfig files. > > > >>> + bool > >>> + select GPIOLIB > >>> + select PINCTRL > >>> + select SOC_BUS > >>> + > >>> +config SOC_RENESAS_RZFIVE > >> > >> Do we need this symbol? You could as well make ARCH_RENESAS above > >> visible, and defer the actual SoC selection to ARCH_R9A07G043 in > >> drivers/soc/renesas/Kconfig[1]. > >> > > I think we could drop it and just defer the actual SoC selection to > > ARCH_R9A07G043 as you said. > > > >> I don't know what is the policy on RISC-V. ARM64 has a "single-symbol > >> in arch/arm64/Kconfig.platforms"-policy, so we handle SoC selection > >> in drivers/soc/renesas/Kconfig, and that is fine, as it avoids merge > >> conflicts. > >> > > Agreed. > > > > @Conor - Does the above sound OK? > > It's not my decision to be honest - Palmer's the boss :) > > I would rather have a single symbol & a single approach so that we are > all doing the same thing here. As of now, we have all basically done > different things for each SOC that was added - there's SOC_SIFIVE & > SOC_MICROCHIP_POLARFIRE which are obviously not doing the same thing > for starters & then how the symbol is used: selects vs depends + default > all varies between the symbols. > > I tried to make some changes to the PolarFire one a few months ago to > add some peripherals but Palmer was not too keen on the changes. We had > a conversation on IRC, the upshot of which was deciding to talk about it > at Plumbers (which is in 3 weeks) as none of them follow his original > intent: > > the original idea behind Kconfig.socs was to provide an easy place for > users to say "I want all the support for SOC X", and then just have one > Kconfig to turn that on > <\quote> For whatever definition of "all"? Does this include e.g. all multi-media stuff? For Renesas ARM SoCs, we make sure to select the critical core parts, cfr. the selects above, and in drivers/soc/renesas/Kconfig. These selects do not include optional drivers, including the serial port (cfr. your confusion about adding CONFIG_SERIAL_SH_SCI=y to the defconfig). All the rest is handled by the defconfigs (shmobile_defconfig on arm32, single defconfig on arm64, and out-of-tree renesas_defconfig in my renesas-devel tree). > In theory, that's lovely but not really maintainable & none of us were > doing it anyway. Hopefully we can come up with a plan at Plumbers - so > feel free to chime in (or maybe it gets sorted out here and I don't > have to do any public speaking 😍). Ah, there is my good reason for registering for LPC ;-) Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds 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 6D019C25B0E for ; Fri, 19 Aug 2022 07:36:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=x3ojDKwnzPvh69SVLe0yt2/nEx6FEwd2G9oPxytUWts=; b=FCnfW9bXMu9Qsu 2LNOt+ZRHfhXqOaqCGWgrNQqMOtMjrt6b2u0Jd/5sDLRaj1qn9ERPg5u34KURRPU/4S2yKd2TrFDi sH0k61wVYjG3STTF6NTVq617YUZWKBR5uOhon658kuXk3YfDlN7nlXIUdA00+uIBJt6CrVeINXj+D eRYR/kReFRFbXfbUyeSM4pxm6X0qNHjN4CGVZupkD0s8DO813tkJpbaA1w8k2jaBF02PzqO4/5iW6 b+Yrayk1SuYmdi9k7ipY2NmimroADSRpkXxohf4hfPof6Ida440vySD+nA7IZulwvmOR7hVIDdRdT q3rOycud/ofuztS0Nz2A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oOwXv-003TLz-Ow; Fri, 19 Aug 2022 07:35:59 +0000 Received: from mail-qk1-f172.google.com ([209.85.222.172]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oOwXr-003TKr-R9 for linux-riscv@lists.infradead.org; Fri, 19 Aug 2022 07:35:57 +0000 Received: by mail-qk1-f172.google.com with SMTP id j6so2757017qkl.10 for ; Fri, 19 Aug 2022 00:35:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc; bh=XRbV7J+2A2p1Es19V1DJXlJ5MTO6MnMsKMF62Ysfi58=; b=lmhbsyJZBOMqV9gu5HS4JwRXwAFbMCH6pA1SkjOu4gFDH7kD/5qZM529nP4waqirpX w/sp3sXSXeuHBw6kLdCfP8Xc6xc0nWkWjNNPKEl/g5Q8gcnt1SHsx6HLXGunqiVCKpK7 SBebvvirnZ+mpp/EAoYpkgDDHoBgzXv4/wrcxP7/zzT7Vkx3PGKtHSASI5l+qltg+/7E y9rkq0kX4YB7shJH0REq+7gelXRpeUEMUBN6LTJtrgfzvb6TWERYxXkCJzWRYsSOxycb Yyp9vam9BYjt9CUq7bm1z+ZeiD2yzIzF7LnShW1KCPYTwOg166oeYxJauCr5prjRT2wq u9VQ== X-Gm-Message-State: ACgBeo2K5mRyjAKikiZYSWaM3mLEw3Kw/enVwAdDF84Dty54koQNPKPV zP42J41szhVoEnJlMqtPEvM6WvVFwarDog== X-Google-Smtp-Source: AA6agR5vDnYC8xxIy4f59F0UvfyuR/AvUc+nkIJ8dO9LX7xQ3cbz1Nr15oJxiIGqOPYemGx/FcUHZQ== X-Received: by 2002:a05:620a:45a4:b0:6bb:5c02:3d16 with SMTP id bp36-20020a05620a45a400b006bb5c023d16mr4406325qkb.198.1660894553666; Fri, 19 Aug 2022 00:35:53 -0700 (PDT) Received: from mail-yw1-f182.google.com (mail-yw1-f182.google.com. [209.85.128.182]) by smtp.gmail.com with ESMTPSA id u14-20020a05620a0c4e00b006bb568016easm3092691qki.116.2022.08.19.00.35.52 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 19 Aug 2022 00:35:53 -0700 (PDT) Received: by mail-yw1-f182.google.com with SMTP id 00721157ae682-324ec5a9e97so100799437b3.7 for ; Fri, 19 Aug 2022 00:35:52 -0700 (PDT) X-Received: by 2002:a5b:bcd:0:b0:68f:b4c0:7eca with SMTP id c13-20020a5b0bcd000000b0068fb4c07ecamr6552996ybr.202.1660894552417; Fri, 19 Aug 2022 00:35:52 -0700 (PDT) MIME-Version: 1.0 References: <20220815151451.23293-1-prabhakar.mahadev-lad.rj@bp.renesas.com> <20220815151451.23293-5-prabhakar.mahadev-lad.rj@bp.renesas.com> In-Reply-To: From: Geert Uytterhoeven Date: Fri, 19 Aug 2022 09:35:40 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2 4/8] RISC-V: Kconfig.socs: Add Renesas RZ/Five SoC kconfig option To: Conor Dooley Cc: Prabhakar Lad , "Lad, Prabhakar" , Rob Herring , Krzysztof Kozlowski , Paul Walmsley , Palmer Dabbelt , Albert Ou , Anup Patel , Linux-Renesas , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , linux-riscv , Linux Kernel Mailing List , Biju Das , Samuel Holland X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220819_003555_925287_3E5C7B1F X-CRM114-Status: GOOD ( 44.56 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org SGkgQ29ub3IsCgpPbiBUaHUsIEF1ZyAxOCwgMjAyMiBhdCA4OjU0IFBNIDxDb25vci5Eb29sZXlA bWljcm9jaGlwLmNvbT4gd3JvdGU6Cj4gT24gMTgvMDgvMjAyMiAxOToxOSwgTGFkLCBQcmFiaGFr YXIgd3JvdGU6Cj4gPiBFWFRFUk5BTCBFTUFJTDogRG8gbm90IGNsaWNrIGxpbmtzIG9yIG9wZW4g YXR0YWNobWVudHMgdW5sZXNzIHlvdSBrbm93IHRoZSBjb250ZW50IGlzIHNhZmUKPiA+IE9uIFRo dSwgQXVnIDE4LCAyMDIyIGF0IDQ6MTYgUE0gR2VlcnQgVXl0dGVyaG9ldmVuIDxnZWVydEBsaW51 eC1tNjhrLm9yZz4gd3JvdGU6Cj4gPj4gT24gTW9uLCBBdWcgMTUsIDIwMjIgYXQgNToxNiBQTSBM YWQgUHJhYmhha2FyCj4gPj4gPHByYWJoYWthci5tYWhhZGV2LWxhZC5yakBicC5yZW5lc2FzLmNv bT4gd3JvdGU6Cj4gPj4+IEludHJvZHVjZSBTT0NfUkVORVNBU19SWkZJVkUgY29uZmlnIG9wdGlv biB0byBlbmFibGUgUmVuZXNhcyBSWi9GaXZlCj4gPj4+IChSOUEwN0cwNDMpIFNvQywgYWxvbmcg c2lkZSBhbHNvIGFkZCBBUkNIX1JFTkVTQVMgY29uZmlnIG9wdGlvbiBhcyBtb3N0Cj4gPj4+IG9m IHRoZSBSZW5lc2FzIGRyaXZlcnMgZGVwZW5kIG9uIHRoaXMgY29uZmlnIG9wdGlvbi4KPiA+Pj4K PiA+Pj4gU2lnbmVkLW9mZi1ieTogTGFkIFByYWJoYWthciA8cHJhYmhha2FyLm1haGFkZXYtbGFk LnJqQGJwLnJlbmVzYXMuY29tPgo+ID4+Cj4gPj4gVGhhbmtzIGZvciB5b3VyIHBhdGNoIQo+ID4+ Cj4gPj4gVGhlIHRlY2huaWNhbCBwYXJ0IExHVE0sIHNvCj4gPj4gUmV2aWV3ZWQtYnk6IEdlZXJ0 IFV5dHRlcmhvZXZlbiA8Z2VlcnQrcmVuZXNhc0BnbGlkZXIuYmU+Cj4gPj4KPiA+Pj4gLS0tIGEv YXJjaC9yaXNjdi9LY29uZmlnLnNvY3MKPiA+Pj4gKysrIGIvYXJjaC9yaXNjdi9LY29uZmlnLnNv Y3MKPiA+Pj4gQEAgLTgwLDQgKzgwLDE4IEBAIGNvbmZpZyBTT0NfQ0FOQUFOX0syMTBfRFRCX1NP VVJDRQo+ID4+Pgo+ID4+PiAgZW5kaWYgIyBTT0NfQ0FOQUFOCj4gPj4+Cj4gPj4+ICtjb25maWcg QVJDSF9SRU5FU0FTCj4gPj4KPiA+PiBXZSBkZWZpbml0ZWx5IHdhbnQgQVJDSF9SRU5FU0FTLCBh cyBpdCBzZXJ2ZXMgYXMgYSBnYXRla2VlcGVyIGZvcgo+ID4+IEtjb25maWcgb3B0aW9ucyBmb3Ig SVAgY29yZXMgZm91bmQgb24gUmVuZXNhcyBBUk0gYW5kIFJJU0MtViBTb0NzLgo+ID4+Cj4gPiBB Z3JlZWQsIG9yIGVsc2Ugd2Ugd2lsbCBlbmQgdXAgdG91Y2hpbmcgdG9vIG1hbnkgS2NvbmZpZyBm aWxlcy4KPiA+Cj4gPj4+ICsgICAgICAgYm9vbAo+ID4+PiArICAgICAgIHNlbGVjdCBHUElPTElC Cj4gPj4+ICsgICAgICAgc2VsZWN0IFBJTkNUUkwKPiA+Pj4gKyAgICAgICBzZWxlY3QgU09DX0JV Uwo+ID4+PiArCj4gPj4+ICtjb25maWcgU09DX1JFTkVTQVNfUlpGSVZFCj4gPj4KPiA+PiBEbyB3 ZSBuZWVkIHRoaXMgc3ltYm9sPyBZb3UgY291bGQgYXMgd2VsbCBtYWtlIEFSQ0hfUkVORVNBUyBh Ym92ZQo+ID4+IHZpc2libGUsIGFuZCBkZWZlciB0aGUgYWN0dWFsIFNvQyBzZWxlY3Rpb24gdG8g QVJDSF9SOUEwN0cwNDMgaW4KPiA+PiBkcml2ZXJzL3NvYy9yZW5lc2FzL0tjb25maWdbMV0uCj4g Pj4KPiA+IEkgdGhpbmsgd2UgY291bGQgZHJvcCBpdCBhbmQganVzdCBkZWZlciB0aGUgYWN0dWFs IFNvQyBzZWxlY3Rpb24gdG8KPiA+IEFSQ0hfUjlBMDdHMDQzIGFzIHlvdSBzYWlkLgo+ID4KPiA+ PiBJIGRvbid0IGtub3cgd2hhdCBpcyB0aGUgcG9saWN5IG9uIFJJU0MtVi4gQVJNNjQgaGFzIGEg InNpbmdsZS1zeW1ib2wKPiA+PiBpbiBhcmNoL2FybTY0L0tjb25maWcucGxhdGZvcm1zIi1wb2xp Y3ksIHNvIHdlIGhhbmRsZSBTb0Mgc2VsZWN0aW9uCj4gPj4gaW4gZHJpdmVycy9zb2MvcmVuZXNh cy9LY29uZmlnLCBhbmQgdGhhdCBpcyBmaW5lLCBhcyBpdCBhdm9pZHMgbWVyZ2UKPiA+PiBjb25m bGljdHMuCj4gPj4KPiA+IEFncmVlZC4KPiA+Cj4gPiBAQ29ub3IgLSBEb2VzIHRoZSBhYm92ZSBz b3VuZCBPSz8KPgo+IEl0J3Mgbm90IG15IGRlY2lzaW9uIHRvIGJlIGhvbmVzdCAtIFBhbG1lcidz IHRoZSBib3NzIDopCj4KPiBJIHdvdWxkIHJhdGhlciBoYXZlIGEgc2luZ2xlIHN5bWJvbCAmIGEg c2luZ2xlIGFwcHJvYWNoIHNvIHRoYXQgd2UgYXJlCj4gYWxsIGRvaW5nIHRoZSBzYW1lIHRoaW5n IGhlcmUuIEFzIG9mIG5vdywgd2UgaGF2ZSBhbGwgYmFzaWNhbGx5IGRvbmUKPiBkaWZmZXJlbnQg dGhpbmdzIGZvciBlYWNoIFNPQyB0aGF0IHdhcyBhZGRlZCAtIHRoZXJlJ3MgU09DX1NJRklWRSAm Cj4gU09DX01JQ1JPQ0hJUF9QT0xBUkZJUkUgd2hpY2ggYXJlIG9idmlvdXNseSBub3QgZG9pbmcg dGhlIHNhbWUgdGhpbmcKPiBmb3Igc3RhcnRlcnMgJiB0aGVuIGhvdyB0aGUgc3ltYm9sIGlzIHVz ZWQ6IHNlbGVjdHMgdnMgZGVwZW5kcyArIGRlZmF1bHQKPiBhbGwgdmFyaWVzIGJldHdlZW4gdGhl IHN5bWJvbHMuCj4KPiBJIHRyaWVkIHRvIG1ha2Ugc29tZSBjaGFuZ2VzIHRvIHRoZSBQb2xhckZp cmUgb25lIGEgZmV3IG1vbnRocyBhZ28gdG8KPiBhZGQgc29tZSBwZXJpcGhlcmFscyBidXQgUGFs bWVyIHdhcyBub3QgdG9vIGtlZW4gb24gdGhlIGNoYW5nZXMuIFdlIGhhZAo+IGEgY29udmVyc2F0 aW9uIG9uIElSQywgdGhlIHVwc2hvdCBvZiB3aGljaCB3YXMgZGVjaWRpbmcgdG8gdGFsayBhYm91 dCBpdAo+IGF0IFBsdW1iZXJzICh3aGljaCBpcyBpbiAzIHdlZWtzKSBhcyBub25lIG9mIHRoZW0g Zm9sbG93IGhpcyBvcmlnaW5hbAo+IGludGVudDoKPiA8cXVvdGU+Cj4gdGhlIG9yaWdpbmFsIGlk ZWEgYmVoaW5kIEtjb25maWcuc29jcyB3YXMgdG8gcHJvdmlkZSBhbiBlYXN5IHBsYWNlIGZvcgo+ IHVzZXJzIHRvIHNheSAiSSB3YW50IGFsbCB0aGUgc3VwcG9ydCBmb3IgU09DIFgiLCBhbmQgdGhl biBqdXN0IGhhdmUgb25lCj4gS2NvbmZpZyB0byB0dXJuIHRoYXQgb24KPiA8XHF1b3RlPgoKRm9y IHdoYXRldmVyIGRlZmluaXRpb24gb2YgImFsbCI/IERvZXMgdGhpcyBpbmNsdWRlIGUuZy4gYWxs Cm11bHRpLW1lZGlhIHN0dWZmPwoKRm9yIFJlbmVzYXMgQVJNIFNvQ3MsIHdlIG1ha2Ugc3VyZSB0 byBzZWxlY3QgdGhlIGNyaXRpY2FsIGNvcmUgcGFydHMsCmNmci4gdGhlIHNlbGVjdHMgYWJvdmUs IGFuZCBpbiBkcml2ZXJzL3NvYy9yZW5lc2FzL0tjb25maWcuClRoZXNlIHNlbGVjdHMgZG8gbm90 IGluY2x1ZGUgb3B0aW9uYWwgZHJpdmVycywgaW5jbHVkaW5nIHRoZSBzZXJpYWwKcG9ydCAoY2Zy LiB5b3VyIGNvbmZ1c2lvbiBhYm91dCBhZGRpbmcgQ09ORklHX1NFUklBTF9TSF9TQ0k9eQp0byB0 aGUgZGVmY29uZmlnKS4KQWxsIHRoZSByZXN0IGlzIGhhbmRsZWQgYnkgdGhlIGRlZmNvbmZpZ3Mg KHNobW9iaWxlX2RlZmNvbmZpZyBvbgphcm0zMiwgc2luZ2xlIGRlZmNvbmZpZyBvbiBhcm02NCwg YW5kIG91dC1vZi10cmVlIHJlbmVzYXNfZGVmY29uZmlnCmluIG15IHJlbmVzYXMtZGV2ZWwgdHJl ZSkuCgo+IEluIHRoZW9yeSwgdGhhdCdzIGxvdmVseSBidXQgbm90IHJlYWxseSBtYWludGFpbmFi bGUgJiBub25lIG9mIHVzIHdlcmUKPiBkb2luZyBpdCBhbnl3YXkuIEhvcGVmdWxseSB3ZSBjYW4g Y29tZSB1cCB3aXRoIGEgcGxhbiBhdCBQbHVtYmVycyAtIHNvCj4gZmVlbCBmcmVlIHRvIGNoaW1l IGluIChvciBtYXliZSBpdCBnZXRzIHNvcnRlZCBvdXQgaGVyZSBhbmQgSSBkb24ndAo+IGhhdmUg dG8gZG8gYW55IHB1YmxpYyBzcGVha2luZyDwn5iNKS4KCkFoLCB0aGVyZSBpcyBteSBnb29kIHJl YXNvbiBmb3IgcmVnaXN0ZXJpbmcgZm9yIExQQyA7LSkKCkdye29ldGplLGVldGluZ31zLAoKICAg ICAgICAgICAgICAgICAgICAgICAgR2VlcnQKCi0tCkdlZXJ0IFV5dHRlcmhvZXZlbiAtLSBUaGVy ZSdzIGxvdHMgb2YgTGludXggYmV5b25kIGlhMzIgLS0gZ2VlcnRAbGludXgtbTY4ay5vcmcKCklu IHBlcnNvbmFsIGNvbnZlcnNhdGlvbnMgd2l0aCB0ZWNobmljYWwgcGVvcGxlLCBJIGNhbGwgbXlz ZWxmIGEgaGFja2VyLiBCdXQKd2hlbiBJJ20gdGFsa2luZyB0byBqb3VybmFsaXN0cyBJIGp1c3Qg c2F5ICJwcm9ncmFtbWVyIiBvciBzb21ldGhpbmcgbGlrZSB0aGF0LgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC0tIExpbnVzIFRvcnZhbGRzCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgt cmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==