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 13711CCA481 for ; Mon, 20 Jun 2022 13:30:08 +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: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=BTXsoIX6ZDQFSZYrjokOhFy42RqQlQzNCVzRv9Sh7xg=; b=b8mBhRSvJ+UHWy 7Dcv6x4rl/9iaKlXRRnyKHjqwBdfZ+aQGOvVR57Y/g6U9HFdDBYxnncgGoi30+Ma5BBLR8wWXfkgs SBOP9eXCSYFN9S+IWijELMGKDwP5y+d4A5m0psgYJyKUVZbOISIunFF+h35Qd27fsdqjS6pkjpyVv 88EVn2jeld3+pDCg56wsfYDjpVpN/FythWN6S1V1KFtQmTpAb1dUA81SA3Yytopb0TTupKKOE3Dfw 4pSxTAunxQlFcIUquQ4fMzXK7/yMPNU8kURv599AZEli/kKYLmdUReTRpqQKdbwjty1XrhZjkBZCc Ps/EOW4TvUxvpM4Nquzw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o3HSV-000qf7-DC; Mon, 20 Jun 2022 13:28:52 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o3HRZ-000q7y-Ae; Mon, 20 Jun 2022 13:27:57 +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 3B1A6D6E; Mon, 20 Jun 2022 06:27:45 -0700 (PDT) Received: from [192.168.178.35] (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 671113F792; Mon, 20 Jun 2022 06:27:43 -0700 (PDT) Message-ID: Date: Mon, 20 Jun 2022 15:27:33 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Subject: Re: [PATCH v3 15/16] arch_topology: Set cluster identifier in each core/thread from /cpu-map Content-Language: en-US To: Sudeep Holla Cc: Vincent Guittot , linux-kernel@vger.kernel.org, Atish Patra , Atish Patra , Morten Rasmussen , Qing Wang , linux-arm-kernel@lists.infradead.org, linux-riscv@lists.infradead.org, Rob Herring References: <20220525081416.3306043-14-sudeep.holla@arm.com> <20220525081416.3306043-15-sudeep.holla@arm.com> <20220525081416.3306043-16-sudeep.holla@arm.com> <947470ba-35fc-3c72-d01b-c0a7337216a2@arm.com> <20220606102159.dduxmvq4m2fm6gks@bogus> <20220610102753.virkx47uyfsojol6@bogus> <20220613111743.3od6a5dyyogad4ay@bogus> <73574a8f-5c72-8f7e-3dc4-42493131681e@arm.com> <20220617111647.62hsqbpl3bk7xb2y@bogus> From: Dietmar Eggemann In-Reply-To: <20220617111647.62hsqbpl3bk7xb2y@bogus> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220620_062753_531002_7FABB3B3 X-CRM114-Status: GOOD ( 40.81 ) 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 T24gMTcvMDYvMjAyMiAxMzoxNiwgU3VkZWVwIEhvbGxhIHdyb3RlOgo+IE9uIFRodSwgSnVuIDE2 LCAyMDIyIGF0IDA1OjAyOjI4UE0gKzAxMDAsIERpZXRtYXIgRWdnZW1hbm4gd3JvdGU6Cj4+IE9u IDEzLzA2LzIwMjIgMTI6MTcsIFN1ZGVlcCBIb2xsYSB3cm90ZToKPj4+IE9uIE1vbiwgSnVuIDEz LCAyMDIyIGF0IDExOjE5OjM2QU0gKzAyMDAsIERpZXRtYXIgRWdnZW1hbm4gd3JvdGU6Cj4+Pj4g T24gMTAvMDYvMjAyMiAxMjoyNywgU3VkZWVwIEhvbGxhIHdyb3RlOgo+Pj4+PiBPbiBGcmksIEp1 biAxMCwgMjAyMiBhdCAxMjowODo0NFBNICswMjAwLCBWaW5jZW50IEd1aXR0b3Qgd3JvdGU6Cj4+ Pj4+PiBPbiBNb24sIDYgSnVuIDIwMjIgYXQgMTI6MjIsIFN1ZGVlcCBIb2xsYSA8c3VkZWVwLmhv bGxhQGFybS5jb20+IHdyb3RlOgoKWy4uLl0KCj4+PiBXaGF0IGFyZSB5b3UgcmVmZXJyaW5nIGFz ICdnbHVlIHRoZW0gdG9nZXRoZXInLiBBcyBJIHNhaWQgdGhpcyBzZXJpZXMganVzdAo+Pj4gYWRk cmVzcyB0aGUgaGFyZHdhcmUgdG9wb2xvZ3kgYW5kIGlmIHRoZXJlIGlzIGFueSBpbXBhY3Qgb24g c2NoZWQgZG9tYWlucwo+Pj4gdGhlbiBpdCBpcyBkbyB3aXRoIGFsaWdubWVudCB3aXRoIEFDUEkg YW5kIERUIHBsYXRmb3JtIGJlaGF2aW91ci4gSSBhbSBub3QKPj4+IGFkZGluZyBhbnl0aGluZyBt b3JlIHRvIGdsdWUgdG9wb2xvZ3kgYW5kIGluZm8gbmVlZGVkIGZvciBzY2hlZCBkb21haW5zLgo+ Pgo+PiBZb3UgY2FuIGZpeCAoMSkgd2l0aG91dCAoMikgcGFyc2luZyAxLiBsZXZlbCBjbHVzdGVy IG5vZGVzIGFzCj4+IGNsdXN0ZXJfc2libGluZ3MuCj4+Cj4gCj4gVGVjaG5pY2FsbHkgeWVzLCBi dXQgSSBzZWUgbm8gcG9pbnQgaW4gZGVsYXlpbmcgaXQgYXMgaXQgaXMgY29uc2lkZXJlZCBhcwo+ IGJyb2tlbiB3aXRoIHJlc3BlY3QgdG8gdGhlIG1vbWVudCBBQ1BJIGV4cG9zZWQgdGhlIGNvcnJl Y3QgdmFsdWUgYW5kIGF0IHRoZQo+IHNhbWUgdGltZSByZXN1bHRlZCBpbiBleHBvc2luZyBpbmNv cnJlY3QgdmFsdWUgaW4gY2FzZSBvZiBEVC4gSSBhbSByZWZlcnJpbmcKPiB0byB0aGUgc2FtZSBj aGFuZ2UgdGhhdCBpbnRyb2R1Y2VkIFNDSEVEX0NMVVNURVIuIFRoZSBkYW1hZ2UgaXMgZG9uZSBh bmQgaXQKPiBuZWVkcyByZXBhaXJpbmcgQVNBUC4KCk9LLCB0aGVuIGxldHMgYC9zeXMvLi4uL3Rv cG9sb2d5L2NsdXN0ZXJfY3B1c2AgcmVmZXIgdG8gcHVyZQp0b3BvbG9neS1iYXNlZCBjbHVzdGVy IGluZm9ybWF0aW9uLiBUaGlzIGNhbiBiZSBEVCBjbHVzdGVyLW5vZGUKaW5mb3JtYXRpb24gb3Ig QUNQSSBMMy10YWcgaW5mb3JtYXRpb24gZS5nLiBmb3IgS1A5MjAuCgo+Pj4gSW5kZWVkLiBCdXQg SSBkb24ndCBnZXQgd2hhdCB5b3UgbWVhbiBieSAyIGxldmVsIGhlcmUuIEFDUEkgcHV0cyAxc3Qg bGV2ZWwKPj4KPj4gY3B1X21hcCB7Cj4+ICAgc29ja2V0MCB7Cj4+ICAgICBjbHVzdGVyMCB7ICAg IDwtLSAxLiBsZXZlbCBjbHVzdGVyCj4+ICAgICAgIGNsdXN0ZXIwIHsgIDwtLSAyLiBsZXZlbCBj bHVzdGVyICgzIC0tPikKPiAKPiBPaCBJIGhhZCBtaXN1bmRlcnN0b29kIHRoaXMgbGV2ZWwgbm9t ZW5jbGF0dXJlLCBJIHJlZmVyIGl0IGFzIGxlYWYgY2x1c3Rlcgo+IG5vZGUgd2hpY2ggaXMgMi4g bGV2ZWwgY2x1c3RlciBpbiB0aGlzIERUIHNuaXBwZXQuCj4gCj4+ICAgICAgICAgY29yZTAgewo+ Pgo+PiAgICAgICAgIH07Cj4+ICAgICAgICAgY29yZTEgewo+Pgo+PiAgICAgICAgIH07Cj4+ICAg ICAgIGNsdXN0ZXIxIHsKPj4gICAuLi4KPj4KPj4gQXJtdjkgTDIgY29tcGxleGVzOiBlLmcuIFFD IFNNODQ1MDoKPj4KPj4gICAgICAgLi0tLS0tLS0tLS0tLS0tLS4KPj4gQ1BVICAgfDAgMSAyIDMg NCA1IDYgN3wKPj4gICAgICAgKy0tLS0tLS0tLS0tLS0tLSsKPj4gdWFyY2ggfGwgbCBsIGwgbSBt IG0gYnwgKHNvIGNhbGxlZCB0cmktZ2VhcjogbGl0dGxlLCBtZWRpdW0sIGJpZykKPj4gICAgICAg Ky0tLS0tLS0tLS0tLS0tLSsKPj4gICBMMiAgfCAgIHwgICB8IHwgfCB8IHwgPC0tIDIuIGxldmVs IGNsdXN0ZXIsIEFybXY5IEwyIGNvbXBsZXhlcyAoPC0tIDMpCj4gCj4gQWdhaW4gYmVmb3JlIEkg YXNzdW1lLCB3aGF0IGV4YWN0bHkgPC0tMyBoZXJlIGFuZCBpbiBhYm92ZSBzbmlwcGV0IG1lYW4g PwoKSSB3YW50ZWQgdG8gc2hvdyB0aGF0IHdlIGNvdWxkIGVuY29kZSBgMi4gbGV2ZWwgY2x1c3Rl cmAgYXMgYEFybXY5IEwyCmNvbXBsZXhlc2AuIEJ1dCBzaW5jZSB3ZSBhZ3JlZWQgKGFmdGVyIHRo ZSBlbWFpbCB3YXMgc2VudCkgbm90IHRvCnN1cHBvcnQgYG5lc3RlZCBjbHVzdGVyLW5vZGVzYCwg dGhpcyBpZGVhIGRvZXMgbm90IGhvbGQgYW55bW9yZS4KCj4+ICAgICAgICstLS0tLS0tLS0tLS0t LS0rCj4+ICAgTDMgIHw8LS0gICAgICAgICAtLT58Cj4+ICAgICAgICstLS0tLS0tLS0tLS0tLS0r Cj4+ICAgICAgIHw8LS0gY2x1c3RlciAtLT58Cj4gCj4gSSB0aGluayB0aGlzIGlzIDIgbGV2ZWwg Y2x1c3RlciBvciBvbmx5IGNsdXN0ZXIgaW4gdGhpcyBzeXN0ZW0gdy5yLnQgaGFyZHdhcmUuCj4g U28gbGV0cyBub3QgY29uZnVzZSB3aXRoIG11bHRpLWxldmVsIGlmIG5vdCBuZWNlc3NhcnkuCgpO byBuZWVkLCB3ZSBzYWlkIG5vIGBuZXN0ZWQgY2x1c3Rlci1ub2RlYCBzdXBwb3J0IGluIERULgoK Pj4gICAgICAgKy0tLS0tLS0tLS0tLS0tLSsKPj4gICAgICAgfDwtLSAgIERTVSAgIC0tPnwKPj4g ICAgICAgJy0tLS0tLS0tLS0tLS0tLScKPj4KPj4gT25seSBpZiB3ZSBtYXAgKGkpIGludG8gY2x1 c3Rlcl9zaWJsaW5nLCB3ZSBnZXQgdGhlIHNhbWUgaGFyZHdhcmUKPj4gcmVwcmVzZW50YXRpb24g KGZvciB0aGUgdGFzayBzY2hlZHVsZXIpIGZvciBBQ1BJICg0KSBhbmQgRFQgKDUpIHN5c3RlbXMu Cj4+Cj4gCj4gV2hhdCBpcyAoaSkgYWJvdmUgPwoKU29ycnksIChpKSB3YXMgbWVhbnQgdG8gYmUg YDMgLS0+YC4KCj4+ICg0KSBleGFtcGxlczoKPj4KPj4gS3VucGVuZzkyMCAtIDI0IENQVXMgc2hh cmluZyBMTEMgKGNwdV9jb3JlZ3JvdXBfbWFzaygpKSwgNCBDUFVzIHNoYXJpbmcKPj4gTDMtdGFn IChjcHVfY2x1c3Rlcmdyb3VwX21hc2soKSkuCj4+Cj4gCj4gQWdhaW4gZGVjb3VwbGUgY2FjaGUg aW5mbyBhbmQgY2x1c3RlciBpbmZvIGZyb20gaC93LCB5b3UgaGF2ZSBhbGwgdGhlIGluZm8uCj4g WW91IGNhbiBjb3VwbGUgdGhlbSB0b2dldGhlciBpZiB0aGF0IGhlbHBzIHdoZW4geW91IGZlZWQg c2NoZWRfZG9tYWlucy4KCk9LLCB0aGlzIGlzIHdoYXQgd2UgZmluYWxseSBhZ3JlZWQuCgo+PiBY ODYgSmFjb2JzdmlsbGUgLSAyNCBDUFVzIHNoYXJpbmcgTExDIChMMyksIDQgQ1BVcyBzaGFyaW5n IEwyCj4+Cj4+IEFybXY5IEwyIGNvbXBsZXhlczogZS5nLiBRQyBTTTg0NTAgLSA4IENQVXMgc2hh cmluZyBMTEMgKEwzKSwgKGZvciBBNTEwCj4+IChsaXR0bGUgQ1BVcykpIDIgQ1BVcyBzaGFyaW5n IEwyCj4gCj4gWy4uLl0KPiAKPj4+IEFuZCB5ZXMgbHN0b3BvIGRvZXNuJ3QgcmVhZCBjbHVzdGVy IElEcy4gQnV0IHdlIGV4cG9zZSB0aGVtIGluIEFDUEkgc3lzdGVtCj4+PiBhbmQgbm90IG9uIERU IHdoaWNoIHdhcyBteSBtYWluIHBvaW50LgoKT0ssIG5vIGZ1cnRoZXIgZGlzY3Vzc2lvbiBuZWVk ZWQgaGVyZS4gYC9zeXMvLi4uL3RvcG9sb2d5L2NsdXN0ZXJfY3B1c2AKc2hvd3MgTDIgKExMQykg b24gSnVubywgTDMtdGFnIGFuIEtQOTIwIG9yIEwyIG9uIFg4NiBKYWNvYnN2aWxsZS4gVGhlCmNw dV94eHhfbWFzaygpcyBvZiAoZS5nLikgZGVmYXVsdF90b3BvbG9neVtdIGhhdmUgdG8gbWFrZSBz dXJlIHRoYXQgdGhlCnNjaGVkdWxlciBzZWVzIHRoZSBjb3JyZWN0IGluZm9ybWF0aW9uICh0aGUg aGllcmFyY2h5IG9mIGNwdW1hc2tzKS4KCj4+IFVuZGVyc3Rvb2QuIEJ1dCBhIEt1bnBlbmc5MjAg YGNsdXN0ZXJfY3B1c19saXN0YCBmaWxlIHdvdWxkIGNvbnRhaW4KPj4gbG9naWNhbGx5IGRpZmZl cmVudCBpbmZvcm1hdGlvbiB0aGFuIGEgSnVubyBgY2x1c3Rlcl9jcHVzX2xpc3RgIGZpbGUuCj4+ Cj4gQW5kIHdoeSBpcyB0aGF0ID8KCklmIHdlIHNlZSBpdCBmcm9tIHRoZSBhbmdsZSBvZiB0aGUg ZGVmaW5pdGlvbiBvZiBTQ0hFRF9DT05GSUdfQ0xVU1RFUgooYC4uLiB0aGUgbGV2ZWwgb2YgdG9w b2xvZ3kgYWJvdmUgQ1BVcyAuLi5gIHRoZW4gSSBjYW4gc2VlIHRoYXQgYm90aApkZWZpbml0aW9u cyBhcmUgdGhlIHNhbWUuIChDUFVTIHNob3VsZCBiZSByYXRoZXIgYGNvcmVzYCBoZXJlLCBJIGd1 ZXNzPykuCgpbLi4uXQoKPj4+IEFzIHBvaW50ZWQgb3V0IGVhcmxpZXIsIGhhdmUgeW91IGNoZWNr ZWQgQUNQSSBvbiBKdW5vIGFuZCB3aXRoIAo+Pj4gQ09ORklHX1NDSEVEX0NMVVNURVIgPyBJZiB0 aGUgYmVoYXZpb3VyIHdpdGggbXkgc2VyaWVzIG9uIERUIGFuZCBBQ1BJCj4+PiBkaWZmZXJzLCB0 aGVuIGl0IGlzIGFuIGlzc3VlLiBCdXQgQUZBSVUsIGl0IGRvZXNuJ3QgYW5kIHRoYXQgaXMgbXkg bWFpbgo+Pj4gYXJndW1lbnQuIFlvdSBhcmUganVzdCBhc3N1bWluZyB3aGF0IHdlIGhhdmUgb24g SnVubyB3aXRoIERUIGlzIGNvcnJlY3QKPj4+IHdoaWNoIG1heSBiZSB3LnIudCB0byBzY2hlZHVs ZXIgYnV0IGRlZmluaXRlbHkgbm90IHdpdGggcmVzcGVjdCB0byB0aGUKPj4+IGhhcmR3YXJlIHRv cG9sb2d5IGV4cG9zZWQgdG8gdGhlIHVzZXJzLiBTbyBteSBhaW0gaXMgdG8gZ2V0IHRoYXQgZml4 ZWQuCj4+Cj4+IEkgbmV2ZXIgcnVuIEp1bm8gdy8gQUNQSS4gQXJlIHlvdSBzYXlpbmcgdGhhdAo+ PiBmaW5kX2FjcGlfY3B1X3RvcG9sb2d5X2NsdXN0ZXIoKSByZXR1cm5zIGNwdV90b3BvbG9neVtj cHVdLmNsdXN0ZXJfaWQncwo+PiB3aGljaCBtYXRjaCB0aGUgYDEuIGxldmVsIGNsdXN0ZXIgbm9k ZXNgPwo+Pgo+IAo+IEFnYWluIEkgYW0gdG90YWxseSBjb25mdXNlZCBhcyB3aHkgdGhpcyBpcyBu b3cgMS5sZXZlbCBjbHVzdGVyIHdoZXJlIGFzIGFib3ZlCj4gU0RNIHdhcyAyLmxldmVsIGNsdXN0 ZXIuIEJvdGggU29DcyBoYXZlIG9ubHkgMSBsZXZlbCBvZiBjbHVzdGVyLiBXaGlsZSBTRE0KPiBo YXMgMSBEU1UgY2x1c3RlciwgSnVubyBoYXMgMiBjbHVzdGVycy4KCk5vIG5lZWQgaW4gYWdyZWVp bmcgd2hhdCBsZXZlbCAoY291bGQpIHN0YW5kKHMpIGhlcmUgZm9yLiBXZSBzYWlkIGBubwpuZXN0 ZWQgY2x1c3Rlci1ub2RlYC4KCj4+IFRoZSBmdW5jdGlvbiBoZWFkZXIgb2YgZmluZF9hY3BpX2Nw dV90b3BvbG9neV9jbHVzdGVyKCkgc2F5cyB0aGF0IGAuLi4KPj4gdGhlIGNsdXN0ZXIsIGlmIHBy ZXNlbnQgaXMgdGhlIGxldmVsIG9mIHRvcG9sb2d5IGFib3ZlIENQVXMuIC4uLmAuCj4+Cj4gCj4g RXhhY3RseSBhbmQgdGhhdCdzIGhvdyBzeXNmcyBpcyBhbHNvIGRlZmluZWQgYW5kIHdlIGNhbid0 IGdvIGJhY2sgYW5kIGNoYW5nZQo+IHRoYXQgbm93LiBJIGRvbid0IHNlZSBhbnkgaXNzdWUgVEJI LgoKT0suCgo+PiBGcm9tIHRoaXMgcGVyc3BlY3RpdmUgSSBjYW4gc2VlIHlvdXIgcG9pbnQuIEJ1 dCB0aGlzIGlzIHRoZW4gc3RpbGwKPj4gY2xlYXJseSBwb29ybHkgZGVzaWduZWQuCj4gCj4gTm90 IHJlYWxseSBhcyBwZXIgdGhlIGRlZmluaXRpb24uCgpOb3QgZnJvbSB0aGUgdmlld3BvaW50IG9m IHRvcG9sb2d5IGFuZCBjYWNoZWluZm8uIEJ1dCBmcm9tIHRoZSBzY2hlZHVsZXIKYW5kIHRoZSB3 aG9sZSB0aGluZyBnZXRzIGFjdGl2YXRlZCBieSBhIHNjaGVkdWxlciBDT05GSUcgb3B0aW9uLgoK Pj4gSG93IHdvdWxkIHdlIGV2ZXIgc3VwcG9ydCBDT05GSUdfU0NIRURfQ0xVU1RFUgo+PiBpbiBE VCB3aGVuIGl0IHJlYWxseSAocG90ZW50aWFsbHkpIHdvdWxkIGJyaW5nIGEgYmVuZWZpdCAoaS5l LiBpbiB0aGUKPj4gQXJtdjkgTDItY29tcGxleCBjYXNlKSBhbmQgbm90IG9ubHkgY3JlYXRlIHRy b3VibGUgZm9yIHRoZSB0YXNrCj4+IHNjaGVkdWxlciB0byBzZXR1cCBpdHMgZG9tYWlucyBjb3Jy ZWN0bHk/Cj4gCj4gSW5kZWVkLCB0aGF0IGlzIHRoZSBuZXh0IHByb2JsZW0gb25jZSB3ZSBnZXQg YWxsIHRoZXNlIGFsaWduZWQgYWNyb3NzCj4gRFQgYW5kIEFDUEkuIFRoZXkgaGF2ZSBkaXZlcmdl ZCBhbmQgSSBwcmVmZXIgbm90IHRvIGFsbG93IHRoYXQgYW55bW9yZQo+IGJ5IGFkZGluZyBtb3Jl IGRpdmVyZ2VuY2UgZS5nLiB0byBzdXBwb3J0IEFybXY5IEwyLWNvbXBsZXggY2FzZS4gUGxlYXNl Cj4gY29uc2lkZXIgdGhhdCBvbiB0b3Agb2YgdGhlc2UsIEkgYW0gbm90IGFkZHJlc3NpbmcgdGhh dCBhdCB0aGUgbW9tZW50Lgo+IEluIGZhY3QgSSBhbSBub3QgYWRkcmVzc2luZyBhbnkgc2NoZWRf ZG9tYWluIHRvcGljcyBvciBpc3N1ZXMuIEkgaGF2ZSBtYWRlCj4gdGhhdCBjbGVhciDwn5iJLgoK SWYgSSByZWNhbGwgdGhlIGNvbnRlbnQgb2Ygb3VyIGRpc2N1c3Npb24gY29ycmVjdGx5LCBgQXJt djkgTDIKY29tcGxleGVzYCBzdXBwb3J0IGNvdWxkIGNvbWUgZnJvbSBMMiAocHJvYmFibHkgYExM QyAtIDFgID8pIGRldGVjdGlvbgpmcm9tIGNhY2hlaW5mby4gQnV0IHRoaXMgaXMgbm90IHBhcnQg b2YgdGhpcyBwYXRjaC1zZXQuCgo+PiBBbHNvIGluIGNhc2Ugd2Ugc3RpY2sgdG8KPj4gc2V0dGlu ZyBDT05GSUdfU0NIRURfQ0xVU1RFUj0xIGJ5IGRlZmF1bHQsIENMUyBzaG91bGQgYmUgdGhlIGRl ZmF1bHQgTExDCj4+IHNjaGVkIGRvbWFpbiBhbmQgTUMgdGhlIGV4Y2VwdGlvbmFsIG9uZS4gSnVz dCB0byByZXNwZWN0IHRoZSB3YXkgaG93IHRoZQo+PiB0YXNrIHNjaGVkdWxlciByZW1vdmVzIG5v dCB1c2VmdWwgZG9tYWlucyB0b2RheS4KPiAKPiBGaXggdGhlIGNwdV9jbHVzdGVyZ3JvdXBfbWFz ayBvciBhbnkgb3RoZXIgY3B1Xypncm91cF9tYXNrIGFzIHBlciB5b3VyCj4gdGFzdGUuIFRoZSB0 b3BvbG9neSBtYXNrcyBhcmUganVzdCBpbnB1dHMgdG8gdGhlc2UgYW5kIHdpbGwgbm90IGJlIGNo YW5nZWQKPiBvciBkaXZlcmdlZCBmb3IgdGhlc2UgcmVhc29ucy4gU29ycnkgaWYgdGhhdCBpcyBu b3QgaGVscGZ1bCwgYnV0IHRoYXQgaXMgdGhlCj4gcmVhbGl0eSB3aXRoIHN5c2ZzIGV4cG9zZWQg dG8gdGhlIHVzZXItc3BhY2UuCgpBZ3JlZWQuIFdlIGRvbid0IGhhdmUgdG8gcmVseSBvbiB0aGUg dGFzayBzY2hlZHVsZXIgdG8gYnVpbGQgdGhlIHJpZ2h0CnNjaGVkIGRvbWFpbiBoaWVyYXJjaHkg b3V0IG9mIGV2ZXJ5IGNwdV94eHhfbWFzaygpIGZ1bmN0aW9ucy4gV2UgY2FuCnR3ZWFrIGNwdV94 eHhfbWFzaygpIHRvIGdldCB0aGlzIGRvbmUuCgo+Pj4gSWYgeW91IGFyZSBub3QgaGFwcHkgd2l0 aCB0aGF0LCB0aGVuIGhvdyBjYW4gYmUgYmUgaGFwcHkgd2l0aCB3aGF0IGlzIHRoZQo+Pj4gY3Vy cmVudCBiZWhhdmlvdXIgb24gQUNQSSArIGFuZCAtIENPTkZJR19TQ0hFRF9DTFVTVEVSLiBJIGhh dmVuJ3QgZ290Cj4+PiB5b3VyIG9waW5pb24geWV0IG9uIHRoYXQgbWF0dGVyLgo+Pgo+PiBJIGd1 ZXNzIGl0J3MgY2xlYXIgbm93IHRoYXQgQUNQSSArIENPTkZJR19TQ0hFRF9DTFVTVEVSIHdpdGgg YGB0aGUgbGV2ZWwKPj4gb2YgdG9wb2xvZ3kgYWJvdmUgQ1BVc2AgaXMgY29uZ3J1ZW50IHdpdGgg TExDYCBjcmVhdGVzIHRyb3VibGUgdG8gdGhlCj4+IHNjaGVkdWxlci4gU28gSSBkb24ndCBzZWUg d2h5IHdlIHNob3VsZCByZXBsaWNhdGUgdGhpcyBmb3IgRFQuIExldCdzCj4+IGRpc2N1c3MgZnVy dGhlciB0b21vcnJvdyBpbiBwZXJzb24uCj4gCj4gSSBzZWUgaXQgZGlmZmVyZW50bHkuIElmIHRo YXQgY3JlYXRlcyBhIHRyb3VibGUsIGZpeCB0aGF0IGFuZCB5b3Ugd2lsbCBub3QKPiBoYXZlIGFu eSBpc3N1ZXMgd2l0aCBEVCB0b28uCgpPSywgSSB0aGluayB3ZSAoYXJtNjQpIGZvdW5kIGEgd2F5 IHRvIHN1cHBvcnQgYSBkZWZhdWx0CkNPTkZJR19TQ0hFRF9DTFVTVEVSIGFuZCBmaXhpbmcgdGhl IGBKdW5vIGxzdG9wb2AgaXNzdWUgd2l0aCBhIHBvc3NpYmxlCndheSB0byBpbmNsdWRlIGBBcm12 OSBMMiBjb21wbGV4ZXNgIHN1cHBvcnQgdmlhIGNhY2hlaW5mbyBsYXRlci4KCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFp bGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK