From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 606F11E885; Tue, 9 Apr 2024 11:13:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.14 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712661188; cv=none; b=MLBwAcQl3SPHuAT3WVJs0UGMoJMXOJONxB1uYA4XsaPcrv0u4sQsomA+OgtOy/zyvBbqsdA5XHfNzd06miizB9EYqBepP5ay1tAml0/w8q+OWT3D9HPt71ZnVBaAyMcGZ5zif+TTvBoRNnlAwww5toZuB5bNKUwx++xR5WFKDEk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712661188; c=relaxed/simple; bh=NXG0UT6jJCzP0INeEwW/eyMrQnypHmCbGHpHQ4/tzFk=; h=From:To:Cc:Subject:In-Reply-To:References:Date:Message-ID: MIME-Version:Content-Type; b=HAYQ/WIzDKoMCTEaaK3YQwTpmNNDPMaL3Egm8w+/1sTjgMgO+54pwx/P2OKR5DGS44gSLSXTIe+uo3Rkt0dsu06+7TpJw43MW6wvXMroDvqX4IV9NLFhb9gAjabmpggst0QKJNjKbjRj2RjtDjkvNv+CoiKaJjxsFI06TtXKS/8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=Xi22GX88; arc=none smtp.client-ip=192.198.163.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="Xi22GX88" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1712661187; x=1744197187; h=from:to:cc:subject:in-reply-to:references:date: message-id:mime-version:content-transfer-encoding; bh=NXG0UT6jJCzP0INeEwW/eyMrQnypHmCbGHpHQ4/tzFk=; b=Xi22GX88U1daFPUCOgHwADSghrc9wPJZrA6jPdVFaKNrHl5sug+u6uqD 6V2kV3EidCGPXY72TphcvKOlozuReDVXF+JGrRECpfAZ3wEWEbL6pYTcN z7n7r1aHYYPVgNFeyqmam/iWFYtDGbqeyohBPF6NAzRtcqnLCE9nhfqZi Cqi/UJrgTUG1NlNsJrQwVIcsIeM3GkF1uwzsYvLj2fec7d26AcGxFcqTV M6NbTwNLlJk/8wG3fpTIeuw9vwvkIBzuf3vg3+bl+ECF/3NyUr8h3deaz 7QLukhjm4dfIQzMLQ8sEb0UOr2V7dublb9KU4cQqUwQAc42yHdspIRjm3 g==; X-CSE-ConnectionGUID: TYsUstVIS3qa9XKE1QyBow== X-CSE-MsgGUID: TSnbcEnNRe2aYH9qbkoChg== X-IronPort-AV: E=McAfee;i="6600,9927,11038"; a="8199254" X-IronPort-AV: E=Sophos;i="6.07,189,1708416000"; d="scan'208";a="8199254" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Apr 2024 04:13:06 -0700 X-CSE-ConnectionGUID: SRL5sb7wTM21oLCg8Mjllg== X-CSE-MsgGUID: JnnQ0X5DR22ejbOutQuriA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,189,1708416000"; d="scan'208";a="24677841" Received: from mserban-mobl1.ger.corp.intel.com (HELO localhost) ([10.252.59.228]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Apr 2024 04:13:02 -0700 From: Jani Nikula To: Geert Uytterhoeven Cc: Maxime Ripard , Maarten Lankhorst , Thomas Zimmermann , David Airlie , Daniel Vetter , dri-devel@lists.freedesktop.org, Lucas De Marchi , kernel test robot , linux-renesas-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kbuild Subject: Re: [PATCH v3 00/13] drm/display: Convert helpers Kconfig symbols to depends on In-Reply-To: Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20240327-kms-kconfig-helpers-v3-0-eafee11b84b3@kernel.org> <87sezu97id.fsf@intel.com> Date: Tue, 09 Apr 2024 14:12:59 +0300 Message-ID: <87edbe94ck.fsf@intel.com> Precedence: bulk X-Mailing-List: linux-kbuild@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Tue, 09 Apr 2024, Geert Uytterhoeven wrote: > Hi Jani, > > On Tue, Apr 9, 2024 at 12:04=E2=80=AFPM Jani Nikula wrote: >> On Tue, 09 Apr 2024, Geert Uytterhoeven wrote: >> > The user should not need to know which helpers are needed for the driv= er >> > he is interested in. When a symbol selects another symbol, it should >> > just make sure the dependencies of the target symbol are met. >> >> It's really not "just make sure". This leads to perpetual illegal >> configurations, and duct tape fixes. Select should not be used for >> visible symbols or symbols with dependencies [1]. > > In other words: none of these helpers should be visible... ...and should have no dependencies? :p > >> What we'd need for usability is not more abuse of select, but rather 1) >> warnings for selecting symbols with dependencies, and 2) a way to enable > > Kconfig already warns if dependencies of selected symbols are not met. But it does lead to cases where a builtin tries to use a symbol from a module, failing at link time, not config time. Then I regularly see patches trying to fix this with IS_REACHABLE(), making it a silent runtime failure instead, when it should've been a config issue. >> a kconfig option with all its dependencies, recursively. This is what we >> lack. > > You cannot force-enable all dependencies of the target symbol, as some > of these dependencies may be impossible to meet on the system you are > configuring a kernel for. Surely kconfig should be able to figure out if they're possible or not. > The current proper way is to add these dependencies to the source > symbol, which is what we have been doing everywhere else. Another > solution may be to teach Kconfig to ignore any symbols that select a > symbol with unmet dependencies. ... It seems like your main argument in favour of using select is that it's more convenient for people who configure the kernel. Because the user should be able to just enable a driver, and that would select everything that's needed. But where do we draw the line? Then what qualifies for "depends on"? Look at config DRM_I915 and where select abuse has lead us. Like, why don't we just select DRM, PCI and X86 as well instead of depend. :p A lot of things we have to select because it appears to generally be the case that if some places select and some places depends on a symbol, it'll lead to circular dependencies. Sure there may be a usability issue with using depends on. But the proper fix isn't hacking in kconfig files, it's to fix the usability in kconfig the tool UI. But nobody steps up, because at least I find the kconfig source to be inpenetrable. I've tried many times, and given up. I mean, if you want to enable a driver D, it could, at a minimum, show you a tree of (possibly alternative) things you also need to enable. But if the dependencies aren't there, you won't even see the config for D. That's not something that should be "fixed" by abusing select in kconfig files. BR, Jani. --=20 Jani Nikula, Intel 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 A4C66C67861 for ; Tue, 9 Apr 2024 11:13:25 +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:MIME-Version:Message-ID:Date:References :In-Reply-To:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=iH3cNpk+V2Grxqa1Y3A9fH00HYVNYfO3XdSOgESxB9U=; b=E+b1OZpfsIuuE8 gA5FYWpBbu0VnfbLpCwCA70bPkXTX54ReYCnaS/5PtbYqEQkLMVg9Gt/J4p0lFxlRvEsDHptUbxxF iAKbC0hZuGLwVLIFOX+TLc7pBm3eSddUaEHpHPiWwLoea245i9vtUK21mqV0dJ/aldWSwN0olNlUS 5nT7oiPDRzLzt3MAdy9EjQX1Rs9oHyAgupYaBCWf/Fv7LIDVFrv5aOjMYhj08JJUFi/mPMZbsrjSR BTTNL1bRT3BJsCF5aVcqxyHohcQiLxkBGlmIxtYtAkThD1mSLOI1ZFxIW9tcKImcyjp6Bu/bLQwpN 5y+OF0HLBubNOXm3qNaQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1ru9Pf-00000001bQh-1Spx; Tue, 09 Apr 2024 11:13:15 +0000 Received: from mgamail.intel.com ([192.198.163.14]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1ru9Pb-00000001bP9-3rFq for linux-arm-kernel@lists.infradead.org; Tue, 09 Apr 2024 11:13:13 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1712661193; x=1744197193; h=from:to:cc:subject:in-reply-to:references:date: message-id:mime-version:content-transfer-encoding; bh=NXG0UT6jJCzP0INeEwW/eyMrQnypHmCbGHpHQ4/tzFk=; b=K1fSLV1/Fw4EMbo/za9kkABE2+wWoRxcYqQ7hvL7gOyu8GLvXyA7NOJ7 YpnrgT9lZjFfvAbZkO+OpSzb19K/DBemGkBOoPQ6DMU4P1xzS+ZXG8BPE VijEFMDExcKc+uRrAJqHqF2Uux5x/PCqrm7RpfjZFe/3pvRNWx8/OarS6 +9Ehz+xE2HqMu+Of9OwAClDqtO70OoS3h95Eilfax65DKxBeJuh9VNZFT 54a9GT0cXKeXcpeAieK6U1NBDy8+or82EZCs6u83FP8TrheDEZQOye69p bbYbcMsE55eouY9SnKTKYAnS1CS+TYdeW1m2WZn9Ix+R29FPPV/Yn/KK8 g==; X-CSE-ConnectionGUID: ZqCYVjIxRWufEyXXrHdkHQ== X-CSE-MsgGUID: LJNnbdYLTd+ljX0xKARmEw== X-IronPort-AV: E=McAfee;i="6600,9927,11038"; a="8199252" X-IronPort-AV: E=Sophos;i="6.07,189,1708416000"; d="scan'208";a="8199252" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Apr 2024 04:13:06 -0700 X-CSE-ConnectionGUID: SRL5sb7wTM21oLCg8Mjllg== X-CSE-MsgGUID: JnnQ0X5DR22ejbOutQuriA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,189,1708416000"; d="scan'208";a="24677841" Received: from mserban-mobl1.ger.corp.intel.com (HELO localhost) ([10.252.59.228]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Apr 2024 04:13:02 -0700 From: Jani Nikula To: Geert Uytterhoeven Cc: Maxime Ripard , Maarten Lankhorst , Thomas Zimmermann , David Airlie , Daniel Vetter , dri-devel@lists.freedesktop.org, Lucas De Marchi , kernel test robot , linux-renesas-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kbuild Subject: Re: [PATCH v3 00/13] drm/display: Convert helpers Kconfig symbols to depends on In-Reply-To: Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20240327-kms-kconfig-helpers-v3-0-eafee11b84b3@kernel.org> <87sezu97id.fsf@intel.com> Date: Tue, 09 Apr 2024 14:12:59 +0300 Message-ID: <87edbe94ck.fsf@intel.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240409_041312_021832_F24A5C0B X-CRM114-Status: GOOD ( 29.63 ) 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 T24gVHVlLCAwOSBBcHIgMjAyNCwgR2VlcnQgVXl0dGVyaG9ldmVuIDxnZWVydEBsaW51eC1tNjhr Lm9yZz4gd3JvdGU6Cj4gSGkgSmFuaSwKPgo+IE9uIFR1ZSwgQXByIDksIDIwMjQgYXQgMTI6MDTi gK9QTSBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29tPiB3cm90ZToKPj4g T24gVHVlLCAwOSBBcHIgMjAyNCwgR2VlcnQgVXl0dGVyaG9ldmVuIDxnZWVydEBsaW51eC1tNjhr Lm9yZz4gd3JvdGU6Cj4+ID4gVGhlIHVzZXIgc2hvdWxkIG5vdCBuZWVkIHRvIGtub3cgd2hpY2gg aGVscGVycyBhcmUgbmVlZGVkIGZvciB0aGUgZHJpdmVyCj4+ID4gaGUgaXMgaW50ZXJlc3RlZCBp bi4gIFdoZW4gYSBzeW1ib2wgc2VsZWN0cyBhbm90aGVyIHN5bWJvbCwgaXQgc2hvdWxkCj4+ID4g anVzdCBtYWtlIHN1cmUgdGhlIGRlcGVuZGVuY2llcyBvZiB0aGUgdGFyZ2V0IHN5bWJvbCBhcmUg bWV0Lgo+Pgo+PiBJdCdzIHJlYWxseSBub3QgImp1c3QgbWFrZSBzdXJlIi4gVGhpcyBsZWFkcyB0 byBwZXJwZXR1YWwgaWxsZWdhbAo+PiBjb25maWd1cmF0aW9ucywgYW5kIGR1Y3QgdGFwZSBmaXhl cy4gU2VsZWN0IHNob3VsZCBub3QgYmUgdXNlZCBmb3IKPj4gdmlzaWJsZSBzeW1ib2xzIG9yIHN5 bWJvbHMgd2l0aCBkZXBlbmRlbmNpZXMgWzFdLgo+Cj4gSW4gb3RoZXIgd29yZHM6IG5vbmUgb2Yg dGhlc2UgaGVscGVycyBzaG91bGQgYmUgdmlzaWJsZS4uLgoKLi4uYW5kIHNob3VsZCBoYXZlIG5v IGRlcGVuZGVuY2llcz8gOnAKCj4KPj4gV2hhdCB3ZSdkIG5lZWQgZm9yIHVzYWJpbGl0eSBpcyBu b3QgbW9yZSBhYnVzZSBvZiBzZWxlY3QsIGJ1dCByYXRoZXIgMSkKPj4gd2FybmluZ3MgZm9yIHNl bGVjdGluZyBzeW1ib2xzIHdpdGggZGVwZW5kZW5jaWVzLCBhbmQgMikgYSB3YXkgdG8gZW5hYmxl Cj4KPiBLY29uZmlnIGFscmVhZHkgd2FybnMgaWYgZGVwZW5kZW5jaWVzIG9mIHNlbGVjdGVkIHN5 bWJvbHMgYXJlIG5vdCBtZXQuCgpCdXQgaXQgZG9lcyBsZWFkIHRvIGNhc2VzIHdoZXJlIGEgYnVp bHRpbiB0cmllcyB0byB1c2UgYSBzeW1ib2wgZnJvbSBhCm1vZHVsZSwgZmFpbGluZyBhdCBsaW5r IHRpbWUsIG5vdCBjb25maWcgdGltZS4gVGhlbiBJIHJlZ3VsYXJseSBzZWUKcGF0Y2hlcyB0cnlp bmcgdG8gZml4IHRoaXMgd2l0aCBJU19SRUFDSEFCTEUoKSwgbWFraW5nIGl0IGEgc2lsZW50CnJ1 bnRpbWUgZmFpbHVyZSBpbnN0ZWFkLCB3aGVuIGl0IHNob3VsZCd2ZSBiZWVuIGEgY29uZmlnIGlz c3VlLgoKPj4gYSBrY29uZmlnIG9wdGlvbiB3aXRoIGFsbCBpdHMgZGVwZW5kZW5jaWVzLCByZWN1 cnNpdmVseS4gVGhpcyBpcyB3aGF0IHdlCj4+IGxhY2suCj4KPiBZb3UgY2Fubm90IGZvcmNlLWVu YWJsZSBhbGwgZGVwZW5kZW5jaWVzIG9mIHRoZSB0YXJnZXQgc3ltYm9sLCBhcyBzb21lCj4gb2Yg dGhlc2UgZGVwZW5kZW5jaWVzIG1heSBiZSBpbXBvc3NpYmxlIHRvIG1lZXQgb24gdGhlIHN5c3Rl bSB5b3UgYXJlCj4gY29uZmlndXJpbmcgYSBrZXJuZWwgZm9yLgoKU3VyZWx5IGtjb25maWcgc2hv dWxkIGJlIGFibGUgdG8gZmlndXJlIG91dCBpZiB0aGV5J3JlIHBvc3NpYmxlIG9yIG5vdC4KCj4g VGhlIGN1cnJlbnQgcHJvcGVyIHdheSBpcyB0byBhZGQgdGhlc2UgZGVwZW5kZW5jaWVzIHRvIHRo ZSBzb3VyY2UKPiBzeW1ib2wsIHdoaWNoIGlzIHdoYXQgd2UgaGF2ZSBiZWVuIGRvaW5nIGV2ZXJ5 d2hlcmUgZWxzZS4gIEFub3RoZXIKPiBzb2x1dGlvbiBtYXkgYmUgdG8gdGVhY2ggS2NvbmZpZyB0 byBpZ25vcmUgYW55IHN5bWJvbHMgdGhhdCBzZWxlY3QgYQo+IHN5bWJvbCB3aXRoIHVubWV0IGRl cGVuZGVuY2llcy4KCi4uLgoKSXQgc2VlbXMgbGlrZSB5b3VyIG1haW4gYXJndW1lbnQgaW4gZmF2 b3VyIG9mIHVzaW5nIHNlbGVjdCBpcyB0aGF0IGl0J3MKbW9yZSBjb252ZW5pZW50IGZvciBwZW9w bGUgd2hvIGNvbmZpZ3VyZSB0aGUga2VybmVsLiBCZWNhdXNlIHRoZSB1c2VyCnNob3VsZCBiZSBh YmxlIHRvIGp1c3QgZW5hYmxlIGEgZHJpdmVyLCBhbmQgdGhhdCB3b3VsZCBzZWxlY3QgZXZlcnl0 aGluZwp0aGF0J3MgbmVlZGVkLiBCdXQgd2hlcmUgZG8gd2UgZHJhdyB0aGUgbGluZT8gVGhlbiB3 aGF0IHF1YWxpZmllcyBmb3IKImRlcGVuZHMgb24iPwoKTG9vayBhdCBjb25maWcgRFJNX0k5MTUg YW5kIHdoZXJlIHNlbGVjdCBhYnVzZSBoYXMgbGVhZCB1cy4gTGlrZSwgd2h5CmRvbid0IHdlIGp1 c3Qgc2VsZWN0IERSTSwgUENJIGFuZCBYODYgYXMgd2VsbCBpbnN0ZWFkIG9mIGRlcGVuZC4gOnAK CkEgbG90IG9mIHRoaW5ncyB3ZSBoYXZlIHRvIHNlbGVjdCBiZWNhdXNlIGl0IGFwcGVhcnMgdG8g Z2VuZXJhbGx5IGJlIHRoZQpjYXNlIHRoYXQgaWYgc29tZSBwbGFjZXMgc2VsZWN0IGFuZCBzb21l IHBsYWNlcyBkZXBlbmRzIG9uIGEgc3ltYm9sLAppdCdsbCBsZWFkIHRvIGNpcmN1bGFyIGRlcGVu ZGVuY2llcy4KClN1cmUgdGhlcmUgbWF5IGJlIGEgdXNhYmlsaXR5IGlzc3VlIHdpdGggdXNpbmcg ZGVwZW5kcyBvbi4gQnV0IHRoZQpwcm9wZXIgZml4IGlzbid0IGhhY2tpbmcgaW4ga2NvbmZpZyBm aWxlcywgaXQncyB0byBmaXggdGhlIHVzYWJpbGl0eSBpbgprY29uZmlnIHRoZSB0b29sIFVJLiBC dXQgbm9ib2R5IHN0ZXBzIHVwLCBiZWNhdXNlIGF0IGxlYXN0IEkgZmluZCB0aGUKa2NvbmZpZyBz b3VyY2UgdG8gYmUgaW5wZW5ldHJhYmxlLiBJJ3ZlIHRyaWVkIG1hbnkgdGltZXMsIGFuZCBnaXZl biB1cC4KCkkgbWVhbiwgaWYgeW91IHdhbnQgdG8gZW5hYmxlIGEgZHJpdmVyIEQsIGl0IGNvdWxk LCBhdCBhIG1pbmltdW0sIHNob3cKeW91IGEgdHJlZSBvZiAocG9zc2libHkgYWx0ZXJuYXRpdmUp IHRoaW5ncyB5b3UgYWxzbyBuZWVkIHRvIGVuYWJsZS4gQnV0CmlmIHRoZSBkZXBlbmRlbmNpZXMg YXJlbid0IHRoZXJlLCB5b3Ugd29uJ3QgZXZlbiBzZWUgdGhlIGNvbmZpZyBmb3IKRC4gVGhhdCdz IG5vdCBzb21ldGhpbmcgdGhhdCBzaG91bGQgYmUgImZpeGVkIiBieSBhYnVzaW5nIHNlbGVjdCBp bgprY29uZmlnIGZpbGVzLgoKCkJSLApKYW5pLgoKCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1r ZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJu ZWwK