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 424AAC61DF4 for ; Fri, 24 Nov 2023 10:19:56 +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:MIME-Version:References:In-Reply-To: Subject:Cc:To:From:Message-ID:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=cwsJoO6kOtLwZEQYDBp5KaW2BGbTg9lcqcIVLDp5iss=; b=l70QLUvvPVg0CT zBzgEjV990mUhEAZI2aaNxpbmC2Cc0pazMQWcbESAywmkziQRE2jpzauBSEt1j3hNq1Q3d7PKGGcf wMasOTv4Eh05KRBfBlIrnLIjV0kBRgQuT14/rbXJsJ3Zs1sWeSjeeQN+JtLY+rN9F8//8/BVwJ3nF 9d3/PwRHm/dQiztLhfK/3pZGU3NSmzdyJftolZWMofQU9ALDJj8ToA4D+PeM8SPwuU3z/AzVyedKR WumTda46I/rIjAHj2G6PFCmqdEw9FMxgA+kZrrgK3Op0qkul5pQsS+11pEmX8ctkq1j4mxnlzcRRt 1Zg5zToJDvddFqNoTxxA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r6THT-006oNS-2e; Fri, 24 Nov 2023 10:19:27 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r6THQ-006oMs-2u for linux-arm-kernel@lists.infradead.org; Fri, 24 Nov 2023 10:19:26 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 6663462133; Fri, 24 Nov 2023 10:19:24 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1B394C433C8; Fri, 24 Nov 2023 10:19:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1700821164; bh=ezJrSp23KXb/hO6ks68IIX+fbvqWMNg+9nVoAxoKW8Q=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=szTiw9F2cGc2s71ZDdtpxoFF0EjWH2OY7N5AfnoWEE8zubiqo3Zn+JxLg7za7mO0p t1HV088SZOdi7zVKtTSwy2B/WJtDOXUyHQ4gLpzWm+9gi5B9Ih1rTTy1D0SdPOpwtT y0vjOpAuo08SS4pEyN2RL8Neyoj53swr+5je3F6etgitdJmzihA6SJntl/04QpCTQk RlzJ5ewHqXd/cpcRESrgv8emSxVUSEG34zj96iIOgcjK0L9G/lA7pBibiobDA1uryw pHTGB3TDAkEbxK+ulSe/wZFM5BC9vOZtQfYrdZYegvXd3tjM2KlCxsbXtwtU899BXC BHcf7Bh+ddkwg== Received: from sofa.misterjones.org ([185.219.108.64] helo=goblin-girl.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1r6THN-00G3Ie-Jc; Fri, 24 Nov 2023 10:19:21 +0000 Date: Fri, 24 Nov 2023 10:19:21 +0000 Message-ID: <868r6nzc5y.wl-maz@kernel.org> From: Marc Zyngier To: Ganapatrao Kulkarni Cc: Miguel Luis , "kvmarm@lists.linux.dev" , "kvm@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , Alexandru Elisei , Andre Przywara , Chase Conklin , Christoffer Dall , Darren Hart , Jintack Lim , Russell King , James Morse , Suzuki K Poulose , Oliver Upton , Zenghui Yu Subject: Re: [PATCH v11 00/43] KVM: arm64: Nested Virtualization support (FEAT_NV2 only) In-Reply-To: <134912e4-beed-4ab6-8ce1-33e69ec382b3@os.amperecomputing.com> References: <20231120131027.854038-1-maz@kernel.org> <86msv7ylnu.wl-maz@kernel.org> <05733774-4210-4097-9912-fb3aa8542fdd@oracle.com> <86a5r4zafh.wl-maz@kernel.org> <134912e4-beed-4ab6-8ce1-33e69ec382b3@os.amperecomputing.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/29.1 (aarch64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: gankulkarni@os.amperecomputing.com, miguel.luis@oracle.com, kvmarm@lists.linux.dev, kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, alexandru.elisei@arm.com, andre.przywara@arm.com, chase.conklin@arm.com, christoffer.dall@arm.com, darren@os.amperecomputing.com, jintack@cs.columbia.edu, rmk+kernel@armlinux.org.uk, james.morse@arm.com, suzuki.poulose@arm.com, oliver.upton@linux.dev, yuzenghui@huawei.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231124_021925_022906_6C5E2E4F X-CRM114-Status: GOOD ( 29.79 ) 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 T24gRnJpLCAyNCBOb3YgMjAyMyAwOTo1MDozMyArMDAwMCwKR2FuYXBhdHJhbyBLdWxrYXJuaSA8 Z2Fua3Vsa2FybmlAb3MuYW1wZXJlY29tcHV0aW5nLmNvbT4gd3JvdGU6Cj4gCj4gCj4gCj4gT24g MjMtMTEtMjAyMyAxMDoxNCBwbSwgTWFyYyBaeW5naWVyIHdyb3RlOgo+ID4gT24gVGh1LCAyMyBO b3YgMjAyMyAxNjoyMTo0OCArMDAwMCwKPiA+IE1pZ3VlbCBMdWlzIDxtaWd1ZWwubHVpc0BvcmFj bGUuY29tPiB3cm90ZToKPiA+PiAKPiA+PiBIaSBNYXJjLAo+ID4+IAo+ID4+IE9uIDIxLzExLzIw MjMgMTg6MDIsIE1hcmMgWnluZ2llciB3cm90ZToKPiA+Pj4gT24gVHVlLCAyMSBOb3YgMjAyMyAx Njo0OTo1MiArMDAwMCwKPiA+Pj4gTWlndWVsIEx1aXMgPG1pZ3VlbC5sdWlzQG9yYWNsZS5jb20+ IHdyb3RlOgo+ID4+Pj4gSGkgTWFyYywKPiA+Pj4+IAo+ID4+Pj4+IE9uIDIwIE5vdiAyMDIzLCBh dCAxMjowOSwgTWFyYyBaeW5naWVyIDxtYXpAa2VybmVsLm9yZz4gd3JvdGU6Cj4gPj4+Pj4gCj4g Pj4+Pj4gVGhpcyBpcyB0aGUgNXRoIGRyb3Agb2YgTlYgc3VwcG9ydCBvbiBhcm02NCBmb3IgdGhp cyB5ZWFyLCBhbmQgbW9zdAo+ID4+Pj4+IHByb2JhYmx5IHRoZSBsYXN0IG9uZSBmb3IgdGhpcyBz aWRlIG9mIENocmlzdG1hcy4KPiA+Pj4+PiAKPiA+Pj4+PiBGb3IgdGhlIHByZXZpb3VzIGVwaXNv ZGVzLCBzZWUgWzFdLgo+ID4+Pj4+IAo+ID4+Pj4+IFdoYXQncyBjaGFuZ2VkOgo+ID4+Pj4+IAo+ ID4+Pj4+IC0gRHJvcCBzdXBwb3J0IGZvciB0aGUgb3JpZ2luYWwgRkVBVF9OVi4gTm8gZXhpc3Rp bmcgaGFyZHdhcmUgc3VwcG9ydHMKPiA+Pj4+PiAgIGl0IHdpdGhvdXQgRkVBVF9OVjIsIGFuZCB0 aGUgYXJjaGl0ZWN0dXJlIGlzIGRlcHJlY2F0aW5nIHRoZSBmb3JtZXIKPiA+Pj4+PiAgIGVudGly ZWx5LiBUaGlzIHJlc3VsdHMgaW4gZmV3ZXIgcGF0Y2hlcywgYW5kIGEgc2xpZ2h0bHkgc2ltcGxl cgo+ID4+Pj4+ICAgbW9kZWwgb3ZlcmFsbC4KPiA+Pj4+PiAKPiA+Pj4+PiAtIFJlb3JnYW5pc2Ug dGhlIHNlcmllcyB0byBtYWtlIGl0IGEgYml0IG1vcmUgbG9naWNhbCBub3cgdGhhdCBGRUFUX05W Cj4gPj4+Pj4gICBpcyBnb25lLgo+ID4+Pj4+IAo+ID4+Pj4+IC0gQXBwbHkgdGhlIE5WIGlkcmVn IHJlc3RyaWN0aW9ucyBvbiBWTSBmaXJzdCBydW4gcmF0aGVyIHRoYW4gb24gZWFjaAo+ID4+Pj4+ ICAgYWNjZXNzLgo+ID4+Pj4+IAo+ID4+Pj4+IC0gTWFrZSB0aGUgbmVzdGVkIHZnaWMgc2hhZG93 IENQVSBpbnRlcmZhY2UgYSBwZXItQ1BVIHN0cnVjdHVyZSByYXRoZXIKPiA+Pj4+PiAgIHRoYW4g cGVyLXZjcHUuCj4gPj4+Pj4gCj4gPj4+Pj4gLSBGaXggdGhlIEVMMCB0aW1lciBmYXN0cGF0aAo+ ID4+Pj4+IAo+ID4+Pj4+IC0gV29yayBhcm91bmQgdGhlIGFyY2hpdGVjdHVyZSBkZWZpY2llbmNp ZXMgd2hlbiB0cmFwcGluZyBXRkkgZnJvbSBhCj4gPj4+Pj4gICBMMiBndWVzdC4KPiA+Pj4+PiAK PiA+Pj4+PiAtIEZpeCBzYW1wbGluZyBvZiBuZXN0ZWQgdmdpYyBzdGF0ZSAoTUlTUiwgRUxSU1Is IEVJU1IpCj4gPj4+Pj4gCj4gPj4+Pj4gLSBEcm9wIHRoZSBwYXRjaGVzIHRoYXQgaGF2ZSBhbHJl YWR5IGJlZW4gbWVyZ2VkIChOViB0cmFwIGZvcndhcmRpbmcsCj4gPj4+Pj4gICBwZXItTU1VIFZU Q1IpCj4gPj4+Pj4gCj4gPj4+Pj4gLSBSZWJhc2VkIG9uIHRvcCBvZiA2LjctcmMyICsgdGhlIEZF QVRfRTJIMCBzdXBwb3J0IFsyXS4KPiA+Pj4+PiAKPiA+Pj4+PiBUaGUgYnJhbmNoIGNvbnRhaW5p bmcgdGhlc2UgcGF0Y2hlcyAoYW5kIG1vcmUpIGlzIGF0IFszXS4gQXMgZm9yIHRoZQo+ID4+Pj4+ IHByZXZpb3VzIHJvdW5kcywgbXkgaW50ZW50aW9uIGlzIHRvIHRha2UgYSBwcmVmaXggb2YgdGhp cyBzZXJpZXMgaW50bwo+ID4+Pj4+IDYuOCwgcHJvdmlkZWQgdGhhdCBpdCBnZXRzIGVub3VnaCBy ZXZpZXdpbmcuCj4gPj4+Pj4gCj4gPj4+Pj4gWzFdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3Iv MjAyMzA1MTUxNzMxMDMuMTAxNzY2OS0xLW1hekBrZXJuZWwub3JnCj4gPj4+Pj4gWzJdIGh0dHBz Oi8vbG9yZS5rZXJuZWwub3JnL3IvMjAyMzExMjAxMjM3MjEuODUxNzM4LTEtbWF6QGtlcm5lbC5v cmcKPiA+Pj4+PiBbM10gaHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5l bC9naXQvbWF6L2FybS1wbGF0Zm9ybXMuZ2l0L2xvZy8/aD1rdm0tYXJtNjQvbnYtNi44LW52Mi1v bmx5Cj4gPj4+Pj4gCj4gPj4+PiBXaGlsZSBJIHdhcyB0ZXN0aW5nIHRoaXMgd2l0aCBrdm10b29s IGZvciA1LjE2IEkgbm90ZWQgdGhlIGZvbGxvd2luZyBvbiBkbWVzZzoKPiA+Pj4+IAo+ID4+Pj4g WyAgODAzLjAxNDI1OF0ga3ZtIFsxOTA0MF06IFVuc3VwcG9ydGVkIGd1ZXN0IHN5c19yZWcgYWNj ZXNzIGF0OiA4MTI5ZmE1MCBbNjAwMDAzYzldCj4gPj4+PiAgICAgICAgICAgICAgICAgIHsgT3Aw KCAzKSwgT3AxKCA1KSwgQ1JuKCAxKSwgQ1JtKCAwKSwgT3AyKCAyKSwgZnVuY19yZWFkIH0sCj4g Pj4+PiAKPiA+Pj4+IFRoaXMgaXMgQ1BBQ1JfRUwxMi4KPiA+Pj4gQ1BBQ1JfRUwxMiBpcyByZWRp cmVjdGVkIHRvIFZOQ1JbMHgxMDBdLiBJdCByZWFsbHkgc2hvdWxkbid0IHRyYXAuLi4KPiA+Pj4g Cj4gPj4+PiBTdGlsbCBuZWVkIHlldCB0byBkZWJ1Zy4KPiA+Pj4gQ2FuIHlvdSBkaXNhc3NlbWJs ZSB0aGUgZ3Vlc3QgYXJvdW5kIHRoZSBvZmZlbmRpbmcgUEM/Cj4gPj4gCj4gPj4gWyAxMjQ4LjY4 NjM1MF0ga3ZtIFs3MDEzXTogVW5zdXBwb3J0ZWQgZ3Vlc3Qgc3lzX3JlZyBhY2Nlc3MgYXQ6IDgx MmJhYTUwIFs2MDAwMDNjOV0KPiA+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHsg T3AwKCAzKSwgT3AxKCA1KSwgQ1JuKCAxKSwgQ1JtKCAwKSwgT3AyKCAyKSwgZnVuY19yZWFkIH0s Cj4gPj4gCj4gPj4gIMKgMTJiYWEwMDrCoMKgwqAgMTQwMDAwMDggwqDCoMKgIGLCoMKgwqAgMHgx MmJhYTIwCj4gPj4gIMKgMTJiYWEwNDrCoMKgwqAgZDAwMGQ1MDEgwqDCoMKgIGFkcnDCoMKgwqAg eDEsIDB4MmQ1YzAwMAo+ID4+ICDCoDEyYmFhMDg6wqDCoMKgIDkxMTU0MDIxIMKgwqDCoCBhZGTC oMKgwqAgeDEsIHgxLCAjMHg1NTAKPiA+PiAgwqAxMmJhYTBjOsKgwqDCoCBmOTQwMDAyMiDCoMKg wqAgbGRywqDCoMKgIHgyLCBbeDFdCj4gPj4gIMKgMTJiYWExMDrCoMKgwqAgZjk0MDA0MjEgwqDC oMKgIGxkcsKgwqDCoCB4MSwgW3gxLCAjOF0KPiA+PiAgwqAxMmJhYTE0OsKgwqDCoCA4YTAxMDA0 MiDCoMKgwqAgYW5kwqDCoMKgIHgyLCB4MiwgeDEKPiA+PiAgwqAxMmJhYTE4OsKgwqDCoCBkMzQ0 MWM0MiDCoMKgwqAgdWJmeMKgwqDCoCB4MiwgeDIsICM0LCAjNAo+ID4+ICDCoDEyYmFhMWM6wqDC oMKgIGI0MDAwMDgyIMKgwqDCoCBjYnrCoMKgwqAgeDIsIDB4MTJiYWEyYwo+ID4+ICDCoDEyYmFh MjA6wqDCoMKgIGQyYTE3NWEwIMKgwqDCoCBtb3bCoMKgwqAgeDAsICMweGJhZDAwMDDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgwqDCoMKgIC8vICMxOTU4ODcxMDQKPiA+PiAgwqAxMmJhYTI0OsKg wqDCoCBmMjk5NDIyMCDCoMKgwqAgbW92a8KgwqDCoCB4MCwgIzB4Y2ExMQo+ID4+ICDCoDEyYmFh Mjg6wqDCoMKgIGQ2OWYwM2UwIMKgwqDCoCBlcmV0Cj4gPj4gIMKgMTJiYWEyYzrCoMKgwqAgZDJj MDAwODAgwqDCoMKgIG1vdsKgwqDCoCB4MCwgIzB4NDAwMDAwMDAwwqDCoMKgwqDCoMKgwqDCoMKg wqAgwqDCoMKgIC8vICMxNzE3OTg2OTE4NAo+ID4+ICDCoDEyYmFhMzA6wqDCoMKgIGYyYjEwMDAw IMKgwqDCoCBtb3ZrwqDCoMKgIHgwLCAjMHg4ODAwLCBsc2wgIzE2Cj4gPj4gIMKgMTJiYWEzNDrC oMKgwqAgZjI4MDAwMDAgwqDCoMKgIG1vdmvCoMKgwqAgeDAsICMweDAKPiA+PiAgwqAxMmJhYTM4 OsKgwqDCoCBkNTFjMTEwMCDCoMKgwqAgbXNywqDCoMKgIGhjcl9lbDIsIHgwCj4gPj4gIMKgMTJi YWEzYzrCoMKgwqAgZDUwMzNmZGYgwqDCoMKgIGlzYgo+ID4+ICDCoDEyYmFhNDA6wqDCoMKgIGQ1 M2M0MTAwIMKgwqDCoCBtcnPCoMKgwqAgeDAsIHNwX2VsMQo+ID4+ICDCoDEyYmFhNDQ6wqDCoMKg IDkxMDAwMDFmIMKgwqDCoCBtb3bCoMKgwqAgc3AsIHgwCj4gPj4gIMKgMTJiYWE0ODrCoMKgwqAg ZDUzOGQwODAgwqDCoMKgIG1yc8KgwqDCoCB4MCwgdHBpZHJfZWwxCj4gPj4gIMKgMTJiYWE0YzrC oMKgwqAgZDUxY2QwNDAgwqDCoMKgIG1zcsKgwqDCoCB0cGlkcl9lbDIsIHgwCj4gPj4gIMKgMTJi YWE1MDrCoMKgwqAgZDUzZDEwNDAgwqDCoMKgIG1yc8KgwqDCoCB4MCwgY3BhY3JfZWwxMgo+ID4+ ICDCoDEyYmFhNTQ6wqDCoMKgIGQ1MTgxMDQwIMKgwqDCoCBtc3LCoMKgwqAgY3BhY3JfZWwxLCB4 MAo+ID4+ICDCoDEyYmFhNTg6wqDCoMKgIGQ1M2RjMDAwIMKgwqDCoCBtcnPCoMKgwqAgeDAsIHZi YXJfZWwxMgo+ID4+ICDCoDEyYmFhNWM6wqDCoMKgIGQ1MThjMDAwIMKgwqDCoCBtc3LCoMKgwqAg dmJhcl9lbDEsIHgwCj4gPj4gIMKgMTJiYWE2MDrCoMKgwqAgZDUzYzExMjAgwqDCoMKgIG1yc8Kg wqDCoCB4MCwgbWRjcl9lbDIKPiA+PiAgwqAxMmJhYTY0OsKgwqDCoCA5MjcyZjQwMCDCoMKgwqAg YW5kwqDCoMKgIHgwLCB4MCwgIzB4ZmZmZmZmZmZmZmZmY2ZmZgo+ID4+ICDCoDEyYmFhNjg6wqDC oMKgIDkyNjZmNDAwIMKgwqDCoCBhbmTCoMKgwqAgeDAsIHgwLCAjMHhmZmZmZmZmZmZjZmZmZmZm Cj4gPj4gIMKgMTJiYWE2YzrCoMKgwqAgZDUxYzExMjAgwqDCoMKgIG1zcsKgwqDCoCBtZGNyX2Vs MiwgeDAKPiA+PiAgwqAxMmJhYTcwOsKgwqDCoCBkNTNkMjA0MCDCoMKgwqAgbXJzwqDCoMKgIHgw LCB0Y3JfZWwxMgo+ID4+ICDCoDEyYmFhNzQ6wqDCoMKgIGQ1MTgyMDQwIMKgwqDCoCBtc3LCoMKg wqAgdGNyX2VsMSwgeDAKPiA+PiAgwqAxMmJhYTc4OsKgwqDCoCBkNTNkMjAwMCDCoMKgwqAgbXJz wqDCoMKgIHgwLCB0dGJyMF9lbDEyCj4gPj4gIMKgMTJiYWE3YzrCoMKgwqAgZDUxODIwMDAgwqDC oMKgIG1zcsKgwqDCoCB0dGJyMF9lbDEsIHgwCj4gPj4gIMKgMTJiYWE4MDrCoMKgwqAgZDUzZDIw MjAgwqDCoMKgIG1yc8KgwqDCoCB4MCwgdHRicjFfZWwxMgo+ID4+ICDCoDEyYmFhODQ6wqDCoMKg IGQ1MTgyMDIwIMKgwqDCoCBtc3LCoMKgwqAgdHRicjFfZWwxLCB4MAo+ID4+ICDCoDEyYmFhODg6 wqDCoMKgIGQ1M2RhMjAwIMKgwqDCoCBtcnPCoMKgwqAgeDAsIG1haXJfZWwxMgo+ID4+ICDCoDEy YmFhOGM6wqDCoMKgIGQ1MThhMjAwIMKgwqDCoCBtc3LCoMKgwqAgbWFpcl9lbDEsIHgwCj4gPj4g IMKgMTJiYWE5MDrCoMKgwqAgZDUzODA3NjEgwqDCoMKgIG1yc8KgwqDCoCB4MSwgczNfMF9jMF9j N18zCj4gPj4gIMKgMTJiYWE5NDrCoMKgwqAgZDM0MDBjMjEgwqDCoMKgIHViZnjCoMKgwqAgeDEs IHgxLCAjMCwgIzQKPiA+PiAgwqAxMmJhYTk4OsKgwqDCoCBiNDAwMDE0MSDCoMKgwqAgY2J6wqDC oMKgIHgxLCAweDEyYmFhYzAKPiA+PiAgwqAxMmJhYTljOsKgwqDCoCBkNTNkMjA2MCDCoMKgwqAg bXJzwqDCoMKgIHgwLCBzM181X2MyX2MwXzMKPiA+IAo+ID4gT0ssIHRoaXMgaXMgc3VzcGljaW91 c2x5IGNsb3NlIHRvIHRoZSBsb2NhdGlvbiBHYW5hcGF0cmFvIHdhcyBoYXZpbmcKPiA+IGlzc3Vl cyB3aXRoLiBBcmUgeW91IHJ1bm5pbmcgb24gdGhlIHNhbWUgaGFyZHdhcmU/Cj4gPiAKPiA+IElu IGFueSBjYXNlLCB3ZSBzaG91bGQgbmV2ZXIgdGFrZSBhIHRyYXAgZm9yIHRoaXMgYWNjZXNzLiBD YW4geW91IGR1bXAKPiA+IEhDUl9FTDIgYXQgdGhlIHBvaW50IHdoZXJlIHRoZSBndWVzdCB0cmFw cyAoaW4gc3dpdGNoLmMpPwo+ID4gCj4gCj4gSSBoYXZlIGR1bXBlZCBIQ1JfRUwyIGJlZm9yZSBl bnRyeSB0byBMMSBpbiBib3RoIFYxMSBhbmQgVjEwLgo+IG9uIFYxMCBIQ1JfRUwyPTB4Mjc0M2M4 MjdjMjYzZgo+IG9uIFYxMSBIQ1JfRUwyPTB4MjdjM2M4MjdjMjYzZgo+IAo+IG9uIFYxMSB0aGUg ZnVuY3Rpb24gdmNwdV9lbDJfZTJoX2lzX3NldCh2Y3B1KSBpcyByZXR1cm5pbmcgZmFsc2UKPiBy ZXN1bHRpbmcgaW4gTlYxIGJpdCBzZXQgYWxvbmcgd2l0aCBOViBhbmQgTlYyLgo+IEFGQUlLLCBG b3IgTDEgdG8gYmUgaW4gVkhFLCBOVjEgYml0IHNob3VsZCBiZSB6ZXJvIGFuZCBOVj1OVjI9MS4K PiAKPiBJIGNvdWxkIGJvb3QgTDEgdGhlbiBMMiwgaWYgSSBoYWNrIHZjcHVfZWwyX2UyaF9pc19z ZXQgdG8gcmV0dXJuIHRydWUuCj4gVGhlcmUgY291bGQgYmUgYSBidWcgaW4gVjExIG9yIEUySDAg cGF0Y2hzZXQgcmVzdWx0aW5nIGluCj4gdmNwdV9lbDJfZTJoX2lzX3NldCgpIHJldHVybmluZyBm YWxzZT8KClRoZSBFMkgwIHNlcmllcyBzaG91bGQgb25seSBmb3JjZSB2Y3B1X2VsMl9lMmhfaXNf c2V0KCkgdG8gcmV0dXJuCnRydWUsIGJ1dCBub3Qgc2V0IGl0IHRvIGZhbHNlLiBDYW4geW91IGR1 bXAgdGhlICpndWVzdCdzKiB2ZXJzaW9uIG9mCkhDUl9FTDIgYXQgdGhpcyBwb2ludD8KCglNLgoK LS0gCldpdGhvdXQgZGV2aWF0aW9uIGZyb20gdGhlIG5vcm0sIHByb2dyZXNzIGlzIG5vdCBwb3Nz aWJsZS4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxp bnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LWFybS1rZXJuZWwK