From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B6450C2B9F8 for ; Tue, 25 May 2021 12:04:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 93FFC61413 for ; Tue, 25 May 2021 12:04:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232285AbhEYMFf (ORCPT ); Tue, 25 May 2021 08:05:35 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:49367 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232296AbhEYMFe (ORCPT ); Tue, 25 May 2021 08:05:34 -0400 Received: from mail-vs1-f71.google.com ([209.85.217.71]) by youngberry.canonical.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from ) id 1llVn1-00085q-BB for linux-tegra@vger.kernel.org; Tue, 25 May 2021 12:04:03 +0000 Received: by mail-vs1-f71.google.com with SMTP id f20-20020a67d8940000b029022a675e6e86so12766867vsj.2 for ; Tue, 25 May 2021 05:04:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=ov2aOGWwe13sRFaggK9ebqlQkrTYdvNCRKExlndHI9g=; b=px0SfP0bE8b2pZ3CmBsiHSrNqwW+Siw/RjZ39lgkVtLrXqhzjLjWwRUu8h+Bem/ECp 9LlWuOCOKkvflstegUWoanmEcp+MXXr8fv9Y+QGVizfIMgmX7zc/C72YtbtVaRyEPdkj EkUBLSm/feqr2MlFxH07UQS1QzrX89QUytXqC3YkXfs/6TjrFkz5WXJHeEIPTNznew92 7S2MkN8F31TMgVs9dnKjDBWPHIyrpECAgBYcF5bvIJt471jMkA2WdF9MNkjpgWJhzidZ 6IFkwbURuhzKnQ11hRbMguSfqiZ0T340zT6Px4mlwhx896Jk9Uj5m9+YNAXD1GPg08XC FWHw== X-Gm-Message-State: AOAM532LwsUlifayeDzOrUgt/47pu+X1K+w+u0Sg7PzAoOIAVmR9fSoo xgUI8phrYbL1UPsXdiaQI9Chf6VRsK3lVAiya5NUsCGJ+RIzS7szXctdE0A0rhVApegBl3eL2Xx q5/3kJCA4Vo7ooEgr0K4RakuFMBF81nuQLZxdUYh4 X-Received: by 2002:a05:6122:a16:: with SMTP id 22mr24550325vkn.18.1621944242239; Tue, 25 May 2021 05:04:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw/dj3Oduy8Xo23it+mIa7HBuI+j2VM7Wl2RfwLkeKdxRH0+SiUcz9Gmlw4vhVOBjjBWTrS3w== X-Received: by 2002:a05:6122:a16:: with SMTP id 22mr24550298vkn.18.1621944241996; Tue, 25 May 2021 05:04:01 -0700 (PDT) Received: from [192.168.1.4] ([45.237.48.1]) by smtp.gmail.com with ESMTPSA id b81sm1247160vke.8.2021.05.25.05.03.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 25 May 2021 05:04:01 -0700 (PDT) Subject: Re: [PATCH v1] kbuild: Disable compile testing if HAVE_LEGACY_CLK enabled To: Dmitry Osipenko , Geert Uytterhoeven Cc: Thierry Reding , Jonathan Hunter , Stephen Boyd , Tony Lindgren , Arnd Bergmann , Paul Burton , John Crispin , "open list:BROADCOM NVRAM DRIVER" , Linux ARM , linux-m68k , Linux Kernel Mailing List , linux-tegra , linux-clk , "open list:TI ETHERNET SWITCH DRIVER (CPSW)" References: <20210523232556.15017-1-digetx@gmail.com> <8b6af8c0-6f01-193f-1eb4-4e230871f0cd@gmail.com> From: Krzysztof Kozlowski Message-ID: Date: Tue, 25 May 2021 08:03:56 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: <8b6af8c0-6f01-193f-1eb4-4e230871f0cd@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org On 24/05/2021 08:39, Dmitry Osipenko wrote: > 24.05.2021 11:54, Geert Uytterhoeven пишет: >> Hi Dmitry, >> >> On Mon, May 24, 2021 at 1:26 AM Dmitry Osipenko wrote: >>> There are couple older platforms that can't be compile-tested because they >>> partially implement CLK API. It causes build failure of kernel drivers due >>> to the missing symbols of the unimplemented part of CLK API. >>> >>> These platforms are: ARM EP93XX, ARM OMAP1, m68k ColdFire, MIPS AR7, >>> MIPS Ralink. >>> >>> Disable compile-testing for HAVE_LEGACY_CLK=y. >>> >>> Reported-by: kernel test robot >>> Signed-off-by: Dmitry Osipenko >> >> Thanks for your patch! >> >>> --- a/init/Kconfig >>> +++ b/init/Kconfig >>> @@ -131,7 +131,7 @@ config INIT_ENV_ARG_LIMIT >>> >>> config COMPILE_TEST >>> bool "Compile also drivers which will not load" >>> - depends on HAS_IOMEM >>> + depends on HAS_IOMEM && !HAVE_LEGACY_CLK >> >> That sounds a bit drastic to me. Usually we just try to implement the >> missing functionality, or provide stubs. >> Which functions are missing? > > Everything that belongs to CONFIG_COMMON_CLK needs stubs. > > That is everything under CONFIG_HAVE_CLK [1], excluding functions > belonging to clk-devres.o and clk-bulk.o [2]. The HAVE_LEGACY_CLK > selects HAVE_CLK, but the COMMON_CLK is under HAVE_CLK too. > > [1] > https://elixir.bootlin.com/linux/v5.13-rc3/source/include/linux/clk.h#L786 > [2] > https://elixir.bootlin.com/linux/v5.13-rc3/source/drivers/clk/Makefile#L3 > > This problem is repeated over and over again for the past years. Some > maintainers are adding "depends on COMMON_CLK" for COMPILE_TEST of each > driver, but this doesn't solve the root of the problem, and thus, it's > constantly reoccurring. > > Recently Krzysztof Kozlowski added couple more clk stubs for MIPS, but > still lots of stubs are missing. Some platforms don't have any stubs at > all and apparently nobody cares to fix them. > > There 3 possible solutions: > > 1. Factor out COMMON_CLK from HAVE_LEGACY_CLK, if this is possible > 2. Build stubs universally, maybe using weak functions. I vote for this one - global stubs. Or for a new one: 4. Disable COMPILE_TEST for specific platforms (mentioned in commit msg). Eventually could be like: config RALINK depends !COMPILE_TEST || (COMPILE_TEST && COMMON_CLK) Why? Because it is expected that a driver requiring/using missing clock stubs won't run on such legacy platform. Currently it cannot run because simply missing stubs will break build. Option (2) would make them compileable but not runnable, which is fine. However having a build time failure is better, so maybe let's just isolate platforms which are very poor in compile testing and don't enable them for most of the configs. Best regards, Krzysztof From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.6 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 755DDC2B9F8 for ; Tue, 25 May 2021 12:06:50 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 34CDA6128D for ; Tue, 25 May 2021 12:06:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 34CDA6128D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=canonical.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=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:Date: Message-ID:From:References:Cc:To:Subject:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=mN79DcE8mWy59oQNPjmLpNofOzYdAwLN5ZWScfQ1z90=; b=GSIBz3TGimhAwEZvUa77GWrCyz 6BOQ3p50b3euD/llFa/741Of8+0j/d134MFvOoTGHo3iqQSAVi/PIYcPBrANuQPOrvr905yEFvlua lN9RUSpPp5DEUhSZuJixL/UnPYGS3jCM8Li4f1vk9PFX+nPdpGAd+uUVT99G8zz9sS2LTTjZb5lGY sEBOu/pvtE6V3CMY409sW3DABZVT8X0BZv4wJqCZvLPMxuxwQd9uO8xo13kVlvYEQVoUB7HaBDHdM IrqYCkEgqKEfRsUWrZl3bYLUqIm/XaEElLR2I2R1zHEen9iQ0IV7r5ZvchARD42WpWpxMqR1jaY0G l3NeRJxg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1llVnG-004tqr-NE; Tue, 25 May 2021 12:04:18 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1llVn2-004tn2-Ri for linux-arm-kernel@lists.infradead.org; Tue, 25 May 2021 12:04:06 +0000 Received: from mail-vs1-f69.google.com ([209.85.217.69]) by youngberry.canonical.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from ) id 1llVn1-00085f-4S for linux-arm-kernel@lists.infradead.org; Tue, 25 May 2021 12:04:03 +0000 Received: by mail-vs1-f69.google.com with SMTP id h23-20020a67c1970000b029022a88436f30so9350632vsj.11 for ; Tue, 25 May 2021 05:04:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=ov2aOGWwe13sRFaggK9ebqlQkrTYdvNCRKExlndHI9g=; b=H5ZnZZmbLaJAmzVGwIpqtLSy3hR7EX9yT+FoZrTfrMSCYHe+abJvZ6FgjM/RKsSueE OEzRa4Fb73JL8aJEkvohRrVXBSzaztoEd0wf13vVS3Y2rBSQsMkur8zUZmyM/9/f0Xxf jUd6+tBDBzeWhH9I7QvjUNdecsFWjluOt+mW3xhMrM1iEgnqyH/Z7LFQNjVed92ukGJv 2PCQ5YAK3yQY3bhogXyncnqzSGHbiy3AnlQe8u9/u+POdn5Uv1Av/0Bdn/Add3KhQNvo 13T55hPtvzGpTmQQw+HG7ib0I+TJ4cNV3u2RN7pspLkZAuW/Tz+rpVUyLBDD9Q/FQ79j g6Rw== X-Gm-Message-State: AOAM533GrjcK77ksr1H4AexEK6C7oDP4AN/lwUdbNXwiAXL3pAsTLG01 PxYTk/VcNDEe3qaOw5GtBv46j4+3LxIGK+OTatBfsZiqFrijJA+9rhvcD7jtVIq6myiXoevg0kB SpIu/6NAZ60OwR+ErNagjy6ppVKKzVeEDBJwf65yGy2DaDB6PYb0b X-Received: by 2002:a05:6122:a16:: with SMTP id 22mr24550327vkn.18.1621944242240; Tue, 25 May 2021 05:04:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw/dj3Oduy8Xo23it+mIa7HBuI+j2VM7Wl2RfwLkeKdxRH0+SiUcz9Gmlw4vhVOBjjBWTrS3w== X-Received: by 2002:a05:6122:a16:: with SMTP id 22mr24550298vkn.18.1621944241996; Tue, 25 May 2021 05:04:01 -0700 (PDT) Received: from [192.168.1.4] ([45.237.48.1]) by smtp.gmail.com with ESMTPSA id b81sm1247160vke.8.2021.05.25.05.03.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 25 May 2021 05:04:01 -0700 (PDT) Subject: Re: [PATCH v1] kbuild: Disable compile testing if HAVE_LEGACY_CLK enabled To: Dmitry Osipenko , Geert Uytterhoeven Cc: Thierry Reding , Jonathan Hunter , Stephen Boyd , Tony Lindgren , Arnd Bergmann , Paul Burton , John Crispin , "open list:BROADCOM NVRAM DRIVER" , Linux ARM , linux-m68k , Linux Kernel Mailing List , linux-tegra , linux-clk , "open list:TI ETHERNET SWITCH DRIVER (CPSW)" References: <20210523232556.15017-1-digetx@gmail.com> <8b6af8c0-6f01-193f-1eb4-4e230871f0cd@gmail.com> From: Krzysztof Kozlowski Message-ID: Date: Tue, 25 May 2021 08:03:56 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: <8b6af8c0-6f01-193f-1eb4-4e230871f0cd@gmail.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210525_050404_930253_15DAF04C X-CRM114-Status: GOOD ( 24.40 ) 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 T24gMjQvMDUvMjAyMSAwODozOSwgRG1pdHJ5IE9zaXBlbmtvIHdyb3RlOgo+IDI0LjA1LjIwMjEg MTE6NTQsIEdlZXJ0IFV5dHRlcmhvZXZlbiDQv9C40YjQtdGCOgo+PiBIaSBEbWl0cnksCj4+Cj4+ IE9uIE1vbiwgTWF5IDI0LCAyMDIxIGF0IDE6MjYgQU0gRG1pdHJ5IE9zaXBlbmtvIDxkaWdldHhA Z21haWwuY29tPiB3cm90ZToKPj4+IFRoZXJlIGFyZSBjb3VwbGUgb2xkZXIgcGxhdGZvcm1zIHRo YXQgY2FuJ3QgYmUgY29tcGlsZS10ZXN0ZWQgYmVjYXVzZSB0aGV5Cj4+PiBwYXJ0aWFsbHkgaW1w bGVtZW50IENMSyBBUEkuIEl0IGNhdXNlcyBidWlsZCBmYWlsdXJlIG9mIGtlcm5lbCBkcml2ZXJz IGR1ZQo+Pj4gdG8gdGhlIG1pc3Npbmcgc3ltYm9scyBvZiB0aGUgdW5pbXBsZW1lbnRlZCBwYXJ0 IG9mIENMSyBBUEkuCj4+Pgo+Pj4gVGhlc2UgcGxhdGZvcm1zIGFyZTogQVJNIEVQOTNYWCwgQVJN IE9NQVAxLCBtNjhrIENvbGRGaXJlLCBNSVBTIEFSNywKPj4+ICAgICAgICAgICAgICAgICAgICAg IE1JUFMgUmFsaW5rLgo+Pj4KPj4+IERpc2FibGUgY29tcGlsZS10ZXN0aW5nIGZvciBIQVZFX0xF R0FDWV9DTEs9eS4KPj4+Cj4+PiBSZXBvcnRlZC1ieToga2VybmVsIHRlc3Qgcm9ib3QgPGxrcEBp bnRlbC5jb20+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgT3NpcGVua28gPGRpZ2V0eEBnbWFp bC5jb20+Cj4+Cj4+IFRoYW5rcyBmb3IgeW91ciBwYXRjaCEKPj4KPj4+IC0tLSBhL2luaXQvS2Nv bmZpZwo+Pj4gKysrIGIvaW5pdC9LY29uZmlnCj4+PiBAQCAtMTMxLDcgKzEzMSw3IEBAIGNvbmZp ZyBJTklUX0VOVl9BUkdfTElNSVQKPj4+Cj4+PiAgY29uZmlnIENPTVBJTEVfVEVTVAo+Pj4gICAg ICAgICBib29sICJDb21waWxlIGFsc28gZHJpdmVycyB3aGljaCB3aWxsIG5vdCBsb2FkIgo+Pj4g LSAgICAgICBkZXBlbmRzIG9uIEhBU19JT01FTQo+Pj4gKyAgICAgICBkZXBlbmRzIG9uIEhBU19J T01FTSAmJiAhSEFWRV9MRUdBQ1lfQ0xLCj4+Cj4+IFRoYXQgc291bmRzIGEgYml0IGRyYXN0aWMg dG8gbWUuICBVc3VhbGx5IHdlIGp1c3QgdHJ5IHRvIGltcGxlbWVudCB0aGUKPj4gbWlzc2luZyBm dW5jdGlvbmFsaXR5LCBvciBwcm92aWRlIHN0dWJzLgo+PiBXaGljaCBmdW5jdGlvbnMgYXJlIG1p c3Npbmc/Cj4gCj4gRXZlcnl0aGluZyB0aGF0IGJlbG9uZ3MgdG8gQ09ORklHX0NPTU1PTl9DTEsg bmVlZHMgc3R1YnMuCj4gCj4gVGhhdCBpcyBldmVyeXRoaW5nIHVuZGVyIENPTkZJR19IQVZFX0NM SyBbMV0sIGV4Y2x1ZGluZyBmdW5jdGlvbnMKPiBiZWxvbmdpbmcgdG8gY2xrLWRldnJlcy5vIGFu ZCBjbGstYnVsay5vIFsyXS4gVGhlIEhBVkVfTEVHQUNZX0NMSwo+IHNlbGVjdHMgSEFWRV9DTEss IGJ1dCB0aGUgQ09NTU9OX0NMSyBpcyB1bmRlciBIQVZFX0NMSyB0b28uCj4gCj4gWzFdCj4gaHR0 cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20vbGludXgvdjUuMTMtcmMzL3NvdXJjZS9pbmNsdWRlL2xp bnV4L2Nsay5oI0w3ODYKPiBbMl0KPiBodHRwczovL2VsaXhpci5ib290bGluLmNvbS9saW51eC92 NS4xMy1yYzMvc291cmNlL2RyaXZlcnMvY2xrL01ha2VmaWxlI0wzCj4gCj4gVGhpcyBwcm9ibGVt IGlzIHJlcGVhdGVkIG92ZXIgYW5kIG92ZXIgYWdhaW4gZm9yIHRoZSBwYXN0IHllYXJzLiBTb21l Cj4gbWFpbnRhaW5lcnMgYXJlIGFkZGluZyAiZGVwZW5kcyBvbiBDT01NT05fQ0xLIiBmb3IgQ09N UElMRV9URVNUIG9mIGVhY2gKPiBkcml2ZXIsIGJ1dCB0aGlzIGRvZXNuJ3Qgc29sdmUgdGhlIHJv b3Qgb2YgdGhlIHByb2JsZW0sIGFuZCB0aHVzLCBpdCdzCj4gY29uc3RhbnRseSByZW9jY3Vycmlu Zy4KPiAKPiBSZWNlbnRseSBLcnp5c3p0b2YgS296bG93c2tpIGFkZGVkIGNvdXBsZSBtb3JlIGNs ayBzdHVicyBmb3IgTUlQUywgYnV0Cj4gc3RpbGwgbG90cyBvZiBzdHVicyBhcmUgbWlzc2luZy4g U29tZSBwbGF0Zm9ybXMgZG9uJ3QgaGF2ZSBhbnkgc3R1YnMgYXQKPiBhbGwgYW5kIGFwcGFyZW50 bHkgbm9ib2R5IGNhcmVzIHRvIGZpeCB0aGVtLgo+IAo+IFRoZXJlIDMgcG9zc2libGUgc29sdXRp b25zOgo+IAo+IDEuIEZhY3RvciBvdXQgQ09NTU9OX0NMSyBmcm9tIEhBVkVfTEVHQUNZX0NMSywg aWYgdGhpcyBpcyBwb3NzaWJsZQo+IDIuIEJ1aWxkIHN0dWJzIHVuaXZlcnNhbGx5LCBtYXliZSB1 c2luZyB3ZWFrIGZ1bmN0aW9ucy4KCkkgdm90ZSBmb3IgdGhpcyBvbmUgLSBnbG9iYWwgc3R1YnMu CgpPciBmb3IgYSBuZXcgb25lOgo0LiBEaXNhYmxlIENPTVBJTEVfVEVTVCBmb3Igc3BlY2lmaWMg cGxhdGZvcm1zIChtZW50aW9uZWQgaW4gY29tbWl0Cm1zZykuIEV2ZW50dWFsbHkgY291bGQgYmUg bGlrZToKY29uZmlnIFJBTElOSwoJZGVwZW5kcyAhQ09NUElMRV9URVNUIHx8IChDT01QSUxFX1RF U1QgJiYgQ09NTU9OX0NMSykKCldoeT8gQmVjYXVzZSBpdCBpcyBleHBlY3RlZCB0aGF0IGEgZHJp dmVyIHJlcXVpcmluZy91c2luZyBtaXNzaW5nIGNsb2NrCnN0dWJzIHdvbid0IHJ1biBvbiBzdWNo IGxlZ2FjeSBwbGF0Zm9ybS4gQ3VycmVudGx5IGl0IGNhbm5vdCBydW4gYmVjYXVzZQpzaW1wbHkg bWlzc2luZyBzdHVicyB3aWxsIGJyZWFrIGJ1aWxkLiBPcHRpb24gKDIpIHdvdWxkIG1ha2UgdGhl bQpjb21waWxlYWJsZSBidXQgbm90IHJ1bm5hYmxlLCB3aGljaCBpcyBmaW5lLiBIb3dldmVyIGhh dmluZyBhIGJ1aWxkIHRpbWUKZmFpbHVyZSBpcyBiZXR0ZXIsIHNvIG1heWJlIGxldCdzIGp1c3Qg aXNvbGF0ZSBwbGF0Zm9ybXMgd2hpY2ggYXJlIHZlcnkKcG9vciBpbiBjb21waWxlIHRlc3Rpbmcg YW5kIGRvbid0IGVuYWJsZSB0aGVtIGZvciBtb3N0IG9mIHRoZSBjb25maWdzLgoKCkJlc3QgcmVn YXJkcywKS3J6eXN6dG9mCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxp c3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0 aW5mby9saW51eC1hcm0ta2VybmVsCg==