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 20345C67861 for ; Tue, 9 Apr 2024 10:16:50 +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:To:References:Message-Id:Cc:Date: In-Reply-To:From:Subject:Mime-Version:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=JYG1omE47JYscVdtiHzePSS+qA/dVL/BLt5ZRSz8JaA=; b=Atd4hS5eQywTxd LXrDkiPljORCeZx/h/0DXQ/1GDHM14Wd6fDmy7/9+dhgniG2I2W6rtAWiOncoVl4u1PxsQZaEGbo9 GeAS2qNAj62fdgBt3yDLfZZY2l8wyjaK+M6N219bHbti99KTUA0ok0SUJniKGrdX4E7IB2ZwLHSf2 DHiU7VedEOPoo/ctLRA3TUbk34oY6uQhBqZc5Kq/CdaIhx8eTwV6VgP8mECnIaYjwmZQrqbF2ZTla myr5Lz+JK3jVYkrcLfDBBnK+KhPu+m5QgjuEYJ22XYjFK26vixYQ7WDSr+wv7XOkduL3Tq+6GR2Zx yRzvQvNdbfRc48x8kUHQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1ru8Wt-00000001PHY-0FjI; Tue, 09 Apr 2024 10:16:39 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1ru8Uq-00000001Nxj-1qKu for linux-arm-kernel@bombadil.infradead.org; Tue, 09 Apr 2024 10:14:33 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=To:References:Message-Id: Content-Transfer-Encoding:Cc:Date:In-Reply-To:From:Subject:Mime-Version: Content-Type:Sender:Reply-To:Content-ID:Content-Description; bh=I6NjstxZg5zzcu4zkmXOrIo4bbiuOWeKiARFgfpV5y0=; b=G+sjaEhli826+JDfvFHTntrMeE uMDFzJ5lDMKE1mOmJrRmn4qOwUpJI5pgRt6rZPS+AJDr991Y0PHD9R7xnfUIuOBO3QDal5mQrqjyo 00TAe2oqZymkiU+AkLfY3nD6OdvAlsA6Zh2JeWZ3AcUVJYpWeFY/O0zeeD8D8TAZVBEK9RPY7Aq8w AMvYfhZxuuGaD6gNVElIMh2KqhjPBuqU3Vwe1Jqs9AL4CCVqlLYliR8HH+XUoK6jUQKJKZLraD4xE Ez88KkdWV/DRW7bBZcgMXxFkZgc7RDEI+b+FKh8b8WsG02lv5NHS3rn5TAHU2tFEUrZ1x8V6cwoB7 ojTBTFBQ==; Received: from out-185.mta0.migadu.com ([91.218.175.185]) by desiato.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1ru8UX-00000007YDJ-2xlV for linux-arm-kernel@lists.infradead.org; Tue, 09 Apr 2024 10:14:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1712657638; 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=I6NjstxZg5zzcu4zkmXOrIo4bbiuOWeKiARFgfpV5y0=; b=iUDqfsYXaSTkwJFoNMKuNMtWigcM0vWSQp9JgveKOMBBIMhWIPR72fJBxTztFtL5y0e/3u E0bUZkisG3H9EcD2wQvxCfjWKE245hTc5sqVs2gGxde8j1QhLPyTau/KGcg1+zGv0QMAAP YXa5yFwRH55ZHHq71hR99gsxEQcM+6M= Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.400.31\)) Subject: Re: [PATCH v2 0/4] Speed up boot with faster linear map creation X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Itaru Kitayama In-Reply-To: <1d5abb48-08a8-4d83-a681-6915bc7b6907@arm.com> Date: Tue, 9 Apr 2024 19:13:38 +0900 Cc: Catalin Marinas , Will Deacon , Mark Rutland , Ard Biesheuvel , David Hildenbrand , Donald Dutile , Eric Chanudet , Linux ARM , "linux-kernel@vger.kernel.org" Message-Id: <268FBD1C-B102-4726-A7F4-1125123BDA7A@linux.dev> References: <20240404143308.2224141-1-ryan.roberts@arm.com> <533adb77-8c2b-40db-84cb-88de77ab92bb@arm.com> <1d5abb48-08a8-4d83-a681-6915bc7b6907@arm.com> To: Ryan Roberts X-Migadu-Flow: FLOW_OUT X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240409_111414_644693_6DF6A6A4 X-CRM114-Status: GOOD ( 24.38 ) 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 Cgo+IE9uIEFwciA5LCAyMDI0LCBhdCAxOTowNCwgUnlhbiBSb2JlcnRzIDxyeWFuLnJvYmVydHNA YXJtLmNvbT4gd3JvdGU6Cj4gCj4gT24gMDkvMDQvMjAyNCAwMToxMCwgSXRhcnUgS2l0YXlhbWEg d3JvdGU6Cj4+IEhpIFJ5YW4sCj4+IAo+Pj4gT24gQXByIDgsIDIwMjQsIGF0IDE2OjMwLCBSeWFu IFJvYmVydHMgPHJ5YW4ucm9iZXJ0c0Bhcm0uY29tPiB3cm90ZToKPj4+IAo+Pj4gT24gMDYvMDQv MjAyNCAxMTozMSwgSXRhcnUgS2l0YXlhbWEgd3JvdGU6Cj4+Pj4gSGkgUnlhbiwKPj4+PiAKPj4+ PiBPbiBTYXQsIEFwciAwNiwgMjAyNCBhdCAwOTozMjozNEFNICswMTAwLCBSeWFuIFJvYmVydHMg d3JvdGU6Cj4+Pj4+IEhpIEl0YXJ1LAo+Pj4+PiAKPj4+Pj4gT24gMDUvMDQvMjAyNCAwODozOSwg SXRhcnUgS2l0YXlhbWEgd3JvdGU6Cj4+Pj4+PiBPbiBUaHUsIEFwciAwNCwgMjAyNCBhdCAwMzoz MzowNFBNICswMTAwLCBSeWFuIFJvYmVydHMgd3JvdGU6Cj4+Pj4+Pj4gSGkgQWxsLAo+Pj4+Pj4+ IAo+Pj4+Pj4+IEl0IHR1cm5zIG91dCB0aGF0IGNyZWF0aW5nIHRoZSBsaW5lYXIgbWFwIGNhbiB0 YWtlIGEgc2lnbmlmaWNhbnQgcHJvcG9ydGlvbiBvZgo+Pj4+Pj4+IHRoZSB0b3RhbCBib290IHRp bWUsIGVzcGVjaWFsbHkgd2hlbiByb2RhdGE9ZnVsbC4gQW5kIG1vc3Qgb2YgdGhlIHRpbWUgaXMg c3BlbnQKPj4+Pj4+PiB3YWl0aW5nIG9uIHN1cGVyZmx1b3VzIHRsYiBpbnZhbGlkYXRpb24gYW5k IG1lbW9yeSBiYXJyaWVycy4gVGhpcyBzZXJpZXMgcmV3b3Jrcwo+Pj4+Pj4+IHRoZSBrZXJuZWwg cGd0YWJsZSBnZW5lcmF0aW9uIGNvZGUgdG8gc2lnbmlmaWNhbnRseSByZWR1Y2UgdGhlIG51bWJl ciBvZiB0aG9zZQo+Pj4+Pj4+IFRMQklzLCBJU0JzIGFuZCBEU0JzLiBTZWUgZWFjaCBwYXRjaCBm b3IgZGV0YWlscy4KPj4+Pj4+PiAKPj4+Pj4+PiBUaGUgYmVsb3cgc2hvd3MgdGhlIGV4ZWN1dGlv biB0aW1lIG9mIG1hcF9tZW0oKSBhY3Jvc3MgYSBjb3VwbGUgb2YgZGlmZmVyZW50Cj4+Pj4+Pj4g c3lzdGVtcyB3aXRoIGRpZmZlcmVudCBSQU0gY29uZmlndXJhdGlvbnMuIFdlIG1lYXN1cmUgYWZ0 ZXIgYXBwbHlpbmcgZWFjaCBwYXRjaAo+Pj4+Pj4+IGFuZCBzaG93IHRoZSBpbXByb3ZlbWVudCBy ZWxhdGl2ZSB0byBiYXNlICh2Ni45LXJjMik6Cj4+Pj4+Pj4gCj4+Pj4+Pj4gICAgICAgICAgICAg ICAgfCBBcHBsZSBNMiBWTSB8IEFtcGVyZSBBbHRyYXwgQW1wZXJlIEFsdHJhfCBBbXBlcmUgQWx0 cmEKPj4+Pj4+PiAgICAgICAgICAgICAgICB8IFZNLCAxNkcgICAgIHwgVk0sIDY0RyAgICAgfCBW TSwgMjU2RyAgICB8IE1ldGFsLCA1MTJHCj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0t LS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0KPj4+Pj4+PiAg ICAgICAgICAgICAgICB8ICAgbXMgICAgKCUpIHwgICBtcyAgICAoJSkgfCAgIG1zICAgICglKSB8 ICAgIG1zICAgICglKQo+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0t LS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tCj4+Pj4+Pj4gYmFzZSAgICAgICAg ICAgfCAgMTUzICAgKDAlKSB8IDIyMjcgICAoMCUpIHwgODc5OCAgICgwJSkgfCAxNzQ0MiAgICgw JSkKPj4+Pj4+PiBuby1jb250LXJlbWFwICB8ICAgNzcgKC00OSUpIHwgIDQzMSAoLTgxJSkgfCAx NzI3ICgtODAlKSB8ICAzNzk2ICgtNzglKQo+Pj4+Pj4+IGJhdGNoLWJhcnJpZXJzIHwgICAxMyAo LTkyJSkgfCAgMTYyICgtOTMlKSB8ICA2NTUgKC05MyUpIHwgIDE2NTYgKC05MSUpCj4+Pj4+Pj4g bm8tYWxsb2MtcmVtYXAgfCAgIDExICgtOTMlKSB8ICAxMDkgKC05NSUpIHwgIDQ0OSAoLTk1JSkg fCAgMTI1NyAoLTkzJSkKPj4+Pj4+PiBsYXp5LXVubWFwICAgICB8ICAgIDYgKC05NiUpIHwgICA2 MSAoLTk3JSkgfCAgMjU3ICgtOTclKSB8ICAgODM4ICgtOTUlKQo+Pj4+Pj4+IAo+Pj4+Pj4+IFRo aXMgc2VyaWVzIGFwcGxpZXMgb24gdG9wIG9mIHY2LjktcmMyLiBBbGwgbW0gc2VsZnRlc3RzIHBh c3MuIEkndmUgY29tcGlsZSBhbmQKPj4+Pj4+PiBib290IHRlc3RlZCB2YXJpb3VzIFBBR0VfU0la RSBhbmQgVkEgc2l6ZSBjb25maWdzLgo+Pj4+Pj4+IAo+Pj4+Pj4+IC0tLQo+Pj4+Pj4+IAo+Pj4+ Pj4+IENoYW5nZXMgc2luY2UgdjEgWzFdCj4+Pj4+Pj4gPT09PT09PT09PT09PT09PT09PT0KPj4+ Pj4+PiAKPj4+Pj4+PiAgIC0gQWRkZWQgVGVzdGVkLWJ5IHRhZ3MgKHRoYW5rcyB0byBFcmljIGFu ZCBJdGFydSkKPj4+Pj4+PiAgIC0gUmVuYW1lZCBfX19zZXRfcHRlKCkgLT4gX19zZXRfcHRlX25v c3luYygpIChwZXIgQXJkKQo+Pj4+Pj4+ICAgLSBSZW9yZGVyZWQgcGF0Y2hlcyAoYmlnZ2VzdCBp bXBhY3QgJiBsZWFzdCBjb250cm92ZXJzaWFsIGZpcnN0KQo+Pj4+Pj4+ICAgLSBSZW9yZGVyZWQg YWxsb2MvbWFwL3VubWFwIGZ1bmN0aW9ucyBpbiBtbXUuYyB0byBhaWQgcmVhZGVyCj4+Pj4+Pj4g ICAtIHB0ZV9jbGVhcigpIC0+IF9fcHRlX2NsZWFyKCkgaW4gY2xlYXJfZml4bWFwX25vc3luYygp Cj4+Pj4+Pj4gICAtIFJldmVydGVkIGdlbmVyaWMgcDRkX2luZGV4KCkgd2hpY2ggY2F1c2VkIHg4 NiBidWlsZCBlcnJvci4gUmVwbGFjZWQgd2l0aAo+Pj4+Pj4+ICAgICB1bmNvbmRpdGlvbmFsIHA0 ZF9pbmRleCgpIGRlZmluZSB1bmRlciBhcm02NC4KPj4+Pj4+PiAKPj4+Pj4+PiAKPj4+Pj4+PiBb MV0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGludXgtYXJtLWtlcm5lbC8yMDI0MDMyNjEwMTQ0 OC4zNDUzNjI2LTEtcnlhbi5yb2JlcnRzQGFybS5jb20vPGh0dHBzOi8vbG9yZS5rZXJuZWwub3Jn L2xpbnV4LWFybS1rZXJuZWwvMjAyNDAzMjYxMDE0NDguMzQ1MzYyNi0xLXJ5YW4ucm9iZXJ0c0Bh cm0uY29tLz4KPj4+Pj4+PiAKPj4+Pj4+PiBUaGFua3MsCj4+Pj4+Pj4gUnlhbgo+Pj4+Pj4+IAo+ Pj4+Pj4+IAo+Pj4+Pj4+IFJ5YW4gUm9iZXJ0cyAoNCk6Cj4+Pj4+Pj4gICBhcm02NDogbW06IERv bid0IHJlbWFwIHBndGFibGVzIHBlci1jb250KHB0ZXxwbWQpIGJsb2NrCj4+Pj4+Pj4gICBhcm02 NDogbW06IEJhdGNoIGRzYiBhbmQgaXNiIHdoZW4gcG9wdWxhdGluZyBwZ3RhYmxlcwo+Pj4+Pj4+ ICAgYXJtNjQ6IG1tOiBEb24ndCByZW1hcCBwZ3RhYmxlcyBmb3IgYWxsb2NhdGUgdnMgcG9wdWxh dGUKPj4+Pj4+PiAgIGFybTY0OiBtbTogTGF6aWx5IGNsZWFyIHB0ZSB0YWJsZSBtYXBwaW5ncyBm cm9tIGZpeG1hcAo+Pj4+Pj4+IAo+Pj4+Pj4+IGFyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFw LmggIHwgICA1ICstCj4+Pj4+Pj4gYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9tbXUuaCAgICAgfCAg IDggKwo+Pj4+Pj4+IGFyY2gvYXJtNjQvaW5jbHVkZS9hc20vcGd0YWJsZS5oIHwgIDEzICstCj4+ Pj4+Pj4gYXJjaC9hcm02NC9rZXJuZWwvY3B1ZmVhdHVyZS5jICAgfCAgMTAgKy0KPj4+Pj4+PiBh cmNoL2FybTY0L21tL2ZpeG1hcC5jICAgICAgICAgICB8ICAxMSArCj4+Pj4+Pj4gYXJjaC9hcm02 NC9tbS9tbXUuYyAgICAgICAgICAgICAgfCAzNzcgKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLQo+Pj4+Pj4+IDYgZmlsZXMgY2hhbmdlZCwgMzE5IGluc2VydGlvbnMoKyksIDEwNSBkZWxl dGlvbnMoLSkKPj4+Pj4+PiAKPj4+Pj4+PiAtLQo+Pj4+Pj4+IDIuMjUuMQo+Pj4+Pj4+IAo+Pj4+ Pj4gCj4+Pj4+PiBJJ3ZlIGJ1aWxkIGFuZCBib290IHRlc3RlZCB0aGUgdjIgb24gRlZQLCBiYXNl IGlzIHRha2VuIGZyb20geW91cgo+Pj4+Pj4gbGludXgtcnIgcmVwby4gUnVubmluZyBydW5fdm10 ZXN0cy5zaCBvbiB2MiBsZWZ0IHNvbWUgZ3VwIGxvbmd0ZXJtIG5vdCBva3MsIHdvdWxkIHlvdSB0 YWtlIGEgbG9vayBhdCBpdD8gVGhlIG1tIGtzZWZsdGVzdHMgdXNlZCBpcyBmcm9tIHlvdXIgbGlu dXgtcnIgcmVwbyB0b28uCj4+Pj4+IAo+Pj4+PiBUaGFua3MgZm9yIHRha2luZyBhIGxvb2sgYXQg dGhpcy4KPj4+Pj4gCj4+Pj4+IEkgY2FuJ3QgcmVwcm9kdWNlIHlvdXIgaXNzdWUgdW5mb3J0dW5h dGVseTsgc3RlcHMgYXMgZm9sbG93cyBvbiBBcHBsZSBNMiBWTToKPj4+Pj4gCj4+Pj4+IENvbmZp ZzogYXJtNjQgZGVmY29uZmlnICsgdGhlIGZvbGxvd2luZzoKPj4+Pj4gCj4+Pj4+ICMgU3F1YXNo ZnMgZm9yIHNuYXBzLCB4ZnMgZm9yIGxhcmdlIGZpbGUgZm9saW9zLgo+Pj4+PiAuL3NjcmlwdHMv Y29uZmlnIC0tZW5hYmxlIENPTkZJR19TUVVBU0hGU19MWjQKPj4+Pj4gLi9zY3JpcHRzL2NvbmZp ZyAtLWVuYWJsZSBDT05GSUdfU1FVQVNIRlNfTFpPCj4+Pj4+IC4vc2NyaXB0cy9jb25maWcgLS1l bmFibGUgQ09ORklHX1NRVUFTSEZTX1haCj4+Pj4+IC4vc2NyaXB0cy9jb25maWcgLS1lbmFibGUg Q09ORklHX1NRVUFTSEZTX1pTVEQKPj4+Pj4gLi9zY3JpcHRzL2NvbmZpZyAtLWVuYWJsZSBDT05G SUdfWEZTX0ZTCj4+Pj4+IAo+Pj4+PiAjIEZvciBnZW5lcmFsIG1tIGRlYnVnLgo+Pj4+PiAuL3Nj cmlwdHMvY29uZmlnIC0tZW5hYmxlIENPTkZJR19ERUJVR19WTQo+Pj4+PiAuL3NjcmlwdHMvY29u ZmlnIC0tZW5hYmxlIENPTkZJR19ERUJVR19WTV9NQVBMRV9UUkVFCj4+Pj4+IC4vc2NyaXB0cy9j b25maWcgLS1lbmFibGUgQ09ORklHX0RFQlVHX1ZNX1JCCj4+Pj4+IC4vc2NyaXB0cy9jb25maWcg LS1lbmFibGUgQ09ORklHX0RFQlVHX1ZNX1BHRkxBR1MKPj4+Pj4gLi9zY3JpcHRzL2NvbmZpZyAt LWVuYWJsZSBDT05GSUdfREVCVUdfVk1fUEdUQUJMRQo+Pj4+PiAuL3NjcmlwdHMvY29uZmlnIC0t ZW5hYmxlIENPTkZJR19QQUdFX1RBQkxFX0NIRUNLCj4+Pj4+IAo+Pj4+PiAjIEZvciBtbSBzZWxm dGVzdHMuCj4+Pj4+IC4vc2NyaXB0cy9jb25maWcgLS1lbmFibGUgQ09ORklHX1VTRVJGQVVMVEZE Cj4+Pj4+IC4vc2NyaXB0cy9jb25maWcgLS1lbmFibGUgQ09ORklHX1RFU1RfVk1BTExPQwo+Pj4+ PiAuL3NjcmlwdHMvY29uZmlnIC0tZW5hYmxlIENPTkZJR19HVVBfVEVTVAo+Pj4+PiAKPj4+Pj4g UnVubmluZyBvbiBWTSB3aXRoIDEyRyBtZW1vcnksIHNwbGl0IGFjcm9zcyAyIChlbXVsYXRlZCkg TlVNQSBub2RlcyAobmVlZGVkIGJ5Cj4+Pj4+IHNvbWUgbW0gc2VsZnRlc3RzKSwgd2l0aCBrZXJu ZWwgY29tbWFuZCBsaW5lIHRvIHJlc2VydmUgaHVnZXRsYnMgYW5kIG90aGVyCj4+Pj4+IGZlYXR1 cmVzIHJlcXVpcmVkIGJ5IHNvbWUgbW0gc2VsZnRlc3RzOgo+Pj4+PiAKPj4+Pj4gIgo+Pj4+PiB0 cmFuc3BhcmVudF9odWdlcGFnZT1tYWR2aXNlIGVhcmx5Y29uIHJvb3Q9L2Rldi92ZGEyIHNlY3Jl dG1lbS5lbmFibGUKPj4+Pj4gaHVnZXBhZ2Vzej0xRyBodWdlcGFnZXM9MDoyLDE6MiBodWdlcGFn ZXN6PTMyTSBodWdlcGFnZXM9MDoyLDE6Mgo+Pj4+PiBkZWZhdWx0X2h1Z2VwYWdlc3o9Mk0gaHVn ZXBhZ2VzPTA6NjQsMTo2NCBodWdlcGFnZXN6PTY0SyBodWdlcGFnZXM9MDoyLDE6Mgo+Pj4+PiAi Cj4+Pj4+IAo+Pj4+PiBVYnVudHUgdXNlcnNwYWNlIHJ1bm5pbmcgb2ZmIFhGUyByb290ZnMuIEJ1 aWxkIGFuZCBydW4gbW0gc2VsZnRlc3RzIGZyb20gc2FtZQo+Pj4+PiBnaXQgdHJlZS4KPj4+Pj4g Cj4+Pj4+IAo+Pj4+PiBBbHRob3VnaCBJIGRvbid0IHRoaW5rIGFueSBvZiB0aGlzIGNvbmZpZyBz aG91bGQgbWFrZSBhIGRpZmZlcmVuY2UgdG8gZ3VwX2xvbmd0ZXJtLgo+Pj4+PiAKPj4+Pj4gTG9v a3MgbGlrZSB5b3VyIGVycm9ycyBhcmUgYWxsICJmdHJ1bmNhdGUoKSBmYWlsZWQiLiBJJ3ZlIHNl ZW4gdGhpcyBwcm9ibGVtIG9uCj4+Pj4+IG91ciBDSSBzeXN0ZW0uIFRoZXJlIGl0IGlzIGR1ZSB0 byBydW5uaW5nIHRoZSB0ZXN0cyBmcm9tIE5GUyBmaWxlIHN5c3RlbS4gV2hhdAo+Pj4+PiBmaWxl c3lzdGVtIGFyZSB5b3UgdXNpbmc/IFBlcmhhcHMgeW91IGFyZSBzaGFyaW5nIGludG8gdGhlIEZW UCB1c2luZyA5cD8gVGhhdAo+Pj4+PiBtaWdodCBhbHNvIGJlIHByb2JsZW1hdGljLgo+Pj4+IAo+ Pj4+IFRoYXQgd2FzIGl0LiBUaGlzIHRpbWUgSSBib290ZWQgdXAgdGhlIGtlcm5lbCBpbmNsdWRp bmcgeW91ciBzZXJpZXMgb24KPj4+PiBRRU1VIG9uIG15IE0xIGFuZCBleGVjdXRlZCB0aGUgZ3Vw X2xvbmd0ZXJtIHByb2dyYW0gd2l0aG91dCB0aGUgZnRydW5jYXRlCj4+Pj4gZmFpbHVyZXMuIFdo ZW4gdGVzdGluZyB5b3VyIGtlcm5lbCBvbiBGVlAsIEkgd2FzIGV4ZWN1dGluZyB0aGUgc2NyaXB0 IGZyb20gdGhlIEZWUCdzIGhvc3QgZmlsZXN5c3RlbSB1c2luZyA5cC4KPj4+IAo+Pj4gSSdtIG5v dCBzdXJlIGV4YWN0bHkgd2hhdCB0aGUgcm9vdCBjYXVzZSBpcy4gUGVyaGFwcyB0aGVyZSBpc24n dCBlbm91Z2ggc3BhY2Ugb24KPj4+IHRoZSBkaXNrPyBJdCBtaWdodCBiZSB3b3J0aCBlbmhhbmNp bmcgdGhlIGVycm9yIGxvZyB0byBwcm92aWRlIHRoZSBlcnJubyBpbgo+Pj4gdG9vbHMvdGVzdGlu Zy9zZWxmdGVzdHMvbW0vZ3VwX2xvbmd0ZXJtLmMuCj4+PiAKPj4gCj4+IEF0dGFjaGVkIGlzIHRo ZSBzdHJhY2XigJlkIGd1cF9sb25ndGVybSBleGVjdXRpb25nIGxvZyBvbiB5b3VyCj4+IHBndGFi bGUtYm9vdC1zcGVlZHVwLXYyIGtlcm5lbC4KPiAKPiBTb3JyeSBhcmUgeW91IHNheWluZyB0aGF0 IGl0IG9ubHkgZmFpbHMgd2l0aCB0aGUgcGd0YWJsZS1ib290LXNwZWVkdXAtdjIgcGF0Y2gKPiBz ZXQgYXBwbGllZD8gSSB0aG91Z2h0IHdlIHByZXZpb3VzbHkgY29uY2x1ZGVkIHRoYXQgaXQgd2Fz IGluZGVwZW5kZW50IG9mIHRoYXQ/Cj4gSSB3YXMgdW5kZXIgdGhlIGltcHJlc3Npb24gdGhhdCBp dCB3YXMgZmlsZXN5c3RlbSByZWxhdGVkIGFuZCBub3Qgc29tZXRoaW5nIHRoYXQKPiBJIHdhcyBw bGFubmluZyB0byBpbnZlc3RpZ2F0ZS4KCk5vLCBpcnJlc3BlY3RpdmUgb2YgdGhlIGtlcm5lbCwg aWYgdXNpbmcgOXAgb24gRlZQIHRoZSB0ZXN0IHByb2dyYW0gZmFpbHMuCkl0IGlzIGluZGVlZCA5 cCBmaWxlc3lzdGVtIHJlbGF0ZWQsIGFzIEkgc3dpdGNoZWQgdG8gdXNpbmcgTkZTIGFsbCB0aGUg aXNzdWVzIGFyZSBnb25lLgoKVGhhbmtzLApJdGFydS4KCj4gCj4+IAo+PiBUaGFua3MsCj4+IEl0 YXJ1Lgo+PiAKPj4+IFRoYW5rcywKPj4+IFJ5YW4KPj4+IAo+Pj4+IAo+Pj4+IFRoYW5rcywKPj4+ PiBJdGFydS4KPj4+PiAKPj4+Pj4gCj4+Pj4+IERvZXMgdGhpcyBwcm9ibGVtIHJlcHJvZHVjZSB3 aXRoIHY2LjktcmMyLCB3aXRob3V0IG15IHBhdGNoZXM/IEkgZXhjZXB0IGl0Cj4+Pj4+IHByb2Jh Ymx5IGRvZXM/Cj4+Pj4+IAo+Pj4+PiBUaGFua3MsCj4+Pj4+IFJ5YW4KPj4+Pj4gCj4+Pj4+PiAK Pj4+Pj4+IFRoYW5rcywKPj4+Pj4+IEl0YXJ1LgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51 eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==