From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.0 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E3870C433E5 for ; Tue, 14 Jul 2020 20:58:38 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C29732067D for ; Tue, 14 Jul 2020 20:58:38 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C29732067D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AF38D6E879; Tue, 14 Jul 2020 20:58:22 +0000 (UTC) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id E78AE6E85D; Tue, 14 Jul 2020 20:58:18 +0000 (UTC) IronPort-SDR: fEt+/sJAA9BsIehYEQOTgD5v8APNIggsEouMFI2ZngIUmqcEumBTmeG9OzgCYiRmxD2IGFlKot rwNH+fs2PmlA== X-IronPort-AV: E=McAfee;i="6000,8403,9682"; a="129116733" X-IronPort-AV: E=Sophos;i="5.75,352,1589266800"; d="scan'208";a="129116733" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jul 2020 13:58:18 -0700 IronPort-SDR: 7jhKelMAJCFj9OOBzFio9hPSrRqZ41qtkLUc2Uaquqnmks9l3G/UhGf9S8ltQ8twQ8Ag8FswTg AXjW8g5q7BEA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,352,1589266800"; d="scan'208";a="316504054" Received: from ahanamuk-mobl.amr.corp.intel.com (HELO achrisan-DESK2.amr.corp.intel.com) ([10.251.155.61]) by orsmga008.jf.intel.com with ESMTP; 14 Jul 2020 13:58:17 -0700 From: Anitha Chrisanthus To: dri-devel@lists.freedesktop.org, anitha.chrisanthus@intel.com, bob.j.paauwe@intel.com, edmund.j.dea@intel.com Subject: [PATCH v2 01/59] drm/kmb: Add support for KeemBay Display Date: Tue, 14 Jul 2020 13:56:47 -0700 Message-Id: <1594760265-11618-2-git-send-email-anitha.chrisanthus@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1594760265-11618-1-git-send-email-anitha.chrisanthus@intel.com> References: <1594760265-11618-1-git-send-email-anitha.chrisanthus@intel.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@intel.com, intel-gfx@lists.freedesktop.org, rodrigo.vivi@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SW5pdGlhbCBjaGVjay1pbiBmb3IgYmFzaWMgZGlzcGxheSBkcml2ZXIgZm9yIEtlZW1CYXkgZmFt aWx5IG9mIFNPQ3MuClRoaXMgaXMgbm90IHRlc3RlZCBhbmQgZG9lcyBub3Qgd29yayBhbmQgYWxz byB0aGVyZSBhcmUgbWFueSBUQkRzIGluIHRoZQpjb2RlIHdoaWNoIHdpbGwgYmUgaW1wbGVtZW50 ZWQgaW4gZnV0dXJlIGNvbW1pdHMuCgp2MjogbW92ZWQgZXh0ZXJuIHRvIC5oLCByZW1vdmVkIGxp Y2Vuc2UgdGV4dAogICAgdXNlIGRybV9kZXZfaW5pdCwgdXBjbGFzc2VkIGRldl9wcml2YXRlLCBy ZW1vdmVkIEhBVkVfSVJRLgoKU2lnbmVkLW9mZi1ieTogQW5pdGhhIENocmlzYW50aHVzIDxhbml0 aGEuY2hyaXNhbnRodXNAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogQm9iIFBhYXV3ZSA8Ym9iLmou cGFhdXdlQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vS2NvbmZpZyAgICAgICAgIHwg ICAyICsKIGRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSAgICAgICAgfCAgIDEgKwogZHJpdmVycy9n cHUvZHJtL2ttYi9LY29uZmlnICAgICB8ICAxMiArKwogZHJpdmVycy9ncHUvZHJtL2ttYi9NYWtl ZmlsZSAgICB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0va21iL2ttYl9jcnRjLmMgIHwgMTk0ICsr KysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2ttYi9rbWJfY3J0Yy5oICB8ICAzOSAr KysrCiBkcml2ZXJzL2dwdS9kcm0va21iL2ttYl9kcnYuYyAgIHwgMzU1ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0va21iL2ttYl9kcnYuaCAgIHwgIDQ3 ICsrKysrCiBkcml2ZXJzL2dwdS9kcm0va21iL2ttYl9wbGFuZS5jIHwgMjMyICsrKysrKysrKysr KysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2ttYi9rbWJfcGxhbmUuaCB8ICAzMiArKysKIGRy aXZlcnMvZ3B1L2RybS9rbWIva21iX3JlZ3MuaCAgfCA0NDAgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogMTEgZmlsZXMgY2hhbmdlZCwgMTM1NiBpbnNlcnRpb25zKCsp CiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2ttYi9LY29uZmlnCiBjcmVhdGUg bW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2ttYi9NYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvZ3B1L2RybS9rbWIva21iX2NydGMuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvZ3B1L2RybS9rbWIva21iX2NydGMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv Z3B1L2RybS9rbWIva21iX2Rydi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJt L2ttYi9rbWJfZHJ2LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0va21iL2tt Yl9wbGFuZS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2ttYi9rbWJfcGxh bmUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9rbWIva21iX3JlZ3MuaAoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL0tj b25maWcKaW5kZXggYzRmZDU3ZC4uNTI5MjU3NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKQEAgLTI3NSw2ICsyNzUsOCBA QCBzb3VyY2UgImRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L0tjb25maWciCiAKIHNvdXJjZSAiZHJp dmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZyIKIAorc291cmNlICJkcml2ZXJzL2dwdS9kcm0va21i L0tjb25maWciCisKIGNvbmZpZyBEUk1fVkdFTQogCXRyaXN0YXRlICJWaXJ0dWFsIEdFTSBwcm92 aWRlciIKIAlkZXBlbmRzIG9uIERSTQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL01ha2Vm aWxlIGIvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlCmluZGV4IDJjMGU1YTcuLmJkYmRjNjMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0v TWFrZWZpbGUKQEAgLTcxLDYgKzcxLDcgQEAgb2JqLSQoQ09ORklHX0RSTV9BTURHUFUpKz0gYW1k L2FtZGdwdS8KIG9iai0kKENPTkZJR19EUk1fTUdBKQkrPSBtZ2EvCiBvYmotJChDT05GSUdfRFJN X0k4MTApCSs9IGk4MTAvCiBvYmotJChDT05GSUdfRFJNX0k5MTUpCSs9IGk5MTUvCitvYmotJChD T05GSUdfRFJNX0tNQl9ESVNQTEFZKSAgKz0ga21iLwogb2JqLSQoQ09ORklHX0RSTV9NR0FHMjAw KSArPSBtZ2FnMjAwLwogb2JqLSQoQ09ORklHX0RSTV9WM0QpICArPSB2M2QvCiBvYmotJChDT05G SUdfRFJNX1ZDNCkgICs9IHZjNC8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9rbWIvS2Nv bmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9rbWIvS2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4wMDVhOTk2MgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9rbWIvS2NvbmZpZwpAQCAtMCwwICsxLDEyIEBACitjb25maWcgRFJNX0tNQl9ESVNQTEFZCisJ dHJpc3RhdGUgIktFRU1CQVkgRElTUExBWSIKKwlkZXBlbmRzIG9uIERSTSAmJiBPRiAmJiAoQVJN IHx8IEFSTTY0KQorCWRlcGVuZHMgb24gQ09NTU9OX0NMSworCXNlbGVjdCBEUk1fS01TX0hFTFBF UgorCXNlbGVjdCBEUk1fS01TX0NNQV9IRUxQRVIKKwlzZWxlY3QgRFJNX0dFTV9DTUFfSEVMUEVS CisJc2VsZWN0IFZJREVPTU9ERV9IRUxQRVJTCisJaGVscAorCUNob29zZSB0aGlzIG9wdGlvbiBp ZiB5b3UgaGF2ZSBhbiBLRUVNQkFZIERJU1BMQVkgY29udHJvbGxlci4KKworCUlmIE0gaXMgc2Vs ZWN0ZWQgdGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBrbWItZGlzcGxheS4KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9rbWIvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0va21iL01ha2Vm aWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlOWYxOWMKLS0tIC9kZXYv bnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0va21iL01ha2VmaWxlCkBAIC0wLDAgKzEsMiBAQAor a21iLWRpc3BsYXkteSA6PSBrbWJfY3J0Yy5vIGttYl9kcnYubyBrbWJfcGxhbmUubworb2JqLSQo Q09ORklHX0RSTV9LTUJfRElTUExBWSkJKz0ga21iLWRpc3BsYXkubwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2ttYi9rbWJfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2ttYi9rbWJfY3J0 Yy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhMDAwMTUKLS0tIC9kZXYv bnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0va21iL2ttYl9jcnRjLmMKQEAgLTAsMCArMSwxOTQg QEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKKy8qCisgKiBDb3B5 cmlnaHQgwqkgMjAxOC0yMDIwIEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1ZGUgPGxp bnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2dyYXBoLmg+CisjaW5jbHVkZSA8bGludXgv cGxhdGZvcm1fZGF0YS9zaW1wbGVmYi5oPgorI2luY2x1ZGUgPHZpZGVvL3ZpZGVvbW9kZS5oPgor I2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVs cGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9jcnRj X2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgorI2luY2x1ZGUg PGRybS9kcm1fZmJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5o PgorI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBl ci5oPgorI2luY2x1ZGUgImttYl9jcnRjLmgiCisjaW5jbHVkZSAia21iX2Rydi5oIgorI2luY2x1 ZGUgImttYl9wbGFuZS5oIgorI2luY2x1ZGUgImttYl9yZWdzLmgiCisKK3N0YXRpYyB2b2lkIGtt Yl9jcnRjX2NsZWFudXAoc3RydWN0IGRybV9jcnRjICpjcnRjKQoreworCXN0cnVjdCBrbWJfY3J0 YyAqbF9jcnRjID0gdG9fa21iX2NydGMoY3J0Yyk7CisKKwlkcm1fY3J0Y19jbGVhbnVwKGNydGMp OworCWtmcmVlKGxfY3J0Yyk7Cit9CisKK3N0YXRpYyBpbnQga21iX2NydGNfZW5hYmxlX3ZibGFu ayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCit7CisJc3RydWN0IGttYl9kcm1fcHJpdmF0ZSAqbGNk ID0gY3J0Y190b19rbWJfcHJpdihjcnRjKTsKKworCS8qY2xlYXIgaW50ZXJydXB0ICovCisJa21i X3dyaXRlKGxjZCwgTENEX0lOVF9DTEVBUiwgTENEX0lOVF9WRVJUX0NPTVApOworCS8qc2V0IHdo aWNoIGludGVydmFsIHRvIGdlbmVyYXRlIHZlcnRpY2FsIGludGVycnVwdCAqLworCWttYl93cml0 ZShsY2QsIExDRF9WU1RBVFVTX0NPTVBBUkUsIExDRF9WU1RBVFVTX0NPTVBBUkVfVlNZTkMpOwor CS8qIGVuYWJsZSB2ZXJ0aWNhbCBpbnRlcnJ1cHQgKi8KKwlrbWJfd3JpdGUobGNkLCBMQ0RfSU5U X0VOQUJMRSwgTENEX0lOVF9WRVJUX0NPTVApOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9p ZCBrbWJfY3J0Y19kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCit7CisJc3Ry dWN0IGttYl9kcm1fcHJpdmF0ZSAqbGNkID0gY3J0Y190b19rbWJfcHJpdihjcnRjKTsKKworCS8q Y2xlYXIgaW50ZXJydXB0ICovCisJa21iX3dyaXRlKGxjZCwgTENEX0lOVF9DTEVBUiwgTENEX0lO VF9WRVJUX0NPTVApOworCS8qIGRpc2FibGUgdmVydGljYWwgaW50ZXJydXB0ICovCisJa21iX3dy aXRlKGxjZCwgTENEX0lOVF9FTkFCTEUsIDApOworCisvKiBUQkQKKyAqICBzZXQgdGhlIEJJVDIg KFZFUlRJQ0FMX0NPTVBBUkVfSU5URVJSVVBUKSBvZiB0aGUgTENEX0lOVF9FTkFCTEUgcmVnaXN0 ZXIKKyAqICBzZXQgdGhlIHJlcXVpcmVkIGJpdCBMQ0RfVlNUQVRVU19DT01QQVJFIHJlZ2lzdGVy CisgKiAgTm90IHN1cmUgaWYgYW55dGhpbmcgbmVlZHMgdG8gYmUgZG9uZSBpbiB0aGUgSUNCCisg Ki8KK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19mdW5jcyBrbWJfY3J0Y19mdW5j cyA9IHsKKwkuZGVzdHJveSA9IGttYl9jcnRjX2NsZWFudXAsCisJLnNldF9jb25maWcgPSBkcm1f YXRvbWljX2hlbHBlcl9zZXRfY29uZmlnLAorCS5wYWdlX2ZsaXAgPSBkcm1fYXRvbWljX2hlbHBl cl9wYWdlX2ZsaXAsCisJLnJlc2V0ID0gZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldCwKKwku YXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2NydGNfZHVwbGljYXRl X3N0YXRlLAorCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2NydGNf ZGVzdHJveV9zdGF0ZSwKKwkuZW5hYmxlX3ZibGFuayA9IGttYl9jcnRjX2VuYWJsZV92Ymxhbmss CisJLmRpc2FibGVfdmJsYW5rID0ga21iX2NydGNfZGlzYWJsZV92YmxhbmssCit9OworCitzdGF0 aWMgdm9pZCBrbWJfY3J0Y19tb2RlX3NldF9ub2ZiKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKK3sK KwlzdHJ1Y3Qga21iX2RybV9wcml2YXRlICpsY2QgPSBjcnRjX3RvX2ttYl9wcml2KGNydGMpOwor CXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptID0gJmNydGMtPnN0YXRlLT5hZGp1c3RlZF9tb2Rl OworCXN0cnVjdCB2aWRlb21vZGUgdm07CisJaW50IHZzeW5jX3N0YXJ0X29mZnNldDsKKwlpbnQg dnN5bmNfZW5kX29mZnNldDsKKwl1bnNpZ25lZCBpbnQgY3RybCA9IDA7CisKKwl2bS52ZnJvbnRf cG9yY2ggPSBtLT5jcnRjX3ZzeW5jX3N0YXJ0IC0gbS0+Y3J0Y192ZGlzcGxheTsKKwl2bS52YmFj a19wb3JjaCA9IG0tPmNydGNfdnRvdGFsIC0gbS0+Y3J0Y192c3luY19lbmQ7CisJdm0udnN5bmNf bGVuID0gbS0+Y3J0Y192c3luY19lbmQgLSBtLT5jcnRjX3ZzeW5jX3N0YXJ0OworCXZtLmhmcm9u dF9wb3JjaCA9IG0tPmNydGNfaHN5bmNfc3RhcnQgLSBtLT5jcnRjX2hkaXNwbGF5OworCXZtLmhi YWNrX3BvcmNoID0gbS0+Y3J0Y19odG90YWwgLSBtLT5jcnRjX2hzeW5jX2VuZDsKKwl2bS5oc3lu Y19sZW4gPSBtLT5jcnRjX2hzeW5jX2VuZCAtIG0tPmNydGNfaHN5bmNfc3RhcnQ7CisKKwl2c3lu Y19zdGFydF9vZmZzZXQgPSBtLT5jcnRjX3ZzeW5jX3N0YXJ0IC0gbS0+Y3J0Y19oc3luY19zdGFy dDsKKwl2c3luY19lbmRfb2Zmc2V0ID0gbS0+Y3J0Y192c3luY19lbmQgLSBtLT5jcnRjX2hzeW5j X2VuZDsKKworCWttYl93cml0ZShsY2QsIExDRF9WX0FDVElWRUhFSUdIVCwgbS0+Y3J0Y192ZGlz cGxheSAtIDEpOworCWttYl93cml0ZShsY2QsIExDRF9WX0JBQ0tQT1JDSCwgdm0udmJhY2tfcG9y Y2ggLSAxKTsKKwlrbWJfd3JpdGUobGNkLCBMQ0RfVl9GUk9OVFBPUkNILCB2bS52ZnJvbnRfcG9y Y2ggLSAxKTsKKwlrbWJfd3JpdGUobGNkLCBMQ0RfVlNZTkNfV0lEVEgsIHZtLnZzeW5jX2xlbiAt IDEpOworCWttYl93cml0ZShsY2QsIExDRF9IX0FDVElWRVdJRFRILCBtLT5jcnRjX2hkaXNwbGF5 IC0gMSk7CisJa21iX3dyaXRlKGxjZCwgTENEX0hfQkFDS1BPUkNILCB2bS5oYmFja19wb3JjaCAt IDEpOworCWttYl93cml0ZShsY2QsIExDRF9IX0ZST05UUE9SQ0gsIHZtLmhmcm9udF9wb3JjaCAt IDEpOworCWttYl93cml0ZShsY2QsIExDRF9IU1lOQ19XSURUSCwgdm0uaHN5bmNfbGVuIC0gMSk7 CisKKwlpZiAobS0+ZmxhZ3MgPT0gRFJNX01PREVfRkxBR19JTlRFUkxBQ0UpIHsKKwkJa21iX3dy aXRlKGxjZCwgTENEX1ZTWU5DX1dJRFRIX0VWRU4sIHZtLnZzeW5jX2xlbiAtIDEpOworCQlrbWJf d3JpdGUobGNkLCBMQ0RfVl9CQUNLUE9SQ0hfRVZFTiwgdm0udmJhY2tfcG9yY2ggLSAxKTsKKwkJ a21iX3dyaXRlKGxjZCwgTENEX1ZfRlJPTlRQT1JDSF9FVkVOLCB2bS52ZnJvbnRfcG9yY2ggLSAx KTsKKwkJa21iX3dyaXRlKGxjZCwgTENEX1ZfQUNUSVZFSEVJR0hUX0VWRU4sIG0tPmNydGNfdmRp c3BsYXkgLSAxKTsKKwkJa21iX3dyaXRlKGxjZCwgTENEX1ZTWU5DX1NUQVJUX0VWRU4sIHZzeW5j X3N0YXJ0X29mZnNldCk7CisJCWttYl93cml0ZShsY2QsIExDRF9WU1lOQ19FTkRfRVZFTiwgdnN5 bmNfZW5kX29mZnNldCk7CisJfQorCS8qIGVuYWJsZSBhbGwgNCBsYXllcnMgKi8KKwljdHJsID0g TENEX0NUUkxfRU5BQkxFIHwgTENEX0NUUkxfVkwxX0VOQUJMRQorCSAgICB8IExDRF9DVFJMX1ZM Ml9FTkFCTEUgfCBMQ0RfQ1RSTF9HTDFfRU5BQkxFIHwgTENEX0NUUkxfR0wyX0VOQUJMRTsKKwlj dHJsIHw9IExDRF9DVFJMX1BST0dSRVNTSVZFIHwgTENEX0NUUkxfVElNX0dFTl9FTkFCTEUKKwkg ICAgfCBMQ0RfQ1RSTF9PVVRQVVRfRU5BQkxFRDsKKwlrbWJfd3JpdGUobGNkLCBMQ0RfQ09OVFJP TCwgY3RybCk7CisKKwlrbWJfd3JpdGUobGNkLCBMQ0RfVElNSU5HX0dFTl9UUklHLCBFTkFCTEUp OworCisJLyogVEJEICovCisJLyogc2V0IGNsb2NrcyBoZXJlICovCit9CisKK3N0YXRpYyB2b2lk IGttYl9jcnRjX2F0b21pY19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAorCQkJCSAgIHN0 cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX3N0YXRlKQoreworCXN0cnVjdCBrbWJfZHJtX3ByaXZh dGUgKmxjZCA9IGNydGNfdG9fa21iX3ByaXYoY3J0Yyk7CisKKwljbGtfcHJlcGFyZV9lbmFibGUo bGNkLT5jbGspOworCWttYl9jcnRjX21vZGVfc2V0X25vZmIoY3J0Yyk7CisJZHJtX2NydGNfdmJs YW5rX29uKGNydGMpOworfQorCitzdGF0aWMgdm9pZCBrbWJfY3J0Y19hdG9taWNfZGlzYWJsZShz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkJICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xk X3N0YXRlKQoreworCXN0cnVjdCBrbWJfZHJtX3ByaXZhdGUgKmxjZCA9IGNydGNfdG9fa21iX3By aXYoY3J0Yyk7CisKKwkvKiBhbHdheXMgZGlzYWJsZSBwbGFuZXMgb24gdGhlIENSVEMgdGhhdCBp cyBiZWluZyB0dXJuZWQgb2ZmICovCisJZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9wbGFuZXNf b25fY3J0YyhvbGRfc3RhdGUsIGZhbHNlKTsKKworCWRybV9jcnRjX3ZibGFua19vZmYoY3J0Yyk7 CisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGxjZC0+Y2xrKTsKK30KKworc3RhdGljIHZvaWQga21i X2NydGNfYXRvbWljX2JlZ2luKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKwkJCQkgIHN0cnVjdCBk cm1fY3J0Y19zdGF0ZSAqc3RhdGUpCit7CisJLyogVEJEICovCisJLypkaXNhYmxlICB2Ymxhbmsg aW50ZXJydXB0cyBoZXJlCisJICogY2xlYXIgQklUIDIgKFZFUlRJQ0FMX0NPTVBBUkVfSU5URVJS VVBUKSBMQ0RfSU5UX0VOQUJMRQorCSAqLworfQorCitzdGF0aWMgdm9pZCBrbWJfY3J0Y19hdG9t aWNfZmx1c2goc3RydWN0IGRybV9jcnRjICpjcnRjLAorCQkJCSAgc3RydWN0IGRybV9jcnRjX3N0 YXRlICpzdGF0ZSkKK3sKKwkvKiBUQkQgKi8KKwkvKmVuYWJsZSAgdmJsYW5rIGludGVycnVwdHMg YWZ0ZXIKKwkgKiBzZXQgQklUIDIgKFZFUlRJQ0FMX0NPTVBBUkVfSU5URVJSVVBUKSBMQ0RfSU5U X0VOQUJMRQorCSAqLworCisJc3Bpbl9sb2NrX2lycSgmY3J0Yy0+ZGV2LT5ldmVudF9sb2NrKTsK KwlpZiAoY3J0Yy0+c3RhdGUtPmV2ZW50KQorCQlkcm1fY3J0Y19zZW5kX3ZibGFua19ldmVudChj cnRjLCBjcnRjLT5zdGF0ZS0+ZXZlbnQpOworCWNydGMtPnN0YXRlLT5ldmVudCA9IE5VTEw7CisJ c3Bpbl91bmxvY2tfaXJxKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2spOworCit9CisKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2NydGNfaGVscGVyX2Z1bmNzIGttYl9jcnRjX2hlbHBlcl9mdW5jcyA9 IHsKKwkuYXRvbWljX2JlZ2luID0ga21iX2NydGNfYXRvbWljX2JlZ2luLAorCS5hdG9taWNfZW5h YmxlID0ga21iX2NydGNfYXRvbWljX2VuYWJsZSwKKwkuYXRvbWljX2Rpc2FibGUgPSBrbWJfY3J0 Y19hdG9taWNfZGlzYWJsZSwKKwkuYXRvbWljX2ZsdXNoID0ga21iX2NydGNfYXRvbWljX2ZsdXNo LAorfTsKKworaW50IGttYl9zZXR1cF9jcnRjKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCit7CisJ c3RydWN0IGttYl9kcm1fcHJpdmF0ZSAqbGNkID0gdG9fa21iKGRybSk7CisJc3RydWN0IGRybV9w bGFuZSAqcHJpbWFyeTsKKwlpbnQgcmV0OworCisJcHJpbWFyeSA9IGttYl9wbGFuZV9pbml0KGRy bSk7CisJaWYgKElTX0VSUihwcmltYXJ5KSkKKwkJcmV0dXJuIFBUUl9FUlIocHJpbWFyeSk7CisK KwlyZXQgPSBkcm1fY3J0Y19pbml0X3dpdGhfcGxhbmVzKGRybSwgJmxjZC0+Y3J0YywgcHJpbWFy eSwgTlVMTCwKKwkJCQkJJmttYl9jcnRjX2Z1bmNzLCBOVUxMKTsKKwlpZiAocmV0KSB7CisJCWtt Yl9wbGFuZV9kZXN0cm95KHByaW1hcnkpOworCQlyZXR1cm4gcmV0OworCX0KKworCWRybV9jcnRj X2hlbHBlcl9hZGQoJmxjZC0+Y3J0YywgJmttYl9jcnRjX2hlbHBlcl9mdW5jcyk7CisJcmV0dXJu IDA7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0va21iL2ttYl9jcnRjLmggYi9kcml2 ZXJzL2dwdS9kcm0va21iL2ttYl9jcnRjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZDdjYzQ0MQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9rbWIva21i X2NydGMuaApAQCAtMCwwICsxLDM5IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BM LTIuMC1vbmx5CisgKgorICogQ29weXJpZ2h0IMKpIDIwMTgtMjAyMCBJbnRlbCBDb3Jwb3JhdGlv bgorICovCisKKyNpZm5kZWYgX19LTUJfQ1JUQ19IX18KKyNkZWZpbmUgX19LTUJfQ1JUQ19IX18K KworI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2dyYXBoLmg+Cisj aW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9zaW1wbGVmYi5oPgorI2luY2x1ZGUgPHZpZGVv L3ZpZGVvbW9kZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZGVidWdmcy5oPgorI2luY2x1ZGUgPGRy bS9kcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KKyNpbmNsdWRlIDxkcm0v ZHJtX2ZiX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmlsZS5oPgorI2luY2x1ZGUgPGRy bS9kcm1fZm91cmNjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgorI2luY2x1ZGUgPGRy bS9kcm1fcHJvYmVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KKyNpbmNs dWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgor I2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KKyNpbmNsdWRlICJrbWJfZHJ2LmgiCisKK3N0cnVjdCBr bWJfY3J0YyB7CisJc3RydWN0IGRybV9jcnRjIGNydGNfYmFzZTsKKwlzdHJ1Y3Qga21iX2RybV9w cml2YXRlIGttYl9kZXY7Cit9OworCitzdHJ1Y3Qga21iX2NydGNfc3RhdGUgeworCXN0cnVjdCBk cm1fY3J0Y19zdGF0ZSBjcnRjX2Jhc2U7Cit9OworI2RlZmluZSB0b19rbWJfY3J0Y19zdGF0ZSh4 KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGttYl9jcnRjX3N0YXRlLCBjcnRjX2Jhc2UpCisjZGVm aW5lIHRvX2ttYl9jcnRjKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3Qga21iX2NydGMsIGNydGNf YmFzZSkKK2V4dGVybiB2b2lkIGttYl9wbGFuZV9kZXN0cm95KHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lKTsKK2V4dGVybiBzdHJ1Y3QgZHJtX3BsYW5lICprbWJfcGxhbmVfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZHJtKTsKKyNlbmRpZiAvKiBfX0tNQl9DUlRDX0hfXyAqLwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2ttYi9rbWJfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0va21iL2ttYl9k cnYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOGFhNjI1Ci0tLSAvZGV2 L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2ttYi9rbWJfZHJ2LmMKQEAgLTAsMCArMSwzNTUg QEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKKy8qCisgKiBDb3B5 cmlnaHQgwqkgMjAxOC0yMDIwIEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1ZGUgPGxp bnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPgorI2luY2x1ZGUgPGxpbnV4 L2NvbnNvbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9k dWxlLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9y ZXNlcnZlZF9tZW0uaD4KKyNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CisjaW5jbHVkZSA8 bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxkcm0vZHJtLmg+CisjaW5jbHVkZSA8ZHJtL2Ry bV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CisjaW5jbHVkZSA8 ZHJtL2RybV9mYl9jbWFfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4K KyNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9n ZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9pb2N0bC5oPgorI2lu Y2x1ZGUgPGRybS9kcm1faXJxLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9vZi5oPgorI2luY2x1ZGUg PGRybS9kcm1fcHJvYmVfaGVscGVyLmg+CisjaW5jbHVkZSAia21iX2NydGMuaCIKKyNpbmNsdWRl ICJrbWJfZHJ2LmgiCisjaW5jbHVkZSAia21iX3BsYW5lLmgiCisjaW5jbHVkZSAia21iX3JlZ3Mu aCIKKworc3RhdGljIGludCBrbWJfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCB1bnNpZ25l ZCBsb25nIGZsYWdzKQoreworCXN0cnVjdCBrbWJfZHJtX3ByaXZhdGUgKmxjZCA9IHRvX2ttYihk cm0pOworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYgPSB0b19wbGF0Zm9ybV9kZXZpY2Uo ZHJtLT5kZXYpOworCXN0cnVjdCByZXNvdXJjZSAqcmVzOworCS8qdTMyIHZlcnNpb247ICovCisJ aW50IHJldDsKKworCS8qIFRCRCAtIG5vdCBzdXJlIGlmIGNsb2NrX2dldCBuZWVkcyB0byBiZSBj YWxsZWQgaGVyZSAqLworCS8qCisJICogIGxjZC0+Y2xrID0gZGV2bV9jbGtfZ2V0KGRybS0+ZGV2 LCAicHhsY2xrIik7CisJICogaWYgKElTX0VSUihsY2QtPmNsaykpCisJICogIHJldHVybiBQVFJf RVJSKGxjZC0+Y2xrKTsKKwkgKi8KKwlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwg SU9SRVNPVVJDRV9NRU0sIDApOworCWxjZC0+bW1pbyA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShk cm0tPmRldiwgcmVzKTsKKwlpZiAoSVNfRVJSKGxjZC0+bW1pbykpIHsKKwkJRFJNX0VSUk9SKCJm YWlsZWQgdG8gbWFwIGNvbnRyb2wgcmVnaXN0ZXJzIGFyZWFcbiIpOworCQlyZXQgPSBQVFJfRVJS KGxjZC0+bW1pbyk7CisJCWxjZC0+bW1pbyA9IE5VTEw7CisJCXJldHVybiByZXQ7CisJfQorCS8q VEJEIHJlYWQgYW5kIGNoZWNrIGZvciBjb3JyZWN0IHByb2R1Y3QgdmVyc2lvbiBoZXJlICovCisK KwkvKiBHZXQgdGhlIG9wdGlvbmFsIGZyYW1lYnVmZmVyIG1lbW9yeSByZXNvdXJjZSAqLworCXJl dCA9IG9mX3Jlc2VydmVkX21lbV9kZXZpY2VfaW5pdChkcm0tPmRldik7CisJaWYgKHJldCAmJiBy ZXQgIT0gLUVOT0RFVikKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IGttYl9zZXR1cF9jcnRjKGRy bSk7CisJaWYgKHJldCA8IDApIHsKKwkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gY3JlYXRlIGNydGNc biIpOworCQlnb3RvIHNldHVwX2ZhaWw7CisJfQorCisJcmV0ID0gZHJtX2lycV9pbnN0YWxsKGRy bSwgcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKSk7CisJaWYgKHJldCA8IDApIHsKKwkJRFJNX0VS Uk9SKCJmYWlsZWQgdG8gaW5zdGFsbCBJUlEgaGFuZGxlclxuIik7CisJCWdvdG8gaXJxX2ZhaWw7 CisJfQorCisJcmV0dXJuIDA7CisKK2lycV9mYWlsOgorCWRybV9jcnRjX2NsZWFudXAoJmxjZC0+ Y3J0Yyk7CitzZXR1cF9mYWlsOgorCW9mX3Jlc2VydmVkX21lbV9kZXZpY2VfcmVsZWFzZShkcm0t PmRldik7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2Rl X2NvbmZpZ19mdW5jcyBrbWJfbW9kZV9jb25maWdfZnVuY3MgPSB7CisJLmZiX2NyZWF0ZSA9IGRy bV9nZW1fZmJfY3JlYXRlLAorCS5hdG9taWNfY2hlY2sgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVj aywKKwkuYXRvbWljX2NvbW1pdCA9IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdCwKK307CisKK3N0 YXRpYyB2b2lkIGttYl9zZXR1cF9tb2RlX2NvbmZpZyhzdHJ1Y3QgZHJtX2RldmljZSAqZHJtKQor eworCWRybV9tb2RlX2NvbmZpZ19pbml0KGRybSk7CisJZHJtLT5tb2RlX2NvbmZpZy5taW5fd2lk dGggPSAwOworCWRybS0+bW9kZV9jb25maWcubWluX2hlaWdodCA9IDA7CisJZHJtLT5tb2RlX2Nv bmZpZy5tYXhfd2lkdGggPSBLTUJfTUFYX1dJRFRIOworCWRybS0+bW9kZV9jb25maWcubWF4X2hl aWdodCA9IEtNQl9NQVhfSEVJR0hUOworCWRybS0+bW9kZV9jb25maWcuZnVuY3MgPSAma21iX21v ZGVfY29uZmlnX2Z1bmNzOworfQorCitzdGF0aWMgaXJxcmV0dXJuX3Qga21iX2lycShpbnQgaXJx LCB2b2lkICphcmcpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IChzdHJ1Y3QgZHJtX2Rl dmljZSAqKWFyZzsKKwlzdHJ1Y3Qga21iX2RybV9wcml2YXRlICpsY2QgPSBkZXYtPmRldl9wcml2 YXRlOworCXVuc2lnbmVkIGxvbmcgc3RhdHVzLCB2YWw7CisKKwlzdGF0dXMgPSBrbWJfcmVhZChs Y2QsIExDRF9JTlRfU1RBVFVTKTsKKwlpZiAoc3RhdHVzICYgTENEX0lOVF9FT0YpIHsKKwkJLypU byBETyAtIGhhbmRsZSBFT0YgaW50ZXJydXB0PyAqLworCQlrbWJfd3JpdGUobGNkLCBMQ0RfSU5U X0NMRUFSLCBMQ0RfSU5UX0VPRik7CisJfQorCWlmIChzdGF0dXMgJiBMQ0RfSU5UX0xJTkVfQ01Q KSB7CisJCS8qIGNsZWFyIGxpbmUgY29tcGFyZSBpbnRlcnJ1cHQgKi8KKwkJa21iX3dyaXRlKGxj ZCwgTENEX0lOVF9DTEVBUiwgTENEX0lOVF9MSU5FX0NNUCk7CisJfQorCWlmIChzdGF0dXMgJiBM Q0RfSU5UX1ZFUlRfQ09NUCkgeworCQkvKiByZWFkIFZTVEFUVVMgKi8KKwkJdmFsID0ga21iX3Jl YWQobGNkLCBMQ0RfVlNUQVRVUyk7CisJCS8qIEJJVFMgMTMgYW5kIDE0ICovCisJCXZhbCA9ICh2 YWwgJiBMQ0RfVlNUQVRVU19WRVJUSUNBTF9TVEFUVVNfTUFTSykgPj4gMTI7CisJCXN3aXRjaCAo dmFsKSB7CisJCWNhc2UgTENEX1ZTVEFUVVNfQ09NUEFSRV9WU1lOQzoKKwkJY2FzZSBMQ0RfVlNU QVRVU19DT01QQVJFX0JBQ0tQT1JDSDoKKwkJY2FzZSBMQ0RfVlNUQVRVU19DT01QQVJFX0FDVElW RToKKwkJY2FzZSBMQ0RfVlNUQVRVU19DT01QQVJFX0ZST05UX1BPUkNIOgorCQkJLyogY2xlYXIg dmVydGljYWwgY29tcGFyZSBpbnRlcnJ1cHQgKi8KKwkJCWttYl93cml0ZShsY2QsIExDRF9JTlRf Q0xFQVIsIExDRF9JTlRfVkVSVF9DT01QKTsKKwkJCWRybV9oYW5kbGVfdmJsYW5rKGRldiwgMCk7 CisJCQlicmVhazsKKwkJfQorCX0KKworCXJldHVybiBJUlFfSEFORExFRDsKK30KKworc3RhdGlj IHZvaWQga21iX2lycV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtKQoreworCXN0cnVjdCBr bWJfZHJtX3ByaXZhdGUgKmxjZCA9IHRvX2ttYihkcm0pOworCisJa21iX3dyaXRlKGxjZCwgTENE X0lOVF9DTEVBUiwgMHhGRkZGKTsKKwlrbWJfd3JpdGUobGNkLCBMQ0RfSU5UX0VOQUJMRSwgMCk7 Cit9CisKK0RFRklORV9EUk1fR0VNX0NNQV9GT1BTKGZvcHMpOworCitzdGF0aWMgc3RydWN0IGRy bV9kcml2ZXIga21iX2RyaXZlciA9IHsKKwkuZHJpdmVyX2ZlYXR1cmVzID0gRFJJVkVSX0dFTSB8 CisJICAgIERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0FUT01JQywKKwkuaXJxX2hhbmRsZXIgPSBr bWJfaXJxLAorCS5pcnFfcHJlaW5zdGFsbCA9IGttYl9pcnFfcmVzZXQsCisJLmlycV91bmluc3Rh bGwgPSBrbWJfaXJxX3Jlc2V0LAorCS5nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQgPSBkcm1fZ2Vt X2NtYV9mcmVlX29iamVjdCwKKwkuZ2VtX3ZtX29wcyA9ICZkcm1fZ2VtX2NtYV92bV9vcHMsCisJ LmR1bWJfY3JlYXRlID0gZHJtX2dlbV9jbWFfZHVtYl9jcmVhdGUsCisJLnByaW1lX2hhbmRsZV90 b19mZCA9IGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkLAorCS5wcmltZV9mZF90b19oYW5kbGUg PSBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSwKKwkuZ2VtX3ByaW1lX2V4cG9ydCA9IGRybV9n ZW1fcHJpbWVfZXhwb3J0LAorCS5nZW1fcHJpbWVfaW1wb3J0ID0gZHJtX2dlbV9wcmltZV9pbXBv cnQsCisJLmdlbV9wcmltZV9nZXRfc2dfdGFibGUgPSBkcm1fZ2VtX2NtYV9wcmltZV9nZXRfc2df dGFibGUsCisJLmdlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUgPSBkcm1fZ2VtX2NtYV9wcmltZV9p bXBvcnRfc2dfdGFibGUsCisJLmdlbV9wcmltZV92bWFwID0gZHJtX2dlbV9jbWFfcHJpbWVfdm1h cCwKKwkuZ2VtX3ByaW1lX3Z1bm1hcCA9IGRybV9nZW1fY21hX3ByaW1lX3Z1bm1hcCwKKwkuZ2Vt X3ByaW1lX21tYXAgPSBkcm1fZ2VtX2NtYV9wcmltZV9tbWFwLAorCS5mb3BzID0gJmZvcHMsCisJ Lm5hbWUgPSAia21iIiwKKwkuZGVzYyA9ICJLRUVNQkFZIERJU1BMQVkgRFJJVkVSICIsCisJLmRh dGUgPSAiMjAxOTAxMjIiLAorCS5tYWpvciA9IDEsCisJLm1pbm9yID0gMCwKK307CisKK3N0YXRp YyBpbnQga21iX2RybV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZHJtX2Rl dmljZSAqZHJtOworCXN0cnVjdCBrbWJfZHJtX3ByaXZhdGUgKmxjZDsKKwlpbnQgcmV0OworCisJ bGNkID0ga3phbGxvYyhzaXplb2YoKmxjZCksIEdGUF9LRVJORUwpOworCWlmICghbGNkKQorCQly ZXR1cm4gLUVOT01FTTsKKworCXJldCA9IGRybV9kZXZfaW5pdCgmbGNkLT5kcm0sICZrbWJfZHJp dmVyLCBkZXYpOworCWlmIChyZXQpIHsKKwkJa2ZyZWUobGNkKTsKKwkJcmV0dXJuIHJldDsKKwl9 CisJZHJtID0gJmxjZC0+ZHJtOworCWRybS0+ZGV2X3ByaXZhdGUgPSBsY2Q7CisJbGNkLT5kcm0u ZGV2X3ByaXZhdGUgPSBsY2Q7CisJZGV2X3NldF9kcnZkYXRhKGRldiwgZHJtKTsKKworCWttYl9z ZXR1cF9tb2RlX2NvbmZpZyhkcm0pOworCXJldCA9IGttYl9sb2FkKGRybSwgMCk7CisJaWYgKHJl dCkKKwkJZ290byBlcnJfZnJlZTsKKworCS8qIFNldCB0aGUgQ1JUQydzIHBvcnQgc28gdGhhdCB0 aGUgZW5jb2RlciBjb21wb25lbnQgY2FuIGZpbmQgaXQgKi8KKwlsY2QtPmNydGMucG9ydCA9IG9m X2dyYXBoX2dldF9wb3J0X2J5X2lkKGRldi0+b2Zfbm9kZSwgMCk7CisKKwlyZXQgPSBjb21wb25l bnRfYmluZF9hbGwoZGV2LCBkcm0pOworCWlmIChyZXQpIHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQg dG8gYmluZCBhbGwgY29tcG9uZW50c1xuIik7CisJCWdvdG8gZXJyX3VubG9hZDsKKwl9CisKKwly ZXQgPSBwbV9ydW50aW1lX3NldF9hY3RpdmUoZGV2KTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl9w bV9hY3RpdmU7CisKKwlwbV9ydW50aW1lX2VuYWJsZShkZXYpOworCisJcmV0ID0gZHJtX3ZibGFu a19pbml0KGRybSwgZHJtLT5tb2RlX2NvbmZpZy5udW1fY3J0Yyk7CisJaWYgKHJldCA8IDApIHsK KwkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gaW5pdGlhbGlzZSB2YmxhbmtcbiIpOworCQlnb3RvIGVy cl92Ymxhbms7CisJfQorCisJZHJtX21vZGVfY29uZmlnX3Jlc2V0KGRybSk7CisJZHJtX2ttc19o ZWxwZXJfcG9sbF9pbml0KGRybSk7CisKKwlyZXQgPSBkcm1fZGV2X3JlZ2lzdGVyKGRybSwgMCk7 CisKKwlsY2QtPm5fbGF5ZXJzID0gS01CX01BWF9QTEFORVM7CisJaWYgKHJldCkKKwkJZ290byBl cnJfcmVnaXN0ZXI7CisKKwlyZXR1cm4gMDsKKworZXJyX3JlZ2lzdGVyOgorCWRybV9rbXNfaGVs cGVyX3BvbGxfZmluaShkcm0pOworZXJyX3ZibGFuazoKKwlwbV9ydW50aW1lX2Rpc2FibGUoZHJt LT5kZXYpOworZXJyX3BtX2FjdGl2ZToKKwljb21wb25lbnRfdW5iaW5kX2FsbChkZXYsIGRybSk7 CitlcnJfdW5sb2FkOgorCW9mX25vZGVfcHV0KGxjZC0+Y3J0Yy5wb3J0KTsKKwlsY2QtPmNydGMu cG9ydCA9IE5VTEw7CisJZHJtX2lycV91bmluc3RhbGwoZHJtKTsKKwlvZl9yZXNlcnZlZF9tZW1f ZGV2aWNlX3JlbGVhc2UoZHJtLT5kZXYpOworZXJyX2ZyZWU6CisJZHJtX21vZGVfY29uZmlnX2Ns ZWFudXAoZHJtKTsKKwlkZXZfc2V0X2RydmRhdGEoZGV2LCBOVUxMKTsKKwlkcm1fZGV2X3B1dChk cm0pOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQga21iX2RybV91bmJpbmQoc3Ry dWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBkZXZfZ2V0X2Ry dmRhdGEoZGV2KTsKKwlzdHJ1Y3Qga21iX2RybV9wcml2YXRlICpsY2QgPSB0b19rbWIoZHJtKTsK KworCWRybV9kZXZfdW5yZWdpc3Rlcihkcm0pOworCWRybV9rbXNfaGVscGVyX3BvbGxfZmluaShk cm0pOworCWNvbXBvbmVudF91bmJpbmRfYWxsKGRldiwgZHJtKTsKKwlvZl9ub2RlX3B1dChsY2Qt PmNydGMucG9ydCk7CisJbGNkLT5jcnRjLnBvcnQgPSBOVUxMOworCXBtX3J1bnRpbWVfZ2V0X3N5 bmMoZHJtLT5kZXYpOworCWRybV9pcnFfdW5pbnN0YWxsKGRybSk7CisJcG1fcnVudGltZV9wdXRf c3luYyhkcm0tPmRldik7CisJcG1fcnVudGltZV9kaXNhYmxlKGRybS0+ZGV2KTsKKwlvZl9yZXNl cnZlZF9tZW1fZGV2aWNlX3JlbGVhc2UoZHJtLT5kZXYpOworCWRybV9tb2RlX2NvbmZpZ19jbGVh bnVwKGRybSk7CisJZHJtX2Rldl9wdXQoZHJtKTsKKwlkcm0tPmRldl9wcml2YXRlID0gTlVMTDsK KwlkZXZfc2V0X2RydmRhdGEoZGV2LCBOVUxMKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBj b21wb25lbnRfbWFzdGVyX29wcyBrbWJfbWFzdGVyX29wcyA9IHsKKwkuYmluZCA9IGttYl9kcm1f YmluZCwKKwkudW5iaW5kID0ga21iX2RybV91bmJpbmQsCit9OworCitzdGF0aWMgaW50IGNvbXBh cmVfZGV2KHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkKK3sKKwlyZXR1cm4gZGV2LT5v Zl9ub2RlID09IGRhdGE7Cit9CisKK3N0YXRpYyBpbnQga21iX3Byb2JlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGRldmljZV9ub2RlICpwb3J0OworCXN0cnVjdCBj b21wb25lbnRfbWF0Y2ggKm1hdGNoID0gTlVMTDsKKworCS8qIHRoZXJlIGlzIG9ubHkgb25lIG91 dHB1dCBwb3J0IGluc2lkZSBlYWNoIGRldmljZSwgZmluZCBpdCAqLworCXBvcnQgPSBvZl9ncmFw aF9nZXRfcmVtb3RlX25vZGUocGRldi0+ZGV2Lm9mX25vZGUsIDAsIDApOworCWlmICghcG9ydCkK KwkJcmV0dXJuIC1FTk9ERVY7CisKKwlkcm1fb2ZfY29tcG9uZW50X21hdGNoX2FkZCgmcGRldi0+ ZGV2LCAmbWF0Y2gsIGNvbXBhcmVfZGV2LCBwb3J0KTsKKwlvZl9ub2RlX3B1dChwb3J0KTsKKwor CXJldHVybiBjb21wb25lbnRfbWFzdGVyX2FkZF93aXRoX21hdGNoKCZwZGV2LT5kZXYsICZrbWJf bWFzdGVyX29wcywKKwkJCQkJICAgICAgIG1hdGNoKTsKK30KKworc3RhdGljIGludCBrbWJfcmVt b3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJY29tcG9uZW50X21hc3Rlcl9k ZWwoJnBkZXYtPmRldiwgJmttYl9tYXN0ZXJfb3BzKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGlj IGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQga21iX29mX21hdGNoW10gPSB7CisJey5jb21wYXRp YmxlID0gImxjZCJ9LAorCXt9LAorfTsKKworTU9EVUxFX0RFVklDRV9UQUJMRShvZiwga21iX29m X21hdGNoKTsKKworc3RhdGljIGludCBfX21heWJlX3VudXNlZCBrbWJfcG1fc3VzcGVuZChzdHJ1 Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IGRldl9nZXRfZHJ2 ZGF0YShkZXYpOworCXN0cnVjdCBrbWJfZHJtX3ByaXZhdGUgKmxjZCA9IGRybSA/IGRybS0+ZGV2 X3ByaXZhdGUgOiBOVUxMOworCisJaWYgKCFsY2QpCisJCXJldHVybiAwOworCisJZHJtX2ttc19o ZWxwZXJfcG9sbF9kaXNhYmxlKGRybSk7CisKKwlsY2QtPnN0YXRlID0gZHJtX2F0b21pY19oZWxw ZXJfc3VzcGVuZChkcm0pOworCWlmIChJU19FUlIobGNkLT5zdGF0ZSkpIHsKKwkJZHJtX2ttc19o ZWxwZXJfcG9sbF9lbmFibGUoZHJtKTsKKwkJcmV0dXJuIFBUUl9FUlIobGNkLT5zdGF0ZSk7CisJ fQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQga21iX3BtX3Jl c3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IGRl dl9nZXRfZHJ2ZGF0YShkZXYpOworCXN0cnVjdCBrbWJfZHJtX3ByaXZhdGUgKmxjZCA9IGRybSA/ IGRybS0+ZGV2X3ByaXZhdGUgOiBOVUxMOworCisJaWYgKCFsY2QpCisJCXJldHVybiAwOworCisJ ZHJtX2F0b21pY19oZWxwZXJfcmVzdW1lKGRybSwgbGNkLT5zdGF0ZSk7CisJZHJtX2ttc19oZWxw ZXJfcG9sbF9lbmFibGUoZHJtKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgU0lNUExFX0RF Vl9QTV9PUFMoa21iX3BtX29wcywga21iX3BtX3N1c3BlbmQsIGttYl9wbV9yZXN1bWUpOworCitz dGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBrbWJfcGxhdGZvcm1fZHJpdmVyID0geworCS5w cm9iZSA9IGttYl9wcm9iZSwKKwkucmVtb3ZlID0ga21iX3JlbW92ZSwKKwkuZHJpdmVyID0gewor CQkgICAubmFtZSA9ICJLZWVtYmF5X0Rpc3BsYXkiLAorCQkgICAucG0gPSAma21iX3BtX29wcywK KwkJICAgLm9mX21hdGNoX3RhYmxlID0ga21iX29mX21hdGNoLAorCQkgICB9LAorfTsKKworbW9k dWxlX3BsYXRmb3JtX2RyaXZlcihrbWJfcGxhdGZvcm1fZHJpdmVyKTsKKworTU9EVUxFX0FVVEhP UigiSW50ZWwgQ29ycG9yYXRpb24iKTsKK01PRFVMRV9ERVNDUklQVElPTigiS2VlbWJheSBEaXNw bGF5IGRyaXZlciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2ttYi9rbWJfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0va21iL2ttYl9kcnYu aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MGUxYzg2Ci0tLSAvZGV2L251 bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2ttYi9rbWJfZHJ2LmgKQEAgLTAsMCArMSw0NyBAQAor LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQorICoKKyAqIENvcHlyaWdo dCDCqSAyMDE4LTIwMjAgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9fS01CX0RS Vl9IX18KKyNkZWZpbmUgX19LTUJfRFJWX0hfXworCisjZGVmaW5lIEtNQl9NQVhfV0lEVEgJCQkx NjM4NAkvKm1heCB3aWR0aCBpbiBwaXhlbHMgKi8KKyNkZWZpbmUgS01CX01BWF9IRUlHSFQJCQkx NjM4NAkvKm1heCBoZWlnaHQgaW4gcGl4ZWxzICovCisKK3N0cnVjdCBrbWJfZHJtX3ByaXZhdGUg eworCXN0cnVjdCBkcm1fZGV2aWNlIGRybTsKKwl2b2lkIF9faW9tZW0gKm1taW87CisJdW5zaWdu ZWQgY2hhciBuX2xheWVyczsKKwlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGRybV9mYmRldl9j bWEgKmZiZGV2OworCXN0cnVjdCBkcm1fY3J0YyBjcnRjOworCXN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lOworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKK307CisKK3N0YXRpYyBpbmxp bmUgc3RydWN0IGttYl9kcm1fcHJpdmF0ZSAqdG9fa21iKGNvbnN0IHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCit7CisJcmV0dXJuIGNvbnRhaW5lcl9vZihkZXYsIHN0cnVjdCBrbWJfZHJtX3ByaXZh dGUsIGRybSk7Cit9CisKKyNkZWZpbmUgY3J0Y190b19rbWJfcHJpdih4KQljb250YWluZXJfb2Yo eCwgc3RydWN0IGttYl9kcm1fcHJpdmF0ZSwgY3J0YykKKworc3RydWN0IGJsdF9sYXllcl9jb25m aWcgeworCXVuc2lnbmVkIGNoYXIgbGF5ZXJfZm9ybWF0OworfTsKKworc3RhdGljIGlubGluZSB2 b2lkIGttYl93cml0ZShzdHJ1Y3Qga21iX2RybV9wcml2YXRlICpsY2QsCisJCQkgICAgIHVuc2ln bmVkIGludCByZWcsIHUzMiB2YWx1ZSkKK3sKKwl3cml0ZWwodmFsdWUsIGxjZC0+bW1pbyArIHJl Zyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdTMyIGttYl9yZWFkKHN0cnVjdCBrbWJfZHJtX3ByaXZh dGUgKmxjZCwgdW5zaWduZWQgaW50IHJlZykKK3sKKwlyZXR1cm4gcmVhZGwobGNkLT5tbWlvICsg cmVnKTsKK30KKworaW50IGttYl9zZXR1cF9jcnRjKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwor dm9pZCBrbWJfc2V0X3NjYW5vdXQoc3RydWN0IGttYl9kcm1fcHJpdmF0ZSAqbGNkKTsKKyNlbmRp ZiAvKiBfX0tNQl9EUlZfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0va21iL2tt Yl9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2ttYi9rbWJfcGxhbmUuYwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZDRjOGRjCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2ttYi9rbWJfcGxhbmUuYwpAQCAtMCwwICsxLDIzMiBAQAorLy8gU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE4LTIw MjAgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5j bHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL3Np bXBsZWZiLmg+CisjaW5jbHVkZSA8dmlkZW8vdmlkZW9tb2RlLmg+CisjaW5jbHVkZSA8ZHJtL2Ry bV9hdG9taWMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRl IDxkcm0vZHJtX2NydGMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+CisjaW5j bHVkZSA8ZHJtL2RybV9mYl9jbWFfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxw ZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJt L2RybV9vZi5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CisjaW5jbHVkZSAi a21iX2NydGMuaCIKKyNpbmNsdWRlICJrbWJfZHJ2LmgiCisjaW5jbHVkZSAia21iX3BsYW5lLmgi CisjaW5jbHVkZSAia21iX3JlZ3MuaCIKKworc3RhdGljIGludCBrbWJfcGxhbmVfYXRvbWljX2No ZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJCSAgc3RydWN0IGRybV9wbGFuZV9zdGF0 ZSAqc3RhdGUpCit7CisvKiBUQkQgYmVsb3cgc3RydWN0dXJlIHdpbGwgYmUgdXNlZCBmb3IgaW1w bGVtZW50YXRpb24gbGF0ZXIKKyAqCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsK KyAqLworCS8qIFRCRCAqLworCS8qIFBsYW5lIGJhc2VkIGNoZWNraW5nICovCisKKwlyZXR1cm4g MDsKK30KKworc3RhdGljIHZvaWQga21iX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9w bGFuZSAqcGxhbmUsCisJCQkJICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQorewor CXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmUtPnN0YXRlLT5mYjsKKwlzdHJ1Y3Qg a21iX2RybV9wcml2YXRlICpsY2Q7CisJZG1hX2FkZHJfdCBhZGRyOworCXVuc2lnbmVkIGludCB3 aWR0aDsKKwl1bnNpZ25lZCBpbnQgaGVpZ2h0OworCXVuc2lnbmVkIGludCBpOworCXVuc2lnbmVk IGludCBkbWFfbGVuOworCXN0cnVjdCBrbWJfcGxhbmVfc3RhdGUgKmttYl9zdGF0ZSA9IHRvX2tt Yl9wbGFuZV9zdGF0ZShwbGFuZS0+c3RhdGUpOworCXVuc2lnbmVkIGludCBkbWFfY2ZnOworCisJ aWYgKCFmYikKKwkJcmV0dXJuOworCisJbGNkID0gdG9fa21iKHBsYW5lLT5kZXYpOworCisJLyog VEJEICovCisJLypzZXQgTENEX0xBWUVSbl9XSURUSCwgTENEX0xBWUVSbl9IRUlHSFQsIExDRF9M QVlFUm5fQ09MX1NUQVJULAorCSAqIExDRF9MQVlFUm5fUk9XX1NUQVJULCBMQ0RfTEFZRVJuX0NG RworCSAqIENGRyBzaG91bGQgc2V0IHRoZSBwaXhlbCBmb3JtYXQsIEZJRk8gbGV2ZWwgYW5kIEJQ UAorCSAqLworCisJLyogd2UgbWF5IGhhdmUgdG8gc2V0IExDRF9ETUFfVlNUUklERV9FTkFCTEUg aW4gdGhlIGZ1dHVyZSAqLworCWRtYV9jZmcgPSBMQ0RfRE1BX0xBWUVSX0VOQUJMRSB8IExDRF9E TUFfTEFZRVJfQVVUT19VUERBVEUKKwkgICAgfCBMQ0RfRE1BX0xBWUVSX0NPTlRfVVBEQVRFIHwg TENEX0RNQV9MQVlFUl9BWElfQlVSU1RfMTsKKworCWZvciAoaSA9IDA7IGkgPCBrbWJfc3RhdGUt Pm5vX3BsYW5lczsgaSsrKSB7CisJCS8qIGRpc2FibGUgRE1BIGZpcnN0ICovCisJCWttYl93cml0 ZShsY2QsIExDRF9MQVlFUm5fRE1BX0NGRyhpKSwgfkxDRF9ETUFfTEFZRVJfRU5BQkxFKTsKKwor CQlhZGRyID0gZHJtX2ZiX2NtYV9nZXRfZ2VtX2FkZHIoZmIsIHBsYW5lLT5zdGF0ZSwgaSk7CisJ CWttYl93cml0ZShsY2QsIExDRF9MQVlFUm5fRE1BX1NUQVJUX0FERFIoaSksIGFkZHIpOworCQlr bWJfd3JpdGUobGNkLCBMQ0RfTEFZRVJuX0RNQV9TVEFSVF9TSEFET1coaSksIGFkZHIpOworCisJ CXdpZHRoID0gZmItPndpZHRoOworCQloZWlnaHQgPSBmYi0+aGVpZ2h0OworCQlkbWFfbGVuID0g d2lkdGggKiBoZWlnaHQgKiBmYi0+Zm9ybWF0LT5jcHBbaV07CisJCWttYl93cml0ZShsY2QsIExD RF9MQVlFUm5fRE1BX0xFTihpKSwgZG1hX2xlbik7CisKKwkJa21iX3dyaXRlKGxjZCwgTENEX0xB WUVSbl9ETUFfTElORV9WU1RSSURFKGkpLCBmYi0+cGl0Y2hlc1swXSk7CisJCWttYl93cml0ZShs Y2QsIExDRF9MQVlFUm5fRE1BX0xJTkVfV0lEVEgoaSksCisJCQkgICh3aWR0aCAqIGZiLT5mb3Jt YXQtPmNwcFtpXSkpOworCisJCS8qIGVuYWJsZSBETUEgKi8KKwkJa21iX3dyaXRlKGxjZCwgTENE X0xBWUVSbl9ETUFfQ0ZHKGkpLCBkbWFfY2ZnKTsKKwl9Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyBrbWJfcGxhbmVfaGVscGVyX2Z1bmNzID0geworCS5h dG9taWNfY2hlY2sgPSBrbWJfcGxhbmVfYXRvbWljX2NoZWNrLAorCS5hdG9taWNfdXBkYXRlID0g a21iX3BsYW5lX2F0b21pY191cGRhdGUsCit9OworCit2b2lkIGttYl9wbGFuZV9kZXN0cm95KHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQoreworCWRybV9wbGFuZV9jbGVhbnVwKHBsYW5lKTsKK30K Kworc3RhdGljIHZvaWQga21iX2Rlc3Ryb3lfcGxhbmVfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCisJCQkJICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQoreworCXN0cnVj dCBrbWJfcGxhbmVfc3RhdGUgKmttYl9zdGF0ZSA9IHRvX2ttYl9wbGFuZV9zdGF0ZShzdGF0ZSk7 CisKKwlfX2RybV9hdG9taWNfaGVscGVyX3BsYW5lX2Rlc3Ryb3lfc3RhdGUoc3RhdGUpOworCWtm cmVlKGttYl9zdGF0ZSk7Cit9CisKK3N0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKmttYl9wbGFuZV9k dXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCit7CisJc3RydWN0IGRybV9w bGFuZV9zdGF0ZSAqc3RhdGU7CisJc3RydWN0IGttYl9wbGFuZV9zdGF0ZSAqa21iX3N0YXRlOwor CisJa21iX3N0YXRlID0ga21lbWR1cChwbGFuZS0+c3RhdGUsIHNpemVvZigqa21iX3N0YXRlKSwg R0ZQX0tFUk5FTCk7CisKKwlpZiAoIWttYl9zdGF0ZSkKKwkJcmV0dXJuIE5VTEw7CisKKwlzdGF0 ZSA9ICZrbWJfc3RhdGUtPmJhc2VfcGxhbmVfc3RhdGU7CisJX19kcm1fYXRvbWljX2hlbHBlcl9w bGFuZV9kdXBsaWNhdGVfc3RhdGUocGxhbmUsIHN0YXRlKTsKKworCXJldHVybiBzdGF0ZTsKK30K Kworc3RhdGljIHZvaWQga21iX3BsYW5lX3Jlc2V0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQor eworCXN0cnVjdCBrbWJfcGxhbmVfc3RhdGUgKmttYl9zdGF0ZSA9IHRvX2ttYl9wbGFuZV9zdGF0 ZShwbGFuZS0+c3RhdGUpOworCisJaWYgKGttYl9zdGF0ZSkKKwkJX19kcm1fYXRvbWljX2hlbHBl cl9wbGFuZV9kZXN0cm95X3N0YXRlCisJCSAgICAoJmttYl9zdGF0ZS0+YmFzZV9wbGFuZV9zdGF0 ZSk7CisJa2ZyZWUoa21iX3N0YXRlKTsKKworCXBsYW5lLT5zdGF0ZSA9IE5VTEw7CisJa21iX3N0 YXRlID0ga3phbGxvYyhzaXplb2YoKmttYl9zdGF0ZSksIEdGUF9LRVJORUwpOworCWlmIChrbWJf c3RhdGUpIHsKKwkJa21iX3N0YXRlLT5iYXNlX3BsYW5lX3N0YXRlLnBsYW5lID0gcGxhbmU7CisJ CWttYl9zdGF0ZS0+YmFzZV9wbGFuZV9zdGF0ZS5yb3RhdGlvbiA9IERSTV9NT0RFX1JPVEFURV8w OworCQlwbGFuZS0+c3RhdGUgPSAma21iX3N0YXRlLT5iYXNlX3BsYW5lX3N0YXRlOworCQlrbWJf c3RhdGUtPm5vX3BsYW5lcyA9IEtNQl9NQVhfUExBTkVTOworCX0KK30KKworc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1fcGxhbmVfZnVuY3Mga21iX3BsYW5lX2Z1bmNzID0geworCS51cGRhdGVfcGxh bmUgPSBkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfcGxhbmUsCisJLmRpc2FibGVfcGxhbmUgPSBk cm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lLAorCS5kZXN0cm95ID0ga21iX3BsYW5lX2Rl c3Ryb3ksCisJLnJlc2V0ID0ga21iX3BsYW5lX3Jlc2V0LAorCS5hdG9taWNfZHVwbGljYXRlX3N0 YXRlID0ga21iX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZSwKKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUg PSBrbWJfZGVzdHJveV9wbGFuZV9zdGF0ZSwKK307CisKKy8qIGdyYXBoaWNzIGxheWVyICggbGF5 ZXJzIDIgJiAzKSBmb3JtYXRzLCBvbmx5IHBhY2tlZCBmb3JtYXRzICBhcmUgc3VwcG9ydGVkKi8K K3N0YXRpYyBjb25zdCB1MzIga21iX2Zvcm1hdHNfZ1tdID0geworCURSTV9GT1JNQVRfUkdCMzMy LAorCURSTV9GT1JNQVRfWFJHQjQ0NDQsIERSTV9GT1JNQVRfWEJHUjQ0NDQsCisJRFJNX0ZPUk1B VF9BUkdCNDQ0NCwgRFJNX0ZPUk1BVF9BQkdSNDQ0NCwKKwlEUk1fRk9STUFUX1hSR0IxNTU1LCBE Uk1fRk9STUFUX1hCR1IxNTU1LAorCURSTV9GT1JNQVRfQVJHQjE1NTUsIERSTV9GT1JNQVRfQUJH UjE1NTUsCisJRFJNX0ZPUk1BVF9SR0I1NjUsIERSTV9GT1JNQVRfQkdSNTY1LAorCURSTV9GT1JN QVRfUkdCODg4LCBEUk1fRk9STUFUX0JHUjg4OCwKKwlEUk1fRk9STUFUX1hSR0I4ODg4LCBEUk1f Rk9STUFUX1hCR1I4ODg4LAorCURSTV9GT1JNQVRfQVJHQjg4ODgsIERSTV9GT1JNQVRfQUJHUjg4 ODgsCisJRFJNX0ZPUk1BVF9YUkdCMjEwMTAxMCwgRFJNX0ZPUk1BVF9YQkdSMjEwMTAxMCwKKwlE Uk1fRk9STUFUX1lVWVYsIERSTV9GT1JNQVRfWVZZVSwKKwlEUk1fRk9STUFUX1VZVlksIERSTV9G T1JNQVRfVllVWSwKK307CisKKy8qIHZpZGVvIGxheWVyICgwICYgMSkgZm9ybWF0cywgcGFja2Vk IGFuZCBwbGFuYXIgZm9ybWF0cyBhcmUgc3VwcG9ydGVkICovCitzdGF0aWMgY29uc3QgdTMyIGtt Yl9mb3JtYXRzX3ZbXSA9IHsKKwkvKiBwYWNrZWQgZm9ybWF0cyAqLworCURSTV9GT1JNQVRfUkdC MzMyLAorCURSTV9GT1JNQVRfWFJHQjQ0NDQsIERSTV9GT1JNQVRfWEJHUjQ0NDQsCisJRFJNX0ZP Uk1BVF9BUkdCNDQ0NCwgRFJNX0ZPUk1BVF9BQkdSNDQ0NCwKKwlEUk1fRk9STUFUX1hSR0IxNTU1 LCBEUk1fRk9STUFUX1hCR1IxNTU1LAorCURSTV9GT1JNQVRfQVJHQjE1NTUsIERSTV9GT1JNQVRf QUJHUjE1NTUsCisJRFJNX0ZPUk1BVF9SR0I1NjUsIERSTV9GT1JNQVRfQkdSNTY1LAorCURSTV9G T1JNQVRfUkdCODg4LCBEUk1fRk9STUFUX0JHUjg4OCwKKwlEUk1fRk9STUFUX1hSR0I4ODg4LCBE Uk1fRk9STUFUX1hCR1I4ODg4LAorCURSTV9GT1JNQVRfQVJHQjg4ODgsIERSTV9GT1JNQVRfQUJH Ujg4ODgsCisJRFJNX0ZPUk1BVF9YUkdCMjEwMTAxMCwgRFJNX0ZPUk1BVF9YQkdSMjEwMTAxMCwK KwlEUk1fRk9STUFUX1lVWVYsIERSTV9GT1JNQVRfWVZZVSwKKwlEUk1fRk9STUFUX1VZVlksIERS TV9GT1JNQVRfVllVWSwKKwkvKnBsYW5hciBmb3JtYXRzICovCisJRFJNX0ZPUk1BVF9ZVVY0MTEs IERSTV9GT1JNQVRfWVZVNDExLAorCURSTV9GT1JNQVRfWVVWNDIwLCBEUk1fRk9STUFUX1lWVTQy MCwKKwlEUk1fRk9STUFUX1lVVjQyMiwgRFJNX0ZPUk1BVF9ZVlU0MjIsCisJRFJNX0ZPUk1BVF9Z VVY0NDQsIERSTV9GT1JNQVRfWVZVNDQ0LAorCURSTV9GT1JNQVRfTlYxMiwgRFJNX0ZPUk1BVF9O VjIxLAorfTsKKworc3RydWN0IGRybV9wbGFuZSAqa21iX3BsYW5lX2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRybSkKK3sKKwlzdHJ1Y3Qga21iX2RybV9wcml2YXRlICpsY2QgPSB0b19rbWIoZHJt KTsKKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSA9IE5VTEw7CisJc3RydWN0IGRybV9wbGFuZSAq cHJpbWFyeSA9IE5VTEw7CisJaW50IGkgPSAwOworCWludCByZXQ7CisJZW51bSBkcm1fcGxhbmVf dHlwZSBwbGFuZV90eXBlOworCWNvbnN0IHVpbnQzMl90ICpwbGFuZV9mb3JtYXRzOworCWludCBu dW1fcGxhbmVfZm9ybWF0czsKKworCWZvciAoaSA9IDA7IGkgPCBsY2QtPm5fbGF5ZXJzOyBpKysp IHsKKworCQlwbGFuZSA9IGRldm1fa3phbGxvYyhkcm0tPmRldiwgc2l6ZW9mKCpwbGFuZSksIEdG UF9LRVJORUwpOworCisJCWlmICghcGxhbmUpCisJCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsK KworCQlwbGFuZV90eXBlID0gKGkgPT0gMCkgPyBEUk1fUExBTkVfVFlQRV9QUklNQVJZIDoKKwkJ ICAgIERSTV9QTEFORV9UWVBFX09WRVJMQVk7CisJCWlmIChpIDwgMikgeworCQkJcGxhbmVfZm9y bWF0cyA9IGttYl9mb3JtYXRzX3Y7CisJCQludW1fcGxhbmVfZm9ybWF0cyA9IEFSUkFZX1NJWkUo a21iX2Zvcm1hdHNfdik7CisJCX0gZWxzZSB7CisJCQlwbGFuZV9mb3JtYXRzID0ga21iX2Zvcm1h dHNfZzsKKwkJCW51bV9wbGFuZV9mb3JtYXRzID0gQVJSQVlfU0laRShrbWJfZm9ybWF0c19nKTsK KwkJfQorCisJCXJldCA9IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdChkcm0sIHBsYW5lLCAweEZG LAorCQkJCSAgICAgICAma21iX3BsYW5lX2Z1bmNzLCBwbGFuZV9mb3JtYXRzLAorCQkJCSAgICAg ICBudW1fcGxhbmVfZm9ybWF0cywKKwkJCQkgICAgICAgTlVMTCwgcGxhbmVfdHlwZSwgInBsYW5l ICVkIiwgaSk7CisJCWlmIChyZXQgPCAwKQorCQkJZ290byBjbGVhbnVwOworCisJCWRybV9wbGFu ZV9oZWxwZXJfYWRkKHBsYW5lLCAma21iX3BsYW5lX2hlbHBlcl9mdW5jcyk7CisJCWlmIChwbGFu ZV90eXBlID09IERSTV9QTEFORV9UWVBFX1BSSU1BUlkpIHsKKwkJCXByaW1hcnkgPSBwbGFuZTsK KwkJCWxjZC0+cGxhbmUgPSBwbGFuZTsKKwkJfQorCX0KKworY2xlYW51cDoKKwlyZXR1cm4gcHJp bWFyeTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9rbWIva21iX3BsYW5lLmggYi9k cml2ZXJzL2dwdS9kcm0va21iL2ttYl9wbGFuZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjQ2Y2RjYWEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0va21i L2ttYl9wbGFuZS5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBHUEwtMi4wLW9ubHkKKyAqCisgKiBDb3B5cmlnaHQgwqkgMjAxOC0yMDIwIEludGVsIENvcnBv cmF0aW9uCisgKi8KKworI2lmbmRlZiBfX0tNQl9QTEFORV9IX18KKyNkZWZpbmUgX19LTUJfUExB TkVfSF9fCisKKyNpbmNsdWRlICJrbWJfZHJ2LmgiCisKKyNkZWZpbmUgS01CX01BWF9QTEFORVMJ NAorCisvKiB0aGlzIHN0cnVjdCBtYXkgYmUgbmVlZGVkIGluIHRoZSBmdXR1cmUKKyAqc3RydWN0 IGttYl9wbGFuZSB7CisgKglzdHJ1Y3QgZHJtX3BsYW5lIGJhc2VfcGxhbmU7CisgKglzdHJ1Y3Qg a21iX2RybV9wcml2YXRlIGttYl9kZXY7CisgKn07CisgKi8KK3N0cnVjdCBrbWJfcGxhbmVfc3Rh dGUgeworCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgYmFzZV9wbGFuZV9zdGF0ZTsKKwl1bnNpZ25l ZCBjaGFyIG5vX3BsYW5lczsKK307CisKKy8qIG1heSBiZSBuZWVkZWQgaW4gdGhlIGZ1dHVyZQor ICojZGVmaW5lIHRvX2ttYl9wbGFuZSh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGttYl9wbGFu ZSwgYmFzZV9wbGFuZSkKKyAqLworI2RlZmluZSB0b19rbWJfcGxhbmVfc3RhdGUoeCkgXAorCQlj b250YWluZXJfb2YoeCwgc3RydWN0IGttYl9wbGFuZV9zdGF0ZSwgYmFzZV9wbGFuZV9zdGF0ZSkK Kworc3RydWN0IGRybV9wbGFuZSAqa21iX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRy bSk7Cit2b2lkIGttYl9wbGFuZV9kZXN0cm95KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKTsKKyNl bmRpZiAvKiBfX0tNQl9QTEFORV9IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9r bWIva21iX3JlZ3MuaCBiL2RyaXZlcnMvZ3B1L2RybS9rbWIva21iX3JlZ3MuaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjAwNDIxCi0tLSAvZGV2L251bGwKKysrIGIvZHJp dmVycy9ncHUvZHJtL2ttYi9rbWJfcmVncy5oCkBAIC0wLDAgKzEsNDQwIEBACisvKiBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisgKgorICogQ29weXJpZ2h0IMKpIDIwMTgt MjAyMCBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpZm5kZWYgX19LTUJfUkVHU19IX18KKyNk ZWZpbmUgX19LTUJfUkVHU19IX18KKworLypMQ0QgQ09OVFJPTExFUiBSRUdJU1RFUlMgKi8KKyNk ZWZpbmUgTENEX0NPTlRST0wJCQkoMHg0ICogMHgwMDApCisjZGVmaW5lIExDRF9JTlRfU1RBVFVT CQkJKDB4NCAqIDB4MDAxKQorI2RlZmluZSBMQ0RfSU5UX0VOQUJMRQkJCSgweDQgKiAweDAwMikK KyNkZWZpbmUgTENEX0lOVF9DTEVBUgkJCSgweDQgKiAweDAwMykKKyNkZWZpbmUgTENEX0xJTkVf Q09VTlQJCQkoMHg0ICogMHgwMDQpCisjZGVmaW5lIExDRF9MSU5FX0NPTVBBUkUJCSgweDQgKiAw eDAwNSkKKyNkZWZpbmUgTENEX1ZTVEFUVVMJCQkoMHg0ICogMHgwMDYpCisjZGVmaW5lIExDRF9W U1RBVFVTX0NPTVBBUkUJCSgweDQgKiAweDAwNykKKyNkZWZpbmUgTENEX1NDUkVFTl9XSURUSAkJ KDB4NCAqIDB4MDA4KQorI2RlZmluZSBMQ0RfU0NSRUVOX0hFSUdIVAkJKDB4NCAqIDB4MDA5KQor I2RlZmluZSBMQ0RfRklFTERfSU5UX0NGRwkJKDB4NCAqIDB4MDBhKQorI2RlZmluZSBMQ0RfRklG T19GTFVTSAkJCSgweDQgKiAweDAwYikKKyNkZWZpbmUgTENEX0JHX0NPTE9VUl9MUwkJKDB4NCAq IDB4MDBjKQorI2RlZmluZSBMQ0RfQkdfQ09MT1VSX01TCQkoMHg0ICogMHgwMGQpCisjZGVmaW5l IExDRF9SQU1fQ0ZHCQkgICAgICAgICgweDQgKiAweDAwZSkKKyNkZWZpbmUgTENEX0xBWUVSMF9D RkcJCSAgICAgICAgKDB4NCAqIDB4MTAwKQorI2RlZmluZSBMQ0RfTEFZRVJuX0NGRyhOKQkJKExD RF9MQVlFUjBfQ0ZHICsgKDB4NDAwKk4pKQorI2RlZmluZSBMQ0RfTEFZRVIwX0NPTF9TVEFSVAkJ KDB4NCAqIDB4MTAxKQorI2RlZmluZSBMQ0RfTEFZRVJuX0NPTF9TVEFSVChOKQkJKExDRF9MQVlF UjBfQ09MX1NUQVJUICsgKDB4NDAwKk4pKQorI2RlZmluZSBMQ0RfTEFZRVIwX1JPV19TVEFSVAkJ KDB4NCAqIDB4MTAyKQorI2RlZmluZSBMQ0RfTEFZRVJuX1JPV19TVEFSVChOKQkJKExDRF9MQVlF UjBfUk9XX1NUQVJUICsgKDB4NDAwKk4pKQorI2RlZmluZSBMQ0RfTEFZRVIwX1dJRFRICSAgICAg ICAgKDB4NCAqIDB4MTAzKQorI2RlZmluZSBMQ0RfTEFZRVJuX1dJRFRIKE4pCQkoTENEX0xBWUVS MF9XSURUSCArICgweDQwMCpOKSkKKyNkZWZpbmUgTENEX0xBWUVSMF9IRUlHSFQJCSgweDQgKiAw eDEwNCkKKyNkZWZpbmUgTENEX0xBWUVSbl9IRUlHSFQoTikJCShMQ0RfTEFZRVIwX0hFSUdIVCAr ICgweDQwMCpOKSkKKyNkZWZpbmUgTENEX0xBWUVSMF9TQ0FMRV9DRkcJCSgweDQgKiAweDEwNSkK KyNkZWZpbmUgTENEX0xBWUVSbl9TQ0FMRV9DRkcoTikJCShMQ0RfTEFZRVIwX1NDQUxFX0NGRyAr ICgweDQwMCpOKSkKKyNkZWZpbmUgTENEX0xBWUVSMF9BTFBIQQkgICAgICAgICgweDQgKiAweDEw NikKKyNkZWZpbmUgTENEX0xBWUVSbl9BTFBIQShOKQkJKExDRF9MQVlFUjBfQUxQSEEgKyAoMHg0 MDAqTikpCisjZGVmaW5lIExDRF9MQVlFUjBfSU5WX0NPTE9VUl9MUwkoMHg0ICogMHgxMDcpCisj ZGVmaW5lIExDRF9MQVlFUm5fSU5WX0NPTE9VUl9MUyhOKQkoTENEX0xBWUVSMF9JTlZfQ09MT1VS X0xTICsgKDB4NDAwKk4pKQorI2RlZmluZSBMQ0RfTEFZRVIwX0lOVl9DT0xPVVJfTVMJKDB4NCAq IDB4MTA4KQorI2RlZmluZSBMQ0RfTEFZRVJuX0lOVl9DT0xPVVJfTVMoTikJKExDRF9MQVlFUjBf SU5WX0NPTE9VUl9NUyArICgweDQwMCpOKSkKKyNkZWZpbmUgTENEX0xBWUVSMF9UUkFOU19DT0xP VVJfTFMJKDB4NCAqIDB4MTA5KQorI2RlZmluZSBMQ0RfTEFZRVJuX1RSQU5TX0NPTE9VUl9MUyhO KQkoTENEX0xBWUVSMF9UUkFOU19DT0xPVVJfTFMgKyAoMHg0MDAqTikpCisjZGVmaW5lIExDRF9M QVlFUjBfVFJBTlNfQ09MT1VSX01TCSgweDQgKiAweDEwYSkKKyNkZWZpbmUgTENEX0xBWUVSbl9U UkFOU19DT0xPVVJfTVMoTikJKExDRF9MQVlFUjBfVFJBTlNfQ09MT1VSX01TICsgKDB4NDAwKk4p KQorI2RlZmluZSBMQ0RfTEFZRVIwX0NTQ19DT0VGRjExCQkoMHg0ICogMHgxMGIpCisjZGVmaW5l IExDRF9MQVlFUm5fQ1NDX0NPRUZGMTEoTikJKExDRF9MQVlFUjBfQ1NDX0NPRUZGMTEgKyAoMHg0 MDAqTikpCisjZGVmaW5lIExDRF9MQVlFUjBfQ1NDX0NPRUZGMTIJCSgweDQgKiAweDEwYykKKyNk ZWZpbmUgTENEX0xBWUVSbl9DU0NfQ09FRkYxMihOKQkoTENEX0xBWUVSMF9DU0NfQ09FRkYxMiAr ICgweDQwMCpOKSkKKyNkZWZpbmUgTENEX0xBWUVSMF9DU0NfQ09FRkYxMwkJKDB4NCAqIDB4MTBk KQorI2RlZmluZSBMQ0RfTEFZRVJuX0NTQ19DT0VGRjEzKE4pCShMQ0RfTEFZRVIwX0NTQ19DT0VG RjEzICsgKDB4NDAwKk4pKQorI2RlZmluZSBMQ0RfTEFZRVIwX0NTQ19DT0VGRjIxCQkoMHg0ICog MHgxMGUpCisjZGVmaW5lIExDRF9MQVlFUm5fQ1NDX0NPRUZGMjEoTikJKExDRF9MQVlFUjBfQ1ND X0NPRUZGMjEgKyAoMHg0MDAqTikpCisjZGVmaW5lIExDRF9MQVlFUjBfQ1NDX0NPRUZGMjIJCSgw eDQgKiAweDEwZikKKyNkZWZpbmUgTENEX0xBWUVSbl9DU0NfQ09FRkYyMihOKQkoTENEX0xBWUVS MF9DU0NfQ09FRkYyMiArICgweDQwMCpOKSkKKyNkZWZpbmUgTENEX0xBWUVSMF9DU0NfQ09FRkYy MwkJKDB4NCAqIDB4MTEwKQorI2RlZmluZSBMQ0RfTEFZRVJuX0NTQ19DT0VGRjIzKE4pCShMQ0Rf TEFZRVIwX0NTQ19DT0VGRjIzICsgKDB4NDAwKk4pKQorI2RlZmluZSBMQ0RfTEFZRVIwX0NTQ19D T0VGRjMxCQkoMHg0ICogMHgxMTEpCisjZGVmaW5lIExDRF9MQVlFUm5fQ1NDX0NPRUZGMzEoTikJ KExDRF9MQVlFUjBfQ1NDX0NPRUZGMzEgKyAoMHg0MDAqTikpCisjZGVmaW5lIExDRF9MQVlFUjBf Q1NDX0NPRUZGMzIJCSgweDQgKiAweDExMikKKyNkZWZpbmUgTENEX0xBWUVSbl9DU0NfQ09FRkYz MihOKQkgIChMQ0RfTEFZRVIwX0NTQ19DT0VGRjMyICsgKDB4NDAwKk4pKQorI2RlZmluZSBMQ0Rf TEFZRVIwX0NTQ19DT0VGRjMzCQkoMHg0ICogMHgxMTMpCisjZGVmaW5lIExDRF9MQVlFUm5fQ1ND X0NPRUZGMzMoTikJKExDRF9MQVlFUjBfQ1NDX0NPRUZGMzMgKyAoMHg0MDAqTikpCisjZGVmaW5l IExDRF9MQVlFUjBfQ1NDX09GRjEJCSgweDQgKiAweDExNCkKKyNkZWZpbmUgTENEX0xBWUVSbl9D U0NfT0ZGMShOKQkJKExDRF9MQVlFUjBfQ1NDX09GRjEgKyAoMHg0MDAqTikpCisjZGVmaW5lIExD RF9MQVlFUjBfQ1NDX09GRjIJCSgweDQgKiAweDExNSkKKyNkZWZpbmUgTENEX0xBWUVSbl9DU0Nf T0ZGMihOKQkJKExDRF9MQVlFUjBfQ1NDX09GRjIgKyAoMHg0MDAqTikpCisjZGVmaW5lIExDRF9M QVlFUjBfQ1NDX09GRjMJCSgweDQgKiAweDExNikKKyNkZWZpbmUgTENEX0xBWUVSbl9DU0NfT0ZG MyhOKQkJKExDRF9MQVlFUjBfQ1NDX09GRjMgKyAoMHg0MDAqTikpCisjZGVmaW5lIExDRF9MQVlF UjBfRE1BX0NGRwkJKDB4NCAqIDB4MTE3KQorI2RlZmluZSBMQ0RfTEFZRVJuX0RNQV9DRkcoTikJ CShMQ0RfTEFZRVIwX0RNQV9DRkcgKyAoMHg0MDAqTikpCisjZGVmaW5lIExDRF9MQVlFUjBfRE1B X1NUQVJUX0FEUgkoMHg0ICogMHgxMTgpCisjZGVmaW5lIExDRF9MQVlFUm5fRE1BX1NUQVJUX0FE RFIoTikJKExDRF9MQVlFUjBfRE1BX1NUQVJUX0FEUiArICgweDQwMCpOKSkKKyNkZWZpbmUgTENE X0xBWUVSMF9ETUFfU1RBUlRfU0hBRE9XCSgweDQgKiAweDExOSkKKyNkZWZpbmUgTENEX0xBWUVS bl9ETUFfU1RBUlRfU0hBRE9XKE4pCShMQ0RfTEFZRVIwX0RNQV9TVEFSVF9TSEFET1cgKyAoMHg0 MDAqTikpCisjZGVmaW5lIExDRF9MQVlFUjBfRE1BX0xFTgkJKDB4NCAqIDB4MTFhKQorI2RlZmlu ZSBMQ0RfTEFZRVJuX0RNQV9MRU4oTikJCShMQ0RfTEFZRVIwX0RNQV9MRU4gKyAoMHg0MDAqTikp CisjZGVmaW5lIExDRF9MQVlFUjBfRE1BX0xFTl9TSEFET1cJKDB4NCAqIDB4MTFiKQorI2RlZmlu ZSBMQ0RfTEFZRVJuX0RNQV9MRU5fU0hBRE9XKE4pCShMQ0RfTEFZRVIwX0RNQV9MRU5fU0hBRE9X ICsgKDB4NDAwKk4pKQorI2RlZmluZSBMQ0RfTEFZRVIwX0RNQV9TVEFUVVMJCSgweDQgKiAweDEx YykKKyNkZWZpbmUgTENEX0xBWUVSbl9ETUFfU1RBVFVTKE4pCShMQ0RfTEFZRVIwX0RNQV9TVEFU VVMgKyAoMHg0MDAqTikpCisjZGVmaW5lIExDRF9MQVlFUjBfRE1BX0xJTkVfV0lEVEgJKDB4NCAq IDB4MTFkKQorI2RlZmluZSBMQ0RfTEFZRVJuX0RNQV9MSU5FX1dJRFRIKE4pCShMQ0RfTEFZRVIw X0RNQV9MSU5FX1dJRFRIICsgKDB4NDAwKk4pKQorI2RlZmluZSBMQ0RfTEFZRVIwX0RNQV9MSU5F X1ZTVFJJREUJKDB4NCAqIDB4MTFlKQorI2RlZmluZSBMQ0RfTEFZRVJuX0RNQV9MSU5FX1ZTVFJJ REUoTikJKExDRF9MQVlFUjBfRE1BX0xJTkVfVlNUUklERSArICgweDQwMCpOKSkKKyNkZWZpbmUg TENEX0xBWUVSMF9ETUFfRklGT19TVEFUVVMJKDB4NCAqIDB4MTFmKQorI2RlZmluZSBMQ0RfTEFZ RVJuX0RNQV9GSUZPX1NUQVRVUyhOKQkoTENEX0xBWUVSMF9ETUFfRklGT19TVEFUVVMgKyAoMHg0 MDAqTikpCisjZGVmaW5lIExDRF9MQVlFUjBfQ0ZHMgkJCSgweDQgKiAweDEyMCkKKyNkZWZpbmUg TENEX0xBWUVSbl9DRkcyKE4pCQkoTENEX0xBWUVSMF9DRkcyICsgKDB4NDAwKk4pKQorCisjZGVm aW5lIExDRF9MQVlFUjFfQ0ZHCQkJKDB4NCAqIDB4MjAwKQorI2RlZmluZSBMQ0RfTEFZRVJuX0NG RzIoTikJCShMQ0RfTEFZRVIwX0NGRzIgKyAoMHg0MDAqTikpCisjZGVmaW5lIExDRF9MQVlFUjFf Q09MX1NUQVJUCQkoMHg0ICogMHgyMDEpCisjZGVmaW5lIExDRF9MQVlFUjFfUk9XX1NUQVJUCQko MHg0ICogMHgyMDIpCisjZGVmaW5lIExDRF9MQVlFUjFfV0lEVEgJCSgweDQgKiAweDIwMykKKyNk ZWZpbmUgTENEX0xBWUVSMV9IRUlHSFQJCSgweDQgKiAweDIwNCkKKyNkZWZpbmUgTENEX0xBWUVS MV9TQ0FMRV9DRkcJCSgweDQgKiAweDIwNSkKKyNkZWZpbmUgTENEX0xBWUVSMV9BTFBIQQkJKDB4 NCAqIDB4MjA2KQorI2RlZmluZSBMQ0RfTEFZRVIxX0lOVl9DT0xPVVJfTFMJKDB4NCAqIDB4MjA3 KQorI2RlZmluZSBMQ0RfTEFZRVIxX0lOVl9DT0xPVVJfTVMJKDB4NCAqIDB4MjA4KQorI2RlZmlu ZSBMQ0RfTEFZRVIxX1RSQU5TX0NPTE9VUl9MUwkoMHg0ICogMHgyMDkpCisjZGVmaW5lIExDRF9M QVlFUjFfVFJBTlNfQ09MT1VSX01TCSgweDQgKiAweDIwYSkKKyNkZWZpbmUgTENEX0xBWUVSMV9D U0NfQ09FRkYxMQkJKDB4NCAqIDB4MjBiKQorI2RlZmluZSBMQ0RfTEFZRVIxX0NTQ19DT0VGRjEy CQkoMHg0ICogMHgyMGMpCisjZGVmaW5lIExDRF9MQVlFUjFfQ1NDX0NPRUZGMTMJCSgweDQgKiAw eDIwZCkKKyNkZWZpbmUgTENEX0xBWUVSMV9DU0NfQ09FRkYyMQkJKDB4NCAqIDB4MjBlKQorI2Rl ZmluZSBMQ0RfTEFZRVIxX0NTQ19DT0VGRjIyCQkoMHg0ICogMHgyMGYpCisjZGVmaW5lIExDRF9M QVlFUjFfQ1NDX0NPRUZGMjMJCSgweDQgKiAweDIxMCkKKyNkZWZpbmUgTENEX0xBWUVSMV9DU0Nf Q09FRkYzMQkJKDB4NCAqIDB4MjExKQorI2RlZmluZSBMQ0RfTEFZRVIxX0NTQ19DT0VGRjMyCQko MHg0ICogMHgyMTIpCisjZGVmaW5lIExDRF9MQVlFUjFfQ1NDX0NPRUZGMzMJCSgweDQgKiAweDIx MykKKyNkZWZpbmUgTENEX0xBWUVSMV9DU0NfT0ZGMQkJKDB4NCAqIDB4MjE0KQorI2RlZmluZSBM Q0RfTEFZRVIxX0NTQ19PRkYyCQkoMHg0ICogMHgyMTUpCisjZGVmaW5lIExDRF9MQVlFUjFfQ1ND X09GRjMJCSgweDQgKiAweDIxNikKKyNkZWZpbmUgTENEX0xBWUVSMV9ETUFfQ0ZHCQkoMHg0ICog MHgyMTcpCisjZGVmaW5lIExDRF9MQVlFUjFfRE1BX1NUQVJUX0FEUgkoMHg0ICogMHgyMTgpCisj ZGVmaW5lIExDRF9MQVlFUjFfRE1BX1NUQVJUX1NIQURPVwkoMHg0ICogMHgyMTkpCisjZGVmaW5l IExDRF9MQVlFUjFfRE1BX0xFTgkJKDB4NCAqIDB4MjFhKQorI2RlZmluZSBMQ0RfTEFZRVIxX0RN QV9MRU5fU0hBRE9XCSgweDQgKiAweDIxYikKKyNkZWZpbmUgTENEX0xBWUVSMV9ETUFfU1RBVFVT CQkoMHg0ICogMHgyMWMpCisjZGVmaW5lIExDRF9MQVlFUjFfRE1BX0xJTkVfV0lEVEgJKDB4NCAq IDB4MjFkKQorI2RlZmluZSBMQ0RfTEFZRVIxX0RNQV9MSU5FX1ZTVFJJREUJKDB4NCAqIDB4MjFl KQorI2RlZmluZSBMQ0RfTEFZRVIxX0RNQV9GSUZPX1NUQVRVUwkoMHg0ICogMHgyMWYpCisjZGVm aW5lIExDRF9MQVlFUjFfQ0ZHMgkJCSgweDQgKiAweDIyMCkKKyNkZWZpbmUgTENEX0xBWUVSMl9D RkcJCQkoMHg0ICogMHgzMDApCisjZGVmaW5lIExDRF9MQVlFUjJfQ09MX1NUQVJUCQkoMHg0ICog MHgzMDEpCisjZGVmaW5lIExDRF9MQVlFUjJfUk9XX1NUQVJUCQkoMHg0ICogMHgzMDIpCisjZGVm aW5lIExDRF9MQVlFUjJfV0lEVEgJCSgweDQgKiAweDMwMykKKyNkZWZpbmUgTENEX0xBWUVSMl9I RUlHSFQJCSgweDQgKiAweDMwNCkKKyNkZWZpbmUgTENEX0xBWUVSMl9TQ0FMRV9DRkcJCSgweDQg KiAweDMwNSkKKyNkZWZpbmUgTENEX0xBWUVSMl9BTFBIQQkJKDB4NCAqIDB4MzA2KQorI2RlZmlu ZSBMQ0RfTEFZRVIyX0lOVl9DT0xPVVJfTFMJKDB4NCAqIDB4MzA3KQorI2RlZmluZSBMQ0RfTEFZ RVIyX0lOVl9DT0xPVVJfTVMJKDB4NCAqIDB4MzA4KQorI2RlZmluZSBMQ0RfTEFZRVIyX1RSQU5T X0NPTE9VUl9MUwkoMHg0ICogMHgzMDkpCisjZGVmaW5lIExDRF9MQVlFUjJfVFJBTlNfQ09MT1VS X01TCSgweDQgKiAweDMwYSkKKyNkZWZpbmUgTENEX0xBWUVSMl9DU0NfQ09FRkYxMQkJKDB4NCAq IDB4MzBiKQorI2RlZmluZSBMQ0RfTEFZRVIyX0NTQ19DT0VGRjEyCQkoMHg0ICogMHgzMGMpCisj ZGVmaW5lIExDRF9MQVlFUjJfQ1NDX0NPRUZGMTMJCSgweDQgKiAweDMwZCkKKyNkZWZpbmUgTENE X0xBWUVSMl9DU0NfQ09FRkYyMQkJKDB4NCAqIDB4MzBlKQorI2RlZmluZSBMQ0RfTEFZRVIyX0NT Q19DT0VGRjIyCQkoMHg0ICogMHgzMGYpCisjZGVmaW5lIExDRF9MQVlFUjJfQ1NDX0NPRUZGMjMJ CSgweDQgKiAweDMxMCkKKyNkZWZpbmUgTENEX0xBWUVSMl9DU0NfQ09FRkYzMQkJKDB4NCAqIDB4 MzExKQorI2RlZmluZSBMQ0RfTEFZRVIyX0NTQ19DT0VGRjMyCQkoMHg0ICogMHgzMTIpCisjZGVm aW5lIExDRF9MQVlFUjJfQ1NDX0NPRUZGMzMJCSgweDQgKiAweDMxMykKKyNkZWZpbmUgTENEX0xB WUVSMl9DU0NfT0ZGMQkJKDB4NCAqIDB4MzE0KQorI2RlZmluZSBMQ0RfTEFZRVIyX0NTQ19PRkYy CQkoMHg0ICogMHgzMTUpCisjZGVmaW5lIExDRF9MQVlFUjJfQ1NDX09GRjMJCSgweDQgKiAweDMx NikKKyNkZWZpbmUgTENEX0xBWUVSMl9ETUFfQ0ZHCQkoMHg0ICogMHgzMTcpCisjZGVmaW5lIExD RF9MQVlFUjJfRE1BX1NUQVJUX0FEUgkoMHg0ICogMHgzMTgpCisjZGVmaW5lIExDRF9MQVlFUjJf RE1BX1NUQVJUX1NIQURPVwkoMHg0ICogMHgzMTkpCisjZGVmaW5lIExDRF9MQVlFUjJfRE1BX0xF TgkJKDB4NCAqIDB4MzFhKQorI2RlZmluZSBMQ0RfTEFZRVIyX0RNQV9MRU5fU0hBRE9XCSgweDQg KiAweDMxYikKKyNkZWZpbmUgTENEX0xBWUVSMl9ETUFfU1RBVFVTCQkoMHg0ICogMHgzMWMpCisj ZGVmaW5lIExDRF9MQVlFUjJfRE1BX0xJTkVfV0lEVEgJKDB4NCAqIDB4MzFkKQorI2RlZmluZSBM Q0RfTEFZRVIyX0RNQV9MSU5FX1ZTVFJJREUJKDB4NCAqIDB4MzFlKQorI2RlZmluZSBMQ0RfTEFZ RVIyX0RNQV9GSUZPX1NUQVRVUwkoMHg0ICogMHgzMWYpCisjZGVmaW5lIExDRF9MQVlFUjJfQ0ZH MgkJCSgweDQgKiAweDMyMCkKKyNkZWZpbmUgTENEX0xBWUVSM19DRkcJCQkoMHg0ICogMHg0MDAp CisjZGVmaW5lIExDRF9MQVlFUjNfQ09MX1NUQVJUCQkoMHg0ICogMHg0MDEpCisjZGVmaW5lIExD RF9MQVlFUjNfUk9XX1NUQVJUCQkoMHg0ICogMHg0MDIpCisjZGVmaW5lIExDRF9MQVlFUjNfV0lE VEgJCSgweDQgKiAweDQwMykKKyNkZWZpbmUgTENEX0xBWUVSM19IRUlHSFQJCSgweDQgKiAweDQw NCkKKyNkZWZpbmUgTENEX0xBWUVSM19TQ0FMRV9DRkcJCSgweDQgKiAweDQwNSkKKyNkZWZpbmUg TENEX0xBWUVSM19BTFBIQQkJKDB4NCAqIDB4NDA2KQorI2RlZmluZSBMQ0RfTEFZRVIzX0lOVl9D T0xPVVJfTFMJKDB4NCAqIDB4NDA3KQorI2RlZmluZSBMQ0RfTEFZRVIzX0lOVl9DT0xPVVJfTVMJ KDB4NCAqIDB4NDA4KQorI2RlZmluZSBMQ0RfTEFZRVIzX1RSQU5TX0NPTE9VUl9MUwkoMHg0ICog MHg0MDkpCisjZGVmaW5lIExDRF9MQVlFUjNfVFJBTlNfQ09MT1VSX01TCSgweDQgKiAweDQwYSkK KyNkZWZpbmUgTENEX0xBWUVSM19DU0NfQ09FRkYxMQkJKDB4NCAqIDB4NDBiKQorI2RlZmluZSBM Q0RfTEFZRVIzX0NTQ19DT0VGRjEyCQkoMHg0ICogMHg0MGMpCisjZGVmaW5lIExDRF9MQVlFUjNf Q1NDX0NPRUZGMTMJCSgweDQgKiAweDQwZCkKKyNkZWZpbmUgTENEX0xBWUVSM19DU0NfQ09FRkYy MQkJKDB4NCAqIDB4NDBlKQorI2RlZmluZSBMQ0RfTEFZRVIzX0NTQ19DT0VGRjIyCQkoMHg0ICog MHg0MGYpCisjZGVmaW5lIExDRF9MQVlFUjNfQ1NDX0NPRUZGMjMJCSgweDQgKiAweDQxMCkKKyNk ZWZpbmUgTENEX0xBWUVSM19DU0NfQ09FRkYzMQkJKDB4NCAqIDB4NDExKQorI2RlZmluZSBMQ0Rf TEFZRVIzX0NTQ19DT0VGRjMyCQkoMHg0ICogMHg0MTIpCisjZGVmaW5lIExDRF9MQVlFUjNfQ1ND X0NPRUZGMzMJCSgweDQgKiAweDQxMykKKyNkZWZpbmUgTENEX0xBWUVSM19DU0NfT0ZGMQkJKDB4 NCAqIDB4NDE0KQorI2RlZmluZSBMQ0RfTEFZRVIzX0NTQ19PRkYyCQkoMHg0ICogMHg0MTUpCisj ZGVmaW5lIExDRF9MQVlFUjNfQ1NDX09GRjMJCSgweDQgKiAweDQxNikKKyNkZWZpbmUgTENEX0xB WUVSM19ETUFfQ0ZHCQkoMHg0ICogMHg0MTcpCisjZGVmaW5lIExDRF9MQVlFUjNfRE1BX1NUQVJU X0FEUgkoMHg0ICogMHg0MTgpCisjZGVmaW5lIExDRF9MQVlFUjNfRE1BX1NUQVJUX1NIQURPVwko MHg0ICogMHg0MTkpCisjZGVmaW5lIExDRF9MQVlFUjNfRE1BX0xFTgkJKDB4NCAqIDB4NDFhKQor I2RlZmluZSBMQ0RfTEFZRVIzX0RNQV9MRU5fU0hBRE9XCSgweDQgKiAweDQxYikKKyNkZWZpbmUg TENEX0xBWUVSM19ETUFfU1RBVFVTCQkoMHg0ICogMHg0MWMpCisjZGVmaW5lIExDRF9MQVlFUjNf RE1BX0xJTkVfV0lEVEgJKDB4NCAqIDB4NDFkKQorI2RlZmluZSBMQ0RfTEFZRVIzX0RNQV9MSU5F X1ZTVFJJREUJKDB4NCAqIDB4NDFlKQorI2RlZmluZSBMQ0RfTEFZRVIzX0RNQV9GSUZPX1NUQVRV UwkoMHg0ICogMHg0MWYpCisjZGVmaW5lIExDRF9MQVlFUjNfQ0ZHMgkJCSgweDQgKiAweDQyMCkK KyNkZWZpbmUgTENEX0xBWUVSMl9DTFVUMAkJKDB4NCAqIDB4NTAwKQorI2RlZmluZSBMQ0RfTEFZ RVIyX0NMVVQxCQkoMHg0ICogMHg1MDEpCisjZGVmaW5lIExDRF9MQVlFUjJfQ0xVVDIJCSgweDQg KiAweDUwMikKKyNkZWZpbmUgTENEX0xBWUVSMl9DTFVUMwkJKDB4NCAqIDB4NTAzKQorI2RlZmlu ZSBMQ0RfTEFZRVIyX0NMVVQ0CQkoMHg0ICogMHg1MDQpCisjZGVmaW5lIExDRF9MQVlFUjJfQ0xV VDUJCSgweDQgKiAweDUwNSkKKyNkZWZpbmUgTENEX0xBWUVSMl9DTFVUNgkJKDB4NCAqIDB4NTA2 KQorI2RlZmluZSBMQ0RfTEFZRVIyX0NMVVQ3CQkoMHg0ICogMHg1MDcpCisjZGVmaW5lIExDRF9M QVlFUjJfQ0xVVDgJCSgweDQgKiAweDUwOCkKKyNkZWZpbmUgTENEX0xBWUVSMl9DTFVUOQkJKDB4 NCAqIDB4NTA5KQorI2RlZmluZSBMQ0RfTEFZRVIyX0NMVVQxMAkJKDB4NCAqIDB4NTBhKQorI2Rl ZmluZSBMQ0RfTEFZRVIyX0NMVVQxMQkJKDB4NCAqIDB4NTBiKQorI2RlZmluZSBMQ0RfTEFZRVIy X0NMVVQxMgkJKDB4NCAqIDB4NTBjKQorI2RlZmluZSBMQ0RfTEFZRVIyX0NMVVQxMwkJKDB4NCAq IDB4NTBkKQorI2RlZmluZSBMQ0RfTEFZRVIyX0NMVVQxNAkJKDB4NCAqIDB4NTBlKQorI2RlZmlu ZSBMQ0RfTEFZRVIyX0NMVVQxNQkJKDB4NCAqIDB4NTBmKQorI2RlZmluZSBMQ0RfTEFZRVIzX0NM VVQwCQkoMHg0ICogMHg2MDApCisjZGVmaW5lIExDRF9MQVlFUjNfQ0xVVDEJCSgweDQgKiAweDYw MSkKKyNkZWZpbmUgTENEX0xBWUVSM19DTFVUMgkJKDB4NCAqIDB4NjAyKQorI2RlZmluZSBMQ0Rf TEFZRVIzX0NMVVQzCQkoMHg0ICogMHg2MDMpCisjZGVmaW5lIExDRF9MQVlFUjNfQ0xVVDQJCSgw eDQgKiAweDYwNCkKKyNkZWZpbmUgTENEX0xBWUVSM19DTFVUNQkJKDB4NCAqIDB4NjA1KQorI2Rl ZmluZSBMQ0RfTEFZRVIzX0NMVVQ2CQkoMHg0ICogMHg2MDYpCisjZGVmaW5lIExDRF9MQVlFUjNf Q0xVVDcJCSgweDQgKiAweDYwNykKKyNkZWZpbmUgTENEX0xBWUVSM19DTFVUOAkJKDB4NCAqIDB4 NjA4KQorI2RlZmluZSBMQ0RfTEFZRVIzX0NMVVQ5CQkoMHg0ICogMHg2MDkpCisjZGVmaW5lIExD RF9MQVlFUjNfQ0xVVDEwCQkoMHg0ICogMHg2MGEpCisjZGVmaW5lIExDRF9MQVlFUjNfQ0xVVDEx CQkoMHg0ICogMHg2MGIpCisjZGVmaW5lIExDRF9MQVlFUjNfQ0xVVDEyCQkoMHg0ICogMHg2MGMp CisjZGVmaW5lIExDRF9MQVlFUjNfQ0xVVDEzCQkoMHg0ICogMHg2MGQpCisjZGVmaW5lIExDRF9M QVlFUjNfQ0xVVDE0CQkoMHg0ICogMHg2MGUpCisjZGVmaW5lIExDRF9MQVlFUjNfQ0xVVDE1CQko MHg0ICogMHg2MGYpCisjZGVmaW5lIExDRF9MQVlFUjBfRE1BX1NUQVJUX0NCX0FEUgkoMHg0ICog MHg3MDApCisjZGVmaW5lIExDRF9MQVlFUjBfRE1BX1NUQVJUX0NCX1NIQURPVwkoMHg0ICogMHg3 MDEpCisjZGVmaW5lIExDRF9MQVlFUjBfRE1BX0NCX0xJTkVfV0lEVEgJKDB4NCAqIDB4NzAyKQor I2RlZmluZSBMQ0RfTEFZRVIwX0RNQV9DQl9MSU5FX1ZTVFJJREUJKDB4NCAqIDB4NzAzKQorI2Rl ZmluZSBMQ0RfTEFZRVIwX0RNQV9TVEFSVF9DUl9BRFIJKDB4NCAqIDB4NzA0KQorI2RlZmluZSBM Q0RfTEFZRVIwX0RNQV9TVEFSVF9DUl9TSEFET1cJKDB4NCAqIDB4NzA1KQorI2RlZmluZSBMQ0Rf TEFZRVIwX0RNQV9DUl9MSU5FX1dJRFRICSgweDQgKiAweDcwNikKKyNkZWZpbmUgTENEX0xBWUVS MF9ETUFfQ1JfTElORV9WU1RSSURFCSgweDQgKiAweDcwNykKKyNkZWZpbmUgTENEX0xBWUVSMV9E TUFfU1RBUlRfQ0JfQURSCSgweDQgKiAweDcwOCkKKyNkZWZpbmUgTENEX0xBWUVSMV9ETUFfU1RB UlRfQ0JfU0hBRE9XCSgweDQgKiAweDcwOSkKKyNkZWZpbmUgTENEX0xBWUVSMV9ETUFfQ0JfTElO RV9XSURUSAkoMHg0ICogMHg3MGEpCisjZGVmaW5lIExDRF9MQVlFUjFfRE1BX0NCX0xJTkVfVlNU UklERQkoMHg0ICogMHg3MGIpCisjZGVmaW5lIExDRF9MQVlFUjFfRE1BX1NUQVJUX0NSX0FEUgko MHg0ICogMHg3MGMpCisjZGVmaW5lIExDRF9MQVlFUjFfRE1BX1NUQVJUX0NSX1NIQURPVwkoMHg0 ICogMHg3MGQpCisjZGVmaW5lIExDRF9MQVlFUjFfRE1BX0NSX0xJTkVfV0lEVEgJKDB4NCAqIDB4 NzBlKQorI2RlZmluZSBMQ0RfTEFZRVIxX0RNQV9DUl9MSU5FX1ZTVFJJREUJKDB4NCAqIDB4NzBm KQorI2RlZmluZSBMQ0RfT1VUX0ZPUk1BVF9DRkcJCSgweDQgKiAweDgwMCkKKyNkZWZpbmUgTENE X0hTWU5DX1dJRFRICQkJKDB4NCAqIDB4ODAxKQorI2RlZmluZSBMQ0RfSF9CQUNLUE9SQ0gJCQko MHg0ICogMHg4MDIpCisjZGVmaW5lIExDRF9IX0FDVElWRVdJRFRICQkoMHg0ICogMHg4MDMpCisj ZGVmaW5lIExDRF9IX0ZST05UUE9SQ0gJCSgweDQgKiAweDgwNCkKKyNkZWZpbmUgTENEX1ZTWU5D X1dJRFRICQkJKDB4NCAqIDB4ODA1KQorI2RlZmluZSBMQ0RfVl9CQUNLUE9SQ0gJCQkoMHg0ICog MHg4MDYpCisjZGVmaW5lIExDRF9WX0FDVElWRUhFSUdIVAkJKDB4NCAqIDB4ODA3KQorI2RlZmlu ZSBMQ0RfVl9GUk9OVFBPUkNICQkoMHg0ICogMHg4MDgpCisjZGVmaW5lIExDRF9WU1lOQ19TVEFS VAkJCSgweDQgKiAweDgwOSkKKyNkZWZpbmUgTENEX1ZTWU5DX0VORAkJCSgweDQgKiAweDgwYSkK KyNkZWZpbmUgTENEX1ZfQkFDS1BPUkNIX0VWRU4JCSgweDQgKiAweDgwYikKKyNkZWZpbmUgTENE X1ZTWU5DX1dJRFRIX0VWRU4JCSgweDQgKiAweDgwYykKKyNkZWZpbmUgTENEX1ZfQUNUSVZFSEVJ R0hUX0VWRU4JCSgweDQgKiAweDgwZCkKKyNkZWZpbmUgTENEX1ZfRlJPTlRQT1JDSF9FVkVOCQko MHg0ICogMHg4MGUpCisjZGVmaW5lIExDRF9WU1lOQ19TVEFSVF9FVkVOCQkoMHg0ICogMHg4MGYp CisjZGVmaW5lIExDRF9WU1lOQ19FTkRfRVZFTgkJKDB4NCAqIDB4ODEwKQorI2RlZmluZSBMQ0Rf VElNSU5HX0dFTl9UUklHCQkoMHg0ICogMHg4MTEpCisjZGVmaW5lIExDRF9QV00wX0NUUkwJCQko MHg0ICogMHg4MTIpCisjZGVmaW5lIExDRF9QV00wX1JQVF9MRUFESU4JCSgweDQgKiAweDgxMykK KyNkZWZpbmUgTENEX1BXTTBfSElHSF9MT1cJCSgweDQgKiAweDgxNCkKKyNkZWZpbmUgTENEX1BX TTFfQ1RSTAkJCSgweDQgKiAweDgxNSkKKyNkZWZpbmUgTENEX1BXTTFfUlBUX0xFQURJTgkJKDB4 NCAqIDB4ODE2KQorI2RlZmluZSBMQ0RfUFdNMV9ISUdIX0xPVwkJKDB4NCAqIDB4ODE3KQorI2Rl ZmluZSBMQ0RfUFdNMl9DVFJMCQkJKDB4NCAqIDB4ODE4KQorI2RlZmluZSBMQ0RfUFdNMl9SUFRf TEVBRElOCQkoMHg0ICogMHg4MTkpCisjZGVmaW5lIExDRF9QV00yX0hJR0hfTE9XCQkoMHg0ICog MHg4MWEpCisjZGVmaW5lIExDRF9WSURFTzBfRE1BMF9CWVRFUwkJKDB4NCAqIDB4YjAwKQorI2Rl ZmluZSBMQ0RfVklERU8wX0RNQTBfU1RBVEUJCSgweDQgKiAweGIwMSkKKyNkZWZpbmUgTENEX1ZJ REVPMF9ETUExX0JZVEVTCQkoMHg0ICogMHhiMDIpCisjZGVmaW5lIExDRF9WSURFTzBfRE1BMV9T VEFURQkJKDB4NCAqIDB4YjAzKQorI2RlZmluZSBMQ0RfVklERU8wX0RNQTJfQllURVMJCSgweDQg KiAweGIwNCkKKyNkZWZpbmUgTENEX1ZJREVPMF9ETUEyX1NUQVRFCQkoMHg0ICogMHhiMDUpCisj ZGVmaW5lIExDRF9WSURFTzFfRE1BMF9CWVRFUwkJKDB4NCAqIDB4YjA2KQorI2RlZmluZSBMQ0Rf VklERU8xX0RNQTBfU1RBVEUJCSgweDQgKiAweGIwNykKKyNkZWZpbmUgTENEX1ZJREVPMV9ETUEx X0JZVEVTCQkoMHg0ICogMHhiMDgpCisjZGVmaW5lIExDRF9WSURFTzFfRE1BMV9TVEFURQkJKDB4 NCAqIDB4YjA5KQorI2RlZmluZSBMQ0RfVklERU8xX0RNQTJfQllURVMJCSgweDQgKiAweGIwYSkK KyNkZWZpbmUgTENEX1ZJREVPMV9ETUEyX1NUQVRFCQkoMHg0ICogMHhiMGIpCisjZGVmaW5lIExD RF9HUkFQSElDMF9ETUFfQllURVMJCSgweDQgKiAweGIwYykKKyNkZWZpbmUgTENEX0dSQVBISUMw X0RNQV9TVEFURQkJKDB4NCAqIDB4YjBkKQorI2RlZmluZSBMQ0RfR1JBUEhJQzFfRE1BX0JZVEVT CQkoMHg0ICogMHhiMGUpCisjZGVmaW5lIExDRF9HUkFQSElDMV9ETUFfU1RBVEUJCSgweDQgKiAw eGIwZikKKworI2RlZmluZSBMQVlFUjNfRE1BX0ZJRk9fVU5ERVJGTE9XX0JJVAkJKDE8PDI2KQor I2RlZmluZSBMQVlFUjNfRE1BX09WRVJGTE9XX0JJVAkJCSgxPDwyNSkKKyNkZWZpbmUgTEFZRVIz X0RNQV9JRExFX0JJVAkJCSgxPDwyNCkKKyNkZWZpbmUgTEFZRVIzX0RNQV9ET05FX0JJVAkJCSgx PDwyMykKKworI2RlZmluZSBMQVlFUjJfRE1BX0ZJRk9fVU5ERVJGTE9XX0JJVAkJKDE8PDIyKQor I2RlZmluZSBMQVlFUjJfRE1BX09WRVJGTE9XX0JJVAkJCSgxPDwyMSkKKyNkZWZpbmUgTEFZRVIy X0RNQV9JRExFX0JJVAkJCSgxPDwyMCkKKyNkZWZpbmUgTEFZRVIyX0RNQV9ET05FX0JJVAkJCSgx PDwxOSkKKworI2RlZmluZSBMQVlFUjFfRE1BX0NSX0ZJRk9fVU5ERVJGTE9XX0JJVAkoMTw8MTgp CisjZGVmaW5lIExBWUVSMV9ETUFfQ1JfRklGT19PVkVSRkxPV19CSVQJCSgxPDwxNykKKyNkZWZp bmUgTEFZRVIxX0RNQV9DQl9GSUZPX1VOREVSRkxPV19CSVQJKDE8PDE2KQorI2RlZmluZSBMQVlF UjFfRE1BX0NCX0ZJRk9fT1ZFUkZMT1dfQklUCQkoMTw8MTUpCisKKyNkZWZpbmUgTEFZRVIxX0RN QV9GSUZPX1VOREVSRkxPV19CSVQJCSgxPDwxNCkKKyNkZWZpbmUgTEFZRVIxX0RNQV9PVkVSRkxP V19CSVQJCQkoMTw8MTMpCisjZGVmaW5lIExBWUVSMV9ETUFfSURMRV9CSVQJCQkoMTw8MTIpCisj ZGVmaW5lIExBWUVSMV9ETUFfRE9ORV9CSVQJCQkoMTw8MTEpCisKKyNkZWZpbmUgTEFZRVIwX0RN QV9DUl9GSUZPX1VOREVSRkxPV19CSVQJKDE8PDEwKQorI2RlZmluZSBMQVlFUjBfRE1BX0NSX0ZJ Rk9fT1ZFUkZMT1dfQklUCQkoMTw8OSkKKyNkZWZpbmUgTEFZRVIwX0RNQV9DQl9GSUZPX1VOREVS RkxPV19CSVQJKDE8PDgpCisjZGVmaW5lIExBWUVSMF9ETUFfQ0JfRklGT19PVkVSRkxPV19CSVQJ CSgxPDw3KQorCisjZGVmaW5lIExBWUVSMF9ETUFfRklGT19VTkRFUkZMT1dfQklUCQkoMTw8NikK KyNkZWZpbmUgTEFZRVIwX0RNQV9PVkVSRkxPV19CSVQJCQkoMTw8NSkKKyNkZWZpbmUgTEFZRVIw X0RNQV9JRExFX0JJVAkJCSgxPDw0KQorI2RlZmluZSBMQVlFUjBfRE1BX0RPTkVfQklUCQkJKDE8 PDMpCisKKyNkZWZpbmUgIEJMVF9WSURFT25fRE1BbV9TVEFURQkJCTB4MDAKKyNkZWZpbmUgIEJM VF9WSURFT25fRE1BbV9CWVRFUwkJCTB4MDAKKyNkZWZpbmUgIEJMVF9SQU1fQ0ZHCQkJCTB4MDAK KworI2RlZmluZSAgQkxUX0xBWUVSbl9XSURUSChOKQkJCSgweDQwQyArICgweDQwMCpOKSkKKyNk ZWZpbmUgIEJMVF9MQVlFUm5fSEVJR0hUX09GRlNFVChOKQkJKDB4NDEwICsgKDB4NDAwKk4pKQor CisjZGVmaW5lICBCTFRfTEFZRVJuX1RSQU5TX0NPTE9VUl9NUwkJMHgwCisjZGVmaW5lICBCTFRf TEFZRVJuX1RSQU5TX0NPTE9VUl9MUwkJMHgwCisjZGVmaW5lICBCTFRfTEFZRVJuX1NDQUxFX0NG RwkJCTB4MAorI2RlZmluZSAgQkxUX0xBWUVSbl9ST1dfU1RBUlQJCQkweDAKKyNkZWZpbmUgIEJM VF9MQVlFUm5fSU5WX0NPTE9VUl9NUwkJMHgwCisjZGVmaW5lICBCTFRfTEFZRVJuX0lOVl9DT0xP VVJfTFMJCTB4MAorCisvKiAgTENEIGNvbnRyb2xsZXIgTGF5ZXIgRE1BIGNvbmZpZyByZWdpc3Rl ciAqLworCisvKiBiaXQgMCBkZWZhdWx0IGlzIGRpc2FibGVkICovCisjZGVmaW5lIExDRF9ETUFf TEFZRVJfRU5BQkxFCQkJKDB4MDAxKQorLyogYml0IDEgdGhpcyBzaG91bGQgYmUgdXNlZCBvbmx5 IGFzIGEgbWFzayB3aGVuIHJlYWRpbmcgdGhlIHN0YXR1cyBmcm9tCisgKiB0aGUgRE1BIENGRyBy ZWdpc3RlcgorICovCisjZGVmaW5lIExDRF9ETUFfTEFZRVJfU1RBVFVTCQkJKDB4MDAyKQorLyog Yml0IDIgKi8KKyNkZWZpbmUgTENEX0RNQV9MQVlFUl9BVVRPX1VQREFURQkJKDB4MDA0KQorLyog Yml0IDMgKi8KKyNkZWZpbmUgTENEX0RNQV9MQVlFUl9DT05UX1VQREFURQkJKDB4MDA4KQorLyog Yml0IDIgKyBiaXQgMyAqLworI2RlZmluZSBMQ0RfRE1BX0xBWUVSX0NPTlRfUElOR19QT05HX1VQ REFURQkoMHgwMEMpCisvKiBiaXQgNCBzZXQgRklGTyBhZGRyZXNzaW5nIG1vZGUsIGRlZmF1bHQg aXMgaW5jcmVtZW50IGFmdGVyIGVhY2ggYnVyc3QgKi8KKyNkZWZpbmUgTENEX0RNQV9MQVlFUl9G SUZPX0FEUl9NT0RFCQkoMHgwMTApCisvKiBiaXQgNTo5IGRlZmF1bHQgYXhpIGJ1cnN0IGlzIDEg Ki8KKyNkZWZpbmUgTENEX0RNQV9MQVlFUl9BWElfQlVSU1RfMQkJKDB4MDIwKQorI2RlZmluZSBM Q0RfRE1BX0xBWUVSX0FYSV9CVVJTVF8yCQkoMHgwNDApCisjZGVmaW5lIExDRF9ETUFfTEFZRVJf QVhJX0JVUlNUXzMJCSgweDA2MCkKKyNkZWZpbmUgTENEX0RNQV9MQVlFUl9BWElfQlVSU1RfNAkJ KDB4MDgwKQorI2RlZmluZSBMQ0RfRE1BX0xBWUVSX0FYSV9CVVJTVF81CQkoMHgwQTApCisjZGVm aW5lIExDRF9ETUFfTEFZRVJfQVhJX0JVUlNUXzYJCSgweDBDMCkKKyNkZWZpbmUgTENEX0RNQV9M QVlFUl9BWElfQlVSU1RfNwkJKDB4MEUwKQorI2RlZmluZSBMQ0RfRE1BX0xBWUVSX0FYSV9CVVJT VF84CQkoMHgxMDApCisjZGVmaW5lIExDRF9ETUFfTEFZRVJfQVhJX0JVUlNUXzkJCSgweDEyMCkK KyNkZWZpbmUgTENEX0RNQV9MQVlFUl9BWElfQlVSU1RfMTAJCSgweDE0MCkKKyNkZWZpbmUgTENE X0RNQV9MQVlFUl9BWElfQlVSU1RfMTEJCSgweDE2MCkKKyNkZWZpbmUgTENEX0RNQV9MQVlFUl9B WElfQlVSU1RfMTIJCSgweDE4MCkKKyNkZWZpbmUgTENEX0RNQV9MQVlFUl9BWElfQlVSU1RfMTMJ CSgweDFBMCkKKyNkZWZpbmUgTENEX0RNQV9MQVlFUl9BWElfQlVSU1RfMTQJCSgweDFDMCkKKyNk ZWZpbmUgTENEX0RNQV9MQVlFUl9BWElfQlVSU1RfMTUJCSgweDFFMCkKKyNkZWZpbmUgTENEX0RN QV9MQVlFUl9BWElfQlVSU1RfMTYJCSgweDIwMCkKKy8qIGJpdCAxMCAqLworI2RlZmluZSBMQ0Rf RE1BX0xBWUVSX1ZfU1RSSURFX0VOCQkoMHg0MDApCisKKy8qICoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisg KgkJCUxDRCBjb250cm9sbGVyIGNvbnRyb2wgcmVnaXN0ZXIgZGVmaW5lcworICoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKKyAqLworLyogLS0tIGJpdCAwICovCisjZGVmaW5lIExDRF9DVFJMX1BST0dSRVNT SVZFCQkoMHgwMCkJLyogZGVmYXVsdCAqLworI2RlZmluZSBMQ0RfQ1RSTF9JTlRFUkxBQ0VECQko MHgwMSkKKy8qIC0tLSBiaXQgMSAqLworI2RlZmluZSBMQ0RfQ1RSTF9FTkFCTEUJCQkoMHgwMikJ LyogZW5hYmxlIGNvbnJ0b2xsZXIgKi8KKy8qIC0tLSBiaXRzIDIsMyw0LDUgKi8KKyNkZWZpbmUg TENEX0NUUkxfVkwxX0VOQUJMRQkJKDB4MDQpCS8qIGVuYWJsZSB2aWRlbyBsYXllciAxICovCisj ZGVmaW5lIExDRF9DVFJMX1ZMMl9FTkFCTEUJCSgweDA4KQkvKiBlbmFibGUgIHZpZGVvIGxheWVy IDIgKi8KKyNkZWZpbmUgTENEX0NUUkxfR0wxX0VOQUJMRQkJKDB4MTApCS8qIGVuYWJsZSAgZ3Jh cGhpY3MgbGF5ZXIgMSAqLworI2RlZmluZSBMQ0RfQ1RSTF9HTDJfRU5BQkxFCQkoMHgyMCkJLyog ZW5hYmxlICBncmFwaGljcyBsYXllciAyICovCisvKiAtLS0gYml0cyA2OjcgKi8KKyNkZWZpbmUg TENEX0NUUkxfQUxQSEFfQkxFTkRfVkwxCSgweDAwKQkvKiB2aWRlbyBsYXllciAxIC0gZGVmYXVs dCAqLworI2RlZmluZSBMQ0RfQ1RSTF9BTFBIQV9CTEVORF9WTDIJKDB4NDApCS8qIHZpZGVvIGxh eWVyIDIgKi8KKyNkZWZpbmUgTENEX0NUUkxfQUxQSEFfQkxFTkRfR0wxCSgweDgwKQkvKiBncmFw aGljcyBsYXllciAxICovCisjZGVmaW5lIExDRF9DVFJMX0FMUEhBX0JMRU5EX0dMMgkoMHhDMCkJ LyogZ3JhcGhpY3MgbGF5ZXIgMiAqLworLyogLS0tIGJpdHMgODo5ICovCisjZGVmaW5lIExDRF9D VFJMX0FMUEhBX1RPUF9WTDEJCSgweDAwMCkJLyogdmlkZW8gbGF5ZXIgMSAtIGRlZmF1bHQgKi8K KyNkZWZpbmUgTENEX0NUUkxfQUxQSEFfVE9QX1ZMMgkJKDB4MTAwKQkvKiB2aWRlbyBsYXllciAy ICovCisjZGVmaW5lIExDRF9DVFJMX0FMUEhBX1RPUF9HTDEJCSgweDIwMCkJLyogZ3JhcGhpY3Mg bGF5ZXIgMSAqLworI2RlZmluZSBMQ0RfQ1RSTF9BTFBIQV9UT1BfR0wyCQkoMHgzMDApCS8qIGdy YXBoaWNzIGxheWVyIDIgKi8KKy8qIC0tLSBiaXRzIDEwOjExICovCisjZGVmaW5lIExDRF9DVFJM X0FMUEhBX01JRERMRV9WTDEJKDB4MDAwKQkvKiB2aWRlbyBsYXllciAxIC0gZGVmYXVsdCAqLwor I2RlZmluZSBMQ0RfQ1RSTF9BTFBIQV9NSURETEVfVkwyCSgweDQwMCkJLyogdmlkZW8gbGF5ZXIg MiAqLworI2RlZmluZSBMQ0RfQ1RSTF9BTFBIQV9NSURETEVfR0wxCSgweDgwMCkJLyogZ3JhcGhp Y3MgbGF5ZXIgMSAqLworI2RlZmluZSBMQ0RfQ1RSTF9BTFBIQV9NSURETEVfR0wyCSgweEMwMCkJ LyogZ3JhcGhpY3MgbGF5ZXIgMiAqLworLyogLS0tIGJpdHMgMTI6MTMgKi8KKyNkZWZpbmUgTENE X0NUUkxfQUxQSEFfQk9UVE9NX1ZMMQkoMHgwMDAwKQkvKiB2aWRlbyBsYXllciAxICovCisjZGVm aW5lIExDRF9DVFJMX0FMUEhBX0JPVFRPTV9WTDIJKDB4MTAwMCkJLyogdmlkZW8gbGF5ZXIgMiAq LworI2RlZmluZSBMQ0RfQ1RSTF9BTFBIQV9CT1RUT01fR0wxCSgweDIwMDApCS8qIGdyYXBoaWNz IGxheWVyIDEgKi8KKyNkZWZpbmUgTENEX0NUUkxfQUxQSEFfQk9UVE9NX0dMMgkoMHgzMDAwKQkv KiBncmFwaGljcyBsYXllciAyICovCisvKiAtLS0gYml0IDE0ICovCisjZGVmaW5lIExDRF9DVFJM X1RJTV9HRU5fRU5BQkxFCQkoMHg0MDAwKQkvKiB0aW1pbmcgZ2VuZXJhdG9yICovCisvKiAtLS0g Yml0IDE1ICovCisjZGVmaW5lIExDRF9DVFJMX0RJU1BMQVlfTU9ERV9PTkVfU0hPVAkoMHg4MDAw KQkvKiBkZWZhdWx0IGNvbnRpbnVvdXMgKi8KKy8qIC0tLSBiaXRzIDE2LCAxNywgMTggKi8KKyNk ZWZpbmUgTENEX0NUUkxfUFdNMF9FTgkJKDB4MTAwMDApCS8qIGVuYWJsZSBQV00gMCAqLworI2Rl ZmluZSBMQ0RfQ1RSTF9QV00xX0VOCQkoMHgyMDAwMCkJLyogZW5hYmxlIFBXTSAxICovCisjZGVm aW5lIExDRF9DVFJMX1BXTTJfRU4JCSgweDQwMDAwKQkvKiBlbmFibGUgUFdNIDIgKi8KKy8qIC0t LSBiaXRzIDE5OjIwICovCisjZGVmaW5lIExDRF9DVFJMX09VVFBVVF9ESVNBQkxFRAkoMHgwMDAw MDApCS8qIG91dHB1dCBkaXNhYmxlZCAqLworI2RlZmluZSBMQ0RfQ1RSTF9PVVRQVVRfRU5BQkxF RAkJKDB4MDgwMDAwKQorLyogLS0tIGJpdCAyMSAqLworI2RlZmluZSBMQ0RfQ1RSTF9TSEFSUF9U RlQJCSgweDIwMDAwMCkKKy8qID0gYml0IDIxIFZTWU5DIEJBQ0sgUE9SQ0ggTEVWRUwgKi8KKyNk ZWZpbmUgTENEX0NUUkxfQlBPUkNIX0VOQUJMRQkJKDB4MDAyMDAwMDApCisvKiA9IGJpdCAyMiBW U1lOQyBGUk9OVCBQT1JDSCBMRVZFTCAqLworI2RlZmluZSBMQ0RfQ1RSTF9GUE9SQ0hfRU5BQkxF CQkoMHgwMDQwMDAwMCkKKy8qID0gYml0IDI4IGVuYWJsZSBwaXBlbGluZWQgKG91dHN0YW5kaW5n KSBETUEgcmVhZHMgKi8KKyNkZWZpbmUgTENEX0NUUkxfUElQRUxJTkVfRE1BCQkoMHgxMDAwMDAw MCkKKworLyogTENEIENvbnRyb2wgcmVnaXN0ZXIgYml0IGZpZWxkcyAqLworCisjZGVmaW5lIEVJ R0hUX0JJVFMJCQkgOAorI2RlZmluZSBTSVhURUVOX0JJVFMJCQkgOAorI2RlZmluZSBUV0VOVFlf Rk9VUl9CSVRTCQkgOAorI2RlZmluZSBUSElSVF9UV09fQklUUwkJCSA4CisKKyNkZWZpbmUgRU5B QkxFCQkJCSAxCisvKkxDRF9WU1RBVFVTX0NPTVBBUkUgVmVydGNhbCBpbnRlcnZhbCBpbiB3aGlj aCB0byBnZW5lcmF0ZSB2ZXJ0Y2FsCisgKiBpbnRlcnZhbCBpbnRlcnJ1cHQKKyAqLworI2RlZmlu ZSBMQ0RfVlNUQVRVU19WRVJUSUNBTF9TVEFUVVNfTUFTSwkgMHg2MAkvKiBCSVRTIDEzIGFuZCAx NCAqLworI2RlZmluZSBMQ0RfVlNUQVRVU19DT01QQVJFX1ZTWU5DCQkgMHgwMAorI2RlZmluZSBM Q0RfVlNUQVRVU19DT01QQVJFX0JBQ0tQT1JDSAkJIDB4MDEKKyNkZWZpbmUgTENEX1ZTVEFUVVNf Q09NUEFSRV9BQ1RJVkUJCSAweDEwCisjZGVmaW5lIExDRF9WU1RBVFVTX0NPTVBBUkVfRlJPTlRf UE9SQ0gJCSAweDExCisKKy8qaW50ZXJydXB0IGJpdHMgKi8KKyNkZWZpbmUgTENEX0lOVF9WRVJU X0NPTVAJCQkgKDEgPDwgMikKKyNkZWZpbmUgTENEX0lOVF9MSU5FX0NNUAkJCSAoMSA8PCAxKQor I2RlZmluZSBMQ0RfSU5UX0VPRgkJCQkgKDEgPDwgMCkKKworI2VuZGlmIC8qIF9fS01CX1JFR1Nf SF9fICovCi0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==