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 E9433CD1284 for ; Tue, 9 Apr 2024 10:05: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=wmQAKPgONFX9FVPoWlxu1iHKy9ulSJm1qOe5CeNuNFQ=; b=xUpmT7T5usJisQ l18RzkNNZ57H8qeBglfmSOg0Zom3wyLXOxA4dmQNXFNOw4WxrB1PnPYWXWHWxiWSZCEi05bR1o8V5 97X1OAt+AQfMZM3O9kzF88hlWXMmKfezzvOUBtInZGk7BR+c+ampX9mdId+saEIqiqcjaOoeMWwk2 G2w7E1qJIWhSDJjHKVRveJKGFf45fvxDgEbRNy6P0YVkdCeJvzAs28TeC1moQoOWjLbcnDBFSrFjw VjFltnhte+VyT6xr8k8DtuTqyuwEUljp9FjI8kk1+d/WJD1x02/Q8DyBgtpDBF2YI80HOL6TDULDU 16R34JPhkbpt760hz2Bw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1ru8LV-00000001LPE-3krz; Tue, 09 Apr 2024 10:04:53 +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 1ru8LR-00000001LLw-2Jak for linux-arm-kernel@lists.infradead.org; Tue, 09 Apr 2024 10:04:51 +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 ED1ECDA7; Tue, 9 Apr 2024 03:05:18 -0700 (PDT) Received: from [10.1.33.185] (unknown [10.1.33.185]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3ED383F6C4; Tue, 9 Apr 2024 03:04:47 -0700 (PDT) Message-ID: <1d5abb48-08a8-4d83-a681-6915bc7b6907@arm.com> Date: Tue, 9 Apr 2024 11:04:46 +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: Itaru Kitayama Cc: Catalin Marinas , Will Deacon , Mark Rutland , Ard Biesheuvel , David Hildenbrand , 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> From: Ryan Roberts In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240409_030449_732914_D502962B X-CRM114-Status: GOOD ( 25.49 ) 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 T24gMDkvMDQvMjAyNCAwMToxMCwgSXRhcnUgS2l0YXlhbWEgd3JvdGU6Cj4gSGkgUnlhbiwKPiAK Pj4gT24gQXByIDgsIDIwMjQsIGF0IDE2OjMwLCBSeWFuIFJvYmVydHMgPHJ5YW4ucm9iZXJ0c0Bh cm0uY29tPiB3cm90ZToKPj4gCj4+IE9uIDA2LzA0LzIwMjQgMTE6MzEsIEl0YXJ1IEtpdGF5YW1h IHdyb3RlOgo+Pj4gSGkgUnlhbiwKPj4+IAo+Pj4gT24gU2F0LCBBcHIgMDYsIDIwMjQgYXQgMDk6 MzI6MzRBTSArMDEwMCwgUnlhbiBSb2JlcnRzIHdyb3RlOgo+Pj4+IEhpIEl0YXJ1LAo+Pj4+IAo+ Pj4+IE9uIDA1LzA0LzIwMjQgMDg6MzksIEl0YXJ1IEtpdGF5YW1hIHdyb3RlOgo+Pj4+PiBPbiBU aHUsIEFwciAwNCwgMjAyNCBhdCAwMzozMzowNFBNICswMTAwLCBSeWFuIFJvYmVydHMgd3JvdGU6 Cj4+Pj4+PiBIaSBBbGwsCj4+Pj4+PiAKPj4+Pj4+IEl0IHR1cm5zIG91dCB0aGF0IGNyZWF0aW5n IHRoZSBsaW5lYXIgbWFwIGNhbiB0YWtlIGEgc2lnbmlmaWNhbnQgcHJvcG9ydGlvbiBvZgo+Pj4+ Pj4gdGhlIHRvdGFsIGJvb3QgdGltZSwgZXNwZWNpYWxseSB3aGVuIHJvZGF0YT1mdWxsLiBBbmQg bW9zdCBvZiB0aGUgdGltZSBpcyBzcGVudAo+Pj4+Pj4gd2FpdGluZyBvbiBzdXBlcmZsdW91cyB0 bGIgaW52YWxpZGF0aW9uIGFuZCBtZW1vcnkgYmFycmllcnMuIFRoaXMgc2VyaWVzIHJld29ya3MK Pj4+Pj4+IHRoZSBrZXJuZWwgcGd0YWJsZSBnZW5lcmF0aW9uIGNvZGUgdG8gc2lnbmlmaWNhbnRs eSByZWR1Y2UgdGhlIG51bWJlciBvZiB0aG9zZQo+Pj4+Pj4gVExCSXMsIElTQnMgYW5kIERTQnMu IFNlZSBlYWNoIHBhdGNoIGZvciBkZXRhaWxzLgo+Pj4+Pj4gCj4+Pj4+PiBUaGUgYmVsb3cgc2hv d3MgdGhlIGV4ZWN1dGlvbiB0aW1lIG9mIG1hcF9tZW0oKSBhY3Jvc3MgYSBjb3VwbGUgb2YgZGlm ZmVyZW50Cj4+Pj4+PiBzeXN0ZW1zIHdpdGggZGlmZmVyZW50IFJBTSBjb25maWd1cmF0aW9ucy4g V2UgbWVhc3VyZSBhZnRlciBhcHBseWluZyBlYWNoIHBhdGNoCj4+Pj4+PiBhbmQgc2hvdyB0aGUg aW1wcm92ZW1lbnQgcmVsYXRpdmUgdG8gYmFzZSAodjYuOS1yYzIpOgo+Pj4+Pj4gCj4+Pj4+PsKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCBBcHBsZSBNMiBWTSB8IEFtcGVyZSBBbHRyYXwg QW1wZXJlIEFsdHJhfCBBbXBlcmUgQWx0cmEKPj4+Pj4+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCB8IFZNLCAxNkfCoMKgwqDCoCB8IFZNLCA2NEfCoMKgwqDCoCB8IFZNLCAyNTZHwqDCoMKg IHwgTWV0YWwsIDUxMkcKPj4+Pj4+IC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0t LS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tCj4+Pj4+PsKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgfMKgwqAgbXPCoMKgwqAgKCUpIHzCoMKgIG1zwqDCoMKgICglKSB8wqDC oCBtc8KgwqDCoCAoJSkgfMKgwqDCoCBtc8KgwqDCoCAoJSkKPj4+Pj4+IC0tLS0tLS0tLS0tLS0t LXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0t Cj4+Pj4+PiBiYXNlwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDE1M8KgwqAgKDAlKSB8IDIyMjfC oMKgICgwJSkgfCA4Nzk4wqDCoCAoMCUpIHwgMTc0NDLCoMKgICgwJSkKPj4+Pj4+IG5vLWNvbnQt cmVtYXDCoCB8wqDCoCA3NyAoLTQ5JSkgfMKgIDQzMSAoLTgxJSkgfCAxNzI3ICgtODAlKSB8wqAg Mzc5NiAoLTc4JSkKPj4+Pj4+IGJhdGNoLWJhcnJpZXJzIHzCoMKgIDEzICgtOTIlKSB8wqAgMTYy ICgtOTMlKSB8wqAgNjU1ICgtOTMlKSB8wqAgMTY1NiAoLTkxJSkKPj4+Pj4+IG5vLWFsbG9jLXJl bWFwIHzCoMKgIDExICgtOTMlKSB8wqAgMTA5ICgtOTUlKSB8wqAgNDQ5ICgtOTUlKSB8wqAgMTI1 NyAoLTkzJSkKPj4+Pj4+IGxhenktdW5tYXDCoMKgwqDCoCB8wqDCoMKgIDYgKC05NiUpIHzCoMKg IDYxICgtOTclKSB8wqAgMjU3ICgtOTclKSB8wqDCoCA4MzggKC05NSUpCj4+Pj4+PiAKPj4+Pj4+ IFRoaXMgc2VyaWVzIGFwcGxpZXMgb24gdG9wIG9mIHY2LjktcmMyLiBBbGwgbW0gc2VsZnRlc3Rz IHBhc3MuIEkndmUgY29tcGlsZSBhbmQKPj4+Pj4+IGJvb3QgdGVzdGVkIHZhcmlvdXMgUEFHRV9T SVpFIGFuZCBWQSBzaXplIGNvbmZpZ3MuCj4+Pj4+PiAKPj4+Pj4+IC0tLQo+Pj4+Pj4gCj4+Pj4+ PiBDaGFuZ2VzIHNpbmNlIHYxIFsxXQo+Pj4+Pj4gPT09PT09PT09PT09PT09PT09PT0KPj4+Pj4+ IAo+Pj4+Pj7CoCAtIEFkZGVkIFRlc3RlZC1ieSB0YWdzICh0aGFua3MgdG8gRXJpYyBhbmQgSXRh cnUpCj4+Pj4+PsKgIC0gUmVuYW1lZCBfX19zZXRfcHRlKCkgLT4gX19zZXRfcHRlX25vc3luYygp IChwZXIgQXJkKQo+Pj4+Pj7CoCAtIFJlb3JkZXJlZCBwYXRjaGVzIChiaWdnZXN0IGltcGFjdCAm IGxlYXN0IGNvbnRyb3ZlcnNpYWwgZmlyc3QpCj4+Pj4+PsKgIC0gUmVvcmRlcmVkIGFsbG9jL21h cC91bm1hcCBmdW5jdGlvbnMgaW4gbW11LmMgdG8gYWlkIHJlYWRlcgo+Pj4+Pj7CoCAtIHB0ZV9j bGVhcigpIC0+IF9fcHRlX2NsZWFyKCkgaW4gY2xlYXJfZml4bWFwX25vc3luYygpCj4+Pj4+PsKg IC0gUmV2ZXJ0ZWQgZ2VuZXJpYyBwNGRfaW5kZXgoKSB3aGljaCBjYXVzZWQgeDg2IGJ1aWxkIGVy cm9yLiBSZXBsYWNlZCB3aXRoCj4+Pj4+PsKgwqDCoCB1bmNvbmRpdGlvbmFsIHA0ZF9pbmRleCgp IGRlZmluZSB1bmRlciBhcm02NC4KPj4+Pj4+IAo+Pj4+Pj4gCj4+Pj4+PiBbMV0gaHR0cHM6Ly9s b3JlLmtlcm5lbC5vcmcvbGludXgtYXJtLWtlcm5lbC8yMDI0MDMyNjEwMTQ0OC4zNDUzNjI2LTEt cnlhbi5yb2JlcnRzQGFybS5jb20vIDxodHRwczovL2xvcmUua2VybmVsLm9yZy9saW51eC1hcm0t a2VybmVsLzIwMjQwMzI2MTAxNDQ4LjM0NTM2MjYtMS1yeWFuLnJvYmVydHNAYXJtLmNvbS8+Cj4+ Pj4+PiAKPj4+Pj4+IFRoYW5rcywKPj4+Pj4+IFJ5YW4KPj4+Pj4+IAo+Pj4+Pj4gCj4+Pj4+PiBS eWFuIFJvYmVydHMgKDQpOgo+Pj4+Pj7CoCBhcm02NDogbW06IERvbid0IHJlbWFwIHBndGFibGVz IHBlci1jb250KHB0ZXxwbWQpIGJsb2NrCj4+Pj4+PsKgIGFybTY0OiBtbTogQmF0Y2ggZHNiIGFu ZCBpc2Igd2hlbiBwb3B1bGF0aW5nIHBndGFibGVzCj4+Pj4+PsKgIGFybTY0OiBtbTogRG9uJ3Qg cmVtYXAgcGd0YWJsZXMgZm9yIGFsbG9jYXRlIHZzIHBvcHVsYXRlCj4+Pj4+PsKgIGFybTY0OiBt bTogTGF6aWx5IGNsZWFyIHB0ZSB0YWJsZSBtYXBwaW5ncyBmcm9tIGZpeG1hcAo+Pj4+Pj4gCj4+ Pj4+PiBhcmNoL2FybTY0L2luY2x1ZGUvYXNtL2ZpeG1hcC5owqAgfMKgwqAgNSArLQo+Pj4+Pj4g YXJjaC9hcm02NC9pbmNsdWRlL2FzbS9tbXUuaMKgwqDCoMKgIHzCoMKgIDggKwo+Pj4+Pj4gYXJj aC9hcm02NC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmggfMKgIDEzICstCj4+Pj4+PiBhcmNoL2FybTY0 L2tlcm5lbC9jcHVmZWF0dXJlLmPCoMKgIHzCoCAxMCArLQo+Pj4+Pj4gYXJjaC9hcm02NC9tbS9m aXhtYXAuY8KgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAxMSArCj4+Pj4+PiBhcmNoL2FybTY0L21t L21tdS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAzNzcgKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLQo+Pj4+Pj4gNiBmaWxlcyBjaGFuZ2VkLCAzMTkgaW5zZXJ0aW9ucygrKSwg MTA1IGRlbGV0aW9ucygtKQo+Pj4+Pj4gCj4+Pj4+PiAtLQo+Pj4+Pj4gMi4yNS4xCj4+Pj4+PiAK Pj4+Pj4gCj4+Pj4+IEkndmUgYnVpbGQgYW5kIGJvb3QgdGVzdGVkIHRoZSB2MiBvbiBGVlAsIGJh c2UgaXMgdGFrZW4gZnJvbSB5b3VyCj4+Pj4+IGxpbnV4LXJyIHJlcG8uIFJ1bm5pbmcgcnVuX3Zt dGVzdHMuc2ggb24gdjIgbGVmdCBzb21lIGd1cCBsb25ndGVybSBub3Qgb2tzLCB3b3VsZCB5b3Ug dGFrZSBhIGxvb2sgYXQgaXQ/IFRoZSBtbSBrc2VmbHRlc3RzIHVzZWQgaXMgZnJvbSB5b3VyIGxp bnV4LXJyIHJlcG8gdG9vLgo+Pj4+IAo+Pj4+IFRoYW5rcyBmb3IgdGFraW5nIGEgbG9vayBhdCB0 aGlzLgo+Pj4+IAo+Pj4+IEkgY2FuJ3QgcmVwcm9kdWNlIHlvdXIgaXNzdWUgdW5mb3J0dW5hdGVs eTsgc3RlcHMgYXMgZm9sbG93cyBvbiBBcHBsZSBNMiBWTToKPj4+PiAKPj4+PiBDb25maWc6IGFy bTY0IGRlZmNvbmZpZyArIHRoZSBmb2xsb3dpbmc6Cj4+Pj4gCj4+Pj4gIyBTcXVhc2hmcyBmb3Ig c25hcHMsIHhmcyBmb3IgbGFyZ2UgZmlsZSBmb2xpb3MuCj4+Pj4gLi9zY3JpcHRzL2NvbmZpZyAt LWVuYWJsZSBDT05GSUdfU1FVQVNIRlNfTFo0Cj4+Pj4gLi9zY3JpcHRzL2NvbmZpZyAtLWVuYWJs ZSBDT05GSUdfU1FVQVNIRlNfTFpPCj4+Pj4gLi9zY3JpcHRzL2NvbmZpZyAtLWVuYWJsZSBDT05G SUdfU1FVQVNIRlNfWFoKPj4+PiAuL3NjcmlwdHMvY29uZmlnIC0tZW5hYmxlIENPTkZJR19TUVVB U0hGU19aU1RECj4+Pj4gLi9zY3JpcHRzL2NvbmZpZyAtLWVuYWJsZSBDT05GSUdfWEZTX0ZTCj4+ Pj4gCj4+Pj4gIyBGb3IgZ2VuZXJhbCBtbSBkZWJ1Zy4KPj4+PiAuL3NjcmlwdHMvY29uZmlnIC0t ZW5hYmxlIENPTkZJR19ERUJVR19WTQo+Pj4+IC4vc2NyaXB0cy9jb25maWcgLS1lbmFibGUgQ09O RklHX0RFQlVHX1ZNX01BUExFX1RSRUUKPj4+PiAuL3NjcmlwdHMvY29uZmlnIC0tZW5hYmxlIENP TkZJR19ERUJVR19WTV9SQgo+Pj4+IC4vc2NyaXB0cy9jb25maWcgLS1lbmFibGUgQ09ORklHX0RF QlVHX1ZNX1BHRkxBR1MKPj4+PiAuL3NjcmlwdHMvY29uZmlnIC0tZW5hYmxlIENPTkZJR19ERUJV R19WTV9QR1RBQkxFCj4+Pj4gLi9zY3JpcHRzL2NvbmZpZyAtLWVuYWJsZSBDT05GSUdfUEFHRV9U QUJMRV9DSEVDSwo+Pj4+IAo+Pj4+ICMgRm9yIG1tIHNlbGZ0ZXN0cy4KPj4+PiAuL3NjcmlwdHMv Y29uZmlnIC0tZW5hYmxlIENPTkZJR19VU0VSRkFVTFRGRAo+Pj4+IC4vc2NyaXB0cy9jb25maWcg LS1lbmFibGUgQ09ORklHX1RFU1RfVk1BTExPQwo+Pj4+IC4vc2NyaXB0cy9jb25maWcgLS1lbmFi bGUgQ09ORklHX0dVUF9URVNUCj4+Pj4gCj4+Pj4gUnVubmluZyBvbiBWTSB3aXRoIDEyRyBtZW1v cnksIHNwbGl0IGFjcm9zcyAyIChlbXVsYXRlZCkgTlVNQSBub2RlcyAobmVlZGVkIGJ5Cj4+Pj4g c29tZSBtbSBzZWxmdGVzdHMpLCB3aXRoIGtlcm5lbCBjb21tYW5kIGxpbmUgdG8gcmVzZXJ2ZSBo dWdldGxicyBhbmQgb3RoZXIKPj4+PiBmZWF0dXJlcyByZXF1aXJlZCBieSBzb21lIG1tIHNlbGZ0 ZXN0czoKPj4+PiAKPj4+PiAiCj4+Pj4gdHJhbnNwYXJlbnRfaHVnZXBhZ2U9bWFkdmlzZSBlYXJs eWNvbiByb290PS9kZXYvdmRhMiBzZWNyZXRtZW0uZW5hYmxlCj4+Pj4gaHVnZXBhZ2Vzej0xRyBo dWdlcGFnZXM9MDoyLDE6MiBodWdlcGFnZXN6PTMyTSBodWdlcGFnZXM9MDoyLDE6Mgo+Pj4+IGRl ZmF1bHRfaHVnZXBhZ2Vzej0yTSBodWdlcGFnZXM9MDo2NCwxOjY0IGh1Z2VwYWdlc3o9NjRLIGh1 Z2VwYWdlcz0wOjIsMToyCj4+Pj4gIgo+Pj4+IAo+Pj4+IFVidW50dSB1c2Vyc3BhY2UgcnVubmlu ZyBvZmYgWEZTIHJvb3Rmcy4gQnVpbGQgYW5kIHJ1biBtbSBzZWxmdGVzdHMgZnJvbSBzYW1lCj4+ Pj4gZ2l0IHRyZWUuCj4+Pj4gCj4+Pj4gCj4+Pj4gQWx0aG91Z2ggSSBkb24ndCB0aGluayBhbnkg b2YgdGhpcyBjb25maWcgc2hvdWxkIG1ha2UgYSBkaWZmZXJlbmNlIHRvIGd1cF9sb25ndGVybS4K Pj4+PiAKPj4+PiBMb29rcyBsaWtlIHlvdXIgZXJyb3JzIGFyZSBhbGwgImZ0cnVuY2F0ZSgpIGZh aWxlZCIuIEkndmUgc2VlbiB0aGlzIHByb2JsZW0gb24KPj4+PiBvdXIgQ0kgc3lzdGVtLiBUaGVy ZSBpdCBpcyBkdWUgdG8gcnVubmluZyB0aGUgdGVzdHMgZnJvbSBORlMgZmlsZSBzeXN0ZW0uIFdo YXQKPj4+PiBmaWxlc3lzdGVtIGFyZSB5b3UgdXNpbmc/IFBlcmhhcHMgeW91IGFyZSBzaGFyaW5n IGludG8gdGhlIEZWUCB1c2luZyA5cD8gVGhhdAo+Pj4+IG1pZ2h0IGFsc28gYmUgcHJvYmxlbWF0 aWMuCj4+PiAKPj4+IFRoYXQgd2FzIGl0LiBUaGlzIHRpbWUgSSBib290ZWQgdXAgdGhlIGtlcm5l bCBpbmNsdWRpbmcgeW91ciBzZXJpZXMgb24KPj4+IFFFTVUgb24gbXkgTTEgYW5kIGV4ZWN1dGVk IHRoZSBndXBfbG9uZ3Rlcm0gcHJvZ3JhbSB3aXRob3V0IHRoZSBmdHJ1bmNhdGUKPj4+IGZhaWx1 cmVzLiBXaGVuIHRlc3RpbmcgeW91ciBrZXJuZWwgb24gRlZQLCBJIHdhcyBleGVjdXRpbmcgdGhl IHNjcmlwdCBmcm9tIHRoZSBGVlAncyBob3N0IGZpbGVzeXN0ZW0gdXNpbmcgOXAuCj4+IAo+PiBJ J20gbm90IHN1cmUgZXhhY3RseSB3aGF0IHRoZSByb290IGNhdXNlIGlzLiBQZXJoYXBzIHRoZXJl IGlzbid0IGVub3VnaCBzcGFjZSBvbgo+PiB0aGUgZGlzaz8gSXQgbWlnaHQgYmUgd29ydGggZW5o YW5jaW5nIHRoZSBlcnJvciBsb2cgdG8gcHJvdmlkZSB0aGUgZXJybm8gaW4KPj4gdG9vbHMvdGVz dGluZy9zZWxmdGVzdHMvbW0vZ3VwX2xvbmd0ZXJtLmMuCj4+IAo+IAo+IEF0dGFjaGVkIGlzIHRo ZSBzdHJhY2XigJlkIGd1cF9sb25ndGVybSBleGVjdXRpb25nIGxvZyBvbiB5b3VyCj4gcGd0YWJs ZS1ib290LXNwZWVkdXAtdjIga2VybmVsLgoKU29ycnkgYXJlIHlvdSBzYXlpbmcgdGhhdCBpdCBv bmx5IGZhaWxzIHdpdGggdGhlIHBndGFibGUtYm9vdC1zcGVlZHVwLXYyIHBhdGNoCnNldCBhcHBs aWVkPyBJIHRob3VnaHQgd2UgcHJldmlvdXNseSBjb25jbHVkZWQgdGhhdCBpdCB3YXMgaW5kZXBl bmRlbnQgb2YgdGhhdD8KSSB3YXMgdW5kZXIgdGhlIGltcHJlc3Npb24gdGhhdCBpdCB3YXMgZmls ZXN5c3RlbSByZWxhdGVkIGFuZCBub3Qgc29tZXRoaW5nIHRoYXQKSSB3YXMgcGxhbm5pbmcgdG8g aW52ZXN0aWdhdGUuCgo+IAo+IFRoYW5rcywKPiBJdGFydS4KPiAKPj4gVGhhbmtzLAo+PiBSeWFu Cj4+IAo+Pj4gCj4+PiBUaGFua3MsCj4+PiBJdGFydS4KPj4+IAo+Pj4+IAo+Pj4+IERvZXMgdGhp cyBwcm9ibGVtIHJlcHJvZHVjZSB3aXRoIHY2LjktcmMyLCB3aXRob3V0IG15IHBhdGNoZXM/IEkg ZXhjZXB0IGl0Cj4+Pj4gcHJvYmFibHkgZG9lcz8KPj4+PiAKPj4+PiBUaGFua3MsCj4+Pj4gUnlh bgo+Pj4+IAo+Pj4+PiAKPj4+Pj4gVGhhbmtzLAo+Pj4+PiBJdGFydS4KPiAKPiAKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVs IG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==