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 E73C6C4345F for ; Thu, 18 Apr 2024 13:18:02 +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=DKjzehMsKqnuD8DofMU12eYs50hBUF3TfRbrIaRki04=; b=J3Ivc/JodPsuN3 pl6Jx6eui+NWP3v3A/YYHFMfbnANsr6iPvcgOw2yQAWpQphst/32RPcxtmmqRG6Gn5Z69j8gpmvj8 CuZGAo+CAZttHQdHMcSwIpH85xsXZPjVBR45iqIbPExqVkRQhz9UOMr1ao83+xzS/TA3r6zEvSUiv oqrkBa5QEwXviCGddLVlUy58RQoR8U7CneHejsc8g5OwteWD6UytwE8RCX+hvlo2ttaCMb6qiQAHv Jo6uEDDMNBhYyts+NcBLoYmCFtp8fg9mKA+BKnlXZ0WZnmbF/nipnQlHUYQzeXmMBOXo33VK7Bk0g hbVSz0vg7D/ZyZZEUZPg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rxRe3-00000002LCA-3Dky; Thu, 18 Apr 2024 13:17:44 +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 1rxRdp-00000002L6w-3rcW for linux-arm-kernel@lists.infradead.org; Thu, 18 Apr 2024 13:17:34 +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 AB529DA7; Thu, 18 Apr 2024 06:17:55 -0700 (PDT) Received: from [10.1.35.34] (e122027.cambridge.arm.com [10.1.35.34]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id EFCFF3F738; Thu, 18 Apr 2024 06:17:23 -0700 (PDT) Message-ID: Date: Thu, 18 Apr 2024 14:17:23 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 05/43] arm64: RME: Add SMC definitions for calling the RMM To: Suzuki K Poulose , kvm@vger.kernel.org, kvmarm@lists.linux.dev Cc: Catalin Marinas , Marc Zyngier , Will Deacon , James Morse , Oliver Upton , Zenghui Yu , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Joey Gouly , Alexandru Elisei , Christoffer Dall , Fuad Tabba , linux-coco@lists.linux.dev, Ganapatrao Kulkarni References: <20240412084056.1733704-1-steven.price@arm.com> <20240412084309.1733783-1-steven.price@arm.com> <20240412084309.1733783-6-steven.price@arm.com> From: Steven Price Content-Language: en-GB In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240418_061730_078748_AE992F41 X-CRM114-Status: GOOD ( 28.26 ) 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 T24gMTYvMDQvMjAyNCAxMzozOCwgU3V6dWtpIEsgUG91bG9zZSB3cm90ZToKPiBIaSBTdGV2ZW4K PiAKPiBPbiAxMi8wNC8yMDI0IDA5OjQyLCBTdGV2ZW4gUHJpY2Ugd3JvdGU6Cj4+IFRoZSBSTU0g KFJlYWxtIE1hbmFnZW1lbnQgTW9uaXRvcikgcHJvdmlkZXMgZnVuY3Rpb25hbGl0eSB0aGF0IGNh biBiZQo+PiBhY2Nlc3NlZCBieSBTTUMgY2FsbHMgZnJvbSB0aGUgaG9zdC4KPj4KPj4gVGhlIFNN QyBkZWZpbml0aW9ucyBhcmUgYmFzZWQgb24gREVOMDEzN1sxXSB2ZXJzaW9uIDEuMC1lYWM1Cj4+ Cj4+IFsxXSBodHRwczovL2RldmVsb3Blci5hcm0uY29tL2RvY3VtZW50YXRpb24vZGVuMDEzNy8x LTBlYWM1Lwo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBTdGV2ZW4gUHJpY2UgPHN0ZXZlbi5wcmljZUBh cm0uY29tPgo+PiAtLS0KPj4gwqAgYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9ybWlfc21jLmggfCAy NTAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiDCoCAxIGZpbGUgY2hhbmdlZCwg MjUwIGluc2VydGlvbnMoKykKPj4gwqAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtNjQvaW5j bHVkZS9hc20vcm1pX3NtYy5oCj4+Cj4+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUv YXNtL3JtaV9zbWMuaAo+PiBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vcm1pX3NtYy5oCj4+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAwMDAwMC4uYzIwNWVmZGIxOGQ4Cj4+ IC0tLSAvZGV2L251bGwKPj4gKysrIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9ybWlfc21jLmgK Pj4gQEAgLTAsMCArMSwyNTAgQEAKPj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwt Mi4wICovCj4+ICsvKgo+PiArICogQ29weXJpZ2h0IChDKSAyMDIzIEFSTSBMdGQuCj4+ICsgKgo+ PiArICogVGhlIHZhbHVlcyBhbmQgc3RydWN0dXJlcyBpbiB0aGlzIGZpbGUgYXJlIGZyb20gdGhl IFJlYWxtCj4+IE1hbmFnZW1lbnQgTW9uaXRvcgo+PiArICogc3BlY2lmaWNhdGlvbiAoREVOMDEz NykgdmVyc2lvbiBBLWJldDA6Cj4+ICsgKiBodHRwczovL2RldmVsb3Blci5hcm0uY29tL2RvY3Vt ZW50YXRpb24vZGVuMDEzNy8xLTBiZXQwLwo+IAo+IFRoaXMgc2hvdWxkIG5vdyBwb2ludCB0byBl YWM1IGluc3RlYWQuCgpUeXBpY2FsIC0gSSBzZWFyY2hlZCB0aHJvdWdoIHRoZSBjb21taXQgbG9n cywgYnV0IGZvcmdvdCBJJ2QgcHV0IGEKcmVmZXJlbmNlIGluIHRoZSBjb2RlIHRvbyEgVGhhbmtz IGZvciBzcG90dGluZy4KCj4+ICsgKi8KPj4gKwo+PiArI2lmbmRlZiBfX0FTTV9STUVfU01DX0gK Pj4gKyNkZWZpbmUgX19BU01fUk1FX1NNQ19ICj4+ICsKPj4gKyNpbmNsdWRlIDxsaW51eC9hcm0t c21jY2MuaD4KPj4gKwo+PiArI2RlZmluZSBTTUNfUnhJX0NBTEwoZnVuYynCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgXAo+PiArwqDCoMKgIEFSTV9TTUNDQ19DQUxMX1ZBTChBUk1fU01D Q0NfRkFTVF9DQUxMLMKgwqDCoMKgwqDCoMKgIFwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgQVJNX1NNQ0NDX1NNQ182NCzCoMKgwqDCoMKgwqDCoCBcCj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIEFSTV9TTUNDQ19PV05FUl9TVEFOREFSRCzCoMKgwqAgXAo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZnVuYykpCj4+ICsKPj4gKyNkZWZpbmUgU01DX1JN SV9EQVRBX0NSRUFURcKgwqDCoMKgwqDCoMKgIFNNQ19SeElfQ0FMTCgweDAxNTMpCj4+ICsjZGVm aW5lIFNNQ19STUlfREFUQV9DUkVBVEVfVU5LTk9XTsKgwqDCoCBTTUNfUnhJX0NBTEwoMHgwMTU0 KQo+PiArI2RlZmluZSBTTUNfUk1JX0RBVEFfREVTVFJPWcKgwqDCoMKgwqDCoMKgIFNNQ19SeElf Q0FMTCgweDAxNTUpCj4+ICsjZGVmaW5lIFNNQ19STUlfRkVBVFVSRVPCoMKgwqDCoMKgwqDCoCBT TUNfUnhJX0NBTEwoMHgwMTY1KQo+PiArI2RlZmluZSBTTUNfUk1JX0dSQU5VTEVfREVMRUdBVEXC oMKgwqAgU01DX1J4SV9DQUxMKDB4MDE1MSkKPj4gKyNkZWZpbmUgU01DX1JNSV9HUkFOVUxFX1VO REVMRUdBVEXCoMKgwqAgU01DX1J4SV9DQUxMKDB4MDE1MikKPj4gKyNkZWZpbmUgU01DX1JNSV9Q U0NJX0NPTVBMRVRFwqDCoMKgwqDCoMKgwqAgU01DX1J4SV9DQUxMKDB4MDE2NCkKPj4gKyNkZWZp bmUgU01DX1JNSV9SRUFMTV9BQ1RJVkFURcKgwqDCoMKgwqDCoMKgIFNNQ19SeElfQ0FMTCgweDAx NTcpCj4+ICsjZGVmaW5lIFNNQ19STUlfUkVBTE1fQ1JFQVRFwqDCoMKgwqDCoMKgwqAgU01DX1J4 SV9DQUxMKDB4MDE1OCkKPj4gKyNkZWZpbmUgU01DX1JNSV9SRUFMTV9ERVNUUk9ZwqDCoMKgwqDC oMKgwqAgU01DX1J4SV9DQUxMKDB4MDE1OSkKPj4gKyNkZWZpbmUgU01DX1JNSV9SRUNfQVVYX0NP VU5UwqDCoMKgwqDCoMKgwqAgU01DX1J4SV9DQUxMKDB4MDE2NykKPj4gKyNkZWZpbmUgU01DX1JN SV9SRUNfQ1JFQVRFwqDCoMKgwqDCoMKgwqAgU01DX1J4SV9DQUxMKDB4MDE1YSkKPj4gKyNkZWZp bmUgU01DX1JNSV9SRUNfREVTVFJPWcKgwqDCoMKgwqDCoMKgIFNNQ19SeElfQ0FMTCgweDAxNWIp Cj4+ICsjZGVmaW5lIFNNQ19STUlfUkVDX0VOVEVSwqDCoMKgwqDCoMKgwqAgU01DX1J4SV9DQUxM KDB4MDE1YykKPj4gKyNkZWZpbmUgU01DX1JNSV9SVFRfQ1JFQVRFwqDCoMKgwqDCoMKgwqAgU01D X1J4SV9DQUxMKDB4MDE1ZCkKPj4gKyNkZWZpbmUgU01DX1JNSV9SVFRfREVTVFJPWcKgwqDCoMKg wqDCoMKgIFNNQ19SeElfQ0FMTCgweDAxNWUpCj4+ICsjZGVmaW5lIFNNQ19STUlfUlRUX0ZPTETC oMKgwqDCoMKgwqDCoCBTTUNfUnhJX0NBTEwoMHgwMTY2KQo+PiArI2RlZmluZSBTTUNfUk1JX1JU VF9JTklUX1JJUEFTwqDCoMKgwqDCoMKgwqAgU01DX1J4SV9DQUxMKDB4MDE2OCkKPj4gKyNkZWZp bmUgU01DX1JNSV9SVFRfTUFQX1VOUFJPVEVDVEVEwqDCoMKgIFNNQ19SeElfQ0FMTCgweDAxNWYp Cj4+ICsjZGVmaW5lIFNNQ19STUlfUlRUX1JFQURfRU5UUlnCoMKgwqDCoMKgwqDCoCBTTUNfUnhJ X0NBTEwoMHgwMTYxKQo+PiArI2RlZmluZSBTTUNfUk1JX1JUVF9TRVRfUklQQVPCoMKgwqDCoMKg wqDCoCBTTUNfUnhJX0NBTEwoMHgwMTY5KQo+PiArI2RlZmluZSBTTUNfUk1JX1JUVF9VTk1BUF9V TlBST1RFQ1RFRMKgwqDCoCBTTUNfUnhJX0NBTEwoMHgwMTYyKQo+PiArI2RlZmluZSBTTUNfUk1J X1ZFUlNJT07CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFNNQ19SeElfQ0FMTCgweDAxNTApCj4+ICsK Pj4gKyNkZWZpbmUgUk1JX0FCSV9NQUpPUl9WRVJTSU9OwqDCoMKgIDEKPj4gKyNkZWZpbmUgUk1J X0FCSV9NSU5PUl9WRVJTSU9OwqDCoMKgIDAKPj4gKwo+PiArI2RlZmluZSBSTUlfVU5BU1NJR05F RMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMAo+PiArI2RlZmluZSBSTUlfQVNTSUdORUTCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIDEKPj4gKyNkZWZpbmUgUk1JX1RBQkxFwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAyCj4+ICsKPj4gKyNkZWZpbmUgUk1JX0FCSV9WRVJTSU9OX0dFVF9NQUpPUih2ZXJzaW9u KSAoKHZlcnNpb24pID4+IDE2KQo+PiArI2RlZmluZSBSTUlfQUJJX1ZFUlNJT05fR0VUX01JTk9S KHZlcnNpb24pICgodmVyc2lvbikgJiAweEZGRkYpCj4+ICsjZGVmaW5lIFJNSV9BQklfVkVSU0lP TihtYWpvciwgbWlub3IpwqDCoMKgwqDCoCAoKChtYWpvcikgPDwgMTYpIHwgKG1pbm9yKSkKPj4g Kwo+PiArI2RlZmluZSBSTUlfUkVUVVJOX1NUQVRVUyhyZXQpwqDCoMKgwqDCoMKgwqAgKChyZXQp ICYgMHhGRikKPj4gKyNkZWZpbmUgUk1JX1JFVFVSTl9JTkRFWChyZXQpwqDCoMKgwqDCoMKgwqAg KCgocmV0KSA+PiA4KSAmIDB4RkYpCj4+ICsKPj4gKyNkZWZpbmUgUk1JX1NVQ0NFU1PCoMKgwqDC oMKgwqDCoCAwCj4+ICsjZGVmaW5lIFJNSV9FUlJPUl9JTlBVVMKgwqDCoMKgwqDCoMKgIDEKPj4g KyNkZWZpbmUgUk1JX0VSUk9SX1JFQUxNwqDCoMKgwqDCoMKgwqAgMgo+PiArI2RlZmluZSBSTUlf RVJST1JfUkVDwqDCoMKgwqDCoMKgwqAgMwo+PiArI2RlZmluZSBSTUlfRVJST1JfUlRUwqDCoMKg wqDCoMKgwqAgNAo+PiArCj4+ICsjZGVmaW5lIFJNSV9FTVBUWcKgwqDCoMKgwqDCoMKgIDAKPj4g KyNkZWZpbmUgUk1JX1JBTcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMQo+PiArI2RlZmluZSBSTUlf REVTVFJPWUVEwqDCoMKgwqDCoMKgwqAgMgo+PiArCj4+ICsjZGVmaW5lIFJNSV9OT19NRUFTVVJF X0NPTlRFTlTCoMKgwqAgMAo+PiArI2RlZmluZSBSTUlfTUVBU1VSRV9DT05URU5UwqDCoMKgIDEK Pj4gKwo+PiArI2RlZmluZSBSTUlfRkVBVFVSRV9SRUdJU1RFUl8wX1MyU1rCoMKgwqDCoMKgwqDC oCBHRU5NQVNLKDcsIDApCj4+ICsjZGVmaW5lIFJNSV9GRUFUVVJFX1JFR0lTVEVSXzBfTFBBMsKg wqDCoMKgwqDCoMKgIEJJVCg4KQo+PiArI2RlZmluZSBSTUlfRkVBVFVSRV9SRUdJU1RFUl8wX1NW RV9FTsKgwqDCoMKgwqDCoMKgIEJJVCg5KQo+PiArI2RlZmluZSBSTUlfRkVBVFVSRV9SRUdJU1RF Ul8wX1NWRV9WTMKgwqDCoMKgwqDCoMKgIEdFTk1BU0soMTMsIDEwKQo+PiArI2RlZmluZSBSTUlf RkVBVFVSRV9SRUdJU1RFUl8wX05VTV9CUFPCoMKgwqDCoMKgwqDCoCBHRU5NQVNLKDE3LCAxNCkK Pj4gKyNkZWZpbmUgUk1JX0ZFQVRVUkVfUkVHSVNURVJfMF9OVU1fV1BTwqDCoMKgwqDCoMKgwqAg R0VOTUFTSygyMSwgMTgpCj4+ICsjZGVmaW5lIFJNSV9GRUFUVVJFX1JFR0lTVEVSXzBfUE1VX0VO wqDCoMKgwqDCoMKgwqAgQklUKDIyKQo+PiArI2RlZmluZSBSTUlfRkVBVFVSRV9SRUdJU1RFUl8w X1BNVV9OVU1fQ1RSU8KgwqDCoCBHRU5NQVNLKDI3LCAyMykKPj4gKyNkZWZpbmUgUk1JX0ZFQVRV UkVfUkVHSVNURVJfMF9IQVNIX1NIQV8yNTbCoMKgwqAgQklUKDI4KQo+PiArI2RlZmluZSBSTUlf RkVBVFVSRV9SRUdJU1RFUl8wX0hBU0hfU0hBXzUxMsKgwqDCoCBCSVQoMjkpCj4+ICsKPj4gKyNk ZWZpbmUgUk1JX1JFQUxNX1BBUkFNX0ZMQUdfTFBBMsKgwqDCoMKgwqDCoMKgIEJJVCgwKQo+PiAr I2RlZmluZSBSTUlfUkVBTE1fUEFSQU1fRkxBR19TVkXCoMKgwqDCoMKgwqDCoCBCSVQoMSkKPj4g KyNkZWZpbmUgUk1JX1JFQUxNX1BBUkFNX0ZMQUdfUE1VwqDCoMKgwqDCoMKgwqAgQklUKDIpCj4+ ICsKPj4gKy8qCj4+ICsgKiBOb3RlIG1hbnkgb2YgdGhlc2UgZmllbGRzIGFyZSBzbWFsbGVyIHRo YW4gdTY0IGJ1dCBhbGwgZmllbGRzIGhhdmUKPj4gdTY0Cj4+ICsgKiBhbGlnbm1lbnQsIHNvIHVz ZSB1NjQgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50Lgo+PiArICovCj4+ICtzdHJ1Y3QgcmVh bG1fcGFyYW1zIHsKPj4gK8KgwqDCoCB1bmlvbiB7IC8qIDB4MCAqLwo+PiArwqDCoMKgwqDCoMKg wqAgc3RydWN0IHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdTY0IGZsYWdzOwo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB1NjQgczJzejsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg dTY0IHN2ZV92bDsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdTY0IG51bV9icHM7Cj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHU2NCBudW1fd3BzOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCB1NjQgcG11X251bV9jdHJzOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1NjQgaGFz aF9hbGdvOwo+PiArwqDCoMKgwqDCoMKgwqAgfTsKPj4gK8KgwqDCoMKgwqDCoMKgIHU4IHBhZGRp bmdfMVsweDQwMF07Cj4+ICvCoMKgwqAgfTsKPj4gK8KgwqDCoCB1bmlvbiB7IC8qIDB4NDAwICov Cj4+ICvCoMKgwqDCoMKgwqDCoCB1OCBycHZbNjRdOwo+PiArwqDCoMKgwqDCoMKgwqAgdTggcGFk ZGluZ18yWzB4NDAwXTsKPj4gK8KgwqDCoCB9Owo+PiArwqDCoMKgIHVuaW9uIHsgLyogMHg4MDAg Ki8KPj4gK8KgwqDCoMKgwqDCoMKgIHN0cnVjdCB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHU2NCB2bWlkOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1NjQgcnR0X2Jhc2U7Cj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHM2NCBydHRfbGV2ZWxfc3RhcnQ7Cj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHU2NCBydHRfbnVtX3N0YXJ0Owo+PiArwqDCoMKgwqDCoMKgwqAgfTsKPj4g K8KgwqDCoMKgwqDCoMKgIHU4IHBhZGRpbmdfM1sweDgwMF07Cj4+ICvCoMKgwqAgfTsKPj4gK307 Cj4+ICsKPj4gKy8qCj4+ICsgKiBUaGUgbnVtYmVyIG9mIEdQUnMgKHN0YXJ0aW5nIGZyb20gWDAp IHRoYXQgYXJlCj4+ICsgKiBjb25maWd1cmVkIGJ5IHRoZSBob3N0IHdoZW4gYSBSRUMgaXMgY3Jl YXRlZC4KPj4gKyAqLwo+PiArI2RlZmluZSBSRUNfQ1JFQVRFX05SX0dQUlPCoMKgwqDCoMKgwqDC oCA4Cj4+ICsKPj4gKyNkZWZpbmUgUkVDX1BBUkFNU19GTEFHX1JVTk5BQkxFwqDCoMKgIEJJVF9V TEwoMCkKPj4gKwo+PiArI2RlZmluZSBSRUNfUEFSQU1TX0FVWF9HUkFOVUxFU8KgwqDCoMKgwqDC oMKgIDE2Cj4+ICsKPj4gK3N0cnVjdCByZWNfcGFyYW1zIHsKPj4gK8KgwqDCoCB1bmlvbiB7IC8q IDB4MCAqLwo+PiArwqDCoMKgwqDCoMKgwqAgdTY0IGZsYWdzOwo+PiArwqDCoMKgwqDCoMKgwqAg dTggcGFkZGluZzFbMHgxMDBdOwo+PiArwqDCoMKgIH07Cj4+ICvCoMKgwqAgdW5pb24geyAvKiAw eDEwMCAqLwo+PiArwqDCoMKgwqDCoMKgwqAgdTY0IG1waWRyOwo+PiArwqDCoMKgwqDCoMKgwqAg dTggcGFkZGluZzJbMHgxMDBdOwo+PiArwqDCoMKgIH07Cj4+ICvCoMKgwqAgdW5pb24geyAvKiAw eDIwMCAqLwo+PiArwqDCoMKgwqDCoMKgwqAgdTY0IHBjOwo+PiArwqDCoMKgwqDCoMKgwqAgdTgg cGFkZGluZzNbMHgxMDBdOwo+PiArwqDCoMKgIH07Cj4+ICvCoMKgwqAgdW5pb24geyAvKiAweDMw MCAqLwo+PiArwqDCoMKgwqDCoMKgwqAgdTY0IGdwcnNbUkVDX0NSRUFURV9OUl9HUFJTXTsKPj4g K8KgwqDCoMKgwqDCoMKgIHU4IHBhZGRpbmc0WzB4NTAwXTsKPj4gK8KgwqDCoCB9Owo+PiArwqDC oMKgIHVuaW9uIHsgLyogMHg4MDAgKi8KPj4gK8KgwqDCoMKgwqDCoMKgIHN0cnVjdCB7Cj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHU2NCBudW1fcmVjX2F1eDsKPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqAgdTY0IGF1eFtSRUNfUEFSQU1TX0FVWF9HUkFOVUxFU107Cj4+ICvCoMKgwqDCoMKg wqDCoCB9Owo+PiArwqDCoMKgwqDCoMKgwqAgdTggcGFkZGluZzVbMHg4MDBdOwo+PiArwqDCoMKg IH07Cj4+ICt9Owo+PiArCj4+ICsjZGVmaW5lIFJNSV9FTVVMQVRFRF9NTUlPwqDCoMKgwqDCoMKg wqAgQklUKDApCj4+ICsjZGVmaW5lIFJNSV9JTkpFQ1RfU0VBwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBCSVQoMSkKPj4gKyNkZWZpbmUgUk1JX1RSQVBfV0ZJwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBC SVQoMikKPj4gKyNkZWZpbmUgUk1JX1RSQVBfV0ZFwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBCSVQo MykKPiAKPiBGb3IgY29tcGxldGVuZXNzLCB3ZSBjb3VsZCBhZGQgOgo+IAo+ICNkZWZpbmUgUk1J X1JJUEFTX1JFU1BPTlNFwqDCoMKgwqDCoMKgwqAgQklUKDQpCj4gCj4gTm90IHN1cmUgaWYgd2Ug dXNlIGl0IGxhdGVyIGluIHRoZSBzZXJpZXMuCgpZZXMsIEknbGwgYWRkIGZvciBjb21wbGV0ZW5l c3MuIEN1cnJlbnRseSBLVk0gd2lsbCBuZXZlciByZWplY3QgYSBSSVBBUwpjaGFuZ2UgcmVxdWVz dCBmcm9tIHRoZSBndWVzdC4gSSdtIG5vdCBzdXJlIGluIHdoYXQgc2l0dWF0aW9uIGl0IHdvdWxk Cm1ha2Ugc2Vuc2UgdG8gZG8gc3VjaCBhIHRoaW5nLiBUaGUgY3VycmVudCB1QUJJIGRvZXNuJ3Qg YWxsb3cgdGhlIFZNTSB0bwpoYXZlIGEgc2F5IGluIGl0IGVpdGhlciBhcyB0aGUgUklQQVMgY2hh bmdlIGlzIGNvbXBsZXRlZCBiZWZvcmUgdGhlIGV4aXQKdG8gdGhlIFZNTS4gVGhlIGV4cGVjdGF0 aW9uIGlzIHRoZXJlZm9yZSB0aGF0IHRoZSBWTU0gd291bGQgc2ltcGx5CnRlcm1pbmF0ZSBhIFJl YWxtIGd1ZXN0IHRoYXQgYXR0ZW1wdGVkIGEgUklQQVMgY2hhbmdlIHRoYXQgaXQgZGlzYWdyZWVk CndpdGguCgo+PiArCj4+ICsjZGVmaW5lIFJFQ19SVU5fR1BSU8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgMzEKPj4gKyNkZWZpbmUgUkVDX0dJQ19OVU1fTFJTwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAx Ngo+PiArCj4+ICtzdHJ1Y3QgcmVjX2VudHJ5IHsKCldoaWxlIEknbSByZWFkaW5nIHRoaXMgKGFu ZCB0aGUgc3BlYykgYWdhaW4gLSBJIG5vdGljZSB0aGF0IHRoZSBzcGVjCnNheXMgIlJlY0VudGVy IiBub3QgJ2VudHJ5JyAtIEknbGwgcmVuYW1lIHRoaXMgdG8gYmUgY29uc2lzdGVudC4KCj4+ICvC oMKgwqAgdW5pb24geyAvKiAweDAwMCAqLwo+PiArwqDCoMKgwqDCoMKgwqAgdTY0IGZsYWdzOwo+ PiArwqDCoMKgwqDCoMKgwqAgdTggcGFkZGluZzBbMHgyMDBdOwo+PiArwqDCoMKgIH07Cj4+ICvC oMKgwqAgdW5pb24geyAvKiAweDIwMCAqLwo+PiArwqDCoMKgwqDCoMKgwqAgdTY0IGdwcnNbUkVD X1JVTl9HUFJTXTsKPj4gK8KgwqDCoMKgwqDCoMKgIHU4IHBhZGRpbmcyWzB4MTAwXTsKPj4gK8Kg wqDCoCB9Owo+PiArwqDCoMKgIHVuaW9uIHsgLyogMHgzMDAgKi8KPj4gK8KgwqDCoMKgwqDCoMKg IHN0cnVjdCB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHU2NCBnaWN2M19oY3I7Cj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHU2NCBnaWN2M19scnNbUkVDX0dJQ19OVU1fTFJTXTsKPj4g K8KgwqDCoMKgwqDCoMKgIH07Cj4+ICvCoMKgwqDCoMKgwqDCoCB1OCBwYWRkaW5nM1sweDEwMF07 Cj4+ICvCoMKgwqAgfTsKPj4gK8KgwqDCoCB1OCBwYWRkaW5nNFsweDQwMF07Cj4+ICt9Owo+PiAr Cj4+ICtzdHJ1Y3QgcmVjX2V4aXQgewo+PiArwqDCoMKgIHVuaW9uIHsgLyogMHgwMDAgKi8KPj4g K8KgwqDCoMKgwqDCoMKgIHU4IGV4aXRfcmVhc29uOwo+PiArwqDCoMKgwqDCoMKgwqAgdTggcGFk ZGluZzBbMHgxMDBdOwo+PiArwqDCoMKgIH07Cj4+ICvCoMKgwqAgdW5pb24geyAvKiAweDEwMCAq Lwo+PiArwqDCoMKgwqDCoMKgwqAgc3RydWN0IHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg dTY0IGVzcjsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdTY0IGZhcjsKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgdTY0IGhwZmFyOwo+PiArwqDCoMKgwqDCoMKgwqAgfTsKPj4gK8KgwqDC oMKgwqDCoMKgIHU4IHBhZGRpbmcxWzB4MTAwXTsKPj4gK8KgwqDCoCB9Owo+PiArwqDCoMKgIHVu aW9uIHsgLyogMHgyMDAgKi8KPj4gK8KgwqDCoMKgwqDCoMKgIHU2NCBncHJzW1JFQ19SVU5fR1BS U107Cj4+ICvCoMKgwqDCoMKgwqDCoCB1OCBwYWRkaW5nMlsweDEwMF07Cj4+ICvCoMKgwqAgfTsK Pj4gK8KgwqDCoCB1bmlvbiB7IC8qIDB4MzAwICovCj4+ICvCoMKgwqDCoMKgwqDCoCBzdHJ1Y3Qg ewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1NjQgZ2ljdjNfaGNyOwo+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCB1NjQgZ2ljdjNfbHJzW1JFQ19HSUNfTlVNX0xSU107Cj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHU2NCBnaWN2M19taXNyOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCB1NjQgZ2ljdjNfdm1jcjsKPj4gK8KgwqDCoMKgwqDCoMKgIH07Cj4+ICvCoMKgwqDCoMKgwqDC oCB1OCBwYWRkaW5nM1sweDEwMF07Cj4+ICvCoMKgwqAgfTsKPj4gK8KgwqDCoCB1bmlvbiB7IC8q IDB4NDAwICovCj4+ICvCoMKgwqDCoMKgwqDCoCBzdHJ1Y3Qgewo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB1NjQgY250cF9jdGw7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHU2NCBjbnRw X2N2YWw7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHU2NCBjbnR2X2N0bDsKPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqAgdTY0IGNudHZfY3ZhbDsKPj4gK8KgwqDCoMKgwqDCoMKgIH07Cj4+ ICvCoMKgwqDCoMKgwqDCoCB1OCBwYWRkaW5nNFsweDEwMF07Cj4+ICvCoMKgwqAgfTsKPj4gK8Kg wqDCoCB1bmlvbiB7IC8qIDB4NTAwICovCj4+ICvCoMKgwqDCoMKgwqDCoCBzdHJ1Y3Qgewo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1NjQgcmlwYXNfYmFzZTsKPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqAgdTY0IHJpcGFzX3RvcDsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdTY0IHJp cGFzX3ZhbHVlOwo+PiArwqDCoMKgwqDCoMKgwqAgfTsKPj4gK8KgwqDCoMKgwqDCoMKgIHU4IHBh ZGRpbmc1WzB4MTAwXTsKPj4gK8KgwqDCoCB9Owo+PiArwqDCoMKgIHVuaW9uIHsgLyogMHg2MDAg Ki8KPj4gK8KgwqDCoMKgwqDCoMKgIHUxNiBpbW07Cj4+ICvCoMKgwqDCoMKgwqDCoCB1OCBwYWRk aW5nNlsweDEwMF07Cj4+ICvCoMKgwqAgfTsKPj4gK8KgwqDCoCB1bmlvbiB7IC8qIDB4NzAwICov Cj4+ICvCoMKgwqDCoMKgwqDCoCBzdHJ1Y3Qgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1 NjQgcG11X292Zl9zdGF0dXM7Cj4gCj4gVGhpcyBpcyB1OCBhcyBwZXIgc2VjdGlvbiBCNC40LjEw IFJtaVBtdU92ZXJmbG93U3RhdHVzIHR5cGUuCgpJbmRlZWQgLSBJJ20gbm90IHN1cmUgd2hlcmUg SSBnb3QgdTY0IGZyb20gLSBpdCB3YXMgcHJvYmFibHkgdG8gcHJvdmlkZQpwYWRkaW5nIGluIGFu IG9sZGVyIHZlcnNpb24gb2YgdGhlIHNwZWMuCgo+PiArwqDCoMKgwqDCoMKgwqAgfTsKPj4gK8Kg wqDCoMKgwqDCoMKgIHU4IHBhZGRpbmc3WzB4MTAwXTsKPj4gK8KgwqDCoCB9Owo+PiArfTsKPj4g Kwo+PiArc3RydWN0IHJlY19ydW4gewo+PiArwqDCoMKgIHN0cnVjdCByZWNfZW50cnkgZW50cnk7 Cj4+ICvCoMKgwqAgc3RydWN0IHJlY19leGl0IGV4aXQ7Cj4+ICt9Owo+PiArCj4+ICsjZGVmaW5l IFJNSV9FWElUX1NZTkPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDB4MDAKPj4gKyNkZWZpbmUgUk1J X0VYSVRfSVJRwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAweDAxCj4+ICsjZGVmaW5lIFJNSV9FWElU X0ZJUcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMHgwMgo+PiArI2RlZmluZSBSTUlfRVhJVF9QU0NJ wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAweDAzCj4+ICsjZGVmaW5lIFJNSV9FWElUX1JJUEFTX0NI QU5HRcKgwqDCoMKgwqDCoMKgIDB4MDQKPj4gKyNkZWZpbmUgUk1JX0VYSVRfSE9TVF9DQUxMwqDC oMKgwqDCoMKgwqAgMHgwNQo+PiArI2RlZmluZSBSTUlfRVhJVF9TRVJST1LCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIDB4MDYKPiAKPiBNaW5vciBuaXQ6IExpa2UgdGhlIG90aGVyIGRlZmluaXRpb25z LCBpdCBtYXkgYmUgZ29vZCB0byBrZWVwIHRoZQo+IGRlZmludGlvbnMgb2YgdGhlICJleGl0X3Jl YXNvbiIgYWJvdmUgdGhlIGZpZWxkIGRlY2xhcmF0aW9uLgoKWWVzLCBtYWtlcyBzZW5zZSAtIEkn bGwgbW92ZSB0aGVzZS4KClRoYW5rcyBmb3IgdGhlIHJldmlldyEKClN0ZXZlCgo+IAo+IFJlc3Qg bG9va3MgZmluZSB0byBtZS4KPiAKPiBTdXp1a2kKPj4gKwo+PiArI2VuZGlmCj4gCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5l bCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=