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 69AD3CD11C2 for ; Wed, 10 Apr 2024 07:11:18 +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=/3xJpFfZVUmSEBPy47uMthUuuADcp8eUSgz3U/AorEA=; b=dBDWG3wv3yt0aO tYxE/lxfiLycf5AXeMoo+0c857DwiWU4+NwFTfPggbbArCHmTb+8ki8fyM6STub1mAn90y97T/Z0l tKMbDxExZZ37120Wp5lKD35KgorGa67IAtQou12MKDDu6jmamx3kvp92wEvUkgVbxcPlbtalvHH6m 564WQuFzQ/6aiQI+FDbHpcNstGpntxmxwCjs8lClWgIifnwaP4fO4GkCP+W5Kc7niiVRCm5RRLuOI rWOS9r4Ojqs7SL+A1jmvMPPVxHAUOle1a4lMrkye5PXxZy+xeVoFAmXbjOf1g4c8GVsphYBXewjUV pUjmEzloakM6/aeSk2KQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1ruS6p-00000005XdR-1nEz; Wed, 10 Apr 2024 07:11:03 +0000 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1ruS6l-00000005Xc1-1NOG for linux-arm-kernel@lists.infradead.org; Wed, 10 Apr 2024 07:11:00 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1712733057; 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:autocrypt:autocrypt; bh=s8nt20JHKbl6hgq58I8i9JSUR+bBGffR/IYRpP43/0E=; b=bxtvidWP/PcgqcxPkrsjFMvziERRDKN3UxAmE6mmr72BYdAYZmV1PSCIwrKjEHQWjyuIvb kx7wblt3nl6BaflMCPpydJGGZ5dE/YucA845Q5HSZ4oM6o2TwQRfXKBJroX6qQUDJjukwz jzhPmy9yj2WIyXa3FA5MkdZlgVoefio= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-327-9r4Q99qnOm-ysiwptT1XRQ-1; Wed, 10 Apr 2024 03:10:55 -0400 X-MC-Unique: 9r4Q99qnOm-ysiwptT1XRQ-1 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-4163e766c59so17478295e9.3 for ; Wed, 10 Apr 2024 00:10:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712733054; x=1713337854; h=content-transfer-encoding:in-reply-to:organization:autocrypt :content-language:from:references:cc:to:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=s8nt20JHKbl6hgq58I8i9JSUR+bBGffR/IYRpP43/0E=; b=IwuZxgArwzm35LQAFzAaJD9pNSyhRefIuoP9/hvbYX3mj2NLBGb41Oc4XpSwjhxXiP gebv5pPdQ8quMSOtnCxYG1774bzlE+lsVloGGG2ohGjuroB3R6G74Z5C6m3ys3xx/Di0 Eno8PD60MFM8wi+8RIvKtAgII+p6OEdDITANHpSOmLPVrzvqRuTlpiJSrMe8yDksoMoR bUF852KdMBMgTAv4/kehaFpr0/VeNvEkw5K92O4tuVS+nw5NWHLwfHggqfS/09aVHUCA iS4wM5CTpAdJgMSlKUeTKLLGHaOq/YkBpHgbp8JgcBIzhzQppJEVyMFbKPyzKT8r8Tgc tzzw== X-Forwarded-Encrypted: i=1; AJvYcCXP8MxEHknsfTa/ISDTO7UVgg9oAL/yFQlN3Ssfm1n6xn2wSHI64/YOo8FeESIlMcsL1gP3lvRSursa+Jwrdvfn90ZXjn8Vta3QqEsx7Smm1IF6Y6E= X-Gm-Message-State: AOJu0YwTq5lb6r/jlNcB3VBrig5pdNUE4FioYOaBwqJK8w3/Lc+8xalw YWT6L2+rDPU9ju3MmEhHU42EofBma8W1Ct+SFl/Dmi3yf+eYqoedwUkKaRAgzSXVSg0KkvbYHb9 z2DHO1gz6P6Z7KI2cmNCNNyZoei4YyBTYyGqkB/fN0cLyhEJF/XQ7AXE5pGr3DqS6VZXYwqKv X-Received: by 2002:a05:600c:1e84:b0:417:451f:4f62 with SMTP id be4-20020a05600c1e8400b00417451f4f62mr571753wmb.1.1712733053960; Wed, 10 Apr 2024 00:10:53 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFMVdu3ZGjjvhV6GEt1P3qVnMKhzO9bXMAuHBSeK/L+Xa0jZJoutzVzd7PhhLnbWeYI55rrMQ== X-Received: by 2002:a05:600c:1e84:b0:417:451f:4f62 with SMTP id be4-20020a05600c1e8400b00417451f4f62mr571729wmb.1.1712733053440; Wed, 10 Apr 2024 00:10:53 -0700 (PDT) Received: from [192.168.3.108] (p5b0c60c1.dip0.t-ipconnect.de. [91.12.96.193]) by smtp.gmail.com with ESMTPSA id bg25-20020a05600c3c9900b004162d06768bsm1362070wmb.21.2024.04.10.00.10.52 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 10 Apr 2024 00:10:52 -0700 (PDT) Message-ID: Date: Wed, 10 Apr 2024 09:10:51 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 0/4] Speed up boot with faster linear map creation To: Itaru Kitayama Cc: Ryan Roberts , 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> <156cf812-a2de-4480-80dc-31c38ca0eb57@redhat.com> <8AA82C6E-F7E7-40A3-952D-392735E1405A@linux.dev> <1E3DBD5D-0EF2-472B-8164-DBC1368C22B4@linux.dev> From: David Hildenbrand Autocrypt: addr=david@redhat.com; keydata= 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 WNyWQQ== Organization: Red Hat In-Reply-To: <1E3DBD5D-0EF2-472B-8164-DBC1368C22B4@linux.dev> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240410_001059_564670_D34E8FDF X-CRM114-Status: GOOD ( 16.70 ) 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 T24gMTAuMDQuMjQgMDg6NDcsIEl0YXJ1IEtpdGF5YW1hIHdyb3RlOgo+IAo+IAo+PiBPbiBBcHIg MTAsIDIwMjQsIGF0IDg6MzAsIEl0YXJ1IEtpdGF5YW1hIDxpdGFydS5raXRheWFtYUBsaW51eC5k ZXY+IHdyb3RlOgo+Pgo+PiBIaSBEYXZpZCwKPj4KPj4+IE9uIEFwciA5LCAyMDI0LCBhdCAyMzo0 NSwgRGF2aWQgSGlsZGVuYnJhbmQgPGRhdmlkQHJlZGhhdC5jb20+IHdyb3RlOgo+Pj4KPj4+IE9u IDA5LjA0LjI0IDE2OjM5LCBSeWFuIFJvYmVydHMgd3JvdGU6Cj4+Pj4gT24gMDkvMDQvMjAyNCAx NToyOSwgRGF2aWQgSGlsZGVuYnJhbmQgd3JvdGU6Cj4+Pj4+IE9uIDA5LjA0LjI0IDE2OjEzLCBS eWFuIFJvYmVydHMgd3JvdGU6Cj4+Pj4+PiBPbiAwOS8wNC8yMDI0IDEyOjUxLCBEYXZpZCBIaWxk ZW5icmFuZCB3cm90ZToKPj4+Pj4+PiBPbiAwOS4wNC4yNCAxMzoyOSwgRGF2aWQgSGlsZGVuYnJh bmQgd3JvdGU6Cj4+Pj4+Pj4+IE9uIDA5LjA0LjI0IDEzOjIyLCBEYXZpZCBIaWxkZW5icmFuZCB3 cm90ZToKPj4+Pj4+Pj4+IE9uIDA5LjA0LjI0IDEyOjEzLCBJdGFydSBLaXRheWFtYSB3cm90ZToK Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IE9uIEFwciA5LCAyMDI0LCBhdCAxOTow NCwgUnlhbiBSb2JlcnRzIDxyeWFuLnJvYmVydHNAYXJtLmNvbT4gd3JvdGU6Cj4+Pj4+Pj4+Pj4+ Cj4+Pj4+Pj4+Pj4+IE9uIDA5LzA0LzIwMjQgMDE6MTAsIEl0YXJ1IEtpdGF5YW1hIHdyb3RlOgo+ Pj4+Pj4+Pj4+Pj4gSGkgUnlhbiwKPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4gT24gQXByIDgs IDIwMjQsIGF0IDE2OjMwLCBSeWFuIFJvYmVydHMgPHJ5YW4ucm9iZXJ0c0Bhcm0uY29tPiB3cm90 ZToKPj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+IE9uIDA2LzA0LzIwMjQgMTE6MzEsIEl0YXJ1 IEtpdGF5YW1hIHdyb3RlOgo+Pj4+Pj4+Pj4+Pj4+PiBIaSBSeWFuLAo+Pj4+Pj4+Pj4+Pj4+Pgo+ Pj4+Pj4+Pj4+Pj4+PiBPbiBTYXQsIEFwciAwNiwgMjAyNCBhdCAwOTozMjozNEFNICswMTAwLCBS eWFuIFJvYmVydHMgd3JvdGU6Cj4+Pj4+Pj4+Pj4+Pj4+PiBIaSBJdGFydSwKPj4+Pj4+Pj4+Pj4+ Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+PiBPbiAwNS8wNC8yMDI0IDA4OjM5LCBJdGFydSBLaXRheWFtYSB3 cm90ZToKPj4+Pj4+Pj4+Pj4+Pj4+PiBPbiBUaHUsIEFwciAwNCwgMjAyNCBhdCAwMzozMzowNFBN ICswMTAwLCBSeWFuIFJvYmVydHMgd3JvdGU6Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+IEhpIEFsbCwKPj4+ Pj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+Pj4+Pj4gSXQgdHVybnMgb3V0IHRoYXQgY3JlYXRp bmcgdGhlIGxpbmVhciBtYXAgY2FuIHRha2UgYSBzaWduaWZpY2FudAo+Pj4+Pj4+Pj4+Pj4+Pj4+ PiBwcm9wb3J0aW9uIG9mCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IHRoZSB0b3RhbCBib290IHRpbWUsIGVz cGVjaWFsbHkgd2hlbiByb2RhdGE9ZnVsbC4gQW5kIG1vc3Qgb2YgdGhlCj4+Pj4+Pj4+Pj4+Pj4+ Pj4+IHRpbWUgaXMgc3BlbnQKPj4+Pj4+Pj4+Pj4+Pj4+Pj4gd2FpdGluZyBvbiBzdXBlcmZsdW91 cyB0bGIgaW52YWxpZGF0aW9uIGFuZCBtZW1vcnkgYmFycmllcnMuIFRoaXMKPj4+Pj4+Pj4+Pj4+ Pj4+Pj4gc2VyaWVzIHJld29ya3MKPj4+Pj4+Pj4+Pj4+Pj4+Pj4gdGhlIGtlcm5lbCBwZ3RhYmxl IGdlbmVyYXRpb24gY29kZSB0byBzaWduaWZpY2FudGx5IHJlZHVjZSB0aGUgbnVtYmVyCj4+Pj4+ Pj4+Pj4+Pj4+Pj4+IG9mIHRob3NlCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IFRMQklzLCBJU0JzIGFuZCBE U0JzLiBTZWUgZWFjaCBwYXRjaCBmb3IgZGV0YWlscy4KPj4+Pj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+ Pj4+Pj4+Pj4+Pj4gVGhlIGJlbG93IHNob3dzIHRoZSBleGVjdXRpb24gdGltZSBvZiBtYXBfbWVt KCkgYWNyb3NzIGEgY291cGxlIG9mCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGRpZmZlcmVudAo+Pj4+Pj4+ Pj4+Pj4+Pj4+PiBzeXN0ZW1zIHdpdGggZGlmZmVyZW50IFJBTSBjb25maWd1cmF0aW9ucy4gV2Ug bWVhc3VyZSBhZnRlciBhcHBseWluZwo+Pj4+Pj4+Pj4+Pj4+Pj4+PiBlYWNoIHBhdGNoCj4+Pj4+ Pj4+Pj4+Pj4+Pj4+IGFuZCBzaG93IHRoZSBpbXByb3ZlbWVudCByZWxhdGl2ZSB0byBiYXNlICh2 Ni45LXJjMik6Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAgICAgICAgICAg ICAgICAgICB8IEFwcGxlIE0yIFZNIHwgQW1wZXJlIEFsdHJhfCBBbXBlcmUgQWx0cmF8IEFtcGVy ZQo+Pj4+Pj4+Pj4+Pj4+Pj4+PiBBbHRyYQo+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgICAgICAgICAgICAg ICAgICAgfCBWTSwgMTZHICAgICB8IFZNLCA2NEcgICAgIHwgVk0sIDI1NkcgICAgfCBNZXRhbCwK Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gNTEyRwo+Pj4+Pj4+Pj4+Pj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS18 LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLQo+ Pj4+Pj4+Pj4+Pj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgfCAgIG1zICAgICglKSB8ICAgbXMg ICAgKCUpIHwgICBtcyAgICAoJSkgfAo+Pj4+Pj4+Pj4+Pj4+Pj4+PiBtcyAgICAoJSkKPj4+Pj4+ Pj4+Pj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwt LS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0KPj4+Pj4+Pj4+Pj4+Pj4+Pj4gYmFzZSAgICAgICAg ICAgfCAgMTUzICAgKDAlKSB8IDIyMjcgICAoMCUpIHwgODc5OCAgICgwJSkgfCAxNzQ0Mgo+Pj4+ Pj4+Pj4+Pj4+Pj4+PiAoMCUpCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IG5vLWNvbnQtcmVtYXAgIHwgICA3 NyAoLTQ5JSkgfCAgNDMxICgtODElKSB8IDE3MjcgKC04MCUpIHwgIDM3OTYKPj4+Pj4+Pj4+Pj4+ Pj4+Pj4gKC03OCUpCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGJhdGNoLWJhcnJpZXJzIHwgICAxMyAoLTky JSkgfCAgMTYyICgtOTMlKSB8ICA2NTUgKC05MyUpIHwgIDE2NTYKPj4+Pj4+Pj4+Pj4+Pj4+Pj4g KC05MSUpCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IG5vLWFsbG9jLXJlbWFwIHwgICAxMSAoLTkzJSkgfCAg MTA5ICgtOTUlKSB8ICA0NDkgKC05NSUpIHwgIDEyNTcKPj4+Pj4+Pj4+Pj4+Pj4+Pj4gKC05MyUp Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGxhenktdW5tYXAgICAgIHwgICAgNiAoLTk2JSkgfCAgIDYxICgt OTclKSB8ICAyNTcgKC05NyUpIHwgICA4MzgKPj4+Pj4+Pj4+Pj4+Pj4+Pj4gKC05NSUpCj4+Pj4+ Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+IFRoaXMgc2VyaWVzIGFwcGxpZXMgb24gdG9w IG9mIHY2LjktcmMyLiBBbGwgbW0gc2VsZnRlc3RzIHBhc3MuIEkndmUKPj4+Pj4+Pj4+Pj4+Pj4+ Pj4gY29tcGlsZSBhbmQKPj4+Pj4+Pj4+Pj4+Pj4+Pj4gYm9vdCB0ZXN0ZWQgdmFyaW91cyBQQUdF X1NJWkUgYW5kIFZBIHNpemUgY29uZmlncy4KPj4+Pj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+ Pj4+Pj4gLS0tCj4+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+IENoYW5nZXMgc2lu Y2UgdjEgWzFdCj4+Pj4+Pj4+Pj4+Pj4+Pj4+ID09PT09PT09PT09PT09PT09PT09Cj4+Pj4+Pj4+ Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAgICAgIC0gQWRkZWQgVGVzdGVkLWJ5IHRhZ3Mg KHRoYW5rcyB0byBFcmljIGFuZCBJdGFydSkKPj4+Pj4+Pj4+Pj4+Pj4+Pj4gICAgICAgLSBSZW5h bWVkIF9fX3NldF9wdGUoKSAtPiBfX3NldF9wdGVfbm9zeW5jKCkgKHBlciBBcmQpCj4+Pj4+Pj4+ Pj4+Pj4+Pj4+ICAgICAgIC0gUmVvcmRlcmVkIHBhdGNoZXMgKGJpZ2dlc3QgaW1wYWN0ICYgbGVh c3QgY29udHJvdmVyc2lhbCBmaXJzdCkKPj4+Pj4+Pj4+Pj4+Pj4+Pj4gICAgICAgLSBSZW9yZGVy ZWQgYWxsb2MvbWFwL3VubWFwIGZ1bmN0aW9ucyBpbiBtbXUuYyB0byBhaWQgcmVhZGVyCj4+Pj4+ Pj4+Pj4+Pj4+Pj4+ICAgICAgIC0gcHRlX2NsZWFyKCkgLT4gX19wdGVfY2xlYXIoKSBpbiBjbGVh cl9maXhtYXBfbm9zeW5jKCkKPj4+Pj4+Pj4+Pj4+Pj4+Pj4gICAgICAgLSBSZXZlcnRlZCBnZW5l cmljIHA0ZF9pbmRleCgpIHdoaWNoIGNhdXNlZCB4ODYgYnVpbGQgZXJyb3IuCj4+Pj4+Pj4+Pj4+ Pj4+Pj4+IFJlcGxhY2VkIHdpdGgKPj4+Pj4+Pj4+Pj4+Pj4+Pj4gICAgICAgICB1bmNvbmRpdGlv bmFsIHA0ZF9pbmRleCgpIGRlZmluZSB1bmRlciBhcm02NC4KPj4+Pj4+Pj4+Pj4+Pj4+Pj4KPj4+ Pj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+Pj4+Pj4gWzFdCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGh0 dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LWFybS1rZXJuZWwvMjAyNDAzMjYxMDE0NDguMzQ1 MzYyNi0xLXJ5YW4ucm9iZXJ0c0Bhcm0uY29tLzxodHRwczovL2xvcmUua2VybmVsLm9yZy9saW51 eC1hcm0ta2VybmVsLzIwMjQwMzI2MTAxNDQ4LjM0NTM2MjYtMS1yeWFuLnJvYmVydHNAYXJtLmNv bS8+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+IFRoYW5rcywKPj4+Pj4+Pj4+ Pj4+Pj4+Pj4gUnlhbgo+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+ Pj4+Pj4+Pj4+PiBSeWFuIFJvYmVydHMgKDQpOgo+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgICAgICBhcm02 NDogbW06IERvbid0IHJlbWFwIHBndGFibGVzIHBlci1jb250KHB0ZXxwbWQpIGJsb2NrCj4+Pj4+ Pj4+Pj4+Pj4+Pj4+ICAgICAgIGFybTY0OiBtbTogQmF0Y2ggZHNiIGFuZCBpc2Igd2hlbiBwb3B1 bGF0aW5nIHBndGFibGVzCj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAgICAgIGFybTY0OiBtbTogRG9uJ3Qg cmVtYXAgcGd0YWJsZXMgZm9yIGFsbG9jYXRlIHZzIHBvcHVsYXRlCj4+Pj4+Pj4+Pj4+Pj4+Pj4+ ICAgICAgIGFybTY0OiBtbTogTGF6aWx5IGNsZWFyIHB0ZSB0YWJsZSBtYXBwaW5ncyBmcm9tIGZp eG1hcAo+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Pj4+PiBhcmNoL2FybTY0L2luY2x1 ZGUvYXNtL2ZpeG1hcC5oICB8ICAgNSArLQo+Pj4+Pj4+Pj4+Pj4+Pj4+PiBhcmNoL2FybTY0L2lu Y2x1ZGUvYXNtL21tdS5oICAgICB8ICAgOCArCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGFyY2gvYXJtNjQv aW5jbHVkZS9hc20vcGd0YWJsZS5oIHwgIDEzICstCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGFyY2gvYXJt NjQva2VybmVsL2NwdWZlYXR1cmUuYyAgIHwgIDEwICstCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGFyY2gv YXJtNjQvbW0vZml4bWFwLmMgICAgICAgICAgIHwgIDExICsKPj4+Pj4+Pj4+Pj4+Pj4+Pj4gYXJj aC9hcm02NC9tbS9tbXUuYyAgICAgICAgICAgICAgfCAzNzcgKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLQo+Pj4+Pj4+Pj4+Pj4+Pj4+PiA2IGZpbGVzIGNoYW5nZWQsIDMxOSBpbnNlcnRp b25zKCspLCAxMDUgZGVsZXRpb25zKC0pCj4+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+ Pj4+IC0tIAo+Pj4+Pj4+Pj4+Pj4+Pj4+PiAyLjI1LjEKPj4+Pj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+ Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Pj4+IEkndmUgYnVpbGQgYW5kIGJvb3QgdGVzdGVkIHRo ZSB2MiBvbiBGVlAsIGJhc2UgaXMgdGFrZW4gZnJvbSB5b3VyCj4+Pj4+Pj4+Pj4+Pj4+Pj4gbGlu dXgtcnIgcmVwby4gUnVubmluZyBydW5fdm10ZXN0cy5zaCBvbiB2MiBsZWZ0IHNvbWUgZ3VwIGxv bmd0ZXJtIG5vdAo+Pj4+Pj4+Pj4+Pj4+Pj4+IG9rcywgd291bGQgeW91IHRha2UgYSBsb29rIGF0 IGl0PyBUaGUgbW0ga3NlZmx0ZXN0cyB1c2VkIGlzIGZyb20geW91cgo+Pj4+Pj4+Pj4+Pj4+Pj4+ IGxpbnV4LXJyIHJlcG8gdG9vLgo+Pj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+Pj4+IFRoYW5r cyBmb3IgdGFraW5nIGEgbG9vayBhdCB0aGlzLgo+Pj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+ Pj4+IEkgY2FuJ3QgcmVwcm9kdWNlIHlvdXIgaXNzdWUgdW5mb3J0dW5hdGVseTsgc3RlcHMgYXMg Zm9sbG93cyBvbiBBcHBsZQo+Pj4+Pj4+Pj4+Pj4+Pj4gTTIgVk06Cj4+Pj4+Pj4+Pj4+Pj4+Pgo+ Pj4+Pj4+Pj4+Pj4+Pj4gQ29uZmlnOiBhcm02NCBkZWZjb25maWcgKyB0aGUgZm9sbG93aW5nOgo+ Pj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+Pj4+ICMgU3F1YXNoZnMgZm9yIHNuYXBzLCB4ZnMg Zm9yIGxhcmdlIGZpbGUgZm9saW9zLgo+Pj4+Pj4+Pj4+Pj4+Pj4gLi9zY3JpcHRzL2NvbmZpZyAt LWVuYWJsZSBDT05GSUdfU1FVQVNIRlNfTFo0Cj4+Pj4+Pj4+Pj4+Pj4+PiAuL3NjcmlwdHMvY29u ZmlnIC0tZW5hYmxlIENPTkZJR19TUVVBU0hGU19MWk8KPj4+Pj4+Pj4+Pj4+Pj4+IC4vc2NyaXB0 cy9jb25maWcgLS1lbmFibGUgQ09ORklHX1NRVUFTSEZTX1haCj4+Pj4+Pj4+Pj4+Pj4+PiAuL3Nj cmlwdHMvY29uZmlnIC0tZW5hYmxlIENPTkZJR19TUVVBU0hGU19aU1RECj4+Pj4+Pj4+Pj4+Pj4+ PiAuL3NjcmlwdHMvY29uZmlnIC0tZW5hYmxlIENPTkZJR19YRlNfRlMKPj4+Pj4+Pj4+Pj4+Pj4+ Cj4+Pj4+Pj4+Pj4+Pj4+PiAjIEZvciBnZW5lcmFsIG1tIGRlYnVnLgo+Pj4+Pj4+Pj4+Pj4+Pj4g Li9zY3JpcHRzL2NvbmZpZyAtLWVuYWJsZSBDT05GSUdfREVCVUdfVk0KPj4+Pj4+Pj4+Pj4+Pj4+ IC4vc2NyaXB0cy9jb25maWcgLS1lbmFibGUgQ09ORklHX0RFQlVHX1ZNX01BUExFX1RSRUUKPj4+ Pj4+Pj4+Pj4+Pj4+IC4vc2NyaXB0cy9jb25maWcgLS1lbmFibGUgQ09ORklHX0RFQlVHX1ZNX1JC Cj4+Pj4+Pj4+Pj4+Pj4+PiAuL3NjcmlwdHMvY29uZmlnIC0tZW5hYmxlIENPTkZJR19ERUJVR19W TV9QR0ZMQUdTCj4+Pj4+Pj4+Pj4+Pj4+PiAuL3NjcmlwdHMvY29uZmlnIC0tZW5hYmxlIENPTkZJ R19ERUJVR19WTV9QR1RBQkxFCj4+Pj4+Pj4+Pj4+Pj4+PiAuL3NjcmlwdHMvY29uZmlnIC0tZW5h YmxlIENPTkZJR19QQUdFX1RBQkxFX0NIRUNLCj4+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+ Pj4gIyBGb3IgbW0gc2VsZnRlc3RzLgo+Pj4+Pj4+Pj4+Pj4+Pj4gLi9zY3JpcHRzL2NvbmZpZyAt LWVuYWJsZSBDT05GSUdfVVNFUkZBVUxURkQKPj4+Pj4+Pj4+Pj4+Pj4+IC4vc2NyaXB0cy9jb25m aWcgLS1lbmFibGUgQ09ORklHX1RFU1RfVk1BTExPQwo+Pj4+Pj4+Pj4+Pj4+Pj4gLi9zY3JpcHRz L2NvbmZpZyAtLWVuYWJsZSBDT05GSUdfR1VQX1RFU1QKPj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+ Pj4+Pj4+PiBSdW5uaW5nIG9uIFZNIHdpdGggMTJHIG1lbW9yeSwgc3BsaXQgYWNyb3NzIDIgKGVt dWxhdGVkKSBOVU1BIG5vZGVzCj4+Pj4+Pj4+Pj4+Pj4+PiAobmVlZGVkIGJ5Cj4+Pj4+Pj4+Pj4+ Pj4+PiBzb21lIG1tIHNlbGZ0ZXN0cyksIHdpdGgga2VybmVsIGNvbW1hbmQgbGluZSB0byByZXNl cnZlIGh1Z2V0bGJzIGFuZAo+Pj4+Pj4+Pj4+Pj4+Pj4gb3RoZXIKPj4+Pj4+Pj4+Pj4+Pj4+IGZl YXR1cmVzIHJlcXVpcmVkIGJ5IHNvbWUgbW0gc2VsZnRlc3RzOgo+Pj4+Pj4+Pj4+Pj4+Pj4KPj4+ Pj4+Pj4+Pj4+Pj4+ICIKPj4+Pj4+Pj4+Pj4+Pj4+IHRyYW5zcGFyZW50X2h1Z2VwYWdlPW1hZHZp c2UgZWFybHljb24gcm9vdD0vZGV2L3ZkYTIgc2VjcmV0bWVtLmVuYWJsZQo+Pj4+Pj4+Pj4+Pj4+ Pj4gaHVnZXBhZ2Vzej0xRyBodWdlcGFnZXM9MDoyLDE6MiBodWdlcGFnZXN6PTMyTSBodWdlcGFn ZXM9MDoyLDE6Mgo+Pj4+Pj4+Pj4+Pj4+Pj4gZGVmYXVsdF9odWdlcGFnZXN6PTJNIGh1Z2VwYWdl cz0wOjY0LDE6NjQgaHVnZXBhZ2Vzej02NEsKPj4+Pj4+Pj4+Pj4+Pj4+IGh1Z2VwYWdlcz0wOjIs MToyCj4+Pj4+Pj4+Pj4+Pj4+PiAiCj4+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Pj4gVWJ1 bnR1IHVzZXJzcGFjZSBydW5uaW5nIG9mZiBYRlMgcm9vdGZzLiBCdWlsZCBhbmQgcnVuIG1tIHNl bGZ0ZXN0cwo+Pj4+Pj4+Pj4+Pj4+Pj4gZnJvbSBzYW1lCj4+Pj4+Pj4+Pj4+Pj4+PiBnaXQgdHJl ZS4KPj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Pj4gQWx0aG91 Z2ggSSBkb24ndCB0aGluayBhbnkgb2YgdGhpcyBjb25maWcgc2hvdWxkIG1ha2UgYSBkaWZmZXJl bmNlIHRvCj4+Pj4+Pj4+Pj4+Pj4+PiBndXBfbG9uZ3Rlcm0uCj4+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4+Pj4+Pj4gTG9va3MgbGlrZSB5b3VyIGVycm9ycyBhcmUgYWxsICJmdHJ1bmNhdGUoKSBm YWlsZWQiLiBJJ3ZlIHNlZW4gdGhpcwo+Pj4+Pj4+Pj4+Pj4+Pj4gcHJvYmxlbSBvbgo+Pj4+Pj4+ Pj4+Pj4+Pj4gb3VyIENJIHN5c3RlbS4gVGhlcmUgaXQgaXMgZHVlIHRvIHJ1bm5pbmcgdGhlIHRl c3RzIGZyb20gTkZTIGZpbGUKPj4+Pj4+Pj4+Pj4+Pj4+IHN5c3RlbS4gV2hhdAo+Pj4+Pj4+Pj4+ Pj4+Pj4gZmlsZXN5c3RlbSBhcmUgeW91IHVzaW5nPyBQZXJoYXBzIHlvdSBhcmUgc2hhcmluZyBp bnRvIHRoZSBGVlAgdXNpbmcKPj4+Pj4+Pj4+Pj4+Pj4+IDlwPyBUaGF0Cj4+Pj4+Pj4+Pj4+Pj4+ PiBtaWdodCBhbHNvIGJlIHByb2JsZW1hdGljLgo+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+ PiBUaGF0IHdhcyBpdC4gVGhpcyB0aW1lIEkgYm9vdGVkIHVwIHRoZSBrZXJuZWwgaW5jbHVkaW5n IHlvdXIgc2VyaWVzIG9uCj4+Pj4+Pj4+Pj4+Pj4+IFFFTVUgb24gbXkgTTEgYW5kIGV4ZWN1dGVk IHRoZSBndXBfbG9uZ3Rlcm0gcHJvZ3JhbSB3aXRob3V0IHRoZSBmdHJ1bmNhdGUKPj4+Pj4+Pj4+ Pj4+Pj4gZmFpbHVyZXMuIFdoZW4gdGVzdGluZyB5b3VyIGtlcm5lbCBvbiBGVlAsIEkgd2FzIGV4 ZWN1dGluZyB0aGUgc2NyaXB0Cj4+Pj4+Pj4+Pj4+Pj4+IGZyb20gdGhlIEZWUCdzIGhvc3QgZmls ZXN5c3RlbSB1c2luZyA5cC4KPj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+IEknbSBub3Qgc3Vy ZSBleGFjdGx5IHdoYXQgdGhlIHJvb3QgY2F1c2UgaXMuIFBlcmhhcHMgdGhlcmUgaXNuJ3QgZW5v dWdoCj4+Pj4+Pj4+Pj4+Pj4gc3BhY2Ugb24KPj4+Pj4+Pj4+Pj4+PiB0aGUgZGlzaz8gSXQgbWln aHQgYmUgd29ydGggZW5oYW5jaW5nIHRoZSBlcnJvciBsb2cgdG8gcHJvdmlkZSB0aGUKPj4+Pj4+ Pj4+Pj4+PiBlcnJubyBpbgo+Pj4+Pj4+Pj4+Pj4+IHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL21t L2d1cF9sb25ndGVybS5jLgo+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4g QXR0YWNoZWQgaXMgdGhlIHN0cmFjZeKAmWQgZ3VwX2xvbmd0ZXJtIGV4ZWN1dGlvbmcgbG9nIG9u IHlvdXIKPj4+Pj4+Pj4+Pj4+IHBndGFibGUtYm9vdC1zcGVlZHVwLXYyIGtlcm5lbC4KPj4+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4+Pj4gU29ycnkgYXJlIHlvdSBzYXlpbmcgdGhhdCBpdCBvbmx5IGZhaWxz IHdpdGggdGhlIHBndGFibGUtYm9vdC1zcGVlZHVwLXYyCj4+Pj4+Pj4+Pj4+IHBhdGNoCj4+Pj4+ Pj4+Pj4+IHNldCBhcHBsaWVkPyBJIHRob3VnaHQgd2UgcHJldmlvdXNseSBjb25jbHVkZWQgdGhh dCBpdCB3YXMgaW5kZXBlbmRlbnQgb2YKPj4+Pj4+Pj4+Pj4gdGhhdD8KPj4+Pj4+Pj4+Pj4gSSB3 YXMgdW5kZXIgdGhlIGltcHJlc3Npb24gdGhhdCBpdCB3YXMgZmlsZXN5c3RlbSByZWxhdGVkIGFu ZCBub3Qgc29tZXRoaW5nCj4+Pj4+Pj4+Pj4+IHRoYXQKPj4+Pj4+Pj4+Pj4gSSB3YXMgcGxhbm5p bmcgdG8gaW52ZXN0aWdhdGUuCj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBObywgaXJyZXNwZWN0aXZl IG9mIHRoZSBrZXJuZWwsIGlmIHVzaW5nIDlwIG9uIEZWUCB0aGUgdGVzdCBwcm9ncmFtIGZhaWxz Lgo+Pj4+Pj4+Pj4+IEl0IGlzIGluZGVlZCA5cCBmaWxlc3lzdGVtIHJlbGF0ZWQsIGFzIEkgc3dp dGNoZWQgdG8gdXNpbmcgTkZTIGFsbCB0aGUKPj4+Pj4+Pj4+PiBpc3N1ZXMgYXJlIGdvbmUuCj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gRGlkIGl0IG5ldmVyIHdvcmsgb24gOXA/IElmIHNvLCB3ZSBtaWdo dCBoYXZlIHRvIFNLSVAgdGhhdCB0ZXN0Lgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IG9wZW5hdChBVF9G RENXRCwgImd1cF9sb25ndGVybS5jX3RtcGZpbGVfQkxib090IiwgT19SRFdSfE9fQ1JFQVR8T19F WENMLAo+Pj4+Pj4+Pj4gMDYwMCkgPSAzCj4+Pj4+Pj4+PiB1bmxpbmthdChBVF9GRENXRCwgImd1 cF9sb25ndGVybS5jX3RtcGZpbGVfQkxib090IiwgMCkgPSAwCj4+Pj4+Pj4+PiBmc3RhdGZzKDMs IDB4ZmZmZmU1MDVhODQwKSAgICAgICAgICAgICAgPSAtMSBFT1BOT1RTVVBQIChPcGVyYXRpb24g bm90Cj4+Pj4+Pj4+PiBzdXBwb3J0ZWQpCj4+Pj4+Pj4+PiBmdHJ1bmNhdGUoMywgNDA5NikgICAg ICAgICAgICAgICAgICAgICAgPSAtMSBFTk9FTlQgKE5vIHN1Y2ggZmlsZSBvcgo+Pj4+Pj4+Pj4g ZGlyZWN0b3J5KQo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBOb3RlOiBJJ20gd29uZGVyaW5nIGlmIHRoZSB1 bmxpbmthdCBoZXJlIGlzIHRoZSBwcm9ibGVtIHRoYXQgbWFrZXMKPj4+Pj4+Pj4gZnRydW5jYXRl KCkgd2l0aCA5cCByZXN1bHQgaW4gd2VpcmQgZXJyb3JzIChlLmcuLCB0aGUgaHlwZXJ2aXNvcgo+ Pj4+Pj4+PiB1bmxpbmtlZCB0aGUgZmlsZSBhbmQgY2Fubm90IHJlb3BlbiBpdCBmb3IgdGhlIGZz dGF0ZnMvZnRydW5jYXRlLiAuLi4KPj4+Pj4+Pj4gd2hpY2ggZ2l2ZXMgdXMgd2VpcmQgZXJyb3Jz IGhlcmUpLgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBUaGVuLCB3ZSBzaG91bGQgbG9va3VwIHRoZSBmcyB0 eXBlIGluIHJ1bl93aXRoX2xvY2FsX3RtcGZpbGUoKSBiZWZvcmUKPj4+Pj4+Pj4gdGhlIHVubGlu aygpIGFuZCBzaW1wbHkgc2tpcCB0aGUgdGVzdCBpZiBpdCBpcyA5cC4KPj4+Pj4+Pgo+Pj4+Pj4+ IFRoZSB1bmxpbmsgd2l0aCA5cCBtb3N0IGNlcnRhaW5seSB3YXMgYSBrbm93biBpc3N1ZSBpbiB0 aGUgcGFzdDoKPj4+Pj4+Pgo+Pj4+Pj4+IGh0dHBzOi8vZ2l0bGFiLmNvbS9xZW11LXByb2plY3Qv cWVtdS8tL2lzc3Vlcy8xMDMKPj4+Pj4+Pgo+Pj4+Pj4+IE1heWJlIGl0J3Mgc3RpbGwgYW4gaXNz dWUgd2l0aCBvbGRlciBoeXBlcnZpc29ycyAoUUVNVT8pPyBPciBpdCB3YXMgbmV2ZXIKPj4+Pj4+ PiBjb21wbGV0ZWx5IHJlc29sdmVkPwo+Pj4+Pj4KPj4+Pj4+IEkgYmVsaWV2ZSBJdGFydSBpcyBy dW5uaW5nIG9uIEZWUCAoRml4ZWQgVmlydHVhbCBQbGF0Zm9ybSAtICJmYXN0IG1vZGVsIiAtCj4+ Pj4+PiBBcm0ncyBhcmNoaXRlY3R1cmUgZW11bGF0b3IpLiBTbyBRRU1VIHdvbid0IGJlIGludm9s dmVkIGhlcmUuIFRoZSBGVlAgZW11bGF0ZXMKPj4+Pj4+IGEgOXAgZGV2aWNlLCBzbyBwZXJoYXBz IHRoZSBidWcgaXMgaW4gdGhlcmUuCj4+Pj4+Cj4+Pj4+IFZlcnkgbGlrZWx5Lgo+Pj4+Pgo+Pj4+ Pj4KPj4+Pj4+IE5vdGUgdGhhdCBJIHNlZSBsb3RzIG9mICJmYWxsb2NhdGUoKSBmYWlsZWQiIGZh aWx1cmVzIGluIGd1cF9sb25ndGVybSB3aGVuCj4+Pj4+PiBydW5uaW5nIG9uIG91ciBDSSBzeXN0 ZW0uIFRoaXMgaXMgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBzZXR1cDsgUmVhbCBIVyB3aXRoCj4+ Pj4+PiBMaW51eCBydW5uaW5nIGJhcmUgbWV0YWwgdXNpbmcgYW4gTkZTIHJvb3Rmcy4gSSdtIG5v dCBzdXJlIGlmIHRoaXMgaXMgcmVsYXRlZC4KPj4+Pj4+IExvZ3Mgc2hvdyBpdCBmYWlsaW5nIGNv bnNpc3RlbnRseSBmb3IgdGhlICJ0bXBmaWxlIiBhbmQgImxvY2FsIHRtcGZpbGUiIHRlc3QKPj4+ Pj4+IGNvbmZpZ3MuIEkgYWxzbyBzZWUgYSBjb3VwbGUgb2YgdGhlc2UgZmFpbHMgaW4gdGhlIGNv dyB0ZXN0cy4KPj4+Pj4KPj4+Pj4gV2hhdCBpcyB0aGUgZmFsbG9jYXRlKCkgZXJybm8geW91IGFy ZSBnZXR0aW5nPyBzdHJhY2UgbG9nIHdvdWxkIGhlbHAgKHRvIHNlZSBpZgo+Pj4+PiBzdGF0ZnMg YWxzbyBmYWlscyBhbHJlYWR5KSEgTGlrZWx5IGEgc2ltaWxhciBORlMgaXNzdWUuCj4+Pj4gVW5m b3J0dW5hdGVseSB0aGlzIGlzIGEgc3lzdGVtIEkgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8uIEkndmUg cmVxdWVzdGVkIHNvbWUgb2YKPj4+PiB0aGlzIHRyaWFnZSB0byBiZSBkb25lLCBidXQgaXRzIGZh aXJseSBsb3cgcHJpb3JpdHkgdW5mb3J0dW5hdGVseS4KPj4+Cj4+PiBUbyB3b3JrIGFyb3VuZCB0 aGVzZSBCVUdzICg/KSBlbHNld2hlcmUsIHdlIGNvdWxkIHNpbXBseSBza2lwIHRoZSB0ZXN0IGlm IGdldF9mc190eXBlKCkgaXMgbm90IGFibGUgdG8gZGV0ZWN0IHRoZSBGUyB0eXBlLiBMaWtlbHkg dGhhdCdzIGFuIGVhcmx5IGluZGljYXRvciB0aGF0IHRoZSB1bmxpbmsoKSBtZXNzZWQgc29tZXRo aW5nIHVwLgo+Pj4KPj4+IC4uLiBkb2Vzbid0IGZlZWwgcmlnaHQsIHRob3VnaC4KPj4KPj4gSSB0 aGluayBpdOKAmXMgYSBnb29kIGlkZWEgc28gdGhhdCB0aGUgbW0ga3NlbGZ0ZXN0cyByZXN1bHRz IGxvb2sgcmVhc29uYWJsZS4KClllYWgsIGJ1dCB0aGlzIHdpbGwgaGlkZSBCVUdzIGVsc2V3aGVy ZS4gSSBzdXNwZWN0IHRoYXQgaW4gUnlhbidzIE5GUyBzZXR1cCBpcwphbHNvIGEgQlVHIGx1cmtp bmcgc29tZXdoZXJlIGluIHRoZSBORlMgaW1wbGVtZW50YXRpb24uIEJ1dCB0aGF0J3MganVzdCBh IGd1ZXNzCnVudGlsIHdlIGhhdmUgbW9yZSBkZXRhaWxzLgoKPj4gU2luY2UgeW914oCZcmUgYW4g ZXhwZXJ0IG9uIEdVUC1mYXN0IChvciBmYXN0LUdVUD8pLCB3aGVuIHlvdSB1cGRhdGUgdGhlIGNv ZGUsIGNvdWxkIHlvdSBwcmludCBvdXQgZXJybm8gYXMgd2VsbCBsaWtlIHRoZSBzcGxpdF9odWdl X3BhZ2VfdGVzdC5jIGRvZXMKCldoaWxlIHdlIGNvdWxkLCBJIGRvbid0IHNlZSBtdWNoIHZhbHVl IGluIHRoYXQgZm9yIHNlbGZ0ZXN0cy4gc3RyYWNlIGxvZyBpcyBvZiBtdWNoCm1vcmUgdmFsdWFi bGUgdG8gdW5kZXJzdGFuZCB3aGF0IGlzIGFjdHVhbGx5IGhhcHBlbmluZyAoZS5nLiwgZnN0YXRm cyBmYWlsaW5nKSwgYW5kCnF1aXRlIGVhc3kgdG8gb2J0YWluLgoKPj4gVGhhbmtzLAo+PiBJdGFy dS4KPiAKPiBEYXZpZCwgYXR0YWNoZWQgaXMgdGhlIHN0cmFjZWQgZXhlY3V0aW9uIGxvZyBvZiB0 aGUgZ3VwX2xvbmd0ZXJtIGtzZWxmdGVzdCBvdmVyIHRoZSBORlMgY2FzZS4KPiBJ4oCZbSBydW5u aW5nIHRoZSBwcm9ncmFtIG9uIEZWUCwgbGV0IG1lIGtub3cgaWYgeW91IG5lZWQgb3RoZXIgbG9n cyBvciB0ZXN0IHJlc3VsdHMuCgpGb3IgeW91ciBydW4sIGl0IGFsbCBsb29rcyBnb29kOgoKb3Bl bmF0KEFUX0ZEQ1dELCAiL3RtcCIsIE9fUkRXUnxPX0VYQ0x8T19UTVBGSUxFLCAwNjAwKSA9IDMK ZmNudGwoMywgRl9HRVRGTCkgICAgICAgICAgICAgICAgICAgICAgID0gMHg0MjQwMDIgKGZsYWdz IE9fUkRXUnxPX0xBUkdFRklMRXxPX1RNUEZJTEUpCmZzdGF0ZnMoMywge2ZfdHlwZT1UTVBGU19N QUdJQywgZl9ic2l6ZT00MDk2LCBmX2Jsb2Nrcz00MTYwMTUsIGZfYmZyZWU9NDE1OTk3LCBmX2Jh dmFpbD00MTU5OTcsIGZfZmlsZXM9NDE2MDE1LCBmX2ZmcmVlPTQxNjAwOSwgZl9mc2lkPXt2YWw9 WzB4OGU2YjdjZTYsIDB4ZTE3Mzc0NDBdfSwgZl9uYW1lbGVuPTI1NSwgZl9mcnNpemU9NDA5Niwg Zl9mbGFncz1TVF9WQUxJRHxTVF9SRUxBVElNRX0pID0gMApmdHJ1bmNhdGUoMywgNDA5NikgICAg ICAgICAgICAgICAgICAgICAgPSAwCmZhbGxvY2F0ZSgzLCAwLCAwLCA0MDk2KSAgICAgICAgICAg ICAgICA9IDAKCi0+IFRNUEZTL1NITUVNLCB3b3JrcyBhcyBleHBlY3RlZAoKb3BlbmF0KEFUX0ZE Q1dELCAiZ3VwX2xvbmd0ZXJtLmNfdG1wZmlsZV9XTUxUTmYiLCBPX1JEV1J8T19DUkVBVHxPX0VY Q0wsIDA2MDApID0gMwp1bmxpbmthdChBVF9GRENXRCwgImd1cF9sb25ndGVybS5jX3RtcGZpbGVf V01MVE5mIiwgMCkgPSAwCmZzdGF0ZnMoMywge2ZfdHlwZT1ORlNfU1VQRVJfTUFHSUMsIGZfYnNp emU9MTA0ODU3NiwgZl9ibG9ja3M9MTEyMjAwLCBmX2JmcmVlPTI3OTU0LCBmX2JhdmFpbD0yMzI5 NiwgZl9maWxlcz03MzA3MjY0LCBmX2ZmcmVlPTQ3MjQ4MTUsIGZfZnNpZD17dmFsPVswLCAwXX0s IGZfbmFtZWxlbj0yNTUsIGZfZnJzaXplPTEwNDg1NzYsIGZfZmxhZ3M9U1RfVkFMSUR8U1RfUkVM QVRJTUV9KSA9IDAKZnRydW5jYXRlKDMsIDQwOTYpICAgICAgICAgICAgICAgICAgICAgID0gMApm YWxsb2NhdGUoMywgMCwgMCwgNDA5NikgICAgICAgICAgICAgICAgPSAwCgotPiBORlMsIHdvcmtz IGFzIGV4cGVjdGVkCgpOb3RlIHRoYXQgeW91IGdldCBhbGwgc2tpcHMgKG5vdCBmYWlscyksIGJl Y2F1c2UgeW91ciBrZXJuZWwgaXMgbm90IGNvbXBpbGVkIHdpdGggQ09ORklHX0dVUF9URVNULgoK b2sgMSAjIFNLSVAgZ3VwX3Rlc3Qgbm90IGF2YWlsYWJsZQoKLS0gCkNoZWVycywKCkRhdmlkIC8g ZGhpbGRlbmIKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1hcm0ta2VybmVsCg==