Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752524AbdHJInR (ORCPT ); Thu, 10 Aug 2017 04:43:17 -0400 Received: from mail-bo1ind01on0080.outbound.protection.outlook.com ([104.47.101.80]:7728 "EHLO IND01-BO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751432AbdHJImH (ORCPT ); Thu, 10 Aug 2017 04:42:07 -0400 From: Kaushik Phatak To: "linux-kernel@vger.kernel.org" Subject: [PATCH] Unifying headers for AArch64 and ARM Thread-Topic: [PATCH] Unifying headers for AArch64 and ARM Thread-Index: AdMRtGoSXzXVbwPUThC+XnZY9HRgZg== Date: Thu, 10 Aug 2017 08:42:00 +0000 Message-ID: Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Kaushik.Phatak@kpit.com; x-originating-ip: [103.243.226.100] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;BM1PR01MB0321;6:7rfTeMHwLhywvRNiIoqtgpcvxs4XEFsL9WCb3txXuuBkeh9b2+zFsIb/Kx9hHeXCbmeJTjHZyr2MSZmRVQ95q7CUEVAqf0BB6zaa+cuxMnIw4VRylY3qtr9I1cY6LAt9eQhK3MrnF1kbco3JRu0w6HsxGVsejHy/ZaCadDo9Ve92a+5PuJ1J4zo7wIR0tAkfB7Rzwraky8ClHnlDVHSsbYZjp3QBN/VczK8Z9NdgqBRNnM4CMmg0yL6p+0g2W2irYNebVPYf5jIeSvqgkxTPau8Vfmg6IamXM9JpqBw2jDDoASEBiwIOqPVs+3rb/1CtaW68JW2PjkP/yf/WVN5qCQ==;5:PfbITVKhOhpdtIJddgo0CGyZ4wf2VTlI/zTBYa7XgHrTO2SoKKKju4XT+ggrSTsJclm1Xf+hLE4XCp/r+3KyN3zfYwKtWh4Ap/+Ghz7sYHxmv8uleRSr+Q6ZGanKUX/FOwW2OK5SODaWFUMRErb9zw==;24:XD+Vz+ETTGo5qp8i2ePslRULl260rN2bb6/RYSZCoW52zpBWA+FfYxUmfRwk2m36HNboMNv3dzbyXPcTqKjz2ksfjOgNkEmx2kRvNT4Bxj4=;7:PzPKsBxdshNomdVDnEHMZZ6shMPHQur2FhtiLkw09WB6yr2/QPjKGisae0X+5QExzCd3Q7XgdbvNo6rKJEYA83/tEZkTTMv2Y52gs3QLi+O7MEUMxmAKOg1jQxkOKV615HGdab8BGuei/TYFtm/d+kO8wbIrjdpoWWFuEnutc77hbKK89lThkrYKnvwXPUZoekrN8SHNeuCXPljVCZ1xvmqpX85RSnU2qVveqECJ7G0= x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: 82160a16-f4a7-4046-4ecf-08d4dfcbab48 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(2017052603031)(49563074)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:BM1PR01MB0321; x-ms-traffictypediagnostic: BM1PR01MB0321: x-exchange-antispam-report-test: UriScan:; x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(102415395)(6040450)(2401047)(5005006)(8121501046)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(3002001)(6055026)(6041248)(20161123560025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123564025)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:BM1PR01MB0321;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:BM1PR01MB0321; x-forefront-prvs: 03950F25EC x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(6009001)(39860400002)(39840400002)(39850400002)(39400400002)(39410400002)(39450400003)(199003)(189002)(99936001)(305945005)(3280700002)(50986999)(3660700001)(54356999)(478600001)(2351001)(33656002)(105586002)(81156014)(106356001)(8676002)(101416001)(81166006)(189998001)(7736002)(97736004)(8936002)(38730400002)(110136004)(966005)(6506006)(6116002)(2906002)(102836003)(14454004)(53936002)(9686003)(66066001)(6306002)(3846002)(6436002)(5640700003)(25786009)(55016002)(86362001)(7696004)(5660300001)(2501003)(6916009)(2900100001)(5890100001)(72206003)(74316002)(68736007)(77096006);DIR:OUT;SFP:1101;SCL:1;SRVR:BM1PR01MB0321;H:BM1PR01MB0322.INDPRD01.PROD.OUTLOOK.COM;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: multipart/mixed; boundary="_002_BM1PR01MB0322AE0614C84506EA8601ACFC880BM1PR01MB0322INDP_" MIME-Version: 1.0 X-OriginatorOrg: kpit.com X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Aug 2017 08:42:00.8267 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3539451e-b46e-4a26-a242-ff61502855c7 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BM1PR01MB0321 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 111129 Lines: 1467 --_002_BM1PR01MB0322AE0614C84506EA8601ACFC880BM1PR01MB0322INDP_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi, This patch is an attempt to unify the kernel header files for AArch64 and ARM. We have developed similar patch for glibc, which unifies the headers in sysdeps. We plan to post that separately to libc-alpha. This developed patch is similar to something that X86 does with the macros (__x86_64__) and (__ILP32__). We have noticed some activity in this area in recent times, Linux patches by Yury Norov: [07/20] arm64:uapi: set __BITS_PER_LONG correctly for ILP32 and LP64 https://patchwork.kernel.org/patch/9599053/ Glibc patches by Yury Norov (part of glibc-2.25): [PATCH 13/27] [AARCH64] Set up wordsize for ILP32. https://sourceware.org/ml/libc-alpha/2016-06/msg00750.html and other similar patches for AARCH64 The idea is to have aarch64 work with the 32-bit systems, so the toolchain can detect the correct macros like WORDSIZE irrespective of the architecture. The main issue here is that 32 and 64 bit ARM are in distinct folders unlike X86, hence the changes are fairly extensive. I have attached a patch here that attempts to do this. This is a fairly large patch (~2K lines) so I can split it up if required. Can someone provide any feedback on this approach for unifying the headers via patch, or having a single folder like X86 to do the job? Best Regards, Kaushik M. Phatak This message contains information that may be privileged or confidential an= d is the property of the KPIT Technologies Ltd. It is intended only for the= person to whom it is addressed. If you are not the intended recipient, you= are not authorized to read, print, retain copy, disseminate, distribute, o= r use this message or any part thereof. If you receive this message in erro= r, please notify the sender immediately and delete all copies of this messa= ge. KPIT Technologies Ltd. does not accept any liability for virus infected= mails. --_002_BM1PR01MB0322AE0614C84506EA8601ACFC880BM1PR01MB0322INDP_ Content-Type: application/octet-stream; name="arm_aarch64_unify.diff" Content-Description: arm_aarch64_unify.diff Content-Disposition: attachment; filename="arm_aarch64_unify.diff"; size=80444; creation-date="Thu, 10 Aug 2017 07:50:00 GMT"; modification-date="Thu, 10 Aug 2017 05:10:00 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2h3Y2FwLmggYi9hcmNoL2FybS9pbmNs dWRlL2FzbS9od2NhcC5oCmluZGV4IDZlMTgzZmQuLmRhZDgzZmMgMTAwNjQ0Ci0tLSBhL2FyY2gv YXJtL2luY2x1ZGUvYXNtL2h3Y2FwLmgKKysrIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20vaHdjYXAu aApAQCAtMSw4ICsxLDY0IEBACi0jaWZuZGVmIF9fQVNNQVJNX0hXQ0FQX0gKLSNkZWZpbmUgX19B U01BUk1fSFdDQVBfSAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBUk0gTHRkLgorICoKKyAq IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKyNpZm5kZWYgX19BU01fSFdDQVBfSAorI2RlZmluZSBf X0FTTV9IV0NBUF9ICiAKICNpbmNsdWRlIDx1YXBpL2FzbS9od2NhcC5oPgogCisjaWYgZGVmaW5l ZCBfX2FhcmNoNjRfXworCisjZGVmaW5lIENPTVBBVF9IV0NBUF9IQUxGCSgxIDw8IDEpCisjZGVm aW5lIENPTVBBVF9IV0NBUF9USFVNQgkoMSA8PCAyKQorI2RlZmluZSBDT01QQVRfSFdDQVBfRkFT VF9NVUxUCSgxIDw8IDQpCisjZGVmaW5lIENPTVBBVF9IV0NBUF9WRlAJKDEgPDwgNikKKyNkZWZp bmUgQ09NUEFUX0hXQ0FQX0VEU1AJKDEgPDwgNykKKyNkZWZpbmUgQ09NUEFUX0hXQ0FQX05FT04J KDEgPDwgMTIpCisjZGVmaW5lIENPTVBBVF9IV0NBUF9WRlB2MwkoMSA8PCAxMykKKyNkZWZpbmUg Q09NUEFUX0hXQ0FQX1RMUwkoMSA8PCAxNSkKKyNkZWZpbmUgQ09NUEFUX0hXQ0FQX1ZGUHY0CSgx IDw8IDE2KQorI2RlZmluZSBDT01QQVRfSFdDQVBfSURJVkEJKDEgPDwgMTcpCisjZGVmaW5lIENP TVBBVF9IV0NBUF9JRElWVAkoMSA8PCAxOCkKKyNkZWZpbmUgQ09NUEFUX0hXQ0FQX0lESVYJKENP TVBBVF9IV0NBUF9JRElWQXxDT01QQVRfSFdDQVBfSURJVlQpCisjZGVmaW5lIENPTVBBVF9IV0NB UF9MUEFFCSgxIDw8IDIwKQorI2RlZmluZSBDT01QQVRfSFdDQVBfRVZUU1RSTQkoMSA8PCAyMSkK KworI2RlZmluZSBDT01QQVRfSFdDQVAyX0FFUwkoMSA8PCAwKQorI2RlZmluZSBDT01QQVRfSFdD QVAyX1BNVUxMCSgxIDw8IDEpCisjZGVmaW5lIENPTVBBVF9IV0NBUDJfU0hBMQkoMSA8PCAyKQor I2RlZmluZSBDT01QQVRfSFdDQVAyX1NIQTIJKDEgPDwgMykKKyNkZWZpbmUgQ09NUEFUX0hXQ0FQ Ml9DUkMzMgkoMSA8PCA0KQorCisjaWZuZGVmIF9fQVNTRU1CTFlfXworLyoKKyAqIFRoaXMgeWll bGRzIGEgbWFzayB0aGF0IHVzZXIgcHJvZ3JhbXMgY2FuIHVzZSB0byBmaWd1cmUgb3V0IHdoYXQK KyAqIGluc3RydWN0aW9uIHNldCB0aGlzIGNwdSBzdXBwb3J0cy4KKyAqLworI2RlZmluZSBFTEZf SFdDQVAJCShlbGZfaHdjYXApCisKKyNpZmRlZiBDT05GSUdfQ09NUEFUCisjZGVmaW5lIENPTVBB VF9FTEZfSFdDQVAJKGNvbXBhdF9lbGZfaHdjYXApCisjZGVmaW5lIENPTVBBVF9FTEZfSFdDQVAy CShjb21wYXRfZWxmX2h3Y2FwMikKK2V4dGVybiB1bnNpZ25lZCBpbnQgY29tcGF0X2VsZl9od2Nh cCwgY29tcGF0X2VsZl9od2NhcDI7CisjZW5kaWYKKworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZWxm X2h3Y2FwOworI2VuZGlmCisKKyNlbHNlIC8qICBmb3IgYXJtICAqLworCiAjaWYgIWRlZmluZWQo X19BU1NFTUJMWV9fKQogLyoKICAqIFRoaXMgeWllbGRzIGEgbWFzayB0aGF0IHVzZXIgcHJvZ3Jh bXMgY2FuIHVzZSB0byBmaWd1cmUgb3V0IHdoYXQKQEAgLTExLDUgKzY3LDkgQEAKICNkZWZpbmUg RUxGX0hXQ0FQCShlbGZfaHdjYXApCiAjZGVmaW5lIEVMRl9IV0NBUDIJKGVsZl9od2NhcDIpCiBl eHRlcm4gdW5zaWduZWQgaW50IGVsZl9od2NhcCwgZWxmX2h3Y2FwMjsKLSNlbmRpZgotI2VuZGlm CisKKyNlbmRpZiAgLyogX19BU1NFTUJMWV9fICAqLworCisjZW5kaWYgLyogYWFyY2g2NC9hcm0g ICovCisKKyNlbmRpZiAvKiBfX0FTTV9IV0NBUF9IICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9p bmNsdWRlL2FzbS9wdHJhY2UuaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3B0cmFjZS5oCmluZGV4 IGU5YzlhMTEuLjY2MmEyZDZhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9wdHJh Y2UuaAorKysgYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wdHJhY2UuaApAQCAtMSwxNCArMSwyNTgg QEAKIC8qCi0gKiAgYXJjaC9hcm0vaW5jbHVkZS9hc20vcHRyYWNlLmgKKyAqIEJhc2VkIG9uIGFy Y2gvYXJtL2luY2x1ZGUvYXNtL3B0cmFjZS5oCiAgKgotICogIENvcHlyaWdodCAoQykgMTk5Ni0y MDAzIFJ1c3NlbGwgS2luZworICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDMgUnVzc2VsbCBLaW5n CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQVJNIEx0ZC4KICAqCiAgKiBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICog aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJz aW9uIDIgYXMKICAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgor ICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LgogICovCi0jaWZuZGVmIF9fQVNNX0FSTV9QVFJBQ0VfSAotI2RlZmluZSBfX0FTTV9BUk1fUFRS QUNFX0gKKyNpZm5kZWYgX19BU01fUFRSQUNFX0gKKyNkZWZpbmUgX19BU01fUFRSQUNFX0gKKwor I2lmIGRlZmluZWQgX19hYXJjaDY0X18KKworI2luY2x1ZGUgPHVhcGkvYXNtL3B0cmFjZS5oPgor CisvKiBDdXJyZW50IEV4Y2VwdGlvbiBMZXZlbCB2YWx1ZXMsIGFzIGNvbnRhaW5lZCBpbiBDdXJy ZW50RUwgKi8KKyNkZWZpbmUgQ3VycmVudEVMX0VMMQkJKDEgPDwgMikKKyNkZWZpbmUgQ3VycmVu dEVMX0VMMgkJKDIgPDwgMikKKworLyogQUFyY2gzMi1zcGVjaWZpYyBwdHJhY2UgcmVxdWVzdHMg Ki8KKyNkZWZpbmUgQ09NUEFUX1BUUkFDRV9HRVRSRUdTCQkxMgorI2RlZmluZSBDT01QQVRfUFRS QUNFX1NFVFJFR1MJCTEzCisjZGVmaW5lIENPTVBBVF9QVFJBQ0VfR0VUX1RIUkVBRF9BUkVBCTIy CisjZGVmaW5lIENPTVBBVF9QVFJBQ0VfU0VUX1NZU0NBTEwJMjMKKyNkZWZpbmUgQ09NUEFUX1BU UkFDRV9HRVRWRlBSRUdTCTI3CisjZGVmaW5lIENPTVBBVF9QVFJBQ0VfU0VUVkZQUkVHUwkyOAor I2RlZmluZSBDT01QQVRfUFRSQUNFX0dFVEhCUFJFR1MJMjkKKyNkZWZpbmUgQ09NUEFUX1BUUkFD RV9TRVRIQlBSRUdTCTMwCisKKy8qIEFBcmNoMzIgQ1BTUiBiaXRzICovCisjZGVmaW5lIENPTVBB VF9QU1JfTU9ERV9NQVNLCTB4MDAwMDAwMWYKKyNkZWZpbmUgQ09NUEFUX1BTUl9NT0RFX1VTUgkw eDAwMDAwMDEwCisjZGVmaW5lIENPTVBBVF9QU1JfTU9ERV9GSVEJMHgwMDAwMDAxMQorI2RlZmlu ZSBDT01QQVRfUFNSX01PREVfSVJRCTB4MDAwMDAwMTIKKyNkZWZpbmUgQ09NUEFUX1BTUl9NT0RF X1NWQwkweDAwMDAwMDEzCisjZGVmaW5lIENPTVBBVF9QU1JfTU9ERV9BQlQJMHgwMDAwMDAxNwor I2RlZmluZSBDT01QQVRfUFNSX01PREVfSFlQCTB4MDAwMDAwMWEKKyNkZWZpbmUgQ09NUEFUX1BT Ul9NT0RFX1VORAkweDAwMDAwMDFiCisjZGVmaW5lIENPTVBBVF9QU1JfTU9ERV9TWVMJMHgwMDAw MDAxZgorI2RlZmluZSBDT01QQVRfUFNSX1RfQklUCTB4MDAwMDAwMjAKKyNkZWZpbmUgQ09NUEFU X1BTUl9GX0JJVAkweDAwMDAwMDQwCisjZGVmaW5lIENPTVBBVF9QU1JfSV9CSVQJMHgwMDAwMDA4 MAorI2RlZmluZSBDT01QQVRfUFNSX0FfQklUCTB4MDAwMDAxMDAKKyNkZWZpbmUgQ09NUEFUX1BT Ul9FX0JJVAkweDAwMDAwMjAwCisjZGVmaW5lIENPTVBBVF9QU1JfSl9CSVQJMHgwMTAwMDAwMAor I2RlZmluZSBDT01QQVRfUFNSX1FfQklUCTB4MDgwMDAwMDAKKyNkZWZpbmUgQ09NUEFUX1BTUl9W X0JJVAkweDEwMDAwMDAwCisjZGVmaW5lIENPTVBBVF9QU1JfQ19CSVQJMHgyMDAwMDAwMAorI2Rl ZmluZSBDT01QQVRfUFNSX1pfQklUCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09NUEFUX1BTUl9OX0JJ VAkweDgwMDAwMDAwCisjZGVmaW5lIENPTVBBVF9QU1JfSVRfTUFTSwkweDA2MDBmYzAwCS8qIElm LVRoZW4gZXhlY3V0aW9uIHN0YXRlIG1hc2sgKi8KKyNkZWZpbmUgQ09NUEFUX1BTUl9HRV9NQVNL CTB4MDAwZjAwMDAKKworI2lmZGVmIENPTkZJR19DUFVfQklHX0VORElBTgorI2RlZmluZSBDT01Q QVRfUFNSX0VORFNUQVRFCUNPTVBBVF9QU1JfRV9CSVQKKyNlbHNlCisjZGVmaW5lIENPTVBBVF9Q U1JfRU5EU1RBVEUJMAorI2VuZGlmCisKKy8qCisgKiBUaGVzZSBhcmUgJ21hZ2ljJyB2YWx1ZXMg Zm9yIFBUUkFDRV9QRUVLVVNSIHRoYXQgcmV0dXJuIGluZm8gYWJvdXQgd2hlcmUgYQorICogcHJv Y2VzcyBpcyBsb2NhdGVkIGluIG1lbW9yeS4KKyAqLworI2RlZmluZSBDT01QQVRfUFRfVEVYVF9B RERSCQkweDEwMDAwCisjZGVmaW5lIENPTVBBVF9QVF9EQVRBX0FERFIJCTB4MTAwMDQKKyNkZWZp bmUgQ09NUEFUX1BUX1RFWFRfRU5EX0FERFIJCTB4MTAwMDgKKyNpZm5kZWYgX19BU1NFTUJMWV9f CisjaW5jbHVkZSA8bGludXgvYnVnLmg+CisKKy8qIHNpemVvZihzdHJ1Y3QgdXNlcikgZm9yIEFB cmNoMzIgKi8KKyNkZWZpbmUgQ09NUEFUX1VTRVJfU1oJMjk2CisKKy8qIEFyY2hpdGVjdHVyYWxs eSBkZWZpbmVkIG1hcHBpbmcgYmV0d2VlbiBBQXJjaDMyIGFuZCBBQXJjaDY0IHJlZ2lzdGVycyAq LworI2RlZmluZSBjb21wYXRfdXNyKHgpCXJlZ3NbKHgpXQorI2RlZmluZSBjb21wYXRfZnAJcmVn c1sxMV0KKyNkZWZpbmUgY29tcGF0X3NwCXJlZ3NbMTNdCisjZGVmaW5lIGNvbXBhdF9scglyZWdz WzE0XQorI2RlZmluZSBjb21wYXRfc3BfaHlwCXJlZ3NbMTVdCisjZGVmaW5lIGNvbXBhdF9scl9p cnEJcmVnc1sxNl0KKyNkZWZpbmUgY29tcGF0X3NwX2lycQlyZWdzWzE3XQorI2RlZmluZSBjb21w YXRfbHJfc3ZjCXJlZ3NbMThdCisjZGVmaW5lIGNvbXBhdF9zcF9zdmMJcmVnc1sxOV0KKyNkZWZp bmUgY29tcGF0X2xyX2FidAlyZWdzWzIwXQorI2RlZmluZSBjb21wYXRfc3BfYWJ0CXJlZ3NbMjFd CisjZGVmaW5lIGNvbXBhdF9scl91bmQJcmVnc1syMl0KKyNkZWZpbmUgY29tcGF0X3NwX3VuZAly ZWdzWzIzXQorI2RlZmluZSBjb21wYXRfcjhfZmlxCXJlZ3NbMjRdCisjZGVmaW5lIGNvbXBhdF9y OV9maXEJcmVnc1syNV0KKyNkZWZpbmUgY29tcGF0X3IxMF9maXEJcmVnc1syNl0KKyNkZWZpbmUg Y29tcGF0X3IxMV9maXEJcmVnc1syN10KKyNkZWZpbmUgY29tcGF0X3IxMl9maXEJcmVnc1syOF0K KyNkZWZpbmUgY29tcGF0X3NwX2ZpcQlyZWdzWzI5XQorI2RlZmluZSBjb21wYXRfbHJfZmlxCXJl Z3NbMzBdCisKKy8qCisgKiBUaGlzIHN0cnVjdCBkZWZpbmVzIHRoZSB3YXkgdGhlIHJlZ2lzdGVy cyBhcmUgc3RvcmVkIG9uIHRoZSBzdGFjayBkdXJpbmcgYW4KKyAqIGV4Y2VwdGlvbi4gTm90ZSB0 aGF0IHNpemVvZihzdHJ1Y3QgcHRfcmVncykgaGFzIHRvIGJlIGEgbXVsdGlwbGUgb2YgMTYgKGZv cgorICogc3RhY2sgYWxpZ25tZW50KS4gc3RydWN0IHVzZXJfcHRfcmVncyBtdXN0IGZvcm0gYSBw cmVmaXggb2Ygc3RydWN0IHB0X3JlZ3MuCisgKi8KK3N0cnVjdCBwdF9yZWdzIHsKKwl1bmlvbiB7 CisJCXN0cnVjdCB1c2VyX3B0X3JlZ3MgdXNlcl9yZWdzOworCQlzdHJ1Y3QgeworCQkJdTY0IHJl Z3NbMzFdOworCQkJdTY0IHNwOworCQkJdTY0IHBjOworCQkJdTY0IHBzdGF0ZTsKKwkJfTsKKwl9 OworCXU2NCBvcmlnX3gwOworCXU2NCBzeXNjYWxsbm87CisJdTY0IG9yaWdfYWRkcl9saW1pdDsK Kwl1NjQgdW51c2VkOwkvLyBtYWludGFpbiAxNiBieXRlIGFsaWdubWVudAorfTsKKworI2RlZmlu ZSBNQVhfUkVHX09GRlNFVCBvZmZzZXRvZihzdHJ1Y3QgcHRfcmVncywgcHN0YXRlKQorCisjZGVm aW5lIGFyY2hfaGFzX3NpbmdsZV9zdGVwKCkJKDEpCisKKyNpZmRlZiBDT05GSUdfQ09NUEFUCisj ZGVmaW5lIGNvbXBhdF90aHVtYl9tb2RlKHJlZ3MpIFwKKwkoKChyZWdzKS0+cHN0YXRlICYgQ09N UEFUX1BTUl9UX0JJVCkpCisjZWxzZQorI2RlZmluZSBjb21wYXRfdGh1bWJfbW9kZShyZWdzKSAo MCkKKyNlbmRpZgorCisjZGVmaW5lIHVzZXJfbW9kZShyZWdzKQlcCisJKCgocmVncyktPnBzdGF0 ZSAmIFBTUl9NT0RFX01BU0spID09IFBTUl9NT0RFX0VMMHQpCisKKyNkZWZpbmUgY29tcGF0X3Vz ZXJfbW9kZShyZWdzKQlcCisJKCgocmVncyktPnBzdGF0ZSAmIChQU1JfTU9ERTMyX0JJVCB8IFBT Ul9NT0RFX01BU0spKSA9PSBcCisJIChQU1JfTU9ERTMyX0JJVCB8IFBTUl9NT0RFX0VMMHQpKQor CisjZGVmaW5lIHByb2Nlc3Nvcl9tb2RlKHJlZ3MpIFwKKwkoKHJlZ3MpLT5wc3RhdGUgJiBQU1Jf TU9ERV9NQVNLKQorCisjZGVmaW5lIGludGVycnVwdHNfZW5hYmxlZChyZWdzKSBcCisJKCEoKHJl Z3MpLT5wc3RhdGUgJiBQU1JfSV9CSVQpKQorCisjZGVmaW5lIGZhc3RfaW50ZXJydXB0c19lbmFi bGVkKHJlZ3MpIFwKKwkoISgocmVncyktPnBzdGF0ZSAmIFBTUl9GX0JJVCkpCisKKyNkZWZpbmUg R0VUX1VTUChyZWdzKSBcCisJKCFjb21wYXRfdXNlcl9tb2RlKHJlZ3MpID8gKHJlZ3MpLT5zcCA6 IChyZWdzKS0+Y29tcGF0X3NwKQorCisjZGVmaW5lIFNFVF9VU1AocHRyZWdzLCB2YWx1ZSkgXAor CSghY29tcGF0X3VzZXJfbW9kZShyZWdzKSA/ICgocmVncyktPnNwID0gdmFsdWUpIDogKChyZWdz KS0+Y29tcGF0X3NwID0gdmFsdWUpKQorCitleHRlcm4gaW50IHJlZ3NfcXVlcnlfcmVnaXN0ZXJf b2Zmc2V0KGNvbnN0IGNoYXIgKm5hbWUpOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgcmVnc19nZXRf a2VybmVsX3N0YWNrX250aChzdHJ1Y3QgcHRfcmVncyAqcmVncywKKwkJCQkJICAgICAgIHVuc2ln bmVkIGludCBuKTsKKworLyoqCisgKiByZWdzX2dldF9yZWdpc3RlcigpIC0gZ2V0IHJlZ2lzdGVy IHZhbHVlIGZyb20gaXRzIG9mZnNldAorICogQHJlZ3M6CXB0X3JlZ3MgZnJvbSB3aGljaCByZWdp c3RlciB2YWx1ZSBpcyBnb3R0ZW4KKyAqIEBvZmZzZXQ6CW9mZnNldCBvZiB0aGUgcmVnaXN0ZXIu CisgKgorICogcmVnc19nZXRfcmVnaXN0ZXIgcmV0dXJucyB0aGUgdmFsdWUgb2YgYSByZWdpc3Rl ciB3aG9zZSBvZmZzZXQgZnJvbSBAcmVncy4KKyAqIFRoZSBAb2Zmc2V0IGlzIHRoZSBvZmZzZXQg b2YgdGhlIHJlZ2lzdGVyIGluIHN0cnVjdCBwdF9yZWdzLgorICogSWYgQG9mZnNldCBpcyBiaWdn ZXIgdGhhbiBNQVhfUkVHX09GRlNFVCwgdGhpcyByZXR1cm5zIDAuCisgKi8KK3N0YXRpYyBpbmxp bmUgdTY0IHJlZ3NfZ2V0X3JlZ2lzdGVyKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBp bnQgb2Zmc2V0KQoreworCXU2NCB2YWwgPSAwOworCisJV0FSTl9PTihvZmZzZXQgJiA3KTsKKwor CW9mZnNldCA+Pj0gMzsKKwlzd2l0Y2ggKG9mZnNldCkgeworCWNhc2UgMCAuLi4gMzA6CisJCXZh bCA9IHJlZ3MtPnJlZ3Nbb2Zmc2V0XTsKKwkJYnJlYWs7CisJY2FzZSBvZmZzZXRvZihzdHJ1Y3Qg cHRfcmVncywgc3ApID4+IDM6CisJCXZhbCA9IHJlZ3MtPnNwOworCQlicmVhazsKKwljYXNlIG9m ZnNldG9mKHN0cnVjdCBwdF9yZWdzLCBwYykgPj4gMzoKKwkJdmFsID0gcmVncy0+cGM7CisJCWJy ZWFrOworCWNhc2Ugb2Zmc2V0b2Yoc3RydWN0IHB0X3JlZ3MsIHBzdGF0ZSkgPj4gMzoKKwkJdmFs ID0gcmVncy0+cHN0YXRlOworCQlicmVhazsKKwlkZWZhdWx0OgorCQl2YWwgPSAwOworCX0KKwor CXJldHVybiB2YWw7Cit9CisKKy8qCisgKiBSZWFkIGEgcmVnaXN0ZXIgZ2l2ZW4gYW4gYXJjaGl0 ZWN0dXJhbCByZWdpc3RlciBpbmRleCByLgorICogVGhpcyBoYW5kbGVzIHRoZSBjb21tb24gY2Fz ZSB3aGVyZSAzMSBtZWFucyBYWlIsIG5vdCBTUC4KKyAqLworc3RhdGljIGlubGluZSB1bnNpZ25l ZCBsb25nIHB0X3JlZ3NfcmVhZF9yZWcoY29uc3Qgc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGludCBy KQoreworCXJldHVybiAociA9PSAzMSkgPyAwIDogcmVncy0+cmVnc1tyXTsKK30KKworLyoKKyAq IFdyaXRlIGEgcmVnaXN0ZXIgZ2l2ZW4gYW4gYXJjaGl0ZWN0dXJhbCByZWdpc3RlciBpbmRleCBy LgorICogVGhpcyBoYW5kbGVzIHRoZSBjb21tb24gY2FzZSB3aGVyZSAzMSBtZWFucyBYWlIsIG5v dCBTUC4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIHB0X3JlZ3Nfd3JpdGVfcmVnKHN0cnVjdCBw dF9yZWdzICpyZWdzLCBpbnQgciwKKwkJCQkgICAgIHVuc2lnbmVkIGxvbmcgdmFsKQoreworCWlm IChyICE9IDMxKQorCQlyZWdzLT5yZWdzW3JdID0gdmFsOworfQorCisvKiBWYWxpZCBvbmx5IGZv ciBLZXJuZWwgbW9kZSB0cmFwcy4gKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBrZXJu ZWxfc3RhY2tfcG9pbnRlcihzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlyZXR1cm4gcmVncy0+ c3A7Cit9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyByZWdzX3JldHVybl92YWx1ZShz dHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlyZXR1cm4gcmVncy0+cmVnc1swXTsKK30KKworLyog V2UgbXVzdCBhdm9pZCBjaXJjdWxhciBoZWFkZXIgaW5jbHVkZSB2aWEgc2NoZWQuaCAqLworc3Ry dWN0IHRhc2tfc3RydWN0OworaW50IHZhbGlkX3VzZXJfcmVncyhzdHJ1Y3QgdXNlcl9wdF9yZWdz ICpyZWdzLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spOworCisjZGVmaW5lIEdFVF9JUChyZWdz KQkJKCh1bnNpZ25lZCBsb25nKShyZWdzKS0+cGMpCisjZGVmaW5lIFNFVF9JUChyZWdzLCB2YWx1 ZSkJKChyZWdzKS0+cGMgPSAoKHU2NCkgKHZhbHVlKSkpCisKKyNkZWZpbmUgR0VUX0ZQKHB0cmVn cykJCSgodW5zaWduZWQgbG9uZykocHRyZWdzKS0+cmVnc1syOV0pCisjZGVmaW5lIFNFVF9GUChw dHJlZ3MsIHZhbHVlKQkoKHB0cmVncyktPnJlZ3NbMjldID0gKCh1NjQpICh2YWx1ZSkpKQorCisj aW5jbHVkZSA8YXNtLWdlbmVyaWMvcHRyYWNlLmg+CisKKyNkZWZpbmUgcHJvY2VkdXJlX2xpbmtf cG9pbnRlcihyZWdzKQkoKHJlZ3MpLT5yZWdzWzMwXSkKKworc3RhdGljIGlubGluZSB2b2lkIHBy b2NlZHVyZV9saW5rX3BvaW50ZXJfc2V0KHN0cnVjdCBwdF9yZWdzICpyZWdzLAorCQkJCQkgICB1 bnNpZ25lZCBsb25nIHZhbCkKK3sKKwlwcm9jZWR1cmVfbGlua19wb2ludGVyKHJlZ3MpID0gdmFs OworfQorCisjdW5kZWYgcHJvZmlsZV9wYworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgcHJvZmlsZV9w YyhzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CisKKyNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KKwor I2Vsc2UgLyogZm9yIGFybSAgKi8KIAogI2luY2x1ZGUgPHVhcGkvYXNtL3B0cmFjZS5oPgogCkBA IC0xNjksNCArNDEzLDcgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHVzZXJfc3RhY2tf cG9pbnRlcihzdHJ1Y3QgcHRfcmVncyAqcmVncykKIH0pCiAKICNlbmRpZiAvKiBfX0FTU0VNQkxZ X18gKi8KLSNlbmRpZgorCisjZW5kaWYgLyogYWFyY2g2NC9hcm0gICovCisKKyNlbmRpZiAvKiBf VUFQSV9fQVNNX1BUUkFDRV9IICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL3VhcGkv YXNtL2J5dGVvcmRlci5oIGIvYXJjaC9hcm0vaW5jbHVkZS91YXBpL2FzbS9ieXRlb3JkZXIuaApp bmRleCA3NzM3OTc0Li5hM2RmYWE0IDEwMDY0NAotLS0gYS9hcmNoL2FybS9pbmNsdWRlL3VhcGkv YXNtL2J5dGVvcmRlci5oCisrKyBiL2FyY2gvYXJtL2luY2x1ZGUvdWFwaS9hc20vYnl0ZW9yZGVy LmgKQEAgLTEsMjUgKzEsMjUgQEAKIC8qCi0gKiAgYXJjaC9hcm0vaW5jbHVkZS9hc20vYnl0ZW9y ZGVyLmgKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBUk0gTHRkLgogICoKLSAqIEFSTSBFbmRpYW4t bmVzcy4gIEluIGxpdHRsZSBlbmRpYW4gbW9kZSwgdGhlIGRhdGEgYnVzIGlzIGNvbm5lY3RlZCBz dWNoCi0gKiB0aGF0IGJ5dGUgYWNjZXNzZXMgYXBwZWFyIGFzOgotICogIDAgPSBkMC4uLmQ3LCAx ID0gZDguLi5kMTUsIDIgPSBkMTYuLi5kMjMsIDMgPSBkMjQuLi5kMzEKLSAqIGFuZCB3b3JkIGFj Y2Vzc2VzIChkYXRhIG9yIGluc3RydWN0aW9uKSBhcHBlYXIgYXM6Ci0gKiAgZDAuLi5kMzEKKyAq IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24uCiAgKgotICogV2hlbiBpbiBiaWcgZW5kaWFuIG1vZGUsIGJ5dGUgYWNj ZXNzZXMgYXBwZWFyIGFzOgotICogIDAgPSBkMjQuLi5kMzEsIDEgPSBkMTYuLi5kMjMsIDIgPSBk OC4uLmQxNSwgMyA9IGQwLi4uZDcKLSAqIGFuZCB3b3JkIGFjY2Vzc2VzIChkYXRhIG9yIGluc3Ry dWN0aW9uKSBhcHBlYXIgYXM6Ci0gKiAgZDAuLi5kMzEKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogICovCi0jaWZuZGVmIF9fQVNNX0FSTV9C WVRFT1JERVJfSAotI2RlZmluZSBfX0FTTV9BUk1fQllURU9SREVSX0gKKyNpZm5kZWYgX19BU01f QllURU9SREVSX0gKKyNkZWZpbmUgX19BU01fQllURU9SREVSX0gKIAotI2lmZGVmIF9fQVJNRUJf XworI2lmIGRlZmluZWQgX19BQVJDSDY0RUJfXyAgfHwgZGVmaW5lZCBfX0FSTUVCX18KICNpbmNs dWRlIDxsaW51eC9ieXRlb3JkZXIvYmlnX2VuZGlhbi5oPgogI2Vsc2UKICNpbmNsdWRlIDxsaW51 eC9ieXRlb3JkZXIvbGl0dGxlX2VuZGlhbi5oPgogI2VuZGlmCiAKLSNlbmRpZgotCisjZW5kaWYJ LyogX19BU01fQllURU9SREVSX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUvdWFw aS9hc20vZmNudGwuaCBiL2FyY2gvYXJtL2luY2x1ZGUvdWFwaS9hc20vZmNudGwuaAppbmRleCBh ODBiNjYwLi5jZDJlNjMwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9pbmNsdWRlL3VhcGkvYXNtL2Zj bnRsLmgKKysrIGIvYXJjaC9hcm0vaW5jbHVkZS91YXBpL2FzbS9mY250bC5oCkBAIC0xLDYgKzEs MjQgQEAKLSNpZm5kZWYgX0FSTV9GQ05UTF9ICi0jZGVmaW5lIF9BUk1fRkNOVExfSAorLyoKKyAq IENvcHlyaWdodCAoQykgMjAxMiBBUk0gTHRkLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24g MiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgor ICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz IHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisg Ki8KKyNpZm5kZWYgX19BU01fRkNOVExfSAorI2RlZmluZSBfX0FTTV9GQ05UTF9ICiAKKy8qCisg KiBVc2luZyBvdXIgb3duIGRlZmluaXRpb25zIGZvciBBQXJjaDMyIChjb21wYXQpIHN1cHBvcnQu CisgKi8KICNkZWZpbmUgT19ESVJFQ1RPUlkJIDA0MDAwMAkvKiBtdXN0IGJlIGEgZGlyZWN0b3J5 ICovCiAjZGVmaW5lIE9fTk9GT0xMT1cJMDEwMDAwMAkvKiBkb24ndCBmb2xsb3cgbGlua3MgKi8K ICNkZWZpbmUgT19ESVJFQ1QJMDIwMDAwMAkvKiBkaXJlY3QgZGlzayBhY2Nlc3MgaGludCAtIGN1 cnJlbnRseSBpZ25vcmVkICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL3VhcGkvYXNt L2h3Y2FwLmggYi9hcmNoL2FybS9pbmNsdWRlL3VhcGkvYXNtL2h3Y2FwLmgKaW5kZXggMjBkMTJm Mi4uNzAwMDkzYiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS91YXBpL2FzbS9od2NhcC5o CisrKyBiL2FyY2gvYXJtL2luY2x1ZGUvdWFwaS9hc20vaHdjYXAuaApAQCAtMSw1ICsxLDM1IEBA Ci0jaWZuZGVmIF9VQVBJX19BU01BUk1fSFdDQVBfSAotI2RlZmluZSBfVUFQSV9fQVNNQVJNX0hX Q0FQX0gKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQVJNIEx0ZC4KKyAqCisgKiBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorICovCisjaWZuZGVmIF9VQVBJX19BU01fSFdDQVBfSAorI2RlZmluZSBfVUFQ SV9fQVNNX0hXQ0FQX0gKKworI2lmIGRlZmluZWQgX19hYXJjaDY0X18KKy8qCisgKiBIV0NBUCBm bGFncyAtIGZvciBlbGZfaHdjYXAgKGluIGtlcm5lbCkgYW5kIEFUX0hXQ0FQCisgKi8KKyNkZWZp bmUgSFdDQVBfRlAJCSgxIDw8IDApCisjZGVmaW5lIEhXQ0FQX0FTSU1ECQkoMSA8PCAxKQorI2Rl ZmluZSBIV0NBUF9FVlRTVFJNCQkoMSA8PCAyKQorI2RlZmluZSBIV0NBUF9BRVMJCSgxIDw8IDMp CisjZGVmaW5lIEhXQ0FQX1BNVUxMCQkoMSA8PCA0KQorI2RlZmluZSBIV0NBUF9TSEExCQkoMSA8 PCA1KQorI2RlZmluZSBIV0NBUF9TSEEyCQkoMSA8PCA2KQorI2RlZmluZSBIV0NBUF9DUkMzMgkJ KDEgPDwgNykKKworI2Vsc2UgLyogZm9yIGFybSAgKi8KIAogLyoKICAqIEhXQ0FQIGZsYWdzIC0g Zm9yIGVsZl9od2NhcCAoaW4ga2VybmVsKSBhbmQgQVRfSFdDQVAKQEAgLTM3LDQgKzY3LDUgQEAK ICNkZWZpbmUgSFdDQVAyX1NIQTIJKDEgPDwgMykKICNkZWZpbmUgSFdDQVAyX0NSQzMyCSgxIDw8 IDQpCiAKLSNlbmRpZiAvKiBfVUFQSV9fQVNNQVJNX0hXQ0FQX0ggKi8KKyNlbmRpZiAvKiBhYXJj aDY0L2FybSAqLworI2VuZGlmIC8qIF9VQVBJX19BU01fSFdDQVBfSCAqLwpkaWZmIC0tZ2l0IGEv YXJjaC9hcm0vaW5jbHVkZS91YXBpL2FzbS9rdm0uaCBiL2FyY2gvYXJtL2luY2x1ZGUvdWFwaS9h c20va3ZtLmgKaW5kZXggNWRiMmQ0Yy4uZjM1Yjk0MSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vaW5j bHVkZS91YXBpL2FzbS9rdm0uaAorKysgYi9hcmNoL2FybS9pbmNsdWRlL3VhcGkvYXNtL2t2bS5o CkBAIC0xLDkgKzEsMTMgQEAKIC8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsMjAxMyAtIEFSTSBM dGQKKyAqIEF1dGhvcjogTWFyYyBaeW5naWVyIDxtYXJjLnp5bmdpZXJAYXJtLmNvbT4KKyAqCisg KiBEZXJpdmVkIGZyb20gYXJjaC9hcm0vaW5jbHVkZS91YXBpL2FzbS9rdm0uaDoKICAqIENvcHly aWdodCAoQykgMjAxMiAtIFZpcnR1YWwgT3BlbiBTeXN0ZW1zIGFuZCBDb2x1bWJpYSBVbml2ZXJz aXR5CiAgKiBBdXRob3I6IENocmlzdG9mZmVyIERhbGwgPGMuZGFsbEB2aXJ0dWFsb3BlbnN5c3Rl bXMuY29tPgogICoKICAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB2ZXJzaW9uIDIsIGFzCisgKiBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwog ICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCiAgKgogICogVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCkBAIC0xMiwxMyArMTYsMjEwIEBACiAgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgogICoKICAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogRm91bmRhdGlvbiwg NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSwg VVNBLgorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiAgKi8KIAogI2lmbmRlZiBfX0FSTV9LVk1fSF9fCiAjZGVm aW5lIF9fQVJNX0tWTV9IX18KIAorI2lmIGRlZmluZWQgX19hYXJjaDY0X18KKworI2RlZmluZSBL Vk1fU1BTUl9FTDEJMAorI2RlZmluZSBLVk1fU1BTUl9TVkMJS1ZNX1NQU1JfRUwxCisjZGVmaW5l IEtWTV9TUFNSX0FCVAkxCisjZGVmaW5lIEtWTV9TUFNSX1VORAkyCisjZGVmaW5lIEtWTV9TUFNS X0lSUQkzCisjZGVmaW5lIEtWTV9TUFNSX0ZJUQk0CisjZGVmaW5lIEtWTV9OUl9TUFNSCTUKKwor I2lmbmRlZiBfX0FTU0VNQkxZX18KKyNpbmNsdWRlIDxsaW51eC9wc2NpLmg+CisjaW5jbHVkZSA8 YXNtL3R5cGVzLmg+CisjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorCisjZGVmaW5lIF9fS1ZNX0hB VkVfR1VFU1RfREVCVUcKKyNkZWZpbmUgX19LVk1fSEFWRV9JUlFfTElORQorI2RlZmluZSBfX0tW TV9IQVZFX1JFQURPTkxZX01FTQorCisjZGVmaW5lIEtWTV9SRUdfU0laRShpZCkJCQkJCQlcCisJ KDFVIDw8ICgoKGlkKSAmIEtWTV9SRUdfU0laRV9NQVNLKSA+PiBLVk1fUkVHX1NJWkVfU0hJRlQp KQorCitzdHJ1Y3Qga3ZtX3JlZ3MgeworCXN0cnVjdCB1c2VyX3B0X3JlZ3MgcmVnczsJLyogc3Ag PSBzcF9lbDAgKi8KKworCV9fdTY0CXNwX2VsMTsKKwlfX3U2NAllbHJfZWwxOworCisJX191NjQJ c3BzcltLVk1fTlJfU1BTUl07CisKKwlzdHJ1Y3QgdXNlcl9mcHNpbWRfc3RhdGUgZnBfcmVnczsK K307CisKKy8qIFN1cHBvcnRlZCBQcm9jZXNzb3IgVHlwZXMgKi8KKyNkZWZpbmUgS1ZNX0FSTV9U QVJHRVRfQUVNX1Y4CQkwCisjZGVmaW5lIEtWTV9BUk1fVEFSR0VUX0ZPVU5EQVRJT05fVjgJMQor I2RlZmluZSBLVk1fQVJNX1RBUkdFVF9DT1JURVhfQTU3CTIKKyNkZWZpbmUgS1ZNX0FSTV9UQVJH RVRfWEdFTkVfUE9URU5aQQkzCisjZGVmaW5lIEtWTV9BUk1fVEFSR0VUX0NPUlRFWF9BNTMJNAor CisjZGVmaW5lIEtWTV9BUk1fTlVNX1RBUkdFVFMJCTUKKworLyogS1ZNX0FSTV9TRVRfREVWSUNF X0FERFIgaW9jdGwgaWQgZW5jb2RpbmcgKi8KKyNkZWZpbmUgS1ZNX0FSTV9ERVZJQ0VfVFlQRV9T SElGVAkwCisjZGVmaW5lIEtWTV9BUk1fREVWSUNFX1RZUEVfTUFTSwkoMHhmZmZmIDw8IEtWTV9B Uk1fREVWSUNFX1RZUEVfU0hJRlQpCisjZGVmaW5lIEtWTV9BUk1fREVWSUNFX0lEX1NISUZUCQkx NgorI2RlZmluZSBLVk1fQVJNX0RFVklDRV9JRF9NQVNLCQkoMHhmZmZmIDw8IEtWTV9BUk1fREVW SUNFX0lEX1NISUZUKQorCisvKiBTdXBwb3J0ZWQgZGV2aWNlIElEcyAqLworI2RlZmluZSBLVk1f QVJNX0RFVklDRV9WR0lDX1YyCQkwCisKKy8qIFN1cHBvcnRlZCBWR0lDIGFkZHJlc3MgdHlwZXMg ICovCisjZGVmaW5lIEtWTV9WR0lDX1YyX0FERFJfVFlQRV9ESVNUCTAKKyNkZWZpbmUgS1ZNX1ZH SUNfVjJfQUREUl9UWVBFX0NQVQkxCisKKyNkZWZpbmUgS1ZNX1ZHSUNfVjJfRElTVF9TSVpFCQkw eDEwMDAKKyNkZWZpbmUgS1ZNX1ZHSUNfVjJfQ1BVX1NJWkUJCTB4MjAwMAorCisvKiBTdXBwb3J0 ZWQgVkdJQ3YzIGFkZHJlc3MgdHlwZXMgICovCisjZGVmaW5lIEtWTV9WR0lDX1YzX0FERFJfVFlQ RV9ESVNUCTIKKyNkZWZpbmUgS1ZNX1ZHSUNfVjNfQUREUl9UWVBFX1JFRElTVAkzCisKKyNkZWZp bmUgS1ZNX1ZHSUNfVjNfRElTVF9TSVpFCQlTWl82NEsKKyNkZWZpbmUgS1ZNX1ZHSUNfVjNfUkVE SVNUX1NJWkUJCSgyICogU1pfNjRLKQorCisjZGVmaW5lIEtWTV9BUk1fVkNQVV9QT1dFUl9PRkYJ CTAgLyogQ1BVIGlzIHN0YXJ0ZWQgaW4gT0ZGIHN0YXRlICovCisjZGVmaW5lIEtWTV9BUk1fVkNQ VV9FTDFfMzJCSVQJCTEgLyogQ1BVIHJ1bm5pbmcgYSAzMmJpdCBWTSAqLworI2RlZmluZSBLVk1f QVJNX1ZDUFVfUFNDSV8wXzIJCTIgLyogQ1BVIHVzZXMgUFNDSSB2MC4yICovCisKK3N0cnVjdCBr dm1fdmNwdV9pbml0IHsKKwlfX3UzMiB0YXJnZXQ7CisJX191MzIgZmVhdHVyZXNbN107Cit9Owor CitzdHJ1Y3Qga3ZtX3NyZWdzIHsKK307CisKK3N0cnVjdCBrdm1fZnB1IHsKK307CisKK3N0cnVj dCBrdm1fZ3Vlc3RfZGVidWdfYXJjaCB7Cit9OworCitzdHJ1Y3Qga3ZtX2RlYnVnX2V4aXRfYXJj aCB7Cit9OworCitzdHJ1Y3Qga3ZtX3N5bmNfcmVncyB7Cit9OworCitzdHJ1Y3Qga3ZtX2FyY2hf bWVtb3J5X3Nsb3QgeworfTsKKworLyogSWYgeW91IG5lZWQgdG8gaW50ZXJwcmV0IHRoZSBpbmRl eCB2YWx1ZXMsIGhlcmUgaXMgdGhlIGtleTogKi8KKyNkZWZpbmUgS1ZNX1JFR19BUk1fQ09QUk9D X01BU0sJCTB4MDAwMDAwMDAwRkZGMDAwMAorI2RlZmluZSBLVk1fUkVHX0FSTV9DT1BST0NfU0hJ RlQJMTYKKworLyogTm9ybWFsIHJlZ2lzdGVycyBhcmUgbWFwcGVkIGFzIGNvcHJvY2Vzc29yIDE2 LiAqLworI2RlZmluZSBLVk1fUkVHX0FSTV9DT1JFCQkoMHgwMDEwIDw8IEtWTV9SRUdfQVJNX0NP UFJPQ19TSElGVCkKKyNkZWZpbmUgS1ZNX1JFR19BUk1fQ09SRV9SRUcobmFtZSkJKG9mZnNldG9m KHN0cnVjdCBrdm1fcmVncywgbmFtZSkgLyBzaXplb2YoX191MzIpKQorCisvKiBTb21lIHJlZ2lz dGVycyBuZWVkIG1vcmUgc3BhY2UgdG8gcmVwcmVzZW50IHZhbHVlcy4gKi8KKyNkZWZpbmUgS1ZN X1JFR19BUk1fREVNVVgJCSgweDAwMTEgPDwgS1ZNX1JFR19BUk1fQ09QUk9DX1NISUZUKQorI2Rl ZmluZSBLVk1fUkVHX0FSTV9ERU1VWF9JRF9NQVNLCTB4MDAwMDAwMDAwMDAwRkYwMAorI2RlZmlu ZSBLVk1fUkVHX0FSTV9ERU1VWF9JRF9TSElGVAk4CisjZGVmaW5lIEtWTV9SRUdfQVJNX0RFTVVY X0lEX0NDU0lEUgkoMHgwMCA8PCBLVk1fUkVHX0FSTV9ERU1VWF9JRF9TSElGVCkKKyNkZWZpbmUg S1ZNX1JFR19BUk1fREVNVVhfVkFMX01BU0sJMHgwMDAwMDAwMDAwMDAwMEZGCisjZGVmaW5lIEtW TV9SRUdfQVJNX0RFTVVYX1ZBTF9TSElGVAkwCisKKy8qIEFBcmNoNjQgc3lzdGVtIHJlZ2lzdGVy cyAqLworI2RlZmluZSBLVk1fUkVHX0FSTTY0X1NZU1JFRwkJKDB4MDAxMyA8PCBLVk1fUkVHX0FS TV9DT1BST0NfU0hJRlQpCisjZGVmaW5lIEtWTV9SRUdfQVJNNjRfU1lTUkVHX09QMF9NQVNLCTB4 MDAwMDAwMDAwMDAwYzAwMAorI2RlZmluZSBLVk1fUkVHX0FSTTY0X1NZU1JFR19PUDBfU0hJRlQJ MTQKKyNkZWZpbmUgS1ZNX1JFR19BUk02NF9TWVNSRUdfT1AxX01BU0sJMHgwMDAwMDAwMDAwMDAz ODAwCisjZGVmaW5lIEtWTV9SRUdfQVJNNjRfU1lTUkVHX09QMV9TSElGVAkxMQorI2RlZmluZSBL Vk1fUkVHX0FSTTY0X1NZU1JFR19DUk5fTUFTSwkweDAwMDAwMDAwMDAwMDA3ODAKKyNkZWZpbmUg S1ZNX1JFR19BUk02NF9TWVNSRUdfQ1JOX1NISUZUCTcKKyNkZWZpbmUgS1ZNX1JFR19BUk02NF9T WVNSRUdfQ1JNX01BU0sJMHgwMDAwMDAwMDAwMDAwMDc4CisjZGVmaW5lIEtWTV9SRUdfQVJNNjRf U1lTUkVHX0NSTV9TSElGVAkzCisjZGVmaW5lIEtWTV9SRUdfQVJNNjRfU1lTUkVHX09QMl9NQVNL CTB4MDAwMDAwMDAwMDAwMDAwNworI2RlZmluZSBLVk1fUkVHX0FSTTY0X1NZU1JFR19PUDJfU0hJ RlQJMAorCisjZGVmaW5lIEFSTTY0X1NZU19SRUdfU0hJRlRfTUFTSyh4LG4pIFwKKwkoKCh4KSA8 PCBLVk1fUkVHX0FSTTY0X1NZU1JFR18gIyMgbiAjIyBfU0hJRlQpICYgXAorCUtWTV9SRUdfQVJN NjRfU1lTUkVHXyAjIyBuICMjIF9NQVNLKQorCisjZGVmaW5lIF9fQVJNNjRfU1lTX1JFRyhvcDAs b3AxLGNybixjcm0sb3AyKSBcCisJKEtWTV9SRUdfQVJNNjQgfCBLVk1fUkVHX0FSTTY0X1NZU1JF RyB8IFwKKwlBUk02NF9TWVNfUkVHX1NISUZUX01BU0sob3AwLCBPUDApIHwgXAorCUFSTTY0X1NZ U19SRUdfU0hJRlRfTUFTSyhvcDEsIE9QMSkgfCBcCisJQVJNNjRfU1lTX1JFR19TSElGVF9NQVNL KGNybiwgQ1JOKSB8IFwKKwlBUk02NF9TWVNfUkVHX1NISUZUX01BU0soY3JtLCBDUk0pIHwgXAor CUFSTTY0X1NZU19SRUdfU0hJRlRfTUFTSyhvcDIsIE9QMikpCisKKyNkZWZpbmUgQVJNNjRfU1lT X1JFRyguLi4pIChfX0FSTTY0X1NZU19SRUcoX19WQV9BUkdTX18pIHwgS1ZNX1JFR19TSVpFX1U2 NCkKKworI2RlZmluZSBLVk1fUkVHX0FSTV9USU1FUl9DVEwJCUFSTTY0X1NZU19SRUcoMywgMywg MTQsIDMsIDEpCisjZGVmaW5lIEtWTV9SRUdfQVJNX1RJTUVSX0NOVAkJQVJNNjRfU1lTX1JFRygz LCAzLCAxNCwgMywgMikKKyNkZWZpbmUgS1ZNX1JFR19BUk1fVElNRVJfQ1ZBTAkJQVJNNjRfU1lT X1JFRygzLCAzLCAxNCwgMCwgMikKKworLyogRGV2aWNlIENvbnRyb2wgQVBJOiBBUk0gVkdJQyAq LworI2RlZmluZSBLVk1fREVWX0FSTV9WR0lDX0dSUF9BRERSCTAKKyNkZWZpbmUgS1ZNX0RFVl9B Uk1fVkdJQ19HUlBfRElTVF9SRUdTCTEKKyNkZWZpbmUgS1ZNX0RFVl9BUk1fVkdJQ19HUlBfQ1BV X1JFR1MJMgorI2RlZmluZSAgIEtWTV9ERVZfQVJNX1ZHSUNfQ1BVSURfU0hJRlQJMzIKKyNkZWZp bmUgICBLVk1fREVWX0FSTV9WR0lDX0NQVUlEX01BU0sJKDB4ZmZVTEwgPDwgS1ZNX0RFVl9BUk1f VkdJQ19DUFVJRF9TSElGVCkKKyNkZWZpbmUgICBLVk1fREVWX0FSTV9WR0lDX09GRlNFVF9TSElG VAkwCisjZGVmaW5lICAgS1ZNX0RFVl9BUk1fVkdJQ19PRkZTRVRfTUFTSwkoMHhmZmZmZmZmZlVM TCA8PCBLVk1fREVWX0FSTV9WR0lDX09GRlNFVF9TSElGVCkKKyNkZWZpbmUgS1ZNX0RFVl9BUk1f VkdJQ19HUlBfTlJfSVJRUwkzCisjZGVmaW5lIEtWTV9ERVZfQVJNX1ZHSUNfR1JQX0NUUkwJNAor I2RlZmluZSAgIEtWTV9ERVZfQVJNX1ZHSUNfQ1RSTF9JTklUCTAKKworLyogS1ZNX0lSUV9MSU5F IGlycSBmaWVsZCBpbmRleCB2YWx1ZXMgKi8KKyNkZWZpbmUgS1ZNX0FSTV9JUlFfVFlQRV9TSElG VAkJMjQKKyNkZWZpbmUgS1ZNX0FSTV9JUlFfVFlQRV9NQVNLCQkweGZmCisjZGVmaW5lIEtWTV9B Uk1fSVJRX1ZDUFVfU0hJRlQJCTE2CisjZGVmaW5lIEtWTV9BUk1fSVJRX1ZDUFVfTUFTSwkJMHhm ZgorI2RlZmluZSBLVk1fQVJNX0lSUV9OVU1fU0hJRlQJCTAKKyNkZWZpbmUgS1ZNX0FSTV9JUlFf TlVNX01BU0sJCTB4ZmZmZgorCisvKiBpcnFfdHlwZSBmaWVsZCAqLworI2RlZmluZSBLVk1fQVJN X0lSUV9UWVBFX0NQVQkJMAorI2RlZmluZSBLVk1fQVJNX0lSUV9UWVBFX1NQSQkJMQorI2RlZmlu ZSBLVk1fQVJNX0lSUV9UWVBFX1BQSQkJMgorCisvKiBvdXQtb2Yta2VybmVsIEdJQyBjcHUgaW50 ZXJydXB0IGluamVjdGlvbiBpcnFfbnVtYmVyIGZpZWxkICovCisjZGVmaW5lIEtWTV9BUk1fSVJR X0NQVV9JUlEJCTAKKyNkZWZpbmUgS1ZNX0FSTV9JUlFfQ1BVX0ZJUQkJMQorCisvKgorICogVGhp cyB1c2VkIHRvIGhvbGQgdGhlIGhpZ2hlc3Qgc3VwcG9ydGVkIFNQSSwgYnV0IGl0IGlzIG5vdyBv YnNvbGV0ZQorICogYW5kIG9ubHkgaGVyZSB0byBwcm92aWRlIHNvdXJjZSBjb2RlIGxldmVsIGNv bXBhdGliaWxpdHkgd2l0aCBvbGRlcgorICogdXNlcmxhbmQuIFRoZSBoaWdoZXN0IFNQSSBudW1i ZXIgY2FuIGJlIHNldCB2aWEgS1ZNX0RFVl9BUk1fVkdJQ19HUlBfTlJfSVJRUy4KKyAqLworI2lm bmRlZiBfX0tFUk5FTF9fCisjZGVmaW5lIEtWTV9BUk1fSVJRX0dJQ19NQVgJCTEyNworI2VuZGlm CisKKy8qIE9uZSBzaW5nbGUgS1ZNIGlycWNoaXAsIGllLiB0aGUgVkdJQyAqLworI2RlZmluZSBL Vk1fTlJfSVJRQ0hJUFMgICAgICAgICAgMQorCisvKiBQU0NJIGludGVyZmFjZSAqLworI2RlZmlu ZSBLVk1fUFNDSV9GTl9CQVNFCQkweDk1YzFiYTVlCisjZGVmaW5lIEtWTV9QU0NJX0ZOKG4pCQkJ KEtWTV9QU0NJX0ZOX0JBU0UgKyAobikpCisKKyNkZWZpbmUgS1ZNX1BTQ0lfRk5fQ1BVX1NVU1BF TkQJCUtWTV9QU0NJX0ZOKDApCisjZGVmaW5lIEtWTV9QU0NJX0ZOX0NQVV9PRkYJCUtWTV9QU0NJ X0ZOKDEpCisjZGVmaW5lIEtWTV9QU0NJX0ZOX0NQVV9PTgkJS1ZNX1BTQ0lfRk4oMikKKyNkZWZp bmUgS1ZNX1BTQ0lfRk5fTUlHUkFURQkJS1ZNX1BTQ0lfRk4oMykKKworI2RlZmluZSBLVk1fUFND SV9SRVRfU1VDQ0VTUwkJUFNDSV9SRVRfU1VDQ0VTUworI2RlZmluZSBLVk1fUFNDSV9SRVRfTkkJ CQlQU0NJX1JFVF9OT1RfU1VQUE9SVEVECisjZGVmaW5lIEtWTV9QU0NJX1JFVF9JTlZBTAkJUFND SV9SRVRfSU5WQUxJRF9QQVJBTVMKKyNkZWZpbmUgS1ZNX1BTQ0lfUkVUX0RFTklFRAkJUFNDSV9S RVRfREVOSUVECisKKyNlbmRpZiAvKiAgX19BU1NFTUJMWV9fICAqLworCisjZWxzZSAgLyogZm9y IGFybSAgKi8KKwogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvcHNj aS5oPgogI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KQEAgLTI1OSw0ICs0NjAsNiBAQCBzdHJ1Y3Qg a3ZtX2FyY2hfbWVtb3J5X3Nsb3QgewogI2RlZmluZSBLVk1fUFNDSV9SRVRfSU5WQUwJCVBTQ0lf UkVUX0lOVkFMSURfUEFSQU1TCiAjZGVmaW5lIEtWTV9QU0NJX1JFVF9ERU5JRUQJCVBTQ0lfUkVU X0RFTklFRAogCisjZW5kaWYgLyogIGFhcmNoNjQvYXJtICAqLworCiAjZW5kaWYgLyogX19BUk1f S1ZNX0hfXyAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vaW5jbHVkZS91YXBpL2FzbS9wZXJmX3Jl Z3MuaCBiL2FyY2gvYXJtL2luY2x1ZGUvdWFwaS9hc20vcGVyZl9yZWdzLmgKaW5kZXggY2U1OTQ0 OC4uMWRjYzgyZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS91YXBpL2FzbS9wZXJmX3Jl Z3MuaAorKysgYi9hcmNoL2FybS9pbmNsdWRlL3VhcGkvYXNtL3BlcmZfcmVncy5oCkBAIC0xLDYg KzEsNDYgQEAKICNpZm5kZWYgX0FTTV9BUk1fUEVSRl9SRUdTX0gKICNkZWZpbmUgX0FTTV9BUk1f UEVSRl9SRUdTX0gKIAorI2lmIGRlZmluZWQgX19hYXJjaDY0X18KK2VudW0gcGVyZl9ldmVudF9h cm1fcmVncyB7CisJUEVSRl9SRUdfQVJNNjRfWDAsCisJUEVSRl9SRUdfQVJNNjRfWDEsCisJUEVS Rl9SRUdfQVJNNjRfWDIsCisJUEVSRl9SRUdfQVJNNjRfWDMsCisJUEVSRl9SRUdfQVJNNjRfWDQs CisJUEVSRl9SRUdfQVJNNjRfWDUsCisJUEVSRl9SRUdfQVJNNjRfWDYsCisJUEVSRl9SRUdfQVJN NjRfWDcsCisJUEVSRl9SRUdfQVJNNjRfWDgsCisJUEVSRl9SRUdfQVJNNjRfWDksCisJUEVSRl9S RUdfQVJNNjRfWDEwLAorCVBFUkZfUkVHX0FSTTY0X1gxMSwKKwlQRVJGX1JFR19BUk02NF9YMTIs CisJUEVSRl9SRUdfQVJNNjRfWDEzLAorCVBFUkZfUkVHX0FSTTY0X1gxNCwKKwlQRVJGX1JFR19B Uk02NF9YMTUsCisJUEVSRl9SRUdfQVJNNjRfWDE2LAorCVBFUkZfUkVHX0FSTTY0X1gxNywKKwlQ RVJGX1JFR19BUk02NF9YMTgsCisJUEVSRl9SRUdfQVJNNjRfWDE5LAorCVBFUkZfUkVHX0FSTTY0 X1gyMCwKKwlQRVJGX1JFR19BUk02NF9YMjEsCisJUEVSRl9SRUdfQVJNNjRfWDIyLAorCVBFUkZf UkVHX0FSTTY0X1gyMywKKwlQRVJGX1JFR19BUk02NF9YMjQsCisJUEVSRl9SRUdfQVJNNjRfWDI1 LAorCVBFUkZfUkVHX0FSTTY0X1gyNiwKKwlQRVJGX1JFR19BUk02NF9YMjcsCisJUEVSRl9SRUdf QVJNNjRfWDI4LAorCVBFUkZfUkVHX0FSTTY0X1gyOSwKKwlQRVJGX1JFR19BUk02NF9MUiwKKwlQ RVJGX1JFR19BUk02NF9TUCwKKwlQRVJGX1JFR19BUk02NF9QQywKKwlQRVJGX1JFR19BUk02NF9N QVgsCit9OworCisjZWxzZSAgLyogZm9yIGFybSAgKi8KKwogZW51bSBwZXJmX2V2ZW50X2FybV9y ZWdzIHsKIAlQRVJGX1JFR19BUk1fUjAsCiAJUEVSRl9SRUdfQVJNX1IxLApAQCAtMjAsNCArNjAs NyBAQCBlbnVtIHBlcmZfZXZlbnRfYXJtX3JlZ3MgewogCVBFUkZfUkVHX0FSTV9QQywKIAlQRVJG X1JFR19BUk1fTUFYLAogfTsKKworI2VuZGlmIC8qICBhYXJjaDY0L2FybSAgKi8KKwogI2VuZGlm IC8qIF9BU01fQVJNX1BFUkZfUkVHU19IICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRl L3VhcGkvYXNtL3Bvc2l4X3R5cGVzLmggYi9hcmNoL2FybS9pbmNsdWRlL3VhcGkvYXNtL3Bvc2l4 X3R5cGVzLmgKaW5kZXggZDJkZTljYi4uZmE1NDZmZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vaW5j bHVkZS91YXBpL2FzbS9wb3NpeF90eXBlcy5oCisrKyBiL2FyY2gvYXJtL2luY2x1ZGUvdWFwaS9h c20vcG9zaXhfdHlwZXMuaApAQCAtMSwxOCArMSwxMyBAQAotLyoKLSAqICBhcmNoL2FybS9pbmNs dWRlL2FzbS9wb3NpeF90eXBlcy5oCi0gKgotICogIENvcHlyaWdodCAoQykgMTk5Ni0xOTk4IFJ1 c3NlbGwgS2luZy4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKLSAqIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgotICoKLSAqICBDaGFuZ2Vsb2c6Ci0g KiAgIDI3LTA2LTE5OTYJUk1LCUNyZWF0ZWQKLSAqLwotI2lmbmRlZiBfX0FSQ0hfQVJNX1BPU0lY X1RZUEVTX0gKLSNkZWZpbmUgX19BUkNIX0FSTV9QT1NJWF9UWVBFU19ICisjaWZuZGVmIF9fQVNN X1BPU0lYX1RZUEVTX0gKKyNkZWZpbmUgX19BU01fUE9TSVhfVFlQRVNfSAorCisjaWYgZGVmaW5l ZCBfX2FhcmNoNjRfXwordHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBfX2tlcm5lbF9vbGRfdWlkX3Q7 Cit0eXBlZGVmIHVuc2lnbmVkIHNob3J0IF9fa2VybmVsX29sZF9naWRfdDsKKyNkZWZpbmUgX19r ZXJuZWxfb2xkX3VpZF90IF9fa2VybmVsX29sZF91aWRfdAogCisjZWxzZSAvKiBmb3IgYXJtICAq LworCQogLyoKICAqIFRoaXMgZmlsZSBpcyBnZW5lcmFsbHkgdXNlZCBieSB1c2VyLWxldmVsIHNv ZnR3YXJlLCBzbyB5b3UgbmVlZCB0bwogICogYmUgYSBsaXR0bGUgY2FyZWZ1bCBhYm91dCBuYW1l c3BhY2UgcG9sbHV0aW9uIGV0Yy4gIEFsc28sIHdlIGNhbm5vdApAQCAtMzEsNyArMjYsOSBAQAog CiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0CQlfX2tlcm5lbF9vbGRfZGV2X3Q7CiAjZGVmaW5lIF9f a2VybmVsX29sZF9kZXZfdCBfX2tlcm5lbF9vbGRfZGV2X3QKKwkKKyNlbmRpZiAvKiBhYXJjaDY0 L2FybSAgKi8KIAogI2luY2x1ZGUgPGFzbS1nZW5lcmljL3Bvc2l4X3R5cGVzLmg+CiAKLSNlbmRp ZgorI2VuZGlmIC8qICBfX0FTTV9QT1NJWF9UWVBFU19IICovCmRpZmYgLS1naXQgYS9hcmNoL2Fy bS9pbmNsdWRlL3VhcGkvYXNtL3B0cmFjZS5oIGIvYXJjaC9hcm0vaW5jbHVkZS91YXBpL2FzbS9w dHJhY2UuaAppbmRleCA1YWYwZWQxLi41M2Y5NDFlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9pbmNs dWRlL3VhcGkvYXNtL3B0cmFjZS5oCisrKyBiL2FyY2gvYXJtL2luY2x1ZGUvdWFwaS9hc20vcHRy YWNlLmgKQEAgLTEsMTQgKzEsOTcgQEAKIC8qCi0gKiAgYXJjaC9hcm0vaW5jbHVkZS9hc20vcHRy YWNlLmgKKyAqIEJhc2VkIG9uIGFyY2gvYXJtL2luY2x1ZGUvYXNtL3B0cmFjZS5oCiAgKgotICog IENvcHlyaWdodCAoQykgMTk5Ni0yMDAzIFJ1c3NlbGwgS2luZworICogQ29weXJpZ2h0IChDKSAx OTk2LTIwMDMgUnVzc2VsbCBLaW5nCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQVJNIEx0ZC4KICAq CiAgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQogICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKICAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAq IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisjaWZuZGVmIF9VQVBJX19BU01fUFRSQUNFX0gK KyNkZWZpbmUgX1VBUElfX0FTTV9QVFJBQ0VfSAorCisjaWYgZGVmaW5lZCBfX2FhcmNoNjRfXwor CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworI2luY2x1ZGUgPGFzbS9od2NhcC5oPgorCisK Ky8qCisgKiBQU1IgYml0cworICovCisjZGVmaW5lIFBTUl9NT0RFX0VMMHQJMHgwMDAwMDAwMAor I2RlZmluZSBQU1JfTU9ERV9FTDF0CTB4MDAwMDAwMDQKKyNkZWZpbmUgUFNSX01PREVfRUwxaAkw eDAwMDAwMDA1CisjZGVmaW5lIFBTUl9NT0RFX0VMMnQJMHgwMDAwMDAwOAorI2RlZmluZSBQU1Jf TU9ERV9FTDJoCTB4MDAwMDAwMDkKKyNkZWZpbmUgUFNSX01PREVfRUwzdAkweDAwMDAwMDBjCisj ZGVmaW5lIFBTUl9NT0RFX0VMM2gJMHgwMDAwMDAwZAorI2RlZmluZSBQU1JfTU9ERV9NQVNLCTB4 MDAwMDAwMGYKKworLyogQUFyY2gzMiBDUFNSIGJpdHMgKi8KKyNkZWZpbmUgUFNSX01PREUzMl9C SVQJCTB4MDAwMDAwMTAKKworLyogQUFyY2g2NCBTUFNSIGJpdHMgKi8KKyNkZWZpbmUgUFNSX0Zf QklUCTB4MDAwMDAwNDAKKyNkZWZpbmUgUFNSX0lfQklUCTB4MDAwMDAwODAKKyNkZWZpbmUgUFNS X0FfQklUCTB4MDAwMDAxMDAKKyNkZWZpbmUgUFNSX0RfQklUCTB4MDAwMDAyMDAKKyNkZWZpbmUg UFNSX1FfQklUCTB4MDgwMDAwMDAKKyNkZWZpbmUgUFNSX1ZfQklUCTB4MTAwMDAwMDAKKyNkZWZp bmUgUFNSX0NfQklUCTB4MjAwMDAwMDAKKyNkZWZpbmUgUFNSX1pfQklUCTB4NDAwMDAwMDAKKyNk ZWZpbmUgUFNSX05fQklUCTB4ODAwMDAwMDAKKworLyoKKyAqIEdyb3VwcyBvZiBQU1IgYml0cwog ICovCi0jaWZuZGVmIF9VQVBJX19BU01fQVJNX1BUUkFDRV9ICi0jZGVmaW5lIF9VQVBJX19BU01f QVJNX1BUUkFDRV9ICisjZGVmaW5lIFBTUl9mCQkweGZmMDAwMDAwCS8qIEZsYWdzCQkqLworI2Rl ZmluZSBQU1JfcwkJMHgwMGZmMDAwMAkvKiBTdGF0dXMJCSovCisjZGVmaW5lIFBTUl94CQkweDAw MDBmZjAwCS8qIEV4dGVuc2lvbgkJKi8KKyNkZWZpbmUgUFNSX2MJCTB4MDAwMDAwZmYJLyogQ29u dHJvbAkJKi8KKworCisjaWZuZGVmIF9fQVNTRU1CTFlfXworCisvKgorICogVXNlciBzdHJ1Y3R1 cmVzIGZvciBnZW5lcmFsIHB1cnBvc2UsIGZsb2F0aW5nIHBvaW50IGFuZCBkZWJ1ZyByZWdpc3Rl cnMuCisgKi8KK3N0cnVjdCB1c2VyX3B0X3JlZ3MgeworCV9fdTY0CQlyZWdzWzMxXTsKKwlfX3U2 NAkJc3A7CisJX191NjQJCXBjOworCV9fdTY0CQlwc3RhdGU7Cit9OworCitzdHJ1Y3QgdXNlcl9m cHNpbWRfc3RhdGUgeworCV9fdWludDEyOF90CXZyZWdzWzMyXTsKKwlfX3UzMgkJZnBzcjsKKwlf X3UzMgkJZnBjcjsKK307CisKK3N0cnVjdCB1c2VyX2h3ZGVidWdfc3RhdGUgeworCV9fdTMyCQlk YmdfaW5mbzsKKwlfX3UzMgkJcGFkOworCXN0cnVjdCB7CisJCV9fdTY0CWFkZHI7CisJCV9fdTMy CWN0cmw7CisJCV9fdTMyCXBhZDsKKwl9CQlkYmdfcmVnc1sxNl07Cit9OworCisjZW5kaWYgLyog X19BU1NFTUJMWV9fICovCisKKyNlbHNlIC8qIGZvciBhcm0gICovCiAKICNpbmNsdWRlIDxhc20v aHdjYXAuaD4KIApAQCAtMTU0LDQgKzIzNyw2IEBAIHN0cnVjdCBwdF9yZWdzIHsKIAogI2VuZGlm IC8qIF9fQVNTRU1CTFlfXyAqLwogCi0jZW5kaWYgLyogX1VBUElfX0FTTV9BUk1fUFRSQUNFX0gg Ki8KKyNlbmRpZiAvKiBhYXJjaDY0L2FybSAgKi8KKworI2VuZGlmIC8qIF9VQVBJX19BU01fUFRS QUNFX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUvdWFwaS9hc20vc2V0dXAuaCBi L2FyY2gvYXJtL2luY2x1ZGUvdWFwaS9hc20vc2V0dXAuaAppbmRleCA5NzlmZjQwLi4zYzlmNWRi IDEwMDY0NAotLS0gYS9hcmNoL2FybS9pbmNsdWRlL3VhcGkvYXNtL3NldHVwLmgKKysrIGIvYXJj aC9hcm0vaW5jbHVkZS91YXBpL2FzbS9zZXR1cC5oCkBAIC0xLDIxICsxLDMxIEBACiAvKgotICog IGxpbnV4L2luY2x1ZGUvYXNtL3NldHVwLmgKKyAqIEJhc2VkIG9uIGFyY2gvYXJtL2luY2x1ZGUv YXNtL3NldHVwLmgKICAqCi0gKiAgQ29weXJpZ2h0IChDKSAxOTk3LTE5OTkgUnVzc2VsbCBLaW5n CisgKiBDb3B5cmlnaHQgKEMpIDE5OTctMTk5OSBSdXNzZWxsIEtpbmcKKyAqIENvcHlyaWdodCAo QykgMjAxMiBBUk0gTHRkLgogICoKICAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgKiBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwogICogcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCiAgKgotICogIFN0cnVjdHVy ZSBwYXNzZWQgdG8ga2VybmVsIHRvIHRlbGwgaXQgYWJvdXQgdGhlCi0gKiAgaGFyZHdhcmUgaXQn cyBydW5uaW5nIG9uLiAgU2VlIERvY3VtZW50YXRpb24vYXJtL1NldHVwCi0gKiAgZm9yIG1vcmUg aW5mby4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LgogICovCi0jaWZuZGVmIF9VQVBJX19BU01BUk1fU0VUVVBfSAotI2RlZmluZSBfVUFQSV9f QVNNQVJNX1NFVFVQX0gKKyNpZm5kZWYgX19BU01fU0VUVVBfSAorI2RlZmluZSBfX0FTTV9TRVRV UF9ICiAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogCisjaWYgZGVmaW5lZCBfX2FhcmNoNjRf XworI2RlZmluZSBDT01NQU5EX0xJTkVfU0laRQkyMDQ4CisKKyNlbHNlIC8qIGZvciBhcm0gICov CisKICNkZWZpbmUgQ09NTUFORF9MSU5FX1NJWkUgMTAyNAogCiAvKiBUaGUgbGlzdCBlbmRzIHdp dGggYW4gQVRBR19OT05FIG5vZGUuICovCkBAIC0xODMsNSArMTkzLDYgQEAgc3RydWN0IHRhZ3Rh YmxlIHsKICNkZWZpbmUgZm9yX2VhY2hfdGFnKHQsYmFzZSkJCVwKIAlmb3IgKHQgPSBiYXNlOyB0 LT5oZHIuc2l6ZTsgdCA9IHRhZ19uZXh0KHQpKQogCisjZW5kaWYgLyogIGFhcmNoNjQvYXJtICAq LwogCi0jZW5kaWYgLyogX1VBUElfX0FTTUFSTV9TRVRVUF9IICovCisjZW5kaWYgLyogX19BU01f U0VUVVBfSCAgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUvdWFwaS9hc20vc2lnY29u dGV4dC5oIGIvYXJjaC9hcm0vaW5jbHVkZS91YXBpL2FzbS9zaWdjb250ZXh0LmgKaW5kZXggZmMw YjgwYi4uNDMxNmNjZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS91YXBpL2FzbS9zaWdj b250ZXh0LmgKKysrIGIvYXJjaC9hcm0vaW5jbHVkZS91YXBpL2FzbS9zaWdjb250ZXh0LmgKQEAg LTEsNSArMSwxMjQgQEAKLSNpZm5kZWYgX0FTTUFSTV9TSUdDT05URVhUX0gKLSNkZWZpbmUgX0FT TUFSTV9TSUdDT05URVhUX0gKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQVJNIEx0ZC4KKyAq CisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAq IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisjaWZuZGVmIF9VQVBJX19BU01fU0lHQ09OVEVY VF9ICisjZGVmaW5lIF9VQVBJX19BU01fU0lHQ09OVEVYVF9ICisKKyNpZiBkZWZpbmVkIF9fYWFy Y2g2NF9fCisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCisvKgorICogU2lnbmFsIGNvbnRl eHQgc3RydWN0dXJlIC0gY29udGFpbnMgYWxsIGluZm8gdG8gZG8gd2l0aCB0aGUgc3RhdGUKKyAq IGJlZm9yZSB0aGUgc2lnbmFsIGhhbmRsZXIgd2FzIGludm9rZWQuCisgKi8KK3N0cnVjdCBzaWdj b250ZXh0IHsKKwlfX3U2NCBmYXVsdF9hZGRyZXNzOworCS8qIEFBcmNoNjQgcmVnaXN0ZXJzICov CisJX191NjQgcmVnc1szMV07CisJX191NjQgc3A7CisJX191NjQgcGM7CisJX191NjQgcHN0YXRl OworCS8qIDRLIHJlc2VydmVkIGZvciBGUC9TSU1EIHN0YXRlIGFuZCBmdXR1cmUgZXhwYW5zaW9u ICovCisJX191OCBfX3Jlc2VydmVkWzQwOTZdIF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKDE2 KSkpOworfTsKKworLyoKKyAqIEFsbG9jYXRpb24gb2YgX19yZXNlcnZlZFtdOgorICogKE5vdGU6 IHJlY29yZHMgZG8gbm90IG5lY2Vzc2FyaWx5IG9jY3VyIGluIHRoZSBvcmRlciBzaG93biBoZXJl LikKKyAqCisgKglzaXplCQlkZXNjcmlwdGlvbgorICoKKyAqCTB4MjEwCQlmcHNpbWRfY29udGV4 dAorICoJIDB4MTAJCWVzcl9jb250ZXh0CisgKgkgMHgyMAkJZXh0cmFfY29udGV4dCAob3B0aW9u YWwpCisgKgkgMHgxMAkJdGVybWluYXRvciAobnVsbCBfYWFyY2g2NF9jdHgpCisgKgorICoJMHhk YjAJCShyZXNlcnZlZCBmb3IgZnV0dXJlIGFsbG9jYXRpb24pCisgKgorICogTmV3IHJlY29yZHMg dGhhdCBjYW4gZXhjZWVkIHRoaXMgc3BhY2UgbmVlZCB0byBiZSBvcHQtaW4gZm9yIHVzZXJzcGFj ZSwgc28KKyAqIHRoYXQgYW4gZXhwYW5kZWQgc2lnbmFsIGZyYW1lIGlzIG5vdCBnZW5lcmF0ZWQg dW5leHBlY3RlZGx5LiAgVGhlIG1lY2hhbmlzbQorICogZm9yIG9wdGluZyBpbiB3aWxsIGRlcGVu ZCBvbiB0aGUgZXh0ZW5zaW9uIHRoYXQgZ2VuZXJhdGVzIGVhY2ggbmV3IHJlY29yZC4KKyAqIFRo ZSBhYm92ZSB0YWJsZSBkb2N1bWVudHMgdGhlIG1heGltdW0gc2V0IGFuZCBzaXplcyBvZiByZWNv cmRzIHRoYW4gY2FuIGJlCisgKiBnZW5lcmF0ZWQgd2hlbiB1c2Vyc3BhY2UgZG9lcyBub3Qgb3B0 IGluIGZvciBhbnkgc3VjaCBleHRlbnNpb24uCisgKi8KKworLyoKKyAqIEhlYWRlciB0byBiZSB1 c2VkIGF0IHRoZSBiZWdpbm5pbmcgb2Ygc3RydWN0dXJlcyBleHRlbmRpbmcgdGhlIHVzZXIKKyAq IGNvbnRleHQuIFN1Y2ggc3RydWN0dXJlcyBtdXN0IGJlIHBsYWNlZCBhZnRlciB0aGUgcnRfc2ln ZnJhbWUgb24gdGhlIHN0YWNrCisgKiBhbmQgYmUgMTYtYnl0ZSBhbGlnbmVkLiBUaGUgbGFzdCBz dHJ1Y3R1cmUgbXVzdCBiZSBhIGR1bW15IG9uZSB3aXRoIHRoZQorICogbWFnaWMgYW5kIHNpemUg c2V0IHRvIDAuCisgKi8KK3N0cnVjdCBfYWFyY2g2NF9jdHggeworCV9fdTMyIG1hZ2ljOworCV9f dTMyIHNpemU7Cit9OworCisjZGVmaW5lIEZQU0lNRF9NQUdJQwkweDQ2NTA4MDAxCisKK3N0cnVj dCBmcHNpbWRfY29udGV4dCB7CisJc3RydWN0IF9hYXJjaDY0X2N0eCBoZWFkOworCV9fdTMyIGZw c3I7CisJX191MzIgZnBjcjsKKwlfX3VpbnQxMjhfdCB2cmVnc1szMl07Cit9OworCisvKiBFU1Jf RUwxIGNvbnRleHQgKi8KKyNkZWZpbmUgRVNSX01BR0lDCTB4NDU1MzUyMDEKKworc3RydWN0IGVz cl9jb250ZXh0IHsKKwlzdHJ1Y3QgX2FhcmNoNjRfY3R4IGhlYWQ7CisJX191NjQgZXNyOworfTsK KworLyoKKyAqIGV4dHJhX2NvbnRleHQ6IGRlc2NyaWJlcyBleHRyYSBzcGFjZSBpbiB0aGUgc2ln bmFsIGZyYW1lIGZvcgorICogYWRkaXRpb25hbCBzdHJ1Y3R1cmVzIHRoYXQgZG9uJ3QgZml0IGlu IHNpZ2NvbnRleHQuX19yZXNlcnZlZFtdLgorICoKKyAqIE5vdGU6CisgKgorICogMSkgZnBzaW1k X2NvbnRleHQsIGVzcl9jb250ZXh0IGFuZCBleHRyYV9jb250ZXh0IG11c3QgYmUgcGxhY2VkIGlu CisgKiBzaWdjb250ZXh0Ll9fcmVzZXJ2ZWRbXSBpZiBwcmVzZW50LiAgVGhleSBjYW5ub3QgYmUg cGxhY2VkIGluIHRoZQorICogZXh0cmEgc3BhY2UuICBBbnkgb3RoZXIgcmVjb3JkIGNhbiBiZSBw bGFjZWQgZWl0aGVyIGluIHRoZSBleHRyYQorICogc3BhY2Ugb3IgaW4gc2lnY29udGV4dC5fX3Jl c2VydmVkW10sIHVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkIGluCisgKiB0aGlzIGZpbGUuCisg KgorICogMikgVGhlcmUgbXVzdCBub3QgYmUgbW9yZSB0aGFuIG9uZSBleHRyYV9jb250ZXh0Lgor ICoKKyAqIDMpIElmIGV4dHJhX2NvbnRleHQgaXMgcHJlc2VudCwgaXQgbXVzdCBiZSBmb2xsb3dl ZCBpbW1lZGlhdGVseSBpbgorICogc2lnY29udGV4dC5fX3Jlc2VydmVkW10gYnkgdGhlIHRlcm1p bmF0aW5nIG51bGwgX2FhcmNoNjRfY3R4LgorICoKKyAqIDQpIFRoZSBleHRyYSBzcGFjZSB0byB3 aGljaCBkYXRhcCBwb2ludHMgbXVzdCBzdGFydCBhdCB0aGUgZmlyc3QKKyAqIDE2LWJ5dGUgYWxp Z25lZCBhZGRyZXNzIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSB0ZXJtaW5hdGluZyBudWxsCisgKiBf YWFyY2g2NF9jdHggdGhhdCBmb2xsb3dzIHRoZSBleHRyYV9jb250ZXh0IHN0cnVjdHVyZSBpbgor ICogX19yZXNlcnZlZFtdLiAgVGhlIGV4dHJhIHNwYWNlIG1heSBvdmVycnVuIHRoZSBlbmQgb2Yg X19yZXNlcnZlZFtdLAorICogYXMgaW5kaWNhdGVkIGJ5IGEgc3VmZmljaWVudGx5IGxhcmdlIHZh bHVlIGZvciB0aGUgc2l6ZSBmaWVsZC4KKyAqCisgKiA1KSBUaGUgZXh0cmEgc3BhY2UgbXVzdCBp dHNlbGYgYmUgdGVybWluYXRlZCB3aXRoIGEgbnVsbAorICogX2FhcmNoNjRfY3R4LgorICovCisj ZGVmaW5lIEVYVFJBX01BR0lDCTB4NDU1ODU0MDEKKworc3RydWN0IGV4dHJhX2NvbnRleHQgewor CXN0cnVjdCBfYWFyY2g2NF9jdHggaGVhZDsKKwlfX3U2NCBkYXRhcDsgLyogMTYtYnl0ZSBhbGln bmVkIHBvaW50ZXIgdG8gZXh0cmEgc3BhY2UgY2FzdCB0byBfX3U2NCAqLworCV9fdTMyIHNpemU7 IC8qIHNpemUgaW4gYnl0ZXMgb2YgdGhlIGV4dHJhIHNwYWNlICovCisJX191MzIgX19yZXNlcnZl ZFszXTsKK307CisKKyNlbHNlIC8qIGZvciBhcm0gICovCiAKIC8qCiAgKiBTaWduYWwgY29udGV4 dCBzdHJ1Y3R1cmUgLSBjb250YWlucyBhbGwgaW5mbyB0byBkbyB3aXRoIHRoZSBzdGF0ZQpAQCAt MzAsNSArMTQ5LDYgQEAgc3RydWN0IHNpZ2NvbnRleHQgewogCXVuc2lnbmVkIGxvbmcgZmF1bHRf YWRkcmVzczsKIH07CiAKKyNlbmRpZiAvKiBhYXJjaDY0L2FybSAgKi8KIAotI2VuZGlmCisjZW5k aWYgLyogX1VBUElfX0FTTV9TSUdDT05URVhUX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2lu Y2x1ZGUvdWFwaS9hc20vc2lnbmFsLmggYi9hcmNoL2FybS9pbmNsdWRlL3VhcGkvYXNtL3NpZ25h bC5oCmluZGV4IDMzMDczYmQuLjllZTMxZjZkIDEwMDY0NAotLS0gYS9hcmNoL2FybS9pbmNsdWRl L3VhcGkvYXNtL3NpZ25hbC5oCisrKyBiL2FyY2gvYXJtL2luY2x1ZGUvdWFwaS9hc20vc2lnbmFs LmgKQEAgLTEsNiArMSwxOSBAQAogI2lmbmRlZiBfVUFQSV9BU01BUk1fU0lHTkFMX0gKICNkZWZp bmUgX1VBUElfQVNNQVJNX1NJR05BTF9ICiAKKyNpZiBkZWZpbmVkIF9fYWFyY2g2NF9fCisKKy8q IFJlcXVpcmVkIGZvciBBQXJjaDMyIGNvbXBhdGliaWxpdHkuICovCisjZGVmaW5lIFNBX1JFU1RP UkVSCXgwNDAwMDAwMAorCisjZGVmaW5lIE1JTlNJR1NUS1NaCTEyMAorI2RlZmluZSBTSUdTVEtT Wgk2Mzg0CisKKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy9zaWduYWwuaD4KKworCisjZWxzZSAvKiBm b3IgYXJtICAqLworCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KIAogLyogQXZvaWQgdG9vIG1h bnkgaGVhZGVyIG9yZGVyaW5nIHByb2JsZW1zLiAgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2lu Y2x1ZGUvdWFwaS9hc20vc3RhdC5oIGIvYXJjaC9hcm0vaW5jbHVkZS91YXBpL2FzbS9zdGF0LmgK aW5kZXggNDJjMGMxMy4uMWQ3NWVhYyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS91YXBp L2FzbS9zdGF0LmgKKysrIGIvYXJjaC9hcm0vaW5jbHVkZS91YXBpL2FzbS9zdGF0LmgKQEAgLTEs NiArMSwyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBUk0gTHRkLgorICoKKyAqIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor ICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCisgKi8KKyAKICNpZm5kZWYgX0FTTUFSTV9TVEFUX0gKICNkZWZpbmUg X0FTTUFSTV9TVEFUX0gKIAorI2lmIGRlZmluZWQgX19hYXJjaDY0X18KKyNpbmNsdWRlIDxhc20t Z2VuZXJpYy9zdGF0Lmg+CisKKyNlbHNlIC8qIGZvciBhcm0gICovCisKIHN0cnVjdCBfX29sZF9r ZXJuZWxfc3RhdCB7CiAJdW5zaWduZWQgc2hvcnQgc3RfZGV2OwogCXVuc2lnbmVkIHNob3J0IHN0 X2lubzsKQEAgLTg0LDQgKzEwNSw2IEBAIHN0cnVjdCBzdGF0NjQgewogCXVuc2lnbmVkIGxvbmcg bG9uZwlzdF9pbm87CiB9OwogCi0jZW5kaWYKKyNlbmRpZiAvKiBhYXJjaDY0L2FybSAgKi8KKwor I2VuZGlmIC8qIF9BU01BUk1fU1RBVF9IICAqLwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUvdWFwaS9hc20vc3RhdGZzLmggYi9hcmNoL2Fy bS9pbmNsdWRlL3VhcGkvYXNtL3N0YXRmcy5oCmluZGV4IDA3OTQ0N2MuLjMwOTA3OGQgMTAwNjQ0 Ci0tLSBhL2FyY2gvYXJtL2luY2x1ZGUvdWFwaS9hc20vc3RhdGZzLmgKKysrIGIvYXJjaC9hcm0v aW5jbHVkZS91YXBpL2FzbS9zdGF0ZnMuaApAQCAtMSw1ICsxLDI2IEBACi0jaWZuZGVmIF9BU01B Uk1fU1RBVEZTX0gKLSNkZWZpbmUgX0FTTUFSTV9TVEFURlNfSAorLyoKKyAqIENvcHlyaWdodCAo QykgMjAxMiBBUk0gTHRkLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJ ZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKyNpZm5kZWYg X19BU01fU1RBVEZTX0gKKyNkZWZpbmUgX19BU01fU1RBVEZTX0gKKworI2lmIGRlZmluZWQgX19h YXJjaDY0X18KKworI2RlZmluZSBBUkNIX1BBQ0tfQ09NUEFUX1NUQVRGUzY0IF9fYXR0cmlidXRl X18oKHBhY2tlZCxhbGlnbmVkKDQpKSkKKworI2Vsc2UgLyogZm9yIGFybSAgKi8KIAogLyoKICAq IFdpdGggRUFCSSB0aGVyZSBpcyA0IGJ5dGVzIG9mIHBhZGRpbmcgYWRkZWQgdG8gdGhpcyBzdHJ1 Y3R1cmUuCkBAIC04LDUgKzI5LDggQEAKICAqLwogI2RlZmluZSBBUkNIX1BBQ0tfU1RBVEZTNjQg X19hdHRyaWJ1dGVfXygocGFja2VkLGFsaWduZWQoNCkpKQogCisjZW5kaWYgLyogIGFhcmNoNjQv YXJtICAqLworCiAjaW5jbHVkZSA8YXNtLWdlbmVyaWMvc3RhdGZzLmg+Ci0jZW5kaWYKKworI2Vu ZGlmIC8qIF9fQVNNX1NUQVRGU19IICAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vaW5jbHVkZS91 YXBpL2FzbS91bmlzdGQuaCBiL2FyY2gvYXJtL2luY2x1ZGUvdWFwaS9hc20vdW5pc3RkLmgKaW5k ZXggMjhiZDQ1Ni4uZTUxNmFlZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS91YXBpL2Fz bS91bmlzdGQuaAorKysgYi9hcmNoL2FybS9pbmNsdWRlL3VhcGkvYXNtL3VuaXN0ZC5oCkBAIC0x LDE4ICsxLDMwIEBACiAvKgotICogIGFyY2gvYXJtL2luY2x1ZGUvYXNtL3VuaXN0ZC5oCi0gKgot ICogIENvcHlyaWdodCAoQykgMjAwMS0yMDA1IFJ1c3NlbGwgS2luZworICogQ29weXJpZ2h0IChD KSAyMDEyIEFSTSBMdGQuCiAgKgogICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAqIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCiAgKiBwdWJs aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KICAqCi0gKiBQbGVhc2UgZm9y d2FyZCBfYWxsXyBjaGFuZ2VzIHRvIHRoaXMgZmlsZSB0byBybWtAYXJtLmxpbnV4Lm9yZy51aywK LSAqIG5vIG1hdHRlciB3aGF0IHRoZSBjaGFuZ2UgaXMuICBUaGFua3MhCisgKiBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElm IG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICAqLworCiAjaWZuZGVm IF9VQVBJX19BU01fQVJNX1VOSVNURF9ICiAjZGVmaW5lIF9VQVBJX19BU01fQVJNX1VOSVNURF9I CiAKKyNpZiBkZWZpbmVkIF9fYWFyY2g2NF9fCisKKyNkZWZpbmUgX19BUkNIX1dBTlRfUkVOQU1F QVQKKworI2luY2x1ZGUgPGFzbS1nZW5lcmljL3VuaXN0ZC5oPgorCisjZWxzZSAvKiBmb3IgYXJt ICAqLworCiAjZGVmaW5lIF9fTlJfT0FCSV9TWVNDQUxMX0JBU0UJMHg5MDAwMDAKIAogI2lmIGRl ZmluZWQoX190aHVtYl9fKSB8fCBkZWZpbmVkKF9fQVJNX0VBQklfXykKQEAgLTM2LDQgKzQ4LDYg QEAKICNkZWZpbmUgX19BUk1fTlJfdXNyMzIJCQkoX19BUk1fTlJfQkFTRSs0KQogI2RlZmluZSBf X0FSTV9OUl9zZXRfdGxzCQkoX19BUk1fTlJfQkFTRSs1KQogCisjZW5kaWYgLyogYWFyY2g2NC9h cm0gICovCisKICNlbmRpZiAvKiBfVUFQSV9fQVNNX0FSTV9VTklTVERfSCAqLwpkaWZmIC0tZ2l0 IGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9od2NhcC5oIGIvYXJjaC9hcm02NC9pbmNsdWRlL2Fz bS9od2NhcC5oCmluZGV4IDQwMGI4MGIuLjJkNWUzZTYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQv aW5jbHVkZS9hc20vaHdjYXAuaAorKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2h3Y2FwLmgK QEAgLTE4LDYgKzE4LDggQEAKIAogI2luY2x1ZGUgPHVhcGkvYXNtL2h3Y2FwLmg+CiAKKyNpZiBk ZWZpbmVkIF9fYWFyY2g2NF9fCisKICNkZWZpbmUgQ09NUEFUX0hXQ0FQX0hBTEYJKDEgPDwgMSkK ICNkZWZpbmUgQ09NUEFUX0hXQ0FQX1RIVU1CCSgxIDw8IDIpCiAjZGVmaW5lIENPTVBBVF9IV0NB UF9GQVNUX01VTFQJKDEgPDwgNCkKQEAgLTYyLDQgKzY0LDIwIEBAIGVudW0gewogCiBleHRlcm4g dW5zaWduZWQgbG9uZyBlbGZfaHdjYXA7CiAjZW5kaWYKLSNlbmRpZgorCisjZWxzZSAvKiAgZm9y IGFybSAgKi8KKworI2lmICFkZWZpbmVkKF9fQVNTRU1CTFlfXykKKy8qCisgKiBUaGlzIHlpZWxk cyBhIG1hc2sgdGhhdCB1c2VyIHByb2dyYW1zIGNhbiB1c2UgdG8gZmlndXJlIG91dCB3aGF0Cisg KiBpbnN0cnVjdGlvbiBzZXQgdGhpcyBjcHUgc3VwcG9ydHMuCisgKi8KKyNkZWZpbmUgRUxGX0hX Q0FQCShlbGZfaHdjYXApCisjZGVmaW5lIEVMRl9IV0NBUDIJKGVsZl9od2NhcDIpCitleHRlcm4g dW5zaWduZWQgaW50IGVsZl9od2NhcCwgZWxmX2h3Y2FwMjsKKworI2VuZGlmICAvKiBfX0FTU0VN QkxZX18gICovCisKKyNlbmRpZiAvKiBhYXJjaDY0L2FybSAgKi8KKworI2VuZGlmIC8qIF9fQVNN X0hXQ0FQX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vcHRyYWNlLmgg Yi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3B0cmFjZS5oCmluZGV4IDExNDAzZmQuLjY2MmEyZDZh IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3B0cmFjZS5oCisrKyBiL2FyY2gv YXJtNjQvaW5jbHVkZS9hc20vcHRyYWNlLmgKQEAgLTE5LDYgKzE5LDggQEAKICNpZm5kZWYgX19B U01fUFRSQUNFX0gKICNkZWZpbmUgX19BU01fUFRSQUNFX0gKIAorI2lmIGRlZmluZWQgX19hYXJj aDY0X18KKwogI2luY2x1ZGUgPHVhcGkvYXNtL3B0cmFjZS5oPgogCiAvKiBDdXJyZW50IEV4Y2Vw dGlvbiBMZXZlbCB2YWx1ZXMsIGFzIGNvbnRhaW5lZCBpbiBDdXJyZW50RUwgKi8KQEAgLTI0OSw0 ICsyNTEsMTY5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwcm9jZWR1cmVfbGlua19wb2ludGVyX3Nl dChzdHJ1Y3QgcHRfcmVncyAqcmVncywKIGV4dGVybiB1bnNpZ25lZCBsb25nIHByb2ZpbGVfcGMo c3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwogCiAjZW5kaWYgLyogX19BU1NFTUJMWV9fICovCisKKyNl bHNlIC8qIGZvciBhcm0gICovCisKKyNpbmNsdWRlIDx1YXBpL2FzbS9wdHJhY2UuaD4KKworI2lm bmRlZiBfX0FTU0VNQkxZX18KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCitzdHJ1Y3QgcHRf cmVncyB7CisJdW5zaWduZWQgbG9uZyB1cmVnc1sxOF07Cit9OworCitzdHJ1Y3Qgc3ZjX3B0X3Jl Z3MgeworCXN0cnVjdCBwdF9yZWdzIHJlZ3M7CisJdTMyIGRhY3I7CisJdTMyIGFkZHJfbGltaXQ7 Cit9OworCisjZGVmaW5lIHRvX3N2Y19wdF9yZWdzKHIpIGNvbnRhaW5lcl9vZihyLCBzdHJ1Y3Qg c3ZjX3B0X3JlZ3MsIHJlZ3MpCisKKyNkZWZpbmUgdXNlcl9tb2RlKHJlZ3MpCVwKKwkoKChyZWdz KS0+QVJNX2Nwc3IgJiAweGYpID09IDApCisKKyNpZmRlZiBDT05GSUdfQVJNX1RIVU1CCisjZGVm aW5lIHRodW1iX21vZGUocmVncykgXAorCSgoKHJlZ3MpLT5BUk1fY3BzciAmIFBTUl9UX0JJVCkp CisjZWxzZQorI2RlZmluZSB0aHVtYl9tb2RlKHJlZ3MpICgwKQorI2VuZGlmCisKKyNpZm5kZWYg Q09ORklHX0NQVV9WN00KKyNkZWZpbmUgaXNhX21vZGUocmVncykgXAorCSgoKChyZWdzKS0+QVJN X2Nwc3IgJiBQU1JfSl9CSVQpID4+IChfX2ZmcyhQU1JfSl9CSVQpIC0gMSkpIHwgXAorCSAoKChy ZWdzKS0+QVJNX2Nwc3IgJiBQU1JfVF9CSVQpID4+IChfX2ZmcyhQU1JfVF9CSVQpKSkpCisjZWxz ZQorI2RlZmluZSBpc2FfbW9kZShyZWdzKSAxIC8qIFRodW1iICovCisjZW5kaWYKKworI2RlZmlu ZSBwcm9jZXNzb3JfbW9kZShyZWdzKSBcCisJKChyZWdzKS0+QVJNX2Nwc3IgJiBNT0RFX01BU0sp CisKKyNkZWZpbmUgaW50ZXJydXB0c19lbmFibGVkKHJlZ3MpIFwKKwkoISgocmVncyktPkFSTV9j cHNyICYgUFNSX0lfQklUKSkKKworI2RlZmluZSBmYXN0X2ludGVycnVwdHNfZW5hYmxlZChyZWdz KSBcCisJKCEoKHJlZ3MpLT5BUk1fY3BzciAmIFBTUl9GX0JJVCkpCisKKy8qIEFyZSB0aGUgY3Vy cmVudCByZWdpc3RlcnMgc3VpdGFibGUgZm9yIHVzZXIgbW9kZT8KKyAqICh1c2VkIHRvIG1haW50 YWluIHNlY3VyaXR5IGluIHNpZ25hbCBoYW5kbGVycykKKyAqLworc3RhdGljIGlubGluZSBpbnQg dmFsaWRfdXNlcl9yZWdzKHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworI2lmbmRlZiBDT05GSUdf Q1BVX1Y3TQorCXVuc2lnbmVkIGxvbmcgbW9kZSA9IHJlZ3MtPkFSTV9jcHNyICYgTU9ERV9NQVNL OworCisJLyoKKwkgKiBBbHdheXMgY2xlYXIgdGhlIEYgKEZJUSkgYW5kIEEgKGRlbGF5ZWQgYWJv cnQpIGJpdHMKKwkgKi8KKwlyZWdzLT5BUk1fY3BzciAmPSB+KFBTUl9GX0JJVCB8IFBTUl9BX0JJ VCk7CisKKwlpZiAoKHJlZ3MtPkFSTV9jcHNyICYgUFNSX0lfQklUKSA9PSAwKSB7CisJCWlmICht b2RlID09IFVTUl9NT0RFKQorCQkJcmV0dXJuIDE7CisJCWlmIChlbGZfaHdjYXAgJiBIV0NBUF8y NkJJVCAmJiBtb2RlID09IFVTUjI2X01PREUpCisJCQlyZXR1cm4gMTsKKwl9CisKKwkvKgorCSAq IEZvcmNlIENQU1IgdG8gc29tZXRoaW5nIGxvZ2ljYWwuLi4KKwkgKi8KKwlyZWdzLT5BUk1fY3Bz ciAmPSBQU1JfZiB8IFBTUl9zIHwgUFNSX3ggfCBQU1JfVF9CSVQgfCBNT0RFMzJfQklUOworCWlm ICghKGVsZl9od2NhcCAmIEhXQ0FQXzI2QklUKSkKKwkJcmVncy0+QVJNX2Nwc3IgfD0gVVNSX01P REU7CisKKwlyZXR1cm4gMDsKKyNlbHNlIC8qIGlmbmRlZiBDT05GSUdfQ1BVX1Y3TSAqLworCXJl dHVybiAxOworI2VuZGlmCit9CisKK3N0YXRpYyBpbmxpbmUgbG9uZyByZWdzX3JldHVybl92YWx1 ZShzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlyZXR1cm4gcmVncy0+QVJNX3IwOworfQorCisj ZGVmaW5lIGluc3RydWN0aW9uX3BvaW50ZXIocmVncykJKHJlZ3MpLT5BUk1fcGMKKworI2lmZGVm IENPTkZJR19USFVNQjJfS0VSTkVMCisjZGVmaW5lIGZyYW1lX3BvaW50ZXIocmVncykgKHJlZ3Mp LT5BUk1fcjcKKyNlbHNlCisjZGVmaW5lIGZyYW1lX3BvaW50ZXIocmVncykgKHJlZ3MpLT5BUk1f ZnAKKyNlbmRpZgorCitzdGF0aWMgaW5saW5lIHZvaWQgaW5zdHJ1Y3Rpb25fcG9pbnRlcl9zZXQo c3RydWN0IHB0X3JlZ3MgKnJlZ3MsCisJCQkJCSAgIHVuc2lnbmVkIGxvbmcgdmFsKQoreworCWlu c3RydWN0aW9uX3BvaW50ZXIocmVncykgPSB2YWw7Cit9CisKKyNpZmRlZiBDT05GSUdfU01QCitl eHRlcm4gdW5zaWduZWQgbG9uZyBwcm9maWxlX3BjKHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKKyNl bHNlCisjZGVmaW5lIHByb2ZpbGVfcGMocmVncykgaW5zdHJ1Y3Rpb25fcG9pbnRlcihyZWdzKQog I2VuZGlmCisKKyNkZWZpbmUgcHJlZGljYXRlKHgpCQkoKHgpICYgMHhmMDAwMDAwMCkKKyNkZWZp bmUgUFJFRElDQVRFX0FMV0FZUwkweGUwMDAwMDAwCisKKy8qCisgKiBUcnVlIGlmIGluc3RyIGlz IGEgMzItYml0IHRodW1iIGluc3RydWN0aW9uLiBUaGlzIHdvcmtzIGlmIGluc3RyCisgKiBpcyB0 aGUgZmlyc3Qgb3Igb25seSBoYWxmLXdvcmQgb2YgYSB0aHVtYiBpbnN0cnVjdGlvbi4gSXQgYWxz byB3b3JrcworICogd2hlbiBpbnN0ciBob2xkcyBhbGwgMzItYml0cyBvZiBhIHdpZGUgdGh1bWIg aW5zdHJ1Y3Rpb24gaWYgc3RvcmVkCisgKiBpbiB0aGUgZm9ybSAoZmlyc3RfaGFsZjw8MTYpfChz ZWNvbmRfaGFsZikKKyAqLworI2RlZmluZSBpc193aWRlX2luc3RydWN0aW9uKGluc3RyKQkoKHVu c2lnbmVkKShpbnN0cikgPj0gMHhlODAwKQorCisvKgorICoga3Byb2JlLWJhc2VkIGV2ZW50IHRy YWNlciBzdXBwb3J0CisgKi8KKyNpbmNsdWRlIDxsaW51eC9zdGRkZWYuaD4KKyNpbmNsdWRlIDxs aW51eC90eXBlcy5oPgorI2RlZmluZSBNQVhfUkVHX09GRlNFVCAob2Zmc2V0b2Yoc3RydWN0IHB0 X3JlZ3MsIEFSTV9PUklHX3IwKSkKKworZXh0ZXJuIGludCByZWdzX3F1ZXJ5X3JlZ2lzdGVyX29m ZnNldChjb25zdCBjaGFyICpuYW1lKTsKK2V4dGVybiBjb25zdCBjaGFyICpyZWdzX3F1ZXJ5X3Jl Z2lzdGVyX25hbWUodW5zaWduZWQgaW50IG9mZnNldCk7CitleHRlcm4gYm9vbCByZWdzX3dpdGhp bl9rZXJuZWxfc3RhY2soc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgYWRkcik7 CitleHRlcm4gdW5zaWduZWQgbG9uZyByZWdzX2dldF9rZXJuZWxfc3RhY2tfbnRoKHN0cnVjdCBw dF9yZWdzICpyZWdzLAorCQkJCQkgICAgICAgdW5zaWduZWQgaW50IG4pOworCisvKioKKyAqIHJl Z3NfZ2V0X3JlZ2lzdGVyKCkgLSBnZXQgcmVnaXN0ZXIgdmFsdWUgZnJvbSBpdHMgb2Zmc2V0Cisg KiBAcmVnczoJICAgcHRfcmVncyBmcm9tIHdoaWNoIHJlZ2lzdGVyIHZhbHVlIGlzIGdvdHRlbgor ICogQG9mZnNldDogICAgb2Zmc2V0IG51bWJlciBvZiB0aGUgcmVnaXN0ZXIuCisgKgorICogcmVn c19nZXRfcmVnaXN0ZXIgcmV0dXJucyB0aGUgdmFsdWUgb2YgYSByZWdpc3RlciB3aG9zZSBvZmZz ZXQgZnJvbSBAcmVncy4KKyAqIFRoZSBAb2Zmc2V0IGlzIHRoZSBvZmZzZXQgb2YgdGhlIHJlZ2lz dGVyIGluIHN0cnVjdCBwdF9yZWdzLgorICogSWYgQG9mZnNldCBpcyBiaWdnZXIgdGhhbiBNQVhf UkVHX09GRlNFVCwgdGhpcyByZXR1cm5zIDAuCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQg bG9uZyByZWdzX2dldF9yZWdpc3RlcihzdHJ1Y3QgcHRfcmVncyAqcmVncywKKwkJCQkJICAgICAg dW5zaWduZWQgaW50IG9mZnNldCkKK3sKKwlpZiAodW5saWtlbHkob2Zmc2V0ID4gTUFYX1JFR19P RkZTRVQpKQorCQlyZXR1cm4gMDsKKwlyZXR1cm4gKih1bnNpZ25lZCBsb25nICopKCh1bnNpZ25l ZCBsb25nKXJlZ3MgKyBvZmZzZXQpOworfQorCisvKiBWYWxpZCBvbmx5IGZvciBLZXJuZWwgbW9k ZSB0cmFwcy4gKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBrZXJuZWxfc3RhY2tfcG9p bnRlcihzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlyZXR1cm4gcmVncy0+QVJNX3NwOworfQor CitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdXNlcl9zdGFja19wb2ludGVyKHN0cnVjdCBw dF9yZWdzICpyZWdzKQoreworCXJldHVybiByZWdzLT5BUk1fc3A7Cit9CisKKyNkZWZpbmUgY3Vy cmVudF9wdF9yZWdzKHZvaWQpICh7IChzdHJ1Y3QgcHRfcmVncyAqKQkJCVwKKwkJKChjdXJyZW50 X3N0YWNrX3BvaW50ZXIgfCAoVEhSRUFEX1NJWkUgLSAxKSkgLSA3KSAtIDE7CVwKK30pCisKKyNl bmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KKworI2VuZGlmIC8qIGFhcmNoNjQvYXJtICAqLworCisj ZW5kaWYgLyogX1VBUElfX0FTTV9QVFJBQ0VfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9p bmNsdWRlL2FzbS91bmlzdGQuaCBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vdW5pc3RkLmgKaW5k ZXggYTBiYWE5YS4uYTg3Y2JjZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS91 bmlzdGQuaAorKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3VuaXN0ZC5oCkBAIC0xMyw2ICsx MywxMiBAQAogICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKICAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogICovCisKKyNpZm5kZWYgX19B U01fQVJNX1VOSVNURF9ICisjZGVmaW5lIF9fQVNNX0FSTV9VTklTVERfSAorCisjaWYgZGVmaW5l ZCBfX2FhcmNoNjRfXworCiAjaWZkZWYgQ09ORklHX0NPTVBBVAogI2RlZmluZSBfX0FSQ0hfV0FO VF9DT01QQVRfU1RBVDY0CiAjZGVmaW5lIF9fQVJDSF9XQU5UX1NZU19HRVRIT1NUTkFNRQpAQCAt NTMsMyArNTksNjIgQEAKICNlbmRpZgogCiAjZGVmaW5lIE5SX3N5c2NhbGxzIChfX05SX3N5c2Nh bGxzKQorCisjZWxzZSAvKiBmb3IgYXJtICAqLworCisjaW5jbHVkZSA8dWFwaS9hc20vdW5pc3Rk Lmg+CisjaW5jbHVkZSA8YXNtL3VuaXN0ZC1uci5oPgorCisjZGVmaW5lIF9fQVJDSF9XQU5UX1NU QVQ2NAorI2RlZmluZSBfX0FSQ0hfV0FOVF9TWVNfR0VUSE9TVE5BTUUKKyNkZWZpbmUgX19BUkNI X1dBTlRfU1lTX1BBVVNFCisjZGVmaW5lIF9fQVJDSF9XQU5UX1NZU19HRVRQR1JQCisjZGVmaW5l IF9fQVJDSF9XQU5UX1NZU19MTFNFRUsKKyNkZWZpbmUgX19BUkNIX1dBTlRfU1lTX05JQ0UKKyNk ZWZpbmUgX19BUkNIX1dBTlRfU1lTX1NJR1BFTkRJTkcKKyNkZWZpbmUgX19BUkNIX1dBTlRfU1lT X1NJR1BST0NNQVNLCisjZGVmaW5lIF9fQVJDSF9XQU5UX1NZU19PTERfTU1BUAorI2RlZmluZSBf X0FSQ0hfV0FOVF9TWVNfT0xEX1NFTEVDVAorCisjaWYgIWRlZmluZWQoQ09ORklHX0FFQUJJKSB8 fCBkZWZpbmVkKENPTkZJR19PQUJJX0NPTVBBVCkKKyNkZWZpbmUgX19BUkNIX1dBTlRfU1lTX1RJ TUUKKyNkZWZpbmUgX19BUkNIX1dBTlRfU1lTX0lQQworI2RlZmluZSBfX0FSQ0hfV0FOVF9TWVNf T0xEVU1PVU5UCisjZGVmaW5lIF9fQVJDSF9XQU5UX1NZU19BTEFSTQorI2RlZmluZSBfX0FSQ0hf V0FOVF9TWVNfVVRJTUUKKyNkZWZpbmUgX19BUkNIX1dBTlRfU1lTX09MRF9HRVRSTElNSVQKKyNk ZWZpbmUgX19BUkNIX1dBTlRfT0xEX1JFQURESVIKKyNkZWZpbmUgX19BUkNIX1dBTlRfU1lTX1NP Q0tFVENBTEwKKyNlbmRpZgorI2RlZmluZSBfX0FSQ0hfV0FOVF9TWVNfRk9SSworI2RlZmluZSBf X0FSQ0hfV0FOVF9TWVNfVkZPUksKKyNkZWZpbmUgX19BUkNIX1dBTlRfU1lTX0NMT05FCisKKy8q CisgKiBVbmltcGxlbWVudGVkIChvciBhbHRlcm5hdGl2ZWx5IGltcGxlbWVudGVkKSBzeXNjYWxs cworICovCisjZGVmaW5lIF9fSUdOT1JFX2ZhZHZpc2U2NF82NAorI2RlZmluZSBfX0lHTk9SRV9t aWdyYXRlX3BhZ2VzCisKKyNpZmRlZiBfX0FSTV9FQUJJX18KKy8qCisgKiBUaGUgZm9sbG93aW5n IHN5c2NhbGxzIGFyZSBvYnNvbGV0ZSBhbmQgbm8gbG9uZ2VyIGF2YWlsYWJsZSBmb3IgRUFCSToK KyAqICBfX05SX3RpbWUKKyAqICBfX05SX3Vtb3VudAorICogIF9fTlJfc3RpbWUKKyAqICBfX05S X2FsYXJtCisgKiAgX19OUl91dGltZQorICogIF9fTlJfZ2V0cmxpbWl0CisgKiAgX19OUl9zZWxl Y3QKKyAqICBfX05SX3JlYWRkaXIKKyAqICBfX05SX21tYXAKKyAqICBfX05SX3NvY2tldGNhbGwK KyAqICBfX05SX3N5c2NhbGwKKyAqICBfX05SX2lwYworICovCisjZGVmaW5lIF9fSUdOT1JFX2dl dHJsaW1pdAorI2VuZGlmCisKKyNlbmRpZiAvKiBhYXJjaDY0L2FybSAgKi8KKworI2VuZGlmIC8q IF9fQVNNX0FSTV9VTklTVERfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL3Vh cGkvYXNtL2JpdHNwZXJsb25nLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vYml0c3Bl cmxvbmcuaAppbmRleCBmY2U5YzI5Li43MGRhZjFlIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2lu Y2x1ZGUvdWFwaS9hc20vYml0c3BlcmxvbmcuaAorKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvdWFw aS9hc20vYml0c3BlcmxvbmcuaApAQCAtMTYsNyArMTYsMTEgQEAKICNpZm5kZWYgX19BU01fQklU U1BFUkxPTkdfSAogI2RlZmluZSBfX0FTTV9CSVRTUEVSTE9OR19ICiAKKyNpZiBkZWZpbmVkIF9f YWFyY2g2NF9fCiAjZGVmaW5lIF9fQklUU19QRVJfTE9ORyA2NAorI2Vsc2UKKyNkZWZpbmUgX19C SVRTX1BFUl9MT05HIDMyCisjZW5kaWYKIAogI2luY2x1ZGUgPGFzbS1nZW5lcmljL2JpdHNwZXJs b25nLmg+CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9ieXRlb3Jk ZXIuaCBiL2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9ieXRlb3JkZXIuaAppbmRleCBkYzE5 ZTk1Li5hM2RmYWE0IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vYnl0 ZW9yZGVyLmgKKysrIGIvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL2J5dGVvcmRlci5oCkBA IC0xNiw3ICsxNiw3IEBACiAjaWZuZGVmIF9fQVNNX0JZVEVPUkRFUl9ICiAjZGVmaW5lIF9fQVNN X0JZVEVPUkRFUl9ICiAKLSNpZmRlZiBfX0FBUkNINjRFQl9fCisjaWYgZGVmaW5lZCBfX0FBUkNI NjRFQl9fICB8fCBkZWZpbmVkIF9fQVJNRUJfXwogI2luY2x1ZGUgPGxpbnV4L2J5dGVvcmRlci9i aWdfZW5kaWFuLmg+CiAjZWxzZQogI2luY2x1ZGUgPGxpbnV4L2J5dGVvcmRlci9saXR0bGVfZW5k aWFuLmg+CmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vaHdjYXAuaCBi L2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9od2NhcC5oCmluZGV4IDRlMTg3Y2UuLjY5MGM5 N2EgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9od2NhcC5oCisrKyBi L2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9od2NhcC5oCkBAIC0zNiw0ICszNiw0MyBAQAog I2RlZmluZSBIV0NBUF9GQ01BCQkoMSA8PCAxNCkKICNkZWZpbmUgSFdDQVBfTFJDUEMJCSgxIDw8 IDE1KQogCisjZWxzZSAvKiBmb3IgYXJtICAqLworCisvKgorICogSFdDQVAgZmxhZ3MgLSBmb3Ig ZWxmX2h3Y2FwIChpbiBrZXJuZWwpIGFuZCBBVF9IV0NBUAorICovCisjZGVmaW5lIEhXQ0FQX1NX UAkJKDEgPDwgMCkKKyNkZWZpbmUgSFdDQVBfSEFMRgkJKDEgPDwgMSkKKyNkZWZpbmUgSFdDQVBf VEhVTUIJCSgxIDw8IDIpCisjZGVmaW5lIEhXQ0FQXzI2QklUCQkoMSA8PCAzKSAgICAgICAgLyog UGxheSBpdCBzYWZlICovCisjZGVmaW5lIEhXQ0FQX0ZBU1RfTVVMVAkJKDEgPDwgNCkKKyNkZWZp bmUgSFdDQVBfRlBBCQkoMSA8PCA1KQorI2RlZmluZSBIV0NBUF9WRlAJCSgxIDw8IDYpCisjZGVm aW5lIEhXQ0FQX0VEU1AJCSgxIDw8IDcpCisjZGVmaW5lIEhXQ0FQX0pBVkEJCSgxIDw8IDgpCisj ZGVmaW5lIEhXQ0FQX0lXTU1YVAkJKDEgPDwgOSkKKyNkZWZpbmUgSFdDQVBfQ1JVTkNICQkoMSA8 PCAxMCkKKyNkZWZpbmUgSFdDQVBfVEhVTUJFRQkJKDEgPDwgMTEpCisjZGVmaW5lIEhXQ0FQX05F T04JCSgxIDw8IDEyKQorI2RlZmluZSBIV0NBUF9WRlB2MwkJKDEgPDwgMTMpCisjZGVmaW5lIEhX Q0FQX1ZGUHYzRDE2CQkoMSA8PCAxNCkgICAgICAgLyogYWxzbyBzZXQgZm9yIFZGUHY0LUQxNiAq LworI2RlZmluZSBIV0NBUF9UTFMJCSgxIDw8IDE1KQorI2RlZmluZSBIV0NBUF9WRlB2NAkJKDEg PDwgMTYpCisjZGVmaW5lIEhXQ0FQX0lESVZBCQkoMSA8PCAxNykKKyNkZWZpbmUgSFdDQVBfSURJ VlQJCSgxIDw8IDE4KQorI2RlZmluZSBIV0NBUF9WRlBEMzIJCSgxIDw8IDE5KSAgICAgICAvKiBz ZXQgaWYgVkZQIGhhcyAzMiByZWdzIChub3QgMTYpICovCisjZGVmaW5lIEhXQ0FQX0lESVYJCShI V0NBUF9JRElWQSB8IEhXQ0FQX0lESVZUKQorI2RlZmluZSBIV0NBUF9MUEFFCQkoMSA8PCAyMCkK KyNkZWZpbmUgSFdDQVBfRVZUU1RSTQkJKDEgPDwgMjEpCisKKy8qCisgKiBIV0NBUDIgZmxhZ3Mg LSBmb3IgZWxmX2h3Y2FwMiAoaW4ga2VybmVsKSBhbmQgQVRfSFdDQVAyCisgKi8KKyNkZWZpbmUg SFdDQVAyX0FFUwkoMSA8PCAwKQorI2RlZmluZSBIV0NBUDJfUE1VTEwJKDEgPDwgMSkKKyNkZWZp bmUgSFdDQVAyX1NIQTEJKDEgPDwgMikKKyNkZWZpbmUgSFdDQVAyX1NIQTIJKDEgPDwgMykKKyNk ZWZpbmUgSFdDQVAyX0NSQzMyCSgxIDw8IDQpCisKKyNlbmRpZiAvKiBhYXJjaDY0L2FybSAqLwog I2VuZGlmIC8qIF9VQVBJX19BU01fSFdDQVBfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9p bmNsdWRlL3VhcGkvYXNtL2t2bS5oIGIvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5o CmluZGV4IDlmM2NhMjQuLmY3NTQ5MTkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS91 YXBpL2FzbS9rdm0uaAorKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20va3ZtLmgKQEAg LTIyLDYgKzIyLDggQEAKICNpZm5kZWYgX19BUk1fS1ZNX0hfXwogI2RlZmluZSBfX0FSTV9LVk1f SF9fCiAKKyNpZiBkZWZpbmVkIF9fYWFyY2g2NF9fCisKICNkZWZpbmUgS1ZNX1NQU1JfRUwxCTAK ICNkZWZpbmUgS1ZNX1NQU1JfU1ZDCUtWTV9TUFNSX0VMMQogI2RlZmluZSBLVk1fU1BTUl9BQlQJ MQpAQCAtMjc5LDYgKzI4MSwyMTIgQEAgc3RydWN0IGt2bV9hcmNoX21lbW9yeV9zbG90IHsKICNk ZWZpbmUgS1ZNX1BTQ0lfUkVUX0lOVkFMCQlQU0NJX1JFVF9JTlZBTElEX1BBUkFNUwogI2RlZmlu ZSBLVk1fUFNDSV9SRVRfREVOSUVECQlQU0NJX1JFVF9ERU5JRUQKIAorI2VuZGlmIC8qICBfX0FT U0VNQkxZX18gICovCisKKyNlbHNlICAvKiBmb3IgYXJtICAqLworCisjaW5jbHVkZSA8bGludXgv dHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9wc2NpLmg+CisjaW5jbHVkZSA8YXNtL3B0cmFjZS5o PgorCisjZGVmaW5lIF9fS1ZNX0hBVkVfR1VFU1RfREVCVUcKKyNkZWZpbmUgX19LVk1fSEFWRV9J UlFfTElORQorI2RlZmluZSBfX0tWTV9IQVZFX1JFQURPTkxZX01FTQorCisjZGVmaW5lIEtWTV9S RUdfU0laRShpZCkJCQkJCQlcCisJKDFVIDw8ICgoKGlkKSAmIEtWTV9SRUdfU0laRV9NQVNLKSA+ PiBLVk1fUkVHX1NJWkVfU0hJRlQpKQorCisvKiBWYWxpZCBmb3Igc3ZjX3JlZ3MsIGFidF9yZWdz LCB1bmRfcmVncywgaXJxX3JlZ3MgaW4gc3RydWN0IGt2bV9yZWdzICovCisjZGVmaW5lIEtWTV9B Uk1fU1ZDX3NwCQlzdmNfcmVnc1swXQorI2RlZmluZSBLVk1fQVJNX1NWQ19scgkJc3ZjX3JlZ3Nb MV0KKyNkZWZpbmUgS1ZNX0FSTV9TVkNfc3BzcglzdmNfcmVnc1syXQorI2RlZmluZSBLVk1fQVJN X0FCVF9zcAkJYWJ0X3JlZ3NbMF0KKyNkZWZpbmUgS1ZNX0FSTV9BQlRfbHIJCWFidF9yZWdzWzFd CisjZGVmaW5lIEtWTV9BUk1fQUJUX3Nwc3IJYWJ0X3JlZ3NbMl0KKyNkZWZpbmUgS1ZNX0FSTV9V TkRfc3AJCXVuZF9yZWdzWzBdCisjZGVmaW5lIEtWTV9BUk1fVU5EX2xyCQl1bmRfcmVnc1sxXQor I2RlZmluZSBLVk1fQVJNX1VORF9zcHNyCXVuZF9yZWdzWzJdCisjZGVmaW5lIEtWTV9BUk1fSVJR X3NwCQlpcnFfcmVnc1swXQorI2RlZmluZSBLVk1fQVJNX0lSUV9scgkJaXJxX3JlZ3NbMV0KKyNk ZWZpbmUgS1ZNX0FSTV9JUlFfc3BzcglpcnFfcmVnc1syXQorCisvKiBWYWxpZCBvbmx5IGZvciBm aXFfcmVncyBpbiBzdHJ1Y3Qga3ZtX3JlZ3MgKi8KKyNkZWZpbmUgS1ZNX0FSTV9GSVFfcjgJCWZp cV9yZWdzWzBdCisjZGVmaW5lIEtWTV9BUk1fRklRX3I5CQlmaXFfcmVnc1sxXQorI2RlZmluZSBL Vk1fQVJNX0ZJUV9yMTAJCWZpcV9yZWdzWzJdCisjZGVmaW5lIEtWTV9BUk1fRklRX2ZwCQlmaXFf cmVnc1szXQorI2RlZmluZSBLVk1fQVJNX0ZJUV9pcAkJZmlxX3JlZ3NbNF0KKyNkZWZpbmUgS1ZN X0FSTV9GSVFfc3AJCWZpcV9yZWdzWzVdCisjZGVmaW5lIEtWTV9BUk1fRklRX2xyCQlmaXFfcmVn c1s2XQorI2RlZmluZSBLVk1fQVJNX0ZJUV9zcHNyCWZpcV9yZWdzWzddCisKK3N0cnVjdCBrdm1f cmVncyB7CisJc3RydWN0IHB0X3JlZ3MgdXNyX3JlZ3M7CS8qIFIwX3VzciAtIFIxNF91c3IsIFBD LCBDUFNSICovCisJdW5zaWduZWQgbG9uZyBzdmNfcmVnc1szXTsJLyogU1Bfc3ZjLCBMUl9zdmMs IFNQU1Jfc3ZjICovCisJdW5zaWduZWQgbG9uZyBhYnRfcmVnc1szXTsJLyogU1BfYWJ0LCBMUl9h YnQsIFNQU1JfYWJ0ICovCisJdW5zaWduZWQgbG9uZyB1bmRfcmVnc1szXTsJLyogU1BfdW5kLCBM Ul91bmQsIFNQU1JfdW5kICovCisJdW5zaWduZWQgbG9uZyBpcnFfcmVnc1szXTsJLyogU1BfaXJx LCBMUl9pcnEsIFNQU1JfaXJxICovCisJdW5zaWduZWQgbG9uZyBmaXFfcmVnc1s4XTsJLyogUjhf ZmlxIC0gUjE0X2ZpcSwgU1BTUl9maXEgKi8KK307CisKKy8qIFN1cHBvcnRlZCBQcm9jZXNzb3Ig VHlwZXMgKi8KKyNkZWZpbmUgS1ZNX0FSTV9UQVJHRVRfQ09SVEVYX0ExNQkwCisjZGVmaW5lIEtW TV9BUk1fVEFSR0VUX0NPUlRFWF9BNwkxCisjZGVmaW5lIEtWTV9BUk1fTlVNX1RBUkdFVFMJCTIK KworLyogS1ZNX0FSTV9TRVRfREVWSUNFX0FERFIgaW9jdGwgaWQgZW5jb2RpbmcgKi8KKyNkZWZp bmUgS1ZNX0FSTV9ERVZJQ0VfVFlQRV9TSElGVAkwCisjZGVmaW5lIEtWTV9BUk1fREVWSUNFX1RZ UEVfTUFTSwkoMHhmZmZmIDw8IEtWTV9BUk1fREVWSUNFX1RZUEVfU0hJRlQpCisjZGVmaW5lIEtW TV9BUk1fREVWSUNFX0lEX1NISUZUCQkxNgorI2RlZmluZSBLVk1fQVJNX0RFVklDRV9JRF9NQVNL CQkoMHhmZmZmIDw8IEtWTV9BUk1fREVWSUNFX0lEX1NISUZUKQorCisvKiBTdXBwb3J0ZWQgZGV2 aWNlIElEcyAqLworI2RlZmluZSBLVk1fQVJNX0RFVklDRV9WR0lDX1YyCQkwCisKKy8qIFN1cHBv cnRlZCBWR0lDIGFkZHJlc3MgdHlwZXMgICovCisjZGVmaW5lIEtWTV9WR0lDX1YyX0FERFJfVFlQ RV9ESVNUCTAKKyNkZWZpbmUgS1ZNX1ZHSUNfVjJfQUREUl9UWVBFX0NQVQkxCisKKyNkZWZpbmUg S1ZNX1ZHSUNfVjJfRElTVF9TSVpFCQkweDEwMDAKKyNkZWZpbmUgS1ZNX1ZHSUNfVjJfQ1BVX1NJ WkUJCTB4MjAwMAorCisjZGVmaW5lIEtWTV9BUk1fVkNQVV9QT1dFUl9PRkYJCTAgLyogQ1BVIGlz IHN0YXJ0ZWQgaW4gT0ZGIHN0YXRlICovCisjZGVmaW5lIEtWTV9BUk1fVkNQVV9QU0NJXzBfMgkJ MSAvKiBDUFUgdXNlcyBQU0NJIHYwLjIgKi8KKworc3RydWN0IGt2bV92Y3B1X2luaXQgeworCV9f dTMyIHRhcmdldDsKKwlfX3UzMiBmZWF0dXJlc1s3XTsKK307CisKK3N0cnVjdCBrdm1fc3JlZ3Mg eworfTsKKworc3RydWN0IGt2bV9mcHUgeworfTsKKworc3RydWN0IGt2bV9ndWVzdF9kZWJ1Z19h cmNoIHsKK307CisKK3N0cnVjdCBrdm1fZGVidWdfZXhpdF9hcmNoIHsKK307CisKK3N0cnVjdCBr dm1fc3luY19yZWdzIHsKK307CisKK3N0cnVjdCBrdm1fYXJjaF9tZW1vcnlfc2xvdCB7Cit9Owor CisvKiBJZiB5b3UgbmVlZCB0byBpbnRlcnByZXQgdGhlIGluZGV4IHZhbHVlcywgaGVyZSBpcyB0 aGUga2V5OiAqLworI2RlZmluZSBLVk1fUkVHX0FSTV9DT1BST0NfTUFTSwkJMHgwMDAwMDAwMDBG RkYwMDAwCisjZGVmaW5lIEtWTV9SRUdfQVJNX0NPUFJPQ19TSElGVAkxNgorI2RlZmluZSBLVk1f UkVHX0FSTV8zMl9PUEMyX01BU0sJMHgwMDAwMDAwMDAwMDAwMDA3CisjZGVmaW5lIEtWTV9SRUdf QVJNXzMyX09QQzJfU0hJRlQJMAorI2RlZmluZSBLVk1fUkVHX0FSTV9PUEMxX01BU0sJCTB4MDAw MDAwMDAwMDAwMDA3OAorI2RlZmluZSBLVk1fUkVHX0FSTV9PUEMxX1NISUZUCQkzCisjZGVmaW5l IEtWTV9SRUdfQVJNX0NSTV9NQVNLCQkweDAwMDAwMDAwMDAwMDA3ODAKKyNkZWZpbmUgS1ZNX1JF R19BUk1fQ1JNX1NISUZUCQk3CisjZGVmaW5lIEtWTV9SRUdfQVJNXzMyX0NSTl9NQVNLCQkweDAw MDAwMDAwMDAwMDc4MDAKKyNkZWZpbmUgS1ZNX1JFR19BUk1fMzJfQ1JOX1NISUZUCTExCisKKyNk ZWZpbmUgQVJNX0NQMTVfUkVHX1NISUZUX01BU0soeCxuKSBcCisJKCgoeCkgPDwgS1ZNX1JFR19B Uk1fICMjIG4gIyMgX1NISUZUKSAmIEtWTV9SRUdfQVJNXyAjIyBuICMjIF9NQVNLKQorCisjZGVm aW5lIF9fQVJNX0NQMTVfUkVHKG9wMSxjcm4sY3JtLG9wMikgXAorCShLVk1fUkVHX0FSTSB8ICgx NSA8PCBLVk1fUkVHX0FSTV9DT1BST0NfU0hJRlQpIHwgXAorCUFSTV9DUDE1X1JFR19TSElGVF9N QVNLKG9wMSwgT1BDMSkgfCBcCisJQVJNX0NQMTVfUkVHX1NISUZUX01BU0soY3JuLCAzMl9DUk4p IHwgXAorCUFSTV9DUDE1X1JFR19TSElGVF9NQVNLKGNybSwgQ1JNKSB8IFwKKwlBUk1fQ1AxNV9S RUdfU0hJRlRfTUFTSyhvcDIsIDMyX09QQzIpKQorCisjZGVmaW5lIEFSTV9DUDE1X1JFRzMyKC4u LikgKF9fQVJNX0NQMTVfUkVHKF9fVkFfQVJHU19fKSB8IEtWTV9SRUdfU0laRV9VMzIpCisKKyNk ZWZpbmUgX19BUk1fQ1AxNV9SRUc2NChvcDEsY3JtKSBcCisJKF9fQVJNX0NQMTVfUkVHKG9wMSwg MCwgY3JtLCAwKSB8IEtWTV9SRUdfU0laRV9VNjQpCisjZGVmaW5lIEFSTV9DUDE1X1JFRzY0KC4u LikgX19BUk1fQ1AxNV9SRUc2NChfX1ZBX0FSR1NfXykKKworI2RlZmluZSBLVk1fUkVHX0FSTV9U SU1FUl9DVEwJCUFSTV9DUDE1X1JFRzMyKDAsIDE0LCAzLCAxKQorI2RlZmluZSBLVk1fUkVHX0FS TV9USU1FUl9DTlQJCUFSTV9DUDE1X1JFRzY0KDEsIDE0KSAKKyNkZWZpbmUgS1ZNX1JFR19BUk1f VElNRVJfQ1ZBTAkJQVJNX0NQMTVfUkVHNjQoMywgMTQpIAorCisvKiBOb3JtYWwgcmVnaXN0ZXJz IGFyZSBtYXBwZWQgYXMgY29wcm9jZXNzb3IgMTYuICovCisjZGVmaW5lIEtWTV9SRUdfQVJNX0NP UkUJCSgweDAwMTAgPDwgS1ZNX1JFR19BUk1fQ09QUk9DX1NISUZUKQorI2RlZmluZSBLVk1fUkVH X0FSTV9DT1JFX1JFRyhuYW1lKQkob2Zmc2V0b2Yoc3RydWN0IGt2bV9yZWdzLCBuYW1lKSAvIDQp CisKKy8qIFNvbWUgcmVnaXN0ZXJzIG5lZWQgbW9yZSBzcGFjZSB0byByZXByZXNlbnQgdmFsdWVz LiAqLworI2RlZmluZSBLVk1fUkVHX0FSTV9ERU1VWAkJKDB4MDAxMSA8PCBLVk1fUkVHX0FSTV9D T1BST0NfU0hJRlQpCisjZGVmaW5lIEtWTV9SRUdfQVJNX0RFTVVYX0lEX01BU0sJMHgwMDAwMDAw MDAwMDBGRjAwCisjZGVmaW5lIEtWTV9SRUdfQVJNX0RFTVVYX0lEX1NISUZUCTgKKyNkZWZpbmUg S1ZNX1JFR19BUk1fREVNVVhfSURfQ0NTSURSCSgweDAwIDw8IEtWTV9SRUdfQVJNX0RFTVVYX0lE X1NISUZUKQorI2RlZmluZSBLVk1fUkVHX0FSTV9ERU1VWF9WQUxfTUFTSwkweDAwMDAwMDAwMDAw MDAwRkYKKyNkZWZpbmUgS1ZNX1JFR19BUk1fREVNVVhfVkFMX1NISUZUCTAKKworLyogVkZQIHJl Z2lzdGVyczogd2UgY291bGQgb3ZlcmxvYWQgQ1AxMCBsaWtlIEFSTSBkb2VzLCBidXQgdGhhdCdz IHVnbHkuICovCisjZGVmaW5lIEtWTV9SRUdfQVJNX1ZGUAkJCSgweDAwMTIgPDwgS1ZNX1JFR19B Uk1fQ09QUk9DX1NISUZUKQorI2RlZmluZSBLVk1fUkVHX0FSTV9WRlBfTUFTSwkJMHgwMDAwMDAw MDAwMDBGRkZGCisjZGVmaW5lIEtWTV9SRUdfQVJNX1ZGUF9CQVNFX1JFRwkweDAKKyNkZWZpbmUg S1ZNX1JFR19BUk1fVkZQX0ZQU0lECQkweDEwMDAKKyNkZWZpbmUgS1ZNX1JFR19BUk1fVkZQX0ZQ U0NSCQkweDEwMDEKKyNkZWZpbmUgS1ZNX1JFR19BUk1fVkZQX01WRlIxCQkweDEwMDYKKyNkZWZp bmUgS1ZNX1JFR19BUk1fVkZQX01WRlIwCQkweDEwMDcKKyNkZWZpbmUgS1ZNX1JFR19BUk1fVkZQ X0ZQRVhDCQkweDEwMDgKKyNkZWZpbmUgS1ZNX1JFR19BUk1fVkZQX0ZQSU5TVAkJMHgxMDA5Cisj ZGVmaW5lIEtWTV9SRUdfQVJNX1ZGUF9GUElOU1QyCQkweDEwMEEKKworLyogRGV2aWNlIENvbnRy b2wgQVBJOiBBUk0gVkdJQyAqLworI2RlZmluZSBLVk1fREVWX0FSTV9WR0lDX0dSUF9BRERSCTAK KyNkZWZpbmUgS1ZNX0RFVl9BUk1fVkdJQ19HUlBfRElTVF9SRUdTCTEKKyNkZWZpbmUgS1ZNX0RF Vl9BUk1fVkdJQ19HUlBfQ1BVX1JFR1MJMgorI2RlZmluZSAgIEtWTV9ERVZfQVJNX1ZHSUNfQ1BV SURfU0hJRlQJMzIKKyNkZWZpbmUgICBLVk1fREVWX0FSTV9WR0lDX0NQVUlEX01BU0sJKDB4ZmZV TEwgPDwgS1ZNX0RFVl9BUk1fVkdJQ19DUFVJRF9TSElGVCkKKyNkZWZpbmUgICBLVk1fREVWX0FS TV9WR0lDX09GRlNFVF9TSElGVAkwCisjZGVmaW5lICAgS1ZNX0RFVl9BUk1fVkdJQ19PRkZTRVRf TUFTSwkoMHhmZmZmZmZmZlVMTCA8PCBLVk1fREVWX0FSTV9WR0lDX09GRlNFVF9TSElGVCkKKyNk ZWZpbmUgS1ZNX0RFVl9BUk1fVkdJQ19HUlBfTlJfSVJRUwkzCisjZGVmaW5lIEtWTV9ERVZfQVJN X1ZHSUNfR1JQX0NUUkwgICAgICAgNAorI2RlZmluZSAgIEtWTV9ERVZfQVJNX1ZHSUNfQ1RSTF9J TklUICAgIDAKKworLyogS1ZNX0lSUV9MSU5FIGlycSBmaWVsZCBpbmRleCB2YWx1ZXMgKi8KKyNk ZWZpbmUgS1ZNX0FSTV9JUlFfVFlQRV9TSElGVAkJMjQKKyNkZWZpbmUgS1ZNX0FSTV9JUlFfVFlQ RV9NQVNLCQkweGZmCisjZGVmaW5lIEtWTV9BUk1fSVJRX1ZDUFVfU0hJRlQJCTE2CisjZGVmaW5l IEtWTV9BUk1fSVJRX1ZDUFVfTUFTSwkJMHhmZgorI2RlZmluZSBLVk1fQVJNX0lSUV9OVU1fU0hJ RlQJCTAKKyNkZWZpbmUgS1ZNX0FSTV9JUlFfTlVNX01BU0sJCTB4ZmZmZgorCisvKiBpcnFfdHlw ZSBmaWVsZCAqLworI2RlZmluZSBLVk1fQVJNX0lSUV9UWVBFX0NQVQkJMAorI2RlZmluZSBLVk1f QVJNX0lSUV9UWVBFX1NQSQkJMQorI2RlZmluZSBLVk1fQVJNX0lSUV9UWVBFX1BQSQkJMgorCisv KiBvdXQtb2Yta2VybmVsIEdJQyBjcHUgaW50ZXJydXB0IGluamVjdGlvbiBpcnFfbnVtYmVyIGZp ZWxkICovCisjZGVmaW5lIEtWTV9BUk1fSVJRX0NQVV9JUlEJCTAKKyNkZWZpbmUgS1ZNX0FSTV9J UlFfQ1BVX0ZJUQkJMQorCisvKgorICogVGhpcyB1c2VkIHRvIGhvbGQgdGhlIGhpZ2hlc3Qgc3Vw cG9ydGVkIFNQSSwgYnV0IGl0IGlzIG5vdyBvYnNvbGV0ZQorICogYW5kIG9ubHkgaGVyZSB0byBw cm92aWRlIHNvdXJjZSBjb2RlIGxldmVsIGNvbXBhdGliaWxpdHkgd2l0aCBvbGRlcgorICogdXNl cmxhbmQuIFRoZSBoaWdoZXN0IFNQSSBudW1iZXIgY2FuIGJlIHNldCB2aWEgS1ZNX0RFVl9BUk1f VkdJQ19HUlBfTlJfSVJRUy4KKyAqLworI2lmbmRlZiBfX0tFUk5FTF9fCisjZGVmaW5lIEtWTV9B Uk1fSVJRX0dJQ19NQVgJCTEyNwogI2VuZGlmCiAKKy8qIE9uZSBzaW5nbGUgS1ZNIGlycWNoaXAs IGllLiB0aGUgVkdJQyAqLworI2RlZmluZSBLVk1fTlJfSVJRQ0hJUFMgICAgICAgICAgMQorCisv KiBQU0NJIGludGVyZmFjZSAqLworI2RlZmluZSBLVk1fUFNDSV9GTl9CQVNFCQkweDk1YzFiYTVl CisjZGVmaW5lIEtWTV9QU0NJX0ZOKG4pCQkJKEtWTV9QU0NJX0ZOX0JBU0UgKyAobikpCisKKyNk ZWZpbmUgS1ZNX1BTQ0lfRk5fQ1BVX1NVU1BFTkQJCUtWTV9QU0NJX0ZOKDApCisjZGVmaW5lIEtW TV9QU0NJX0ZOX0NQVV9PRkYJCUtWTV9QU0NJX0ZOKDEpCisjZGVmaW5lIEtWTV9QU0NJX0ZOX0NQ VV9PTgkJS1ZNX1BTQ0lfRk4oMikKKyNkZWZpbmUgS1ZNX1BTQ0lfRk5fTUlHUkFURQkJS1ZNX1BT Q0lfRk4oMykKKworI2RlZmluZSBLVk1fUFNDSV9SRVRfU1VDQ0VTUwkJUFNDSV9SRVRfU1VDQ0VT UworI2RlZmluZSBLVk1fUFNDSV9SRVRfTkkJCQlQU0NJX1JFVF9OT1RfU1VQUE9SVEVECisjZGVm aW5lIEtWTV9QU0NJX1JFVF9JTlZBTAkJUFNDSV9SRVRfSU5WQUxJRF9QQVJBTVMKKyNkZWZpbmUg S1ZNX1BTQ0lfUkVUX0RFTklFRAkJUFNDSV9SRVRfREVOSUVECisKKyNlbmRpZiAvKiAgYWFyY2g2 NC9hcm0gICovCisKICNlbmRpZiAvKiBfX0FSTV9LVk1fSF9fICovCmRpZmYgLS1naXQgYS9hcmNo L2FybTY0L2luY2x1ZGUvdWFwaS9hc20vcGVyZl9yZWdzLmggYi9hcmNoL2FybTY0L2luY2x1ZGUv dWFwaS9hc20vcGVyZl9yZWdzLmgKaW5kZXggMTcyYjgzMS4uMWRjYzgyZCAxMDA2NDQKLS0tIGEv YXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL3BlcmZfcmVncy5oCisrKyBiL2FyY2gvYXJtNjQv aW5jbHVkZS91YXBpL2FzbS9wZXJmX3JlZ3MuaApAQCAtMSw2ICsxLDcgQEAKLSNpZm5kZWYgX0FT TV9BUk02NF9QRVJGX1JFR1NfSAotI2RlZmluZSBfQVNNX0FSTTY0X1BFUkZfUkVHU19ICisjaWZu ZGVmIF9BU01fQVJNX1BFUkZfUkVHU19ICisjZGVmaW5lIF9BU01fQVJNX1BFUkZfUkVHU19ICiAK KyNpZiBkZWZpbmVkIF9fYWFyY2g2NF9fCiBlbnVtIHBlcmZfZXZlbnRfYXJtX3JlZ3MgewogCVBF UkZfUkVHX0FSTTY0X1gwLAogCVBFUkZfUkVHX0FSTTY0X1gxLApAQCAtMzcsNCArMzgsMjkgQEAg ZW51bSBwZXJmX2V2ZW50X2FybV9yZWdzIHsKIAlQRVJGX1JFR19BUk02NF9QQywKIAlQRVJGX1JF R19BUk02NF9NQVgsCiB9OwotI2VuZGlmIC8qIF9BU01fQVJNNjRfUEVSRl9SRUdTX0ggKi8KKwor I2Vsc2UgIC8qIGZvciBhcm0gICovCisKK2VudW0gcGVyZl9ldmVudF9hcm1fcmVncyB7CisJUEVS Rl9SRUdfQVJNX1IwLAorCVBFUkZfUkVHX0FSTV9SMSwKKwlQRVJGX1JFR19BUk1fUjIsCisJUEVS Rl9SRUdfQVJNX1IzLAorCVBFUkZfUkVHX0FSTV9SNCwKKwlQRVJGX1JFR19BUk1fUjUsCisJUEVS Rl9SRUdfQVJNX1I2LAorCVBFUkZfUkVHX0FSTV9SNywKKwlQRVJGX1JFR19BUk1fUjgsCisJUEVS Rl9SRUdfQVJNX1I5LAorCVBFUkZfUkVHX0FSTV9SMTAsCisJUEVSRl9SRUdfQVJNX0ZQLAorCVBF UkZfUkVHX0FSTV9JUCwKKwlQRVJGX1JFR19BUk1fU1AsCisJUEVSRl9SRUdfQVJNX0xSLAorCVBF UkZfUkVHX0FSTV9QQywKKwlQRVJGX1JFR19BUk1fTUFYLAorfTsKKworI2VuZGlmIC8qICBhYXJj aDY0L2FybSAgKi8KKworI2VuZGlmIC8qIF9BU01fQVJNX1BFUkZfUkVHU19IICovCmRpZmYgLS1n aXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vcG9zaXhfdHlwZXMuaCBiL2FyY2gvYXJt NjQvaW5jbHVkZS91YXBpL2FzbS9wb3NpeF90eXBlcy5oCmluZGV4IDc5ODVmZjYuLmZhNTQ2ZmYg MTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9wb3NpeF90eXBlcy5oCisr KyBiL2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9wb3NpeF90eXBlcy5oCkBAIC0xLDEwICsx LDM0IEBACiAjaWZuZGVmIF9fQVNNX1BPU0lYX1RZUEVTX0gKICNkZWZpbmUgX19BU01fUE9TSVhf VFlQRVNfSAogCisjaWYgZGVmaW5lZCBfX2FhcmNoNjRfXwogdHlwZWRlZiB1bnNpZ25lZCBzaG9y dCBfX2tlcm5lbF9vbGRfdWlkX3Q7CiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IF9fa2VybmVsX29s ZF9naWRfdDsKICNkZWZpbmUgX19rZXJuZWxfb2xkX3VpZF90IF9fa2VybmVsX29sZF91aWRfdAog CisjZWxzZSAvKiBmb3IgYXJtICAqLworCQorLyoKKyAqIFRoaXMgZmlsZSBpcyBnZW5lcmFsbHkg dXNlZCBieSB1c2VyLWxldmVsIHNvZnR3YXJlLCBzbyB5b3UgbmVlZCB0bworICogYmUgYSBsaXR0 bGUgY2FyZWZ1bCBhYm91dCBuYW1lc3BhY2UgcG9sbHV0aW9uIGV0Yy4gIEFsc28sIHdlIGNhbm5v dAorICogYXNzdW1lIEdDQyBpcyBiZWluZyB1c2VkLgorICovCisKK3R5cGVkZWYgdW5zaWduZWQg c2hvcnQJCV9fa2VybmVsX21vZGVfdDsKKyNkZWZpbmUgX19rZXJuZWxfbW9kZV90IF9fa2VybmVs X21vZGVfdAorCit0eXBlZGVmIHVuc2lnbmVkIHNob3J0CQlfX2tlcm5lbF9pcGNfcGlkX3Q7Cisj ZGVmaW5lIF9fa2VybmVsX2lwY19waWRfdCBfX2tlcm5lbF9pcGNfcGlkX3QKKwordHlwZWRlZiB1 bnNpZ25lZCBzaG9ydAkJX19rZXJuZWxfdWlkX3Q7Cit0eXBlZGVmIHVuc2lnbmVkIHNob3J0CQlf X2tlcm5lbF9naWRfdDsKKyNkZWZpbmUgX19rZXJuZWxfdWlkX3QgX19rZXJuZWxfdWlkX3QKKwor dHlwZWRlZiB1bnNpZ25lZCBzaG9ydAkJX19rZXJuZWxfb2xkX2Rldl90OworI2RlZmluZSBfX2tl cm5lbF9vbGRfZGV2X3QgX19rZXJuZWxfb2xkX2Rldl90CisJCisjZW5kaWYgLyogYWFyY2g2NC9h cm0gICovCisKICNpbmNsdWRlIDxhc20tZ2VuZXJpYy9wb3NpeF90eXBlcy5oPgogCiAjZW5kaWYg LyogIF9fQVNNX1BPU0lYX1RZUEVTX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVk ZS91YXBpL2FzbS9wdHJhY2UuaCBiL2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9wdHJhY2Uu aAppbmRleCBkMWZmODNkLi4yYmM2NWY1IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUv dWFwaS9hc20vcHRyYWNlLmgKKysrIGIvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL3B0cmFj ZS5oCkBAIC0xOSw2ICsxOSw4IEBACiAjaWZuZGVmIF9VQVBJX19BU01fUFRSQUNFX0gKICNkZWZp bmUgX1VBUElfX0FTTV9QVFJBQ0VfSAogCisjaWYgZGVmaW5lZCBfX2FhcmNoNjRfXworCiAjaW5j bHVkZSA8bGludXgvdHlwZXMuaD4KIAogI2luY2x1ZGUgPGFzbS9od2NhcC5oPgpAQCAtOTIsNCAr OTQsMTUyIEBAIHN0cnVjdCB1c2VyX2h3ZGVidWdfc3RhdGUgewogCiAjZW5kaWYgLyogX19BU1NF TUJMWV9fICovCiAKKyNlbHNlIC8qIGZvciBhcm0gICovCisKKyNpbmNsdWRlIDxhc20vaHdjYXAu aD4KKworI2RlZmluZSBQVFJBQ0VfR0VUUkVHUwkJMTIKKyNkZWZpbmUgUFRSQUNFX1NFVFJFR1MJ CTEzCisjZGVmaW5lIFBUUkFDRV9HRVRGUFJFR1MJMTQKKyNkZWZpbmUgUFRSQUNFX1NFVEZQUkVH UwkxNQorLyogUFRSQUNFX0FUVEFDSCBpcyAxNiAqLworLyogUFRSQUNFX0RFVEFDSCBpcyAxNyAq LworI2RlZmluZSBQVFJBQ0VfR0VUV01NWFJFR1MJMTgKKyNkZWZpbmUgUFRSQUNFX1NFVFdNTVhS RUdTCTE5CisvKiAyMCBpcyB1bnVzZWQgKi8KKyNkZWZpbmUgUFRSQUNFX09MRFNFVE9QVElPTlMJ MjEKKyNkZWZpbmUgUFRSQUNFX0dFVF9USFJFQURfQVJFQQkyMgorI2RlZmluZSBQVFJBQ0VfU0VU X1NZU0NBTEwJMjMKKy8qIFBUUkFDRV9TWVNDQUxMIGlzIDI0ICovCisjZGVmaW5lIFBUUkFDRV9H RVRDUlVOQ0hSRUdTCTI1CisjZGVmaW5lIFBUUkFDRV9TRVRDUlVOQ0hSRUdTCTI2CisjZGVmaW5l IFBUUkFDRV9HRVRWRlBSRUdTCTI3CisjZGVmaW5lIFBUUkFDRV9TRVRWRlBSRUdTCTI4CisjZGVm aW5lIFBUUkFDRV9HRVRIQlBSRUdTCTI5CisjZGVmaW5lIFBUUkFDRV9TRVRIQlBSRUdTCTMwCisK Ky8qCisgKiBQU1IgYml0cworICogTm90ZSBvbiBWN00gdGhlcmUgaXMgbm8gbW9kZSBjb250YWlu ZWQgaW4gdGhlIFBTUgorICovCisjZGVmaW5lIFVTUjI2X01PREUJMHgwMDAwMDAwMAorI2RlZmlu ZSBGSVEyNl9NT0RFCTB4MDAwMDAwMDEKKyNkZWZpbmUgSVJRMjZfTU9ERQkweDAwMDAwMDAyCisj ZGVmaW5lIFNWQzI2X01PREUJMHgwMDAwMDAwMworI2lmIGRlZmluZWQoX19LRVJORUxfXykgJiYg ZGVmaW5lZChDT05GSUdfQ1BVX1Y3TSkKKy8qCisgKiBVc2UgMCBoZXJlIHRvIGdldCBjb2RlIHJp Z2h0IHRoYXQgY3JlYXRlcyBhIHVzZXJzcGFjZQorICogb3Iga2VybmVsIHNwYWNlIHRocmVhZC4K KyAqLworI2RlZmluZSBVU1JfTU9ERQkweDAwMDAwMDAwCisjZGVmaW5lIFNWQ19NT0RFCTB4MDAw MDAwMDAKKyNlbHNlCisjZGVmaW5lIFVTUl9NT0RFCTB4MDAwMDAwMTAKKyNkZWZpbmUgU1ZDX01P REUJMHgwMDAwMDAxMworI2VuZGlmCisjZGVmaW5lIEZJUV9NT0RFCTB4MDAwMDAwMTEKKyNkZWZp bmUgSVJRX01PREUJMHgwMDAwMDAxMgorI2RlZmluZSBBQlRfTU9ERQkweDAwMDAwMDE3CisjZGVm aW5lIEhZUF9NT0RFCTB4MDAwMDAwMWEKKyNkZWZpbmUgVU5EX01PREUJMHgwMDAwMDAxYgorI2Rl ZmluZSBTWVNURU1fTU9ERQkweDAwMDAwMDFmCisjZGVmaW5lIE1PREUzMl9CSVQJMHgwMDAwMDAx MAorI2RlZmluZSBNT0RFX01BU0sJMHgwMDAwMDAxZgorCisjZGVmaW5lIFY0X1BTUl9UX0JJVAkw eDAwMDAwMDIwCS8qID49IFY0VCwgYnV0IG5vdCBWN00gKi8KKyNkZWZpbmUgVjdNX1BTUl9UX0JJ VAkweDAxMDAwMDAwCisjaWYgZGVmaW5lZChfX0tFUk5FTF9fKSAmJiBkZWZpbmVkKENPTkZJR19D UFVfVjdNKQorI2RlZmluZSBQU1JfVF9CSVQJVjdNX1BTUl9UX0JJVAorI2Vsc2UKKy8qIGZvciBj b21wYXRpYmlsaXR5ICovCisjZGVmaW5lIFBTUl9UX0JJVAlWNF9QU1JfVF9CSVQKKyNlbmRpZgor CisjZGVmaW5lIFBTUl9GX0JJVAkweDAwMDAwMDQwCS8qID49IFY0LCBidXQgbm90IFY3TSAqLwor I2RlZmluZSBQU1JfSV9CSVQJMHgwMDAwMDA4MAkvKiA+PSBWNCwgYnV0IG5vdCBWN00gKi8KKyNk ZWZpbmUgUFNSX0FfQklUCTB4MDAwMDAxMDAJLyogPj0gVjYsIGJ1dCBub3QgVjdNICovCisjZGVm aW5lIFBTUl9FX0JJVAkweDAwMDAwMjAwCS8qID49IFY2LCBidXQgbm90IFY3TSAqLworI2RlZmlu ZSBQU1JfSl9CSVQJMHgwMTAwMDAwMAkvKiA+PSBWNUosIGJ1dCBub3QgVjdNICovCisjZGVmaW5l IFBTUl9RX0JJVAkweDA4MDAwMDAwCS8qID49IFY1RSwgaW5jbHVkaW5nIFY3TSAqLworI2RlZmlu ZSBQU1JfVl9CSVQJMHgxMDAwMDAwMAorI2RlZmluZSBQU1JfQ19CSVQJMHgyMDAwMDAwMAorI2Rl ZmluZSBQU1JfWl9CSVQJMHg0MDAwMDAwMAorI2RlZmluZSBQU1JfTl9CSVQJMHg4MDAwMDAwMAor CisvKgorICogR3JvdXBzIG9mIFBTUiBiaXRzCisgKi8KKyNkZWZpbmUgUFNSX2YJCTB4ZmYwMDAw MDAJLyogRmxhZ3MJCSovCisjZGVmaW5lIFBTUl9zCQkweDAwZmYwMDAwCS8qIFN0YXR1cwkJKi8K KyNkZWZpbmUgUFNSX3gJCTB4MDAwMGZmMDAJLyogRXh0ZW5zaW9uCQkqLworI2RlZmluZSBQU1Jf YwkJMHgwMDAwMDBmZgkvKiBDb250cm9sCQkqLworCisvKgorICogQVJNdjcgZ3JvdXBzIG9mIFBT UiBiaXRzCisgKi8KKyNkZWZpbmUgQVBTUl9NQVNLCTB4ZjgwZjAwMDAJLyogTiwgWiwgQywgViwg USBhbmQgR0UgZmxhZ3MgKi8KKyNkZWZpbmUgUFNSX0lTRVRfTUFTSwkweDAxMDAwMDEwCS8qIElT QSBzdGF0ZSAoSiwgVCkgbWFzayAqLworI2RlZmluZSBQU1JfSVRfTUFTSwkweDA2MDBmYzAwCS8q IElmLVRoZW4gZXhlY3V0aW9uIHN0YXRlIG1hc2sgKi8KKyNkZWZpbmUgUFNSX0VORElBTl9NQVNL CTB4MDAwMDAyMDAJLyogRW5kaWFubmVzcyBzdGF0ZSBtYXNrICovCisKKy8qCisgKiBEZWZhdWx0 IGVuZGlhbm5lc3Mgc3RhdGUKKyAqLworI2lmZGVmIENPTkZJR19DUFVfRU5ESUFOX0JFOAorI2Rl ZmluZSBQU1JfRU5EU1RBVEUJUFNSX0VfQklUCisjZWxzZQorI2RlZmluZSBQU1JfRU5EU1RBVEUJ MAorI2VuZGlmCisKKy8qIAorICogVGhlc2UgYXJlICdtYWdpYycgdmFsdWVzIGZvciBQVFJBQ0Vf UEVFS1VTUiB0aGF0IHJldHVybiBpbmZvIGFib3V0IHdoZXJlIGEKKyAqIHByb2Nlc3MgaXMgbG9j YXRlZCBpbiBtZW1vcnkuCisgKi8KKyNkZWZpbmUgUFRfVEVYVF9BRERSCQkweDEwMDAwCisjZGVm aW5lIFBUX0RBVEFfQUREUgkJMHgxMDAwNAorI2RlZmluZSBQVF9URVhUX0VORF9BRERSCTB4MTAw MDgKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KKworLyoKKyAqIFRoaXMgc3RydWN0IGRlZmluZXMg dGhlIHdheSB0aGUgcmVnaXN0ZXJzIGFyZSBzdG9yZWQgb24gdGhlCisgKiBzdGFjayBkdXJpbmcg YSBzeXN0ZW0gY2FsbC4gIE5vdGUgdGhhdCBzaXplb2Yoc3RydWN0IHB0X3JlZ3MpCisgKiBoYXMg dG8gYmUgYSBtdWx0aXBsZSBvZiA4LgorICovCisjaWZuZGVmIF9fS0VSTkVMX18KK3N0cnVjdCBw dF9yZWdzIHsKKwlsb25nIHVyZWdzWzE4XTsKK307CisjZW5kaWYgLyogX19LRVJORUxfXyAqLwor CisjZGVmaW5lIEFSTV9jcHNyCXVyZWdzWzE2XQorI2RlZmluZSBBUk1fcGMJCXVyZWdzWzE1XQor I2RlZmluZSBBUk1fbHIJCXVyZWdzWzE0XQorI2RlZmluZSBBUk1fc3AJCXVyZWdzWzEzXQorI2Rl ZmluZSBBUk1faXAJCXVyZWdzWzEyXQorI2RlZmluZSBBUk1fZnAJCXVyZWdzWzExXQorI2RlZmlu ZSBBUk1fcjEwCQl1cmVnc1sxMF0KKyNkZWZpbmUgQVJNX3I5CQl1cmVnc1s5XQorI2RlZmluZSBB Uk1fcjgJCXVyZWdzWzhdCisjZGVmaW5lIEFSTV9yNwkJdXJlZ3NbN10KKyNkZWZpbmUgQVJNX3I2 CQl1cmVnc1s2XQorI2RlZmluZSBBUk1fcjUJCXVyZWdzWzVdCisjZGVmaW5lIEFSTV9yNAkJdXJl Z3NbNF0KKyNkZWZpbmUgQVJNX3IzCQl1cmVnc1szXQorI2RlZmluZSBBUk1fcjIJCXVyZWdzWzJd CisjZGVmaW5lIEFSTV9yMQkJdXJlZ3NbMV0KKyNkZWZpbmUgQVJNX3IwCQl1cmVnc1swXQorI2Rl ZmluZSBBUk1fT1JJR19yMAl1cmVnc1sxN10KKworLyoKKyAqIFRoZSBzaXplIG9mIHRoZSB1c2Vy LXZpc2libGUgVkZQIHN0YXRlIGFzIHNlZW4gYnkgUFRSQUNFX0dFVC9TRVRWRlBSRUdTCisgKiBh bmQgY29yZSBkdW1wcy4KKyAqLworI2RlZmluZSBBUk1fVkZQUkVHU19TSVpFICggMzIgKiA4IC8q ZnByZWdzKi8gKyA0IC8qZnBzY3IqLyApCisKKworI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLwor CisjZW5kaWYgLyogYWFyY2g2NC9hcm0gICovCisKICNlbmRpZiAvKiBfVUFQSV9fQVNNX1BUUkFD RV9IICovCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vc2V0dXAuaCBi L2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9zZXR1cC5oCmluZGV4IDljZjJlNDYuLjNjOWY1 ZGIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9zZXR1cC5oCisrKyBi L2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9zZXR1cC5oCkBAIC0yMSw2ICsyMSwxNzggQEAK IAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAKKyNpZiBkZWZpbmVkIF9fYWFyY2g2NF9fCiAj ZGVmaW5lIENPTU1BTkRfTElORV9TSVpFCTIwNDgKIAotI2VuZGlmCisjZWxzZSAvKiBmb3IgYXJt ICAqLworCisjZGVmaW5lIENPTU1BTkRfTElORV9TSVpFIDEwMjQKKworLyogVGhlIGxpc3QgZW5k cyB3aXRoIGFuIEFUQUdfTk9ORSBub2RlLiAqLworI2RlZmluZSBBVEFHX05PTkUJMHgwMDAwMDAw MAorCitzdHJ1Y3QgdGFnX2hlYWRlciB7CisJX191MzIgc2l6ZTsKKwlfX3UzMiB0YWc7Cit9Owor CisvKiBUaGUgbGlzdCBtdXN0IHN0YXJ0IHdpdGggYW4gQVRBR19DT1JFIG5vZGUgKi8KKyNkZWZp bmUgQVRBR19DT1JFCTB4NTQ0MTAwMDEKKworc3RydWN0IHRhZ19jb3JlIHsKKwlfX3UzMiBmbGFn czsJCS8qIGJpdCAwID0gcmVhZC1vbmx5ICovCisJX191MzIgcGFnZXNpemU7CisJX191MzIgcm9v dGRldjsKK307CisKKy8qIGl0IGlzIGFsbG93ZWQgdG8gaGF2ZSBtdWx0aXBsZSBBVEFHX01FTSBu b2RlcyAqLworI2RlZmluZSBBVEFHX01FTQkweDU0NDEwMDAyCisKK3N0cnVjdCB0YWdfbWVtMzIg eworCV9fdTMyCXNpemU7CisJX191MzIJc3RhcnQ7CS8qIHBoeXNpY2FsIHN0YXJ0IGFkZHJlc3Mg Ki8KK307CisKKy8qIFZHQSB0ZXh0IHR5cGUgZGlzcGxheXMgKi8KKyNkZWZpbmUgQVRBR19WSURF T1RFWFQJMHg1NDQxMDAwMworCitzdHJ1Y3QgdGFnX3ZpZGVvdGV4dCB7CisJX191OAkJeDsKKwlf X3U4CQl5OworCV9fdTE2CQl2aWRlb19wYWdlOworCV9fdTgJCXZpZGVvX21vZGU7CisJX191OAkJ dmlkZW9fY29sczsKKwlfX3UxNgkJdmlkZW9fZWdhX2J4OworCV9fdTgJCXZpZGVvX2xpbmVzOwor CV9fdTgJCXZpZGVvX2lzdmdhOworCV9fdTE2CQl2aWRlb19wb2ludHM7Cit9OworCisvKiBkZXNj cmliZXMgaG93IHRoZSByYW1kaXNrIHdpbGwgYmUgdXNlZCBpbiBrZXJuZWwgKi8KKyNkZWZpbmUg QVRBR19SQU1ESVNLCTB4NTQ0MTAwMDQKKworc3RydWN0IHRhZ19yYW1kaXNrIHsKKwlfX3UzMiBm bGFnczsJLyogYml0IDAgPSBsb2FkLCBiaXQgMSA9IHByb21wdCAqLworCV9fdTMyIHNpemU7CS8q IGRlY29tcHJlc3NlZCByYW1kaXNrIHNpemUgaW4gX2tpbG9fIGJ5dGVzICovCisJX191MzIgc3Rh cnQ7CS8qIHN0YXJ0aW5nIGJsb2NrIG9mIGZsb3BweS1iYXNlZCBSQU0gZGlzayBpbWFnZSAqLwor fTsKKworLyogZGVzY3JpYmVzIHdoZXJlIHRoZSBjb21wcmVzc2VkIHJhbWRpc2sgaW1hZ2UgbGl2 ZXMgKHZpcnR1YWwgYWRkcmVzcykgKi8KKy8qCisgKiB0aGlzIG9uZSBhY2NpZGVudGFsbHkgdXNl ZCB2aXJ0dWFsIGFkZHJlc3NlcyAtIGFzIHN1Y2gsCisgKiBpdCdzIGRlcHJlY2F0ZWQuCisgKi8K KyNkZWZpbmUgQVRBR19JTklUUkQJMHg1NDQxMDAwNQorCisvKiBkZXNjcmliZXMgd2hlcmUgdGhl IGNvbXByZXNzZWQgcmFtZGlzayBpbWFnZSBsaXZlcyAocGh5c2ljYWwgYWRkcmVzcykgKi8KKyNk ZWZpbmUgQVRBR19JTklUUkQyCTB4NTQ0MjAwMDUKKworc3RydWN0IHRhZ19pbml0cmQgeworCV9f dTMyIHN0YXJ0OwkvKiBwaHlzaWNhbCBzdGFydCBhZGRyZXNzICovCisJX191MzIgc2l6ZTsJLyog c2l6ZSBvZiBjb21wcmVzc2VkIHJhbWRpc2sgaW1hZ2UgaW4gYnl0ZXMgKi8KK307CisKKy8qIGJv YXJkIHNlcmlhbCBudW1iZXIuICI2NCBiaXRzIHNob3VsZCBiZSBlbm91Z2ggZm9yIGV2ZXJ5Ym9k eSIgKi8KKyNkZWZpbmUgQVRBR19TRVJJQUwJMHg1NDQxMDAwNgorCitzdHJ1Y3QgdGFnX3Nlcmlh bG5yIHsKKwlfX3UzMiBsb3c7CisJX191MzIgaGlnaDsKK307CisKKy8qIGJvYXJkIHJldmlzaW9u ICovCisjZGVmaW5lIEFUQUdfUkVWSVNJT04JMHg1NDQxMDAwNworCitzdHJ1Y3QgdGFnX3Jldmlz aW9uIHsKKwlfX3UzMiByZXY7Cit9OworCisvKiBpbml0aWFsIHZhbHVlcyBmb3IgdmVzYWZiLXR5 cGUgZnJhbWVidWZmZXJzLiBzZWUgc3RydWN0IHNjcmVlbl9pbmZvCisgKiBpbiBpbmNsdWRlL2xp bnV4L3R0eS5oCisgKi8KKyNkZWZpbmUgQVRBR19WSURFT0xGQgkweDU0NDEwMDA4CisKK3N0cnVj dCB0YWdfdmlkZW9sZmIgeworCV9fdTE2CQlsZmJfd2lkdGg7CisJX191MTYJCWxmYl9oZWlnaHQ7 CisJX191MTYJCWxmYl9kZXB0aDsKKwlfX3UxNgkJbGZiX2xpbmVsZW5ndGg7CisJX191MzIJCWxm Yl9iYXNlOworCV9fdTMyCQlsZmJfc2l6ZTsKKwlfX3U4CQlyZWRfc2l6ZTsKKwlfX3U4CQlyZWRf cG9zOworCV9fdTgJCWdyZWVuX3NpemU7CisJX191OAkJZ3JlZW5fcG9zOworCV9fdTgJCWJsdWVf c2l6ZTsKKwlfX3U4CQlibHVlX3BvczsKKwlfX3U4CQlyc3ZkX3NpemU7CisJX191OAkJcnN2ZF9w b3M7Cit9OworCisvKiBjb21tYW5kIGxpbmU6IFwwIHRlcm1pbmF0ZWQgc3RyaW5nICovCisjZGVm aW5lIEFUQUdfQ01ETElORQkweDU0NDEwMDA5CisKK3N0cnVjdCB0YWdfY21kbGluZSB7CisJY2hh cgljbWRsaW5lWzFdOwkvKiB0aGlzIGlzIHRoZSBtaW5pbXVtIHNpemUgKi8KK307CisKKy8qIGFj b3JuIFJpc2NQQyBzcGVjaWZpYyBpbmZvcm1hdGlvbiAqLworI2RlZmluZSBBVEFHX0FDT1JOCTB4 NDEwMDAxMDEKKworc3RydWN0IHRhZ19hY29ybiB7CisJX191MzIgbWVtY19jb250cm9sX3JlZzsK KwlfX3UzMiB2cmFtX3BhZ2VzOworCV9fdTggc291bmRkZWZhdWx0OworCV9fdTggYWRmc2RyaXZl czsKK307CisKKy8qIGZvb3RicmlkZ2UgbWVtb3J5IGNsb2NrLCBzZWUgYXJjaC9hcm0vbWFjaC1m b290YnJpZGdlL2FyY2guYyAqLworI2RlZmluZSBBVEFHX01FTUNMSwkweDQxMDAwNDAyCisKK3N0 cnVjdCB0YWdfbWVtY2xrIHsKKwlfX3UzMiBmbWVtY2xrOworfTsKKworc3RydWN0IHRhZyB7CisJ c3RydWN0IHRhZ19oZWFkZXIgaGRyOworCXVuaW9uIHsKKwkJc3RydWN0IHRhZ19jb3JlCQljb3Jl OworCQlzdHJ1Y3QgdGFnX21lbTMyCW1lbTsKKwkJc3RydWN0IHRhZ192aWRlb3RleHQJdmlkZW90 ZXh0OworCQlzdHJ1Y3QgdGFnX3JhbWRpc2sJcmFtZGlzazsKKwkJc3RydWN0IHRhZ19pbml0cmQJ aW5pdHJkOworCQlzdHJ1Y3QgdGFnX3NlcmlhbG5yCXNlcmlhbG5yOworCQlzdHJ1Y3QgdGFnX3Jl dmlzaW9uCXJldmlzaW9uOworCQlzdHJ1Y3QgdGFnX3ZpZGVvbGZiCXZpZGVvbGZiOworCQlzdHJ1 Y3QgdGFnX2NtZGxpbmUJY21kbGluZTsKKworCQkvKgorCQkgKiBBY29ybiBzcGVjaWZpYworCQkg Ki8KKwkJc3RydWN0IHRhZ19hY29ybglhY29ybjsKKworCQkvKgorCQkgKiBEQzIxMjg1IHNwZWNp ZmljCisJCSAqLworCQlzdHJ1Y3QgdGFnX21lbWNsawltZW1jbGs7CisJfSB1OworfTsKKworc3Ry dWN0IHRhZ3RhYmxlIHsKKwlfX3UzMiB0YWc7CisJaW50ICgqcGFyc2UpKGNvbnN0IHN0cnVjdCB0 YWcgKik7Cit9OworCisjZGVmaW5lIHRhZ19tZW1iZXJfcHJlc2VudCh0YWcsbWVtYmVyKQkJCQlc CisJKCh1bnNpZ25lZCBsb25nKSgmKChzdHJ1Y3QgdGFnICopMEwpLT5tZW1iZXIgKyAxKQlcCisJ CTw9ICh0YWcpLT5oZHIuc2l6ZSAqIDQpCisKKyNkZWZpbmUgdGFnX25leHQodCkJKChzdHJ1Y3Qg dGFnICopKChfX3UzMiAqKSh0KSArICh0KS0+aGRyLnNpemUpKQorI2RlZmluZSB0YWdfc2l6ZSh0 eXBlKQkoKHNpemVvZihzdHJ1Y3QgdGFnX2hlYWRlcikgKyBzaXplb2Yoc3RydWN0IHR5cGUpKSA+ PiAyKQorCisjZGVmaW5lIGZvcl9lYWNoX3RhZyh0LGJhc2UpCQlcCisJZm9yICh0ID0gYmFzZTsg dC0+aGRyLnNpemU7IHQgPSB0YWdfbmV4dCh0KSkKKworI2VuZGlmIC8qICBhYXJjaDY0L2FybSAg Ki8KKworI2VuZGlmIC8qIF9fQVNNX1NFVFVQX0ggICovCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0 L2luY2x1ZGUvdWFwaS9hc20vc2lnY29udGV4dC5oIGIvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkv YXNtL3NpZ2NvbnRleHQuaAppbmRleCBmMGE3NmI5Li40MzE2Y2NkIDEwMDY0NAotLS0gYS9hcmNo L2FybTY0L2luY2x1ZGUvdWFwaS9hc20vc2lnY29udGV4dC5oCisrKyBiL2FyY2gvYXJtNjQvaW5j bHVkZS91YXBpL2FzbS9zaWdjb250ZXh0LmgKQEAgLTE2LDYgKzE2LDggQEAKICNpZm5kZWYgX1VB UElfX0FTTV9TSUdDT05URVhUX0gKICNkZWZpbmUgX1VBUElfX0FTTV9TSUdDT05URVhUX0gKIAor I2lmIGRlZmluZWQgX19hYXJjaDY0X18KKwogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAKIC8q CkBAIC0xMTYsNCArMTE4LDM3IEBAIHN0cnVjdCBleHRyYV9jb250ZXh0IHsKIAlfX3UzMiBfX3Jl c2VydmVkWzNdOwogfTsKIAorI2Vsc2UgLyogZm9yIGFybSAgKi8KKworLyoKKyAqIFNpZ25hbCBj b250ZXh0IHN0cnVjdHVyZSAtIGNvbnRhaW5zIGFsbCBpbmZvIHRvIGRvIHdpdGggdGhlIHN0YXRl CisgKiBiZWZvcmUgdGhlIHNpZ25hbCBoYW5kbGVyIHdhcyBpbnZva2VkLiAgTm90ZTogb25seSBh ZGQgbmV3IGVudHJpZXMKKyAqIHRvIHRoZSBlbmQgb2YgdGhlIHN0cnVjdHVyZS4KKyAqLworc3Ry dWN0IHNpZ2NvbnRleHQgeworCXVuc2lnbmVkIGxvbmcgdHJhcF9ubzsKKwl1bnNpZ25lZCBsb25n IGVycm9yX2NvZGU7CisJdW5zaWduZWQgbG9uZyBvbGRtYXNrOworCXVuc2lnbmVkIGxvbmcgYXJt X3IwOworCXVuc2lnbmVkIGxvbmcgYXJtX3IxOworCXVuc2lnbmVkIGxvbmcgYXJtX3IyOworCXVu c2lnbmVkIGxvbmcgYXJtX3IzOworCXVuc2lnbmVkIGxvbmcgYXJtX3I0OworCXVuc2lnbmVkIGxv bmcgYXJtX3I1OworCXVuc2lnbmVkIGxvbmcgYXJtX3I2OworCXVuc2lnbmVkIGxvbmcgYXJtX3I3 OworCXVuc2lnbmVkIGxvbmcgYXJtX3I4OworCXVuc2lnbmVkIGxvbmcgYXJtX3I5OworCXVuc2ln bmVkIGxvbmcgYXJtX3IxMDsKKwl1bnNpZ25lZCBsb25nIGFybV9mcDsKKwl1bnNpZ25lZCBsb25n IGFybV9pcDsKKwl1bnNpZ25lZCBsb25nIGFybV9zcDsKKwl1bnNpZ25lZCBsb25nIGFybV9scjsK Kwl1bnNpZ25lZCBsb25nIGFybV9wYzsKKwl1bnNpZ25lZCBsb25nIGFybV9jcHNyOworCXVuc2ln bmVkIGxvbmcgZmF1bHRfYWRkcmVzczsKK307CisKKyNlbmRpZiAvKiBhYXJjaDY0L2FybSAgKi8K KwogI2VuZGlmIC8qIF9VQVBJX19BU01fU0lHQ09OVEVYVF9IICovCmRpZmYgLS1naXQgYS9hcmNo L2FybTY0L2luY2x1ZGUvdWFwaS9hc20vc2lnbmFsLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvdWFw aS9hc20vc2lnbmFsLmgKaW5kZXggOTkxYmY1ZC4uOWVlMzFmNmQgMTAwNjQ0Ci0tLSBhL2FyY2gv YXJtNjQvaW5jbHVkZS91YXBpL2FzbS9zaWduYWwuaAorKysgYi9hcmNoL2FybTY0L2luY2x1ZGUv dWFwaS9hc20vc2lnbmFsLmgKQEAgLTEsMjcgKzEsMTMzIEBACisjaWZuZGVmIF9VQVBJX0FTTUFS TV9TSUdOQUxfSAorI2RlZmluZSBfVUFQSV9BU01BUk1fU0lHTkFMX0gKKworI2lmIGRlZmluZWQg X19hYXJjaDY0X18KKworLyogUmVxdWlyZWQgZm9yIEFBcmNoMzIgY29tcGF0aWJpbGl0eS4gKi8K KyNkZWZpbmUgU0FfUkVTVE9SRVIJeDA0MDAwMDAwCisKKyNkZWZpbmUgTUlOU0lHU1RLU1oJMTIw CisjZGVmaW5lIFNJR1NUS1NaCTYzODQKKworI2luY2x1ZGUgPGFzbS1nZW5lcmljL3NpZ25hbC5o PgorCisKKyNlbHNlIC8qIGZvciBhcm0gICovCisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgor CisvKiBBdm9pZCB0b28gbWFueSBoZWFkZXIgb3JkZXJpbmcgcHJvYmxlbXMuICAqLworc3RydWN0 IHNpZ2luZm87CisKKyNpZm5kZWYgX19LRVJORUxfXworLyogSGVyZSB3ZSBtdXN0IGNhdGVyIHRv IGxpYmNzIHRoYXQgcG9rZSBhYm91dCBpbiBrZXJuZWwgaGVhZGVycy4gICovCisKKyNkZWZpbmUg TlNJRwkJMzIKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyBzaWdzZXRfdDsKKworI2VuZGlmIC8qIF9f S0VSTkVMX18gKi8KKworI2RlZmluZSBTSUdIVVAJCSAxCisjZGVmaW5lIFNJR0lOVAkJIDIKKyNk ZWZpbmUgU0lHUVVJVAkJIDMKKyNkZWZpbmUgU0lHSUxMCQkgNAorI2RlZmluZSBTSUdUUkFQCQkg NQorI2RlZmluZSBTSUdBQlJUCQkgNgorI2RlZmluZSBTSUdJT1QJCSA2CisjZGVmaW5lIFNJR0JV UwkJIDcKKyNkZWZpbmUgU0lHRlBFCQkgOAorI2RlZmluZSBTSUdLSUxMCQkgOQorI2RlZmluZSBT SUdVU1IxCQkxMAorI2RlZmluZSBTSUdTRUdWCQkxMQorI2RlZmluZSBTSUdVU1IyCQkxMgorI2Rl ZmluZSBTSUdQSVBFCQkxMworI2RlZmluZSBTSUdBTFJNCQkxNAorI2RlZmluZSBTSUdURVJNCQkx NQorI2RlZmluZSBTSUdTVEtGTFQJMTYKKyNkZWZpbmUgU0lHQ0hMRAkJMTcKKyNkZWZpbmUgU0lH Q09OVAkJMTgKKyNkZWZpbmUgU0lHU1RPUAkJMTkKKyNkZWZpbmUgU0lHVFNUUAkJMjAKKyNkZWZp bmUgU0lHVFRJTgkJMjEKKyNkZWZpbmUgU0lHVFRPVQkJMjIKKyNkZWZpbmUgU0lHVVJHCQkyMwor I2RlZmluZSBTSUdYQ1BVCQkyNAorI2RlZmluZSBTSUdYRlNaCQkyNQorI2RlZmluZSBTSUdWVEFM Uk0JMjYKKyNkZWZpbmUgU0lHUFJPRgkJMjcKKyNkZWZpbmUgU0lHV0lOQ0gJMjgKKyNkZWZpbmUg U0lHSU8JCTI5CisjZGVmaW5lIFNJR1BPTEwJCVNJR0lPCiAvKgotICogQ29weXJpZ2h0IChDKSAy MDEyIEFSTSBMdGQuCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCi0gKiBwdWJsaXNo ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyNkZWZpbmUgU0lHTE9TVAkJMjkK KyovCisjZGVmaW5lIFNJR1BXUgkJMzAKKyNkZWZpbmUgU0lHU1lTCQkzMQorI2RlZmluZQlTSUdV TlVTRUQJMzEKKworLyogVGhlc2Ugc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIGNvbnN0YW50cyBm cm9tIHVzZXJsYW5kLiAgKi8KKyNkZWZpbmUgU0lHUlRNSU4JMzIKKyNkZWZpbmUgU0lHUlRNQVgJ X05TSUcKKworI2RlZmluZSBTSUdTV0kJCTMyCisKKy8qCisgKiBTQV9GTEFHUyB2YWx1ZXM6CiAg KgotICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotICogR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqIFNBX05PQ0xEU1RPUAkJZmxhZyB0byB0dXJuIG9m ZiBTSUdDSExEIHdoZW4gY2hpbGRyZW4gc3RvcC4KKyAqIFNBX05PQ0xEV0FJVAkJZmxhZyBvbiBT SUdDSExEIHRvIGluaGliaXQgem9tYmllcy4KKyAqIFNBX1NJR0lORk8JCWRlbGl2ZXIgdGhlIHNp Z25hbCB3aXRoIFNJR0lORk8gc3RydWN0cworICogU0FfVEhJUlRZVFdPCQlkZWxpdmVycyB0aGUg c2lnbmFsIGluIDMyLWJpdCBtb2RlLCBldmVuIGlmIHRoZSB0YXNrIAorICoJCQlpcyBydW5uaW5n IGluIDI2LWJpdC4KKyAqIFNBX09OU1RBQ0sJCWFsbG93cyBhbHRlcm5hdGUgc2lnbmFsIHN0YWNr cyAoc2VlIHNpZ2FsdHN0YWNrKDIpKS4KKyAqIFNBX1JFU1RBUlQJCWZsYWcgdG8gZ2V0IHJlc3Rh cnRpbmcgc2lnbmFscyAod2hpY2ggd2VyZSB0aGUgZGVmYXVsdCBsb25nIGFnbykKKyAqIFNBX05P REVGRVIJCXByZXZlbnRzIHRoZSBjdXJyZW50IHNpZ25hbCBmcm9tIGJlaW5nIG1hc2tlZCBpbiB0 aGUgaGFuZGxlci4KKyAqIFNBX1JFU0VUSEFORAkJY2xlYXJzIHRoZSBoYW5kbGVyIHdoZW4gdGhl IHNpZ25hbCBpcyBkZWxpdmVyZWQuCiAgKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lgor ICogU0FfT05FU0hPVCBhbmQgU0FfTk9NQVNLIGFyZSB0aGUgaGlzdG9yaWNhbCBMaW51eCBuYW1l cyBmb3IgdGhlIFNpbmdsZQorICogVW5peCBuYW1lcyBSRVNFVEhBTkQgYW5kIE5PREVGRVIgcmVz cGVjdGl2ZWx5LgogICovCi0jaWZuZGVmIF9fQVNNX1NJR05BTF9ICi0jZGVmaW5lIF9fQVNNX1NJ R05BTF9ICi0KLS8qIFJlcXVpcmVkIGZvciBBQXJjaDMyIGNvbXBhdGliaWxpdHkuICovCisjZGVm aW5lIFNBX05PQ0xEU1RPUAkweDAwMDAwMDAxCisjZGVmaW5lIFNBX05PQ0xEV0FJVAkweDAwMDAw MDAyCisjZGVmaW5lIFNBX1NJR0lORk8JMHgwMDAwMDAwNAorI2RlZmluZSBTQV9USElSVFlUV08J MHgwMjAwMDAwMAogI2RlZmluZSBTQV9SRVNUT1JFUgkweDA0MDAwMDAwCisjZGVmaW5lIFNBX09O U1RBQ0sJMHgwODAwMDAwMAorI2RlZmluZSBTQV9SRVNUQVJUCTB4MTAwMDAwMDAKKyNkZWZpbmUg U0FfTk9ERUZFUgkweDQwMDAwMDAwCisjZGVmaW5lIFNBX1JFU0VUSEFORAkweDgwMDAwMDAwCiAK LSNkZWZpbmUgTUlOU0lHU1RLU1ogNTEyMAotI2RlZmluZSBTSUdTVEtTWiAgICAxNjM4NAorI2Rl ZmluZSBTQV9OT01BU0sJU0FfTk9ERUZFUgorI2RlZmluZSBTQV9PTkVTSE9UCVNBX1JFU0VUSEFO RAorCisjZGVmaW5lIE1JTlNJR1NUS1NaCTIwNDgKKyNkZWZpbmUgU0lHU1RLU1oJODE5MgorCisj aW5jbHVkZSA8YXNtLWdlbmVyaWMvc2lnbmFsLWRlZnMuaD4KKworI2lmbmRlZiBfX0tFUk5FTF9f CisvKiBIZXJlIHdlIG11c3QgY2F0ZXIgdG8gbGliY3MgdGhhdCBwb2tlIGFib3V0IGluIGtlcm5l bCBoZWFkZXJzLiAgKi8KKworc3RydWN0IHNpZ2FjdGlvbiB7CisJdW5pb24geworCSAgX19zaWdo YW5kbGVyX3QgX3NhX2hhbmRsZXI7CisJICB2b2lkICgqX3NhX3NpZ2FjdGlvbikoaW50LCBzdHJ1 Y3Qgc2lnaW5mbyAqLCB2b2lkICopOworCX0gX3U7CisJc2lnc2V0X3Qgc2FfbWFzazsKKwl1bnNp Z25lZCBsb25nIHNhX2ZsYWdzOworCXZvaWQgKCpzYV9yZXN0b3Jlcikodm9pZCk7Cit9OworCisj ZGVmaW5lIHNhX2hhbmRsZXIJX3UuX3NhX2hhbmRsZXIKKyNkZWZpbmUgc2Ffc2lnYWN0aW9uCV91 Ll9zYV9zaWdhY3Rpb24KKworI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8KKwordHlwZWRlZiBzdHJ1 Y3Qgc2lnYWx0c3RhY2sgeworCXZvaWQgX191c2VyICpzc19zcDsKKwlpbnQgc3NfZmxhZ3M7CisJ c2l6ZV90IHNzX3NpemU7Cit9IHN0YWNrX3Q7CiAKLSNpbmNsdWRlIDxhc20tZ2VuZXJpYy9zaWdu YWwuaD4KIAotI2VuZGlmCisjZW5kaWYgLyogX1VBUElfQVNNQVJNX1NJR05BTF9IICovCmRpZmYg LS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vc3RhdC5oIGIvYXJjaC9hcm02NC9p bmNsdWRlL3VhcGkvYXNtL3N0YXQuaAppbmRleCBlZWI3MDJlLi4xZDc1ZWFjIDEwMDY0NAotLS0g YS9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vc3RhdC5oCisrKyBiL2FyY2gvYXJtNjQvaW5j bHVkZS91YXBpL2FzbS9zdGF0LmgKQEAgLTEzLDQgKzEzLDk4IEBACiAgKiBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICog YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uCiAgKi8KKyAKKyNpZm5kZWYgX0FTTUFSTV9TVEFUX0gKKyNkZWZpbmUgX0FT TUFSTV9TVEFUX0gKKworI2lmIGRlZmluZWQgX19hYXJjaDY0X18KICNpbmNsdWRlIDxhc20tZ2Vu ZXJpYy9zdGF0Lmg+CisKKyNlbHNlIC8qIGZvciBhcm0gICovCisKK3N0cnVjdCBfX29sZF9rZXJu ZWxfc3RhdCB7CisJdW5zaWduZWQgc2hvcnQgc3RfZGV2OworCXVuc2lnbmVkIHNob3J0IHN0X2lu bzsKKwl1bnNpZ25lZCBzaG9ydCBzdF9tb2RlOworCXVuc2lnbmVkIHNob3J0IHN0X25saW5rOwor CXVuc2lnbmVkIHNob3J0IHN0X3VpZDsKKwl1bnNpZ25lZCBzaG9ydCBzdF9naWQ7CisJdW5zaWdu ZWQgc2hvcnQgc3RfcmRldjsKKwl1bnNpZ25lZCBsb25nICBzdF9zaXplOworCXVuc2lnbmVkIGxv bmcgIHN0X2F0aW1lOworCXVuc2lnbmVkIGxvbmcgIHN0X210aW1lOworCXVuc2lnbmVkIGxvbmcg IHN0X2N0aW1lOworfTsKKworI2RlZmluZSBTVEFUX0hBVkVfTlNFQyAKKworc3RydWN0IHN0YXQg eworI2lmIGRlZmluZWQoX19BUk1FQl9fKQorCXVuc2lnbmVkIHNob3J0IHN0X2RldjsKKwl1bnNp Z25lZCBzaG9ydCBfX3BhZDE7CisjZWxzZQorCXVuc2lnbmVkIGxvbmcgIHN0X2RldjsKKyNlbmRp ZgorCXVuc2lnbmVkIGxvbmcgIHN0X2lubzsKKwl1bnNpZ25lZCBzaG9ydCBzdF9tb2RlOworCXVu c2lnbmVkIHNob3J0IHN0X25saW5rOworCXVuc2lnbmVkIHNob3J0IHN0X3VpZDsKKwl1bnNpZ25l ZCBzaG9ydCBzdF9naWQ7CisjaWYgZGVmaW5lZChfX0FSTUVCX18pCisJdW5zaWduZWQgc2hvcnQg c3RfcmRldjsKKwl1bnNpZ25lZCBzaG9ydCBfX3BhZDI7CisjZWxzZQorCXVuc2lnbmVkIGxvbmcg IHN0X3JkZXY7CisjZW5kaWYKKwl1bnNpZ25lZCBsb25nICBzdF9zaXplOworCXVuc2lnbmVkIGxv bmcgIHN0X2Jsa3NpemU7CisJdW5zaWduZWQgbG9uZyAgc3RfYmxvY2tzOworCXVuc2lnbmVkIGxv bmcgIHN0X2F0aW1lOworCXVuc2lnbmVkIGxvbmcgIHN0X2F0aW1lX25zZWM7CisJdW5zaWduZWQg bG9uZyAgc3RfbXRpbWU7CisJdW5zaWduZWQgbG9uZyAgc3RfbXRpbWVfbnNlYzsKKwl1bnNpZ25l ZCBsb25nICBzdF9jdGltZTsKKwl1bnNpZ25lZCBsb25nICBzdF9jdGltZV9uc2VjOworCXVuc2ln bmVkIGxvbmcgIF9fdW51c2VkNDsKKwl1bnNpZ25lZCBsb25nICBfX3VudXNlZDU7Cit9OworCisv KiBUaGlzIG1hdGNoZXMgc3RydWN0IHN0YXQ2NCBpbiBnbGliYzIuMSwgaGVuY2UgdGhlIGFic29s dXRlbHkKKyAqIGluc2FuZSBhbW91bnRzIG9mIHBhZGRpbmcgYXJvdW5kIGRldl90J3MuCisgKiBO b3RlOiBUaGUga2VybmVsIHplcm8ncyB0aGUgcGFkZGVkIHJlZ2lvbiBiZWNhdXNlIGdsaWJjIG1p Z2h0IHJlYWQgdGhlbQorICogaW4gdGhlIGhvcGUgdGhhdCB0aGUga2VybmVsIGhhcyBzdHJldGNo ZWQgdG8gdXNpbmcgbGFyZ2VyIHNpemVzLgorICovCitzdHJ1Y3Qgc3RhdDY0IHsKKwl1bnNpZ25l ZCBsb25nIGxvbmcJc3RfZGV2OworCXVuc2lnbmVkIGNoYXIgICBfX3BhZDBbNF07CisKKyNkZWZp bmUgU1RBVDY0X0hBU19CUk9LRU5fU1RfSU5PCTEKKwl1bnNpZ25lZCBsb25nCV9fc3RfaW5vOwor CXVuc2lnbmVkIGludAlzdF9tb2RlOworCXVuc2lnbmVkIGludAlzdF9ubGluazsKKworCXVuc2ln bmVkIGxvbmcJc3RfdWlkOworCXVuc2lnbmVkIGxvbmcJc3RfZ2lkOworCisJdW5zaWduZWQgbG9u ZyBsb25nCXN0X3JkZXY7CisJdW5zaWduZWQgY2hhciAgIF9fcGFkM1s0XTsKKworCWxvbmcgbG9u ZwlzdF9zaXplOworCXVuc2lnbmVkIGxvbmcJc3RfYmxrc2l6ZTsKKwl1bnNpZ25lZCBsb25nIGxv bmcgc3RfYmxvY2tzOwkvKiBOdW1iZXIgNTEyLWJ5dGUgYmxvY2tzIGFsbG9jYXRlZC4gKi8KKwor CXVuc2lnbmVkIGxvbmcJc3RfYXRpbWU7CisJdW5zaWduZWQgbG9uZwlzdF9hdGltZV9uc2VjOwor CisJdW5zaWduZWQgbG9uZwlzdF9tdGltZTsKKwl1bnNpZ25lZCBsb25nCXN0X210aW1lX25zZWM7 CisKKwl1bnNpZ25lZCBsb25nCXN0X2N0aW1lOworCXVuc2lnbmVkIGxvbmcJc3RfY3RpbWVfbnNl YzsKKworCXVuc2lnbmVkIGxvbmcgbG9uZwlzdF9pbm87Cit9OworCisjZW5kaWYgLyogYWFyY2g2 NC9hcm0gICovCisKKyNlbmRpZiAvKiBfQVNNQVJNX1NUQVRfSCAgKi8KXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vc3Rh dGZzLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vc3RhdGZzLmgKaW5kZXggNmY2MjE5 MC4uMzA5MDc4ZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL3N0YXRm cy5oCisrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9zdGF0ZnMuaApAQCAtMTYsOCAr MTYsMjEgQEAKICNpZm5kZWYgX19BU01fU1RBVEZTX0gKICNkZWZpbmUgX19BU01fU1RBVEZTX0gK IAorI2lmIGRlZmluZWQgX19hYXJjaDY0X18KKwogI2RlZmluZSBBUkNIX1BBQ0tfQ09NUEFUX1NU QVRGUzY0IF9fYXR0cmlidXRlX18oKHBhY2tlZCxhbGlnbmVkKDQpKSkKIAorI2Vsc2UgLyogZm9y IGFybSAgKi8KKworLyoKKyAqIFdpdGggRUFCSSB0aGVyZSBpcyA0IGJ5dGVzIG9mIHBhZGRpbmcg YWRkZWQgdG8gdGhpcyBzdHJ1Y3R1cmUuCisgKiBMZXQncyBwYWNrIGl0IHNvIHRoZSBwYWRkaW5n IGdvZXMgYXdheSB0byBzaW1wbGlmeSBkdWFsIEFCSSBzdXBwb3J0LgorICogTm90ZSB0aGF0IHVz ZXIgc3BhY2UgZG9lcyBOT1QgaGF2ZSB0byBwYWNrIHRoaXMgc3RydWN0dXJlLgorICovCisjZGVm aW5lIEFSQ0hfUEFDS19TVEFURlM2NCBfX2F0dHJpYnV0ZV9fKChwYWNrZWQsYWxpZ25lZCg0KSkp CisKKyNlbmRpZiAvKiAgYWFyY2g2NC9hcm0gICovCisKICNpbmNsdWRlIDxhc20tZ2VuZXJpYy9z dGF0ZnMuaD4KIAotI2VuZGlmCisjZW5kaWYgLyogX19BU01fU1RBVEZTX0ggICovCmRpZmYgLS1n aXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vdW5pc3RkLmggYi9hcmNoL2FybTY0L2lu Y2x1ZGUvdWFwaS9hc20vdW5pc3RkLmgKaW5kZXggMDQzZDE3YS4uZTUxNmFlZCAxMDA2NDQKLS0t IGEvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL3VuaXN0ZC5oCisrKyBiL2FyY2gvYXJtNjQv aW5jbHVkZS91YXBpL2FzbS91bmlzdGQuaApAQCAtMTQsNiArMTQsNDAgQEAKICAqIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LgogICovCiAKKyNpZm5kZWYgX1VBUElfX0FTTV9BUk1fVU5JU1REX0gKKyNkZWZpbmUgX1VB UElfX0FTTV9BUk1fVU5JU1REX0gKKworI2lmIGRlZmluZWQgX19hYXJjaDY0X18KKwogI2RlZmlu ZSBfX0FSQ0hfV0FOVF9SRU5BTUVBVAogCiAjaW5jbHVkZSA8YXNtLWdlbmVyaWMvdW5pc3RkLmg+ CisKKyNlbHNlIC8qIGZvciBhcm0gICovCisKKyNkZWZpbmUgX19OUl9PQUJJX1NZU0NBTExfQkFT RQkweDkwMDAwMAorCisjaWYgZGVmaW5lZChfX3RodW1iX18pIHx8IGRlZmluZWQoX19BUk1fRUFC SV9fKQorI2RlZmluZSBfX05SX1NZU0NBTExfQkFTRQkwCisjaW5jbHVkZSA8YXNtL3VuaXN0ZC1l YWJpLmg+CisjZWxzZQorI2RlZmluZSBfX05SX1NZU0NBTExfQkFTRQlfX05SX09BQklfU1lTQ0FM TF9CQVNFCisjaW5jbHVkZSA8YXNtL3VuaXN0ZC1vYWJpLmg+CisjZW5kaWYKKworI2luY2x1ZGUg PGFzbS91bmlzdGQtY29tbW9uLmg+CisjZGVmaW5lIF9fTlJfc3luY19maWxlX3JhbmdlMgkJX19O Ul9hcm1fc3luY19maWxlX3JhbmdlCisKKy8qCisgKiBUaGUgZm9sbG93aW5nIFNXSXMgYXJlIEFS TSBwcml2YXRlLgorICovCisjZGVmaW5lIF9fQVJNX05SX0JBU0UJCQkoX19OUl9TWVNDQUxMX0JB U0UrMHgwZjAwMDApCisjZGVmaW5lIF9fQVJNX05SX2JyZWFrcG9pbnQJCShfX0FSTV9OUl9CQVNF KzEpCisjZGVmaW5lIF9fQVJNX05SX2NhY2hlZmx1c2gJCShfX0FSTV9OUl9CQVNFKzIpCisjZGVm aW5lIF9fQVJNX05SX3VzcjI2CQkJKF9fQVJNX05SX0JBU0UrMykKKyNkZWZpbmUgX19BUk1fTlJf dXNyMzIJCQkoX19BUk1fTlJfQkFTRSs0KQorI2RlZmluZSBfX0FSTV9OUl9zZXRfdGxzCQkoX19B Uk1fTlJfQkFTRSs1KQorCisjZW5kaWYgLyogYWFyY2g2NC9hcm0gICovCisKKyNlbmRpZiAvKiBf VUFQSV9fQVNNX0FSTV9VTklTVERfSCAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9hcmNoL2Fy bS9pbmNsdWRlL3BlcmZfcmVncy5oIGIvdG9vbHMvcGVyZi9hcmNoL2FybS9pbmNsdWRlL3BlcmZf cmVncy5oCmluZGV4IGY2MTljOWMuLmU0MDNkMDUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYXJj aC9hcm0vaW5jbHVkZS9wZXJmX3JlZ3MuaAorKysgYi90b29scy9wZXJmL2FyY2gvYXJtL2luY2x1 ZGUvcGVyZl9yZWdzLmgKQEAgLTUsNiArNSw5MiBAQAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+ CiAjaW5jbHVkZSA8YXNtL3BlcmZfcmVncy5oPgogCisjaWYgZGVmaW5lZCBfX2FhcmNoNjRfXwor CisjZGVmaW5lIFBFUkZfUkVHU19NQVNLCSgoMVVMTCA8PCBQRVJGX1JFR19BUk02NF9NQVgpIC0g MSkKKyNkZWZpbmUgUEVSRl9SRUdTX01BWAlQRVJGX1JFR19BUk02NF9NQVgKKworI2RlZmluZSBQ RVJGX1JFR19JUAlQRVJGX1JFR19BUk02NF9QQworI2RlZmluZSBQRVJGX1JFR19TUAlQRVJGX1JF R19BUk02NF9TUAorCitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKnBlcmZfcmVnX25hbWUoaW50 IGlkKQoreworCXN3aXRjaCAoaWQpIHsKKwljYXNlIFBFUkZfUkVHX0FSTTY0X1gwOgorCQlyZXR1 cm4gIngwIjsKKwljYXNlIFBFUkZfUkVHX0FSTTY0X1gxOgorCQlyZXR1cm4gIngxIjsKKwljYXNl IFBFUkZfUkVHX0FSTTY0X1gyOgorCQlyZXR1cm4gIngyIjsKKwljYXNlIFBFUkZfUkVHX0FSTTY0 X1gzOgorCQlyZXR1cm4gIngzIjsKKwljYXNlIFBFUkZfUkVHX0FSTTY0X1g0OgorCQlyZXR1cm4g Ing0IjsKKwljYXNlIFBFUkZfUkVHX0FSTTY0X1g1OgorCQlyZXR1cm4gIng1IjsKKwljYXNlIFBF UkZfUkVHX0FSTTY0X1g2OgorCQlyZXR1cm4gIng2IjsKKwljYXNlIFBFUkZfUkVHX0FSTTY0X1g3 OgorCQlyZXR1cm4gIng3IjsKKwljYXNlIFBFUkZfUkVHX0FSTTY0X1g4OgorCQlyZXR1cm4gIng4 IjsKKwljYXNlIFBFUkZfUkVHX0FSTTY0X1g5OgorCQlyZXR1cm4gIng5IjsKKwljYXNlIFBFUkZf UkVHX0FSTTY0X1gxMDoKKwkJcmV0dXJuICJ4MTAiOworCWNhc2UgUEVSRl9SRUdfQVJNNjRfWDEx OgorCQlyZXR1cm4gIngxMSI7CisJY2FzZSBQRVJGX1JFR19BUk02NF9YMTI6CisJCXJldHVybiAi eDEyIjsKKwljYXNlIFBFUkZfUkVHX0FSTTY0X1gxMzoKKwkJcmV0dXJuICJ4MTMiOworCWNhc2Ug UEVSRl9SRUdfQVJNNjRfWDE0OgorCQlyZXR1cm4gIngxNCI7CisJY2FzZSBQRVJGX1JFR19BUk02 NF9YMTU6CisJCXJldHVybiAieDE1IjsKKwljYXNlIFBFUkZfUkVHX0FSTTY0X1gxNjoKKwkJcmV0 dXJuICJ4MTYiOworCWNhc2UgUEVSRl9SRUdfQVJNNjRfWDE3OgorCQlyZXR1cm4gIngxNyI7CisJ Y2FzZSBQRVJGX1JFR19BUk02NF9YMTg6CisJCXJldHVybiAieDE4IjsKKwljYXNlIFBFUkZfUkVH X0FSTTY0X1gxOToKKwkJcmV0dXJuICJ4MTkiOworCWNhc2UgUEVSRl9SRUdfQVJNNjRfWDIwOgor CQlyZXR1cm4gIngyMCI7CisJY2FzZSBQRVJGX1JFR19BUk02NF9YMjE6CisJCXJldHVybiAieDIx IjsKKwljYXNlIFBFUkZfUkVHX0FSTTY0X1gyMjoKKwkJcmV0dXJuICJ4MjIiOworCWNhc2UgUEVS Rl9SRUdfQVJNNjRfWDIzOgorCQlyZXR1cm4gIngyMyI7CisJY2FzZSBQRVJGX1JFR19BUk02NF9Y MjQ6CisJCXJldHVybiAieDI0IjsKKwljYXNlIFBFUkZfUkVHX0FSTTY0X1gyNToKKwkJcmV0dXJu ICJ4MjUiOworCWNhc2UgUEVSRl9SRUdfQVJNNjRfWDI2OgorCQlyZXR1cm4gIngyNiI7CisJY2Fz ZSBQRVJGX1JFR19BUk02NF9YMjc6CisJCXJldHVybiAieDI3IjsKKwljYXNlIFBFUkZfUkVHX0FS TTY0X1gyODoKKwkJcmV0dXJuICJ4MjgiOworCWNhc2UgUEVSRl9SRUdfQVJNNjRfWDI5OgorCQly ZXR1cm4gIngyOSI7CisJY2FzZSBQRVJGX1JFR19BUk02NF9TUDoKKwkJcmV0dXJuICJzcCI7CisJ Y2FzZSBQRVJGX1JFR19BUk02NF9MUjoKKwkJcmV0dXJuICJsciI7CisJY2FzZSBQRVJGX1JFR19B Uk02NF9QQzoKKwkJcmV0dXJuICJwYyI7CisJZGVmYXVsdDoKKwkJcmV0dXJuIE5VTEw7CisJfQor CisJcmV0dXJuIE5VTEw7Cit9CisKKyNlbHNlIC8qIGZvciBhcm0gICovCisKIHZvaWQgcGVyZl9y ZWdzX2xvYWQodTY0ICpyZWdzKTsKIAogI2RlZmluZSBQRVJGX1JFR1NfTUFTSwkoKDFVTEwgPDwg UEVSRl9SRUdfQVJNX01BWCkgLSAxKQpAQCAtNTYsNCArMTQyLDYgQEAgc3RhdGljIGlubGluZSBj b25zdCBjaGFyICpwZXJmX3JlZ19uYW1lKGludCBpZCkKIAlyZXR1cm4gTlVMTDsKIH0KIAorI2Vu ZGlmIC8qIGFhcmNoL2FybSAgKi8KKwogI2VuZGlmIC8qIEFSQ0hfUEVSRl9SRUdTX0ggKi8KZGlm ZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYXJjaC9hcm02NC9pbmNsdWRlL3BlcmZfcmVncy5oIGIvdG9v bHMvcGVyZi9hcmNoL2FybTY0L2luY2x1ZGUvcGVyZl9yZWdzLmgKaW5kZXggNGU1YWYyN2UzLi42 Yzk2ZTE4IDEwMDY0NAotLS0gYS90b29scy9wZXJmL2FyY2gvYXJtNjQvaW5jbHVkZS9wZXJmX3Jl Z3MuaAorKysgYi90b29scy9wZXJmL2FyY2gvYXJtNjQvaW5jbHVkZS9wZXJmX3JlZ3MuaApAQCAt NSw2ICs1LDggQEAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGFzbS9wZXJm X3JlZ3MuaD4KIAorI2lmIGRlZmluZWQgX19hYXJjaDY0X18KKwogdm9pZCBwZXJmX3JlZ3NfbG9h ZCh1NjQgKnJlZ3MpOwogCiAjZGVmaW5lIFBFUkZfUkVHU19NQVNLCSgoMVVMTCA8PCBQRVJGX1JF R19BUk02NF9NQVgpIC0gMSkKQEAgLTkwLDQgKzkyLDU5IEBAIHN0YXRpYyBpbmxpbmUgY29uc3Qg Y2hhciAqcGVyZl9yZWdfbmFtZShpbnQgaWQpCiAJcmV0dXJuIE5VTEw7CiB9CiAKKyNlbHNlIC8q IGZvciBhcm0gICovCisKK3ZvaWQgcGVyZl9yZWdzX2xvYWQodTY0ICpyZWdzKTsKKworI2RlZmlu ZSBQRVJGX1JFR1NfTUFTSwkoKDFVTEwgPDwgUEVSRl9SRUdfQVJNX01BWCkgLSAxKQorI2RlZmlu ZSBQRVJGX1JFR1NfTUFYCVBFUkZfUkVHX0FSTV9NQVgKKyNkZWZpbmUgUEVSRl9TQU1QTEVfUkVH U19BQkkJUEVSRl9TQU1QTEVfUkVHU19BQklfMzIKKworI2RlZmluZSBQRVJGX1JFR19JUAlQRVJG X1JFR19BUk1fUEMKKyNkZWZpbmUgUEVSRl9SRUdfU1AJUEVSRl9SRUdfQVJNX1NQCisKK3N0YXRp YyBpbmxpbmUgY29uc3QgY2hhciAqcGVyZl9yZWdfbmFtZShpbnQgaWQpCit7CisJc3dpdGNoIChp ZCkgeworCWNhc2UgUEVSRl9SRUdfQVJNX1IwOgorCQlyZXR1cm4gInIwIjsKKwljYXNlIFBFUkZf UkVHX0FSTV9SMToKKwkJcmV0dXJuICJyMSI7CisJY2FzZSBQRVJGX1JFR19BUk1fUjI6CisJCXJl dHVybiAicjIiOworCWNhc2UgUEVSRl9SRUdfQVJNX1IzOgorCQlyZXR1cm4gInIzIjsKKwljYXNl IFBFUkZfUkVHX0FSTV9SNDoKKwkJcmV0dXJuICJyNCI7CisJY2FzZSBQRVJGX1JFR19BUk1fUjU6 CisJCXJldHVybiAicjUiOworCWNhc2UgUEVSRl9SRUdfQVJNX1I2OgorCQlyZXR1cm4gInI2IjsK KwljYXNlIFBFUkZfUkVHX0FSTV9SNzoKKwkJcmV0dXJuICJyNyI7CisJY2FzZSBQRVJGX1JFR19B Uk1fUjg6CisJCXJldHVybiAicjgiOworCWNhc2UgUEVSRl9SRUdfQVJNX1I5OgorCQlyZXR1cm4g InI5IjsKKwljYXNlIFBFUkZfUkVHX0FSTV9SMTA6CisJCXJldHVybiAicjEwIjsKKwljYXNlIFBF UkZfUkVHX0FSTV9GUDoKKwkJcmV0dXJuICJmcCI7CisJY2FzZSBQRVJGX1JFR19BUk1fSVA6CisJ CXJldHVybiAiaXAiOworCWNhc2UgUEVSRl9SRUdfQVJNX1NQOgorCQlyZXR1cm4gInNwIjsKKwlj YXNlIFBFUkZfUkVHX0FSTV9MUjoKKwkJcmV0dXJuICJsciI7CisJY2FzZSBQRVJGX1JFR19BUk1f UEM6CisJCXJldHVybiAicGMiOworCWRlZmF1bHQ6CisJCXJldHVybiBOVUxMOworCX0KKworCXJl dHVybiBOVUxMOworfQorCisjZW5kaWYgLyogYWFyY2gvYXJtICAqLworCiAjZW5kaWYgLyogQVJD SF9QRVJGX1JFR1NfSCAqLwo= --_002_BM1PR01MB0322AE0614C84506EA8601ACFC880BM1PR01MB0322INDP_--