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 21050C46CD2 for ; Wed, 24 Jan 2024 15:49: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: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=tAkIkZN0RMJGnKB6/avHGsuXB0OpXMRE6fntnpUfxJ0=; b=uFwbY3e9l1wFKn M8fdCvjfwJe6YhFx3Atb+Ns+nicBeuTNiDUvXpdAb6/xpY1Yc8EZEUnUpv67N8OV3xZN2AzUsrNCm L+EqtbAYKassmD1okUkLpOo4INEI0ZXms71JnS5x+zpHN+Fpux3k1vE/WBdDWiZ7hSU/6sxlkGaIS ietXSohqWktTmZw1G372Okl6eR+NVwBjE0ysLmAaSsB58XV+KuQ4n5uydi0/ETmw9rwoUcsWv3tgB 7owULiq8Wz4XlzJmCYroJXOqX4dTgypEDLlqCisOhf8hlitpvs0A8+ENuALe11iq/Ubg500J6nUWb 4sHOkYpzVGrsvdJI/kaQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rSfUn-0042YH-0C; Wed, 24 Jan 2024 15:48:57 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rSfUj-0042Wp-0V for linux-arm-kernel@lists.infradead.org; Wed, 24 Jan 2024 15:48:55 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 842341FB; Wed, 24 Jan 2024 07:49:33 -0800 (PST) Received: from FVFF77S0Q05N.cambridge.arm.com (FVFF77S0Q05N.cambridge.arm.com [10.1.30.162]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A51303F762; Wed, 24 Jan 2024 07:48:46 -0800 (PST) Date: Wed, 24 Jan 2024 15:48:38 +0000 From: Mark Rutland To: Ian Rogers Cc: linux-kernel@vger.kernel.org, Hector Martin , Marc Zyngier , acme@redhat.com, james.clark@arm.com, john.g.garry@oracle.com, leo.yan@linaro.org, linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, mike.leach@linaro.org, namhyung@kernel.org, suzuki.poulose@arm.com, tmricht@linux.ibm.com, will@kernel.org Subject: Re: [PATCH] perf print-events: make is_event_supported() more robust Message-ID: References: <20240116170348.463479-1-mark.rutland@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240124_074853_289056_6B76F625 X-CRM114-Status: GOOD ( 36.33 ) 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 T24gU2F0LCBKYW4gMjAsIDIwMjQgYXQgMTA6Mjc6MzNBTSAtMDgwMCwgSWFuIFJvZ2VycyB3cm90 ZToKPiBPbiBUdWUsIEphbiAxNiwgMjAyNCBhdCA5OjA04oCvQU0gTWFyayBSdXRsYW5kIDxtYXJr LnJ1dGxhbmRAYXJtLmNvbT4gd3JvdGU6Cj4gPgo+ID4gQ3VycmVudGx5IHRoZSBwZXJmIHRvb2wg ZG9lc24ndCBkZXRlZWN0IHN1cHBvcnQgZm9yIGV4dG5lZGVkIGV2ZW50IHR5cGVzCj4gCj4gbml0 OiBzL2RldGVlY3QvZGV0ZWN0Lwo+IG5pdDogcy9leHRuZWRlZC9leHRlbmRlZC8KCj4gPiBUaHVz IGlzX2V2ZW50X3N1cHBvcnRlZCgpIHdpbGwgZmFpbCB0byBkZXRlY3Qgc3VwcG9ydCBmb3IgYW55 IGV2ZW50cwo+ID4gdGFyZ2V0dGluZyBhbiBBcHBsZSBNMS9NMiBQTVUsIGV2ZW4gd2hlcmUgZXZl bnRzIHdvdWxkIGJlIHN1cHBvcnRlZCB3aXRoCj4gCj4gbml0OiBzL3RhcmdldHRpbmcvdGFyZ2V0 aW5nLwoKPiA+IFRoaXMgcGF0Y2ggdXBkYXRlcyBpc19ldmVudF9zdXBwb3J0ZWQoKSB0byBhZGRp dGlvbmFsbHkgdHJ5IG9wZW5pbmcKPiA+IGV2ZW50cyB3aXRoIHBlcmZfZXZlbnRfYXR0cjo6ZXhj bHVkZV9ndWVzdCBzZXQsIGFsbG93aW5nIHN1cHBvcnQgZm9yCj4gPiBldmVudHMgdG8gYmUgZGV0 ZWN0ZWQgb24gQXBwbGUgTTEvTTIgc3lzdGVtcy4gSSBiZWxlaXZlIHRoYXQgdGhpcyBpcwo+IAo+ IG5pdDogcy9iZWxlaXZlL2JlbGlldmUvCgpXaG9vcHM7IEkndmUgZml4ZWQgdGhvc2UgaW4gbXkg bG9jYWwgdHJlZSBub3cuCgpbLi4uXQoKPiA+IEhlY3RvciwgTWFyYywgSSdkIGFwcHJlY2lhdGUg aWYgZWl0aGVyIG9mIHlvdSBjb3VsZCBnaXZlIHRoaXMgYSBzcGluIG9uCj4gPiB5b3VyIE0xL00y IG1hY2hpbmVzLiBJJ3ZlIGdpdmVuIGl0IGxvY2FsIHRlc3Rpbmcgd2l0aCB0aGUgYXJtX3BtdXYz Cj4gPiBkcml2ZXIgbW9kaWZpZWQgdG8gYmVoYXZlIHRoZSBzYW1lIGFzIHRoZSBhcHBsZV9tMV9w bXUgZHJpdmVyIChyZXF1aXJpbmcKPiA+IGV4Y2x1ZGVfZ3Vlc3QsIGhhdmluZyBhICdjeWNsZXMn IGV2ZW50IGluIHN5c2ZzKSwgYnV0IHRoYXQgbWlnaHQgbm90Cj4gPiBwZXJmZWN0bHkgcmVwbGlj YXRlIHlvdXIgc2V0dXAuCj4gPgo+ID4gVGhlIHBhdGNoIGlzIGJhc2VkIG9uIHRoZSAncGVyZi10 b29scy1mb3ItdjYuOC0xLTIwMjQtMDEtMDknIHRhZyBpbiB0aGUKPiA+IHBlcmYtdG9vbHMgdHJl ZToKPiA+Cj4gPiAgIGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwv Z2l0L3BlcmYvcGVyZi10b29scy5naXQvCj4gPgo+ID4gLi4uIGFuZCBJJ3ZlIHB1c2hlZCBpdCBv dXQgdG8gdGhlICdwZXJmLXRvb2xzL2V2ZW50LXN1cHBvcnRlZC1maWx0ZXJzJwo+ID4gYnJhbmNo IGluIG15IHRyZWU6Cj4gPgo+ID4gICBodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGlu dXgva2VybmVsL2dpdC9tYXJrL2xpbnV4LmdpdC8KPiA+Cj4gPiBUaGlzIHBhdGNoICpzaG91bGQq IG1ha2UgaXQgcG9zc2libGUgdG8gZG86Cj4gPgo+ID4gICAgICAgICBwZXJmIHN0YXQgLWUgY3lj bGVzIC4vd29ya2xvYWQKPiA+ICAgICAgICAgcGVyZiBzdGF0IC1lIGluc3RydWN0aW9ucyAuL3dv cmtsb2FkCj4gPgo+ID4gLi4uIHdpdGggdGhvc2UgJ2N5Y2xlcycgYW5kICdpbnN0cnVjdGlvbnMn IGV2ZW50cyBiZWluZyBhdXRvbWF0aWNhbGx5Cj4gPiBleHBhbmRlZCBhbmQgcmVwb3J0ZWQgYXMg c2VwYXJhdGUgZXZlbnRzIHBlci1QTVUsIHdoaWNoIGlzIGEgbmljZQo+ID4gcXVhbGl0eS1vZi1s aWZlIGltcHJvdmVtZW50Lgo+ID4KPiA+IENvbXBhcmluZyBiZWZvcmUgYW5kIGFmdGVyIHRoaXMg cGF0Y2g6Cj4gPgo+ID4gfCAjIC4vcGVyZi1iZWZvcmUgc3RhdCAtZSBjeWNsZXMgdHJ1ZQo+ID4g fAo+ID4gfCAgUGVyZm9ybWFuY2UgY291bnRlciBzdGF0cyBmb3IgJ3RydWUnOgo+ID4gfAo+ID4g fCAgICAgIDxub3QgY291bnRlZD4gICAgICBjeWNsZXMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMC4wMCUpCj4gPiB8Cj4g PiB8ICAgICAgICAwLjAwMDk5MDI1MCBzZWNvbmRzIHRpbWUgZWxhcHNlZAo+ID4gfAo+ID4gfCAg ICAgICAgMC4wMDA5MzQwMDAgc2Vjb25kcyB1c2VyCj4gPiB8ICAgICAgICAwLjAwMDAwMDAwMCBz ZWNvbmRzIHN5cwo+ID4gfAo+ID4gfCAjIC4vcGVyZi1hZnRlciBzdGF0IC1lIGN5Y2xlcyB0cnVl Cj4gPiB8Cj4gPiB8ICBQZXJmb3JtYW5jZSBjb3VudGVyIHN0YXRzIGZvciAndHJ1ZSc6Cj4gPiB8 Cj4gPiB8ICAgICAgICAgICAgIDk2NTE3NSAgICAgIGFybXY4X3BtdXYzXzAvY3ljbGVzLwo+ID4g fCAgICAgIDxub3QgY291bnRlZD4gICAgICBhcm12OF9wbXV2M18xL2N5Y2xlcy8gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMC4wMCUpCj4gPiB8ICAg ICAgPG5vdCBjb3VudGVkPiAgICAgIGFybXY4X3BtdXYzXzIvY3ljbGVzLyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLjAwJSkKPiA+IHwgICAgICA8 bm90IGNvdW50ZWQ+ICAgICAgYXJtdjhfcG11djNfMy9jeWNsZXMvICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAuMDAlKQo+ID4gfAo+ID4gfCAgICAg ICAgMC4wMDA4MzY1NTUgc2Vjb25kcyB0aW1lIGVsYXBzZWQKPiA+IHwKPiA+IHwgICAgICAgIDAu MDAwODg0MDAwIHNlY29uZHMgdXNlcgo+ID4gfCAgICAgICAgMC4wMDAwMDAwMDAgc2Vjb25kcyBz eXMKPiAKPiBKdXN0IHRvIGNoZWNrLCB0aGlzIGlzIHRoZSBleHBlY3RlZCBleHBhbnNpb24gb2Yg Y3ljbGVzPyBJJ20gdW5jbGVhcgo+IHdoeSA0IGNvcmUgUE1Vcy4KClllcDsgSSBoYWQgYSBmYWtl IGJpZy5MSVRUTEUgc2V0dXAgd2l0aCBmb3VyIGRpc3RpbmN0IG1pY3JvYXJjaGl0ZWN0dXJlcyAo b25lCnBlciBDUFUpLCBzbyB0aGUgZXhwYW5zaW9uIGFib3ZlIGlzIGV4cGVjdGVkLiBJIGhhZCBt ZWFudCB0byBleHBsYWluIHRoYXQgaW4KdGhlIG5vdGVzIGFsb25nIHdpdGggdGhlIG90aGVyIGRy aXZlciBtb2RpZmljYXRpb25zLCBidXQgSSBmb3Jnb3QsIHNvcnJ5IQoKPiA+IFRoaXMgKnNob3Vs ZG4ndCogY2hhbmdlIHRoZSBpbnRlcnBldGF0aW9uIG9mIG5hbWVkLXBtdSBldmVudHMsIGUuZy4K PiA+Cj4gPiAgICAgICAgIHBlcmYgc3RhdCAtZSBhcHBsZV93aGljaGV2ZXJfcG11L2N5Y2xlcy8g Li93b3JrbG9hZAo+ID4KPiA+IC4uLiBzaG91bGQgYmVoYXZlIHRoZSBzYW1lIGFzIHdpdGhvdXQg dGhpcyBwYXRjaAo+ID4KPiA+IENvbXBhcmluZyBiZWZvcmUgYW5kIGFmdGVyIHRoaXMgcGF0Y2g6 Cj4gPgo+ID4gfCAjIC4vcGVyZi1iZWZvcmUgc3RhdCAtZSBhcm12OF9wbXV2M18wL2N5Y2xlcy8g LWUgYXJtdjhfcG11djNfMS9jeWNsZXMvIC1lIGFybXY4X3BtdXYzXzIvY3ljbGVzLyAtZSBhcm12 OF9wbXV2M18zL2N5Y2xlcy8gdHJ1ZQo+ID4gfAo+ID4gfCAgUGVyZm9ybWFuY2UgY291bnRlciBz dGF0cyBmb3IgJ3RydWUnOgo+ID4gfAo+ID4gfCAgICAgIDxub3QgY291bnRlZD4gICAgICBhcm12 OF9wbXV2M18wL2N5Y2xlcy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoMC4wMCUpCj4gPiB8ICAgICAgPG5vdCBjb3VudGVkPiAgICAgIGFybXY4X3Bt dXYzXzEvY3ljbGVzLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgwLjAwJSkKPiA+IHwgICAgICA8bm90IGNvdW50ZWQ+ICAgICAgYXJtdjhfcG11djNf Mi9jeWNsZXMvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKDAuMDAlKQo+ID4gfCAgICAgICAgICAgICA5MDE0MTUgICAgICBhcm12OF9wbXV2M18zL2N5 Y2xlcy8KPiA+IHwKPiA+IHwgICAgICAgIDAuMDAwNzU2NTkwIHNlY29uZHMgdGltZSBlbGFwc2Vk Cj4gPiB8Cj4gPiB8ICAgICAgICAwLjAwMDgxMTAwMCBzZWNvbmRzIHVzZXIKPiA+IHwgICAgICAg IDAuMDAwMDAwMDAwIHNlY29uZHMgc3lzCj4gPiB8Cj4gPiB8ICMgLi9wZXJmLWFmdGVyIHN0YXQg LWUgYXJtdjhfcG11djNfMC9jeWNsZXMvIC1lIGFybXY4X3BtdXYzXzEvY3ljbGVzLyAtZSBhcm12 OF9wbXV2M18yL2N5Y2xlcy8gLWUgYXJtdjhfcG11djNfMy9jeWNsZXMvIHRydWUKPiA+IHwKPiA+ IHwgIFBlcmZvcm1hbmNlIGNvdW50ZXIgc3RhdHMgZm9yICd0cnVlJzoKPiA+IHwKPiA+IHwgICAg ICAgICAgICAgOTIzMzE0ICAgICAgYXJtdjhfcG11djNfMC9jeWNsZXMvCj4gPiB8ICAgICAgPG5v dCBjb3VudGVkPiAgICAgIGFybXY4X3BtdXYzXzEvY3ljbGVzLyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLjAwJSkKPiA+IHwgICAgICA8bm90IGNv dW50ZWQ+ICAgICAgYXJtdjhfcG11djNfMi9jeWNsZXMvICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAuMDAlKQo+ID4gfCAgICAgIDxub3QgY291bnRl ZD4gICAgICBhcm12OF9wbXV2M18zL2N5Y2xlcy8gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoMC4wMCUpCj4gPiB8Cj4gPiB8ICAgICAgICAwLjAwMDc4 MjQyMCBzZWNvbmRzIHRpbWUgZWxhcHNlZAo+ID4gfAo+ID4gfCAgICAgICAgMC4wMDA4MzYwMDAg c2Vjb25kcyB1c2VyCj4gPiB8ICAgICAgICAwLjAwMDAwMDAwMCBzZWNvbmRzIHN5cwo+ID4KPiA+ IE9uZSB0aGluZyBJJ20gc3RpbGwgbG9vaW5nIGludG8gaXMgdGhhdCB0aGlzIGRvZXNuJ3Qgc2Vl bSB0byBkbyBhbnl0aGluZwo+ID4gZm9yIGEgZGVmYXVsdCBwZXJmIHN0YXQgc2Vzc2lvbiwgZS5n Lgo+ID4KPiA+ICAgICAgICAgcGVyZiBzdGF0IC4vd29ya2xvYWQKPiA+Cj4gPiAuLi4gZG9lc24n dCBhdXRvbWF0aWNhbGx5IGV4cGFuZCB0aGUgaW1wbGljaXRseS1jcmVhdGVkIGV2ZW50cyBpbnRv IHBlci1wbXUKPiA+IGV2ZW50cy4KPiAKPiBVZ2gsIHdlYWsgc3ltYm9scy4geDg2IGhhcyBvdmVy cmlkZGVuIHRoZSBkZWZhdWx0IGFkZGluZyBvZiBhdHRyaWJ1dGVzCj4gdG8gZG8gaXQgZm9yIGh5 YnJpZDoKPiBodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9w ZXJmL3BlcmYtdG9vbHMtbmV4dC5naXQvdHJlZS90b29scy9wZXJmL2FyY2gveDg2L3V0aWwvZXZs aXN0LmM/aD1wZXJmLXRvb2xzLW5leHQjbjM2Cj4gSSB0aGluayB3ZSBzaG91bGQgbG9zZSB0aGUg YWRkaW5nIGV2ZW50cyB2aWEgYXR0cmlidXRlcyBhbmQganVzdCBnbyB0bwo+IHVzaW5nIHBhcnNl IGV2ZW50cyBmb3IgZXZlcnl0aGluZy4gSSdsbCBzZWUgaWYgSSBjYW4gZG8gc29tZSBjbGVhbnVw Cj4gYW5kIHRoYXQgc2hvdWxkIHJlc29sdmUgdGhpcyAtIEkgYWxzbyB3YW50IHRvIGNsZWFudXAg dGhlIGRlZmF1bHQKPiBldmVudHMvbWV0cmljcyBhbmQgdGhlIGRldGFpbGVkIG9uZXMgYXMgd2Ug Y2FuIGRyb3AgdGhlIHVuc3VwcG9ydGVkCj4gZXZlbnRzLCBldGMuCgpPazsgc28gSUlVQyB3ZSBj YW4gdHJlYXQgdGhhdCBhcyBhIHNlcGFyYXRlIHByb2JsZW0/IEknbSBoYXBweSB0byB0ZXN0L3Jl dmlldwpwYXRjaGVzIHRoZXJlLgoKPiA+IENvbXBhcmluZyBiZWZvcmUgYW5kIGFmdGVyIHRoaXMg cGF0Y2g6Cj4gPgo+ID4gfCAjIC4vcGVyZi1iZWZvcmUgc3RhdCB0cnVlCj4gPiB8Cj4gPiB8ICBQ ZXJmb3JtYW5jZSBjb3VudGVyIHN0YXRzIGZvciAndHJ1ZSc6Cj4gPiB8Cj4gPiB8ICAgICAgICAg ICAgICAgMC40MiBtc2VjIHRhc2stY2xvY2sgICAgICAgICAgICAgICAgICAgICAgICMgICAgMC41 NjkgQ1BVcyB1dGlsaXplZAo+ID4gfCAgICAgICAgICAgICAgICAgIDAgICAgICBjb250ZXh0LXN3 aXRjaGVzICAgICAgICAgICAgICAgICAjICAgIDAuMDAwIC9zZWMKPiA+IHwgICAgICAgICAgICAg ICAgICAwICAgICAgY3B1LW1pZ3JhdGlvbnMgICAgICAgICAgICAgICAgICAgIyAgICAwLjAwMCAv c2VjCj4gPiB8ICAgICAgICAgICAgICAgICAzOCAgICAgIHBhZ2UtZmF1bHRzICAgICAgICAgICAg ICAgICAgICAgICMgICA4OS43OTYgSy9zZWMKPiA+IHwgICAgICA8bm90IGNvdW50ZWQ+ICAgICAg Y3ljbGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKDAuMDAlKQo+ID4gfCAgICAgIDxub3QgY291bnRlZD4gICAgICBpbnN0 cnVjdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoMC4wMCUpCj4gPiB8ICAgICAgPG5vdCBjb3VudGVkPiAgICAgIGJyYW5jaGVz ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgwLjAwJSkKPiA+IHwgICAgICA8bm90IGNvdW50ZWQ+ICAgICAgYnJhbmNoLW1pc3Nl cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKDAuMDAlKQo+ID4gfAo+ID4gfCAgICAgICAgMC4wMDA3NDQxODUgc2Vjb25kcyB0aW1lIGVs YXBzZWQKPiA+IHwKPiA+IHwgICAgICAgIDAuMDAwNzk1MDAwIHNlY29uZHMgdXNlcgo+ID4gfCAg ICAgICAgMC4wMDAwMDAwMDAgc2Vjb25kcyBzeXMKPiA+IHwKPiA+IHwgIyAuL3BlcmYtYWZ0ZXIg c3RhdCB0cnVlCj4gPiB8Cj4gPiB8ICBQZXJmb3JtYW5jZSBjb3VudGVyIHN0YXRzIGZvciAndHJ1 ZSc6Cj4gPiB8Cj4gPiB8ICAgICAgICAgICAgICAgMC40MyBtc2VjIHRhc2stY2xvY2sgICAgICAg ICAgICAgICAgICAgICAgICMgICAgMC41ODIgQ1BVcyB1dGlsaXplZAo+ID4gfCAgICAgICAgICAg ICAgICAgIDAgICAgICBjb250ZXh0LXN3aXRjaGVzICAgICAgICAgICAgICAgICAjICAgIDAuMDAw IC9zZWMKPiA+IHwgICAgICAgICAgICAgICAgICAwICAgICAgY3B1LW1pZ3JhdGlvbnMgICAgICAg ICAgICAgICAgICAgIyAgICAwLjAwMCAvc2VjCj4gPiB8ICAgICAgICAgICAgICAgICAzOCAgICAg IHBhZ2UtZmF1bHRzICAgICAgICAgICAgICAgICAgICAgICMgICA4OC45NjAgSy9zZWMKPiA+IHwg ICAgICA8bm90IGNvdW50ZWQ+ICAgICAgY3ljbGVzICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAuMDAlKQo+ID4gfCAgICAg IDxub3QgY291bnRlZD4gICAgICBpbnN0cnVjdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMC4wMCUpCj4gPiB8ICAgICAgPG5v dCBjb3VudGVkPiAgICAgIGJyYW5jaGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLjAwJSkKPiA+IHwgICAgICA8bm90IGNv dW50ZWQ+ICAgICAgYnJhbmNoLW1pc3NlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAuMDAlKQo+ID4gfAo+ID4gfCAgICAgICAgMC4w MDA3MzQxMjAgc2Vjb25kcyB0aW1lIGVsYXBzZWQKPiA+IHwKPiA+IHwgICAgICAgIDAuMDAwNzg2 MDAwIHNlY29uZHMgdXNlcgo+ID4gfCAgICAgICAgMC4wMDAwMDAwMDAgc2Vjb25kcyBzeXMKPiA+ Cj4gPiBJYW4sIGhvdyBkb2VzIHRoYXQgYmVoYXZlIG9uIHg4Nj8gSXMgdGhhdCB0aGUgc2FtZSwg b3IgZG8gdGhlIGRlZmF1bHQKPiA+IGV2ZW50cyBnZXQgZXhwYW5kZWQ/Cj4gCj4gVGhlIGRlZmF1 bHQgZXZlbnRzIGFyZSBleHBhbmRlZCwgdGhlIG5vdCBjb3VudGVkIGlzIGEgZmVhdHVyZSBvZiBh Cj4gZmFzdCBiaW5hcnkgKHRydWUgaGVyZSkuIEknbSB0cnlpbmcgdG8gcmVtb3ZlIGN1c3RvbSBj b2RlIHBhdGhzIHNvCj4gdGhhdCB0aGluZ3MgbGlrZSB0aGlzIGRvbid0IGhhcHBlbiwgc29ycnkg dGhhdCB5b3UndmUgY29tZSBhY3Jvc3MKPiBhbm90aGVyIGluc3RhbmNlIGJ1dCBhdCBsZWFzdCBJ IGNhbiBmaXggaXQuCgpIdWg7IEknbSBzdXJwcmlzZWQgdGhhdCB3b3JrcyB3aXRoIHRoZSBuYW1l ZC1wbXUgZXZlbnRzLCBzaW5jZSB0aGF0J3MgdGhlIHNhbWUKJ3RydWUnIGJpbmFyeS4KCklzIHRo ZXJlIGFueXRoaW5nIEkgc2hvdWxkIGdvIGxvb2sgYXQgZm9yIHRoYXQ/CgpNYXJrLgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5l bCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=