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 B578DC001DB for ; Fri, 4 Aug 2023 16:42: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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=CJBPDh5lx7EkUFN10NKlo0j6KVYkyZ2PwP+AaQHyCSc=; b=sauT602rz8a+Cv yrqq8LmAxQO+90rdhcTA0CZ8uF3wctjAjnQg+zaS7WmtmmKrGAtMe4TL9TDDu8IRShyinK9DU1PHl oje4mjk1aCa8fTW0y9UoN+L91xI6aHCCy8EyRpOdSmo5Bdt7RRI7eOB4YnLIXgvew+r+9lvX128Ei tpkkIdx5CwLv9/d5EHnOFlkbbo2g1pUJSVvBFHqv1jpd0+L13ViZJI2Yo7DGBVdEuRjH6oufJAfur izSjLYAP6RUSHWvKM2lbljAsH95CJZ0X6iaZIGZEYC3U4QPetQCC/8aepTW0DfvJS7Lf5ChJEf7cZ 2BCdfdTloB4zUaCyGJBw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qRxs7-00CoIq-0E; Fri, 04 Aug 2023 16:41:51 +0000 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qRxs3-00CoI3-2N for linux-arm-kernel@lists.infradead.org; Fri, 04 Aug 2023 16:41:49 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1691167306; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=TpRfp9EkcGgDnA00HaJLJh34HEC2xPXrwDbKDYV99NU=; b=e9qhUI6S0zD0DTz5qNpcmvgXS39/60Iif5bgfskAZqY26VHsuxpPT94u8o3wD/vPnOupqH 06m/8IWOdN5sx5qL2iZi6l5yD5YPCwxd1ZFC5j3ou1lTZkw+L17m3snh8vJhOIvyx8xykm D6pTM4KDWGlH3igBo083Yg0HQB6G2nw= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-624-ATNWP6w7P_KUXrB3W42QvA-1; Fri, 04 Aug 2023 12:41:43 -0400 X-MC-Unique: ATNWP6w7P_KUXrB3W42QvA-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 6E9DC185A792; Fri, 4 Aug 2023 16:41:43 +0000 (UTC) Received: from [10.22.33.115] (unknown [10.22.33.115]) by smtp.corp.redhat.com (Postfix) with ESMTP id 19940F7FB7; Fri, 4 Aug 2023 16:41:43 +0000 (UTC) Message-ID: <8a5987c4-42f8-2f71-8135-eafedf4a3ef2@redhat.com> Date: Fri, 4 Aug 2023 12:41:42 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: [PATCH v3] perf/arm-dmc620: Fix dmc620_pmu_irqs_lock/cpu_hotplug_lock circular lock dependency Content-Language: en-US To: Will Deacon Cc: Mark Rutland , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Robin Murphy References: <20230722031729.3913953-1-longman@redhat.com> <20230728150614.GF21718@willie-the-truck> <62d4b353-0237-9ec6-a63e-8a7a6764aba5@redhat.com> <3e6a9ca3-3be5-8207-4923-8ecd141c04eb@redhat.com> <20230804162954.GD30679@willie-the-truck> From: Waiman Long In-Reply-To: <20230804162954.GD30679@willie-the-truck> X-Scanned-By: MIMEDefang 3.1 on 10.11.54.5 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230804_094147_866674_70A17A57 X-CRM114-Status: GOOD ( 31.06 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gOC80LzIzIDEyOjI5LCBXaWxsIERlYWNvbiB3cm90ZToKPiBPbiBXZWQsIEF1ZyAwMiwgMjAy MyBhdCAwOTo0NDo1OFBNIC0wNDAwLCBXYWltYW4gTG9uZyB3cm90ZToKPj4gT24gOC8yLzIzIDIx OjM3LCBXYWltYW4gTG9uZyB3cm90ZToKPj4+IE9uIDcvMjgvMjMgMTE6MDYsIFdpbGwgRGVhY29u IHdyb3RlOgo+Pj4+IE9uIEZyaSwgSnVsIDIxLCAyMDIzIGF0IDExOjE3OjI4UE0gLTA0MDAsIFdh aW1hbiBMb25nIHdyb3RlOgo+Pj4+PiBUaGUgZm9sbG93aW5nIGNpcmN1bGFyIGxvY2tpbmcgZGVw ZW5kZW5jeSB3YXMgcmVwb3J0ZWQgd2hlbiBydW5uaW5nCj4+Pj4+IGNwdXMgb25saW5lL29mZmxp bmUgdGVzdCBvbiBhbiBhcm02NCBzeXN0ZW0uCj4+Pj4+Cj4+Pj4+IFvCoMKgIDg0LjE5NTkyM10g Q2hhaW4gZXhpc3RzIG9mOgo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBkbWM2MjBfcG11X2lycXNfbG9jayAtLT4gY3B1X2hvdHBsdWdfbG9jayAtLT4KPj4+Pj4gY3B1 aHBfc3RhdGUtZG93bgo+Pj4+Pgo+Pj4+PiBbwqDCoCA4NC4yMDczMDVdwqAgUG9zc2libGUgdW5z YWZlIGxvY2tpbmcgc2NlbmFyaW86Cj4+Pj4+Cj4+Pj4+IFvCoMKgIDg0LjIxMzIxMl3CoMKgwqDC oMKgwqDCoCBDUFUwwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQ1BVMQo+ Pj4+PiBbwqDCoCA4NC4yMTc3MjldwqDCoMKgwqDCoMKgwqAgLS0tLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIC0tLS0KPj4+Pj4gW8KgwqAgODQuMjIyMjQ3XcKgwqAgbG9j ayhjcHVocF9zdGF0ZS1kb3duKTsKPj4+Pj4gW8KgwqAgODQuMjI1ODk5XSBsb2NrKGNwdV9ob3Rw bHVnX2xvY2spOwo+Pj4+PiBbwqDCoCA4NC4yMzIwNjhdIGxvY2soY3B1aHBfc3RhdGUtZG93bik7 Cj4+Pj4+IFvCoMKgIDg0LjIzODIzN13CoMKgIGxvY2soZG1jNjIwX3BtdV9pcnFzX2xvY2spOwo+ Pj4+PiBbwqDCoCA4NC4yNDIyMzZdCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAqKiogREVBRExPQ0sgKioqCj4+Pj4+Cj4+Pj4+IFRoZSBwcm9ibGVtYXRpYyBsb2NraW5n IG9yZGVyIHNlZW1zIHRvIGJlCj4+Pj4+Cj4+Pj4+ICDCoMKgwqDCoGxvY2soZG1jNjIwX3BtdV9p cnFzX2xvY2spIC0tPiBsb2NrKGNwdV9ob3RwbHVnX2xvY2spCj4+Pj4+Cj4+Pj4+IFRoaXMgbG9j a2luZyBvcmRlciBoYXBwZW5zIHdoZW4gZG1jNjIwX3BtdV9nZXRfaXJxKCkgaXMgY2FsbGVkIGZy b20KPj4+Pj4gZG1jNjIwX3BtdV9kZXZpY2VfcHJvYmUoKS4gU2luY2UgZG1jNjIwX3BtdV9pcnFz X2xvY2sgaXMgdXNlZCBmb3IKPj4+Pj4gcHJvdGVjdGluZyB0aGUgZG1jNjIwX3BtdV9pcnFzIHN0 cnVjdHVyZSBvbmx5LCB3ZSBkb24ndCBhY3R1YWxseSBuZWVkCj4+Pj4+IHRvIGhvbGQgdGhlIGxv Y2sgd2hlbiBhZGRpbmcgYSBuZXcgaW5zdGFuY2UgdG8gdGhlIENQVSBob3RwbHVnCj4+Pj4+IHN1 YnN5c3RlbS4KPj4+Pj4KPj4+Pj4gRml4IHRoaXMgcG9zc2libGUgZGVhZGxvY2sgc2NlbmFyaW8g YnkgcmVsZWFzaW5nIHRoZSBsb2NrIGJlZm9yZQo+Pj4+PiBjYWxsaW5nIGNwdWhwX3N0YXRlX2Fk ZF9pbnN0YW5jZV9ub2NhbGxzKCkgYW5kIHJlYWNxdWlyaW5nIGl0Cj4+Pj4+IGFmdGVyd2FyZC4K Pj4+Pj4gVG8gYXZvaWQgdGhlIHBvc3NpYmlsaXR5IG9mIDIgcmFjaW5nIGRtYzYyMF9wbXVfZ2V0 X2lycSgpIGNhbGxzCj4+Pj4+IGluc2VydGluZwo+Pj4+PiBkdXBsaWNhdGVkIGRtYzYyMF9wbXVf aXJxIHN0cnVjdHVyZXMgd2l0aCB0aGUgc2FtZSBpcnEgbnVtYmVyLCBhIGR1bW15Cj4+Pj4+IGVu dHJ5IGlzIGluc2VydGVkIGJlZm9yZSByZWxlYXNpbmcgdGhlIGxvY2sgd2hpY2ggd2lsbCBibG9j ayBhCj4+Pj4+IGNvbXBldGluZwo+Pj4+PiB0aHJlYWQgZnJvbSBpbnNlcnRpbmcgYW5vdGhlciBp cnEgc3RydWN0dXJlIG9mIHRoZSBzYW1lIGlycSBudW1iZXIuCj4+Pj4+Cj4+Pj4+IFN1Z2dlc3Rl ZC1ieTogUm9iaW4gTXVycGh5IDxyb2Jpbi5tdXJwaHlAYXJtLmNvbT4KPj4+Pj4gU2lnbmVkLW9m Zi1ieTogV2FpbWFuIExvbmcgPGxvbmdtYW5AcmVkaGF0LmNvbT4KPj4+Pj4gLS0tCj4+Pj4+ICDC oCBkcml2ZXJzL3BlcmYvYXJtX2RtYzYyMF9wbXUuYyB8IDI4ICsrKysrKysrKysrKysrKysrKysr KystLS0tLS0KPj4+Pj4gIMKgIDEgZmlsZSBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCA2IGRl bGV0aW9ucygtKQo+Pj4+Pgo+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wZXJmL2FybV9kbWM2 MjBfcG11LmMKPj4+Pj4gYi9kcml2ZXJzL3BlcmYvYXJtX2RtYzYyMF9wbXUuYwo+Pj4+PiBpbmRl eCA5ZDBmMDFjNDQ1NWEuLjdjYWZkNGRkNDUyMiAxMDA2NDQKPj4+Pj4gLS0tIGEvZHJpdmVycy9w ZXJmL2FybV9kbWM2MjBfcG11LmMKPj4+Pj4gKysrIGIvZHJpdmVycy9wZXJmL2FybV9kbWM2MjBf cG11LmMKPj4+Pj4gQEAgLTc2LDYgKzc2LDcgQEAgc3RydWN0IGRtYzYyMF9wbXVfaXJxIHsKPj4+ Pj4gIMKgwqDCoMKgwqAgcmVmY291bnRfdCByZWZjb3VudDsKPj4+Pj4gIMKgwqDCoMKgwqAgdW5z aWduZWQgaW50IGlycV9udW07Cj4+Pj4+ICDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCBjcHU7Cj4+ Pj4+ICvCoMKgwqAgdW5zaWduZWQgaW50IHZhbGlkOwo+Pj4+PiAgwqAgfTsKPj4+Pj4gIMKgIMKg IHN0cnVjdCBkbWM2MjBfcG11IHsKPj4+Pj4gQEAgLTQyMyw5ICs0MjQsMTQgQEAgc3RhdGljIHN0 cnVjdCBkbWM2MjBfcG11X2lycQo+Pj4+PiAqX19kbWM2MjBfcG11X2dldF9pcnEoaW50IGlycV9u dW0pCj4+Pj4+ICDCoMKgwqDCoMKgIHN0cnVjdCBkbWM2MjBfcG11X2lycSAqaXJxOwo+Pj4+PiAg wqDCoMKgwqDCoCBpbnQgcmV0Owo+Pj4+PiAgwqAgLcKgwqDCoCBsaXN0X2Zvcl9lYWNoX2VudHJ5 KGlycSwgJmRtYzYyMF9wbXVfaXJxcywgaXJxc19ub2RlKQo+Pj4+PiAtwqDCoMKgwqDCoMKgwqAg aWYgKGlycS0+aXJxX251bSA9PSBpcnFfbnVtICYmCj4+Pj4+IHJlZmNvdW50X2luY19ub3RfemVy bygmaXJxLT5yZWZjb3VudCkpCj4+Pj4+ICvCoMKgwqAgbGlzdF9mb3JfZWFjaF9lbnRyeShpcnEs ICZkbWM2MjBfcG11X2lycXMsIGlycXNfbm9kZSkgewo+Pj4+PiArwqDCoMKgwqDCoMKgwqAgaWYg KGlycS0+aXJxX251bSAhPSBpcnFfbnVtKQo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBj b250aW51ZTsKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGlmICghaXJxLT52YWxpZCkKPj4+Pj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIEVSUl9QVFIoLUVBR0FJTik7wqDCoMKgIC8qIFRy eSBhZ2FpbiBsYXRlciAqLwo+Pj4+IEl0IGxvb2tzIGxpa2UgdGhpcyBjYW4gYnViYmxlIHVwIHRv IHRoZSBwcm9iZSgpIHJvdXRpbmUuIERvZXMgdGhlIGRyaXZlcgo+Pj4+IGNvcmUgaGFuZGxlIC1F QUdBSU4gY29taW5nIGJhY2sgZnJvbSBhIHByb2JlIHJvdXRpbmU/Cj4+PiBSaWdodCwgSSBzaG91 bGQgYWRkIGNvZGUgdG8gaGFuZGxlIHRoaXMgZXJyb3IgY29uZGl0aW9uLiBJIHRoaW5rIGl0IGNh bgo+Pj4gYmUgaGFuZGxlZCBpbiBkbWM2MjBfcG11X2dldF9pcnEoKS4gVGhlIGltcG9ydGFudCB0 aGluZyBpcyB0byByZWxlYXNlCj4+PiB0aGUgbXV0ZXgsIHdhaXQgYSBmZXcgbXMgYW5kIHRyeSBh Z2Fpbi4gV2hhdCBkbyB5b3UgdGhpbms/Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAocmVmY291 bnRfaW5jX25vdF96ZXJvKCZpcnEtPnJlZmNvdW50KSkKPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHJldHVybiBpcnE7Cj4+Pj4+ICvCoMKgwqAgfQo+Pj4+PiAgwqAgwqDCoMKgwqDC oCBpcnEgPSBremFsbG9jKHNpemVvZigqaXJxKSwgR0ZQX0tFUk5FTCk7Cj4+Pj4+ICDCoMKgwqDC oMKgIGlmICghaXJxKQo+Pj4+PiBAQCAtNDQ3LDEzICs0NTMsMjMgQEAgc3RhdGljIHN0cnVjdCBk bWM2MjBfcG11X2lycQo+Pj4+PiAqX19kbWM2MjBfcG11X2dldF9pcnEoaW50IGlycV9udW0pCj4+ Pj4+ICDCoMKgwqDCoMKgIGlmIChyZXQpCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBv dXRfZnJlZV9pcnE7Cj4+Pj4+ICDCoCAtwqDCoMKgIHJldCA9IGNwdWhwX3N0YXRlX2FkZF9pbnN0 YW5jZV9ub2NhbGxzKGNwdWhwX3N0YXRlX251bSwKPj4+Pj4gJmlycS0+bm9kZSk7Cj4+Pj4+IC3C oMKgwqAgaWYgKHJldCkKPj4+Pj4gLcKgwqDCoMKgwqDCoMKgIGdvdG8gb3V0X2ZyZWVfaXJxOwo+ Pj4+PiAtCj4+Pj4+ICDCoMKgwqDCoMKgIGlycS0+aXJxX251bSA9IGlycV9udW07Cj4+Pj4+ICDC oMKgwqDCoMKgIGxpc3RfYWRkKCZpcnEtPmlycXNfbm9kZSwgJmRtYzYyMF9wbXVfaXJxcyk7Cj4+ Pj4+ICDCoCArwqDCoMKgIC8qCj4+Pj4+ICvCoMKgwqDCoCAqIFJlbGVhc2UgZG1jNjIwX3BtdV9p cnFzX2xvY2sgYmVmb3JlIGNhbGxpbmcKPj4+Pj4gK8KgwqDCoMKgICogY3B1aHBfc3RhdGVfYWRk X2luc3RhbmNlX25vY2FsbHMoKSBhbmQgcmVhY3F1aXJlIGl0IGFmdGVyd2FyZC4KPj4+Pj4gK8Kg wqDCoMKgICovCj4+Pj4+ICvCoMKgwqAgbXV0ZXhfdW5sb2NrKCZkbWM2MjBfcG11X2lycXNfbG9j ayk7Cj4+Pj4+ICvCoMKgwqAgcmV0ID0gY3B1aHBfc3RhdGVfYWRkX2luc3RhbmNlX25vY2FsbHMo Y3B1aHBfc3RhdGVfbnVtLAo+Pj4+PiAmaXJxLT5ub2RlKTsKPj4+Pj4gK8KgwqDCoCBtdXRleF9s b2NrKCZkbWM2MjBfcG11X2lycXNfbG9jayk7Cj4+Pj4+ICsKPj4+Pj4gK8KgwqDCoCBpZiAocmV0 KSB7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBsaXN0X2RlbCgmaXJxLT5pcnFzX25vZGUpOwo+Pj4+ PiArwqDCoMKgwqDCoMKgwqAgZ290byBvdXRfZnJlZV9pcnE7Cj4+Pj4+ICvCoMKgwqAgfQo+Pj4+ PiArCj4+Pj4+ICvCoMKgwqAgaXJxLT52YWxpZCA9IHRydWU7Cj4+Pj4gRG8geW91IGFjdHVhbGx5 IG5lZWQgYSBuZXcgZmxhZyBoZXJlLCBvciBjb3VsZCB3ZSB1c2UgYSByZWZjb3VudCBvZiB6ZXJv Cj4+Pj4gdG8gaW5kaWNhdGUgdGhhdCB0aGUgaXJxIGRlc2NyaXB0b3IgaXMgc3RpbGwgYmVpbmcg Y29uc3RydWN0ZWQ/Cj4+PiBBIHJlZmNvdW50IG9mIHplcm8gY2FuIGFsc28gbWVhbiB0aGF0IGFu IGV4aXN0aW5nIGlycSBpcyBhYm91dCB0byBiZQo+Pj4gcmVtb3ZlZC4gUmlnaHQ/IFNvIEkgZG9u J3QgdGhpbmsgd2UgY2FuIHVzZSB0aGF0IGZvciB0aGlzIHB1cnBvc2UuCj4+PiBCZXNpZGVzLCB0 aGVyZSBpcyBhIDQtYnl0ZSBob2xlIGluIHRoZSBzdHJ1Y3R1cmUgYW55d2F5IGZvciBhcm02NC4K Pj4gQWx0ZXJuYXRpdmVseSwgSSBjYW4gdXNlIGEgc3BlY2lhbCByZWZlcmVuY2UgY291bnQgdmFs dWUsIHNheSAtMSwgdG8gc2lnbmFsCj4+IHRoYXQgdGhlIGlycSBpcyBub3QgdmFsaWQgeWV0LiBX aGF0IGRvIHlvdSB0aGluaz8KPiBJZiB0aGUgZGV2aWNlIGlzIGJlaW5nIHJlbW92ZWQsIHdlIHNo b3VsZCB0ZWFyZG93biB0aGUgaXJxIGhhbmRsZXIgZmlyc3QsCj4gc28gSSBkb24ndCBzZWUgd2h5 IHRoZSByZWZjb3VudCBpc24ndCB0aGUgcmlnaHQgdGhpbmcuCgpBY2NvcmRpbmcgdG8gdGhlIGN1 cnJlbnQgY29kZSwgYSByZWZjb3VudCBvZiAwIHdpbGwgY2F1c2UgdGhlIGNhbGxlciB0byAKc2tp cCB0aGUgZW50cnkgYW5kIGV2ZW50dWFsbHkgY3JlYXRlIGEgbmV3IGlycSBpdHNlbGYuIFRoYXQg bWF5IGNhdXNlIAp0aGUgY3JlYXRpb24gb2YgMiBkbWM2MjBfcG11X2lycSBzdHJ1Y3R1cmVzIHdp dGggdGhlIHNhbWUgaXJxIG51bWJlci4gCldpbGwgdGhhdCBiZSBhIHByb2JsZW0/IFRoZSByZWFz b24gd2h5IEkgc2VlIGEgcHJvYmxlbSB3aXRoIGEgcmVmY291bnQgCm9mIDAgYmVjYXVzZSBpdCBj YW4gbm93IHNpZ25hbCBib3RoIHRoZSBjcmVhdGlvbiBvZiB0aGUgbmV3IGlycSBvciB0aGUgCnJl dGlyZW1lbnQgb2YgYW4gb2xkIGlycSB0aGF0IGlzIHRvIGJlIHRlYXJlZCBkb3duLgoKQ2hlZXJz LApMb25nbWFuCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5p bmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtYXJtLWtlcm5lbAo=