From: Juergen Gross Subject: [PATCH 1/8] xen: add some xen headers Date: Wed, 29 Nov 2017 14:46:43 +0100 Message-ID: <20171129134650.20102-2-jgross@suse.com> References: <20171129134650.20102-1-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171129134650.20102-1-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: grub-devel@gnu.org Cc: Juergen Gross , phcoder@gmail.com, daniel.kiper@oracle.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org SW4gb3JkZXIgdG8gc3VwcG9ydCBncnViMiBpbiBYZW4gUFZIIGVudmlyb25tZW50IHNvbWUgYWRk aXRpb25hbCBYZW4KaGVhZGVycyBhcmUgbmVlZGVkLiBBZGQgdGhlbS4KClNpZ25lZC1vZmYtYnk6 IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KLS0tCiBpbmNsdWRlL3hlbi9odm0vaHZt X29wLmggICAgIHwgMjk2ICsrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUveGVuL2h2bS9wYXJh bXMuaCAgICAgfCAyODQgKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL3hlbi9odm0vc3RhcnRf aW5mby5oIHwgIDk4ICsrKysrKysKIGluY2x1ZGUveGVuL21lbW9yeS5oICAgICAgICAgfCA2NjUg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS94ZW4v cGh5c2Rldi5oICAgICAgICB8IDM4NyArKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRl L3hlbi90cmFjZS5oICAgICAgICAgIHwgMzM5ICsrKysrKysrKysrKysrKysrKysrKysKIGluY2x1 ZGUveGVuL3hlbi5oICAgICAgICAgICAgfCAxMDQgKysrKystLQogNyBmaWxlcyBjaGFuZ2VkLCAy MTQyIGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGlu Y2x1ZGUveGVuL2h2bS9odm1fb3AuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL2h2 bS9wYXJhbXMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL2h2bS9zdGFydF9pbmZv LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi9tZW1vcnkuaAogY3JlYXRlIG1vZGUg MTAwNjQ0IGluY2x1ZGUveGVuL3BoeXNkZXYuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUv eGVuL3RyYWNlLmgKCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9odm0vaHZtX29wLmggYi9pbmNs dWRlL3hlbi9odm0vaHZtX29wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw Li4wYmRhZmRmNTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi9odm0vaHZtX29wLmgK QEAgLTAsMCArMSwyOTYgQEAKKy8qCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBm cmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlz IHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdh cmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGlu Y2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBt b2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAq IHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdo b20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhl IGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwg Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBU SEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkg S0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU TyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBU SEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xB SU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04g T0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0Yg T1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisg KiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA3LCBL ZWlyIEZyYXNlcgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX0hWTV9IVk1fT1BfSF9fCisj ZGVmaW5lIF9fWEVOX1BVQkxJQ19IVk1fSFZNX09QX0hfXworCisjaW5jbHVkZSAiLi4veGVuLmgi CisjaW5jbHVkZSAiLi4vdHJhY2UuaCIKKyNpbmNsdWRlICIuLi9ldmVudF9jaGFubmVsLmgiCisK Ky8qIEdldC9zZXQgc3ViY29tbWFuZHM6IGV4dHJhIGFyZ3VtZW50ID09IHBvaW50ZXIgdG8geGVu X2h2bV9wYXJhbSBzdHJ1Y3QuICovCisjZGVmaW5lIEhWTU9QX3NldF9wYXJhbSAgICAgICAgICAg MAorI2RlZmluZSBIVk1PUF9nZXRfcGFyYW0gICAgICAgICAgIDEKK3N0cnVjdCB4ZW5faHZtX3Bh cmFtIHsKKyAgICBkb21pZF90ICBkb21pZDsgICAgLyogSU4gKi8KKyAgICB1aW50MzJfdCBpbmRl eDsgICAgLyogSU4gKi8KKyAgICB1aW50NjRfdCB2YWx1ZTsgICAgLyogSU4vT1VUICovCit9Owor dHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9wYXJhbSB4ZW5faHZtX3BhcmFtX3Q7CitERUZJTkVfWEVO X0dVRVNUX0hBTkRMRSh4ZW5faHZtX3BhcmFtX3QpOworCisjaWYgX19YRU5fSU5URVJGQUNFX1ZF UlNJT05fXyA8IDB4MDAwNDA5MDAKKworLyogU2V0IHRoZSBsb2dpY2FsIGxldmVsIG9mIG9uZSBv ZiBhIGRvbWFpbidzIFBDSSBJTlR4IHdpcmVzLiAqLworI2RlZmluZSBIVk1PUF9zZXRfcGNpX2lu dHhfbGV2ZWwgIDIKK3N0cnVjdCB4ZW5faHZtX3NldF9wY2lfaW50eF9sZXZlbCB7CisgICAgLyog RG9tYWluIHRvIGJlIHVwZGF0ZWQuICovCisgICAgZG9taWRfdCAgZG9taWQ7CisgICAgLyogUENJ IElOVHggaWRlbnRpZmljYXRpb24gaW4gUENJIHRvcG9sb2d5IChkb21haW46YnVzOmRldmljZTpp bnR4KS4gKi8KKyAgICB1aW50OF90ICBkb21haW4sIGJ1cywgZGV2aWNlLCBpbnR4OworICAgIC8q IEFzc2VydGlvbiBsZXZlbCAoMCA9IHVuYXNzZXJ0ZWQsIDEgPSBhc3NlcnRlZCkuICovCisgICAg dWludDhfdCAgbGV2ZWw7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2ludHhf bGV2ZWwgeGVuX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWxfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFO RExFKHhlbl9odm1fc2V0X3BjaV9pbnR4X2xldmVsX3QpOworCisvKiBTZXQgdGhlIGxvZ2ljYWwg bGV2ZWwgb2Ygb25lIG9mIGEgZG9tYWluJ3MgSVNBIElSUSB3aXJlcy4gKi8KKyNkZWZpbmUgSFZN T1Bfc2V0X2lzYV9pcnFfbGV2ZWwgICAzCitzdHJ1Y3QgeGVuX2h2bV9zZXRfaXNhX2lycV9sZXZl bCB7CisgICAgLyogRG9tYWluIHRvIGJlIHVwZGF0ZWQuICovCisgICAgZG9taWRfdCAgZG9taWQ7 CisgICAgLyogSVNBIGRldmljZSBpZGVudGlmaWNhdGlvbiwgYnkgSVNBIElSUSAoMC0xNSkuICov CisgICAgdWludDhfdCAgaXNhX2lycTsKKyAgICAvKiBBc3NlcnRpb24gbGV2ZWwgKDAgPSB1bmFz c2VydGVkLCAxID0gYXNzZXJ0ZWQpLiAqLworICAgIHVpbnQ4X3QgIGxldmVsOworfTsKK3R5cGVk ZWYgc3RydWN0IHhlbl9odm1fc2V0X2lzYV9pcnFfbGV2ZWwgeGVuX2h2bV9zZXRfaXNhX2lycV9s ZXZlbF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9zZXRfaXNhX2lycV9sZXZl bF90KTsKKworI2RlZmluZSBIVk1PUF9zZXRfcGNpX2xpbmtfcm91dGUgIDQKK3N0cnVjdCB4ZW5f aHZtX3NldF9wY2lfbGlua19yb3V0ZSB7CisgICAgLyogRG9tYWluIHRvIGJlIHVwZGF0ZWQuICov CisgICAgZG9taWRfdCAgZG9taWQ7CisgICAgLyogUENJIGxpbmsgaWRlbnRpZmllciAoMC0zKS4g Ki8KKyAgICB1aW50OF90ICBsaW5rOworICAgIC8qIElTQSBJUlEgKDEtMTUpLCBvciAwIChkaXNh YmxlIGxpbmspLiAqLworICAgIHVpbnQ4X3QgIGlzYV9pcnE7Cit9OwordHlwZWRlZiBzdHJ1Y3Qg eGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUgeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGVfdDsK K0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fc2V0X3BjaV9saW5rX3JvdXRlX3QpOwor CisjZW5kaWYgLyogX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwNDA5MDAgKi8KKwor LyogRmx1c2hlcyBhbGwgVkNQVSBUTEJzOiBAYXJnIG11c3QgYmUgTlVMTC4gKi8KKyNkZWZpbmUg SFZNT1BfZmx1c2hfdGxicyAgICAgICAgICA1CisKK3R5cGVkZWYgZW51bSB7CisgICAgSFZNTUVN X3JhbV9ydywgICAgICAgICAgICAgLyogTm9ybWFsIHJlYWQvd3JpdGUgZ3Vlc3QgUkFNICovCisg ICAgSFZNTUVNX3JhbV9ybywgICAgICAgICAgICAgLyogUmVhZC1vbmx5OyB3cml0ZXMgYXJlIGRp c2NhcmRlZCAqLworICAgIEhWTU1FTV9tbWlvX2RtLCAgICAgICAgICAgIC8qIFJlYWRzIGFuZCB3 cml0ZSBnbyB0byB0aGUgZGV2aWNlIG1vZGVsICovCisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJ T05fXyA8IDB4MDAwNDA3MDAKKyAgICBIVk1NRU1fbW1pb193cml0ZV9kbSwgICAgICAvKiBSZWFk LW9ubHk7IHdyaXRlcyBnbyB0byB0aGUgZGV2aWNlIG1vZGVsICovCisjZWxzZQorICAgIEhWTU1F TV91bnVzZWQsICAgICAgICAgICAgIC8qIFBsYWNlaG9sZGVyOyBzZXR0aW5nIG1lbW9yeSB0byB0 aGlzIHR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsIGZhaWwgZm9y IGNvZGUgYWZ0ZXIgNC43LjAgKi8KKyNlbmRpZgorICAgIEhWTU1FTV9pb3JlcV9zZXJ2ZXIgICAg ICAgIC8qIE1lbW9yeSB0eXBlIGNsYWltZWQgYnkgYW4gaW9yZXEgc2VydmVyOyB0eXBlCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlcyB0byB0aGlzIHZhbHVlIGFyZSBv bmx5IGFsbG93ZWQgYWZ0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbiBp b3JlcSBzZXJ2ZXIgaGFzIGNsYWltZWQgaXRzIG93bmVyc2hpcC4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPbmx5IHBhZ2VzIHdpdGggSFZNTUVNX3JhbV9ydyBhcmUgYWxsb3dl ZCB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZSB0byB0aGlzIHR5 cGU7IGNvbnZlcnNlbHksIHBhZ2VzIHdpdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0aGlzIHR5cGUgYXJlIG9ubHkgYWxsb3dlZCB0byBiZSBjaGFuZ2VkIGJhY2sKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBIVk1NRU1fcmFtX3J3LiAqLworfSBodm1t ZW1fdHlwZV90OworCisvKiBIaW50IGZyb20gUFYgZHJpdmVycyBmb3IgcGFnZXRhYmxlIGRlc3Ry dWN0aW9uLiAqLworI2RlZmluZSBIVk1PUF9wYWdldGFibGVfZHlpbmcgICAgICAgIDkKK3N0cnVj dCB4ZW5faHZtX3BhZ2V0YWJsZV9keWluZyB7CisgICAgLyogRG9tYWluIHdpdGggYSBwYWdldGFi bGUgYWJvdXQgdG8gYmUgZGVzdHJveWVkLiAqLworICAgIGRvbWlkX3QgIGRvbWlkOworICAgIHVp bnQxNl90IHBhZFszXTsgLyogYWxpZ24gbmV4dCBmaWVsZCBvbiA4LWJ5dGUgYm91bmRhcnkgKi8K KyAgICAvKiBndWVzdCBwaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSB0b3BsZXZlbCBwYWdldGFibGUg ZHlpbmcgKi8KKyAgICB1aW50NjRfdCBncGE7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9w YWdldGFibGVfZHlpbmcgeGVuX2h2bV9wYWdldGFibGVfZHlpbmdfdDsKK0RFRklORV9YRU5fR1VF U1RfSEFORExFKHhlbl9odm1fcGFnZXRhYmxlX2R5aW5nX3QpOworCisvKiBHZXQgdGhlIGN1cnJl bnQgWGVuIHRpbWUsIGluIG5hbm9zZWNvbmRzIHNpbmNlIHN5c3RlbSBib290LiAqLworI2RlZmlu ZSBIVk1PUF9nZXRfdGltZSAgICAgICAgICAgICAgMTAKK3N0cnVjdCB4ZW5faHZtX2dldF90aW1l IHsKKyAgICB1aW50NjRfdCBub3c7ICAgICAgLyogT1VUICovCit9OwordHlwZWRlZiBzdHJ1Y3Qg eGVuX2h2bV9nZXRfdGltZSB4ZW5faHZtX2dldF90aW1lX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hB TkRMRSh4ZW5faHZtX2dldF90aW1lX3QpOworCisjZGVmaW5lIEhWTU9QX3hlbnRyYWNlICAgICAg ICAgICAgICAxMQorc3RydWN0IHhlbl9odm1feGVudHJhY2UgeworICAgIHVpbnQxNl90IGV2ZW50 LCBleHRyYV9ieXRlczsKKyAgICB1aW50OF90IGV4dHJhW1RSQUNFX0VYVFJBX01BWCAqIHNpemVv Zih1aW50MzJfdCldOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9odm1feGVudHJhY2UgeGVuX2h2 bV94ZW50cmFjZV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV94ZW50cmFjZV90 KTsKKworLyogRm9sbG93aW5nIHRvb2xzLW9ubHkgaW50ZXJmYWNlcyBtYXkgY2hhbmdlIGluIGZ1 dHVyZS4gKi8KKyNpZiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykK KworLyogRGVwcmVjYXRlZCBieSBYRU5NRU1fYWNjZXNzX29wX3NldF9hY2Nlc3MgKi8KKyNkZWZp bmUgSFZNT1Bfc2V0X21lbV9hY2Nlc3MgICAgICAgIDEyCisKKy8qIERlcHJlY2F0ZWQgYnkgWEVO TUVNX2FjY2Vzc19vcF9nZXRfYWNjZXNzICovCisjZGVmaW5lIEhWTU9QX2dldF9tZW1fYWNjZXNz ICAgICAgICAxMworCisjZW5kaWYgLyogZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVO X1RPT0xTX18pICovCisKKyNkZWZpbmUgSFZNT1BfZ2V0X21lbV90eXBlICAgIDE1CisvKiBSZXR1 cm4gaHZtbWVtX3R5cGVfdCBmb3IgdGhlIHNwZWNpZmllZCBwZm4uICovCitzdHJ1Y3QgeGVuX2h2 bV9nZXRfbWVtX3R5cGUgeworICAgIC8qIERvbWFpbiB0byBiZSBxdWVyaWVkLiAqLworICAgIGRv bWlkX3QgZG9taWQ7CisgICAgLyogT1VUIHZhcmlhYmxlLiAqLworICAgIHVpbnQxNl90IG1lbV90 eXBlOworICAgIHVpbnQxNl90IHBhZFsyXTsgLyogYWxpZ24gbmV4dCBmaWVsZCBvbiA4LWJ5dGUg Ym91bmRhcnkgKi8KKyAgICAvKiBJTiB2YXJpYWJsZS4gKi8KKyAgICB1aW50NjRfdCBwZm47Cit9 OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9nZXRfbWVtX3R5cGUgeGVuX2h2bV9nZXRfbWVtX3R5 cGVfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fZ2V0X21lbV90eXBlX3QpOwor CisvKiBGb2xsb3dpbmcgdG9vbHMtb25seSBpbnRlcmZhY2VzIG1heSBjaGFuZ2UgaW4gZnV0dXJl LiAqLworI2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQorCisv KgorICogRGVmaW5pdGlvbnMgcmVsYXRpbmcgdG8gRE1PUF9jcmVhdGVfaW9yZXFfc2VydmVyLiAo RGVmaW5lZCBoZXJlIGZvcgorICogYmFja3dhcmRzIGNvbXBhdGliaWxpdHkpLgorICovCisKKyNk ZWZpbmUgSFZNX0lPUkVRU1JWX0JVRklPUkVRX09GRiAgICAwCisjZGVmaW5lIEhWTV9JT1JFUVNS Vl9CVUZJT1JFUV9MRUdBQ1kgMQorLyoKKyAqIFVzZSB0aGlzIHdoZW4gcmVhZF9wb2ludGVyIGdl dHMgdXBkYXRlZCBhdG9taWNhbGx5IGFuZAorICogdGhlIHBvaW50ZXIgcGFpciBnZXRzIHJlYWQg YXRvbWljYWxseToKKyAqLworI2RlZmluZSBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfQVRPTUlDIDIK KworI2VuZGlmIC8qIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKSAq LworCisjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQorCisvKgor ICogSFZNT1Bfc2V0X2V2dGNobl91cGNhbGxfdmVjdG9yOiBTZXQgYSA8dmVjdG9yPiB0aGF0IHNo b3VsZCBiZSB1c2VkIGZvciBldmVudAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjaGFubmVsIHVwY2FsbHMgb24gdGhlIHNwZWNpZmllZCA8dmNwdT4uIElmIHNldCwKKyAqICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyB2ZWN0b3Igd2lsbCBiZSB1c2VkIGlu IHByZWZlcmVuY2UgdG8gdGhlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRv bWFpbiBnbG9iYWwgY2FsbGJhY2sgdmlhIChzZWUKKyAqICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSFZNX1BBUkFNX0NBTExCQUNLX0lSUSkuCisgKi8KKyNkZWZpbmUgSFZNT1Bfc2V0 X2V2dGNobl91cGNhbGxfdmVjdG9yIDIzCitzdHJ1Y3QgeGVuX2h2bV9ldnRjaG5fdXBjYWxsX3Zl Y3RvciB7CisgICAgdWludDMyX3QgdmNwdTsKKyAgICB1aW50OF90IHZlY3RvcjsKK307Cit0eXBl ZGVmIHN0cnVjdCB4ZW5faHZtX2V2dGNobl91cGNhbGxfdmVjdG9yIHhlbl9odm1fZXZ0Y2huX3Vw Y2FsbF92ZWN0b3JfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fZXZ0Y2huX3Vw Y2FsbF92ZWN0b3JfdCk7CisKKyNlbmRpZiAvKiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9feDg2XzY0X18pICovCisKKyNkZWZpbmUgSFZNT1BfZ3Vlc3RfcmVxdWVzdF92bV9ldmVudCAy NAorCisvKiBIVk1PUF9hbHRwMm06IHBlcmZvcm0gYWx0cDJtIHN0YXRlIG9wZXJhdGlvbnMgKi8K KyNkZWZpbmUgSFZNT1BfYWx0cDJtIDI1CisKKyNkZWZpbmUgSFZNT1BfQUxUUDJNX0lOVEVSRkFD RV9WRVJTSU9OIDB4MDAwMDAwMDEKKworc3RydWN0IHhlbl9odm1fYWx0cDJtX2RvbWFpbl9zdGF0 ZSB7CisgICAgLyogSU4gb3IgT1VUIHZhcmlhYmxlIG9uL29mZiAqLworICAgIHVpbnQ4X3Qgc3Rh dGU7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fZG9tYWluX3N0YXRlIHhlbl9o dm1fYWx0cDJtX2RvbWFpbl9zdGF0ZV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2 bV9hbHRwMm1fZG9tYWluX3N0YXRlX3QpOworCitzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fdmNwdV9l bmFibGVfbm90aWZ5IHsKKyAgICB1aW50MzJfdCB2Y3B1X2lkOworICAgIHVpbnQzMl90IHBhZDsK KyAgICAvKiAjVkUgaW5mbyBhcmVhIGdmbiAqLworICAgIHVpbnQ2NF90IGdmbjsKK307Cit0eXBl ZGVmIHN0cnVjdCB4ZW5faHZtX2FsdHAybV92Y3B1X2VuYWJsZV9ub3RpZnkgeGVuX2h2bV9hbHRw Mm1fdmNwdV9lbmFibGVfbm90aWZ5X3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZt X2FsdHAybV92Y3B1X2VuYWJsZV9ub3RpZnlfdCk7CisKK3N0cnVjdCB4ZW5faHZtX2FsdHAybV92 aWV3IHsKKyAgICAvKiBJTi9PVVQgdmFyaWFibGUgKi8KKyAgICB1aW50MTZfdCB2aWV3OworICAg IC8qIENyZWF0ZSB2aWV3IG9ubHk6IGRlZmF1bHQgYWNjZXNzIHR5cGUKKyAgICAgKiBOT1RFOiBj dXJyZW50bHkgaWdub3JlZCAqLworICAgIHVpbnQxNl90IGh2bW1lbV9kZWZhdWx0X2FjY2Vzczsg LyogeGVubWVtX2FjY2Vzc190ICovCit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1f dmlldyB4ZW5faHZtX2FsdHAybV92aWV3X3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5f aHZtX2FsdHAybV92aWV3X3QpOworCitzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fc2V0X21lbV9hY2Nl c3MgeworICAgIC8qIHZpZXcgKi8KKyAgICB1aW50MTZfdCB2aWV3OworICAgIC8qIE1lbW9yeSB0 eXBlICovCisgICAgdWludDE2X3QgaHZtbWVtX2FjY2VzczsgLyogeGVubWVtX2FjY2Vzc190ICov CisgICAgdWludDMyX3QgcGFkOworICAgIC8qIGdmbiAqLworICAgIHVpbnQ2NF90IGdmbjsKK307 Cit0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX2FsdHAybV9zZXRfbWVtX2FjY2VzcyB4ZW5faHZtX2Fs dHAybV9zZXRfbWVtX2FjY2Vzc190OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9h bHRwMm1fc2V0X21lbV9hY2Nlc3NfdCk7CisKK3N0cnVjdCB4ZW5faHZtX2FsdHAybV9jaGFuZ2Vf Z2ZuIHsKKyAgICAvKiB2aWV3ICovCisgICAgdWludDE2X3QgdmlldzsKKyAgICB1aW50MTZfdCBw YWQxOworICAgIHVpbnQzMl90IHBhZDI7CisgICAgLyogb2xkIGdmbiAqLworICAgIHVpbnQ2NF90 IG9sZF9nZm47CisgICAgLyogbmV3IGdmbiwgSU5WQUxJRF9HRk4gKH4wVUwpIG1lYW5zIHJldmVy dCAqLworICAgIHVpbnQ2NF90IG5ld19nZm47Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9h bHRwMm1fY2hhbmdlX2dmbiB4ZW5faHZtX2FsdHAybV9jaGFuZ2VfZ2ZuX3Q7CitERUZJTkVfWEVO X0dVRVNUX0hBTkRMRSh4ZW5faHZtX2FsdHAybV9jaGFuZ2VfZ2ZuX3QpOworCitzdHJ1Y3QgeGVu X2h2bV9hbHRwMm1fb3AgeworICAgIHVpbnQzMl90IHZlcnNpb247ICAgLyogSFZNT1BfQUxUUDJN X0lOVEVSRkFDRV9WRVJTSU9OICovCisgICAgdWludDMyX3QgY21kOworLyogR2V0L3NldCB0aGUg YWx0cDJtIHN0YXRlIGZvciBhIGRvbWFpbiAqLworI2RlZmluZSBIVk1PUF9hbHRwMm1fZ2V0X2Rv bWFpbl9zdGF0ZSAgICAgMQorI2RlZmluZSBIVk1PUF9hbHRwMm1fc2V0X2RvbWFpbl9zdGF0ZSAg ICAgMgorLyogU2V0IHRoZSBjdXJyZW50IFZDUFUgdG8gcmVjZWl2ZSBhbHRwMm0gZXZlbnQgbm90 aWZpY2F0aW9ucyAqLworI2RlZmluZSBIVk1PUF9hbHRwMm1fdmNwdV9lbmFibGVfbm90aWZ5ICAg MworLyogQ3JlYXRlIGEgbmV3IHZpZXcgKi8KKyNkZWZpbmUgSFZNT1BfYWx0cDJtX2NyZWF0ZV9w Mm0gICAgICAgICAgIDQKKy8qIERlc3Ryb3kgYSB2aWV3ICovCisjZGVmaW5lIEhWTU9QX2FsdHAy bV9kZXN0cm95X3AybSAgICAgICAgICA1CisvKiBTd2l0Y2ggdmlldyBmb3IgYW4gZW50aXJlIGRv bWFpbiAqLworI2RlZmluZSBIVk1PUF9hbHRwMm1fc3dpdGNoX3AybSAgICAgICAgICAgNgorLyog Tm90aWZ5IHRoYXQgYSBwYWdlIG9mIG1lbW9yeSBpcyB0byBoYXZlIHNwZWNpZmljIGFjY2VzcyB0 eXBlcyAqLworI2RlZmluZSBIVk1PUF9hbHRwMm1fc2V0X21lbV9hY2Nlc3MgICAgICAgNworLyog Q2hhbmdlIGEgcDJtIGVudHJ5IHRvIGhhdmUgYSBkaWZmZXJlbnQgZ2ZuLT5tZm4gbWFwcGluZyAq LworI2RlZmluZSBIVk1PUF9hbHRwMm1fY2hhbmdlX2dmbiAgICAgICAgICAgOAorICAgIGRvbWlk X3QgZG9tYWluOworICAgIHVpbnQxNl90IHBhZDE7CisgICAgdWludDMyX3QgcGFkMjsKKyAgICB1 bmlvbiB7CisgICAgICAgIHN0cnVjdCB4ZW5faHZtX2FsdHAybV9kb21haW5fc3RhdGUgICAgICAg ZG9tYWluX3N0YXRlOworICAgICAgICBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fdmNwdV9lbmFibGVf bm90aWZ5IGVuYWJsZV9ub3RpZnk7CisgICAgICAgIHN0cnVjdCB4ZW5faHZtX2FsdHAybV92aWV3 ICAgICAgICAgICAgICAgdmlldzsKKyAgICAgICAgc3RydWN0IHhlbl9odm1fYWx0cDJtX3NldF9t ZW1fYWNjZXNzICAgICBzZXRfbWVtX2FjY2VzczsKKyAgICAgICAgc3RydWN0IHhlbl9odm1fYWx0 cDJtX2NoYW5nZV9nZm4gICAgICAgICBjaGFuZ2VfZ2ZuOworICAgICAgICB1aW50OF90IHBhZFs2 NF07CisgICAgfSB1OworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9odm1fYWx0cDJtX29wIHhlbl9o dm1fYWx0cDJtX29wX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX2FsdHAybV9v cF90KTsKKworI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19IVk1fSFZNX09QX0hfXyAqLworCisvKgor ICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgor ICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9k ZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2h2bS9wYXJhbXMu aCBiL2luY2x1ZGUveGVuL2h2bS9wYXJhbXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAuLjJlYzJlN2M4MAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL2h2bS9w YXJhbXMuaApAQCAtMCwwICsxLDI4NCBAQAorLyoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAq IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhl ICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmlj dGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2Us IGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFu ZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNv bnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj dCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdo dCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4K KyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgor ICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ IE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5U IFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9S IEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFO IEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00s IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1Ig T1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMp IDIwMDcsIEtlaXIgRnJhc2VyCisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfSFZNX1BBUkFN U19IX18KKyNkZWZpbmUgX19YRU5fUFVCTElDX0hWTV9QQVJBTVNfSF9fCisKKyNpbmNsdWRlICJo dm1fb3AuaCIKKworLyoKKyAqIFBhcmFtZXRlciBzcGFjZSBmb3IgSFZNT1Bfe3NldCxnZXR9X3Bh cmFtLgorICovCisKKyNkZWZpbmUgSFZNX1BBUkFNX0NBTExCQUNLX0lSUSAwCisjZGVmaW5lIEhW TV9QQVJBTV9DQUxMQkFDS19JUlFfVFlQRV9NQVNLIHhlbl9ta191bGxvbmcoMHhGRjAwMDAwMDAw MDAwMDAwKQorLyoKKyAqIEhvdyBzaG91bGQgQ1BVMCBldmVudC1jaGFubmVsIG5vdGlmaWNhdGlv bnMgYmUgZGVsaXZlcmVkPworICoKKyAqIElmIHZhbCA9PSAwIHRoZW4gQ1BVMCBldmVudC1jaGFu bmVsIG5vdGlmaWNhdGlvbnMgYXJlIG5vdCBkZWxpdmVyZWQuCisgKiBJZiB2YWwgIT0gMCwgdmFs WzYzOjU2XSBlbmNvZGVzIHRoZSB0eXBlLCBhcyBmb2xsb3dzOgorICovCisKKyNkZWZpbmUgSFZN X1BBUkFNX0NBTExCQUNLX1RZUEVfR1NJICAgICAgMAorLyoKKyAqIHZhbFs1NTowXSBpcyBhIGRl bGl2ZXJ5IEdTSS4gIEdTSSAwIGNhbm5vdCBiZSB1c2VkLCBhcyBpdCBhbGlhc2VzIHZhbCA9PSAw LAorICogYW5kIGRpc2FibGVzIGFsbCBub3RpZmljYXRpb25zLgorICovCisKKyNkZWZpbmUgSFZN X1BBUkFNX0NBTExCQUNLX1RZUEVfUENJX0lOVFggMQorLyoKKyAqIHZhbFs1NTowXSBpcyBhIGRl bGl2ZXJ5IFBDSSBJTlR4IGxpbmU6CisgKiBEb21haW4gPSB2YWxbNDc6MzJdLCBCdXMgPSB2YWxb MzE6MTZdIERldkZuID0gdmFsWzE1OjhdLCBJbnRYID0gdmFsWzE6MF0KKyAqLworCisjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQorI2RlZmluZSBIVk1fUEFSQU1f Q0FMTEJBQ0tfVFlQRV9WRUNUT1IgICAyCisvKgorICogdmFsWzc6MF0gaXMgYSB2ZWN0b3IgbnVt YmVyLiAgQ2hlY2sgZm9yIFhFTkZFQVRfaHZtX2NhbGxiYWNrX3ZlY3RvciB0byBrbm93CisgKiBp ZiB0aGlzIGRlbGl2ZXJ5IG1ldGhvZCBpcyBhdmFpbGFibGUuCisgKi8KKyNlbGlmIGRlZmluZWQo X19hcm1fXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKKyNkZWZpbmUgSFZNX1BBUkFNX0NBTExC QUNLX1RZUEVfUFBJICAgICAgMgorLyoKKyAqIHZhbFs1NToxNl0gbmVlZHMgdG8gYmUgemVyby4K KyAqIHZhbFsxNTo4XSBpcyBpbnRlcnJ1cHQgZmxhZyBvZiB0aGUgUFBJIHVzZWQgYnkgZXZlbnQt Y2hhbm5lbDoKKyAqICBiaXQgODogdGhlIFBQSSBpcyBlZGdlKDEpIG9yIGxldmVsKDApIHRyaWdn ZXJlZAorICogIGJpdCA5OiB0aGUgUFBJIGlzIGFjdGl2ZSBsb3coMSkgb3IgaGlnaCgwKQorICog dmFsWzc6MF0gaXMgYSBQUEkgbnVtYmVyIHVzZWQgYnkgZXZlbnQtY2hhbm5lbC4KKyAqIFRoaXMg aXMgb25seSB1c2VkIGJ5IEFSTS9BUk02NCBhbmQgbWFza2luZy9lb2kgdGhlIGludGVycnVwdCBh c3NvY2lhdGVkIHRvCisgKiB0aGUgbm90aWZpY2F0aW9uIGlzIGhhbmRsZWQgYnkgdGhlIGludGVy cnVwdCBjb250cm9sbGVyLgorICovCisjZGVmaW5lIEhWTV9QQVJBTV9DQUxMQkFDS19UWVBFX1BQ SV9GTEFHX01BU0sgICAgICAweEZGMDAKKyNkZWZpbmUgSFZNX1BBUkFNX0NBTExCQUNLX1RZUEVf UFBJX0ZMQUdfTE9XX0xFVkVMIDIKKyNlbmRpZgorCisvKgorICogVGhlc2UgYXJlIG5vdCB1c2Vk IGJ5IFhlbi4gVGhleSBhcmUgaGVyZSBmb3IgY29udmVuaWVuY2Ugb2YgSFZNLWd1ZXN0CisgKiB4 ZW5idXMgaW1wbGVtZW50YXRpb25zLgorICovCisjZGVmaW5lIEhWTV9QQVJBTV9TVE9SRV9QRk4g ICAgMQorI2RlZmluZSBIVk1fUEFSQU1fU1RPUkVfRVZUQ0hOIDIKKworI2RlZmluZSBIVk1fUEFS QU1fUEFFX0VOQUJMRUQgIDQKKworI2RlZmluZSBIVk1fUEFSQU1fSU9SRVFfUEZOICAgIDUKKwor I2RlZmluZSBIVk1fUEFSQU1fQlVGSU9SRVFfUEZOIDYKKyNkZWZpbmUgSFZNX1BBUkFNX0JVRklP UkVRX0VWVENITiAyNgorCisjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKQorCisvKgorICogVmlyaWRpYW4gZW5saWdodGVubWVudHMKKyAqCisgKiAoU2VlIGh0dHA6 Ly9kb3dubG9hZC5taWNyb3NvZnQuY29tL2Rvd25sb2FkL0EvQi80L0FCNDNBMzRFLUJERDAtNEZB Ni1CREVGLTc5RUVGMTZFODgwQi9IeXBlcnZpc29yJTIwVG9wJTIwTGV2ZWwlMjBGdW5jdGlvbmFs JTIwU3BlY2lmaWNhdGlvbiUyMHY0LjAuZG9jeCkKKyAqCisgKiBUbyBleHBvc2UgdmlyaWRpYW4g ZW5saWdodGVubWVudHMgdG8gdGhlIGd1ZXN0IHNldCB0aGlzIHBhcmFtZXRlcgorICogdG8gdGhl IGRlc2lyZWQgZmVhdHVyZSBtYXNrLiBUaGUgYmFzZSBmZWF0dXJlIHNldCBtdXN0IGJlIHByZXNl bnQKKyAqIGluIGFueSB2YWxpZCBmZWF0dXJlIG1hc2suCisgKi8KKyNkZWZpbmUgSFZNX1BBUkFN X1ZJUklESUFOICAgICA5CisKKy8qIEJhc2UrRnJlcSB2aXJpZGlhbiBmZWF0dXJlIHNldHM6Cisg KgorICogLSBIeXBlcmNhbGwgTVNScyAoSFZfWDY0X01TUl9HVUVTVF9PU19JRCBhbmQgSFZfWDY0 X01TUl9IWVBFUkNBTEwpCisgKiAtIEFQSUMgYWNjZXNzIE1TUnMgKEhWX1g2NF9NU1JfRU9JLCBI Vl9YNjRfTVNSX0lDUiBhbmQgSFZfWDY0X01TUl9UUFIpCisgKiAtIFZpcnR1YWwgUHJvY2Vzc29y IGluZGV4IE1TUiAoSFZfWDY0X01TUl9WUF9JTkRFWCkKKyAqIC0gVGltZXIgZnJlcXVlbmN5IE1T UnMgKEhWX1g2NF9NU1JfVFNDX0ZSRVFVRU5DWSBhbmQKKyAqICAgSFZfWDY0X01TUl9BUElDX0ZS RVFVRU5DWSkKKyAqLworI2RlZmluZSBfSFZNUFZfYmFzZV9mcmVxIDAKKyNkZWZpbmUgSFZNUFZf YmFzZV9mcmVxICAoMSA8PCBfSFZNUFZfYmFzZV9mcmVxKQorCisvKiBGZWF0dXJlIHNldCBtb2Rp ZmljYXRpb25zICovCisKKy8qIERpc2FibGUgdGltZXIgZnJlcXVlbmN5IE1TUnMgKEhWX1g2NF9N U1JfVFNDX0ZSRVFVRU5DWSBhbmQKKyAqIEhWX1g2NF9NU1JfQVBJQ19GUkVRVUVOQ1kpLgorICog VGhpcyBtb2RpZmljYXRpb24gcmVzdG9yZXMgdGhlIHZpcmlkaWFuIGZlYXR1cmUgc2V0IHRvIHRo ZQorICogb3JpZ2luYWwgJ2Jhc2UnIHNldCBleHBvc2VkIGluIHJlbGVhc2VzIHByaW9yIHRvIFhl biA0LjQuCisgKi8KKyNkZWZpbmUgX0hWTVBWX25vX2ZyZXEgMQorI2RlZmluZSBIVk1QVl9ub19m cmVxICAoMSA8PCBfSFZNUFZfbm9fZnJlcSkKKworLyogRW5hYmxlIFBhcnRpdGlvbiBUaW1lIFJl ZmVyZW5jZSBDb3VudGVyIChIVl9YNjRfTVNSX1RJTUVfUkVGX0NPVU5UKSAqLworI2RlZmluZSBf SFZNUFZfdGltZV9yZWZfY291bnQgMgorI2RlZmluZSBIVk1QVl90aW1lX3JlZl9jb3VudCAgKDEg PDwgX0hWTVBWX3RpbWVfcmVmX2NvdW50KQorCisvKiBFbmFibGUgUmVmZXJlbmNlIFRTQyBQYWdl IChIVl9YNjRfTVNSX1JFRkVSRU5DRV9UU0MpICovCisjZGVmaW5lIF9IVk1QVl9yZWZlcmVuY2Vf dHNjIDMKKyNkZWZpbmUgSFZNUFZfcmVmZXJlbmNlX3RzYyAgKDEgPDwgX0hWTVBWX3JlZmVyZW5j ZV90c2MpCisKKy8qIFVzZSBIeXBlcmNhbGwgZm9yIHJlbW90ZSBUTEIgZmx1c2ggKi8KKyNkZWZp bmUgX0hWTVBWX2hjYWxsX3JlbW90ZV90bGJfZmx1c2ggNAorI2RlZmluZSBIVk1QVl9oY2FsbF9y ZW1vdGVfdGxiX2ZsdXNoICgxIDw8IF9IVk1QVl9oY2FsbF9yZW1vdGVfdGxiX2ZsdXNoKQorCisv KiBVc2UgQVBJQyBhc3Npc3QgKi8KKyNkZWZpbmUgX0hWTVBWX2FwaWNfYXNzaXN0IDUKKyNkZWZp bmUgSFZNUFZfYXBpY19hc3Npc3QgKDEgPDwgX0hWTVBWX2FwaWNfYXNzaXN0KQorCisvKiBFbmFi bGUgY3Jhc2ggTVNScyAqLworI2RlZmluZSBfSFZNUFZfY3Jhc2hfY3RsIDYKKyNkZWZpbmUgSFZN UFZfY3Jhc2hfY3RsICgxIDw8IF9IVk1QVl9jcmFzaF9jdGwpCisKKyNkZWZpbmUgSFZNUFZfZmVh dHVyZV9tYXNrIFwKKyAgICAgICAgKEhWTVBWX2Jhc2VfZnJlcSB8IFwKKyAgICAgICAgIEhWTVBW X25vX2ZyZXEgfCBcCisgICAgICAgICBIVk1QVl90aW1lX3JlZl9jb3VudCB8IFwKKyAgICAgICAg IEhWTVBWX3JlZmVyZW5jZV90c2MgfCBcCisgICAgICAgICBIVk1QVl9oY2FsbF9yZW1vdGVfdGxi X2ZsdXNoIHwgXAorICAgICAgICAgSFZNUFZfYXBpY19hc3Npc3QgfCBcCisgICAgICAgICBIVk1Q Vl9jcmFzaF9jdGwpCisKKyNlbmRpZgorCisvKgorICogU2V0IG1vZGUgZm9yIHZpcnR1YWwgdGlt ZXJzIChjdXJyZW50bHkgeDg2IG9ubHkpOgorICogIGRlbGF5X2Zvcl9taXNzZWRfdGlja3MgKGRl ZmF1bHQpOgorICogICBEbyBub3QgYWR2YW5jZSBhIHZjcHUncyB0aW1lIGJleW9uZCB0aGUgY29y cmVjdCBkZWxpdmVyeSB0aW1lIGZvcgorICogICBpbnRlcnJ1cHRzIHRoYXQgaGF2ZSBiZWVuIG1p c3NlZCBkdWUgdG8gcHJlZW1wdGlvbi4gRGVsaXZlciBtaXNzZWQKKyAqICAgaW50ZXJydXB0cyB3 aGVuIHRoZSB2Y3B1IGlzIHJlc2NoZWR1bGVkIGFuZCBhZHZhbmNlIHRoZSB2Y3B1J3MgdmlydHVh bAorICogICB0aW1lIHN0ZXB3aXNlIGZvciBlYWNoIG9uZS4KKyAqICBub19kZWxheV9mb3JfbWlz c2VkX3RpY2tzOgorICogICBBcyBhYm92ZSwgbWlzc2VkIGludGVycnVwdHMgYXJlIGRlbGl2ZXJl ZCwgYnV0IGd1ZXN0IHRpbWUgYWx3YXlzIHRyYWNrcworICogICB3YWxsY2xvY2sgKGkuZS4sIHJl YWwpIHRpbWUgd2hpbGUgZG9pbmcgc28uCisgKiAgbm9fbWlzc2VkX3RpY2tzX3BlbmRpbmc6Cisg KiAgIE5vIG1pc3NlZCBpbnRlcnJ1cHRzIGFyZSBoZWxkIHBlbmRpbmcuIEluc3RlYWQsIHRvIGVu c3VyZSB0aWNrcyBhcmUKKyAqICAgZGVsaXZlcmVkIGF0IHNvbWUgbm9uLXplcm8gcmF0ZSwgaWYg d2UgZGV0ZWN0IG1pc3NlZCB0aWNrcyB0aGVuIHRoZQorICogICBpbnRlcm5hbCB0aWNrIGFsYXJt IGlzIG5vdCBkaXNhYmxlZCBpZiB0aGUgVkNQVSBpcyBwcmVlbXB0ZWQgZHVyaW5nIHRoZQorICog ICBuZXh0IHRpY2sgcGVyaW9kLgorICogIG9uZV9taXNzZWRfdGlja19wZW5kaW5nOgorICogICBN aXNzZWQgaW50ZXJydXB0cyBhcmUgY29sbGFwc2VkIHRvZ2V0aGVyIGFuZCBkZWxpdmVyZWQgYXMg b25lICdsYXRlIHRpY2snLgorICogICBHdWVzdCB0aW1lIGFsd2F5cyB0cmFja3Mgd2FsbGNsb2Nr IChpLmUuLCByZWFsKSB0aW1lLgorICovCisjZGVmaW5lIEhWTV9QQVJBTV9USU1FUl9NT0RFICAg MTAKKyNkZWZpbmUgSFZNUFRNX2RlbGF5X2Zvcl9taXNzZWRfdGlja3MgICAgMAorI2RlZmluZSBI Vk1QVE1fbm9fZGVsYXlfZm9yX21pc3NlZF90aWNrcyAxCisjZGVmaW5lIEhWTVBUTV9ub19taXNz ZWRfdGlja3NfcGVuZGluZyAgIDIKKyNkZWZpbmUgSFZNUFRNX29uZV9taXNzZWRfdGlja19wZW5k aW5nICAgMworCisvKiBCb29sZWFuOiBFbmFibGUgdmlydHVhbCBIUEVUIChoaWdoLXByZWNpc2lv biBldmVudCB0aW1lcik/ICh4ODYtb25seSkgKi8KKyNkZWZpbmUgSFZNX1BBUkFNX0hQRVRfRU5B QkxFRCAxMQorCisvKiBJZGVudGl0eS1tYXAgcGFnZSBkaXJlY3RvcnkgdXNlZCBieSBJbnRlbCBF UFQgd2hlbiBDUjAuUEc9MC4gKi8KKyNkZWZpbmUgSFZNX1BBUkFNX0lERU5UX1BUICAgICAxMgor CisvKiBEZXZpY2UgTW9kZWwgZG9tYWluLCBkZWZhdWx0cyB0byAwLiAqLworI2RlZmluZSBIVk1f UEFSQU1fRE1fRE9NQUlOICAgIDEzCisKKy8qIEFDUEkgUyBzdGF0ZTogY3VycmVudGx5IHN1cHBv cnQgUzAgYW5kIFMzIG9uIHg4Ni4gKi8KKyNkZWZpbmUgSFZNX1BBUkFNX0FDUElfU19TVEFURSAx NAorCisvKiBUU1MgdXNlZCBvbiBJbnRlbCB3aGVuIENSMC5QRT0wLiAqLworI2RlZmluZSBIVk1f UEFSQU1fVk04Nl9UU1MgICAgIDE1CisKKy8qIEJvb2xlYW46IEVuYWJsZSBhbGlnbmluZyBhbGwg cGVyaW9kaWMgdnB0cyB0byByZWR1Y2UgaW50ZXJydXB0cyAqLworI2RlZmluZSBIVk1fUEFSQU1f VlBUX0FMSUdOICAgIDE2CisKKy8qIENvbnNvbGUgZGVidWcgc2hhcmVkIG1lbW9yeSByaW5nIGFu ZCBldmVudCBjaGFubmVsICovCisjZGVmaW5lIEhWTV9QQVJBTV9DT05TT0xFX1BGTiAgICAxNwor I2RlZmluZSBIVk1fUEFSQU1fQ09OU09MRV9FVlRDSE4gMTgKKworLyoKKyAqIFNlbGVjdCBsb2Nh dGlvbiBvZiBBQ1BJIFBNMWEgYW5kIFRNUiBjb250cm9sIGJsb2Nrcy4gQ3VycmVudGx5IHR3byBs b2NhdGlvbnMKKyAqIGFyZSBzdXBwb3J0ZWQsIHNwZWNpZmllZCBieSB2ZXJzaW9uIDAgb3IgMSBp biB0aGlzIHBhcmFtZXRlcjoKKyAqICAgLSAwOiBkZWZhdWx0LCB1c2UgdGhlIG9sZCBhZGRyZXNz ZXMKKyAqICAgICAgICBQTTFBX0VWVCA9PSAweDFmNDA7IFBNMUFfQ05UID09IDB4MWY0NDsgUE1f VE1SID09IDB4MWY0OAorICogICAtIDE6IHVzZSB0aGUgbmV3IGRlZmF1bHQgcWVtdSBhZGRyZXNz ZXMKKyAqICAgICAgICBQTTFBX0VWVCA9PSAweGIwMDA7IFBNMUFfQ05UID09IDB4YjAwNDsgUE1f VE1SID09IDB4YjAwOAorICogWW91IGNhbiBmaW5kIHRoZXNlIGFkZHJlc3MgZGVmaW5pdGlvbnMg aW4gPGh2bS9pb3JlcS5oPgorICovCisjZGVmaW5lIEhWTV9QQVJBTV9BQ1BJX0lPUE9SVFNfTE9D QVRJT04gMTkKKworLyogRGVwcmVjYXRlZCAqLworI2RlZmluZSBIVk1fUEFSQU1fTUVNT1JZX0VW RU5UX0NSMCAgICAgICAgICAyMAorI2RlZmluZSBIVk1fUEFSQU1fTUVNT1JZX0VWRU5UX0NSMyAg ICAgICAgICAyMQorI2RlZmluZSBIVk1fUEFSQU1fTUVNT1JZX0VWRU5UX0NSNCAgICAgICAgICAy MgorI2RlZmluZSBIVk1fUEFSQU1fTUVNT1JZX0VWRU5UX0lOVDMgICAgICAgICAyMworI2RlZmlu ZSBIVk1fUEFSQU1fTUVNT1JZX0VWRU5UX1NJTkdMRV9TVEVQICAyNQorI2RlZmluZSBIVk1fUEFS QU1fTUVNT1JZX0VWRU5UX01TUiAgICAgICAgICAzMAorCisvKiBCb29sZWFuOiBFbmFibGUgbmVz dGVkaHZtIChodm0gb25seSkgKi8KKyNkZWZpbmUgSFZNX1BBUkFNX05FU1RFREhWTSAgICAyNAor CisvKiBQYXJhbXMgZm9yIHRoZSBtZW0gZXZlbnQgcmluZ3MgKi8KKyNkZWZpbmUgSFZNX1BBUkFN X1BBR0lOR19SSU5HX1BGTiAgIDI3CisjZGVmaW5lIEhWTV9QQVJBTV9NT05JVE9SX1JJTkdfUEZO ICAyOAorI2RlZmluZSBIVk1fUEFSQU1fU0hBUklOR19SSU5HX1BGTiAgMjkKKworLyogU0hVVERP V05fKiBhY3Rpb24gaW4gY2FzZSBvZiBhIHRyaXBsZSBmYXVsdCAqLworI2RlZmluZSBIVk1fUEFS QU1fVFJJUExFX0ZBVUxUX1JFQVNPTiAzMQorCisjZGVmaW5lIEhWTV9QQVJBTV9JT1JFUV9TRVJW RVJfUEZOIDMyCisjZGVmaW5lIEhWTV9QQVJBTV9OUl9JT1JFUV9TRVJWRVJfUEFHRVMgMzMKKwor LyogTG9jYXRpb24gb2YgdGhlIFZNIEdlbmVyYXRpb24gSUQgaW4gZ3Vlc3QgcGh5c2ljYWwgYWRk cmVzcyBzcGFjZS4gKi8KKyNkZWZpbmUgSFZNX1BBUkFNX1ZNX0dFTkVSQVRJT05fSURfQUREUiAz NAorCisvKgorICogU2V0IG1vZGUgZm9yIGFsdHAybToKKyAqICBkaXNhYmxlZDogZG9uJ3QgYWN0 aXZhdGUgYWx0cDJtIChkZWZhdWx0KQorICogIG1peGVkOiBhbGxvdyBhY2Nlc3MgdG8gYWxsIGFs dHAybSBvcHMgZm9yIGJvdGggaW4tZ3Vlc3QgYW5kIGV4dGVybmFsIHRvb2xzCisgKiAgZXh0ZXJu YWw6IGFsbG93IGFjY2VzcyB0byBleHRlcm5hbCBwcml2aWxlZ2VkIHRvb2xzIG9ubHkKKyAqICBs aW1pdGVkOiBndWVzdCBvbmx5IGhhcyBsaW1pdGVkIGFjY2VzcyAoaWUuIGNvbnRyb2wgVk1GVU5D IGFuZCAjVkUpCisgKi8KKyNkZWZpbmUgSFZNX1BBUkFNX0FMVFAyTSAgICAgICAzNQorI2RlZmlu ZSBYRU5fQUxUUDJNX2Rpc2FibGVkICAgICAgMAorI2RlZmluZSBYRU5fQUxUUDJNX21peGVkICAg ICAgICAgMQorI2RlZmluZSBYRU5fQUxUUDJNX2V4dGVybmFsICAgICAgMgorI2RlZmluZSBYRU5f QUxUUDJNX2xpbWl0ZWQgICAgICAgMworCisvKgorICogU2l6ZSBvZiB0aGUgeDg3IEZQVSBGSVAv RkRQIHJlZ2lzdGVycyB0aGF0IHRoZSBoeXBlcnZpc29yIG5lZWRzIHRvCisgKiBzYXZlL3Jlc3Rv cmUuICBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgYSBoYXJkd2FyZSBsaW1pdGF0aW9uIHRoYXQK KyAqIGRvZXMgbm90IGFsbG93IHRoZSBmdWxsIEZJUC9GRFAgYW5kIEZDUy9GRFMgdG8gYmUgcmVz dG9yZWQuCisgKgorICogVmFsaWQgdmFsdWVzIGFyZToKKyAqCisgKiA4OiBzYXZlL3Jlc3RvcmUg NjQtYml0IEZJUC9GRFAgYW5kIGNsZWFyIEZDUy9GRFMgKGRlZmF1bHQgaWYgQ1BVCisgKiAgICBo YXMgRlBDU0RTIGZlYXR1cmUpLgorICoKKyAqIDQ6IHNhdmUvcmVzdG9yZSAzMi1iaXQgRklQL0ZE UCwgRkNTL0ZEUywgYW5kIGNsZWFyIHVwcGVyIDMyLWJpdHMgb2YKKyAqICAgIEZJUC9GRFAuCisg KgorICogMDogYWxsb3cgaHlwZXJ2aXNvciB0byBjaG9vc2UgYmFzZWQgb24gdGhlIHZhbHVlIG9m IEZJUC9GRFAKKyAqICAgIChkZWZhdWx0IGlmIENQVSBkb2VzIG5vdCBoYXZlIEZQQ1NEUykuCisg KgorICogSWYgRlBDU0RTIChiaXQgMTMgaW4gQ1BVSUQgbGVhZiAweDcsIHN1YmxlYWYgMHgwKSBp cyBzZXQsIHRoZSBDUFUKKyAqIG5ldmVyIHNhdmVzIEZDUy9GRFMgYW5kIHRoaXMgcGFyYW1ldGVy IHNob3VsZCBiZSBsZWZ0IGF0IHRoZQorICogZGVmYXVsdCBvZiA4LgorICovCisjZGVmaW5lIEhW TV9QQVJBTV9YODdfRklQX1dJRFRIIDM2CisKKy8qCisgKiBUU1MgKGFuZCBpdHMgc2l6ZSkgdXNl ZCBvbiBJbnRlbCB3aGVuIENSMC5QRT0wLiBUaGUgYWRkcmVzcyBvY2N1cGllcworICogdGhlIGxv dyAzMiBiaXRzLCB3aGlsZSB0aGUgc2l6ZSBpcyBpbiB0aGUgaGlnaCAzMiBvbmVzLgorICovCisj ZGVmaW5lIEhWTV9QQVJBTV9WTTg2X1RTU19TSVpFRCAzNworCisvKiBFbmFibGUgTUNBIGNhcGFi aWxpdGllcy4gKi8KKyNkZWZpbmUgSFZNX1BBUkFNX01DQV9DQVAgMzgKKyNkZWZpbmUgWEVOX0hW TV9NQ0FfQ0FQX0xNQ0UgICAoeGVuX21rX3VsbG9uZygxKSA8PCAwKQorI2RlZmluZSBYRU5fSFZN X01DQV9DQVBfTUFTSyAgIFhFTl9IVk1fTUNBX0NBUF9MTUNFCisKKyNkZWZpbmUgSFZNX05SX1BB UkFNUyAzOQorCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0hWTV9QQVJBTVNfSF9fICovCmRpZmYg LS1naXQgYS9pbmNsdWRlL3hlbi9odm0vc3RhcnRfaW5mby5oIGIvaW5jbHVkZS94ZW4vaHZtL3N0 YXJ0X2luZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjY0ODQxNTk3 NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL2h2bS9zdGFydF9pbmZvLmgKQEAgLTAs MCArMSw5OCBAQAorLyoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdh cmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0 bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5n IHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwg bWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBj b3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUg U29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93 aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRo aXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMg b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZU V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF WFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICog QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFN QUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U UkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBD T05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJ TkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTYsIENpdHJpeCBT eXN0ZW1zLCBJbmMuCisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfQVJDSF9YODZfSFZNX1NU QVJUX0lORk9fSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19BUkNIX1g4Nl9IVk1fU1RBUlRfSU5G T19IX18KKworLyoKKyAqIFN0YXJ0IG9mIGRheSBzdHJ1Y3R1cmUgcGFzc2VkIHRvIFBWSCBndWVz dHMgYW5kIHRvIEhWTSBndWVzdHMgaW4gJWVieC4KKyAqCisgKiBOT1RFOiBub3RoaW5nIHdpbGwg YmUgbG9hZGVkIGF0IHBoeXNpY2FsIGFkZHJlc3MgMCwgc28gYSAwIHZhbHVlIGluIGFueQorICog b2YgdGhlIGFkZHJlc3MgZmllbGRzIHNob3VsZCBiZSB0cmVhdGVkIGFzIG5vdCBwcmVzZW50Lgor ICoKKyAqICAwICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCBtYWdpYyAgICAgICAgICB8IENv bnRhaW5zIHRoZSBtYWdpYyB2YWx1ZSBYRU5fSFZNX1NUQVJUX01BR0lDX1ZBTFVFCisgKiAgICB8 ICAgICAgICAgICAgICAgIHwgKCJ4RW4zIiB3aXRoIHRoZSAweDgwIGJpdCBvZiB0aGUgIkUiIHNl dCkuCisgKiAgNCArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgIHwgdmVyc2lvbiAgICAgICAgfCBW ZXJzaW9uIG9mIHRoaXMgc3RydWN0dXJlLiBDdXJyZW50IHZlcnNpb24gaXMgMC4gTmV3CisgKiAg ICB8ICAgICAgICAgICAgICAgIHwgdmVyc2lvbnMgYXJlIGd1YXJhbnRlZWQgdG8gYmUgYmFja3dh cmRzLWNvbXBhdGlibGUuCisgKiAgOCArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgIHwgZmxhZ3Mg ICAgICAgICAgfCBTSUZfeHh4IGZsYWdzLgorICogMTIgKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAg ICB8IG5yX21vZHVsZXMgICAgIHwgTnVtYmVyIG9mIG1vZHVsZXMgcGFzc2VkIHRvIHRoZSBrZXJu ZWwuCisgKiAxNiArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgIHwgbW9kbGlzdF9wYWRkciAgfCBQ aHlzaWNhbCBhZGRyZXNzIG9mIGFuIGFycmF5IG9mIG1vZHVsZXMKKyAqICAgIHwgICAgICAgICAg ICAgICAgfCAobGF5b3V0IG9mIHRoZSBzdHJ1Y3R1cmUgYmVsb3cpLgorICogMjQgKy0tLS0tLS0t LS0tLS0tLS0rCisgKiAgICB8IGNtZGxpbmVfcGFkZHIgIHwgUGh5c2ljYWwgYWRkcmVzcyBvZiB0 aGUgY29tbWFuZCBsaW5lLAorICogICAgfCAgICAgICAgICAgICAgICB8IGEgemVyby10ZXJtaW5h dGVkIEFTQ0lJIHN0cmluZy4KKyAqIDMyICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCByc2Rw X3BhZGRyICAgICB8IFBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIFJTRFAgQUNQSSBkYXRhIHN0cnVj dHVyZS4KKyAqIDQwICstLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIFRoZSBsYXlvdXQgb2YgZWFj aCBlbnRyeSBpbiB0aGUgbW9kdWxlIHN0cnVjdHVyZSBpcyB0aGUgZm9sbG93aW5nOgorICoKKyAq ICAwICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCBwYWRkciAgICAgICAgICB8IFBoeXNpY2Fs IGFkZHJlc3Mgb2YgdGhlIG1vZHVsZS4KKyAqICA4ICstLS0tLS0tLS0tLS0tLS0tKworICogICAg fCBzaXplICAgICAgICAgICB8IFNpemUgb2YgdGhlIG1vZHVsZSBpbiBieXRlcy4KKyAqIDE2ICst LS0tLS0tLS0tLS0tLS0tKworICogICAgfCBjbWRsaW5lX3BhZGRyICB8IFBoeXNpY2FsIGFkZHJl c3Mgb2YgdGhlIGNvbW1hbmQgbGluZSwKKyAqICAgIHwgICAgICAgICAgICAgICAgfCBhIHplcm8t dGVybWluYXRlZCBBU0NJSSBzdHJpbmcuCisgKiAyNCArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAg IHwgcmVzZXJ2ZWQgICAgICAgfAorICogMzIgKy0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogVGhl IGFkZHJlc3MgYW5kIHNpemVzIGFyZSBhbHdheXMgYSA2NGJpdCBsaXR0bGUgZW5kaWFuIHVuc2ln bmVkIGludGVnZXIuCisgKgorICogTkI6IFhlbiBvbiB4ODYgd2lsbCBhbHdheXMgdHJ5IHRvIHBs YWNlIGFsbCB0aGUgZGF0YSBiZWxvdyB0aGUgNEdpQgorICogYm91bmRhcnkuCisgKi8KKyNkZWZp bmUgWEVOX0hWTV9TVEFSVF9NQUdJQ19WQUxVRSAweDMzNmVjNTc4CisKKy8qCisgKiBDIHJlcHJl c2VudGF0aW9uIG9mIHRoZSB4ODYvSFZNIHN0YXJ0IGluZm8gbGF5b3V0LgorICoKKyAqIFRoZSBj YW5vbmljYWwgZGVmaW5pdGlvbiBvZiB0aGlzIGxheW91dCBpcyBhYm92ZSwgdGhpcyBpcyBqdXN0 IGEgd2F5IHRvCisgKiByZXByZXNlbnQgdGhlIGxheW91dCBkZXNjcmliZWQgdGhlcmUgdXNpbmcg QyB0eXBlcy4KKyAqLworc3RydWN0IGh2bV9zdGFydF9pbmZvIHsKKyAgICB1aW50MzJfdCBtYWdp YzsgICAgICAgICAgICAgLyogQ29udGFpbnMgdGhlIG1hZ2ljIHZhbHVlIDB4MzM2ZWM1NzggICAg ICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogKCJ4RW4zIiB3aXRoIHRo ZSAweDgwIGJpdCBvZiB0aGUgIkUiIHNldCkuKi8KKyAgICB1aW50MzJfdCB2ZXJzaW9uOyAgICAg ICAgICAgLyogVmVyc2lvbiBvZiB0aGlzIHN0cnVjdHVyZS4gICAgICAgICAgICAgICAgKi8KKyAg ICB1aW50MzJfdCBmbGFnczsgICAgICAgICAgICAgLyogU0lGX3h4eCBmbGFncy4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgKi8KKyAgICB1aW50MzJfdCBucl9tb2R1bGVzOyAgICAgICAgLyog TnVtYmVyIG9mIG1vZHVsZXMgcGFzc2VkIHRvIHRoZSBrZXJuZWwuICAgKi8KKyAgICB1aW50NjRf dCBtb2RsaXN0X3BhZGRyOyAgICAgLyogUGh5c2ljYWwgYWRkcmVzcyBvZiBhbiBhcnJheSBvZiAg ICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaHZtX21vZGxp c3RfZW50cnkuICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICB1aW50NjRfdCBjbWRsaW5l X3BhZGRyOyAgICAgLyogUGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgY29tbWFuZCBsaW5lLiAgICAg Ki8KKyAgICB1aW50NjRfdCByc2RwX3BhZGRyOyAgICAgICAgLyogUGh5c2ljYWwgYWRkcmVzcyBv ZiB0aGUgUlNEUCBBQ1BJIGRhdGEgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLyogc3RydWN0dXJlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KK307CisK K3N0cnVjdCBodm1fbW9kbGlzdF9lbnRyeSB7CisgICAgdWludDY0X3QgcGFkZHI7ICAgICAgICAg ICAgIC8qIFBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIG1vZHVsZS4gICAgICAgICAgICovCisgICAg dWludDY0X3Qgc2l6ZTsgICAgICAgICAgICAgIC8qIFNpemUgb2YgdGhlIG1vZHVsZSBpbiBieXRl cy4gICAgICAgICAgICAgICovCisgICAgdWludDY0X3QgY21kbGluZV9wYWRkcjsgICAgIC8qIFBo eXNpY2FsIGFkZHJlc3Mgb2YgdGhlIGNvbW1hbmQgbGluZS4gICAgICovCisgICAgdWludDY0X3Qg cmVzZXJ2ZWQ7Cit9OworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0FSQ0hfWDg2X0hWTV9TVEFS VF9JTkZPX0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vbWVtb3J5LmggYi9pbmNsdWRl L3hlbi9tZW1vcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjI5Mzg2 ZGY5OAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL21lbW9yeS5oCkBAIC0wLDAgKzEs NjY1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBtZW1vcnkuaAorICogCisgKiBNZW1v cnkgcmVzZXJ2YXRpb24gYW5kIGluZm9ybWF0aW9uLgorICogCisgKiBQZXJtaXNzaW9uIGlzIGhl cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBj b3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls ZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQg cmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMg dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNl bnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1p dCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBj b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1 ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0 d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX QVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJV VCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBO TyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElB QkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhF UiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisg KiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUg VVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQ29weXJp Z2h0IChjKSAyMDA1LCBLZWlyIEZyYXNlciA8a2VpckB4ZW5zb3VyY2UuY29tPgorICovCisKKyNp Zm5kZWYgX19YRU5fUFVCTElDX01FTU9SWV9IX18KKyNkZWZpbmUgX19YRU5fUFVCTElDX01FTU9S WV9IX18KKworI2luY2x1ZGUgInhlbi5oIgorI2luY2x1ZGUgInBoeXNkZXYuaCIKKworLyoKKyAq IEluY3JlYXNlIG9yIGRlY3JlYXNlIHRoZSBzcGVjaWZpZWQgZG9tYWluJ3MgbWVtb3J5IHJlc2Vy dmF0aW9uLiBSZXR1cm5zIHRoZQorICogbnVtYmVyIG9mIGV4dGVudHMgc3VjY2Vzc2Z1bGx5IGFs bG9jYXRlZCBvciBmcmVlZC4KKyAqIGFyZyA9PSBhZGRyIG9mIHN0cnVjdCB4ZW5fbWVtb3J5X3Jl c2VydmF0aW9uLgorICovCisjZGVmaW5lIFhFTk1FTV9pbmNyZWFzZV9yZXNlcnZhdGlvbiAwCisj ZGVmaW5lIFhFTk1FTV9kZWNyZWFzZV9yZXNlcnZhdGlvbiAxCisjZGVmaW5lIFhFTk1FTV9wb3B1 bGF0ZV9waHlzbWFwICAgICA2CisKKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fID49IDB4 MDAwMzAyMDkKKy8qCisgKiBNYXhpbXVtICMgYml0cyBhZGRyZXNzYWJsZSBieSB0aGUgdXNlciBv ZiB0aGUgYWxsb2NhdGVkIHJlZ2lvbiAoZS5nLiwgSS9PIAorICogZGV2aWNlcyBvZnRlbiBoYXZl IGEgMzItYml0IGxpbWl0YXRpb24gZXZlbiBpbiA2NC1iaXQgc3lzdGVtcykuIElmIHplcm8gCisg KiB0aGVuIHRoZSB1c2VyIGhhcyBubyBhZGRyZXNzaW5nIHJlc3RyaWN0aW9uLiBUaGlzIGZpZWxk IGlzIG5vdCB1c2VkIGJ5IAorICogWEVOTUVNX2RlY3JlYXNlX3Jlc2VydmF0aW9uLgorICovCisj ZGVmaW5lIFhFTk1FTUZfYWRkcmVzc19iaXRzKHgpICAgICAoeCkKKyNkZWZpbmUgWEVOTUVNRl9n ZXRfYWRkcmVzc19iaXRzKHgpICgoeCkgJiAweGZmdSkKKy8qIE5VTUEgbm9kZSB0byBhbGxvY2F0 ZSBmcm9tLiAqLworI2RlZmluZSBYRU5NRU1GX25vZGUoeCkgICAgICgoKHgpICsgMSkgPDwgOCkK KyNkZWZpbmUgWEVOTUVNRl9nZXRfbm9kZSh4KSAoKCgoeCkgPj4gOCkgLSAxKSAmIDB4ZmZ1KQor LyogRmxhZyB0byBwb3B1bGF0ZSBwaHlzbWFwIHdpdGggcG9wdWxhdGUtb24tZGVtYW5kIGVudHJp ZXMgKi8KKyNkZWZpbmUgWEVOTUVNRl9wb3B1bGF0ZV9vbl9kZW1hbmQgKDE8PDE2KQorLyogRmxh ZyB0byByZXF1ZXN0IGFsbG9jYXRpb24gb25seSBmcm9tIHRoZSBub2RlIHNwZWNpZmllZCAqLwor I2RlZmluZSBYRU5NRU1GX2V4YWN0X25vZGVfcmVxdWVzdCAgKDE8PDE3KQorI2RlZmluZSBYRU5N RU1GX2V4YWN0X25vZGUobikgKFhFTk1FTUZfbm9kZShuKSB8IFhFTk1FTUZfZXhhY3Rfbm9kZV9y ZXF1ZXN0KQorLyogRmxhZyB0byBpbmRpY2F0ZSB0aGUgbm9kZSBzcGVjaWZpZWQgaXMgdmlydHVh bCBub2RlICovCisjZGVmaW5lIFhFTk1FTUZfdm5vZGUgICgxPDwxOCkKKyNlbmRpZgorCitzdHJ1 Y3QgeGVuX21lbW9yeV9yZXNlcnZhdGlvbiB7CisKKyAgICAvKgorICAgICAqIFhFTk1FTV9pbmNy ZWFzZV9yZXNlcnZhdGlvbjoKKyAgICAgKiAgIE9VVDogTUZOICgqbm90KiBHTUZOKSBiYXNlcyBv ZiBleHRlbnRzIHRoYXQgd2VyZSBhbGxvY2F0ZWQKKyAgICAgKiBYRU5NRU1fZGVjcmVhc2VfcmVz ZXJ2YXRpb246CisgICAgICogICBJTjogIEdNRk4gYmFzZXMgb2YgZXh0ZW50cyB0byBmcmVlCisg ICAgICogWEVOTUVNX3BvcHVsYXRlX3BoeXNtYXA6CisgICAgICogICBJTjogIEdQRk4gYmFzZXMg b2YgZXh0ZW50cyB0byBwb3B1bGF0ZSB3aXRoIG1lbW9yeQorICAgICAqICAgT1VUOiBHTUZOIGJh c2VzIG9mIGV4dGVudHMgdGhhdCB3ZXJlIGFsbG9jYXRlZAorICAgICAqICAgKE5CLiBUaGlzIGNv bW1hbmQgYWxzbyB1cGRhdGVzIHRoZSBtYWNoX3RvX3BoeXMgdHJhbnNsYXRpb24gdGFibGUpCisg ICAgICogWEVOTUVNX2NsYWltX3BhZ2VzOgorICAgICAqICAgSU46IG11c3QgYmUgemVybworICAg ICAqLworICAgIFhFTl9HVUVTVF9IQU5ETEUoeGVuX3Bmbl90KSBleHRlbnRfc3RhcnQ7CisKKyAg ICAvKiBOdW1iZXIgb2YgZXh0ZW50cywgYW5kIHNpemUvYWxpZ25tZW50IG9mIGVhY2ggKDJeZXh0 ZW50X29yZGVyIHBhZ2VzKS4gKi8KKyAgICB4ZW5fdWxvbmdfdCAgICBucl9leHRlbnRzOworICAg IHVuc2lnbmVkIGludCAgIGV4dGVudF9vcmRlcjsKKworI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJT SU9OX18gPj0gMHgwMDAzMDIwOQorICAgIC8qIFhFTk1FTUYgZmxhZ3MuICovCisgICAgdW5zaWdu ZWQgaW50ICAgbWVtX2ZsYWdzOworI2Vsc2UKKyAgICB1bnNpZ25lZCBpbnQgICBhZGRyZXNzX2Jp dHM7CisjZW5kaWYKKworICAgIC8qCisgICAgICogRG9tYWluIHdob3NlIHJlc2VydmF0aW9uIGlz IGJlaW5nIGNoYW5nZWQuCisgICAgICogVW5wcml2aWxlZ2VkIGRvbWFpbnMgY2FuIHNwZWNpZnkg b25seSBET01JRF9TRUxGLgorICAgICAqLworICAgIGRvbWlkX3QgICAgICAgIGRvbWlkOworfTsK K3R5cGVkZWYgc3RydWN0IHhlbl9tZW1vcnlfcmVzZXJ2YXRpb24geGVuX21lbW9yeV9yZXNlcnZh dGlvbl90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX21lbW9yeV9yZXNlcnZhdGlvbl90 KTsKKworLyoKKyAqIEFuIGF0b21pYyBleGNoYW5nZSBvZiBtZW1vcnkgcGFnZXMuIElmIHJldHVy biBjb2RlIGlzIHplcm8gdGhlbgorICogQG91dC5leHRlbnRfbGlzdCBwcm92aWRlcyBHTUZOcyBv ZiB0aGUgbmV3bHktYWxsb2NhdGVkIG1lbW9yeS4KKyAqIFJldHVybnMgemVybyBvbiBjb21wbGV0 ZSBzdWNjZXNzLCBvdGhlcndpc2UgYSBuZWdhdGl2ZSBlcnJvciBjb2RlLgorICogT24gY29tcGxl dGUgc3VjY2VzcyB0aGVuIGFsd2F5cyBAbnJfZXhjaGFuZ2VkID09IEBpbi5ucl9leHRlbnRzLgor ICogT24gcGFydGlhbCBzdWNjZXNzIEBucl9leGNoYW5nZWQgaW5kaWNhdGVzIGhvdyBtdWNoIHdv cmsgd2FzIGRvbmUuCisgKgorICogTm90ZSB0aGF0IG9ubHkgUFYgZ3Vlc3RzIGNhbiB1c2UgdGhp cyBvcGVyYXRpb24uCisgKi8KKyNkZWZpbmUgWEVOTUVNX2V4Y2hhbmdlICAgICAgICAgICAgIDEx CitzdHJ1Y3QgeGVuX21lbW9yeV9leGNoYW5nZSB7CisgICAgLyoKKyAgICAgKiBbSU5dIERldGFp bHMgb2YgbWVtb3J5IGV4dGVudHMgdG8gYmUgZXhjaGFuZ2VkIChHTUZOIGJhc2VzKS4KKyAgICAg KiBOb3RlIHRoYXQgQGluLmFkZHJlc3NfYml0cyBpcyBpZ25vcmVkIGFuZCB1bnVzZWQuCisgICAg ICovCisgICAgc3RydWN0IHhlbl9tZW1vcnlfcmVzZXJ2YXRpb24gaW47CisKKyAgICAvKgorICAg ICAqIFtJTi9PVVRdIERldGFpbHMgb2YgbmV3IG1lbW9yeSBleHRlbnRzLgorICAgICAqIFdlIHJl cXVpcmUgdGhhdDoKKyAgICAgKiAgMS4gQGluLmRvbWlkID09IEBvdXQuZG9taWQKKyAgICAgKiAg Mi4gQGluLm5yX2V4dGVudHMgIDw8IEBpbi5leHRlbnRfb3JkZXIgPT0gCisgICAgICogICAgIEBv dXQubnJfZXh0ZW50cyA8PCBAb3V0LmV4dGVudF9vcmRlcgorICAgICAqICAzLiBAaW4uZXh0ZW50 X3N0YXJ0IGFuZCBAb3V0LmV4dGVudF9zdGFydCBsaXN0cyBtdXN0IG5vdCBvdmVybGFwCisgICAg ICogIDQuIEBvdXQuZXh0ZW50X3N0YXJ0IGxpc3RzIEdQRk4gYmFzZXMgdG8gYmUgcG9wdWxhdGVk CisgICAgICogIDUuIEBvdXQuZXh0ZW50X3N0YXJ0IGlzIG92ZXJ3cml0dGVuIHdpdGggYWxsb2Nh dGVkIEdNRk4gYmFzZXMKKyAgICAgKi8KKyAgICBzdHJ1Y3QgeGVuX21lbW9yeV9yZXNlcnZhdGlv biBvdXQ7CisKKyAgICAvKgorICAgICAqIFtPVVRdIE51bWJlciBvZiBpbnB1dCBleHRlbnRzIHRo YXQgd2VyZSBzdWNjZXNzZnVsbHkgZXhjaGFuZ2VkOgorICAgICAqICAxLiBUaGUgZmlyc3QgQG5y X2V4Y2hhbmdlZCBpbnB1dCBleHRlbnRzIHdlcmUgc3VjY2Vzc2Z1bGx5CisgICAgICogICAgIGRl YWxsb2NhdGVkLgorICAgICAqICAyLiBUaGUgY29ycmVzcG9uZGluZyBmaXJzdCBlbnRyaWVzIGlu IHRoZSBvdXRwdXQgZXh0ZW50IGxpc3QgY29ycmVjdGx5CisgICAgICogICAgIGluZGljYXRlIHRo ZSBHTUZOcyB0aGF0IHdlcmUgc3VjY2Vzc2Z1bGx5IGV4Y2hhbmdlZC4KKyAgICAgKiAgMy4gQWxs IG90aGVyIGlucHV0IGFuZCBvdXRwdXQgZXh0ZW50cyBhcmUgdW50b3VjaGVkLgorICAgICAqICA0 LiBJZiBub3QgYWxsIGlucHV0IGV4ZW50cyBhcmUgZXhjaGFuZ2VkIHRoZW4gdGhlIHJldHVybiBj b2RlIG9mIHRoaXMKKyAgICAgKiAgICAgY29tbWFuZCB3aWxsIGJlIG5vbi16ZXJvLgorICAgICAq ICA1LiBUSElTIEZJRUxEIE1VU1QgQkUgSU5JVElBTElTRUQgVE8gWkVSTyBCWSBUSEUgQ0FMTEVS IQorICAgICAqLworICAgIHhlbl91bG9uZ190IG5yX2V4Y2hhbmdlZDsKK307Cit0eXBlZGVmIHN0 cnVjdCB4ZW5fbWVtb3J5X2V4Y2hhbmdlIHhlbl9tZW1vcnlfZXhjaGFuZ2VfdDsKK0RFRklORV9Y RU5fR1VFU1RfSEFORExFKHhlbl9tZW1vcnlfZXhjaGFuZ2VfdCk7CisKKy8qCisgKiBSZXR1cm5z IHRoZSBtYXhpbXVtIG1hY2hpbmUgZnJhbWUgbnVtYmVyIG9mIG1hcHBlZCBSQU0gaW4gdGhpcyBz eXN0ZW0uCisgKiBUaGlzIGNvbW1hbmQgYWx3YXlzIHN1Y2NlZWRzIChpdCBuZXZlciByZXR1cm5z IGFuIGVycm9yIGNvZGUpLgorICogYXJnID09IE5VTEwuCisgKi8KKyNkZWZpbmUgWEVOTUVNX21h eGltdW1fcmFtX3BhZ2UgICAgIDIKKworLyoKKyAqIFJldHVybnMgdGhlIGN1cnJlbnQgb3IgbWF4 aW11bSBtZW1vcnkgcmVzZXJ2YXRpb24sIGluIHBhZ2VzLCBvZiB0aGUKKyAqIHNwZWNpZmllZCBk b21haW4gKG1heSBiZSBET01JRF9TRUxGKS4gUmV0dXJucyAtdmUgZXJyY29kZSBvbiBmYWlsdXJl LgorICogYXJnID09IGFkZHIgb2YgZG9taWRfdC4KKyAqLworI2RlZmluZSBYRU5NRU1fY3VycmVu dF9yZXNlcnZhdGlvbiAgMworI2RlZmluZSBYRU5NRU1fbWF4aW11bV9yZXNlcnZhdGlvbiAgNAor CisvKgorICogUmV0dXJucyB0aGUgbWF4aW11bSBHUEZOIGluIHVzZSBieSB0aGUgZ3Vlc3QsIG9y IC12ZSBlcnJjb2RlIG9uIGZhaWx1cmUuCisgKi8KKyNkZWZpbmUgWEVOTUVNX21heGltdW1fZ3Bm biAgICAgICAgIDE0CisKKy8qCisgKiBSZXR1cm5zIGEgbGlzdCBvZiBNRk4gYmFzZXMgb2YgMk1C IGV4dGVudHMgY29tcHJpc2luZyB0aGUgbWFjaGluZV90b19waHlzCisgKiBtYXBwaW5nIHRhYmxl LiBBcmNoaXRlY3R1cmVzIHdoaWNoIGRvIG5vdCBoYXZlIGEgbTJwIHRhYmxlIGRvIG5vdCBpbXBs ZW1lbnQKKyAqIHRoaXMgY29tbWFuZC4KKyAqIGFyZyA9PSBhZGRyIG9mIHhlbl9tYWNocGh5c19t Zm5fbGlzdF90LgorICovCisjZGVmaW5lIFhFTk1FTV9tYWNocGh5c19tZm5fbGlzdCAgICA1Citz dHJ1Y3QgeGVuX21hY2hwaHlzX21mbl9saXN0IHsKKyAgICAvKgorICAgICAqIFNpemUgb2YgdGhl ICdleHRlbnRfc3RhcnQnIGFycmF5LiBGZXdlciBlbnRyaWVzIHdpbGwgYmUgZmlsbGVkIGlmIHRo ZQorICAgICAqIG1hY2hwaHlzIHRhYmxlIGlzIHNtYWxsZXIgdGhhbiBtYXhfZXh0ZW50cyAqIDJN Qi4KKyAgICAgKi8KKyAgICB1bnNpZ25lZCBpbnQgbWF4X2V4dGVudHM7CisKKyAgICAvKgorICAg ICAqIFBvaW50ZXIgdG8gYnVmZmVyIHRvIGZpbGwgd2l0aCBsaXN0IG9mIGV4dGVudCBzdGFydHMu IElmIHRoZXJlIGFyZQorICAgICAqIGFueSBsYXJnZSBkaXNjb250aWd1aXRpZXMgaW4gdGhlIG1h Y2hpbmUgYWRkcmVzcyBzcGFjZSwgMk1CIGdhcHMgaW4KKyAgICAgKiB0aGUgbWFjaHBoeXMgdGFi bGUgd2lsbCBiZSByZXByZXNlbnRlZCBieSBhbiBNRk4gYmFzZSBvZiB6ZXJvLgorICAgICAqLwor ICAgIFhFTl9HVUVTVF9IQU5ETEUoeGVuX3Bmbl90KSBleHRlbnRfc3RhcnQ7CisKKyAgICAvKgor ICAgICAqIE51bWJlciBvZiBleHRlbnRzIHdyaXR0ZW4gdG8gdGhlIGFib3ZlIGFycmF5LiBUaGlz IHdpbGwgYmUgc21hbGxlcgorICAgICAqIHRoYW4gJ21heF9leHRlbnRzJyBpZiB0aGUgbWFjaHBo eXMgdGFibGUgaXMgc21hbGxlciB0aGFuIG1heF9lICogMk1CLgorICAgICAqLworICAgIHVuc2ln bmVkIGludCBucl9leHRlbnRzOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9tYWNocGh5c19tZm5f bGlzdCB4ZW5fbWFjaHBoeXNfbWZuX2xpc3RfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhl bl9tYWNocGh5c19tZm5fbGlzdF90KTsKKworLyoKKyAqIEZvciBhIGNvbXBhdCBjYWxsZXIsIHRo aXMgaXMgaWRlbnRpY2FsIHRvIFhFTk1FTV9tYWNocGh5c19tZm5fbGlzdC4KKyAqCisgKiBGb3Ig YSBub24gY29tcGF0IGNhbGxlciwgdGhpcyBmdW5jdGlvbnMgc2ltaWxhcmx5IHRvCisgKiBYRU5N RU1fbWFjaHBoeXNfbWZuX2xpc3QsIGJ1dCByZXR1cm5zIHRoZSBtZm5zIG1ha2luZyB1cCB0aGUg Y29tcGF0aWJpbGl0eQorICogbTJwIHRhYmxlLgorICovCisjZGVmaW5lIFhFTk1FTV9tYWNocGh5 c19jb21wYXRfbWZuX2xpc3QgICAgIDI1CisKKy8qCisgKiBSZXR1cm5zIHRoZSBsb2NhdGlvbiBp biB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2Ugb2YgdGhlIG1hY2hpbmVfdG9fcGh5cworICogbWFwcGlu ZyB0YWJsZS4gQXJjaGl0ZWN0dXJlcyB3aGljaCBkbyBub3QgaGF2ZSBhIG0ycCB0YWJsZSwgb3Ig d2hpY2ggZG8gbm90CisgKiBtYXAgaXQgYnkgZGVmYXVsdCBpbnRvIGd1ZXN0IGFkZHJlc3Mgc3Bh Y2UsIGRvIG5vdCBpbXBsZW1lbnQgdGhpcyBjb21tYW5kLgorICogYXJnID09IGFkZHIgb2YgeGVu X21hY2hwaHlzX21hcHBpbmdfdC4KKyAqLworI2RlZmluZSBYRU5NRU1fbWFjaHBoeXNfbWFwcGlu ZyAgICAgMTIKK3N0cnVjdCB4ZW5fbWFjaHBoeXNfbWFwcGluZyB7CisgICAgeGVuX3Vsb25nX3Qg dl9zdGFydCwgdl9lbmQ7IC8qIFN0YXJ0IGFuZCBlbmQgdmlydHVhbCBhZGRyZXNzZXMuICAgKi8K KyAgICB4ZW5fdWxvbmdfdCBtYXhfbWZuOyAgICAgICAgLyogTWF4aW11bSBNRk4gdGhhdCBjYW4g YmUgbG9va2VkIHVwLiAqLworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9tYWNocGh5c19tYXBwaW5n IHhlbl9tYWNocGh5c19tYXBwaW5nX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fbWFj aHBoeXNfbWFwcGluZ190KTsKKworLyogU291cmNlIG1hcHBpbmcgc3BhY2UuICovCisvKiBgIGVu dW0gcGh5c19tYXBfc3BhY2UgeyAqLworI2RlZmluZSBYRU5NQVBTUEFDRV9zaGFyZWRfaW5mbyAg MCAvKiBzaGFyZWQgaW5mbyBwYWdlICovCisjZGVmaW5lIFhFTk1BUFNQQUNFX2dyYW50X3RhYmxl ICAxIC8qIGdyYW50IHRhYmxlIHBhZ2UgKi8KKyNkZWZpbmUgWEVOTUFQU1BBQ0VfZ21mbiAgICAg ICAgIDIgLyogR01GTiAqLworI2RlZmluZSBYRU5NQVBTUEFDRV9nbWZuX3JhbmdlICAgMyAvKiBH TUZOIHJhbmdlLCBYRU5NRU1fYWRkX3RvX3BoeXNtYXAgb25seS4gKi8KKyNkZWZpbmUgWEVOTUFQ U1BBQ0VfZ21mbl9mb3JlaWduIDQgLyogR01GTiBmcm9tIGFub3RoZXIgZG9tLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBYRU5NRU1fYWRkX3RvX3BoeXNtYXBfYmF0Y2gg b25seS4gKi8KKyNkZWZpbmUgWEVOTUFQU1BBQ0VfZGV2X21taW8gICAgIDUgLyogZGV2aWNlIG1t aW8gcmVnaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSTSBvbmx5 OyB0aGUgcmVnaW9uIGlzIG1hcHBlZCBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTdGFnZS0yIHVzaW5nIHRoZSBOb3JtYWwgTWVtb3J5CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElubmVyL091dGVyIFdyaXRlLUJhY2sgQ2FjaGVhYmxlCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbW9yeSBhdHRyaWJ1dGUuICov CisvKiBgIH0gKi8KKworLyoKKyAqIFNldHMgdGhlIEdQRk4gYXQgd2hpY2ggYSBwYXJ0aWN1bGFy IHBhZ2UgYXBwZWFycyBpbiB0aGUgc3BlY2lmaWVkIGd1ZXN0J3MKKyAqIHBzZXVkb3BoeXNpY2Fs IGFkZHJlc3Mgc3BhY2UuCisgKiBhcmcgPT0gYWRkciBvZiB4ZW5fYWRkX3RvX3BoeXNtYXBfdC4K KyAqLworI2RlZmluZSBYRU5NRU1fYWRkX3RvX3BoeXNtYXAgICAgICA3CitzdHJ1Y3QgeGVuX2Fk ZF90b19waHlzbWFwIHsKKyAgICAvKiBXaGljaCBkb21haW4gdG8gY2hhbmdlIHRoZSBtYXBwaW5n IGZvci4gKi8KKyAgICBkb21pZF90IGRvbWlkOworCisgICAgLyogTnVtYmVyIG9mIHBhZ2VzIHRv IGdvIHRocm91Z2ggZm9yIGdtZm5fcmFuZ2UgKi8KKyAgICB1aW50MTZfdCAgICBzaXplOworCisg ICAgdW5zaWduZWQgaW50IHNwYWNlOyAvKiA9PiBlbnVtIHBoeXNfbWFwX3NwYWNlICovCisKKyNk ZWZpbmUgWEVOTUFQSURYX2dyYW50X3RhYmxlX3N0YXR1cyAweDgwMDAwMDAwCisKKyAgICAvKiBJ bmRleCBpbnRvIHNwYWNlIGJlaW5nIG1hcHBlZC4gKi8KKyAgICB4ZW5fdWxvbmdfdCBpZHg7CisK KyAgICAvKiBHUEZOIGluIGRvbWlkIHdoZXJlIHRoZSBzb3VyY2UgbWFwcGluZyBwYWdlIHNob3Vs ZCBhcHBlYXIuICovCisgICAgeGVuX3Bmbl90ICAgICBncGZuOworfTsKK3R5cGVkZWYgc3RydWN0 IHhlbl9hZGRfdG9fcGh5c21hcCB4ZW5fYWRkX3RvX3BoeXNtYXBfdDsKK0RFRklORV9YRU5fR1VF U1RfSEFORExFKHhlbl9hZGRfdG9fcGh5c21hcF90KTsKKworLyogQSBiYXRjaGVkIHZlcnNpb24g b2YgYWRkX3RvX3BoeXNtYXAuICovCisjZGVmaW5lIFhFTk1FTV9hZGRfdG9fcGh5c21hcF9iYXRj aCAyMworc3RydWN0IHhlbl9hZGRfdG9fcGh5c21hcF9iYXRjaCB7CisgICAgLyogSU4gKi8KKyAg ICAvKiBXaGljaCBkb21haW4gdG8gY2hhbmdlIHRoZSBtYXBwaW5nIGZvci4gKi8KKyAgICBkb21p ZF90IGRvbWlkOworICAgIHVpbnQxNl90IHNwYWNlOyAvKiA9PiBlbnVtIHBoeXNfbWFwX3NwYWNl ICovCisKKyAgICAvKiBOdW1iZXIgb2YgcGFnZXMgdG8gZ28gdGhyb3VnaCAqLworICAgIHVpbnQx Nl90IHNpemU7CisKKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDA0MDcwMAor ICAgIGRvbWlkX3QgZm9yZWlnbl9kb21pZDsgLyogSUZGIGdtZm5fZm9yZWlnbi4gU2hvdWxkIGJl IDAgZm9yIG90aGVyIHNwYWNlcy4gKi8KKyNlbHNlCisgICAgdW5pb24geGVuX2FkZF90b19waHlz bWFwX2JhdGNoX2V4dHJhIHsKKyAgICAgICAgZG9taWRfdCBmb3JlaWduX2RvbWlkOyAvKiBnbWZu X2ZvcmVpZ24gKi8KKyAgICAgICAgdWludDE2X3QgcmVzMDsgIC8qIEFsbCB0aGUgb3RoZXIgc3Bh Y2VzLiBTaG91bGQgYmUgMCAqLworICAgIH0gdTsKKyNlbmRpZgorCisgICAgLyogSW5kZXhlcyBp bnRvIHNwYWNlIGJlaW5nIG1hcHBlZC4gKi8KKyAgICBYRU5fR1VFU1RfSEFORExFKHhlbl91bG9u Z190KSBpZHhzOworCisgICAgLyogR1BGTiBpbiBkb21pZCB3aGVyZSB0aGUgc291cmNlIG1hcHBp bmcgcGFnZSBzaG91bGQgYXBwZWFyLiAqLworICAgIFhFTl9HVUVTVF9IQU5ETEUoeGVuX3Bmbl90 KSBncGZuczsKKworICAgIC8qIE9VVCAqLworCisgICAgLyogUGVyIGluZGV4IGVycm9yIGNvZGUu ICovCisgICAgWEVOX0dVRVNUX0hBTkRMRShpbnQpIGVycnM7Cit9OwordHlwZWRlZiBzdHJ1Y3Qg eGVuX2FkZF90b19waHlzbWFwX2JhdGNoIHhlbl9hZGRfdG9fcGh5c21hcF9iYXRjaF90OworREVG SU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2FkZF90b19waHlzbWFwX2JhdGNoX3QpOworCisjaWYg X19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwNDA0MDAKKyNkZWZpbmUgWEVOTUVNX2Fk ZF90b19waHlzbWFwX3JhbmdlIFhFTk1FTV9hZGRfdG9fcGh5c21hcF9iYXRjaAorI2RlZmluZSB4 ZW5fYWRkX3RvX3BoeXNtYXBfcmFuZ2UgeGVuX2FkZF90b19waHlzbWFwX2JhdGNoCit0eXBlZGVm IHN0cnVjdCB4ZW5fYWRkX3RvX3BoeXNtYXBfYmF0Y2ggeGVuX2FkZF90b19waHlzbWFwX3Jhbmdl X3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fYWRkX3RvX3BoeXNtYXBfcmFuZ2VfdCk7 CisjZW5kaWYKKworLyoKKyAqIFVubWFwcyB0aGUgcGFnZSBhcHBlYXJpbmcgYXQgYSBwYXJ0aWN1 bGFyIEdQRk4gZnJvbSB0aGUgc3BlY2lmaWVkIGd1ZXN0J3MKKyAqIHBzZXVkb3BoeXNpY2FsIGFk ZHJlc3Mgc3BhY2UuCisgKiBhcmcgPT0gYWRkciBvZiB4ZW5fcmVtb3ZlX2Zyb21fcGh5c21hcF90 LgorICovCisjZGVmaW5lIFhFTk1FTV9yZW1vdmVfZnJvbV9waHlzbWFwICAgICAgMTUKK3N0cnVj dCB4ZW5fcmVtb3ZlX2Zyb21fcGh5c21hcCB7CisgICAgLyogV2hpY2ggZG9tYWluIHRvIGNoYW5n ZSB0aGUgbWFwcGluZyBmb3IuICovCisgICAgZG9taWRfdCBkb21pZDsKKworICAgIC8qIEdQRk4g b2YgdGhlIGN1cnJlbnQgbWFwcGluZyBvZiB0aGUgcGFnZS4gKi8KKyAgICB4ZW5fcGZuX3QgICAg IGdwZm47Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX3JlbW92ZV9mcm9tX3BoeXNtYXAgeGVuX3Jl bW92ZV9mcm9tX3BoeXNtYXBfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9yZW1vdmVf ZnJvbV9waHlzbWFwX3QpOworCisvKioqIFJFTU9WRUQgKioqLworLyojZGVmaW5lIFhFTk1FTV90 cmFuc2xhdGVfZ3Bmbl9saXN0ICA4Ki8KKworLyoKKyAqIFJldHVybnMgdGhlIHBzZXVkby1waHlz aWNhbCBtZW1vcnkgbWFwIGFzIGl0IHdhcyB3aGVuIHRoZSBkb21haW4KKyAqIHdhcyBzdGFydGVk IChzcGVjaWZpZWQgYnkgWEVOTUVNX3NldF9tZW1vcnlfbWFwKS4KKyAqIGFyZyA9PSBhZGRyIG9m IHhlbl9tZW1vcnlfbWFwX3QuCisgKi8KKyNkZWZpbmUgWEVOTUVNX21lbW9yeV9tYXAgICAgICAg ICAgIDkKK3N0cnVjdCB4ZW5fbWVtb3J5X21hcCB7CisgICAgLyoKKyAgICAgKiBPbiBjYWxsIHRo ZSBudW1iZXIgb2YgZW50cmllcyB3aGljaCBjYW4gYmUgc3RvcmVkIGluIGJ1ZmZlci4gT24KKyAg ICAgKiByZXR1cm4gdGhlIG51bWJlciBvZiBlbnRyaWVzIHdoaWNoIGhhdmUgYmVlbiBzdG9yZWQg aW4KKyAgICAgKiBidWZmZXIuCisgICAgICovCisgICAgdW5zaWduZWQgaW50IG5yX2VudHJpZXM7 CisKKyAgICAvKgorICAgICAqIEVudHJpZXMgaW4gdGhlIGJ1ZmZlciBhcmUgaW4gdGhlIHNhbWUg Zm9ybWF0IGFzIHJldHVybmVkIGJ5IHRoZQorICAgICAqIEJJT1MgSU5UIDB4MTUgRUFYPTB4RTgy MCBjYWxsLgorICAgICAqLworICAgIFhFTl9HVUVTVF9IQU5ETEUodm9pZCkgYnVmZmVyOworfTsK K3R5cGVkZWYgc3RydWN0IHhlbl9tZW1vcnlfbWFwIHhlbl9tZW1vcnlfbWFwX3Q7CitERUZJTkVf WEVOX0dVRVNUX0hBTkRMRSh4ZW5fbWVtb3J5X21hcF90KTsKKworLyoKKyAqIFJldHVybnMgdGhl IHJlYWwgcGh5c2ljYWwgbWVtb3J5IG1hcC4gUGFzc2VzIHRoZSBzYW1lIHN0cnVjdHVyZSBhcwor ICogWEVOTUVNX21lbW9yeV9tYXAuCisgKiBTcGVjaWZ5aW5nIGJ1ZmZlciBhcyBOVUxMIHdpbGwg cmV0dXJuIHRoZSBudW1iZXIgb2YgZW50cmllcyByZXF1aXJlZAorICogdG8gc3RvcmUgdGhlIGNv bXBsZXRlIG1lbW9yeSBtYXAuCisgKiBhcmcgPT0gYWRkciBvZiB4ZW5fbWVtb3J5X21hcF90Lgor ICovCisjZGVmaW5lIFhFTk1FTV9tYWNoaW5lX21lbW9yeV9tYXAgICAxMAorCisvKgorICogU2V0 IHRoZSBwc2V1ZG8tcGh5c2ljYWwgbWVtb3J5IG1hcCBvZiBhIGRvbWFpbiwgYXMgcmV0dXJuZWQg YnkKKyAqIFhFTk1FTV9tZW1vcnlfbWFwLgorICogYXJnID09IGFkZHIgb2YgeGVuX2ZvcmVpZ25f bWVtb3J5X21hcF90LgorICovCisjZGVmaW5lIFhFTk1FTV9zZXRfbWVtb3J5X21hcCAgICAgICAx Mworc3RydWN0IHhlbl9mb3JlaWduX21lbW9yeV9tYXAgeworICAgIGRvbWlkX3QgZG9taWQ7Cisg ICAgc3RydWN0IHhlbl9tZW1vcnlfbWFwIG1hcDsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fZm9y ZWlnbl9tZW1vcnlfbWFwIHhlbl9mb3JlaWduX21lbW9yeV9tYXBfdDsKK0RFRklORV9YRU5fR1VF U1RfSEFORExFKHhlbl9mb3JlaWduX21lbW9yeV9tYXBfdCk7CisKKyNkZWZpbmUgWEVOTUVNX3Nl dF9wb2RfdGFyZ2V0ICAgICAgIDE2CisjZGVmaW5lIFhFTk1FTV9nZXRfcG9kX3RhcmdldCAgICAg ICAxNworc3RydWN0IHhlbl9wb2RfdGFyZ2V0IHsKKyAgICAvKiBJTiAqLworICAgIHVpbnQ2NF90 IHRhcmdldF9wYWdlczsKKyAgICAvKiBPVVQgKi8KKyAgICB1aW50NjRfdCB0b3RfcGFnZXM7Cisg ICAgdWludDY0X3QgcG9kX2NhY2hlX3BhZ2VzOworICAgIHVpbnQ2NF90IHBvZF9lbnRyaWVzOwor ICAgIC8qIElOICovCisgICAgZG9taWRfdCBkb21pZDsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5f cG9kX3RhcmdldCB4ZW5fcG9kX3RhcmdldF90OworCisjaWYgZGVmaW5lZChfX1hFTl9fKSB8fCBk ZWZpbmVkKF9fWEVOX1RPT0xTX18pCisKKyNpZm5kZWYgdWludDY0X2FsaWduZWRfdAorI2RlZmlu ZSB1aW50NjRfYWxpZ25lZF90IHVpbnQ2NF90CisjZW5kaWYKKworLyoKKyAqIEdldCB0aGUgbnVt YmVyIG9mIE1GTnMgc2F2ZWQgdGhyb3VnaCBtZW1vcnkgc2hhcmluZy4KKyAqIFRoZSBjYWxsIG5l dmVyIGZhaWxzLiAKKyAqLworI2RlZmluZSBYRU5NRU1fZ2V0X3NoYXJpbmdfZnJlZWRfcGFnZXMg ICAgMTgKKyNkZWZpbmUgWEVOTUVNX2dldF9zaGFyaW5nX3NoYXJlZF9wYWdlcyAgIDE5CisKKyNk ZWZpbmUgWEVOTUVNX3BhZ2luZ19vcCAgICAgICAgICAgICAgICAgICAgMjAKKyNkZWZpbmUgWEVO TUVNX3BhZ2luZ19vcF9ub21pbmF0ZSAgICAgICAgICAgMAorI2RlZmluZSBYRU5NRU1fcGFnaW5n X29wX2V2aWN0ICAgICAgICAgICAgICAxCisjZGVmaW5lIFhFTk1FTV9wYWdpbmdfb3BfcHJlcCAg ICAgICAgICAgICAgIDIKKworc3RydWN0IHhlbl9tZW1fcGFnaW5nX29wIHsKKyAgICB1aW50OF90 ICAgICBvcDsgICAgICAgICAvKiBYRU5NRU1fcGFnaW5nX29wXyogKi8KKyAgICBkb21pZF90ICAg ICBkb21haW47CisKKyAgICAvKiBQQUdJTkdfUFJFUCBJTjogYnVmZmVyIHRvIGltbWVkaWF0ZWx5 IGZpbGwgcGFnZSBpbiAqLworICAgIHVpbnQ2NF9hbGlnbmVkX3QgICAgYnVmZmVyOworICAgIC8q IE90aGVyIE9QcyAqLworICAgIHVpbnQ2NF9hbGlnbmVkX3QgICAgZ2ZuOyAgICAgICAgICAgLyog SU46ICBnZm4gb2YgcGFnZSBiZWluZyBvcGVyYXRlZCBvbiAqLworfTsKK3R5cGVkZWYgc3RydWN0 IHhlbl9tZW1fcGFnaW5nX29wIHhlbl9tZW1fcGFnaW5nX29wX3Q7CitERUZJTkVfWEVOX0dVRVNU X0hBTkRMRSh4ZW5fbWVtX3BhZ2luZ19vcF90KTsKKworI2RlZmluZSBYRU5NRU1fYWNjZXNzX29w ICAgICAgICAgICAgICAgICAgICAyMQorI2RlZmluZSBYRU5NRU1fYWNjZXNzX29wX3NldF9hY2Nl c3MgICAgICAgICAwCisjZGVmaW5lIFhFTk1FTV9hY2Nlc3Nfb3BfZ2V0X2FjY2VzcyAgICAgICAg IDEKKy8qCisgKiBYRU5NRU1fYWNjZXNzX29wX2VuYWJsZV9lbXVsYXRlIGFuZCBYRU5NRU1fYWNj ZXNzX29wX2Rpc2FibGVfZW11bGF0ZSBhcmUKKyAqIGN1cnJlbnRseSB1bnVzZWQsIGJ1dCBzaW5j ZSB0aGV5IGhhdmUgYmVlbiBpbiB1c2UgcGxlYXNlIGRvIG5vdCByZXVzZSB0aGVtLgorICoKKyAq ICNkZWZpbmUgWEVOTUVNX2FjY2Vzc19vcF9lbmFibGVfZW11bGF0ZSAgICAgMgorICogI2RlZmlu ZSBYRU5NRU1fYWNjZXNzX29wX2Rpc2FibGVfZW11bGF0ZSAgICAzCisgKi8KKyNkZWZpbmUgWEVO TUVNX2FjY2Vzc19vcF9zZXRfYWNjZXNzX211bHRpICAgNAorCit0eXBlZGVmIGVudW0geworICAg IFhFTk1FTV9hY2Nlc3NfbiwKKyAgICBYRU5NRU1fYWNjZXNzX3IsCisgICAgWEVOTUVNX2FjY2Vz c193LAorICAgIFhFTk1FTV9hY2Nlc3NfcncsCisgICAgWEVOTUVNX2FjY2Vzc194LAorICAgIFhF Tk1FTV9hY2Nlc3NfcngsCisgICAgWEVOTUVNX2FjY2Vzc193eCwKKyAgICBYRU5NRU1fYWNjZXNz X3J3eCwKKyAgICAvKgorICAgICAqIFBhZ2Ugc3RhcnRzIG9mZiBhcyByLXgsIGJ1dCBhdXRvbWF0 aWNhbGx5CisgICAgICogY2hhbmdlIHRvIHItdyBvbiBhIHdyaXRlCisgICAgICovCisgICAgWEVO TUVNX2FjY2Vzc19yeDJydywKKyAgICAvKgorICAgICAqIExvZyBhY2Nlc3M6IHN0YXJ0cyBvZmYg YXMgbiwgYXV0b21hdGljYWxseQorICAgICAqIGdvZXMgdG8gcnd4LCBnZW5lcmF0aW5nIGFuIGV2 ZW50IHdpdGhvdXQKKyAgICAgKiBwYXVzaW5nIHRoZSB2Y3B1CisgICAgICovCisgICAgWEVOTUVN X2FjY2Vzc19uMnJ3eCwKKyAgICAvKiBUYWtlIHRoZSBkb21haW4gZGVmYXVsdCAqLworICAgIFhF Tk1FTV9hY2Nlc3NfZGVmYXVsdAorfSB4ZW5tZW1fYWNjZXNzX3Q7CisKK3N0cnVjdCB4ZW5fbWVt X2FjY2Vzc19vcCB7CisgICAgLyogWEVOTUVNX2FjY2Vzc19vcF8qICovCisgICAgdWludDhfdCBv cDsKKyAgICAvKiB4ZW5tZW1fYWNjZXNzX3QgKi8KKyAgICB1aW50OF90IGFjY2VzczsKKyAgICBk b21pZF90IGRvbWlkOworICAgIC8qCisgICAgICogTnVtYmVyIG9mIHBhZ2VzIGZvciBzZXQgb3Ag KG9yIHNpemUgb2YgcGZuX2xpc3QgZm9yCisgICAgICogWEVOTUVNX2FjY2Vzc19vcF9zZXRfYWNj ZXNzX211bHRpKQorICAgICAqIElnbm9yZWQgb24gc2V0dGluZyBkZWZhdWx0IGFjY2VzcyBhbmQg b3RoZXIgb3BzCisgICAgICovCisgICAgdWludDMyX3QgbnI7CisgICAgLyoKKyAgICAgKiBGaXJz dCBwZm4gZm9yIHNldCBvcAorICAgICAqIHBmbiBmb3IgZ2V0IG9wCisgICAgICogfjB1bGwgaXMg dXNlZCB0byBzZXQgYW5kIGdldCB0aGUgZGVmYXVsdCBhY2Nlc3MgZm9yIHBhZ2VzCisgICAgICov CisgICAgdWludDY0X2FsaWduZWRfdCBwZm47CisgICAgLyoKKyAgICAgKiBMaXN0IG9mIHBmbnMg dG8gc2V0IGFjY2VzcyBmb3IKKyAgICAgKiBVc2VkIG9ubHkgd2l0aCBYRU5NRU1fYWNjZXNzX29w X3NldF9hY2Nlc3NfbXVsdGkKKyAgICAgKi8KKyAgICBYRU5fR1VFU1RfSEFORExFKGNvbnN0X3Vp bnQ2NCkgcGZuX2xpc3Q7CisgICAgLyoKKyAgICAgKiBDb3JyZXNwb25kaW5nIGxpc3Qgb2YgYWNj ZXNzIHNldHRpbmdzIGZvciBwZm5fbGlzdAorICAgICAqIFVzZWQgb25seSB3aXRoIFhFTk1FTV9h Y2Nlc3Nfb3Bfc2V0X2FjY2Vzc19tdWx0aQorICAgICAqLworICAgIFhFTl9HVUVTVF9IQU5ETEUo Y29uc3RfdWludDgpIGFjY2Vzc19saXN0OworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9tZW1fYWNj ZXNzX29wIHhlbl9tZW1fYWNjZXNzX29wX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5f bWVtX2FjY2Vzc19vcF90KTsKKworI2RlZmluZSBYRU5NRU1fc2hhcmluZ19vcCAgICAgICAgICAg ICAgICAgICAyMgorI2RlZmluZSBYRU5NRU1fc2hhcmluZ19vcF9ub21pbmF0ZV9nZm4gICAgICAw CisjZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29wX25vbWluYXRlX2dyZWYgICAgIDEKKyNkZWZpbmUg WEVOTUVNX3NoYXJpbmdfb3Bfc2hhcmUgICAgICAgICAgICAgMgorI2RlZmluZSBYRU5NRU1fc2hh cmluZ19vcF9kZWJ1Z19nZm4gICAgICAgICAzCisjZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29wX2Rl YnVnX21mbiAgICAgICAgIDQKKyNkZWZpbmUgWEVOTUVNX3NoYXJpbmdfb3BfZGVidWdfZ3JlZiAg ICAgICAgNQorI2RlZmluZSBYRU5NRU1fc2hhcmluZ19vcF9hZGRfcGh5c21hcCAgICAgICA2Cisj ZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29wX2F1ZGl0ICAgICAgICAgICAgIDcKKyNkZWZpbmUgWEVO TUVNX3NoYXJpbmdfb3BfcmFuZ2Vfc2hhcmUgICAgICAgOAorCisjZGVmaW5lIFhFTk1FTV9TSEFS SU5HX09QX1NfSEFORExFX0lOVkFMSUQgICgtMTApCisjZGVmaW5lIFhFTk1FTV9TSEFSSU5HX09Q X0NfSEFORExFX0lOVkFMSUQgICgtOSkKKworLyogVGhlIGZvbGxvd2luZyBhbGxvd3Mgc2hhcmlu ZyBvZiBncmFudCByZWZzLiBUaGlzIGlzIHVzZWZ1bAorICogZm9yIHNoYXJpbmcgdXRpbGl0aWVz IHNpdHRpbmcgYXMgImZpbHRlcnMiIGluIElPIGJhY2tlbmRzCisgKiAoZS5nLiBtZW1zaHIgKyBi bGt0YXAoMikpLiBUaGUgSU8gYmFja2VuZCBpcyBvbmx5IGV4cG9zZWQgCisgKiB0byBncmFudCBy ZWZlcmVuY2VzLCBhbmQgdGhpcyBhbGxvd3Mgc2hhcmluZyBvZiB0aGUgZ3JlZnMgKi8KKyNkZWZp bmUgWEVOTUVNX1NIQVJJTkdfT1BfRklFTERfSVNfR1JFRl9GTEFHICAgKHhlbl9ta191bGxvbmco MSkgPDwgNjIpCisKKyNkZWZpbmUgWEVOTUVNX1NIQVJJTkdfT1BfRklFTERfTUFLRV9HUkVGKGZp ZWxkLCB2YWwpICBcCisgICAgKGZpZWxkKSA9IChYRU5NRU1fU0hBUklOR19PUF9GSUVMRF9JU19H UkVGX0ZMQUcgfCB2YWwpCisjZGVmaW5lIFhFTk1FTV9TSEFSSU5HX09QX0ZJRUxEX0lTX0dSRUYo ZmllbGQpICAgICAgICAgXAorICAgICgoZmllbGQpICYgWEVOTUVNX1NIQVJJTkdfT1BfRklFTERf SVNfR1JFRl9GTEFHKQorI2RlZmluZSBYRU5NRU1fU0hBUklOR19PUF9GSUVMRF9HRVRfR1JFRihm aWVsZCkgICAgICAgIFwKKyAgICAoKGZpZWxkKSAmICh+WEVOTUVNX1NIQVJJTkdfT1BfRklFTERf SVNfR1JFRl9GTEFHKSkKKworc3RydWN0IHhlbl9tZW1fc2hhcmluZ19vcCB7CisgICAgdWludDhf dCAgICAgb3A7ICAgICAvKiBYRU5NRU1fc2hhcmluZ19vcF8qICovCisgICAgZG9taWRfdCAgICAg ZG9tYWluOworCisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgbWVtX3NoYXJpbmdfb3Bfbm9t aW5hdGUgeyAgLyogT1BfTk9NSU5BVEVfeHh4ICAgICAgICAgICAqLworICAgICAgICAgICAgdW5p b24geworICAgICAgICAgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3QgZ2ZuOyAgICAgLyogSU46IGdm biB0byBub21pbmF0ZSAgICAgICAqLworICAgICAgICAgICAgICAgIHVpbnQzMl90ICAgICAgZ3Jh bnRfcmVmOyAgLyogSU46IGdyYW50IHJlZiB0byBub21pbmF0ZSAqLworICAgICAgICAgICAgfSB1 OworICAgICAgICAgICAgdWludDY0X2FsaWduZWRfdCAgaGFuZGxlOyAgICAgLyogT1VUOiB0aGUg aGFuZGxlICAgICAgICAgICAqLworICAgICAgICB9IG5vbWluYXRlOworICAgICAgICBzdHJ1Y3Qg bWVtX3NoYXJpbmdfb3Bfc2hhcmUgeyAgICAgLyogT1BfU0hBUkUvQUREX1BIWVNNQVAgKi8KKyAg ICAgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3Qgc291cmNlX2dmbjsgICAgLyogSU46IHRoZSBnZm4g b2YgdGhlIHNvdXJjZSBwYWdlICovCisgICAgICAgICAgICB1aW50NjRfYWxpZ25lZF90IHNvdXJj ZV9oYW5kbGU7IC8qIElOOiBoYW5kbGUgdG8gdGhlIHNvdXJjZSBwYWdlICovCisgICAgICAgICAg ICB1aW50NjRfYWxpZ25lZF90IGNsaWVudF9nZm47ICAgIC8qIElOOiB0aGUgY2xpZW50IGdmbiAq LworICAgICAgICAgICAgdWludDY0X2FsaWduZWRfdCBjbGllbnRfaGFuZGxlOyAvKiBJTjogaGFu ZGxlIHRvIHRoZSBjbGllbnQgcGFnZSAqLworICAgICAgICAgICAgZG9taWRfdCAgY2xpZW50X2Rv bWFpbjsgLyogSU46IHRoZSBjbGllbnQgZG9tYWluIGlkICovCisgICAgICAgIH0gc2hhcmU7Cisg ICAgICAgIHN0cnVjdCBtZW1fc2hhcmluZ19vcF9yYW5nZSB7ICAgICAgICAgLyogT1BfUkFOR0Vf U0hBUkUgKi8KKyAgICAgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3QgZmlyc3RfZ2ZuOyAgICAgIC8q IElOOiB0aGUgZmlyc3QgZ2ZuICovCisgICAgICAgICAgICB1aW50NjRfYWxpZ25lZF90IGxhc3Rf Z2ZuOyAgICAgICAvKiBJTjogdGhlIGxhc3QgZ2ZuICovCisgICAgICAgICAgICB1aW50NjRfYWxp Z25lZF90IG9wYXF1ZTsgICAgICAgICAvKiBNdXN0IGJlIHNldCB0byAwICovCisgICAgICAgICAg ICBkb21pZF90IGNsaWVudF9kb21haW47ICAgICAgICAgICAvKiBJTjogdGhlIGNsaWVudCBkb21h aW4gaWQgKi8KKyAgICAgICAgICAgIHVpbnQxNl90IF9wYWRbM107ICAgICAgICAgICAgICAgIC8q IE11c3QgYmUgc2V0IHRvIDAgKi8KKyAgICAgICAgfSByYW5nZTsKKyAgICAgICAgc3RydWN0IG1l bV9zaGFyaW5nX29wX2RlYnVnIHsgICAgIC8qIE9QX0RFQlVHX3h4eCAqLworICAgICAgICAgICAg dW5pb24geworICAgICAgICAgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3QgZ2ZuOyAgICAgIC8qIElO OiBnZm4gdG8gZGVidWcgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICB1aW50NjRfYWxpZ25l ZF90IG1mbjsgICAgICAvKiBJTjogbWZuIHRvIGRlYnVnICAgICAgICAgICovCisgICAgICAgICAg ICAgICAgdWludDMyX3QgZ3JlZjsgICAgIC8qIElOOiBncmVmIHRvIGRlYnVnICAgICAgICAgKi8K KyAgICAgICAgICAgIH0gdTsKKyAgICAgICAgfSBkZWJ1ZzsKKyAgICB9IHU7Cit9OwordHlwZWRl ZiBzdHJ1Y3QgeGVuX21lbV9zaGFyaW5nX29wIHhlbl9tZW1fc2hhcmluZ19vcF90OworREVGSU5F X1hFTl9HVUVTVF9IQU5ETEUoeGVuX21lbV9zaGFyaW5nX29wX3QpOworCisvKgorICogQXR0ZW1w dCB0byBzdGFrZSBhIGNsYWltIGZvciBhIGRvbWFpbiBvbiBhIHF1YW50aXR5IG9mIHBhZ2VzCisg KiBvZiBzeXN0ZW0gUkFNLCBidXQgX25vdF8gYXNzaWduIHNwZWNpZmljIHBhZ2VmcmFtZXMuICBP bmx5CisgKiBhcml0aG1ldGljIGlzIHBlcmZvcm1lZCBzbyB0aGUgaHlwZXJjYWxsIGlzIHZlcnkg ZmFzdCBhbmQgbmVlZAorICogbm90IGJlIHByZWVtcHRpYmxlLCB0aHVzIHNpZGVzdGVwcGluZyB0 aW1lLW9mLWNoZWNrLXRpbWUtb2YtdXNlCisgKiByYWNlcyBmb3IgbWVtb3J5IGFsbG9jYXRpb24u ICBSZXR1cm5zIDAgaWYgdGhlIGh5cGVydmlzb3IgcGFnZQorICogYWxsb2NhdG9yIGhhcyBhdG9t aWNhbGx5IGFuZCBzdWNjZXNzZnVsbHkgY2xhaW1lZCB0aGUgcmVxdWVzdGVkCisgKiBudW1iZXIg b2YgcGFnZXMsIGVsc2Ugbm9uLXplcm8uCisgKgorICogQW55IGRvbWFpbiBtYXkgaGF2ZSBvbmx5 IG9uZSBhY3RpdmUgY2xhaW0uICBXaGVuIHN1ZmZpY2llbnQgbWVtb3J5CisgKiBoYXMgYmVlbiBh bGxvY2F0ZWQgdG8gcmVzb2x2ZSB0aGUgY2xhaW0sIHRoZSBjbGFpbSBzaWxlbnRseSBleHBpcmVz LgorICogQ2xhaW1pbmcgemVybyBwYWdlcyBlZmZlY3RpdmVseSByZXNldHMgYW55IG91dHN0YW5k aW5nIGNsYWltIGFuZAorICogaXMgYWx3YXlzIHN1Y2Nlc3NmdWwuCisgKgorICogTm90ZSB0aGF0 IGEgdmFsaWQgY2xhaW0gbWF5IGJlIHN0YWtlZCBldmVuIGFmdGVyIG1lbW9yeSBoYXMgYmVlbgor ICogYWxsb2NhdGVkIGZvciBhIGRvbWFpbi4gIEluIHRoaXMgY2FzZSwgdGhlIGNsYWltIGlzIG5v dCBpbmNyZW1lbnRhbCwKKyAqIGkuZS4gaWYgdGhlIGRvbWFpbidzIHRvdF9wYWdlcyBpcyAzLCBh bmQgYSBjbGFpbSBpcyBzdGFrZWQgZm9yIDEwLAorICogb25seSA3IGFkZGl0aW9uYWwgcGFnZXMg YXJlIGNsYWltZWQuCisgKgorICogQ2FsbGVyIG11c3QgYmUgcHJpdmlsZWdlZCBvciB0aGUgaHlw ZXJjYWxsIGZhaWxzLgorICovCisjZGVmaW5lIFhFTk1FTV9jbGFpbV9wYWdlcyAgICAgICAgICAg ICAgICAgIDI0CisKKy8qCisgKiBYRU5NRU1fY2xhaW1fcGFnZXMgZmxhZ3MgLSB0aGUgYXJlIG5v IGZsYWdzIGF0IHRoaXMgdGltZS4KKyAqIFRoZSB6ZXJvIHZhbHVlIGlzIGFwcHJvcHJpYXRlLgor ICovCisKKy8qCisgKiBXaXRoIHNvbWUgbGVnYWN5IGRldmljZXMsIGNlcnRhaW4gZ3Vlc3QtcGh5 c2ljYWwgYWRkcmVzc2VzIGNhbm5vdCBzYWZlbHkKKyAqIGJlIHVzZWQgZm9yIG90aGVyIHB1cnBv c2VzLCBlLmcuIHRvIG1hcCBndWVzdCBSQU0uICBUaGlzIGh5cGVyY2FsbAorICogZW51bWVyYXRl cyB0aG9zZSByZWdpb25zIHNvIHRoZSB0b29sc3RhY2sgY2FuIGF2b2lkIHVzaW5nIHRoZW0uCisg Ki8KKyNkZWZpbmUgWEVOTUVNX3Jlc2VydmVkX2RldmljZV9tZW1vcnlfbWFwICAgMjcKK3N0cnVj dCB4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeSB7CisgICAgeGVuX3Bmbl90IHN0YXJ0X3BmbjsK KyAgICB4ZW5fdWxvbmdfdCBucl9wYWdlczsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fcmVzZXJ2 ZWRfZGV2aWNlX21lbW9yeSB4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeV90OworREVGSU5FX1hF Tl9HVUVTVF9IQU5ETEUoeGVuX3Jlc2VydmVkX2RldmljZV9tZW1vcnlfdCk7CisKK3N0cnVjdCB4 ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeV9tYXAgeworI2RlZmluZSBYRU5NRU1fUkRNX0FMTCAx IC8qIFJlcXVlc3QgYWxsIHJlZ2lvbnMgKGlnbm9yZSBkZXYgdW5pb24pLiAqLworICAgIC8qIElO ICovCisgICAgdWludDMyX3QgZmxhZ3M7CisgICAgLyoKKyAgICAgKiBJTi9PVVQKKyAgICAgKgor ICAgICAqIEdldHMgc2V0IHRvIHRoZSByZXF1aXJlZCBudW1iZXIgb2YgZW50cmllcyB3aGVuIHRv byBsb3csCisgICAgICogc2lnbmFsZWQgYnkgZXJyb3IgY29kZSAtRVJBTkdFLgorICAgICAqLwor ICAgIHVuc2lnbmVkIGludCBucl9lbnRyaWVzOworICAgIC8qIE9VVCAqLworICAgIFhFTl9HVUVT VF9IQU5ETEUoeGVuX3Jlc2VydmVkX2RldmljZV9tZW1vcnlfdCkgYnVmZmVyOworICAgIC8qIElO ICovCisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgcGh5c2Rldl9wY2lfZGV2aWNlIHBjaTsK KyAgICB9IGRldjsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9y eV9tYXAgeGVuX3Jlc2VydmVkX2RldmljZV9tZW1vcnlfbWFwX3Q7CitERUZJTkVfWEVOX0dVRVNU X0hBTkRMRSh4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeV9tYXBfdCk7CisKKyNlbmRpZiAvKiBk ZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykgKi8KKworLyoKKyAqIFhF Tk1FTV9nZXRfdm51bWFpbmZvIHVzZWQgYnkgZ3Vlc3QgdG8gZ2V0CisgKiB2TlVNQSB0b3BvbG9n eSBmcm9tIGh5cGVydmlzb3IuCisgKi8KKyNkZWZpbmUgWEVOTUVNX2dldF92bnVtYWluZm8gICAg ICAgICAgICAgICAgMjYKKworLyogdk5VTUEgbm9kZSBtZW1vcnkgcmFuZ2VzICovCitzdHJ1Y3Qg eGVuX3ZtZW1yYW5nZSB7CisgICAgdWludDY0X3Qgc3RhcnQsIGVuZDsKKyAgICB1bnNpZ25lZCBp bnQgZmxhZ3M7CisgICAgdW5zaWduZWQgaW50IG5pZDsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5f dm1lbXJhbmdlIHhlbl92bWVtcmFuZ2VfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl92 bWVtcmFuZ2VfdCk7CisKKy8qCisgKiB2TlVNQSB0b3BvbG9neSBzcGVjaWZpZXMgdk5VTUEgbm9k ZSBudW1iZXIsIGRpc3RhbmNlIHRhYmxlLAorICogbWVtb3J5IHJhbmdlcyBhbmQgdmNwdSBtYXBw aW5nIHByb3ZpZGVkIGZvciBndWVzdHMuCisgKiBYRU5NRU1fZ2V0X3ZudW1haW5mbyBoeXBlcmNh bGwgZXhwZWN0cyB0byBzZWUgZnJvbSBndWVzdAorICogbnJfdm5vZGVzLCBucl92bWVtcmFuZ2Vz IGFuZCBucl92Y3B1cyB0byBpbmRpY2F0ZSBhdmFpbGFibGUgbWVtb3J5LgorICogQWZ0ZXIgZmls bGluZyBndWVzdHMgc3RydWN0dXJlcywgbnJfdm5vZGVzLCBucl92bWVtcmFuZ2VzIGFuZCBucl92 Y3B1cworICogY29waWVkIGJhY2sgdG8gZ3Vlc3QuIERvbWFpbiByZXR1cm5zIGV4cGVjdGVkIHZh bHVlcyBvZiBucl92bm9kZXMsCisgKiBucl92bWVtcmFuZ2VzIGFuZCBucl92Y3B1cyB0byBndWVz dCBpZiB0aGUgdmFsdWVzIHdoZXJlIGluY29ycmVjdC4KKyAqLworc3RydWN0IHhlbl92bnVtYV90 b3BvbG9neV9pbmZvIHsKKyAgICAvKiBJTiAqLworICAgIGRvbWlkX3QgZG9taWQ7CisgICAgdWlu dDE2X3QgcGFkOworICAgIC8qIElOL09VVCAqLworICAgIHVuc2lnbmVkIGludCBucl92bm9kZXM7 CisgICAgdW5zaWduZWQgaW50IG5yX3ZjcHVzOworICAgIHVuc2lnbmVkIGludCBucl92bWVtcmFu Z2VzOworICAgIC8qIE9VVCAqLworICAgIHVuaW9uIHsKKyAgICAgICAgWEVOX0dVRVNUX0hBTkRM RSh1aW50KSBoOworICAgICAgICB1aW50NjRfdCBwYWQ7CisgICAgfSB2ZGlzdGFuY2U7CisgICAg dW5pb24geworICAgICAgICBYRU5fR1VFU1RfSEFORExFKHVpbnQpIGg7CisgICAgICAgIHVpbnQ2 NF90IHBhZDsKKyAgICB9IHZjcHVfdG9fdm5vZGU7CisgICAgdW5pb24geworICAgICAgICBYRU5f R1VFU1RfSEFORExFKHhlbl92bWVtcmFuZ2VfdCkgaDsKKyAgICAgICAgdWludDY0X3QgcGFkOwor ICAgIH0gdm1lbXJhbmdlOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl92bnVtYV90b3BvbG9neV9p bmZvIHhlbl92bnVtYV90b3BvbG9neV9pbmZvX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4 ZW5fdm51bWFfdG9wb2xvZ3lfaW5mb190KTsKKworLyogTmV4dCBhdmFpbGFibGUgc3Vib3AgbnVt YmVyIGlzIDI4ICovCisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfTUVNT1JZX0hfXyAqLworCisv KgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNE IgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMt bW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3BoeXNkZXYu aCBiL2luY2x1ZGUveGVuL3BoeXNkZXYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAuLjBlNTQ2MzU2MgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL3BoeXNkZXYu aApAQCAtMCwwICsxLDM4NyBAQAorLyoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRo aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0 d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg aW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHks IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgor ICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8g d2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0 aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFs bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAq IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO WSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE IFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxM IFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBD TEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP TiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBP RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIK KyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDYs IEtlaXIgRnJhc2VyCisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfUEhZU0RFVl9IX18KKyNk ZWZpbmUgX19YRU5fUFVCTElDX1BIWVNERVZfSF9fCisKKyNpbmNsdWRlICJ4ZW4uaCIKKworLyoK KyAqIFByb3RvdHlwZSBmb3IgdGhpcyBoeXBlcmNhbGwgaXM6CisgKiAgaW50IHBoeXNkZXZfb3Ao aW50IGNtZCwgdm9pZCAqYXJncykKKyAqIEBjbWQgID09IFBIWVNERVZPUF8/Pz8gKHBoeXNkZXYg b3BlcmF0aW9uKS4KKyAqIEBhcmdzID09IE9wZXJhdGlvbi1zcGVjaWZpYyBleHRyYSBhcmd1bWVu dHMgKE5VTEwgaWYgbm9uZSkuCisgKi8KKworLyoKKyAqIE5vdGlmeSBlbmQtb2YtaW50ZXJydXB0 IChFT0kpIGZvciB0aGUgc3BlY2lmaWVkIElSUS4KKyAqIEBhcmcgPT0gcG9pbnRlciB0byBwaHlz ZGV2X2VvaSBzdHJ1Y3R1cmUuCisgKi8KKyNkZWZpbmUgUEhZU0RFVk9QX2VvaSAgICAgICAgICAg ICAgICAgICAxMgorc3RydWN0IHBoeXNkZXZfZW9pIHsKKyAgICAvKiBJTiAqLworICAgIHVpbnQz Ml90IGlycTsKK307Cit0eXBlZGVmIHN0cnVjdCBwaHlzZGV2X2VvaSBwaHlzZGV2X2VvaV90Owor REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUocGh5c2Rldl9lb2lfdCk7CisKKy8qCisgKiBSZWdpc3Rl ciBhIHNoYXJlZCBwYWdlIGZvciB0aGUgaHlwZXJ2aXNvciB0byBpbmRpY2F0ZSB3aGV0aGVyIHRo ZSBndWVzdAorICogbXVzdCBpc3N1ZSBQSFlTREVWT1BfZW9pLiBUaGUgc2VtYW50aWNzIG9mIFBI WVNERVZPUF9lb2kgY2hhbmdlIHNsaWdodGx5CisgKiBvbmNlIHRoZSBndWVzdCB1c2VkIHRoaXMg ZnVuY3Rpb24gaW4gdGhhdCB0aGUgYXNzb2NpYXRlZCBldmVudCBjaGFubmVsCisgKiB3aWxsIGF1 dG9tYXRpY2FsbHkgZ2V0IHVubWFza2VkLiBUaGUgcGFnZSByZWdpc3RlcmVkIGlzIHVzZWQgYXMg YSBiaXQKKyAqIGFycmF5IGluZGV4ZWQgYnkgWGVuJ3MgUElSUSB2YWx1ZS4KKyAqLworI2RlZmlu ZSBQSFlTREVWT1BfcGlycV9lb2lfZ21mbl92MSAgICAgICAxNworLyoKKyAqIFJlZ2lzdGVyIGEg c2hhcmVkIHBhZ2UgZm9yIHRoZSBoeXBlcnZpc29yIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlCisg KiBndWVzdCBtdXN0IGlzc3VlIFBIWVNERVZPUF9lb2kuIFRoaXMgaHlwZXJjYWxsIGlzIHZlcnkg c2ltaWxhciB0bworICogUEhZU0RFVk9QX3BpcnFfZW9pX2dtZm5fdjEgYnV0IGl0IGRvZXNuJ3Qg Y2hhbmdlIHRoZSBzZW1hbnRpY3Mgb2YKKyAqIFBIWVNERVZPUF9lb2kuIFRoZSBwYWdlIHJlZ2lz dGVyZWQgaXMgdXNlZCBhcyBhIGJpdCBhcnJheSBpbmRleGVkIGJ5CisgKiBYZW4ncyBQSVJRIHZh bHVlLgorICovCisjZGVmaW5lIFBIWVNERVZPUF9waXJxX2VvaV9nbWZuX3YyICAgICAgIDI4Citz dHJ1Y3QgcGh5c2Rldl9waXJxX2VvaV9nbWZuIHsKKyAgICAvKiBJTiAqLworICAgIHhlbl9wZm5f dCBnbWZuOworfTsKK3R5cGVkZWYgc3RydWN0IHBoeXNkZXZfcGlycV9lb2lfZ21mbiBwaHlzZGV2 X3BpcnFfZW9pX2dtZm5fdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHBoeXNkZXZfcGlycV9l b2lfZ21mbl90KTsKKworLyoKKyAqIFF1ZXJ5IHRoZSBzdGF0dXMgb2YgYW4gSVJRIGxpbmUuCisg KiBAYXJnID09IHBvaW50ZXIgdG8gcGh5c2Rldl9pcnFfc3RhdHVzX3F1ZXJ5IHN0cnVjdHVyZS4K KyAqLworI2RlZmluZSBQSFlTREVWT1BfaXJxX3N0YXR1c19xdWVyeSAgICAgICA1CitzdHJ1Y3Qg cGh5c2Rldl9pcnFfc3RhdHVzX3F1ZXJ5IHsKKyAgICAvKiBJTiAqLworICAgIHVpbnQzMl90IGly cTsKKyAgICAvKiBPVVQgKi8KKyAgICB1aW50MzJfdCBmbGFnczsgLyogWEVOSVJRU1RBVF8qICov Cit9OwordHlwZWRlZiBzdHJ1Y3QgcGh5c2Rldl9pcnFfc3RhdHVzX3F1ZXJ5IHBoeXNkZXZfaXJx X3N0YXR1c19xdWVyeV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUocGh5c2Rldl9pcnFfc3Rh dHVzX3F1ZXJ5X3QpOworCisvKiBOZWVkIHRvIGNhbGwgUEhZU0RFVk9QX2VvaSB3aGVuIHRoZSBJ UlEgaGFzIGJlZW4gc2VydmljZWQ/ICovCisjZGVmaW5lIF9YRU5JUlFTVEFUX25lZWRzX2VvaSAg ICgwKQorI2RlZmluZSAgWEVOSVJRU1RBVF9uZWVkc19lb2kgICAoMVU8PF9YRU5JUlFTVEFUX25l ZWRzX2VvaSkKKworLyogSVJRIHNoYXJlZCBieSBtdWx0aXBsZSBndWVzdHM/ICovCisjZGVmaW5l IF9YRU5JUlFTVEFUX3NoYXJlZCAgICAgICgxKQorI2RlZmluZSAgWEVOSVJRU1RBVF9zaGFyZWQg ICAgICAoMVU8PF9YRU5JUlFTVEFUX3NoYXJlZCkKKworLyoKKyAqIFNldCB0aGUgY3VycmVudCBW Q1BVJ3MgSS9PIHByaXZpbGVnZSBsZXZlbC4KKyAqIEBhcmcgPT0gcG9pbnRlciB0byBwaHlzZGV2 X3NldF9pb3BsIHN0cnVjdHVyZS4KKyAqLworI2RlZmluZSBQSFlTREVWT1Bfc2V0X2lvcGwgICAg ICAgICAgICAgICA2CitzdHJ1Y3QgcGh5c2Rldl9zZXRfaW9wbCB7CisgICAgLyogSU4gKi8KKyAg ICB1aW50MzJfdCBpb3BsOworfTsKK3R5cGVkZWYgc3RydWN0IHBoeXNkZXZfc2V0X2lvcGwgcGh5 c2Rldl9zZXRfaW9wbF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUocGh5c2Rldl9zZXRfaW9w bF90KTsKKworLyoKKyAqIFNldCB0aGUgY3VycmVudCBWQ1BVJ3MgSS9PLXBvcnQgcGVybWlzc2lv bnMgYml0bWFwLgorICogQGFyZyA9PSBwb2ludGVyIHRvIHBoeXNkZXZfc2V0X2lvYml0bWFwIHN0 cnVjdHVyZS4KKyAqLworI2RlZmluZSBQSFlTREVWT1Bfc2V0X2lvYml0bWFwICAgICAgICAgICA3 CitzdHJ1Y3QgcGh5c2Rldl9zZXRfaW9iaXRtYXAgeworICAgIC8qIElOICovCisjaWYgX19YRU5f SU5URVJGQUNFX1ZFUlNJT05fXyA+PSAweDAwMDMwMjA1CisgICAgWEVOX0dVRVNUX0hBTkRMRSh1 aW50OCkgYml0bWFwOworI2Vsc2UKKyAgICB1aW50OF90ICpiaXRtYXA7CisjZW5kaWYKKyAgICB1 aW50MzJfdCBucl9wb3J0czsKK307Cit0eXBlZGVmIHN0cnVjdCBwaHlzZGV2X3NldF9pb2JpdG1h cCBwaHlzZGV2X3NldF9pb2JpdG1hcF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUocGh5c2Rl dl9zZXRfaW9iaXRtYXBfdCk7CisKKy8qCisgKiBSZWFkIG9yIHdyaXRlIGFuIElPLUFQSUMgcmVn aXN0ZXIuCisgKiBAYXJnID09IHBvaW50ZXIgdG8gcGh5c2Rldl9hcGljIHN0cnVjdHVyZS4KKyAq LworI2RlZmluZSBQSFlTREVWT1BfYXBpY19yZWFkICAgICAgICAgICAgICA4CisjZGVmaW5lIFBI WVNERVZPUF9hcGljX3dyaXRlICAgICAgICAgICAgIDkKK3N0cnVjdCBwaHlzZGV2X2FwaWMgewor ICAgIC8qIElOICovCisgICAgdW5zaWduZWQgbG9uZyBhcGljX3BoeXNiYXNlOworICAgIHVpbnQz Ml90IHJlZzsKKyAgICAvKiBJTiBvciBPVVQgKi8KKyAgICB1aW50MzJfdCB2YWx1ZTsKK307Cit0 eXBlZGVmIHN0cnVjdCBwaHlzZGV2X2FwaWMgcGh5c2Rldl9hcGljX3Q7CitERUZJTkVfWEVOX0dV RVNUX0hBTkRMRShwaHlzZGV2X2FwaWNfdCk7CisKKy8qCisgKiBBbGxvY2F0ZSBvciBmcmVlIGEg cGh5c2ljYWwgdXBjYWxsIHZlY3RvciBmb3IgdGhlIHNwZWNpZmllZCBJUlEgbGluZS4KKyAqIEBh cmcgPT0gcG9pbnRlciB0byBwaHlzZGV2X2lycSBzdHJ1Y3R1cmUuCisgKi8KKyNkZWZpbmUgUEhZ U0RFVk9QX2FsbG9jX2lycV92ZWN0b3IgICAgICAxMAorI2RlZmluZSBQSFlTREVWT1BfZnJlZV9p cnFfdmVjdG9yICAgICAgIDExCitzdHJ1Y3QgcGh5c2Rldl9pcnEgeworICAgIC8qIElOICovCisg ICAgdWludDMyX3QgaXJxOworICAgIC8qIElOIG9yIE9VVCAqLworICAgIHVpbnQzMl90IHZlY3Rv cjsKK307Cit0eXBlZGVmIHN0cnVjdCBwaHlzZGV2X2lycSBwaHlzZGV2X2lycV90OworREVGSU5F X1hFTl9HVUVTVF9IQU5ETEUocGh5c2Rldl9pcnFfdCk7CisgCisjZGVmaW5lIE1BUF9QSVJRX1RZ UEVfTVNJICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1BUF9QSVJRX1RZUEVfR1NJICAgICAg ICAgICAgICAgMHgxCisjZGVmaW5lIE1BUF9QSVJRX1RZUEVfVU5LTk9XTiAgICAgICAgICAgMHgy CisjZGVmaW5lIE1BUF9QSVJRX1RZUEVfTVNJX1NFRyAgICAgICAgICAgMHgzCisjZGVmaW5lIE1B UF9QSVJRX1RZUEVfTVVMVElfTVNJICAgICAgICAgMHg0CisKKyNkZWZpbmUgUEhZU0RFVk9QX21h cF9waXJxICAgICAgICAgICAgICAgMTMKK3N0cnVjdCBwaHlzZGV2X21hcF9waXJxIHsKKyAgICBk b21pZF90IGRvbWlkOworICAgIC8qIElOICovCisgICAgaW50IHR5cGU7CisgICAgLyogSU4gKGln bm9yZWQgZm9yIC4uLl9NVUxUSV9NU0kpICovCisgICAgaW50IGluZGV4OworICAgIC8qIElOIG9y IE9VVCAqLworICAgIGludCBwaXJxOworICAgIC8qIElOIC0gaGlnaCAxNiBiaXRzIGhvbGQgc2Vn bWVudCBmb3IgLi4uX01TSV9TRUcgYW5kIC4uLl9NVUxUSV9NU0kgKi8KKyAgICBpbnQgYnVzOwor ICAgIC8qIElOICovCisgICAgaW50IGRldmZuOworICAgIC8qIElOIChhbHNvIE9VVCBmb3IgLi4u X01VTFRJX01TSSkgKi8KKyAgICBpbnQgZW50cnlfbnI7CisgICAgLyogSU4gKi8KKyAgICB1aW50 NjRfdCB0YWJsZV9iYXNlOworfTsKK3R5cGVkZWYgc3RydWN0IHBoeXNkZXZfbWFwX3BpcnEgcGh5 c2Rldl9tYXBfcGlycV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUocGh5c2Rldl9tYXBfcGly cV90KTsKKworI2RlZmluZSBQSFlTREVWT1BfdW5tYXBfcGlycSAgICAgICAgICAgICAxNAorc3Ry dWN0IHBoeXNkZXZfdW5tYXBfcGlycSB7CisgICAgZG9taWRfdCBkb21pZDsKKyAgICAvKiBJTiAq LworICAgIGludCBwaXJxOworfTsKKwordHlwZWRlZiBzdHJ1Y3QgcGh5c2Rldl91bm1hcF9waXJx IHBoeXNkZXZfdW5tYXBfcGlycV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUocGh5c2Rldl91 bm1hcF9waXJxX3QpOworCisjZGVmaW5lIFBIWVNERVZPUF9tYW5hZ2VfcGNpX2FkZCAgICAgICAg IDE1CisjZGVmaW5lIFBIWVNERVZPUF9tYW5hZ2VfcGNpX3JlbW92ZSAgICAgIDE2CitzdHJ1Y3Qg cGh5c2Rldl9tYW5hZ2VfcGNpIHsKKyAgICAvKiBJTiAqLworICAgIHVpbnQ4X3QgYnVzOworICAg IHVpbnQ4X3QgZGV2Zm47Cit9OyAKKwordHlwZWRlZiBzdHJ1Y3QgcGh5c2Rldl9tYW5hZ2VfcGNp IHBoeXNkZXZfbWFuYWdlX3BjaV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUocGh5c2Rldl9t YW5hZ2VfcGNpX3QpOworCisjZGVmaW5lIFBIWVNERVZPUF9yZXN0b3JlX21zaSAgICAgICAgICAg IDE5CitzdHJ1Y3QgcGh5c2Rldl9yZXN0b3JlX21zaSB7CisgICAgLyogSU4gKi8KKyAgICB1aW50 OF90IGJ1czsKKyAgICB1aW50OF90IGRldmZuOworfTsKK3R5cGVkZWYgc3RydWN0IHBoeXNkZXZf cmVzdG9yZV9tc2kgcGh5c2Rldl9yZXN0b3JlX21zaV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5E TEUocGh5c2Rldl9yZXN0b3JlX21zaV90KTsKKworI2RlZmluZSBQSFlTREVWT1BfbWFuYWdlX3Bj aV9hZGRfZXh0ICAgICAyMAorc3RydWN0IHBoeXNkZXZfbWFuYWdlX3BjaV9leHQgeworICAgIC8q IElOICovCisgICAgdWludDhfdCBidXM7CisgICAgdWludDhfdCBkZXZmbjsKKyAgICB1bnNpZ25l ZCBpc19leHRmbjsKKyAgICB1bnNpZ25lZCBpc192aXJ0Zm47CisgICAgc3RydWN0IHsKKyAgICAg ICAgdWludDhfdCBidXM7CisgICAgICAgIHVpbnQ4X3QgZGV2Zm47CisgICAgfSBwaHlzZm47Cit9 OworCit0eXBlZGVmIHN0cnVjdCBwaHlzZGV2X21hbmFnZV9wY2lfZXh0IHBoeXNkZXZfbWFuYWdl X3BjaV9leHRfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHBoeXNkZXZfbWFuYWdlX3BjaV9l eHRfdCk7CisKKy8qCisgKiBBcmd1bWVudCB0byBwaHlzZGV2X29wX2NvbXBhdCgpIGh5cGVyY2Fs bC4gU3VwZXJjZWRlZCBieSBuZXcgcGh5c2Rldl9vcCgpCisgKiBoeXBlcmNhbGwgc2luY2UgMHgw MDAzMDIwMi4KKyAqLworc3RydWN0IHBoeXNkZXZfb3AgeworICAgIHVpbnQzMl90IGNtZDsKKyAg ICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCBwaHlzZGV2X2lycV9zdGF0dXNfcXVlcnkgICAgICBp cnFfc3RhdHVzX3F1ZXJ5OworICAgICAgICBzdHJ1Y3QgcGh5c2Rldl9zZXRfaW9wbCAgICAgICAg ICAgICAgc2V0X2lvcGw7CisgICAgICAgIHN0cnVjdCBwaHlzZGV2X3NldF9pb2JpdG1hcCAgICAg ICAgICBzZXRfaW9iaXRtYXA7CisgICAgICAgIHN0cnVjdCBwaHlzZGV2X2FwaWMgICAgICAgICAg ICAgICAgICBhcGljX29wOworICAgICAgICBzdHJ1Y3QgcGh5c2Rldl9pcnEgICAgICAgICAgICAg ICAgICAgaXJxX29wOworICAgIH0gdTsKK307Cit0eXBlZGVmIHN0cnVjdCBwaHlzZGV2X29wIHBo eXNkZXZfb3BfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHBoeXNkZXZfb3BfdCk7CisKKyNk ZWZpbmUgUEhZU0RFVk9QX3NldHVwX2dzaSAgICAyMQorc3RydWN0IHBoeXNkZXZfc2V0dXBfZ3Np IHsKKyAgICBpbnQgZ3NpOworICAgIC8qIElOICovCisgICAgdWludDhfdCB0cmlnZ2VyaW5nOwor ICAgIC8qIElOICovCisgICAgdWludDhfdCBwb2xhcml0eTsKKyAgICAvKiBJTiAqLworfTsKKwor dHlwZWRlZiBzdHJ1Y3QgcGh5c2Rldl9zZXR1cF9nc2kgcGh5c2Rldl9zZXR1cF9nc2lfdDsKK0RF RklORV9YRU5fR1VFU1RfSEFORExFKHBoeXNkZXZfc2V0dXBfZ3NpX3QpOworCisvKiBsZWF2ZSBQ SFlTREVWT1AgMjIgZnJlZSAqLworCisvKiB0eXBlIGlzIE1BUF9QSVJRX1RZUEVfR1NJIG9yIE1B UF9QSVJRX1RZUEVfTVNJCisgKiB0aGUgaHlwZXJjYWxsIHJldHVybnMgYSBmcmVlIHBpcnEgKi8K KyNkZWZpbmUgUEhZU0RFVk9QX2dldF9mcmVlX3BpcnEgICAgMjMKK3N0cnVjdCBwaHlzZGV2X2dl dF9mcmVlX3BpcnEgeworICAgIC8qIElOICovIAorICAgIGludCB0eXBlOworICAgIC8qIE9VVCAq LworICAgIHVpbnQzMl90IHBpcnE7Cit9OworCit0eXBlZGVmIHN0cnVjdCBwaHlzZGV2X2dldF9m cmVlX3BpcnEgcGh5c2Rldl9nZXRfZnJlZV9waXJxX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRM RShwaHlzZGV2X2dldF9mcmVlX3BpcnFfdCk7CisKKyNkZWZpbmUgWEVOX1BDSV9NTUNGR19SRVNF UlZFRCAgICAgICAgIDB4MQorCisjZGVmaW5lIFBIWVNERVZPUF9wY2lfbW1jZmdfcmVzZXJ2ZWQg ICAgMjQKK3N0cnVjdCBwaHlzZGV2X3BjaV9tbWNmZ19yZXNlcnZlZCB7CisgICAgdWludDY0X3Qg YWRkcmVzczsKKyAgICB1aW50MTZfdCBzZWdtZW50OworICAgIHVpbnQ4X3Qgc3RhcnRfYnVzOwor ICAgIHVpbnQ4X3QgZW5kX2J1czsKKyAgICB1aW50MzJfdCBmbGFnczsKK307Cit0eXBlZGVmIHN0 cnVjdCBwaHlzZGV2X3BjaV9tbWNmZ19yZXNlcnZlZCBwaHlzZGV2X3BjaV9tbWNmZ19yZXNlcnZl ZF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUocGh5c2Rldl9wY2lfbW1jZmdfcmVzZXJ2ZWRf dCk7CisKKyNkZWZpbmUgWEVOX1BDSV9ERVZfRVhURk4gICAgICAgICAgICAgIDB4MQorI2RlZmlu ZSBYRU5fUENJX0RFVl9WSVJURk4gICAgICAgICAgICAgMHgyCisjZGVmaW5lIFhFTl9QQ0lfREVW X1BYTSAgICAgICAgICAgICAgICAweDQKKworI2RlZmluZSBQSFlTREVWT1BfcGNpX2RldmljZV9h ZGQgICAgICAgIDI1CitzdHJ1Y3QgcGh5c2Rldl9wY2lfZGV2aWNlX2FkZCB7CisgICAgLyogSU4g Ki8KKyAgICB1aW50MTZfdCBzZWc7CisgICAgdWludDhfdCBidXM7CisgICAgdWludDhfdCBkZXZm bjsKKyAgICB1aW50MzJfdCBmbGFnczsKKyAgICBzdHJ1Y3QgeworICAgICAgICB1aW50OF90IGJ1 czsKKyAgICAgICAgdWludDhfdCBkZXZmbjsKKyAgICB9IHBoeXNmbjsKKyAgICAvKgorICAgICAq IE9wdGlvbmFsIHBhcmFtZXRlcnMgYXJyYXkuCisgICAgICogRmlyc3QgZWxlbWVudCAoWzBdKSBp cyBQWE0gZG9tYWluIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGV2aWNlIChpZgorICAgICAqIFhFTl9Q Q0lfREVWX1BYTSBpcyBzZXQpCisgICAgICovCisjaWYgZGVmaW5lZChfX1NURENfVkVSU0lPTl9f KSAmJiBfX1NURENfVkVSU0lPTl9fID49IDE5OTkwMUwKKyAgICB1aW50MzJfdCBvcHRhcnJbXTsK KyNlbGlmIGRlZmluZWQoX19HTlVDX18pCisgICAgdWludDMyX3Qgb3B0YXJyWzBdOworI2VuZGlm Cit9OwordHlwZWRlZiBzdHJ1Y3QgcGh5c2Rldl9wY2lfZGV2aWNlX2FkZCBwaHlzZGV2X3BjaV9k ZXZpY2VfYWRkX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShwaHlzZGV2X3BjaV9kZXZpY2Vf YWRkX3QpOworCisjZGVmaW5lIFBIWVNERVZPUF9wY2lfZGV2aWNlX3JlbW92ZSAgICAgMjYKKyNk ZWZpbmUgUEhZU0RFVk9QX3Jlc3RvcmVfbXNpX2V4dCAgICAgICAyNworLyoKKyAqIERvbTAgc2hv dWxkIHVzZSB0aGVzZSB0d28gdG8gYW5ub3VuY2UgTU1JTyByZXNvdXJjZXMgYXNzaWduZWQgdG8K KyAqIE1TSS1YIGNhcGFibGUgZGV2aWNlcyB3b24ndCAocHJlcGFyZSkgb3IgbWF5IChyZWxlYXNl KSBjaGFuZ2UuCisgKi8KKyNkZWZpbmUgUEhZU0RFVk9QX3ByZXBhcmVfbXNpeCAgICAgICAgICAz MAorI2RlZmluZSBQSFlTREVWT1BfcmVsZWFzZV9tc2l4ICAgICAgICAgIDMxCitzdHJ1Y3QgcGh5 c2Rldl9wY2lfZGV2aWNlIHsKKyAgICAvKiBJTiAqLworICAgIHVpbnQxNl90IHNlZzsKKyAgICB1 aW50OF90IGJ1czsKKyAgICB1aW50OF90IGRldmZuOworfTsKK3R5cGVkZWYgc3RydWN0IHBoeXNk ZXZfcGNpX2RldmljZSBwaHlzZGV2X3BjaV9kZXZpY2VfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFO RExFKHBoeXNkZXZfcGNpX2RldmljZV90KTsKKworI2RlZmluZSBQSFlTREVWT1BfREJHUF9SRVNF VF9QUkVQQVJFICAgIDEKKyNkZWZpbmUgUEhZU0RFVk9QX0RCR1BfUkVTRVRfRE9ORSAgICAgICAy CisKKyNkZWZpbmUgUEhZU0RFVk9QX0RCR1BfQlVTX1VOS05PV04gICAgICAwCisjZGVmaW5lIFBI WVNERVZPUF9EQkdQX0JVU19QQ0kgICAgICAgICAgMQorCisjZGVmaW5lIFBIWVNERVZPUF9kYmdw X29wICAgICAgICAgICAgICAgMjkKK3N0cnVjdCBwaHlzZGV2X2RiZ3Bfb3AgeworICAgIC8qIElO ICovCisgICAgdWludDhfdCBvcDsKKyAgICB1aW50OF90IGJ1czsKKyAgICB1bmlvbiB7CisgICAg ICAgIHN0cnVjdCBwaHlzZGV2X3BjaV9kZXZpY2UgcGNpOworICAgIH0gdTsKK307Cit0eXBlZGVm IHN0cnVjdCBwaHlzZGV2X2RiZ3Bfb3AgcGh5c2Rldl9kYmdwX29wX3Q7CitERUZJTkVfWEVOX0dV RVNUX0hBTkRMRShwaHlzZGV2X2RiZ3Bfb3BfdCk7CisKKy8qCisgKiBOb3RpZnkgdGhhdCBzb21l IFBJUlEtYm91bmQgZXZlbnQgY2hhbm5lbHMgaGF2ZSBiZWVuIHVubWFza2VkLgorICogKiogVGhp cyBjb21tYW5kIGlzIG9ic29sZXRlIHNpbmNlIGludGVyZmFjZSB2ZXJzaW9uIDB4MDAwMzAyMDIg YW5kIGlzICoqCisgKiAqKiB1bnN1cHBvcnRlZCBieSBuZXdlciB2ZXJzaW9ucyBvZiBYZW4uICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKioKKyAqLworI2RlZmluZSBQSFlTREVWT1BfSVJR X1VOTUFTS19OT1RJRlkgICAgICA0CisKKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwg MHgwMDA0MDYwMAorLyoKKyAqIFRoZXNlIGFsbC1jYXBpdGFscyBwaHlzZGV2IG9wZXJhdGlvbiBu YW1lcyBhcmUgc3VwZXJjZWRlZCBieSB0aGUgbmV3IG5hbWVzCisgKiAoZGVmaW5lZCBhYm92ZSkg c2luY2UgaW50ZXJmYWNlIHZlcnNpb24gMHgwMDAzMDIwMi4gVGhlIGd1YXJkIGFib3ZlIHdhcwor ICogYWRkZWQgcG9zdC00LjUgb25seSB0aG91Z2ggYW5kIGhlbmNlIHNob3VsZG4ndCBjaGVjayBm b3IgMHgwMDAzMDIwMi4KKyAqLworI2RlZmluZSBQSFlTREVWT1BfSVJRX1NUQVRVU19RVUVSWSAg ICAgICBQSFlTREVWT1BfaXJxX3N0YXR1c19xdWVyeQorI2RlZmluZSBQSFlTREVWT1BfU0VUX0lP UEwgICAgICAgICAgICAgICBQSFlTREVWT1Bfc2V0X2lvcGwKKyNkZWZpbmUgUEhZU0RFVk9QX1NF VF9JT0JJVE1BUCAgICAgICAgICAgUEhZU0RFVk9QX3NldF9pb2JpdG1hcAorI2RlZmluZSBQSFlT REVWT1BfQVBJQ19SRUFEICAgICAgICAgICAgICBQSFlTREVWT1BfYXBpY19yZWFkCisjZGVmaW5l IFBIWVNERVZPUF9BUElDX1dSSVRFICAgICAgICAgICAgIFBIWVNERVZPUF9hcGljX3dyaXRlCisj ZGVmaW5lIFBIWVNERVZPUF9BU1NJR05fVkVDVE9SICAgICAgICAgIFBIWVNERVZPUF9hbGxvY19p cnFfdmVjdG9yCisjZGVmaW5lIFBIWVNERVZPUF9GUkVFX1ZFQ1RPUiAgICAgICAgICAgIFBIWVNE RVZPUF9mcmVlX2lycV92ZWN0b3IKKyNkZWZpbmUgUEhZU0RFVk9QX0lSUV9ORUVEU19VTk1BU0tf Tk9USUZZIFhFTklSUVNUQVRfbmVlZHNfZW9pCisjZGVmaW5lIFBIWVNERVZPUF9JUlFfU0hBUkVE ICAgICAgICAgICAgIFhFTklSUVNUQVRfc2hhcmVkCisjZW5kaWYKKworI2lmIF9fWEVOX0lOVEVS RkFDRV9WRVJTSU9OX18gPCAweDAwMDQwMjAwCisjZGVmaW5lIFBIWVNERVZPUF9waXJxX2VvaV9n bWZuIFBIWVNERVZPUF9waXJxX2VvaV9nbWZuX3YxCisjZWxzZQorI2RlZmluZSBQSFlTREVWT1Bf cGlycV9lb2lfZ21mbiBQSFlTREVWT1BfcGlycV9lb2lfZ21mbl92MgorI2VuZGlmCisKKyNlbmRp ZiAvKiBfX1hFTl9QVUJMSUNfUEhZU0RFVl9IX18gKi8KKworLyoKKyAqIExvY2FsIHZhcmlhYmxl czoKKyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0 OiA0CisgKiB0YWItd2lkdGg6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgor ICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi90cmFjZS5oIGIvaW5jbHVkZS94ZW4vdHJhY2Uu aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjM3NDZiZmYyNgotLS0gL2Rl di9udWxsCisrKyBiL2luY2x1ZGUveGVuL3RyYWNlLmgKQEAgLTAsMCArMSwzMzkgQEAKKy8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKKyAqIGluY2x1ZGUvcHVibGljL3RyYWNlLmgKKyAqIAorICogUGVy bWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24g b2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1 bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0 d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRo ZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJp YnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUs IGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlz aGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisg KiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBz aGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9u cyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJ UyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQs IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB QklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJ TkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBI T0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFC SUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lT RSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09G VFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgor ICoKKyAqIE1hcmsgV2lsbGlhbXNvbiwgKEMpIDIwMDQgSW50ZWwgUmVzZWFyY2ggQ2FtYnJpZGdl CisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQmluIFJlbgorICovCisKKyNpZm5kZWYgX19YRU5fUFVC TElDX1RSQUNFX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfVFJBQ0VfSF9fCisKKyNkZWZpbmUg VFJBQ0VfRVhUUkFfTUFYICAgIDcKKyNkZWZpbmUgVFJBQ0VfRVhUUkFfU0hJRlQgMjgKKworLyog VHJhY2UgY2xhc3NlcyAqLworI2RlZmluZSBUUkNfQ0xTX1NISUZUIDE2CisjZGVmaW5lIFRSQ19H RU4gICAgICAweDAwMDFmMDAwICAgIC8qIEdlbmVyYWwgdHJhY2UgICAgICAgICAgICAqLworI2Rl ZmluZSBUUkNfU0NIRUQgICAgMHgwMDAyZjAwMCAgICAvKiBYZW4gU2NoZWR1bGVyIHRyYWNlICAg ICAgKi8KKyNkZWZpbmUgVFJDX0RPTTBPUCAgIDB4MDAwNGYwMDAgICAgLyogWGVuIERPTTAgb3Bl cmF0aW9uIHRyYWNlICovCisjZGVmaW5lIFRSQ19IVk0gICAgICAweDAwMDhmMDAwICAgIC8qIFhl biBIVk0gdHJhY2UgICAgICAgICAgICAqLworI2RlZmluZSBUUkNfTUVNICAgICAgMHgwMDEwZjAw MCAgICAvKiBYZW4gbWVtb3J5IHRyYWNlICAgICAgICAgKi8KKyNkZWZpbmUgVFJDX1BWICAgICAg IDB4MDAyMGYwMDAgICAgLyogWGVuIFBWIHRyYWNlcyAgICAgICAgICAgICovCisjZGVmaW5lIFRS Q19TSEFET1cgICAweDAwNDBmMDAwICAgIC8qIFhlbiBzaGFkb3cgdHJhY2luZyAgICAgICAqLwor I2RlZmluZSBUUkNfSFcgICAgICAgMHgwMDgwZjAwMCAgICAvKiBYZW4gaGFyZHdhcmUtcmVsYXRl ZCB0cmFjZXMgKi8KKyNkZWZpbmUgVFJDX0dVRVNUICAgIDB4MDgwMGYwMDAgICAgLyogR3Vlc3Qt Z2VuZXJhdGVkIHRyYWNlcyAgICovCisjZGVmaW5lIFRSQ19BTEwgICAgICAweDBmZmZmMDAwCisj ZGVmaW5lIFRSQ19IRF9UT19FVkVOVCh4KSAoKHgpJjB4MGZmZmZmZmYpCisjZGVmaW5lIFRSQ19I RF9DWUNMRV9GTEFHICgxVUw8PDMxKQorI2RlZmluZSBUUkNfSERfSU5DTFVERVNfQ1lDTEVfQ09V TlQoeCkgKCAhISggKHgpICYgVFJDX0hEX0NZQ0xFX0ZMQUcgKSApCisjZGVmaW5lIFRSQ19IRF9F WFRSQSh4KSAgICAoKCh4KT4+VFJBQ0VfRVhUUkFfU0hJRlQpJlRSQUNFX0VYVFJBX01BWCkKKwor LyogVHJhY2Ugc3ViY2xhc3NlcyAqLworI2RlZmluZSBUUkNfU1VCQ0xTX1NISUZUIDEyCisKKy8q IHRyYWNlIHN1YmNsYXNzZXMgZm9yIFNWTSAqLworI2RlZmluZSBUUkNfSFZNX0VOVFJZRVhJVCAg IDB4MDAwODEwMDAgICAvKiBWTUVOVFJZIGFuZCAjVk1FWElUICAgICAgICovCisjZGVmaW5lIFRS Q19IVk1fSEFORExFUiAgICAgMHgwMDA4MjAwMCAgIC8qIHZhcmlvdXMgSFZNIGhhbmRsZXJzICAg ICAgKi8KKyNkZWZpbmUgVFJDX0hWTV9FTVVMICAgICAgICAweDAwMDg0MDAwICAgLyogZW11bGF0 ZWQgZGV2aWNlcyAqLworCisjZGVmaW5lIFRSQ19TQ0hFRF9NSU4gICAgICAgMHgwMDAyMTAwMCAg IC8qIEp1c3QgcnVuc3RhdGUgY2hhbmdlcyAqLworI2RlZmluZSBUUkNfU0NIRURfQ0xBU1MgICAg IDB4MDAwMjIwMDAgICAvKiBTY2hlZHVsZXItc3BlY2lmaWMgICAgKi8KKyNkZWZpbmUgVFJDX1ND SEVEX1ZFUkJPU0UgICAweDAwMDI4MDAwICAgLyogTW9yZSBpbmNsdXNpdmUgc2NoZWR1bGluZyAq LworCisvKgorICogVGhlIGhpZ2hlc3QgMyBiaXRzIG9mIHRoZSBsYXN0IDEyIGJpdHMgb2YgVFJD X1NDSEVEX0NMQVNTIGFib3ZlIGFyZQorICogcmVzZXJ2ZWQgZm9yIGVuY29kaW5nIHdoYXQgc2No ZWR1bGVyIHByb2R1Y2VkIHRoZSBpbmZvcm1hdGlvbi4gVGhlCisgKiBhY3R1YWwgZXZlbnQgaXMg ZW5jb2RlZCBpbiB0aGUgbGFzdCA5IGJpdHMuCisgKgorICogVGhpcyBtZWFucyB3ZSBoYXZlIDgg c2NoZWR1bGluZyBJRHMgYXZhaWxhYmxlICh3aGljaCBtZWFucyBhdCBtb3N0IDgKKyAqIHNjaGVk dWxlcnMgZ2VuZXJhdGluZyBldmVudHMpIGFuZCwgaW4gZWFjaCBzY2hlZHVsZXIsIHVwIHRvIDUx MgorICogZGlmZmVyZW50IGV2ZW50cy4KKyAqLworI2RlZmluZSBUUkNfU0NIRURfSURfQklUUyAz CisjZGVmaW5lIFRSQ19TQ0hFRF9JRF9TSElGVCAoVFJDX1NVQkNMU19TSElGVCAtIFRSQ19TQ0hF RF9JRF9CSVRTKQorI2RlZmluZSBUUkNfU0NIRURfSURfTUFTSyAoKCgxVUw8PFRSQ19TQ0hFRF9J RF9CSVRTKSAtIDEpIDw8IFRSQ19TQ0hFRF9JRF9TSElGVCkKKyNkZWZpbmUgVFJDX1NDSEVEX0VW VF9NQVNLICh+KFRSQ19TQ0hFRF9JRF9NQVNLKSkKKworLyogUGVyLXNjaGVkdWxlciBJRHMsIHRv IGlkZW50aWZ5IHNjaGVkdWxlciBzcGVjaWZpYyBldmVudHMgKi8KKyNkZWZpbmUgVFJDX1NDSEVE X0NTQ0hFRCAgIDAKKyNkZWZpbmUgVFJDX1NDSEVEX0NTQ0hFRDIgIDEKKy8qICNkZWZpbmUgWEVO X1NDSEVEVUxFUl9TRURGIDIgKFJlbW92ZWQpICovCisjZGVmaW5lIFRSQ19TQ0hFRF9BUklOQzY1 MyAzCisjZGVmaW5lIFRSQ19TQ0hFRF9SVERTICAgICA0CisjZGVmaW5lIFRSQ19TQ0hFRF9TTlVM TCAgICA1CisKKy8qIFBlci1zY2hlZHVsZXIgdHJhY2luZyAqLworI2RlZmluZSBUUkNfU0NIRURf Q0xBU1NfRVZUKF9jLCBfZSkgXAorICAoICggVFJDX1NDSEVEX0NMQVNTIHwgXAorICAgICAgKChU UkNfU0NIRURfIyNfYyA8PCBUUkNfU0NIRURfSURfU0hJRlQpICYgVFJDX1NDSEVEX0lEX01BU0sp ICkgKyBcCisgICAgKF9lICYgVFJDX1NDSEVEX0VWVF9NQVNLKSApCisKKy8qIFRyYWNlIGNsYXNz ZXMgZm9yIERPTTAgb3BlcmF0aW9ucyAqLworI2RlZmluZSBUUkNfRE9NMF9ET01PUFMgICAgIDB4 MDAwNDEwMDAgICAvKiBEb21haW5zIG1hbmlwdWxhdGlvbnMgKi8KKworLyogVHJhY2UgY2xhc3Nl cyBmb3IgSGFyZHdhcmUgKi8KKyNkZWZpbmUgVFJDX0hXX1BNICAgICAgICAgICAweDAwODAxMDAw ICAgLyogUG93ZXIgbWFuYWdlbWVudCB0cmFjZXMgKi8KKyNkZWZpbmUgVFJDX0hXX0lSUSAgICAg ICAgICAweDAwODAyMDAwICAgLyogVHJhY2VzIHJlbGF0aW5nIHRvIHRoZSBoYW5kbGluZyBvZiBJ UlFzICovCisKKy8qIFRyYWNlIGV2ZW50cyBwZXIgY2xhc3MgKi8KKyNkZWZpbmUgVFJDX0xPU1Rf UkVDT1JEUyAgICAgICAgKFRSQ19HRU4gKyAxKQorI2RlZmluZSBUUkNfVFJBQ0VfV1JBUF9CVUZG RVIgIChUUkNfR0VOICsgMikKKyNkZWZpbmUgVFJDX1RSQUNFX0NQVV9DSEFOR0UgICAgKFRSQ19H RU4gKyAzKQorCisjZGVmaW5lIFRSQ19TQ0hFRF9SVU5TVEFURV9DSEFOR0UgICAoVFJDX1NDSEVE X01JTiArIDEpCisjZGVmaW5lIFRSQ19TQ0hFRF9DT05USU5VRV9SVU5OSU5HICAoVFJDX1NDSEVE X01JTiArIDIpCisjZGVmaW5lIFRSQ19TQ0hFRF9ET01fQUREICAgICAgICAoVFJDX1NDSEVEX1ZF UkJPU0UgKyAgMSkKKyNkZWZpbmUgVFJDX1NDSEVEX0RPTV9SRU0gICAgICAgIChUUkNfU0NIRURf VkVSQk9TRSArICAyKQorI2RlZmluZSBUUkNfU0NIRURfU0xFRVAgICAgICAgICAgKFRSQ19TQ0hF RF9WRVJCT1NFICsgIDMpCisjZGVmaW5lIFRSQ19TQ0hFRF9XQUtFICAgICAgICAgICAoVFJDX1ND SEVEX1ZFUkJPU0UgKyAgNCkKKyNkZWZpbmUgVFJDX1NDSEVEX1lJRUxEICAgICAgICAgIChUUkNf U0NIRURfVkVSQk9TRSArICA1KQorI2RlZmluZSBUUkNfU0NIRURfQkxPQ0sgICAgICAgICAgKFRS Q19TQ0hFRF9WRVJCT1NFICsgIDYpCisjZGVmaW5lIFRSQ19TQ0hFRF9TSFVURE9XTiAgICAgICAo VFJDX1NDSEVEX1ZFUkJPU0UgKyAgNykKKyNkZWZpbmUgVFJDX1NDSEVEX0NUTCAgICAgICAgICAg IChUUkNfU0NIRURfVkVSQk9TRSArICA4KQorI2RlZmluZSBUUkNfU0NIRURfQURKRE9NICAgICAg ICAgKFRSQ19TQ0hFRF9WRVJCT1NFICsgIDkpCisjZGVmaW5lIFRSQ19TQ0hFRF9TV0lUQ0ggICAg ICAgICAoVFJDX1NDSEVEX1ZFUkJPU0UgKyAxMCkKKyNkZWZpbmUgVFJDX1NDSEVEX1NfVElNRVJf Rk4gICAgIChUUkNfU0NIRURfVkVSQk9TRSArIDExKQorI2RlZmluZSBUUkNfU0NIRURfVF9USU1F Ul9GTiAgICAgKFRSQ19TQ0hFRF9WRVJCT1NFICsgMTIpCisjZGVmaW5lIFRSQ19TQ0hFRF9ET01f VElNRVJfRk4gICAoVFJDX1NDSEVEX1ZFUkJPU0UgKyAxMykKKyNkZWZpbmUgVFJDX1NDSEVEX1NX SVRDSF9JTkZQUkVWIChUUkNfU0NIRURfVkVSQk9TRSArIDE0KQorI2RlZmluZSBUUkNfU0NIRURf U1dJVENIX0lORk5FWFQgKFRSQ19TQ0hFRF9WRVJCT1NFICsgMTUpCisjZGVmaW5lIFRSQ19TQ0hF RF9TSFVURE9XTl9DT0RFICAoVFJDX1NDSEVEX1ZFUkJPU0UgKyAxNikKKyNkZWZpbmUgVFJDX1ND SEVEX1NXSVRDSF9JTkZDT05UIChUUkNfU0NIRURfVkVSQk9TRSArIDE3KQorCisjZGVmaW5lIFRS Q19ET00wX0RPTV9BREQgICAgICAgICAoVFJDX0RPTTBfRE9NT1BTICsgMSkKKyNkZWZpbmUgVFJD X0RPTTBfRE9NX1JFTSAgICAgICAgIChUUkNfRE9NMF9ET01PUFMgKyAyKQorCisjZGVmaW5lIFRS Q19NRU1fUEFHRV9HUkFOVF9NQVAgICAgICAoVFJDX01FTSArIDEpCisjZGVmaW5lIFRSQ19NRU1f UEFHRV9HUkFOVF9VTk1BUCAgICAoVFJDX01FTSArIDIpCisjZGVmaW5lIFRSQ19NRU1fUEFHRV9H UkFOVF9UUkFOU0ZFUiAoVFJDX01FTSArIDMpCisjZGVmaW5lIFRSQ19NRU1fU0VUX1AyTV9FTlRS WSAgICAgICAoVFJDX01FTSArIDQpCisjZGVmaW5lIFRSQ19NRU1fREVDUkVBU0VfUkVTRVJWQVRJ T04gKFRSQ19NRU0gKyA1KQorI2RlZmluZSBUUkNfTUVNX1BPRF9QT1BVTEFURSAgICAgICAgKFRS Q19NRU0gKyAxNikKKyNkZWZpbmUgVFJDX01FTV9QT0RfWkVST19SRUNMQUlNICAgIChUUkNfTUVN ICsgMTcpCisjZGVmaW5lIFRSQ19NRU1fUE9EX1NVUEVSUEFHRV9TUExJTlRFUiAoVFJDX01FTSAr IDE4KQorCisjZGVmaW5lIFRSQ19QVl9FTlRSWSAgIDB4MDAyMDEwMDAgLyogSHlwZXJ2aXNvciBl bnRyeSBwb2ludHMgZm9yIFBWIGd1ZXN0cy4gKi8KKyNkZWZpbmUgVFJDX1BWX1NVQkNBTEwgMHgw MDIwMjAwMCAvKiBTdWItY2FsbCBpbiBhIG11bHRpY2FsbCBoeXBlcmNhbGwgKi8KKworI2RlZmlu ZSBUUkNfUFZfSFlQRVJDQUxMICAgICAgICAgICAgIChUUkNfUFZfRU5UUlkgKyAgMSkKKyNkZWZp bmUgVFJDX1BWX1RSQVAgICAgICAgICAgICAgICAgICAoVFJDX1BWX0VOVFJZICsgIDMpCisjZGVm aW5lIFRSQ19QVl9QQUdFX0ZBVUxUICAgICAgICAgICAgKFRSQ19QVl9FTlRSWSArICA0KQorI2Rl ZmluZSBUUkNfUFZfRk9SQ0VEX0lOVkFMSURfT1AgICAgIChUUkNfUFZfRU5UUlkgKyAgNSkKKyNk ZWZpbmUgVFJDX1BWX0VNVUxBVEVfUFJJVk9QICAgICAgICAoVFJDX1BWX0VOVFJZICsgIDYpCisj ZGVmaW5lIFRSQ19QVl9FTVVMQVRFXzRHQiAgICAgICAgICAgKFRSQ19QVl9FTlRSWSArICA3KQor I2RlZmluZSBUUkNfUFZfTUFUSF9TVEFURV9SRVNUT1JFICAgIChUUkNfUFZfRU5UUlkgKyAgOCkK KyNkZWZpbmUgVFJDX1BWX1BBR0lOR19GSVhVUCAgICAgICAgICAoVFJDX1BWX0VOVFJZICsgIDkp CisjZGVmaW5lIFRSQ19QVl9HRFRfTERUX01BUFBJTkdfRkFVTFQgKFRSQ19QVl9FTlRSWSArIDEw KQorI2RlZmluZSBUUkNfUFZfUFRXUl9FTVVMQVRJT04gICAgICAgIChUUkNfUFZfRU5UUlkgKyAx MSkKKyNkZWZpbmUgVFJDX1BWX1BUV1JfRU1VTEFUSU9OX1BBRSAgICAoVFJDX1BWX0VOVFJZICsg MTIpCisjZGVmaW5lIFRSQ19QVl9IWVBFUkNBTExfVjIgICAgICAgICAgKFRSQ19QVl9FTlRSWSAr IDEzKQorI2RlZmluZSBUUkNfUFZfSFlQRVJDQUxMX1NVQkNBTEwgICAgIChUUkNfUFZfU1VCQ0FM TCArIDE0KQorCisvKgorICogVFJDX1BWX0hZUEVSQ0FMTF9WMiBmb3JtYXQKKyAqCisgKiBPbmx5 IHNvbWUgb2YgdGhlIGh5cGVyY2FsbCBhcmd1bWVudCBhcmUgcmVjb3JkZWQuIEJpdCBmaWVsZHMg QTAgdG8KKyAqIEE1IGluIHRoZSBmaXJzdCBleHRyYSB3b3JkIGFyZSBzZXQgaWYgdGhlIGFyZ3Vt ZW50IGlzIHByZXNlbnQgYW5kCisgKiB0aGUgYXJndW1lbnRzIHRoZW1zZWx2ZXMgYXJlIHBhY2tl ZCBzZXF1ZW50aWFsbHkgaW4gdGhlIGZvbGxvd2luZworICogd29yZHMuCisgKgorICogVGhlIFRS Q182NF9GTEFHIGJpdCBpcyBub3Qgc2V0IGZvciB0aGVzZSBldmVudHMgKGV2ZW4gaWYgdGhlcmUg YXJlCisgKiA2NC1iaXQgYXJndW1lbnRzIGluIHRoZSByZWNvcmQpLgorICoKKyAqIFdvcmQKKyAq IDAgICAgYml0IDMxIDMwfDI5IDI4fDI3IDI2fDI1IDI0fDIzIDIyfDIxIDIwfDE5IC4uLiAwCisg KiAgICAgICAgICBBNSAgIHxBNCAgIHxBMyAgIHxBMiAgIHxBMSAgIHxBMCAgIHxIeXBlcmNhbGwg b3AKKyAqIDEgICAgRmlyc3QgMzIgYml0IChvciBsb3cgd29yZCBvZiBmaXJzdCA2NCBiaXQpIGFy ZyBpbiByZWNvcmQKKyAqIDIgICAgU2Vjb25kIDMyIGJpdCAob3IgaGlnaCB3b3JkIG9mIGZpcnN0 IDY0IGJpdCkgYXJnIGluIHJlY29yZAorICogLi4uCisgKgorICogQTAtQTUgYml0ZmllbGQgdmFs dWVzOgorICoKKyAqICAgMDBiICBBcmd1bWVudCBub3QgcHJlc2VudAorICogICAwMWIgIDMyLWJp dCBhcmd1bWVudCBwcmVzZW50CisgKiAgIDEwYiAgNjQtYml0IGFyZ3VtZW50IHByZXNlbnQKKyAq ICAgMTFiICBSZXNlcnZlZAorICovCisjZGVmaW5lIFRSQ19QVl9IWVBFUkNBTExfVjJfQVJHXzMy KGkpICgweDEgPDwgKDIwICsgMiooaSkpKQorI2RlZmluZSBUUkNfUFZfSFlQRVJDQUxMX1YyX0FS R182NChpKSAoMHgyIDw8ICgyMCArIDIqKGkpKSkKKyNkZWZpbmUgVFJDX1BWX0hZUEVSQ0FMTF9W Ml9BUkdfTUFTSyAgKDB4ZmZmMDAwMDApCisKKyNkZWZpbmUgVFJDX1NIQURPV19OT1RfU0hBRE9X ICAgICAgICAgICAgICAgICAoVFJDX1NIQURPVyArICAxKQorI2RlZmluZSBUUkNfU0hBRE9XX0ZB U1RfUFJPUEFHQVRFICAgICAgICAgICAgIChUUkNfU0hBRE9XICsgIDIpCisjZGVmaW5lIFRSQ19T SEFET1dfRkFTVF9NTUlPICAgICAgICAgICAgICAgICAgKFRSQ19TSEFET1cgKyAgMykKKyNkZWZp bmUgVFJDX1NIQURPV19GQUxTRV9GQVNUX1BBVEggICAgICAgICAgICAoVFJDX1NIQURPVyArICA0 KQorI2RlZmluZSBUUkNfU0hBRE9XX01NSU8gICAgICAgICAgICAgICAgICAgICAgIChUUkNfU0hB RE9XICsgIDUpCisjZGVmaW5lIFRSQ19TSEFET1dfRklYVVAgICAgICAgICAgICAgICAgICAgICAg KFRSQ19TSEFET1cgKyAgNikKKyNkZWZpbmUgVFJDX1NIQURPV19ET01GX0RZSU5HICAgICAgICAg ICAgICAgICAoVFJDX1NIQURPVyArICA3KQorI2RlZmluZSBUUkNfU0hBRE9XX0VNVUxBVEUgICAg ICAgICAgICAgICAgICAgIChUUkNfU0hBRE9XICsgIDgpCisjZGVmaW5lIFRSQ19TSEFET1dfRU1V TEFURV9VTlNIQURPV19VU0VSICAgICAgKFRSQ19TSEFET1cgKyAgOSkKKyNkZWZpbmUgVFJDX1NI QURPV19FTVVMQVRFX1VOU0hBRE9XX0VWVElOSiAgICAoVFJDX1NIQURPVyArIDEwKQorI2RlZmlu ZSBUUkNfU0hBRE9XX0VNVUxBVEVfVU5TSEFET1dfVU5IQU5ETEVEIChUUkNfU0hBRE9XICsgMTEp CisjZGVmaW5lIFRSQ19TSEFET1dfV1JNQVBfQkYgICAgICAgICAgICAgICAgICAgKFRSQ19TSEFE T1cgKyAxMikKKyNkZWZpbmUgVFJDX1NIQURPV19QUkVBTExPQ19VTlBJTiAgICAgICAgICAgICAo VFJDX1NIQURPVyArIDEzKQorI2RlZmluZSBUUkNfU0hBRE9XX1JFU1lOQ19GVUxMICAgICAgICAg ICAgICAgIChUUkNfU0hBRE9XICsgMTQpCisjZGVmaW5lIFRSQ19TSEFET1dfUkVTWU5DX09OTFkg ICAgICAgICAgICAgICAgKFRSQ19TSEFET1cgKyAxNSkKKworLyogdHJhY2UgZXZlbnRzIHBlciBz dWJjbGFzcyAqLworI2RlZmluZSBUUkNfSFZNX05FU1RFREZMQUcgICAgICAoMHg0MDApCisjZGVm aW5lIFRSQ19IVk1fVk1FTlRSWSAgICAgICAgIChUUkNfSFZNX0VOVFJZRVhJVCArIDB4MDEpCisj ZGVmaW5lIFRSQ19IVk1fVk1FWElUICAgICAgICAgIChUUkNfSFZNX0VOVFJZRVhJVCArIDB4MDIp CisjZGVmaW5lIFRSQ19IVk1fVk1FWElUNjQgICAgICAgIChUUkNfSFZNX0VOVFJZRVhJVCArIFRS Q182NF9GTEFHICsgMHgwMikKKyNkZWZpbmUgVFJDX0hWTV9QRl9YRU4gICAgICAgICAgKFRSQ19I Vk1fSEFORExFUiArIDB4MDEpCisjZGVmaW5lIFRSQ19IVk1fUEZfWEVONjQgICAgICAgIChUUkNf SFZNX0hBTkRMRVIgKyBUUkNfNjRfRkxBRyArIDB4MDEpCisjZGVmaW5lIFRSQ19IVk1fUEZfSU5K RUNUICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDAyKQorI2RlZmluZSBUUkNfSFZNX1BGX0lO SkVDVDY0ICAgICAoVFJDX0hWTV9IQU5ETEVSICsgVFJDXzY0X0ZMQUcgKyAweDAyKQorI2RlZmlu ZSBUUkNfSFZNX0lOSl9FWEMgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgwMykKKyNkZWZp bmUgVFJDX0hWTV9JTkpfVklSUSAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MDQpCisjZGVm aW5lIFRSQ19IVk1fUkVJTkpfVklSUSAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDA1KQorI2Rl ZmluZSBUUkNfSFZNX0lPX1JFQUQgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgwNikKKyNk ZWZpbmUgVFJDX0hWTV9JT19XUklURSAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MDcpCisj ZGVmaW5lIFRSQ19IVk1fQ1JfUkVBRCAgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDA4KQor I2RlZmluZSBUUkNfSFZNX0NSX1JFQUQ2NCAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgVFJDXzY0 X0ZMQUcgKyAweDA4KQorI2RlZmluZSBUUkNfSFZNX0NSX1dSSVRFICAgICAgICAoVFJDX0hWTV9I QU5ETEVSICsgMHgwOSkKKyNkZWZpbmUgVFJDX0hWTV9DUl9XUklURTY0ICAgICAgKFRSQ19IVk1f SEFORExFUiArIFRSQ182NF9GTEFHICsgMHgwOSkKKyNkZWZpbmUgVFJDX0hWTV9EUl9SRUFEICAg ICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MEEpCisjZGVmaW5lIFRSQ19IVk1fRFJfV1JJVEUg ICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDBCKQorI2RlZmluZSBUUkNfSFZNX01TUl9SRUFE ICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgwQykKKyNkZWZpbmUgVFJDX0hWTV9NU1JfV1JJ VEUgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MEQpCisjZGVmaW5lIFRSQ19IVk1fQ1BVSUQg ICAgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDBFKQorI2RlZmluZSBUUkNfSFZNX0lOVFIg ICAgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgwRikKKyNkZWZpbmUgVFJDX0hWTV9OTUkg ICAgICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MTApCisjZGVmaW5lIFRSQ19IVk1fU01J ICAgICAgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDExKQorI2RlZmluZSBUUkNfSFZNX1ZN TUNBTEwgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgxMikKKyNkZWZpbmUgVFJDX0hWTV9I TFQgICAgICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MTMpCisjZGVmaW5lIFRSQ19IVk1f SU5WTFBHICAgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDE0KQorI2RlZmluZSBUUkNfSFZN X0lOVkxQRzY0ICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgVFJDXzY0X0ZMQUcgKyAweDE0KQor I2RlZmluZSBUUkNfSFZNX01DRSAgICAgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgxNSkK KyNkZWZpbmUgVFJDX0hWTV9JT1BPUlRfUkVBRCAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MTYp CisjZGVmaW5lIFRSQ19IVk1fSU9NRU1fUkVBRCAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDE3 KQorI2RlZmluZSBUUkNfSFZNX0NMVFMgICAgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgx OCkKKyNkZWZpbmUgVFJDX0hWTV9MTVNXICAgICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4 MTkpCisjZGVmaW5lIFRSQ19IVk1fTE1TVzY0ICAgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyBU UkNfNjRfRkxBRyArIDB4MTkpCisjZGVmaW5lIFRSQ19IVk1fUkRUU0MgICAgICAgICAgIChUUkNf SFZNX0hBTkRMRVIgKyAweDFhKQorI2RlZmluZSBUUkNfSFZNX0lOVFJfV0lORE9XICAgICAoVFJD X0hWTV9IQU5ETEVSICsgMHgyMCkKKyNkZWZpbmUgVFJDX0hWTV9OUEYgICAgICAgICAgICAgKFRS Q19IVk1fSEFORExFUiArIDB4MjEpCisjZGVmaW5lIFRSQ19IVk1fUkVBTE1PREVfRU1VTEFURSAo VFJDX0hWTV9IQU5ETEVSICsgMHgyMikKKyNkZWZpbmUgVFJDX0hWTV9UUkFQICAgICAgICAgICAg IChUUkNfSFZNX0hBTkRMRVIgKyAweDIzKQorI2RlZmluZSBUUkNfSFZNX1RSQVBfREVCVUcgICAg ICAgKFRSQ19IVk1fSEFORExFUiArIDB4MjQpCisjZGVmaW5lIFRSQ19IVk1fVkxBUElDICAgICAg ICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgyNSkKKworI2RlZmluZSBUUkNfSFZNX0lPUE9SVF9X UklURSAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgyMTYpCisjZGVmaW5lIFRSQ19IVk1fSU9NRU1f V1JJVEUgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDIxNykKKworLyogVHJhY2UgZXZlbnRzIGZv ciBlbXVsYXRlZCBkZXZpY2VzICovCisjZGVmaW5lIFRSQ19IVk1fRU1VTF9IUEVUX1NUQVJUX1RJ TUVSICAoVFJDX0hWTV9FTVVMICsgMHgxKQorI2RlZmluZSBUUkNfSFZNX0VNVUxfUElUX1NUQVJU X1RJTUVSICAgKFRSQ19IVk1fRU1VTCArIDB4MikKKyNkZWZpbmUgVFJDX0hWTV9FTVVMX1JUQ19T VEFSVF9USU1FUiAgIChUUkNfSFZNX0VNVUwgKyAweDMpCisjZGVmaW5lIFRSQ19IVk1fRU1VTF9M QVBJQ19TVEFSVF9USU1FUiAoVFJDX0hWTV9FTVVMICsgMHg0KQorI2RlZmluZSBUUkNfSFZNX0VN VUxfSFBFVF9TVE9QX1RJTUVSICAgKFRSQ19IVk1fRU1VTCArIDB4NSkKKyNkZWZpbmUgVFJDX0hW TV9FTVVMX1BJVF9TVE9QX1RJTUVSICAgIChUUkNfSFZNX0VNVUwgKyAweDYpCisjZGVmaW5lIFRS Q19IVk1fRU1VTF9SVENfU1RPUF9USU1FUiAgICAoVFJDX0hWTV9FTVVMICsgMHg3KQorI2RlZmlu ZSBUUkNfSFZNX0VNVUxfTEFQSUNfU1RPUF9USU1FUiAgKFRSQ19IVk1fRU1VTCArIDB4OCkKKyNk ZWZpbmUgVFJDX0hWTV9FTVVMX1BJVF9USU1FUl9DQiAgICAgIChUUkNfSFZNX0VNVUwgKyAweDkp CisjZGVmaW5lIFRSQ19IVk1fRU1VTF9MQVBJQ19USU1FUl9DQiAgICAoVFJDX0hWTV9FTVVMICsg MHhBKQorI2RlZmluZSBUUkNfSFZNX0VNVUxfUElDX0lOVF9PVVRQVVQgICAgKFRSQ19IVk1fRU1V TCArIDB4QikKKyNkZWZpbmUgVFJDX0hWTV9FTVVMX1BJQ19LSUNLICAgICAgICAgIChUUkNfSFZN X0VNVUwgKyAweEMpCisjZGVmaW5lIFRSQ19IVk1fRU1VTF9QSUNfSU5UQUNLICAgICAgICAoVFJD X0hWTV9FTVVMICsgMHhEKQorI2RlZmluZSBUUkNfSFZNX0VNVUxfUElDX1BPU0VER0UgICAgICAg KFRSQ19IVk1fRU1VTCArIDB4RSkKKyNkZWZpbmUgVFJDX0hWTV9FTVVMX1BJQ19ORUdFREdFICAg ICAgIChUUkNfSFZNX0VNVUwgKyAweEYpCisjZGVmaW5lIFRSQ19IVk1fRU1VTF9QSUNfUEVORF9J UlFfQ0FMTCAoVFJDX0hWTV9FTVVMICsgMHgxMCkKKyNkZWZpbmUgVFJDX0hWTV9FTVVMX0xBUElD X1BJQ19JTlRSICAgIChUUkNfSFZNX0VNVUwgKyAweDExKQorCisvKiB0cmFjZSBldmVudHMgZm9y IHBlciBjbGFzcyAqLworI2RlZmluZSBUUkNfUE1fRlJFUV9DSEFOR0UgICAgICAoVFJDX0hXX1BN ICsgMHgwMSkKKyNkZWZpbmUgVFJDX1BNX0lETEVfRU5UUlkgICAgICAgKFRSQ19IV19QTSArIDB4 MDIpCisjZGVmaW5lIFRSQ19QTV9JRExFX0VYSVQgICAgICAgIChUUkNfSFdfUE0gKyAweDAzKQor CisvKiBUcmFjZSBldmVudHMgZm9yIElSUXMgKi8KKyNkZWZpbmUgVFJDX0hXX0lSUV9NT1ZFX0NM RUFOVVBfREVMQVkgKFRSQ19IV19JUlEgKyAweDEpCisjZGVmaW5lIFRSQ19IV19JUlFfTU9WRV9D TEVBTlVQICAgICAgIChUUkNfSFdfSVJRICsgMHgyKQorI2RlZmluZSBUUkNfSFdfSVJRX0JJTkRf VkVDVE9SICAgICAgICAoVFJDX0hXX0lSUSArIDB4MykKKyNkZWZpbmUgVFJDX0hXX0lSUV9DTEVB Ul9WRUNUT1IgICAgICAgKFRSQ19IV19JUlEgKyAweDQpCisjZGVmaW5lIFRSQ19IV19JUlFfTU9W RV9GSU5JU0ggICAgICAgIChUUkNfSFdfSVJRICsgMHg1KQorI2RlZmluZSBUUkNfSFdfSVJRX0FT U0lHTl9WRUNUT1IgICAgICAoVFJDX0hXX0lSUSArIDB4NikKKyNkZWZpbmUgVFJDX0hXX0lSUV9V Tk1BUFBFRF9WRUNUT1IgICAgKFRSQ19IV19JUlEgKyAweDcpCisjZGVmaW5lIFRSQ19IV19JUlFf SEFORExFRCAgICAgICAgICAgIChUUkNfSFdfSVJRICsgMHg4KQorCisvKgorICogRXZlbnQgRmxh Z3MKKyAqCisgKiBTb21lIGV2ZW50cyAoZS5nLCBUUkNfUFZfVFJBUCBhbmQgVFJDX0hWTV9JT01F TV9SRUFEKSBoYXZlIG11bHRpcGxlCisgKiByZWNvcmQgZm9ybWF0cy4gIFRoZXNlIGV2ZW50IGZs YWdzIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlCisgKiBkaWZmZXJlbnQgZm9ybWF0cy4KKyAqLwor I2RlZmluZSBUUkNfNjRfRkxBRyAweDEwMCAvKiBBZGRyZXNzZXMgYXJlIDY0IGJpdHMgKGluc3Rl YWQgb2YgMzIgYml0cykgKi8KKworLyogVGhpcyBzdHJ1Y3R1cmUgcmVwcmVzZW50cyBhIHNpbmds ZSB0cmFjZSBidWZmZXIgcmVjb3JkLiAqLworc3RydWN0IHRfcmVjIHsKKyAgICB1aW50MzJfdCBl dmVudDoyODsKKyAgICB1aW50MzJfdCBleHRyYV91MzI6MzsgICAgICAgICAvKiAjIGVudHJpZXMg aW4gdHJhaWxpbmcgZXh0cmFfdTMyW10gYXJyYXkgKi8KKyAgICB1aW50MzJfdCBjeWNsZXNfaW5j bHVkZWQ6MTsgICAvKiB1LmN5Y2xlcyBvciB1Lm5vX2N5Y2xlcz8gKi8KKyAgICB1bmlvbiB7Cisg ICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1aW50MzJfdCBjeWNsZXNfbG8sIGN5Y2xlc19o aTsgLyogY3ljbGUgY291bnRlciB0aW1lc3RhbXAgKi8KKyAgICAgICAgICAgIHVpbnQzMl90IGV4 dHJhX3UzMls3XTsgICAgICAgICAvKiBldmVudCBkYXRhIGl0ZW1zICovCisgICAgICAgIH0gY3lj bGVzOworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdWludDMyX3QgZXh0cmFfdTMyWzdd OyAgICAgICAgIC8qIGV2ZW50IGRhdGEgaXRlbXMgKi8KKyAgICAgICAgfSBub2N5Y2xlczsKKyAg ICB9IHU7Cit9OworCisvKgorICogVGhpcyBzdHJ1Y3R1cmUgY29udGFpbnMgdGhlIG1ldGFkYXRh IGZvciBhIHNpbmdsZSB0cmFjZSBidWZmZXIuICBUaGUgaGVhZAorICogZmllbGQsIGluZGV4ZXMg aW50byBhbiBhcnJheSBvZiBzdHJ1Y3QgdF9yZWMncy4KKyAqLworc3RydWN0IHRfYnVmIHsKKyAg ICAvKiBBc3N1bWUgdGhlIGRhdGEgYnVmZmVyIHNpemUgaXMgWC4gIFggaXMgZ2VuZXJhbGx5IG5v dCBhIHBvd2VyIG9mIDIuCisgICAgICogQ09OUyBhbmQgUFJPRCBhcmUgaW5jcmVtZW50ZWQgbW9k dWxvICgyKlgpOgorICAgICAqICAgICAwIDw9IGNvbnMgPCAyKlgKKyAgICAgKiAgICAgMCA8PSBw cm9kIDwgMipYCisgICAgICogVGhpcyBpcyBkb25lIGJlY2F1c2UgYWRkaXRpb24gbW9kdWxvIFgg YnJlYWtzIGF0IDJeMzIgd2hlbiBYIGlzIG5vdCBhCisgICAgICogcG93ZXIgb2YgMjoKKyAgICAg KiAgICAgKCgoMl4zMiAtIDEpICUgWCkgKyAxKSAlIFggIT0gKDJeMzIpICUgWAorICAgICAqLwor ICAgIHVpbnQzMl90IGNvbnM7ICAgLyogT2Zmc2V0IG9mIG5leHQgaXRlbSB0byBiZSBjb25zdW1l ZCBieSBjb250cm9sIHRvb2xzLiAqLworICAgIHVpbnQzMl90IHByb2Q7ICAgLyogT2Zmc2V0IG9m IG5leHQgaXRlbSB0byBiZSBwcm9kdWNlZCBieSBYZW4uICAgICAgICAgICAqLworICAgIC8qICBS ZWNvcmRzIGZvbGxvdyBpbW1lZGlhdGVseSBhZnRlciB0aGUgbWV0YS1kYXRhIGhlYWRlci4gICAg Ki8KK307CisKKy8qIFN0cnVjdHVyZSB1c2VkIHRvIHBhc3MgTUZOcyB0byB0aGUgdHJhY2UgYnVm ZmVycyBiYWNrIHRvIHRyYWNlIGNvbnN1bWVycy4KKyAqIE9mZnNldCBpcyBhbiBvZmZzZXQgaW50 byB0aGUgbWFwcGVkIHN0cnVjdHVyZSB3aGVyZSB0aGUgbWZuIGxpc3Qgd2lsbCBiZSBoZWxkLgor ICogTUZOcyB3aWxsIGJlIGF0ICgodW5zaWduZWQgbG9uZyAqKSh0X2luZm8pKSsodF9pbmZvLT5j cHVfb2Zmc2V0W2NwdV0pLgorICovCitzdHJ1Y3QgdF9pbmZvIHsKKyAgICB1aW50MTZfdCB0YnVm X3NpemU7IC8qIFNpemUgaW4gcGFnZXMgb2YgZWFjaCB0cmFjZSBidWZmZXIgKi8KKyAgICB1aW50 MTZfdCBtZm5fb2Zmc2V0W107ICAvKiBPZmZzZXQgd2l0aGluIHRfaW5mbyBzdHJ1Y3R1cmUgb2Yg dGhlIHBhZ2UgbGlzdCBwZXIgY3B1ICovCisgICAgLyogTUZOIGxpc3RzIGltbWVkaWF0ZWx5IGFm dGVyIHRoZSBoZWFkZXIgKi8KK307CisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfVFJBQ0VfSF9f ICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5 bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRl bnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4v eGVuLmggYi9pbmNsdWRlL3hlbi94ZW4uaAppbmRleCA2YzllNDJiMmIuLjMwODEwOWYxNyAxMDA2 NDQKLS0tIGEvaW5jbHVkZS94ZW4veGVuLmgKKysrIGIvaW5jbHVkZS94ZW4veGVuLmgKQEAgLTUz LDE3ICs1MywyMiBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh1aW50NjRfdCk7CiBERUZJTkVf WEVOX0dVRVNUX0hBTkRMRSh4ZW5fcGZuX3QpOwogREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVu X3Vsb25nX3QpOwogCi0vKiBUdXJuIGEgcGxhaW4gbnVtYmVyIGludG8gYSBDIHVuc2lnbmVkIChs b25nKSBjb25zdGFudC4gKi8KKy8qIFR1cm4gYSBwbGFpbiBudW1iZXIgaW50byBhIEMgdW5zaWdu ZWQgKGxvbmcgKGxvbmcpKSBjb25zdGFudC4gKi8KICNkZWZpbmUgX194ZW5fbWtfdWludCh4KSAg eCAjIyBVCiAjZGVmaW5lIF9feGVuX21rX3Vsb25nKHgpIHggIyMgVUwKKyNpZm5kZWYgX194ZW5f bWtfdWxsb25nCisjIGRlZmluZSBfX3hlbl9ta191bGxvbmcoeCkgeCAjIyBVTEwKKyNlbmRpZgog I2RlZmluZSB4ZW5fbWtfdWludCh4KSAgICBfX3hlbl9ta191aW50KHgpCiAjZGVmaW5lIHhlbl9t a191bG9uZyh4KSAgIF9feGVuX21rX3Vsb25nKHgpCisjZGVmaW5lIHhlbl9ta191bGxvbmcoeCkg IF9feGVuX21rX3VsbG9uZyh4KQogCiAjZWxzZQogCiAvKiBJbiBhc3NlbWJseSBjb2RlIHdlIGNh bm5vdCB1c2UgQyBudW1lcmljIGNvbnN0YW50IHN1ZmZpeGVzLiAqLwotI2RlZmluZSB4ZW5fbWtf dWludCh4KSAgeAotI2RlZmluZSB4ZW5fbWtfdWxvbmcoeCkgeAorI2RlZmluZSB4ZW5fbWtfdWlu dCh4KSAgIHgKKyNkZWZpbmUgeGVuX21rX3Vsb25nKHgpICB4CisjZGVmaW5lIHhlbl9ta191bGxv bmcoeCkgeAogCiAjZW5kaWYKIApAQCAtMTE1LDYgKzEyMCw3IEBAIERFRklORV9YRU5fR1VFU1Rf SEFORExFKHhlbl91bG9uZ190KTsKICNkZWZpbmUgX19IWVBFUlZJU09SX3RtZW1fb3AgICAgICAg ICAgICAgIDM4CiAjZGVmaW5lIF9fSFlQRVJWSVNPUl94Y19yZXNlcnZlZF9vcCAgICAgICAzOSAv KiByZXNlcnZlZCBmb3IgWGVuQ2xpZW50ICovCiAjZGVmaW5lIF9fSFlQRVJWSVNPUl94ZW5wbXVf b3AgICAgICAgICAgICA0MAorI2RlZmluZSBfX0hZUEVSVklTT1JfZG1fb3AgICAgICAgICAgICAg ICAgNDEKIAogLyogQXJjaGl0ZWN0dXJlLXNwZWNpZmljIGh5cGVyY2FsbCBkZWZpbml0aW9ucy4g Ki8KICNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hfMCAgICAgICAgICAgICAgIDQ4CkBAIC01MDIs NiArNTA4LDIxIEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKG1tdWV4dF9vcF90KTsKICNkZWZp bmUgVk1BU1NUX1RZUEVfcGFlX2V4dGVuZGVkX2NyMyAgICAgMwogCiAvKgorICogeDg2IGd1ZXN0 czogU2FuZSBiZWhhdmlvdXIgZm9yIHZpcnR1YWwgaW9wbAorICogIC0gdmlydHVhbCBpb3BsIHVw ZGF0ZWQgZnJvbSBkb19pcmV0KCkgaHlwZXJjYWxscy4KKyAqICAtIHZpcnR1YWwgaW9wbCByZXBv cnRlZCBpbiBib3VuY2UgZnJhbWVzLgorICogIC0gZ3Vlc3Qga2VybmVscyBhc3N1bWVkIHRvIGJl IGxldmVsIDAgZm9yIHRoZSBwdXJwb3NlIG9mIGlvcGwgY2hlY2tzLgorICovCisjZGVmaW5lIFZN QVNTVF9UWVBFX2FyY2hpdGVjdHVyYWxfaW9wbCAgIDQKKworLyoKKyAqIEFsbCBndWVzdHM6IGFj dGl2YXRlIHVwZGF0ZSBpbmRpY2F0b3IgaW4gdmNwdV9ydW5zdGF0ZV9pbmZvCisgKiBFbmFibGUg c2V0dGluZyB0aGUgWEVOX1JVTlNUQVRFX1VQREFURSBmbGFnIGluIGd1ZXN0IG1lbW9yeSBtYXBw ZWQKKyAqIHZjcHVfcnVuc3RhdGVfaW5mbyBkdXJpbmcgdXBkYXRlcyBvZiB0aGUgcnVuc3RhdGUg aW5mb3JtYXRpb24uCisgKi8KKyNkZWZpbmUgVk1BU1NUX1RZUEVfcnVuc3RhdGVfdXBkYXRlX2Zs YWcgNQorCisvKgogICogeDg2LzY0IGd1ZXN0czogc3RyaWN0bHkgaGlkZSBNMlAgZnJvbSB1c2Vy IG1vZGUuCiAgKiBUaGlzIGFsbG93cyB0aGUgZ3Vlc3QgdG8gY29udHJvbCByZXNwZWN0aXZlIGh5 cGVydmlzb3IgYmVoYXZpb3I6CiAgKiAtIHdoZW4gbm90IHNldCwgTDQgdGFibGVzIGdldCBjcmVh dGVkIHdpdGggdGhlIHJlc3BlY3RpdmUgc2xvdCBibGFuaywKQEAgLTUyOSwxNiArNTUwLDIxIEBA IERFRklORV9YRU5fR1VFU1RfSEFORExFKG1tdWV4dF9vcF90KTsKICAqIGlzIHVzZWZ1bCB0byBl bnN1cmUgdGhhdCBubyBtYXBwaW5ncyB0byB0aGUgT1MncyBvd24gaGVhcCBhcmUgYWNjaWRlbnRh bGx5CiAgKiBpbnN0YWxsZWQuIChlLmcuLCBpbiBMaW51eCB0aGlzIGNvdWxkIGNhdXNlIGhhdm9j IGFzIHJlZmVyZW5jZSBjb3VudHMKICAqIGFyZW4ndCBhZGp1c3RlZCBvbiB0aGUgSS9PLW1hcHBp bmcgY29kZSBwYXRoKS4KLSAqIFRoaXMgb25seSBtYWtlcyBzZW5zZSBpbiBNTVVFWFRfU0VUX0ZP UkVJR05ET00sIGJ1dCBpbiB0aGF0IGNvbnRleHQgY2FuCi0gKiBiZSBzcGVjaWZpZWQgYnkgYW55 IGNhbGxpbmcgZG9tYWluLgorICogVGhpcyBvbmx5IG1ha2VzIHNlbnNlIGFzIEhZUEVSVklTT1Jf bW11X3VwZGF0ZSgpJ3MgYW5kCisgKiBIWVBFUlZJU09SX3VwZGF0ZV92YV9tYXBwaW5nX290aGVy ZG9tYWluKCkncyAiZm9yZWlnbmRvbSIgYXJndW1lbnQuIEZvcgorICogSFlQRVJWSVNPUl9tbXVf dXBkYXRlKCkgY29udGV4dCBpdCBjYW4gYmUgc3BlY2lmaWVkIGJ5IGFueSBjYWxsaW5nIGRvbWFp biwKKyAqIG90aGVyd2lzZSBpdCdzIG9ubHkgcGVybWl0dGVkIGlmIHRoZSBjYWxsZXIgaXMgcHJp dmlsZWdlZC4KICAqLwogI2RlZmluZSBET01JRF9JTyAgICAgICAgICAgICB4ZW5fbWtfdWludCgw eDdGRjEpCiAKIC8qCiAgKiBET01JRF9YRU4gaXMgdXNlZCB0byBhbGxvdyBwcml2aWxlZ2VkIGRv bWFpbnMgdG8gbWFwIHJlc3RyaWN0ZWQgcGFydHMgb2YKICAqIFhlbidzIGhlYXAgc3BhY2UgKGUu Zy4sIHRoZSBtYWNoaW5lX3RvX3BoeXMgdGFibGUpLgotICogVGhpcyBvbmx5IG1ha2VzIHNlbnNl IGluIE1NVUVYVF9TRVRfRk9SRUlHTkRPTSwgYW5kIGlzIG9ubHkgcGVybWl0dGVkIGlmCi0gKiB0 aGUgY2FsbGVyIGlzIHByaXZpbGVnZWQuCisgKiBUaGlzIG9ubHkgbWFrZXMgc2Vuc2UgYXMKKyAq IC0gSFlQRVJWSVNPUl9tbXVfdXBkYXRlKCkncywgSFlQRVJWSVNPUl9tbXVleHRfb3AoKSdzLCBv cgorICogICBIWVBFUlZJU09SX3VwZGF0ZV92YV9tYXBwaW5nX290aGVyZG9tYWluKCkncyAiZm9y ZWlnbmRvbSIgYXJndW1lbnQsCisgKiAtIHdpdGggWEVOTUFQU1BBQ0VfZ21mbl9mb3JlaWduLAor ICogYW5kIGlzIG9ubHkgcGVybWl0dGVkIGlmIHRoZSBjYWxsZXIgaXMgcHJpdmlsZWdlZC4KICAq LwogI2RlZmluZSBET01JRF9YRU4gICAgICAgICAgICB4ZW5fbWtfdWludCgweDdGRjIpCiAKQEAg LTYxNCwxMCArNjQwLDE4IEBAIHN0cnVjdCB2Y3B1X3RpbWVfaW5mbyB7CiAgICAgICovCiAgICAg dWludDMyX3QgdHNjX3RvX3N5c3RlbV9tdWw7CiAgICAgaW50OF90ICAgdHNjX3NoaWZ0OworI2lm IF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPiAweDA0MDYwMAorICAgIHVpbnQ4X3QgIGZsYWdz OworICAgIHVpbnQ4X3QgIHBhZDFbMl07CisjZWxzZQogICAgIGludDhfdCAgIHBhZDFbM107Cisj ZW5kaWYKIH07IC8qIDMyIGJ5dGVzICovCiB0eXBlZGVmIHN0cnVjdCB2Y3B1X3RpbWVfaW5mbyB2 Y3B1X3RpbWVfaW5mb190OwogCisjZGVmaW5lIFhFTl9QVkNMT0NLX1RTQ19TVEFCTEVfQklUICAg ICAoMSA8PCAwKQorI2RlZmluZSBYRU5fUFZDTE9DS19HVUVTVF9TVE9QUEVEICAgICAgKDEgPDwg MSkKKwogc3RydWN0IHZjcHVfaW5mbyB7CiAgICAgLyoKICAgICAgKiAnZXZ0Y2huX3VwY2FsbF9w ZW5kaW5nJyBpcyB3cml0dGVuIG5vbi16ZXJvIGJ5IFhlbiB0byBpbmRpY2F0ZQpAQCAtNzM2LDcg Kzc3MCw3IEBAIHR5cGVkZWYgc3RydWN0IHNoYXJlZF9pbmZvIHNoYXJlZF9pbmZvX3Q7CiAgKiAg ICAgICAgIChtYXkgYmUgb21pdHRlZCkKICAqICAgICAgYy4gbGlzdCBvZiBhbGxvY2F0ZWQgcGFn ZSBmcmFtZXMgW21mbl9saXN0LCBucl9wYWdlc10KICAqICAgICAgICAgKHVubGVzcyByZWxvY2F0 ZWQgZHVlIHRvIFhFTl9FTEZOT1RFX0lOSVRfUDJNKQotICogICAgICBkLiBzdGFydF9pbmZvX3Qg c3RydWN0dXJlICAgICAgICBbcmVnaXN0ZXIgRVNJICh4ODYpXQorICogICAgICBkLiBzdGFydF9p bmZvX3Qgc3RydWN0dXJlICAgICAgICBbcmVnaXN0ZXIgclNJICh4ODYpXQogICogICAgICAgICBp biBjYXNlIG9mIGRvbTAgdGhpcyBwYWdlIGNvbnRhaW5zIHRoZSBjb25zb2xlIGluZm8sIHRvbwog ICogICAgICBlLiB1bmxlc3MgZG9tMDogeGVuc3RvcmUgcmluZyBwYWdlCiAgKiAgICAgIGYuIHVu bGVzcyBkb20wOiBjb25zb2xlIHJpbmcgcGFnZQpAQCAtNzk3LDI5ICs4MzEsNiBAQCBzdHJ1Y3Qg c3RhcnRfaW5mbyB7CiB9OwogdHlwZWRlZiBzdHJ1Y3Qgc3RhcnRfaW5mbyBzdGFydF9pbmZvX3Q7 CiAKLS8qCi0gKiBTdGFydCBvZiBkYXkgc3RydWN0dXJlIHBhc3NlZCB0byBQVkggZ3Vlc3RzIGlu ICVlYnguCi0gKgotICogTk9URTogbm90aGluZyB3aWxsIGJlIGxvYWRlZCBhdCBwaHlzaWNhbCBh ZGRyZXNzIDAsIHNvCi0gKiBhIDAgdmFsdWUgaW4gYW55IG9mIHRoZSBhZGRyZXNzIGZpZWxkcyBz aG91bGQgYmUgdHJlYXRlZAotICogYXMgbm90IHByZXNlbnQuCi0gKi8KLXN0cnVjdCBodm1fc3Rh cnRfaW5mbyB7Ci0jZGVmaW5lIEhWTV9TVEFSVF9NQUdJQ19WQUxVRSAweDMzNmVjNTc4Ci0gICAg dWludDMyX3QgbWFnaWM7ICAgICAgICAgICAgIC8qIENvbnRhaW5zIHRoZSBtYWdpYyB2YWx1ZSAw eDMzNmVjNTc4ICAgICAgICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICgi eEVuMyIgd2l0aCB0aGUgMHg4MCBiaXQgb2YgdGhlICJFIiBzZXQpLiovCi0gICAgdWludDMyX3Qg ZmxhZ3M7ICAgICAgICAgICAgIC8qIFNJRl94eHggZmxhZ3MuICAgICAgICAgICAgICAgICAgICAg ICAgICAgICovCi0gICAgdWludDMyX3QgY21kbGluZV9wYWRkcjsgICAgIC8qIFBoeXNpY2FsIGFk ZHJlc3Mgb2YgdGhlIGNvbW1hbmQgbGluZS4gICAgICovCi0gICAgdWludDMyX3QgbnJfbW9kdWxl czsgICAgICAgIC8qIE51bWJlciBvZiBtb2R1bGVzIHBhc3NlZCB0byB0aGUga2VybmVsLiAgICov Ci0gICAgdWludDMyX3QgbW9kbGlzdF9wYWRkcjsgICAgIC8qIFBoeXNpY2FsIGFkZHJlc3Mgb2Yg YW4gYXJyYXkgb2YgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIGh2bV9tb2RsaXN0X2VudHJ5LiAgICAgICAgICAgICAgICAgICAgICAgICovCi19OwotCi1z dHJ1Y3QgaHZtX21vZGxpc3RfZW50cnkgewotICAgIHVpbnQzMl90IHBhZGRyOyAgICAgICAgICAg ICAvKiBQaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBtb2R1bGUuICAgICAgICAgICAqLwotICAgIHVp bnQzMl90IHNpemU7ICAgICAgICAgICAgICAvKiBTaXplIG9mIHRoZSBtb2R1bGUgaW4gYnl0ZXMu ICAgICAgICAgICAgICAqLwotfTsKLQogLyogTmV3IGNvbnNvbGUgdW5pb24gZm9yIGRvbTAgaW50 cm9kdWNlZCBpbiAweDAwMDMwMjAzLiAqLwogI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18g PCAweDAwMDMwMjAzCiAjZGVmaW5lIGNvbnNvbGVfbWZuICAgIGNvbnNvbGUuZG9tVS5tZm4KQEAg LTkxOSw2ICs5MzAsMzcgQEAgX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh1aW50MTYsIHVpbnQx Nl90KTsKIF9fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodWludDMyLCB1aW50MzJfdCk7CiBfX0RF RklORV9YRU5fR1VFU1RfSEFORExFKHVpbnQ2NCwgdWludDY0X3QpOwogCit0eXBlZGVmIHN0cnVj dCB7CisgICAgdWludDhfdCBhWzE2XTsKK30geGVuX3V1aWRfdDsKKworLyoKKyAqIFhFTl9ERUZJ TkVfVVVJRCgweDAwMTEyMjMzLCAweDQ0NTUsIDB4NjY3NywgMHg4ODk5LAorICogICAgICAgICAg ICAgICAgIDB4YWEsIDB4YmIsIDB4Y2MsIDB4ZGQsIDB4ZWUsIDB4ZmYpCisgKiB3aWxsIGNvbnN0 cnVjdCBVVUlEIDAwMTEyMjMzLTQ0NTUtNjY3Ny04ODk5LWFhYmJjY2RkZWVmZiBwcmVzZW50ZWQg YXMKKyAqIHsweDAwLCAweDExLCAweDIyLCAweDMzLCAweDQ0LCAweDU1LCAweDY2LCAweDc3LCAw eDg4LAorICogMHg5OSwgMHhhYSwgMHhiYiwgMHhjYywgMHhkZCwgMHhlZSwgMHhmZn07CisgKgor ICogTkI6IFRoaXMgaXMgY29tcGF0aWJsZSB3aXRoIExpbnV4IGtlcm5lbCBhbmQgd2l0aCBsaWJ1 dWlkLCBidXQgaXQgaXMgbm90CisgKiBjb21wYXRpYmxlIHdpdGggTWljcm9zb2Z0LCBhcyB0aGV5 IHVzZSBtaXhlZC1lbmRpYW4gZW5jb2RpbmcgKHNvbWUKKyAqIGNvbXBvbmVudHMgYXJlIGxpdHRs ZS1lbmRpYW4sIHNvbWUgYXJlIGJpZy1lbmRpYW4pLgorICovCisjZGVmaW5lIFhFTl9ERUZJTkVf VVVJRF8oYSwgYiwgYywgZCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNikgICAgICAgICAgICBcCisg ICAge3soKGEpID4+IDI0KSAmIDB4RkYsICgoYSkgPj4gMTYpICYgMHhGRiwgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgICAgICAoKGEpID4+ICA4KSAmIDB4RkYsICgoYSkgPj4gIDApICYg MHhGRiwgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAoKGIpID4+ICA4KSAmIDB4 RkYsICgoYikgPj4gIDApICYgMHhGRiwgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg ICAoKGMpID4+ICA4KSAmIDB4RkYsICgoYykgPj4gIDApICYgMHhGRiwgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisgICAgICAoKGQpID4+ICA4KSAmIDB4RkYsICgoZCkgPj4gIDApICYgMHhG RiwgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgZTEsIGUyLCBl MywgZTQsIGU1LCBlNn19CisKKyNpZiBkZWZpbmVkKF9fU1REQ19WRVJTSU9OX18pID8gX19TVERD X1ZFUlNJT05fXyA+PSAxOTk5MDFMIDogZGVmaW5lZChfX0dOVUNfXykKKyNkZWZpbmUgWEVOX0RF RklORV9VVUlEKGEsIGIsIGMsIGQsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYpICAgICAgICAgICAg IFwKKyAgICAoKHhlbl91dWlkX3QpWEVOX0RFRklORV9VVUlEXyhhLCBiLCBjLCBkLCBlMSwgZTIs IGUzLCBlNCwgZTUsIGU2KSkKKyNlbHNlCisjZGVmaW5lIFhFTl9ERUZJTkVfVVVJRChhLCBiLCBj LCBkLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2KSAgICAgICAgICAgICBcCisgICAgWEVOX0RFRklO RV9VVUlEXyhhLCBiLCBjLCBkLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2KQorI2VuZGlmIC8qIF9f U1REQ19WRVJTSU9OX18gLyBfX0dOVUNfXyAqLworCiAjZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAq LwogCiAvKiBEZWZhdWx0IGRlZmluaXRpb25zIGZvciBtYWNyb3MgdXNlZCBieSBkb21jdGwvc3lz Y3RsLiAqLwotLSAKMi4xMi4zCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJv amVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hl bi1kZXZlbA==