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 X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2B11FC4708A for ; Wed, 26 May 2021 06:25:33 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E5F9A613C9 for ; Wed, 26 May 2021 06:25:32 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E5F9A613C9 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DF7BB6EC13; Wed, 26 May 2021 06:24:56 +0000 (UTC) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4E3756E48D; Wed, 26 May 2021 06:24:50 +0000 (UTC) IronPort-SDR: JPTRwiuIt2OCFMGGkqxd2sqLI+9zOEtK2Zo5tW77vS9b5KEYW74ct8wgXb1j5BP7MzQyffv0un gg9qN1C/CTxw== X-IronPort-AV: E=McAfee;i="6200,9189,9995"; a="182033735" X-IronPort-AV: E=Sophos;i="5.82,330,1613462400"; d="scan'208";a="182033735" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 May 2021 23:24:48 -0700 IronPort-SDR: Ernp3+LNl9+1xJyjfz98YOgWx845RnnENDaRWv38OYpX18pgFZPiqe5fQ19UiW+m7mIB9rHbBv VoBuRJmGmwLQ== X-IronPort-AV: E=Sophos;i="5.82,330,1613462400"; d="scan'208";a="633376797" Received: from dhiatt-server.jf.intel.com ([10.54.81.3]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 May 2021 23:24:48 -0700 From: Matthew Brost To: , Date: Tue, 25 May 2021 23:42:24 -0700 Message-Id: <20210526064237.77853-6-matthew.brost@intel.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20210526064237.77853-1-matthew.brost@intel.com> References: <20210526064237.77853-1-matthew.brost@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 05/18] drm/i915/guc: Keep strict GuC ABI definitions X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogTWljaGFsIFdhamRlY3prbyA8bWljaGFsLndhamRlY3prb0BpbnRlbC5jb20+CgpPdXIg ZndpZi5oIGZpbGUgaXMgbm93IG1peCBvZiBzdHJpY3QgZmlybXdhcmUgQUJJIGRlZmluaXRpb25z IGFuZApzZXQgb2Ygb3VyIGhlbHBlcnMuIEluIGFudGljaXBhdGlvbiBvZiB1cGNvbWluZyBjaGFu Z2VzIHRvIHRoZSBHdUMKaW50ZXJmYWNlIHRyeSB0byBrZWVwIHRoZW0gc2VwYXJhdGUgaW4gc21h bGxlciBtYWludGFpbmFibGUgZmlsZXMuCgpTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgV2FqZGVjemtv IDxtaWNoYWwud2FqZGVjemtvQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWF0dGhldyBCcm9z dCA8bWF0dGhldy5icm9zdEBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBNaWNoYcWCIFdpbmlhcnNr aSA8bWljaGFsLndpbmlhcnNraUBpbnRlbC5jb20+Ci0tLQogLi4uL2dwdS9kcm0vaTkxNS9ndC91 Yy9hYmkvZ3VjX2FjdGlvbnNfYWJpLmggIHwgIDUxICsrKysrCiAuLi4vZ3QvdWMvYWJpL2d1Y19j b21tdW5pY2F0aW9uX2N0Yl9hYmkuaCAgICAgfCAxMDYgKysrKysrKysrCiAuLi4vZ3QvdWMvYWJp L2d1Y19jb21tdW5pY2F0aW9uX21taW9fYWJpLmggICAgfCAgNTIgKysrKysKIC4uLi9ncHUvZHJt L2k5MTUvZ3QvdWMvYWJpL2d1Y19lcnJvcnNfYWJpLmggICB8ICAxNCArKwogLi4uL2dwdS9kcm0v aTkxNS9ndC91Yy9hYmkvZ3VjX21lc3NhZ2VzX2FiaS5oIHwgIDIxICsrCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfZndpZi5oICAgfCAyMDMgKy0tLS0tLS0tLS0tLS0tLS0t CiA2IGZpbGVzIGNoYW5nZWQsIDI1MCBpbnNlcnRpb25zKCspLCAxOTcgZGVsZXRpb25zKC0pCiBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvYWJpL2d1Y19hY3Rp b25zX2FiaS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMv YWJpL2d1Y19jb21tdW5pY2F0aW9uX2N0Yl9hYmkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L3VjL2FiaS9ndWNfY29tbXVuaWNhdGlvbl9tbWlvX2FiaS5oCiBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvYWJpL2d1Y19lcnJv cnNfYWJpLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9h YmkvZ3VjX21lc3NhZ2VzX2FiaS5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvdWMvYWJpL2d1Y19hY3Rpb25zX2FiaS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMv YWJpL2d1Y19hY3Rpb25zX2FiaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uOTBlZmVmOGE3M2U0Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvdWMvYWJpL2d1Y19hY3Rpb25zX2FiaS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNC0yMDIx IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfQUJJX0dVQ19BQ1RJT05TX0FCSV9I CisjZGVmaW5lIF9BQklfR1VDX0FDVElPTlNfQUJJX0gKKworZW51bSBpbnRlbF9ndWNfYWN0aW9u IHsKKwlJTlRFTF9HVUNfQUNUSU9OX0RFRkFVTFQgPSAweDAsCisJSU5URUxfR1VDX0FDVElPTl9S RVFVRVNUX1BSRUVNUFRJT04gPSAweDIsCisJSU5URUxfR1VDX0FDVElPTl9SRVFVRVNUX0VOR0lO RV9SRVNFVCA9IDB4MywKKwlJTlRFTF9HVUNfQUNUSU9OX0FMTE9DQVRFX0RPT1JCRUxMID0gMHgx MCwKKwlJTlRFTF9HVUNfQUNUSU9OX0RFQUxMT0NBVEVfRE9PUkJFTEwgPSAweDIwLAorCUlOVEVM X0dVQ19BQ1RJT05fTE9HX0JVRkZFUl9GSUxFX0ZMVVNIX0NPTVBMRVRFID0gMHgzMCwKKwlJTlRF TF9HVUNfQUNUSU9OX1VLX0xPR19FTkFCTEVfTE9HR0lORyA9IDB4NDAsCisJSU5URUxfR1VDX0FD VElPTl9GT1JDRV9MT0dfQlVGRkVSX0ZMVVNIID0gMHgzMDIsCisJSU5URUxfR1VDX0FDVElPTl9F TlRFUl9TX1NUQVRFID0gMHg1MDEsCisJSU5URUxfR1VDX0FDVElPTl9FWElUX1NfU1RBVEUgPSAw eDUwMiwKKwlJTlRFTF9HVUNfQUNUSU9OX1NMUENfUkVRVUVTVCA9IDB4MzAwMywKKwlJTlRFTF9H VUNfQUNUSU9OX0FVVEhFTlRJQ0FURV9IVUMgPSAweDQwMDAsCisJSU5URUxfR1VDX0FDVElPTl9S RUdJU1RFUl9DT01NQU5EX1RSQU5TUE9SVF9CVUZGRVIgPSAweDQ1MDUsCisJSU5URUxfR1VDX0FD VElPTl9ERVJFR0lTVEVSX0NPTU1BTkRfVFJBTlNQT1JUX0JVRkZFUiA9IDB4NDUwNiwKKwlJTlRF TF9HVUNfQUNUSU9OX0xJTUlUCit9OworCitlbnVtIGludGVsX2d1Y19wcmVlbXB0X29wdGlvbnMg eworCUlOVEVMX0dVQ19QUkVFTVBUX09QVElPTl9EUk9QX1dPUktfUSA9IDB4NCwKKwlJTlRFTF9H VUNfUFJFRU1QVF9PUFRJT05fRFJPUF9TVUJNSVRfUSA9IDB4OCwKK307CisKK2VudW0gaW50ZWxf Z3VjX3JlcG9ydF9zdGF0dXMgeworCUlOVEVMX0dVQ19SRVBPUlRfU1RBVFVTX1VOS05PV04gPSAw eDAsCisJSU5URUxfR1VDX1JFUE9SVF9TVEFUVVNfQUNLRUQgPSAweDEsCisJSU5URUxfR1VDX1JF UE9SVF9TVEFUVVNfRVJST1IgPSAweDIsCisJSU5URUxfR1VDX1JFUE9SVF9TVEFUVVNfQ09NUExF VEUgPSAweDQsCit9OworCitlbnVtIGludGVsX2d1Y19zbGVlcF9zdGF0ZV9zdGF0dXMgeworCUlO VEVMX0dVQ19TTEVFUF9TVEFURV9TVUNDRVNTID0gMHgxLAorCUlOVEVMX0dVQ19TTEVFUF9TVEFU RV9QUkVFTVBUX1RPX0lETEVfRkFJTEVEID0gMHgyLAorCUlOVEVMX0dVQ19TTEVFUF9TVEFURV9F TkdJTkVfUkVTRVRfRkFJTEVEID0gMHgzCisjZGVmaW5lIElOVEVMX0dVQ19TTEVFUF9TVEFURV9J TlZBTElEX01BU0sgMHg4MDAwMDAwMAorfTsKKworI2RlZmluZSBHVUNfTE9HX0NPTlRST0xfTE9H R0lOR19FTkFCTEVECSgxIDw8IDApCisjZGVmaW5lIEdVQ19MT0dfQ09OVFJPTF9WRVJCT1NJVFlf U0hJRlQJNAorI2RlZmluZSBHVUNfTE9HX0NPTlRST0xfVkVSQk9TSVRZX01BU0sJKDB4RiA8PCBH VUNfTE9HX0NPTlRST0xfVkVSQk9TSVRZX1NISUZUKQorI2RlZmluZSBHVUNfTE9HX0NPTlRST0xf REVGQVVMVF9MT0dHSU5HCSgxIDw8IDgpCisKKyNlbmRpZiAvKiBfQUJJX0dVQ19BQ1RJT05TX0FC SV9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9hYmkvZ3VjX2Nv bW11bmljYXRpb25fY3RiX2FiaS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvYWJpL2d1 Y19jb21tdW5pY2F0aW9uX2N0Yl9hYmkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLmViZDhjM2UwZTRiYgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3VjL2FiaS9ndWNfY29tbXVuaWNhdGlvbl9jdGJfYWJpLmgKQEAgLTAsMCArMSwx MDYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmln aHQgwqkgMjAxNC0yMDIxIEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfQUJJX0dV Q19DT01NVU5JQ0FUSU9OX0NUQl9BQklfSAorI2RlZmluZSBfQUJJX0dVQ19DT01NVU5JQ0FUSU9O X0NUQl9BQklfSAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworLyoqCisgKiBET0M6IENU QiBiYXNlZCBjb21tdW5pY2F0aW9uCisgKgorICogVGhlIENUQiAoY29tbWFuZCB0cmFuc3BvcnQg YnVmZmVyKSBjb21tdW5pY2F0aW9uIGJldHdlZW4gSG9zdCBhbmQgR3VDCisgKiBpcyBiYXNlZCBv biB1MzIgZGF0YSBzdHJlYW0gd3JpdHRlbiB0byB0aGUgc2hhcmVkIGJ1ZmZlci4gT25lIGJ1ZmZl ciBjYW4KKyAqIGJlIHVzZWQgdG8gdHJhbnNtaXQgZGF0YSBvbmx5IGluIG9uZSBkaXJlY3Rpb24g KG9uZS1kaXJlY3Rpb25hbCBjaGFubmVsKS4KKyAqCisgKiBDdXJyZW50IHN0YXR1cyBvZiB0aGUg ZWFjaCBidWZmZXIgaXMgc3RvcmVkIGluIHRoZSBidWZmZXIgZGVzY3JpcHRvci4KKyAqIEJ1ZmZl ciBkZXNjcmlwdG9yIGhvbGRzIHRhaWwgYW5kIGhlYWQgZmllbGRzIHRoYXQgcmVwcmVzZW50cyBh Y3RpdmUgZGF0YQorICogc3RyZWFtLiBUaGUgdGFpbCBmaWVsZCBpcyB1cGRhdGVkIGJ5IHRoZSBk YXRhIHByb2R1Y2VyIChzZW5kZXIpLCBhbmQgaGVhZAorICogZmllbGQgaXMgdXBkYXRlZCBieSB0 aGUgZGF0YSBjb25zdW1lciAocmVjZWl2ZXIpOjoKKyAqCisgKiAgICAgICstLS0tLS0tLS0tLS0r CisgKiAgICAgIHwgREVTQ1JJUFRPUiB8ICAgICAgICAgICs9PT09PT09PT09PT09PT09PSs9PT09 PT09PT09PT0rPT09PT09PT0rCisgKiAgICAgICs9PT09PT09PT09PT0rICAgICAgICAgIHwgICAg ICAgICAgICAgICAgIHwgTUVTU0FHRShzKSB8ICAgICAgICB8CisgKiAgICAgIHwgYWRkcmVzcyAg ICB8LS0tLS0tLS0tPis9PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT0rPT09PT09PT0rCisg KiAgICAgICstLS0tLS0tLS0tLS0rCisgKiAgICAgIHwgaGVhZCAgICAgICB8ICAgICAgICAgIF4t LS0tLWhlYWQtLS0tLS0tLV4KKyAqICAgICAgKy0tLS0tLS0tLS0tLSsKKyAqICAgICAgfCB0YWls ICAgICAgIHwgICAgICAgICAgXi0tLS0tLS0tLXRhaWwtLS0tLS0tLS0tLS0tLS0tLV4KKyAqICAg ICAgKy0tLS0tLS0tLS0tLSsKKyAqICAgICAgfCBzaXplICAgICAgIHwgICAgICAgICAgXi0tLS0t LS0tLS0tLS0tLXNpemUtLS0tLS0tLS0tLS0tLS0tLS0tLV4KKyAqICAgICAgKy0tLS0tLS0tLS0t LSsKKyAqCisgKiBFYWNoIG1lc3NhZ2UgaW4gZGF0YSBzdHJlYW0gc3RhcnRzIHdpdGggdGhlIHNp bmdsZSB1MzIgdHJlYXRlZCBhcyBhIGhlYWRlciwKKyAqIGZvbGxvd2VkIGJ5IG9wdGlvbmFsIHNl dCBvZiB1MzIgZGF0YSB0aGF0IG1ha2VzIG1lc3NhZ2Ugc3BlY2lmaWMgcGF5bG9hZDo6CisgKgor ICogICAgICArLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKworICog ICAgICB8ICAgICAgICAgTUVTU0FHRSAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogICAg ICArLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKworICogICAgICB8 ICAgbXNnWzBdICAgfCAgIFsxXSAgIHwgICAuLi4gICB8ICBbbi0xXSAgfAorICogICAgICArLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKworICogICAgICB8ICAgTUVT U0FHRSAgfCAgICAgICBNRVNTQUdFIFBBWUxPQUQgICAgICAgfAorICogICAgICArICAgSEVBREVS ICAgKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKworICogICAgICB8ICAgICAgICAgICAg fCAgICAwICAgIHwgICAuLi4gICB8ICAgIG4gICAgfAorICogICAgICArPT09PT09Kz09PT09Kz09 PT09PT09PSs9PT09PT09PT0rPT09PT09PT09KworICogICAgICB8IDMxOjE2fCBjb2RlfCAgICAg ICAgIHwgICAgICAgICB8ICAgICAgICAgfAorICogICAgICArLS0tLS0tKy0tLS0tKyAgICAgICAg IHwgICAgICAgICB8ICAgICAgICAgfAorICogICAgICB8ICAxNTo1fGZsYWdzfCAgICAgICAgIHwg ICAgICAgICB8ICAgICAgICAgfAorICogICAgICArLS0tLS0tKy0tLS0tKyAgICAgICAgIHwgICAg ICAgICB8ICAgICAgICAgfAorICogICAgICB8ICAgNDowfCAgbGVufCAgICAgICAgIHwgICAgICAg ICB8ICAgICAgICAgfAorICogICAgICArLS0tLS0tKy0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKworICoKKyAqICAgICAgICAgICAgICAgICAgIF4tLS0tLS0tLS0tLS0tbGVuLS0t LS0tLS0tLS0tLV4KKyAqCisgKiBUaGUgbWVzc2FnZSBoZWFkZXIgY29uc2lzdHMgb2Y6CisgKgor ICogLSAqKmxlbioqLCBpbmRpY2F0ZXMgbGVuZ3RoIG9mIHRoZSBtZXNzYWdlIHBheWxvYWQgKGlu IHUzMikKKyAqIC0gKipjb2RlKiosIGluZGljYXRlcyBtZXNzYWdlIGNvZGUKKyAqIC0gKipmbGFn cyoqLCBob2xkcyB2YXJpb3VzIGJpdHMgdG8gY29udHJvbCBtZXNzYWdlIGhhbmRsaW5nCisgKi8K KworLyoKKyAqIERlc2NyaWJlcyBzaW5nbGUgY29tbWFuZCB0cmFuc3BvcnQgYnVmZmVyLgorICog VXNlZCBieSBib3RoIGd1Yy1tYXN0ZXIgYW5kIGNsaWVudHMuCisgKi8KK3N0cnVjdCBndWNfY3Rf YnVmZmVyX2Rlc2MgeworCXUzMiBhZGRyOwkJLyogZ2Z4IGFkZHJlc3MgKi8KKwl1NjQgaG9zdF9w cml2YXRlOwkvKiBob3N0IHByaXZhdGUgZGF0YSAqLworCXUzMiBzaXplOwkJLyogc2l6ZSBpbiBi eXRlcyAqLworCXUzMiBoZWFkOwkJLyogb2Zmc2V0IHVwZGF0ZWQgYnkgR3VDKi8KKwl1MzIgdGFp bDsJCS8qIG9mZnNldCB1cGRhdGVkIGJ5IG93bmVyICovCisJdTMyIGlzX2luX2Vycm9yOwkvKiBl cnJvciBpbmRpY2F0b3IgKi8KKwl1MzIgZmVuY2U7CQkvKiBmZW5jZSB1cGRhdGVkIGJ5IEd1QyAq LworCXUzMiBzdGF0dXM7CQkvKiBzdGF0dXMgdXBkYXRlZCBieSBHdUMgKi8KKwl1MzIgb3duZXI7 CQkvKiBpZCBvZiB0aGUgY2hhbm5lbCBvd25lciAqLworCXUzMiBvd25lcl9zdWJfaWQ7CS8qIG93 bmVyLWRlZmluZWQgZmllbGQgZm9yIGV4dHJhIHRyYWNraW5nICovCisJdTMyIHJlc2VydmVkWzVd OworfSBfX3BhY2tlZDsKKworLyogVHlwZSBvZiBjb21tYW5kIHRyYW5zcG9ydCBidWZmZXIgKi8K KyNkZWZpbmUgSU5URUxfR1VDX0NUX0JVRkZFUl9UWVBFX1NFTkQJMHgwdQorI2RlZmluZSBJTlRF TF9HVUNfQ1RfQlVGRkVSX1RZUEVfUkVDVgkweDF1CisKKy8qCisgKiBEZWZpbml0aW9uIG9mIHRo ZSBjb21tYW5kIHRyYW5zcG9ydCBtZXNzYWdlIGhlYWRlciAoRFcwKQorICoKKyAqIGJpdFs0Li4w XQltZXNzYWdlIGxlbiAoaW4gZHdvcmRzKQorICogYml0WzcuLjVdCXJlc2VydmVkCisgKiBiaXRb OF0JcmVzcG9uc2UgKEcySCBvbmx5KQorICogYml0WzhdCXdyaXRlIGZlbmNlIHRvIGRlc2MgKEgy RyBvbmx5KQorICogYml0WzldCXdyaXRlIHN0YXR1cyB0byBIMkcgYnVmZiAoSDJHIG9ubHkpCisg KiBiaXRbMTBdCXNlbmQgc3RhdHVzIGJhY2sgdmlhIEcySCAoSDJHIG9ubHkpCisgKiBiaXRbMTUu LjExXQlyZXNlcnZlZAorICogYml0WzMxLi4xNl0JYWN0aW9uIGNvZGUKKyAqLworI2RlZmluZSBH VUNfQ1RfTVNHX0xFTl9TSElGVAkJCTAKKyNkZWZpbmUgR1VDX0NUX01TR19MRU5fTUFTSwkJCTB4 MUYKKyNkZWZpbmUgR1VDX0NUX01TR19JU19SRVNQT05TRQkJCSgxIDw8IDgpCisjZGVmaW5lIEdV Q19DVF9NU0dfV1JJVEVfRkVOQ0VfVE9fREVTQwkJKDEgPDwgOCkKKyNkZWZpbmUgR1VDX0NUX01T R19XUklURV9TVEFUVVNfVE9fQlVGRgkJKDEgPDwgOSkKKyNkZWZpbmUgR1VDX0NUX01TR19TRU5E X1NUQVRVUwkJCSgxIDw8IDEwKQorI2RlZmluZSBHVUNfQ1RfTVNHX0FDVElPTl9TSElGVAkJCTE2 CisjZGVmaW5lIEdVQ19DVF9NU0dfQUNUSU9OX01BU0sJCQkweEZGRkYKKworI2VuZGlmIC8qIF9B QklfR1VDX0NPTU1VTklDQVRJT05fQ1RCX0FCSV9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC91Yy9hYmkvZ3VjX2NvbW11bmljYXRpb25fbW1pb19hYmkuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L3VjL2FiaS9ndWNfY29tbXVuaWNhdGlvbl9tbWlvX2FiaS5oCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmUwNjZhNjJlOWUwCi0tLSAv ZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvYWJpL2d1Y19jb21tdW5p Y2F0aW9uX21taW9fYWJpLmgKQEAgLTAsMCArMSw1MiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDE0LTIwMjEgSW50ZWwgQ29ycG9y YXRpb24KKyAqLworCisjaWZuZGVmIF9BQklfR1VDX0NPTU1VTklDQVRJT05fTU1JT19BQklfSAor I2RlZmluZSBfQUJJX0dVQ19DT01NVU5JQ0FUSU9OX01NSU9fQUJJX0gKKworLyoqCisgKiBET0M6 IE1NSU8gYmFzZWQgY29tbXVuaWNhdGlvbgorICoKKyAqIFRoZSBNTUlPIGJhc2VkIGNvbW11bmlj YXRpb24gYmV0d2VlbiBIb3N0IGFuZCBHdUMgdXNlcyBzb2Z0d2FyZSBzY3JhdGNoCisgKiByZWdp c3RlcnMsIHdoZXJlIGZpcnN0IHJlZ2lzdGVyIGhvbGRzIGRhdGEgdHJlYXRlZCBhcyBtZXNzYWdl IGhlYWRlciwKKyAqIGFuZCBvdGhlciByZWdpc3RlcnMgYXJlIHVzZWQgdG8gaG9sZCBtZXNzYWdl IHBheWxvYWQuCisgKgorICogRm9yIEdlbjkrLCBHdUMgdXNlcyBzb2Z0d2FyZSBzY3JhdGNoIHJl Z2lzdGVycyAweEMxODAtMHhDMUI4LAorICogYnV0IG5vIEgyRyBjb21tYW5kIHRha2VzIG1vcmUg dGhhbiA4IHBhcmFtZXRlcnMgYW5kIHRoZSBHdUMgRlcKKyAqIGl0c2VsZiB1c2VzIGFuIDgtZWxl bWVudCBhcnJheSB0byBzdG9yZSB0aGUgSDJHIG1lc3NhZ2UuCisgKgorICogICAgICArLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rCisgKiAgICAgIHwgIE1NSU9bMF0g IHwgTU1JT1sxXSB8ICAgLi4uICAgfCBNTUlPW25dIHwKKyAqICAgICAgKy0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKworICogICAgICB8IGhlYWRlciAgICB8ICAgICAg b3B0aW9uYWwgcGF5bG9hZCAgICAgICB8CisgKiAgICAgICs9PT09PT0rPT09PSs9PT09PT09PT0r PT09PT09PT09Kz09PT09PT09PSsKKyAqICAgICAgfCAzMToyOHx0eXBlfCAgICAgICAgIHwgICAg ICAgICB8ICAgICAgICAgfAorICogICAgICArLS0tLS0tKy0tLS0rICAgICAgICAgfCAgICAgICAg IHwgICAgICAgICB8CisgKiAgICAgIHwgMjc6MTZ8ZGF0YXwgICAgICAgICB8ICAgICAgICAgfCAg ICAgICAgIHwKKyAqICAgICAgKy0tLS0tLSstLS0tKyAgICAgICAgIHwgICAgICAgICB8ICAgICAg ICAgfAorICogICAgICB8ICAxNTowfGNvZGV8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8 CisgKiAgICAgICstLS0tLS0rLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKKyAq CisgKiBUaGUgbWVzc2FnZSBoZWFkZXIgY29uc2lzdHMgb2Y6CisgKgorICogLSAqKnR5cGUqKiwg aW5kaWNhdGVzIG1lc3NhZ2UgdHlwZQorICogLSAqKmNvZGUqKiwgaW5kaWNhdGVzIG1lc3NhZ2Ug Y29kZSwgaXMgc3BlY2lmaWMgZm9yICoqdHlwZSoqCisgKiAtICoqZGF0YSoqLCBpbmRpY2F0ZXMg bWVzc2FnZSBkYXRhLCBvcHRpb25hbCwgZGVwZW5kcyBvbiAqKmNvZGUqKgorICoKKyAqIFRoZSBm b2xsb3dpbmcgbWVzc2FnZSAqKnR5cGVzKiogYXJlIHN1cHBvcnRlZDoKKyAqCisgKiAtICoqUkVR VUVTVCoqLCBpbmRpY2F0ZXMgSG9zdC10by1HdUMgcmVxdWVzdCwgcmVxdWVzdGVkIEd1QyBhY3Rp b24gY29kZQorICogICBtdXN0IGJlIHByaW92aWRlZCBpbiAqKmNvZGUqKiBmaWVsZC4gT3B0aW9u YWwgYWN0aW9uIHNwZWNpZmljIHBhcmFtZXRlcnMKKyAqICAgY2FuIGJlIHByb3ZpZGVkIGluIHJl bWFpbmluZyBwYXlsb2FkIHJlZ2lzdGVycyBvciAqKmRhdGEqKiBmaWVsZC4KKyAqCisgKiAtICoq UkVTUE9OU0UqKiwgaW5kaWNhdGVzIEd1Qy10by1Ib3N0IHJlc3BvbnNlIGZyb20gZWFybGllciBH dUMgcmVxdWVzdCwKKyAqICAgYWN0aW9uIHJlc3BvbnNlIHN0YXR1cyB3aWxsIGJlIHByb3ZpZGVk IGluICoqY29kZSoqIGZpZWxkLiBPcHRpb25hbAorICogICByZXNwb25zZSBkYXRhIGNhbiBiZSBy ZXR1cm5lZCBpbiByZW1haW5pbmcgcGF5bG9hZCByZWdpc3RlcnMgb3IgKipkYXRhKioKKyAqICAg ZmllbGQuCisgKi8KKworI2RlZmluZSBHVUNfTUFYX01NSU9fTVNHX0xFTgkJOAorCisjZW5kaWYg LyogX0FCSV9HVUNfQ09NTVVOSUNBVElPTl9NTUlPX0FCSV9IICovCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9hYmkvZ3VjX2Vycm9yc19hYmkuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L3VjL2FiaS9ndWNfZXJyb3JzX2FiaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uNDg4YjYwNjFlZTg5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvYWJpL2d1Y19lcnJvcnNfYWJpLmgKQEAgLTAsMCArMSwx NCBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLworLyoKKyAqIENvcHlyaWdo dCDCqSAyMDE0LTIwMjEgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9BQklfR1VD X0VSUk9SU19BQklfSAorI2RlZmluZSBfQUJJX0dVQ19FUlJPUlNfQUJJX0gKKworZW51bSBpbnRl bF9ndWNfcmVzcG9uc2Vfc3RhdHVzIHsKKwlJTlRFTF9HVUNfUkVTUE9OU0VfU1RBVFVTX1NVQ0NF U1MgPSAweDAsCisJSU5URUxfR1VDX1JFU1BPTlNFX1NUQVRVU19HRU5FUklDX0ZBSUwgPSAweEYw MDAsCit9OworCisjZW5kaWYgLyogX0FCSV9HVUNfRVJST1JTX0FCSV9IICovCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9hYmkvZ3VjX21lc3NhZ2VzX2FiaS5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvYWJpL2d1Y19tZXNzYWdlc19hYmkuaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjc3NWUyMWYzMDU4YwotLS0gL2Rldi9udWxs CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2FiaS9ndWNfbWVzc2FnZXNfYWJpLmgK QEAgLTAsMCArMSwyMSBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLworLyoK KyAqIENvcHlyaWdodCDCqSAyMDE0LTIwMjEgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZu ZGVmIF9BQklfR1VDX01FU1NBR0VTX0FCSV9ICisjZGVmaW5lIF9BQklfR1VDX01FU1NBR0VTX0FC SV9ICisKKyNkZWZpbmUgSU5URUxfR1VDX01TR19UWVBFX1NISUZUCTI4CisjZGVmaW5lIElOVEVM X0dVQ19NU0dfVFlQRV9NQVNLCQkoMHhGIDw8IElOVEVMX0dVQ19NU0dfVFlQRV9TSElGVCkKKyNk ZWZpbmUgSU5URUxfR1VDX01TR19EQVRBX1NISUZUCTE2CisjZGVmaW5lIElOVEVMX0dVQ19NU0df REFUQV9NQVNLCQkoMHhGRkYgPDwgSU5URUxfR1VDX01TR19EQVRBX1NISUZUKQorI2RlZmluZSBJ TlRFTF9HVUNfTVNHX0NPREVfU0hJRlQJMAorI2RlZmluZSBJTlRFTF9HVUNfTVNHX0NPREVfTUFT SwkJKDB4RkZGRiA8PCBJTlRFTF9HVUNfTVNHX0NPREVfU0hJRlQpCisKK2VudW0gaW50ZWxfZ3Vj X21zZ190eXBlIHsKKwlJTlRFTF9HVUNfTVNHX1RZUEVfUkVRVUVTVCA9IDB4MCwKKwlJTlRFTF9H VUNfTVNHX1RZUEVfUkVTUE9OU0UgPSAweEYsCit9OworCisjZW5kaWYgLyogX0FCSV9HVUNfTUVT U0FHRVNfQUJJX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2lu dGVsX2d1Y19md2lmLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfZndp Zi5oCmluZGV4IDBmOWFmY2RlMWQwYi4uOWJmMzUyNDBlNzIzIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfZndpZi5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3VjL2ludGVsX2d1Y19md2lmLmgKQEAgLTEwLDYgKzEwLDEyIEBACiAjaW5jbHVk ZSA8bGludXgvY29tcGlsZXIuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogCisjaW5jbHVk ZSAiYWJpL2d1Y19hY3Rpb25zX2FiaS5oIgorI2luY2x1ZGUgImFiaS9ndWNfZXJyb3JzX2FiaS5o IgorI2luY2x1ZGUgImFiaS9ndWNfY29tbXVuaWNhdGlvbl9tbWlvX2FiaS5oIgorI2luY2x1ZGUg ImFiaS9ndWNfY29tbXVuaWNhdGlvbl9jdGJfYWJpLmgiCisjaW5jbHVkZSAiYWJpL2d1Y19tZXNz YWdlc19hYmkuaCIKKwogI2RlZmluZSBHVUNfQ0xJRU5UX1BSSU9SSVRZX0tNRF9ISUdICTAKICNk ZWZpbmUgR1VDX0NMSUVOVF9QUklPUklUWV9ISUdICTEKICNkZWZpbmUgR1VDX0NMSUVOVF9QUklP UklUWV9LTURfTk9STUFMCTIKQEAgLTIwNywxMDEgKzIxMyw2IEBAIHN0cnVjdCBndWNfc3RhZ2Vf ZGVzYyB7CiAJdTY0IGRlc2NfcHJpdmF0ZTsKIH0gX19wYWNrZWQ7CiAKLS8qKgotICogRE9DOiBD VEIgYmFzZWQgY29tbXVuaWNhdGlvbgotICoKLSAqIFRoZSBDVEIgKGNvbW1hbmQgdHJhbnNwb3J0 IGJ1ZmZlcikgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIEhvc3QgYW5kIEd1QwotICogaXMgYmFzZWQg b24gdTMyIGRhdGEgc3RyZWFtIHdyaXR0ZW4gdG8gdGhlIHNoYXJlZCBidWZmZXIuIE9uZSBidWZm ZXIgY2FuCi0gKiBiZSB1c2VkIHRvIHRyYW5zbWl0IGRhdGEgb25seSBpbiBvbmUgZGlyZWN0aW9u IChvbmUtZGlyZWN0aW9uYWwgY2hhbm5lbCkuCi0gKgotICogQ3VycmVudCBzdGF0dXMgb2YgdGhl IGVhY2ggYnVmZmVyIGlzIHN0b3JlZCBpbiB0aGUgYnVmZmVyIGRlc2NyaXB0b3IuCi0gKiBCdWZm ZXIgZGVzY3JpcHRvciBob2xkcyB0YWlsIGFuZCBoZWFkIGZpZWxkcyB0aGF0IHJlcHJlc2VudHMg YWN0aXZlIGRhdGEKLSAqIHN0cmVhbS4gVGhlIHRhaWwgZmllbGQgaXMgdXBkYXRlZCBieSB0aGUg ZGF0YSBwcm9kdWNlciAoc2VuZGVyKSwgYW5kIGhlYWQKLSAqIGZpZWxkIGlzIHVwZGF0ZWQgYnkg dGhlIGRhdGEgY29uc3VtZXIgKHJlY2VpdmVyKTo6Ci0gKgotICogICAgICArLS0tLS0tLS0tLS0t KwotICogICAgICB8IERFU0NSSVBUT1IgfCAgICAgICAgICArPT09PT09PT09PT09PT09PT0rPT09 PT09PT09PT09Kz09PT09PT09KwotICogICAgICArPT09PT09PT09PT09KyAgICAgICAgICB8ICAg ICAgICAgICAgICAgICB8IE1FU1NBR0UocykgfCAgICAgICAgfAotICogICAgICB8IGFkZHJlc3Mg ICAgfC0tLS0tLS0tLT4rPT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09Kz09PT09PT09Kwot ICogICAgICArLS0tLS0tLS0tLS0tKwotICogICAgICB8IGhlYWQgICAgICAgfCAgICAgICAgICBe LS0tLS1oZWFkLS0tLS0tLS1eCi0gKiAgICAgICstLS0tLS0tLS0tLS0rCi0gKiAgICAgIHwgdGFp bCAgICAgICB8ICAgICAgICAgIF4tLS0tLS0tLS10YWlsLS0tLS0tLS0tLS0tLS0tLS1eCi0gKiAg ICAgICstLS0tLS0tLS0tLS0rCi0gKiAgICAgIHwgc2l6ZSAgICAgICB8ICAgICAgICAgIF4tLS0t LS0tLS0tLS0tLS1zaXplLS0tLS0tLS0tLS0tLS0tLS0tLS1eCi0gKiAgICAgICstLS0tLS0tLS0t LS0rCi0gKgotICogRWFjaCBtZXNzYWdlIGluIGRhdGEgc3RyZWFtIHN0YXJ0cyB3aXRoIHRoZSBz aW5nbGUgdTMyIHRyZWF0ZWQgYXMgYSBoZWFkZXIsCi0gKiBmb2xsb3dlZCBieSBvcHRpb25hbCBz ZXQgb2YgdTMyIGRhdGEgdGhhdCBtYWtlcyBtZXNzYWdlIHNwZWNpZmljIHBheWxvYWQ6OgotICoK LSAqICAgICAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKLSAq ICAgICAgfCAgICAgICAgIE1FU1NBR0UgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLSAqICAg ICAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKLSAqICAgICAg fCAgIG1zZ1swXSAgIHwgICBbMV0gICB8ICAgLi4uICAgfCAgW24tMV0gIHwKLSAqICAgICAgKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKLSAqICAgICAgfCAgIE1F U1NBR0UgIHwgICAgICAgTUVTU0FHRSBQQVlMT0FEICAgICAgIHwKLSAqICAgICAgKyAgIEhFQURF UiAgICstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKLSAqICAgICAgfCAgICAgICAgICAg IHwgICAgMCAgICB8ICAgLi4uICAgfCAgICBuICAgIHwKLSAqICAgICAgKz09PT09PSs9PT09PSs9 PT09PT09PT0rPT09PT09PT09Kz09PT09PT09PSsKLSAqICAgICAgfCAzMToxNnwgY29kZXwgICAg ICAgICB8ICAgICAgICAgfCAgICAgICAgIHwKLSAqICAgICAgKy0tLS0tLSstLS0tLSsgICAgICAg ICB8ICAgICAgICAgfCAgICAgICAgIHwKLSAqICAgICAgfCAgMTU6NXxmbGFnc3wgICAgICAgICB8 ICAgICAgICAgfCAgICAgICAgIHwKLSAqICAgICAgKy0tLS0tLSstLS0tLSsgICAgICAgICB8ICAg ICAgICAgfCAgICAgICAgIHwKLSAqICAgICAgfCAgIDQ6MHwgIGxlbnwgICAgICAgICB8ICAgICAg ICAgfCAgICAgICAgIHwKLSAqICAgICAgKy0tLS0tLSstLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSsKLSAqCi0gKiAgICAgICAgICAgICAgICAgICBeLS0tLS0tLS0tLS0tLWxlbi0t LS0tLS0tLS0tLS1eCi0gKgotICogVGhlIG1lc3NhZ2UgaGVhZGVyIGNvbnNpc3RzIG9mOgotICoK LSAqIC0gKipsZW4qKiwgaW5kaWNhdGVzIGxlbmd0aCBvZiB0aGUgbWVzc2FnZSBwYXlsb2FkIChp biB1MzIpCi0gKiAtICoqY29kZSoqLCBpbmRpY2F0ZXMgbWVzc2FnZSBjb2RlCi0gKiAtICoqZmxh Z3MqKiwgaG9sZHMgdmFyaW91cyBiaXRzIHRvIGNvbnRyb2wgbWVzc2FnZSBoYW5kbGluZwotICov Ci0KLS8qCi0gKiBEZXNjcmliZXMgc2luZ2xlIGNvbW1hbmQgdHJhbnNwb3J0IGJ1ZmZlci4KLSAq IFVzZWQgYnkgYm90aCBndWMtbWFzdGVyIGFuZCBjbGllbnRzLgotICovCi1zdHJ1Y3QgZ3VjX2N0 X2J1ZmZlcl9kZXNjIHsKLQl1MzIgYWRkcjsJCS8qIGdmeCBhZGRyZXNzICovCi0JdTY0IGhvc3Rf cHJpdmF0ZTsJLyogaG9zdCBwcml2YXRlIGRhdGEgKi8KLQl1MzIgc2l6ZTsJCS8qIHNpemUgaW4g Ynl0ZXMgKi8KLQl1MzIgaGVhZDsJCS8qIG9mZnNldCB1cGRhdGVkIGJ5IEd1QyovCi0JdTMyIHRh aWw7CQkvKiBvZmZzZXQgdXBkYXRlZCBieSBvd25lciAqLwotCXUzMiBpc19pbl9lcnJvcjsJLyog ZXJyb3IgaW5kaWNhdG9yICovCi0JdTMyIGZlbmNlOwkJLyogZmVuY2UgdXBkYXRlZCBieSBHdUMg Ki8KLQl1MzIgc3RhdHVzOwkJLyogc3RhdHVzIHVwZGF0ZWQgYnkgR3VDICovCi0JdTMyIG93bmVy OwkJLyogaWQgb2YgdGhlIGNoYW5uZWwgb3duZXIgKi8KLQl1MzIgb3duZXJfc3ViX2lkOwkvKiBv d25lci1kZWZpbmVkIGZpZWxkIGZvciBleHRyYSB0cmFja2luZyAqLwotCXUzMiByZXNlcnZlZFs1 XTsKLX0gX19wYWNrZWQ7Ci0KLS8qIFR5cGUgb2YgY29tbWFuZCB0cmFuc3BvcnQgYnVmZmVyICov Ci0jZGVmaW5lIElOVEVMX0dVQ19DVF9CVUZGRVJfVFlQRV9TRU5ECTB4MHUKLSNkZWZpbmUgSU5U RUxfR1VDX0NUX0JVRkZFUl9UWVBFX1JFQ1YJMHgxdQotCi0vKgotICogRGVmaW5pdGlvbiBvZiB0 aGUgY29tbWFuZCB0cmFuc3BvcnQgbWVzc2FnZSBoZWFkZXIgKERXMCkKLSAqCi0gKiBiaXRbNC4u MF0JbWVzc2FnZSBsZW4gKGluIGR3b3JkcykKLSAqIGJpdFs3Li41XQlyZXNlcnZlZAotICogYml0 WzhdCXJlc3BvbnNlIChHMkggb25seSkKLSAqIGJpdFs4XQl3cml0ZSBmZW5jZSB0byBkZXNjIChI Mkcgb25seSkKLSAqIGJpdFs5XQl3cml0ZSBzdGF0dXMgdG8gSDJHIGJ1ZmYgKEgyRyBvbmx5KQot ICogYml0WzEwXQlzZW5kIHN0YXR1cyBiYWNrIHZpYSBHMkggKEgyRyBvbmx5KQotICogYml0WzE1 Li4xMV0JcmVzZXJ2ZWQKLSAqIGJpdFszMS4uMTZdCWFjdGlvbiBjb2RlCi0gKi8KLSNkZWZpbmUg R1VDX0NUX01TR19MRU5fU0hJRlQJCQkwCi0jZGVmaW5lIEdVQ19DVF9NU0dfTEVOX01BU0sJCQkw eDFGCi0jZGVmaW5lIEdVQ19DVF9NU0dfSVNfUkVTUE9OU0UJCQkoMSA8PCA4KQotI2RlZmluZSBH VUNfQ1RfTVNHX1dSSVRFX0ZFTkNFX1RPX0RFU0MJCSgxIDw8IDgpCi0jZGVmaW5lIEdVQ19DVF9N U0dfV1JJVEVfU1RBVFVTX1RPX0JVRkYJCSgxIDw8IDkpCi0jZGVmaW5lIEdVQ19DVF9NU0dfU0VO RF9TVEFUVVMJCQkoMSA8PCAxMCkKLSNkZWZpbmUgR1VDX0NUX01TR19BQ1RJT05fU0hJRlQJCQkx NgotI2RlZmluZSBHVUNfQ1RfTVNHX0FDVElPTl9NQVNLCQkJMHhGRkZGCi0KICNkZWZpbmUgR1VD X1BPV0VSX1VOU1BFQ0lGSUVECTAKICNkZWZpbmUgR1VDX1BPV0VSX0QwCQkxCiAjZGVmaW5lIEdV Q19QT1dFUl9EMQkJMgpAQCAtNDc3LDExOSArMzg4LDE3IEBAIHN0cnVjdCBndWNfc2hhcmVkX2N0 eF9kYXRhIHsKIAlzdHJ1Y3QgZ3VjX2N0eF9yZXBvcnQgcHJlZW1wdF9jdHhfcmVwb3J0W0dVQ19N QVhfRU5HSU5FU19OVU1dOwogfSBfX3BhY2tlZDsKIAotLyoqCi0gKiBET0M6IE1NSU8gYmFzZWQg Y29tbXVuaWNhdGlvbgotICoKLSAqIFRoZSBNTUlPIGJhc2VkIGNvbW11bmljYXRpb24gYmV0d2Vl biBIb3N0IGFuZCBHdUMgdXNlcyBzb2Z0d2FyZSBzY3JhdGNoCi0gKiByZWdpc3RlcnMsIHdoZXJl IGZpcnN0IHJlZ2lzdGVyIGhvbGRzIGRhdGEgdHJlYXRlZCBhcyBtZXNzYWdlIGhlYWRlciwKLSAq IGFuZCBvdGhlciByZWdpc3RlcnMgYXJlIHVzZWQgdG8gaG9sZCBtZXNzYWdlIHBheWxvYWQuCi0g KgotICogRm9yIEdlbjkrLCBHdUMgdXNlcyBzb2Z0d2FyZSBzY3JhdGNoIHJlZ2lzdGVycyAweEMx ODAtMHhDMUI4LAotICogYnV0IG5vIEgyRyBjb21tYW5kIHRha2VzIG1vcmUgdGhhbiA4IHBhcmFt ZXRlcnMgYW5kIHRoZSBHdUMgRlcKLSAqIGl0c2VsZiB1c2VzIGFuIDgtZWxlbWVudCBhcnJheSB0 byBzdG9yZSB0aGUgSDJHIG1lc3NhZ2UuCi0gKgotICogICAgICArLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rCi0gKiAgICAgIHwgIE1NSU9bMF0gIHwgTU1JT1sxXSB8 ICAgLi4uICAgfCBNTUlPW25dIHwKLSAqICAgICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKwotICogICAgICB8IGhlYWRlciAgICB8ICAgICAgb3B0aW9uYWwgcGF5 bG9hZCAgICAgICB8Ci0gKiAgICAgICs9PT09PT0rPT09PSs9PT09PT09PT0rPT09PT09PT09Kz09 PT09PT09PSsKLSAqICAgICAgfCAzMToyOHx0eXBlfCAgICAgICAgIHwgICAgICAgICB8ICAgICAg ICAgfAotICogICAgICArLS0tLS0tKy0tLS0rICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8 Ci0gKiAgICAgIHwgMjc6MTZ8ZGF0YXwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwKLSAq ICAgICAgKy0tLS0tLSstLS0tKyAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfAotICogICAg ICB8ICAxNTowfGNvZGV8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8Ci0gKiAgICAgICst LS0tLS0rLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKLSAqCi0gKiBUaGUgbWVz c2FnZSBoZWFkZXIgY29uc2lzdHMgb2Y6Ci0gKgotICogLSAqKnR5cGUqKiwgaW5kaWNhdGVzIG1l c3NhZ2UgdHlwZQotICogLSAqKmNvZGUqKiwgaW5kaWNhdGVzIG1lc3NhZ2UgY29kZSwgaXMgc3Bl Y2lmaWMgZm9yICoqdHlwZSoqCi0gKiAtICoqZGF0YSoqLCBpbmRpY2F0ZXMgbWVzc2FnZSBkYXRh LCBvcHRpb25hbCwgZGVwZW5kcyBvbiAqKmNvZGUqKgotICoKLSAqIFRoZSBmb2xsb3dpbmcgbWVz c2FnZSAqKnR5cGVzKiogYXJlIHN1cHBvcnRlZDoKLSAqCi0gKiAtICoqUkVRVUVTVCoqLCBpbmRp Y2F0ZXMgSG9zdC10by1HdUMgcmVxdWVzdCwgcmVxdWVzdGVkIEd1QyBhY3Rpb24gY29kZQotICog ICBtdXN0IGJlIHByaW92aWRlZCBpbiAqKmNvZGUqKiBmaWVsZC4gT3B0aW9uYWwgYWN0aW9uIHNw ZWNpZmljIHBhcmFtZXRlcnMKLSAqICAgY2FuIGJlIHByb3ZpZGVkIGluIHJlbWFpbmluZyBwYXls b2FkIHJlZ2lzdGVycyBvciAqKmRhdGEqKiBmaWVsZC4KLSAqCi0gKiAtICoqUkVTUE9OU0UqKiwg aW5kaWNhdGVzIEd1Qy10by1Ib3N0IHJlc3BvbnNlIGZyb20gZWFybGllciBHdUMgcmVxdWVzdCwK LSAqICAgYWN0aW9uIHJlc3BvbnNlIHN0YXR1cyB3aWxsIGJlIHByb3ZpZGVkIGluICoqY29kZSoq IGZpZWxkLiBPcHRpb25hbAotICogICByZXNwb25zZSBkYXRhIGNhbiBiZSByZXR1cm5lZCBpbiBy ZW1haW5pbmcgcGF5bG9hZCByZWdpc3RlcnMgb3IgKipkYXRhKioKLSAqICAgZmllbGQuCi0gKi8K LQotI2RlZmluZSBHVUNfTUFYX01NSU9fTVNHX0xFTgkJOAotCi0jZGVmaW5lIElOVEVMX0dVQ19N U0dfVFlQRV9TSElGVAkyOAotI2RlZmluZSBJTlRFTF9HVUNfTVNHX1RZUEVfTUFTSwkJKDB4RiA8 PCBJTlRFTF9HVUNfTVNHX1RZUEVfU0hJRlQpCi0jZGVmaW5lIElOVEVMX0dVQ19NU0dfREFUQV9T SElGVAkxNgotI2RlZmluZSBJTlRFTF9HVUNfTVNHX0RBVEFfTUFTSwkJKDB4RkZGIDw8IElOVEVM X0dVQ19NU0dfREFUQV9TSElGVCkKLSNkZWZpbmUgSU5URUxfR1VDX01TR19DT0RFX1NISUZUCTAK LSNkZWZpbmUgSU5URUxfR1VDX01TR19DT0RFX01BU0sJCSgweEZGRkYgPDwgSU5URUxfR1VDX01T R19DT0RFX1NISUZUKQotCiAjZGVmaW5lIF9fSU5URUxfR1VDX01TR19HRVQoVCwgbSkgXAogCSgo KG0pICYgSU5URUxfR1VDX01TR18gIyMgVCAjIyBfTUFTSykgPj4gSU5URUxfR1VDX01TR18gIyMg VCAjIyBfU0hJRlQpCiAjZGVmaW5lIElOVEVMX0dVQ19NU0dfVE9fVFlQRShtKQlfX0lOVEVMX0dV Q19NU0dfR0VUKFRZUEUsIG0pCiAjZGVmaW5lIElOVEVMX0dVQ19NU0dfVE9fREFUQShtKQlfX0lO VEVMX0dVQ19NU0dfR0VUKERBVEEsIG0pCiAjZGVmaW5lIElOVEVMX0dVQ19NU0dfVE9fQ09ERSht KQlfX0lOVEVMX0dVQ19NU0dfR0VUKENPREUsIG0pCiAKLWVudW0gaW50ZWxfZ3VjX21zZ190eXBl IHsKLQlJTlRFTF9HVUNfTVNHX1RZUEVfUkVRVUVTVCA9IDB4MCwKLQlJTlRFTF9HVUNfTVNHX1RZ UEVfUkVTUE9OU0UgPSAweEYsCi19OwotCiAjZGVmaW5lIF9fSU5URUxfR1VDX01TR19UWVBFX0lT KFQsIG0pIFwKIAkoSU5URUxfR1VDX01TR19UT19UWVBFKG0pID09IElOVEVMX0dVQ19NU0dfVFlQ RV8gIyMgVCkKICNkZWZpbmUgSU5URUxfR1VDX01TR19JU19SRVFVRVNUKG0pCV9fSU5URUxfR1VD X01TR19UWVBFX0lTKFJFUVVFU1QsIG0pCiAjZGVmaW5lIElOVEVMX0dVQ19NU0dfSVNfUkVTUE9O U0UobSkJX19JTlRFTF9HVUNfTVNHX1RZUEVfSVMoUkVTUE9OU0UsIG0pCiAKLWVudW0gaW50ZWxf Z3VjX2FjdGlvbiB7Ci0JSU5URUxfR1VDX0FDVElPTl9ERUZBVUxUID0gMHgwLAotCUlOVEVMX0dV Q19BQ1RJT05fUkVRVUVTVF9QUkVFTVBUSU9OID0gMHgyLAotCUlOVEVMX0dVQ19BQ1RJT05fUkVR VUVTVF9FTkdJTkVfUkVTRVQgPSAweDMsCi0JSU5URUxfR1VDX0FDVElPTl9BTExPQ0FURV9ET09S QkVMTCA9IDB4MTAsCi0JSU5URUxfR1VDX0FDVElPTl9ERUFMTE9DQVRFX0RPT1JCRUxMID0gMHgy MCwKLQlJTlRFTF9HVUNfQUNUSU9OX0xPR19CVUZGRVJfRklMRV9GTFVTSF9DT01QTEVURSA9IDB4 MzAsCi0JSU5URUxfR1VDX0FDVElPTl9VS19MT0dfRU5BQkxFX0xPR0dJTkcgPSAweDQwLAotCUlO VEVMX0dVQ19BQ1RJT05fRk9SQ0VfTE9HX0JVRkZFUl9GTFVTSCA9IDB4MzAyLAotCUlOVEVMX0dV Q19BQ1RJT05fRU5URVJfU19TVEFURSA9IDB4NTAxLAotCUlOVEVMX0dVQ19BQ1RJT05fRVhJVF9T X1NUQVRFID0gMHg1MDIsCi0JSU5URUxfR1VDX0FDVElPTl9TTFBDX1JFUVVFU1QgPSAweDMwMDMs Ci0JSU5URUxfR1VDX0FDVElPTl9BVVRIRU5USUNBVEVfSFVDID0gMHg0MDAwLAotCUlOVEVMX0dV Q19BQ1RJT05fUkVHSVNURVJfQ09NTUFORF9UUkFOU1BPUlRfQlVGRkVSID0gMHg0NTA1LAotCUlO VEVMX0dVQ19BQ1RJT05fREVSRUdJU1RFUl9DT01NQU5EX1RSQU5TUE9SVF9CVUZGRVIgPSAweDQ1 MDYsCi0JSU5URUxfR1VDX0FDVElPTl9MSU1JVAotfTsKLQotZW51bSBpbnRlbF9ndWNfcHJlZW1w dF9vcHRpb25zIHsKLQlJTlRFTF9HVUNfUFJFRU1QVF9PUFRJT05fRFJPUF9XT1JLX1EgPSAweDQs Ci0JSU5URUxfR1VDX1BSRUVNUFRfT1BUSU9OX0RST1BfU1VCTUlUX1EgPSAweDgsCi19OwotCi1l bnVtIGludGVsX2d1Y19yZXBvcnRfc3RhdHVzIHsKLQlJTlRFTF9HVUNfUkVQT1JUX1NUQVRVU19V TktOT1dOID0gMHgwLAotCUlOVEVMX0dVQ19SRVBPUlRfU1RBVFVTX0FDS0VEID0gMHgxLAotCUlO VEVMX0dVQ19SRVBPUlRfU1RBVFVTX0VSUk9SID0gMHgyLAotCUlOVEVMX0dVQ19SRVBPUlRfU1RB VFVTX0NPTVBMRVRFID0gMHg0LAotfTsKLQotZW51bSBpbnRlbF9ndWNfc2xlZXBfc3RhdGVfc3Rh dHVzIHsKLQlJTlRFTF9HVUNfU0xFRVBfU1RBVEVfU1VDQ0VTUyA9IDB4MSwKLQlJTlRFTF9HVUNf U0xFRVBfU1RBVEVfUFJFRU1QVF9UT19JRExFX0ZBSUxFRCA9IDB4MiwKLQlJTlRFTF9HVUNfU0xF RVBfU1RBVEVfRU5HSU5FX1JFU0VUX0ZBSUxFRCA9IDB4MwotI2RlZmluZSBJTlRFTF9HVUNfU0xF RVBfU1RBVEVfSU5WQUxJRF9NQVNLIDB4ODAwMDAwMDAKLX07Ci0KLSNkZWZpbmUgR1VDX0xPR19D T05UUk9MX0xPR0dJTkdfRU5BQkxFRAkoMSA8PCAwKQotI2RlZmluZSBHVUNfTE9HX0NPTlRST0xf VkVSQk9TSVRZX1NISUZUCTQKLSNkZWZpbmUgR1VDX0xPR19DT05UUk9MX1ZFUkJPU0lUWV9NQVNL CSgweEYgPDwgR1VDX0xPR19DT05UUk9MX1ZFUkJPU0lUWV9TSElGVCkKLSNkZWZpbmUgR1VDX0xP R19DT05UUk9MX0RFRkFVTFRfTE9HR0lORwkoMSA8PCA4KQotCi1lbnVtIGludGVsX2d1Y19yZXNw b25zZV9zdGF0dXMgewotCUlOVEVMX0dVQ19SRVNQT05TRV9TVEFUVVNfU1VDQ0VTUyA9IDB4MCwK LQlJTlRFTF9HVUNfUkVTUE9OU0VfU1RBVFVTX0dFTkVSSUNfRkFJTCA9IDB4RjAwMCwKLX07Ci0K ICNkZWZpbmUgSU5URUxfR1VDX01TR19JU19SRVNQT05TRV9TVUNDRVNTKG0pIFwKIAkgKHR5cGVj aGVjayh1MzIsIChtKSkgJiYgXAogCSAgKChtKSAmIChJTlRFTF9HVUNfTVNHX1RZUEVfTUFTSyB8 IElOVEVMX0dVQ19NU0dfQ09ERV9NQVNLKSkgPT0gXAotLSAKMi4yOC4wCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK