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 7F62CC001E0 for ; Thu, 10 Aug 2023 16:44:00 +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:Reply-To:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:References: In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=jtc7t0TRx8aWKuzGpnu4AW5OzlR5pt2/SDg3mWkNqfw=; b=vHPUjNbE0IESUg z3gUe0ObDs+vIpa3FkBXG4cGVq0lGeUrLu6YjNWyHndkfZ+Ip8G2r8WN7GTNmUjX6kR1yJ0BRZHv7 24hDiRkhzyNpPTkzRiPZpLgYDs1uchdZpGb52/SbyQkjO1QpV+/RSpdLuJkQLlQzVfbtcG/V1rULu Hcf7yZaq9q9fDb3jZJ3791M8CLtUuhqLl2UG4pNRmoFA0Ddi0hhQMn1ND66lVhHDliBrTe4dfJGj+ jSSA2vPULvT1av8f7WRSIuaUPbAjo1wQUNY7m6oXBDmx/eVEiOvWtvYCdg1yuqBKT0YJ8hzrAW73n XXy6ZcQfEXb9PpynBEbg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qU8l2-008Dyh-2V; Thu, 10 Aug 2023 16:43:32 +0000 Received: from mgamail.intel.com ([192.55.52.151]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qU8kz-008DxK-0x for linux-arm-kernel@lists.infradead.org; Thu, 10 Aug 2023 16:43:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1691685809; x=1723221809; h=message-id:subject:from:reply-to:to:cc:date:in-reply-to: references:content-transfer-encoding:mime-version; bh=r7+pRLOhmCU2mY1+yp43/cT6YSLlci8CmLi2j4cMZDM=; b=jAreesPU2/sW7gxp8dvP1Yt0a3J7M4AuWBxhgnjxdlXYDjJ+3pq2Nab1 u5wNQh+pvD4J9oQJpd0Fb0zc87Vbz4bp8Z9cwOtwpZnCd4DSeH2I1/tMU hFIQvW8DCjY6V0MdZx94gmm14jMbljvAh0zshpe+R21Grgmw+4IgZeOK4 KFv4dN1pQTdbU1+W05kNjjuwgHMdg5LbbIqq97yX3/Uj9jl9cPH339FJl qdlLUnkJJCfCbsdophY9HzeGk70KPfI3mdinq0TQS8lw1FC376t2J6Noo YKjOdym3RBOXxtRXBEK+SQ+kiPIk++3VwpHn88neUZvs6BmOE0bsqCAnN g==; X-IronPort-AV: E=McAfee;i="6600,9927,10798"; a="351776955" X-IronPort-AV: E=Sophos;i="6.01,162,1684825200"; d="scan'208";a="351776955" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Aug 2023 09:36:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10798"; a="855987630" X-IronPort-AV: E=Sophos;i="6.01,162,1684825200"; d="scan'208";a="855987630" Received: from linux.intel.com ([10.54.29.200]) by orsmga004.jf.intel.com with ESMTP; 10 Aug 2023 09:36:15 -0700 Received: from tphi-mobl.amr.corp.intel.com (tphi-mobl.amr.corp.intel.com [10.209.57.169]) by linux.intel.com (Postfix) with ESMTP id 47411580AFF; Thu, 10 Aug 2023 09:36:15 -0700 (PDT) Message-ID: Subject: Re: [PATCH net-next v2 1/5] platform/x86: intel_pmc_core: Add IPC mailbox accessor function and add SoC register access From: "David E. Box" To: Hans de Goede , Choong Yong Liang , Rajneesh Bhardwaj , Mark Gross , Jose Abreu , Andrew Lunn , Heiner Kallweit , Russell King , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Marek =?ISO-8859-1?Q?Beh=FAn?= , Jean Delvare , Guenter Roeck , Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu , Maxime Coquelin , Richard Cochran , Philipp Zabel , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend , Wong Vee Khee , Jon Hunter , Jesse Brandeburg , Shenwei Wang , Andrey Konovalov , Jochen Henneberg Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, platform-driver-x86@vger.kernel.org, linux-hwmon@vger.kernel.org, bpf@vger.kernel.org, Voon Wei Feng , Tan Tee Min , Michael Sit Wei Hong , Lai Peter Jun Ann Date: Thu, 10 Aug 2023 09:36:15 -0700 In-Reply-To: <145d7375-0e58-b7cf-6240-5d8bc16b0344@redhat.com> References: <20230804084527.2082302-1-yong.liang.choong@linux.intel.com> <20230804084527.2082302-2-yong.liang.choong@linux.intel.com> <145d7375-0e58-b7cf-6240-5d8bc16b0344@redhat.com> Organization: David E. Box User-Agent: Evolution 3.44.4-0ubuntu2 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230810_094329_381057_640E45CF X-CRM114-Status: GOOD ( 39.93 ) 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: , Reply-To: david.e.box@linux.intel.com 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 SGkgSGFucywKCk9uIE1vbiwgMjAyMy0wOC0wNyBhdCAxMzowMiArMDIwMCwgSGFucyBkZSBHb2Vk ZSB3cm90ZToKPiA+IEhpIERhdmlkLAo+ID4gCj4gPiBPbiA4LzQvMjMgMTA6NDUsIENob29uZyBZ b25nIExpYW5nIHdyb3RlOgo+ID4gPiA+IEZyb206ICJEYXZpZCBFLiBCb3giIDxkYXZpZC5lLmJv eEBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ID4gCj4gPiA+ID4gLSBFeHBvcnRzIGludGVsX3BtY19j b3JlX2lwYygpIGZvciBob3N0IGFjY2VzcyB0byB0aGUgUE1DIElQQyBtYWlsYm94Cj4gPiA+ID4g LSBBZGQgc3VwcG9ydCB0byB1c2UgSVBDIGNvbW1hbmQgYWxsb3dzIGhvc3QgdG8gYWNjZXNzIFNv QyByZWdpc3RlcnMKPiA+ID4gPiB0aHJvdWdoIFBNQyBmaXJtd2FyZSB0aGF0IGFyZSBvdGhlcndp c2UgaW5hY2Nlc3NpYmxlIHRvIHRoZSBob3N0IGR1ZSB0bwo+ID4gPiA+IHNlY3VyaXR5IHBvbGlj aWVzLgo+ID4gPiA+IAo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IERhdmlkIEUuIEJveCA8ZGF2aWQu ZS5ib3hAbGludXguaW50ZWwuY29tPgo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IENoYW8gUWluIDxj aGFvLnFpbkBpbnRlbC5jb20+Cj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogQ2hvb25nIFlvbmcgTGlh bmcgPHlvbmcubGlhbmcuY2hvb25nQGxpbnV4LmludGVsLmNvbT4KPiA+IAo+ID4gVGhlIG5ldyBl eHBvcnRlZCBpbnRlbF9wbWNfY29yZV9pcGMoKSBmdW5jdGlvbiBkb2VzIG5vdCBzZWVtIHRvCj4g PiBkZXBlbmQgb24gYW55IGV4aXN0aW5nIFBNQyBjb2RlLgo+ID4gCj4gPiBJTUhPIGl0IHdvdWxk IGJlIGJldHRlciB0byBwdXQgdGhpcyBpbiBhIG5ldyAuYyBmaWxlIHVuZGVyCj4gPiBhcmNoL3g4 Ni9wbGF0Zm9ybS9pbnRlbC8gdGhpcyBpcyB3aGVyZSBzaW1pbGFyIGhlbHBlcnMgbGlrZQo+ID4g dGhlIGlvc2ZfbWJpIGZ1bmN0aW9ucyBhbHNvIGxpdmUuCj4gPiAKPiA+IFRoaXMgYWxzbyBhdm9p ZHMgS2NvbmZpZyBjb21wbGljYXRpb25zLiBDdXJyZW50bHkgdGhlCj4gPiBkcml2ZXJzL3BsYXRm b3JtL3g4Ni9pbnRlbC9wbWMvY29yZS5jIGNvZGUgaXMgb25seQo+ID4gYnVpbGQgaWYgQ09ORklH X1g4Nl9QTEFURk9STV9ERVZJQ0VTIGFuZAo+ID4gQ09ORklHX0lOVEVMX1BNQ19DT1JFIGFyZSBi b3RoIHNldC4gU28gaWYgYSBkcml2ZXIKPiA+IHdhbnRzIHRvIG1ha2Ugc3VyZSB0aGlzIGlzIGVu YWJsZWQgYnkgc2VsZWN0aW5nIHRoZW0KPiA+IHRoZW4gaXQgbmVlZHMgdG8gc2VsZWN0IGJvdGgu CgpZZWFoLCBtYWtlcyBzZW5zZS4gVGhpcyBpcyBhbiBvbGQgcGF0Y2guIE9uY2UgdXBvbiBhIHRp bWUgdGhlIFBNQyBkcml2ZXIgd2FzCmdvaW5nIHRvIHVzZSB0aGUgSVBDIHRvIGFjY2VzcyBzb21l IHJlZ2lzdGVycyBidXQgd2Ugd2VyZSBhYmxlIHRvIGdldCB0aGVtIGZyb20KZWxzZXdoZXJlLiBU aGUgcGF0Y2ggd2FzIGJyb3VnaHQgYmFjayBmb3IgdGhlIFRTTiB1c2UgY2FzZS4gQnV0IHlvdSdy ZSBjb3JyZWN0CnRoYXQgYXJjaC94ODYvcGxhdGZvcm0vaW50ZWwgbWFrZXMgbW9yZSBzZW5zZSBp ZiB0aGUgZnVuY3Rpb24gaXMgdG8gYmUgZXhwb3J0ZWQKbm93IGFuZCBkb2Vzbid0IHJlcXVpcmUg dG8gUE1DIGRyaXZlciB0byBkaXNjb3ZlciB0aGUgaW50ZXJmYWNlLiBXZSdsbCBkbyB0aGF0LgoK PiA+IAo+ID4gVGFsa2luZyBhYm91dCBLY29uZmlnOgo+ID4gCj4gPiAjaWYgSVNfRU5BQkxFRChD T05GSUdfSU5URUxfUE1DX0NPUkUpCj4gPiBpbnQgaW50ZWxfcG1jX2NvcmVfaXBjKHN0cnVjdCBw bWNfaXBjX2NtZCAqaXBjX2NtZCwgdTMyICpyYnVmKTsKPiA+ICNlbHNlCj4gPiBzdGF0aWMgaW5s aW5lIGludCBpbnRlbF9wbWNfY29yZV9pcGMoc3RydWN0IHBtY19pcGNfY21kICppcGNfY21kLCB1 MzIgKnJidWYpCj4gPiB7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIC1FTk9ERVY7Cj4gPiB9 Cj4gPiAjZW5kaWYgLyogQ09ORklHX0lOVEVMX1BNQ19DT1JFICovCj4gPiAKPiA+IE5vdGljZSB0 aGF0IENPTkZJR19JTlRFTF9QTUNfQ09SRSBpcyBhIHRyaXN0YXRlLCBzbyBwbWMgbWlnaHQgYmUg YnVpbGQgYXMgYQo+ID4gPiBtb2R1bGUgd2hlcmUgYXMgYSBjb25zdW1lciBvZiBpbnRlbF9wbWNf Y29yZV9pcGMoKSBtaWdodCBlbmQgdXAgYnVpbHRpbiBpbgo+ID4gPiB3aGljaCBjYXNlIHRoaXMg d2lsbCBub3Qgd29yayB3aXRob3V0IGV4dHJhIEtjb25maWcgcHJvdGVjdGlvbi4gQW5kIGlmIHlv dQo+ID4gYXJlID4gZ29pbmcgdG8gYWRkIGV4dHJhIEtjb25maWcgeW91IG1pZ2h0IGp1c3QgYXMg d2VsbCBzZWxlY3Qgb3IgZGVwZW5kIG9uCj4gPiA+IElOVEVMX1BNQ19DT1JFIGFuZCBkcm9wIHRo ZSAjaWYgLgoKU3VyZS4gVGhhbmtzLgoKRGF2aWQKCj4gPiAKPiA+IFJlZ2FyZHMsCj4gPiAKPiA+ IEhhbnMKPiA+IAo+ID4gCj4gPiAKPiA+IAo+ID4gCj4gPiAKPiA+ID4gPiAtLS0KPiA+ID4gPiDC oE1BSU5UQUlORVJTwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDEgKwo+ID4gPiA+IMKgZHJpdmVycy9wbGF0Zm9y bS94ODYvaW50ZWwvcG1jL2NvcmUuY8KgwqDCoMKgwqDCoMKgwqAgfCA2MCArKysrKysrKysrKysr KysrKysrCj4gPiA+ID4gwqAuLi4vbGludXgvcGxhdGZvcm1fZGF0YS94ODYvaW50ZWxfcG1jX2Nv cmUuaMKgIHwgNDEgKysrKysrKysrKysrKwo+ID4gPiA+IMKgMyBmaWxlcyBjaGFuZ2VkLCAxMDIg aW5zZXJ0aW9ucygrKQo+ID4gPiA+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbGludXgv cGxhdGZvcm1fZGF0YS94ODYvaW50ZWxfcG1jX2NvcmUuaAo+ID4gPiA+IAo+ID4gPiA+IGRpZmYg LS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCj4gPiA+ID4gaW5kZXggMDY5ZTE3NmQ2 MDdhLi44YTAzNGRlZTlkYTkgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvTUFJTlRBSU5FUlMKPiA+ID4g PiArKysgYi9NQUlOVEFJTkVSUwo+ID4gPiA+IEBAIC0xMDY0OCw2ICsxMDY0OCw3IEBAIEw6wqDC oMKgwqDCoMKgcGxhdGZvcm0tZHJpdmVyLXg4NkB2Z2VyLmtlcm5lbC5vcmcKPiA+ID4gPiDCoFM6 wqDCoMKgwqDCoE1haW50YWluZWQKPiA+ID4gPiDCoEY6wqDCoMKgwqDCoERvY3VtZW50YXRpb24v QUJJL3Rlc3Rpbmcvc3lzZnMtcGxhdGZvcm0taW50ZWwtcG1jCj4gPiA+ID4gwqBGOsKgwqDCoMKg wqBkcml2ZXJzL3BsYXRmb3JtL3g4Ni9pbnRlbC9wbWMvCj4gPiA+ID4gK0Y6wqDCoMKgwqDCoGxp bnV4L3BsYXRmb3JtX2RhdGEveDg2L2ludGVsX3BtY19jb3JlLmgKPiA+ID4gPiDCoAo+ID4gPiA+ IMKgSU5URUwgUE1JQyBHUElPIERSSVZFUlMKPiA+ID4gPiDCoE06wqDCoMKgwqDCoEFuZHkgU2hl dmNoZW5rbyA8YW5keUBrZXJuZWwub3JnPgo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3Bs YXRmb3JtL3g4Ni9pbnRlbC9wbWMvY29yZS5jID4gPgo+ID4gPiA+IGIvZHJpdmVycy9wbGF0Zm9y bS94ODYvaW50ZWwvcG1jL2NvcmUuYwo+ID4gPiA+IGluZGV4IDVhMzZiM2Y3N2JjNS4uNmZiMWIw ZjQ1M2Q4IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvcGxhdGZvcm0veDg2L2ludGVsL3Bt Yy9jb3JlLmMKPiA+ID4gPiArKysgYi9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9pbnRlbC9wbWMvY29y ZS5jCj4gPiA+ID4gQEAgLTIwLDYgKzIwLDcgQEAKPiA+ID4gPiDCoCNpbmNsdWRlIDxsaW51eC9w Y2kuaD4KPiA+ID4gPiDCoCNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4gPiA+ID4gwqAjaW5jbHVk ZSA8bGludXgvc3VzcGVuZC5oPgo+ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0 YS94ODYvaW50ZWxfcG1jX2NvcmUuaD4KPiA+ID4gPiDCoAo+ID4gPiA+IMKgI2luY2x1ZGUgPGFz bS9jcHVfZGV2aWNlX2lkLmg+Cj4gPiA+ID4gwqAjaW5jbHVkZSA8YXNtL2ludGVsLWZhbWlseS5o Pgo+ID4gPiA+IEBAIC0yOCw2ICsyOSw4IEBACj4gPiA+ID4gwqAKPiA+ID4gPiDCoCNpbmNsdWRl ICJjb3JlLmgiCj4gPiA+ID4gwqAKPiA+ID4gPiArI2RlZmluZSBQTUNfSVBDU19QQVJBTV9DT1VO VMKgwqDCoMKgwqDCoMKgwqDCoMKgIDcKPiA+ID4gPiArCj4gPiA+ID4gwqAvKiBNYXhpbXVtIG51 bWJlciBvZiBtb2RlcyBzdXBwb3J0ZWQgYnkgcGxhdGZvbXMgdGhhdCBoYXMgbG93IHBvd2VyCj4g PiA+ID4gbW9kZSA+ID4gY2FwYWJpbGl0eSAqLwo+ID4gPiA+IMKgY29uc3QgY2hhciAqcG1jX2xw bV9tb2Rlc1tdID0gewo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqAiUzBpMi4wIiwKPiA+ID4gPiBA QCAtNTMsNiArNTYsNjMgQEAgY29uc3Qgc3RydWN0IHBtY19iaXRfbWFwIG1zcl9tYXBbXSA9IHsK PiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKge30KPiA+ID4gPiDCoH07Cj4gPiA+ID4gwqAKPiA+ID4g PiAraW50IGludGVsX3BtY19jb3JlX2lwYyhzdHJ1Y3QgcG1jX2lwY19jbWQgKmlwY19jbWQsIHUz MiAqcmJ1ZikKPiA+ID4gPiArewo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBhY3BpX2J1 ZmZlciBidWZmZXIgPSB7IEFDUElfQUxMT0NBVEVfQlVGRkVSLCBOVUxMIH07Cj4gPiA+ID4gK8Kg wqDCoMKgwqDCoMKgdW5pb24gYWNwaV9vYmplY3QgcGFyYW1zW1BNQ19JUENTX1BBUkFNX0NPVU5U XSA9IHsKPiA+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgey50eXBlID0gQUNQ SV9UWVBFX0lOVEVHRVIsfSwKPiA+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ey50eXBlID0gQUNQSV9UWVBFX0lOVEVHRVIsfSwKPiA+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgey50eXBlID0gQUNQSV9UWVBFX0lOVEVHRVIsfSwKPiA+ID4gPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgey50eXBlID0gQUNQSV9UWVBFX0lOVEVHRVIsfSwKPiA+ ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgey50eXBlID0gQUNQSV9UWVBFX0lO VEVHRVIsfSwKPiA+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgey50eXBlID0g QUNQSV9UWVBFX0lOVEVHRVIsfSwKPiA+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgey50eXBlID0gQUNQSV9UWVBFX0lOVEVHRVIsfSwKPiA+ID4gPiArwqDCoMKgwqDCoMKgwqB9 Owo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBhY3BpX29iamVjdF9saXN0IGFyZ19saXN0 ID0geyBQTUNfSVBDU19QQVJBTV9DT1VOVCwKPiA+ID4gPiBwYXJhbXMgfTsKPiA+ID4gPiArwqDC oMKgwqDCoMKgwqB1bmlvbiBhY3BpX29iamVjdCAqb2JqOwo+ID4gPiA+ICvCoMKgwqDCoMKgwqDC oGludCBzdGF0dXM7Cj4gPiA+ID4gKwo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoGlmICghaXBjX2Nt ZCB8fCAhcmJ1ZikKPiA+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJu IC1FSU5WQUw7Cj4gPiA+ID4gKwo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoC8qCj4gPiA+ID4gK8Kg wqDCoMKgwqDCoMKgICogMDogSVBDIENvbW1hbmQKPiA+ID4gPiArwqDCoMKgwqDCoMKgwqAgKiAx OiBJUEMgU3ViIENvbW1hbmQKPiA+ID4gPiArwqDCoMKgwqDCoMKgwqAgKiAyOiBTaXplCj4gPiA+ ID4gK8KgwqDCoMKgwqDCoMKgICogMy02OiBXcml0ZSBCdWZmZXIgZm9yIG9mZnNldAo+ID4gPiA+ ICvCoMKgwqDCoMKgwqDCoCAqLwo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoHBhcmFtc1swXS5pbnRl Z2VyLnZhbHVlID0gaXBjX2NtZC0+Y21kOwo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoHBhcmFtc1sx XS5pbnRlZ2VyLnZhbHVlID0gaXBjX2NtZC0+c3ViX2NtZDsKPiA+ID4gPiArwqDCoMKgwqDCoMKg wqBwYXJhbXNbMl0uaW50ZWdlci52YWx1ZSA9IGlwY19jbWQtPnNpemU7Cj4gPiA+ID4gK8KgwqDC oMKgwqDCoMKgcGFyYW1zWzNdLmludGVnZXIudmFsdWUgPSBpcGNfY21kLT53YnVmWzBdOwo+ID4g PiA+ICvCoMKgwqDCoMKgwqDCoHBhcmFtc1s0XS5pbnRlZ2VyLnZhbHVlID0gaXBjX2NtZC0+d2J1 ZlsxXTsKPiA+ID4gPiArwqDCoMKgwqDCoMKgwqBwYXJhbXNbNV0uaW50ZWdlci52YWx1ZSA9IGlw Y19jbWQtPndidWZbMl07Cj4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgcGFyYW1zWzZdLmludGVnZXIu dmFsdWUgPSBpcGNfY21kLT53YnVmWzNdOwo+ID4gPiA+ICsKPiA+ID4gPiArwqDCoMKgwqDCoMKg wqBzdGF0dXMgPSBhY3BpX2V2YWx1YXRlX29iamVjdChOVUxMLCAiXFxJUENTIiwgJmFyZ19saXN0 LAo+ID4gPiA+ICZidWZmZXIpOwo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoGlmIChBQ1BJX0ZBSUxV UkUoc3RhdHVzKSkKPiA+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJu IC1FTk9ERVY7Cj4gPiA+ID4gKwo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoG9iaiA9IGJ1ZmZlci5w b2ludGVyOwo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoC8qIENoZWNrIGlmIHRoZSBudW1iZXIgb2Yg ZWxlbWVudHMgaW4gcGFja2FnZSBpcyA1ICovCj4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgaWYgKG9i aiAmJiBvYmotPnR5cGUgPT0gQUNQSV9UWVBFX1BBQ0tBR0UgJiYgb2JqLT5wYWNrYWdlLmNvdW50 Cj4gPiA+ID4gPT0gPiA+IDUpIHsKPiA+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgY29uc3QgdW5pb24gYWNwaV9vYmplY3QgKm9ianMgPSBvYmotPnBhY2thZ2UuZWxlbWVudHM7 Cj4gPiA+ID4gKwo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoKHU4 KW9ianNbMF0uaW50ZWdlci52YWx1ZSAhPSAwKQo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIC1FSU5WQUw7Cj4gPiA+ID4gKwo+ID4g PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByYnVmWzBdID0gb2Jqc1sxXS5pbnRl Z2VyLnZhbHVlOwo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByYnVmWzFd ID0gb2Jqc1syXS5pbnRlZ2VyLnZhbHVlOwo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqByYnVmWzJdID0gb2Jqc1szXS5pbnRlZ2VyLnZhbHVlOwo+ID4gPiA+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByYnVmWzNdID0gb2Jqc1s0XS5pbnRlZ2VyLnZhbHVlOwo+ ID4gPiA+ICvCoMKgwqDCoMKgwqDCoH0gZWxzZSB7Cj4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHJldHVybiAtRUlOVkFMOwo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoH0KPiA+ ID4gPiArCj4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIDA7Cj4gPiA+ID4gK30KPiA+ID4g PiArRVhQT1JUX1NZTUJPTChpbnRlbF9wbWNfY29yZV9pcGMpOwo+ID4gPiA+ICsKPiA+ID4gPiDC oHN0YXRpYyBpbmxpbmUgdTMyIHBtY19jb3JlX3JlZ19yZWFkKHN0cnVjdCBwbWMgKnBtYywgaW50 IHJlZ19vZmZzZXQpCj4gPiA+ID4gwqB7Cj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoHJldHVybiBy ZWFkbChwbWMtPnJlZ2Jhc2UgKyByZWdfb2Zmc2V0KTsKPiA+ID4gPiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9saW51eC9wbGF0Zm9ybV9kYXRhL3g4Ni9pbnRlbF9wbWNfY29yZS5oID4gPgo+ID4gPiA+ IGIvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kYXRhL3g4Ni9pbnRlbF9wbWNfY29yZS5oCj4gPiA+ ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+ID4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjliYjMz OTRmZWRjZgo+ID4gPiA+IC0tLSAvZGV2L251bGwKPiA+ID4gPiArKysgYi9pbmNsdWRlL2xpbnV4 L3BsYXRmb3JtX2RhdGEveDg2L2ludGVsX3BtY19jb3JlLmgKPiA+ID4gPiBAQCAtMCwwICsxLDQx IEBACj4gPiA+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCj4gPiA+ ID4gKy8qCj4gPiA+ID4gKyAqIEludGVsIENvcmUgU29DIFBvd2VyIE1hbmFnZW1lbnQgQ29udHJv bGxlciBIZWFkZXIgRmlsZQo+ID4gPiA+ICsgKgo+ID4gPiA+ICsgKiBDb3B5cmlnaHQgKGMpIDIw MjMsIEludGVsIENvcnBvcmF0aW9uLgo+ID4gPiA+ICsgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgo+ ID4gPiA+ICsgKgo+ID4gPiA+ICsgKiBBdXRob3JzOiBDaG9vbmcgWW9uZyBMaWFuZyA8eW9uZy5s aWFuZy5jaG9vbmdAbGludXguaW50ZWwuY29tPgo+ID4gPiA+ICsgKsKgwqDCoMKgwqDCoMKgwqDC oCBEYXZpZCBFLiBCb3ggPGRhdmlkLmUuYm94QGxpbnV4LmludGVsLmNvbT4KPiA+ID4gPiArICov Cj4gPiA+ID4gKyNpZm5kZWYgSU5URUxfUE1DX0NPUkVfSAo+ID4gPiA+ICsjZGVmaW5lIElOVEVM X1BNQ19DT1JFX0gKPiA+ID4gPiArCj4gPiA+ID4gKyNkZWZpbmUgSVBDX1NPQ19SRUdJU1RFUl9B Q0NFU1PCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAweEFB Cj4gPiA+ID4gKyNkZWZpbmUgSVBDX1NPQ19TVUJfQ01EX1JFQUTCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoDB4MDAKPiA+ID4gPiArI2RlZmluZSBJUENfU09DX1NVQl9DTURf V1JJVEXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAweDAxCj4gPiA+ID4gKwo+ ID4gPiA+ICtzdHJ1Y3QgcG1jX2lwY19jbWQgewo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoHUzMiBj bWQ7Cj4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgdTMyIHN1Yl9jbWQ7Cj4gPiA+ID4gK8KgwqDCoMKg wqDCoMKgdTMyIHNpemU7Cj4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgdTMyIHdidWZbNF07Cj4gPiA+ ID4gK307Cj4gPiA+ID4gKwo+ID4gPiA+ICsjaWYgSVNfRU5BQkxFRChDT05GSUdfSU5URUxfUE1D X0NPUkUpCj4gPiA+ID4gKy8qKgo+ID4gPiA+ICsgKiBpbnRlbF9wbWNfY29yZV9pcGMoKSAtIFBN QyBJUEMgTWFpbGJveCBhY2Nlc3Nvcgo+ID4gPiA+ICsgKiBAaXBjX2NtZDrCoCBzdHJ1Y3QgcG1j X2lwY19jbWQgcHJlcGFyZWQgd2l0aCBpbnB1dCB0byBzZW5kCj4gPiA+ID4gKyAqIEByYnVmOsKg wqDCoMKgIEFsbG9jYXRlZCB1MzJbNF0gYXJyYXkgZm9yIHJldHVybmVkIElQQyBkYXRhCj4gPiA+ ID4gKyAqCj4gPiA+ID4gKyAqIFJldHVybjogMCBvbiBzdWNjZXNzLiBOb24temVybyBvbiBtYWls Ym94IGVycm9yCj4gPiA+ID4gKyAqLwo+ID4gPiA+ICtpbnQgaW50ZWxfcG1jX2NvcmVfaXBjKHN0 cnVjdCBwbWNfaXBjX2NtZCAqaXBjX2NtZCwgdTMyICpyYnVmKTsKPiA+ID4gPiArI2Vsc2UKPiA+ ID4gPiArc3RhdGljIGlubGluZSBpbnQgaW50ZWxfcG1jX2NvcmVfaXBjKHN0cnVjdCBwbWNfaXBj X2NtZCAqaXBjX2NtZCwgdTMyID4KPiA+ID4gPiA+ICpyYnVmKQo+ID4gPiA+ICt7Cj4gPiA+ID4g K8KgwqDCoMKgwqDCoMKgcmV0dXJuIC1FTk9ERVY7Cj4gPiA+ID4gK30KPiA+ID4gPiArI2VuZGlm IC8qIENPTkZJR19JTlRFTF9QTUNfQ09SRSAqLwo+ID4gPiA+ICsKPiA+ID4gPiArI2VuZGlmIC8q IElOVEVMX1BNQ19DT1JFX0ggKi8KPiA+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFy bS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK