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 627A1CD1284 for ; Tue, 9 Apr 2024 14:40:15 +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=iPin96WDtbiOIbLtjzeSUjNaPOmIAYlAA4y8/FfnF1o=; b=tlUbsEBkAKXa09 6XJFXahXJ/nOvIoIT0/qAJRTDsotLNU4VSjiLDKE/1XjYgWaYaHS0rXB62vl82aj/HBRkhlhoSkKr z/6DWdyBKpzZWYN1g5dXhmMc5klZe+P7JaIPjwtLUhEhimEqJby61LFOobliAKJWcAtOAhJcveCca TiRvFQOyC4rX3OjSfWEhl6vKTMF6SABu39skCZdLsJ4N+Cxm+SoS2NTS43ipxLUn1WIdY/IFTSj3p QyP+Fnl63E1XDgIBMpnbNbStrTenYsbLDdAdjuWV8ZcvwhGBorUJwQU0T7E+GavpjgoO1YEZ3q//R Dc7NqUlohR7r+LWPGCBA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1ruCdZ-00000002SeK-2F2O; Tue, 09 Apr 2024 14:39:49 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1ruCdK-00000002SYl-3e9n for linux-arm-kernel@lists.infradead.org; Tue, 09 Apr 2024 14:39:38 +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 A9CEF139F; Tue, 9 Apr 2024 07:40:03 -0700 (PDT) Received: from [10.1.33.185] (XHFQ2J9959.cambridge.arm.com [10.1.33.185]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 78BDA3F766; Tue, 9 Apr 2024 07:39:30 -0700 (PDT) Message-ID: Date: Tue, 9 Apr 2024 15:39:29 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 0/4] Speed up boot with faster linear map creation Content-Language: en-GB To: David Hildenbrand , Itaru Kitayama Cc: Catalin Marinas , Will Deacon , Mark Rutland , Ard Biesheuvel , Donald Dutile , Eric Chanudet , Linux ARM , "linux-kernel@vger.kernel.org" References: <20240404143308.2224141-1-ryan.roberts@arm.com> <533adb77-8c2b-40db-84cb-88de77ab92bb@arm.com> <1d5abb48-08a8-4d83-a681-6915bc7b6907@arm.com> <268FBD1C-B102-4726-A7F4-1125123BDA7A@linux.dev> <5e4dc2fe-2945-4fc5-a533-c8b2d04668a0@redhat.com> From: Ryan Roberts In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240409_073935_327813_EEBD57B5 X-CRM114-Status: GOOD ( 31.84 ) 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 T24gMDkvMDQvMjAyNCAxNToyOSwgRGF2aWQgSGlsZGVuYnJhbmQgd3JvdGU6Cj4gT24gMDkuMDQu MjQgMTY6MTMsIFJ5YW4gUm9iZXJ0cyB3cm90ZToKPj4gT24gMDkvMDQvMjAyNCAxMjo1MSwgRGF2 aWQgSGlsZGVuYnJhbmQgd3JvdGU6Cj4+PiBPbiAwOS4wNC4yNCAxMzoyOSwgRGF2aWQgSGlsZGVu YnJhbmQgd3JvdGU6Cj4+Pj4gT24gMDkuMDQuMjQgMTM6MjIsIERhdmlkIEhpbGRlbmJyYW5kIHdy b3RlOgo+Pj4+PiBPbiAwOS4wNC4yNCAxMjoxMywgSXRhcnUgS2l0YXlhbWEgd3JvdGU6Cj4+Pj4+ Pgo+Pj4+Pj4KPj4+Pj4+PiBPbiBBcHIgOSwgMjAyNCwgYXQgMTk6MDQsIFJ5YW4gUm9iZXJ0cyA8 cnlhbi5yb2JlcnRzQGFybS5jb20+IHdyb3RlOgo+Pj4+Pj4+Cj4+Pj4+Pj4gT24gMDkvMDQvMjAy NCAwMToxMCwgSXRhcnUgS2l0YXlhbWEgd3JvdGU6Cj4+Pj4+Pj4+IEhpIFJ5YW4sCj4+Pj4+Pj4+ Cj4+Pj4+Pj4+PiBPbiBBcHIgOCwgMjAyNCwgYXQgMTY6MzAsIFJ5YW4gUm9iZXJ0cyA8cnlhbi5y b2JlcnRzQGFybS5jb20+IHdyb3RlOgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IE9uIDA2LzA0LzIwMjQg MTE6MzEsIEl0YXJ1IEtpdGF5YW1hIHdyb3RlOgo+Pj4+Pj4+Pj4+IEhpIFJ5YW4sCj4+Pj4+Pj4+ Pj4KPj4+Pj4+Pj4+PiBPbiBTYXQsIEFwciAwNiwgMjAyNCBhdCAwOTozMjozNEFNICswMTAwLCBS eWFuIFJvYmVydHMgd3JvdGU6Cj4+Pj4+Pj4+Pj4+IEhpIEl0YXJ1LAo+Pj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4+PiBPbiAwNS8wNC8yMDI0IDA4OjM5LCBJdGFydSBLaXRheWFtYSB3cm90ZToKPj4+Pj4+ Pj4+Pj4+IE9uIFRodSwgQXByIDA0LCAyMDI0IGF0IDAzOjMzOjA0UE0gKzAxMDAsIFJ5YW4gUm9i ZXJ0cyB3cm90ZToKPj4+Pj4+Pj4+Pj4+PiBIaSBBbGwsCj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ Pj4+PiBJdCB0dXJucyBvdXQgdGhhdCBjcmVhdGluZyB0aGUgbGluZWFyIG1hcCBjYW4gdGFrZSBh IHNpZ25pZmljYW50Cj4+Pj4+Pj4+Pj4+Pj4gcHJvcG9ydGlvbiBvZgo+Pj4+Pj4+Pj4+Pj4+IHRo ZSB0b3RhbCBib290IHRpbWUsIGVzcGVjaWFsbHkgd2hlbiByb2RhdGE9ZnVsbC4gQW5kIG1vc3Qg b2YgdGhlCj4+Pj4+Pj4+Pj4+Pj4gdGltZSBpcyBzcGVudAo+Pj4+Pj4+Pj4+Pj4+IHdhaXRpbmcg b24gc3VwZXJmbHVvdXMgdGxiIGludmFsaWRhdGlvbiBhbmQgbWVtb3J5IGJhcnJpZXJzLiBUaGlz Cj4+Pj4+Pj4+Pj4+Pj4gc2VyaWVzIHJld29ya3MKPj4+Pj4+Pj4+Pj4+PiB0aGUga2VybmVsIHBn dGFibGUgZ2VuZXJhdGlvbiBjb2RlIHRvIHNpZ25pZmljYW50bHkgcmVkdWNlIHRoZSBudW1iZXIK Pj4+Pj4+Pj4+Pj4+PiBvZiB0aG9zZQo+Pj4+Pj4+Pj4+Pj4+IFRMQklzLCBJU0JzIGFuZCBEU0Jz LiBTZWUgZWFjaCBwYXRjaCBmb3IgZGV0YWlscy4KPj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+ IFRoZSBiZWxvdyBzaG93cyB0aGUgZXhlY3V0aW9uIHRpbWUgb2YgbWFwX21lbSgpIGFjcm9zcyBh IGNvdXBsZSBvZgo+Pj4+Pj4+Pj4+Pj4+IGRpZmZlcmVudAo+Pj4+Pj4+Pj4+Pj4+IHN5c3RlbXMg d2l0aCBkaWZmZXJlbnQgUkFNIGNvbmZpZ3VyYXRpb25zLiBXZSBtZWFzdXJlIGFmdGVyIGFwcGx5 aW5nCj4+Pj4+Pj4+Pj4+Pj4gZWFjaCBwYXRjaAo+Pj4+Pj4+Pj4+Pj4+IGFuZCBzaG93IHRoZSBp bXByb3ZlbWVudCByZWxhdGl2ZSB0byBiYXNlICh2Ni45LXJjMik6Cj4+Pj4+Pj4+Pj4+Pj4KPj4+ Pj4+Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCBBcHBsZSBN MiBWTSB8IEFtcGVyZSBBbHRyYXwgQW1wZXJlIEFsdHJhfCBBbXBlcmUKPj4+Pj4+Pj4+Pj4+PiBB bHRyYQo+Pj4+Pj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8 IFZNLCAxNkfCoMKgwqDCoCB8IFZNLCA2NEfCoMKgwqDCoCB8IFZNLCAyNTZHwqDCoMKgIHwgTWV0 YWwsCj4+Pj4+Pj4+Pj4+Pj4gNTEyRwo+Pj4+Pj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLXwtLS0t LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tCj4+Pj4+ Pj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIG1zwqDC oMKgICglKSB8wqDCoCBtc8KgwqDCoCAoJSkgfMKgwqAgbXPCoMKgwqAgKCUpIHwKPj4+Pj4+Pj4+ Pj4+PiBtc8KgwqDCoCAoJSkKPj4+Pj4+Pj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0t LS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLQo+Pj4+Pj4+Pj4+ Pj4+IGJhc2XCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMTUzwqDCoCAoMCUpIHwgMjIyN8KgwqAg KDAlKSB8IDg3OTjCoMKgICgwJSkgfCAxNzQ0MsKgwqAKPj4+Pj4+Pj4+Pj4+PiAoMCUpCj4+Pj4+ Pj4+Pj4+Pj4gbm8tY29udC1yZW1hcMKgIHzCoMKgIDc3ICgtNDklKSB8wqAgNDMxICgtODElKSB8 IDE3MjcgKC04MCUpIHzCoCAzNzk2Cj4+Pj4+Pj4+Pj4+Pj4gKC03OCUpCj4+Pj4+Pj4+Pj4+Pj4g YmF0Y2gtYmFycmllcnMgfMKgwqAgMTMgKC05MiUpIHzCoCAxNjIgKC05MyUpIHzCoCA2NTUgKC05 MyUpIHzCoCAxNjU2Cj4+Pj4+Pj4+Pj4+Pj4gKC05MSUpCj4+Pj4+Pj4+Pj4+Pj4gbm8tYWxsb2Mt cmVtYXAgfMKgwqAgMTEgKC05MyUpIHzCoCAxMDkgKC05NSUpIHzCoCA0NDkgKC05NSUpIHzCoCAx MjU3Cj4+Pj4+Pj4+Pj4+Pj4gKC05MyUpCj4+Pj4+Pj4+Pj4+Pj4gbGF6eS11bm1hcMKgwqDCoMKg IHzCoMKgwqAgNiAoLTk2JSkgfMKgwqAgNjEgKC05NyUpIHzCoCAyNTcgKC05NyUpIHzCoMKgIDgz OAo+Pj4+Pj4+Pj4+Pj4+ICgtOTUlKQo+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4gVGhpcyBz ZXJpZXMgYXBwbGllcyBvbiB0b3Agb2YgdjYuOS1yYzIuIEFsbCBtbSBzZWxmdGVzdHMgcGFzcy4g SSd2ZQo+Pj4+Pj4+Pj4+Pj4+IGNvbXBpbGUgYW5kCj4+Pj4+Pj4+Pj4+Pj4gYm9vdCB0ZXN0ZWQg dmFyaW91cyBQQUdFX1NJWkUgYW5kIFZBIHNpemUgY29uZmlncy4KPj4+Pj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4+Pj4+IC0tLQo+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4gQ2hhbmdlcyBzaW5jZSB2 MSBbMV0KPj4+Pj4+Pj4+Pj4+PiA9PT09PT09PT09PT09PT09PT09PQo+Pj4+Pj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Pj4+Pj4gwqDCoMKgwqDCoCAtIEFkZGVkIFRlc3RlZC1ieSB0YWdzICh0aGFua3MgdG8g RXJpYyBhbmQgSXRhcnUpCj4+Pj4+Pj4+Pj4+Pj4gwqDCoMKgwqDCoCAtIFJlbmFtZWQgX19fc2V0 X3B0ZSgpIC0+IF9fc2V0X3B0ZV9ub3N5bmMoKSAocGVyIEFyZCkKPj4+Pj4+Pj4+Pj4+PiDCoMKg wqDCoMKgIC0gUmVvcmRlcmVkIHBhdGNoZXMgKGJpZ2dlc3QgaW1wYWN0ICYgbGVhc3QgY29udHJv dmVyc2lhbCBmaXJzdCkKPj4+Pj4+Pj4+Pj4+PiDCoMKgwqDCoMKgIC0gUmVvcmRlcmVkIGFsbG9j L21hcC91bm1hcCBmdW5jdGlvbnMgaW4gbW11LmMgdG8gYWlkIHJlYWRlcgo+Pj4+Pj4+Pj4+Pj4+ IMKgwqDCoMKgwqAgLSBwdGVfY2xlYXIoKSAtPiBfX3B0ZV9jbGVhcigpIGluIGNsZWFyX2ZpeG1h cF9ub3N5bmMoKQo+Pj4+Pj4+Pj4+Pj4+IMKgwqDCoMKgwqAgLSBSZXZlcnRlZCBnZW5lcmljIHA0 ZF9pbmRleCgpIHdoaWNoIGNhdXNlZCB4ODYgYnVpbGQgZXJyb3IuCj4+Pj4+Pj4+Pj4+Pj4gUmVw bGFjZWQgd2l0aAo+Pj4+Pj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgIHVuY29uZGl0aW9uYWwgcDRk X2luZGV4KCkgZGVmaW5lIHVuZGVyIGFybTY0Lgo+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4K Pj4+Pj4+Pj4+Pj4+PiBbMV0KPj4+Pj4+Pj4+Pj4+PiBodHRwczovL2xvcmUua2VybmVsLm9yZy9s aW51eC1hcm0ta2VybmVsLzIwMjQwMzI2MTAxNDQ4LjM0NTM2MjYtMS1yeWFuLnJvYmVydHNAYXJt LmNvbS88aHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGludXgtYXJtLWtlcm5lbC8yMDI0MDMyNjEw MTQ0OC4zNDUzNjI2LTEtcnlhbi5yb2JlcnRzQGFybS5jb20vPgo+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+ Pj4+Pj4+Pj4gVGhhbmtzLAo+Pj4+Pj4+Pj4+Pj4+IFJ5YW4KPj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+ Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4gUnlhbiBSb2JlcnRzICg0KToKPj4+Pj4+Pj4+Pj4+PiDCoMKg wqDCoMKgIGFybTY0OiBtbTogRG9uJ3QgcmVtYXAgcGd0YWJsZXMgcGVyLWNvbnQocHRlfHBtZCkg YmxvY2sKPj4+Pj4+Pj4+Pj4+PiDCoMKgwqDCoMKgIGFybTY0OiBtbTogQmF0Y2ggZHNiIGFuZCBp c2Igd2hlbiBwb3B1bGF0aW5nIHBndGFibGVzCj4+Pj4+Pj4+Pj4+Pj4gwqDCoMKgwqDCoCBhcm02 NDogbW06IERvbid0IHJlbWFwIHBndGFibGVzIGZvciBhbGxvY2F0ZSB2cyBwb3B1bGF0ZQo+Pj4+ Pj4+Pj4+Pj4+IMKgwqDCoMKgwqAgYXJtNjQ6IG1tOiBMYXppbHkgY2xlYXIgcHRlIHRhYmxlIG1h cHBpbmdzIGZyb20gZml4bWFwCj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+PiBhcmNoL2FybTY0 L2luY2x1ZGUvYXNtL2ZpeG1hcC5owqAgfMKgwqAgNSArLQo+Pj4+Pj4+Pj4+Pj4+IGFyY2gvYXJt NjQvaW5jbHVkZS9hc20vbW11LmjCoMKgwqDCoCB8wqDCoCA4ICsKPj4+Pj4+Pj4+Pj4+PiBhcmNo L2FybTY0L2luY2x1ZGUvYXNtL3BndGFibGUuaCB8wqAgMTMgKy0KPj4+Pj4+Pj4+Pj4+PiBhcmNo L2FybTY0L2tlcm5lbC9jcHVmZWF0dXJlLmPCoMKgIHzCoCAxMCArLQo+Pj4+Pj4+Pj4+Pj4+IGFy Y2gvYXJtNjQvbW0vZml4bWFwLmPCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMTEgKwo+Pj4+Pj4+ Pj4+Pj4+IGFyY2gvYXJtNjQvbW0vbW11LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDM3 NyArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCj4+Pj4+Pj4+Pj4+Pj4gNiBmaWxlcyBj aGFuZ2VkLCAzMTkgaW5zZXJ0aW9ucygrKSwgMTA1IGRlbGV0aW9ucygtKQo+Pj4+Pj4+Pj4+Pj4+ Cj4+Pj4+Pj4+Pj4+Pj4gLS3CoAo+Pj4+Pj4+Pj4+Pj4+IDIuMjUuMQo+Pj4+Pj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4gSSd2ZSBidWlsZCBhbmQgYm9vdCB0ZXN0ZWQgdGhlIHYy IG9uIEZWUCwgYmFzZSBpcyB0YWtlbiBmcm9tIHlvdXIKPj4+Pj4+Pj4+Pj4+IGxpbnV4LXJyIHJl cG8uIFJ1bm5pbmcgcnVuX3ZtdGVzdHMuc2ggb24gdjIgbGVmdCBzb21lIGd1cCBsb25ndGVybSBu b3QKPj4+Pj4+Pj4+Pj4+IG9rcywgd291bGQgeW91IHRha2UgYSBsb29rIGF0IGl0PyBUaGUgbW0g a3NlZmx0ZXN0cyB1c2VkIGlzIGZyb20geW91cgo+Pj4+Pj4+Pj4+Pj4gbGludXgtcnIgcmVwbyB0 b28uCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IFRoYW5rcyBmb3IgdGFraW5nIGEgbG9vayBhdCB0 aGlzLgo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiBJIGNhbid0IHJlcHJvZHVjZSB5b3VyIGlzc3Vl IHVuZm9ydHVuYXRlbHk7IHN0ZXBzIGFzIGZvbGxvd3Mgb24gQXBwbGUKPj4+Pj4+Pj4+Pj4gTTIg Vk06Cj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IENvbmZpZzogYXJtNjQgZGVmY29uZmlnICsgdGhl IGZvbGxvd2luZzoKPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gIyBTcXVhc2hmcyBmb3Igc25hcHMs IHhmcyBmb3IgbGFyZ2UgZmlsZSBmb2xpb3MuCj4+Pj4+Pj4+Pj4+IC4vc2NyaXB0cy9jb25maWcg LS1lbmFibGUgQ09ORklHX1NRVUFTSEZTX0xaNAo+Pj4+Pj4+Pj4+PiAuL3NjcmlwdHMvY29uZmln IC0tZW5hYmxlIENPTkZJR19TUVVBU0hGU19MWk8KPj4+Pj4+Pj4+Pj4gLi9zY3JpcHRzL2NvbmZp ZyAtLWVuYWJsZSBDT05GSUdfU1FVQVNIRlNfWFoKPj4+Pj4+Pj4+Pj4gLi9zY3JpcHRzL2NvbmZp ZyAtLWVuYWJsZSBDT05GSUdfU1FVQVNIRlNfWlNURAo+Pj4+Pj4+Pj4+PiAuL3NjcmlwdHMvY29u ZmlnIC0tZW5hYmxlIENPTkZJR19YRlNfRlMKPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gIyBGb3Ig Z2VuZXJhbCBtbSBkZWJ1Zy4KPj4+Pj4+Pj4+Pj4gLi9zY3JpcHRzL2NvbmZpZyAtLWVuYWJsZSBD T05GSUdfREVCVUdfVk0KPj4+Pj4+Pj4+Pj4gLi9zY3JpcHRzL2NvbmZpZyAtLWVuYWJsZSBDT05G SUdfREVCVUdfVk1fTUFQTEVfVFJFRQo+Pj4+Pj4+Pj4+PiAuL3NjcmlwdHMvY29uZmlnIC0tZW5h YmxlIENPTkZJR19ERUJVR19WTV9SQgo+Pj4+Pj4+Pj4+PiAuL3NjcmlwdHMvY29uZmlnIC0tZW5h YmxlIENPTkZJR19ERUJVR19WTV9QR0ZMQUdTCj4+Pj4+Pj4+Pj4+IC4vc2NyaXB0cy9jb25maWcg LS1lbmFibGUgQ09ORklHX0RFQlVHX1ZNX1BHVEFCTEUKPj4+Pj4+Pj4+Pj4gLi9zY3JpcHRzL2Nv bmZpZyAtLWVuYWJsZSBDT05GSUdfUEFHRV9UQUJMRV9DSEVDSwo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+ Pj4+PiAjIEZvciBtbSBzZWxmdGVzdHMuCj4+Pj4+Pj4+Pj4+IC4vc2NyaXB0cy9jb25maWcgLS1l bmFibGUgQ09ORklHX1VTRVJGQVVMVEZECj4+Pj4+Pj4+Pj4+IC4vc2NyaXB0cy9jb25maWcgLS1l bmFibGUgQ09ORklHX1RFU1RfVk1BTExPQwo+Pj4+Pj4+Pj4+PiAuL3NjcmlwdHMvY29uZmlnIC0t ZW5hYmxlIENPTkZJR19HVVBfVEVTVAo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiBSdW5uaW5nIG9u IFZNIHdpdGggMTJHIG1lbW9yeSwgc3BsaXQgYWNyb3NzIDIgKGVtdWxhdGVkKSBOVU1BIG5vZGVz Cj4+Pj4+Pj4+Pj4+IChuZWVkZWQgYnkKPj4+Pj4+Pj4+Pj4gc29tZSBtbSBzZWxmdGVzdHMpLCB3 aXRoIGtlcm5lbCBjb21tYW5kIGxpbmUgdG8gcmVzZXJ2ZSBodWdldGxicyBhbmQKPj4+Pj4+Pj4+ Pj4gb3RoZXIKPj4+Pj4+Pj4+Pj4gZmVhdHVyZXMgcmVxdWlyZWQgYnkgc29tZSBtbSBzZWxmdGVz dHM6Cj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+ICIKPj4+Pj4+Pj4+Pj4gdHJhbnNwYXJlbnRfaHVn ZXBhZ2U9bWFkdmlzZSBlYXJseWNvbiByb290PS9kZXYvdmRhMiBzZWNyZXRtZW0uZW5hYmxlCj4+ Pj4+Pj4+Pj4+IGh1Z2VwYWdlc3o9MUcgaHVnZXBhZ2VzPTA6MiwxOjIgaHVnZXBhZ2Vzej0zMk0g aHVnZXBhZ2VzPTA6MiwxOjIKPj4+Pj4+Pj4+Pj4gZGVmYXVsdF9odWdlcGFnZXN6PTJNIGh1Z2Vw YWdlcz0wOjY0LDE6NjQgaHVnZXBhZ2Vzej02NEsKPj4+Pj4+Pj4+Pj4gaHVnZXBhZ2VzPTA6Miwx OjIKPj4+Pj4+Pj4+Pj4gIgo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiBVYnVudHUgdXNlcnNwYWNl IHJ1bm5pbmcgb2ZmIFhGUyByb290ZnMuIEJ1aWxkIGFuZCBydW4gbW0gc2VsZnRlc3RzCj4+Pj4+ Pj4+Pj4+IGZyb20gc2FtZQo+Pj4+Pj4+Pj4+PiBnaXQgdHJlZS4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4+Pj4gQWx0aG91Z2ggSSBkb24ndCB0aGluayBhbnkgb2YgdGhpcyBjb25m aWcgc2hvdWxkIG1ha2UgYSBkaWZmZXJlbmNlIHRvCj4+Pj4+Pj4+Pj4+IGd1cF9sb25ndGVybS4K Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gTG9va3MgbGlrZSB5b3VyIGVycm9ycyBhcmUgYWxsICJm dHJ1bmNhdGUoKSBmYWlsZWQiLiBJJ3ZlIHNlZW4gdGhpcwo+Pj4+Pj4+Pj4+PiBwcm9ibGVtIG9u Cj4+Pj4+Pj4+Pj4+IG91ciBDSSBzeXN0ZW0uIFRoZXJlIGl0IGlzIGR1ZSB0byBydW5uaW5nIHRo ZSB0ZXN0cyBmcm9tIE5GUyBmaWxlCj4+Pj4+Pj4+Pj4+IHN5c3RlbS4gV2hhdAo+Pj4+Pj4+Pj4+ PiBmaWxlc3lzdGVtIGFyZSB5b3UgdXNpbmc/IFBlcmhhcHMgeW91IGFyZSBzaGFyaW5nIGludG8g dGhlIEZWUCB1c2luZwo+Pj4+Pj4+Pj4+PiA5cD8gVGhhdAo+Pj4+Pj4+Pj4+PiBtaWdodCBhbHNv IGJlIHByb2JsZW1hdGljLgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gVGhhdCB3YXMgaXQuIFRoaXMg dGltZSBJIGJvb3RlZCB1cCB0aGUga2VybmVsIGluY2x1ZGluZyB5b3VyIHNlcmllcyBvbgo+Pj4+ Pj4+Pj4+IFFFTVUgb24gbXkgTTEgYW5kIGV4ZWN1dGVkIHRoZSBndXBfbG9uZ3Rlcm0gcHJvZ3Jh bSB3aXRob3V0IHRoZSBmdHJ1bmNhdGUKPj4+Pj4+Pj4+PiBmYWlsdXJlcy4gV2hlbiB0ZXN0aW5n IHlvdXIga2VybmVsIG9uIEZWUCwgSSB3YXMgZXhlY3V0aW5nIHRoZSBzY3JpcHQKPj4+Pj4+Pj4+ PiBmcm9tIHRoZSBGVlAncyBob3N0IGZpbGVzeXN0ZW0gdXNpbmcgOXAuCj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4gSSdtIG5vdCBzdXJlIGV4YWN0bHkgd2hhdCB0aGUgcm9vdCBjYXVzZSBpcy4gUGVyaGFw cyB0aGVyZSBpc24ndCBlbm91Z2gKPj4+Pj4+Pj4+IHNwYWNlIG9uCj4+Pj4+Pj4+PiB0aGUgZGlz az8gSXQgbWlnaHQgYmUgd29ydGggZW5oYW5jaW5nIHRoZSBlcnJvciBsb2cgdG8gcHJvdmlkZSB0 aGUKPj4+Pj4+Pj4+IGVycm5vIGluCj4+Pj4+Pj4+PiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9t bS9ndXBfbG9uZ3Rlcm0uYy4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IEF0dGFjaGVkIGlz IHRoZSBzdHJhY2XigJlkIGd1cF9sb25ndGVybSBleGVjdXRpb25nIGxvZyBvbiB5b3VyCj4+Pj4+ Pj4+IHBndGFibGUtYm9vdC1zcGVlZHVwLXYyIGtlcm5lbC4KPj4+Pj4+Pgo+Pj4+Pj4+IFNvcnJ5 IGFyZSB5b3Ugc2F5aW5nIHRoYXQgaXQgb25seSBmYWlscyB3aXRoIHRoZSBwZ3RhYmxlLWJvb3Qt c3BlZWR1cC12Mgo+Pj4+Pj4+IHBhdGNoCj4+Pj4+Pj4gc2V0IGFwcGxpZWQ/IEkgdGhvdWdodCB3 ZSBwcmV2aW91c2x5IGNvbmNsdWRlZCB0aGF0IGl0IHdhcyBpbmRlcGVuZGVudCBvZgo+Pj4+Pj4+ IHRoYXQ/Cj4+Pj4+Pj4gSSB3YXMgdW5kZXIgdGhlIGltcHJlc3Npb24gdGhhdCBpdCB3YXMgZmls ZXN5c3RlbSByZWxhdGVkIGFuZCBub3Qgc29tZXRoaW5nCj4+Pj4+Pj4gdGhhdAo+Pj4+Pj4+IEkg d2FzIHBsYW5uaW5nIHRvIGludmVzdGlnYXRlLgo+Pj4+Pj4KPj4+Pj4+IE5vLCBpcnJlc3BlY3Rp dmUgb2YgdGhlIGtlcm5lbCwgaWYgdXNpbmcgOXAgb24gRlZQIHRoZSB0ZXN0IHByb2dyYW0gZmFp bHMuCj4+Pj4+PiBJdCBpcyBpbmRlZWQgOXAgZmlsZXN5c3RlbSByZWxhdGVkLCBhcyBJIHN3aXRj aGVkIHRvIHVzaW5nIE5GUyBhbGwgdGhlCj4+Pj4+PiBpc3N1ZXMgYXJlIGdvbmUuCj4+Pj4+Cj4+ Pj4+IERpZCBpdCBuZXZlciB3b3JrIG9uIDlwPyBJZiBzbywgd2UgbWlnaHQgaGF2ZSB0byBTS0lQ IHRoYXQgdGVzdC4KPj4+Pj4KPj4+Pj4gb3BlbmF0KEFUX0ZEQ1dELCAiZ3VwX2xvbmd0ZXJtLmNf dG1wZmlsZV9CTGJvT3QiLCBPX1JEV1J8T19DUkVBVHxPX0VYQ0wsCj4+Pj4+IDA2MDApID0gMwo+ Pj4+PiB1bmxpbmthdChBVF9GRENXRCwgImd1cF9sb25ndGVybS5jX3RtcGZpbGVfQkxib090Iiwg MCkgPSAwCj4+Pj4+IGZzdGF0ZnMoMywgMHhmZmZmZTUwNWE4NDApwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgPSAtMSBFT1BOT1RTVVBQIChPcGVyYXRpb24gbm90Cj4+Pj4+IHN1cHBvcnRlZCkK Pj4+Pj4gZnRydW5jYXRlKDMsIDQwOTYpwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgID0gLTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3IKPj4+Pj4gZGlyZWN0b3J5KQo+ Pj4+Cj4+Pj4gTm90ZTogSSdtIHdvbmRlcmluZyBpZiB0aGUgdW5saW5rYXQgaGVyZSBpcyB0aGUg cHJvYmxlbSB0aGF0IG1ha2VzCj4+Pj4gZnRydW5jYXRlKCkgd2l0aCA5cCByZXN1bHQgaW4gd2Vp cmQgZXJyb3JzIChlLmcuLCB0aGUgaHlwZXJ2aXNvcgo+Pj4+IHVubGlua2VkIHRoZSBmaWxlIGFu ZCBjYW5ub3QgcmVvcGVuIGl0IGZvciB0aGUgZnN0YXRmcy9mdHJ1bmNhdGUuIC4uLgo+Pj4+IHdo aWNoIGdpdmVzIHVzIHdlaXJkIGVycm9ycyBoZXJlKS4KPj4+Pgo+Pj4+IFRoZW4sIHdlIHNob3Vs ZCBsb29rdXAgdGhlIGZzIHR5cGUgaW4gcnVuX3dpdGhfbG9jYWxfdG1wZmlsZSgpIGJlZm9yZQo+ Pj4+IHRoZSB1bmxpbmsoKSBhbmQgc2ltcGx5IHNraXAgdGhlIHRlc3QgaWYgaXQgaXMgOXAuCj4+ Pgo+Pj4gVGhlIHVubGluayB3aXRoIDlwIG1vc3QgY2VydGFpbmx5IHdhcyBhIGtub3duIGlzc3Vl IGluIHRoZSBwYXN0Ogo+Pj4KPj4+IGh0dHBzOi8vZ2l0bGFiLmNvbS9xZW11LXByb2plY3QvcWVt dS8tL2lzc3Vlcy8xMDMKPj4+Cj4+PiBNYXliZSBpdCdzIHN0aWxsIGFuIGlzc3VlIHdpdGggb2xk ZXIgaHlwZXJ2aXNvcnMgKFFFTVU/KT8gT3IgaXQgd2FzIG5ldmVyCj4+PiBjb21wbGV0ZWx5IHJl c29sdmVkPwo+Pgo+PiBJIGJlbGlldmUgSXRhcnUgaXMgcnVubmluZyBvbiBGVlAgKEZpeGVkIFZp cnR1YWwgUGxhdGZvcm0gLSAiZmFzdCBtb2RlbCIgLQo+PiBBcm0ncyBhcmNoaXRlY3R1cmUgZW11 bGF0b3IpLiBTbyBRRU1VIHdvbid0IGJlIGludm9sdmVkIGhlcmUuIFRoZSBGVlAgZW11bGF0ZXMK Pj4gYSA5cCBkZXZpY2UsIHNvIHBlcmhhcHMgdGhlIGJ1ZyBpcyBpbiB0aGVyZS4KPiAKPiBWZXJ5 IGxpa2VseS4KPiAKPj4KPj4gTm90ZSB0aGF0IEkgc2VlIGxvdHMgb2YgImZhbGxvY2F0ZSgpIGZh aWxlZCIgZmFpbHVyZXMgaW4gZ3VwX2xvbmd0ZXJtIHdoZW4KPj4gcnVubmluZyBvbiBvdXIgQ0kg c3lzdGVtLiBUaGlzIGlzIGEgY29tcGxldGVseSBkaWZmZXJlbnQgc2V0dXA7IFJlYWwgSFcgd2l0 aAo+PiBMaW51eCBydW5uaW5nIGJhcmUgbWV0YWwgdXNpbmcgYW4gTkZTIHJvb3Rmcy4gSSdtIG5v dCBzdXJlIGlmIHRoaXMgaXMgcmVsYXRlZC4KPj4gTG9ncyBzaG93IGl0IGZhaWxpbmcgY29uc2lz dGVudGx5IGZvciB0aGUgInRtcGZpbGUiIGFuZCAibG9jYWwgdG1wZmlsZSIgdGVzdAo+PiBjb25m aWdzLiBJIGFsc28gc2VlIGEgY291cGxlIG9mIHRoZXNlIGZhaWxzIGluIHRoZSBjb3cgdGVzdHMu Cj4gCj4gV2hhdCBpcyB0aGUgZmFsbG9jYXRlKCkgZXJybm8geW91IGFyZSBnZXR0aW5nPyBzdHJh Y2UgbG9nIHdvdWxkIGhlbHAgKHRvIHNlZSBpZgo+IHN0YXRmcyBhbHNvIGZhaWxzIGFscmVhZHkp ISBMaWtlbHkgYSBzaW1pbGFyIE5GUyBpc3N1ZS4KClVuZm9ydHVuYXRlbHkgdGhpcyBpcyBhIHN5 c3RlbSBJIGRvbid0IGhhdmUgYWNjZXNzIHRvLiBJJ3ZlIHJlcXVlc3RlZCBzb21lIG9mCnRoaXMg dHJpYWdlIHRvIGJlIGRvbmUsIGJ1dCBpdHMgZmFpcmx5IGxvdyBwcmlvcml0eSB1bmZvcnR1bmF0 ZWx5LgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwps aW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1hcm0ta2VybmVsCg==