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 5A86DC001B0 for ; Tue, 15 Aug 2023 10:39:55 +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=lyLCzIWddtV5FdrKgjDg6WSxq3WF3whC3shhcJJOcj4=; b=IcQtoYA23U1ifK 9MVqUx5fsPbnCgpXfH7H29ygC7KXe/fTgyOQJMHc375Ntqk2xl79E4JvWVsC8fQPtLhwfoduefz/F ZCgvBJWKQCWJ/BKlqQirgo9wRA/oT22padc1IxpLsyc2yhYJWwiVtY5fttIbsOW/32bsqOMxAzST/ QTZWz4aBbhBWHMW+x5acnC5XC1pMvswqiiScZFmay0HvJPaYeTWPnmiHofazh77dGtP5mGcVhiuol PAwdko7UrFAyxicSECfFYSi60Zm+Fhm7etNFj29uOx4NvCSQ3U8sNnwqE8cgIV5Ir5mqV8pdpWaXY FNjfNXa4UvmDQxCgzqVw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qVrSS-001IwM-1d; Tue, 15 Aug 2023 10:39:28 +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 1qVrSP-001IvY-28 for linux-arm-kernel@lists.infradead.org; Tue, 15 Aug 2023 10:39:27 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 1332464F1C; Tue, 15 Aug 2023 10:39:25 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 26BFBC433C7; Tue, 15 Aug 2023 10:39:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1692095964; bh=lGpBpkDsEOQPJi3Zi+iXLacaZpWdyRJMMIhqGUJ9v14=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=g2PHew2j/hTikazRhsHToe3V7GbmJ7igUZipRM0xidxig7apE3lhleU2xsmal5QUG aU46Nl0Dp2+oT0C1Uo20rS6apC5cZo0CdWS0tIxZdnkjyp7hMpk40UIk5XZR1rpRKD Ldln1Nm+VcVs1biv/e50jnI+nu4ND3VrBnhOzaNf5YZpwVT7uDyMyzLAVJKEPAZQCa fGHSLcOZ9XwCZs0/GOnqJtREeLBoL5DR0MWEh5tqMJfAygXhRVh8nQs5Iu97h70iAc Y4lRyDrVwPwV860x1bmLn79IJKtobFh5sh7tc8oxn8B3+kv47H5Itw2cCIuvj7SvKm uzMwNeyJ9HVsg== Received: from host213-123-75-60.in-addr.btopenworld.com ([213.123.75.60] helo=wait-a-minute.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 1qVrSM-004ydV-37; Tue, 15 Aug 2023 11:39:22 +0100 Date: Tue, 15 Aug 2023 11:39:34 +0100 Message-ID: <87fs4kpp21.wl-maz@kernel.org> From: Marc Zyngier To: Jing Zhang Cc: kvmarm@lists.linux.dev, kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Catalin Marinas , Eric Auger , Mark Brown , Mark Rutland , Will Deacon , Alexandru Elisei , Andre Przywara , Chase Conklin , Ganapatrao Kulkarni , Darren Hart , Miguel Luis , James Morse , Suzuki K Poulose , Oliver Upton , Zenghui Yu Subject: Re: [PATCH v3 19/27] KVM: arm64: nv: Add fine grained trap forwarding infrastructure In-Reply-To: References: <20230808114711.2013842-1-maz@kernel.org> <20230808114711.2013842-20-maz@kernel.org> 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/28.2 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") X-SA-Exim-Connect-IP: 213.123.75.60 X-SA-Exim-Rcpt-To: jingzhangos@google.com, kvmarm@lists.linux.dev, kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, catalin.marinas@arm.com, eric.auger@redhat.com, broonie@kernel.org, mark.rutland@arm.com, will@kernel.org, alexandru.elisei@arm.com, andre.przywara@arm.com, chase.conklin@arm.com, gankulkarni@os.amperecomputing.com, darren@os.amperecomputing.com, miguel.luis@oracle.com, 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-20230815_033925_794204_4CE42CBB X-CRM114-Status: GOOD ( 34.99 ) 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 T24gTW9uLCAxNCBBdWcgMjAyMyAxODoxODo1NyArMDEwMCwKSmluZyBaaGFuZyA8amluZ3poYW5n b3NAZ29vZ2xlLmNvbT4gd3JvdGU6Cj4gCj4gSGkgTWFyYywKPiAKPiBPbiBUdWUsIEF1ZyA4LCAy MDIzIGF0IDQ6NDfigK9BTSBNYXJjIFp5bmdpZXIgPG1hekBrZXJuZWwub3JnPiB3cm90ZToKPiA+ Cj4gPiBGaW5lIEdyYWluZWQgVHJhcHMgYXJlIGZ1bi4gTm90Lgo+ID4KPiA+IEltcGxlbWVudCB0 aGUgZmluZSBncmFpbmVkIHRyYXAgZm9yd2FyZGluZywgcmV1c2luZyB0aGUgQ29hcnNlIEdyYWlu ZWQKPiA+IFRyYXBzIGluZnJhc3RydWN0dXJlIHByZXZpb3VzbHkgaW1wbGVtZW50ZWQuCj4gPgo+ ID4gRWFjaCBzeXNyZWcvaW5zdHJ1Y3Rpb24gaW5zZXJ0ZWQgaW4gdGhlIHhhcnJheSBnZXRzIGEg RkdUIGdyb3VwCj4gPiAodmFndWVseSBlcXVpdmFsZW50IHRvIGEgcmVnaXN0ZXIgbnVtYmVyKSwg YSBiaXQgbnVtYmVyIGluIHRoYXQgcmVnaXN0ZXIsCj4gPiBhbmQgYSBwb2xhcml0eS4KPiA+Cj4g PiBJdCBpcyB0aGVuIHByZXR0eSBlYXN5IHRvIGNoZWNrIHRoZSBGR1Qgc3RhdGUgYXQgaGFuZGxp bmcgdGltZSwganVzdAo+ID4gbGlrZSB3ZSBkbyBmb3IgdGhlIGNvYXJzZSB2ZXJzaW9uIChpdCBp cyBqdXN0IGZhc3RlcikuCj4gPgo+ID4gUmV2aWV3ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVn ZXJAcmVkaGF0LmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IE1hcmMgWnluZ2llciA8bWF6QGtlcm5l bC5vcmc+Cj4gPiAtLS0KPiA+ICBhcmNoL2FybTY0L2t2bS9lbXVsYXRlLW5lc3RlZC5jIHwgNzgg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDc3 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvYXJjaC9h cm02NC9rdm0vZW11bGF0ZS1uZXN0ZWQuYyBiL2FyY2gvYXJtNjQva3ZtL2VtdWxhdGUtbmVzdGVk LmMKPiA+IGluZGV4IGNkMDU0NGMzNTc3ZS4uYWY3NWMyNzc1NjM4IDEwMDY0NAo+ID4gLS0tIGEv YXJjaC9hcm02NC9rdm0vZW11bGF0ZS1uZXN0ZWQuYwo+ID4gKysrIGIvYXJjaC9hcm02NC9rdm0v ZW11bGF0ZS1uZXN0ZWQuYwo+ID4gQEAgLTkyOCw2ICs5MjgsMjcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBlbmNvZGluZ190b190cmFwX2NvbmZpZyBlbmNvZGluZ190b19jZ3RbXSBfX2luaXRjb25z dCA9IHsKPiA+Cj4gPiAgc3RhdGljIERFRklORV9YQVJSQVkoc3JfZm9yd2FyZF94YSk7Cj4gPgo+ ID4gK2VudW0gZmd0X2dyb3VwX2lkIHsKPiA+ICsgICAgICAgX19OT19GR1RfR1JPVVBfXywKPiA+ ICsKPiA+ICsgICAgICAgLyogTXVzdCBiZSBsYXN0ICovCj4gPiArICAgICAgIF9fTlJfRkdUX0dS T1VQX0lEU19fCj4gPiArfTsKPiA+ICsKPiA+ICsjZGVmaW5lIFNSX0ZHVChzciwgZywgYiwgcCkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiArICAgICAgIHsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gKyAg ICAgICAgICAgICAgIC5lbmNvZGluZyAgICAgICA9IHNyLCAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKPiA+ICsgICAgICAgICAgICAgICAuZW5kICAgICAgICAgICAgPSBzciwgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCj4gPiArICAgICAgICAgICAgICAgLnRjICAgICAgICAgICAgID0g eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgLmZndCA9IGcgIyMgX0dST1VQLCAgICAgICAgICAgICAgICAgICAgIFwKPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIC5iaXQgPSBnICMjIF9FTDJfICMjIGIgIyMgX1NISUZULCAgICAgICBc Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAucG9sID0gcCwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAo+ID4gKyAgICAgICAgICAgICAgIH0sICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ICsgICAgICAgfQo+ID4gKwo+ID4gK3N0YXRp YyBjb25zdCBzdHJ1Y3QgZW5jb2RpbmdfdG9fdHJhcF9jb25maWcgZW5jb2RpbmdfdG9fZmd0W10g X19pbml0Y29uc3QgPSB7Cj4gPiArfTsKPiA+ICsKPiA+ICBzdGF0aWMgdW5pb24gdHJhcF9jb25m aWcgZ2V0X3RyYXBfY29uZmlnKHUzMiBzeXNyZWcpCj4gPiAgewo+ID4gICAgICAgICByZXR1cm4g KHVuaW9uIHRyYXBfY29uZmlnKSB7Cj4gPiBAQCAtOTQxLDYgKzk2Miw3IEBAIGludCBfX2luaXQg cG9wdWxhdGVfbnZfdHJhcF9jb25maWcodm9pZCkKPiA+Cj4gPiAgICAgICAgIEJVSUxEX0JVR19P TihzaXplb2YodW5pb24gdHJhcF9jb25maWcpICE9IHNpemVvZih2b2lkICopKTsKPiA+ICAgICAg ICAgQlVJTERfQlVHX09OKF9fTlJfVFJBUF9HUk9VUF9JRFNfXyA+IEJJVChUQ19DR1RfQklUUykp Owo+ID4gKyAgICAgICBCVUlMRF9CVUdfT04oX19OUl9GR1RfR1JPVVBfSURTX18gPiBCSVQoVENf RkdUX0JJVFMpKTsKPiA+Cj4gPiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQVJSQVlfU0la RShlbmNvZGluZ190b19jZ3QpOyBpKyspIHsKPiA+ICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1 Y3QgZW5jb2RpbmdfdG9fdHJhcF9jb25maWcgKmNndCA9ICZlbmNvZGluZ190b19jZ3RbaV07Cj4g PiBAQCAtOTYzLDYgKzk4NSwzNCBAQCBpbnQgX19pbml0IHBvcHVsYXRlX252X3RyYXBfY29uZmln KHZvaWQpCj4gPiAgICAgICAgIGt2bV9pbmZvKCJudjogJWxkIGNvYXJzZSBncmFpbmVkIHRyYXAg aGFuZGxlcnNcbiIsCj4gPiAgICAgICAgICAgICAgICAgIEFSUkFZX1NJWkUoZW5jb2RpbmdfdG9f Y2d0KSk7Cj4gPgo+ID4gKyAgICAgICBpZiAoIWNwdXNfaGF2ZV9maW5hbF9jYXAoQVJNNjRfSEFT X0ZHVCkpCj4gPiArICAgICAgICAgICAgICAgZ290byBjaGVja19tY2I7Cj4gPiArCj4gPiArICAg ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQVJSQVlfU0laRShlbmNvZGluZ190b19mZ3QpOyBpKysp IHsKPiA+ICsgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZW5jb2RpbmdfdG9fdHJhcF9jb25m aWcgKmZndCA9ICZlbmNvZGluZ190b19mZ3RbaV07Cj4gPiArICAgICAgICAgICAgICAgdW5pb24g dHJhcF9jb25maWcgdGM7Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgdGMgPSBnZXRfdHJhcF9j b25maWcoZmd0LT5lbmNvZGluZyk7Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgaWYgKHRjLmZn dCkgewo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAga3ZtX2VycigiRHVwbGljYXRlIEZHVCBm b3IgKCVkLCAlZCwgJWQsICVkLCAlZClcbiIsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN5c19yZWdfT3AwKGZndC0+ZW5jb2RpbmcpLAo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzeXNfcmVnX09wMShmZ3QtPmVuY29kaW5nKSwKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3lzX3JlZ19DUm4oZmd0LT5lbmNvZGluZyksCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c19yZWdfQ1JtKGZndC0+ZW5jb2RpbmcpLAo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXNfcmVnX09wMihmZ3QtPmVuY29k aW5nKSk7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAtRUlOVkFMOwo+ID4gKyAg ICAgICAgICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAgICAgICAgICB0Yy52YWwgfD0gZmd0LT50 Yy52YWw7Cj4gPiArICAgICAgICAgICAgICAgeGFfc3RvcmUoJnNyX2ZvcndhcmRfeGEsIGZndC0+ ZW5jb2RpbmcsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgeGFfbWtfdmFsdWUodGMudmFs KSwgR0ZQX0tFUk5FTCk7Cj4gPiArICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAga3ZtX2luZm8o Im52OiAlbGQgZmluZSBncmFpbmVkIHRyYXAgaGFuZGxlcnNcbiIsCj4gPiArICAgICAgICAgICAg ICAgIEFSUkFZX1NJWkUoZW5jb2RpbmdfdG9fZmd0KSk7Cj4gPiArCj4gPiArY2hlY2tfbWNiOgo+ ID4gICAgICAgICBmb3IgKGludCBpZCA9IF9fTVVMVElQTEVfQ09OVFJPTF9CSVRTX187Cj4gPiAg ICAgICAgICAgICAgaWQgPCAoX19DT01QTEVYX0NPTkRJVElPTlNfXyAtIDEpOwo+ID4gICAgICAg ICAgICAgIGlkKyspIHsKPiA+IEBAIC0xMDMxLDEzICsxMDgxLDI2IEBAIHN0YXRpYyBlbnVtIHRy YXBfYmVoYXZpb3VyIGNvbXB1dGVfdHJhcF9iZWhhdmlvdXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1 LAo+ID4gICAgICAgICByZXR1cm4gX19kb19jb21wdXRlX3RyYXBfYmVoYXZpb3VyKHZjcHUsIHRj LmNndCwgYik7Cj4gPiAgfQo+ID4KPiA+ICtzdGF0aWMgYm9vbCBjaGVja19mZ3RfYml0KHU2NCB2 YWwsIGNvbnN0IHVuaW9uIHRyYXBfY29uZmlnIHRjKQo+ID4gK3sKPiA+ICsgICAgICAgcmV0dXJu ICgodmFsID4+IHRjLmJpdCkgJiAxKSA9PSB0Yy5wb2w7Cj4gPiArfQo+ID4gKwo+ID4gKyNkZWZp bmUgc2FuaXRpc2VkX3N5c19yZWcodmNwdSwgcmVnKSAgICAgICAgICAgICAgICAgICBcCj4gPiAr ICAgICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK PiA+ICsgICAgICAgICAgICAgICB1NjQgX192YWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAo+ID4gKyAgICAgICAgICAgICAgIF9fdmFsID0gX192Y3B1X3N5c19yZWcodmNwdSwgcmVn KTsgICAgICBcCj4gPiArICAgICAgICAgICAgICAgX192YWwgJj0gfl9fICMjIHJlZyAjIyBfUkVT MDsgICAgICAgICAgIFwKPiA+ICsgICAgICAgICAgICAgICAoX192YWwpOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAo+ID4gKyAgICAgICB9KQo+ID4gKwo+ID4gIGJvb2wgX19jaGVj a19udl9zcl9mb3J3YXJkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKPiA+ICB7Cj4gPiAgICAgICAg IHVuaW9uIHRyYXBfY29uZmlnIHRjOwo+ID4gICAgICAgICBlbnVtIHRyYXBfYmVoYXZpb3VyIGI7 Cj4gPiAgICAgICAgIGJvb2wgaXNfcmVhZDsKPiA+ICAgICAgICAgdTMyIHN5c3JlZzsKPiA+IC0g ICAgICAgdTY0IGVzcjsKPiA+ICsgICAgICAgdTY0IGVzciwgdmFsOwo+ID4KPiA+ICAgICAgICAg aWYgKCF2Y3B1X2hhc19udih2Y3B1KSB8fCBpc19oeXBfY3R4dCh2Y3B1KSkKPiA+ICAgICAgICAg ICAgICAgICByZXR1cm4gZmFsc2U7Cj4gPiBAQCAtMTA2MCw2ICsxMTIzLDE5IEBAIGJvb2wgX19j aGVja19udl9zcl9mb3J3YXJkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKPiA+ICAgICAgICAgaWYg KCF0Yy52YWwpCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwo+ID4KPiA+ICsgICAg ICAgc3dpdGNoICgoZW51bSBmZ3RfZ3JvdXBfaWQpdGMuZmd0KSB7Cj4gPiArICAgICAgIGNhc2Ug X19OT19GR1RfR1JPVVBfXzoKPiA+ICsgICAgICAgICAgICAgICBicmVhazsKPiA+ICsKPiA+ICsg ICAgICAgY2FzZSBfX05SX0ZHVF9HUk9VUF9JRFNfXzoKPiA+ICsgICAgICAgICAgICAgICAvKiBT b21ldGhpbmcgaXMgcmVhbGx5IHdyb25nLCBiYWlsIG91dCAqLwo+ID4gKyAgICAgICAgICAgICAg IFdBUk5fT05DRSgxLCAiX19OUl9GR1RfR1JPVVBfSURTX18iKTsKPiA+ICsgICAgICAgICAgICAg ICByZXR1cm4gZmFsc2U7Cj4gCj4gRG8gd2UgbmVlZCBhIGRlZmF1bHQgY2xhdXNlIGhlcmUgdG8g Y2F0Y2ggdW5leHBlY3RlZCB0Yy5mZ3QgdmFsdWVzPwoKSSdkIHJhdGhlciBub3QgaGF2ZSBhbnl0 aGluZyBzcGVjaWFsIGF0IGhhbmRsaW5nIHRpbWUsIGFzIHRoZSBjb21waWxlcgppcyBwZXJmZWN0 bHkgYWxsb3dlZCB0byB1c2UgdGhlIGNhc3QgYWJvdmUgdG8gcmVzdHJpY3QgdGhlIHZhbHVlIHRv CnRoZSBlbnVtZXJhdGlvbi4gV2UgYWxyZWFkeSBjb3ZlciBhbGwgdGhlIHBvc3NpYmxlIGVudW0g dmFsdWVzLCB3aGljaAppcyBnb29kIGVub3VnaC4KCkhvd2V2ZXIsIEkndmUgYWRkZWQgYW4gZXh0 cmEgY2hlY2sgYXQgYm9vdCB0aW1lIGZvciB1bmV4cGVjdGVkIHZhbHVlcwpoYXZpbmcgc25lYWtl ZCBpbnRvIHRoZSBGR1QgdGFibGUuCgpUaGFua3MsCgoJTS4KCi0tIApXaXRob3V0IGRldmlhdGlv biBmcm9tIHRoZSBub3JtLCBwcm9ncmVzcyBpcyBub3QgcG9zc2libGUuCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxp bmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==