From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Hellstrom Subject: [PATCH 2/7] drm/vmwgfx: Update device includes for DX device functionality Date: Wed, 12 Aug 2015 22:49:03 -0700 Message-ID: <1439444948-4746-3-git-send-email-thellstrom@vmware.com> References: <1439444948-4746-1-git-send-email-thellstrom@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx2.bahnhof.se (mx2.bahnhof.se [213.80.101.12]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2A61F720B8 for ; Wed, 12 Aug 2015 22:49:20 -0700 (PDT) Received: from localhost (mf.bahnhof.se [213.80.101.20]) by mx2-reinject (Postfix) with ESMTP id 761B641359 for ; Thu, 13 Aug 2015 07:49:18 +0200 (CEST) Received: from mf1.bahnhof.se ([127.0.0.1]) by localhost (mf1.bahnhof.se [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QY5uv+vmuhHG for ; Thu, 13 Aug 2015 07:49:16 +0200 (CEST) Received: from mail.shipmail.org (h-5-150-198-217.na.cust.bahnhof.se [5.150.198.217]) by mf1.bahnhof.se (Postfix) with ESMTP id 8E711386EE9 for ; Thu, 13 Aug 2015 07:49:16 +0200 (CEST) Received: from mail.shipmail.org (lin0.kontor.shipmail.org [127.0.0.1]) by mail.shipmail.org (Postfix) with ESMTP id C8B823F4008 for ; Thu, 13 Aug 2015 07:49:15 +0200 (CEST) Received: from localhost.localdomain (lin0.kontor.shipmail.org [127.0.0.1]) by mail.shipmail.org (Postfix) with ESMTP id 6A06F3F400C for ; Thu, 13 Aug 2015 07:49:14 +0200 (CEST) In-Reply-To: <1439444948-4746-1-git-send-email-thellstrom@vmware.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogU2luY2xhaXIgWWVoIDxzeWVoQHZtd2FyZS5jb20+CgpBZGQgRFggaW5jbHVkZXMgYW5k IG1vdmUgYWxsIGRldmljZSBpbmNsdWRlcyB0byBhIHNlcGFyYXRlIGRpcmVjdG9yeS4KCkNvLWF1 dGhvcmVkIHdpdGggVGhvbWFzIEhlbGxzdHJvbSwgQ2hhcm1haW5lIExlZSBhbmQgYWJvdmUgYWxs LAp0aGUgVk13YXJlIGRldmljZSB0ZWFtLgoKU2lnbmVkLW9mZi1ieTogU2luY2xhaXIgWWVoIDxz eWVoQHZtd2FyZS5jb20+ClNpZ25lZC1vZmYtYnk6IFRob21hcyBIZWxsc3Ryb20gPHRoZWxsc3Ry b21Adm13YXJlLmNvbT4KU2lnbmVkLW9mZi1ieTogQ2hhcm1haW5lIExlZSA8Y2hhcm1haW5lbEB2 bXdhcmUuY29tPgotLS0KIC4uLi9ncHUvZHJtL3Ztd2dmeC9kZXZpY2VfaW5jbHVkZS9pbmNsdWRl Q2hlY2suaCAgIHwgICAgMyArCiAuLi4vZ3B1L2RybS92bXdnZngvZGV2aWNlX2luY2x1ZGUvc3Zn YTNkX2NhcHMuaCAgICB8ICAxMTAgKwogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9kZXZpY2VfaW5j bHVkZS9zdmdhM2RfY21kLmggfCAyMDcxICsrKysrKysrKysrKysrKwogLi4uL2dwdS9kcm0vdm13 Z2Z4L2RldmljZV9pbmNsdWRlL3N2Z2EzZF9kZXZjYXBzLmggfCAgNDU3ICsrKysKIGRyaXZlcnMv Z3B1L2RybS92bXdnZngvZGV2aWNlX2luY2x1ZGUvc3ZnYTNkX2R4LmggIHwgMTQ4NyArKysrKysr KysrKwogLi4uL2dwdS9kcm0vdm13Z2Z4L2RldmljZV9pbmNsdWRlL3N2Z2EzZF9saW1pdHMuaCAg fCAgIDk5ICsKIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvZGV2aWNlX2luY2x1ZGUvc3ZnYTNkX3Jl Zy5oIHwgICA1MCArCiAuLi4vZHJtL3Ztd2dmeC9kZXZpY2VfaW5jbHVkZS9zdmdhM2Rfc3VyZmFj ZWRlZnMuaCB8IDEyMDQgKysrKysrKysrCiAuLi4vZ3B1L2RybS92bXdnZngvZGV2aWNlX2luY2x1 ZGUvc3ZnYTNkX3R5cGVzLmggICB8IDE2MzMgKysrKysrKysrKysrCiAuLi4vZ3B1L2RybS92bXdn ZngvZGV2aWNlX2luY2x1ZGUvc3ZnYV9lc2NhcGUuaCAgICB8ICAgODkgKwogLi4uL2dwdS9kcm0v dm13Z2Z4L2RldmljZV9pbmNsdWRlL3N2Z2Ffb3ZlcmxheS5oICAgfCAgMTk5ICsrCiBkcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L2RldmljZV9pbmNsdWRlL3N2Z2FfcmVnLmggICB8IDE5MzYgKysrKysr KysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvZGV2aWNlX2luY2x1ZGUvc3ZnYV90eXBl cy5oIHwgICA0NiArCiAuLi4vZ3B1L2RybS92bXdnZngvZGV2aWNlX2luY2x1ZGUvdm1fYmFzaWNf dHlwZXMuaCB8ICAgMjEgKwogLi4uL2RybS92bXdnZngvZGV2aWNlX2luY2x1ZGUvdm13YXJlX3Bh Y2tfYmVnaW4uaCAgfCAgIDI1ICsKIC4uLi9kcm0vdm13Z2Z4L2RldmljZV9pbmNsdWRlL3Ztd2Fy ZV9wYWNrX2VuZC5oICAgIHwgICAyNSArCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3N2Z2EzZF9y ZWcuaCAgICAgICAgICAgICAgICB8IDI2NzUgLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMv Z3B1L2RybS92bXdnZngvc3ZnYTNkX3N1cmZhY2VkZWZzLmggICAgICAgIHwgIDk3MyAtLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3N2Z2FfZXNjYXBlLmggICAgICAgICAgICAgICB8ICAg ODkgLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9zdmdhX292ZXJsYXkuaCAgICAgICAgICAgICAg fCAgMjAxIC0tCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3N2Z2FfcmVnLmggICAgICAgICAgICAg ICAgICB8IDE3NTEgLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9zdmdhX3R5 cGVzLmggICAgICAgICAgICAgICAgfCAgIDQ4IC0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2NtZGJ1Zi5jICAgICAgICAgICAgIHwgICAgMiArLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfY29udGV4dC5jICAgICAgICAgICAgfCAgICAyICstCiBkcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9kcnYuYyAgICAgICAgICAgICAgICB8ICAgMTIgKy0KIGRyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oICAgICAgICAgICAgICAgIHwgICAgMiArLQogZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZXhlY2J1Zi5jICAgICAgICAgICAgfCAgICAyIC0KIGRy aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZpZm8uYyAgICAgICAgICAgICAgIHwgICAgMyAr LQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfaW9jdGwuYyAgICAgICAgICAgICAgfCAg ICAxICsKIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X21vYi5jICAgICAgICAgICAgICAg IHwgICAgMiArLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfb3ZlcmxheS5jICAgICAg ICAgICAgfCAgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZWcuaCAgICAg ICAgICAgICAgICB8ICAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N0ZHUu YyAgICAgICAgICAgICAgIHwgICAgMiArLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf c3VyZmFjZS5jICAgICAgICAgICAgfCAgICAyICstCiAzNCBmaWxlcyBjaGFuZ2VkLCA5NDc0IGlu c2VydGlvbnMoKyksIDU3NTYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC9kZXZpY2VfaW5jbHVkZS9pbmNsdWRlQ2hlY2suaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS92bXdnZngvZGV2aWNlX2luY2x1ZGUvc3ZnYTNkX2Nh cHMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS92bXdnZngvZGV2aWNlX2lu Y2x1ZGUvc3ZnYTNkX2NtZC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC9kZXZpY2VfaW5jbHVkZS9zdmdhM2RfZGV2Y2Fwcy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9kZXZpY2VfaW5jbHVkZS9zdmdhM2RfZHguaAogY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS92bXdnZngvZGV2aWNlX2luY2x1ZGUvc3ZnYTNk X2xpbWl0cy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9kZXZp Y2VfaW5jbHVkZS9zdmdhM2RfcmVnLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L2RldmljZV9pbmNsdWRlL3N2Z2EzZF9zdXJmYWNlZGVmcy5oCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9kZXZpY2VfaW5jbHVkZS9zdmdhM2RfdHlw ZXMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS92bXdnZngvZGV2aWNlX2lu Y2x1ZGUvc3ZnYV9lc2NhcGUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS92 bXdnZngvZGV2aWNlX2luY2x1ZGUvc3ZnYV9vdmVybGF5LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L2RldmljZV9pbmNsdWRlL3N2Z2FfcmVnLmgKIGNyZWF0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L2RldmljZV9pbmNsdWRlL3N2Z2FfdHlw ZXMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS92bXdnZngvZGV2aWNlX2lu Y2x1ZGUvdm1fYmFzaWNfdHlwZXMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2Ry bS92bXdnZngvZGV2aWNlX2luY2x1ZGUvdm13YXJlX3BhY2tfYmVnaW4uaAogY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS92bXdnZngvZGV2aWNlX2luY2x1ZGUvdm13YXJlX3BhY2tf ZW5kLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3N2Z2EzZF9y ZWcuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS92bXdnZngvc3ZnYTNkX3N1 cmZhY2VkZWZzLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3N2 Z2FfZXNjYXBlLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3N2 Z2Ffb3ZlcmxheS5oCiBkZWxldGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9z dmdhX3JlZy5oCiBkZWxldGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9zdmdh X3R5cGVzLmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L2RldmljZV9pbmNs dWRlL2luY2x1ZGVDaGVjay5oIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9kZXZpY2VfaW5jbHVk ZS9pbmNsdWRlQ2hlY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Y2Nl N2YxCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9kZXZpY2VfaW5j bHVkZS9pbmNsdWRlQ2hlY2suaApAQCAtMCwwICsxLDMgQEAKKy8qCisgKiBJbnRlbnRpb25hbGx5 IGVtcHR5IGZpbGUuCisgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvZGV2 aWNlX2luY2x1ZGUvc3ZnYTNkX2NhcHMuaCBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvZGV2aWNl X2luY2x1ZGUvc3ZnYTNkX2NhcHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li45Y2UyNDY2Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9kZXZp Y2VfaW5jbHVkZS9zdmdhM2RfY2Fwcy5oCkBAIC0wLDAgKzEsMTEwIEBACisvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJp Z2h0IDIwMDctMjAxNSBWTXdhcmUsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz b24KKyAqIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBk b2N1bWVudGF0aW9uCisgKiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBT b2Z0d2FyZSB3aXRob3V0CisgKiByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRh dGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwKKyAqIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcworICogb2YgdGhlIFNv ZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAq IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6 CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu b3RpY2Ugc2hhbGwgYmUKKyAqIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg cG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorICogRVhQUkVTUyBPUiBJ TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisg KiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAor ICogTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZ UklHSFQgSE9MREVSUworICogQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RI RVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOCisgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQg T1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBX SVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQorICog U09GVFdBUkUuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCisKKy8qCisgKiBzdmdhM2RfY2Fwcy5oIC0tCisgKgorICogICAg ICAgRGVmaW5pdGlvbnMgZm9yIFNWR0EzRCBoYXJkd2FyZSBjYXBhYmlsaXRpZXMuICBDYXBhYmls aXRpZXMKKyAqICAgICAgIGFyZSB1c2VkIHRvIHF1ZXJ5IGZvciBvcHRpb25hbCByZW5kZXJpbmcg ZmVhdHVyZXMgZHVyaW5nCisgKiAgICAgICBkcml2ZXIgaW5pdGlhbGl6YXRpb24uIFRoZSBjYXBh YmlsaXR5IGRhdGEgaXMgc3RvcmVkIGFzIHZlcnkKKyAqICAgICAgIGJhc2ljIGtleS92YWx1ZSBk aWN0aW9uYXJ5IHdpdGhpbiB0aGUgIkZJRk8gcmVnaXN0ZXIiIG1lbW9yeQorICogICAgICAgYXJl YSBhdCB0aGUgYmVnaW5uaW5nIG9mIEJBUjIuCisgKgorICogICAgICAgTm90ZSB0aGF0IHRoZXNl IGRlZmluaXRpb25zIGFyZSBvbmx5IGZvciAzRCBjYXBhYmlsaXRpZXMuCisgKiAgICAgICBUaGUg U1ZHQSBkZXZpY2UgYWxzbyBoYXMgImRldmljZSBjYXBhYmlsaXRpZXMiIGFuZCAiRklGTworICog ICAgICAgY2FwYWJpbGl0aWVzIiwgd2hpY2ggYXJlIG5vbi0zRC1zcGVjaWZpYyBhbmQgYXJlIHN0 b3JlZCBhcworICogICAgICAgYml0ZmllbGRzIHJhdGhlciB0aGFuIGtleS92YWx1ZSBwYWlycy4K KyAqLworCisjaWZuZGVmIF9TVkdBM0RfQ0FQU19IXworI2RlZmluZSBfU1ZHQTNEX0NBUFNfSF8K KworI2RlZmluZSBJTkNMVURFX0FMTE9XX01PRFVMRQorI2RlZmluZSBJTkNMVURFX0FMTE9XX1VT RVJMRVZFTAorCisjaW5jbHVkZSAiaW5jbHVkZUNoZWNrLmgiCisKKyNpbmNsdWRlICJzdmdhX3Jl Zy5oIgorCisjZGVmaW5lIFNWR0FfRklGT18zRF9DQVBTX1NJWkUgICAoU1ZHQV9GSUZPXzNEX0NB UFNfTEFTVCAtIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdBX0ZJRk9f M0RfQ0FQUyArIDEpCisKKworLyoKKyAqIFNWR0EzZENhcHNSZWNvcmRUeXBlCisgKgorICogICAg UmVjb3JkIHR5cGVzIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBjYXBzIGJsb2NrLgorICogICAg UmVsYXRlZCByZWNvcmQgdHlwZXMgYXJlIGdyb3VwZWQgdG9nZXRoZXIgbnVtZXJpY2FsbHkgc28g dGhhdAorICogICAgU1ZHQTNkQ2Fwc19GaW5kUmVjb3JkKCkgY2FuIGJlIGFwcGxpZWQgb24gYSBy YW5nZSBvZiByZWNvcmQKKyAqICAgIHR5cGVzLgorICovCisKK3R5cGVkZWYgZW51bSB7CisgICBT VkdBM0RDQVBTX1JFQ09SRF9VTktOT1dOICAgICAgICA9IDAsCisgICBTVkdBM0RDQVBTX1JFQ09S RF9ERVZDQVBTX01JTiAgICA9IDB4MTAwLAorICAgU1ZHQTNEQ0FQU19SRUNPUkRfREVWQ0FQUyAg ICAgICAgPSAweDEwMCwKKyAgIFNWR0EzRENBUFNfUkVDT1JEX0RFVkNBUFNfTUFYICAgID0gMHgx ZmYsCit9IFNWR0EzZENhcHNSZWNvcmRUeXBlOworCisKKy8qCisgKiBTVkdBM2RDYXBzUmVjb3Jk SGVhZGVyCisgKgorICogICAgSGVhZGVyIGZpZWxkIGxlYWRpbmcgZWFjaCBjYXBzIGJsb2NrIHJl Y29yZC4gQ29udGFpbnMgdGhlIG9mZnNldCAoaW4KKyAqICAgIHJlZ2lzdGVyIHdvcmRzLCBOT1Qg Ynl0ZXMpIHRvIHRoZSBuZXh0IGNhcHMgYmxvY2sgcmVjb3JkIChvciB0aGUgZW5kCisgKiAgICBv ZiBjYXBzIGJsb2NrIHJlY29yZHMgd2hpY2ggd2lsbCBiZSBhIHplcm8gd29yZCkgYW5kIHRoZSBy ZWNvcmQgdHlwZQorICogICAgYXMgZGVmaW5lZCBhYm92ZS4KKyAqLworCit0eXBlZGVmCisjaW5j bHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDYXBzUmVjb3JkSGVhZGVy IHsKKyAgIHVpbnQzMiBsZW5ndGg7CisgICBTVkdBM2RDYXBzUmVjb3JkVHlwZSB0eXBlOworfQor I2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ2Fwc1JlY29yZEhlYWRlcjsKKwor CisvKgorICogU1ZHQTNkQ2Fwc1JlY29yZAorICoKKyAqICAgIENhcHMgYmxvY2sgcmVjb3JkOyAi ZGF0YSIgaXMgYSBwbGFjZWhvbGRlciBmb3IgdGhlIGFjdHVhbCBkYXRhIHN0cnVjdHVyZQorICog ICAgY29udGFpbmVkIHdpdGhpbiB0aGUgcmVjb3JkOworICovCisKK3R5cGVkZWYKKyNpbmNsdWRl ICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZENhcHNSZWNvcmQgeworICAgU1ZH QTNkQ2Fwc1JlY29yZEhlYWRlciBoZWFkZXI7CisgICB1aW50MzIgZGF0YVsxXTsKK30KKyNpbmNs dWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENhcHNSZWNvcmQ7CisKKwordHlwZWRlZiB1 aW50MzIgU1ZHQTNkQ2FwUGFpclsyXTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L2RldmljZV9pbmNsdWRlL3N2Z2EzZF9jbWQuaCBiL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvZGV2aWNlX2luY2x1ZGUvc3ZnYTNkX2NtZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjJkZmQ1N2MKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L2RldmljZV9pbmNsdWRlL3N2Z2EzZF9jbWQuaApAQCAtMCwwICsxLDIwNzEgQEAK Ky8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCisgKiBDb3B5cmlnaHQgMTk5OC0yMDE1IFZNd2FyZSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNl cnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn ZSwgdG8gYW55IHBlcnNvbgorICogb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFu ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24KKyAqIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRv IGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQKKyAqIHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcg d2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LAorICogbW9kaWZ5LCBt ZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVz CisgKiBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBT b2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dp bmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQorICogaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBv ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRX QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisg KiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB UlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UgQU5ECisgKiBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBB VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwg REFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4KKyAqIEFDVElPTiBPRiBD T05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisg KiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO R1MgSU4gVEhFCisgKiBTT0ZUV0FSRS4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoKKyAqIHN2Z2EzZF9jbWQuaCAt LQorICoKKyAqICAgICAgIFNWR0EgM2QgaGFyZHdhcmUgY21kIGRlZmluaXRpb25zCisgKi8KKwor I2lmbmRlZiBfU1ZHQTNEX0NNRF9IXworI2RlZmluZSBfU1ZHQTNEX0NNRF9IXworCisjZGVmaW5l IElOQ0xVREVfQUxMT1dfTU9EVUxFCisjZGVmaW5lIElOQ0xVREVfQUxMT1dfVVNFUkxFVkVMCisj ZGVmaW5lIElOQ0xVREVfQUxMT1dfVk1DT1JFCisKKyNpbmNsdWRlICJpbmNsdWRlQ2hlY2suaCIK KyNpbmNsdWRlICJzdmdhM2RfdHlwZXMuaCIKKworLyoKKyAqIElkZW50aWZpZXJzIGZvciBjb21t YW5kcyBpbiB0aGUgY29tbWFuZCBGSUZPLgorICoKKyAqIElEcyBiZXR3ZWVuIDEwMDAgYW5kIDEw MzkgKGluY2x1c2l2ZSkgd2VyZSB1c2VkIGJ5IG9ic29sZXRlIHZlcnNpb25zIG9mCisgKiB0aGUg U1ZHQTNEIHByb3RvY29sIGFuZCByZW1haW4gcmVzZXJ2ZWQ7IHRoZXkgc2hvdWxkIG5vdCBiZSB1 c2VkIGluIHRoZQorICogZnV0dXJlLgorICoKKyAqIElEcyBiZXR3ZWVuIDEwNDAgYW5kIDE5OTkg KGluY2x1c2l2ZSkgYXJlIGF2YWlsYWJsZSBmb3IgdXNlIGJ5IHRoZQorICogY3VycmVudCBTVkdB M0QgcHJvdG9jb2wuCisgKgorICogRklGTyBjbGllbnRzIG90aGVyIHRoYW4gU1ZHQTNEIHNob3Vs ZCBzdGF5IGJlbG93IDEwMDAsIG9yIGF0IDIwMDAKKyAqIGFuZCB1cC4KKyAqLworCit0eXBlZGVm IGVudW0geworICAgU1ZHQV8zRF9DTURfTEVHQUNZX0JBU0UgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgID0gMTAwMCwKKyAgIFNWR0FfM0RfQ01EX0JBU0UgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA9IDEwNDAsCisKKyAgIFNWR0FfM0RfQ01EX1NVUkZBQ0VfREVG SU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwNDAsCisgICBTVkdBXzNEX0NNRF9T VVJGQUNFX0RFU1RST1kgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDQxLAorICAgU1ZH QV8zRF9DTURfU1VSRkFDRV9DT1BZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA0 MiwKKyAgIFNWR0FfM0RfQ01EX1NVUkZBQ0VfU1RSRVRDSEJMVCAgICAgICAgICAgICAgICAgICAg ICAgICA9IDEwNDMsCisgICBTVkdBXzNEX0NNRF9TVVJGQUNFX0RNQSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPSAxMDQ0LAorICAgU1ZHQV8zRF9DTURfQ09OVEVYVF9ERUZJTkUgICAg ICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA0NSwKKyAgIFNWR0FfM0RfQ01EX0NPTlRFWFRf REVTVFJPWSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwNDYsCisgICBTVkdBXzNEX0NN RF9TRVRUUkFOU0ZPUk0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDQ3LAorICAg U1ZHQV8zRF9DTURfU0VUWlJBTkdFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g MTA0OCwKKyAgIFNWR0FfM0RfQ01EX1NFVFJFTkRFUlNUQVRFICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA9IDEwNDksCisgICBTVkdBXzNEX0NNRF9TRVRSRU5ERVJUQVJHRVQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPSAxMDUwLAorICAgU1ZHQV8zRF9DTURfU0VUVEVYVFVSRVNUQVRF ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA1MSwKKyAgIFNWR0FfM0RfQ01EX1NFVE1B VEVSSUFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwNTIsCisgICBTVkdBXzNE X0NNRF9TRVRMSUdIVERBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDUzLAor ICAgU1ZHQV8zRF9DTURfU0VUTElHSFRFTkFCTEVEICAgICAgICAgICAgICAgICAgICAgICAgICAg ID0gMTA1NCwKKyAgIFNWR0FfM0RfQ01EX1NFVFZJRVdQT1JUICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA9IDEwNTUsCisgICBTVkdBXzNEX0NNRF9TRVRDTElQUExBTkUgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPSAxMDU2LAorICAgU1ZHQV8zRF9DTURfQ0xFQVIgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA1NywKKyAgIFNWR0FfM0RfQ01EX1BS RVNFTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwNTgsCisgICBTVkdB XzNEX0NNRF9TSEFERVJfREVGSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDU5 LAorICAgU1ZHQV8zRF9DTURfU0hBREVSX0RFU1RST1kgICAgICAgICAgICAgICAgICAgICAgICAg ICAgID0gMTA2MCwKKyAgIFNWR0FfM0RfQ01EX1NFVF9TSEFERVIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA9IDEwNjEsCisgICBTVkdBXzNEX0NNRF9TRVRfU0hBREVSX0NPTlNUICAg ICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDYyLAorICAgU1ZHQV8zRF9DTURfRFJBV19QUklN SVRJVkVTICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA2MywKKyAgIFNWR0FfM0RfQ01E X1NFVFNDSVNTT1JSRUNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwNjQsCisgICBT VkdBXzNEX0NNRF9CRUdJTl9RVUVSWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx MDY1LAorICAgU1ZHQV8zRF9DTURfRU5EX1FVRVJZICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgID0gMTA2NiwKKyAgIFNWR0FfM0RfQ01EX1dBSVRfRk9SX1FVRVJZICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA9IDEwNjcsCisgICBTVkdBXzNEX0NNRF9QUkVTRU5UX1JFQURCQUNL ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDY4LAorICAgU1ZHQV8zRF9DTURfQkxJVF9T VVJGQUNFX1RPX1NDUkVFTiAgICAgICAgICAgICAgICAgICAgID0gMTA2OSwKKyAgIFNWR0FfM0Rf Q01EX1NVUkZBQ0VfREVGSU5FX1YyICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwNzAsCisg ICBTVkdBXzNEX0NNRF9HRU5FUkFURV9NSVBNQVBTICAgICAgICAgICAgICAgICAgICAgICAgICAg PSAxMDcxLAorICAgU1ZHQV8zRF9DTURfVklERU9fQ1JFQVRFX0RFQ09ERVIgICAgICAgICAgICAg ICAgICAgICAgID0gMTA3MiwKKyAgIFNWR0FfM0RfQ01EX1ZJREVPX0RFU1RST1lfREVDT0RFUiAg ICAgICAgICAgICAgICAgICAgICA9IDEwNzMsCisgICBTVkdBXzNEX0NNRF9WSURFT19DUkVBVEVf UFJPQ0VTU09SICAgICAgICAgICAgICAgICAgICAgPSAxMDc0LAorICAgU1ZHQV8zRF9DTURfVklE RU9fREVTVFJPWV9QUk9DRVNTT1IgICAgICAgICAgICAgICAgICAgID0gMTA3NSwKKyAgIFNWR0Ff M0RfQ01EX1ZJREVPX0RFQ09ERV9TVEFSVF9GUkFNRSAgICAgICAgICAgICAgICAgICA9IDEwNzYs CisgICBTVkdBXzNEX0NNRF9WSURFT19ERUNPREVfUkVOREVSICAgICAgICAgICAgICAgICAgICAg ICAgPSAxMDc3LAorICAgU1ZHQV8zRF9DTURfVklERU9fREVDT0RFX0VORF9GUkFNRSAgICAgICAg ICAgICAgICAgICAgID0gMTA3OCwKKyAgIFNWR0FfM0RfQ01EX1ZJREVPX1BST0NFU1NfRlJBTUUg ICAgICAgICAgICAgICAgICAgICAgICA9IDEwNzksCisgICBTVkdBXzNEX0NNRF9BQ1RJVkFURV9T VVJGQUNFICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDgwLAorICAgU1ZHQV8zRF9DTURf REVBQ1RJVkFURV9TVVJGQUNFICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA4MSwKKyAgIFNW R0FfM0RfQ01EX1NDUkVFTl9ETUEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEw ODIsCisgICBTVkdBXzNEX0NNRF9TRVRfVU5JVFlfU1VSRkFDRV9DT09LSUUgICAgICAgICAgICAg ICAgICAgPSAxMDgzLAorICAgU1ZHQV8zRF9DTURfT1BFTl9DT05URVhUX1NVUkZBQ0UgICAgICAg ICAgICAgICAgICAgICAgID0gMTA4NCwKKworICAgU1ZHQV8zRF9DTURfTE9HSUNPUFNfQklUQkxU ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA4NSwKKyAgIFNWR0FfM0RfQ01EX0xPR0lD T1BTX1RSQU5TQkxUICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwODYsCisgICBTVkdBXzNE X0NNRF9MT0dJQ09QU19TVFJFVENIQkxUICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDg3LAor ICAgU1ZHQV8zRF9DTURfTE9HSUNPUFNfQ09MT1JGSUxMICAgICAgICAgICAgICAgICAgICAgICAg ID0gMTA4OCwKKyAgIFNWR0FfM0RfQ01EX0xPR0lDT1BTX0FMUEhBQkxFTkQgICAgICAgICAgICAg ICAgICAgICAgICA9IDEwODksCisgICBTVkdBXzNEX0NNRF9MT0dJQ09QU19DTEVBUlRZUEVCTEVO RCAgICAgICAgICAgICAgICAgICAgPSAxMDkwLAorCisgICBTVkdBXzNEX0NNRF9TRVRfT1RBQkxF X0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDkxLAorICAgU1ZHQV8zRF9DTURf UkVBREJBQ0tfT1RBQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA5MiwKKworICAg U1ZHQV8zRF9DTURfREVGSU5FX0dCX01PQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g MTA5MywKKyAgIFNWR0FfM0RfQ01EX0RFU1RST1lfR0JfTU9CICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA9IDEwOTQsCisgICBTVkdBXzNEX0NNRF9ERUFEMyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPSAxMDk1LAorICAgU1ZHQV8zRF9DTURfVVBEQVRFX0dCX01PQl9N QVBQSU5HICAgICAgICAgICAgICAgICAgICAgID0gMTA5NiwKKworICAgU1ZHQV8zRF9DTURfREVG SU5FX0dCX1NVUkZBQ0UgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA5NywKKyAgIFNWR0Ff M0RfQ01EX0RFU1RST1lfR0JfU1VSRkFDRSAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwOTgs CisgICBTVkdBXzNEX0NNRF9CSU5EX0dCX1NVUkZBQ0UgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPSAxMDk5LAorICAgU1ZHQV8zRF9DTURfQ09ORF9CSU5EX0dCX1NVUkZBQ0UgICAgICAgICAg ICAgICAgICAgICAgID0gMTEwMCwKKyAgIFNWR0FfM0RfQ01EX1VQREFURV9HQl9JTUFHRSAgICAg ICAgICAgICAgICAgICAgICAgICAgICA9IDExMDEsCisgICBTVkdBXzNEX0NNRF9VUERBVEVfR0Jf U1VSRkFDRSAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTAyLAorICAgU1ZHQV8zRF9DTURf UkVBREJBQ0tfR0JfSU1BR0UgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTEwMywKKyAgIFNW R0FfM0RfQ01EX1JFQURCQUNLX0dCX1NVUkZBQ0UgICAgICAgICAgICAgICAgICAgICAgICA9IDEx MDQsCisgICBTVkdBXzNEX0NNRF9JTlZBTElEQVRFX0dCX0lNQUdFICAgICAgICAgICAgICAgICAg ICAgICAgPSAxMTA1LAorICAgU1ZHQV8zRF9DTURfSU5WQUxJREFURV9HQl9TVVJGQUNFICAgICAg ICAgICAgICAgICAgICAgID0gMTEwNiwKKworICAgU1ZHQV8zRF9DTURfREVGSU5FX0dCX0NPTlRF WFQgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTEwNywKKyAgIFNWR0FfM0RfQ01EX0RFU1RS T1lfR0JfQ09OVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICA9IDExMDgsCisgICBTVkdBXzNE X0NNRF9CSU5EX0dCX0NPTlRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTA5LAor ICAgU1ZHQV8zRF9DTURfUkVBREJBQ0tfR0JfQ09OVEVYVCAgICAgICAgICAgICAgICAgICAgICAg ID0gMTExMCwKKyAgIFNWR0FfM0RfQ01EX0lOVkFMSURBVEVfR0JfQ09OVEVYVCAgICAgICAgICAg ICAgICAgICAgICA9IDExMTEsCisKKyAgIFNWR0FfM0RfQ01EX0RFRklORV9HQl9TSEFERVIgICAg ICAgICAgICAgICAgICAgICAgICAgICA9IDExMTIsCisgICBTVkdBXzNEX0NNRF9ERVNUUk9ZX0dC X1NIQURFUiAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTEzLAorICAgU1ZHQV8zRF9DTURf QklORF9HQl9TSEFERVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTExNCwKKworICAg U1ZHQV8zRF9DTURfU0VUX09UQUJMRV9CQVNFNjQgICAgICAgICAgICAgICAgICAgICAgICAgID0g MTExNSwKKworICAgU1ZHQV8zRF9DTURfQkVHSU5fR0JfUVVFUlkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgID0gMTExNiwKKyAgIFNWR0FfM0RfQ01EX0VORF9HQl9RVUVSWSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA9IDExMTcsCisgICBTVkdBXzNEX0NNRF9XQUlUX0ZPUl9HQl9R VUVSWSAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTE4LAorCisgICBTVkdBXzNEX0NNRF9O T1AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTE5LAorCisgICBT VkdBXzNEX0NNRF9FTkFCTEVfR0FSVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx MTIwLAorICAgU1ZHQV8zRF9DTURfRElTQUJMRV9HQVJUICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgID0gMTEyMSwKKyAgIFNWR0FfM0RfQ01EX01BUF9NT0JfSU5UT19HQVJUICAgICAgICAg ICAgICAgICAgICAgICAgICA9IDExMjIsCisgICBTVkdBXzNEX0NNRF9VTk1BUF9HQVJUX1JBTkdF ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTIzLAorCisgICBTVkdBXzNEX0NNRF9ERUZJ TkVfR0JfU0NSRUVOVEFSR0VUICAgICAgICAgICAgICAgICAgICAgPSAxMTI0LAorICAgU1ZHQV8z RF9DTURfREVTVFJPWV9HQl9TQ1JFRU5UQVJHRVQgICAgICAgICAgICAgICAgICAgID0gMTEyNSwK KyAgIFNWR0FfM0RfQ01EX0JJTkRfR0JfU0NSRUVOVEFSR0VUICAgICAgICAgICAgICAgICAgICAg ICA9IDExMjYsCisgICBTVkdBXzNEX0NNRF9VUERBVEVfR0JfU0NSRUVOVEFSR0VUICAgICAgICAg ICAgICAgICAgICAgPSAxMTI3LAorCisgICBTVkdBXzNEX0NNRF9SRUFEQkFDS19HQl9JTUFHRV9Q QVJUSUFMICAgICAgICAgICAgICAgICAgPSAxMTI4LAorICAgU1ZHQV8zRF9DTURfSU5WQUxJREFU RV9HQl9JTUFHRV9QQVJUSUFMICAgICAgICAgICAgICAgID0gMTEyOSwKKworICAgU1ZHQV8zRF9D TURfU0VUX0dCX1NIQURFUkNPTlNUU19JTkxJTkUgICAgICAgICAgICAgICAgID0gMTEzMCwKKwor ICAgU1ZHQV8zRF9DTURfR0JfU0NSRUVOX0RNQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ID0gMTEzMSwKKyAgIFNWR0FfM0RfQ01EX0JJTkRfR0JfU1VSRkFDRV9XSVRIX1BJVENIICAgICAg ICAgICAgICAgICA9IDExMzIsCisgICBTVkdBXzNEX0NNRF9HQl9NT0JfRkVOQ0UgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPSAxMTMzLAorICAgU1ZHQV8zRF9DTURfREVGSU5FX0dCX1NV UkZBQ0VfVjIgICAgICAgICAgICAgICAgICAgICAgID0gMTEzNCwKKyAgIFNWR0FfM0RfQ01EX0RF RklORV9HQl9NT0I2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExMzUsCisgICBTVkdB XzNEX0NNRF9SRURFRklORV9HQl9NT0I2NCAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTM2 LAorICAgU1ZHQV8zRF9DTURfTk9QX0VSUk9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgID0gMTEzNywKKworICAgU1ZHQV8zRF9DTURfU0VUX1ZFUlRFWF9TVFJFQU1TICAgICAgICAg ICAgICAgICAgICAgICAgID0gMTEzOCwKKyAgIFNWR0FfM0RfQ01EX1NFVF9WRVJURVhfREVDTFMg ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExMzksCisgICBTVkdBXzNEX0NNRF9TRVRfVkVS VEVYX0RJVklTT1JTICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTQwLAorICAgU1ZHQV8zRF9D TURfRFJBVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTE0MSwKKyAg IFNWR0FfM0RfQ01EX0RSQVdfSU5ERVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9 IDExNDIsCisKKyAgIC8qCisgICAgKiBEWDEwIENvbW1hbmRzCisgICAgKi8KKyAgIFNWR0FfM0Rf Q01EX0RYX01JTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExNDMsCisg ICBTVkdBXzNEX0NNRF9EWF9ERUZJTkVfQ09OVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAg PSAxMTQzLAorICAgU1ZHQV8zRF9DTURfRFhfREVTVFJPWV9DT05URVhUICAgICAgICAgICAgICAg ICAgICAgICAgID0gMTE0NCwKKyAgIFNWR0FfM0RfQ01EX0RYX0JJTkRfQ09OVEVYVCAgICAgICAg ICAgICAgICAgICAgICAgICAgICA9IDExNDUsCisgICBTVkdBXzNEX0NNRF9EWF9SRUFEQkFDS19D T05URVhUICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTQ2LAorICAgU1ZHQV8zRF9DTURfRFhf SU5WQUxJREFURV9DT05URVhUICAgICAgICAgICAgICAgICAgICAgID0gMTE0NywKKyAgIFNWR0Ff M0RfQ01EX0RYX1NFVF9TSU5HTEVfQ09OU1RBTlRfQlVGRkVSICAgICAgICAgICAgICA9IDExNDgs CisgICBTVkdBXzNEX0NNRF9EWF9TRVRfU0hBREVSX1JFU09VUkNFUyAgICAgICAgICAgICAgICAg ICAgPSAxMTQ5LAorICAgU1ZHQV8zRF9DTURfRFhfU0VUX1NIQURFUiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgID0gMTE1MCwKKyAgIFNWR0FfM0RfQ01EX0RYX1NFVF9TQU1QTEVSUyAgICAg ICAgICAgICAgICAgICAgICAgICAgICA9IDExNTEsCisgICBTVkdBXzNEX0NNRF9EWF9EUkFXICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTUyLAorICAgU1ZHQV8zRF9DTURf RFhfRFJBV19JTkRFWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTE1MywKKyAgIFNW R0FfM0RfQ01EX0RYX0RSQVdfSU5TVEFOQ0VEICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEx NTQsCisgICBTVkdBXzNEX0NNRF9EWF9EUkFXX0lOREVYRURfSU5TVEFOQ0VEICAgICAgICAgICAg ICAgICAgPSAxMTU1LAorICAgU1ZHQV8zRF9DTURfRFhfRFJBV19BVVRPICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgID0gMTE1NiwKKyAgIFNWR0FfM0RfQ01EX0RYX1NFVF9JTlBVVF9MQVlP VVQgICAgICAgICAgICAgICAgICAgICAgICA9IDExNTcsCisgICBTVkdBXzNEX0NNRF9EWF9TRVRf VkVSVEVYX0JVRkZFUlMgICAgICAgICAgICAgICAgICAgICAgPSAxMTU4LAorICAgU1ZHQV8zRF9D TURfRFhfU0VUX0lOREVYX0JVRkZFUiAgICAgICAgICAgICAgICAgICAgICAgID0gMTE1OSwKKyAg IFNWR0FfM0RfQ01EX0RYX1NFVF9UT1BPTE9HWSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9 IDExNjAsCisgICBTVkdBXzNEX0NNRF9EWF9TRVRfUkVOREVSVEFSR0VUUyAgICAgICAgICAgICAg ICAgICAgICAgPSAxMTYxLAorICAgU1ZHQV8zRF9DTURfRFhfU0VUX0JMRU5EX1NUQVRFICAgICAg ICAgICAgICAgICAgICAgICAgID0gMTE2MiwKKyAgIFNWR0FfM0RfQ01EX0RYX1NFVF9ERVBUSFNU RU5DSUxfU1RBVEUgICAgICAgICAgICAgICAgICA9IDExNjMsCisgICBTVkdBXzNEX0NNRF9EWF9T RVRfUkFTVEVSSVpFUl9TVEFURSAgICAgICAgICAgICAgICAgICAgPSAxMTY0LAorICAgU1ZHQV8z RF9DTURfRFhfREVGSU5FX1FVRVJZICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTE2NSwK KyAgIFNWR0FfM0RfQ01EX0RYX0RFU1RST1lfUVVFUlkgICAgICAgICAgICAgICAgICAgICAgICAg ICA9IDExNjYsCisgICBTVkdBXzNEX0NNRF9EWF9CSU5EX1FVRVJZICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPSAxMTY3LAorICAgU1ZHQV8zRF9DTURfRFhfU0VUX1FVRVJZX09GRlNFVCAg ICAgICAgICAgICAgICAgICAgICAgID0gMTE2OCwKKyAgIFNWR0FfM0RfQ01EX0RYX0JFR0lOX1FV RVJZICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExNjksCisgICBTVkdBXzNEX0NNRF9E WF9FTkRfUVVFUlkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTcwLAorICAgU1ZH QV8zRF9DTURfRFhfUkVBREJBQ0tfUVVFUlkgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTE3 MSwKKyAgIFNWR0FfM0RfQ01EX0RYX1NFVF9QUkVESUNBVElPTiAgICAgICAgICAgICAgICAgICAg ICAgICA9IDExNzIsCisgICBTVkdBXzNEX0NNRF9EWF9TRVRfU09UQVJHRVRTICAgICAgICAgICAg ICAgICAgICAgICAgICAgPSAxMTczLAorICAgU1ZHQV8zRF9DTURfRFhfU0VUX1ZJRVdQT1JUUyAg ICAgICAgICAgICAgICAgICAgICAgICAgID0gMTE3NCwKKyAgIFNWR0FfM0RfQ01EX0RYX1NFVF9T Q0lTU09SUkVDVFMgICAgICAgICAgICAgICAgICAgICAgICA9IDExNzUsCisgICBTVkdBXzNEX0NN RF9EWF9DTEVBUl9SRU5ERVJUQVJHRVRfVklFVyAgICAgICAgICAgICAgICAgPSAxMTc2LAorICAg U1ZHQV8zRF9DTURfRFhfQ0xFQVJfREVQVEhTVEVOQ0lMX1ZJRVcgICAgICAgICAgICAgICAgID0g MTE3NywKKyAgIFNWR0FfM0RfQ01EX0RYX1BSRURfQ09QWV9SRUdJT04gICAgICAgICAgICAgICAg ICAgICAgICA9IDExNzgsCisgICBTVkdBXzNEX0NNRF9EWF9QUkVEX0NPUFkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPSAxMTc5LAorICAgU1ZHQV8zRF9DTURfRFhfU1RSRVRDSEJMVCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTE4MCwKKyAgIFNWR0FfM0RfQ01EX0RYX0dF Tk1JUFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExODEsCisgICBTVkdBXzNE X0NNRF9EWF9VUERBVEVfU1VCUkVTT1VSQ0UgICAgICAgICAgICAgICAgICAgICAgPSAxMTgyLAor ICAgU1ZHQV8zRF9DTURfRFhfUkVBREJBQ0tfU1VCUkVTT1VSQ0UgICAgICAgICAgICAgICAgICAg ID0gMTE4MywKKyAgIFNWR0FfM0RfQ01EX0RYX0lOVkFMSURBVEVfU1VCUkVTT1VSQ0UgICAgICAg ICAgICAgICAgICA9IDExODQsCisgICBTVkdBXzNEX0NNRF9EWF9ERUZJTkVfU0hBREVSUkVTT1VS Q0VfVklFVyAgICAgICAgICAgICAgPSAxMTg1LAorICAgU1ZHQV8zRF9DTURfRFhfREVTVFJPWV9T SEFERVJSRVNPVVJDRV9WSUVXICAgICAgICAgICAgID0gMTE4NiwKKyAgIFNWR0FfM0RfQ01EX0RY X0RFRklORV9SRU5ERVJUQVJHRVRfVklFVyAgICAgICAgICAgICAgICA9IDExODcsCisgICBTVkdB XzNEX0NNRF9EWF9ERVNUUk9ZX1JFTkRFUlRBUkdFVF9WSUVXICAgICAgICAgICAgICAgPSAxMTg4 LAorICAgU1ZHQV8zRF9DTURfRFhfREVGSU5FX0RFUFRIU1RFTkNJTF9WSUVXICAgICAgICAgICAg ICAgID0gMTE4OSwKKyAgIFNWR0FfM0RfQ01EX0RYX0RFU1RST1lfREVQVEhTVEVOQ0lMX1ZJRVcg ICAgICAgICAgICAgICA9IDExOTAsCisgICBTVkdBXzNEX0NNRF9EWF9ERUZJTkVfRUxFTUVOVExB WU9VVCAgICAgICAgICAgICAgICAgICAgPSAxMTkxLAorICAgU1ZHQV8zRF9DTURfRFhfREVTVFJP WV9FTEVNRU5UTEFZT1VUICAgICAgICAgICAgICAgICAgID0gMTE5MiwKKyAgIFNWR0FfM0RfQ01E X0RYX0RFRklORV9CTEVORF9TVEFURSAgICAgICAgICAgICAgICAgICAgICA9IDExOTMsCisgICBT VkdBXzNEX0NNRF9EWF9ERVNUUk9ZX0JMRU5EX1NUQVRFICAgICAgICAgICAgICAgICAgICAgPSAx MTk0LAorICAgU1ZHQV8zRF9DTURfRFhfREVGSU5FX0RFUFRIU1RFTkNJTF9TVEFURSAgICAgICAg ICAgICAgID0gMTE5NSwKKyAgIFNWR0FfM0RfQ01EX0RYX0RFU1RST1lfREVQVEhTVEVOQ0lMX1NU QVRFICAgICAgICAgICAgICA9IDExOTYsCisgICBTVkdBXzNEX0NNRF9EWF9ERUZJTkVfUkFTVEVS SVpFUl9TVEFURSAgICAgICAgICAgICAgICAgPSAxMTk3LAorICAgU1ZHQV8zRF9DTURfRFhfREVT VFJPWV9SQVNURVJJWkVSX1NUQVRFICAgICAgICAgICAgICAgID0gMTE5OCwKKyAgIFNWR0FfM0Rf Q01EX0RYX0RFRklORV9TQU1QTEVSX1NUQVRFICAgICAgICAgICAgICAgICAgICA9IDExOTksCisg ICBTVkdBXzNEX0NNRF9EWF9ERVNUUk9ZX1NBTVBMRVJfU1RBVEUgICAgICAgICAgICAgICAgICAg PSAxMjAwLAorICAgU1ZHQV8zRF9DTURfRFhfREVGSU5FX1NIQURFUiAgICAgICAgICAgICAgICAg ICAgICAgICAgID0gMTIwMSwKKyAgIFNWR0FfM0RfQ01EX0RYX0RFU1RST1lfU0hBREVSICAgICAg ICAgICAgICAgICAgICAgICAgICA9IDEyMDIsCisgICBTVkdBXzNEX0NNRF9EWF9CSU5EX1NIQURF UiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAzLAorICAgU1ZHQV8zRF9DTURfRFhf REVGSU5FX1NUUkVBTU9VVFBVVCAgICAgICAgICAgICAgICAgICAgID0gMTIwNCwKKyAgIFNWR0Ff M0RfQ01EX0RYX0RFU1RST1lfU1RSRUFNT1VUUFVUICAgICAgICAgICAgICAgICAgICA9IDEyMDUs CisgICBTVkdBXzNEX0NNRF9EWF9TRVRfU1RSRUFNT1VUUFVUICAgICAgICAgICAgICAgICAgICAg ICAgPSAxMjA2LAorICAgU1ZHQV8zRF9DTURfRFhfU0VUX0NPVEFCTEUgICAgICAgICAgICAgICAg ICAgICAgICAgICAgID0gMTIwNywKKyAgIFNWR0FfM0RfQ01EX0RYX1JFQURCQUNLX0NPVEFCTEUg ICAgICAgICAgICAgICAgICAgICAgICA9IDEyMDgsCisgICBTVkdBXzNEX0NNRF9EWF9CVUZGRVJf Q09QWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjA5LAorICAgU1ZHQV8zRF9DTURf RFhfVFJBTlNGRVJfRlJPTV9CVUZGRVIgICAgICAgICAgICAgICAgICAgID0gMTIxMCwKKyAgIFNW R0FfM0RfQ01EX0RYX1NVUkZBQ0VfQ09QWV9BTkRfUkVBREJBQ0sgICAgICAgICAgICAgICA9IDEy MTEsCisgICBTVkdBXzNEX0NNRF9EWF9NT1ZFX1FVRVJZICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPSAxMjEyLAorICAgU1ZHQV8zRF9DTURfRFhfQklORF9BTExfUVVFUlkgICAgICAgICAg ICAgICAgICAgICAgICAgID0gMTIxMywKKyAgIFNWR0FfM0RfQ01EX0RYX1JFQURCQUNLX0FMTF9R VUVSWSAgICAgICAgICAgICAgICAgICAgICA9IDEyMTQsCisgICBTVkdBXzNEX0NNRF9EWF9QUkVE X1RSQU5TRkVSX0ZST01fQlVGRkVSICAgICAgICAgICAgICAgPSAxMjE1LAorICAgU1ZHQV8zRF9D TURfRFhfTU9CX0ZFTkNFXzY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTIxNiwKKyAg IFNWR0FfM0RfQ01EX0RYX0JJTkRfU0hBREVSX09OX0NPTlRFWFQgICAgICAgICAgICAgICAgICA9 IDEyMTcsCisgICBTVkdBXzNEX0NNRF9EWF9ISU5UICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPSAxMjE4LAorICAgU1ZHQV8zRF9DTURfRFhfQlVGRkVSX1VQREFURSAgICAgICAg ICAgICAgICAgICAgICAgICAgID0gMTIxOSwKKyAgIFNWR0FfM0RfQ01EX0RYX1NFVF9WU19DT05T VEFOVF9CVUZGRVJfT0ZGU0VUICAgICAgICAgICA9IDEyMjAsCisgICBTVkdBXzNEX0NNRF9EWF9T RVRfUFNfQ09OU1RBTlRfQlVGRkVSX09GRlNFVCAgICAgICAgICAgPSAxMjIxLAorICAgU1ZHQV8z RF9DTURfRFhfU0VUX0dTX0NPTlNUQU5UX0JVRkZFUl9PRkZTRVQgICAgICAgICAgID0gMTIyMiwK KworICAgLyoKKyAgICAqIFJlc2VydmUgc29tZSBJRHMgdG8gYmUgdXNlZCBmb3IgdGhlIERYMTEg c2hhZGVyIHR5cGVzLgorICAgICovCisgICBTVkdBXzNEX0NNRF9EWF9SRVNFUlZFRDEgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjIzLAorICAgU1ZHQV8zRF9DTURfRFhfUkVTRVJW RUQyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTIyNCwKKyAgIFNWR0FfM0RfQ01E X0RYX1JFU0VSVkVEMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEyMjUsCisKKyAg IFNWR0FfM0RfQ01EX0RYX01BWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9 IDEyMjYsCisgICBTVkdBXzNEX0NNRF9NQVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPSAxMjI2LAorICAgU1ZHQV8zRF9DTURfRlVUVVJFX01BWCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgID0gMzAwMAorfSBTVkdBRmlmbzNkQ21kSWQ7CisKKy8qCisgKiBG SUZPIGNvbW1hbmQgZm9ybWF0IGRlZmluaXRpb25zOgorICovCisKKy8qCisgKiBUaGUgZGF0YSBz aXplIGhlYWRlciBmb2xsb3dpbmcgY21kTnVtIGZvciBldmVyeSAzZCBjb21tYW5kCisgKi8KK3R5 cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAgIHVpbnQz MiAgICAgICAgICAgICAgIGlkOworICAgdWludDMyICAgICAgICAgICAgICAgc2l6ZTsKK30KKyNp bmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZEhlYWRlcjsKKwordHlwZWRlZgor I2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAgdWludDMyICAgICAg ICAgICAgICAgbnVtTWlwTGV2ZWxzOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgor U1ZHQTNkU3VyZmFjZUZhY2U7CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdp bi5oIgorc3RydWN0IHsKKyAgIHVpbnQzMiAgICAgICAgICAgICAgICAgICAgICBzaWQ7CisgICBT VkdBM2RTdXJmYWNlRmxhZ3MgICAgICAgICAgc3VyZmFjZUZsYWdzOworICAgU1ZHQTNkU3VyZmFj ZUZvcm1hdCAgICAgICAgIGZvcm1hdDsKKyAgIC8qCisgICAgKiBJZiBzdXJmYWNlRmxhZ3MgaGFz IFNWR0EzRF9TVVJGQUNFX0NVQkVNQVAgYml0IHNldCwgYWxsIFNWR0EzZFN1cmZhY2VGYWNlCisg ICAgKiBzdHJ1Y3R1cmVzIG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBvZiBudW1NaXBMZXZlbHMg ZmllbGQuCisgICAgKiBPdGhlcndpc2UsIGFsbCBidXQgdGhlIGZpcnN0IFNWR0EzZFN1cmZhY2VG YWNlIHN0cnVjdHVyZXMgbXVzdCBoYXZlIHRoZQorICAgICogbnVtTWlwTGV2ZWxzIHNldCB0byAw LgorICAgICovCisgICBTVkdBM2RTdXJmYWNlRmFjZSAgICAgICAgICAgZmFjZVtTVkdBM0RfTUFY X1NVUkZBQ0VfRkFDRVNdOworICAgLyoKKyAgICAqIEZvbGxvd2VkIGJ5IGFuIFNWR0EzZFNpemUg c3RydWN0dXJlIGZvciBlYWNoIG1pcCBsZXZlbCBpbiBlYWNoIGZhY2UuCisgICAgKgorICAgICog QSBub3RlIG9uIHN1cmZhY2Ugc2l6ZXM6IFNpemVzIGFyZSBhbHdheXMgc3BlY2lmaWVkIGluIHBp eGVscywKKyAgICAqIGV2ZW4gaWYgdGhlIHRydWUgc3VyZmFjZSBzaXplIGlzIG5vdCBhIG11bHRp cGxlIG9mIHRoZSBtaW5pbXVtCisgICAgKiBibG9jayBzaXplIG9mIHRoZSBzdXJmYWNlJ3MgZm9y bWF0LiBGb3IgZXhhbXBsZSwgYSAzeDN4MSBEWFQxCisgICAgKiBjb21wcmVzc2VkIHRleHR1cmUg d291bGQgYWN0dWFsbHkgYmUgc3RvcmVkIGFzIGEgNHg0eDEgaW1hZ2UgaW4KKyAgICAqIG1lbW9y eS4KKyAgICAqLworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRGVm aW5lU3VyZmFjZTsgICAgICAgLyogU1ZHQV8zRF9DTURfU1VSRkFDRV9ERUZJTkUgKi8KKwordHlw ZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAgdWludDMy ICAgICAgICAgICAgICAgICAgICAgIHNpZDsKKyAgIFNWR0EzZFN1cmZhY2VGbGFncyAgICAgICAg ICBzdXJmYWNlRmxhZ3M7CisgICBTVkdBM2RTdXJmYWNlRm9ybWF0ICAgICAgICAgZm9ybWF0Owor ICAgLyoKKyAgICAqIElmIHN1cmZhY2VGbGFncyBoYXMgU1ZHQTNEX1NVUkZBQ0VfQ1VCRU1BUCBi aXQgc2V0LCBhbGwgU1ZHQTNkU3VyZmFjZUZhY2UKKyAgICAqIHN0cnVjdHVyZXMgbXVzdCBoYXZl IHRoZSBzYW1lIHZhbHVlIG9mIG51bU1pcExldmVscyBmaWVsZC4KKyAgICAqIE90aGVyd2lzZSwg YWxsIGJ1dCB0aGUgZmlyc3QgU1ZHQTNkU3VyZmFjZUZhY2Ugc3RydWN0dXJlcyBtdXN0IGhhdmUg dGhlCisgICAgKiBudW1NaXBMZXZlbHMgc2V0IHRvIDAuCisgICAgKi8KKyAgIFNWR0EzZFN1cmZh Y2VGYWNlICAgICAgICAgICBmYWNlW1NWR0EzRF9NQVhfU1VSRkFDRV9GQUNFU107CisgICB1aW50 MzIgICAgICAgICAgICAgICAgICAgICAgbXVsdGlzYW1wbGVDb3VudDsKKyAgIFNWR0EzZFRleHR1 cmVGaWx0ZXIgICAgICAgICBhdXRvZ2VuRmlsdGVyOworICAgLyoKKyAgICAqIEZvbGxvd2VkIGJ5 IGFuIFNWR0EzZFNpemUgc3RydWN0dXJlIGZvciBlYWNoIG1pcCBsZXZlbCBpbiBlYWNoIGZhY2Uu CisgICAgKgorICAgICogQSBub3RlIG9uIHN1cmZhY2Ugc2l6ZXM6IFNpemVzIGFyZSBhbHdheXMg c3BlY2lmaWVkIGluIHBpeGVscywKKyAgICAqIGV2ZW4gaWYgdGhlIHRydWUgc3VyZmFjZSBzaXpl IGlzIG5vdCBhIG11bHRpcGxlIG9mIHRoZSBtaW5pbXVtCisgICAgKiBibG9jayBzaXplIG9mIHRo ZSBzdXJmYWNlJ3MgZm9ybWF0LiBGb3IgZXhhbXBsZSwgYSAzeDN4MSBEWFQxCisgICAgKiBjb21w cmVzc2VkIHRleHR1cmUgd291bGQgYWN0dWFsbHkgYmUgc3RvcmVkIGFzIGEgNHg0eDEgaW1hZ2Ug aW4KKyAgICAqIG1lbW9yeS4KKyAgICAqLworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5o IgorU1ZHQTNkQ21kRGVmaW5lU3VyZmFjZV92MjsgICAgIC8qIFNWR0FfM0RfQ01EX1NVUkZBQ0Vf REVGSU5FX1YyICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgor c3RydWN0IHsKKyAgIHVpbnQzMiAgICAgICAgICAgICAgIHNpZDsKK30KKyNpbmNsdWRlICJ2bXdh cmVfcGFja19lbmQuaCIKK1NWR0EzZENtZERlc3Ryb3lTdXJmYWNlOyAgICAgIC8qIFNWR0FfM0Rf Q01EX1NVUkZBQ0VfREVTVFJPWSAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tf YmVnaW4uaCIKK3N0cnVjdCB7CisgICB1aW50MzIgICAgICAgICAgICAgICBjaWQ7Cit9CisjaW5j bHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREZWZpbmVDb250ZXh0OyAgICAgICAv KiBTVkdBXzNEX0NNRF9DT05URVhUX0RFRklORSAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13 YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7CisgICB1aW50MzIgICAgICAgICAgICAgICBjaWQ7 Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREZXN0cm95Q29udGV4 dDsgICAgICAvKiBTVkdBXzNEX0NNRF9DT05URVhUX0RFU1RST1kgKi8KKwordHlwZWRlZgorI2lu Y2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAgdWludDMyICAgICAgICAg ICAgICAgY2lkOworICAgU1ZHQTNkQ2xlYXJGbGFnICAgICAgY2xlYXJGbGFnOworICAgdWludDMy ICAgICAgICAgICAgICAgY29sb3I7CisgICBmbG9hdCAgICAgICAgICAgICAgICBkZXB0aDsKKyAg IHVpbnQzMiAgICAgICAgICAgICAgIHN0ZW5jaWw7CisgICAvKiBGb2xsb3dlZCBieSB2YXJpYWJs ZSBudW1iZXIgb2YgU1ZHQTNkUmVjdCBzdHJ1Y3R1cmVzICovCit9CisjaW5jbHVkZSAidm13YXJl X3BhY2tfZW5kLmgiCitTVkdBM2RDbWRDbGVhcjsgICAgICAgICAgICAgICAvKiBTVkdBXzNEX0NN RF9DTEVBUiAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0 cnVjdCB7CisgICBTVkdBM2RMaWdodFR5cGUgICAgICB0eXBlOworICAgU1ZHQTNkQm9vbCAgICAg ICAgICAgaW5Xb3JsZFNwYWNlOworICAgZmxvYXQgICAgICAgICAgICAgICAgZGlmZnVzZVs0XTsK KyAgIGZsb2F0ICAgICAgICAgICAgICAgIHNwZWN1bGFyWzRdOworICAgZmxvYXQgICAgICAgICAg ICAgICAgYW1iaWVudFs0XTsKKyAgIGZsb2F0ICAgICAgICAgICAgICAgIHBvc2l0aW9uWzRdOwor ICAgZmxvYXQgICAgICAgICAgICAgICAgZGlyZWN0aW9uWzRdOworICAgZmxvYXQgICAgICAgICAg ICAgICAgcmFuZ2U7CisgICBmbG9hdCAgICAgICAgICAgICAgICBmYWxsb2ZmOworICAgZmxvYXQg ICAgICAgICAgICAgICAgYXR0ZW51YXRpb24wOworICAgZmxvYXQgICAgICAgICAgICAgICAgYXR0 ZW51YXRpb24xOworICAgZmxvYXQgICAgICAgICAgICAgICAgYXR0ZW51YXRpb24yOworICAgZmxv YXQgICAgICAgICAgICAgICAgdGhldGE7CisgICBmbG9hdCAgICAgICAgICAgICAgICBwaGk7Cit9 CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RMaWdodERhdGE7CisKK3R5cGVk ZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAgIHVpbnQzMiAg ICAgICAgICAgICAgIHNpZDsKKyAgIC8qIEZvbGxvd2VkIGJ5IHZhcmlhYmxlIG51bWJlciBvZiBT VkdBM2RDb3B5UmVjdCBzdHJ1Y3R1cmVzICovCit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5k LmgiCitTVkdBM2RDbWRQcmVzZW50OyAgICAgICAgICAgICAvKiBTVkdBXzNEX0NNRF9QUkVTRU5U ICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsK KyAgIFNWR0EzZFJlbmRlclN0YXRlTmFtZSAgIHN0YXRlOworICAgdW5pb24geworICAgICAgdWlu dDMyICAgICAgICAgICAgICAgdWludFZhbHVlOworICAgICAgZmxvYXQgICAgICAgICAgICAgICAg ZmxvYXRWYWx1ZTsKKyAgIH07Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdB M2RSZW5kZXJTdGF0ZTsKKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgi CitzdHJ1Y3QgeworICAgdWludDMyICAgICAgICAgICAgICAgY2lkOworICAgLyogRm9sbG93ZWQg YnkgdmFyaWFibGUgbnVtYmVyIG9mIFNWR0EzZFJlbmRlclN0YXRlIHN0cnVjdHVyZXMgKi8KK30K KyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZFNldFJlbmRlclN0YXRlOyAg ICAgIC8qIFNWR0FfM0RfQ01EX1NFVFJFTkRFUlNUQVRFICovCisKK3R5cGVkZWYKKyNpbmNsdWRl ICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAgIHVpbnQzMiAgICAgICAgICAgICAg ICAgY2lkOworICAgU1ZHQTNkUmVuZGVyVGFyZ2V0VHlwZSB0eXBlOworICAgU1ZHQTNkU3VyZmFj ZUltYWdlSWQgICB0YXJnZXQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdB M2RDbWRTZXRSZW5kZXJUYXJnZXQ7ICAgICAvKiBTVkdBXzNEX0NNRF9TRVRSRU5ERVJUQVJHRVQg Ki8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3Qgewor ICAgU1ZHQTNkU3VyZmFjZUltYWdlSWQgIHNyYzsKKyAgIFNWR0EzZFN1cmZhY2VJbWFnZUlkICBk ZXN0OworICAgLyogRm9sbG93ZWQgYnkgdmFyaWFibGUgbnVtYmVyIG9mIFNWR0EzZENvcHlCb3gg c3RydWN0dXJlcyAqLworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21k U3VyZmFjZUNvcHk7ICAgICAgICAgICAgICAgLyogU1ZHQV8zRF9DTURfU1VSRkFDRV9DT1BZICov CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAg IFNWR0EzZFN1cmZhY2VJbWFnZUlkICBzcmM7CisgICBTVkdBM2RTdXJmYWNlSW1hZ2VJZCAgZGVz dDsKKyAgIFNWR0EzZEJveCAgICAgICAgICAgICBib3hTcmM7CisgICBTVkdBM2RCb3ggICAgICAg ICAgICAgYm94RGVzdDsKKyAgIFNWR0EzZFN0cmV0Y2hCbHRNb2RlICBtb2RlOworfQorI2luY2x1 ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kU3VyZmFjZVN0cmV0Y2hCbHQ7ICAgICAg ICAgLyogU1ZHQV8zRF9DTURfU1VSRkFDRV9TVFJFVENIQkxUICovCisKK3R5cGVkZWYKKyNpbmNs dWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAgIC8qCisgICAgKiBJZiB0aGUg ZGlzY2FyZCBmbGFnIGlzIHByZXNlbnQgaW4gYSBzdXJmYWNlIERNQSBvcGVyYXRpb24sIHRoZSBo b3N0IG1heQorICAgICogZGlzY2FyZCB0aGUgY29udGVudHMgb2YgdGhlIGN1cnJlbnQgbWlwbWFw IGxldmVsIGFuZCBmYWNlIG9mIHRoZSB0YXJnZXQKKyAgICAqIHN1cmZhY2UgYmVmb3JlIGFwcGx5 aW5nIHRoZSBzdXJmYWNlIERNQSBjb250ZW50cy4KKyAgICAqLworICAgdWludDMyIGRpc2NhcmQg OiAxOworCisgICAvKgorICAgICogSWYgdGhlIHVuc3luY2hyb25pemVkIGZsYWcgaXMgcHJlc2Vu dCwgdGhlIGhvc3QgbWF5IHBlcmZvcm0gdGhpcyB1cGxvYWQKKyAgICAqIHdpdGhvdXQgc3luY2lu ZyB0byBwZW5kaW5nIHJlYWRzIG9uIHRoaXMgc3VyZmFjZS4KKyAgICAqLworICAgdWludDMyIHVu c3luY2hyb25pemVkIDogMTsKKworICAgLyoKKyAgICAqIEd1ZXN0cyAqTVVTVCogc2V0IHRoZSBy ZXNlcnZlZCBiaXRzIHRvIDAgYmVmb3JlIHN1Ym1pdHRpbmcgdGhlIGNvbW1hbmQKKyAgICAqIHN1 ZmZpeCBhcyBmdXR1cmUgZmxhZ3MgbWF5IG9jY3VweSB0aGVzZSBiaXRzLgorICAgICovCisgICB1 aW50MzIgcmVzZXJ2ZWQgOiAzMDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NW R0EzZFN1cmZhY2VETUFGbGFnczsKKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2Jl Z2luLmgiCitzdHJ1Y3QgeworICAgU1ZHQUd1ZXN0SW1hZ2UgZ3Vlc3Q7CisgICBTVkdBM2RTdXJm YWNlSW1hZ2VJZCBob3N0OworICAgU1ZHQTNkVHJhbnNmZXJUeXBlIHRyYW5zZmVyOworICAgLyoK KyAgICAqIEZvbGxvd2VkIGJ5IHZhcmlhYmxlIG51bWJlciBvZiBTVkdBM2RDb3B5Qm94IHN0cnVj dHVyZXMuIEZvciBjb25zaXN0ZW5jeQorICAgICogaW4gYWxsIGNsaXBwaW5nIGxvZ2ljIGFuZCBj b29yZGluYXRlIHRyYW5zbGF0aW9uLCB3ZSBkZWZpbmUgdGhlCisgICAgKiAic291cmNlIiBpbiBl YWNoIGNvcHlCb3ggYXMgdGhlIGd1ZXN0IGltYWdlIGFuZCB0aGUKKyAgICAqICJkZXN0aW5hdGlv biIgYXMgdGhlIGhvc3QgaW1hZ2UsIHJlZ2FyZGxlc3Mgb2YgdHJhbnNmZXIKKyAgICAqIGRpcmVj dGlvbi4KKyAgICAqCisgICAgKiBGb3IgZWZmaWNpZW5jeSwgdGhlIFNWR0EzRCBkZXZpY2UgaXMg ZnJlZSB0byBjb3B5IG1vcmUgZGF0YSB0aGFuCisgICAgKiBzcGVjaWZpZWQuIEZvciBleGFtcGxl LCBpdCBtYXkgcm91bmQgY29weSBib3hlcyBvdXR3YXJkcyBzdWNoCisgICAgKiB0aGF0IHRoZXkg bGllIG9uIHBhcnRpY3VsYXIgYWxpZ25tZW50IGJvdW5kYXJpZXMuCisgICAgKi8KK30KKyNpbmNs dWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZFN1cmZhY2VETUE7ICAgICAgICAgICAg ICAgIC8qIFNWR0FfM0RfQ01EX1NVUkZBQ0VfRE1BICovCisKKy8qCisgKiBTVkdBM2RDbWRTdXJm YWNlRE1BU3VmZml4IC0tCisgKgorICogICAgVGhpcyBpcyBhIGNvbW1hbmQgc3VmZml4IHRoYXQg d2lsbCBhcHBlYXIgYWZ0ZXIgYSBTdXJmYWNlRE1BIGNvbW1hbmQgaW4KKyAqICAgIHRoZSBGSUZP LiAgSXQgY29udGFpbnMgc29tZSBleHRyYSBpbmZvcm1hdGlvbiB0aGF0IGhvc3RzIG1heSB1c2Ug dG8KKyAqICAgIG9wdGltaXplIHBlcmZvcm1hbmNlIG9yIHByb3RlY3QgdGhlIGd1ZXN0LiAgVGhp cyBzdWZmaXggZXhpc3RzIHRvIHByZXNlcnZlCisgKiAgICBiYWNrd2FyZHMgY29tcGF0aWJpbGl0 eSB3aGlsZSBhbHNvIGFsbG93aW5nIGZvciBuZXcgZnVuY3Rpb25hbGl0eSB0byBiZQorICogICAg aW1wbGVtZW50ZWQuCisgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2lu LmgiCitzdHJ1Y3QgeworICAgdWludDMyIHN1ZmZpeFNpemU7CisKKyAgIC8qCisgICAgKiBUaGUg bWF4aW11bSBvZmZzZXQgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIG1heGltdW0gb2Zmc2V0IGZy b20gdGhlCisgICAgKiBndWVzdFB0ciBiYXNlIGFkZHJlc3MgdGhhdCB3aWxsIGJlIGFjY2Vzc2Vk IG9yIHdyaXR0ZW4gdG8gZHVyaW5nIHRoaXMKKyAgICAqIHN1cmZhY2VETUEuICBJZiB0aGUgc3Vm Zml4IGlzIHN1cHBvcnRlZCwgdGhlIGhvc3Qgd2lsbCByZXNwZWN0IHRoaXMKKyAgICAqIGJvdW5k YXJ5IHdoaWxlIHBlcmZvcm1pbmcgc3VyZmFjZSBETUFzLgorICAgICoKKyAgICAqIERlZmF1bHRz IHRvIE1BWF9VSU5UMzIKKyAgICAqLworICAgdWludDMyIG1heGltdW1PZmZzZXQ7CisKKyAgIC8q CisgICAgKiBBIHNldCBvZiBmbGFncyB0aGF0IGRlc2NyaWJlcyBvcHRpbWl6YXRpb25zIHRoYXQg dGhlIGhvc3QgbWF5IHBlcmZvcm0KKyAgICAqIHdoaWxlIHBlcmZvcm1pbmcgdGhpcyBzdXJmYWNl IERNQSBvcGVyYXRpb24uICBUaGUgZ3Vlc3Qgc2hvdWxkIG5ldmVyIHJlbHkKKyAgICAqIG9uIGJl aGF2aW91ciB0aGF0IGlzIGRpZmZlcmVudCB3aGVuIHRoZXNlIGZsYWdzIGFyZSBzZXQgZm9yIGNv cnJlY3RuZXNzLgorICAgICoKKyAgICAqIERlZmF1bHRzIHRvIDAKKyAgICAqLworICAgU1ZHQTNk U3VyZmFjZURNQUZsYWdzIGZsYWdzOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgor U1ZHQTNkQ21kU3VyZmFjZURNQVN1ZmZpeDsKKworLyoKKyAqIFNWR0FfM0RfQ01EX0RSQVdfUFJJ TUlUSVZFUyAtLQorICoKKyAqICAgVGhpcyBjb21tYW5kIGlzIHRoZSBTVkdBM0QgZGV2aWNlJ3Mg Z2VuZXJpYyBkcmF3aW5nIGVudHJ5IHBvaW50LgorICogICBJdCBjYW4gZHJhdyBtdWx0aXBsZSBy YW5nZXMgb2YgcHJpbWl0aXZlcywgb3B0aW9uYWxseSB1c2luZyBhbgorICogICBpbmRleCBidWZm ZXIsIHVzaW5nIGFuIGFyYml0cmFyeSBjb2xsZWN0aW9uIG9mIHZlcnRleCBidWZmZXJzLgorICoK KyAqICAgRWFjaCBTVkdBM2RWZXJ0ZXhEZWNsIGRlZmluZXMgYSBkaXN0aW5jdCB2ZXJ0ZXggYXJy YXkgdG8gYmluZAorICogICBkdXJpbmcgdGhpcyBkcmF3IGNhbGwuIFRoZSBkZWNsYXJhdGlvbnMg c3BlY2lmeSB3aGljaCBzdXJmYWNlCisgKiAgIHRoZSB2ZXJ0ZXggZGF0YSBsaXZlcyBpbiwgd2hh dCB0aGF0IHZlcnRleCBkYXRhIGlzIHVzZWQgZm9yLAorICogICBhbmQgaG93IHRvIGludGVycHJl dCBpdC4KKyAqCisgKiAgIEVhY2ggU1ZHQTNkUHJpbWl0aXZlUmFuZ2UgZGVmaW5lcyBhIGNvbGxl Y3Rpb24gb2YgcHJpbWl0aXZlcworICogICB0byByZW5kZXIgdXNpbmcgdGhlIHNhbWUgdmVydGV4 IGFycmF5cy4gQW4gaW5kZXggYnVmZmVyIGlzCisgKiAgIG9wdGlvbmFsLgorICovCisKK3R5cGVk ZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAgIC8qCisgICAg KiBBIHJhbmdlIGhpbnQgaXMgYW4gb3B0aW9uYWwgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIHJhbmdl IG9mIGluZGljZXMKKyAgICAqIGluIGFuIFNWR0EzZEFycmF5IHRoYXQgd2lsbCBiZSB1c2VkLiBJ ZiAnbGFzdCcgaXMgemVybywgaXQgaXMgYXNzdW1lZAorICAgICogdGhhdCB0aGUgZW50aXJlIGFy cmF5IHdpbGwgYmUgdXNlZC4KKyAgICAqCisgICAgKiBUaGVzZSBhcmUgb25seSBoaW50cy4gVGhl IFNWR0EzRCBkZXZpY2UgbWF5IHVzZSB0aGVtIGZvcgorICAgICogcGVyZm9ybWFuY2Ugb3B0aW1p emF0aW9uIGlmIHBvc3NpYmxlLCBidXQgaXQncyBhbHNvIGFsbG93ZWQgdG8KKyAgICAqIGlnbm9y ZSB0aGVzZSB2YWx1ZXMuCisgICAgKi8KKyAgIHVpbnQzMiAgICAgICAgICAgICAgIGZpcnN0Owor ICAgdWludDMyICAgICAgICAgICAgICAgbGFzdDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19l bmQuaCIKK1NWR0EzZEFycmF5UmFuZ2VIaW50OworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJl X3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7CisgICAvKgorICAgICogRGVmaW5lIHRoZSBvcmlnaW4g YW5kIHNoYXBlIG9mIGEgdmVydGV4IG9yIGluZGV4IGFycmF5LiBCb3RoCisgICAgKiAnb2Zmc2V0 JyBhbmQgJ3N0cmlkZScgYXJlIGluIGJ5dGVzLiBUaGUgcHJvdmlkZWQgc3VyZmFjZSB3aWxsIGJl CisgICAgKiByZWludGVycHJldGVkIGFzIGEgZmxhdCBhcnJheSBvZiBieXRlcyBpbiB0aGUgc2Ft ZSBmb3JtYXQgdXNlZAorICAgICogYnkgc3VyZmFjZSBETUEgb3BlcmF0aW9ucy4gVG8gYXZvaWQg dW5uZWNlc3NhcnkgY29udmVyc2lvbnMsIHRoZQorICAgICogc3VyZmFjZSBzaG91bGQgYmUgY3Jl YXRlZCB3aXRoIHRoZSBTVkdBM0RfQlVGRkVSIGZvcm1hdC4KKyAgICAqCisgICAgKiBJbmRleCAw IGluIHRoZSBhcnJheSBzdGFydHMgJ29mZnNldCcgYnl0ZXMgaW50byB0aGUgc3VyZmFjZS4KKyAg ICAqIEluZGV4IDEgYmVnaW5zIGF0IGJ5dGUgJ29mZnNldCArIHN0cmlkZScsIGV0Yy4gQXJyYXkg aW5kaWNlcyBtYXkKKyAgICAqIG5vdCBiZSBuZWdhdGl2ZS4KKyAgICAqLworICAgdWludDMyICAg ICAgICAgICAgICAgc3VyZmFjZUlkOworICAgdWludDMyICAgICAgICAgICAgICAgb2Zmc2V0Owor ICAgdWludDMyICAgICAgICAgICAgICAgc3RyaWRlOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNr X2VuZC5oIgorU1ZHQTNkQXJyYXk7CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19i ZWdpbi5oIgorc3RydWN0IHsKKyAgIC8qCisgICAgKiBEZXNjcmliZSBhIHZlcnRleCBhcnJheSdz IGRhdGEgdHlwZSwgYW5kIGRlZmluZSBob3cgaXQgaXMgdG8gYmUKKyAgICAqIHVzZWQgYnkgdGhl IGZpeGVkIGZ1bmN0aW9uIHBpcGVsaW5lIG9yIHRoZSB2ZXJ0ZXggc2hhZGVyLiBJdAorICAgICog aXNuJ3QgdXNlZnVsIHRvIGhhdmUgdHdvIFZlcnRleERlY2xzIHdpdGggdGhlIHNhbWUKKyAgICAq IFZlcnRleEFycmF5SWRlbnRpdHkgaW4gb25lIGRyYXcgY2FsbC4KKyAgICAqLworICAgU1ZHQTNk RGVjbFR5cGUgICAgICAgdHlwZTsKKyAgIFNWR0EzZERlY2xNZXRob2QgICAgIG1ldGhvZDsKKyAg IFNWR0EzZERlY2xVc2FnZSAgICAgIHVzYWdlOworICAgdWludDMyICAgICAgICAgICAgICAgdXNh Z2VJbmRleDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZFZlcnRleEFy cmF5SWRlbnRpdHk7CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgor c3RydWN0IFNWR0EzZFZlcnRleERlY2wgeworICAgU1ZHQTNkVmVydGV4QXJyYXlJZGVudGl0eSAg aWRlbnRpdHk7CisgICBTVkdBM2RBcnJheSAgICAgICAgICAgICAgICBhcnJheTsKKyAgIFNWR0Ez ZEFycmF5UmFuZ2VIaW50ICAgICAgIHJhbmdlSGludDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFj a19lbmQuaCIKK1NWR0EzZFZlcnRleERlY2w7CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVf cGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZFByaW1pdGl2ZVJhbmdlIHsKKyAgIC8qCisgICAg KiBEZWZpbmUgYSBncm91cCBvZiBwcmltaXRpdmVzIHRvIHJlbmRlciwgZnJvbSBzZXF1ZW50aWFs IGluZGljZXMuCisgICAgKgorICAgICogVGhlIHZhbHVlIG9mICdwcmltaXRpdmVUeXBlJyBhbmQg J3ByaW1pdGl2ZUNvdW50JyBpbXBseSB0aGUKKyAgICAqIHRvdGFsIG51bWJlciBvZiB2ZXJ0aWNl cyB0aGF0IHdpbGwgYmUgcmVuZGVyZWQuCisgICAgKi8KKyAgIFNWR0EzZFByaW1pdGl2ZVR5cGUg IHByaW1UeXBlOworICAgdWludDMyICAgICAgICAgICAgICAgcHJpbWl0aXZlQ291bnQ7CisKKyAg IC8qCisgICAgKiBPcHRpb25hbCBpbmRleCBidWZmZXIuIElmIGluZGV4QXJyYXkuc3VyZmFjZUlk IGlzCisgICAgKiBTVkdBM0RfSU5WQUxJRF9JRCwgd2UgcmVuZGVyIHdpdGhvdXQgYW4gaW5kZXgg YnVmZmVyLiBSZW5kZXJpbmcKKyAgICAqIHdpdGhvdXQgYW4gaW5kZXggYnVmZmVyIGlzIGlkZW50 aWNhbCB0byByZW5kZXJpbmcgd2l0aCBhbiBpbmRleAorICAgICogYnVmZmVyIGNvbnRhaW5pbmcg dGhlIHNlcXVlbmNlIFswLCAxLCAyLCAzLCAuLi5dLgorICAgICoKKyAgICAqIElmIGFuIGluZGV4 IGJ1ZmZlciBpcyBpbiB1c2UsIGluZGV4V2lkdGggc3BlY2lmaWVzIHRoZSB3aWR0aCBpbgorICAg ICogYnl0ZXMgb2YgZWFjaCBpbmRleCB2YWx1ZS4gSXQgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1 YWwgdG8KKyAgICAqIGluZGV4QXJyYXkuc3RyaWRlLgorICAgICoKKyAgICAqIChDdXJyZW50bHks IHRoZSBTVkdBM0QgZGV2aWNlIHJlcXVpcmVzIGluZGV4IGJ1ZmZlcnMgdG8gYmUgdGlnaHRseQor ICAgICogcGFja2VkLiBJbiBvdGhlciB3b3JkcywgaW5kZXhXaWR0aCA9PSBpbmRleEFycmF5LnN0 cmlkZSkKKyAgICAqLworICAgU1ZHQTNkQXJyYXkgICAgICAgICAgaW5kZXhBcnJheTsKKyAgIHVp bnQzMiAgICAgICAgICAgICAgIGluZGV4V2lkdGg7CisKKyAgIC8qCisgICAgKiBPcHRpb25hbCBp bmRleCBiaWFzLiBUaGlzIG51bWJlciBpcyBhZGRlZCB0byBhbGwgaW5kaWNlcyBmcm9tCisgICAg KiBpbmRleEFycmF5IGJlZm9yZSB0aGV5IGFyZSB1c2VkIGFzIHZlcnRleCBhcnJheSBpbmRpY2Vz LiBUaGlzCisgICAgKiBjYW4gYmUgdXNlZCBpbiBtdWx0aXBsZSB3YXlzOgorICAgICoKKyAgICAq ICAtIFdoZW4gbm90IHVzaW5nIGFuIGluZGV4QXJyYXksIHRoaXMgYmlhcyBjYW4gYmUgdXNlZCB0 bworICAgICogICAgc3BlY2lmeSB3aGVyZSBpbiB0aGUgdmVydGV4IGFycmF5cyB0byBiZWdpbiBy ZW5kZXJpbmcuCisgICAgKgorICAgICogIC0gQSBwb3NpdGl2ZSBudW1iZXIgaGVyZSBpcyBlcXVp dmFsZW50IHRvIGluY3JlYXNpbmcgdGhlCisgICAgKiAgICBvZmZzZXQgaW4gZWFjaCB2ZXJ0ZXgg YXJyYXkuCisgICAgKgorICAgICogIC0gQSBuZWdhdGl2ZSBudW1iZXIgY2FuIGJlIHVzZWQgdG8g cmVuZGVyIHVzaW5nIGEgc21hbGwKKyAgICAqICAgIHZlcnRleCBhcnJheSBhbmQgYW4gaW5kZXgg YnVmZmVyIHRoYXQgY29udGFpbnMgbGFyZ2UKKyAgICAqICAgIHZhbHVlcy4gVGhpcyBtYXkgYmUg dXNlZCBieSBzb21lIGFwcGxpY2F0aW9ucyB0aGF0CisgICAgKiAgICBjcm9wIGEgdmVydGV4IGJ1 ZmZlciB3aXRob3V0IG1vZGlmeWluZyB0aGVpciBpbmRleAorICAgICogICAgYnVmZmVyLgorICAg ICoKKyAgICAqIE5vdGUgdGhhdCByZW5kZXJpbmcgd2l0aCBhIG5lZ2F0aXZlIGJpYXMgdmFsdWUg bWF5IGJlIHNsb3dlciBhbmQKKyAgICAqIHVzZSBtb3JlIG1lbW9yeSB0aGFuIHJlbmRlcmluZyB3 aXRoIGEgcG9zaXRpdmUgb3IgemVybyBiaWFzLgorICAgICovCisgICBpbnQzMiAgICAgICAgICAg ICAgICBpbmRleEJpYXM7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RQ cmltaXRpdmVSYW5nZTsKKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgi CitzdHJ1Y3QgeworICAgdWludDMyICAgICAgICAgICAgICAgY2lkOworICAgdWludDMyICAgICAg ICAgICAgICAgbnVtVmVydGV4RGVjbHM7CisgICB1aW50MzIgICAgICAgICAgICAgICBudW1SYW5n ZXM7CisKKyAgIC8qCisgICAgKiBUaGVyZSBhcmUgdHdvIHZhcmlhYmxlIHNpemUgYXJyYXlzIGFm dGVyIHRoZQorICAgICogU1ZHQTNkQ21kRHJhd1ByaW1pdGl2ZXMgc3RydWN0dXJlLiBJbiBvcmRl ciwKKyAgICAqIHRoZXkgYXJlOgorICAgICoKKyAgICAqIDEuIFNWR0EzZFZlcnRleERlY2wsIHF1 YW50aXR5ICdudW1WZXJ0ZXhEZWNscycsIGJ1dCBubyBtb3JlIHRoYW4KKyAgICAqICAgIFNWR0Ez RF9NQVhfVkVSVEVYX0FSUkFZUzsKKyAgICAqIDIuIFNWR0EzZFByaW1pdGl2ZVJhbmdlLCBxdWFu dGl0eSAnbnVtUmFuZ2VzJywgYnV0IG5vIG1vcmUgdGhhbgorICAgICogICAgU1ZHQTNEX01BWF9E UkFXX1BSSU1JVElWRV9SQU5HRVM7CisgICAgKiAzLiBPcHRpb25hbGx5LCBTVkdBM2RWZXJ0ZXhE aXZpc29yLCBxdWFudGl0eSAnbnVtVmVydGV4RGVjbHMnIChjb250YWlucworICAgICogICAgdGhl IGZyZXF1ZW5jeSBkaXZpc29yIGZvciB0aGUgY29ycmVzcG9uZGluZyB2ZXJ0ZXggZGVjbCkuCisg ICAgKi8KK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZERyYXdQcmlt aXRpdmVzOyAgICAgIC8qIFNWR0FfM0RfQ01EX0RSQVdQUklNSVRJVkVTICovCisKK3R5cGVkZWYK KyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAgIHVpbnQzMiBjaWQ7 CisKKyAgIHVpbnQzMiBwcmltaXRpdmVDb3VudDsgICAgICAgIC8qIEhvdyBtYW55IHByaW1pdGl2 ZXMgdG8gcmVuZGVyICovCisgICB1aW50MzIgc3RhcnRWZXJ0ZXhMb2NhdGlvbjsgICAvKiBXaGlj aCB2ZXJ0ZXggZG8gd2Ugc3RhcnQgcmVuZGVyaW5nIGF0LiAqLworCisgICB1aW50OCBwcmltaXRp dmVUeXBlOyAgICAgICAgICAvKiBTVkdBM2RQcmltaXRpdmVUeXBlICovCisgICB1aW50OCBwYWRk aW5nWzNdOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRHJhdzsK KwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAg dWludDMyIGNpZDsKKworICAgdWludDggcHJpbWl0aXZlVHlwZTsgICAgICAgLyogU1ZHQTNkUHJp bWl0aXZlVHlwZSAqLworCisgICB1aW50MzIgaW5kZXhCdWZmZXJTaWQ7ICAgICAvKiBWYWxpZCBp bmRleCBidWZmZXIgc2lkLiAqLworICAgdWludDMyIGluZGV4QnVmZmVyT2Zmc2V0OyAgLyogQnl0 ZSBvZmZzZXQgaW50byB0aGUgdmVydGV4IGJ1ZmZlciwgYWxtb3N0ICovCisJCQkgICAgICAvKiBh bHdheXMgMCBmb3IgRFg5IGd1ZXN0cywgbm9uLXplcm8gZm9yIE9wZW5HTCAqLworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogZ3Vlc3RzLiAgV2UgY2FuJ3QgcmVwcmVzZW50IG5vbi1t dWx0aXBsZSBvZiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc3RyaWRlIG9m ZnNldHMgaW4gRDNEOVJlbmRlcmVyLi4uICovCisgICB1aW50OCBpbmRleEJ1ZmZlclN0cmlkZTsg ICAvKiBBbGxvd2FibGUgdmFsdWVzID0gMSwgMiwgb3IgNCAqLworCisgICBpbnQzMiBiYXNlVmVy dGV4TG9jYXRpb247ICAvKiBCaWFzIGFwcGxpZWQgdG8gdGhlIGluZGV4IHdoZW4gc2VsZWN0aW5n IGEgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZlcnRleCBmcm9tIHRoZSBz dHJlYW1zLCBtYXkgYmUgbmVnYXRpdmUgKi8KKworICAgdWludDMyIHByaW1pdGl2ZUNvdW50OyAg ICAgLyogSG93IG1hbnkgcHJpbWl0aXZlcyB0byByZW5kZXIgKi8KKyAgIHVpbnQzMiBwYWQwOwor ICAgdWludDE2IHBhZDE7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RD bWREcmF3SW5kZXhlZDsKKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgi CitzdHJ1Y3QgeworICAgLyoKKyAgICAqIERlc2NyaWJlIGEgdmVydGV4IGFycmF5J3MgZGF0YSB0 eXBlLCBhbmQgZGVmaW5lIGhvdyBpdCBpcyB0byBiZQorICAgICogdXNlZCBieSB0aGUgZml4ZWQg ZnVuY3Rpb24gcGlwZWxpbmUgb3IgdGhlIHZlcnRleCBzaGFkZXIuIEl0CisgICAgKiBpc24ndCB1 c2VmdWwgdG8gaGF2ZSB0d28gVmVydGV4RGVjbHMgd2l0aCB0aGUgc2FtZQorICAgICogVmVydGV4 QXJyYXlJZGVudGl0eSBpbiBvbmUgZHJhdyBjYWxsLgorICAgICovCisgICB1aW50MTYgc3RyZWFt T2Zmc2V0OworICAgdWludDggc3RyZWFtOworICAgdWludDggdHlwZTsgICAgICAgICAgLyogU1ZH QTNkRGVjbFR5cGUgKi8KKyAgIHVpbnQ4IG1ldGhvZDsgICAgICAgIC8qIFNWR0EzZERlY2xNZXRo b2QgKi8KKyAgIHVpbnQ4IHVzYWdlOyAgICAgICAgIC8qIFNWR0EzZERlY2xVc2FnZSAqLworICAg dWludDggdXNhZ2VJbmRleDsKKyAgIHVpbnQ4IHBhZGRpbmc7CisKK30KKyNpbmNsdWRlICJ2bXdh cmVfcGFja19lbmQuaCIKK1NWR0EzZFZlcnRleEVsZW1lbnQ7CisKK3R5cGVkZWYKKyNpbmNsdWRl ICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAgIHVpbnQzMiBjaWQ7CisKKyAgIHVp bnQzMiBudW1FbGVtZW50czsKKworICAgLyoKKyAgICAqIEZvbGxvd2VkIGJ5IG51bUVsZW1lbnRz IFNWR0EzZFZlcnRleEVsZW1lbnQgc3RydWN0dXJlcy4KKyAgICAqCisgICAgKiBJZiBudW1FbGVt ZW50cyA8IFNWR0EzRF9NQVhfVkVSVEVYX0FSUkFZUywgdGhlIHJlbWFpbmluZyBlbGVtZW50cwor ICAgICogYXJlIGNsZWFyZWQgYW5kIHdpbGwgbm90IGJlIHVzZWQgYnkgZm9sbG93aW5nIGRyYXdz LgorICAgICovCit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWRTZXRW ZXJ0ZXhEZWNsczsKKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitz dHJ1Y3QgeworICAgdWludDMyIHNpZDsKKyAgIHVpbnQzMiBzdHJpZGU7CisgICB1aW50MzIgb2Zm c2V0OworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkVmVydGV4U3RyZWFt OworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7Cisg ICB1aW50MzIgY2lkOworCisgICB1aW50MzIgbnVtU3RyZWFtczsKKyAgIC8qCisgICAgKiBGb2xs b3dlZCBieSBudW1TdHJlYW0gU1ZHQTNkVmVydGV4U3RyZWFtIHN0cnVjdHVyZXMuCisgICAgKgor ICAgICogSWYgbnVtU3RyZWFtcyA8IFNWR0EzRF9NQVhfVkVSVEVYX0FSUkFZUywgdGhlIHJlbWFp bmluZyBzdHJlYW1zCisgICAgKiBhcmUgY2xlYXJlZCBhbmQgd2lsbCBub3QgYmUgdXNlZCBieSBm b2xsb3dpbmcgZHJhd3MuCisgICAgKi8KK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIK K1NWR0EzZENtZFNldFZlcnRleFN0cmVhbXM7CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVf cGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAgIHVpbnQzMiBjaWQ7CisgICB1aW50MzIgbnVtRGl2 aXNvcnM7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWRTZXRWZXJ0 ZXhEaXZpc29yczsKKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitz dHJ1Y3QgeworICAgdWludDMyICAgICAgICAgICAgICAgICAgIHN0YWdlOworICAgU1ZHQTNkVGV4 dHVyZVN0YXRlTmFtZSAgIG5hbWU7CisgICB1bmlvbiB7CisgICAgICB1aW50MzIgICAgICAgICAg ICAgICAgdmFsdWU7CisgICAgICBmbG9hdCAgICAgICAgICAgICAgICAgZmxvYXRWYWx1ZTsKKyAg IH07Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RUZXh0dXJlU3RhdGU7 CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAg IHVpbnQzMiAgICAgICAgICAgICAgIGNpZDsKKyAgIC8qIEZvbGxvd2VkIGJ5IHZhcmlhYmxlIG51 bWJlciBvZiBTVkdBM2RUZXh0dXJlU3RhdGUgc3RydWN0dXJlcyAqLworfQorI2luY2x1ZGUgInZt d2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kU2V0VGV4dHVyZVN0YXRlOyAgICAgIC8qIFNWR0Ff M0RfQ01EX1NFVFRFWFRVUkVTVEFURSAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3Bh Y2tfYmVnaW4uaCIKK3N0cnVjdCB7CisgICB1aW50MzIgICAgICAgICAgICAgICAgICAgY2lkOwor ICAgU1ZHQTNkVHJhbnNmb3JtVHlwZSAgICAgIHR5cGU7CisgICBmbG9hdCAgICAgICAgICAgICAg ICAgICAgbWF0cml4WzE2XTsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0Ez ZENtZFNldFRyYW5zZm9ybTsgICAgICAgICAgLyogU1ZHQV8zRF9DTURfU0VUVFJBTlNGT1JNICov CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAg IGZsb2F0ICAgICAgICAgICAgICAgIG1pbjsKKyAgIGZsb2F0ICAgICAgICAgICAgICAgIG1heDsK K30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZFpSYW5nZTsKKwordHlwZWRl ZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAgdWludDMyICAg ICAgICAgICAgICAgY2lkOworICAgU1ZHQTNkWlJhbmdlICAgICAgICAgelJhbmdlOworfQorI2lu Y2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kU2V0WlJhbmdlOyAgICAgICAgICAg ICAvKiBTVkdBXzNEX0NNRF9TRVRaUkFOR0UgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2Fy ZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAgZmxvYXQgICAgICAgICAgICAgICAgZGlmZnVz ZVs0XTsKKyAgIGZsb2F0ICAgICAgICAgICAgICAgIGFtYmllbnRbNF07CisgICBmbG9hdCAgICAg ICAgICAgICAgICBzcGVjdWxhcls0XTsKKyAgIGZsb2F0ICAgICAgICAgICAgICAgIGVtaXNzaXZl WzRdOworICAgZmxvYXQgICAgICAgICAgICAgICAgc2hpbmluZXNzOworfQorI2luY2x1ZGUgInZt d2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkTWF0ZXJpYWw7CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2 bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAgIHVpbnQzMiAgICAgICAgICAgICAgIGNp ZDsKKyAgIFNWR0EzZEZhY2UgICAgICAgICAgIGZhY2U7CisgICBTVkdBM2RNYXRlcmlhbCAgICAg ICBtYXRlcmlhbDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZFNl dE1hdGVyaWFsOyAgICAgICAgICAgLyogU1ZHQV8zRF9DTURfU0VUTUFURVJJQUwgKi8KKwordHlw ZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAgdWludDMy ICAgICAgICAgICAgICAgY2lkOworICAgdWludDMyICAgICAgICAgICAgICAgaW5kZXg7CisgICBT VkdBM2RMaWdodERhdGEgICAgICBkYXRhOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5o IgorU1ZHQTNkQ21kU2V0TGlnaHREYXRhOyAgICAgICAgICAgLyogU1ZHQV8zRF9DTURfU0VUTElH SFREQVRBICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3Ry dWN0IHsKKyAgIHVpbnQzMiAgICAgICAgICAgICAgIGNpZDsKKyAgIHVpbnQzMiAgICAgICAgICAg ICAgIGluZGV4OworICAgdWludDMyICAgICAgICAgICAgICAgZW5hYmxlZDsKK30KKyNpbmNsdWRl ICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZFNldExpZ2h0RW5hYmxlZDsgICAgICAvKiBT VkdBXzNEX0NNRF9TRVRMSUdIVEVOQUJMRUQgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2Fy ZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAgdWludDMyICAgICAgICAgICAgICAgY2lkOwor ICAgU1ZHQTNkUmVjdCAgICAgICAgICAgcmVjdDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19l bmQuaCIKK1NWR0EzZENtZFNldFZpZXdwb3J0OyAgICAgICAgICAgLyogU1ZHQV8zRF9DTURfU0VU VklFV1BPUlQgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitz dHJ1Y3QgeworICAgdWludDMyICAgICAgICAgICAgICAgY2lkOworICAgU1ZHQTNkUmVjdCAgICAg ICAgICAgcmVjdDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZFNl dFNjaXNzb3JSZWN0OyAgICAgICAgIC8qIFNWR0FfM0RfQ01EX1NFVFNDSVNTT1JSRUNUICovCisK K3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAgIHVp bnQzMiAgICAgICAgICAgICAgIGNpZDsKKyAgIHVpbnQzMiAgICAgICAgICAgICAgIGluZGV4Owor ICAgZmxvYXQgICAgICAgICAgICAgICAgcGxhbmVbNF07Cit9CisjaW5jbHVkZSAidm13YXJlX3Bh Y2tfZW5kLmgiCitTVkdBM2RDbWRTZXRDbGlwUGxhbmU7ICAgICAgICAgICAvKiBTVkdBXzNEX0NN RF9TRVRDTElQUExBTkUgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2lu LmgiCitzdHJ1Y3QgeworICAgdWludDMyICAgICAgICAgICAgICAgY2lkOworICAgdWludDMyICAg ICAgICAgICAgICAgc2hpZDsKKyAgIFNWR0EzZFNoYWRlclR5cGUgICAgIHR5cGU7CisgICAvKiBG b2xsb3dlZCBieSB2YXJpYWJsZSBudW1iZXIgb2YgRFdPUkRzIGZvciBzaGFkZXIgYnljb2RlICov Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREZWZpbmVTaGFkZXI7 ICAgICAgICAgICAvKiBTVkdBXzNEX0NNRF9TSEFERVJfREVGSU5FICovCisKK3R5cGVkZWYKKyNp bmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAgIHVpbnQzMiAgICAgICAg ICAgICAgIGNpZDsKKyAgIHVpbnQzMiAgICAgICAgICAgICAgIHNoaWQ7CisgICBTVkdBM2RTaGFk ZXJUeXBlICAgICB0eXBlOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNk Q21kRGVzdHJveVNoYWRlcjsgICAgICAgICAvKiBTVkdBXzNEX0NNRF9TSEFERVJfREVTVFJPWSAq LworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7Cisg ICB1aW50MzIgICAgICAgICAgICAgICAgICBjaWQ7CisgICB1aW50MzIgICAgICAgICAgICAgICAg ICByZWc7ICAgICAvKiByZWdpc3RlciBudW1iZXIgKi8KKyAgIFNWR0EzZFNoYWRlclR5cGUgICAg ICAgIHR5cGU7CisgICBTVkdBM2RTaGFkZXJDb25zdFR5cGUgICBjdHlwZTsKKyAgIHVpbnQzMiAg ICAgICAgICAgICAgICAgIHZhbHVlc1s0XTsKKworICAgLyoKKyAgICAqIEZvbGxvd2VkIGJ5IGEg dmFyaWFibGUgbnVtYmVyIG9mIGFkZGl0aW9uYWwgdmFsdWVzLgorICAgICovCit9CisjaW5jbHVk ZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWRTZXRTaGFkZXJDb25zdDsgICAgICAgIC8q IFNWR0FfM0RfQ01EX1NFVF9TSEFERVJfQ09OU1QgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZt d2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAgdWludDMyICAgICAgICAgICAgICAgY2lk OworICAgU1ZHQTNkU2hhZGVyVHlwZSAgICAgdHlwZTsKKyAgIHVpbnQzMiAgICAgICAgICAgICAg IHNoaWQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWRTZXRTaGFk ZXI7ICAgICAgIC8qIFNWR0FfM0RfQ01EX1NFVF9TSEFERVIgKi8KKwordHlwZWRlZgorI2luY2x1 ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAgdWludDMyICAgICAgICAgICAg ICAgY2lkOworICAgU1ZHQTNkUXVlcnlUeXBlICAgICAgdHlwZTsKK30KKyNpbmNsdWRlICJ2bXdh cmVfcGFja19lbmQuaCIKK1NWR0EzZENtZEJlZ2luUXVlcnk7ICAgICAgICAgICAvKiBTVkdBXzNE X0NNRF9CRUdJTl9RVUVSWSAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVn aW4uaCIKK3N0cnVjdCB7CisgICB1aW50MzIgICAgICAgICAgICAgICBjaWQ7CisgICBTVkdBM2RR dWVyeVR5cGUgICAgICB0eXBlOworICAgU1ZHQUd1ZXN0UHRyICAgICAgICAgZ3Vlc3RSZXN1bHQ7 ICAgLyogUG9pbnRzIHRvIGFuIFNWR0EzZFF1ZXJ5UmVzdWx0IHN0cnVjdHVyZSAqLworfQorI2lu Y2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRW5kUXVlcnk7ICAgICAgICAgICAg ICAgICAgLyogU1ZHQV8zRF9DTURfRU5EX1FVRVJZICovCisKKworLyoKKyAqIFNWR0EzRF9DTURf V0FJVF9GT1JfUVVFUlkgLS0KKyAqCisgKiAgICBXaWxsIHJlYWQgdGhlIFNWR0EzZFF1ZXJ5UmVz dWx0IHN0cnVjdHVyZSBwb2ludGVkIHRvIGJ5IGd1ZXN0UmVzdWx0LAorICogICAgYW5kIGlmIHRo ZSBzdGF0ZSBtZW1iZXIgaXMgc2V0IHRvIGFueXRoaW5nIGVsc2UgdGhhbgorICogICAgU1ZHQTNE X1FVRVJZU1RBVEVfUEVORElORywgdGhpcyBjb21tYW5kIHdpbGwgYWx3YXlzIGJlIGEgbm8tb3Au CisgKgorICogICAgT3RoZXJ3aXNlLCBpbiBhZGRpdGlvbiB0byB0aGUgcXVlcnkgZXhwbGljaXRs eSB3YWl0ZWQgZm9yLAorICogICAgQWxsIHF1ZXJpZXMgd2l0aCB0aGUgc2FtZSB0eXBlIGFuZCBp c3N1ZWQgd2l0aCB0aGUgc2FtZSBjaWQsIGZvciB3aGljaAorICogICAgYW4gU1ZHQV8zRF9DTURf RU5EX1FVRVJZIGNvbW1hbmQgaGFzIHByZXZpb3VzbHkgYmVlbiBzZW50LCB3aWxsCisgKiAgICBi ZSBmaW5pc2hlZCBhZnRlciBleGVjdXRpb24gb2YgdGhpcyBjb21tYW5kLgorICoKKyAqICAgIEEg cXVlcnkgd2lsbCBiZSBpZGVudGlmaWVkIGJ5IHRoZSBnbXJJZCBhbmQgb2Zmc2V0IG9mIHRoZSBn dWVzdFJlc3VsdAorICogICAgbWVtYmVyLiBJZiB0aGUgZGV2aWNlIGNhbid0IGZpbmQgYW4gU1ZH QV8zRF9DTURfRU5EX1FVRVJZIHRoYXQgaGFzCisgKiAgICBiZWVuIHNlbnQgcHJldmlvdXNseSB3 aXRoIGFuIGluZGVudGljYWwgZ21ySWQgYW5kIG9mZnNldCwgaXQgd2lsbAorICogICAgZWZmZWN0 aXZlbHkgZW5kIGFsbCBxdWVyaWVzIHdpdGggYW4gaWRlbnRpY2FsIHR5cGUgaXNzdWVkIHdpdGgg dGhlCisgKiAgICBzYW1lIGNpZCwgYW5kIHRoZSBTVkdBM2RRdWVyeVJlc3VsdCBzdHJ1Y3R1cmUg cG9pbnRlZCB0byBieQorICogICAgZ3Vlc3RSZXN1bHQgd2lsbCBub3QgYmUgd3JpdHRlbiB0by4g VGhpcyBwcm9wZXJ0eSBjYW4gYmUgdXNlZCB0bworICogICAgaW1wbGVtZW50IGEgcXVlcnkgYmFy cmllciBmb3IgYSBnaXZlbiBjaWQgYW5kIHF1ZXJ5IHR5cGUuCisgKi8KKwordHlwZWRlZgorI2lu Y2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAgdWludDMyICAgICAgICAg ICAgICAgY2lkOyAgICAgICAgLyogU2FtZSBwYXJhbWV0ZXJzIHBhc3NlZCB0byBFTkRfUVVFUlkg Ki8KKyAgIFNWR0EzZFF1ZXJ5VHlwZSAgICAgIHR5cGU7CisgICBTVkdBR3Vlc3RQdHIgICAgICAg ICBndWVzdFJlc3VsdDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENt ZFdhaXRGb3JRdWVyeTsgICAgICAgICAgICAgIC8qIFNWR0FfM0RfQ01EX1dBSVRfRk9SX1FVRVJZ ICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsK KyAgIHVpbnQzMiAgICAgICAgICAgICAgIHRvdGFsU2l6ZTsgICAgLyogU2V0IGJ5IGd1ZXN0IGJl Zm9yZSBxdWVyeSBpcyBlbmRlZC4gKi8KKyAgIFNWR0EzZFF1ZXJ5U3RhdGUgICAgIHN0YXRlOyAg ICAgICAgLyogU2V0IGJ5IGhvc3Qgb3IgZ3Vlc3QuIFNlZSBTVkdBM2RRdWVyeVN0YXRlLiAqLwor ICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTZXQgYnkgaG9zdCBvbiBl eGl0IGZyb20gUEVORElORyBzdGF0ZSAqLworICAgICAgdWludDMyICAgICAgICAgICAgcmVzdWx0 MzI7CisgICAgICB1aW50MzIgICAgICAgICAgICBxdWVyeUNvb2tpZTsgLyogTWF5IGJlIHVzZWQg dG8gaWRlbnRpZnkgd2hpY2ggUXVlcnlHZXREYXRhIHRoaXMKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXN1bHQgY29ycmVzcG9uZHMgdG8uICovCisgICB9OworfQor I2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkUXVlcnlSZXN1bHQ7CisKKworLyoK KyAqIFNWR0FfM0RfQ01EX0JMSVRfU1VSRkFDRV9UT19TQ1JFRU4gLS0KKyAqCisgKiAgICBUaGlz IGlzIGEgYmxpdCBmcm9tIGFuIFNWR0EzRCBzdXJmYWNlIHRvIGEgU2NyZWVuIE9iamVjdC4KKyAq ICAgIFRoaXMgYmxpdCBtdXN0IGJlIGRpcmVjdGVkIGF0IGEgc3BlY2lmaWMgc2NyZWVuLgorICoK KyAqICAgIFRoZSBibGl0IGNvcGllcyBmcm9tIGEgcmVjdGFuZ3VsYXIgcmVnaW9uIG9mIGFuIFNW R0EzRCBzdXJmYWNlCisgKiAgICBpbWFnZSB0byBhIHJlY3Rhbmd1bGFyIHJlZ2lvbiBvZiBhIHNj cmVlbi4KKyAqCisgKiAgICBUaGlzIGNvbW1hbmQgdGFrZXMgYW4gb3B0aW9uYWwgdmFyaWFibGUt bGVuZ3RoIGxpc3Qgb2YgY2xpcHBpbmcKKyAqICAgIHJlY3RhbmdsZXMgYWZ0ZXIgdGhlIGJvZHkg b2YgdGhlIGNvbW1hbmQuIElmIG5vIHJlY3RhbmdsZXMgYXJlCisgKiAgICBzcGVjaWZpZWQsIHRo ZXJlIGlzIG5vIGNsaXBwaW5nIHJlZ2lvbi4gVGhlIGVudGlyZSBkZXN0UmVjdCBpcworICogICAg ZHJhd24gdG8uIElmIG9uZSBvciBtb3JlIHJlY3RhbmdsZXMgYXJlIGluY2x1ZGVkLCB0aGV5IGRl c2NyaWJlCisgKiAgICBhIGNsaXBwaW5nIHJlZ2lvbi4gVGhlIGNsaXAgcmVjdGFuZ2xlIGNvb3Jk aW5hdGVzIGFyZSBtZWFzdXJlZAorICogICAgcmVsYXRpdmUgdG8gdGhlIHRvcC1sZWZ0IGNvcm5l ciBvZiBkZXN0UmVjdC4KKyAqCisgKiAgICBUaGUgc3JjSW1hZ2UgbXVzdCBiZSBmcm9tIG1pcD0w IGZhY2U9MC4KKyAqCisgKiAgICBUaGlzIHN1cHBvcnRzIHNjYWxpbmcgaWYgdGhlIHNyYyBhbmQg ZGVzdCBhcmUgb2YgZGlmZmVyZW50IHNpemVzLgorICoKKyAqIEF2YWlsYWJpbGl0eToKKyAqICAg IFNWR0FfRklGT19DQVBfU0NSRUVOX09CSkVDVAorICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2 bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAgIFNWR0EzZFN1cmZhY2VJbWFnZUlkIHNy Y0ltYWdlOworICAgU1ZHQVNpZ25lZFJlY3QgICAgICAgc3JjUmVjdDsKKyAgIHVpbnQzMiAgICAg ICAgICAgICAgIGRlc3RTY3JlZW5JZDsgLyogU2NyZWVuIE9iamVjdCBJRCAqLworICAgU1ZHQVNp Z25lZFJlY3QgICAgICAgZGVzdFJlY3Q7CisgICAvKiBDbGlwcGluZzogemVybyBvciBtb3JlIFNW R0FTaWduZWRSZWN0cyBmb2xsb3cgKi8KK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIK K1NWR0EzZENtZEJsaXRTdXJmYWNlVG9TY3JlZW47ICAgICAgICAgLyogU1ZHQV8zRF9DTURfQkxJ VF9TVVJGQUNFX1RPX1NDUkVFTiAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tf YmVnaW4uaCIKK3N0cnVjdCB7CisgICB1aW50MzIgICAgICAgICAgICAgICBzaWQ7CisgICBTVkdB M2RUZXh0dXJlRmlsdGVyICBmaWx0ZXI7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgi CitTVkdBM2RDbWRHZW5lcmF0ZU1pcG1hcHM7ICAgICAgICAgICAgIC8qIFNWR0FfM0RfQ01EX0dF TkVSQVRFX01JUE1BUFMgKi8KKworCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19i ZWdpbi5oIgorc3RydWN0IHsKKyAgIHVpbnQzMiBzaWQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3Bh Y2tfZW5kLmgiCitTVkdBM2RDbWRBY3RpdmF0ZVN1cmZhY2U7ICAgICAgICAgICAgICAgLyogU1ZH QV8zRF9DTURfQUNUSVZBVEVfU1VSRkFDRSAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJl X3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7CisgICB1aW50MzIgc2lkOworfQorI2luY2x1ZGUgInZt d2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRGVhY3RpdmF0ZVN1cmZhY2U7ICAgICAgICAgICAg IC8qIFNWR0FfM0RfQ01EX0RFQUNUSVZBVEVfU1VSRkFDRSAqLworCisvKgorICogU2NyZWVuIERN QSBjb21tYW5kCisgKgorICogQXZhaWxhYmxlIHdpdGggU1ZHQV9GSUZPX0NBUF9TQ1JFRU5fT0JK RUNUXzIuICBUaGUgU1ZHQV9DQVBfM0QgZGV2aWNlCisgKiBjYXAgYml0IGlzIG5vdCByZXF1aXJl ZC4KKyAqCisgKiAtIHJlZkJ1ZmZlciBhbmQgZGVzdEJ1ZmZlciBhcmUgMzJiaXQgQkdSWDsgcmVm QnVmZmVyIGFuZCBkZXN0QnVmZmVyIGNvdWxkCisgKiAgIGJlIGRpZmZlcmVudCwgYnV0IGl0IGlz IHJlcXVpcmVkIHRoYXQgZ3Vlc3QgbWFrZXMgc3VyZSByZWZCdWZmZXIgaGFzCisgKiAgIGV4YWN0 bHkgdGhlIHNhbWUgY29udGVudHMgdGhhdCB3ZXJlIHdyaXR0ZW4gdG8gd2hlbiBsYXN0IHRpbWUg c2NyZWVuIERNQQorICogICBjb21tYW5kIGlzIHJlY2VpdmVkIGJ5IGhvc3QuCisgKgorICogLSBj aGFuZ2VtYXAgaXMgZ2VuZXJhdGVkIGJ5IGxpYi9ibGl0LCBhbmQgaXQgaGFzIHRoZSBjaGFuZ2Vz IGZyb20gbGFzdAorICogICByZWNlaXZlZCBzY3JlZW4gRE1BIG9yIG1vcmUuCisgKi8KKwordHlw ZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21kU2Ny ZWVuRE1BIHsKKyAgIHVpbnQzMiBzY3JlZW5JZDsKKyAgIFNWR0FHdWVzdEltYWdlIHJlZkJ1ZmZl cjsKKyAgIFNWR0FHdWVzdEltYWdlIGRlc3RCdWZmZXI7CisgICBTVkdBR3Vlc3RJbWFnZSBjaGFu Z2VNYXA7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWRTY3JlZW5E TUE7ICAgICAgICAvKiBTVkdBXzNEX0NNRF9TQ1JFRU5fRE1BICovCisKKy8qCisgKiBTZXQgVW5p dHkgU3VyZmFjZSBDb29raWUKKyAqCisgKiBBc3NvY2lhdGVzIHRoZSBzdXBwbGllZCBjb29raWUg d2l0aCB0aGUgc3VyZmFjZSBpZCBmb3IgdXNlIHdpdGgKKyAqIFVuaXR5LiAgVGhpcyBjb29raWUg aXMgYSBoaW50IGZyb20gZ3Vlc3QgdG8gaG9zdCwgdGhlcmUgaXMgbm8gd2F5CisgKiBmb3IgdGhl IGd1ZXN0IHRvIHJlYWRiYWNrIHRoZSBjb29raWUgYW5kIHRoZSBob3N0IGlzIGZyZWUgdG8gZHJv cAorICogdGhlIGNvb2tpZSBhc3NvY2lhdGlvbiBhdCB3aWxsLiAgVGhlIGRlZmF1bHQgdmFsdWUg Zm9yIHRoZSBjb29raWUKKyAqIG9uIGFsbCBzdXJmYWNlcyBpcyAwLgorICovCisKK3R5cGVkZWYK KyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZENtZFNldFVuaXR5 U3VyZmFjZUNvb2tpZSB7CisgICB1aW50MzIgc2lkOworICAgdWludDY0IGNvb2tpZTsKK30KKyNp bmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZFNldFVuaXR5U3VyZmFjZUNvb2tp ZTsgICAvKiBTVkdBXzNEX0NNRF9TRVRfVU5JVFlfU1VSRkFDRV9DT09LSUUgKi8KKworLyoKKyAq IE9wZW4gYSBjb250ZXh0LXNwZWNpZmljIHN1cmZhY2UgaW4gYSBub24tY29udGV4dC1zcGVjaWZp YyBtYW5uZXIuCisgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgi CitzdHJ1Y3QgU1ZHQTNkQ21kT3BlbkNvbnRleHRTdXJmYWNlIHsKKyAgIHVpbnQzMiBzaWQ7Cit9 CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWRPcGVuQ29udGV4dFN1cmZh Y2U7ICAgLyogU1ZHQV8zRF9DTURfT1BFTl9DT05URVhUX1NVUkZBQ0UgKi8KKworCisvKgorICog TG9naWMgb3BzCisgKi8KKworI2RlZmluZSBTVkdBM0RfTE9UUkFOU0JMVF9IT05PUkFMUEhBICAg ICAoMHgwMSkKKyNkZWZpbmUgU1ZHQTNEX0xPU1RSRVRDSEJMVF9NSVJST1JYICAgICAgKDB4MDEp CisjZGVmaW5lIFNWR0EzRF9MT1NUUkVUQ0hCTFRfTUlSUk9SWSAgICAgICgweDAyKQorI2RlZmlu ZSBTVkdBM0RfTE9BTFBIQUJMRU5EX1NSQ0hBU0FMUEhBICAoMHgwMSkKKwordHlwZWRlZgorI2lu Y2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21kTG9naWNPcHNCaXRC bHQgeworICAgLyoKKyAgICAqIEFsbCBMb2dpY09wcyBzdXJmYWNlcyBhcmUgb25lLWxldmVsCisg ICAgKiBzdXJmYWNlcyBzbyBtaXBtYXAgJiBmYWNlIHNob3VsZCBhbHdheXMKKyAgICAqIGJlIHpl cm8uCisgICAgKi8KKyAgIFNWR0EzZFN1cmZhY2VJbWFnZUlkIHNyYzsKKyAgIFNWR0EzZFN1cmZh Y2VJbWFnZUlkIGRzdDsKKyAgIFNWR0EzZExvZ2ljT3AgbG9naWNPcDsKKyAgIC8qIEZvbGxvd2Vk IGJ5IHZhcmlhYmxlIG51bWJlciBvZiBTVkdBM2RDb3B5Qm94IHN0cnVjdHVyZXMgKi8KK30KKyNp bmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZExvZ2ljT3BzQml0Qmx0OyAgIC8q IFNWR0FfM0RfQ01EX0xPR0lDT1BTX0JJVEJMVCAqLworCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2 bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZENtZExvZ2ljT3BzVHJhbnNCbHQgewor ICAgLyoKKyAgICAqIEFsbCBMb2dpY09wcyBzdXJmYWNlcyBhcmUgb25lLWxldmVsCisgICAgKiBz dXJmYWNlcyBzbyBtaXBtYXAgJiBmYWNlIHNob3VsZCBhbHdheXMKKyAgICAqIGJlIHplcm8uCisg ICAgKi8KKyAgIFNWR0EzZFN1cmZhY2VJbWFnZUlkIHNyYzsKKyAgIFNWR0EzZFN1cmZhY2VJbWFn ZUlkIGRzdDsKKyAgIHVpbnQzMiBjb2xvcjsKKyAgIHVpbnQzMiBmbGFnczsKKyAgIFNWR0EzZEJv eCBzcmNCb3g7CisgICBTVkdBM2RCb3ggZHN0Qm94OworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNr X2VuZC5oIgorU1ZHQTNkQ21kTG9naWNPcHNUcmFuc0JsdDsgICAvKiBTVkdBXzNEX0NNRF9MT0dJ Q09QU19UUkFOU0JMVCAqLworCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdp bi5oIgorc3RydWN0IFNWR0EzZENtZExvZ2ljT3BzU3RyZXRjaEJsdCB7CisgICAvKgorICAgICog QWxsIExvZ2ljT3BzIHN1cmZhY2VzIGFyZSBvbmUtbGV2ZWwKKyAgICAqIHN1cmZhY2VzIHNvIG1p cG1hcCAmIGZhY2Ugc2hvdWxkIGFsd2F5cworICAgICogYmUgemVyby4KKyAgICAqLworICAgU1ZH QTNkU3VyZmFjZUltYWdlSWQgc3JjOworICAgU1ZHQTNkU3VyZmFjZUltYWdlSWQgZHN0OworICAg dWludDE2IG1vZGU7CisgICB1aW50MTYgZmxhZ3M7CisgICBTVkdBM2RCb3ggc3JjQm94OworICAg U1ZHQTNkQm94IGRzdEJveDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0Ez ZENtZExvZ2ljT3BzU3RyZXRjaEJsdDsgICAvKiBTVkdBXzNEX0NNRF9MT0dJQ09QU19TVFJFVENI QkxUICovCisKKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1 Y3QgU1ZHQTNkQ21kTG9naWNPcHNDb2xvckZpbGwgeworICAgLyoKKyAgICAqIEFsbCBMb2dpY09w cyBzdXJmYWNlcyBhcmUgb25lLWxldmVsCisgICAgKiBzdXJmYWNlcyBzbyBtaXBtYXAgJiBmYWNl IHNob3VsZCBhbHdheXMKKyAgICAqIGJlIHplcm8uCisgICAgKi8KKyAgIFNWR0EzZFN1cmZhY2VJ bWFnZUlkIGRzdDsKKyAgIHVpbnQzMiBjb2xvcjsKKyAgIFNWR0EzZExvZ2ljT3AgbG9naWNPcDsK KyAgIC8qIEZvbGxvd2VkIGJ5IHZhcmlhYmxlIG51bWJlciBvZiBTVkdBM2RSZWN0IHN0cnVjdHVy ZXMuICovCit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWRMb2dpY09w c0NvbG9yRmlsbDsgICAvKiBTVkdBXzNEX0NNRF9MT0dJQ09QU19DT0xPUkZJTEwgKi8KKworCit0 eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWRM b2dpY09wc0FscGhhQmxlbmQgeworICAgLyoKKyAgICAqIEFsbCBMb2dpY09wcyBzdXJmYWNlcyBh cmUgb25lLWxldmVsCisgICAgKiBzdXJmYWNlcyBzbyBtaXBtYXAgJiBmYWNlIHNob3VsZCBhbHdh eXMKKyAgICAqIGJlIHplcm8uCisgICAgKi8KKyAgIFNWR0EzZFN1cmZhY2VJbWFnZUlkIHNyYzsK KyAgIFNWR0EzZFN1cmZhY2VJbWFnZUlkIGRzdDsKKyAgIHVpbnQzMiBhbHBoYVZhbDsKKyAgIHVp bnQzMiBmbGFnczsKKyAgIFNWR0EzZEJveCBzcmNCb3g7CisgICBTVkdBM2RCb3ggZHN0Qm94Owor fQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kTG9naWNPcHNBbHBoYUJs ZW5kOyAgIC8qIFNWR0FfM0RfQ01EX0xPR0lDT1BTX0FMUEhBQkxFTkQgKi8KKworI2RlZmluZSBT VkdBM0RfQ0xFQVJUWVBFX0lOVkFMSURfR0FNTUFfSU5ERVggMHhGRkZGRkZGRgorCisjZGVmaW5l IFNWR0EzRF9DTEVBUlRZUEVfR0FNTUFfV0lEVEggIDUxMgorI2RlZmluZSBTVkdBM0RfQ0xFQVJU WVBFX0dBTU1BX0hFSUdIVCAxNgorCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVn aW4uaCIKK3N0cnVjdCBTVkdBM2RDbWRMb2dpY09wc0NsZWFyVHlwZUJsZW5kIHsKKyAgIC8qCisg ICAgKiBBbGwgTG9naWNPcHMgc3VyZmFjZXMgYXJlIG9uZS1sZXZlbAorICAgICogc3VyZmFjZXMg c28gbWlwbWFwICYgZmFjZSBzaG91bGQgYWx3YXlzCisgICAgKiBiZSB6ZXJvLgorICAgICovCisg ICBTVkdBM2RTdXJmYWNlSW1hZ2VJZCB0bXA7CisgICBTVkdBM2RTdXJmYWNlSW1hZ2VJZCBkc3Q7 CisgICBTVkdBM2RTdXJmYWNlSW1hZ2VJZCBnYW1tYVN1cmY7CisgICBTVkdBM2RTdXJmYWNlSW1h Z2VJZCBhbHBoYVN1cmY7CisgICB1aW50MzIgZ2FtbWE7CisgICB1aW50MzIgY29sb3I7CisgICB1 aW50MzIgY29sb3IyOworICAgaW50MzIgYWxwaGFPZmZzZXRYOworICAgaW50MzIgYWxwaGFPZmZz ZXRZOworICAgLyogRm9sbG93ZWQgYnkgdmFyaWFibGUgbnVtYmVyIG9mIFNWR0EzZEJveCBzdHJ1 Y3R1cmVzICovCit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWRMb2dp Y09wc0NsZWFyVHlwZUJsZW5kOyAgIC8qIFNWR0FfM0RfQ01EX0xPR0lDT1BTX0NMRUFSVFlQRUJM RU5EICovCisKKworLyoKKyAqIEd1ZXN0LWJhY2tlZCBvYmplY3RzIGRlZmluaXRpb25zLgorICov CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAg IFNWR0FNb2JGb3JtYXQgcHREZXB0aDsKKyAgIHVpbnQzMiBzaXplSW5CeXRlczsKKyAgIFBQTjY0 IGJhc2U7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBT1RhYmxlTW9iRW50 cnk7CisjZGVmaW5lIFNWR0EzRF9PVEFCTEVfTU9CX0VOVFJZX1NJWkUgKHNpemVvZihTVkdBT1Rh YmxlTW9iRW50cnkpKQorCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIK K3N0cnVjdCB7CisgICBTVkdBM2RTdXJmYWNlRm9ybWF0IGZvcm1hdDsKKyAgIFNWR0EzZFN1cmZh Y2VGbGFncyBzdXJmYWNlRmxhZ3M7CisgICB1aW50MzIgbnVtTWlwTGV2ZWxzOworICAgdWludDMy IG11bHRpc2FtcGxlQ291bnQ7CisgICBTVkdBM2RUZXh0dXJlRmlsdGVyIGF1dG9nZW5GaWx0ZXI7 CisgICBTVkdBM2RTaXplIHNpemU7CisgICBTVkdBTW9iSWQgbW9iaWQ7CisgICB1aW50MzIgYXJy YXlTaXplOworICAgdWludDMyIG1vYlBpdGNoOworICAgdWludDMyIHBhZFs1XTsKK30KKyNpbmNs dWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0FPVGFibGVTdXJmYWNlRW50cnk7CisjZGVmaW5l IFNWR0EzRF9PVEFCTEVfU1VSRkFDRV9FTlRSWV9TSVpFIChzaXplb2YoU1ZHQU9UYWJsZVN1cmZh Y2VFbnRyeSkpCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3Ry dWN0IHsKKyAgIHVpbnQzMiBjaWQ7CisgICBTVkdBTW9iSWQgbW9iaWQ7Cit9CisjaW5jbHVkZSAi dm13YXJlX3BhY2tfZW5kLmgiCitTVkdBT1RhYmxlQ29udGV4dEVudHJ5OworI2RlZmluZSBTVkdB M0RfT1RBQkxFX0NPTlRFWFRfRU5UUllfU0laRSAoc2l6ZW9mKFNWR0FPVGFibGVDb250ZXh0RW50 cnkpKQorCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7 CisgICBTVkdBM2RTaGFkZXJUeXBlIHR5cGU7CisgICB1aW50MzIgc2l6ZUluQnl0ZXM7CisgICB1 aW50MzIgb2Zmc2V0SW5CeXRlczsKKyAgIFNWR0FNb2JJZCBtb2JpZDsKK30KKyNpbmNsdWRlICJ2 bXdhcmVfcGFja19lbmQuaCIKK1NWR0FPVGFibGVTaGFkZXJFbnRyeTsKKyNkZWZpbmUgU1ZHQTNE X09UQUJMRV9TSEFERVJfRU5UUllfU0laRSAoc2l6ZW9mKFNWR0FPVGFibGVTaGFkZXJFbnRyeSkp CisKKyNkZWZpbmUgU1ZHQV9TVEZMQUdfUFJJTUFSWSAoMSA8PCAwKQordHlwZWRlZiB1aW50MzIg U1ZHQVNjcmVlblRhcmdldEZsYWdzOworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tf YmVnaW4uaCIKK3N0cnVjdCB7CisgICBTVkdBM2RTdXJmYWNlSW1hZ2VJZCBpbWFnZTsKKyAgIHVp bnQzMiB3aWR0aDsKKyAgIHVpbnQzMiBoZWlnaHQ7CisgICBpbnQzMiB4Um9vdDsKKyAgIGludDMy IHlSb290OworICAgU1ZHQVNjcmVlblRhcmdldEZsYWdzIGZsYWdzOworICAgdWludDMyIGRwaTsK KyAgIHVpbnQzMiBwYWRbN107Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdB T1RhYmxlU2NyZWVuVGFyZ2V0RW50cnk7CisjZGVmaW5lIFNWR0EzRF9PVEFCTEVfU0NSRUVOX1RB UkdFVF9FTlRSWV9TSVpFIFwKKwkoc2l6ZW9mKFNWR0FPVGFibGVTY3JlZW5UYXJnZXRFbnRyeSkp CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAg IGZsb2F0IHZhbHVlWzRdOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNk U2hhZGVyQ29uc3RGbG9hdDsKKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2lu LmgiCitzdHJ1Y3QgeworICAgaW50MzIgdmFsdWVbNF07Cit9CisjaW5jbHVkZSAidm13YXJlX3Bh Y2tfZW5kLmgiCitTVkdBM2RTaGFkZXJDb25zdEludDsKKwordHlwZWRlZgorI2luY2x1ZGUgInZt d2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAgdWludDMyIHZhbHVlOworfQorI2luY2x1 ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkU2hhZGVyQ29uc3RCb29sOworCit0eXBlZGVm CisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7CisgICB1aW50MTYgc3Ry ZWFtT2Zmc2V0OworICAgdWludDggc3RyZWFtOworICAgdWludDggdHlwZTsKKyAgIHVpbnQ4IG1l dGhvZFVzYWdlOworICAgdWludDggdXNhZ2VJbmRleDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFj a19lbmQuaCIKK1NWR0FHQlZlcnRleEVsZW1lbnQ7CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdh cmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAgIHVpbnQzMiBzaWQ7CisgICB1aW50MTYgc3Ry aWRlOworICAgdWludDMyIG9mZnNldDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIK K1NWR0FHQlZlcnRleFN0cmVhbTsKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdp bi5oIgorc3RydWN0IHsKKyAgIFNWR0EzZFJlY3Qgdmlld3BvcnQ7CisgICBTVkdBM2RSZWN0IHNj aXNzb3JSZWN0OworICAgU1ZHQTNkWlJhbmdlIHpSYW5nZTsKKworICAgU1ZHQTNkU3VyZmFjZUlt YWdlSWQgcmVuZGVyVGFyZ2V0c1tTVkdBM0RfUlRfTUFYXTsKKyAgIFNWR0FHQlZlcnRleEVsZW1l bnQgZGVjbDFbNF07CisKKyAgIHVpbnQzMiByZW5kZXJTdGF0ZXNbU1ZHQTNEX1JTX01BWF07Cisg ICBTVkdBR0JWZXJ0ZXhFbGVtZW50IGRlY2wyWzE4XTsKKyAgIHVpbnQzMiBwYWQwWzJdOworCisg ICBzdHJ1Y3QgeworICAgICAgU1ZHQTNkRmFjZSBmYWNlOworICAgICAgU1ZHQTNkTWF0ZXJpYWwg bWF0ZXJpYWw7CisgICB9IG1hdGVyaWFsOworCisgICBmbG9hdCBjbGlwUGxhbmVzW1NWR0EzRF9O VU1fQ0xJUFBMQU5FU11bNF07CisgICBmbG9hdCBtYXRyaWNlc1tTVkdBM0RfVFJBTlNGT1JNX01B WF1bMTZdOworCisgICBTVkdBM2RCb29sIGxpZ2h0RW5hYmxlZFtTVkdBM0RfTlVNX0xJR0hUU107 CisgICBTVkdBM2RMaWdodERhdGEgbGlnaHREYXRhW1NWR0EzRF9OVU1fTElHSFRTXTsKKworICAg LyoKKyAgICAqIFNoYWRlcnMgY3VycmVudGx5IGJvdW5kCisgICAgKi8KKyAgIHVpbnQzMiBzaGFk ZXJzW1NWR0EzRF9OVU1fU0hBREVSVFlQRV9QUkVEWF07CisgICBTVkdBR0JWZXJ0ZXhFbGVtZW50 IGRlY2wzWzEwXTsKKyAgIHVpbnQzMiBwYWQxWzNdOworCisgICB1aW50MzIgb2NjUXVlcnlBY3Rp dmU7CisgICB1aW50MzIgb2NjUXVlcnlWYWx1ZTsKKworICAgLyoKKyAgICAqIEludC9Cb29sIFNo YWRlciBjb25zdGFudHMKKyAgICAqLworICAgU1ZHQTNkU2hhZGVyQ29uc3RJbnQgcFNoYWRlcklW YWx1ZXNbU1ZHQTNEX0NPTlNUSU5UUkVHX01BWF07CisgICBTVkdBM2RTaGFkZXJDb25zdEludCB2 U2hhZGVySVZhbHVlc1tTVkdBM0RfQ09OU1RJTlRSRUdfTUFYXTsKKyAgIHVpbnQxNiBwU2hhZGVy QlZhbHVlczsKKyAgIHVpbnQxNiB2U2hhZGVyQlZhbHVlczsKKworCisgICBTVkdBR0JWZXJ0ZXhT dHJlYW0gc3RyZWFtc1tTVkdBM0RfTUFYX1ZFUlRFWF9BUlJBWVNdOworICAgU1ZHQTNkVmVydGV4 RGl2aXNvciBkaXZpc29yc1tTVkdBM0RfTUFYX1ZFUlRFWF9BUlJBWVNdOworICAgdWludDMyIG51 bVZlcnRleERlY2xzOworICAgdWludDMyIG51bVZlcnRleFN0cmVhbXM7CisgICB1aW50MzIgbnVt VmVydGV4RGl2aXNvcnM7CisgICB1aW50MzIgcGFkMlszMF07CisKKyAgIC8qCisgICAgKiBUZXh0 dXJlIFN0YWdlcworICAgICoKKyAgICAqIFNWR0EzRF9UU19JTlZBTElEIHRocm91Z2ggU1ZHQTNE X1RTX0NPTlNUQU5UIGFyZSBpbiB0aGUKKyAgICAqIHRleHR1cmVTdGFnZXMgYXJyYXkuCisgICAg KiBTVkdBM0RfVFNfQ09MT1JfS0VZIGlzIGluIHRzQ29sb3JLZXkuCisgICAgKi8KKyAgIHVpbnQz MiB0c0NvbG9yS2V5W1NWR0EzRF9OVU1fVEVYVFVSRV9VTklUU107CisgICB1aW50MzIgdGV4dHVy ZVN0YWdlc1tTVkdBM0RfTlVNX1RFWFRVUkVfVU5JVFNdW1NWR0EzRF9UU19DT05TVEFOVCArIDFd OworICAgdWludDMyIHRzQ29sb3JLZXlFbmFibGVbU1ZHQTNEX05VTV9URVhUVVJFX1VOSVRTXTsK KworICAgLyoKKyAgICAqIEZsb2F0IFNoYWRlciBjb25zdGFudHMuCisgICAgKi8KKyAgIFNWR0Ez ZFNoYWRlckNvbnN0RmxvYXQgcFNoYWRlckZWYWx1ZXNbU1ZHQTNEX0NPTlNUUkVHX01BWF07Cisg ICBTVkdBM2RTaGFkZXJDb25zdEZsb2F0IHZTaGFkZXJGVmFsdWVzW1NWR0EzRF9DT05TVFJFR19N QVhdOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQUdCQ29udGV4dERhdGE7 CisjZGVmaW5lIFNWR0EzRF9DT05URVhUX0RBVEFfU0laRSAoc2l6ZW9mKFNWR0FHQkNvbnRleHRE YXRhKSkKKworLyoKKyAqIFNWR0EzZENtZFNldE9UYWJsZUJhc2UgLS0KKyAqCisgKiBUaGlzIGNv bW1hbmQgYWxsb3dzIHRoZSBndWVzdCB0byBzcGVjaWZ5IHRoZSBiYXNlIFBQTiBvZiB0aGUKKyAq IHNwZWNpZmllZCBvYmplY3QgdGFibGUuCisgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2Fy ZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAgU1ZHQU9UYWJsZVR5cGUgdHlwZTsKKyAgIFBQ TiBiYXNlQWRkcmVzczsKKyAgIHVpbnQzMiBzaXplSW5CeXRlczsKKyAgIHVpbnQzMiB2YWxpZFNp emVJbkJ5dGVzOworICAgU1ZHQU1vYkZvcm1hdCBwdERlcHRoOworfQorI2luY2x1ZGUgInZtd2Fy ZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kU2V0T1RhYmxlQmFzZTsgIC8qIFNWR0FfM0RfQ01EX1NF VF9PVEFCTEVfQkFTRSAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4u aCIKK3N0cnVjdCB7CisgICBTVkdBT1RhYmxlVHlwZSB0eXBlOworICAgUFBONjQgYmFzZUFkZHJl c3M7CisgICB1aW50MzIgc2l6ZUluQnl0ZXM7CisgICB1aW50MzIgdmFsaWRTaXplSW5CeXRlczsK KyAgIFNWR0FNb2JGb3JtYXQgcHREZXB0aDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQu aCIKK1NWR0EzZENtZFNldE9UYWJsZUJhc2U2NDsgIC8qIFNWR0FfM0RfQ01EX1NFVF9PVEFCTEVf QkFTRTY0ICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3Ry dWN0IHsKKyAgIFNWR0FPVGFibGVUeXBlIHR5cGU7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tf ZW5kLmgiCitTVkdBM2RDbWRSZWFkYmFja09UYWJsZTsgIC8qIFNWR0FfM0RfQ01EX1JFQURCQUNL X09UQUJMRSAqLworCisvKgorICogRGVmaW5lIGEgbWVtb3J5IG9iamVjdCAoTW9iKSBpbiB0aGUg T1RhYmxlLgorICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgor c3RydWN0IFNWR0EzZENtZERlZmluZUdCTW9iIHsKKyAgIFNWR0FNb2JJZCBtb2JpZDsKKyAgIFNW R0FNb2JGb3JtYXQgcHREZXB0aDsKKyAgIFBQTiBiYXNlOworICAgdWludDMyIHNpemVJbkJ5dGVz OworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRGVmaW5lR0JNb2I7 ICAgLyogU1ZHQV8zRF9DTURfREVGSU5FX0dCX01PQiAqLworCisKKy8qCisgKiBEZXN0cm95cyBh biBvYmplY3QgaW4gdGhlIE9UYWJsZS4KKyAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJl X3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWREZXN0cm95R0JNb2IgeworICAgU1ZHQU1v YklkIG1vYmlkOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRGVz dHJveUdCTW9iOyAgIC8qIFNWR0FfM0RfQ01EX0RFU1RST1lfR0JfTU9CICovCisKKworLyoKKyAq IERlZmluZSBhIG1lbW9yeSBvYmplY3QgKE1vYikgaW4gdGhlIE9UYWJsZSB3aXRoIGEgUFBONjQg YmFzZS4KKyAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0 cnVjdCBTVkdBM2RDbWREZWZpbmVHQk1vYjY0IHsKKyAgIFNWR0FNb2JJZCBtb2JpZDsKKyAgIFNW R0FNb2JGb3JtYXQgcHREZXB0aDsKKyAgIFBQTjY0IGJhc2U7CisgICB1aW50MzIgc2l6ZUluQnl0 ZXM7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREZWZpbmVHQk1v YjY0OyAgIC8qIFNWR0FfM0RfQ01EX0RFRklORV9HQl9NT0I2NCAqLworCisvKgorICogUmVkZWZp bmUgYW4gb2JqZWN0IGluIHRoZSBPVGFibGUgd2l0aCBQUE42NCBiYXNlLgorICovCisKK3R5cGVk ZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZENtZFJlZGVm aW5lR0JNb2I2NCB7CisgICBTVkdBTW9iSWQgbW9iaWQ7CisgICBTVkdBTW9iRm9ybWF0IHB0RGVw dGg7CisgICBQUE42NCBiYXNlOworICAgdWludDMyIHNpemVJbkJ5dGVzOworfQorI2luY2x1ZGUg InZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kUmVkZWZpbmVHQk1vYjY0OyAgIC8qIFNWR0Ff M0RfQ01EX1JFREVGSU5FX0dCX01PQjY0ICovCisKKy8qCisgKiBOb3RpZmljYXRpb24gdGhhdCB0 aGUgcGFnZSB0YWJsZXMgaGF2ZSBiZWVuIG1vZGlmaWVkLgorICovCisKK3R5cGVkZWYKKyNpbmNs dWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZENtZFVwZGF0ZUdCTW9iTWFw cGluZyB7CisgICBTVkdBTW9iSWQgbW9iaWQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5k LmgiCitTVkdBM2RDbWRVcGRhdGVHQk1vYk1hcHBpbmc7ICAgLyogU1ZHQV8zRF9DTURfVVBEQVRF X0dCX01PQl9NQVBQSU5HICovCisKKy8qCisgKiBEZWZpbmUgYSBndWVzdC1iYWNrZWQgc3VyZmFj ZS4KKyAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVj dCBTVkdBM2RDbWREZWZpbmVHQlN1cmZhY2UgeworICAgdWludDMyIHNpZDsKKyAgIFNWR0EzZFN1 cmZhY2VGbGFncyBzdXJmYWNlRmxhZ3M7CisgICBTVkdBM2RTdXJmYWNlRm9ybWF0IGZvcm1hdDsK KyAgIHVpbnQzMiBudW1NaXBMZXZlbHM7CisgICB1aW50MzIgbXVsdGlzYW1wbGVDb3VudDsKKyAg IFNWR0EzZFRleHR1cmVGaWx0ZXIgYXV0b2dlbkZpbHRlcjsKKyAgIFNWR0EzZFNpemUgc2l6ZTsK K30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZERlZmluZUdCU3VyZmFj ZTsgICAvKiBTVkdBXzNEX0NNRF9ERUZJTkVfR0JfU1VSRkFDRSAqLworCisvKgorICogRGVzdHJv eSBhIGd1ZXN0LWJhY2tlZCBzdXJmYWNlLgorICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdh cmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZENtZERlc3Ryb3lHQlN1cmZhY2UgeworICAg dWludDMyIHNpZDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZERl c3Ryb3lHQlN1cmZhY2U7ICAgLyogU1ZHQV8zRF9DTURfREVTVFJPWV9HQl9TVVJGQUNFICovCisK Ky8qCisgKiBCaW5kIGEgZ3Vlc3QtYmFja2VkIHN1cmZhY2UgdG8gYSBtb2IuCisgKi8KKwordHlw ZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21kQmlu ZEdCU3VyZmFjZSB7CisgICB1aW50MzIgc2lkOworICAgU1ZHQU1vYklkIG1vYmlkOworfQorI2lu Y2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kQmluZEdCU3VyZmFjZTsgICAvKiBT VkdBXzNEX0NNRF9CSU5EX0dCX1NVUkZBQ0UgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2Fy ZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21kQmluZEdCU3VyZmFjZVdpdGhQaXRjaCB7 CisgICB1aW50MzIgc2lkOworICAgU1ZHQU1vYklkIG1vYmlkOworICAgdWludDMyIGJhc2VMZXZl bFBpdGNoOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kQmluZEdC U3VyZmFjZVdpdGhQaXRjaDsgICAvKiBTVkdBXzNEX0NNRF9CSU5EX0dCX1NVUkZBQ0VfV0lUSF9Q SVRDSCAqLworCisvKgorICogQ29uZGl0aW9uYWxseSBiaW5kIGEgbW9iIHRvIGEgZ3Vlc3QtYmFj a2VkIHN1cmZhY2UgaWYgdGVzdE1vYmlkCisgKiBtYXRjaGVzIHRoZSBjdXJyZW50bHkgYm91bmQg bW9iLiAgT3B0aW9uYWxseSBpc3N1ZSBhCisgKiByZWFkYmFjay91cGRhdGUgb24gdGhlIHN1cmZh Y2Ugd2hpbGUgaXQgaXMgc3RpbGwgYm91bmQgdG8gdGhlIG9sZAorICogbW9iaWQgaWYgdGhlIG1v YmlkIGlzIGNoYW5nZWQgYnkgdGhpcyBjb21tYW5kLgorICovCisKKyNkZWZpbmUgU1ZHQTNEX0NP TkRfQklORF9HQl9TVVJGQUNFX0ZMQUdfUkVBREJBQ0sgKDEgPDwgMCkKKyNkZWZpbmUgU1ZHQTNE X0NPTkRfQklORF9HQl9TVVJGQUNFX0ZMQUdfVVBEQVRFICAgKDEgPDwgMSkKKwordHlwZWRlZgor I2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3R7CisgICB1aW50MzIgc2lkOwor ICAgU1ZHQU1vYklkIHRlc3RNb2JpZDsKKyAgIFNWR0FNb2JJZCBtb2JpZDsKKyAgIHVpbnQzMiBm bGFnczsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZENvbmRCaW5k R0JTdXJmYWNlOyAgICAgICAgICAvKiBTVkdBXzNEX0NNRF9DT05EX0JJTkRfR0JfU1VSRkFDRSAq LworCisvKgorICogVXBkYXRlIGFuIGltYWdlIGluIGEgZ3Vlc3QtYmFja2VkIHN1cmZhY2UuCisg KiAoSW5mb3JtIHRoZSBkZXZpY2UgdGhhdCB0aGUgZ3Vlc3QtY29udGVudHMgaGF2ZSBiZWVuIHVw ZGF0ZWQuKQorICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgor c3RydWN0IFNWR0EzZENtZFVwZGF0ZUdCSW1hZ2UgeworICAgU1ZHQTNkU3VyZmFjZUltYWdlSWQg aW1hZ2U7CisgICBTVkdBM2RCb3ggYm94OworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5o IgorU1ZHQTNkQ21kVXBkYXRlR0JJbWFnZTsgICAvKiBTVkdBXzNEX0NNRF9VUERBVEVfR0JfSU1B R0UgKi8KKworLyoKKyAqIFVwZGF0ZSBhbiBlbnRpcmUgZ3Vlc3QtYmFja2VkIHN1cmZhY2UuCisg KiAoSW5mb3JtIHRoZSBkZXZpY2UgdGhhdCB0aGUgZ3Vlc3QtY29udGVudHMgaGF2ZSBiZWVuIHVw ZGF0ZWQuKQorICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgor c3RydWN0IFNWR0EzZENtZFVwZGF0ZUdCU3VyZmFjZSB7CisgICB1aW50MzIgc2lkOworfQorI2lu Y2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kVXBkYXRlR0JTdXJmYWNlOyAgIC8q IFNWR0FfM0RfQ01EX1VQREFURV9HQl9TVVJGQUNFICovCisKKy8qCisgKiBSZWFkYmFjayBhbiBp bWFnZSBpbiBhIGd1ZXN0LWJhY2tlZCBzdXJmYWNlLgorICogKFJlcXVlc3QgdGhlIGRldmljZSB0 byBmbHVzaCB0aGUgZGlydHkgY29udGVudHMgaW50byB0aGUgZ3Vlc3QuKQorICovCisKK3R5cGVk ZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZENtZFJlYWRi YWNrR0JJbWFnZSB7CisgICBTVkdBM2RTdXJmYWNlSW1hZ2VJZCBpbWFnZTsKK30KKyNpbmNsdWRl ICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZFJlYWRiYWNrR0JJbWFnZTsgICAvKiBTVkdB XzNEX0NNRF9SRUFEQkFDS19HQl9JTUFHRSAqLworCisvKgorICogUmVhZGJhY2sgYW4gZW50aXJl IGd1ZXN0LWJhY2tlZCBzdXJmYWNlLgorICogKFJlcXVlc3QgdGhlIGRldmljZSB0byBmbHVzaCB0 aGUgZGlydHkgY29udGVudHMgaW50byB0aGUgZ3Vlc3QuKQorICovCisKK3R5cGVkZWYKKyNpbmNs dWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZENtZFJlYWRiYWNrR0JTdXJm YWNlIHsKKyAgIHVpbnQzMiBzaWQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitT VkdBM2RDbWRSZWFkYmFja0dCU3VyZmFjZTsgICAvKiBTVkdBXzNEX0NNRF9SRUFEQkFDS19HQl9T VVJGQUNFICovCisKKy8qCisgKiBSZWFkYmFjayBhIHN1YiByZWN0IG9mIGFuIGltYWdlIGluIGEg Z3Vlc3QtYmFja2VkIHN1cmZhY2UuICBBZnRlcgorICogaXNzdWluZyB0aGlzIGNvbW1hbmQgdGhl IGRyaXZlciBpcyByZXF1aXJlZCB0byBpc3N1ZSBhbiB1cGRhdGUgY2FsbAorICogb2YgdGhlIHNh bWUgcmVnaW9uIGJlZm9yZSBpc3N1aW5nIGFueSBvdGhlciBjb21tYW5kcyB0aGF0IHJlZmVyZW5j ZQorICogdGhpcyBzdXJmYWNlIG9yIHJlbmRlcmluZyBpcyBub3QgZ3VhcmFudGVlZC4KKyAqLwor Cit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RD bWRSZWFkYmFja0dCSW1hZ2VQYXJ0aWFsIHsKKyAgIFNWR0EzZFN1cmZhY2VJbWFnZUlkIGltYWdl OworICAgU1ZHQTNkQm94IGJveDsKKyAgIHVpbnQzMiBpbnZlcnRCb3g7Cit9CisjaW5jbHVkZSAi dm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWRSZWFkYmFja0dCSW1hZ2VQYXJ0aWFsOyAvKiBT VkdBXzNEX0NNRF9SRUFEQkFDS19HQl9JTUFHRV9QQVJUSUFMICovCisKKworLyoKKyAqIEludmFs aWRhdGUgYW4gaW1hZ2UgaW4gYSBndWVzdC1iYWNrZWQgc3VyZmFjZS4KKyAqIChOb3RpZnkgdGhl IGRldmljZSB0aGF0IHRoZSBjb250ZW50cyBjYW4gYmUgbG9zdC4pCisgKi8KKwordHlwZWRlZgor I2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21kSW52YWxpZGF0 ZUdCSW1hZ2UgeworICAgU1ZHQTNkU3VyZmFjZUltYWdlSWQgaW1hZ2U7Cit9CisjaW5jbHVkZSAi dm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWRJbnZhbGlkYXRlR0JJbWFnZTsgICAvKiBTVkdB XzNEX0NNRF9JTlZBTElEQVRFX0dCX0lNQUdFICovCisKKy8qCisgKiBJbnZhbGlkYXRlIGFuIGVu dGlyZSBndWVzdC1iYWNrZWQgc3VyZmFjZS4KKyAqIChOb3RpZnkgdGhlIGRldmljZSB0aGF0IHRo ZSBjb250ZW50cyBpZiBhbGwgaW1hZ2VzIGNhbiBiZSBsb3N0LikKKyAqLworCit0eXBlZGVmCisj aW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWRJbnZhbGlkYXRl R0JTdXJmYWNlIHsKKyAgIHVpbnQzMiBzaWQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5k LmgiCitTVkdBM2RDbWRJbnZhbGlkYXRlR0JTdXJmYWNlOyAvKiBTVkdBXzNEX0NNRF9JTlZBTElE QVRFX0dCX1NVUkZBQ0UgKi8KKworLyoKKyAqIEludmFsaWRhdGUgYSBzdWIgcmVjdCBvZiBhbiBp bWFnZSBpbiBhIGd1ZXN0LWJhY2tlZCBzdXJmYWNlLiAgQWZ0ZXIKKyAqIGlzc3VpbmcgdGhpcyBj b21tYW5kIHRoZSBkcml2ZXIgaXMgcmVxdWlyZWQgdG8gaXNzdWUgYW4gdXBkYXRlIGNhbGwKKyAq IG9mIHRoZSBzYW1lIHJlZ2lvbiBiZWZvcmUgaXNzdWluZyBhbnkgb3RoZXIgY29tbWFuZHMgdGhh dCByZWZlcmVuY2UKKyAqIHRoaXMgc3VyZmFjZSBvciByZW5kZXJpbmcgaXMgbm90IGd1YXJhbnRl ZWQuCisgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1 Y3QgU1ZHQTNkQ21kSW52YWxpZGF0ZUdCSW1hZ2VQYXJ0aWFsIHsKKyAgIFNWR0EzZFN1cmZhY2VJ bWFnZUlkIGltYWdlOworICAgU1ZHQTNkQm94IGJveDsKKyAgIHVpbnQzMiBpbnZlcnRCb3g7Cit9 CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWRJbnZhbGlkYXRlR0JJbWFn ZVBhcnRpYWw7IC8qIFNWR0FfM0RfQ01EX0lOVkFMSURBVEVfR0JfSU1BR0VfUEFSVElBTCAqLwor CisKKy8qCisgKiBEZWZpbmUgYSBndWVzdC1iYWNrZWQgY29udGV4dC4KKyAqLworCit0eXBlZGVm CisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWREZWZpbmVH QkNvbnRleHQgeworICAgdWludDMyIGNpZDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQu aCIKK1NWR0EzZENtZERlZmluZUdCQ29udGV4dDsgICAvKiBTVkdBXzNEX0NNRF9ERUZJTkVfR0Jf Q09OVEVYVCAqLworCisvKgorICogRGVzdHJveSBhIGd1ZXN0LWJhY2tlZCBjb250ZXh0LgorICov CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0Ez ZENtZERlc3Ryb3lHQkNvbnRleHQgeworICAgdWludDMyIGNpZDsKK30KKyNpbmNsdWRlICJ2bXdh cmVfcGFja19lbmQuaCIKK1NWR0EzZENtZERlc3Ryb3lHQkNvbnRleHQ7ICAgLyogU1ZHQV8zRF9D TURfREVTVFJPWV9HQl9DT05URVhUICovCisKKy8qCisgKiBCaW5kIGEgZ3Vlc3QtYmFja2VkIGNv bnRleHQuCisgKgorICogdmFsaWRDb250ZW50cyBzaG91bGQgYmUgc2V0IHRvIDAgZm9yIG5ldyBj b250ZXh0cywKKyAqIGFuZCAxIGlmIHRoaXMgaXMgYW4gb2xkIGNvbnRleHQgd2hpY2ggaXMgZ2V0 dGluZyBwYWdlZAorICogYmFjayBvbiB0byB0aGUgZGV2aWNlLgorICoKKyAqIEZvciBuZXcgY29u dGV4dHMsIGl0IGlzIHJlY29tbWVuZGVkIHRoYXQgdGhlIGRyaXZlcgorICogaXNzdWUgY29tbWFu ZHMgdG8gaW5pdGlhbGl6ZSBhbGwgaW50ZXJlc3Rpbmcgc3RhdGUKKyAqIHByaW9yIHRvIHJlbmRl cmluZy4KKyAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0 cnVjdCBTVkdBM2RDbWRCaW5kR0JDb250ZXh0IHsKKyAgIHVpbnQzMiBjaWQ7CisgICBTVkdBTW9i SWQgbW9iaWQ7CisgICB1aW50MzIgdmFsaWRDb250ZW50czsKK30KKyNpbmNsdWRlICJ2bXdhcmVf cGFja19lbmQuaCIKK1NWR0EzZENtZEJpbmRHQkNvbnRleHQ7ICAgLyogU1ZHQV8zRF9DTURfQklO RF9HQl9DT05URVhUICovCisKKy8qCisgKiBSZWFkYmFjayBhIGd1ZXN0LWJhY2tlZCBjb250ZXh0 LgorICogKFJlcXVlc3QgdGhhdCB0aGUgZGV2aWNlIGZsdXNoIHRoZSBjb250ZW50cyBiYWNrIGlu dG8gZ3Vlc3QgbWVtb3J5LikKKyAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tf YmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWRSZWFkYmFja0dCQ29udGV4dCB7CisgICB1aW50MzIg Y2lkOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kUmVhZGJhY2tH QkNvbnRleHQ7ICAgLyogU1ZHQV8zRF9DTURfUkVBREJBQ0tfR0JfQ09OVEVYVCAqLworCisvKgor ICogSW52YWxpZGF0ZSBhIGd1ZXN0LWJhY2tlZCBjb250ZXh0LgorICovCit0eXBlZGVmCisjaW5j bHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWRJbnZhbGlkYXRlR0JD b250ZXh0IHsKKyAgIHVpbnQzMiBjaWQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgi CitTVkdBM2RDbWRJbnZhbGlkYXRlR0JDb250ZXh0OyAgIC8qIFNWR0FfM0RfQ01EX0lOVkFMSURB VEVfR0JfQ09OVEVYVCAqLworCisvKgorICogRGVmaW5lIGEgZ3Vlc3QtYmFja2VkIHNoYWRlci4K KyAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBT VkdBM2RDbWREZWZpbmVHQlNoYWRlciB7CisgICB1aW50MzIgc2hpZDsKKyAgIFNWR0EzZFNoYWRl clR5cGUgdHlwZTsKKyAgIHVpbnQzMiBzaXplSW5CeXRlczsKK30KKyNpbmNsdWRlICJ2bXdhcmVf cGFja19lbmQuaCIKK1NWR0EzZENtZERlZmluZUdCU2hhZGVyOyAgIC8qIFNWR0FfM0RfQ01EX0RF RklORV9HQl9TSEFERVIgKi8KKworLyoKKyAqIEJpbmQgYSBndWVzdC1iYWNrZWQgc2hhZGVyLgor ICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNW R0EzZENtZEJpbmRHQlNoYWRlciB7CisgICB1aW50MzIgc2hpZDsKKyAgIFNWR0FNb2JJZCBtb2Jp ZDsKKyAgIHVpbnQzMiBvZmZzZXRJbkJ5dGVzOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2Vu ZC5oIgorU1ZHQTNkQ21kQmluZEdCU2hhZGVyOyAgIC8qIFNWR0FfM0RfQ01EX0JJTkRfR0JfU0hB REVSICovCisKKy8qCisgKiBEZXN0cm95IGEgZ3Vlc3QtYmFja2VkIHNoYWRlci4KKyAqLworCit0 eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWRE ZXN0cm95R0JTaGFkZXIgeworICAgdWludDMyIHNoaWQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3Bh Y2tfZW5kLmgiCitTVkdBM2RDbWREZXN0cm95R0JTaGFkZXI7ICAgLyogU1ZHQV8zRF9DTURfREVT VFJPWV9HQl9TSEFERVIgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2lu LmgiCitzdHJ1Y3QgeworICAgdWludDMyICAgICAgICAgICAgICAgICAgY2lkOworICAgdWludDMy ICAgICAgICAgICAgICAgICAgcmVnU3RhcnQ7CisgICBTVkdBM2RTaGFkZXJUeXBlICAgICAgICBz aGFkZXJUeXBlOworICAgU1ZHQTNkU2hhZGVyQ29uc3RUeXBlICAgY29uc3RUeXBlOworCisgICAv KgorICAgICogRm9sbG93ZWQgYnkgYSB2YXJpYWJsZSBudW1iZXIgb2Ygc2hhZGVyIGNvbnN0YW50 cy4KKyAgICAqCisgICAgKiBOb3RlIHRoYXQgRkxPQVQgYW5kIElOVCBjb25zdGFudHMgYXJlIDQt ZHdvcmRzIGluIGxlbmd0aCwgd2hpbGUKKyAgICAqIEJPT0wgY29uc3RhbnRzIGFyZSAxLWR3b3Jk IGluIGxlbmd0aC4KKyAgICAqLworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZH QTNkQ21kU2V0R0JTaGFkZXJDb25zdElubGluZTsgICAvKiBTVkdBXzNEX0NNRF9TRVRfR0JfU0hB REVSQ09OU1RTX0lOTElORSAqLworCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19i ZWdpbi5oIgorc3RydWN0IHsKKyAgIHVpbnQzMiAgICAgICAgICAgICAgIGNpZDsKKyAgIFNWR0Ez ZFF1ZXJ5VHlwZSAgICAgIHR5cGU7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitT VkdBM2RDbWRCZWdpbkdCUXVlcnk7ICAgICAgICAgICAvKiBTVkdBXzNEX0NNRF9CRUdJTl9HQl9R VUVSWSAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVj dCB7CisgICB1aW50MzIgICAgICAgICAgICAgICBjaWQ7CisgICBTVkdBM2RRdWVyeVR5cGUgICAg ICB0eXBlOworICAgU1ZHQU1vYklkIG1vYmlkOworICAgdWludDMyIG9mZnNldDsKK30KKyNpbmNs dWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZEVuZEdCUXVlcnk7ICAgICAgICAgICAg ICAgICAgLyogU1ZHQV8zRF9DTURfRU5EX0dCX1FVRVJZICovCisKKworLyoKKyAqIFNWR0FfM0Rf Q01EX1dBSVRfRk9SX0dCX1FVRVJZIC0tCisgKgorICogICAgVGhlIHNlbWFudGljcyBvZiB0aGlz IGNvbW1hbmQgYXJlIGlkZW50aWNhbCB0byB0aGUKKyAqICAgIFNWR0FfM0RfQ01EX1dBSVRfRk9S X1FVRVJZIGV4Y2VwdCB0aGF0IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuCisgKiAgICB0byBhIE1v YiBpbnN0ZWFkIG9mIGEgR01SLgorICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFj a19iZWdpbi5oIgorc3RydWN0IHsKKyAgIHVpbnQzMiAgICAgICAgICAgICAgIGNpZDsKKyAgIFNW R0EzZFF1ZXJ5VHlwZSAgICAgIHR5cGU7CisgICBTVkdBTW9iSWQgbW9iaWQ7CisgICB1aW50MzIg b2Zmc2V0OworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kV2FpdEZv ckdCUXVlcnk7ICAgICAgICAgIC8qIFNWR0FfM0RfQ01EX1dBSVRfRk9SX0dCX1FVRVJZICovCisK KwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAg U1ZHQU1vYklkIG1vYmlkOworICAgdWludDMyIG11c3RCZVplcm87CisgICB1aW50MzIgaW5pdGlh bGl6ZWQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWRFbmFibGVH YXJ0OyAgICAgICAgICAgICAgLyogU1ZHQV8zRF9DTURfRU5BQkxFX0dBUlQgKi8KKwordHlwZWRl ZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAgU1ZHQU1vYklk IG1vYmlkOworICAgdWludDMyIGdhcnRPZmZzZXQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tf ZW5kLmgiCitTVkdBM2RDbWRNYXBNb2JJbnRvR2FydDsgICAgICAgICAgLyogU1ZHQV8zRF9DTURf TUFQX01PQl9JTlRPX0dBUlQgKi8KKworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tf YmVnaW4uaCIKK3N0cnVjdCB7CisgICB1aW50MzIgZ2FydE9mZnNldDsKKyAgIHVpbnQzMiBudW1Q YWdlczsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZFVubWFwR2Fy dFJhbmdlOyAgICAgICAgICAvKiBTVkdBXzNEX0NNRF9VTk1BUF9HQVJUX1JBTkdFICovCisKKwor LyoKKyAqIFNjcmVlbiBUYXJnZXRzCisgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9w YWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAgdWludDMyIHN0aWQ7CisgICB1aW50MzIgd2lkdGg7 CisgICB1aW50MzIgaGVpZ2h0OworICAgaW50MzIgeFJvb3Q7CisgICBpbnQzMiB5Um9vdDsKKyAg IFNWR0FTY3JlZW5UYXJnZXRGbGFncyBmbGFnczsKKworICAgLyoKKyAgICAqIFRoZSBwaHlzaWNh bCBEUEkgdGhhdCB0aGUgZ3Vlc3QgZXhwZWN0cyB0aGlzIHNjcmVlbiBkaXNwbGF5ZWQgYXQuCisg ICAgKgorICAgICogR3Vlc3RzIHdoaWNoIGFyZSBub3QgRFBJLWF3YXJlIHNob3VsZCBzZXQgdGhp cyB0byB6ZXJvLgorICAgICovCisgICB1aW50MzIgZHBpOworfQorI2luY2x1ZGUgInZtd2FyZV9w YWNrX2VuZC5oIgorU1ZHQTNkQ21kRGVmaW5lR0JTY3JlZW5UYXJnZXQ7ICAgIC8qIFNWR0FfM0Rf Q01EX0RFRklORV9HQl9TQ1JFRU5UQVJHRVQgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2Fy ZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAgdWludDMyIHN0aWQ7Cit9CisjaW5jbHVkZSAi dm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREZXN0cm95R0JTY3JlZW5UYXJnZXQ7ICAvKiBT VkdBXzNEX0NNRF9ERVNUUk9ZX0dCX1NDUkVFTlRBUkdFVCAqLworCit0eXBlZGVmCisjaW5jbHVk ZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7CisgICB1aW50MzIgc3RpZDsKKyAgIFNW R0EzZFN1cmZhY2VJbWFnZUlkIGltYWdlOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5o IgorU1ZHQTNkQ21kQmluZEdCU2NyZWVuVGFyZ2V0OyAgLyogU1ZHQV8zRF9DTURfQklORF9HQl9T Q1JFRU5UQVJHRVQgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgi CitzdHJ1Y3QgeworICAgdWludDMyIHN0aWQ7CisgICBTVkdBM2RSZWN0IHJlY3Q7Cit9CisjaW5j bHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWRVcGRhdGVHQlNjcmVlblRhcmdldDsg IC8qIFNWR0FfM0RfQ01EX1VQREFURV9HQl9TQ1JFRU5UQVJHRVQgKi8KKwordHlwZWRlZgorI2lu Y2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21kR0JTY3JlZW5ETUEg eworICAgdWludDMyIHNjcmVlbklkOworICAgdWludDMyIGRlYWQ7CisgICBTVkdBTW9iSWQgZGVz dE1vYklEOworICAgdWludDMyIGRlc3RQaXRjaDsKKyAgIFNWR0FNb2JJZCBjaGFuZ2VNYXBNb2JJ RDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZEdCU2NyZWVuRE1B OyAgICAgICAgLyogU1ZHQV8zRF9DTURfR0JfU0NSRUVOX0RNQSAqLworCit0eXBlZGVmCisjaW5j bHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7CisgICB1aW50MzIgdmFsdWU7Cisg ICB1aW50MzIgbW9iSWQ7CisgICB1aW50MzIgbW9iT2Zmc2V0OworfQorI2luY2x1ZGUgInZtd2Fy ZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kR0JNb2JGZW5jZTsgIC8qIFNWR0FfM0RfQ01EX0dCX01P Ql9GRU5DRSovCisKKyNlbmRpZiAvKiBfU1ZHQTNEX0NNRF9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC9kZXZpY2VfaW5jbHVkZS9zdmdhM2RfZGV2Y2Fwcy5oIGIvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC9kZXZpY2VfaW5jbHVkZS9zdmdhM2RfZGV2Y2Fwcy5oCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxOGI2NjMKLS0tIC9kZXYvbnVsbAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L2RldmljZV9pbmNsdWRlL3N2Z2EzZF9kZXZjYXBzLmgK QEAgLTAsMCArMSw0NTcgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgMTk5OC0yMDE1IFZNd2FyZSwgSW5j LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgorICogb2J0YWluaW5nIGEgY29weSBv ZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24KKyAqIGZpbGVzICh0 aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQKKyAqIHJlc3Ry aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBj b3B5LAorICogbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwg YW5kL29yIHNlbGwgY29waWVzCisgKiBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy c29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq ZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJp Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQorICogaW5jbHVk ZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUu CisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO VFkgT0YgQU5ZIEtJTkQsCisgKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECisgKiBOT05JTkZSSU5HRU1FTlQuIElOIE5P IEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTCisgKiBCRSBMSUFC TEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g QU4KKyAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJP TSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBV U0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCisgKiBTT0ZUV0FSRS4KKyAqCisgKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoK KyAqIHN2Z2EzZF9kZXZjYXBzLmggLS0KKyAqCisgKiAgICAgICBTVkdBIDNkIGNhcHMgZGVmaW5p dGlvbnMKKyAqLworCisjaWZuZGVmIF9TVkdBM0RfREVWQ0FQU19IXworI2RlZmluZSBfU1ZHQTNE X0RFVkNBUFNfSF8KKworI2RlZmluZSBJTkNMVURFX0FMTE9XX01PRFVMRQorI2RlZmluZSBJTkNM VURFX0FMTE9XX1VTRVJMRVZFTAorI2RlZmluZSBJTkNMVURFX0FMTE9XX1ZNQ09SRQorCisjaW5j bHVkZSAiaW5jbHVkZUNoZWNrLmgiCisKKy8qCisgKiAzRCBIYXJkd2FyZSBWZXJzaW9uCisgKgor ICogICBUaGUgaGFyZHdhcmUgdmVyc2lvbiBpcyBzdG9yZWQgaW4gdGhlIFNWR0FfRklGT18zRF9I V1ZFUlNJT04gZmlmbworICogICByZWdpc3Rlci4gICBJcyBzZXQgYnkgdGhlIGhvc3QgYW5kIHJl YWQgYnkgdGhlIGd1ZXN0LiAgVGhpcyBsZXRzCisgKiAgIHVzIG1ha2UgbmV3IGd1ZXN0IGRyaXZl cnMgd2hpY2ggYXJlIGJhY2t3YXJkcy1jb21wYXRpYmxlIHdpdGggb2xkCisgKiAgIFNWR0EgaGFy ZHdhcmUgcmV2aXNpb25zLiAgSXQgZG9lcyBub3QgbGV0IHVzIHN1cHBvcnQgb2xkIGd1ZXN0Cisg KiAgIGRyaXZlcnMuICBHb29kIGVub3VnaCBmb3Igbm93LgorICoKKyAqLworCisjZGVmaW5lIFNW R0EzRF9NQUtFX0hXVkVSU0lPTihtYWpvciwgbWlub3IpICAgICAgKCgobWFqb3IpIDw8IDE2KSB8 ICgobWlub3IpICYgMHhGRikpCisjZGVmaW5lIFNWR0EzRF9NQUpPUl9IV1ZFUlNJT04odmVyc2lv bikgICAgICAgICAgKCh2ZXJzaW9uKSA+PiAxNikKKyNkZWZpbmUgU1ZHQTNEX01JTk9SX0hXVkVS U0lPTih2ZXJzaW9uKSAgICAgICAgICAoKHZlcnNpb24pICYgMHhGRikKKwordHlwZWRlZiBlbnVt IHsKKyAgIFNWR0EzRF9IV1ZFUlNJT05fV1M1X1JDMSAgID0gU1ZHQTNEX01BS0VfSFdWRVJTSU9O KDAsIDEpLAorICAgU1ZHQTNEX0hXVkVSU0lPTl9XUzVfUkMyICAgPSBTVkdBM0RfTUFLRV9IV1ZF UlNJT04oMCwgMiksCisgICBTVkdBM0RfSFdWRVJTSU9OX1dTNTFfUkMxICA9IFNWR0EzRF9NQUtF X0hXVkVSU0lPTigwLCAzKSwKKyAgIFNWR0EzRF9IV1ZFUlNJT05fV1M2X0IxICAgID0gU1ZHQTNE X01BS0VfSFdWRVJTSU9OKDEsIDEpLAorICAgU1ZHQTNEX0hXVkVSU0lPTl9GVVNJT05fMTEgPSBT VkdBM0RfTUFLRV9IV1ZFUlNJT04oMSwgNCksCisgICBTVkdBM0RfSFdWRVJTSU9OX1dTNjVfQjEg ICA9IFNWR0EzRF9NQUtFX0hXVkVSU0lPTigyLCAwKSwKKyAgIFNWR0EzRF9IV1ZFUlNJT05fV1M4 X0IxICAgID0gU1ZHQTNEX01BS0VfSFdWRVJTSU9OKDIsIDEpLAorICAgU1ZHQTNEX0hXVkVSU0lP Tl9DVVJSRU5UICAgPSBTVkdBM0RfSFdWRVJTSU9OX1dTOF9CMSwKK30gU1ZHQTNkSGFyZHdhcmVW ZXJzaW9uOworCisvKgorICogRGV2Q2FwIGluZGV4ZXMuCisgKi8KKwordHlwZWRlZiBlbnVtIHsK KyAgIFNWR0EzRF9ERVZDQVBfSU5WQUxJRCAgICAgICAgICAgICAgICAgICAgICAgICAgID0gKCh1 aW50MzIpLTEpLAorICAgU1ZHQTNEX0RFVkNBUF8zRCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPSAwLAorICAgU1ZHQTNEX0RFVkNBUF9NQVhfTElHSFRTICAgICAgICAgICAgICAgICAg ICAgICAgPSAxLAorCisgICAvKgorICAgICogU1ZHQTNEX0RFVkNBUF9NQVhfVEVYVFVSRVMgcmVm bGVjdHMgdGhlIG1heGltdW0gbnVtYmVyIG9mCisgICAgKiBmaXhlZC1mdW5jdGlvbiB0ZXh0dXJl IHVuaXRzIGF2YWlsYWJsZS4gRWFjaCBvZiB0aGVzZSB1bml0cworICAgICogd29yayBpbiBib3Ro IEZGUCBhbmQgU2hhZGVyIG1vZGVzLCBhbmQgdGhleSBzdXBwb3J0IHRleHR1cmUKKyAgICAqIHRy YW5zZm9ybXMgYW5kIHRleHR1cmUgY29vcmRpbmF0ZXMuIFRoZSBob3N0IG1heSBoYXZlIGFkZGl0 aW9uYWwKKyAgICAqIHRleHR1cmUgaW1hZ2UgdW5pdHMgdGhhdCBhcmUgb25seSB1c2FibGUgd2l0 aCBzaGFkZXJzLgorICAgICovCisgICBTVkdBM0RfREVWQ0FQX01BWF9URVhUVVJFUyAgICAgICAg ICAgICAgICAgICAgICA9IDIsCisgICBTVkdBM0RfREVWQ0FQX01BWF9DTElQX1BMQU5FUyAgICAg ICAgICAgICAgICAgICA9IDMsCisgICBTVkdBM0RfREVWQ0FQX1ZFUlRFWF9TSEFERVJfVkVSU0lP TiAgICAgICAgICAgICA9IDQsCisgICBTVkdBM0RfREVWQ0FQX1ZFUlRFWF9TSEFERVIgICAgICAg ICAgICAgICAgICAgICA9IDUsCisgICBTVkdBM0RfREVWQ0FQX0ZSQUdNRU5UX1NIQURFUl9WRVJT SU9OICAgICAgICAgICA9IDYsCisgICBTVkdBM0RfREVWQ0FQX0ZSQUdNRU5UX1NIQURFUiAgICAg ICAgICAgICAgICAgICA9IDcsCisgICBTVkdBM0RfREVWQ0FQX01BWF9SRU5ERVJfVEFSR0VUUyAg ICAgICAgICAgICAgICA9IDgsCisgICBTVkdBM0RfREVWQ0FQX1MyM0U4X1RFWFRVUkVTICAgICAg ICAgICAgICAgICAgICA9IDksCisgICBTVkdBM0RfREVWQ0FQX1MxMEU1X1RFWFRVUkVTICAgICAg ICAgICAgICAgICAgICA9IDEwLAorICAgU1ZHQTNEX0RFVkNBUF9NQVhfRklYRURfVkVSVEVYQkxF TkQgICAgICAgICAgICAgPSAxMSwKKyAgIFNWR0EzRF9ERVZDQVBfRDE2X0JVRkZFUl9GT1JNQVQg ICAgICAgICAgICAgICAgID0gMTIsCisgICBTVkdBM0RfREVWQ0FQX0QyNFM4X0JVRkZFUl9GT1JN QVQgICAgICAgICAgICAgICA9IDEzLAorICAgU1ZHQTNEX0RFVkNBUF9EMjRYOF9CVUZGRVJfRk9S TUFUICAgICAgICAgICAgICAgPSAxNCwKKyAgIFNWR0EzRF9ERVZDQVBfUVVFUllfVFlQRVMgICAg ICAgICAgICAgICAgICAgICAgID0gMTUsCisgICBTVkdBM0RfREVWQ0FQX1RFWFRVUkVfR1JBRElF TlRfU0FNUExJTkcgICAgICAgICA9IDE2LAorICAgU1ZHQTNEX0RFVkNBUF9NQVhfUE9JTlRfU0la RSAgICAgICAgICAgICAgICAgICAgPSAxNywKKyAgIFNWR0EzRF9ERVZDQVBfTUFYX1NIQURFUl9U RVhUVVJFUyAgICAgICAgICAgICAgID0gMTgsCisgICBTVkdBM0RfREVWQ0FQX01BWF9URVhUVVJF X1dJRFRIICAgICAgICAgICAgICAgICA9IDE5LAorICAgU1ZHQTNEX0RFVkNBUF9NQVhfVEVYVFVS RV9IRUlHSFQgICAgICAgICAgICAgICAgPSAyMCwKKyAgIFNWR0EzRF9ERVZDQVBfTUFYX1ZPTFVN RV9FWFRFTlQgICAgICAgICAgICAgICAgID0gMjEsCisgICBTVkdBM0RfREVWQ0FQX01BWF9URVhU VVJFX1JFUEVBVCAgICAgICAgICAgICAgICA9IDIyLAorICAgU1ZHQTNEX0RFVkNBUF9NQVhfVEVY VFVSRV9BU1BFQ1RfUkFUSU8gICAgICAgICAgPSAyMywKKyAgIFNWR0EzRF9ERVZDQVBfTUFYX1RF WFRVUkVfQU5JU09UUk9QWSAgICAgICAgICAgID0gMjQsCisgICBTVkdBM0RfREVWQ0FQX01BWF9Q UklNSVRJVkVfQ09VTlQgICAgICAgICAgICAgICA9IDI1LAorICAgU1ZHQTNEX0RFVkNBUF9NQVhf VkVSVEVYX0lOREVYICAgICAgICAgICAgICAgICAgPSAyNiwKKyAgIFNWR0EzRF9ERVZDQVBfTUFY X1ZFUlRFWF9TSEFERVJfSU5TVFJVQ1RJT05TICAgID0gMjcsCisgICBTVkdBM0RfREVWQ0FQX01B WF9GUkFHTUVOVF9TSEFERVJfSU5TVFJVQ1RJT05TICA9IDI4LAorICAgU1ZHQTNEX0RFVkNBUF9N QVhfVkVSVEVYX1NIQURFUl9URU1QUyAgICAgICAgICAgPSAyOSwKKyAgIFNWR0EzRF9ERVZDQVBf TUFYX0ZSQUdNRU5UX1NIQURFUl9URU1QUyAgICAgICAgID0gMzAsCisgICBTVkdBM0RfREVWQ0FQ X1RFWFRVUkVfT1BTICAgICAgICAgICAgICAgICAgICAgICA9IDMxLAorICAgU1ZHQTNEX0RFVkNB UF9TVVJGQUNFRk1UX1g4UjhHOEI4ICAgICAgICAgICAgICAgPSAzMiwKKyAgIFNWR0EzRF9ERVZD QVBfU1VSRkFDRUZNVF9BOFI4RzhCOCAgICAgICAgICAgICAgID0gMzMsCisgICBTVkdBM0RfREVW Q0FQX1NVUkZBQ0VGTVRfQTJSMTBHMTBCMTAgICAgICAgICAgICA9IDM0LAorICAgU1ZHQTNEX0RF VkNBUF9TVVJGQUNFRk1UX1gxUjVHNUI1ICAgICAgICAgICAgICAgPSAzNSwKKyAgIFNWR0EzRF9E RVZDQVBfU1VSRkFDRUZNVF9BMVI1RzVCNSAgICAgICAgICAgICAgID0gMzYsCisgICBTVkdBM0Rf REVWQ0FQX1NVUkZBQ0VGTVRfQTRSNEc0QjQgICAgICAgICAgICAgICA9IDM3LAorICAgU1ZHQTNE X0RFVkNBUF9TVVJGQUNFRk1UX1I1RzZCNSAgICAgICAgICAgICAgICAgPSAzOCwKKyAgIFNWR0Ez RF9ERVZDQVBfU1VSRkFDRUZNVF9MVU1JTkFOQ0UxNiAgICAgICAgICAgID0gMzksCisgICBTVkdB M0RfREVWQ0FQX1NVUkZBQ0VGTVRfTFVNSU5BTkNFOF9BTFBIQTggICAgICA9IDQwLAorICAgU1ZH QTNEX0RFVkNBUF9TVVJGQUNFRk1UX0FMUEhBOCAgICAgICAgICAgICAgICAgPSA0MSwKKyAgIFNW R0EzRF9ERVZDQVBfU1VSRkFDRUZNVF9MVU1JTkFOQ0U4ICAgICAgICAgICAgID0gNDIsCisgICBT VkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfWl9EMTYgICAgICAgICAgICAgICAgICA9IDQzLAorICAg U1ZHQTNEX0RFVkNBUF9TVVJGQUNFRk1UX1pfRDI0UzggICAgICAgICAgICAgICAgPSA0NCwKKyAg IFNWR0EzRF9ERVZDQVBfU1VSRkFDRUZNVF9aX0QyNFg4ICAgICAgICAgICAgICAgID0gNDUsCisg ICBTVkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfRFhUMSAgICAgICAgICAgICAgICAgICA9IDQ2LAor ICAgU1ZHQTNEX0RFVkNBUF9TVVJGQUNFRk1UX0RYVDIgICAgICAgICAgICAgICAgICAgPSA0NywK KyAgIFNWR0EzRF9ERVZDQVBfU1VSRkFDRUZNVF9EWFQzICAgICAgICAgICAgICAgICAgID0gNDgs CisgICBTVkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfRFhUNCAgICAgICAgICAgICAgICAgICA9IDQ5 LAorICAgU1ZHQTNEX0RFVkNBUF9TVVJGQUNFRk1UX0RYVDUgICAgICAgICAgICAgICAgICAgPSA1 MCwKKyAgIFNWR0EzRF9ERVZDQVBfU1VSRkFDRUZNVF9CVU1QWDhMOFY4VTggICAgICAgICAgID0g NTEsCisgICBTVkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfQTJXMTBWMTBVMTAgICAgICAgICAgICA9 IDUyLAorICAgU1ZHQTNEX0RFVkNBUF9TVVJGQUNFRk1UX0JVTVBVOFY4ICAgICAgICAgICAgICAg PSA1MywKKyAgIFNWR0EzRF9ERVZDQVBfU1VSRkFDRUZNVF9ROFc4VjhVOCAgICAgICAgICAgICAg ID0gNTQsCisgICBTVkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfQ3hWOFU4ICAgICAgICAgICAgICAg ICA9IDU1LAorICAgU1ZHQTNEX0RFVkNBUF9TVVJGQUNFRk1UX1JfUzEwRTUgICAgICAgICAgICAg ICAgPSA1NiwKKyAgIFNWR0EzRF9ERVZDQVBfU1VSRkFDRUZNVF9SX1MyM0U4ICAgICAgICAgICAg ICAgID0gNTcsCisgICBTVkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfUkdfUzEwRTUgICAgICAgICAg ICAgICA9IDU4LAorICAgU1ZHQTNEX0RFVkNBUF9TVVJGQUNFRk1UX1JHX1MyM0U4ICAgICAgICAg ICAgICAgPSA1OSwKKyAgIFNWR0EzRF9ERVZDQVBfU1VSRkFDRUZNVF9BUkdCX1MxMEU1ICAgICAg ICAgICAgID0gNjAsCisgICBTVkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfQVJHQl9TMjNFOCAgICAg ICAgICAgICA9IDYxLAorCisgICAvKgorICAgICogVGhlcmUgaXMgYSBob2xlIGluIG91ciBkZXZj YXAgZGVmaW5pdGlvbnMgZm9yCisgICAgKiBoaXN0b3JpY2FsIHJlYXNvbnMuCisgICAgKgorICAg ICogRGVmaW5lIGEgY29uc3RhbnQganVzdCBmb3IgY29tcGxldGVuZXNzLgorICAgICovCisgICBT VkdBM0RfREVWQ0FQX01JU1NJTkc2MiAgICAgICAgICAgICAgICAgICAgICAgICA9IDYyLAorCisg ICBTVkdBM0RfREVWQ0FQX01BWF9WRVJURVhfU0hBREVSX1RFWFRVUkVTICAgICAgICA9IDYzLAor CisgICAvKgorICAgICogTm90ZSB0aGF0IE1BWF9TSU1VTFRBTkVPVVNfUkVOREVSX1RBUkdFVFMg aXMgYSBtYXhpbXVtIGNvdW50IG9mIGNvbG9yCisgICAgKiByZW5kZXIgdGFyZ2V0cy4gIFRoaXMg ZG9lcyBub3QgaW5jbHVkZSB0aGUgZGVwdGggb3Igc3RlbmNpbCB0YXJnZXRzLgorICAgICovCisg ICBTVkdBM0RfREVWQ0FQX01BWF9TSU1VTFRBTkVPVVNfUkVOREVSX1RBUkdFVFMgICA9IDY0LAor CisgICBTVkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfVjE2VTE2ICAgICAgICAgICAgICAgICA9IDY1 LAorICAgU1ZHQTNEX0RFVkNBUF9TVVJGQUNFRk1UX0cxNlIxNiAgICAgICAgICAgICAgICAgPSA2 NiwKKyAgIFNWR0EzRF9ERVZDQVBfU1VSRkFDRUZNVF9BMTZCMTZHMTZSMTYgICAgICAgICAgID0g NjcsCisgICBTVkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfVVlWWSAgICAgICAgICAgICAgICAgICA9 IDY4LAorICAgU1ZHQTNEX0RFVkNBUF9TVVJGQUNFRk1UX1lVWTIgICAgICAgICAgICAgICAgICAg PSA2OSwKKyAgIFNWR0EzRF9ERVZDQVBfTVVMVElTQU1QTEVfTk9OTUFTS0FCTEVTQU1QTEVTICAg ID0gNzAsCisgICBTVkdBM0RfREVWQ0FQX01VTFRJU0FNUExFX01BU0tBQkxFU0FNUExFUyAgICAg ICA9IDcxLAorICAgU1ZHQTNEX0RFVkNBUF9BTFBIQVRPQ09WRVJBR0UgICAgICAgICAgICAgICAg ICAgPSA3MiwKKyAgIFNWR0EzRF9ERVZDQVBfU1VQRVJTQU1QTEUgICAgICAgICAgICAgICAgICAg ICAgID0gNzMsCisgICBTVkdBM0RfREVWQ0FQX0FVVE9HRU5NSVBNQVBTICAgICAgICAgICAgICAg ICAgICA9IDc0LAorICAgU1ZHQTNEX0RFVkNBUF9TVVJGQUNFRk1UX05WMTIgICAgICAgICAgICAg ICAgICAgPSA3NSwKKyAgIFNWR0EzRF9ERVZDQVBfU1VSRkFDRUZNVF9BWVVWICAgICAgICAgICAg ICAgICAgID0gNzYsCisKKyAgIC8qCisgICAgKiBUaGlzIGlzIHRoZSBtYXhpbXVtIG51bWJlciBv ZiBTVkdBIGNvbnRleHQgSURzIHRoYXQgdGhlIGd1ZXN0CisgICAgKiBjYW4gZGVmaW5lIHVzaW5n IFNWR0FfM0RfQ01EX0NPTlRFWFRfREVGSU5FLgorICAgICovCisgICBTVkdBM0RfREVWQ0FQX01B WF9DT05URVhUX0lEUyAgICAgICAgICAgICAgICAgICA9IDc3LAorCisgICAvKgorICAgICogVGhp cyBpcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgU1ZHQSBzdXJmYWNlIElEcyB0aGF0IHRoZSBndWVz dAorICAgICogY2FuIGRlZmluZSB1c2luZyBTVkdBXzNEX0NNRF9TVVJGQUNFX0RFRklORSouCisg ICAgKi8KKyAgIFNWR0EzRF9ERVZDQVBfTUFYX1NVUkZBQ0VfSURTICAgICAgICAgICAgICAgICAg ID0gNzgsCisKKyAgIFNWR0EzRF9ERVZDQVBfU1VSRkFDRUZNVF9aX0RGMTYgICAgICAgICAgICAg ICAgID0gNzksCisgICBTVkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfWl9ERjI0ICAgICAgICAgICAg ICAgICA9IDgwLAorICAgU1ZHQTNEX0RFVkNBUF9TVVJGQUNFRk1UX1pfRDI0UzhfSU5UICAgICAg ICAgICAgPSA4MSwKKworICAgU1ZHQTNEX0RFVkNBUF9TVVJGQUNFRk1UX0FUSTEgICAgICAgICAg ICAgICAgICAgPSA4MiwKKyAgIFNWR0EzRF9ERVZDQVBfU1VSRkFDRUZNVF9BVEkyICAgICAgICAg ICAgICAgICAgID0gODMsCisKKyAgIC8qCisgICAgKiBEZXByZWNhdGVkLgorICAgICovCisgICBT VkdBM0RfREVWQ0FQX0RFQUQxICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDg0LAorCisg ICAvKgorICAgICogVGhpcyBjb250YWlucyBzZXZlcmFsIFNWR0FfM0RfQ0FQU19WSURFT19ERUNP REUgZWxlbWVudHMKKyAgICAqIG9yZWQgdG9nZXRoZXIsIG9uZSBmb3IgZXZlcnkgdHlwZSBvZiB2 aWRlbyBkZWNvZGluZyBzdXBwb3J0ZWQuCisgICAgKi8KKyAgIFNWR0EzRF9ERVZDQVBfVklERU9f REVDT0RFICAgICAgICAgICAgICAgICAgICAgID0gODUsCisKKyAgIC8qCisgICAgKiBUaGlzIGNv bnRhaW5zIHNldmVyYWwgU1ZHQV8zRF9DQVBTX1ZJREVPX1BST0NFU1MgZWxlbWVudHMKKyAgICAq IG9yZWQgdG9nZXRoZXIsIG9uZSBmb3IgZXZlcnkgdHlwZSBvZiB2aWRlbyBwcm9jZXNzaW5nIHN1 cHBvcnRlZC4KKyAgICAqLworICAgU1ZHQTNEX0RFVkNBUF9WSURFT19QUk9DRVNTICAgICAgICAg ICAgICAgICAgICAgPSA4NiwKKworICAgU1ZHQTNEX0RFVkNBUF9MSU5FX0FBICAgICAgICAgICAg ICAgICAgICAgICAgICAgPSA4NywgIC8qIGJvb2xlYW4gKi8KKyAgIFNWR0EzRF9ERVZDQVBfTElO RV9TVElQUExFICAgICAgICAgICAgICAgICAgICAgID0gODgsICAvKiBib29sZWFuICovCisgICBT VkdBM0RfREVWQ0FQX01BWF9MSU5FX1dJRFRIICAgICAgICAgICAgICAgICAgICA9IDg5LCAgLyog ZmxvYXQgKi8KKyAgIFNWR0EzRF9ERVZDQVBfTUFYX0FBX0xJTkVfV0lEVEggICAgICAgICAgICAg ICAgID0gOTAsICAvKiBmbG9hdCAqLworCisgICBTVkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfWVYx MiAgICAgICAgICAgICAgICAgICA9IDkxLAorCisgICAvKgorICAgICogRG9lcyB0aGUgaG9zdCBz dXBwb3J0IHRoZSBTVkdBIGxvZ2ljIG9wcyBjb21tYW5kcz8KKyAgICAqLworICAgU1ZHQTNEX0RF VkNBUF9MT0dJQ09QUyAgICAgICAgICAgICAgICAgICAgICAgICAgPSA5MiwKKworICAgLyoKKyAg ICAqIEFyZSBUU19DT05TVEFOVCwgVFNfQ09MT1JfS0VZLCBhbmQgVFNfQ09MT1JfS0VZX0VOQUJM RSBzdXBwb3J0ZWQ/CisgICAgKi8KKyAgIFNWR0EzRF9ERVZDQVBfVFNfQ09MT1JfS0VZICAgICAg ICAgICAgICAgICAgICAgID0gOTMsIC8qIGJvb2xlYW4gKi8KKworICAgLyoKKyAgICAqIERlcHJl Y2F0ZWQuCisgICAgKi8KKyAgIFNWR0EzRF9ERVZDQVBfREVBRDIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgID0gOTQsCisKKyAgIC8qCisgICAgKiBEb2VzIHRoZSBkZXZpY2Ugc3VwcG9ydCB0 aGUgRFggY29tbWFuZHM/CisgICAgKi8KKyAgIFNWR0EzRF9ERVZDQVBfRFggICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgID0gOTUsCisKKyAgIC8qCisgICAgKiBXaGF0IGlzIHRoZSBtYXhp bXVtIHNpemUgb2YgYSB0ZXh0dXJlIGFycmF5PworICAgICoKKyAgICAqIChFdmVuIGlmIHRoaXMg Y2FwIGlzIHplcm8sIGN1YmVtYXBzIGFyZSBzdGlsbCBhbGxvd2VkLikKKyAgICAqLworICAgU1ZH QTNEX0RFVkNBUF9NQVhfVEVYVFVSRV9BUlJBWV9TSVpFICAgICAgICAgICAgPSA5NiwKKworICAg LyoKKyAgICAqIFdoYXQgaXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHZlcnRleCBidWZmZXJzIHRo YXQgY2FuCisgICAgKiBiZSB1c2VkIGluIHRoZSBEWENvbnRleHQgaW5wdXRBc3NlbWJseT8KKyAg ICAqLworICAgU1ZHQTNEX0RFVkNBUF9EWF9NQVhfVkVSVEVYQlVGRkVSUyAgICAgICAgICAgICAg PSA5NywKKworICAgLyoKKyAgICAqIFdoYXQgaXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbnN0 YW50IGJ1ZmZlcnMKKyAgICAqIHRoYXQgY2FuIGJlIGV4cGVjdGVkIHRvIHdvcmsgY29ycmVjdGx5 IHdpdGggYQorICAgICogRFggY29udGV4dD8KKyAgICAqLworICAgU1ZHQTNEX0RFVkNBUF9EWF9N QVhfQ09OU1RBTlRfQlVGRkVSUyAgICAgICAgICAgPSA5OCwKKworICAgLyoKKyAgICAqIERvZXMg dGhlIGRldmljZSBzdXBwb3J0IHByb3Zva2luZyB2ZXJ0ZXggY29udHJvbD8KKyAgICAqIElmIHpl cm8sIHRoZSBmaXJzdCB2ZXJ0ZXggd2lsbCBhbHdheXMgYmUgdGhlIHByb3Zva2luZyB2ZXJ0ZXgu CisgICAgKi8KKyAgIFNWR0EzRF9ERVZDQVBfRFhfUFJPVk9LSU5HX1ZFUlRFWCAgICAgICAgICAg ICAgID0gOTksCisKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfWDhSOEc4QjggICAgICAgICAgICAg ICAgICAgID0gMTAwLAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9BOFI4RzhCOCAgICAgICAgICAg ICAgICAgICAgPSAxMDEsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX1I1RzZCNSAgICAgICAgICAg ICAgICAgICAgICA9IDEwMiwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfWDFSNUc1QjUgICAgICAg ICAgICAgICAgICAgID0gMTAzLAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9BMVI1RzVCNSAgICAg ICAgICAgICAgICAgICAgPSAxMDQsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX0E0UjRHNEI0ICAg ICAgICAgICAgICAgICAgICA9IDEwNSwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfWl9EMzIgICAg ICAgICAgICAgICAgICAgICAgID0gMTA2LAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9aX0QxNiAg ICAgICAgICAgICAgICAgICAgICAgPSAxMDcsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX1pfRDI0 UzggICAgICAgICAgICAgICAgICAgICA9IDEwOCwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfWl9E MTVTMSAgICAgICAgICAgICAgICAgICAgID0gMTA5LAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9M VU1JTkFOQ0U4ICAgICAgICAgICAgICAgICAgPSAxMTAsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1U X0xVTUlOQU5DRTRfQUxQSEE0ICAgICAgICAgICA9IDExMSwKKyAgIFNWR0EzRF9ERVZDQVBfRFhG TVRfTFVNSU5BTkNFMTYgICAgICAgICAgICAgICAgID0gMTEyLAorICAgU1ZHQTNEX0RFVkNBUF9E WEZNVF9MVU1JTkFOQ0U4X0FMUEhBOCAgICAgICAgICAgPSAxMTMsCisgICBTVkdBM0RfREVWQ0FQ X0RYRk1UX0RYVDEgICAgICAgICAgICAgICAgICAgICAgICA9IDExNCwKKyAgIFNWR0EzRF9ERVZD QVBfRFhGTVRfRFhUMiAgICAgICAgICAgICAgICAgICAgICAgID0gMTE1LAorICAgU1ZHQTNEX0RF VkNBUF9EWEZNVF9EWFQzICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTYsCisgICBTVkdBM0Rf REVWQ0FQX0RYRk1UX0RYVDQgICAgICAgICAgICAgICAgICAgICAgICA9IDExNywKKyAgIFNWR0Ez RF9ERVZDQVBfRFhGTVRfRFhUNSAgICAgICAgICAgICAgICAgICAgICAgID0gMTE4LAorICAgU1ZH QTNEX0RFVkNBUF9EWEZNVF9CVU1QVThWOCAgICAgICAgICAgICAgICAgICAgPSAxMTksCisgICBT VkdBM0RfREVWQ0FQX0RYRk1UX0JVTVBMNlY1VTUgICAgICAgICAgICAgICAgICA9IDEyMCwKKyAg IFNWR0EzRF9ERVZDQVBfRFhGTVRfQlVNUFg4TDhWOFU4ICAgICAgICAgICAgICAgID0gMTIxLAor ICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9CVU1QTDhWOFU4ICAgICAgICAgICAgICAgICAgPSAxMjIs CisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX0FSR0JfUzEwRTUgICAgICAgICAgICAgICAgICA9IDEy MywKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfQVJHQl9TMjNFOCAgICAgICAgICAgICAgICAgID0g MTI0LAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9BMlIxMEcxMEIxMCAgICAgICAgICAgICAgICAg PSAxMjUsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX1Y4VTggICAgICAgICAgICAgICAgICAgICAg ICA9IDEyNiwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfUThXOFY4VTggICAgICAgICAgICAgICAg ICAgID0gMTI3LAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9DeFY4VTggICAgICAgICAgICAgICAg ICAgICAgPSAxMjgsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX1g4TDhWOFU4ICAgICAgICAgICAg ICAgICAgICA9IDEyOSwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfQTJXMTBWMTBVMTAgICAgICAg ICAgICAgICAgID0gMTMwLAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9BTFBIQTggICAgICAgICAg ICAgICAgICAgICAgPSAxMzEsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX1JfUzEwRTUgICAgICAg ICAgICAgICAgICAgICA9IDEzMiwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfUl9TMjNFOCAgICAg ICAgICAgICAgICAgICAgID0gMTMzLAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9SR19TMTBFNSAg ICAgICAgICAgICAgICAgICAgPSAxMzQsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX1JHX1MyM0U4 ICAgICAgICAgICAgICAgICAgICA9IDEzNSwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfQlVGRkVS ICAgICAgICAgICAgICAgICAgICAgID0gMTM2LAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9aX0Qy NFg4ICAgICAgICAgICAgICAgICAgICAgPSAxMzcsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX1Yx NlUxNiAgICAgICAgICAgICAgICAgICAgICA9IDEzOCwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRf RzE2UjE2ICAgICAgICAgICAgICAgICAgICAgID0gMTM5LAorICAgU1ZHQTNEX0RFVkNBUF9EWEZN VF9BMTZCMTZHMTZSMTYgICAgICAgICAgICAgICAgPSAxNDAsCisgICBTVkdBM0RfREVWQ0FQX0RY Rk1UX1VZVlkgICAgICAgICAgICAgICAgICAgICAgICA9IDE0MSwKKyAgIFNWR0EzRF9ERVZDQVBf RFhGTVRfWVVZMiAgICAgICAgICAgICAgICAgICAgICAgID0gMTQyLAorICAgU1ZHQTNEX0RFVkNB UF9EWEZNVF9OVjEyICAgICAgICAgICAgICAgICAgICAgICAgPSAxNDMsCisgICBTVkdBM0RfREVW Q0FQX0RYRk1UX0FZVVYgICAgICAgICAgICAgICAgICAgICAgICA9IDE0NCwKKyAgIFNWR0EzRF9E RVZDQVBfRFhGTVRfUjMyRzMyQjMyQTMyX1RZUEVMRVNTICAgICAgID0gMTQ1LAorICAgU1ZHQTNE X0RFVkNBUF9EWEZNVF9SMzJHMzJCMzJBMzJfVUlOVCAgICAgICAgICAgPSAxNDYsCisgICBTVkdB M0RfREVWQ0FQX0RYRk1UX1IzMkczMkIzMkEzMl9TSU5UICAgICAgICAgICA9IDE0NywKKyAgIFNW R0EzRF9ERVZDQVBfRFhGTVRfUjMyRzMyQjMyX1RZUEVMRVNTICAgICAgICAgID0gMTQ4LAorICAg U1ZHQTNEX0RFVkNBUF9EWEZNVF9SMzJHMzJCMzJfRkxPQVQgICAgICAgICAgICAgPSAxNDksCisg ICBTVkdBM0RfREVWQ0FQX0RYRk1UX1IzMkczMkIzMl9VSU5UICAgICAgICAgICAgICA9IDE1MCwK KyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfUjMyRzMyQjMyX1NJTlQgICAgICAgICAgICAgID0gMTUx LAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9SMTZHMTZCMTZBMTZfVFlQRUxFU1MgICAgICAgPSAx NTIsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX1IxNkcxNkIxNkExNl9VSU5UICAgICAgICAgICA9 IDE1MywKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfUjE2RzE2QjE2QTE2X1NOT1JNICAgICAgICAg ID0gMTU0LAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9SMTZHMTZCMTZBMTZfU0lOVCAgICAgICAg ICAgPSAxNTUsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX1IzMkczMl9UWVBFTEVTUyAgICAgICAg ICAgICA9IDE1NiwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfUjMyRzMyX1VJTlQgICAgICAgICAg ICAgICAgID0gMTU3LAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9SMzJHMzJfU0lOVCAgICAgICAg ICAgICAgICAgPSAxNTgsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX1IzMkc4WDI0X1RZUEVMRVNT ICAgICAgICAgICA9IDE1OSwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfRDMyX0ZMT0FUX1M4WDI0 X1VJTlQgICAgICAgID0gMTYwLAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9SMzJfRkxPQVRfWDhY MjRfVFlQRUxFU1MgICAgPSAxNjEsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX1gzMl9UWVBFTEVT U19HOFgyNF9VSU5UICAgICA9IDE2MiwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfUjEwRzEwQjEw QTJfVFlQRUxFU1MgICAgICAgID0gMTYzLAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9SMTBHMTBC MTBBMl9VSU5UICAgICAgICAgICAgPSAxNjQsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX1IxMUcx MUIxMF9GTE9BVCAgICAgICAgICAgICA9IDE2NSwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfUjhH OEI4QThfVFlQRUxFU1MgICAgICAgICAgID0gMTY2LAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9S OEc4QjhBOF9VTk9STSAgICAgICAgICAgICAgPSAxNjcsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1U X1I4RzhCOEE4X1VOT1JNX1NSR0IgICAgICAgICA9IDE2OCwKKyAgIFNWR0EzRF9ERVZDQVBfRFhG TVRfUjhHOEI4QThfVUlOVCAgICAgICAgICAgICAgID0gMTY5LAorICAgU1ZHQTNEX0RFVkNBUF9E WEZNVF9SOEc4QjhBOF9TSU5UICAgICAgICAgICAgICAgPSAxNzAsCisgICBTVkdBM0RfREVWQ0FQ X0RYRk1UX1IxNkcxNl9UWVBFTEVTUyAgICAgICAgICAgICA9IDE3MSwKKyAgIFNWR0EzRF9ERVZD QVBfRFhGTVRfUjE2RzE2X1VJTlQgICAgICAgICAgICAgICAgID0gMTcyLAorICAgU1ZHQTNEX0RF VkNBUF9EWEZNVF9SMTZHMTZfU0lOVCAgICAgICAgICAgICAgICAgPSAxNzMsCisgICBTVkdBM0Rf REVWQ0FQX0RYRk1UX1IzMl9UWVBFTEVTUyAgICAgICAgICAgICAgICA9IDE3NCwKKyAgIFNWR0Ez RF9ERVZDQVBfRFhGTVRfRDMyX0ZMT0FUICAgICAgICAgICAgICAgICAgID0gMTc1LAorICAgU1ZH QTNEX0RFVkNBUF9EWEZNVF9SMzJfVUlOVCAgICAgICAgICAgICAgICAgICAgPSAxNzYsCisgICBT VkdBM0RfREVWQ0FQX0RYRk1UX1IzMl9TSU5UICAgICAgICAgICAgICAgICAgICA9IDE3NywKKyAg IFNWR0EzRF9ERVZDQVBfRFhGTVRfUjI0RzhfVFlQRUxFU1MgICAgICAgICAgICAgID0gMTc4LAor ICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9EMjRfVU5PUk1fUzhfVUlOVCAgICAgICAgICAgPSAxNzks CisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX1IyNF9VTk9STV9YOF9UWVBFTEVTUyAgICAgICA9IDE4 MCwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfWDI0X1RZUEVMRVNTX0c4X1VJTlQgICAgICAgID0g MTgxLAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9SOEc4X1RZUEVMRVNTICAgICAgICAgICAgICAg PSAxODIsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX1I4RzhfVU5PUk0gICAgICAgICAgICAgICAg ICA9IDE4MywKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfUjhHOF9VSU5UICAgICAgICAgICAgICAg ICAgID0gMTg0LAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9SOEc4X1NJTlQgICAgICAgICAgICAg ICAgICAgPSAxODUsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX1IxNl9UWVBFTEVTUyAgICAgICAg ICAgICAgICA9IDE4NiwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfUjE2X1VOT1JNICAgICAgICAg ICAgICAgICAgID0gMTg3LAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9SMTZfVUlOVCAgICAgICAg ICAgICAgICAgICAgPSAxODgsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX1IxNl9TTk9STSAgICAg ICAgICAgICAgICAgICA9IDE4OSwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfUjE2X1NJTlQgICAg ICAgICAgICAgICAgICAgID0gMTkwLAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9SOF9UWVBFTEVT UyAgICAgICAgICAgICAgICAgPSAxOTEsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX1I4X1VOT1JN ICAgICAgICAgICAgICAgICAgICA9IDE5MiwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfUjhfVUlO VCAgICAgICAgICAgICAgICAgICAgID0gMTkzLAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9SOF9T Tk9STSAgICAgICAgICAgICAgICAgICAgPSAxOTQsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX1I4 X1NJTlQgICAgICAgICAgICAgICAgICAgICA9IDE5NSwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRf UDggICAgICAgICAgICAgICAgICAgICAgICAgID0gMTk2LAorICAgU1ZHQTNEX0RFVkNBUF9EWEZN VF9SOUc5QjlFNV9TSEFSRURFWFAgICAgICAgICAgPSAxOTcsCisgICBTVkdBM0RfREVWQ0FQX0RY Rk1UX1I4RzhfQjhHOF9VTk9STSAgICAgICAgICAgICA9IDE5OCwKKyAgIFNWR0EzRF9ERVZDQVBf RFhGTVRfRzhSOF9HOEI4X1VOT1JNICAgICAgICAgICAgID0gMTk5LAorICAgU1ZHQTNEX0RFVkNB UF9EWEZNVF9CQzFfVFlQRUxFU1MgICAgICAgICAgICAgICAgPSAyMDAsCisgICBTVkdBM0RfREVW Q0FQX0RYRk1UX0JDMV9VTk9STV9TUkdCICAgICAgICAgICAgICA9IDIwMSwKKyAgIFNWR0EzRF9E RVZDQVBfRFhGTVRfQkMyX1RZUEVMRVNTICAgICAgICAgICAgICAgID0gMjAyLAorICAgU1ZHQTNE X0RFVkNBUF9EWEZNVF9CQzJfVU5PUk1fU1JHQiAgICAgICAgICAgICAgPSAyMDMsCisgICBTVkdB M0RfREVWQ0FQX0RYRk1UX0JDM19UWVBFTEVTUyAgICAgICAgICAgICAgICA9IDIwNCwKKyAgIFNW R0EzRF9ERVZDQVBfRFhGTVRfQkMzX1VOT1JNX1NSR0IgICAgICAgICAgICAgID0gMjA1LAorICAg U1ZHQTNEX0RFVkNBUF9EWEZNVF9CQzRfVFlQRUxFU1MgICAgICAgICAgICAgICAgPSAyMDYsCisg ICBTVkdBM0RfREVWQ0FQX0RYRk1UX0FUSTEgICAgICAgICAgICAgICAgICAgICAgICA9IDIwNywK KyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfQkM0X1NOT1JNICAgICAgICAgICAgICAgICAgID0gMjA4 LAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9CQzVfVFlQRUxFU1MgICAgICAgICAgICAgICAgPSAy MDksCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX0FUSTIgICAgICAgICAgICAgICAgICAgICAgICA9 IDIxMCwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfQkM1X1NOT1JNICAgICAgICAgICAgICAgICAg ID0gMjExLAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9SMTBHMTBCMTBfWFJfQklBU19BMl9VTk9S TSAgPSAyMTIsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX0I4RzhSOEE4X1RZUEVMRVNTICAgICAg ICAgICA9IDIxMywKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfQjhHOFI4QThfVU5PUk1fU1JHQiAg ICAgICAgID0gMjE0LAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9COEc4UjhYOF9UWVBFTEVTUyAg ICAgICAgICAgPSAyMTUsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX0I4RzhSOFg4X1VOT1JNX1NS R0IgICAgICAgICA9IDIxNiwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfWl9ERjE2ICAgICAgICAg ICAgICAgICAgICAgID0gMjE3LAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9aX0RGMjQgICAgICAg ICAgICAgICAgICAgICAgPSAyMTgsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX1pfRDI0UzhfSU5U ICAgICAgICAgICAgICAgICA9IDIxOSwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfWVYxMiAgICAg ICAgICAgICAgICAgICAgICAgID0gMjIwLAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9SMzJHMzJC MzJBMzJfRkxPQVQgICAgICAgICAgPSAyMjEsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX1IxNkcx NkIxNkExNl9GTE9BVCAgICAgICAgICA9IDIyMiwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfUjE2 RzE2QjE2QTE2X1VOT1JNICAgICAgICAgID0gMjIzLAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9S MzJHMzJfRkxPQVQgICAgICAgICAgICAgICAgPSAyMjQsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1U X1IxMEcxMEIxMEEyX1VOT1JNICAgICAgICAgICA9IDIyNSwKKyAgIFNWR0EzRF9ERVZDQVBfRFhG TVRfUjhHOEI4QThfU05PUk0gICAgICAgICAgICAgID0gMjI2LAorICAgU1ZHQTNEX0RFVkNBUF9E WEZNVF9SMTZHMTZfRkxPQVQgICAgICAgICAgICAgICAgPSAyMjcsCisgICBTVkdBM0RfREVWQ0FQ X0RYRk1UX1IxNkcxNl9VTk9STSAgICAgICAgICAgICAgICA9IDIyOCwKKyAgIFNWR0EzRF9ERVZD QVBfRFhGTVRfUjE2RzE2X1NOT1JNICAgICAgICAgICAgICAgID0gMjI5LAorICAgU1ZHQTNEX0RF VkNBUF9EWEZNVF9SMzJfRkxPQVQgICAgICAgICAgICAgICAgICAgPSAyMzAsCisgICBTVkdBM0Rf REVWQ0FQX0RYRk1UX1I4RzhfU05PUk0gICAgICAgICAgICAgICAgICA9IDIzMSwKKyAgIFNWR0Ez RF9ERVZDQVBfRFhGTVRfUjE2X0ZMT0FUICAgICAgICAgICAgICAgICAgID0gMjMyLAorICAgU1ZH QTNEX0RFVkNBUF9EWEZNVF9EMTZfVU5PUk0gICAgICAgICAgICAgICAgICAgPSAyMzMsCisgICBT VkdBM0RfREVWQ0FQX0RYRk1UX0E4X1VOT1JNICAgICAgICAgICAgICAgICAgICA9IDIzNCwKKyAg IFNWR0EzRF9ERVZDQVBfRFhGTVRfQkMxX1VOT1JNICAgICAgICAgICAgICAgICAgID0gMjM1LAor ICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9CQzJfVU5PUk0gICAgICAgICAgICAgICAgICAgPSAyMzYs CisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX0JDM19VTk9STSAgICAgICAgICAgICAgICAgICA9IDIz NywKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfQjVHNlI1X1VOT1JNICAgICAgICAgICAgICAgID0g MjM4LAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9CNUc1UjVBMV9VTk9STSAgICAgICAgICAgICAg PSAyMzksCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX0I4RzhSOEE4X1VOT1JNICAgICAgICAgICAg ICA9IDI0MCwKKyAgIFNWR0EzRF9ERVZDQVBfRFhGTVRfQjhHOFI4WDhfVU5PUk0gICAgICAgICAg ICAgID0gMjQxLAorICAgU1ZHQTNEX0RFVkNBUF9EWEZNVF9CQzRfVU5PUk0gICAgICAgICAgICAg ICAgICAgPSAyNDIsCisgICBTVkdBM0RfREVWQ0FQX0RYRk1UX0JDNV9VTk9STSAgICAgICAgICAg ICAgICAgICA9IDI0MywKKworICAgU1ZHQTNEX0RFVkNBUF9NQVggICAgICAgICAgICAgICAgICAg ICAgIC8qIFRoaXMgbXVzdCBiZSB0aGUgbGFzdCBpbmRleC4gKi8KK30gU1ZHQTNkRGV2Q2FwSW5k ZXg7CisKKy8qCisgKiBCaXQgZGVmaW5pdGlvbnMgZm9yIERYRk1UIGRldmNhcHMKKyAqCisgKgor ICogU1VQUE9SVEVEOiBDYW4gdGhlIGZvcm1hdCBiZSBkZWZpbmVkPworICogU0hBREVSX1NBTVBM RTogQ2FuIHRoZSBmb3JtYXQgYmUgc2FtcGxlZCBmcm9tIGEgc2hhZGVyPworICogQ09MT1JfUkVO REVSVEFSR0VUOiBDYW4gdGhlIGZvcm1hdCBiZSBhIGNvbG9yIHJlbmRlciB0YXJnZXQ/CisgKiBE RVBUSF9SRU5ERVJUQVJHRVQ6IENhbiB0aGUgZm9ybWF0IGJlIGEgZGVwdGggcmVuZGVyIHRhcmdl dD8KKyAqIEJMRU5EQUJMRTogSXMgdGhlIGZvcm1hdCBibGVuZGFibGU/CisgKiBNSVBTOiBEb2Vz IHRoZSBmb3JtYXQgc3VwcG9ydCBtaXAgbGV2ZWxzPworICogQVJSQVk6IERvZXMgdGhlIGZvcm1h dCBzdXBwb3J0IHRleHR1cmUgYXJyYXlzPworICogVk9MVU1FOiBEb2VzIHRoZSBmb3JtYXQgc3Vw cG9ydCBoYXZpbmcgdm9sdW1lPworICogTVVMVElTQU1QTEVfMjogRG9lcyB0aGUgZm9ybWF0IHN1 cHBvcnQgMnggbXVsdGlzYW1wbGU/CisgKiBNVUxUSVNBTVBMRV80OiBEb2VzIHRoZSBmb3JtYXQg c3VwcG9ydCA0eCBtdWx0aXNhbXBsZT8KKyAqIE1VTFRJU0FNUExFXzg6IERvZXMgdGhlIGZvcm1h dCBzdXBwb3J0IDh4IG11bHRpc2FtcGxlPworICovCisjZGVmaW5lIFNWR0EzRF9EWEZNVF9TVVBQ T1JURUQgICAgICAgICAgICAgICAgKDEgPDwgIDApCisjZGVmaW5lIFNWR0EzRF9EWEZNVF9TSEFE RVJfU0FNUExFICAgICAgICAgICAgKDEgPDwgIDEpCisjZGVmaW5lIFNWR0EzRF9EWEZNVF9DT0xP Ul9SRU5ERVJUQVJHRVQgICAgICAgKDEgPDwgIDIpCisjZGVmaW5lIFNWR0EzRF9EWEZNVF9ERVBU SF9SRU5ERVJUQVJHRVQgICAgICAgKDEgPDwgIDMpCisjZGVmaW5lIFNWR0EzRF9EWEZNVF9CTEVO REFCTEUgICAgICAgICAgICAgICAgKDEgPDwgIDQpCisjZGVmaW5lIFNWR0EzRF9EWEZNVF9NSVBT ICAgICAgICAgICAgICAgICAgICAgKDEgPDwgIDUpCisjZGVmaW5lIFNWR0EzRF9EWEZNVF9BUlJB WSAgICAgICAgICAgICAgICAgICAgKDEgPDwgIDYpCisjZGVmaW5lIFNWR0EzRF9EWEZNVF9WT0xV TUUgICAgICAgICAgICAgICAgICAgKDEgPDwgIDcpCisjZGVmaW5lIFNWR0EzRF9EWEZNVF9EWF9W RVJURVhfQlVGRkVSICAgICAgICAgKDEgPDwgIDgpCisjZGVmaW5lIFNWR0FEWF9EWEZNVF9NVUxU SVNBTVBMRV8yICAgICAgICAgICAgKDEgPDwgIDkpCisjZGVmaW5lIFNWR0FEWF9EWEZNVF9NVUxU SVNBTVBMRV80ICAgICAgICAgICAgKDEgPDwgMTApCisjZGVmaW5lIFNWR0FEWF9EWEZNVF9NVUxU SVNBTVBMRV84ICAgICAgICAgICAgKDEgPDwgMTEpCisjZGVmaW5lIFNWR0FEWF9EWEZNVF9NQVgg ICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTIpCisKKy8qCisgKiBDb252ZW5pZW5jZSBtYXNr IGZvciBhbnkgbXVsdGlzYW1wbGUgY2FwYWJpbGl0eS4KKyAqCisgKiBUaGUgbXVsdGlzYW1wbGUg Yml0cyBpbXBseSBib3RoIGxvYWQgYW5kIHJlbmRlciBjYXBhYmlsaXR5LgorICovCisjZGVmaW5l IFNWR0EzRF9EWEZNVF9NVUxUSVNBTVBMRSAoIFwKKyAgICAgICAgICAgU1ZHQURYX0RYRk1UX01V TFRJU0FNUExFXzIgfCBcCisgICAgICAgICAgIFNWR0FEWF9EWEZNVF9NVUxUSVNBTVBMRV80IHwg XAorICAgICAgICAgICBTVkdBRFhfRFhGTVRfTVVMVElTQU1QTEVfOCApCisKK3R5cGVkZWYgdW5p b24geworICAgQm9vbCAgIGI7CisgICB1aW50MzIgdTsKKyAgIGludDMyICBpOworICAgZmxvYXQg IGY7Cit9IFNWR0EzZERldkNhcFJlc3VsdDsKKworI2VuZGlmIC8qIF9TVkdBM0RfREVWQ0FQU19I XyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9kZXZpY2VfaW5jbHVkZS9z dmdhM2RfZHguaCBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvZGV2aWNlX2luY2x1ZGUvc3ZnYTNk X2R4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGM1YWU2MAotLS0gL2Rl di9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvZGV2aWNlX2luY2x1ZGUvc3ZnYTNk X2R4LmgKQEAgLTAsMCArMSwxNDg3IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IDIwMTItMjAxNSBWTXdh cmUsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJl YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KKyAqIG9idGFpbmluZyBh IGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uCisgKiBm aWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0Cisg KiByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRv IHVzZSwgY29weSwKKyAqIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1Ymxp Y2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcworICogb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVy bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBz bywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKKyAq IGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNv ZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU IFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorICogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFks IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAorICogTk9OSU5GUklOR0VNRU5U LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUworICog QkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVU SEVSIElOIEFOCisgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklT SU5HIEZST00sIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBP UiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQorICogU09GVFdBUkUuCisgKgorICoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov CisKKy8qCisgKiBzdmdhM2RfZHguaCAtLQorICoKKyAqICAgICAgIFNWR0EgM2QgaGFyZHdhcmUg ZGVmaW5pdGlvbnMgZm9yIERYMTAgc3VwcG9ydC4KKyAqLworCisjaWZuZGVmIF9TVkdBM0RfRFhf SF8KKyNkZWZpbmUgX1NWR0EzRF9EWF9IXworCisjZGVmaW5lIElOQ0xVREVfQUxMT1dfTU9EVUxF CisjZGVmaW5lIElOQ0xVREVfQUxMT1dfVVNFUkxFVkVMCisjZGVmaW5lIElOQ0xVREVfQUxMT1df Vk1DT1JFCisjaW5jbHVkZSAiaW5jbHVkZUNoZWNrLmgiCisKKyNpbmNsdWRlICJzdmdhM2RfbGlt aXRzLmgiCisKKyNkZWZpbmUgU1ZHQTNEX0lOUFVUX01JTiAgICAgICAgICAgICAgIDAKKyNkZWZp bmUgU1ZHQTNEX0lOUFVUX1BFUl9WRVJURVhfREFUQSAgIDAKKyNkZWZpbmUgU1ZHQTNEX0lOUFVU X1BFUl9JTlNUQU5DRV9EQVRBIDEKKyNkZWZpbmUgU1ZHQTNEX0lOUFVUX01BWCAgICAgICAgICAg ICAgIDIKK3R5cGVkZWYgdWludDMyIFNWR0EzZElucHV0Q2xhc3NpZmljYXRpb247CisKKyNkZWZp bmUgU1ZHQTNEX1JFU09VUkNFX1RZUEVfTUlOICAgICAgMQorI2RlZmluZSBTVkdBM0RfUkVTT1VS Q0VfQlVGRkVSICAgICAgICAxCisjZGVmaW5lIFNWR0EzRF9SRVNPVVJDRV9URVhUVVJFMUQgICAg IDIKKyNkZWZpbmUgU1ZHQTNEX1JFU09VUkNFX1RFWFRVUkUyRCAgICAgMworI2RlZmluZSBTVkdB M0RfUkVTT1VSQ0VfVEVYVFVSRTNEICAgICA0CisjZGVmaW5lIFNWR0EzRF9SRVNPVVJDRV9URVhU VVJFQ1VCRSAgIDUKKyNkZWZpbmUgU1ZHQTNEX1JFU09VUkNFX1RZUEVfRFgxMF9NQVggNgorI2Rl ZmluZSBTVkdBM0RfUkVTT1VSQ0VfQlVGRkVSRVggICAgICA2CisjZGVmaW5lIFNWR0EzRF9SRVNP VVJDRV9UWVBFX01BWCAgICAgIDcKK3R5cGVkZWYgdWludDMyIFNWR0EzZFJlc291cmNlVHlwZTsK KworI2RlZmluZSBTVkdBM0RfREVQVEhfV1JJVEVfTUFTS19aRVJPICAgMAorI2RlZmluZSBTVkdB M0RfREVQVEhfV1JJVEVfTUFTS19BTEwgICAgMQordHlwZWRlZiB1aW50OCBTVkdBM2REZXB0aFdy aXRlTWFzazsKKworI2RlZmluZSBTVkdBM0RfRklMVEVSX01JUF9MSU5FQVIgICgxIDw8IDApCisj ZGVmaW5lIFNWR0EzRF9GSUxURVJfTUFHX0xJTkVBUiAgKDEgPDwgMikKKyNkZWZpbmUgU1ZHQTNE X0ZJTFRFUl9NSU5fTElORUFSICAoMSA8PCA0KQorI2RlZmluZSBTVkdBM0RfRklMVEVSX0FOSVNP VFJPUElDICgxIDw8IDYpCisjZGVmaW5lIFNWR0EzRF9GSUxURVJfQ09NUEFSRSAgICAgKDEgPDwg NykKK3R5cGVkZWYgdWludDMyIFNWR0EzZEZpbHRlcjsKKworI2RlZmluZSBTVkdBM0RfQ1VMTF9J TlZBTElEIDAKKyNkZWZpbmUgU1ZHQTNEX0NVTExfTUlOICAgICAxCisjZGVmaW5lIFNWR0EzRF9D VUxMX05PTkUgICAgMQorI2RlZmluZSBTVkdBM0RfQ1VMTF9GUk9OVCAgIDIKKyNkZWZpbmUgU1ZH QTNEX0NVTExfQkFDSyAgICAzCisjZGVmaW5lIFNWR0EzRF9DVUxMX01BWCAgICAgNAordHlwZWRl ZiB1aW50OCBTVkdBM2RDdWxsTW9kZTsKKworI2RlZmluZSBTVkdBM0RfQ09NUEFSSVNPTl9JTlZB TElEICAgICAgICAgMAorI2RlZmluZSBTVkdBM0RfQ09NUEFSSVNPTl9NSU4gICAgICAgICAgICAg MQorI2RlZmluZSBTVkdBM0RfQ09NUEFSSVNPTl9ORVZFUiAgICAgICAgICAgMQorI2RlZmluZSBT VkdBM0RfQ09NUEFSSVNPTl9MRVNTICAgICAgICAgICAgMgorI2RlZmluZSBTVkdBM0RfQ09NUEFS SVNPTl9FUVVBTCAgICAgICAgICAgMworI2RlZmluZSBTVkdBM0RfQ09NUEFSSVNPTl9MRVNTX0VR VUFMICAgICAgNAorI2RlZmluZSBTVkdBM0RfQ09NUEFSSVNPTl9HUkVBVEVSICAgICAgICAgNQor I2RlZmluZSBTVkdBM0RfQ09NUEFSSVNPTl9OT1RfRVFVQUwgICAgICAgNgorI2RlZmluZSBTVkdB M0RfQ09NUEFSSVNPTl9HUkVBVEVSX0VRVUFMICAgNworI2RlZmluZSBTVkdBM0RfQ09NUEFSSVNP Tl9BTFdBWVMgICAgICAgICAgOAorI2RlZmluZSBTVkdBM0RfQ09NUEFSSVNPTl9NQVggICAgICAg ICAgICAgOQordHlwZWRlZiB1aW50OCBTVkdBM2RDb21wYXJpc29uRnVuYzsKKworI2RlZmluZSBT VkdBM0RfRFhfTUFYX1ZFUlRFWEJVRkZFUlMgMzIKKyNkZWZpbmUgU1ZHQTNEX0RYX01BWF9TT1RB UkdFVFMgNAorI2RlZmluZSBTVkdBM0RfRFhfTUFYX1NSVklFV1MgMTI4CisjZGVmaW5lIFNWR0Ez RF9EWF9NQVhfQ09OU1RCVUZGRVJTIDE2CisjZGVmaW5lIFNWR0EzRF9EWF9NQVhfU0FNUExFUlMg MTYKKworLyogSWQgbGltaXRzICovCitzdGF0aWMgY29uc3QgdWludDMyIFNWR0EzZEJsZW5kT2Jq ZWN0Q291bnRQZXJDb250ZXh0ID0gNDA5NjsKK3N0YXRpYyBjb25zdCB1aW50MzIgU1ZHQTNkRGVw dGhTdGVuY2lsT2JqZWN0Q291bnRQZXJDb250ZXh0ID0gNDA5NjsKKwordHlwZWRlZiB1aW50MzIg U1ZHQTNkU3VyZmFjZUlkOwordHlwZWRlZiB1aW50MzIgU1ZHQTNkU2hhZGVyUmVzb3VyY2VWaWV3 SWQ7Cit0eXBlZGVmIHVpbnQzMiBTVkdBM2RSZW5kZXJUYXJnZXRWaWV3SWQ7Cit0eXBlZGVmIHVp bnQzMiBTVkdBM2REZXB0aFN0ZW5jaWxWaWV3SWQ7CisKK3R5cGVkZWYgdWludDMyIFNWR0EzZFNo YWRlcklkOwordHlwZWRlZiB1aW50MzIgU1ZHQTNkRWxlbWVudExheW91dElkOwordHlwZWRlZiB1 aW50MzIgU1ZHQTNkU2FtcGxlcklkOwordHlwZWRlZiB1aW50MzIgU1ZHQTNkQmxlbmRTdGF0ZUlk OwordHlwZWRlZiB1aW50MzIgU1ZHQTNkRGVwdGhTdGVuY2lsU3RhdGVJZDsKK3R5cGVkZWYgdWlu dDMyIFNWR0EzZFJhc3Rlcml6ZXJTdGF0ZUlkOwordHlwZWRlZiB1aW50MzIgU1ZHQTNkUXVlcnlJ ZDsKK3R5cGVkZWYgdWludDMyIFNWR0EzZFN0cmVhbU91dHB1dElkOworCit0eXBlZGVmIHVuaW9u IHsKKyAgIHN0cnVjdCB7CisgICAgICBmbG9hdCByOworICAgICAgZmxvYXQgZzsKKyAgICAgIGZs b2F0IGI7CisgICAgICBmbG9hdCBhOworICAgfTsKKworICAgZmxvYXQgdmFsdWVbNF07Cit9IFNW R0EzZFJHQkFGbG9hdDsKKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgi CitzdHJ1Y3QgeworICAgdWludDMyIGNpZDsKKyAgIFNWR0FNb2JJZCBtb2JpZDsKK30KKyNpbmNs dWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0FPVGFibGVEWENvbnRleHRFbnRyeTsKKwordHlw ZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21kRFhE ZWZpbmVDb250ZXh0IHsKKyAgIHVpbnQzMiBjaWQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tf ZW5kLmgiCitTVkdBM2RDbWREWERlZmluZUNvbnRleHQ7ICAgLyogU1ZHQV8zRF9DTURfRFhfREVG SU5FX0NPTlRFWFQgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgi CitzdHJ1Y3QgU1ZHQTNkQ21kRFhEZXN0cm95Q29udGV4dCB7CisgICB1aW50MzIgY2lkOworfQor I2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRFhEZXN0cm95Q29udGV4dDsg ICAvKiBTVkdBXzNEX0NNRF9EWF9ERVNUUk9ZX0NPTlRFWFQgKi8KKworLyoKKyAqIEJpbmQgYSBE WCBjb250ZXh0LgorICoKKyAqIHZhbGlkQ29udGVudHMgc2hvdWxkIGJlIHNldCB0byAwIGZvciBu ZXcgY29udGV4dHMsCisgKiBhbmQgMSBpZiB0aGlzIGlzIGFuIG9sZCBjb250ZXh0IHdoaWNoIGlz IGdldHRpbmcgcGFnZWQKKyAqIGJhY2sgb24gdG8gdGhlIGRldmljZS4KKyAqCisgKiBGb3IgbmV3 IGNvbnRleHRzLCBpdCBpcyByZWNvbW1lbmRlZCB0aGF0IHRoZSBkcml2ZXIKKyAqIGlzc3VlIGNv bW1hbmRzIHRvIGluaXRpYWxpemUgYWxsIGludGVyZXN0aW5nIHN0YXRlCisgKiBwcmlvciB0byBy ZW5kZXJpbmcuCisgKi8KK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgor c3RydWN0IFNWR0EzZENtZERYQmluZENvbnRleHQgeworICAgdWludDMyIGNpZDsKKyAgIFNWR0FN b2JJZCBtb2JpZDsKKyAgIHVpbnQzMiB2YWxpZENvbnRlbnRzOworfQorI2luY2x1ZGUgInZtd2Fy ZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRFhCaW5kQ29udGV4dDsgICAvKiBTVkdBXzNEX0NNRF9E WF9CSU5EX0NPTlRFWFQgKi8KKworLyoKKyAqIFJlYWRiYWNrIGEgRFggY29udGV4dC4KKyAqIChS ZXF1ZXN0IHRoYXQgdGhlIGRldmljZSBmbHVzaCB0aGUgY29udGVudHMgYmFjayBpbnRvIGd1ZXN0 IG1lbW9yeS4pCisgKi8KK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgor c3RydWN0IFNWR0EzZENtZERYUmVhZGJhY2tDb250ZXh0IHsKKyAgIHVpbnQzMiBjaWQ7Cit9Cisj aW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREWFJlYWRiYWNrQ29udGV4dDsg ICAvKiBTVkdBXzNEX0NNRF9EWF9SRUFEQkFDS19DT05URVhUICovCisKKy8qCisgKiBJbnZhbGlk YXRlIGEgZ3Vlc3QtYmFja2VkIGNvbnRleHQuCisgKi8KK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdh cmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZENtZERYSW52YWxpZGF0ZUNvbnRleHQgewor ICAgdWludDMyIGNpZDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENt ZERYSW52YWxpZGF0ZUNvbnRleHQ7ICAgLyogU1ZHQV8zRF9DTURfRFhfSU5WQUxJREFURV9DT05U RVhUICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0 IFNWR0EzZFJlcGx5Rm9ybWF0RGF0YSB7CisgICB1aW50MzIgZm9ybWF0U3VwcG9ydDsKKyAgIHVp bnQzMiBtc2FhMnhRdWFsaXR5TGV2ZWxzOjU7CisgICB1aW50MzIgbXNhYTR4UXVhbGl0eUxldmVs czo1OworICAgdWludDMyIG1zYWE4eFF1YWxpdHlMZXZlbHM6NTsKKyAgIHVpbnQzMiBtc2FhMTZ4 UXVhbGl0eUxldmVsczo1OworICAgdWludDMyIG1zYWEzMnhRdWFsaXR5TGV2ZWxzOjU7CisgICB1 aW50MzIgcGFkOjc7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RSZXBs eUZvcm1hdERhdGE7CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgor c3RydWN0IFNWR0EzZENtZERYU2V0U2luZ2xlQ29uc3RhbnRCdWZmZXIgeworICAgdWludDMyIHNs b3Q7CisgICBTVkdBM2RTaGFkZXJUeXBlIHR5cGU7CisgICBTVkdBM2RTdXJmYWNlSWQgc2lkOwor ICAgdWludDMyIG9mZnNldEluQnl0ZXM7CisgICB1aW50MzIgc2l6ZUluQnl0ZXM7Cit9CisjaW5j bHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREWFNldFNpbmdsZUNvbnN0YW50QnVm ZmVyOworLyogU1ZHQV8zRF9DTURfRFhfU0VUX1NJTkdMRV9DT05TVEFOVF9CVUZGRVIgKi8KKwor dHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21k RFhTZXRTaGFkZXJSZXNvdXJjZXMgeworICAgdWludDMyIHN0YXJ0VmlldzsKKyAgIFNWR0EzZFNo YWRlclR5cGUgdHlwZTsKKworICAgLyoKKyAgICAqIEZvbGxvd2VkIGJ5IGEgdmFyaWFibGUgbnVt YmVyIG9mIFNWR0EzZFNoYWRlclJlc291cmNlVmlld0lkJ3MuCisgICAgKi8KK30KKyNpbmNsdWRl ICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZERYU2V0U2hhZGVyUmVzb3VyY2VzOyAvKiBT VkdBXzNEX0NNRF9EWF9TRVRfU0hBREVSX1JFU09VUkNFUyAqLworCit0eXBlZGVmCisjaW5jbHVk ZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWREWFNldFNoYWRlciB7Cisg ICBTVkdBM2RTaGFkZXJJZCBzaGFkZXJJZDsKKyAgIFNWR0EzZFNoYWRlclR5cGUgdHlwZTsKK30K KyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZERYU2V0U2hhZGVyOyAvKiBT VkdBXzNEX0NNRF9EWF9TRVRfU0hBREVSICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVf cGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZENtZERYU2V0U2FtcGxlcnMgeworICAgdWludDMy IHN0YXJ0U2FtcGxlcjsKKyAgIFNWR0EzZFNoYWRlclR5cGUgdHlwZTsKKworICAgLyoKKyAgICAq IEZvbGxvd2VkIGJ5IGEgdmFyaWFibGUgbnVtYmVyIG9mIFNWR0EzZFNhbXBsZXJJZCdzLgorICAg ICovCit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREWFNldFNhbXBs ZXJzOyAvKiBTVkdBXzNEX0NNRF9EWF9TRVRfU0FNUExFUlMgKi8KKwordHlwZWRlZgorI2luY2x1 ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21kRFhEcmF3IHsKKyAgIHVp bnQzMiB2ZXJ0ZXhDb3VudDsKKyAgIHVpbnQzMiBzdGFydFZlcnRleExvY2F0aW9uOworfQorI2lu Y2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRFhEcmF3OyAvKiBTVkdBXzNEX0NN RF9EWF9EUkFXICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgor c3RydWN0IFNWR0EzZENtZERYRHJhd0luZGV4ZWQgeworICAgdWludDMyIGluZGV4Q291bnQ7Cisg ICB1aW50MzIgc3RhcnRJbmRleExvY2F0aW9uOworICAgaW50MzIgIGJhc2VWZXJ0ZXhMb2NhdGlv bjsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZERYRHJhd0luZGV4 ZWQ7IC8qIFNWR0FfM0RfQ01EX0RYX0RSQVdfSU5ERVhFRCAqLworCit0eXBlZGVmCisjaW5jbHVk ZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWREWERyYXdJbnN0YW5jZWQg eworICAgdWludDMyIHZlcnRleENvdW50UGVySW5zdGFuY2U7CisgICB1aW50MzIgaW5zdGFuY2VD b3VudDsKKyAgIHVpbnQzMiBzdGFydFZlcnRleExvY2F0aW9uOworICAgdWludDMyIHN0YXJ0SW5z dGFuY2VMb2NhdGlvbjsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENt ZERYRHJhd0luc3RhbmNlZDsgLyogU1ZHQV8zRF9DTURfRFhfRFJBV19JTlNUQU5DRUQgKi8KKwor dHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21k RFhEcmF3SW5kZXhlZEluc3RhbmNlZCB7CisgICB1aW50MzIgaW5kZXhDb3VudFBlckluc3RhbmNl OworICAgdWludDMyIGluc3RhbmNlQ291bnQ7CisgICB1aW50MzIgc3RhcnRJbmRleExvY2F0aW9u OworICAgaW50MzIgIGJhc2VWZXJ0ZXhMb2NhdGlvbjsKKyAgIHVpbnQzMiBzdGFydEluc3RhbmNl TG9jYXRpb247Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREWERy YXdJbmRleGVkSW5zdGFuY2VkOyAvKiBTVkdBXzNEX0NNRF9EWF9EUkFXX0lOREVYRURfSU5TVEFO Q0VEICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0 IFNWR0EzZENtZERYRHJhd0F1dG8geworICAgdWludDMyIHBhZDA7Cit9CisjaW5jbHVkZSAidm13 YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREWERyYXdBdXRvOyAvKiBTVkdBXzNEX0NNRF9EWF9E UkFXX0FVVE8gKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitz dHJ1Y3QgU1ZHQTNkQ21kRFhTZXRJbnB1dExheW91dCB7CisgICBTVkdBM2RFbGVtZW50TGF5b3V0 SWQgZWxlbWVudExheW91dElkOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZH QTNkQ21kRFhTZXRJbnB1dExheW91dDsgLyogU1ZHQV8zRF9DTURfRFhfU0VUX0lOUFVUX0xBWU9V VCAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBT VkdBM2RWZXJ0ZXhCdWZmZXIgeworICAgU1ZHQTNkU3VyZmFjZUlkIHNpZDsKKyAgIHVpbnQzMiBz dHJpZGU7CisgICB1aW50MzIgb2Zmc2V0OworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5o IgorU1ZHQTNkVmVydGV4QnVmZmVyOworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tf YmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWREWFNldFZlcnRleEJ1ZmZlcnMgeworICAgdWludDMy IHN0YXJ0QnVmZmVyOworICAgLyogRm9sbG93ZWQgYnkgYSB2YXJpYWJsZSBudW1iZXIgb2YgU1ZH QTNkVmVydGV4QnVmZmVyJ3MuICovCit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitT VkdBM2RDbWREWFNldFZlcnRleEJ1ZmZlcnM7IC8qIFNWR0FfM0RfQ01EX0RYX1NFVF9WRVJURVhf QlVGRkVSUyAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0 cnVjdCBTVkdBM2RDbWREWFNldEluZGV4QnVmZmVyIHsKKyAgIFNWR0EzZFN1cmZhY2VJZCBzaWQ7 CisgICBTVkdBM2RTdXJmYWNlRm9ybWF0IGZvcm1hdDsKKyAgIHVpbnQzMiBvZmZzZXQ7Cit9Cisj aW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREWFNldEluZGV4QnVmZmVyOyAv KiBTVkdBXzNEX0NNRF9EWF9TRVRfSU5ERVhfQlVGRkVSICovCisKK3R5cGVkZWYKKyNpbmNsdWRl ICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZENtZERYU2V0VG9wb2xvZ3kgewor ICAgU1ZHQTNkUHJpbWl0aXZlVHlwZSB0b3BvbG9neTsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFj a19lbmQuaCIKK1NWR0EzZENtZERYU2V0VG9wb2xvZ3k7IC8qIFNWR0FfM0RfQ01EX0RYX1NFVF9U T1BPTE9HWSAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0 cnVjdCBTVkdBM2RDbWREWFNldFJlbmRlclRhcmdldHMgeworICAgU1ZHQTNkRGVwdGhTdGVuY2ls Vmlld0lkIGRlcHRoU3RlbmNpbFZpZXdJZDsKKyAgIC8qIEZvbGxvd2VkIGJ5IGEgdmFyaWFibGUg bnVtYmVyIG9mIFNWR0EzZFJlbmRlclRhcmdldFZpZXdJZCdzLiAqLworfQorI2luY2x1ZGUgInZt d2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRFhTZXRSZW5kZXJUYXJnZXRzOyAvKiBTVkdBXzNE X0NNRF9EWF9TRVRfUkVOREVSVEFSR0VUUyAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJl X3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWREWFNldEJsZW5kU3RhdGUgeworICAgU1ZH QTNkQmxlbmRTdGF0ZUlkIGJsZW5kSWQ7CisgICBmbG9hdCBibGVuZEZhY3Rvcls0XTsKKyAgIHVp bnQzMiBzYW1wbGVNYXNrOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNk Q21kRFhTZXRCbGVuZFN0YXRlOyAvKiBTVkdBXzNEX0NNRF9EWF9TRVRfQkxFTkRfU1RBVEUgKi8K KwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNk Q21kRFhTZXREZXB0aFN0ZW5jaWxTdGF0ZSB7CisgICBTVkdBM2REZXB0aFN0ZW5jaWxTdGF0ZUlk IGRlcHRoU3RlbmNpbElkOworICAgdWludDMyIHN0ZW5jaWxSZWY7Cit9CisjaW5jbHVkZSAidm13 YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREWFNldERlcHRoU3RlbmNpbFN0YXRlOyAvKiBTVkdB XzNEX0NNRF9EWF9TRVRfREVQVEhTVEVOQ0lMX1NUQVRFICovCisKK3R5cGVkZWYKKyNpbmNsdWRl ICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZENtZERYU2V0UmFzdGVyaXplclN0 YXRlIHsKKyAgIFNWR0EzZFJhc3Rlcml6ZXJTdGF0ZUlkIHJhc3Rlcml6ZXJJZDsKK30KKyNpbmNs dWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZERYU2V0UmFzdGVyaXplclN0YXRlOyAv KiBTVkdBXzNEX0NNRF9EWF9TRVRfUkFTVEVSSVpFUl9TVEFURSAqLworCisjZGVmaW5lIFNWR0Ez RF9EWFFVRVJZX0ZMQUdfUFJFRElDQVRFSElOVCAoMSA8PCAwKQordHlwZWRlZiB1aW50MzIgU1ZH QTNkRFhRdWVyeUZsYWdzOworCisvKgorICogVGhlIFNWR0FEWFF1ZXJ5RGV2aWNlU3RhdGUgYW5k IFNWR0FEWFF1ZXJ5RGV2aWNlQml0cyBhcmUgdXNlZCBieSB0aGUgZGV2aWNlCisgKiB0byB0cmFj ayBxdWVyeSBzdGF0ZSB0cmFuc2l0aW9ucywgYnV0IGFyZSBub3QgaW50ZW5kZWQgdG8gYmUgdXNl ZCBieSB0aGUKKyAqIGRyaXZlci4KKyAqLworI2RlZmluZSBTVkdBRFhfUURTVEFURV9JTlZBTElE ICAgKCh1aW50OCktMSkgLyogUXVlcnkgaGFzIG5vIHN0YXRlICovCisjZGVmaW5lIFNWR0FEWF9R RFNUQVRFX01JTiAgICAgICAwCisjZGVmaW5lIFNWR0FEWF9RRFNUQVRFX0lETEUgICAgICAwICAg LyogUXVlcnkgaGFzbid0IHN0YXJ0ZWQgeWV0ICovCisjZGVmaW5lIFNWR0FEWF9RRFNUQVRFX0FD VElWRSAgICAxICAgLyogUXVlcnkgaXMgYWN0aXZlbHkgZ2F0aGVyaW5nIGRhdGEgKi8KKyNkZWZp bmUgU1ZHQURYX1FEU1RBVEVfUEVORElORyAgIDIgICAvKiBRdWVyeSBpcyB3YWl0aW5nIGZvciBy ZXN1bHRzICovCisjZGVmaW5lIFNWR0FEWF9RRFNUQVRFX0ZJTklTSEVEICAzICAgLyogUXVlcnkg aGFzIGNvbXBsZXRlZCAqLworI2RlZmluZSBTVkdBRFhfUURTVEFURV9NQVggICAgICAgNAordHlw ZWRlZiB1aW50OCBTVkdBRFhRdWVyeURldmljZVN0YXRlOworCit0eXBlZGVmCisjaW5jbHVkZSAi dm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7CisgICBTVkdBM2RRdWVyeVR5cGVVaW50OCB0 eXBlOworICAgdWludDE2IHBhZDA7CisgICBTVkdBRFhRdWVyeURldmljZVN0YXRlIHN0YXRlOwor ICAgU1ZHQTNkRFhRdWVyeUZsYWdzIGZsYWdzOworICAgU1ZHQU1vYklkIG1vYmlkOworICAgdWlu dDMyIG9mZnNldDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0FDT1RhYmxl RFhRdWVyeUVudHJ5OworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIK K3N0cnVjdCBTVkdBM2RDbWREWERlZmluZVF1ZXJ5IHsKKyAgIFNWR0EzZFF1ZXJ5SWQgcXVlcnlJ ZDsKKyAgIFNWR0EzZFF1ZXJ5VHlwZSB0eXBlOworICAgU1ZHQTNkRFhRdWVyeUZsYWdzIGZsYWdz OworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRFhEZWZpbmVRdWVy eTsgLyogU1ZHQV8zRF9DTURfRFhfREVGSU5FX1FVRVJZICovCisKK3R5cGVkZWYKKyNpbmNsdWRl ICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZENtZERYRGVzdHJveVF1ZXJ5IHsK KyAgIFNWR0EzZFF1ZXJ5SWQgcXVlcnlJZDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQu aCIKK1NWR0EzZENtZERYRGVzdHJveVF1ZXJ5OyAvKiBTVkdBXzNEX0NNRF9EWF9ERVNUUk9ZX1FV RVJZICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0 IFNWR0EzZENtZERYQmluZFF1ZXJ5IHsKKyAgIFNWR0EzZFF1ZXJ5SWQgcXVlcnlJZDsKKyAgIFNW R0FNb2JJZCBtb2JpZDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENt ZERYQmluZFF1ZXJ5OyAvKiBTVkdBXzNEX0NNRF9EWF9CSU5EX1FVRVJZICovCisKK3R5cGVkZWYK KyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZENtZERYU2V0UXVl cnlPZmZzZXQgeworICAgU1ZHQTNkUXVlcnlJZCBxdWVyeUlkOworICAgdWludDMyIG1vYk9mZnNl dDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZERYU2V0UXVlcnlP ZmZzZXQ7IC8qIFNWR0FfM0RfQ01EX0RYX1NFVF9RVUVSWV9PRkZTRVQgKi8KKwordHlwZWRlZgor I2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21kRFhCZWdpblF1 ZXJ5IHsKKyAgIFNWR0EzZFF1ZXJ5SWQgcXVlcnlJZDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFj a19lbmQuaCIKK1NWR0EzZENtZERYQmVnaW5RdWVyeTsgLyogU1ZHQV8zRF9DTURfRFhfUVVFUllf QkVHSU4gKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1 Y3QgU1ZHQTNkQ21kRFhFbmRRdWVyeSB7CisgICBTVkdBM2RRdWVyeUlkIHF1ZXJ5SWQ7Cit9Cisj aW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREWEVuZFF1ZXJ5OyAvKiBTVkdB XzNEX0NNRF9EWF9RVUVSWV9FTkQgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNr X2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21kRFhSZWFkYmFja1F1ZXJ5IHsKKyAgIFNWR0EzZFF1 ZXJ5SWQgcXVlcnlJZDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENt ZERYUmVhZGJhY2tRdWVyeTsgLyogU1ZHQV8zRF9DTURfRFhfUkVBREJBQ0tfUVVFUlkgKi8KKwor dHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21k RFhNb3ZlUXVlcnkgeworICAgU1ZHQTNkUXVlcnlJZCBxdWVyeUlkOworICAgU1ZHQU1vYklkIG1v YmlkOworICAgdWludDMyIG1vYk9mZnNldDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQu aCIKK1NWR0EzZENtZERYTW92ZVF1ZXJ5OyAvKiBTVkdBXzNEX0NNRF9EWF9NT1ZFX1FVRVJZICov CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0Ez ZENtZERYQmluZEFsbFF1ZXJ5IHsKKyAgIHVpbnQzMiBjaWQ7CisgICBTVkdBTW9iSWQgbW9iaWQ7 Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREWEJpbmRBbGxRdWVy eTsgLyogU1ZHQV8zRF9DTURfRFhfQklORF9BTExfUVVFUlkgKi8KKwordHlwZWRlZgorI2luY2x1 ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21kRFhSZWFkYmFja0FsbFF1 ZXJ5IHsKKyAgIHVpbnQzMiBjaWQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitT VkdBM2RDbWREWFJlYWRiYWNrQWxsUXVlcnk7IC8qIFNWR0FfM0RfQ01EX0RYX1JFQURCQUNLX0FM TF9RVUVSWSAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0 cnVjdCBTVkdBM2RDbWREWFNldFByZWRpY2F0aW9uIHsKKyAgIFNWR0EzZFF1ZXJ5SWQgcXVlcnlJ ZDsKKyAgIHVpbnQzMiBwcmVkaWNhdGVWYWx1ZTsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19l bmQuaCIKK1NWR0EzZENtZERYU2V0UHJlZGljYXRpb247IC8qIFNWR0FfM0RfQ01EX0RYX1NFVF9Q UkVESUNBVElPTiAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIK K3N0cnVjdCBNS1MzZERYU09TdGF0ZSB7CisgICB1aW50MzIgb2Zmc2V0OyAgICAgICAvKiBTdGFy dGluZyBvZmZzZXQgKi8KKyAgIHVpbnQzMiBpbnRPZmZzZXQ7ICAgIC8qIEludGVybmFsIG9mZnNl dCAqLworICAgdWludDMyIHZlcnRleENvdW50OyAgLyogdmVydGljZXMgd3JpdHRlbiAqLworICAg dWludDMyIHNpemVJbkJ5dGVzOyAgLyogbWF4IGJ5dGVzIHRvIHdyaXRlICovCit9CisjaW5jbHVk ZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2REWFNPU3RhdGU7CisKKy8qIFNldCB0aGUgb2Zm c2V0IGZpZWxkIHRvIHRoaXMgdmFsdWUgdG8gYXBwZW5kIFNPIHZhbHVlcyB0byB0aGUgYnVmZmVy ICovCisjZGVmaW5lIFNWR0EzRF9EWF9TT19PRkZTRVRfQVBQRU5EICgodWludDMyKSB+MHUpCisK K3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZFNv VGFyZ2V0IHsKKyAgIFNWR0EzZFN1cmZhY2VJZCBzaWQ7CisgICB1aW50MzIgb2Zmc2V0OworICAg dWludDMyIHNpemVJbkJ5dGVzOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZH QTNkU29UYXJnZXQ7CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgor c3RydWN0IFNWR0EzZENtZERYU2V0U09UYXJnZXRzIHsKKyAgIHVpbnQzMiBwYWQwOworICAgLyog Rm9sbG93ZWQgYnkgYSB2YXJpYWJsZSBudW1iZXIgb2YgU1ZHQTNkU09UYXJnZXQncy4gKi8KK30K KyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZERYU2V0U09UYXJnZXRzOyAv KiBTVkdBXzNEX0NNRF9EWF9TRVRfU09UQVJHRVRTICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2 bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZFZpZXdwb3J0Cit7CisgICBmbG9hdCB4 OworICAgZmxvYXQgeTsKKyAgIGZsb2F0IHdpZHRoOworICAgZmxvYXQgaGVpZ2h0OworICAgZmxv YXQgbWluRGVwdGg7CisgICBmbG9hdCBtYXhEZXB0aDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFj a19lbmQuaCIKK1NWR0EzZFZpZXdwb3J0OworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3Bh Y2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWREWFNldFZpZXdwb3J0cyB7CisgICB1aW50MzIg cGFkMDsKKyAgIC8qIEZvbGxvd2VkIGJ5IGEgdmFyaWFibGUgbnVtYmVyIG9mIFNWR0EzZFZpZXdw b3J0J3MuICovCit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREWFNl dFZpZXdwb3J0czsgLyogU1ZHQV8zRF9DTURfRFhfU0VUX1ZJRVdQT1JUUyAqLworCisjZGVmaW5l IFNWR0EzRF9EWF9NQVhfVklFV1BPUlRTICAxNgorCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJl X3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWREWFNldFNjaXNzb3JSZWN0cyB7CisgICB1 aW50MzIgcGFkMDsKKyAgIC8qIEZvbGxvd2VkIGJ5IGEgdmFyaWFibGUgbnVtYmVyIG9mIFNWR0FT aWduZWRSZWN0J3MuICovCit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RD bWREWFNldFNjaXNzb3JSZWN0czsgLyogU1ZHQV8zRF9DTURfRFhfU0VUX1NDSVNTT1JSRUNUUyAq LworCisjZGVmaW5lIFNWR0EzRF9EWF9NQVhfU0NJU1NPUlJFQ1RTICAxNgorCit0eXBlZGVmCisj aW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWREWENsZWFyUmVu ZGVyVGFyZ2V0VmlldyB7CisgICBTVkdBM2RSZW5kZXJUYXJnZXRWaWV3SWQgcmVuZGVyVGFyZ2V0 Vmlld0lkOworICAgU1ZHQTNkUkdCQUZsb2F0IHJnYmE7Cit9CisjaW5jbHVkZSAidm13YXJlX3Bh Y2tfZW5kLmgiCitTVkdBM2RDbWREWENsZWFyUmVuZGVyVGFyZ2V0VmlldzsgLyogU1ZHQV8zRF9D TURfRFhfQ0xFQVJfUkVOREVSVEFSR0VUX1ZJRVcgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZt d2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21kRFhDbGVhckRlcHRoU3RlbmNpbFZp ZXcgeworICAgdWludDE2IGZsYWdzOworICAgdWludDE2IHN0ZW5jaWw7CisgICBTVkdBM2REZXB0 aFN0ZW5jaWxWaWV3SWQgZGVwdGhTdGVuY2lsVmlld0lkOworICAgZmxvYXQgZGVwdGg7Cit9Cisj aW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREWENsZWFyRGVwdGhTdGVuY2ls VmlldzsgLyogU1ZHQV8zRF9DTURfRFhfQ0xFQVJfREVQVEhTVEVOQ0lMX1ZJRVcgKi8KKwordHlw ZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21kRFhQ cmVkQ29weVJlZ2lvbiB7CisgICBTVkdBM2RTdXJmYWNlSWQgZHN0U2lkOworICAgdWludDMyIGRz dFN1YlJlc291cmNlOworICAgU1ZHQTNkU3VyZmFjZUlkIHNyY1NpZDsKKyAgIHVpbnQzMiBzcmNT dWJSZXNvdXJjZTsKKyAgIFNWR0EzZENvcHlCb3ggYm94OworfQorI2luY2x1ZGUgInZtd2FyZV9w YWNrX2VuZC5oIgorU1ZHQTNkQ21kRFhQcmVkQ29weVJlZ2lvbjsKKy8qIFNWR0FfM0RfQ01EX0RY X1BSRURfQ09QWV9SRUdJT04gKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2Jl Z2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21kRFhQcmVkQ29weSB7CisgICBTVkdBM2RTdXJmYWNlSWQg ZHN0U2lkOworICAgU1ZHQTNkU3VyZmFjZUlkIHNyY1NpZDsKK30KKyNpbmNsdWRlICJ2bXdhcmVf cGFja19lbmQuaCIKK1NWR0EzZENtZERYUHJlZENvcHk7IC8qIFNWR0FfM0RfQ01EX0RYX1BSRURf Q09QWSAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVj dCBTVkdBM2RDbWREWEJ1ZmZlckNvcHkgeworICAgU1ZHQTNkU3VyZmFjZUlkIGRlc3Q7CisgICBT VkdBM2RTdXJmYWNlSWQgc3JjOworICAgdWludDMyIGRlc3RYOworICAgdWludDMyIHNyY1g7Cisg ICB1aW50MzIgd2lkdGg7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RD bWREWEJ1ZmZlckNvcHk7CisvKiBTVkdBXzNEX0NNRF9EWF9CVUZGRVJfQ09QWSAqLworCit0eXBl ZGVmIHVpbnQzMiBTVkdBM2REWFN0cmV0Y2hCbHRNb2RlOworI2RlZmluZSBTVkdBRFhfU1RSRVRD SEJMVF9MSU5FQVIgICAgICAgICAoMSA8PCAwKQorI2RlZmluZSBTVkdBRFhfU1RSRVRDSEJMVF9G T1JDRV9TUkNfU1JHQiAoMSA8PCAxKQorCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tf YmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWREWFN0cmV0Y2hCbHQgeworICAgU1ZHQTNkU3VyZmFj ZUlkIHNyY1NpZDsKKyAgIHVpbnQzMiBzcmNTdWJSZXNvdXJjZTsKKyAgIFNWR0EzZFN1cmZhY2VJ ZCBkc3RTaWQ7CisgICB1aW50MzIgZGVzdFN1YlJlc291cmNlOworICAgU1ZHQTNkQm94IGJveFNy YzsKKyAgIFNWR0EzZEJveCBib3hEZXN0OworICAgU1ZHQTNkRFhTdHJldGNoQmx0TW9kZSBtb2Rl OworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRFhTdHJldGNoQmx0 OyAvKiBTVkdBXzNEX0NNRF9EWF9TVFJFVENIQkxUICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2 bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZENtZERYR2VuTWlwcyB7CisgICBTVkdB M2RTaGFkZXJSZXNvdXJjZVZpZXdJZCBzaGFkZXJSZXNvdXJjZVZpZXdJZDsKK30KKyNpbmNsdWRl ICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZERYR2VuTWlwczsgLyogU1ZHQV8zRF9DTURf RFhfR0VOTUlQUyAqLworCisvKgorICogRGVmaW5lcyBhIHJlc291cmNlL0RYIHN1cmZhY2UuICBS ZXNvdXJjZXMgc2hhcmUgdGhlIHN1cmZhY2VJZCBuYW1lc3BhY2UuCisgKgorICovCit0eXBlZGVm CisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWREZWZpbmVH QlN1cmZhY2VfdjIgeworICAgdWludDMyIHNpZDsKKyAgIFNWR0EzZFN1cmZhY2VGbGFncyBzdXJm YWNlRmxhZ3M7CisgICBTVkdBM2RTdXJmYWNlRm9ybWF0IGZvcm1hdDsKKyAgIHVpbnQzMiBudW1N aXBMZXZlbHM7CisgICB1aW50MzIgbXVsdGlzYW1wbGVDb3VudDsKKyAgIFNWR0EzZFRleHR1cmVG aWx0ZXIgYXV0b2dlbkZpbHRlcjsKKyAgIFNWR0EzZFNpemUgc2l6ZTsKKyAgIHVpbnQzMiBhcnJh eVNpemU7CisgICB1aW50MzIgcGFkOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgor U1ZHQTNkQ21kRGVmaW5lR0JTdXJmYWNlX3YyOyAgIC8qIFNWR0FfM0RfQ01EX0RFRklORV9HQl9T VVJGQUNFX1YyICovCisKKy8qCisgKiBVcGRhdGUgYSBzdWItcmVzb3VyY2UgaW4gYSBndWVzdC1i YWNrZWQgcmVzb3VyY2UuCisgKiAoSW5mb3JtIHRoZSBkZXZpY2UgdGhhdCB0aGUgZ3Vlc3QtY29u dGVudHMgaGF2ZSBiZWVuIHVwZGF0ZWQuKQorICovCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJl X3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWREWFVwZGF0ZVN1YlJlc291cmNlIHsKKyAg IFNWR0EzZFN1cmZhY2VJZCBzaWQ7CisgICB1aW50MzIgc3ViUmVzb3VyY2U7CisgICBTVkdBM2RC b3ggYm94OworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRFhVcGRh dGVTdWJSZXNvdXJjZTsgICAvKiBTVkdBXzNEX0NNRF9EWF9VUERBVEVfU1VCUkVTT1VSQ0UgKi8K KworLyoKKyAqIFJlYWRiYWNrIGEgc3VicmVzb3VyY2UgaW4gYSBndWVzdC1iYWNrZWQgcmVzb3Vy Y2UuCisgKiAoUmVxdWVzdCB0aGUgZGV2aWNlIHRvIGZsdXNoIHRoZSBkaXJ0eSBjb250ZW50cyBp bnRvIHRoZSBndWVzdC4pCisgKi8KK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdp bi5oIgorc3RydWN0IFNWR0EzZENtZERYUmVhZGJhY2tTdWJSZXNvdXJjZSB7CisgICBTVkdBM2RT dXJmYWNlSWQgc2lkOworICAgdWludDMyIHN1YlJlc291cmNlOworfQorI2luY2x1ZGUgInZtd2Fy ZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRFhSZWFkYmFja1N1YlJlc291cmNlOyAgIC8qIFNWR0Ff M0RfQ01EX0RYX1JFQURCQUNLX1NVQlJFU09VUkNFICovCisKKy8qCisgKiBJbnZhbGlkYXRlIGFu IGltYWdlIGluIGEgZ3Vlc3QtYmFja2VkIHN1cmZhY2UuCisgKiAoTm90aWZ5IHRoZSBkZXZpY2Ug dGhhdCB0aGUgY29udGVudHMgY2FuIGJlIGxvc3QuKQorICovCit0eXBlZGVmCisjaW5jbHVkZSAi dm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWREWEludmFsaWRhdGVTdWJSZXNv dXJjZSB7CisgICBTVkdBM2RTdXJmYWNlSWQgc2lkOworICAgdWludDMyIHN1YlJlc291cmNlOwor fQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRFhJbnZhbGlkYXRlU3Vi UmVzb3VyY2U7ICAgLyogU1ZHQV8zRF9DTURfRFhfSU5WQUxJREFURV9TVUJSRVNPVVJDRSAqLwor CisKKy8qCisgKiBSYXcgYnl0ZSB3aXNlIHRyYW5zZmVyIGZyb20gYSBidWZmZXIgc3VyZmFjZSBp bnRvIGFub3RoZXIgc3VyZmFjZQorICogb2YgdGhlIHJlcXVlc3RlZCBib3guCisgKi8KK3R5cGVk ZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZENtZERYVHJh bnNmZXJGcm9tQnVmZmVyIHsKKyAgIFNWR0EzZFN1cmZhY2VJZCBzcmNTaWQ7CisgICB1aW50MzIg c3JjT2Zmc2V0OworICAgdWludDMyIHNyY1BpdGNoOworICAgdWludDMyIHNyY1NsaWNlUGl0Y2g7 CisgICBTVkdBM2RTdXJmYWNlSWQgZGVzdFNpZDsKKyAgIHVpbnQzMiBkZXN0U3ViUmVzb3VyY2U7 CisgICBTVkdBM2RCb3ggZGVzdEJveDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIK K1NWR0EzZENtZERYVHJhbnNmZXJGcm9tQnVmZmVyOyAgIC8qIFNWR0FfM0RfQ01EX0RYX1RSQU5T RkVSX0ZST01fQlVGRkVSICovCisKKworLyoKKyAqIFJhdyBieXRlIHdpc2UgdHJhbnNmZXIgZnJv bSBhIGJ1ZmZlciBzdXJmYWNlIGludG8gYW5vdGhlciBzdXJmYWNlCisgKiBvZiB0aGUgcmVxdWVz dGVkIGJveC4gIFN1cHBvcnRlZCBpZiBTVkdBM0RfREVWQ0FQX0RYQ09OVEVYVCBpcyBzZXQuCisg KiBUaGUgY29udGV4dCBpcyBpbXBsaWVkIGZyb20gdGhlIGNvbW1hbmQgYnVmZmVyIGhlYWRlci4K KyAqLwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZH QTNkQ21kRFhQcmVkVHJhbnNmZXJGcm9tQnVmZmVyIHsKKyAgIFNWR0EzZFN1cmZhY2VJZCBzcmNT aWQ7CisgICB1aW50MzIgc3JjT2Zmc2V0OworICAgdWludDMyIHNyY1BpdGNoOworICAgdWludDMy IHNyY1NsaWNlUGl0Y2g7CisgICBTVkdBM2RTdXJmYWNlSWQgZGVzdFNpZDsKKyAgIHVpbnQzMiBk ZXN0U3ViUmVzb3VyY2U7CisgICBTVkdBM2RCb3ggZGVzdEJveDsKK30KKyNpbmNsdWRlICJ2bXdh cmVfcGFja19lbmQuaCIKK1NWR0EzZENtZERYUHJlZFRyYW5zZmVyRnJvbUJ1ZmZlcjsKKy8qIFNW R0FfM0RfQ01EX0RYX1BSRURfVFJBTlNGRVJfRlJPTV9CVUZGRVIgKi8KKworCit0eXBlZGVmCisj aW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWREWFN1cmZhY2VD b3B5QW5kUmVhZGJhY2sgeworICAgU1ZHQTNkU3VyZmFjZUlkIHNyY1NpZDsKKyAgIFNWR0EzZFN1 cmZhY2VJZCBkZXN0U2lkOworICAgU1ZHQTNkQ29weUJveCBib3g7Cit9CisjaW5jbHVkZSAidm13 YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREWFN1cmZhY2VDb3B5QW5kUmVhZGJhY2s7CisvKiBT VkdBXzNEX0NNRF9EWF9TVVJGQUNFX0NPUFlfQU5EX1JFQURCQUNLICovCisKKwordHlwZWRlZgor I2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAgdW5pb24geworICAg ICAgc3RydWN0IHsKKyAgICAgICAgIHVpbnQzMiBmaXJzdEVsZW1lbnQ7CisgICAgICAgICB1aW50 MzIgbnVtRWxlbWVudHM7CisgICAgICAgICB1aW50MzIgcGFkMDsKKyAgICAgICAgIHVpbnQzMiBw YWQxOworICAgICAgfSBidWZmZXI7CisgICAgICBzdHJ1Y3QgeworICAgICAgICAgdWludDMyIG1v c3REZXRhaWxlZE1pcDsKKyAgICAgICAgIHVpbnQzMiBmaXJzdEFycmF5U2xpY2U7CisgICAgICAg ICB1aW50MzIgbWlwTGV2ZWxzOworICAgICAgICAgdWludDMyIGFycmF5U2l6ZTsKKyAgICAgIH0g dGV4OworICAgICAgc3RydWN0IHsKKyAgICAgICAgIHVpbnQzMiBmaXJzdEVsZW1lbnQ7CisgICAg ICAgICB1aW50MzIgbnVtRWxlbWVudHM7CisgICAgICAgICB1aW50MzIgZmxhZ3M7CisgICAgICAg ICB1aW50MzIgcGFkMDsKKyAgICAgIH0gYnVmZmVyZXg7CisgICB9OworfQorI2luY2x1ZGUgInZt d2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkU2hhZGVyUmVzb3VyY2VWaWV3RGVzYzsKKwordHlwZWRl ZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAgU1ZHQTNkU3Vy ZmFjZUlkIHNpZDsKKyAgIFNWR0EzZFN1cmZhY2VGb3JtYXQgZm9ybWF0OworICAgU1ZHQTNkUmVz b3VyY2VUeXBlIHJlc291cmNlRGltZW5zaW9uOworICAgU1ZHQTNkU2hhZGVyUmVzb3VyY2VWaWV3 RGVzYyBkZXNjOworICAgdWludDMyIHBhZDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQu aCIKK1NWR0FDT1RhYmxlRFhTUlZpZXdFbnRyeTsKKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2Fy ZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21kRFhEZWZpbmVTaGFkZXJSZXNvdXJjZVZp ZXcgeworICAgU1ZHQTNkU2hhZGVyUmVzb3VyY2VWaWV3SWQgc2hhZGVyUmVzb3VyY2VWaWV3SWQ7 CisKKyAgIFNWR0EzZFN1cmZhY2VJZCBzaWQ7CisgICBTVkdBM2RTdXJmYWNlRm9ybWF0IGZvcm1h dDsKKyAgIFNWR0EzZFJlc291cmNlVHlwZSByZXNvdXJjZURpbWVuc2lvbjsKKworICAgU1ZHQTNk U2hhZGVyUmVzb3VyY2VWaWV3RGVzYyBkZXNjOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2Vu ZC5oIgorU1ZHQTNkQ21kRFhEZWZpbmVTaGFkZXJSZXNvdXJjZVZpZXc7CisvKiBTVkdBXzNEX0NN RF9EWF9ERUZJTkVfU0hBREVSUkVTT1VSQ0VfVklFVyAqLworCit0eXBlZGVmCisjaW5jbHVkZSAi dm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWREWERlc3Ryb3lTaGFkZXJSZXNv dXJjZVZpZXcgeworICAgU1ZHQTNkU2hhZGVyUmVzb3VyY2VWaWV3SWQgc2hhZGVyUmVzb3VyY2VW aWV3SWQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREWERlc3Ry b3lTaGFkZXJSZXNvdXJjZVZpZXc7CisvKiBTVkdBXzNEX0NNRF9EWF9ERVNUUk9ZX1NIQURFUlJF U09VUkNFX1ZJRVcgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgi CitzdHJ1Y3QgU1ZHQTNkUmVuZGVyVGFyZ2V0Vmlld0Rlc2MgeworICAgdW5pb24geworICAgICAg c3RydWN0IHsKKyAgICAgICAgIHVpbnQzMiBmaXJzdEVsZW1lbnQ7CisgICAgICAgICB1aW50MzIg bnVtRWxlbWVudHM7CisgICAgICB9IGJ1ZmZlcjsKKyAgICAgIHN0cnVjdCB7CisgICAgICAgICB1 aW50MzIgbWlwU2xpY2U7CisgICAgICAgICB1aW50MzIgZmlyc3RBcnJheVNsaWNlOworICAgICAg ICAgdWludDMyIGFycmF5U2l6ZTsKKyAgICAgIH0gdGV4OyAgICAgICAgICAgICAgICAgICAgLyog MWQsIDJkLCBjdWJlICovCisgICAgICBzdHJ1Y3QgeworICAgICAgICAgdWludDMyIG1pcFNsaWNl OworICAgICAgICAgdWludDMyIGZpcnN0VzsKKyAgICAgICAgIHVpbnQzMiB3U2l6ZTsKKyAgICAg IH0gdGV4M0Q7CisgICB9OworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNk UmVuZGVyVGFyZ2V0Vmlld0Rlc2M7CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19i ZWdpbi5oIgorc3RydWN0IHsKKyAgIFNWR0EzZFN1cmZhY2VJZCBzaWQ7CisgICBTVkdBM2RTdXJm YWNlRm9ybWF0IGZvcm1hdDsKKyAgIFNWR0EzZFJlc291cmNlVHlwZSByZXNvdXJjZURpbWVuc2lv bjsKKyAgIFNWR0EzZFJlbmRlclRhcmdldFZpZXdEZXNjIGRlc2M7CisgICB1aW50MzIgcGFkWzJd OworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQUNPVGFibGVEWFJUVmlld0Vu dHJ5OworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBT VkdBM2RDbWREWERlZmluZVJlbmRlclRhcmdldFZpZXcgeworICAgU1ZHQTNkUmVuZGVyVGFyZ2V0 Vmlld0lkIHJlbmRlclRhcmdldFZpZXdJZDsKKworICAgU1ZHQTNkU3VyZmFjZUlkIHNpZDsKKyAg IFNWR0EzZFN1cmZhY2VGb3JtYXQgZm9ybWF0OworICAgU1ZHQTNkUmVzb3VyY2VUeXBlIHJlc291 cmNlRGltZW5zaW9uOworCisgICBTVkdBM2RSZW5kZXJUYXJnZXRWaWV3RGVzYyBkZXNjOworfQor I2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRFhEZWZpbmVSZW5kZXJUYXJn ZXRWaWV3OworLyogU1ZHQV8zRF9DTURfRFhfREVGSU5FX1JFTkRFUlRBUkdFVF9WSUVXICovCisK K3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZENt ZERYRGVzdHJveVJlbmRlclRhcmdldFZpZXcgeworICAgU1ZHQTNkUmVuZGVyVGFyZ2V0Vmlld0lk IHJlbmRlclRhcmdldFZpZXdJZDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NW R0EzZENtZERYRGVzdHJveVJlbmRlclRhcmdldFZpZXc7CisvKiBTVkdBXzNEX0NNRF9EWF9ERVNU Uk9ZX1JFTkRFUlRBUkdFVF9WSUVXICovCisKKy8qCisgKi8KKyNkZWZpbmUgU1ZHQTNEX0RYRFNW SUVXX0NSRUFURV9SRUFEX09OTFlfREVQVEggICAweDAxCisjZGVmaW5lIFNWR0EzRF9EWERTVklF V19DUkVBVEVfUkVBRF9PTkxZX1NURU5DSUwgMHgwMgorI2RlZmluZSBTVkdBM0RfRFhEU1ZJRVdf Q1JFQVRFX0ZMQUdfTUFTSyAgICAgICAgIDB4MDMKK3R5cGVkZWYgdWludDggU1ZHQTNEQ3JlYXRl RFNWaWV3RmxhZ3M7CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgor c3RydWN0IHsKKyAgIFNWR0EzZFN1cmZhY2VJZCBzaWQ7CisgICBTVkdBM2RTdXJmYWNlRm9ybWF0 IGZvcm1hdDsKKyAgIFNWR0EzZFJlc291cmNlVHlwZSByZXNvdXJjZURpbWVuc2lvbjsKKyAgIHVp bnQzMiBtaXBTbGljZTsKKyAgIHVpbnQzMiBmaXJzdEFycmF5U2xpY2U7CisgICB1aW50MzIgYXJy YXlTaXplOworICAgU1ZHQTNEQ3JlYXRlRFNWaWV3RmxhZ3MgZmxhZ3M7CisgICB1aW50OCBwYWQw OworICAgdWludDE2IHBhZDE7CisgICB1aW50MzIgcGFkMjsKK30KKyNpbmNsdWRlICJ2bXdhcmVf cGFja19lbmQuaCIKK1NWR0FDT1RhYmxlRFhEU1ZpZXdFbnRyeTsKKwordHlwZWRlZgorI2luY2x1 ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21kRFhEZWZpbmVEZXB0aFN0 ZW5jaWxWaWV3IHsKKyAgIFNWR0EzZERlcHRoU3RlbmNpbFZpZXdJZCBkZXB0aFN0ZW5jaWxWaWV3 SWQ7CisKKyAgIFNWR0EzZFN1cmZhY2VJZCBzaWQ7CisgICBTVkdBM2RTdXJmYWNlRm9ybWF0IGZv cm1hdDsKKyAgIFNWR0EzZFJlc291cmNlVHlwZSByZXNvdXJjZURpbWVuc2lvbjsKKyAgIHVpbnQz MiBtaXBTbGljZTsKKyAgIHVpbnQzMiBmaXJzdEFycmF5U2xpY2U7CisgICB1aW50MzIgYXJyYXlT aXplOworICAgU1ZHQTNEQ3JlYXRlRFNWaWV3RmxhZ3MgZmxhZ3M7CisgICB1aW50OCBwYWQwOwor ICAgdWludDE2IHBhZDE7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RD bWREWERlZmluZURlcHRoU3RlbmNpbFZpZXc7CisvKiBTVkdBXzNEX0NNRF9EWF9ERUZJTkVfREVQ VEhTVEVOQ0lMX1ZJRVcgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2lu LmgiCitzdHJ1Y3QgU1ZHQTNkQ21kRFhEZXN0cm95RGVwdGhTdGVuY2lsVmlldyB7CisgICBTVkdB M2REZXB0aFN0ZW5jaWxWaWV3SWQgZGVwdGhTdGVuY2lsVmlld0lkOworfQorI2luY2x1ZGUgInZt d2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRFhEZXN0cm95RGVwdGhTdGVuY2lsVmlldzsKKy8q IFNWR0FfM0RfQ01EX0RYX0RFU1RST1lfREVQVEhTVEVOQ0lMX1ZJRVcgKi8KKwordHlwZWRlZgor I2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkSW5wdXRFbGVtZW50 RGVzYyB7CisgICB1aW50MzIgaW5wdXRTbG90OworICAgdWludDMyIGFsaWduZWRCeXRlT2Zmc2V0 OworICAgU1ZHQTNkU3VyZmFjZUZvcm1hdCBmb3JtYXQ7CisgICBTVkdBM2RJbnB1dENsYXNzaWZp Y2F0aW9uIGlucHV0U2xvdENsYXNzOworICAgdWludDMyIGluc3RhbmNlRGF0YVN0ZXBSYXRlOwor ICAgdWludDMyIGlucHV0UmVnaXN0ZXI7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgi CitTVkdBM2RJbnB1dEVsZW1lbnREZXNjOworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3Bh Y2tfYmVnaW4uaCIKK3N0cnVjdCB7CisgICAvKgorICAgICogWFhYOiBIb3cgbWFueSBvZiB0aGVz ZSBjYW4gdGhlcmUgYmU/CisgICAgKi8KKyAgIHVpbnQzMiBlbGlkOworICAgdWludDMyIG51bURl c2NzOworICAgU1ZHQTNkSW5wdXRFbGVtZW50RGVzYyBkZXNjWzMyXTsKKyAgIHVpbnQzMiBwYWRb NjJdOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQUNPVGFibGVEWEVsZW1l bnRMYXlvdXRFbnRyeTsKKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgi CitzdHJ1Y3QgU1ZHQTNkQ21kRFhEZWZpbmVFbGVtZW50TGF5b3V0IHsKKyAgIFNWR0EzZEVsZW1l bnRMYXlvdXRJZCBlbGVtZW50TGF5b3V0SWQ7CisgICAvKiBGb2xsb3dlZCBieSBhIHZhcmlhYmxl IG51bWJlciBvZiBTVkdBM2RJbnB1dEVsZW1lbnREZXNjJ3MuICovCit9CisjaW5jbHVkZSAidm13 YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREWERlZmluZUVsZW1lbnRMYXlvdXQ7CisvKiBTVkdB XzNEX0NNRF9EWF9ERUZJTkVfRUxFTUVOVExBWU9VVCAqLworCit0eXBlZGVmCisjaW5jbHVkZSAi dm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWREWERlc3Ryb3lFbGVtZW50TGF5 b3V0IHsKKyAgIFNWR0EzZEVsZW1lbnRMYXlvdXRJZCBlbGVtZW50TGF5b3V0SWQ7Cit9CisjaW5j bHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREWERlc3Ryb3lFbGVtZW50TGF5b3V0 OworLyogU1ZHQV8zRF9DTURfRFhfREVTVFJPWV9FTEVNRU5UTEFZT1VUICovCisKKworI2RlZmlu ZSBTVkdBM0RfRFhfTUFYX1JFTkRFUl9UQVJHRVRTIDgKKwordHlwZWRlZgorI2luY2x1ZGUgInZt d2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkRFhCbGVuZFN0YXRlUGVyUlQgeworICAg ICAgdWludDggYmxlbmRFbmFibGU7CisgICAgICB1aW50OCBzcmNCbGVuZDsKKyAgICAgIHVpbnQ4 IGRlc3RCbGVuZDsKKyAgICAgIHVpbnQ4IGJsZW5kT3A7CisgICAgICB1aW50OCBzcmNCbGVuZEFs cGhhOworICAgICAgdWludDggZGVzdEJsZW5kQWxwaGE7CisgICAgICB1aW50OCBibGVuZE9wQWxw aGE7CisgICAgICB1aW50OCByZW5kZXJUYXJnZXRXcml0ZU1hc2s7CisgICAgICB1aW50OCBsb2dp Y09wRW5hYmxlOworICAgICAgdWludDggbG9naWNPcDsKKyAgICAgIHVpbnQxNiBwYWQwOworfQor I2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkRFhCbGVuZFN0YXRlUGVyUlQ7CisK K3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAgIHVp bnQ4IGFscGhhVG9Db3ZlcmFnZUVuYWJsZTsKKyAgIHVpbnQ4IGluZGVwZW5kZW50QmxlbmRFbmFi bGU7CisgICB1aW50MTYgcGFkMDsKKyAgIFNWR0EzZERYQmxlbmRTdGF0ZVBlclJUIHBlclJUW1NW R0EzRF9NQVhfUkVOREVSX1RBUkdFVFNdOworICAgdWludDMyIHBhZDFbN107Cit9CisjaW5jbHVk ZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBQ09UYWJsZURYQmxlbmRTdGF0ZUVudHJ5OworCisv KgorICovCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBT VkdBM2RDbWREWERlZmluZUJsZW5kU3RhdGUgeworICAgU1ZHQTNkQmxlbmRTdGF0ZUlkIGJsZW5k SWQ7CisgICB1aW50OCBhbHBoYVRvQ292ZXJhZ2VFbmFibGU7CisgICB1aW50OCBpbmRlcGVuZGVu dEJsZW5kRW5hYmxlOworICAgdWludDE2IHBhZDA7CisgICBTVkdBM2REWEJsZW5kU3RhdGVQZXJS VCBwZXJSVFtTVkdBM0RfTUFYX1JFTkRFUl9UQVJHRVRTXTsKK30KKyNpbmNsdWRlICJ2bXdhcmVf cGFja19lbmQuaCIKK1NWR0EzZENtZERYRGVmaW5lQmxlbmRTdGF0ZTsgLyogU1ZHQV8zRF9DTURf RFhfREVGSU5FX0JMRU5EX1NUQVRFICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFj a19iZWdpbi5oIgorc3RydWN0IFNWR0EzZENtZERYRGVzdHJveUJsZW5kU3RhdGUgeworICAgU1ZH QTNkQmxlbmRTdGF0ZUlkIGJsZW5kSWQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgi CitTVkdBM2RDbWREWERlc3Ryb3lCbGVuZFN0YXRlOyAvKiBTVkdBXzNEX0NNRF9EWF9ERVNUUk9Z X0JMRU5EX1NUQVRFICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5o Igorc3RydWN0IHsKKyAgIHVpbnQ4IGRlcHRoRW5hYmxlOworICAgU1ZHQTNkRGVwdGhXcml0ZU1h c2sgZGVwdGhXcml0ZU1hc2s7CisgICBTVkdBM2RDb21wYXJpc29uRnVuYyBkZXB0aEZ1bmM7Cisg ICB1aW50OCBzdGVuY2lsRW5hYmxlOworICAgdWludDggZnJvbnRFbmFibGU7CisgICB1aW50OCBi YWNrRW5hYmxlOworICAgdWludDggc3RlbmNpbFJlYWRNYXNrOworICAgdWludDggc3RlbmNpbFdy aXRlTWFzazsKKworICAgdWludDggZnJvbnRTdGVuY2lsRmFpbE9wOworICAgdWludDggZnJvbnRT dGVuY2lsRGVwdGhGYWlsT3A7CisgICB1aW50OCBmcm9udFN0ZW5jaWxQYXNzT3A7CisgICBTVkdB M2RDb21wYXJpc29uRnVuYyBmcm9udFN0ZW5jaWxGdW5jOworCisgICB1aW50OCBiYWNrU3RlbmNp bEZhaWxPcDsKKyAgIHVpbnQ4IGJhY2tTdGVuY2lsRGVwdGhGYWlsT3A7CisgICB1aW50OCBiYWNr U3RlbmNpbFBhc3NPcDsKKyAgIFNWR0EzZENvbXBhcmlzb25GdW5jIGJhY2tTdGVuY2lsRnVuYzsK K30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0FDT1RhYmxlRFhEZXB0aFN0ZW5j aWxFbnRyeTsKKworLyoKKyAqLwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2lu LmgiCitzdHJ1Y3QgU1ZHQTNkQ21kRFhEZWZpbmVEZXB0aFN0ZW5jaWxTdGF0ZSB7CisgICBTVkdB M2REZXB0aFN0ZW5jaWxTdGF0ZUlkIGRlcHRoU3RlbmNpbElkOworCisgICB1aW50OCBkZXB0aEVu YWJsZTsKKyAgIFNWR0EzZERlcHRoV3JpdGVNYXNrIGRlcHRoV3JpdGVNYXNrOworICAgU1ZHQTNk Q29tcGFyaXNvbkZ1bmMgZGVwdGhGdW5jOworICAgdWludDggc3RlbmNpbEVuYWJsZTsKKyAgIHVp bnQ4IGZyb250RW5hYmxlOworICAgdWludDggYmFja0VuYWJsZTsKKyAgIHVpbnQ4IHN0ZW5jaWxS ZWFkTWFzazsKKyAgIHVpbnQ4IHN0ZW5jaWxXcml0ZU1hc2s7CisKKyAgIHVpbnQ4IGZyb250U3Rl bmNpbEZhaWxPcDsKKyAgIHVpbnQ4IGZyb250U3RlbmNpbERlcHRoRmFpbE9wOworICAgdWludDgg ZnJvbnRTdGVuY2lsUGFzc09wOworICAgU1ZHQTNkQ29tcGFyaXNvbkZ1bmMgZnJvbnRTdGVuY2ls RnVuYzsKKworICAgdWludDggYmFja1N0ZW5jaWxGYWlsT3A7CisgICB1aW50OCBiYWNrU3RlbmNp bERlcHRoRmFpbE9wOworICAgdWludDggYmFja1N0ZW5jaWxQYXNzT3A7CisgICBTVkdBM2RDb21w YXJpc29uRnVuYyBiYWNrU3RlbmNpbEZ1bmM7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5k LmgiCitTVkdBM2RDbWREWERlZmluZURlcHRoU3RlbmNpbFN0YXRlOworLyogU1ZHQV8zRF9DTURf RFhfREVGSU5FX0RFUFRIU1RFTkNJTF9TVEFURSAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13 YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWREWERlc3Ryb3lEZXB0aFN0ZW5jaWxT dGF0ZSB7CisgICBTVkdBM2REZXB0aFN0ZW5jaWxTdGF0ZUlkIGRlcHRoU3RlbmNpbElkOworfQor I2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRFhEZXN0cm95RGVwdGhTdGVu Y2lsU3RhdGU7CisvKiBTVkdBXzNEX0NNRF9EWF9ERVNUUk9ZX0RFUFRIU1RFTkNJTF9TVEFURSAq LworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7Cisg ICB1aW50OCBmaWxsTW9kZTsKKyAgIFNWR0EzZEN1bGxNb2RlIGN1bGxNb2RlOworICAgdWludDgg ZnJvbnRDb3VudGVyQ2xvY2t3aXNlOworICAgdWludDggcHJvdm9raW5nVmVydGV4TGFzdDsKKyAg IGludDMyIGRlcHRoQmlhczsKKyAgIGZsb2F0IGRlcHRoQmlhc0NsYW1wOworICAgZmxvYXQgc2xv cGVTY2FsZWREZXB0aEJpYXM7CisgICB1aW50OCBkZXB0aENsaXBFbmFibGU7CisgICB1aW50OCBz Y2lzc29yRW5hYmxlOworICAgdWludDggbXVsdGlzYW1wbGVFbmFibGU7CisgICB1aW50OCBhbnRp YWxpYXNlZExpbmVFbmFibGU7CisgICBmbG9hdCBsaW5lV2lkdGg7CisgICB1aW50OCBsaW5lU3Rp cHBsZUVuYWJsZTsKKyAgIHVpbnQ4IGxpbmVTdGlwcGxlRmFjdG9yOworICAgdWludDE2IGxpbmVT dGlwcGxlUGF0dGVybjsKKyAgIHVpbnQzMiBmb3JjZWRTYW1wbGVDb3VudDsKK30KKyNpbmNsdWRl ICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0FDT1RhYmxlRFhSYXN0ZXJpemVyU3RhdGVFbnRyeTsK KworLyoKKyAqLwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1 Y3QgU1ZHQTNkQ21kRFhEZWZpbmVSYXN0ZXJpemVyU3RhdGUgeworICAgU1ZHQTNkUmFzdGVyaXpl clN0YXRlSWQgcmFzdGVyaXplcklkOworCisgICB1aW50OCBmaWxsTW9kZTsKKyAgIFNWR0EzZEN1 bGxNb2RlIGN1bGxNb2RlOworICAgdWludDggZnJvbnRDb3VudGVyQ2xvY2t3aXNlOworICAgdWlu dDggcHJvdm9raW5nVmVydGV4TGFzdDsKKyAgIGludDMyIGRlcHRoQmlhczsKKyAgIGZsb2F0IGRl cHRoQmlhc0NsYW1wOworICAgZmxvYXQgc2xvcGVTY2FsZWREZXB0aEJpYXM7CisgICB1aW50OCBk ZXB0aENsaXBFbmFibGU7CisgICB1aW50OCBzY2lzc29yRW5hYmxlOworICAgdWludDggbXVsdGlz YW1wbGVFbmFibGU7CisgICB1aW50OCBhbnRpYWxpYXNlZExpbmVFbmFibGU7CisgICBmbG9hdCBs aW5lV2lkdGg7CisgICB1aW50OCBsaW5lU3RpcHBsZUVuYWJsZTsKKyAgIHVpbnQ4IGxpbmVTdGlw cGxlRmFjdG9yOworICAgdWludDE2IGxpbmVTdGlwcGxlUGF0dGVybjsKK30KKyNpbmNsdWRlICJ2 bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZERYRGVmaW5lUmFzdGVyaXplclN0YXRlOworLyog U1ZHQV8zRF9DTURfRFhfREVGSU5FX1JBU1RFUklaRVJfU1RBVEUgKi8KKwordHlwZWRlZgorI2lu Y2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21kRFhEZXN0cm95UmFz dGVyaXplclN0YXRlIHsKKyAgIFNWR0EzZFJhc3Rlcml6ZXJTdGF0ZUlkIHJhc3Rlcml6ZXJJZDsK K30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZERYRGVzdHJveVJhc3Rl cml6ZXJTdGF0ZTsKKy8qIFNWR0FfM0RfQ01EX0RYX0RFU1RST1lfUkFTVEVSSVpFUl9TVEFURSAq LworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7Cisg ICBTVkdBM2RGaWx0ZXIgZmlsdGVyOworICAgdWludDggYWRkcmVzc1U7CisgICB1aW50OCBhZGRy ZXNzVjsKKyAgIHVpbnQ4IGFkZHJlc3NXOworICAgdWludDggcGFkMDsKKyAgIGZsb2F0IG1pcExP REJpYXM7CisgICB1aW50OCBtYXhBbmlzb3Ryb3B5OworICAgU1ZHQTNkQ29tcGFyaXNvbkZ1bmMg Y29tcGFyaXNvbkZ1bmM7CisgICB1aW50MTYgcGFkMTsKKyAgIFNWR0EzZFJHQkFGbG9hdCBib3Jk ZXJDb2xvcjsKKyAgIGZsb2F0IG1pbkxPRDsKKyAgIGZsb2F0IG1heExPRDsKKyAgIHVpbnQzMiBw YWQyWzZdOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQUNPVGFibGVEWFNh bXBsZXJFbnRyeTsKKworLyoKKyAqLwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2Jl Z2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21kRFhEZWZpbmVTYW1wbGVyU3RhdGUgeworICAgU1ZHQTNk U2FtcGxlcklkIHNhbXBsZXJJZDsKKyAgIFNWR0EzZEZpbHRlciBmaWx0ZXI7CisgICB1aW50OCBh ZGRyZXNzVTsKKyAgIHVpbnQ4IGFkZHJlc3NWOworICAgdWludDggYWRkcmVzc1c7CisgICB1aW50 OCBwYWQwOworICAgZmxvYXQgbWlwTE9EQmlhczsKKyAgIHVpbnQ4IG1heEFuaXNvdHJvcHk7Cisg ICBTVkdBM2RDb21wYXJpc29uRnVuYyBjb21wYXJpc29uRnVuYzsKKyAgIHVpbnQxNiBwYWQxOwor ICAgU1ZHQTNkUkdCQUZsb2F0IGJvcmRlckNvbG9yOworICAgZmxvYXQgbWluTE9EOworICAgZmxv YXQgbWF4TE9EOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRFhE ZWZpbmVTYW1wbGVyU3RhdGU7IC8qIFNWR0FfM0RfQ01EX0RYX0RFRklORV9TQU1QTEVSX1NUQVRF ICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNW R0EzZENtZERYRGVzdHJveVNhbXBsZXJTdGF0ZSB7CisgICBTVkdBM2RTYW1wbGVySWQgc2FtcGxl cklkOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRFhEZXN0cm95 U2FtcGxlclN0YXRlOyAvKiBTVkdBXzNEX0NNRF9EWF9ERVNUUk9ZX1NBTVBMRVJfU1RBVEUgKi8K KworLyoKKyAqLwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1 Y3QgU1ZHQTNkU2lnbmF0dXJlRW50cnkgeworICAgdWludDggc3lzdGVtVmFsdWU7CisgICB1aW50 OCByZWc7ICAgICAgICAgICAgICAgICAvKiByZWdpc3RlciBpcyBhIHJlc2VydmVkIHdvcmQgKi8K KyAgIHVpbnQxNiBtYXNrOworICAgdWludDggcmVnaXN0ZXJDb21wb25lbnRUeXBlOworICAgdWlu dDggbWluUHJlY2lzaW9uOworICAgdWludDE2IHBhZDA7Cit9CisjaW5jbHVkZSAidm13YXJlX3Bh Y2tfZW5kLmgiCitTVkdBM2RTaWduYXR1cmVFbnRyeTsKKwordHlwZWRlZgorI2luY2x1ZGUgInZt d2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21kRFhEZWZpbmVTaGFkZXIgeworICAg U1ZHQTNkU2hhZGVySWQgc2hhZGVySWQ7CisgICBTVkdBM2RTaGFkZXJUeXBlIHR5cGU7CisgICB1 aW50MzIgc2l6ZUluQnl0ZXM7IC8qIE51bWJlciBvZiBieXRlcyBvZiBzaGFkZXIgdGV4dC4gKi8K K30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZERYRGVmaW5lU2hhZGVy OyAvKiBTVkdBXzNEX0NNRF9EWF9ERUZJTkVfU0hBREVSICovCisKK3R5cGVkZWYKKyNpbmNsdWRl ICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0FDT1RhYmxlRFhTaGFkZXJFbnRyeSB7 CisgICBTVkdBM2RTaGFkZXJUeXBlIHR5cGU7CisgICB1aW50MzIgc2l6ZUluQnl0ZXM7CisgICB1 aW50MzIgb2Zmc2V0SW5CeXRlczsKKyAgIFNWR0FNb2JJZCBtb2JpZDsKKyAgIHVpbnQzMiBudW1J bnB1dFNpZ25hdHVyZUVudHJpZXM7CisgICB1aW50MzIgbnVtT3V0cHV0U2lnbmF0dXJlRW50cmll czsKKworICAgdWludDMyIG51bVBhdGNoQ29uc3RhbnRTaWduYXR1cmVFbnRyaWVzOworCisgICB1 aW50MzIgcGFkOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQUNPVGFibGVE WFNoYWRlckVudHJ5OworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIK K3N0cnVjdCBTVkdBM2RDbWREWERlc3Ryb3lTaGFkZXIgeworICAgU1ZHQTNkU2hhZGVySWQgc2hh ZGVySWQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREWERlc3Ry b3lTaGFkZXI7IC8qIFNWR0FfM0RfQ01EX0RYX0RFU1RST1lfU0hBREVSICovCisKK3R5cGVkZWYK KyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZENtZERYQmluZFNo YWRlciB7CisgICB1aW50MzIgY2lkOworICAgdWludDMyIHNoaWQ7CisgICBTVkdBTW9iSWQgbW9i aWQ7CisgICB1aW50MzIgb2Zmc2V0SW5CeXRlczsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19l bmQuaCIKK1NWR0EzZENtZERYQmluZFNoYWRlcjsgICAvKiBTVkdBXzNEX0NNRF9EWF9CSU5EX1NI QURFUiAqLworCisvKgorICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHN0cmVhbW91dCBkZWNsJ3Mg aW4gZWFjaCBzdHJlYW1vdXQgZW50cnkuCisgKi8KKyNkZWZpbmUgU1ZHQTNEX01BWF9TVFJFQU1P VVRfREVDTFMgNjQKKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitz dHJ1Y3QgU1ZHQTNkU3RyZWFtT3V0cHV0RGVjbGFyYXRpb25FbnRyeSB7CisgICB1aW50MzIgb3V0 cHV0U2xvdDsKKyAgIHVpbnQzMiByZWdpc3RlckluZGV4OworICAgdWludDggIHJlZ2lzdGVyTWFz azsKKyAgIHVpbnQ4ICBwYWQwOworICAgdWludDE2IHBhZDE7CisgICB1aW50MzIgc3RyZWFtOwor fQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkU3RyZWFtT3V0cHV0RGVjbGFy YXRpb25FbnRyeTsKKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitz dHJ1Y3QgU1ZHQU9UYWJsZVN0cmVhbU91dHB1dEVudHJ5IHsKKyAgIHVpbnQzMiBudW1PdXRwdXRT dHJlYW1FbnRyaWVzOworICAgU1ZHQTNkU3RyZWFtT3V0cHV0RGVjbGFyYXRpb25FbnRyeSBkZWNs W1NWR0EzRF9NQVhfU1RSRUFNT1VUX0RFQ0xTXTsKKyAgIHVpbnQzMiBzdHJlYW1PdXRwdXRTdHJp ZGVJbkJ5dGVzW1NWR0EzRF9EWF9NQVhfU09UQVJHRVRTXTsKKyAgIHVpbnQzMiByYXN0ZXJpemVk U3RyZWFtOworICAgdWludDMyIHBhZFsyNTBdOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2Vu ZC5oIgorU1ZHQUNPVGFibGVEWFN0cmVhbU91dHB1dEVudHJ5OworCit0eXBlZGVmCisjaW5jbHVk ZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWREWERlZmluZVN0cmVhbU91 dHB1dCB7CisgICBTVkdBM2RTdHJlYW1PdXRwdXRJZCBzb2lkOworICAgdWludDMyIG51bU91dHB1 dFN0cmVhbUVudHJpZXM7CisgICBTVkdBM2RTdHJlYW1PdXRwdXREZWNsYXJhdGlvbkVudHJ5IGRl Y2xbU1ZHQTNEX01BWF9TVFJFQU1PVVRfREVDTFNdOworICAgdWludDMyIHN0cmVhbU91dHB1dFN0 cmlkZUluQnl0ZXNbU1ZHQTNEX0RYX01BWF9TT1RBUkdFVFNdOworICAgdWludDMyIHJhc3Rlcml6 ZWRTdHJlYW07Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREWERl ZmluZVN0cmVhbU91dHB1dDsgLyogU1ZHQV8zRF9DTURfRFhfREVGSU5FX1NUUkVBTU9VVFBVVCAq LworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdB M2RDbWREWERlc3Ryb3lTdHJlYW1PdXRwdXQgeworICAgU1ZHQTNkU3RyZWFtT3V0cHV0SWQgc29p ZDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZERYRGVzdHJveVN0 cmVhbU91dHB1dDsgLyogU1ZHQV8zRF9DTURfRFhfREVTVFJPWV9TVFJFQU1PVVRQVVQgKi8KKwor dHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ21k RFhTZXRTdHJlYW1PdXRwdXQgeworICAgU1ZHQTNkU3RyZWFtT3V0cHV0SWQgc29pZDsKK30KKyNp bmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZENtZERYU2V0U3RyZWFtT3V0cHV0OyAv KiBTVkdBXzNEX0NNRF9EWF9TRVRfU1RSRUFNT1VUUFVUICovCisKK3R5cGVkZWYKKyNpbmNsdWRl ICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAgIHVpbnQ2NCB2YWx1ZTsKKyAgIHVp bnQzMiBtb2JJZDsKKyAgIHVpbnQzMiBtb2JPZmZzZXQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3Bh Y2tfZW5kLmgiCitTVkdBM2RDbWREWE1vYkZlbmNlNjQ7ICAvKiBTVkdBXzNEX0NNRF9EWF9NT0Jf RkVOQ0VfNjQgKi8KKworLyoKKyAqIFNWR0EzZENtZFNldENPVGFibGUgLS0KKyAqCisgKiBUaGlz IGNvbW1hbmQgYWxsb3dzIHRoZSBndWVzdCB0byBiaW5kIGEgbW9iIHRvIGEgY29udGV4dC1vYmpl Y3QgdGFibGUuCisgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgi CitzdHJ1Y3QgU1ZHQTNkQ21kRFhTZXRDT1RhYmxlIHsKKyAgIHVpbnQzMiBjaWQ7CisgICB1aW50 MzIgbW9iaWQ7CisgICBTVkdBQ09UYWJsZVR5cGUgdHlwZTsKKyAgIHVpbnQzMiB2YWxpZFNpemVJ bkJ5dGVzOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ21kRFhTZXRD T1RhYmxlOyAvKiBTVkdBXzNEX0NNRF9EWF9TRVRfQ09UQUJMRSAqLworCit0eXBlZGVmCisjaW5j bHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWREWFJlYWRiYWNrQ09U YWJsZSB7CisgICB1aW50MzIgY2lkOworICAgU1ZHQUNPVGFibGVUeXBlIHR5cGU7Cit9CisjaW5j bHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDbWREWFJlYWRiYWNrQ09UYWJsZTsgLyog U1ZHQV8zRF9DTURfRFhfUkVBREJBQ0tfQ09UQUJMRSAqLworCit0eXBlZGVmCisjaW5jbHVkZSAi dm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDT1RhYmxlRGF0YSB7CisgICB1aW50 MzIgbW9iaWQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDT1RhYmxl RGF0YTsKKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3Qg U1ZHQTNkQnVmZmVyQmluZGluZyB7CisgICB1aW50MzIgYnVmZmVySWQ7CisgICB1aW50MzIgc3Ry aWRlOworICAgdWludDMyIG9mZnNldDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIK K1NWR0EzZEJ1ZmZlckJpbmRpbmc7CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19i ZWdpbi5oIgorc3RydWN0IFNWR0EzZENvbnN0YW50QnVmZmVyQmluZGluZyB7CisgICB1aW50MzIg c2lkOworICAgdWludDMyIG9mZnNldEluQnl0ZXM7CisgICB1aW50MzIgc2l6ZUluQnl0ZXM7Cit9 CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RDb25zdGFudEJ1ZmZlckJpbmRp bmc7CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNW R0FEWElucHV0QXNzZW1ibHlNb2JGb3JtYXQgeworICAgdWludDMyIGxheW91dElkOworICAgU1ZH QTNkQnVmZmVyQmluZGluZyB2ZXJ0ZXhCdWZmZXJzW1NWR0EzRF9EWF9NQVhfVkVSVEVYQlVGRkVS U107CisgICB1aW50MzIgaW5kZXhCdWZmZXJTaWQ7CisgICB1aW50MzIgcGFkOworICAgdWludDMy IGluZGV4QnVmZmVyT2Zmc2V0OworICAgdWludDMyIGluZGV4QnVmZmVyRm9ybWF0OworICAgdWlu dDMyIHRvcG9sb2d5OworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQURYSW5w dXRBc3NlbWJseU1vYkZvcm1hdDsKKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2Jl Z2luLmgiCitzdHJ1Y3QgU1ZHQURYQ29udGV4dE1vYkZvcm1hdCB7CisgICBTVkdBRFhJbnB1dEFz c2VtYmx5TW9iRm9ybWF0IGlucHV0QXNzZW1ibHk7CisKKyAgIHN0cnVjdCB7CisgICAgICB1aW50 MzIgYmxlbmRTdGF0ZUlkOworICAgICAgdWludDMyIGJsZW5kRmFjdG9yWzRdOworICAgICAgdWlu dDMyIHNhbXBsZU1hc2s7CisgICAgICB1aW50MzIgZGVwdGhTdGVuY2lsU3RhdGVJZDsKKyAgICAg IHVpbnQzMiBzdGVuY2lsUmVmOworICAgICAgdWludDMyIHJhc3Rlcml6ZXJTdGF0ZUlkOworICAg ICAgdWludDMyIGRlcHRoU3RlbmNpbFZpZXdJZDsKKyAgICAgIHVpbnQzMiByZW5kZXJUYXJnZXRW aWV3SWRzW1NWR0EzRF9NQVhfU0lNVUxUQU5FT1VTX1JFTkRFUl9UQVJHRVRTXTsKKyAgICAgIHVp bnQzMiB1bm9yZGVyZWRBY2Nlc3NWaWV3SWRzW1NWR0EzRF9NQVhfVUFWSUVXU107CisgICB9IHJl bmRlclN0YXRlOworCisgICBzdHJ1Y3QgeworICAgICAgdWludDMyIHRhcmdldHNbU1ZHQTNEX0RY X01BWF9TT1RBUkdFVFNdOworICAgICAgdWludDMyIHNvaWQ7CisgICB9IHN0cmVhbU91dDsKKyAg IHVpbnQzMiBwYWQwWzExXTsKKworICAgdWludDggbnVtVmlld3BvcnRzOworICAgdWludDggbnVt U2Npc3NvclJlY3RzOworICAgdWludDE2IHBhZDFbMV07CisKKyAgIHVpbnQzMiBwYWQyWzNdOwor CisgICBTVkdBM2RWaWV3cG9ydCB2aWV3cG9ydHNbU1ZHQTNEX0RYX01BWF9WSUVXUE9SVFNdOwor ICAgdWludDMyIHBhZDNbMzJdOworCisgICBTVkdBU2lnbmVkUmVjdCBzY2lzc29yUmVjdHNbU1ZH QTNEX0RYX01BWF9TQ0lTU09SUkVDVFNdOworICAgdWludDMyIHBhZDRbNjRdOworCisgICBzdHJ1 Y3QgeworICAgICAgdWludDMyIHF1ZXJ5SUQ7CisgICAgICB1aW50MzIgdmFsdWU7CisgICB9IHBy ZWRpY2F0aW9uOworICAgdWludDMyIHBhZDVbMl07CisKKyAgIHN0cnVjdCB7CisgICAgICB1aW50 MzIgc2hhZGVySWQ7CisgICAgICBTVkdBM2RDb25zdGFudEJ1ZmZlckJpbmRpbmcgY29uc3RhbnRC dWZmZXJzW1NWR0EzRF9EWF9NQVhfQ09OU1RCVUZGRVJTXTsKKyAgICAgIHVpbnQzMiBzaGFkZXJS ZXNvdXJjZXNbU1ZHQTNEX0RYX01BWF9TUlZJRVdTXTsKKyAgICAgIHVpbnQzMiBzYW1wbGVyc1tT VkdBM0RfRFhfTUFYX1NBTVBMRVJTXTsKKyAgIH0gc2hhZGVyU3RhdGVbU1ZHQTNEX05VTV9TSEFE RVJUWVBFXTsKKyAgIHVpbnQzMiBwYWQ2WzI2XTsKKworICAgU1ZHQTNkUXVlcnlJZCBxdWVyeUlE W1NWR0EzRF9NQVhfUVVFUlldOworCisgICBTVkdBM2RDT1RhYmxlRGF0YSBjb3RhYmxlc1tTVkdB X0NPVEFCTEVfTUFYXTsKKyAgIHVpbnQzMiBwYWQ3WzM4MV07Cit9CisjaW5jbHVkZSAidm13YXJl X3BhY2tfZW5kLmgiCitTVkdBRFhDb250ZXh0TW9iRm9ybWF0OworCit0eXBlZGVmCisjaW5jbHVk ZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBM2RDbWREWFRlbXBTZXRDb250ZXh0 IHsKKyAgIHVpbnQzMiBkeGNpZDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NW R0EzZENtZERYVGVtcFNldENvbnRleHQ7IC8qIFNWR0FfM0RfQ01EX0RYX1RFTVBfU0VUX0NPTlRF WFQgKi8KKworI2VuZGlmIC8qIF9TVkdBM0RfRFhfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvZGV2aWNlX2luY2x1ZGUvc3ZnYTNkX2xpbWl0cy5oIGIvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC9kZXZpY2VfaW5jbHVkZS9zdmdhM2RfbGltaXRzLmgKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFjMzY4NwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvZGV2aWNlX2luY2x1ZGUvc3ZnYTNkX2xpbWl0cy5oCkBAIC0wLDAg KzEsOTkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgMjAwNy0yMDE1IFZNd2FyZSwgSW5jLiAgQWxsIHJp Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgorICogb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNv ZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24KKyAqIGZpbGVzICh0aGUgIlNvZnR3 YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQKKyAqIHJlc3RyaWN0aW9uLCBp bmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LAorICog bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNl bGwgY29waWVzCisgKiBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3 aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRo ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQorICogaW5jbHVkZWQgaW4gYWxs IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICog VEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5Z IEtJTkQsCisgKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQg VE8gVEhFIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UgQU5ECisgKiBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNI QUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTCisgKiBCRSBMSUFCTEUgRk9SIEFO WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4KKyAqIEFD VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9G IE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI RVIgREVBTElOR1MgSU4gVEhFCisgKiBTT0ZUV0FSRS4KKyAqCisgKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoKKyAqIHN2Z2Ez ZF9saW1pdHMuaCAtLQorICoKKyAqICAgICAgIFNWR0EgM2QgaGFyZHdhcmUgbGltaXRzCisgKi8K KworI2lmbmRlZiBfU1ZHQTNEX0xJTUlUU19IXworI2RlZmluZSBfU1ZHQTNEX0xJTUlUU19IXwor CisjZGVmaW5lIElOQ0xVREVfQUxMT1dfTU9EVUxFCisjZGVmaW5lIElOQ0xVREVfQUxMT1dfVVNF UkxFVkVMCisjZGVmaW5lIElOQ0xVREVfQUxMT1dfVk1DT1JFCisKKyNpbmNsdWRlICJpbmNsdWRl Q2hlY2suaCIKKworI2RlZmluZSBTVkdBM0RfTlVNX0NMSVBQTEFORVMgICAgICAgICAgICAgICAg ICAgNgorI2RlZmluZSBTVkdBM0RfTUFYX1JFTkRFUl9UQVJHRVRTICAgICAgICAgICAgICAgOAor I2RlZmluZSBTVkdBM0RfTUFYX1NJTVVMVEFORU9VU19SRU5ERVJfVEFSR0VUUyAgKFNWR0EzRF9N QVhfUkVOREVSX1RBUkdFVFMpCisjZGVmaW5lIFNWR0EzRF9NQVhfVUFWSUVXUyAgICAgICAgICAg ICAgICAgICAgICA4CisjZGVmaW5lIFNWR0EzRF9NQVhfQ09OVEVYVF9JRFMgICAgICAgICAgICAg ICAgICAyNTYKKyNkZWZpbmUgU1ZHQTNEX01BWF9TVVJGQUNFX0lEUyAgICAgICAgICAgICAgICAg ICgzMiAqIDEwMjQpCisKKy8qCisgKiBNYXhpbXVtIElEIGEgc2hhZGVyIGNhbiBiZSBhc3NpZ25l ZCBvbiBhIGdpdmVuIGNvbnRleHQuCisgKi8KKyNkZWZpbmUgU1ZHQTNEX01BWF9TSEFERVJJRFMg ICAgICAgICAgICAgICAgICAgIDUwMDAKKy8qCisgKiBNYXhpbXVtIG51bWJlciBvZiBzaGFkZXJz IG9mIGEgZ2l2ZW4gdHlwZSB0aGF0IGNhbiBiZSBkZWZpbmVkCisgKiAoaW5jbHVkaW5nIGFsbCBj b250ZXh0cykuCisgKi8KKyNkZWZpbmUgU1ZHQTNEX01BWF9TSU1VTFRBTkVPVVNfU0hBREVSUyAg ICAgICAgIDIwMDAwCisKKyNkZWZpbmUgU1ZHQTNEX05VTV9URVhUVVJFX1VOSVRTICAgICAgICAg ICAgICAgIDMyCisjZGVmaW5lIFNWR0EzRF9OVU1fTElHSFRTICAgICAgICAgICAgICAgICAgICAg ICA4CisKKy8qCisgKiBNYXhpbXVtIHNpemUgaW4gZHdvcmRzIG9mIHNoYWRlciB0ZXh0IHRoZSBT VkdBIGRldmljZSB3aWxsIGFsbG93LgorICogQ3VycmVudGx5IDggTUIuCisgKi8KKyNkZWZpbmUg U1ZHQTNEX01BWF9TSEFERVJfTUVNT1JZICAoOCAqIDEwMjQgKiAxMDI0IC8gc2l6ZW9mKHVpbnQz MikpCisKKyNkZWZpbmUgU1ZHQTNEX01BWF9DTElQX1BMQU5FUyAgICA2CisKKy8qCisgKiBUaGlz IGlzIHRoZSBsaW1pdCB0byB0aGUgbnVtYmVyIG9mIGZpeGVkLWZ1bmN0aW9uIHRleHR1cmUKKyAq IHRyYW5zZm9ybXMgYW5kIHRleHR1cmUgY29vcmRpbmF0ZXMgd2UgY2FuIHN1cHBvcnQuIEl0IGRv ZXMgKm5vdCoKKyAqIGNvcnJlc3BvbmQgdG8gdGhlIG51bWJlciBvZiB0ZXh0dXJlIGltYWdlIHVu aXRzIChzYW1wbGVycykgd2UKKyAqIHN1cHBvcnQhCisgKi8KKyNkZWZpbmUgU1ZHQTNEX01BWF9U RVhUVVJFX0NPT1JEUyA4CisKKy8qCisgKiBOdW1iZXIgb2YgZmFjZXMgaW4gYSBjdWJlbWFwLgor ICovCisjZGVmaW5lIFNWR0EzRF9NQVhfU1VSRkFDRV9GQUNFUyA2CisKKy8qCisgKiBNYXhpbXVt IG51bWJlciBvZiBhcnJheSBpbmRleGVzIGluIGEgR0Igc3VyZmFjZSAod2l0aCBEWCBlbmFibGVk KS4KKyAqLworI2RlZmluZSBTVkdBM0RfTUFYX1NVUkZBQ0VfQVJSQVlTSVpFIDUxMgorCisvKgor ICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHZlcnRleCBhcnJheXMgd2UncmUgZ3VhcmFudGVlZCB0 byBzdXBwb3J0IGluCisgKiBTVkdBXzNEX0NNRF9EUkFXUFJJTUlUSVZFUy4KKyAqLworI2RlZmlu ZSBTVkdBM0RfTUFYX1ZFUlRFWF9BUlJBWVMgICAzMgorCisvKgorICogVGhlIG1heGltdW0gbnVt YmVyIG9mIHByaW1pdGl2ZSByYW5nZXMgd2UncmUgZ3VhcmFudGVlZCB0byBzdXBwb3J0CisgKiBp biBTVkdBXzNEX0NNRF9EUkFXUFJJTUlUSVZFUy4KKyAqLworI2RlZmluZSBTVkdBM0RfTUFYX0RS QVdfUFJJTUlUSVZFX1JBTkdFUyAzMgorCisjZW5kaWYgLyogX1NWR0EzRF9MSU1JVFNfSF8gKi8K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvZGV2aWNlX2luY2x1ZGUvc3ZnYTNk X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9kZXZpY2VfaW5jbHVkZS9zdmdhM2RfcmVn LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ0Y2U2NAotLS0gL2Rldi9u dWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvZGV2aWNlX2luY2x1ZGUvc3ZnYTNkX3Jl Zy5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgMTk5OC0yMDE1IFZNd2FyZSwg SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBn cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgorICogb2J0YWluaW5nIGEgY29w eSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24KKyAqIGZpbGVz ICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQKKyAqIHJl c3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNl LCBjb3B5LAorICogbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5z ZSwgYW5kL29yIHNlbGwgY29waWVzCisgKiBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQg cGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBz dWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29w eXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQorICogaW5j bHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdh cmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FS UkFOVFkgT0YgQU5ZIEtJTkQsCisgKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQg Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSwgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECisgKiBOT05JTkZSSU5HRU1FTlQuIElO IE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTCisgKiBCRSBM SUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIg SU4gQU4KKyAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcg RlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRI RSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCisgKiBTT0ZUV0FSRS4KKyAqCisgKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwor LyoKKyAqIHN2Z2EzZF9yZWcuaCAtLQorICoKKyAqICAgICAgIFNWR0EgM2QgaGFyZHdhcmUgZGVm aW5pdGlvbnMKKyAqLworCisjaWZuZGVmIF9TVkdBM0RfUkVHX0hfCisjZGVmaW5lIF9TVkdBM0Rf UkVHX0hfCisKKyNkZWZpbmUgSU5DTFVERV9BTExPV19NT0RVTEUKKyNkZWZpbmUgSU5DTFVERV9B TExPV19VU0VSTEVWRUwKKyNkZWZpbmUgSU5DTFVERV9BTExPV19WTUNPUkUKKworI2luY2x1ZGUg ImluY2x1ZGVDaGVjay5oIgorCisjaW5jbHVkZSAic3ZnYV9yZWcuaCIKKworI2luY2x1ZGUgInN2 Z2EzZF90eXBlcy5oIgorI2luY2x1ZGUgInN2Z2EzZF9saW1pdHMuaCIKKyNpbmNsdWRlICJzdmdh M2RfY21kLmgiCisjaW5jbHVkZSAic3ZnYTNkX2R4LmgiCisjaW5jbHVkZSAic3ZnYTNkX2RldmNh cHMuaCIKKworCisjZW5kaWYgLyogX1NWR0EzRF9SRUdfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvZGV2aWNlX2luY2x1ZGUvc3ZnYTNkX3N1cmZhY2VkZWZzLmggYi9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L2RldmljZV9pbmNsdWRlL3N2Z2EzZF9zdXJmYWNlZGVmcy5o Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4NzA0ZjAKLS0tIC9kZXYvbnVs bAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L2RldmljZV9pbmNsdWRlL3N2Z2EzZF9zdXJm YWNlZGVmcy5oCkBAIC0wLDAgKzEsMTIwNCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICog Q29weXJpZ2h0IMKpIDIwMDgtMjAxNSBWTXdhcmUsIEluYy4sIFBhbG8gQWx0bywgQ0EuLCBVU0EK KyAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkg b2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUK KyAqICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0 aW9uLCBpbmNsdWRpbmcKKyAqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwg Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyAqIGRpc3RyaWJ1dGUsIHN1YiBsaWNlbnNl LCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KKyAqIHBlcm1pdCBw ZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj dCB0bworICogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5 cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlCisg KiBuZXh0IHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJz dGFudGlhbCBwb3J0aW9ucworICogb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FS RSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBS RVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFIEFORCBOT04tSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENP UFlSSUdIVCBIT0xERVJTLCBBVVRIT1JTIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBG T1IgQU5ZIENMQUlNLAorICogREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g QU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SCisgKiBPVEhFUldJU0UsIEFSSVNJTkcgRlJP TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFCisgKiBV U0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8KKworI2lmZGVmIF9fS0VSTkVMX18KKworI2luY2x1ZGUgPGRybS92bXdnZnhfZHJtLmg+ CisjZGVmaW5lIHN1cmZfc2l6ZV9zdHJ1Y3Qgc3RydWN0IGRybV92bXdfc2l6ZQorCisjZWxzZSAv KiBfX0tFUk5FTF9fICovCisKKyNpZm5kZWYgQVJSQVlfU0laRQorI2RlZmluZSBBUlJBWV9TSVpF KF9BKSAoc2l6ZW9mKF9BKSAvIHNpemVvZigoX0EpWzBdKSkKKyNlbmRpZiAvKiBBUlJBWV9TSVpF ICovCisKKyNkZWZpbmUgRElWX1JPVU5EX1VQKHgsIHkpICAoKCh4KSArICh5KSAtIDEpIC8gKHkp KQorI2RlZmluZSBtYXhfdCh0eXBlLCB4LCB5KSAgKCh4KSA+ICh5KSA/ICh4KSA6ICh5KSkKKyNk ZWZpbmUgc3VyZl9zaXplX3N0cnVjdCBTVkdBM2RTaXplCisjZGVmaW5lIHUzMiB1aW50MzIKKwor I2VuZGlmIC8qIF9fS0VSTkVMX18gKi8KKworI2luY2x1ZGUgInN2Z2EzZF9yZWcuaCIKKworLyoK KyAqIGVudW0gc3ZnYTNkX2Jsb2NrX2Rlc2MgZGVzY3JpYmVzIHRoZSBhY3RpdmUgZGF0YSBjaGFu bmVscyBpbiBhIGJsb2NrLgorICoKKyAqIFRoZXJlIGNhbiBiZSBhdC1tb3N0IGZvdXIgYWN0aXZl IGNoYW5uZWxzIGluIGEgYmxvY2s6CisgKiAgICAxLiBSZWQsIGJ1bXAgVywgbHVtaW5hbmNlIGFu ZCBkZXB0aCBhcmUgc3RvcmVkIGluIHRoZSBmaXJzdCBjaGFubmVsLgorICogICAgMi4gR3JlZW4s IGJ1bXAgViBhbmQgc3RlbmNpbCBhcmUgc3RvcmVkIGluIHRoZSBzZWNvbmQgY2hhbm5lbC4KKyAq ICAgIDMuIEJsdWUgYW5kIGJ1bXAgVSBhcmUgc3RvcmVkIGluIHRoZSB0aGlyZCBjaGFubmVsLgor ICogICAgNC4gQWxwaGEgYW5kIGJ1bXAgUSBhcmUgc3RvcmVkIGluIHRoZSBmb3VydGggY2hhbm5l bC4KKyAqCisgKiBCbG9jayBjaGFubmVscyBjYW4gYmUgdXNlZCB0byBzdG9yZSBjb21wcmVzc2Vk IGFuZCBidWZmZXIgZGF0YToKKyAqICAgIDEuIEZvciBjb21wcmVzc2VkIGZvcm1hdHMsIG9ubHkg dGhlIGRhdGEgY2hhbm5lbCBpcyB1c2VkIGFuZCBpdHMgc2l6ZQorICogICAgICAgaXMgZXF1YWwg dG8gdGhhdCBvZiBhIHNpbmd1bGFyIGJsb2NrIGluIHRoZSBjb21wcmVzc2lvbiBzY2hlbWUuCisg KiAgICAyLiBGb3IgYnVmZmVyIGZvcm1hdHMsIG9ubHkgdGhlIGRhdGEgY2hhbm5lbCBpcyB1c2Vk IGFuZCBpdHMgc2l6ZSBpcworICogICAgICAgZXhhY3RseSBvbmUgYnl0ZSBpbiBsZW5ndGguCisg KiAgICAzLiBJbiBlYWNoIGNhc2UgdGhlIGJpdCBkZXB0aCByZXByZXNlbnQgdGhlIHNpemUgb2Yg YSBzaW5ndWxhciBibG9jay4KKyAqCisgKiBOb3RlOiBDb21wcmVzc2VkIGFuZCBJRUVFIGZvcm1h dHMgZG8gbm90IHVzZSB0aGUgYml0TWFzayBzdHJ1Y3R1cmUuCisgKi8KKworZW51bSBzdmdhM2Rf YmxvY2tfZGVzYyB7CisJU1ZHQTNEQkxPQ0tERVNDX05PTkUgICAgICAgID0gMCwgICAgICAgICAv KiBObyBjaGFubmVscyBhcmUgYWN0aXZlICovCisJU1ZHQTNEQkxPQ0tERVNDX0JMVUUgICAgICAg ID0gMSA8PCAwLCAgICAvKiBCbG9jayB3aXRoIHJlZCBjaGFubmVsCisJCQkJCQkgICAgZGF0YSAq LworCVNWR0EzREJMT0NLREVTQ19VICAgICAgICAgICA9IDEgPDwgMCwgICAgLyogQmxvY2sgd2l0 aCBidW1wIFUgY2hhbm5lbAorCQkJCQkJICAgIGRhdGEgKi8KKwlTVkdBM0RCTE9DS0RFU0NfVVZf VklERU8gICAgPSAxIDw8IDcsICAgIC8qIEJsb2NrIHdpdGggYWx0ZXJuYXRpbmcgdmlkZW8KKwkJ CQkJCSAgICBVIGFuZCBWICovCisJU1ZHQTNEQkxPQ0tERVNDX0dSRUVOICAgICAgID0gMSA8PCAx LCAgICAvKiBCbG9jayB3aXRoIGdyZWVuIGNoYW5uZWwKKwkJCQkJCSAgICBkYXRhICovCisJU1ZH QTNEQkxPQ0tERVNDX1YgICAgICAgICAgID0gMSA8PCAxLCAgICAvKiBCbG9jayB3aXRoIGJ1bXAg ViBjaGFubmVsCisJCQkJCQkgICAgZGF0YSAqLworCVNWR0EzREJMT0NLREVTQ19TVEVOQ0lMICAg ICA9IDEgPDwgMSwgICAgLyogQmxvY2sgd2l0aCBhIHN0ZW5jaWwKKwkJCQkJCSAgICBjaGFubmVs ICovCisJU1ZHQTNEQkxPQ0tERVNDX1JFRCAgICAgICAgID0gMSA8PCAyLCAgICAvKiBCbG9jayB3 aXRoIGJsdWUgY2hhbm5lbAorCQkJCQkJICAgIGRhdGEgKi8KKwlTVkdBM0RCTE9DS0RFU0NfVyAg ICAgICAgICAgPSAxIDw8IDIsICAgIC8qIEJsb2NrIHdpdGggYnVtcCBXIGNoYW5uZWwKKwkJCQkJ CSAgICBkYXRhICovCisJU1ZHQTNEQkxPQ0tERVNDX0xVTUlOQU5DRSAgID0gMSA8PCAyLCAgICAv KiBCbG9jayB3aXRoIGx1bWluYW5jZSBjaGFubmVsCisJCQkJCQkgICAgZGF0YSAqLworCVNWR0Ez REJMT0NLREVTQ19ZICAgICAgICAgICA9IDEgPDwgMiwgICAgLyogQmxvY2sgd2l0aCB2aWRlbyBs dW1pbmFuY2UKKwkJCQkJCSAgICBkYXRhICovCisJU1ZHQTNEQkxPQ0tERVNDX0RFUFRIICAgICAg ID0gMSA8PCAyLCAgICAvKiBCbG9jayB3aXRoIGRlcHRoIGNoYW5uZWwgKi8KKwlTVkdBM0RCTE9D S0RFU0NfQUxQSEEgICAgICAgPSAxIDw8IDMsICAgIC8qIEJsb2NrIHdpdGggYW4gYWxwaGEKKwkJ CQkJCSAgICBjaGFubmVsICovCisJU1ZHQTNEQkxPQ0tERVNDX1EgICAgICAgICAgID0gMSA8PCAz LCAgICAvKiBCbG9jayB3aXRoIGJ1bXAgUSBjaGFubmVsCisJCQkJCQkgICAgZGF0YSAqLworCVNW R0EzREJMT0NLREVTQ19CVUZGRVIgICAgICA9IDEgPDwgNCwgICAgLyogQmxvY2sgc3RvcmVzIDEg Ynl0ZSBvZgorCQkJCQkJICAgIGRhdGEgKi8KKwlTVkdBM0RCTE9DS0RFU0NfQ09NUFJFU1NFRCAg PSAxIDw8IDUsICAgIC8qIEJsb2NrIHN0b3JlcyBuIGJ5dGVzIG9mCisJCQkJCQkgICAgZGF0YSBk ZXBlbmRpbmcgb24gdGhlCisJCQkJCQkgICAgY29tcHJlc3Npb24gbWV0aG9kIHVzZWQgKi8KKwlT VkdBM0RCTE9DS0RFU0NfSUVFRV9GUCAgICAgPSAxIDw8IDYsICAgIC8qIEJsb2NrIHN0b3JlcyBk YXRhIGluIGFuIElFRUUKKwkJCQkJCSAgICBmbG9hdGluZyBwb2ludAorCQkJCQkJICAgIHJlcHJl c2VudGF0aW9uIGluCisJCQkJCQkgICAgYWxsIGNoYW5uZWxzICovCisJU1ZHQTNEQkxPQ0tERVND X1BMQU5BUl9ZVVYgID0gMSA8PCA4LCAgICAvKiBUaHJlZSBzZXBhcmF0ZSBibG9ja3Mgc3RvcmUK KwkJCQkJCSAgICBkYXRhLiAqLworCVNWR0EzREJMT0NLREVTQ19VX1ZJREVPICAgICA9IDEgPDwg OSwgICAgLyogQmxvY2sgd2l0aCBVIHZpZGVvIGRhdGEgKi8KKwlTVkdBM0RCTE9DS0RFU0NfVl9W SURFTyAgICAgPSAxIDw8IDEwLCAgIC8qIEJsb2NrIHdpdGggViB2aWRlbyBkYXRhICovCisJU1ZH QTNEQkxPQ0tERVNDX0VYUCAgICAgICAgID0gMSA8PCAxMSwgICAvKiBTaGFyZWQgZXhwb25lbnQg Ki8KKwlTVkdBM0RCTE9DS0RFU0NfU1JHQiAgICAgICAgPSAxIDw8IDEyLCAgIC8qIERhdGEgaXMg aW4gc1JHQiBmb3JtYXQgKi8KKwlTVkdBM0RCTE9DS0RFU0NfMlBMQU5BUl9ZVVYgPSAxIDw8IDEz LCAgIC8qIDIgcGxhbmVzIG9mIFksIFVWLAorCQkJCQkJICAgIGUuZy4sIE5WMTIuICovCisJU1ZH QTNEQkxPQ0tERVNDXzNQTEFOQVJfWVVWID0gMSA8PCAxNCwgICAvKiAzIHBsYW5lcyBvZiBzZXBh cmF0ZQorCQkJCQkJICAgIFksIFUsIFYsIGUuZy4sIFlWMTIuICovCisKKwlTVkdBM0RCTE9DS0RF U0NfUkcgICAgICAgICA9IFNWR0EzREJMT0NLREVTQ19SRUQgfAorCVNWR0EzREJMT0NLREVTQ19H UkVFTiwKKwlTVkdBM0RCTE9DS0RFU0NfUkdCICAgICAgICA9IFNWR0EzREJMT0NLREVTQ19SRyB8 CisJU1ZHQTNEQkxPQ0tERVNDX0JMVUUsCisJU1ZHQTNEQkxPQ0tERVNDX1JHQl9TUkdCICAgPSBT VkdBM0RCTE9DS0RFU0NfUkdCIHwKKwlTVkdBM0RCTE9DS0RFU0NfU1JHQiwKKwlTVkdBM0RCTE9D S0RFU0NfUkdCQSAgICAgICA9IFNWR0EzREJMT0NLREVTQ19SR0IgfAorCVNWR0EzREJMT0NLREVT Q19BTFBIQSwKKwlTVkdBM0RCTE9DS0RFU0NfUkdCQV9TUkdCICA9IFNWR0EzREJMT0NLREVTQ19S R0JBIHwKKwlTVkdBM0RCTE9DS0RFU0NfU1JHQiwKKwlTVkdBM0RCTE9DS0RFU0NfVVYgICAgICAg ICA9IFNWR0EzREJMT0NLREVTQ19VIHwKKwlTVkdBM0RCTE9DS0RFU0NfViwKKwlTVkdBM0RCTE9D S0RFU0NfVVZMICAgICAgICA9IFNWR0EzREJMT0NLREVTQ19VViB8CisJU1ZHQTNEQkxPQ0tERVND X0xVTUlOQU5DRSwKKwlTVkdBM0RCTE9DS0RFU0NfVVZXICAgICAgICA9IFNWR0EzREJMT0NLREVT Q19VViB8CisJU1ZHQTNEQkxPQ0tERVNDX1csCisJU1ZHQTNEQkxPQ0tERVNDX1VWV0EgICAgICAg PSBTVkdBM0RCTE9DS0RFU0NfVVZXIHwKKwlTVkdBM0RCTE9DS0RFU0NfQUxQSEEsCisJU1ZHQTNE QkxPQ0tERVNDX1VWV1EgICAgICAgPSBTVkdBM0RCTE9DS0RFU0NfVSB8CisJU1ZHQTNEQkxPQ0tE RVNDX1YgfAorCVNWR0EzREJMT0NLREVTQ19XIHwKKwlTVkdBM0RCTE9DS0RFU0NfUSwKKwlTVkdB M0RCTE9DS0RFU0NfTEEgICAgICAgICA9IFNWR0EzREJMT0NLREVTQ19MVU1JTkFOQ0UgfAorCVNW R0EzREJMT0NLREVTQ19BTFBIQSwKKwlTVkdBM0RCTE9DS0RFU0NfUl9GUCAgICAgICA9IFNWR0Ez REJMT0NLREVTQ19SRUQgfAorCVNWR0EzREJMT0NLREVTQ19JRUVFX0ZQLAorCVNWR0EzREJMT0NL REVTQ19SR19GUCAgICAgID0gU1ZHQTNEQkxPQ0tERVNDX1JfRlAgfAorCVNWR0EzREJMT0NLREVT Q19HUkVFTiwKKwlTVkdBM0RCTE9DS0RFU0NfUkdCX0ZQICAgICA9IFNWR0EzREJMT0NLREVTQ19S R19GUCB8CisJU1ZHQTNEQkxPQ0tERVNDX0JMVUUsCisJU1ZHQTNEQkxPQ0tERVNDX1JHQkFfRlAg ICAgPSBTVkdBM0RCTE9DS0RFU0NfUkdCX0ZQIHwKKwlTVkdBM0RCTE9DS0RFU0NfQUxQSEEsCisJ U1ZHQTNEQkxPQ0tERVNDX0RTICAgICAgICAgPSBTVkdBM0RCTE9DS0RFU0NfREVQVEggfAorCVNW R0EzREJMT0NLREVTQ19TVEVOQ0lMLAorCVNWR0EzREJMT0NLREVTQ19ZVVYgICAgICAgID0gU1ZH QTNEQkxPQ0tERVNDX1VWX1ZJREVPIHwKKwlTVkdBM0RCTE9DS0RFU0NfWSwKKwlTVkdBM0RCTE9D S0RFU0NfQVlVViAgICAgICA9IFNWR0EzREJMT0NLREVTQ19BTFBIQSB8CisJU1ZHQTNEQkxPQ0tE RVNDX1kgfAorCVNWR0EzREJMT0NLREVTQ19VX1ZJREVPIHwKKwlTVkdBM0RCTE9DS0RFU0NfVl9W SURFTywKKwlTVkdBM0RCTE9DS0RFU0NfUkdCRSAgICAgICA9IFNWR0EzREJMT0NLREVTQ19SR0Ig fAorCVNWR0EzREJMT0NLREVTQ19FWFAsCisJU1ZHQTNEQkxPQ0tERVNDX0NPTVBSRVNTRURfU1JH QiA9IFNWR0EzREJMT0NLREVTQ19DT01QUkVTU0VEIHwKKwlTVkdBM0RCTE9DS0RFU0NfU1JHQiwK KwlTVkdBM0RCTE9DS0RFU0NfTlYxMiAgICAgICA9IFNWR0EzREJMT0NLREVTQ19QTEFOQVJfWVVW IHwKKwlTVkdBM0RCTE9DS0RFU0NfMlBMQU5BUl9ZVVYsCisJU1ZHQTNEQkxPQ0tERVNDX1lWMTIg ICAgICAgPSBTVkdBM0RCTE9DS0RFU0NfUExBTkFSX1lVViB8CisJU1ZHQTNEQkxPQ0tERVNDXzNQ TEFOQVJfWVVWLAorfTsKKworLyoKKyAqIFNWR0EzZFN1cmZhY2VEZXNjIGRlc2NyaWJlcyB0aGUg YWN0dWFsIHBpeGVsIGRhdGEuCisgKgorICogVGhpcyBzdHJ1Y3R1cmUgcHJvdmlkZXMgdGhlIGZv bGxvd2luZyBpbmZvcm1hdGlvbjoKKyAqICAgIDEuIEJsb2NrIGRlc2NyaXB0aW9uLgorICogICAg Mi4gRGltZW5zaW9ucyBvZiBhIGJsb2NrIGluIHRoZSBzdXJmYWNlLgorICogICAgMy4gU2l6ZSBv ZiBibG9jayBpbiBieXRlcy4KKyAqICAgIDQuIEJpdCBkZXB0aCBvZiB0aGUgcGl4ZWwgZGF0YS4K KyAqICAgIDUuIENoYW5uZWwgYml0IGRlcHRocyBhbmQgbWFza3MgKGlmIGFwcGxpY2FibGUpLgor ICovCitzdHJ1Y3Qgc3ZnYTNkX2NoYW5uZWxfZGVmIHsKKwl1bmlvbiB7CisJCXU4IGJsdWU7CisJ CXU4IHU7CisJCXU4IHV2X3ZpZGVvOworCQl1OCB1X3ZpZGVvOworCX07CisJdW5pb24geworCQl1 OCBncmVlbjsKKwkJdTggdjsKKwkJdTggc3RlbmNpbDsKKwkJdTggdl92aWRlbzsKKwl9OworCXVu aW9uIHsKKwkJdTggcmVkOworCQl1OCB3OworCQl1OCBsdW1pbmFuY2U7CisJCXU4IHk7CisJCXU4 IGRlcHRoOworCQl1OCBkYXRhOworCX07CisJdW5pb24geworCQl1OCBhbHBoYTsKKwkJdTggcTsK KwkJdTggZXhwOworCX07Cit9OworCitzdHJ1Y3Qgc3ZnYTNkX3N1cmZhY2VfZGVzYyB7CisJU1ZH QTNkU3VyZmFjZUZvcm1hdCBmb3JtYXQ7CisJZW51bSBzdmdhM2RfYmxvY2tfZGVzYyBibG9ja19k ZXNjOworCXN1cmZfc2l6ZV9zdHJ1Y3QgYmxvY2tfc2l6ZTsKKwl1MzIgYnl0ZXNfcGVyX2Jsb2Nr OworCXUzMiBwaXRjaF9ieXRlc19wZXJfYmxvY2s7CisKKwl1MzIgdG90YWxfYml0X2RlcHRoOwor CXN0cnVjdCBzdmdhM2RfY2hhbm5lbF9kZWYgYml0X2RlcHRoOworCXN0cnVjdCBzdmdhM2RfY2hh bm5lbF9kZWYgYml0X29mZnNldDsKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3ZnYTNkX3N1 cmZhY2VfZGVzYyBzdmdhM2Rfc3VyZmFjZV9kZXNjc1tdID0geworICAge1NWR0EzRF9GT1JNQVRf SU5WQUxJRCwgU1ZHQTNEQkxPQ0tERVNDX05PTkUsCisgICAgICB7MSwgMSwgMX0sICAwLCAwLAor ICAgICAgMCwge3swfSwgezB9LCB7MH0sIHswfX0sCisgICAgICB7ezB9LCB7MH0sIHswfSwgezB9 fX0sCisKKyAgIHtTVkdBM0RfWDhSOEc4QjgsIFNWR0EzREJMT0NLREVTQ19SR0IsCisgICAgICB7 MSwgMSwgMX0sICA0LCA0LAorICAgICAgMjQsIHt7OH0sIHs4fSwgezh9LCB7MH19LAorICAgICAg e3swfSwgezh9LCB7MTZ9LCB7MjR9fX0sCisKKyAgIHtTVkdBM0RfQThSOEc4QjgsIFNWR0EzREJM T0NLREVTQ19SR0JBLAorICAgICAgezEsIDEsIDF9LCAgNCwgNCwKKyAgICAgIDMyLCB7ezh9LCB7 OH0sIHs4fSwgezh9fSwKKyAgICAgIHt7MH0sIHs4fSwgezE2fSwgezI0fX19LAorCisgICB7U1ZH QTNEX1I1RzZCNSwgU1ZHQTNEQkxPQ0tERVNDX1JHQiwKKyAgICAgIHsxLCAxLCAxfSwgIDIsIDIs CisgICAgICAxNiwge3s1fSwgezZ9LCB7NX0sIHswfX0sCisgICAgICB7ezB9LCB7NX0sIHsxMX0s IHswfX19LAorCisgICB7U1ZHQTNEX1gxUjVHNUI1LCBTVkdBM0RCTE9DS0RFU0NfUkdCLAorICAg ICAgezEsIDEsIDF9LCAgMiwgMiwKKyAgICAgIDE1LCB7ezV9LCB7NX0sIHs1fSwgezB9fSwKKyAg ICAgIHt7MH0sIHs1fSwgezEwfSwgezB9fX0sCisKKyAgIHtTVkdBM0RfQTFSNUc1QjUsIFNWR0Ez REJMT0NLREVTQ19SR0JBLAorICAgICAgezEsIDEsIDF9LCAgMiwgMiwKKyAgICAgIDE2LCB7ezV9 LCB7NX0sIHs1fSwgezF9fSwKKyAgICAgIHt7MH0sIHs1fSwgezEwfSwgezE1fX19LAorCisgICB7 U1ZHQTNEX0E0UjRHNEI0LCBTVkdBM0RCTE9DS0RFU0NfUkdCQSwKKyAgICAgIHsxLCAxLCAxfSwg IDIsIDIsCisgICAgICAxNiwge3s0fSwgezR9LCB7NH0sIHs0fX0sCisgICAgICB7ezB9LCB7NH0s IHs4fSwgezEyfX19LAorCisgICB7U1ZHQTNEX1pfRDMyLCBTVkdBM0RCTE9DS0RFU0NfREVQVEgs CisgICAgICB7MSwgMSwgMX0sICA0LCA0LAorICAgICAgMzIsIHt7MH0sIHswfSwgezMyfSwgezB9 fSwKKyAgICAgIHt7MH0sIHswfSwgezB9LCB7MH19fSwKKworICAge1NWR0EzRF9aX0QxNiwgU1ZH QTNEQkxPQ0tERVNDX0RFUFRILAorICAgICAgezEsIDEsIDF9LCAgMiwgMiwKKyAgICAgIDE2LCB7 ezB9LCB7MH0sIHsxNn0sIHswfX0sCisgICAgICB7ezB9LCB7MH0sIHswfSwgezB9fX0sCisKKyAg IHtTVkdBM0RfWl9EMjRTOCwgU1ZHQTNEQkxPQ0tERVNDX0RTLAorICAgICAgezEsIDEsIDF9LCAg NCwgNCwKKyAgICAgIDMyLCB7ezB9LCB7OH0sIHsyNH0sIHswfX0sCisgICAgICB7ezB9LCB7MjR9 LCB7MH0sIHswfX19LAorCisgICB7U1ZHQTNEX1pfRDE1UzEsIFNWR0EzREJMT0NLREVTQ19EUywK KyAgICAgIHsxLCAxLCAxfSwgIDIsIDIsCisgICAgICAxNiwge3swfSwgezF9LCB7MTV9LCB7MH19 LAorICAgICAge3swfSwgezE1fSwgezB9LCB7MH19fSwKKworICAge1NWR0EzRF9MVU1JTkFOQ0U4 LCBTVkdBM0RCTE9DS0RFU0NfTFVNSU5BTkNFLAorICAgICAgezEsIDEsIDF9LCAgMSwgMSwKKyAg ICAgIDgsIHt7MH0sIHswfSwgezh9LCB7MH19LAorICAgICAge3swfSwgezB9LCB7MH0sIHswfX19 LAorCisgICB7U1ZHQTNEX0xVTUlOQU5DRTRfQUxQSEE0LCBTVkdBM0RCTE9DS0RFU0NfTEEsCisg ICAgezEgICwgMSwgMX0sICAxLCAxLAorICAgICAgOCwge3swfSwgezB9LCB7NH0sIHs0fX0sCisg ICAgICB7ezB9LCB7MH0sIHswfSwgezR9fX0sCisKKyAgIHtTVkdBM0RfTFVNSU5BTkNFMTYsIFNW R0EzREJMT0NLREVTQ19MVU1JTkFOQ0UsCisgICAgICB7MSwgMSwgMX0sICAyLCAyLAorICAgICAg MTYsIHt7MH0sIHswfSwgezE2fSwgezB9fSwKKyAgICAgIHt7MH0sIHswfSwgezB9LCB7MH19fSwK KworICAge1NWR0EzRF9MVU1JTkFOQ0U4X0FMUEhBOCwgU1ZHQTNEQkxPQ0tERVNDX0xBLAorICAg ICAgezEsIDEsIDF9LCAgMiwgMiwKKyAgICAgIDE2LCB7ezB9LCB7MH0sIHs4fSwgezh9fSwKKyAg ICAgIHt7MH0sIHswfSwgezB9LCB7OH19fSwKKworICAge1NWR0EzRF9EWFQxLCBTVkdBM0RCTE9D S0RFU0NfQ09NUFJFU1NFRCwKKyAgICAgIHs0LCA0LCAxfSwgIDgsIDgsCisgICAgICA2NCwge3sw fSwgezB9LCB7NjR9LCB7MH19LAorICAgICAge3swfSwgezB9LCB7MH0sIHswfX19LAorCisgICB7 U1ZHQTNEX0RYVDIsIFNWR0EzREJMT0NLREVTQ19DT01QUkVTU0VELAorICAgICAgezQsIDQsIDF9 LCAgMTYsIDE2LAorICAgICAgMTI4LCB7ezB9LCB7MH0sIHsxMjh9LCB7MH19LAorICAgICAge3sw fSwgezB9LCB7MH0sIHswfX19LAorCisgICB7U1ZHQTNEX0RYVDMsIFNWR0EzREJMT0NLREVTQ19D T01QUkVTU0VELAorICAgICAgezQsIDQsIDF9LCAgMTYsIDE2LAorICAgICAgMTI4LCB7ezB9LCB7 MH0sIHsxMjh9LCB7MH19LAorICAgICAge3swfSwgezB9LCB7MH0sIHswfX19LAorCisgICB7U1ZH QTNEX0RYVDQsIFNWR0EzREJMT0NLREVTQ19DT01QUkVTU0VELAorICAgICAgezQsIDQsIDF9LCAg MTYsIDE2LAorICAgICAgMTI4LCB7ezB9LCB7MH0sIHsxMjh9LCB7MH19LAorICAgICAge3swfSwg ezB9LCB7MH0sIHswfX19LAorCisgICB7U1ZHQTNEX0RYVDUsIFNWR0EzREJMT0NLREVTQ19DT01Q UkVTU0VELAorICAgICAgezQsIDQsIDF9LCAgMTYsIDE2LAorICAgICAgMTI4LCB7ezB9LCB7MH0s IHsxMjh9LCB7MH19LAorICAgICAge3swfSwgezB9LCB7MH0sIHswfX19LAorCisgICB7U1ZHQTNE X0JVTVBVOFY4LCBTVkdBM0RCTE9DS0RFU0NfVVYsCisgICAgICB7MSwgMSwgMX0sICAyLCAyLAor ICAgICAgMTYsIHt7MH0sIHswfSwgezh9LCB7OH19LAorICAgICAge3swfSwgezB9LCB7MH0sIHs4 fX19LAorCisgICB7U1ZHQTNEX0JVTVBMNlY1VTUsIFNWR0EzREJMT0NLREVTQ19VVkwsCisgICAg ICB7MSwgMSwgMX0sICAyLCAyLAorICAgICAgMTYsIHt7NX0sIHs1fSwgezZ9LCB7MH19LAorICAg ICAge3sxMX0sIHs2fSwgezB9LCB7MH19fSwKKworICAge1NWR0EzRF9CVU1QWDhMOFY4VTgsIFNW R0EzREJMT0NLREVTQ19VVkwsCisgICAgICB7MSwgMSwgMX0sICA0LCA0LAorICAgICAgMzIsIHt7 OH0sIHs4fSwgezh9LCB7MH19LAorICAgICAge3sxNn0sIHs4fSwgezB9LCB7MH19fSwKKworICAg e1NWR0EzRF9CVU1QTDhWOFU4LCBTVkdBM0RCTE9DS0RFU0NfVVZMLAorICAgICAgezEsIDEsIDF9 LCAgMywgMywKKyAgICAgIDI0LCB7ezh9LCB7OH0sIHs4fSwgezB9fSwKKyAgICAgIHt7MTZ9LCB7 OH0sIHswfSwgezB9fX0sCisKKyAgIHtTVkdBM0RfQVJHQl9TMTBFNSwgU1ZHQTNEQkxPQ0tERVND X1JHQkFfRlAsCisgICAgICB7MSwgMSwgMX0sICA4LCA4LAorICAgICAgNjQsIHt7MTZ9LCB7MTZ9 LCB7MTZ9LCB7MTZ9fSwKKyAgICAgIHt7MzJ9LCB7MTZ9LCB7MH0sIHs0OH19fSwKKworICAge1NW R0EzRF9BUkdCX1MyM0U4LCBTVkdBM0RCTE9DS0RFU0NfUkdCQV9GUCwKKyAgICAgIHsxLCAxLCAx fSwgIDE2LCAxNiwKKyAgICAgIDEyOCwge3szMn0sIHszMn0sIHszMn0sIHszMn19LAorICAgICAg e3s2NH0sIHszMn0sIHswfSwgezk2fX19LAorCisgICB7U1ZHQTNEX0EyUjEwRzEwQjEwLCBTVkdB M0RCTE9DS0RFU0NfUkdCQSwKKyAgICAgIHsxLCAxLCAxfSwgIDQsIDQsCisgICAgICAzMiwge3sx MH0sIHsxMH0sIHsxMH0sIHsyfX0sCisgICAgICB7ezB9LCB7MTB9LCB7MjB9LCB7MzB9fX0sCisK KyAgIHtTVkdBM0RfVjhVOCwgU1ZHQTNEQkxPQ0tERVNDX1VWLAorICAgICAgezEsIDEsIDF9LCAg MiwgMiwKKyAgICAgIDE2LCB7ezh9LCB7OH0sIHswfSwgezB9fSwKKyAgICAgIHt7OH0sIHswfSwg ezB9LCB7MH19fSwKKworICAge1NWR0EzRF9ROFc4VjhVOCwgU1ZHQTNEQkxPQ0tERVNDX1VWV1Es CisgICAgICB7MSwgMSwgMX0sICA0LCA0LAorICAgICAgMzIsIHt7OH0sIHs4fSwgezh9LCB7OH19 LAorICAgICAge3syNH0sIHsxNn0sIHs4fSwgezB9fX0sCisKKyAgIHtTVkdBM0RfQ3hWOFU4LCBT VkdBM0RCTE9DS0RFU0NfVVYsCisgICAgICB7MSwgMSwgMX0sICAyLCAyLAorICAgICAgMTYsIHt7 OH0sIHs4fSwgezB9LCB7MH19LAorICAgICAge3s4fSwgezB9LCB7MH0sIHswfX19LAorCisgICB7 U1ZHQTNEX1g4TDhWOFU4LCBTVkdBM0RCTE9DS0RFU0NfVVZMLAorICAgICAgezEsIDEsIDF9LCAg NCwgNCwKKyAgICAgIDI0LCB7ezh9LCB7OH0sIHs4fSwgezB9fSwKKyAgICAgIHt7MTZ9LCB7OH0s IHswfSwgezB9fX0sCisKKyAgIHtTVkdBM0RfQTJXMTBWMTBVMTAsIFNWR0EzREJMT0NLREVTQ19V VldBLAorICAgICAgezEsIDEsIDF9LCAgNCwgNCwKKyAgICAgIDMyLCB7ezEwfSwgezEwfSwgezEw fSwgezJ9fSwKKyAgICAgIHt7MH0sIHsxMH0sIHsyMH0sIHszMH19fSwKKworICAge1NWR0EzRF9B TFBIQTgsIFNWR0EzREJMT0NLREVTQ19BTFBIQSwKKyAgICAgIHsxLCAxLCAxfSwgIDEsIDEsCisg ICAgICA4LCB7ezB9LCB7MH0sIHswfSwgezh9fSwKKyAgICAgIHt7MH0sIHswfSwgezB9LCB7MH19 fSwKKworICAge1NWR0EzRF9SX1MxMEU1LCBTVkdBM0RCTE9DS0RFU0NfUl9GUCwKKyAgICAgIHsx LCAxLCAxfSwgIDIsIDIsCisgICAgICAxNiwge3swfSwgezB9LCB7MTZ9LCB7MH19LAorICAgICAg e3swfSwgezB9LCB7MH0sIHswfX19LAorCisgICB7U1ZHQTNEX1JfUzIzRTgsIFNWR0EzREJMT0NL REVTQ19SX0ZQLAorICAgICAgezEsIDEsIDF9LCAgNCwgNCwKKyAgICAgIDMyLCB7ezB9LCB7MH0s IHszMn0sIHswfX0sCisgICAgICB7ezB9LCB7MH0sIHswfSwgezB9fX0sCisKKyAgIHtTVkdBM0Rf UkdfUzEwRTUsIFNWR0EzREJMT0NLREVTQ19SR19GUCwKKyAgICAgIHsxLCAxLCAxfSwgIDQsIDQs CisgICAgICAzMiwge3swfSwgezE2fSwgezE2fSwgezB9fSwKKyAgICAgIHt7MH0sIHsxNn0sIHsw fSwgezB9fX0sCisKKyAgIHtTVkdBM0RfUkdfUzIzRTgsIFNWR0EzREJMT0NLREVTQ19SR19GUCwK KyAgICAgIHsxLCAxLCAxfSwgIDgsIDgsCisgICAgICA2NCwge3swfSwgezMyfSwgezMyfSwgezB9 fSwKKyAgICAgIHt7MH0sIHszMn0sIHswfSwgezB9fX0sCisKKyAgIHtTVkdBM0RfQlVGRkVSLCBT VkdBM0RCTE9DS0RFU0NfQlVGRkVSLAorICAgICAgezEsIDEsIDF9LCAgMSwgMSwKKyAgICAgIDgs IHt7MH0sIHswfSwgezh9LCB7MH19LAorICAgICAge3swfSwgezB9LCB7MH0sIHswfX19LAorCisg ICB7U1ZHQTNEX1pfRDI0WDgsIFNWR0EzREJMT0NLREVTQ19ERVBUSCwKKyAgICAgIHsxLCAxLCAx fSwgIDQsIDQsCisgICAgICAzMiwge3swfSwgezB9LCB7MjR9LCB7MH19LAorICAgICAge3swfSwg ezI0fSwgezB9LCB7MH19fSwKKworICAge1NWR0EzRF9WMTZVMTYsIFNWR0EzREJMT0NLREVTQ19V ViwKKyAgICAgIHsxLCAxLCAxfSwgIDQsIDQsCisgICAgICAzMiwge3sxNn0sIHsxNn0sIHswfSwg ezB9fSwKKyAgICAgIHt7MTZ9LCB7MH0sIHswfSwgezB9fX0sCisKKyAgIHtTVkdBM0RfRzE2UjE2 LCBTVkdBM0RCTE9DS0RFU0NfUkcsCisgICAgICB7MSwgMSwgMX0sICA0LCA0LAorICAgICAgMzIs IHt7MH0sIHsxNn0sIHsxNn0sIHswfX0sCisgICAgICB7ezB9LCB7MH0sIHsxNn0sIHswfX19LAor CisgICB7U1ZHQTNEX0ExNkIxNkcxNlIxNiwgU1ZHQTNEQkxPQ0tERVNDX1JHQkEsCisgICAgICB7 MSwgMSwgMX0sICA4LCA4LAorICAgICAgNjQsIHt7MTZ9LCB7MTZ9LCB7MTZ9LCB7MTZ9fSwKKyAg ICAgIHt7MzJ9LCB7MTZ9LCB7MH0sIHs0OH19fSwKKworICAge1NWR0EzRF9VWVZZLCBTVkdBM0RC TE9DS0RFU0NfWVVWLAorICAgICAgezEsIDEsIDF9LCAgMiwgMiwKKyAgICAgIDE2LCB7ezh9LCB7 MH0sIHs4fSwgezB9fSwKKyAgICAgIHt7MH0sIHswfSwgezh9LCB7MH19fSwKKworICAge1NWR0Ez RF9ZVVkyLCBTVkdBM0RCTE9DS0RFU0NfWVVWLAorICAgICAgezEsIDEsIDF9LCAgMiwgMiwKKyAg ICAgIDE2LCB7ezh9LCB7MH0sIHs4fSwgezB9fSwKKyAgICAgIHt7OH0sIHswfSwgezB9LCB7MH19 fSwKKworICAge1NWR0EzRF9OVjEyLCBTVkdBM0RCTE9DS0RFU0NfTlYxMiwKKyAgICAgIHsyLCAy LCAxfSwgIDYsIDIsCisgICAgICA0OCwge3swfSwgezB9LCB7NDh9LCB7MH19LAorICAgICAge3sw fSwgezB9LCB7MH0sIHswfX19LAorCisgICB7U1ZHQTNEX0FZVVYsIFNWR0EzREJMT0NLREVTQ19B WVVWLAorICAgICAgezEsIDEsIDF9LCAgNCwgNCwKKyAgICAgIDMyLCB7ezh9LCB7OH0sIHs4fSwg ezh9fSwKKyAgICAgIHt7MH0sIHs4fSwgezE2fSwgezI0fX19LAorCisgICB7U1ZHQTNEX1IzMkcz MkIzMkEzMl9UWVBFTEVTUywgU1ZHQTNEQkxPQ0tERVNDX1JHQkEsCisgICAgICB7MSwgMSwgMX0s ICAxNiwgMTYsCisgICAgICAxMjgsIHt7MzJ9LCB7MzJ9LCB7MzJ9LCB7MzJ9fSwKKyAgICAgIHt7 NjR9LCB7MzJ9LCB7MH0sIHs5Nn19fSwKKworICAge1NWR0EzRF9SMzJHMzJCMzJBMzJfVUlOVCwg U1ZHQTNEQkxPQ0tERVNDX1JHQkEsCisgICAgICB7MSwgMSwgMX0sICAxNiwgMTYsCisgICAgICAx MjgsIHt7MzJ9LCB7MzJ9LCB7MzJ9LCB7MzJ9fSwKKyAgICAgIHt7NjR9LCB7MzJ9LCB7MH0sIHs5 Nn19fSwKKworICAge1NWR0EzRF9SMzJHMzJCMzJBMzJfU0lOVCwgU1ZHQTNEQkxPQ0tERVNDX1VW V1EsCisgICAgICB7MSwgMSwgMX0sICAxNiwgMTYsCisgICAgICAxMjgsIHt7MzJ9LCB7MzJ9LCB7 MzJ9LCB7MzJ9fSwKKyAgICAgIHt7NjR9LCB7MzJ9LCB7MH0sIHs5Nn19fSwKKworICAge1NWR0Ez RF9SMzJHMzJCMzJfVFlQRUxFU1MsIFNWR0EzREJMT0NLREVTQ19SR0IsCisgICAgICB7MSwgMSwg MX0sICAxMiwgMTIsCisgICAgICA5Niwge3szMn0sIHszMn0sIHszMn0sIHswfX0sCisgICAgICB7 ezY0fSwgezMyfSwgezB9LCB7MH19fSwKKworICAge1NWR0EzRF9SMzJHMzJCMzJfRkxPQVQsIFNW R0EzREJMT0NLREVTQ19SR0JfRlAsCisgICAgICB7MSwgMSwgMX0sICAxMiwgMTIsCisgICAgICA5 Niwge3szMn0sIHszMn0sIHszMn0sIHswfX0sCisgICAgICB7ezY0fSwgezMyfSwgezB9LCB7MH19 fSwKKworICAge1NWR0EzRF9SMzJHMzJCMzJfVUlOVCwgU1ZHQTNEQkxPQ0tERVNDX1JHQiwKKyAg ICAgIHsxLCAxLCAxfSwgIDEyLCAxMiwKKyAgICAgIDk2LCB7ezMyfSwgezMyfSwgezMyfSwgezB9 fSwKKyAgICAgIHt7NjR9LCB7MzJ9LCB7MH0sIHswfX19LAorCisgICB7U1ZHQTNEX1IzMkczMkIz Ml9TSU5ULCBTVkdBM0RCTE9DS0RFU0NfVVZXLAorICAgICAgezEsIDEsIDF9LCAgMTIsIDEyLAor ICAgICAgOTYsIHt7MzJ9LCB7MzJ9LCB7MzJ9LCB7MH19LAorICAgICAge3s2NH0sIHszMn0sIHsw fSwgezB9fX0sCisKKyAgIHtTVkdBM0RfUjE2RzE2QjE2QTE2X1RZUEVMRVNTLCBTVkdBM0RCTE9D S0RFU0NfUkdCQSwKKyAgICAgIHsxLCAxLCAxfSwgIDgsIDgsCisgICAgICA2NCwge3sxNn0sIHsx Nn0sIHsxNn0sIHsxNn19LAorICAgICAge3szMn0sIHsxNn0sIHswfSwgezQ4fX19LAorCisgICB7 U1ZHQTNEX1IxNkcxNkIxNkExNl9VSU5ULCBTVkdBM0RCTE9DS0RFU0NfUkdCQSwKKyAgICAgIHsx LCAxLCAxfSwgIDgsIDgsCisgICAgICA2NCwge3sxNn0sIHsxNn0sIHsxNn0sIHsxNn19LAorICAg ICAge3szMn0sIHsxNn0sIHswfSwgezQ4fX19LAorCisgICB7U1ZHQTNEX1IxNkcxNkIxNkExNl9T Tk9STSwgU1ZHQTNEQkxPQ0tERVNDX1VWV1EsCisgICAgICB7MSwgMSwgMX0sICA4LCA4LAorICAg ICAgNjQsIHt7MTZ9LCB7MTZ9LCB7MTZ9LCB7MTZ9fSwKKyAgICAgIHt7MzJ9LCB7MTZ9LCB7MH0s IHs0OH19fSwKKworICAge1NWR0EzRF9SMTZHMTZCMTZBMTZfU0lOVCwgU1ZHQTNEQkxPQ0tERVND X1VWV1EsCisgICAgICB7MSwgMSwgMX0sICA4LCA4LAorICAgICAgNjQsIHt7MTZ9LCB7MTZ9LCB7 MTZ9LCB7MTZ9fSwKKyAgICAgIHt7MzJ9LCB7MTZ9LCB7MH0sIHs0OH19fSwKKworICAge1NWR0Ez RF9SMzJHMzJfVFlQRUxFU1MsIFNWR0EzREJMT0NLREVTQ19SRywKKyAgICAgIHsxLCAxLCAxfSwg IDgsIDgsCisgICAgICA2NCwge3swfSwgezMyfSwgezMyfSwgezB9fSwKKyAgICAgIHt7MH0sIHsz Mn0sIHswfSwgezB9fX0sCisKKyAgIHtTVkdBM0RfUjMyRzMyX1VJTlQsIFNWR0EzREJMT0NLREVT Q19SRywKKyAgICAgIHsxLCAxLCAxfSwgIDgsIDgsCisgICAgICA2NCwge3swfSwgezMyfSwgezMy fSwgezB9fSwKKyAgICAgIHt7MH0sIHszMn0sIHswfSwgezB9fX0sCisKKyAgIHtTVkdBM0RfUjMy RzMyX1NJTlQsIFNWR0EzREJMT0NLREVTQ19VViwKKyAgICAgIHsxLCAxLCAxfSwgIDgsIDgsCisg ICAgICA2NCwge3swfSwgezMyfSwgezMyfSwgezB9fSwKKyAgICAgIHt7MH0sIHszMn0sIHswfSwg ezB9fX0sCisKKyAgIHtTVkdBM0RfUjMyRzhYMjRfVFlQRUxFU1MsIFNWR0EzREJMT0NLREVTQ19S RywKKyAgICAgIHsxLCAxLCAxfSwgIDgsIDgsCisgICAgICA2NCwge3swfSwgezh9LCB7MzJ9LCB7 MH19LAorICAgICAge3swfSwgezMyfSwgezB9LCB7MH19fSwKKworICAge1NWR0EzRF9EMzJfRkxP QVRfUzhYMjRfVUlOVCwgU1ZHQTNEQkxPQ0tERVNDX0RTLAorICAgICAgezEsIDEsIDF9LCAgOCwg OCwKKyAgICAgIDY0LCB7ezB9LCB7OH0sIHszMn0sIHswfX0sCisgICAgICB7ezB9LCB7MzJ9LCB7 MH0sIHswfX19LAorCisgICB7U1ZHQTNEX1IzMl9GTE9BVF9YOFgyNF9UWVBFTEVTUywgU1ZHQTNE QkxPQ0tERVNDX1JfRlAsCisgICAgICB7MSwgMSwgMX0sICA4LCA4LAorICAgICAgNjQsIHt7MH0s IHswfSwgezMyfSwgezB9fSwKKyAgICAgIHt7MH0sIHswfSwgezB9LCB7MH19fSwKKworICAge1NW R0EzRF9YMzJfVFlQRUxFU1NfRzhYMjRfVUlOVCwgU1ZHQTNEQkxPQ0tERVNDX0dSRUVOLAorICAg ICAgezEsIDEsIDF9LCAgOCwgOCwKKyAgICAgIDY0LCB7ezB9LCB7OH0sIHswfSwgezB9fSwKKyAg ICAgIHt7MH0sIHszMn0sIHswfSwgezB9fX0sCisKKyAgIHtTVkdBM0RfUjEwRzEwQjEwQTJfVFlQ RUxFU1MsIFNWR0EzREJMT0NLREVTQ19SR0JBLAorICAgICAgezEsIDEsIDF9LCAgNCwgNCwKKyAg ICAgIDMyLCB7ezEwfSwgezEwfSwgezEwfSwgezJ9fSwKKyAgICAgIHt7MH0sIHsxMH0sIHsyMH0s IHszMH19fSwKKworICAge1NWR0EzRF9SMTBHMTBCMTBBMl9VSU5ULCBTVkdBM0RCTE9DS0RFU0Nf UkdCQSwKKyAgICAgIHsxLCAxLCAxfSwgIDQsIDQsCisgICAgICAzMiwge3sxMH0sIHsxMH0sIHsx MH0sIHsyfX0sCisgICAgICB7ezB9LCB7MTB9LCB7MjB9LCB7MzB9fX0sCisKKyAgIHtTVkdBM0Rf UjExRzExQjEwX0ZMT0FULCBTVkdBM0RCTE9DS0RFU0NfUkdCX0ZQLAorICAgICAgezEsIDEsIDF9 LCAgNCwgNCwKKyAgICAgIDMyLCB7ezEwfSwgezExfSwgezExfSwgezB9fSwKKyAgICAgIHt7MH0s IHsxMH0sIHsyMX0sIHswfX19LAorCisgICB7U1ZHQTNEX1I4RzhCOEE4X1RZUEVMRVNTLCBTVkdB M0RCTE9DS0RFU0NfUkdCQSwKKyAgICAgIHsxLCAxLCAxfSwgIDQsIDQsCisgICAgICAzMiwge3s4 fSwgezh9LCB7OH0sIHs4fX0sCisgICAgICB7ezE2fSwgezh9LCB7MH0sIHsyNH19fSwKKworICAg e1NWR0EzRF9SOEc4QjhBOF9VTk9STSwgU1ZHQTNEQkxPQ0tERVNDX1JHQkEsCisgICAgICB7MSwg MSwgMX0sICA0LCA0LAorICAgICAgMzIsIHt7OH0sIHs4fSwgezh9LCB7OH19LAorICAgICAge3sx Nn0sIHs4fSwgezB9LCB7MjR9fX0sCisKKyAgIHtTVkdBM0RfUjhHOEI4QThfVU5PUk1fU1JHQiwg U1ZHQTNEQkxPQ0tERVNDX1JHQkFfU1JHQiwKKyAgICAgIHsxLCAxLCAxfSwgIDQsIDQsCisgICAg ICAzMiwge3s4fSwgezh9LCB7OH0sIHs4fX0sCisgICAgICB7ezE2fSwgezh9LCB7MH0sIHsyNH19 fSwKKworICAge1NWR0EzRF9SOEc4QjhBOF9VSU5ULCBTVkdBM0RCTE9DS0RFU0NfUkdCQSwKKyAg ICAgIHsxLCAxLCAxfSwgIDQsIDQsCisgICAgICAzMiwge3s4fSwgezh9LCB7OH0sIHs4fX0sCisg ICAgICB7ezE2fSwgezh9LCB7MH0sIHsyNH19fSwKKworICAge1NWR0EzRF9SOEc4QjhBOF9TSU5U LCBTVkdBM0RCTE9DS0RFU0NfUkdCQSwKKyAgICAgIHsxLCAxLCAxfSwgIDQsIDQsCisgICAgICAz Miwge3s4fSwgezh9LCB7OH0sIHs4fX0sCisgICAgICB7ezE2fSwgezh9LCB7MH0sIHsyNH19fSwK KworICAge1NWR0EzRF9SMTZHMTZfVFlQRUxFU1MsIFNWR0EzREJMT0NLREVTQ19SRywKKyAgICAg IHsxLCAxLCAxfSwgIDQsIDQsCisgICAgICAzMiwge3swfSwgezE2fSwgezE2fSwgezB9fSwKKyAg ICAgIHt7MH0sIHsxNn0sIHswfSwgezB9fX0sCisKKyAgIHtTVkdBM0RfUjE2RzE2X1VJTlQsIFNW R0EzREJMT0NLREVTQ19SR19GUCwKKyAgICAgIHsxLCAxLCAxfSwgIDQsIDQsCisgICAgICAzMiwg e3swfSwgezE2fSwgezE2fSwgezB9fSwKKyAgICAgIHt7MH0sIHsxNn0sIHswfSwgezB9fX0sCisK KyAgIHtTVkdBM0RfUjE2RzE2X1NJTlQsIFNWR0EzREJMT0NLREVTQ19VViwKKyAgICAgIHsxLCAx LCAxfSwgIDQsIDQsCisgICAgICAzMiwge3swfSwgezE2fSwgezE2fSwgezB9fSwKKyAgICAgIHt7 MH0sIHsxNn0sIHswfSwgezB9fX0sCisKKyAgIHtTVkdBM0RfUjMyX1RZUEVMRVNTLCBTVkdBM0RC TE9DS0RFU0NfUkVELAorICAgICAgezEsIDEsIDF9LCAgNCwgNCwKKyAgICAgIDMyLCB7ezB9LCB7 MH0sIHszMn0sIHswfX0sCisgICAgICB7ezB9LCB7MH0sIHswfSwgezB9fX0sCisKKyAgIHtTVkdB M0RfRDMyX0ZMT0FULCBTVkdBM0RCTE9DS0RFU0NfREVQVEgsCisgICAgICB7MSwgMSwgMX0sICA0 LCA0LAorICAgICAgMzIsIHt7MH0sIHswfSwgezMyfSwgezB9fSwKKyAgICAgIHt7MH0sIHswfSwg ezB9LCB7MH19fSwKKworICAge1NWR0EzRF9SMzJfVUlOVCwgU1ZHQTNEQkxPQ0tERVNDX1JFRCwK KyAgICAgIHsxLCAxLCAxfSwgIDQsIDQsCisgICAgICAzMiwge3swfSwgezB9LCB7MzJ9LCB7MH19 LAorICAgICAge3swfSwgezB9LCB7MH0sIHswfX19LAorCisgICB7U1ZHQTNEX1IzMl9TSU5ULCBT VkdBM0RCTE9DS0RFU0NfUkVELAorICAgICAgezEsIDEsIDF9LCAgNCwgNCwKKyAgICAgIDMyLCB7 ezB9LCB7MH0sIHszMn0sIHswfX0sCisgICAgICB7ezB9LCB7MH0sIHswfSwgezB9fX0sCisKKyAg IHtTVkdBM0RfUjI0RzhfVFlQRUxFU1MsIFNWR0EzREJMT0NLREVTQ19SRywKKyAgICAgIHsxLCAx LCAxfSwgIDQsIDQsCisgICAgICAzMiwge3swfSwgezh9LCB7MjR9LCB7MH19LAorICAgICAge3sw fSwgezI0fSwgezB9LCB7MH19fSwKKworICAge1NWR0EzRF9EMjRfVU5PUk1fUzhfVUlOVCwgU1ZH QTNEQkxPQ0tERVNDX0RTLAorICAgICAgezEsIDEsIDF9LCAgNCwgNCwKKyAgICAgIDMyLCB7ezB9 LCB7OH0sIHsyNH0sIHswfX0sCisgICAgICB7ezB9LCB7MjR9LCB7MH0sIHswfX19LAorCisgICB7 U1ZHQTNEX1IyNF9VTk9STV9YOF9UWVBFTEVTUywgU1ZHQTNEQkxPQ0tERVNDX1JFRCwKKyAgICAg IHsxLCAxLCAxfSwgIDQsIDQsCisgICAgICAzMiwge3swfSwgezB9LCB7MjR9LCB7MH19LAorICAg ICAge3swfSwgezB9LCB7MH0sIHswfX19LAorCisgICB7U1ZHQTNEX1gyNF9UWVBFTEVTU19HOF9V SU5ULCBTVkdBM0RCTE9DS0RFU0NfR1JFRU4sCisgICAgICB7MSwgMSwgMX0sICA0LCA0LAorICAg ICAgMzIsIHt7MH0sIHs4fSwgezB9LCB7MH19LAorICAgICAge3swfSwgezI0fSwgezB9LCB7MH19 fSwKKworICAge1NWR0EzRF9SOEc4X1RZUEVMRVNTLCBTVkdBM0RCTE9DS0RFU0NfUkcsCisgICAg ICB7MSwgMSwgMX0sICAyLCAyLAorICAgICAgMTYsIHt7MH0sIHs4fSwgezh9LCB7MH19LAorICAg ICAge3swfSwgezh9LCB7MH0sIHswfX19LAorCisgICB7U1ZHQTNEX1I4RzhfVU5PUk0sIFNWR0Ez REJMT0NLREVTQ19SRywKKyAgICAgIHsxLCAxLCAxfSwgIDIsIDIsCisgICAgICAxNiwge3swfSwg ezh9LCB7OH0sIHswfX0sCisgICAgICB7ezB9LCB7OH0sIHswfSwgezB9fX0sCisKKyAgIHtTVkdB M0RfUjhHOF9VSU5ULCBTVkdBM0RCTE9DS0RFU0NfUkcsCisgICAgICB7MSwgMSwgMX0sICAyLCAy LAorICAgICAgMTYsIHt7MH0sIHs4fSwgezh9LCB7MH19LAorICAgICAge3swfSwgezh9LCB7MH0s IHswfX19LAorCisgICB7U1ZHQTNEX1I4RzhfU0lOVCwgU1ZHQTNEQkxPQ0tERVNDX1VWLAorICAg ICAgezEsIDEsIDF9LCAgMiwgMiwKKyAgICAgIDE2LCB7ezB9LCB7OH0sIHs4fSwgezB9fSwKKyAg ICAgIHt7MH0sIHs4fSwgezB9LCB7MH19fSwKKworICAge1NWR0EzRF9SMTZfVFlQRUxFU1MsIFNW R0EzREJMT0NLREVTQ19SRUQsCisgICAgICB7MSwgMSwgMX0sICAyLCAyLAorICAgICAgMTYsIHt7 MH0sIHswfSwgezE2fSwgezB9fSwKKyAgICAgIHt7MH0sIHswfSwgezB9LCB7MH19fSwKKworICAg e1NWR0EzRF9SMTZfVU5PUk0sIFNWR0EzREJMT0NLREVTQ19SRUQsCisgICAgICB7MSwgMSwgMX0s ICAyLCAyLAorICAgICAgMTYsIHt7MH0sIHswfSwgezE2fSwgezB9fSwKKyAgICAgIHt7MH0sIHsw fSwgezB9LCB7MH19fSwKKworICAge1NWR0EzRF9SMTZfVUlOVCwgU1ZHQTNEQkxPQ0tERVNDX1JF RCwKKyAgICAgIHsxLCAxLCAxfSwgIDIsIDIsCisgICAgICAxNiwge3swfSwgezB9LCB7MTZ9LCB7 MH19LAorICAgICAge3swfSwgezB9LCB7MH0sIHswfX19LAorCisgICB7U1ZHQTNEX1IxNl9TTk9S TSwgU1ZHQTNEQkxPQ0tERVNDX1UsCisgICAgICB7MSwgMSwgMX0sICAyLCAyLAorICAgICAgMTYs IHt7MH0sIHswfSwgezE2fSwgezB9fSwKKyAgICAgIHt7MH0sIHswfSwgezB9LCB7MH19fSwKKwor ICAge1NWR0EzRF9SMTZfU0lOVCwgU1ZHQTNEQkxPQ0tERVNDX1UsCisgICAgICB7MSwgMSwgMX0s ICAyLCAyLAorICAgICAgMTYsIHt7MH0sIHswfSwgezE2fSwgezB9fSwKKyAgICAgIHt7MH0sIHsw fSwgezB9LCB7MH19fSwKKworICAge1NWR0EzRF9SOF9UWVBFTEVTUywgU1ZHQTNEQkxPQ0tERVND X1JFRCwKKyAgICAgIHsxLCAxLCAxfSwgIDEsIDEsCisgICAgICA4LCB7ezB9LCB7MH0sIHs4fSwg ezB9fSwKKyAgICAgIHt7MH0sIHswfSwgezB9LCB7MH19fSwKKworICAge1NWR0EzRF9SOF9VTk9S TSwgU1ZHQTNEQkxPQ0tERVNDX1JFRCwKKyAgICAgIHsxLCAxLCAxfSwgIDEsIDEsCisgICAgICA4 LCB7ezB9LCB7MH0sIHs4fSwgezB9fSwKKyAgICAgIHt7MH0sIHswfSwgezB9LCB7MH19fSwKKwor ICAge1NWR0EzRF9SOF9VSU5ULCBTVkdBM0RCTE9DS0RFU0NfUkVELAorICAgICAgezEsIDEsIDF9 LCAgMSwgMSwKKyAgICAgIDgsIHt7MH0sIHswfSwgezh9LCB7MH19LAorICAgICAge3swfSwgezB9 LCB7MH0sIHswfX19LAorCisgICB7U1ZHQTNEX1I4X1NOT1JNLCBTVkdBM0RCTE9DS0RFU0NfVSwK KyAgICAgIHsxLCAxLCAxfSwgIDEsIDEsCisgICAgICA4LCB7ezB9LCB7MH0sIHs4fSwgezB9fSwK KyAgICAgIHt7MH0sIHswfSwgezB9LCB7MH19fSwKKworICAge1NWR0EzRF9SOF9TSU5ULCBTVkdB M0RCTE9DS0RFU0NfVSwKKyAgICAgIHsxLCAxLCAxfSwgIDEsIDEsCisgICAgICA4LCB7ezB9LCB7 MH0sIHs4fSwgezB9fSwKKyAgICAgIHt7MH0sIHswfSwgezB9LCB7MH19fSwKKworICAge1NWR0Ez RF9QOCwgU1ZHQTNEQkxPQ0tERVNDX1JFRCwKKyAgICAgIHsxLCAxLCAxfSwgIDEsIDEsCisgICAg ICA4LCB7ezB9LCB7MH0sIHs4fSwgezB9fSwKKyAgICAgIHt7MH0sIHswfSwgezB9LCB7MH19fSwK KworICAge1NWR0EzRF9SOUc5QjlFNV9TSEFSRURFWFAsIFNWR0EzREJMT0NLREVTQ19SR0JFLAor ICAgICAgezEsIDEsIDF9LCAgNCwgNCwKKyAgICAgIDMyLCB7ezl9LCB7OX0sIHs5fSwgezV9fSwK KyAgICAgIHt7MTh9LCB7OX0sIHswfSwgezI3fX19LAorCisgICB7U1ZHQTNEX1I4RzhfQjhHOF9V Tk9STSwgU1ZHQTNEQkxPQ0tERVNDX1JHLAorICAgICAgezEsIDEsIDF9LCAgMiwgMiwKKyAgICAg IDE2LCB7ezB9LCB7OH0sIHs4fSwgezB9fSwKKyAgICAgIHt7MH0sIHs4fSwgezB9LCB7MH19fSwK KworICAge1NWR0EzRF9HOFI4X0c4QjhfVU5PUk0sIFNWR0EzREJMT0NLREVTQ19SRywKKyAgICAg IHsxLCAxLCAxfSwgIDIsIDIsCisgICAgICAxNiwge3swfSwgezh9LCB7OH0sIHswfX0sCisgICAg ICB7ezB9LCB7OH0sIHswfSwgezB9fX0sCisKKyAgIHtTVkdBM0RfQkMxX1RZUEVMRVNTLCBTVkdB M0RCTE9DS0RFU0NfQ09NUFJFU1NFRCwKKyAgICAgIHs0LCA0LCAxfSwgIDgsIDgsCisgICAgICA2 NCwge3swfSwgezB9LCB7NjR9LCB7MH19LAorICAgICAge3swfSwgezB9LCB7MH0sIHswfX19LAor CisgICB7U1ZHQTNEX0JDMV9VTk9STV9TUkdCLCBTVkdBM0RCTE9DS0RFU0NfQ09NUFJFU1NFRF9T UkdCLAorICAgICAgezQsIDQsIDF9LCAgOCwgOCwKKyAgICAgIDY0LCB7ezB9LCB7MH0sIHs2NH0s IHswfX0sCisgICAgICB7ezB9LCB7MH0sIHswfSwgezB9fX0sCisKKyAgIHtTVkdBM0RfQkMyX1RZ UEVMRVNTLCBTVkdBM0RCTE9DS0RFU0NfQ09NUFJFU1NFRCwKKyAgICAgIHs0LCA0LCAxfSwgIDE2 LCAxNiwKKyAgICAgIDEyOCwge3swfSwgezB9LCB7MTI4fSwgezB9fSwKKyAgICAgIHt7MH0sIHsw fSwgezB9LCB7MH19fSwKKworICAge1NWR0EzRF9CQzJfVU5PUk1fU1JHQiwgU1ZHQTNEQkxPQ0tE RVNDX0NPTVBSRVNTRURfU1JHQiwKKyAgICAgIHs0LCA0LCAxfSwgIDE2LCAxNiwKKyAgICAgIDEy OCwge3swfSwgezB9LCB7MTI4fSwgezB9fSwKKyAgICAgIHt7MH0sIHswfSwgezB9LCB7MH19fSwK KworICAge1NWR0EzRF9CQzNfVFlQRUxFU1MsIFNWR0EzREJMT0NLREVTQ19DT01QUkVTU0VELAor ICAgICAgezQsIDQsIDF9LCAgMTYsIDE2LAorICAgICAgMTI4LCB7ezB9LCB7MH0sIHsxMjh9LCB7 MH19LAorICAgICAge3swfSwgezB9LCB7MH0sIHswfX19LAorCisgICB7U1ZHQTNEX0JDM19VTk9S TV9TUkdCLCBTVkdBM0RCTE9DS0RFU0NfQ09NUFJFU1NFRF9TUkdCLAorICAgICAgezQsIDQsIDF9 LCAgMTYsIDE2LAorICAgICAgMTI4LCB7ezB9LCB7MH0sIHsxMjh9LCB7MH19LAorICAgICAge3sw fSwgezB9LCB7MH0sIHswfX19LAorCisgICB7U1ZHQTNEX0JDNF9UWVBFTEVTUywgU1ZHQTNEQkxP Q0tERVNDX0NPTVBSRVNTRUQsCisgICAgICB7NCwgNCwgMX0sICA4LCA4LAorICAgICAgNjQsIHt7 MH0sIHswfSwgezY0fSwgezB9fSwKKyAgICAgIHt7MH0sIHswfSwgezB9LCB7MH19fSwKKworICAg e1NWR0EzRF9BVEkxLCBTVkdBM0RCTE9DS0RFU0NfQ09NUFJFU1NFRCwKKyAgICAgIHs0LCA0LCAx fSwgIDgsIDgsCisgICAgICA2NCwge3swfSwgezB9LCB7NjR9LCB7MH19LAorICAgICAge3swfSwg ezB9LCB7MH0sIHswfX19LAorCisgICB7U1ZHQTNEX0JDNF9TTk9STSwgU1ZHQTNEQkxPQ0tERVND X0NPTVBSRVNTRUQsCisgICAgICB7NCwgNCwgMX0sICA4LCA4LAorICAgICAgNjQsIHt7MH0sIHsw fSwgezY0fSwgezB9fSwKKyAgICAgIHt7MH0sIHswfSwgezB9LCB7MH19fSwKKworICAge1NWR0Ez RF9CQzVfVFlQRUxFU1MsIFNWR0EzREJMT0NLREVTQ19DT01QUkVTU0VELAorICAgICAgezQsIDQs IDF9LCAgMTYsIDE2LAorICAgICAgMTI4LCB7ezB9LCB7MH0sIHsxMjh9LCB7MH19LAorICAgICAg e3swfSwgezB9LCB7MH0sIHswfX19LAorCisgICB7U1ZHQTNEX0FUSTIsIFNWR0EzREJMT0NLREVT Q19DT01QUkVTU0VELAorICAgICAgezQsIDQsIDF9LCAgMTYsIDE2LAorICAgICAgMTI4LCB7ezB9 LCB7MH0sIHsxMjh9LCB7MH19LAorICAgICAge3swfSwgezB9LCB7MH0sIHswfX19LAorCisgICB7 U1ZHQTNEX0JDNV9TTk9STSwgU1ZHQTNEQkxPQ0tERVNDX0NPTVBSRVNTRUQsCisgICAgICB7NCwg NCwgMX0sICAxNiwgMTYsCisgICAgICAxMjgsIHt7MH0sIHswfSwgezEyOH0sIHswfX0sCisgICAg ICB7ezB9LCB7MH0sIHswfSwgezB9fX0sCisKKyAgIHtTVkdBM0RfUjEwRzEwQjEwX1hSX0JJQVNf QTJfVU5PUk0sIFNWR0EzREJMT0NLREVTQ19SR0JBLAorICAgICAgezEsIDEsIDF9LCAgNCwgNCwK KyAgICAgIDMyLCB7ezEwfSwgezEwfSwgezEwfSwgezJ9fSwKKyAgICAgIHt7MH0sIHsxMH0sIHsy MH0sIHszMH19fSwKKworICAge1NWR0EzRF9COEc4UjhBOF9UWVBFTEVTUywgU1ZHQTNEQkxPQ0tE RVNDX1JHQkEsCisgICAgICB7MSwgMSwgMX0sICA0LCA0LAorICAgICAgMzIsIHt7OH0sIHs4fSwg ezh9LCB7OH19LAorICAgICAge3swfSwgezh9LCB7MTZ9LCB7MjR9fX0sCisKKyAgIHtTVkdBM0Rf QjhHOFI4QThfVU5PUk1fU1JHQiwgU1ZHQTNEQkxPQ0tERVNDX1JHQkFfU1JHQiwKKyAgICAgIHsx LCAxLCAxfSwgIDQsIDQsCisgICAgICAzMiwge3s4fSwgezh9LCB7OH0sIHs4fX0sCisgICAgICB7 ezB9LCB7OH0sIHsxNn0sIHsyNH19fSwKKworICAge1NWR0EzRF9COEc4UjhYOF9UWVBFTEVTUywg U1ZHQTNEQkxPQ0tERVNDX1JHQiwKKyAgICAgIHsxLCAxLCAxfSwgIDQsIDQsCisgICAgICAyNCwg e3s4fSwgezh9LCB7OH0sIHswfX0sCisgICAgICB7ezB9LCB7OH0sIHsxNn0sIHsyNH19fSwKKwor ICAge1NWR0EzRF9COEc4UjhYOF9VTk9STV9TUkdCLCBTVkdBM0RCTE9DS0RFU0NfUkdCX1NSR0Is CisgICAgICB7MSwgMSwgMX0sICA0LCA0LAorICAgICAgMjQsIHt7OH0sIHs4fSwgezh9LCB7MH19 LAorICAgICAge3swfSwgezh9LCB7MTZ9LCB7MjR9fX0sCisKKyAgIHtTVkdBM0RfWl9ERjE2LCBT VkdBM0RCTE9DS0RFU0NfREVQVEgsCisgICAgICB7MSwgMSwgMX0sICAyLCAyLAorICAgICAgMTYs IHt7MH0sIHswfSwgezE2fSwgezB9fSwKKyAgICAgIHt7MH0sIHswfSwgezB9LCB7MH19fSwKKwor ICAge1NWR0EzRF9aX0RGMjQsIFNWR0EzREJMT0NLREVTQ19ERVBUSCwKKyAgICAgIHsxLCAxLCAx fSwgIDQsIDQsCisgICAgICAzMiwge3swfSwgezh9LCB7MjR9LCB7MH19LAorICAgICAge3swfSwg ezI0fSwgezB9LCB7MH19fSwKKworICAge1NWR0EzRF9aX0QyNFM4X0lOVCwgU1ZHQTNEQkxPQ0tE RVNDX0RTLAorICAgICAgezEsIDEsIDF9LCAgNCwgNCwKKyAgICAgIDMyLCB7ezB9LCB7OH0sIHsy NH0sIHswfX0sCisgICAgICB7ezB9LCB7MjR9LCB7MH0sIHswfX19LAorCisgICB7U1ZHQTNEX1lW MTIsIFNWR0EzREJMT0NLREVTQ19ZVjEyLAorICAgICAgezIsIDIsIDF9LCAgNiwgMiwKKyAgICAg IDQ4LCB7ezB9LCB7MH0sIHs0OH0sIHswfX0sCisgICAgICB7ezB9LCB7MH0sIHswfSwgezB9fX0s CisKKyAgIHtTVkdBM0RfUjMyRzMyQjMyQTMyX0ZMT0FULCBTVkdBM0RCTE9DS0RFU0NfUkdCQV9G UCwKKyAgICAgIHsxLCAxLCAxfSwgIDE2LCAxNiwKKyAgICAgIDEyOCwge3szMn0sIHszMn0sIHsz Mn0sIHszMn19LAorICAgICAge3s2NH0sIHszMn0sIHswfSwgezk2fX19LAorCisgICB7U1ZHQTNE X1IxNkcxNkIxNkExNl9GTE9BVCwgU1ZHQTNEQkxPQ0tERVNDX1JHQkFfRlAsCisgICAgICB7MSwg MSwgMX0sICA4LCA4LAorICAgICAgNjQsIHt7MTZ9LCB7MTZ9LCB7MTZ9LCB7MTZ9fSwKKyAgICAg IHt7MzJ9LCB7MTZ9LCB7MH0sIHs0OH19fSwKKworICAge1NWR0EzRF9SMTZHMTZCMTZBMTZfVU5P Uk0sIFNWR0EzREJMT0NLREVTQ19SR0JBLAorICAgICAgezEsIDEsIDF9LCAgOCwgOCwKKyAgICAg IDY0LCB7ezE2fSwgezE2fSwgezE2fSwgezE2fX0sCisgICAgICB7ezMyfSwgezE2fSwgezB9LCB7 NDh9fX0sCisKKyAgIHtTVkdBM0RfUjMyRzMyX0ZMT0FULCBTVkdBM0RCTE9DS0RFU0NfUkdfRlAs CisgICAgICB7MSwgMSwgMX0sICA4LCA4LAorICAgICAgNjQsIHt7MH0sIHszMn0sIHszMn0sIHsw fX0sCisgICAgICB7ezB9LCB7MzJ9LCB7MH0sIHswfX19LAorCisgICB7U1ZHQTNEX1IxMEcxMEIx MEEyX1VOT1JNLCBTVkdBM0RCTE9DS0RFU0NfUkdCQSwKKyAgICAgIHsxLCAxLCAxfSwgIDQsIDQs CisgICAgICAzMiwge3sxMH0sIHsxMH0sIHsxMH0sIHsyfX0sCisgICAgICB7ezB9LCB7MTB9LCB7 MjB9LCB7MzB9fX0sCisKKyAgIHtTVkdBM0RfUjhHOEI4QThfU05PUk0sIFNWR0EzREJMT0NLREVT Q19SR0JBLAorICAgICAgezEsIDEsIDF9LCAgNCwgNCwKKyAgICAgIDMyLCB7ezh9LCB7OH0sIHs4 fSwgezh9fSwKKyAgICAgIHt7MjR9LCB7MTZ9LCB7OH0sIHswfX19LAorCisgICB7U1ZHQTNEX1Ix NkcxNl9GTE9BVCwgU1ZHQTNEQkxPQ0tERVNDX1JHX0ZQLAorICAgICAgezEsIDEsIDF9LCAgNCwg NCwKKyAgICAgIDMyLCB7ezB9LCB7MTZ9LCB7MTZ9LCB7MH19LAorICAgICAge3swfSwgezE2fSwg ezB9LCB7MH19fSwKKworICAge1NWR0EzRF9SMTZHMTZfVU5PUk0sIFNWR0EzREJMT0NLREVTQ19S RywKKyAgICAgIHsxLCAxLCAxfSwgIDQsIDQsCisgICAgICAzMiwge3swfSwgezE2fSwgezE2fSwg ezB9fSwKKyAgICAgIHt7MH0sIHswfSwgezE2fSwgezB9fX0sCisKKyAgIHtTVkdBM0RfUjE2RzE2 X1NOT1JNLCBTVkdBM0RCTE9DS0RFU0NfUkcsCisgICAgICB7MSwgMSwgMX0sICA0LCA0LAorICAg ICAgMzIsIHt7MTZ9LCB7MTZ9LCB7MH0sIHswfX0sCisgICAgICB7ezE2fSwgezB9LCB7MH0sIHsw fX19LAorCisgICB7U1ZHQTNEX1IzMl9GTE9BVCwgU1ZHQTNEQkxPQ0tERVNDX1JfRlAsCisgICAg ICB7MSwgMSwgMX0sICA0LCA0LAorICAgICAgMzIsIHt7MH0sIHswfSwgezMyfSwgezB9fSwKKyAg ICAgIHt7MH0sIHswfSwgezB9LCB7MH19fSwKKworICAge1NWR0EzRF9SOEc4X1NOT1JNLCBTVkdB M0RCTE9DS0RFU0NfUkcsCisgICAgICB7MSwgMSwgMX0sICAyLCAyLAorICAgICAgMTYsIHt7OH0s IHs4fSwgezB9LCB7MH19LAorICAgICAge3s4fSwgezB9LCB7MH0sIHswfX19LAorCisgICB7U1ZH QTNEX1IxNl9GTE9BVCwgU1ZHQTNEQkxPQ0tERVNDX1JfRlAsCisgICAgICB7MSwgMSwgMX0sICAy LCAyLAorICAgICAgMTYsIHt7MH0sIHswfSwgezE2fSwgezB9fSwKKyAgICAgIHt7MH0sIHswfSwg ezB9LCB7MH19fSwKKworICAge1NWR0EzRF9EMTZfVU5PUk0sIFNWR0EzREJMT0NLREVTQ19ERVBU SCwKKyAgICAgIHsxLCAxLCAxfSwgIDIsIDIsCisgICAgICAxNiwge3swfSwgezB9LCB7MTZ9LCB7 MH19LAorICAgICAge3swfSwgezB9LCB7MH0sIHswfX19LAorCisgICB7U1ZHQTNEX0E4X1VOT1JN LCBTVkdBM0RCTE9DS0RFU0NfQUxQSEEsCisgICAgICB7MSwgMSwgMX0sICAxLCAxLAorICAgICAg OCwge3swfSwgezB9LCB7MH0sIHs4fX0sCisgICAgICB7ezB9LCB7MH0sIHswfSwgezB9fX0sCisK KyAgIHtTVkdBM0RfQkMxX1VOT1JNLCBTVkdBM0RCTE9DS0RFU0NfQ09NUFJFU1NFRCwKKyAgICAg IHs0LCA0LCAxfSwgIDgsIDgsCisgICAgICA2NCwge3swfSwgezB9LCB7NjR9LCB7MH19LAorICAg ICAge3swfSwgezB9LCB7MH0sIHswfX19LAorCisgICB7U1ZHQTNEX0JDMl9VTk9STSwgU1ZHQTNE QkxPQ0tERVNDX0NPTVBSRVNTRUQsCisgICAgICB7NCwgNCwgMX0sICAxNiwgMTYsCisgICAgICAx MjgsIHt7MH0sIHswfSwgezEyOH0sIHswfX0sCisgICAgICB7ezB9LCB7MH0sIHswfSwgezB9fX0s CisKKyAgIHtTVkdBM0RfQkMzX1VOT1JNLCBTVkdBM0RCTE9DS0RFU0NfQ09NUFJFU1NFRCwKKyAg ICAgIHs0LCA0LCAxfSwgIDE2LCAxNiwKKyAgICAgIDEyOCwge3swfSwgezB9LCB7MTI4fSwgezB9 fSwKKyAgICAgIHt7MH0sIHswfSwgezB9LCB7MH19fSwKKworICAge1NWR0EzRF9CNUc2UjVfVU5P Uk0sIFNWR0EzREJMT0NLREVTQ19SR0IsCisgICAgICB7MSwgMSwgMX0sICAyLCAyLAorICAgICAg MTYsIHt7NX0sIHs2fSwgezV9LCB7MH19LAorICAgICAge3swfSwgezV9LCB7MTF9LCB7MH19fSwK KworICAge1NWR0EzRF9CNUc1UjVBMV9VTk9STSwgU1ZHQTNEQkxPQ0tERVNDX1JHQkEsCisgICAg ICB7MSwgMSwgMX0sICAyLCAyLAorICAgICAgMTYsIHt7NX0sIHs1fSwgezV9LCB7MX19LAorICAg ICAge3swfSwgezV9LCB7MTB9LCB7MTV9fX0sCisKKyAgIHtTVkdBM0RfQjhHOFI4QThfVU5PUk0s IFNWR0EzREJMT0NLREVTQ19SR0JBLAorICAgICAgezEsIDEsIDF9LCAgNCwgNCwKKyAgICAgIDMy LCB7ezh9LCB7OH0sIHs4fSwgezh9fSwKKyAgICAgIHt7MH0sIHs4fSwgezE2fSwgezI0fX19LAor CisgICB7U1ZHQTNEX0I4RzhSOFg4X1VOT1JNLCBTVkdBM0RCTE9DS0RFU0NfUkdCLAorICAgICAg ezEsIDEsIDF9LCAgNCwgNCwKKyAgICAgIDI0LCB7ezh9LCB7OH0sIHs4fSwgezB9fSwKKyAgICAg IHt7MH0sIHs4fSwgezE2fSwgezI0fX19LAorCisgICB7U1ZHQTNEX0JDNF9VTk9STSwgU1ZHQTNE QkxPQ0tERVNDX0NPTVBSRVNTRUQsCisgICAgICB7NCwgNCwgMX0sICA4LCA4LAorICAgICAgNjQs IHt7MH0sIHswfSwgezY0fSwgezB9fSwKKyAgICAgIHt7MH0sIHswfSwgezB9LCB7MH19fSwKKwor ICAge1NWR0EzRF9CQzVfVU5PUk0sIFNWR0EzREJMT0NLREVTQ19DT01QUkVTU0VELAorICAgICAg ezQsIDQsIDF9LCAgMTYsIDE2LAorICAgICAgMTI4LCB7ezB9LCB7MH0sIHsxMjh9LCB7MH19LAor ICAgICAge3swfSwgezB9LCB7MH0sIHswfX19LAorCit9OworCitzdGF0aWMgaW5saW5lIHUzMiBj bGFtcGVkX3VtdWwzMih1MzIgYSwgdTMyIGIpCit7CisJdWludDY0X3QgdG1wID0gKHVpbnQ2NF90 KSBhKmI7CisJcmV0dXJuICh0bXAgPiAodWludDY0X3QpICgodTMyKSAtMSkpID8gKHUzMikgLTEg OiB0bXA7Cit9CisKK3N0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IHN2Z2EzZF9zdXJmYWNlX2Rl c2MgKgorc3ZnYTNkc3VyZmFjZV9nZXRfZGVzYyhTVkdBM2RTdXJmYWNlRm9ybWF0IGZvcm1hdCkK K3sKKwlpZiAoZm9ybWF0IDwgQVJSQVlfU0laRShzdmdhM2Rfc3VyZmFjZV9kZXNjcykpCisJCXJl dHVybiAmc3ZnYTNkX3N1cmZhY2VfZGVzY3NbZm9ybWF0XTsKKworCXJldHVybiAmc3ZnYTNkX3N1 cmZhY2VfZGVzY3NbU1ZHQTNEX0ZPUk1BVF9JTlZBTElEXTsKK30KKworLyoKKyAqLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICoKKyAqIHN2Z2EzZHN1cmZhY2VfZ2V0X21pcF9zaXplIC0tCisgKgorICogICAgICBH aXZlbiBhIGJhc2UgbGV2ZWwgc2l6ZSBhbmQgdGhlIG1pcCBsZXZlbCwgY29tcHV0ZSB0aGUgc2l6 ZSBvZgorICogICAgICB0aGUgbWlwIGxldmVsLgorICoKKyAqIFJlc3VsdHM6CisgKiAgICAgIFNl ZSBhYm92ZS4KKyAqCisgKiBTaWRlIGVmZmVjdHM6CisgKiAgICAgIE5vbmUuCisgKgorICotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgKi8KKworc3RhdGljIGlubGluZSBzdXJmX3NpemVfc3RydWN0CitzdmdhM2Rz dXJmYWNlX2dldF9taXBfc2l6ZShzdXJmX3NpemVfc3RydWN0IGJhc2VfbGV2ZWwsIHUzMiBtaXBf bGV2ZWwpCit7CisJc3VyZl9zaXplX3N0cnVjdCBzaXplOworCisJc2l6ZS53aWR0aCA9IG1heF90 KHUzMiwgYmFzZV9sZXZlbC53aWR0aCA+PiBtaXBfbGV2ZWwsIDEpOworCXNpemUuaGVpZ2h0ID0g bWF4X3QodTMyLCBiYXNlX2xldmVsLmhlaWdodCA+PiBtaXBfbGV2ZWwsIDEpOworCXNpemUuZGVw dGggPSBtYXhfdCh1MzIsIGJhc2VfbGV2ZWwuZGVwdGggPj4gbWlwX2xldmVsLCAxKTsKKwlyZXR1 cm4gc2l6ZTsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitzdmdhM2RzdXJmYWNlX2dldF9zaXpl X2luX2Jsb2Nrcyhjb25zdCBzdHJ1Y3Qgc3ZnYTNkX3N1cmZhY2VfZGVzYyAqZGVzYywKKwkJCQkg Y29uc3Qgc3VyZl9zaXplX3N0cnVjdCAqcGl4ZWxfc2l6ZSwKKwkJCQkgc3VyZl9zaXplX3N0cnVj dCAqYmxvY2tfc2l6ZSkKK3sKKwlibG9ja19zaXplLT53aWR0aCA9IERJVl9ST1VORF9VUChwaXhl bF9zaXplLT53aWR0aCwKKwkJCQkJIGRlc2MtPmJsb2NrX3NpemUud2lkdGgpOworCWJsb2NrX3Np emUtPmhlaWdodCA9IERJVl9ST1VORF9VUChwaXhlbF9zaXplLT5oZWlnaHQsCisJCQkJCSAgZGVz Yy0+YmxvY2tfc2l6ZS5oZWlnaHQpOworCWJsb2NrX3NpemUtPmRlcHRoID0gRElWX1JPVU5EX1VQ KHBpeGVsX3NpemUtPmRlcHRoLAorCQkJCQkgZGVzYy0+YmxvY2tfc2l6ZS5kZXB0aCk7Cit9CisK K3N0YXRpYyBpbmxpbmUgYm9vbAorc3ZnYTNkc3VyZmFjZV9pc19wbGFuYXJfc3VyZmFjZShjb25z dCBzdHJ1Y3Qgc3ZnYTNkX3N1cmZhY2VfZGVzYyAqZGVzYykKK3sKKwlyZXR1cm4gKGRlc2MtPmJs b2NrX2Rlc2MgJiBTVkdBM0RCTE9DS0RFU0NfUExBTkFSX1lVVikgIT0gMDsKK30KKworc3RhdGlj IGlubGluZSB1MzIKK3N2Z2EzZHN1cmZhY2VfY2FsY3VsYXRlX3BpdGNoKGNvbnN0IHN0cnVjdCBz dmdhM2Rfc3VyZmFjZV9kZXNjICpkZXNjLAorCQkJICAgICAgY29uc3Qgc3VyZl9zaXplX3N0cnVj dCAqc2l6ZSkKK3sKKwl1MzIgcGl0Y2g7CisJc3VyZl9zaXplX3N0cnVjdCBibG9ja3M7CisKKwlz dmdhM2RzdXJmYWNlX2dldF9zaXplX2luX2Jsb2NrcyhkZXNjLCBzaXplLCAmYmxvY2tzKTsKKwor CXBpdGNoID0gYmxvY2tzLndpZHRoICogZGVzYy0+cGl0Y2hfYnl0ZXNfcGVyX2Jsb2NrOworCisJ cmV0dXJuIHBpdGNoOworfQorCisvKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHN2 Z2EzZHN1cmZhY2VfZ2V0X2ltYWdlX2J1ZmZlcl9zaXplIC0tCisgKgorICogICAgICBSZXR1cm4g dGhlIG51bWJlciBvZiBieXRlcyBvZiBidWZmZXIgc3BhY2UgcmVxdWlyZWQgdG8gc3RvcmUKKyAq ICAgICAgb25lIGltYWdlIG9mIGEgc3VyZmFjZSwgb3B0aW9uYWxseSB1c2luZyB0aGUgc3BlY2lm aWVkIHBpdGNoLgorICoKKyAqICAgICAgSWYgcGl0Y2ggaXMgemVybywgaXQgaXMgYXNzdW1lZCB0 aGF0IHJvd3MgYXJlIHRpZ2h0bHkgcGFja2VkLgorICoKKyAqICAgICAgVGhpcyBmdW5jdGlvbiBp cyBvdmVyZmxvdy1zYWZlLiBJZiB0aGUgcmVzdWx0IHdvdWxkIGhhdmUKKyAqICAgICAgb3ZlcmZs b3dlZCwgaW5zdGVhZCB3ZSByZXR1cm4gTUFYX1VJTlQzMi4KKyAqCisgKiBSZXN1bHRzOgorICog ICAgICBCeXRlIGNvdW50LgorICoKKyAqIFNpZGUgZWZmZWN0czoKKyAqICAgICAgTm9uZS4KKyAq CisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworc3RhdGljIGlubGluZSB1MzIKK3N2Z2Ez ZHN1cmZhY2VfZ2V0X2ltYWdlX2J1ZmZlcl9zaXplKGNvbnN0IHN0cnVjdCBzdmdhM2Rfc3VyZmFj ZV9kZXNjICpkZXNjLAorCQkJCSAgICBjb25zdCBzdXJmX3NpemVfc3RydWN0ICpzaXplLAorCQkJ CSAgICB1MzIgcGl0Y2gpCit7CisJc3VyZl9zaXplX3N0cnVjdCBpbWFnZV9ibG9ja3M7CisJdTMy IHNsaWNlX3NpemUsIHRvdGFsX3NpemU7CisKKwlzdmdhM2RzdXJmYWNlX2dldF9zaXplX2luX2Js b2NrcyhkZXNjLCBzaXplLCAmaW1hZ2VfYmxvY2tzKTsKKworCWlmIChzdmdhM2RzdXJmYWNlX2lz X3BsYW5hcl9zdXJmYWNlKGRlc2MpKSB7CisJCXRvdGFsX3NpemUgPSBjbGFtcGVkX3VtdWwzMihp bWFnZV9ibG9ja3Mud2lkdGgsCisJCQkJCSAgICBpbWFnZV9ibG9ja3MuaGVpZ2h0KTsKKwkJdG90 YWxfc2l6ZSA9IGNsYW1wZWRfdW11bDMyKHRvdGFsX3NpemUsIGltYWdlX2Jsb2Nrcy5kZXB0aCk7 CisJCXRvdGFsX3NpemUgPSBjbGFtcGVkX3VtdWwzMih0b3RhbF9zaXplLCBkZXNjLT5ieXRlc19w ZXJfYmxvY2spOworCQlyZXR1cm4gdG90YWxfc2l6ZTsKKwl9CisKKwlpZiAocGl0Y2ggPT0gMCkK KwkJcGl0Y2ggPSBzdmdhM2RzdXJmYWNlX2NhbGN1bGF0ZV9waXRjaChkZXNjLCBzaXplKTsKKwor CXNsaWNlX3NpemUgPSBjbGFtcGVkX3VtdWwzMihpbWFnZV9ibG9ja3MuaGVpZ2h0LCBwaXRjaCk7 CisJdG90YWxfc2l6ZSA9IGNsYW1wZWRfdW11bDMyKHNsaWNlX3NpemUsIGltYWdlX2Jsb2Nrcy5k ZXB0aCk7CisKKwlyZXR1cm4gdG90YWxfc2l6ZTsKK30KKworc3RhdGljIGlubGluZSB1MzIKK3N2 Z2EzZHN1cmZhY2VfZ2V0X3NlcmlhbGl6ZWRfc2l6ZShTVkdBM2RTdXJmYWNlRm9ybWF0IGZvcm1h dCwKKwkJCQkgIHN1cmZfc2l6ZV9zdHJ1Y3QgYmFzZV9sZXZlbF9zaXplLAorCQkJCSAgdTMyIG51 bV9taXBfbGV2ZWxzLAorCQkJCSAgdTMyIG51bV9sYXllcnMpCit7CisJY29uc3Qgc3RydWN0IHN2 Z2EzZF9zdXJmYWNlX2Rlc2MgKmRlc2MgPSBzdmdhM2RzdXJmYWNlX2dldF9kZXNjKGZvcm1hdCk7 CisJdTMyIHRvdGFsX3NpemUgPSAwOworCXUzMiBtaXA7CisKKwlmb3IgKG1pcCA9IDA7IG1pcCA8 IG51bV9taXBfbGV2ZWxzOyBtaXArKykgeworCQlzdXJmX3NpemVfc3RydWN0IHNpemUgPQorCQkJ c3ZnYTNkc3VyZmFjZV9nZXRfbWlwX3NpemUoYmFzZV9sZXZlbF9zaXplLCBtaXApOworCQl0b3Rh bF9zaXplICs9IHN2Z2EzZHN1cmZhY2VfZ2V0X2ltYWdlX2J1ZmZlcl9zaXplKGRlc2MsCisJCQkJ CQkJCSAgJnNpemUsIDApOworCX0KKworCXJldHVybiB0b3RhbF9zaXplICogbnVtX2xheWVyczsK K30KKworCisvKioKKyAqIHN2Z2EzZHN1cmZhY2VfZ2V0X3BpeGVsX29mZnNldCAtIENvbXB1dGUg dGhlIG9mZnNldCAoaW4gYnl0ZXMpIHRvIGEgcGl4ZWwKKyAqIGluIGFuIGltYWdlIChvciB2b2x1 bWUpLgorICoKKyAqIEB3aWR0aDogVGhlIGltYWdlIHdpZHRoIGluIHBpeGVscy4KKyAqIEBoZWln aHQ6IFRoZSBpbWFnZSBoZWlnaHQgaW4gcGl4ZWxzCisgKi8KK3N0YXRpYyBpbmxpbmUgdTMyCitz dmdhM2RzdXJmYWNlX2dldF9waXhlbF9vZmZzZXQoU1ZHQTNkU3VyZmFjZUZvcm1hdCBmb3JtYXQs CisJCQkgICAgICAgdTMyIHdpZHRoLCB1MzIgaGVpZ2h0LAorCQkJICAgICAgIHUzMiB4LCB1MzIg eSwgdTMyIHopCit7CisJY29uc3Qgc3RydWN0IHN2Z2EzZF9zdXJmYWNlX2Rlc2MgKmRlc2MgPSBz dmdhM2RzdXJmYWNlX2dldF9kZXNjKGZvcm1hdCk7CisJY29uc3QgdTMyIGJ3ID0gZGVzYy0+Ymxv Y2tfc2l6ZS53aWR0aCwgYmggPSBkZXNjLT5ibG9ja19zaXplLmhlaWdodDsKKwljb25zdCB1MzIg YmQgPSBkZXNjLT5ibG9ja19zaXplLmRlcHRoOworCWNvbnN0IHUzMiByb3dzdHJpZGUgPSBESVZf Uk9VTkRfVVAod2lkdGgsIGJ3KSAqIGRlc2MtPmJ5dGVzX3Blcl9ibG9jazsKKwljb25zdCB1MzIg aW1nc3RyaWRlID0gRElWX1JPVU5EX1VQKGhlaWdodCwgYmgpICogcm93c3RyaWRlOworCWNvbnN0 IHUzMiBvZmZzZXQgPSAoeiAvIGJkICogaW1nc3RyaWRlICsKKwkJCSAgICB5IC8gYmggKiByb3dz dHJpZGUgKworCQkJICAgIHggLyBidyAqIGRlc2MtPmJ5dGVzX3Blcl9ibG9jayk7CisJcmV0dXJu IG9mZnNldDsKK30KKworCitzdGF0aWMgaW5saW5lIHUzMgorc3ZnYTNkc3VyZmFjZV9nZXRfaW1h Z2Vfb2Zmc2V0KFNWR0EzZFN1cmZhY2VGb3JtYXQgZm9ybWF0LAorCQkJICAgICAgIHN1cmZfc2l6 ZV9zdHJ1Y3QgYmFzZUxldmVsU2l6ZSwKKwkJCSAgICAgICB1MzIgbnVtTWlwTGV2ZWxzLAorCQkJ ICAgICAgIHUzMiBmYWNlLAorCQkJICAgICAgIHUzMiBtaXApCisKK3sKKwl1MzIgb2Zmc2V0Owor CXUzMiBtaXBDaGFpbkJ5dGVzOworCXUzMiBtaXBDaGFpbkJ5dGVzVG9MZXZlbDsKKwl1MzIgaTsK Kwljb25zdCBzdHJ1Y3Qgc3ZnYTNkX3N1cmZhY2VfZGVzYyAqZGVzYzsKKwlzdXJmX3NpemVfc3Ry dWN0IG1pcFNpemU7CisJdTMyIGJ5dGVzOworCisJZGVzYyA9IHN2Z2EzZHN1cmZhY2VfZ2V0X2Rl c2MoZm9ybWF0KTsKKworCW1pcENoYWluQnl0ZXMgPSAwOworCW1pcENoYWluQnl0ZXNUb0xldmVs ID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgbnVtTWlwTGV2ZWxzOyBpKyspIHsKKwkJbWlwU2l6ZSA9 IHN2Z2EzZHN1cmZhY2VfZ2V0X21pcF9zaXplKGJhc2VMZXZlbFNpemUsIGkpOworCQlieXRlcyA9 IHN2Z2EzZHN1cmZhY2VfZ2V0X2ltYWdlX2J1ZmZlcl9zaXplKGRlc2MsICZtaXBTaXplLCAwKTsK KwkJbWlwQ2hhaW5CeXRlcyArPSBieXRlczsKKwkJaWYgKGkgPCBtaXApCisJCQltaXBDaGFpbkJ5 dGVzVG9MZXZlbCArPSBieXRlczsKKwl9CisKKwlvZmZzZXQgPSBtaXBDaGFpbkJ5dGVzICogZmFj ZSArIG1pcENoYWluQnl0ZXNUb0xldmVsOworCisJcmV0dXJuIG9mZnNldDsKK30KKworCisvKioK KyAqIHN2Z2EzZHN1cmZhY2VfaXNfZ2Jfc2NyZWVuX3RhcmdldF9mb3JtYXQgLSBJcyB0aGUgc3Bl Y2lmaWVkIGZvcm1hdCB1c2FibGUgYXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhIFNjcmVlblRhcmdldD8KKyAqICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAod2l0aCBqdXN0IHRoZSBHQk9iamVjdHMgY2FwLWJpdAorICog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQpCisgKiBAZm9y bWF0OiBmb3JtYXQgdG8gcXVlcmllZAorICoKKyAqIFJFVFVSTlM6CisgKiB0cnVlIGlmIHF1ZXJp ZWQgZm9ybWF0IGlzIHZhbGlkIGZvciBzY3JlZW4gdGFyZ2V0cworICovCitzdGF0aWMgaW5saW5l IGJvb2wKK3N2Z2EzZHN1cmZhY2VfaXNfZ2Jfc2NyZWVuX3RhcmdldF9mb3JtYXQoU1ZHQTNkU3Vy ZmFjZUZvcm1hdCBmb3JtYXQpCit7CisJcmV0dXJuIChmb3JtYXQgPT0gU1ZHQTNEX1g4UjhHOEI4 IHx8CisJCWZvcm1hdCA9PSBTVkdBM0RfQThSOEc4QjggfHwKKwkJZm9ybWF0ID09IFNWR0EzRF9S NUc2QjUgICB8fAorCQlmb3JtYXQgPT0gU1ZHQTNEX1gxUjVHNUI1IHx8CisJCWZvcm1hdCA9PSBT VkdBM0RfQTFSNUc1QjUgfHwKKwkJZm9ybWF0ID09IFNWR0EzRF9QOCk7Cit9CisKKworLyoqCisg KiBzdmdhM2RzdXJmYWNlX2lzX2R4X3NjcmVlbl90YXJnZXRfZm9ybWF0IC0gSXMgdGhlIHNwZWNp ZmllZCBmb3JtYXQgdXNhYmxlIGFzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYSBTY3JlZW5UYXJnZXQ/CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHdpdGggRFgxMCBlbmFibGVkKQorICoKKyAqIEBmb3JtYXQ6IGZv cm1hdCB0byBxdWVyaWVkCisgKgorICogUmVzdWx0czoKKyAqIHRydWUgaWYgcXVlcmllZCBmb3Jt YXQgaXMgdmFsaWQgZm9yIHNjcmVlbiB0YXJnZXRzCisgKi8KK3N0YXRpYyBpbmxpbmUgYm9vbAor c3ZnYTNkc3VyZmFjZV9pc19keF9zY3JlZW5fdGFyZ2V0X2Zvcm1hdChTVkdBM2RTdXJmYWNlRm9y bWF0IGZvcm1hdCkKK3sKKwlyZXR1cm4gKGZvcm1hdCA9PSBTVkdBM0RfUjhHOEI4QThfVU5PUk0g fHwKKwkJZm9ybWF0ID09IFNWR0EzRF9COEc4UjhBOF9VTk9STSB8fAorCQlmb3JtYXQgPT0gU1ZH QTNEX0I4RzhSOFg4X1VOT1JNKTsKK30KKworCisvKioKKyAqIHN2Z2EzZHN1cmZhY2VfaXNfc2Ny ZWVuX3RhcmdldF9mb3JtYXQgLSBJcyB0aGUgc3BlY2lmaWVkIGZvcm1hdCB1c2FibGUgYXMgYQor ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNjcmVlblRhcmdldD8K KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9yIHNvbWUgY29t YmluYXRpb24gb2YgY2FwcykKKyAqCisgKiBAZm9ybWF0OiBmb3JtYXQgdG8gcXVlcmllZAorICoK KyAqIFJlc3VsdHM6CisgKiB0cnVlIGlmIHF1ZXJpZWQgZm9ybWF0IGlzIHZhbGlkIGZvciBzY3Jl ZW4gdGFyZ2V0cworICovCitzdGF0aWMgaW5saW5lIGJvb2wKK3N2Z2EzZHN1cmZhY2VfaXNfc2Ny ZWVuX3RhcmdldF9mb3JtYXQoU1ZHQTNkU3VyZmFjZUZvcm1hdCBmb3JtYXQpCit7CisJaWYgKHN2 Z2EzZHN1cmZhY2VfaXNfZ2Jfc2NyZWVuX3RhcmdldF9mb3JtYXQoZm9ybWF0KSkgeworCQlyZXR1 cm4gdHJ1ZTsKKwl9CisJcmV0dXJuIHN2Z2EzZHN1cmZhY2VfaXNfZHhfc2NyZWVuX3RhcmdldF9m b3JtYXQoZm9ybWF0KTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvZGV2 aWNlX2luY2x1ZGUvc3ZnYTNkX3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L2Rldmlj ZV9pbmNsdWRlL3N2Z2EzZF90eXBlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjI3YjMzYmEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L2Rl dmljZV9pbmNsdWRlL3N2Z2EzZF90eXBlcy5oCkBAIC0wLDAgKzEsMTYzMyBAQAorLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENv cHlyaWdodCAyMDEyLTIwMTUgVk13YXJlLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK KyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg cGVyc29uCisgKiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0 ZWQgZG9jdW1lbnRhdGlvbgorICogZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0 aGUgU29mdHdhcmUgd2l0aG91dAorICogcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxp bWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksCisgKiBtb2RpZnksIG1lcmdlLCBwdWJs aXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMKKyAqIG9mIHRo ZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlz CisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp b25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np b24gbm90aWNlIHNoYWxsIGJlCisgKiBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50 aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJP VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyAqIEVYUFJFU1Mg T1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBP RgorICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB TkQKKyAqIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1Ig Q09QWVJJR0hUIEhPTERFUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S IE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgorICogQUNUSU9OIE9GIENPTlRSQUNULCBU T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJ T04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUK KyAqIFNPRlRXQVJFLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogc3ZnYTNkX3R5cGVzLmggLS0KKyAqCisg KiAgICAgICBTVkdBIDNkIGhhcmR3YXJlIGRlZmluaXRpb25zIGZvciBiYXNpYyB0eXBlcworICov CisKKyNpZm5kZWYgX1NWR0EzRF9UWVBFU19IXworI2RlZmluZSBfU1ZHQTNEX1RZUEVTX0hfCisK KyNkZWZpbmUgSU5DTFVERV9BTExPV19NT0RVTEUKKyNkZWZpbmUgSU5DTFVERV9BTExPV19VU0VS TEVWRUwKKyNkZWZpbmUgSU5DTFVERV9BTExPV19WTUNPUkUKKworI2luY2x1ZGUgImluY2x1ZGVD aGVjay5oIgorCisvKgorICogR2VuZXJpYyBUeXBlcworICovCisKKyNkZWZpbmUgU1ZHQTNEX0lO VkFMSURfSUQgICAgICAgICAoKHVpbnQzMiktMSkKKwordHlwZWRlZiB1aW50MzIgU1ZHQTNkQm9v bDsgLyogMzItYml0IEJvb2wgZGVmaW5pdGlvbiAqLwordHlwZWRlZiB1aW50MzIgU1ZHQTNkQ29s b3I7IC8qIGEsIHIsIGcsIGIgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2Jl Z2luLmgiCitzdHJ1Y3QgU1ZHQTNkQ29weVJlY3QgeworICAgdWludDMyICAgICAgICAgICAgICAg eDsKKyAgIHVpbnQzMiAgICAgICAgICAgICAgIHk7CisgICB1aW50MzIgICAgICAgICAgICAgICB3 OworICAgdWludDMyICAgICAgICAgICAgICAgaDsKKyAgIHVpbnQzMiAgICAgICAgICAgICAgIHNy Y3g7CisgICB1aW50MzIgICAgICAgICAgICAgICBzcmN5OworfQorI2luY2x1ZGUgInZtd2FyZV9w YWNrX2VuZC5oIgorU1ZHQTNkQ29weVJlY3Q7CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVf cGFja19iZWdpbi5oIgorc3RydWN0IFNWR0EzZENvcHlCb3ggeworICAgdWludDMyICAgICAgICAg ICAgICAgeDsKKyAgIHVpbnQzMiAgICAgICAgICAgICAgIHk7CisgICB1aW50MzIgICAgICAgICAg ICAgICB6OworICAgdWludDMyICAgICAgICAgICAgICAgdzsKKyAgIHVpbnQzMiAgICAgICAgICAg ICAgIGg7CisgICB1aW50MzIgICAgICAgICAgICAgICBkOworICAgdWludDMyICAgICAgICAgICAg ICAgc3JjeDsKKyAgIHVpbnQzMiAgICAgICAgICAgICAgIHNyY3k7CisgICB1aW50MzIgICAgICAg ICAgICAgICBzcmN6OworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQ29w eUJveDsKKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3Qg U1ZHQTNkUmVjdCB7CisgICB1aW50MzIgICAgICAgICAgICAgICB4OworICAgdWludDMyICAgICAg ICAgICAgICAgeTsKKyAgIHVpbnQzMiAgICAgICAgICAgICAgIHc7CisgICB1aW50MzIgICAgICAg ICAgICAgICBoOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkUmVjdDsK KwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAg dWludDMyICAgICAgICAgICAgICAgeDsKKyAgIHVpbnQzMiAgICAgICAgICAgICAgIHk7CisgICB1 aW50MzIgICAgICAgICAgICAgICB6OworICAgdWludDMyICAgICAgICAgICAgICAgdzsKKyAgIHVp bnQzMiAgICAgICAgICAgICAgIGg7CisgICB1aW50MzIgICAgICAgICAgICAgICBkOworfQorI2lu Y2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQTNkQm94OworCit0eXBlZGVmCisjaW5jbHVk ZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7CisgICB1aW50MzIgICAgICAgICAgICAg ICB4OworICAgdWludDMyICAgICAgICAgICAgICAgeTsKKyAgIHVpbnQzMiAgICAgICAgICAgICAg IHo7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RQb2ludDsKKworLyoK KyAqIFN1cmZhY2UgZm9ybWF0cy4KKyAqLwordHlwZWRlZiBlbnVtIFNWR0EzZFN1cmZhY2VGb3Jt YXQgeworICAgU1ZHQTNEX0ZPUk1BVF9JTlZBTElEICAgICAgICAgICAgICAgPSAwLAorCisgICBT VkdBM0RfWDhSOEc4QjggICAgICAgICAgICAgICAgICAgICA9IDEsCisgICBTVkdBM0RfRk9STUFU X01JTiAgICAgICAgICAgICAgICAgICA9IDEsCisKKyAgIFNWR0EzRF9BOFI4RzhCOCAgICAgICAg ICAgICAgICAgICAgID0gMiwKKworICAgU1ZHQTNEX1I1RzZCNSAgICAgICAgICAgICAgICAgICAg ICAgPSAzLAorICAgU1ZHQTNEX1gxUjVHNUI1ICAgICAgICAgICAgICAgICAgICAgPSA0LAorICAg U1ZHQTNEX0ExUjVHNUI1ICAgICAgICAgICAgICAgICAgICAgPSA1LAorICAgU1ZHQTNEX0E0UjRH NEI0ICAgICAgICAgICAgICAgICAgICAgPSA2LAorCisgICBTVkdBM0RfWl9EMzIgICAgICAgICAg ICAgICAgICAgICAgICA9IDcsCisgICBTVkdBM0RfWl9EMTYgICAgICAgICAgICAgICAgICAgICAg ICA9IDgsCisgICBTVkdBM0RfWl9EMjRTOCAgICAgICAgICAgICAgICAgICAgICA9IDksCisgICBT VkdBM0RfWl9EMTVTMSAgICAgICAgICAgICAgICAgICAgICA9IDEwLAorCisgICBTVkdBM0RfTFVN SU5BTkNFOCAgICAgICAgICAgICAgICAgICA9IDExLAorICAgU1ZHQTNEX0xVTUlOQU5DRTRfQUxQ SEE0ICAgICAgICAgICAgPSAxMiwKKyAgIFNWR0EzRF9MVU1JTkFOQ0UxNiAgICAgICAgICAgICAg ICAgID0gMTMsCisgICBTVkdBM0RfTFVNSU5BTkNFOF9BTFBIQTggICAgICAgICAgICA9IDE0LAor CisgICBTVkdBM0RfRFhUMSAgICAgICAgICAgICAgICAgICAgICAgICA9IDE1LAorICAgU1ZHQTNE X0RYVDIgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNiwKKyAgIFNWR0EzRF9EWFQzICAgICAg ICAgICAgICAgICAgICAgICAgID0gMTcsCisgICBTVkdBM0RfRFhUNCAgICAgICAgICAgICAgICAg ICAgICAgICA9IDE4LAorICAgU1ZHQTNEX0RYVDUgICAgICAgICAgICAgICAgICAgICAgICAgPSAx OSwKKworICAgU1ZHQTNEX0JVTVBVOFY4ICAgICAgICAgICAgICAgICAgICAgPSAyMCwKKyAgIFNW R0EzRF9CVU1QTDZWNVU1ICAgICAgICAgICAgICAgICAgID0gMjEsCisgICBTVkdBM0RfQlVNUFg4 TDhWOFU4ICAgICAgICAgICAgICAgICA9IDIyLAorICAgU1ZHQTNEX0JVTVBMOFY4VTggICAgICAg ICAgICAgICAgICAgPSAyMywKKworICAgU1ZHQTNEX0FSR0JfUzEwRTUgICAgICAgICAgICAgICAg ICAgPSAyNCwgICAvKiAxNi1iaXQgZmxvYXRpbmctcG9pbnQgQVJHQiAqLworICAgU1ZHQTNEX0FS R0JfUzIzRTggICAgICAgICAgICAgICAgICAgPSAyNSwgICAvKiAzMi1iaXQgZmxvYXRpbmctcG9p bnQgQVJHQiAqLworCisgICBTVkdBM0RfQTJSMTBHMTBCMTAgICAgICAgICAgICAgICAgICA9IDI2 LAorCisgICAvKiBzaWduZWQgZm9ybWF0cyAqLworICAgU1ZHQTNEX1Y4VTggICAgICAgICAgICAg ICAgICAgICAgICAgPSAyNywKKyAgIFNWR0EzRF9ROFc4VjhVOCAgICAgICAgICAgICAgICAgICAg ID0gMjgsCisgICBTVkdBM0RfQ3hWOFU4ICAgICAgICAgICAgICAgICAgICAgICA9IDI5LAorCisg ICAvKiBtaXhlZCBmb3JtYXRzICovCisgICBTVkdBM0RfWDhMOFY4VTggICAgICAgICAgICAgICAg ICAgICA9IDMwLAorICAgU1ZHQTNEX0EyVzEwVjEwVTEwICAgICAgICAgICAgICAgICAgPSAzMSwK KworICAgU1ZHQTNEX0FMUEhBOCAgICAgICAgICAgICAgICAgICAgICAgPSAzMiwKKworICAgLyog U2luZ2xlLSBhbmQgZHVhbC1jb21wb25lbnQgZmxvYXRpbmcgcG9pbnQgZm9ybWF0cyAqLworICAg U1ZHQTNEX1JfUzEwRTUgICAgICAgICAgICAgICAgICAgICAgPSAzMywKKyAgIFNWR0EzRF9SX1My M0U4ICAgICAgICAgICAgICAgICAgICAgID0gMzQsCisgICBTVkdBM0RfUkdfUzEwRTUgICAgICAg ICAgICAgICAgICAgICA9IDM1LAorICAgU1ZHQTNEX1JHX1MyM0U4ICAgICAgICAgICAgICAgICAg ICAgPSAzNiwKKworICAgU1ZHQTNEX0JVRkZFUiAgICAgICAgICAgICAgICAgICAgICAgPSAzNywK KworICAgU1ZHQTNEX1pfRDI0WDggICAgICAgICAgICAgICAgICAgICAgPSAzOCwKKworICAgU1ZH QTNEX1YxNlUxNiAgICAgICAgICAgICAgICAgICAgICAgPSAzOSwKKworICAgU1ZHQTNEX0cxNlIx NiAgICAgICAgICAgICAgICAgICAgICAgPSA0MCwKKyAgIFNWR0EzRF9BMTZCMTZHMTZSMTYgICAg ICAgICAgICAgICAgID0gNDEsCisKKyAgIC8qIFBhY2tlZCBWaWRlbyBmb3JtYXRzICovCisgICBT VkdBM0RfVVlWWSAgICAgICAgICAgICAgICAgICAgICAgICA9IDQyLAorICAgU1ZHQTNEX1lVWTIg ICAgICAgICAgICAgICAgICAgICAgICAgPSA0MywKKworICAgLyogUGxhbmFyIHZpZGVvIGZvcm1h dHMgKi8KKyAgIFNWR0EzRF9OVjEyICAgICAgICAgICAgICAgICAgICAgICAgID0gNDQsCisKKyAg IC8qIFZpZGVvIGZvcm1hdCB3aXRoIGFscGhhICovCisgICBTVkdBM0RfQVlVViAgICAgICAgICAg ICAgICAgICAgICAgICA9IDQ1LAorCisgICBTVkdBM0RfUjMyRzMyQjMyQTMyX1RZUEVMRVNTICAg ICAgICA9IDQ2LAorICAgU1ZHQTNEX1IzMkczMkIzMkEzMl9VSU5UICAgICAgICAgICAgPSA0NywK KyAgIFNWR0EzRF9SMzJHMzJCMzJBMzJfU0lOVCAgICAgICAgICAgID0gNDgsCisgICBTVkdBM0Rf UjMyRzMyQjMyX1RZUEVMRVNTICAgICAgICAgICA9IDQ5LAorICAgU1ZHQTNEX1IzMkczMkIzMl9G TE9BVCAgICAgICAgICAgICAgPSA1MCwKKyAgIFNWR0EzRF9SMzJHMzJCMzJfVUlOVCAgICAgICAg ICAgICAgID0gNTEsCisgICBTVkdBM0RfUjMyRzMyQjMyX1NJTlQgICAgICAgICAgICAgICA9IDUy LAorICAgU1ZHQTNEX1IxNkcxNkIxNkExNl9UWVBFTEVTUyAgICAgICAgPSA1MywKKyAgIFNWR0Ez RF9SMTZHMTZCMTZBMTZfVUlOVCAgICAgICAgICAgID0gNTQsCisgICBTVkdBM0RfUjE2RzE2QjE2 QTE2X1NOT1JNICAgICAgICAgICA9IDU1LAorICAgU1ZHQTNEX1IxNkcxNkIxNkExNl9TSU5UICAg ICAgICAgICAgPSA1NiwKKyAgIFNWR0EzRF9SMzJHMzJfVFlQRUxFU1MgICAgICAgICAgICAgID0g NTcsCisgICBTVkdBM0RfUjMyRzMyX1VJTlQgICAgICAgICAgICAgICAgICA9IDU4LAorICAgU1ZH QTNEX1IzMkczMl9TSU5UICAgICAgICAgICAgICAgICAgPSA1OSwKKyAgIFNWR0EzRF9SMzJHOFgy NF9UWVBFTEVTUyAgICAgICAgICAgID0gNjAsCisgICBTVkdBM0RfRDMyX0ZMT0FUX1M4WDI0X1VJ TlQgICAgICAgICA9IDYxLAorICAgU1ZHQTNEX1IzMl9GTE9BVF9YOFgyNF9UWVBFTEVTUyAgICAg PSA2MiwKKyAgIFNWR0EzRF9YMzJfVFlQRUxFU1NfRzhYMjRfVUlOVCAgICAgID0gNjMsCisgICBT VkdBM0RfUjEwRzEwQjEwQTJfVFlQRUxFU1MgICAgICAgICA9IDY0LAorICAgU1ZHQTNEX1IxMEcx MEIxMEEyX1VJTlQgICAgICAgICAgICAgPSA2NSwKKyAgIFNWR0EzRF9SMTFHMTFCMTBfRkxPQVQg ICAgICAgICAgICAgID0gNjYsCisgICBTVkdBM0RfUjhHOEI4QThfVFlQRUxFU1MgICAgICAgICAg ICA9IDY3LAorICAgU1ZHQTNEX1I4RzhCOEE4X1VOT1JNICAgICAgICAgICAgICAgPSA2OCwKKyAg IFNWR0EzRF9SOEc4QjhBOF9VTk9STV9TUkdCICAgICAgICAgID0gNjksCisgICBTVkdBM0RfUjhH OEI4QThfVUlOVCAgICAgICAgICAgICAgICA9IDcwLAorICAgU1ZHQTNEX1I4RzhCOEE4X1NJTlQg ICAgICAgICAgICAgICAgPSA3MSwKKyAgIFNWR0EzRF9SMTZHMTZfVFlQRUxFU1MgICAgICAgICAg ICAgID0gNzIsCisgICBTVkdBM0RfUjE2RzE2X1VJTlQgICAgICAgICAgICAgICAgICA9IDczLAor ICAgU1ZHQTNEX1IxNkcxNl9TSU5UICAgICAgICAgICAgICAgICAgPSA3NCwKKyAgIFNWR0EzRF9S MzJfVFlQRUxFU1MgICAgICAgICAgICAgICAgID0gNzUsCisgICBTVkdBM0RfRDMyX0ZMT0FUICAg ICAgICAgICAgICAgICAgICA9IDc2LAorICAgU1ZHQTNEX1IzMl9VSU5UICAgICAgICAgICAgICAg ICAgICAgPSA3NywKKyAgIFNWR0EzRF9SMzJfU0lOVCAgICAgICAgICAgICAgICAgICAgID0gNzgs CisgICBTVkdBM0RfUjI0RzhfVFlQRUxFU1MgICAgICAgICAgICAgICA9IDc5LAorICAgU1ZHQTNE X0QyNF9VTk9STV9TOF9VSU5UICAgICAgICAgICAgPSA4MCwKKyAgIFNWR0EzRF9SMjRfVU5PUk1f WDhfVFlQRUxFU1MgICAgICAgID0gODEsCisgICBTVkdBM0RfWDI0X1RZUEVMRVNTX0c4X1VJTlQg ICAgICAgICA9IDgyLAorICAgU1ZHQTNEX1I4RzhfVFlQRUxFU1MgICAgICAgICAgICAgICAgPSA4 MywKKyAgIFNWR0EzRF9SOEc4X1VOT1JNICAgICAgICAgICAgICAgICAgID0gODQsCisgICBTVkdB M0RfUjhHOF9VSU5UICAgICAgICAgICAgICAgICAgICA9IDg1LAorICAgU1ZHQTNEX1I4RzhfU0lO VCAgICAgICAgICAgICAgICAgICAgPSA4NiwKKyAgIFNWR0EzRF9SMTZfVFlQRUxFU1MgICAgICAg ICAgICAgICAgID0gODcsCisgICBTVkdBM0RfUjE2X1VOT1JNICAgICAgICAgICAgICAgICAgICA9 IDg4LAorICAgU1ZHQTNEX1IxNl9VSU5UICAgICAgICAgICAgICAgICAgICAgPSA4OSwKKyAgIFNW R0EzRF9SMTZfU05PUk0gICAgICAgICAgICAgICAgICAgID0gOTAsCisgICBTVkdBM0RfUjE2X1NJ TlQgICAgICAgICAgICAgICAgICAgICA9IDkxLAorICAgU1ZHQTNEX1I4X1RZUEVMRVNTICAgICAg ICAgICAgICAgICAgPSA5MiwKKyAgIFNWR0EzRF9SOF9VTk9STSAgICAgICAgICAgICAgICAgICAg ID0gOTMsCisgICBTVkdBM0RfUjhfVUlOVCAgICAgICAgICAgICAgICAgICAgICA9IDk0LAorICAg U1ZHQTNEX1I4X1NOT1JNICAgICAgICAgICAgICAgICAgICAgPSA5NSwKKyAgIFNWR0EzRF9SOF9T SU5UICAgICAgICAgICAgICAgICAgICAgID0gOTYsCisgICBTVkdBM0RfUDggICAgICAgICAgICAg ICAgICAgICAgICAgICA9IDk3LAorICAgU1ZHQTNEX1I5RzlCOUU1X1NIQVJFREVYUCAgICAgICAg ICAgPSA5OCwKKyAgIFNWR0EzRF9SOEc4X0I4RzhfVU5PUk0gICAgICAgICAgICAgID0gOTksCisg ICBTVkdBM0RfRzhSOF9HOEI4X1VOT1JNICAgICAgICAgICAgICA9IDEwMCwKKyAgIFNWR0EzRF9C QzFfVFlQRUxFU1MgICAgICAgICAgICAgICAgID0gMTAxLAorICAgU1ZHQTNEX0JDMV9VTk9STV9T UkdCICAgICAgICAgICAgICAgPSAxMDIsCisgICBTVkdBM0RfQkMyX1RZUEVMRVNTICAgICAgICAg ICAgICAgICA9IDEwMywKKyAgIFNWR0EzRF9CQzJfVU5PUk1fU1JHQiAgICAgICAgICAgICAgID0g MTA0LAorICAgU1ZHQTNEX0JDM19UWVBFTEVTUyAgICAgICAgICAgICAgICAgPSAxMDUsCisgICBT VkdBM0RfQkMzX1VOT1JNX1NSR0IgICAgICAgICAgICAgICA9IDEwNiwKKyAgIFNWR0EzRF9CQzRf VFlQRUxFU1MgICAgICAgICAgICAgICAgID0gMTA3LAorICAgU1ZHQTNEX0FUSTEgICAgICAgICAg ICAgICAgICAgICAgICAgPSAxMDgsICAgLyogRFg5LXNwZWNpZmljIEJDNF9VTk9STSAqLworICAg U1ZHQTNEX0JDNF9TTk9STSAgICAgICAgICAgICAgICAgICAgPSAxMDksCisgICBTVkdBM0RfQkM1 X1RZUEVMRVNTICAgICAgICAgICAgICAgICA9IDExMCwKKyAgIFNWR0EzRF9BVEkyICAgICAgICAg ICAgICAgICAgICAgICAgID0gMTExLCAgIC8qIERYOS1zcGVjaWZpYyBCQzVfVU5PUk0gKi8KKyAg IFNWR0EzRF9CQzVfU05PUk0gICAgICAgICAgICAgICAgICAgID0gMTEyLAorICAgU1ZHQTNEX1Ix MEcxMEIxMF9YUl9CSUFTX0EyX1VOT1JNICAgPSAxMTMsCisgICBTVkdBM0RfQjhHOFI4QThfVFlQ RUxFU1MgICAgICAgICAgICA9IDExNCwKKyAgIFNWR0EzRF9COEc4UjhBOF9VTk9STV9TUkdCICAg ICAgICAgID0gMTE1LAorICAgU1ZHQTNEX0I4RzhSOFg4X1RZUEVMRVNTICAgICAgICAgICAgPSAx MTYsCisgICBTVkdBM0RfQjhHOFI4WDhfVU5PUk1fU1JHQiAgICAgICAgICA9IDExNywKKworICAg LyogQWR2YW5jZWQgZGVwdGggZm9ybWF0cy4gKi8KKyAgIFNWR0EzRF9aX0RGMTYgICAgICAgICAg ICAgICAgICAgICAgID0gMTE4LAorICAgU1ZHQTNEX1pfREYyNCAgICAgICAgICAgICAgICAgICAg ICAgPSAxMTksCisgICBTVkdBM0RfWl9EMjRTOF9JTlQgICAgICAgICAgICAgICAgICA9IDEyMCwK KworICAgLyogUGxhbmFyIHZpZGVvIGZvcm1hdHMuICovCisgICBTVkdBM0RfWVYxMiAgICAgICAg ICAgICAgICAgICAgICAgICA9IDEyMSwKKworICAgU1ZHQTNEX1IzMkczMkIzMkEzMl9GTE9BVCAg ICAgICAgICAgPSAxMjIsCisgICBTVkdBM0RfUjE2RzE2QjE2QTE2X0ZMT0FUICAgICAgICAgICA9 IDEyMywKKyAgIFNWR0EzRF9SMTZHMTZCMTZBMTZfVU5PUk0gICAgICAgICAgID0gMTI0LAorICAg U1ZHQTNEX1IzMkczMl9GTE9BVCAgICAgICAgICAgICAgICAgPSAxMjUsCisgICBTVkdBM0RfUjEw RzEwQjEwQTJfVU5PUk0gICAgICAgICAgICA9IDEyNiwKKyAgIFNWR0EzRF9SOEc4QjhBOF9TTk9S TSAgICAgICAgICAgICAgID0gMTI3LAorICAgU1ZHQTNEX1IxNkcxNl9GTE9BVCAgICAgICAgICAg ICAgICAgPSAxMjgsCisgICBTVkdBM0RfUjE2RzE2X1VOT1JNICAgICAgICAgICAgICAgICA9IDEy OSwKKyAgIFNWR0EzRF9SMTZHMTZfU05PUk0gICAgICAgICAgICAgICAgID0gMTMwLAorICAgU1ZH QTNEX1IzMl9GTE9BVCAgICAgICAgICAgICAgICAgICAgPSAxMzEsCisgICBTVkdBM0RfUjhHOF9T Tk9STSAgICAgICAgICAgICAgICAgICA9IDEzMiwKKyAgIFNWR0EzRF9SMTZfRkxPQVQgICAgICAg ICAgICAgICAgICAgID0gMTMzLAorICAgU1ZHQTNEX0QxNl9VTk9STSAgICAgICAgICAgICAgICAg ICAgPSAxMzQsCisgICBTVkdBM0RfQThfVU5PUk0gICAgICAgICAgICAgICAgICAgICA9IDEzNSwK KyAgIFNWR0EzRF9CQzFfVU5PUk0gICAgICAgICAgICAgICAgICAgID0gMTM2LAorICAgU1ZHQTNE X0JDMl9VTk9STSAgICAgICAgICAgICAgICAgICAgPSAxMzcsCisgICBTVkdBM0RfQkMzX1VOT1JN ICAgICAgICAgICAgICAgICAgICA9IDEzOCwKKyAgIFNWR0EzRF9CNUc2UjVfVU5PUk0gICAgICAg ICAgICAgICAgID0gMTM5LAorICAgU1ZHQTNEX0I1RzVSNUExX1VOT1JNICAgICAgICAgICAgICAg PSAxNDAsCisgICBTVkdBM0RfQjhHOFI4QThfVU5PUk0gICAgICAgICAgICAgICA9IDE0MSwKKyAg IFNWR0EzRF9COEc4UjhYOF9VTk9STSAgICAgICAgICAgICAgID0gMTQyLAorICAgU1ZHQTNEX0JD NF9VTk9STSAgICAgICAgICAgICAgICAgICAgPSAxNDMsCisgICBTVkdBM0RfQkM1X1VOT1JNICAg ICAgICAgICAgICAgICAgICA9IDE0NCwKKworICAgU1ZHQTNEX0ZPUk1BVF9NQVgKK30gU1ZHQTNk U3VyZmFjZUZvcm1hdDsKKwordHlwZWRlZiBlbnVtIFNWR0EzZFN1cmZhY2VGbGFncyB7CisgICBT VkdBM0RfU1VSRkFDRV9DVUJFTUFQICAgICAgICAgICAgICAgPSAoMSA8PCAwKSwKKworICAgLyoK KyAgICAqIEhJTlQgZmxhZ3MgYXJlIG5vdCBlbmZvcmNlZCBieSB0aGUgZGV2aWNlIGJ1dCBhcmUg dXNlZnVsIGZvcgorICAgICogcGVyZm9ybWFuY2UuCisgICAgKi8KKyAgIFNWR0EzRF9TVVJGQUNF X0hJTlRfU1RBVElDICAgICAgICAgICA9ICgxIDw8IDEpLAorICAgU1ZHQTNEX1NVUkZBQ0VfSElO VF9EWU5BTUlDICAgICAgICAgID0gKDEgPDwgMiksCisgICBTVkdBM0RfU1VSRkFDRV9ISU5UX0lO REVYQlVGRkVSICAgICAgPSAoMSA8PCAzKSwKKyAgIFNWR0EzRF9TVVJGQUNFX0hJTlRfVkVSVEVY QlVGRkVSICAgICA9ICgxIDw8IDQpLAorICAgU1ZHQTNEX1NVUkZBQ0VfSElOVF9URVhUVVJFICAg ICAgICAgID0gKDEgPDwgNSksCisgICBTVkdBM0RfU1VSRkFDRV9ISU5UX1JFTkRFUlRBUkdFVCAg ICAgPSAoMSA8PCA2KSwKKyAgIFNWR0EzRF9TVVJGQUNFX0hJTlRfREVQVEhTVEVOQ0lMICAgICA9 ICgxIDw8IDcpLAorICAgU1ZHQTNEX1NVUkZBQ0VfSElOVF9XUklURU9OTFkgICAgICAgID0gKDEg PDwgOCksCisgICBTVkdBM0RfU1VSRkFDRV9NQVNLQUJMRV9BTlRJQUxJQVMgICAgPSAoMSA8PCA5 KSwKKyAgIFNWR0EzRF9TVVJGQUNFX0FVVE9HRU5NSVBNQVBTICAgICAgICA9ICgxIDw8IDEwKSwK KyAgIFNWR0EzRF9TVVJGQUNFX0RFQ09ERV9SRU5ERVJUQVJHRVQgICA9ICgxIDw8IDExKSwKKwor ICAgLyoKKyAgICAqIElzIHRoaXMgc3VyZmFjZSB1c2luZyBhIGJhc2UtbGV2ZWwgcGl0Y2ggZm9y IGl0J3MgbW9iIGJhY2tpbmc/CisgICAgKgorICAgICogVGhpcyBmbGFnIGlzIG5vdCBpbnRlbmRl ZCB0byBiZSBzZXQgYnkgZ3Vlc3QtZHJpdmVycywgYnV0IGlzIGluc3RlYWQKKyAgICAqIHNldCBi eSB0aGUgZGV2aWNlIHdoZW4gdGhlIHN1cmZhY2UgaXMgYm91bmQgdG8gYSBtb2Igd2l0aCBhIHNw ZWNpZmllZAorICAgICogcGl0Y2guCisgICAgKi8KKyAgIFNWR0EzRF9TVVJGQUNFX01PQl9QSVRD SCAgICAgICAgICAgICA9ICgxIDw8IDEyKSwKKworICAgU1ZHQTNEX1NVUkZBQ0VfSU5BQ1RJVkUg ICAgICAgICAgICAgID0gKDEgPDwgMTMpLAorICAgU1ZHQTNEX1NVUkZBQ0VfSElOVF9SVF9MT0NL QUJMRSAgICAgID0gKDEgPDwgMTQpLAorICAgU1ZHQTNEX1NVUkZBQ0VfVk9MVU1FICAgICAgICAg ICAgICAgID0gKDEgPDwgMTUpLAorCisgICAvKgorICAgICogUmVxdWlyZWQgdG8gYmUgc2V0IG9u IGEgc3VyZmFjZSB0byBiaW5kIGl0IHRvIGEgc2NyZWVuIHRhcmdldC4KKyAgICAqLworICAgU1ZH QTNEX1NVUkZBQ0VfU0NSRUVOVEFSR0VUICAgICAgICAgID0gKDEgPDwgMTYpLAorCisgICAvKgor ICAgICogQWxpZ24gaW1hZ2VzIGluIHRoZSBndWVzdC1iYWNraW5nIG1vYiB0byAxNi1ieXRlcy4K KyAgICAqLworICAgU1ZHQTNEX1NVUkZBQ0VfQUxJR04xNiAgICAgICAgICAgICAgID0gKDEgPDwg MTcpLAorCisgICBTVkdBM0RfU1VSRkFDRV8xRCAgICAgICAgICAgICAgICAgICAgPSAoMSA8PCAx OCksCisgICBTVkdBM0RfU1VSRkFDRV9BUlJBWSAgICAgICAgICAgICAgICAgPSAoMSA8PCAxOSks CisKKyAgIC8qCisgICAgKiBCaW5kIGZsYWdzLgorICAgICogVGhlc2UgYXJlIGVuZm9yY2VkIGZv ciBhbnkgc3VyZmFjZSBkZWZpbmVkIHdpdGggRGVmaW5lR0JTdXJmYWNlX3YyLgorICAgICovCisg ICBTVkdBM0RfU1VSRkFDRV9CSU5EX1ZFUlRFWF9CVUZGRVIgICAgPSAoMSA8PCAyMCksCisgICBT VkdBM0RfU1VSRkFDRV9CSU5EX0lOREVYX0JVRkZFUiAgICAgPSAoMSA8PCAyMSksCisgICBTVkdB M0RfU1VSRkFDRV9CSU5EX0NPTlNUQU5UX0JVRkZFUiAgPSAoMSA8PCAyMiksCisgICBTVkdBM0Rf U1VSRkFDRV9CSU5EX1NIQURFUl9SRVNPVVJDRSAgPSAoMSA8PCAyMyksCisgICBTVkdBM0RfU1VS RkFDRV9CSU5EX1JFTkRFUl9UQVJHRVQgICAgPSAoMSA8PCAyNCksCisgICBTVkdBM0RfU1VSRkFD RV9CSU5EX0RFUFRIX1NURU5DSUwgICAgPSAoMSA8PCAyNSksCisgICBTVkdBM0RfU1VSRkFDRV9C SU5EX1NUUkVBTV9PVVRQVVQgICAgPSAoMSA8PCAyNiksCisKKyAgIC8qCisgICAgKiBBIG5vdGUg b24gc3RhZ2luZyBmbGFnczoKKyAgICAqCisgICAgKiBUaGUgU1RBR0lORyBmbGFncyBub3RlcyB0 aGF0IHRoZSBzdXJmYWNlIHdpbGwgbm90IGJlIHVzZWQgZGlyZWN0bHkgYnkgdGhlCisgICAgKiBk cmF3aW5nIHBpcGVsaW5lLCBpLmUuIHRoYXQgaXQgd2lsbCBub3QgYmUgYm91bmQgdG8gYW55IGJp bmQgcG9pbnQuCisgICAgKiBTdGFnaW5nIHN1cmZhY2VzIG1heSBiZSB1c2VkIGJ5IGNvcHkgb3Bl cmF0aW9ucyB0byBtb3ZlIGRhdGEgaW4gYW5kIG91dAorICAgICogb2Ygb3RoZXIgc3VyZmFjZXMu CisgICAgKgorICAgICogVGhlIEhJTlRfSU5ESVJFQ1RfVVBEQVRFIGZsYWcgc3VnZ2VzdHMgdGhh dCB0aGUgc3VyZmFjZSB3aWxsIHJlY2VpdmUKKyAgICAqIHVwZGF0ZXMgaW5kaXJlY3RseSwgaS5l LiB0aGUgc3VyZmFjZSB3aWxsIG5vdCBiZSB1cGRhdGVkIGRpcmVjdGx5LCBidXQKKyAgICAqIHdp bGwgcmVjZWl2ZSBjb3BpZXMgZnJvbSBzdGFnaW5nIHN1cmZhY2VzLgorICAgICovCisgICBTVkdB M0RfU1VSRkFDRV9TVEFHSU5HX1VQTE9BRCAgICAgICAgPSAoMSA8PCAyNyksCisgICBTVkdBM0Rf U1VSRkFDRV9TVEFHSU5HX0RPV05MT0FEICAgICAgPSAoMSA8PCAyOCksCisgICBTVkdBM0RfU1VS RkFDRV9ISU5UX0lORElSRUNUX1VQREFURSAgPSAoMSA8PCAyOSksCisKKyAgIC8qCisgICAgKiBT ZXR0aW5nIHRoaXMgZmxhZyBhbGxvdyB0aGlzIHN1cmZhY2UgdG8gYmUgdXNlZCB3aXRoIHRoZQor ICAgICogU1ZHQV8zRF9DTURfRFhfVFJBTlNGRVJfRlJPTV9CVUZGRVIgY29tbWFuZC4gIEl0IGlz IG9ubHkgdmFsaWQgZm9yCisgICAgKiBidWZmZXIgc3VyZmFjZXMsIGFuIG5vIGJpbmQgZmxhZ3Mg YXJlIGFsbG93ZWQgdG8gYmUgc2V0IG9uIHN1cmZhY2VzCisgICAgKiB3aXRoIHRoaXMgZmxhZy4K KyAgICAqLworICAgU1ZHQTNEX1NVUkZBQ0VfVFJBTlNGRVJfRlJPTV9CVUZGRVIgID0gKDEgPDwg MzApLAorCisgICAvKgorICAgICogTWFya2VyIGZvciB0aGUgbGFzdCBkZWZpbmVkIGJpdC4KKyAg ICAqLworICAgU1ZHQTNEX1NVUkZBQ0VfRkxBR19NQVggICAgICAgICAgICAgID0gKDEgPDwgMzEp LAorfSBTVkdBM2RTdXJmYWNlRmxhZ3M7CisKKyNkZWZpbmUgU1ZHQTNEX1NVUkZBQ0VfSEJfRElT QUxMT1dFRF9NQVNLICAgICAgICBcCisgICAgICAgICggIFNWR0EzRF9TVVJGQUNFX01PQl9QSVRD SCAgICB8ICAgICAgICAgXAorICAgICAgICAgICBTVkdBM0RfU1VSRkFDRV9TQ1JFRU5UQVJHRVQg fCAgICAgICAgIFwKKyAgICAgICAgICAgU1ZHQTNEX1NVUkZBQ0VfQUxJR04xNiB8ICAgICAgICAg ICAgICBcCisgICAgICAgICAgIFNWR0EzRF9TVVJGQUNFX0JJTkRfQ09OU1RBTlRfQlVGRkVSIHwg XAorICAgICAgICAgICBTVkdBM0RfU1VSRkFDRV9CSU5EX1NUUkVBTV9PVVRQVVQgfCAgIFwKKyAg ICAgICAgICAgU1ZHQTNEX1NVUkZBQ0VfU1RBR0lOR19VUExPQUQgfCAgICAgICBcCisgICAgICAg ICAgIFNWR0EzRF9TVVJGQUNFX1NUQUdJTkdfRE9XTkxPQUQgfCAgICAgXAorICAgICAgICAgICBT VkdBM0RfU1VSRkFDRV9ISU5UX0lORElSRUNUX1VQREFURSB8IFwKKyAgICAgICAgICAgU1ZHQTNE X1NVUkZBQ0VfVFJBTlNGRVJfRlJPTV9CVUZGRVIgICBcCisgICAgICAgICkKKworI2RlZmluZSBT VkdBM0RfU1VSRkFDRV8yRF9ESVNBTExPV0VEX01BU0sgICAgICAgICAgIFwKKyAgICAgICAgKCAg U1ZHQTNEX1NVUkZBQ0VfQ1VCRU1BUCB8ICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgIFNW R0EzRF9TVVJGQUNFX01BU0tBQkxFX0FOVElBTElBUyB8ICAgICAgXAorICAgICAgICAgICBTVkdB M0RfU1VSRkFDRV9BVVRPR0VOTUlQTUFQUyB8ICAgICAgICAgIFwKKyAgICAgICAgICAgU1ZHQTNE X1NVUkZBQ0VfREVDT0RFX1JFTkRFUlRBUkdFVCB8ICAgICBcCisgICAgICAgICAgIFNWR0EzRF9T VVJGQUNFX1ZPTFVNRSB8ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICBTVkdBM0RfU1VS RkFDRV8xRCB8ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgU1ZHQTNEX1NVUkZB Q0VfQVJSQVkgfCAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgIFNWR0EzRF9TVVJGQUNF X0JJTkRfVkVSVEVYX0JVRkZFUiB8ICAgICAgXAorICAgICAgICAgICBTVkdBM0RfU1VSRkFDRV9C SU5EX0lOREVYX0JVRkZFUiB8ICAgICAgIFwKKyAgICAgICAgICAgU1ZHQTNEX1NVUkZBQ0VfQklO RF9DT05TVEFOVF9CVUZGRVIgfCAgICBcCisgICAgICAgICAgIFNWR0EzRF9TVVJGQUNFX0JJTkRf REVQVEhfU1RFTkNJTCB8ICAgICAgXAorICAgICAgICAgICBTVkdBM0RfU1VSRkFDRV9CSU5EX1NU UkVBTV9PVVRQVVQgfCAgICAgIFwKKyAgICAgICAgICAgU1ZHQTNEX1NVUkZBQ0VfVFJBTlNGRVJf RlJPTV9CVUZGRVIgICAgICBcCisgICAgICAgICkKKworI2RlZmluZSBTVkdBM0RfU1VSRkFDRV9T Q1JFRU5UQVJHRVRfRElTQUxMT1dFRF9NQVNLIFwKKyAgICAgICAgKCAgU1ZHQTNEX1NVUkZBQ0Vf Q1VCRU1BUCB8ICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgIFNWR0EzRF9TVVJGQUNFX0FV VE9HRU5NSVBNQVBTIHwgICAgICAgICAgXAorICAgICAgICAgICBTVkdBM0RfU1VSRkFDRV9ERUNP REVfUkVOREVSVEFSR0VUIHwgICAgIFwKKyAgICAgICAgICAgU1ZHQTNEX1NVUkZBQ0VfVk9MVU1F IHwgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgIFNWR0EzRF9TVVJGQUNFXzFEIHwgICAg ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICBTVkdBM0RfU1VSRkFDRV9CSU5EX1ZFUlRF WF9CVUZGRVIgfCAgICAgIFwKKyAgICAgICAgICAgU1ZHQTNEX1NVUkZBQ0VfQklORF9JTkRFWF9C VUZGRVIgfCAgICAgICBcCisgICAgICAgICAgIFNWR0EzRF9TVVJGQUNFX0JJTkRfQ09OU1RBTlRf QlVGRkVSIHwgICAgXAorICAgICAgICAgICBTVkdBM0RfU1VSRkFDRV9CSU5EX0RFUFRIX1NURU5D SUwgfCAgICAgIFwKKyAgICAgICAgICAgU1ZHQTNEX1NVUkZBQ0VfQklORF9TVFJFQU1fT1VUUFVU IHwgICAgICBcCisgICAgICAgICAgIFNWR0EzRF9TVVJGQUNFX0lOQUNUSVZFIHwgICAgICAgICAg ICAgICAgXAorICAgICAgICAgICBTVkdBM0RfU1VSRkFDRV9TVEFHSU5HX1VQTE9BRCB8ICAgICAg ICAgIFwKKyAgICAgICAgICAgU1ZHQTNEX1NVUkZBQ0VfU1RBR0lOR19ET1dOTE9BRCB8ICAgICAg ICBcCisgICAgICAgICAgIFNWR0EzRF9TVVJGQUNFX0hJTlRfSU5ESVJFQ1RfVVBEQVRFIHwgICAg XAorICAgICAgICAgICBTVkdBM0RfU1VSRkFDRV9UUkFOU0ZFUl9GUk9NX0JVRkZFUiAgICAgIFwK KyAgICAgICAgKQorCisjZGVmaW5lIFNWR0EzRF9TVVJGQUNFX0RYX09OTFlfTUFTSyAgICAgICAg ICAgICBcCisgICAgICAgICggIFNWR0EzRF9TVVJGQUNFX0JJTkRfU1RSRUFNX09VVFBVVCB8ICBc CisgICAgICAgICAgIFNWR0EzRF9TVVJGQUNFX1RSQU5TRkVSX0ZST01fQlVGRkVSICBcCisKKyNk ZWZpbmUgU1ZHQTNEX1NVUkZBQ0VfU1RBR0lOR19NQVNLICAgICAgICAgICAgIFwKKyAgICAgICAg KCAgU1ZHQTNEX1NVUkZBQ0VfU1RBR0lOR19VUExPQUQgfCAgICAgIFwKKyAgICAgICAgICAgU1ZH QTNEX1NVUkZBQ0VfU1RBR0lOR19ET1dOTE9BRCAgICAgIFwKKyAgICAgICAgKQorCisjZGVmaW5l IFNWR0EzRF9TVVJGQUNFX0JJTkRfTUFTSyAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKCAg U1ZHQTNEX1NVUkZBQ0VfQklORF9WRVJURVhfQlVGRkVSICAgfCAgXAorICAgICAgICAgICBTVkdB M0RfU1VSRkFDRV9CSU5EX0lOREVYX0JVRkZFUiAgICB8ICBcCisgICAgICAgICAgIFNWR0EzRF9T VVJGQUNFX0JJTkRfQ09OU1RBTlRfQlVGRkVSIHwgIFwKKyAgICAgICAgICAgU1ZHQTNEX1NVUkZB Q0VfQklORF9TSEFERVJfUkVTT1VSQ0UgfCAgXAorICAgICAgICAgICBTVkdBM0RfU1VSRkFDRV9C SU5EX1JFTkRFUl9UQVJHRVQgICB8ICBcCisgICAgICAgICAgIFNWR0EzRF9TVVJGQUNFX0JJTkRf REVQVEhfU1RFTkNJTCAgIHwgIFwKKyAgICAgICAgICAgU1ZHQTNEX1NVUkZBQ0VfQklORF9TVFJF QU1fT1VUUFVUICAgICAgXAorICAgICAgICApCisKK3R5cGVkZWYgZW51bSB7CisgICBTVkdBM0RG T1JNQVRfT1BfVEVYVFVSRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAw MDEsCisgICBTVkdBM0RGT1JNQVRfT1BfVk9MVU1FVEVYVFVSRSAgICAgICAgICAgICAgICAgICAg ICAgICA9IDB4MDAwMDAwMDIsCisgICBTVkdBM0RGT1JNQVRfT1BfQ1VCRVRFWFRVUkUgICAgICAg ICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDQsCisgICBTVkdBM0RGT1JNQVRfT1BfT0ZG U0NSRUVOX1JFTkRFUlRBUkdFVCAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDgsCisgICBTVkdB M0RGT1JNQVRfT1BfU0FNRV9GT1JNQVRfUkVOREVSVEFSR0VUICAgICAgICAgICAgICA9IDB4MDAw MDAwMTAsCisgICBTVkdBM0RGT1JNQVRfT1BfWlNURU5DSUwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA9IDB4MDAwMDAwNDAsCisgICBTVkdBM0RGT1JNQVRfT1BfWlNURU5DSUxfV0lUSF9B UkJJVFJBUllfQ09MT1JfREVQVEggICA9IDB4MDAwMDAwODAsCisKKy8qCisgKiBUaGlzIGZvcm1h dCBjYW4gYmUgdXNlZCBhcyBhIHJlbmRlciB0YXJnZXQgaWYgdGhlIGN1cnJlbnQgZGlzcGxheSBt b2RlCisgKiBpcyB0aGUgc2FtZSBkZXB0aCBpZiB0aGUgYWxwaGEgY2hhbm5lbCBpcyBpZ25vcmVk LiBlLmcuIGlmIHRoZSBkZXZpY2UKKyAqIGNhbiByZW5kZXIgdG8gQThSOEc4Qjggd2hlbiB0aGUg ZGlzcGxheSBtb2RlIGlzIFg4UjhHOEI4LCB0aGVuIHRoZQorICogZm9ybWF0IG9wIGxpc3QgZW50 cnkgZm9yIEE4UjhHOEI4IHNob3VsZCBoYXZlIHRoaXMgY2FwLgorICovCisgICBTVkdBM0RGT1JN QVRfT1BfU0FNRV9GT1JNQVRfVVBfVE9fQUxQSEFfUkVOREVSVEFSR0VUICA9IDB4MDAwMDAxMDAs CisKKy8qCisgKiBUaGlzIGZvcm1hdCBjb250YWlucyBEaXJlY3REcmF3IHN1cHBvcnQgKGluY2x1 ZGluZyBGbGlwKS4gIFRoaXMgZmxhZworICogc2hvdWxkIG5vdCB0byBiZSBzZXQgb24gYWxwaGEg Zm9ybWF0cy4KKyAqLworICAgU1ZHQTNERk9STUFUX09QX0RJU1BMQVlNT0RFICAgICAgICAgICAg ICAgICAgICAgICAgICAgPSAweDAwMDAwNDAwLAorCisvKgorICogVGhlIHJhc3Rlcml6ZXIgY2Fu IHN1cHBvcnQgc29tZSBsZXZlbCBvZiBEaXJlY3QzRCBzdXBwb3J0IGluIHRoaXMgZm9ybWF0Cisg KiBhbmQgaW1wbGllcyB0aGF0IHRoZSBkcml2ZXIgY2FuIGNyZWF0ZSBhIENvbnRleHQgaW4gdGhp cyBtb2RlIChmb3Igc29tZQorICogcmVuZGVyIHRhcmdldCBmb3JtYXQpLiAgV2hlbiB0aGlzIGZs YWcgaXMgc2V0LCB0aGUgU1ZHQTNERk9STUFUX09QX0RJU1BMQVlNT0RFCisgKiBmbGFnIG11c3Qg YWxzbyBiZSBzZXQuCisgKi8KKyAgIFNWR0EzREZPUk1BVF9PUF8zREFDQ0VMRVJBVElPTiAgICAg ICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDgwMCwKKworLyoKKyAqIFRoaXMgaXMgc2V0IGZv ciBhIHByaXZhdGUgZm9ybWF0IHdoZW4gdGhlIGRyaXZlciBoYXMgcHV0IHRoZSBicHAgaW4KKyAq IHRoZSBzdHJ1Y3R1cmUuCisgKi8KKyAgIFNWR0EzREZPUk1BVF9PUF9QSVhFTFNJWkUgICAgICAg ICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMTAwMCwKKworLyoKKyAqIEluZGljYXRlcyB0 aGF0IHRoaXMgZm9ybWF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYW55IFJHQiBmb3JtYXQgZm9yIHdo aWNoCisgKiBTVkdBM0RGT1JNQVRfT1BfTUVNQkVST0ZHUk9VUF9BUkdCIGlzIHNwZWNpZmllZAor ICovCisgICBTVkdBM0RGT1JNQVRfT1BfQ09OVkVSVF9UT19BUkdCICAgICAgICAgICAgICAgICAg ICAgICA9IDB4MDAwMDIwMDAsCisKKy8qCisgKiBJbmRpY2F0ZXMgdGhhdCB0aGlzIGZvcm1hdCBj YW4gYmUgdXNlZCB0byBjcmVhdGUgb2Zmc2NyZWVuIHBsYWluIHN1cmZhY2VzLgorICovCisgICBT VkdBM0RGT1JNQVRfT1BfT0ZGU0NSRUVOUExBSU4gICAgICAgICAgICAgICAgICAgICAgICA9IDB4 MDAwMDQwMDAsCisKKy8qCisgKiBJbmRpY2F0ZWQgdGhhdCB0aGlzIGZvcm1hdCBjYW4gYmUgcmVh ZCBhcyBhbiBTUkdCIHRleHR1cmUgKG1lYW5pbmcgdGhhdCB0aGUKKyAqIHNhbXBsZXIgd2lsbCBs aW5lYXJpemUgdGhlIGxvb2tlZCB1cCBkYXRhKQorICovCisgICBTVkdBM0RGT1JNQVRfT1BfU1JH QlJFQUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDgwMDAsCisKKy8qCisg KiBJbmRpY2F0ZXMgdGhhdCB0aGlzIGZvcm1hdCBjYW4gYmUgdXNlZCBpbiB0aGUgYnVtcG1hcCBp bnN0cnVjdGlvbnMKKyAqLworICAgU1ZHQTNERk9STUFUX09QX0JVTVBNQVAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPSAweDAwMDEwMDAwLAorCisvKgorICogSW5kaWNhdGVzIHRoYXQg dGhpcyBmb3JtYXQgY2FuIGJlIHNhbXBsZWQgYnkgdGhlIGRpc3BsYWNlbWVudCBtYXAgc2FtcGxl cgorICovCisgICBTVkdBM0RGT1JNQVRfT1BfRE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA9IDB4MDAwMjAwMDAsCisKKy8qCisgKiBJbmRpY2F0ZXMgdGhhdCB0aGlzIGZvcm1h dCBjYW5ub3QgYmUgdXNlZCB3aXRoIHRleHR1cmUgZmlsdGVyaW5nCisgKi8KKyAgIFNWR0EzREZP Uk1BVF9PUF9OT0ZJTFRFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDA0MDAw MCwKKworLyoKKyAqIEluZGljYXRlcyB0aGF0IGZvcm1hdCBjb252ZXJzaW9ucyBhcmUgc3VwcG9y dGVkIHRvIHRoaXMgUkdCIGZvcm1hdCBpZgorICogU1ZHQTNERk9STUFUX09QX0NPTlZFUlRfVE9f QVJHQiBpcyBzcGVjaWZpZWQgaW4gdGhlIHNvdXJjZSBmb3JtYXQuCisgKi8KKyAgIFNWR0EzREZP Uk1BVF9PUF9NRU1CRVJPRkdST1VQX0FSR0IgICAgICAgICAgICAgICAgICAgID0gMHgwMDA4MDAw MCwKKworLyoKKyAqIEluZGljYXRlZCB0aGF0IHRoaXMgZm9ybWF0IGNhbiBiZSB3cml0dGVuIGFz IGFuIFNSR0IgdGFyZ2V0CisgKiAobWVhbmluZyB0aGF0IHRoZSBwaXhlbCBwaXBlIHdpbGwgREUt bGluZWFyaXplIGRhdGEgb24gb3V0cHV0IHRvIGZvcm1hdCkKKyAqLworICAgU1ZHQTNERk9STUFU X09QX1NSR0JXUklURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMTAwMDAwLAor CisvKgorICogSW5kaWNhdGVzIHRoYXQgdGhpcyBmb3JtYXQgY2Fubm90IGJlIHVzZWQgd2l0aCBh bHBoYSBibGVuZGluZworICovCisgICBTVkdBM0RGT1JNQVRfT1BfTk9BTFBIQUJMRU5EICAgICAg ICAgICAgICAgICAgICAgICAgICA9IDB4MDAyMDAwMDAsCisKKy8qCisgKiBJbmRpY2F0ZXMgdGhh dCB0aGUgZGV2aWNlIGNhbiBhdXRvLWdlbmVyYXRlZCBzdWJsZXZlbHMgZm9yIHJlc291cmNlcwor ICogb2YgdGhpcyBmb3JtYXQKKyAqLworICAgU1ZHQTNERk9STUFUX09QX0FVVE9HRU5NSVBNQVAg ICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAwNDAwMDAwLAorCisvKgorICogSW5kaWNhdGVz IHRoYXQgdGhpcyBmb3JtYXQgY2FuIGJlIHVzZWQgYnkgdmVydGV4IHRleHR1cmUgc2FtcGxlcgor ICovCisgICBTVkdBM0RGT1JNQVRfT1BfVkVSVEVYVEVYVFVSRSAgICAgICAgICAgICAgICAgICAg ICAgICA9IDB4MDA4MDAwMDAsCisKKy8qCisgKiBJbmRpY2F0ZXMgdGhhdCB0aGlzIGZvcm1hdCBz dXBwb3J0cyBuZWl0aGVyIHRleHR1cmUgY29vcmRpbmF0ZQorICogd3JhcCBtb2Rlcywgbm9yIG1p cG1hcHBpbmcuCisgKi8KKyAgIFNWR0EzREZPUk1BVF9PUF9OT1RFWENPT1JEV1JBUE5PUk1JUCAg ICAgICAgICAgICAgICAgID0gMHgwMTAwMDAwMAorfSBTVkdBM2RGb3JtYXRPcDsKKworI2RlZmlu ZSBTVkdBM0RfRk9STUFUX1BPU0lUSVZFICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAoU1ZHQTNERk9STUFUX09QX1RFWFRVUkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IFwKKyAgICBTVkdBM0RGT1JNQVRfT1BfVk9MVU1FVEVYVFVSRSAgICAgICAgICAgICAgICAgICAg ICAgIHwgXAorICAgIFNWR0EzREZPUk1BVF9PUF9DVUJFVEVYVFVSRSAgICAgICAgICAgICAgICAg ICAgICAgICAgfCBcCisgICAgU1ZHQTNERk9STUFUX09QX09GRlNDUkVFTl9SRU5ERVJUQVJHRVQg ICAgICAgICAgICAgICB8IFwKKyAgICBTVkdBM0RGT1JNQVRfT1BfU0FNRV9GT1JNQVRfUkVOREVS VEFSR0VUICAgICAgICAgICAgIHwgXAorICAgIFNWR0EzREZPUk1BVF9PUF9aU1RFTkNJTCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCBcCisgICAgU1ZHQTNERk9STUFUX09QX1pTVEVOQ0lM X1dJVEhfQVJCSVRSQVJZX0NPTE9SX0RFUFRIICB8IFwKKyAgICBTVkdBM0RGT1JNQVRfT1BfU0FN RV9GT1JNQVRfVVBfVE9fQUxQSEFfUkVOREVSVEFSR0VUIHwgXAorICAgIFNWR0EzREZPUk1BVF9P UF9ESVNQTEFZTU9ERSAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcCisgICAgU1ZHQTNERk9S TUFUX09QXzNEQUNDRUxFUkFUSU9OICAgICAgICAgICAgICAgICAgICAgICB8IFwKKyAgICBTVkdB M0RGT1JNQVRfT1BfUElYRUxTSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXAorICAg IFNWR0EzREZPUk1BVF9PUF9DT05WRVJUX1RPX0FSR0IgICAgICAgICAgICAgICAgICAgICAgfCBc CisgICAgU1ZHQTNERk9STUFUX09QX09GRlNDUkVFTlBMQUlOICAgICAgICAgICAgICAgICAgICAg ICB8IFwKKyAgICBTVkdBM0RGT1JNQVRfT1BfU1JHQlJFQUQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgXAorICAgIFNWR0EzREZPUk1BVF9PUF9CVU1QTUFQICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCBcCisgICAgU1ZHQTNERk9STUFUX09QX0RNQVAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IFwKKyAgICBTVkdBM0RGT1JNQVRfT1BfTUVNQkVST0ZHUk9VUF9B UkdCICAgICAgICAgICAgICAgICAgIHwgXAorICAgIFNWR0EzREZPUk1BVF9PUF9TUkdCV1JJVEUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcCisgICAgU1ZHQTNERk9STUFUX09QX0FVVE9H RU5NSVBNQVAgICAgICAgICAgICAgICAgICAgICAgICB8IFwKKyAgICBTVkdBM0RGT1JNQVRfT1Bf VkVSVEVYVEVYVFVSRSkKKworI2RlZmluZSBTVkdBM0RfRk9STUFUX05FR0FUSVZFICAgICAgICAg ICAgICAgXAorICAgKFNWR0EzREZPUk1BVF9PUF9OT0ZJTFRFUiAgICAgICAgICAgICAgIHwgXAor ICAgIFNWR0EzREZPUk1BVF9PUF9OT0FMUEhBQkxFTkQgICAgICAgICAgIHwgXAorICAgIFNWR0Ez REZPUk1BVF9PUF9OT1RFWENPT1JEV1JBUE5PUk1JUCkKKworLyoKKyAqIFRoaXMgc3RydWN0dXJl IGlzIGEgY29udmVyc2lvbiBvZiBTVkdBM0RGT1JNQVRfT1BfKgorICogRW50cmllcyBtdXN0IGJl IGxvY2F0ZWQgYXQgdGhlIHNhbWUgcG9zaXRpb24uCisgKi8KK3R5cGVkZWYgdW5pb24geworICAg dWludDMyIHZhbHVlOworICAgc3RydWN0IHsKKyAgICAgIHVpbnQzMiB0ZXh0dXJlIDogMTsKKyAg ICAgIHVpbnQzMiB2b2x1bWVUZXh0dXJlIDogMTsKKyAgICAgIHVpbnQzMiBjdWJlVGV4dHVyZSA6 IDE7CisgICAgICB1aW50MzIgb2Zmc2NyZWVuUmVuZGVyVGFyZ2V0IDogMTsKKyAgICAgIHVpbnQz MiBzYW1lRm9ybWF0UmVuZGVyVGFyZ2V0IDogMTsKKyAgICAgIHVpbnQzMiB1bmtub3duMSA6IDE7 CisgICAgICB1aW50MzIgelN0ZW5jaWwgOiAxOworICAgICAgdWludDMyIHpTdGVuY2lsQXJiaXRy YXJ5RGVwdGggOiAxOworICAgICAgdWludDMyIHNhbWVGb3JtYXRVcFRvQWxwaGEgOiAxOworICAg ICAgdWludDMyIHVua25vd24yIDogMTsKKyAgICAgIHVpbnQzMiBkaXNwbGF5TW9kZSA6IDE7Cisg ICAgICB1aW50MzIgYWNjZWxlcmF0aW9uM2QgOiAxOworICAgICAgdWludDMyIHBpeGVsU2l6ZSA6 IDE7CisgICAgICB1aW50MzIgY29udmVydFRvQVJHQiA6IDE7CisgICAgICB1aW50MzIgb2Zmc2Ny ZWVuUGxhaW4gOiAxOworICAgICAgdWludDMyIHNSR0JSZWFkIDogMTsKKyAgICAgIHVpbnQzMiBi dW1wTWFwIDogMTsKKyAgICAgIHVpbnQzMiBkbWFwIDogMTsKKyAgICAgIHVpbnQzMiBub0ZpbHRl ciA6IDE7CisgICAgICB1aW50MzIgbWVtYmVyT2ZHcm91cEFSR0IgOiAxOworICAgICAgdWludDMy IHNSR0JXcml0ZSA6IDE7CisgICAgICB1aW50MzIgbm9BbHBoYUJsZW5kIDogMTsKKyAgICAgIHVp bnQzMiBhdXRvR2VuTWlwTWFwIDogMTsKKyAgICAgIHVpbnQzMiB2ZXJ0ZXhUZXh0dXJlIDogMTsK KyAgICAgIHVpbnQzMiBub1RleENvb3JkV3JhcE5vck1pcCA6IDE7CisgICB9OworfSBTVkdBM2RT dXJmYWNlRm9ybWF0Q2FwczsKKworLyoKKyAqIFNWR0FfM0RfQ01EX1NFVFJFTkRFUlNUQVRFIFR5 cGVzLiAgQWxsIHZhbHVlIHR5cGVzCisgKiBtdXN0IGZpdCBpbiBhIHVpbnQzMi4KKyAqLworCit0 eXBlZGVmIGVudW0geworICAgU1ZHQTNEX1JTX0lOVkFMSUQgICAgICAgICAgICAgICAgICAgPSAw LAorICAgU1ZHQTNEX1JTX01JTiAgICAgICAgICAgICAgICAgICAgICAgPSAxLAorICAgU1ZHQTNE X1JTX1pFTkFCTEUgICAgICAgICAgICAgICAgICAgPSAxLCAgICAgLyogU1ZHQTNkQm9vbCAqLwor ICAgU1ZHQTNEX1JTX1pXUklURUVOQUJMRSAgICAgICAgICAgICAgPSAyLCAgICAgLyogU1ZHQTNk Qm9vbCAqLworICAgU1ZHQTNEX1JTX0FMUEhBVEVTVEVOQUJMRSAgICAgICAgICAgPSAzLCAgICAg LyogU1ZHQTNkQm9vbCAqLworICAgU1ZHQTNEX1JTX0RJVEhFUkVOQUJMRSAgICAgICAgICAgICAg PSA0LCAgICAgLyogU1ZHQTNkQm9vbCAqLworICAgU1ZHQTNEX1JTX0JMRU5ERU5BQkxFICAgICAg ICAgICAgICAgPSA1LCAgICAgLyogU1ZHQTNkQm9vbCAqLworICAgU1ZHQTNEX1JTX0ZPR0VOQUJM RSAgICAgICAgICAgICAgICAgPSA2LCAgICAgLyogU1ZHQTNkQm9vbCAqLworICAgU1ZHQTNEX1JT X1NQRUNVTEFSRU5BQkxFICAgICAgICAgICAgPSA3LCAgICAgLyogU1ZHQTNkQm9vbCAqLworICAg U1ZHQTNEX1JTX1NURU5DSUxFTkFCTEUgICAgICAgICAgICAgPSA4LCAgICAgLyogU1ZHQTNkQm9v bCAqLworICAgU1ZHQTNEX1JTX0xJR0hUSU5HRU5BQkxFICAgICAgICAgICAgPSA5LCAgICAgLyog U1ZHQTNkQm9vbCAqLworICAgU1ZHQTNEX1JTX05PUk1BTElaRU5PUk1BTFMgICAgICAgICAgPSAx MCwgICAgLyogU1ZHQTNkQm9vbCAqLworICAgU1ZHQTNEX1JTX1BPSU5UU1BSSVRFRU5BQkxFICAg ICAgICAgPSAxMSwgICAgLyogU1ZHQTNkQm9vbCAqLworICAgU1ZHQTNEX1JTX1BPSU5UU0NBTEVF TkFCTEUgICAgICAgICAgPSAxMiwgICAgLyogU1ZHQTNkQm9vbCAqLworICAgU1ZHQTNEX1JTX1NU RU5DSUxSRUYgICAgICAgICAgICAgICAgPSAxMywgICAgLyogdWludDMyICovCisgICBTVkdBM0Rf UlNfU1RFTkNJTE1BU0sgICAgICAgICAgICAgICA9IDE0LCAgICAvKiB1aW50MzIgKi8KKyAgIFNW R0EzRF9SU19TVEVOQ0lMV1JJVEVNQVNLICAgICAgICAgID0gMTUsICAgIC8qIHVpbnQzMiAqLwor ICAgU1ZHQTNEX1JTX0ZPR1NUQVJUICAgICAgICAgICAgICAgICAgPSAxNiwgICAgLyogZmxvYXQg Ki8KKyAgIFNWR0EzRF9SU19GT0dFTkQgICAgICAgICAgICAgICAgICAgID0gMTcsICAgIC8qIGZs b2F0ICovCisgICBTVkdBM0RfUlNfRk9HREVOU0lUWSAgICAgICAgICAgICAgICA9IDE4LCAgICAv KiBmbG9hdCAqLworICAgU1ZHQTNEX1JTX1BPSU5UU0laRSAgICAgICAgICAgICAgICAgPSAxOSwg ICAgLyogZmxvYXQgKi8KKyAgIFNWR0EzRF9SU19QT0lOVFNJWkVNSU4gICAgICAgICAgICAgID0g MjAsICAgIC8qIGZsb2F0ICovCisgICBTVkdBM0RfUlNfUE9JTlRTSVpFTUFYICAgICAgICAgICAg ICA9IDIxLCAgICAvKiBmbG9hdCAqLworICAgU1ZHQTNEX1JTX1BPSU5UU0NBTEVfQSAgICAgICAg ICAgICAgPSAyMiwgICAgLyogZmxvYXQgKi8KKyAgIFNWR0EzRF9SU19QT0lOVFNDQUxFX0IgICAg ICAgICAgICAgID0gMjMsICAgIC8qIGZsb2F0ICovCisgICBTVkdBM0RfUlNfUE9JTlRTQ0FMRV9D ICAgICAgICAgICAgICA9IDI0LCAgICAvKiBmbG9hdCAqLworICAgU1ZHQTNEX1JTX0ZPR0NPTE9S ICAgICAgICAgICAgICAgICAgPSAyNSwgICAgLyogU1ZHQTNkQ29sb3IgKi8KKyAgIFNWR0EzRF9S U19BTUJJRU5UICAgICAgICAgICAgICAgICAgID0gMjYsICAgIC8qIFNWR0EzZENvbG9yICovCisg ICBTVkdBM0RfUlNfQ0xJUFBMQU5FRU5BQkxFICAgICAgICAgICA9IDI3LCAgICAvKiBTVkdBM2RD bGlwUGxhbmVzICovCisgICBTVkdBM0RfUlNfRk9HTU9ERSAgICAgICAgICAgICAgICAgICA9IDI4 LCAgICAvKiBTVkdBM2RGb2dNb2RlICovCisgICBTVkdBM0RfUlNfRklMTE1PREUgICAgICAgICAg ICAgICAgICA9IDI5LCAgICAvKiBTVkdBM2RGaWxsTW9kZSAqLworICAgU1ZHQTNEX1JTX1NIQURF TU9ERSAgICAgICAgICAgICAgICAgPSAzMCwgICAgLyogU1ZHQTNkU2hhZGVNb2RlICovCisgICBT VkdBM0RfUlNfTElORVBBVFRFUk4gICAgICAgICAgICAgICA9IDMxLCAgICAvKiBTVkdBM2RMaW5l UGF0dGVybiAqLworICAgU1ZHQTNEX1JTX1NSQ0JMRU5EICAgICAgICAgICAgICAgICAgPSAzMiwg ICAgLyogU1ZHQTNkQmxlbmRPcCAqLworICAgU1ZHQTNEX1JTX0RTVEJMRU5EICAgICAgICAgICAg ICAgICAgPSAzMywgICAgLyogU1ZHQTNkQmxlbmRPcCAqLworICAgU1ZHQTNEX1JTX0JMRU5ERVFV QVRJT04gICAgICAgICAgICAgPSAzNCwgICAgLyogU1ZHQTNkQmxlbmRFcXVhdGlvbiAqLworICAg U1ZHQTNEX1JTX0NVTExNT0RFICAgICAgICAgICAgICAgICAgPSAzNSwgICAgLyogU1ZHQTNkRmFj ZSAqLworICAgU1ZHQTNEX1JTX1pGVU5DICAgICAgICAgICAgICAgICAgICAgPSAzNiwgICAgLyog U1ZHQTNkQ21wRnVuYyAqLworICAgU1ZHQTNEX1JTX0FMUEhBRlVOQyAgICAgICAgICAgICAgICAg PSAzNywgICAgLyogU1ZHQTNkQ21wRnVuYyAqLworICAgU1ZHQTNEX1JTX1NURU5DSUxGVU5DICAg ICAgICAgICAgICAgPSAzOCwgICAgLyogU1ZHQTNkQ21wRnVuYyAqLworICAgU1ZHQTNEX1JTX1NU RU5DSUxGQUlMICAgICAgICAgICAgICAgPSAzOSwgICAgLyogU1ZHQTNkU3RlbmNpbE9wICovCisg ICBTVkdBM0RfUlNfU1RFTkNJTFpGQUlMICAgICAgICAgICAgICA9IDQwLCAgICAvKiBTVkdBM2RT dGVuY2lsT3AgKi8KKyAgIFNWR0EzRF9SU19TVEVOQ0lMUEFTUyAgICAgICAgICAgICAgID0gNDEs ICAgIC8qIFNWR0EzZFN0ZW5jaWxPcCAqLworICAgU1ZHQTNEX1JTX0FMUEhBUkVGICAgICAgICAg ICAgICAgICAgPSA0MiwgICAgLyogZmxvYXQgKDAuMCAuLiAxLjApICovCisgICBTVkdBM0RfUlNf RlJPTlRXSU5ESU5HICAgICAgICAgICAgICA9IDQzLCAgICAvKiBTVkdBM2RGcm9udFdpbmRpbmcg Ki8KKyAgIFNWR0EzRF9SU19DT09SRElOQVRFVFlQRSAgICAgICAgICAgID0gNDQsICAgIC8qIFNW R0EzZENvb3JkaW5hdGVUeXBlICovCisgICBTVkdBM0RfUlNfWkJJQVMgICAgICAgICAgICAgICAg ICAgICA9IDQ1LCAgICAvKiBmbG9hdCAqLworICAgU1ZHQTNEX1JTX1JBTkdFRk9HRU5BQkxFICAg ICAgICAgICAgPSA0NiwgICAgLyogU1ZHQTNkQm9vbCAqLworICAgU1ZHQTNEX1JTX0NPTE9SV1JJ VEVFTkFCTEUgICAgICAgICAgPSA0NywgICAgLyogU1ZHQTNkQ29sb3JNYXNrICovCisgICBTVkdB M0RfUlNfVkVSVEVYTUFURVJJQUxFTkFCTEUgICAgICA9IDQ4LCAgICAvKiBTVkdBM2RCb29sICov CisgICBTVkdBM0RfUlNfRElGRlVTRU1BVEVSSUFMU09VUkNFICAgICA9IDQ5LCAgICAvKiBTVkdB M2RWZXJ0ZXhNYXRlcmlhbCAqLworICAgU1ZHQTNEX1JTX1NQRUNVTEFSTUFURVJJQUxTT1VSQ0Ug ICAgPSA1MCwgICAgLyogU1ZHQTNkVmVydGV4TWF0ZXJpYWwgKi8KKyAgIFNWR0EzRF9SU19BTUJJ RU5UTUFURVJJQUxTT1VSQ0UgICAgID0gNTEsICAgIC8qIFNWR0EzZFZlcnRleE1hdGVyaWFsICov CisgICBTVkdBM0RfUlNfRU1JU1NJVkVNQVRFUklBTFNPVVJDRSAgICA9IDUyLCAgICAvKiBTVkdB M2RWZXJ0ZXhNYXRlcmlhbCAqLworICAgU1ZHQTNEX1JTX1RFWFRVUkVGQUNUT1IgICAgICAgICAg ICAgPSA1MywgICAgLyogU1ZHQTNkQ29sb3IgKi8KKyAgIFNWR0EzRF9SU19MT0NBTFZJRVdFUiAg ICAgICAgICAgICAgID0gNTQsICAgIC8qIFNWR0EzZEJvb2wgKi8KKyAgIFNWR0EzRF9SU19TQ0lT U09SVEVTVEVOQUJMRSAgICAgICAgID0gNTUsICAgIC8qIFNWR0EzZEJvb2wgKi8KKyAgIFNWR0Ez RF9SU19CTEVORENPTE9SICAgICAgICAgICAgICAgID0gNTYsICAgIC8qIFNWR0EzZENvbG9yICov CisgICBTVkdBM0RfUlNfU1RFTkNJTEVOQUJMRTJTSURFRCAgICAgICA9IDU3LCAgICAvKiBTVkdB M2RCb29sICovCisgICBTVkdBM0RfUlNfQ0NXU1RFTkNJTEZVTkMgICAgICAgICAgICA9IDU4LCAg ICAvKiBTVkdBM2RDbXBGdW5jICovCisgICBTVkdBM0RfUlNfQ0NXU1RFTkNJTEZBSUwgICAgICAg ICAgICA9IDU5LCAgICAvKiBTVkdBM2RTdGVuY2lsT3AgKi8KKyAgIFNWR0EzRF9SU19DQ1dTVEVO Q0lMWkZBSUwgICAgICAgICAgID0gNjAsICAgIC8qIFNWR0EzZFN0ZW5jaWxPcCAqLworICAgU1ZH QTNEX1JTX0NDV1NURU5DSUxQQVNTICAgICAgICAgICAgPSA2MSwgICAgLyogU1ZHQTNkU3RlbmNp bE9wICovCisgICBTVkdBM0RfUlNfVkVSVEVYQkxFTkQgICAgICAgICAgICAgICA9IDYyLCAgICAv KiBTVkdBM2RWZXJ0ZXhCbGVuZEZsYWdzICovCisgICBTVkdBM0RfUlNfU0xPUEVTQ0FMRURFUFRI QklBUyAgICAgICA9IDYzLCAgICAvKiBmbG9hdCAqLworICAgU1ZHQTNEX1JTX0RFUFRIQklBUyAg ICAgICAgICAgICAgICAgPSA2NCwgICAgLyogZmxvYXQgKi8KKworCisgICAvKgorICAgICogT3V0 cHV0IEdhbW1hIExldmVsCisgICAgKgorICAgICogT3V0cHV0IGdhbW1hIGVmZmVjdHMgdGhlIGdh bW1hIGN1cnZlIG9mIGNvbG9ycyB0aGF0IGFyZSBvdXRwdXQgZnJvbSB0aGUKKyAgICAqIHJlbmRl cmluZyBwaXBlbGluZS4gIEEgdmFsdWUgb2YgMS4wIHNwZWNpZmllcyBhIGxpbmVhciBjb2xvciBz cGFjZS4gSWYgdGhlCisgICAgKiB2YWx1ZSBpcyA8PSAwLjAsIGdhbW1hIGNvcnJlY3Rpb24gaXMg aWdub3JlZCBhbmQgbGluZWFyIGNvbG9yIHNwYWNlIGlzCisgICAgKiB1c2VkLgorICAgICovCisK KyAgIFNWR0EzRF9SU19PVVRQVVRHQU1NQSAgICAgICAgICAgICAgID0gNjUsICAgIC8qIGZsb2F0 ICovCisgICBTVkdBM0RfUlNfWlZJU0lCTEUgICAgICAgICAgICAgICAgICA9IDY2LCAgICAvKiBT VkdBM2RCb29sICovCisgICBTVkdBM0RfUlNfTEFTVFBJWEVMICAgICAgICAgICAgICAgICA9IDY3 LCAgICAvKiBTVkdBM2RCb29sICovCisgICBTVkdBM0RfUlNfQ0xJUFBJTkcgICAgICAgICAgICAg ICAgICA9IDY4LCAgICAvKiBTVkdBM2RCb29sICovCisgICBTVkdBM0RfUlNfV1JBUDAgICAgICAg ICAgICAgICAgICAgICA9IDY5LCAgICAvKiBTVkdBM2RXcmFwRmxhZ3MgKi8KKyAgIFNWR0EzRF9S U19XUkFQMSAgICAgICAgICAgICAgICAgICAgID0gNzAsICAgIC8qIFNWR0EzZFdyYXBGbGFncyAq LworICAgU1ZHQTNEX1JTX1dSQVAyICAgICAgICAgICAgICAgICAgICAgPSA3MSwgICAgLyogU1ZH QTNkV3JhcEZsYWdzICovCisgICBTVkdBM0RfUlNfV1JBUDMgICAgICAgICAgICAgICAgICAgICA9 IDcyLCAgICAvKiBTVkdBM2RXcmFwRmxhZ3MgKi8KKyAgIFNWR0EzRF9SU19XUkFQNCAgICAgICAg ICAgICAgICAgICAgID0gNzMsICAgIC8qIFNWR0EzZFdyYXBGbGFncyAqLworICAgU1ZHQTNEX1JT X1dSQVA1ICAgICAgICAgICAgICAgICAgICAgPSA3NCwgICAgLyogU1ZHQTNkV3JhcEZsYWdzICov CisgICBTVkdBM0RfUlNfV1JBUDYgICAgICAgICAgICAgICAgICAgICA9IDc1LCAgICAvKiBTVkdB M2RXcmFwRmxhZ3MgKi8KKyAgIFNWR0EzRF9SU19XUkFQNyAgICAgICAgICAgICAgICAgICAgID0g NzYsICAgIC8qIFNWR0EzZFdyYXBGbGFncyAqLworICAgU1ZHQTNEX1JTX1dSQVA4ICAgICAgICAg ICAgICAgICAgICAgPSA3NywgICAgLyogU1ZHQTNkV3JhcEZsYWdzICovCisgICBTVkdBM0RfUlNf V1JBUDkgICAgICAgICAgICAgICAgICAgICA9IDc4LCAgICAvKiBTVkdBM2RXcmFwRmxhZ3MgKi8K KyAgIFNWR0EzRF9SU19XUkFQMTAgICAgICAgICAgICAgICAgICAgID0gNzksICAgIC8qIFNWR0Ez ZFdyYXBGbGFncyAqLworICAgU1ZHQTNEX1JTX1dSQVAxMSAgICAgICAgICAgICAgICAgICAgPSA4 MCwgICAgLyogU1ZHQTNkV3JhcEZsYWdzICovCisgICBTVkdBM0RfUlNfV1JBUDEyICAgICAgICAg ICAgICAgICAgICA9IDgxLCAgICAvKiBTVkdBM2RXcmFwRmxhZ3MgKi8KKyAgIFNWR0EzRF9SU19X UkFQMTMgICAgICAgICAgICAgICAgICAgID0gODIsICAgIC8qIFNWR0EzZFdyYXBGbGFncyAqLwor ICAgU1ZHQTNEX1JTX1dSQVAxNCAgICAgICAgICAgICAgICAgICAgPSA4MywgICAgLyogU1ZHQTNk V3JhcEZsYWdzICovCisgICBTVkdBM0RfUlNfV1JBUDE1ICAgICAgICAgICAgICAgICAgICA9IDg0 LCAgICAvKiBTVkdBM2RXcmFwRmxhZ3MgKi8KKyAgIFNWR0EzRF9SU19NVUxUSVNBTVBMRUFOVElB TElBUyAgICAgID0gODUsICAgIC8qIFNWR0EzZEJvb2wgKi8KKyAgIFNWR0EzRF9SU19NVUxUSVNB TVBMRU1BU0sgICAgICAgICAgID0gODYsICAgIC8qIHVpbnQzMiAqLworICAgU1ZHQTNEX1JTX0lO REVYRURWRVJURVhCTEVOREVOQUJMRSAgPSA4NywgICAgLyogU1ZHQTNkQm9vbCAqLworICAgU1ZH QTNEX1JTX1RXRUVORkFDVE9SICAgICAgICAgICAgICAgPSA4OCwgICAgLyogZmxvYXQgKi8KKyAg IFNWR0EzRF9SU19BTlRJQUxJQVNFRExJTkVFTkFCTEUgICAgID0gODksICAgIC8qIFNWR0EzZEJv b2wgKi8KKyAgIFNWR0EzRF9SU19DT0xPUldSSVRFRU5BQkxFMSAgICAgICAgID0gOTAsICAgIC8q IFNWR0EzZENvbG9yTWFzayAqLworICAgU1ZHQTNEX1JTX0NPTE9SV1JJVEVFTkFCTEUyICAgICAg ICAgPSA5MSwgICAgLyogU1ZHQTNkQ29sb3JNYXNrICovCisgICBTVkdBM0RfUlNfQ09MT1JXUklU RUVOQUJMRTMgICAgICAgICA9IDkyLCAgICAvKiBTVkdBM2RDb2xvck1hc2sgKi8KKyAgIFNWR0Ez RF9SU19TRVBBUkFURUFMUEhBQkxFTkRFTkFCTEUgID0gOTMsICAgIC8qIFNWR0EzZEJvb2wgKi8K KyAgIFNWR0EzRF9SU19TUkNCTEVOREFMUEhBICAgICAgICAgICAgID0gOTQsICAgIC8qIFNWR0Ez ZEJsZW5kT3AgKi8KKyAgIFNWR0EzRF9SU19EU1RCTEVOREFMUEhBICAgICAgICAgICAgID0gOTUs ICAgIC8qIFNWR0EzZEJsZW5kT3AgKi8KKyAgIFNWR0EzRF9SU19CTEVOREVRVUFUSU9OQUxQSEEg ICAgICAgID0gOTYsICAgIC8qIFNWR0EzZEJsZW5kRXF1YXRpb24gKi8KKyAgIFNWR0EzRF9SU19U UkFOU1BBUkVOQ1lBTlRJQUxJQVMgICAgID0gOTcsICAgIC8qIFNWR0EzZFRyYW5zcGFyZW5jeUFu dGlhbGlhc1R5cGUgKi8KKyAgIFNWR0EzRF9SU19MSU5FV0lEVEggICAgICAgICAgICAgICAgID0g OTgsICAgIC8qIGZsb2F0ICovCisgICBTVkdBM0RfUlNfTUFYCit9IFNWR0EzZFJlbmRlclN0YXRl TmFtZTsKKwordHlwZWRlZiBlbnVtIHsKKyAgIFNWR0EzRF9UUkFOU1BBUkVOQ1lBTlRJQUxJQVNf Tk9STUFMICAgICAgICAgICAgPSAwLAorICAgU1ZHQTNEX1RSQU5TUEFSRU5DWUFOVElBTElBU19B TFBIQVRPQ09WRVJBR0UgICA9IDEsCisgICBTVkdBM0RfVFJBTlNQQVJFTkNZQU5USUFMSUFTX1NV UEVSU0FNUExFICAgICAgID0gMiwKKyAgIFNWR0EzRF9UUkFOU1BBUkVOQ1lBTlRJQUxJQVNfTUFY Cit9IFNWR0EzZFRyYW5zcGFyZW5jeUFudGlhbGlhc1R5cGU7CisKK3R5cGVkZWYgZW51bSB7Cisg ICBTVkdBM0RfVkVSVEVYTUFURVJJQUxfTk9ORSAgICAgPSAwLCAgICAvKiBVc2UgdGhlIHZhbHVl IGluIHRoZSBjdXJyZW50IG1hdGVyaWFsICovCisgICBTVkdBM0RfVkVSVEVYTUFURVJJQUxfRElG RlVTRSAgPSAxLCAgICAvKiBVc2UgdGhlIHZhbHVlIGluIHRoZSBkaWZmdXNlIGNvbXBvbmVudCAq LworICAgU1ZHQTNEX1ZFUlRFWE1BVEVSSUFMX1NQRUNVTEFSID0gMiwgICAgLyogVXNlIHRoZSB2 YWx1ZSBpbiB0aGUgc3BlY3VsYXIgY29tcG9uZW50ICovCisgICBTVkdBM0RfVkVSVEVYTUFURVJJ QUxfTUFYICAgICAgPSAzLAorfSBTVkdBM2RWZXJ0ZXhNYXRlcmlhbDsKKwordHlwZWRlZiBlbnVt IHsKKyAgIFNWR0EzRF9GSUxMTU9ERV9JTlZBTElEID0gMCwKKyAgIFNWR0EzRF9GSUxMTU9ERV9N SU4gICAgID0gMSwKKyAgIFNWR0EzRF9GSUxMTU9ERV9QT0lOVCAgID0gMSwKKyAgIFNWR0EzRF9G SUxMTU9ERV9MSU5FICAgID0gMiwKKyAgIFNWR0EzRF9GSUxMTU9ERV9GSUxMICAgID0gMywKKyAg IFNWR0EzRF9GSUxMTU9ERV9NQVgKK30gU1ZHQTNkRmlsbE1vZGVUeXBlOworCisKK3R5cGVkZWYK KyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgordW5pb24geworICAgc3RydWN0IHsKKyAg ICAgIHVpbnQxNiAgIG1vZGU7ICAgICAgIC8qIFNWR0EzZEZpbGxNb2RlVHlwZSAqLworICAgICAg dWludDE2ICAgZmFjZTsgICAgICAgLyogU1ZHQTNkRmFjZSAqLworICAgfTsKKyAgIHVpbnQzMiB1 aW50VmFsdWU7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBM2RGaWxsTW9k ZTsKKwordHlwZWRlZiBlbnVtIHsKKyAgIFNWR0EzRF9TSEFERU1PREVfSU5WQUxJRCA9IDAsCisg ICBTVkdBM0RfU0hBREVNT0RFX0ZMQVQgICAgPSAxLAorICAgU1ZHQTNEX1NIQURFTU9ERV9TTU9P VEggID0gMiwKKyAgIFNWR0EzRF9TSEFERU1PREVfUEhPTkcgICA9IDMsICAgICAvKiBOb3Qgc3Vw cG9ydGVkICovCisgICBTVkdBM0RfU0hBREVNT0RFX01BWAorfSBTVkdBM2RTaGFkZU1vZGU7CisK K3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgordW5pb24geworICAgc3Ry dWN0IHsKKyAgICAgIHVpbnQxNiByZXBlYXQ7CisgICAgICB1aW50MTYgcGF0dGVybjsKKyAgIH07 CisgICB1aW50MzIgdWludFZhbHVlOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgor U1ZHQTNkTGluZVBhdHRlcm47CisKK3R5cGVkZWYgZW51bSB7CisgICBTVkdBM0RfQkxFTkRPUF9J TlZBTElEICAgICAgICAgICAgID0gMCwKKyAgIFNWR0EzRF9CTEVORE9QX01JTiAgICAgICAgICAg ICAgICAgPSAxLAorICAgU1ZHQTNEX0JMRU5ET1BfWkVSTyAgICAgICAgICAgICAgICA9IDEsCisg ICBTVkdBM0RfQkxFTkRPUF9PTkUgICAgICAgICAgICAgICAgID0gMiwKKyAgIFNWR0EzRF9CTEVO RE9QX1NSQ0NPTE9SICAgICAgICAgICAgPSAzLAorICAgU1ZHQTNEX0JMRU5ET1BfSU5WU1JDQ09M T1IgICAgICAgICA9IDQsCisgICBTVkdBM0RfQkxFTkRPUF9TUkNBTFBIQSAgICAgICAgICAgID0g NSwKKyAgIFNWR0EzRF9CTEVORE9QX0lOVlNSQ0FMUEhBICAgICAgICAgPSA2LAorICAgU1ZHQTNE X0JMRU5ET1BfREVTVEFMUEhBICAgICAgICAgICA9IDcsCisgICBTVkdBM0RfQkxFTkRPUF9JTlZE RVNUQUxQSEEgICAgICAgID0gOCwKKyAgIFNWR0EzRF9CTEVORE9QX0RFU1RDT0xPUiAgICAgICAg ICAgPSA5LAorICAgU1ZHQTNEX0JMRU5ET1BfSU5WREVTVENPTE9SICAgICAgICA9IDEwLAorICAg U1ZHQTNEX0JMRU5ET1BfU1JDQUxQSEFTQVQgICAgICAgICA9IDExLAorICAgU1ZHQTNEX0JMRU5E T1BfQkxFTkRGQUNUT1IgICAgICAgICA9IDEyLAorICAgU1ZHQTNEX0JMRU5ET1BfSU5WQkxFTkRG QUNUT1IgICAgICA9IDEzLAorICAgU1ZHQTNEX0JMRU5ET1BfU1JDMUNPTE9SICAgICAgICAgICA9 IDE0LAorICAgU1ZHQTNEX0JMRU5ET1BfSU5WU1JDMUNPTE9SICAgICAgICA9IDE1LAorICAgU1ZH QTNEX0JMRU5ET1BfU1JDMUFMUEhBICAgICAgICAgICA9IDE2LAorICAgU1ZHQTNEX0JMRU5ET1Bf SU5WU1JDMUFMUEhBICAgICAgICA9IDE3LAorICAgU1ZHQTNEX0JMRU5ET1BfQkxFTkRGQUNUT1JB TFBIQSAgICA9IDE4LAorICAgU1ZHQTNEX0JMRU5ET1BfSU5WQkxFTkRGQUNUT1JBTFBIQSA9IDE5 LAorICAgU1ZHQTNEX0JMRU5ET1BfTUFYCit9IFNWR0EzZEJsZW5kT3A7CisKK3R5cGVkZWYgZW51 bSB7CisgICBTVkdBM0RfQkxFTkRFUV9JTlZBTElEICAgICAgICAgICAgPSAwLAorICAgU1ZHQTNE X0JMRU5ERVFfTUlOICAgICAgICAgICAgICAgID0gMSwKKyAgIFNWR0EzRF9CTEVOREVRX0FERCAg ICAgICAgICAgICAgICA9IDEsCisgICBTVkdBM0RfQkxFTkRFUV9TVUJUUkFDVCAgICAgICAgICAg PSAyLAorICAgU1ZHQTNEX0JMRU5ERVFfUkVWU1VCVFJBQ1QgICAgICAgID0gMywKKyAgIFNWR0Ez RF9CTEVOREVRX01JTklNVU0gICAgICAgICAgICA9IDQsCisgICBTVkdBM0RfQkxFTkRFUV9NQVhJ TVVNICAgICAgICAgICAgPSA1LAorICAgU1ZHQTNEX0JMRU5ERVFfTUFYCit9IFNWR0EzZEJsZW5k RXF1YXRpb247CisKK3R5cGVkZWYgZW51bSB7CisgICBTVkdBM0RfRFgxMV9MT0dJQ09QX01JTiAg ICAgICAgICAgPSAwLAorICAgU1ZHQTNEX0RYMTFfTE9HSUNPUF9DTEVBUiAgICAgICAgID0gMCwK KyAgIFNWR0EzRF9EWDExX0xPR0lDT1BfU0VUICAgICAgICAgICA9IDEsCisgICBTVkdBM0RfRFgx MV9MT0dJQ09QX0NPUFkgICAgICAgICAgPSAyLAorICAgU1ZHQTNEX0RYMTFfTE9HSUNPUF9DT1BZ X0lOVkVSVEVEID0gMywKKyAgIFNWR0EzRF9EWDExX0xPR0lDT1BfTk9PUCAgICAgICAgICA9IDQs CisgICBTVkdBM0RfRFgxMV9MT0dJQ09QX0lOVkVSVCAgICAgICAgPSA1LAorICAgU1ZHQTNEX0RY MTFfTE9HSUNPUF9BTkQgICAgICAgICAgID0gNiwKKyAgIFNWR0EzRF9EWDExX0xPR0lDT1BfTkFO RCAgICAgICAgICA9IDcsCisgICBTVkdBM0RfRFgxMV9MT0dJQ09QX09SICAgICAgICAgICAgPSA4 LAorICAgU1ZHQTNEX0RYMTFfTE9HSUNPUF9OT1IgICAgICAgICAgID0gOSwKKyAgIFNWR0EzRF9E WDExX0xPR0lDT1BfWE9SICAgICAgICAgICA9IDEwLAorICAgU1ZHQTNEX0RYMTFfTE9HSUNPUF9F UVVJViAgICAgICAgID0gMTEsCisgICBTVkdBM0RfRFgxMV9MT0dJQ09QX0FORF9SRVZFUlNFICAg PSAxMiwKKyAgIFNWR0EzRF9EWDExX0xPR0lDT1BfQU5EX0lOVkVSVEVEICA9IDEzLAorICAgU1ZH QTNEX0RYMTFfTE9HSUNPUF9PUl9SRVZFUlNFICAgID0gMTQsCisgICBTVkdBM0RfRFgxMV9MT0dJ Q09QX09SX0lOVkVSVEVEICAgPSAxNSwKKyAgIFNWR0EzRF9EWDExX0xPR0lDT1BfTUFYCit9IFNW R0EzZERYMTFMb2dpY09wOworCit0eXBlZGVmIGVudW0geworICAgU1ZHQTNEX0ZST05UV0lORElO R19JTlZBTElEID0gMCwKKyAgIFNWR0EzRF9GUk9OVFdJTkRJTkdfQ1cgICAgICA9IDEsCisgICBT VkdBM0RfRlJPTlRXSU5ESU5HX0NDVyAgICAgPSAyLAorICAgU1ZHQTNEX0ZST05UV0lORElOR19N QVgKK30gU1ZHQTNkRnJvbnRXaW5kaW5nOworCit0eXBlZGVmIGVudW0geworICAgU1ZHQTNEX0ZB Q0VfSU5WQUxJRCAgPSAwLAorICAgU1ZHQTNEX0ZBQ0VfTk9ORSAgICAgPSAxLAorICAgU1ZHQTNE X0ZBQ0VfTUlOICAgICAgPSAxLAorICAgU1ZHQTNEX0ZBQ0VfRlJPTlQgICAgPSAyLAorICAgU1ZH QTNEX0ZBQ0VfQkFDSyAgICAgPSAzLAorICAgU1ZHQTNEX0ZBQ0VfRlJPTlRfQkFDSyA9IDQsCisg ICBTVkdBM0RfRkFDRV9NQVgKK30gU1ZHQTNkRmFjZTsKKworLyoKKyAqIFRoZSBvcmRlciBhbmQg dGhlIHZhbHVlcyBzaG91bGQgbm90IGJlIGNoYW5nZWQKKyAqLworCit0eXBlZGVmIGVudW0gewor ICAgU1ZHQTNEX0NNUF9JTlZBTElEICAgICAgICAgICAgICA9IDAsCisgICBTVkdBM0RfQ01QX05F VkVSICAgICAgICAgICAgICAgID0gMSwKKyAgIFNWR0EzRF9DTVBfTEVTUyAgICAgICAgICAgICAg ICAgPSAyLAorICAgU1ZHQTNEX0NNUF9FUVVBTCAgICAgICAgICAgICAgICA9IDMsCisgICBTVkdB M0RfQ01QX0xFU1NFUVVBTCAgICAgICAgICAgID0gNCwKKyAgIFNWR0EzRF9DTVBfR1JFQVRFUiAg ICAgICAgICAgICAgPSA1LAorICAgU1ZHQTNEX0NNUF9OT1RFUVVBTCAgICAgICAgICAgICA9IDYs CisgICBTVkdBM0RfQ01QX0dSRUFURVJFUVVBTCAgICAgICAgID0gNywKKyAgIFNWR0EzRF9DTVBf QUxXQVlTICAgICAgICAgICAgICAgPSA4LAorICAgU1ZHQTNEX0NNUF9NQVgKK30gU1ZHQTNkQ21w RnVuYzsKKworLyoKKyAqIFNWR0EzRF9GT0dGVU5DXyogc3BlY2lmaWVzIHRoZSBmb2cgZXF1YXRp b24sIG9yIFBFUl9WRVJURVggd2hpY2ggYWxsb3dzCisgKiB0aGUgZm9nIGZhY3RvciB0byBiZSBz cGVjaWZpZWQgaW4gdGhlIGFscGhhIGNvbXBvbmVudCBvZiB0aGUgc3BlY3VsYXIKKyAqIChhLmsu YS4gc2Vjb25kYXJ5KSB2ZXJ0ZXggY29sb3IuCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICBTVkdB M0RfRk9HRlVOQ19JTlZBTElEICAgICAgICAgID0gMCwKKyAgIFNWR0EzRF9GT0dGVU5DX0VYUCAg ICAgICAgICAgICAgPSAxLAorICAgU1ZHQTNEX0ZPR0ZVTkNfRVhQMiAgICAgICAgICAgICA9IDIs CisgICBTVkdBM0RfRk9HRlVOQ19MSU5FQVIgICAgICAgICAgID0gMywKKyAgIFNWR0EzRF9GT0dG VU5DX1BFUl9WRVJURVggICAgICAgPSA0Cit9IFNWR0EzZEZvZ0Z1bmN0aW9uOworCisvKgorICog U1ZHQTNEX0ZPR1RZUEVfKiBzcGVjaWZpZXMgaWYgZm9nIGZhY3RvcnMgYXJlIGNvbXB1dGVkIG9u IGEgcGVyLXZlcnRleAorICogb3IgcGVyLXBpeGVsIGJhc2lzLgorICovCit0eXBlZGVmIGVudW0g eworICAgU1ZHQTNEX0ZPR1RZUEVfSU5WQUxJRCAgICAgICAgICA9IDAsCisgICBTVkdBM0RfRk9H VFlQRV9WRVJURVggICAgICAgICAgID0gMSwKKyAgIFNWR0EzRF9GT0dUWVBFX1BJWEVMICAgICAg ICAgICAgPSAyLAorICAgU1ZHQTNEX0ZPR1RZUEVfTUFYICAgICAgICAgICAgICA9IDMKK30gU1ZH QTNkRm9nVHlwZTsKKworLyoKKyAqIFNWR0EzRF9GT0dCQVNFXyogc2VsZWN0cyBkZXB0aCBvciBy YW5nZS1iYXNlZCBmb2cuIERlcHRoLWJhc2VkIGZvZyBpcworICogY29tcHV0ZWQgdXNpbmcgdGhl IGV5ZSBaIHZhbHVlIG9mIGVhY2ggcGl4ZWwgKG9yIHZlcnRleCksIHdoZXJlYXMgcmFuZ2UtCisg KiBiYXNlZCBmb2cgaXMgY29tcHV0ZWQgdXNpbmcgdGhlIGFjdHVhbCBkaXN0YW5jZSAocmFuZ2Up IHRvIHRoZSBleWUuCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICBTVkdBM0RfRk9HQkFTRV9JTlZB TElEICAgICAgICAgID0gMCwKKyAgIFNWR0EzRF9GT0dCQVNFX0RFUFRIQkFTRUQgICAgICAgPSAx LAorICAgU1ZHQTNEX0ZPR0JBU0VfUkFOR0VCQVNFRCAgICAgICA9IDIsCisgICBTVkdBM0RfRk9H QkFTRV9NQVggICAgICAgICAgICAgID0gMworfSBTVkdBM2RGb2dCYXNlOworCit0eXBlZGVmIGVu dW0geworICAgU1ZHQTNEX1NURU5DSUxPUF9JTlZBTElEICAgICAgICA9IDAsCisgICBTVkdBM0Rf U1RFTkNJTE9QX01JTiAgICAgICAgICAgID0gMSwKKyAgIFNWR0EzRF9TVEVOQ0lMT1BfS0VFUCAg ICAgICAgICAgPSAxLAorICAgU1ZHQTNEX1NURU5DSUxPUF9aRVJPICAgICAgICAgICA9IDIsCisg ICBTVkdBM0RfU1RFTkNJTE9QX1JFUExBQ0UgICAgICAgID0gMywKKyAgIFNWR0EzRF9TVEVOQ0lM T1BfSU5DUlNBVCAgICAgICAgPSA0LAorICAgU1ZHQTNEX1NURU5DSUxPUF9ERUNSU0FUICAgICAg ICA9IDUsCisgICBTVkdBM0RfU1RFTkNJTE9QX0lOVkVSVCAgICAgICAgID0gNiwKKyAgIFNWR0Ez RF9TVEVOQ0lMT1BfSU5DUiAgICAgICAgICAgPSA3LAorICAgU1ZHQTNEX1NURU5DSUxPUF9ERUNS ICAgICAgICAgICA9IDgsCisgICBTVkdBM0RfU1RFTkNJTE9QX01BWAorfSBTVkdBM2RTdGVuY2ls T3A7CisKK3R5cGVkZWYgZW51bSB7CisgICBTVkdBM0RfQ0xJUFBMQU5FXzAgICAgICAgICAgICAg ID0gKDEgPDwgMCksCisgICBTVkdBM0RfQ0xJUFBMQU5FXzEgICAgICAgICAgICAgID0gKDEgPDwg MSksCisgICBTVkdBM0RfQ0xJUFBMQU5FXzIgICAgICAgICAgICAgID0gKDEgPDwgMiksCisgICBT VkdBM0RfQ0xJUFBMQU5FXzMgICAgICAgICAgICAgID0gKDEgPDwgMyksCisgICBTVkdBM0RfQ0xJ UFBMQU5FXzQgICAgICAgICAgICAgID0gKDEgPDwgNCksCisgICBTVkdBM0RfQ0xJUFBMQU5FXzUg ICAgICAgICAgICAgID0gKDEgPDwgNSksCit9IFNWR0EzZENsaXBQbGFuZXM7CisKK3R5cGVkZWYg ZW51bSB7CisgICBTVkdBM0RfQ0xFQVJfQ09MT1IgICAgICAgICAgICAgID0gMHgxLAorICAgU1ZH QTNEX0NMRUFSX0RFUFRIICAgICAgICAgICAgICA9IDB4MiwKKyAgIFNWR0EzRF9DTEVBUl9TVEVO Q0lMICAgICAgICAgICAgPSAweDQsCisKKyAgIC8qCisgICAgKiBIaW50IG9ubHksIG11c3QgYmUg dXNlZCB0b2dldGhlciB3aXRoIFNWR0EzRF9DTEVBUl9DT0xPUi4gSWYKKyAgICAqIFNWR0EzRF9D TEVBUl9ERVBUSCBvciBTVkdBM0RfQ0xFQVJfU1RFTkNJTCBiaXQgaXMgc2V0LCB0aGlzCisgICAg KiBiaXQgd2lsbCBiZSBpZ25vcmVkLgorICAgICovCisgICBTVkdBM0RfQ0xFQVJfQ09MT1JGSUxM ICAgICAgICAgID0gMHg4Cit9IFNWR0EzZENsZWFyRmxhZzsKKwordHlwZWRlZiBlbnVtIHsKKyAg IFNWR0EzRF9SVF9ERVBUSCAgICAgICAgICAgICAgICAgPSAwLAorICAgU1ZHQTNEX1JUX01JTiAg ICAgICAgICAgICAgICAgICA9IDAsCisgICBTVkdBM0RfUlRfU1RFTkNJTCAgICAgICAgICAgICAg ID0gMSwKKyAgIFNWR0EzRF9SVF9DT0xPUjAgICAgICAgICAgICAgICAgPSAyLAorICAgU1ZHQTNE X1JUX0NPTE9SMSAgICAgICAgICAgICAgICA9IDMsCisgICBTVkdBM0RfUlRfQ09MT1IyICAgICAg ICAgICAgICAgID0gNCwKKyAgIFNWR0EzRF9SVF9DT0xPUjMgICAgICAgICAgICAgICAgPSA1LAor ICAgU1ZHQTNEX1JUX0NPTE9SNCAgICAgICAgICAgICAgICA9IDYsCisgICBTVkdBM0RfUlRfQ09M T1I1ICAgICAgICAgICAgICAgID0gNywKKyAgIFNWR0EzRF9SVF9DT0xPUjYgICAgICAgICAgICAg ICAgPSA4LAorICAgU1ZHQTNEX1JUX0NPTE9SNyAgICAgICAgICAgICAgICA9IDksCisgICBTVkdB M0RfUlRfTUFYLAorICAgU1ZHQTNEX1JUX0lOVkFMSUQgICAgICAgICAgICAgICA9ICgodWludDMy KS0xKSwKK30gU1ZHQTNkUmVuZGVyVGFyZ2V0VHlwZTsKKworI2RlZmluZSBTVkdBM0RfTUFYX1JU X0NPTE9SIChTVkdBM0RfUlRfQ09MT1I3IC0gU1ZHQTNEX1JUX0NPTE9SMCArIDEpCisKK3R5cGVk ZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgordW5pb24geworICAgc3RydWN0IHsK KyAgICAgIHVpbnQzMiAgcmVkICAgOiAxOworICAgICAgdWludDMyICBncmVlbiA6IDE7CisgICAg ICB1aW50MzIgIGJsdWUgIDogMTsKKyAgICAgIHVpbnQzMiAgYWxwaGEgOiAxOworICAgfTsKKyAg IHVpbnQzMiB1aW50VmFsdWU7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdB M2RDb2xvck1hc2s7CisKK3R5cGVkZWYgZW51bSB7CisgICBTVkdBM0RfVkJMRU5EX0RJU0FCTEUg ICAgICAgICAgICA9IDAsCisgICBTVkdBM0RfVkJMRU5EXzFXRUlHSFQgICAgICAgICAgICA9IDEs CisgICBTVkdBM0RfVkJMRU5EXzJXRUlHSFQgICAgICAgICAgICA9IDIsCisgICBTVkdBM0RfVkJM RU5EXzNXRUlHSFQgICAgICAgICAgICA9IDMsCisgICBTVkdBM0RfVkJMRU5EX01BWCAgICAgICAg ICAgICAgICA9IDQsCit9IFNWR0EzZFZlcnRleEJsZW5kRmxhZ3M7CisKK3R5cGVkZWYgZW51bSB7 CisgICBTVkdBM0RfV1JBUENPT1JEXzAgICA9IDEgPDwgMCwKKyAgIFNWR0EzRF9XUkFQQ09PUkRf MSAgID0gMSA8PCAxLAorICAgU1ZHQTNEX1dSQVBDT09SRF8yICAgPSAxIDw8IDIsCisgICBTVkdB M0RfV1JBUENPT1JEXzMgICA9IDEgPDwgMywKKyAgIFNWR0EzRF9XUkFQQ09PUkRfQUxMID0gMHhG LAorfSBTVkdBM2RXcmFwRmxhZ3M7CisKKy8qCisgKiBTVkdBXzNEX0NNRF9URVhUVVJFU1RBVEUg VHlwZXMuICBBbGwgdmFsdWUgdHlwZXMKKyAqIG11c3QgZml0IGluIGEgdWludDMyLgorICovCisK K3R5cGVkZWYgZW51bSB7CisgICBTVkdBM0RfVFNfSU5WQUxJRCAgICAgICAgICAgICAgICAgICAg PSAwLAorICAgU1ZHQTNEX1RTX01JTiAgICAgICAgICAgICAgICAgICAgICAgID0gMSwKKyAgIFNW R0EzRF9UU19CSU5EX1RFWFRVUkUgICAgICAgICAgICAgICA9IDEsICAgIC8qIFNWR0EzZFN1cmZh Y2VJZCAqLworICAgU1ZHQTNEX1RTX0NPTE9ST1AgICAgICAgICAgICAgICAgICAgID0gMiwgICAg LyogU1ZHQTNkVGV4dHVyZUNvbWJpbmVyICovCisgICBTVkdBM0RfVFNfQ09MT1JBUkcxICAgICAg ICAgICAgICAgICAgPSAzLCAgICAvKiBTVkdBM2RUZXh0dXJlQXJnRGF0YSAqLworICAgU1ZHQTNE X1RTX0NPTE9SQVJHMiAgICAgICAgICAgICAgICAgID0gNCwgICAgLyogU1ZHQTNkVGV4dHVyZUFy Z0RhdGEgKi8KKyAgIFNWR0EzRF9UU19BTFBIQU9QICAgICAgICAgICAgICAgICAgICA9IDUsICAg IC8qIFNWR0EzZFRleHR1cmVDb21iaW5lciAqLworICAgU1ZHQTNEX1RTX0FMUEhBQVJHMSAgICAg ICAgICAgICAgICAgID0gNiwgICAgLyogU1ZHQTNkVGV4dHVyZUFyZ0RhdGEgKi8KKyAgIFNWR0Ez RF9UU19BTFBIQUFSRzIgICAgICAgICAgICAgICAgICA9IDcsICAgIC8qIFNWR0EzZFRleHR1cmVB cmdEYXRhICovCisgICBTVkdBM0RfVFNfQUREUkVTU1UgICAgICAgICAgICAgICAgICAgPSA4LCAg ICAvKiBTVkdBM2RUZXh0dXJlQWRkcmVzcyAqLworICAgU1ZHQTNEX1RTX0FERFJFU1NWICAgICAg ICAgICAgICAgICAgID0gOSwgICAgLyogU1ZHQTNkVGV4dHVyZUFkZHJlc3MgKi8KKyAgIFNWR0Ez RF9UU19NSVBGSUxURVIgICAgICAgICAgICAgICAgICA9IDEwLCAgIC8qIFNWR0EzZFRleHR1cmVG aWx0ZXIgKi8KKyAgIFNWR0EzRF9UU19NQUdGSUxURVIgICAgICAgICAgICAgICAgICA9IDExLCAg IC8qIFNWR0EzZFRleHR1cmVGaWx0ZXIgKi8KKyAgIFNWR0EzRF9UU19NSU5GSUxURVIgICAgICAg ICAgICAgICAgICA9IDEyLCAgIC8qIFNWR0EzZFRleHR1cmVGaWx0ZXIgKi8KKyAgIFNWR0EzRF9U U19CT1JERVJDT0xPUiAgICAgICAgICAgICAgICA9IDEzLCAgIC8qIFNWR0EzZENvbG9yICovCisg ICBTVkdBM0RfVFNfVEVYQ09PUkRJTkRFWCAgICAgICAgICAgICAgPSAxNCwgICAvKiB1aW50MzIg Ki8KKyAgIFNWR0EzRF9UU19URVhUVVJFVFJBTlNGT1JNRkxBR1MgICAgICA9IDE1LCAgIC8qIFNW R0EzZFRleFRyYW5zZm9ybUZsYWdzICovCisgICBTVkdBM0RfVFNfVEVYQ09PUkRHRU4gICAgICAg ICAgICAgICAgPSAxNiwgICAvKiBTVkdBM2RUZXh0dXJlQ29vcmRHZW4gKi8KKyAgIFNWR0EzRF9U U19CVU1QRU5WTUFUMDAgICAgICAgICAgICAgICA9IDE3LCAgIC8qIGZsb2F0ICovCisgICBTVkdB M0RfVFNfQlVNUEVOVk1BVDAxICAgICAgICAgICAgICAgPSAxOCwgICAvKiBmbG9hdCAqLworICAg U1ZHQTNEX1RTX0JVTVBFTlZNQVQxMCAgICAgICAgICAgICAgID0gMTksICAgLyogZmxvYXQgKi8K KyAgIFNWR0EzRF9UU19CVU1QRU5WTUFUMTEgICAgICAgICAgICAgICA9IDIwLCAgIC8qIGZsb2F0 ICovCisgICBTVkdBM0RfVFNfVEVYVFVSRV9NSVBNQVBfTEVWRUwgICAgICAgPSAyMSwgICAvKiB1 aW50MzIgKi8KKyAgIFNWR0EzRF9UU19URVhUVVJFX0xPRF9CSUFTICAgICAgICAgICA9IDIyLCAg IC8qIGZsb2F0ICovCisgICBTVkdBM0RfVFNfVEVYVFVSRV9BTklTT1RST1BJQ19MRVZFTCAgPSAy MywgICAvKiB1aW50MzIgKi8KKyAgIFNWR0EzRF9UU19BRERSRVNTVyAgICAgICAgICAgICAgICAg ICA9IDI0LCAgIC8qIFNWR0EzZFRleHR1cmVBZGRyZXNzICovCisKKworICAgLyoKKyAgICAqIFNh bXBsZXIgR2FtbWEgTGV2ZWwKKyAgICAqCisgICAgKiBTYW1wbGVyIGdhbW1hIGVmZmVjdHMgdGhl IGNvbG9yIG9mIHNhbXBsZXMgdGFrZW4gZnJvbSB0aGUgc2FtcGxlci4gIEEKKyAgICAqIHZhbHVl IG9mIDEuMCB3aWxsIHByb2R1Y2UgbGluZWFyIHNhbXBsZXMuICBJZiB0aGUgdmFsdWUgaXMgPD0g MC4wIHRoZQorICAgICogZ2FtbWEgdmFsdWUgaXMgaWdub3JlZCBhbmQgYSBsaW5lYXIgc3BhY2Ug aXMgdXNlZC4KKyAgICAqLworCisgICBTVkdBM0RfVFNfR0FNTUEgICAgICAgICAgICAgICAgICAg ICAgPSAyNSwgICAvKiBmbG9hdCAqLworICAgU1ZHQTNEX1RTX0JVTVBFTlZMU0NBTEUgICAgICAg ICAgICAgID0gMjYsICAgLyogZmxvYXQgKi8KKyAgIFNWR0EzRF9UU19CVU1QRU5WTE9GRlNFVCAg ICAgICAgICAgICA9IDI3LCAgIC8qIGZsb2F0ICovCisgICBTVkdBM0RfVFNfQ09MT1JBUkcwICAg ICAgICAgICAgICAgICAgPSAyOCwgICAvKiBTVkdBM2RUZXh0dXJlQXJnRGF0YSAqLworICAgU1ZH QTNEX1RTX0FMUEhBQVJHMCAgICAgICAgICAgICAgICAgID0gMjksICAgLyogU1ZHQTNkVGV4dHVy ZUFyZ0RhdGEgKi8KKyAgIFNWR0EzRF9UU19QUkVHQl9NQVggICAgICAgICAgICAgICAgICA9IDMw LCAgIC8qIE1heCB2YWx1ZSBiZWZvcmUgR0JPYmplY3RzICovCisgICBTVkdBM0RfVFNfQ09OU1RB TlQgICAgICAgICAgICAgICAgICAgPSAzMCwgICAvKiBTVkdBM2RDb2xvciAqLworICAgU1ZHQTNE X1RTX0NPTE9SX0tFWV9FTkFCTEUgICAgICAgICAgID0gMzEsICAgLyogU1ZHQTNkQm9vbCAqLwor ICAgU1ZHQTNEX1RTX0NPTE9SX0tFWSAgICAgICAgICAgICAgICAgID0gMzIsICAgLyogU1ZHQTNk Q29sb3IgKi8KKyAgIFNWR0EzRF9UU19NQVgKK30gU1ZHQTNkVGV4dHVyZVN0YXRlTmFtZTsKKwor dHlwZWRlZiBlbnVtIHsKKyAgIFNWR0EzRF9UQ19JTlZBTElEICAgICAgICAgICAgICAgICAgID0g MCwKKyAgIFNWR0EzRF9UQ19ESVNBQkxFICAgICAgICAgICAgICAgICAgID0gMSwKKyAgIFNWR0Ez RF9UQ19TRUxFQ1RBUkcxICAgICAgICAgICAgICAgID0gMiwKKyAgIFNWR0EzRF9UQ19TRUxFQ1RB UkcyICAgICAgICAgICAgICAgID0gMywKKyAgIFNWR0EzRF9UQ19NT0RVTEFURSAgICAgICAgICAg ICAgICAgID0gNCwKKyAgIFNWR0EzRF9UQ19BREQgICAgICAgICAgICAgICAgICAgICAgID0gNSwK KyAgIFNWR0EzRF9UQ19BRERTSUdORUQgICAgICAgICAgICAgICAgID0gNiwKKyAgIFNWR0EzRF9U Q19TVUJUUkFDVCAgICAgICAgICAgICAgICAgID0gNywKKyAgIFNWR0EzRF9UQ19CTEVORFRFWFRV UkVBTFBIQSAgICAgICAgID0gOCwKKyAgIFNWR0EzRF9UQ19CTEVORERJRkZVU0VBTFBIQSAgICAg ICAgID0gOSwKKyAgIFNWR0EzRF9UQ19CTEVORENVUlJFTlRBTFBIQSAgICAgICAgID0gMTAsCisg ICBTVkdBM0RfVENfQkxFTkRGQUNUT1JBTFBIQSAgICAgICAgICA9IDExLAorICAgU1ZHQTNEX1RD X01PRFVMQVRFMlggICAgICAgICAgICAgICAgPSAxMiwKKyAgIFNWR0EzRF9UQ19NT0RVTEFURTRY ICAgICAgICAgICAgICAgID0gMTMsCisgICBTVkdBM0RfVENfRFNEVCAgICAgICAgICAgICAgICAg ICAgICA9IDE0LAorICAgU1ZHQTNEX1RDX0RPVFBST0RVQ1QzICAgICAgICAgICAgICAgPSAxNSwK KyAgIFNWR0EzRF9UQ19CTEVORFRFWFRVUkVBTFBIQVBNICAgICAgID0gMTYsCisgICBTVkdBM0Rf VENfQUREU0lHTkVEMlggICAgICAgICAgICAgICA9IDE3LAorICAgU1ZHQTNEX1RDX0FERFNNT09U SCAgICAgICAgICAgICAgICAgPSAxOCwKKyAgIFNWR0EzRF9UQ19QUkVNT0RVTEFURSAgICAgICAg ICAgICAgID0gMTksCisgICBTVkdBM0RfVENfTU9EVUxBVEVBTFBIQV9BRERDT0xPUiAgICA9IDIw LAorICAgU1ZHQTNEX1RDX01PRFVMQVRFQ09MT1JfQUREQUxQSEEgICAgPSAyMSwKKyAgIFNWR0Ez RF9UQ19NT0RVTEFURUlOVkFMUEhBX0FERENPTE9SID0gMjIsCisgICBTVkdBM0RfVENfTU9EVUxB VEVJTlZDT0xPUl9BRERBTFBIQSA9IDIzLAorICAgU1ZHQTNEX1RDX0JVTVBFTlZNQVBMVU1JTkFO Q0UgICAgICAgPSAyNCwKKyAgIFNWR0EzRF9UQ19NVUxUSVBMWUFERCAgICAgICAgICAgICAgID0g MjUsCisgICBTVkdBM0RfVENfTEVSUCAgICAgICAgICAgICAgICAgICAgICA9IDI2LAorICAgU1ZH QTNEX1RDX01BWAorfSBTVkdBM2RUZXh0dXJlQ29tYmluZXI7CisKKyNkZWZpbmUgU1ZHQTNEX1RD X0NBUF9CSVQoc3ZnYTNkX3RjX29wKSAoc3ZnYTNkX3RjX29wID8gKDEgPDwgKHN2Z2EzZF90Y19v cCAtIDEpKSA6IDApCisKK3R5cGVkZWYgZW51bSB7CisgICBTVkdBM0RfVEVYX0FERFJFU1NfSU5W QUxJRCAgICA9IDAsCisgICBTVkdBM0RfVEVYX0FERFJFU1NfTUlOICAgICAgICA9IDEsCisgICBT VkdBM0RfVEVYX0FERFJFU1NfV1JBUCAgICAgICA9IDEsCisgICBTVkdBM0RfVEVYX0FERFJFU1Nf TUlSUk9SICAgICA9IDIsCisgICBTVkdBM0RfVEVYX0FERFJFU1NfQ0xBTVAgICAgICA9IDMsCisg ICBTVkdBM0RfVEVYX0FERFJFU1NfQk9SREVSICAgICA9IDQsCisgICBTVkdBM0RfVEVYX0FERFJF U1NfTUlSUk9ST05DRSA9IDUsCisgICBTVkdBM0RfVEVYX0FERFJFU1NfRURHRSAgICAgICA9IDYs CisgICBTVkdBM0RfVEVYX0FERFJFU1NfTUFYCit9IFNWR0EzZFRleHR1cmVBZGRyZXNzOworCisv KgorICogU1ZHQTNEX1RFWF9GSUxURVJfTk9ORSBhcyB0aGUgbWluaWZpY2F0aW9uIGZpbHRlciBt ZWFucyBtaXBtYXBwaW5nIGlzCisgKiBkaXNhYmxlZCwgYW5kIHRoZSByYXN0ZXJpemVyIHNob3Vs ZCB1c2UgdGhlIG1hZ25pZmljYXRpb24gZmlsdGVyIGluc3RlYWQuCisgKi8KK3R5cGVkZWYgZW51 bSB7CisgICBTVkdBM0RfVEVYX0ZJTFRFUl9OT05FICAgICAgICAgICA9IDAsCisgICBTVkdBM0Rf VEVYX0ZJTFRFUl9NSU4gICAgICAgICAgICA9IDAsCisgICBTVkdBM0RfVEVYX0ZJTFRFUl9ORUFS RVNUICAgICAgICA9IDEsCisgICBTVkdBM0RfVEVYX0ZJTFRFUl9MSU5FQVIgICAgICAgICA9IDIs CisgICBTVkdBM0RfVEVYX0ZJTFRFUl9BTklTT1RST1BJQyAgICA9IDMsCisgICBTVkdBM0RfVEVY X0ZJTFRFUl9GTEFUQ1VCSUMgICAgICA9IDQsIC8qIERlcHJlY2F0ZWQsIG5vdCBpbXBsZW1lbnRl ZCAqLworICAgU1ZHQTNEX1RFWF9GSUxURVJfR0FVU1NJQU5DVUJJQyAgPSA1LCAvKiBEZXByZWNh dGVkLCBub3QgaW1wbGVtZW50ZWQgKi8KKyAgIFNWR0EzRF9URVhfRklMVEVSX1BZUkFNSURBTFFV QUQgID0gNiwgLyogTm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZCAqLworICAgU1ZHQTNEX1RFWF9G SUxURVJfR0FVU1NJQU5RVUFEICAgPSA3LCAvKiBOb3QgY3VycmVudGx5IGltcGxlbWVudGVkICov CisgICBTVkdBM0RfVEVYX0ZJTFRFUl9NQVgKK30gU1ZHQTNkVGV4dHVyZUZpbHRlcjsKKwordHlw ZWRlZiBlbnVtIHsKKyAgIFNWR0EzRF9URVhfVFJBTlNGT1JNX09GRiAgICA9IDAsCisgICBTVkdB M0RfVEVYX1RSQU5TRk9STV9TICAgICAgPSAoMSA8PCAwKSwKKyAgIFNWR0EzRF9URVhfVFJBTlNG T1JNX1QgICAgICA9ICgxIDw8IDEpLAorICAgU1ZHQTNEX1RFWF9UUkFOU0ZPUk1fUiAgICAgID0g KDEgPDwgMiksCisgICBTVkdBM0RfVEVYX1RSQU5TRk9STV9RICAgICAgPSAoMSA8PCAzKSwKKyAg IFNWR0EzRF9URVhfUFJPSkVDVEVEICAgICAgICA9ICgxIDw8IDE1KSwKK30gU1ZHQTNkVGV4VHJh bnNmb3JtRmxhZ3M7CisKK3R5cGVkZWYgZW51bSB7CisgICBTVkdBM0RfVEVYQ09PUkRfR0VOX09G RiAgICAgICAgICAgICAgPSAwLAorICAgU1ZHQTNEX1RFWENPT1JEX0dFTl9FWUVfUE9TSVRJT04g ICAgID0gMSwKKyAgIFNWR0EzRF9URVhDT09SRF9HRU5fRVlFX05PUk1BTCAgICAgICA9IDIsCisg ICBTVkdBM0RfVEVYQ09PUkRfR0VOX1JFRkxFQ1RJT05WRUNUT1IgPSAzLAorICAgU1ZHQTNEX1RF WENPT1JEX0dFTl9TUEhFUkUgICAgICAgICAgID0gNCwKKyAgIFNWR0EzRF9URVhDT09SRF9HRU5f TUFYCit9IFNWR0EzZFRleHR1cmVDb29yZEdlbjsKKworLyoKKyAqIFRleHR1cmUgYXJndW1lbnQg Y29uc3RhbnRzIGZvciB0ZXh0dXJlIGNvbWJpbmVyCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICBT VkdBM0RfVEFfSU5WQUxJRCAgICA9IDAsCisgICBTVkdBM0RfVEFfVEZBQ1RPUiAgICA9IDEsCisg ICBTVkdBM0RfVEFfUFJFVklPVVMgICA9IDIsCisgICBTVkdBM0RfVEFfRElGRlVTRSAgICA9IDMs CisgICBTVkdBM0RfVEFfVEVYVFVSRSAgICA9IDQsCisgICBTVkdBM0RfVEFfU1BFQ1VMQVIgICA9 IDUsCisgICBTVkdBM0RfVEFfQ09OU1RBTlQgICA9IDYsCisgICBTVkdBM0RfVEFfTUFYCit9IFNW R0EzZFRleHR1cmVBcmdEYXRhOworCisjZGVmaW5lIFNWR0EzRF9UTV9NQVNLX0xFTiA0CisKKy8q IE1vZGlmaWVycyBmb3IgdGV4dHVyZSBhcmd1bWVudCBjb25zdGFudHMgZGVmaW5lZCBhYm92ZS4g Ki8KK3R5cGVkZWYgZW51bSB7CisgICBTVkdBM0RfVE1fTk9ORSAgICAgICA9IDAsCisgICBTVkdB M0RfVE1fQUxQSEEgICAgICA9ICgxIDw8IFNWR0EzRF9UTV9NQVNLX0xFTiksCisgICBTVkdBM0Rf VE1fT05FX01JTlVTICA9ICgyIDw8IFNWR0EzRF9UTV9NQVNLX0xFTiksCit9IFNWR0EzZFRleHR1 cmVBcmdNb2RpZmllcjsKKworLyoKKyAqIFZlcnRleCBkZWNsYXJhdGlvbnMKKyAqCisgKiBOb3Rl czoKKyAqCisgKiBTVkdBM0RfREVDTFVTQUdFX1BPU0lUSU9OVCBpcyBmb3IgcHJlLXRyYW5zZm9y bWVkIHZlcnRpY2VzLiBJZiB5b3UKKyAqIGRyYXcgd2l0aCBhbnkgUE9TSVRJT05UIHZlcnRleCBh cnJheXMsIHRoZSBwcm9ncmFtbWFibGUgdmVydGV4CisgKiBwaXBlbGluZSB3aWxsIGJlIGltcGxp Y2l0bHkgZGlzYWJsZWQuIERyYXdpbmcgd2lsbCB0YWtlIHBsYWNlIGFzIGlmCisgKiBubyB2ZXJ0 ZXggc2hhZGVyIHdhcyBib3VuZC4KKyAqLworCit0eXBlZGVmIGVudW0geworICAgU1ZHQTNEX0RF Q0xVU0FHRV9QT1NJVElPTiAgICAgPSAwLAorICAgU1ZHQTNEX0RFQ0xVU0FHRV9CTEVORFdFSUdI VCwKKyAgIFNWR0EzRF9ERUNMVVNBR0VfQkxFTkRJTkRJQ0VTLAorICAgU1ZHQTNEX0RFQ0xVU0FH RV9OT1JNQUwsCisgICBTVkdBM0RfREVDTFVTQUdFX1BTSVpFLAorICAgU1ZHQTNEX0RFQ0xVU0FH RV9URVhDT09SRCwKKyAgIFNWR0EzRF9ERUNMVVNBR0VfVEFOR0VOVCwKKyAgIFNWR0EzRF9ERUNM VVNBR0VfQklOT1JNQUwsCisgICBTVkdBM0RfREVDTFVTQUdFX1RFU1NGQUNUT1IsCisgICBTVkdB M0RfREVDTFVTQUdFX1BPU0lUSU9OVCwKKyAgIFNWR0EzRF9ERUNMVVNBR0VfQ09MT1IsCisgICBT VkdBM0RfREVDTFVTQUdFX0ZPRywKKyAgIFNWR0EzRF9ERUNMVVNBR0VfREVQVEgsCisgICBTVkdB M0RfREVDTFVTQUdFX1NBTVBMRSwKKyAgIFNWR0EzRF9ERUNMVVNBR0VfTUFYCit9IFNWR0EzZERl Y2xVc2FnZTsKKwordHlwZWRlZiBlbnVtIHsKKyAgIFNWR0EzRF9ERUNMTUVUSE9EX0RFRkFVTFQg ICAgID0gMCwKKyAgIFNWR0EzRF9ERUNMTUVUSE9EX1BBUlRJQUxVLAorICAgU1ZHQTNEX0RFQ0xN RVRIT0RfUEFSVElBTFYsCisgICBTVkdBM0RfREVDTE1FVEhPRF9DUk9TU1VWLCAgICAgICAgICAv KiBOb3JtYWwgKi8KKyAgIFNWR0EzRF9ERUNMTUVUSE9EX1VWLAorICAgU1ZHQTNEX0RFQ0xNRVRI T0RfTE9PS1VQLCAgICAgICAgICAgLyogTG9va3VwIGEgZGlzcGxhY2VtZW50IG1hcCAqLworICAg U1ZHQTNEX0RFQ0xNRVRIT0RfTE9PS1VQUFJFU0FNUExFRCwgLyogTG9va3VwIGEgcHJlLXNhbXBs ZWQgZGlzcGxhY2VtZW50ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiBtYXAgKi8KK30gU1ZHQTNkRGVjbE1ldGhvZDsKKwordHlwZWRlZiBlbnVtIHsKKyAgIFNW R0EzRF9ERUNMVFlQRV9GTE9BVDEgICAgICAgID0gIDAsCisgICBTVkdBM0RfREVDTFRZUEVfRkxP QVQyICAgICAgICA9ICAxLAorICAgU1ZHQTNEX0RFQ0xUWVBFX0ZMT0FUMyAgICAgICAgPSAgMiwK KyAgIFNWR0EzRF9ERUNMVFlQRV9GTE9BVDQgICAgICAgID0gIDMsCisgICBTVkdBM0RfREVDTFRZ UEVfRDNEQ09MT1IgICAgICA9ICA0LAorICAgU1ZHQTNEX0RFQ0xUWVBFX1VCWVRFNCAgICAgICAg PSAgNSwKKyAgIFNWR0EzRF9ERUNMVFlQRV9TSE9SVDIgICAgICAgID0gIDYsCisgICBTVkdBM0Rf REVDTFRZUEVfU0hPUlQ0ICAgICAgICA9ICA3LAorICAgU1ZHQTNEX0RFQ0xUWVBFX1VCWVRFNE4g ICAgICAgPSAgOCwKKyAgIFNWR0EzRF9ERUNMVFlQRV9TSE9SVDJOICAgICAgID0gIDksCisgICBT VkdBM0RfREVDTFRZUEVfU0hPUlQ0TiAgICAgICA9IDEwLAorICAgU1ZHQTNEX0RFQ0xUWVBFX1VT SE9SVDJOICAgICAgPSAxMSwKKyAgIFNWR0EzRF9ERUNMVFlQRV9VU0hPUlQ0TiAgICAgID0gMTIs CisgICBTVkdBM0RfREVDTFRZUEVfVURFQzMgICAgICAgICA9IDEzLAorICAgU1ZHQTNEX0RFQ0xU WVBFX0RFQzNOICAgICAgICAgPSAxNCwKKyAgIFNWR0EzRF9ERUNMVFlQRV9GTE9BVDE2XzIgICAg ID0gMTUsCisgICBTVkdBM0RfREVDTFRZUEVfRkxPQVQxNl80ICAgICA9IDE2LAorICAgU1ZHQTNE X0RFQ0xUWVBFX01BWCwKK30gU1ZHQTNkRGVjbFR5cGU7CisKKy8qCisgKiBUaGlzIHN0cnVjdHVy ZSBpcyB1c2VkIGZvciB0aGUgZGl2aXNvciBmb3IgZ2VvbWV0cnkgaW5zdGFuY2luZzsKKyAqIGl0 J3MgYSBkaXJlY3QgdHJhbnNsYXRpb24gb2YgdGhlIERpcmVjdDNEIGVxdWl2YWxlbnQuCisgKi8K K3R5cGVkZWYgdW5pb24geworICAgc3RydWN0IHsKKyAgICAgIC8qCisgICAgICAgKiBGb3IgaW5k ZXggZGF0YSwgdGhpcyBudW1iZXIgcmVwcmVzZW50cyB0aGUgbnVtYmVyIG9mIGluc3RhbmNlcyB0 byBkcmF3LgorICAgICAgICogRm9yIGluc3RhbmNlIGRhdGEsIHRoaXMgbnVtYmVyIHJlcHJlc2Vu dHMgdGhlIG51bWJlciBvZgorICAgICAgICogaW5zdGFuY2VzL3ZlcnRleCBpbiB0aGlzIHN0cmVh bQorICAgICAgICovCisgICAgICB1aW50MzIgY291bnQgOiAzMDsKKworICAgICAgLyoKKyAgICAg ICAqIFRoaXMgaXMgMSBpZiB0aGlzIGlzIHN1cHBvc2VkIHRvIGJlIHRoZSBkYXRhIHRoYXQgaXMg cmVwZWF0ZWQgZm9yCisgICAgICAgKiBldmVyeSBpbnN0YW5jZS4KKyAgICAgICAqLworICAgICAg dWludDMyIGluZGV4ZWREYXRhIDogMTsKKworICAgICAgLyoKKyAgICAgICAqIFRoaXMgaXMgMSBp ZiB0aGlzIGlzIHN1cHBvc2VkIHRvIGJlIHRoZSBwZXItaW5zdGFuY2UgZGF0YS4KKyAgICAgICAq LworICAgICAgdWludDMyIGluc3RhbmNlRGF0YSA6IDE7CisgICB9OworCisgICB1aW50MzIgdmFs dWU7Cit9IFNWR0EzZFZlcnRleERpdmlzb3I7CisKK3R5cGVkZWYgZW51bSB7CisgICAvKgorICAg ICogU1ZHQTNEX1BSSU1JVElWRV9JTlZBTElEIGlzIGEgdmFsaWQgcHJpbWl0aXZlIHR5cGUuCisg ICAgKgorICAgICogTGlzdCBNSU4gc2Vjb25kIHNvIGRlYnVnZ2VycyB3aWxsIHRoaW5rIElOVkFM SUQgaXMKKyAgICAqIHRoZSBjb3JyZWN0IG5hbWUuCisgICAgKi8KKyAgIFNWR0EzRF9QUklNSVRJ VkVfSU5WQUxJRCAgICAgICAgICAgICAgICAgICAgID0gMCwKKyAgIFNWR0EzRF9QUklNSVRJVkVf TUlOICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKyAgIFNWR0EzRF9QUklNSVRJVkVfVFJJ QU5HTEVMSVNUICAgICAgICAgICAgICAgID0gMSwKKyAgIFNWR0EzRF9QUklNSVRJVkVfUE9JTlRM SVNUICAgICAgICAgICAgICAgICAgID0gMiwKKyAgIFNWR0EzRF9QUklNSVRJVkVfTElORUxJU1Qg ICAgICAgICAgICAgICAgICAgID0gMywKKyAgIFNWR0EzRF9QUklNSVRJVkVfTElORVNUUklQICAg ICAgICAgICAgICAgICAgID0gNCwKKyAgIFNWR0EzRF9QUklNSVRJVkVfVFJJQU5HTEVTVFJJUCAg ICAgICAgICAgICAgID0gNSwKKyAgIFNWR0EzRF9QUklNSVRJVkVfVFJJQU5HTEVGQU4gICAgICAg ICAgICAgICAgID0gNiwKKyAgIFNWR0EzRF9QUklNSVRJVkVfTElORUxJU1RfQURKICAgICAgICAg ICAgICAgID0gNywKKyAgIFNWR0EzRF9QUklNSVRJVkVfUFJFRFhfTUFYICAgICAgICAgICAgICAg ICAgID0gNywKKyAgIFNWR0EzRF9QUklNSVRJVkVfTElORVNUUklQX0FESiAgICAgICAgICAgICAg ID0gOCwKKyAgIFNWR0EzRF9QUklNSVRJVkVfVFJJQU5HTEVMSVNUX0FESiAgICAgICAgICAgID0g OSwKKyAgIFNWR0EzRF9QUklNSVRJVkVfVFJJQU5HTEVTVFJJUF9BREogICAgICAgICAgID0gMTAs CisgICBTVkdBM0RfUFJJTUlUSVZFX01BWAorfSBTVkdBM2RQcmltaXRpdmVUeXBlOworCit0eXBl ZGVmIGVudW0geworICAgU1ZHQTNEX0NPT1JESU5BVEVfSU5WQUxJRCAgICAgICAgICAgICAgICAg ICA9IDAsCisgICBTVkdBM0RfQ09PUkRJTkFURV9MRUZUSEFOREVEICAgICAgICAgICAgICAgID0g MSwKKyAgIFNWR0EzRF9DT09SRElOQVRFX1JJR0hUSEFOREVEICAgICAgICAgICAgICAgPSAyLAor ICAgU1ZHQTNEX0NPT1JESU5BVEVfTUFYCit9IFNWR0EzZENvb3JkaW5hdGVUeXBlOworCit0eXBl ZGVmIGVudW0geworICAgU1ZHQTNEX1RSQU5TRk9STV9JTlZBTElEICAgICAgICAgICAgICAgICAg ICAgPSAwLAorICAgU1ZHQTNEX1RSQU5TRk9STV9XT1JMRCAgICAgICAgICAgICAgICAgICAgICAg PSAxLAorICAgU1ZHQTNEX1RSQU5TRk9STV9NSU4gICAgICAgICAgICAgICAgICAgICAgICAgPSAx LAorICAgU1ZHQTNEX1RSQU5TRk9STV9WSUVXICAgICAgICAgICAgICAgICAgICAgICAgPSAyLAor ICAgU1ZHQTNEX1RSQU5TRk9STV9QUk9KRUNUSU9OICAgICAgICAgICAgICAgICAgPSAzLAorICAg U1ZHQTNEX1RSQU5TRk9STV9URVhUVVJFMCAgICAgICAgICAgICAgICAgICAgPSA0LAorICAgU1ZH QTNEX1RSQU5TRk9STV9URVhUVVJFMSAgICAgICAgICAgICAgICAgICAgPSA1LAorICAgU1ZHQTNE X1RSQU5TRk9STV9URVhUVVJFMiAgICAgICAgICAgICAgICAgICAgPSA2LAorICAgU1ZHQTNEX1RS QU5TRk9STV9URVhUVVJFMyAgICAgICAgICAgICAgICAgICAgPSA3LAorICAgU1ZHQTNEX1RSQU5T Rk9STV9URVhUVVJFNCAgICAgICAgICAgICAgICAgICAgPSA4LAorICAgU1ZHQTNEX1RSQU5TRk9S TV9URVhUVVJFNSAgICAgICAgICAgICAgICAgICAgPSA5LAorICAgU1ZHQTNEX1RSQU5TRk9STV9U RVhUVVJFNiAgICAgICAgICAgICAgICAgICAgPSAxMCwKKyAgIFNWR0EzRF9UUkFOU0ZPUk1fVEVY VFVSRTcgICAgICAgICAgICAgICAgICAgID0gMTEsCisgICBTVkdBM0RfVFJBTlNGT1JNX1dPUkxE MSAgICAgICAgICAgICAgICAgICAgICA9IDEyLAorICAgU1ZHQTNEX1RSQU5TRk9STV9XT1JMRDIg ICAgICAgICAgICAgICAgICAgICAgPSAxMywKKyAgIFNWR0EzRF9UUkFOU0ZPUk1fV09STEQzICAg ICAgICAgICAgICAgICAgICAgID0gMTQsCisgICBTVkdBM0RfVFJBTlNGT1JNX01BWAorfSBTVkdB M2RUcmFuc2Zvcm1UeXBlOworCit0eXBlZGVmIGVudW0geworICAgU1ZHQTNEX0xJR0hUVFlQRV9J TlZBTElEICAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgU1ZHQTNEX0xJR0hUVFlQRV9NSU4g ICAgICAgICAgICAgICAgICAgICAgICAgPSAxLAorICAgU1ZHQTNEX0xJR0hUVFlQRV9QT0lOVCAg ICAgICAgICAgICAgICAgICAgICAgPSAxLAorICAgU1ZHQTNEX0xJR0hUVFlQRV9TUE9UMSAgICAg ICAgICAgICAgICAgICAgICAgPSAyLCAvKiAxLWNvbmUsIGluIGRlZ3JlZXMgKi8KKyAgIFNWR0Ez RF9MSUdIVFRZUEVfU1BPVDIgICAgICAgICAgICAgICAgICAgICAgID0gMywgLyogMi1jb25lLCBp biByYWRpYW5zICovCisgICBTVkdBM0RfTElHSFRUWVBFX0RJUkVDVElPTkFMICAgICAgICAgICAg ICAgICA9IDQsCisgICBTVkdBM0RfTElHSFRUWVBFX01BWAorfSBTVkdBM2RMaWdodFR5cGU7CisK K3R5cGVkZWYgZW51bSB7CisgICBTVkdBM0RfQ1VCRUZBQ0VfUE9TWCAgICAgICAgICAgICAgICAg ICAgICAgICA9IDAsCisgICBTVkdBM0RfQ1VCRUZBQ0VfTkVHWCAgICAgICAgICAgICAgICAgICAg ICAgICA9IDEsCisgICBTVkdBM0RfQ1VCRUZBQ0VfUE9TWSAgICAgICAgICAgICAgICAgICAgICAg ICA9IDIsCisgICBTVkdBM0RfQ1VCRUZBQ0VfTkVHWSAgICAgICAgICAgICAgICAgICAgICAgICA9 IDMsCisgICBTVkdBM0RfQ1VCRUZBQ0VfUE9TWiAgICAgICAgICAgICAgICAgICAgICAgICA9IDQs CisgICBTVkdBM0RfQ1VCRUZBQ0VfTkVHWiAgICAgICAgICAgICAgICAgICAgICAgICA9IDUsCit9 IFNWR0EzZEN1YmVGYWNlOworCit0eXBlZGVmIGVudW0geworICAgU1ZHQTNEX1NIQURFUlRZUEVf SU5WQUxJRCAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgU1ZHQTNEX1NIQURFUlRZUEVfTUlO ICAgICAgICAgICAgICAgICAgICAgICAgPSAxLAorICAgU1ZHQTNEX1NIQURFUlRZUEVfVlMgICAg ICAgICAgICAgICAgICAgICAgICAgPSAxLAorICAgU1ZHQTNEX1NIQURFUlRZUEVfUFMgICAgICAg ICAgICAgICAgICAgICAgICAgPSAyLAorICAgU1ZHQTNEX1NIQURFUlRZUEVfUFJFRFhfTUFYICAg ICAgICAgICAgICAgICAgPSAzLAorICAgU1ZHQTNEX1NIQURFUlRZUEVfR1MgICAgICAgICAgICAg ICAgICAgICAgICAgPSAzLAorICAgU1ZHQTNEX1NIQURFUlRZUEVfRFgxMF9NQVggICAgICAgICAg ICAgICAgICAgPSA0LAorICAgU1ZHQTNEX1NIQURFUlRZUEVfSFMgICAgICAgICAgICAgICAgICAg ICAgICAgPSA0LAorICAgU1ZHQTNEX1NIQURFUlRZUEVfRFMgICAgICAgICAgICAgICAgICAgICAg ICAgPSA1LAorICAgU1ZHQTNEX1NIQURFUlRZUEVfQ1MgICAgICAgICAgICAgICAgICAgICAgICAg PSA2LAorICAgU1ZHQTNEX1NIQURFUlRZUEVfTUFYICAgICAgICAgICAgICAgICAgICAgICAgPSA3 Cit9IFNWR0EzZFNoYWRlclR5cGU7CisKKyNkZWZpbmUgU1ZHQTNEX05VTV9TSEFERVJUWVBFX1BS RURYIFwKKyAgIChTVkdBM0RfU0hBREVSVFlQRV9QUkVEWF9NQVggLSBTVkdBM0RfU0hBREVSVFlQ RV9NSU4pCisKKyNkZWZpbmUgU1ZHQTNEX05VTV9TSEFERVJUWVBFX0RYMTAgXAorICAgKFNWR0Ez RF9TSEFERVJUWVBFX0RYMTBfTUFYIC0gU1ZHQTNEX1NIQURFUlRZUEVfTUlOKQorCisjZGVmaW5l IFNWR0EzRF9OVU1fU0hBREVSVFlQRSBcCisgICAoU1ZHQTNEX1NIQURFUlRZUEVfTUFYIC0gU1ZH QTNEX1NIQURFUlRZUEVfTUlOKQorCit0eXBlZGVmIGVudW0geworICAgU1ZHQTNEX0NPTlNUX1RZ UEVfTUlOICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgU1ZHQTNEX0NPTlNUX1RZUEVf RkxPQVQgICAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgU1ZHQTNEX0NPTlNUX1RZUEVfSU5U ICAgICAgICAgICAgICAgICAgICAgICAgPSAxLAorICAgU1ZHQTNEX0NPTlNUX1RZUEVfQk9PTCAg ICAgICAgICAgICAgICAgICAgICAgPSAyLAorICAgU1ZHQTNEX0NPTlNUX1RZUEVfTUFYICAgICAg ICAgICAgICAgICAgICAgICAgPSAzLAorfSBTVkdBM2RTaGFkZXJDb25zdFR5cGU7CisKKy8qCisg KiBSZWdpc3RlciBsaW1pdHMgZm9yIHNoYWRlciBjb25zdHMuCisgKi8KKyNkZWZpbmUgU1ZHQTNE X0NPTlNUUkVHX01BWCAgICAgICAgICAgIDI1NgorI2RlZmluZSBTVkdBM0RfQ09OU1RJTlRSRUdf TUFYICAgICAgICAgMTYKKyNkZWZpbmUgU1ZHQTNEX0NPTlNUQk9PTFJFR19NQVggICAgICAgIDE2 CisKK3R5cGVkZWYgZW51bSB7CisgICBTVkdBM0RfU1RSRVRDSF9CTFRfUE9JTlQgICAgICAgICAg ICAgICAgICAgICA9IDAsCisgICBTVkdBM0RfU1RSRVRDSF9CTFRfTElORUFSICAgICAgICAgICAg ICAgICAgICA9IDEsCisgICBTVkdBM0RfU1RSRVRDSF9CTFRfTUFYCit9IFNWR0EzZFN0cmV0Y2hC bHRNb2RlOworCit0eXBlZGVmIGVudW0geworICAgU1ZHQTNEX1FVRVJZVFlQRV9JTlZBTElEICAg ICAgICAgICAgICAgICAgICAgPSAoKHVpbnQ4KS0xKSwKKyAgIFNWR0EzRF9RVUVSWVRZUEVfTUlO ICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKyAgIFNWR0EzRF9RVUVSWVRZUEVfT0NDTFVT SU9OICAgICAgICAgICAgICAgICAgID0gMCwKKyAgIFNWR0EzRF9RVUVSWVRZUEVfVElNRVNUQU1Q ICAgICAgICAgICAgICAgICAgID0gMSwKKyAgIFNWR0EzRF9RVUVSWVRZUEVfVElNRVNUQU1QRElT Sk9JTlQgICAgICAgICAgID0gMiwKKyAgIFNWR0EzRF9RVUVSWVRZUEVfUElQRUxJTkVTVEFUUyAg ICAgICAgICAgICAgID0gMywKKyAgIFNWR0EzRF9RVUVSWVRZUEVfT0NDTFVTSU9OUFJFRElDQVRF ICAgICAgICAgID0gNCwKKyAgIFNWR0EzRF9RVUVSWVRZUEVfU1RSRUFNT1VUUFVUU1RBVFMgICAg ICAgICAgID0gNSwKKyAgIFNWR0EzRF9RVUVSWVRZUEVfU1RSRUFNT1ZFUkZMT1dQUkVESUNBVEUg ICAgID0gNiwKKyAgIFNWR0EzRF9RVUVSWVRZUEVfT0NDTFVTSU9ONjQgICAgICAgICAgICAgICAg ID0gNywKKyAgIFNWR0EzRF9RVUVSWVRZUEVfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgID0g OCwKKyAgIFNWR0EzRF9RVUVSWVRZUEVfRFgxMF9NQVggICAgICAgICAgICAgICAgICAgID0gOSwK KyAgIFNWR0EzRF9RVUVSWVRZUEVfU09TVEFUU19TVFJFQU0wICAgICAgICAgICAgID0gOSwKKyAg IFNWR0EzRF9RVUVSWVRZUEVfU09TVEFUU19TVFJFQU0xICAgICAgICAgICAgID0gMTAsCisgICBT VkdBM0RfUVVFUllUWVBFX1NPU1RBVFNfU1RSRUFNMiAgICAgICAgICAgICA9IDExLAorICAgU1ZH QTNEX1FVRVJZVFlQRV9TT1NUQVRTX1NUUkVBTTMgICAgICAgICAgICAgPSAxMiwKKyAgIFNWR0Ez RF9RVUVSWVRZUEVfU09QX1NUUkVBTTAgICAgICAgICAgICAgICAgID0gMTMsCisgICBTVkdBM0Rf UVVFUllUWVBFX1NPUF9TVFJFQU0xICAgICAgICAgICAgICAgICA9IDE0LAorICAgU1ZHQTNEX1FV RVJZVFlQRV9TT1BfU1RSRUFNMiAgICAgICAgICAgICAgICAgPSAxNSwKKyAgIFNWR0EzRF9RVUVS WVRZUEVfU09QX1NUUkVBTTMgICAgICAgICAgICAgICAgID0gMTYsCisgICBTVkdBM0RfUVVFUllU WVBFX01BWAorfSBTVkdBM2RRdWVyeVR5cGU7CisKK3R5cGVkZWYgdWludDggU1ZHQTNkUXVlcnlU eXBlVWludDg7CisKKyNkZWZpbmUgU1ZHQTNEX05VTV9RVUVSWVRZUEUgIChTVkdBM0RfUVVFUllU WVBFX01BWCAtIFNWR0EzRF9RVUVSWVRZUEVfTUlOKQorCisvKgorICogVGhpcyBpcyB0aGUgbWF4 aW11bSBudW1iZXIgb2YgcXVlcmllcyBwZXIgY29udGV4dCB0aGF0IGNhbiBiZSBhY3RpdmUKKyAq IHNpbXVsdGFuZW91c2x5IGJldHdlZW4gYSBiZWdpblF1ZXJ5IGFuZCBlbmRRdWVyeS4KKyAqLwor I2RlZmluZSBTVkdBM0RfTUFYX1FVRVJZIDY0CisKKy8qCisgKiBRdWVyeSByZXN1bHQgYnVmZmVy IGZvcm1hdHMKKyAqLwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitz dHJ1Y3QgeworICAgdWludDMyIHNhbXBsZXNSZW5kZXJlZDsKK30KKyNpbmNsdWRlICJ2bXdhcmVf cGFja19lbmQuaCIKK1NWR0FEWE9jY2x1c2lvblF1ZXJ5UmVzdWx0OworCit0eXBlZGVmCisjaW5j bHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7CisgICB1aW50MzIgcGFzc2VkOwor fQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQURYRXZlbnRRdWVyeVJlc3VsdDsK KwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAg dWludDY0IHRpbWVzdGFtcDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0FE WFRpbWVzdGFtcFF1ZXJ5UmVzdWx0OworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tf YmVnaW4uaCIKK3N0cnVjdCB7CisgICB1aW50NjQgcmVhbEZyZXF1ZW5jeTsKKyAgIHVpbnQzMiBk aXNqb2ludDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0FEWFRpbWVzdGFt cERpc2pvaW50UXVlcnlSZXN1bHQ7CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19i ZWdpbi5oIgorc3RydWN0IHsKKyAgIHVpbnQ2NCBpbnB1dEFzc2VtYmx5VmVydGljZXM7CisgICB1 aW50NjQgaW5wdXRBc3NlbWJseVByaW1pdGl2ZXM7CisgICB1aW50NjQgdmVydGV4U2hhZGVySW52 b2NhdGlvbnM7CisgICB1aW50NjQgZ2VvbWV0cnlTaGFkZXJJbnZvY2F0aW9uczsKKyAgIHVpbnQ2 NCBnZW9tZXRyeVNoYWRlclByaW1pdGl2ZXM7CisgICB1aW50NjQgY2xpcHBlckludm9jYXRpb25z OworICAgdWludDY0IGNsaXBwZXJQcmltaXRpdmVzOworICAgdWludDY0IHBpeGVsU2hhZGVySW52 b2NhdGlvbnM7CisgICB1aW50NjQgaHVsbFNoYWRlckludm9jYXRpb25zOworICAgdWludDY0IGRv bWFpblNoYWRlckludm9jYXRpb25zOworICAgdWludDY0IGNvbXB1dGVTaGFkZXJJbnZvY2F0aW9u czsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0FEWFBpcGVsaW5lU3RhdGlz dGljc1F1ZXJ5UmVzdWx0OworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4u aCIKK3N0cnVjdCB7CisgICB1aW50MzIgYW55U2FtcGxlc1JlbmRlcmVkOworfQorI2luY2x1ZGUg InZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQURYT2NjbHVzaW9uUHJlZGljYXRlUXVlcnlSZXN1bHQ7 CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAg IHVpbnQ2NCBudW1QcmltaXRpdmVzV3JpdHRlbjsKKyAgIHVpbnQ2NCBudW1QcmltaXRpdmVzUmVx dWlyZWQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBRFhTdHJlYW1PdXRT dGF0aXN0aWNzUXVlcnlSZXN1bHQ7CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19i ZWdpbi5oIgorc3RydWN0IHsKKyAgIHVpbnQzMiBvdmVyZmxvd2VkOworfQorI2luY2x1ZGUgInZt d2FyZV9wYWNrX2VuZC5oIgorU1ZHQURYU3RyZWFtT3V0UHJlZGljYXRlUXVlcnlSZXN1bHQ7CisK K3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAgIHVp bnQ2NCBzYW1wbGVzUmVuZGVyZWQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitT VkdBRFhPY2NsdXNpb242NFF1ZXJ5UmVzdWx0OworCisvKgorICogU1ZHQURYUXVlcnlSZXN1bHRV bmlvbiBpcyBub3QgaW50ZW5kZWQgZm9yIHVzZSBpbiB0aGUgcHJvdG9jb2wsIGJ1dCBpcworICog dmVyeSBoZWxwZnVsIHdoZW4gd29ya2luZyB3aXRoIHF1ZXJpZXMgZ2VuZXJpY2FsbHkuCisgKi8K K3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgordW5pb24gU1ZHQURYUXVl cnlSZXN1bHRVbmlvbiB7CisgICBTVkdBRFhPY2NsdXNpb25RdWVyeVJlc3VsdCBvY2M7CisgICBT VkdBRFhFdmVudFF1ZXJ5UmVzdWx0IGV2ZW50OworICAgU1ZHQURYVGltZXN0YW1wUXVlcnlSZXN1 bHQgdHM7CisgICBTVkdBRFhUaW1lc3RhbXBEaXNqb2ludFF1ZXJ5UmVzdWx0IHRzRGlzam9pbnQ7 CisgICBTVkdBRFhQaXBlbGluZVN0YXRpc3RpY3NRdWVyeVJlc3VsdCBwaXBlbGluZVN0YXRzOwor ICAgU1ZHQURYT2NjbHVzaW9uUHJlZGljYXRlUXVlcnlSZXN1bHQgb2NjUHJlZDsKKyAgIFNWR0FE WFN0cmVhbU91dFN0YXRpc3RpY3NRdWVyeVJlc3VsdCBzb1N0YXRzOworICAgU1ZHQURYU3RyZWFt T3V0UHJlZGljYXRlUXVlcnlSZXN1bHQgc29QcmVkOworICAgU1ZHQURYT2NjbHVzaW9uNjRRdWVy eVJlc3VsdCBvY2M2NDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0FEWFF1 ZXJ5UmVzdWx0VW5pb247CisKKwordHlwZWRlZiBlbnVtIHsKKyAgIFNWR0EzRF9RVUVSWVNUQVRF X1BFTkRJTkcgICAgID0gMCwgICAgICAvKiBRdWVyeSBpcyBub3QgZmluaXNoZWQgeWV0ICovCisg ICBTVkdBM0RfUVVFUllTVEFURV9TVUNDRUVERUQgICA9IDEsICAgICAgLyogQ29tcGxldGVkIHN1 Y2Nlc3NmdWxseSAqLworICAgU1ZHQTNEX1FVRVJZU1RBVEVfRkFJTEVEICAgICAgPSAyLCAgICAg IC8qIENvbXBsZXRlZCB1bnN1Y2Nlc3NmdWxseSAqLworICAgU1ZHQTNEX1FVRVJZU1RBVEVfTkVX ICAgICAgICAgPSAzLCAgICAgIC8qIE5ldmVyIHN1Ym1pdHRlZCAoZ3Vlc3Qgb25seSkgKi8KK30g U1ZHQTNkUXVlcnlTdGF0ZTsKKwordHlwZWRlZiBlbnVtIHsKKyAgIFNWR0EzRF9XUklURV9IT1NU X1ZSQU0gICAgICAgID0gMSwKKyAgIFNWR0EzRF9SRUFEX0hPU1RfVlJBTSAgICAgICAgID0gMiwK K30gU1ZHQTNkVHJhbnNmZXJUeXBlOworCit0eXBlZGVmIGVudW0geworICAgU1ZHQTNEX0xPR0lD T1BfSU5WQUxJRCAgID0gMCwKKyAgIFNWR0EzRF9MT0dJQ09QX01JTiAgICAgICA9IDEsCisgICBT VkdBM0RfTE9HSUNPUF9DT1BZICAgICAgPSAxLAorICAgU1ZHQTNEX0xPR0lDT1BfTk9UICAgICAg ID0gMiwKKyAgIFNWR0EzRF9MT0dJQ09QX0FORCAgICAgICA9IDMsCisgICBTVkdBM0RfTE9HSUNP UF9PUiAgICAgICAgPSA0LAorICAgU1ZHQTNEX0xPR0lDT1BfWE9SICAgICAgID0gNSwKKyAgIFNW R0EzRF9MT0dJQ09QX05YT1IgICAgICA9IDYsCisgICBTVkdBM0RfTE9HSUNPUF9ST1AzTUlOICAg PSAzMCwgICAvKiA3LTI5IGFyZSByZXNlcnZlZCBmb3IgZnV0dXJlIGxvZ2ljIG9wcy4gKi8KKyAg IFNWR0EzRF9MT0dJQ09QX1JPUDNNQVggICA9IChTVkdBM0RfTE9HSUNPUF9ST1AzTUlOICsgMjU1 KSwKKyAgIFNWR0EzRF9MT0dJQ09QX01BWCAgICAgICA9IChTVkdBM0RfTE9HSUNPUF9ST1AzTUFY ICsgMSksCit9IFNWR0EzZExvZ2ljT3A7CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFj a19iZWdpbi5oIgorc3RydWN0IHsKKyAgIHVuaW9uIHsKKyAgICAgIHN0cnVjdCB7CisJIHVpbnQx NiAgZnVuY3Rpb247ICAgICAgIC8qIFNWR0EzZEZvZ0Z1bmN0aW9uICovCisJIHVpbnQ4ICAgdHlw ZTsgICAgICAgICAgIC8qIFNWR0EzZEZvZ1R5cGUgKi8KKwkgdWludDggICBiYXNlOyAgICAgICAg ICAgLyogU1ZHQTNkRm9nQmFzZSAqLworICAgICAgfTsKKyAgICAgIHVpbnQzMiAgICAgdWludFZh bHVlOworICAgfTsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZEZvZ01v ZGU7CisKKy8qCisgKiBVbmlxdWVseSBpZGVudGlmeSBvbmUgaW1hZ2UgKGEgMUQvMkQvM0QgYXJy YXkpIGZyb20gYSBzdXJmYWNlLiBUaGlzCisgKiBpcyBhIHN1cmZhY2UgSUQgYXMgd2VsbCBhcyBm YWNlL21pcG1hcCBpbmRpY2VzLgorICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFj a19iZWdpbi5oIgorc3RydWN0IFNWR0EzZFN1cmZhY2VJbWFnZUlkIHsKKyAgIHVpbnQzMiAgICAg ICAgICAgICAgIHNpZDsKKyAgIHVpbnQzMiAgICAgICAgICAgICAgIGZhY2U7CisgICB1aW50MzIg ICAgICAgICAgICAgICBtaXBtYXA7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitT VkdBM2RTdXJmYWNlSW1hZ2VJZDsKKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2Jl Z2luLmgiCitzdHJ1Y3QgeworICAgdWludDMyICAgICAgICAgICAgICAgd2lkdGg7CisgICB1aW50 MzIgICAgICAgICAgICAgICBoZWlnaHQ7CisgICB1aW50MzIgICAgICAgICAgICAgICBkZXB0aDsK K30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0EzZFNpemU7CisKKy8qCisgKiBH dWVzdC1iYWNrZWQgb2JqZWN0cyBkZWZpbml0aW9ucy4KKyAqLwordHlwZWRlZiBlbnVtIHsKKyAg IFNWR0FfT1RBQkxFX01PQiAgICAgICAgICAgICA9IDAsCisgICBTVkdBX09UQUJMRV9NSU4gICAg ICAgICAgICAgPSAwLAorICAgU1ZHQV9PVEFCTEVfU1VSRkFDRSAgICAgICAgID0gMSwKKyAgIFNW R0FfT1RBQkxFX0NPTlRFWFQgICAgICAgICA9IDIsCisgICBTVkdBX09UQUJMRV9TSEFERVIgICAg ICAgICAgPSAzLAorICAgU1ZHQV9PVEFCTEVfU0NSRUVOVEFSR0VUICAgID0gNCwKKworICAgU1ZH QV9PVEFCTEVfRFg5X01BWCAgICAgICAgID0gNSwKKworICAgU1ZHQV9PVEFCTEVfRFhDT05URVhU ICAgICAgID0gNSwKKyAgIFNWR0FfT1RBQkxFX01BWCAgICAgICAgICAgICA9IDYKK30gU1ZHQU9U YWJsZVR5cGU7CisKKy8qCisgKiBEZXByZWNhdGVkLgorICovCisjZGVmaW5lIFNWR0FfT1RBQkxF X0NPVU5UIDQKKwordHlwZWRlZiBlbnVtIHsKKyAgIFNWR0FfQ09UQUJMRV9NSU4gICAgICAgICAg ICAgPSAwLAorICAgU1ZHQV9DT1RBQkxFX1JUVklFVyAgICAgICAgICA9IDAsCisgICBTVkdBX0NP VEFCTEVfRFNWSUVXICAgICAgICAgID0gMSwKKyAgIFNWR0FfQ09UQUJMRV9TUlZJRVcgICAgICAg ICAgPSAyLAorICAgU1ZHQV9DT1RBQkxFX0VMRU1FTlRMQVlPVVQgICA9IDMsCisgICBTVkdBX0NP VEFCTEVfQkxFTkRTVEFURSAgICAgID0gNCwKKyAgIFNWR0FfQ09UQUJMRV9ERVBUSFNURU5DSUwg ICAgPSA1LAorICAgU1ZHQV9DT1RBQkxFX1JBU1RFUklaRVJTVEFURSA9IDYsCisgICBTVkdBX0NP VEFCTEVfU0FNUExFUiAgICAgICAgID0gNywKKyAgIFNWR0FfQ09UQUJMRV9TVFJFQU1PVVRQVVQg ICAgPSA4LAorICAgU1ZHQV9DT1RBQkxFX0RYUVVFUlkgICAgICAgICA9IDksCisgICBTVkdBX0NP VEFCTEVfRFhTSEFERVIgICAgICAgID0gMTAsCisgICBTVkdBX0NPVEFCTEVfRFgxMF9NQVggICAg ICAgID0gMTEsCisgICBTVkdBX0NPVEFCTEVfVUFWSUVXICAgICAgICAgID0gMTEsCisgICBTVkdB X0NPVEFCTEVfTUFYCit9IFNWR0FDT1RhYmxlVHlwZTsKKworLyoKKyAqIFRoZSBsYXJnZXN0IHNp emUgKG51bWJlciBvZiBlbnRyaWVzKSBhbGxvd2VkIGluIGEgQ09UYWJsZS4KKyAqLworI2RlZmlu ZSBTVkdBX0NPVEFCTEVfTUFYX0lEUyAoTUFYX1VJTlQxNiAtIDIpCisKK3R5cGVkZWYgZW51bSBT VkdBTW9iRm9ybWF0IHsKKyAgIFNWR0EzRF9NT0JGTVRfSU5WQUxJRCAgICAgPSBTVkdBM0RfSU5W QUxJRF9JRCwKKyAgIFNWR0EzRF9NT0JGTVRfUFRERVBUSF8wICAgPSAwLAorICAgU1ZHQTNEX01P QkZNVF9NSU4gICAgICAgICA9IDAsCisgICBTVkdBM0RfTU9CRk1UX1BUREVQVEhfMSAgID0gMSwK KyAgIFNWR0EzRF9NT0JGTVRfUFRERVBUSF8yICAgPSAyLAorICAgU1ZHQTNEX01PQkZNVF9SQU5H RSAgICAgICA9IDMsCisgICBTVkdBM0RfTU9CRk1UX1BUREVQVEg2NF8wID0gNCwKKyAgIFNWR0Ez RF9NT0JGTVRfUFRERVBUSDY0XzEgPSA1LAorICAgU1ZHQTNEX01PQkZNVF9QVERFUFRINjRfMiA9 IDYsCisgICBTVkdBM0RfTU9CRk1UX1BSRURYX01BWCAgID0gNywKKyAgIFNWR0EzRF9NT0JGTVRf RU1QVFkgICAgICAgPSA3LAorICAgU1ZHQTNEX01PQkZNVF9NQVgsCit9IFNWR0FNb2JGb3JtYXQ7 CisKKyNkZWZpbmUgU1ZHQTNEX01PQl9FTVBUWV9CQVNFIDEKKworI2VuZGlmIC8qIF9TVkdBM0Rf VFlQRVNfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvZGV2aWNlX2lu Y2x1ZGUvc3ZnYV9lc2NhcGUuaCBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvZGV2aWNlX2luY2x1 ZGUvc3ZnYV9lc2NhcGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODRi MWQxCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9kZXZpY2VfaW5j bHVkZS9zdmdhX2VzY2FwZS5oCkBAIC0wLDAgKzEsODkgQEAKKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgMjAw Ny0yMDE1IFZNd2FyZSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNz aW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgorICog b2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50 YXRpb24KKyAqIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJl IHdpdGhvdXQKKyAqIHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRo ZSByaWdodHMgdG8gdXNlLCBjb3B5LAorICogbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJp YnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzCisgKiBvZiB0aGUgU29mdHdhcmUs IGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlz aGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisg KiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBz aGFsbCBiZQorICogaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9u cyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJ UyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisgKiBFWFBSRVNTIE9SIElNUExJRUQs IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNI QU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECisgKiBOT05J TkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBI T0xERVJTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFC SUxJVFksIFdIRVRIRVIgSU4gQU4KKyAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhF UldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhF IFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCisgKiBTT0ZUV0FS RS4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8KKworLyoKKyAqIHN2Z2FfZXNjYXBlLmggLS0KKyAqCisgKiAgICBEZWZpbml0 aW9ucyBmb3Igb3VyIG93biAodmVuZG9yLXNwZWNpZmljKSBTVkdBIEVzY2FwZSBjb21tYW5kcy4K KyAqLworCisjaWZuZGVmIF9TVkdBX0VTQ0FQRV9IXworI2RlZmluZSBfU1ZHQV9FU0NBUEVfSF8K KworCisvKgorICogTmFtZXNwYWNlIElEcyBmb3IgdGhlIGVzY2FwZSBjb21tYW5kCisgKi8KKwor I2RlZmluZSBTVkdBX0VTQ0FQRV9OU0lEX1ZNV0FSRSAweDAwMDAwMDAwCisjZGVmaW5lIFNWR0Ff RVNDQVBFX05TSURfREVWRUwgIDB4RkZGRkZGRkYKKworCisvKgorICogV2l0aGluIFNWR0FfRVND QVBFX05TSURfVk1XQVJFLCB3ZSBtdWx0aXBsZXggY29tbWFuZHMgYWNjb3JkaW5nIHRvCisgKiB0 aGUgZmlyc3QgRFdPUkQgb2YgZXNjYXBlIGRhdGEgKGFmdGVyIHRoZSBuc0lEIGFuZCBzaXplKS4g QXMgYQorICogZ3VpZGVsaW5lIHdlJ3JlIHVzaW5nIHRoZSBoaWdoIHdvcmQgYW5kIGxvdyB3b3Jk IGFzIGEgbWFqb3IgYW5kCisgKiBtaW5vciBjb21tYW5kIG51bWJlciwgcmVzcGVjdGl2ZWx5Lgor ICoKKyAqIE1ham9yIGNvbW1hbmQgbnVtYmVyIGFsbG9jYXRpb246CisgKgorICogICAwMDAwOiBS ZXNlcnZlZAorICogICAwMDAxOiBTVkdBX0VTQ0FQRV9WTVdBUkVfTE9HIChzdmdhX2JpbmFyeV9s b2dnZXIuaCkKKyAqICAgMDAwMjogU1ZHQV9FU0NBUEVfVk1XQVJFX1ZJREVPIChzdmdhX292ZXJs YXkuaCkKKyAqICAgMDAwMzogU1ZHQV9FU0NBUEVfVk1XQVJFX0hJTlQgKHN2Z2FfZXNjYXBlLmgp CisgKi8KKworI2RlZmluZSBTVkdBX0VTQ0FQRV9WTVdBUkVfTUFKT1JfTUFTSyAgMHhGRkZGMDAw MAorCisKKy8qCisgKiBTVkdBIEhpbnQgY29tbWFuZHMuCisgKgorICogVGhlc2UgZXNjYXBlcyBs ZXQgdGhlIFNWR0EgZHJpdmVyIHByb3ZpZGUgb3B0aW9uYWwgaW5mb3JtYXRpb24gdG8KKyAqIGhl IGhvc3QgYWJvdXQgdGhlIHN0YXRlIG9mIHRoZSBndWVzdCBvciBndWVzdCBhcHBsaWNhdGlvbnMu IFRoZQorICogaG9zdCBjYW4gdXNlIHRoZXNlIGhpbnRzIHRvIG1ha2UgdXNlciBpbnRlcmZhY2Ug b3IgcGVyZm9ybWFuY2UKKyAqIGRlY2lzaW9ucy4KKyAqCisgKiBOb3RlczoKKyAqCisgKiAgIC0g U1ZHQV9FU0NBUEVfVk1XQVJFX0hJTlRfRlVMTFNDUkVFTiBpcyBkZXByZWNhdGVkIGZvciBndWVz dHMKKyAqICAgICB0aGF0IHVzZSB0aGUgU1ZHQSBTY3JlZW4gT2JqZWN0IGV4dGVuc2lvbi4gSW5z dGVhZCBvZiBzZW5kaW5nCisgKiAgICAgdGhpcyBlc2NhcGUsIHVzZSB0aGUgU1ZHQV9TQ1JFRU5f RlVMTFNDUkVFTl9ISU5UIGZsYWcgb24geW91cgorICogICAgIFNjcmVlbiBPYmplY3QuCisgKi8K KworI2RlZmluZSBTVkdBX0VTQ0FQRV9WTVdBUkVfSElOVCAgICAgICAgICAgICAgIDB4MDAwMzAw MDAKKyNkZWZpbmUgU1ZHQV9FU0NBUEVfVk1XQVJFX0hJTlRfRlVMTFNDUkVFTiAgICAweDAwMDMw MDAxICAvKiBEZXByZWNhdGVkICovCisKK3R5cGVkZWYKK3N0cnVjdCB7CisgICB1aW50MzIgY29t bWFuZDsKKyAgIHVpbnQzMiBmdWxsc2NyZWVuOworICAgc3RydWN0IHsKKyAgICAgIGludDMyIHgs IHk7CisgICB9IG1vbml0b3JQb3NpdGlvbjsKK30gU1ZHQUVzY2FwZUhpbnRGdWxsc2NyZWVuOwor CisjZW5kaWYgLyogX1NWR0FfRVNDQVBFX0hfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L2RldmljZV9pbmNsdWRlL3N2Z2Ffb3ZlcmxheS5oIGIvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC9kZXZpY2VfaW5jbHVkZS9zdmdhX292ZXJsYXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5mYWY2ZDliCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC9kZXZpY2VfaW5jbHVkZS9zdmdhX292ZXJsYXkuaApAQCAtMCwwICsxLDE5OSBA QAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKKyAqIENvcHlyaWdodCAyMDA3LTIwMTUgVk13YXJlLCBJbmMuICBBbGwgcmlnaHRzIHJl c2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hh cmdlLCB0byBhbnkgcGVyc29uCisgKiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUg YW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgorICogZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwg dG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dAorICogcmVzdHJpY3Rpb24sIGluY2x1ZGlu ZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksCisgKiBtb2RpZnks IG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3Bp ZXMKKyAqIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl IFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxv d2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0 aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCisgKiBpbmNsdWRlZCBpbiBhbGwgY29waWVz IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09G VFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwK KyAqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg V0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRSBBTkQKKyAqIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlN LCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgorICogQUNUSU9OIE9G IENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4K KyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFM SU5HUyBJTiBUSEUKKyAqIFNPRlRXQVJFLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogc3ZnYV9vdmVybGF5 LmggLS0KKyAqCisgKiAgICBEZWZpbml0aW9ucyBmb3IgdmlkZW8tb3ZlcmxheSBzdXBwb3J0Lgor ICovCisKKyNpZm5kZWYgX1NWR0FfT1ZFUkxBWV9IXworI2RlZmluZSBfU1ZHQV9PVkVSTEFZX0hf CisKKyNpbmNsdWRlICJzdmdhX3JlZy5oIgorCisvKgorICogVmlkZW8gZm9ybWF0cyB3ZSBzdXBw b3J0CisgKi8KKworI2RlZmluZSBWTVdBUkVfRk9VUkNDX1lWMTIgMHgzMjMxNTY1OSAvKiAnWScg J1YnICcxJyAnMicgKi8KKyNkZWZpbmUgVk1XQVJFX0ZPVVJDQ19ZVVkyIDB4MzI1OTU1NTkgLyog J1knICdVJyAnWScgJzInICovCisjZGVmaW5lIFZNV0FSRV9GT1VSQ0NfVVlWWSAweDU5NTY1OTU1 IC8qICdVJyAnWScgJ1YnICdZJyAqLworCit0eXBlZGVmIGVudW0geworICAgU1ZHQV9PVkVSTEFZ X0ZPUk1BVF9JTlZBTElEID0gMCwKKyAgIFNWR0FfT1ZFUkxBWV9GT1JNQVRfWVYxMiA9IFZNV0FS RV9GT1VSQ0NfWVYxMiwKKyAgIFNWR0FfT1ZFUkxBWV9GT1JNQVRfWVVZMiA9IFZNV0FSRV9GT1VS Q0NfWVVZMiwKKyAgIFNWR0FfT1ZFUkxBWV9GT1JNQVRfVVlWWSA9IFZNV0FSRV9GT1VSQ0NfVVlW WSwKK30gU1ZHQU92ZXJsYXlGb3JtYXQ7CisKKyNkZWZpbmUgU1ZHQV9WSURFT19DT0xPUktFWV9N QVNLICAgICAgICAgICAgIDB4MDBmZmZmZmYKKworI2RlZmluZSBTVkdBX0VTQ0FQRV9WTVdBUkVf VklERU8gICAgICAgICAgICAgMHgwMDAyMDAwMAorCisjZGVmaW5lIFNWR0FfRVNDQVBFX1ZNV0FS RV9WSURFT19TRVRfUkVHUyAgICAweDAwMDIwMDAxCisgICAgICAgIC8qIEZJRk8gZXNjYXBlIGxh eW91dDoKKyAgICAgICAgICogVHlwZSwgU3RyZWFtIElkLCAoUmVnaXN0ZXIgSWQsIFZhbHVlKSBw YWlycyAqLworCisjZGVmaW5lIFNWR0FfRVNDQVBFX1ZNV0FSRV9WSURFT19GTFVTSCAgICAgICAw eDAwMDIwMDAyCisgICAgICAgIC8qIEZJRk8gZXNjYXBlIGxheW91dDoKKyAgICAgICAgICogVHlw ZSwgU3RyZWFtIElkICovCisKK3R5cGVkZWYKK3N0cnVjdCBTVkdBRXNjYXBlVmlkZW9TZXRSZWdz IHsKKyAgIHN0cnVjdCB7CisgICAgICB1aW50MzIgY21kVHlwZTsKKyAgICAgIHVpbnQzMiBzdHJl YW1JZDsKKyAgIH0gaGVhZGVyOworCisgICAvKiBNYXkgaW5jbHVkZSB6ZXJvIG9yIG1vcmUgaXRl bXMuICovCisgICBzdHJ1Y3QgeworICAgICAgdWludDMyIHJlZ2lzdGVySWQ7CisgICAgICB1aW50 MzIgdmFsdWU7CisgICB9IGl0ZW1zWzFdOworfSBTVkdBRXNjYXBlVmlkZW9TZXRSZWdzOworCit0 eXBlZGVmCitzdHJ1Y3QgU1ZHQUVzY2FwZVZpZGVvRmx1c2ggeworICAgdWludDMyIGNtZFR5cGU7 CisgICB1aW50MzIgc3RyZWFtSWQ7Cit9IFNWR0FFc2NhcGVWaWRlb0ZsdXNoOworCisKKy8qCisg KiBTdHJ1Y3QgZGVmaW5pdGlvbnMgZm9yIHRoZSB2aWRlbyBvdmVybGF5IGNvbW1hbmRzIGJ1aWx0 IG9uCisgKiBTVkdBRmlmb0NtZEVzY2FwZS4KKyAqLwordHlwZWRlZgorc3RydWN0IHsKKyAgIHVp bnQzMiBjb21tYW5kOworICAgdWludDMyIG92ZXJsYXk7Cit9IFNWR0FGaWZvRXNjYXBlQ21kVmlk ZW9CYXNlOworCit0eXBlZGVmCitzdHJ1Y3QgeworICAgU1ZHQUZpZm9Fc2NhcGVDbWRWaWRlb0Jh c2UgdmlkZW9DbWQ7Cit9IFNWR0FGaWZvRXNjYXBlQ21kVmlkZW9GbHVzaDsKKwordHlwZWRlZgor c3RydWN0IHsKKyAgIFNWR0FGaWZvRXNjYXBlQ21kVmlkZW9CYXNlIHZpZGVvQ21kOworICAgc3Ry dWN0IHsKKyAgICAgIHVpbnQzMiByZWdJZDsKKyAgICAgIHVpbnQzMiB2YWx1ZTsKKyAgIH0gaXRl bXNbMV07Cit9IFNWR0FGaWZvRXNjYXBlQ21kVmlkZW9TZXRSZWdzOworCit0eXBlZGVmCitzdHJ1 Y3QgeworICAgU1ZHQUZpZm9Fc2NhcGVDbWRWaWRlb0Jhc2UgdmlkZW9DbWQ7CisgICBzdHJ1Y3Qg eworICAgICAgdWludDMyIHJlZ0lkOworICAgICAgdWludDMyIHZhbHVlOworICAgfSBpdGVtc1tT VkdBX1ZJREVPX05VTV9SRUdTXTsKK30gU1ZHQUZpZm9Fc2NhcGVDbWRWaWRlb1NldEFsbFJlZ3M7 CisKKworLyoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIFZNd2FyZVZpZGVvR2V0QXR0cmlidXRl cyAtLQorICoKKyAqICAgICAgQ29tcHV0ZXMgdGhlIHNpemUsIHBpdGNoZXMgYW5kIG9mZnNldHMg Zm9yIFlVViBmcmFtZXMuCisgKgorICogUmVzdWx0czoKKyAqICAgICAgVFJVRSBvbiBzdWNjZXNz OyBvdGhlcndpc2UgRkFMU0Ugb24gZmFpbHVyZS4KKyAqCisgKiBTaWRlIGVmZmVjdHM6CisgKiAg ICAgIFBpdGNoZXMgYW5kIG9mZnNldHMgZm9yIHRoZSBnaXZlbiBZVVYgZnJhbWUgYXJlIHB1dCBp biAncGl0Y2hlcycKKyAqICAgICAgYW5kICdvZmZzZXRzJyByZXNwZWN0aXZlbHkuIFRoZXkgYXJl IGJvdGggb3B0aW9uYWwgdGhvdWdoLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKK3N0YXRp YyBpbmxpbmUgYm9vbAorVk13YXJlVmlkZW9HZXRBdHRyaWJ1dGVzKGNvbnN0IFNWR0FPdmVybGF5 Rm9ybWF0IGZvcm1hdCwgICAgLyogSU4gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50 MzIgKndpZHRoLCAgICAgICAgICAgICAgICAgICAgIC8qIElOIC8gT1VUICovCisgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDMyICpoZWlnaHQsICAgICAgICAgICAgICAgICAgICAvKiBJTiAv IE9VVCAqLworICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMiAqc2l6ZSwgICAgICAgICAg ICAgICAgICAgICAgLyogT1VUICovCisgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyICpw aXRjaGVzLCAgICAgICAgICAgICAgICAgICAvKiBPVVQgKG9wdGlvbmFsKSAqLworICAgICAgICAg ICAgICAgICAgICAgICAgIHVpbnQzMiAqb2Zmc2V0cykgICAgICAgICAgICAgICAgICAgLyogT1VU IChvcHRpb25hbCkgKi8KK3sKKyAgICBpbnQgdG1wOworCisgICAgKndpZHRoID0gKCp3aWR0aCAr IDEpICYgfjE7CisKKyAgICBpZiAob2Zmc2V0cykgeworICAgICAgICBvZmZzZXRzWzBdID0gMDsK KyAgICB9CisKKyAgICBzd2l0Y2ggKGZvcm1hdCkgeworICAgIGNhc2UgVk1XQVJFX0ZPVVJDQ19Z VjEyOgorICAgICAgICpoZWlnaHQgPSAoKmhlaWdodCArIDEpICYgfjE7CisgICAgICAgKnNpemUg PSAoKndpZHRoKSAqICgqaGVpZ2h0KTsKKworICAgICAgIGlmIChwaXRjaGVzKSB7CisgICAgICAg ICAgcGl0Y2hlc1swXSA9ICp3aWR0aDsKKyAgICAgICB9CisKKyAgICAgICBpZiAob2Zmc2V0cykg eworICAgICAgICAgIG9mZnNldHNbMV0gPSAqc2l6ZTsKKyAgICAgICB9CisKKyAgICAgICB0bXAg PSAqd2lkdGggPj4gMTsKKworICAgICAgIGlmIChwaXRjaGVzKSB7CisgICAgICAgICAgcGl0Y2hl c1sxXSA9IHBpdGNoZXNbMl0gPSB0bXA7CisgICAgICAgfQorCisgICAgICAgdG1wICo9ICgqaGVp Z2h0ID4+IDEpOworICAgICAgICpzaXplICs9IHRtcDsKKworICAgICAgIGlmIChvZmZzZXRzKSB7 CisgICAgICAgICAgb2Zmc2V0c1syXSA9ICpzaXplOworICAgICAgIH0KKworICAgICAgICpzaXpl ICs9IHRtcDsKKyAgICAgICBicmVhazsKKworICAgIGNhc2UgVk1XQVJFX0ZPVVJDQ19ZVVkyOgor ICAgIGNhc2UgVk1XQVJFX0ZPVVJDQ19VWVZZOgorICAgICAgICpzaXplID0gKndpZHRoICogMjsK KworICAgICAgIGlmIChwaXRjaGVzKSB7CisgICAgICAgICAgcGl0Y2hlc1swXSA9ICpzaXplOwor ICAgICAgIH0KKworICAgICAgICpzaXplICo9ICpoZWlnaHQ7CisgICAgICAgYnJlYWs7CisKKyAg ICBkZWZhdWx0OgorICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1 ZTsKK30KKworI2VuZGlmIC8qIF9TVkdBX09WRVJMQVlfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvZGV2aWNlX2luY2x1ZGUvc3ZnYV9yZWcuaCBiL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvZGV2aWNlX2luY2x1ZGUvc3ZnYV9yZWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi42ZTBjY2I3Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC9kZXZpY2VfaW5jbHVkZS9zdmdhX3JlZy5oCkBAIC0wLDAgKzEsMTkzNiBAQAor LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKKyAqIENvcHlyaWdodCAxOTk4LTIwMTUgVk13YXJlLCBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy dmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl LCB0byBhbnkgcGVyc29uCisgKiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgorICogZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8g ZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dAorICogcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3 aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksCisgKiBtb2RpZnksIG1l cmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMK KyAqIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNv ZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2lu ZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz IHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCisgKiBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9y IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdB UkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyAq IEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS UkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRSBBTkQKKyAqIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFV VEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBE QU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgorICogQUNUSU9OIE9GIENP TlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAq IENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5H UyBJTiBUSEUKKyAqIFNPRlRXQVJFLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogc3ZnYV9yZWcuaCAtLQor ICoKKyAqICAgIFZpcnR1YWwgaGFyZHdhcmUgZGVmaW5pdGlvbnMgZm9yIHRoZSBWTXdhcmUgU1ZH QSBJSSBkZXZpY2UuCisgKi8KKworI2lmbmRlZiBfU1ZHQV9SRUdfSF8KKyNkZWZpbmUgX1NWR0Ff UkVHX0hfCisjaW5jbHVkZSA8bGludXgvcGNpX2lkcy5oPgorCisjZGVmaW5lIElOQ0xVREVfQUxM T1dfTU9EVUxFCisjZGVmaW5lIElOQ0xVREVfQUxMT1dfVVNFUkxFVkVMCisKKyNkZWZpbmUgSU5D TFVERV9BTExPV19WTUNPUkUKKyNpbmNsdWRlICJpbmNsdWRlQ2hlY2suaCIKKworI2luY2x1ZGUg InN2Z2FfdHlwZXMuaCIKKworLyoKKyAqIFNWR0FfUkVHX0VOQUJMRSBiaXQgZGVmaW5pdGlvbnMu CisgKi8KK3R5cGVkZWYgZW51bSB7CisgICBTVkdBX1JFR19FTkFCTEVfRElTQUJMRSA9IDAsCisg ICBTVkdBX1JFR19FTkFCTEVfRU5BQkxFID0gKDEgPDwgMCksCisgICBTVkdBX1JFR19FTkFCTEVf SElERSA9ICgxIDw8IDEpLAorfSBTdmdhUmVnRW5hYmxlOworCit0eXBlZGVmIHVpbnQzMiBTVkdB TW9iSWQ7CisKKy8qCisgKiBBcmJpdHJhcnkgYW5kIG1lYW5pbmdsZXNzIGxpbWl0cy4gUGxlYXNl IGlnbm9yZSB0aGVzZSB3aGVuIHdyaXRpbmcKKyAqIG5ldyBkcml2ZXJzLgorICovCisjZGVmaW5l IFNWR0FfTUFYX1dJRFRIICAgICAgICAgICAgICAgICAgMjU2MAorI2RlZmluZSBTVkdBX01BWF9I RUlHSFQgICAgICAgICAgICAgICAgIDE2MDAKKworCisjZGVmaW5lIFNWR0FfTUFYX0JJVFNfUEVS X1BJWEVMICAgICAgICAgMzIKKyNkZWZpbmUgU1ZHQV9NQVhfREVQVEggICAgICAgICAgICAgICAg ICAyNAorI2RlZmluZSBTVkdBX01BWF9ESVNQTEFZUyAgICAgICAgICAgICAgIDEwCisKKy8qCisg KiBMZWdhbCB2YWx1ZXMgZm9yIHRoZSBTVkdBX1JFR19DVVJTT1JfT04gcmVnaXN0ZXIgaW4gb2xk LWZhc2hpb25lZAorICogY3Vyc29yIGJ5cGFzcyBtb2RlLiBUaGlzIGlzIHN0aWxsIHN1cHBvcnRl ZCwgYnV0IG5vIG5ldyBndWVzdAorICogZHJpdmVycyBzaG91bGQgdXNlIGl0LgorICovCisjZGVm aW5lIFNWR0FfQ1VSU09SX09OX0hJREUgICAgICAgICAgICAweDAgICAvKiBNdXN0IGJlIDAgdG8g bWFpbnRhaW4gYmFja3dhcmQgY29tcGF0aWJpbGl0eSAqLworI2RlZmluZSBTVkdBX0NVUlNPUl9P Tl9TSE9XICAgICAgICAgICAgMHgxICAgLyogTXVzdCBiZSAxIHRvIG1haW50YWluIGJhY2t3YXJk IGNvbXBhdGliaWxpdHkgKi8KKyNkZWZpbmUgU1ZHQV9DVVJTT1JfT05fUkVNT1ZFX0ZST01fRkIg IDB4MiAgIC8qIFJlbW92ZSB0aGUgY3Vyc29yIGZyb20gdGhlIGZyYW1lYnVmZmVyIGJlY2F1c2Ug d2UgbmVlZCB0byBzZWUgd2hhdCdzIHVuZGVyIGl0ICovCisjZGVmaW5lIFNWR0FfQ1VSU09SX09O X1JFU1RPUkVfVE9fRkIgICAweDMgICAvKiBQdXQgdGhlIGN1cnNvciBiYWNrIGluIHRoZSBmcmFt ZWJ1ZmZlciBzbyB0aGUgdXNlciBjYW4gc2VlIGl0ICovCisKKy8qCisgKiBUaGUgbWF4aW11bSBm cmFtZWJ1ZmZlciBzaXplIHRoYXQgY2FuIHRyYWNlZCBmb3IgZ3Vlc3RzIHVubGVzcyB0aGUKKyAq IFNWR0FfQ0FQX0dCT0JKRUNUUyBpcyBzZXQgaW4gU1ZHQV9SRUdfQ0FQQUJJTElUSUVTLiAgSW4g dGhhdCBjYXNlCisgKiB0aGUgZnVsbCBmcmFtZWJ1ZmZlciBjYW4gYmUgdHJhY2VkIGluZGVwZW5k ZW50IG9mIHRoaXMgbGltaXQuCisgKi8KKyNkZWZpbmUgU1ZHQV9GQl9NQVhfVFJBQ0VBQkxFX1NJ WkUgICAgICAweDEwMDAwMDAKKworI2RlZmluZSBTVkdBX01BWF9QU0VVRE9DT0xPUl9ERVBUSCAg ICAgIDgKKyNkZWZpbmUgU1ZHQV9NQVhfUFNFVURPQ09MT1JTICAgICAgICAgICAoMSA8PCBTVkdB X01BWF9QU0VVRE9DT0xPUl9ERVBUSCkKKyNkZWZpbmUgU1ZHQV9OVU1fUEFMRVRURV9SRUdTICAg ICAgICAgICAoMyAqIFNWR0FfTUFYX1BTRVVET0NPTE9SUykKKworI2RlZmluZSBTVkdBX01BR0lD ICAgICAgICAgMHg5MDAwMDBVTAorI2RlZmluZSBTVkdBX01BS0VfSUQodmVyKSAgKFNWR0FfTUFH SUMgPDwgOCB8ICh2ZXIpKQorCisvKiBWZXJzaW9uIDIgbGV0IHRoZSBhZGRyZXNzIG9mIHRoZSBm cmFtZSBidWZmZXIgYmUgdW5zaWduZWQgb24gV2luMzIgKi8KKyNkZWZpbmUgU1ZHQV9WRVJTSU9O XzIgICAgIDIKKyNkZWZpbmUgU1ZHQV9JRF8yICAgICAgICAgIFNWR0FfTUFLRV9JRChTVkdBX1ZF UlNJT05fMikKKworLyogVmVyc2lvbiAxIGhhcyBuZXcgcmVnaXN0ZXJzIHN0YXJ0aW5nIHdpdGgg U1ZHQV9SRUdfQ0FQQUJJTElUSUVTIHNvCisgICBQQUxFVFRFX0JBU0UgaGFzIG1vdmVkICovCisj ZGVmaW5lIFNWR0FfVkVSU0lPTl8xICAgICAxCisjZGVmaW5lIFNWR0FfSURfMSAgICAgICAgICBT VkdBX01BS0VfSUQoU1ZHQV9WRVJTSU9OXzEpCisKKy8qIFZlcnNpb24gMCBpcyB0aGUgaW5pdGlh bCB2ZXJzaW9uICovCisjZGVmaW5lIFNWR0FfVkVSU0lPTl8wICAgICAwCisjZGVmaW5lIFNWR0Ff SURfMCAgICAgICAgICBTVkdBX01BS0VfSUQoU1ZHQV9WRVJTSU9OXzApCisKKy8qICJJbnZhbGlk IiB2YWx1ZSBmb3IgYWxsIFNWR0EgSURzLiAoVmVyc2lvbiBJRCwgc2NyZWVuIG9iamVjdCBJRCwg c3VyZmFjZSBJRC4uLikgKi8KKyNkZWZpbmUgU1ZHQV9JRF9JTlZBTElEICAgIDB4RkZGRkZGRkYK KworLyogUG9ydCBvZmZzZXRzLCByZWxhdGl2ZSB0byBCQVIwICovCisjZGVmaW5lIFNWR0FfSU5E RVhfUE9SVCAgICAgICAgIDB4MAorI2RlZmluZSBTVkdBX1ZBTFVFX1BPUlQgICAgICAgICAweDEK KyNkZWZpbmUgU1ZHQV9CSU9TX1BPUlQgICAgICAgICAgMHgyCisjZGVmaW5lIFNWR0FfSVJRU1RB VFVTX1BPUlQgICAgIDB4OAorCisvKgorICogSW50ZXJydXB0IHNvdXJjZSBmbGFncyBmb3IgSVJR U1RBVFVTX1BPUlQgYW5kIElSUU1BU0suCisgKgorICogSW50ZXJydXB0cyBhcmUgb25seSBzdXBw b3J0ZWQgd2hlbiB0aGUKKyAqIFNWR0FfQ0FQX0lSUU1BU0sgY2FwYWJpbGl0eSBpcyBwcmVzZW50 LgorICovCisjZGVmaW5lIFNWR0FfSVJRRkxBR19BTllfRkVOQ0UgICAgICAgICAgICAweDEgICAg LyogQW55IGZlbmNlIHdhcyBwYXNzZWQgKi8KKyNkZWZpbmUgU1ZHQV9JUlFGTEFHX0ZJRk9fUFJP R1JFU1MgICAgICAgIDB4MiAgICAvKiBNYWRlIGZvcndhcmQgcHJvZ3Jlc3MgaW4gdGhlIEZJRk8g Ki8KKyNkZWZpbmUgU1ZHQV9JUlFGTEFHX0ZFTkNFX0dPQUwgICAgICAgICAgIDB4NCAgICAvKiBT VkdBX0ZJRk9fRkVOQ0VfR09BTCByZWFjaGVkICovCisjZGVmaW5lIFNWR0FfSVJRRkxBR19DT01N QU5EX0JVRkZFUiAgICAgICAweDggICAgLyogQ29tbWFuZCBidWZmZXIgY29tcGxldGVkICovCisj ZGVmaW5lIFNWR0FfSVJRRkxBR19FUlJPUiAgICAgICAgICAgICAgICAweDEwICAgLyogRXJyb3Ig d2hpbGUgcHJvY2Vzc2luZyBjb21tYW5kcyAqLworCisvKgorICogUmVnaXN0ZXJzCisgKi8KKwor ZW51bSB7CisgICBTVkdBX1JFR19JRCA9IDAsCisgICBTVkdBX1JFR19FTkFCTEUgPSAxLAorICAg U1ZHQV9SRUdfV0lEVEggPSAyLAorICAgU1ZHQV9SRUdfSEVJR0hUID0gMywKKyAgIFNWR0FfUkVH X01BWF9XSURUSCA9IDQsCisgICBTVkdBX1JFR19NQVhfSEVJR0hUID0gNSwKKyAgIFNWR0FfUkVH X0RFUFRIID0gNiwKKyAgIFNWR0FfUkVHX0JJVFNfUEVSX1BJWEVMID0gNywgICAgICAgLyogQ3Vy cmVudCBicHAgaW4gdGhlIGd1ZXN0ICovCisgICBTVkdBX1JFR19QU0VVRE9DT0xPUiA9IDgsCisg ICBTVkdBX1JFR19SRURfTUFTSyA9IDksCisgICBTVkdBX1JFR19HUkVFTl9NQVNLID0gMTAsCisg ICBTVkdBX1JFR19CTFVFX01BU0sgPSAxMSwKKyAgIFNWR0FfUkVHX0JZVEVTX1BFUl9MSU5FID0g MTIsCisgICBTVkdBX1JFR19GQl9TVEFSVCA9IDEzLCAgICAgICAgICAgIC8qIChEZXByZWNhdGVk KSAqLworICAgU1ZHQV9SRUdfRkJfT0ZGU0VUID0gMTQsCisgICBTVkdBX1JFR19WUkFNX1NJWkUg PSAxNSwKKyAgIFNWR0FfUkVHX0ZCX1NJWkUgPSAxNiwKKworICAgLyogSUQgMCBpbXBsZW1lbnRh dGlvbiBvbmx5IGhhZCB0aGUgYWJvdmUgcmVnaXN0ZXJzLCB0aGVuIHRoZSBwYWxldHRlICovCisg ICBTVkdBX1JFR19JRF8wX1RPUCA9IDE3LAorCisgICBTVkdBX1JFR19DQVBBQklMSVRJRVMgPSAx NywKKyAgIFNWR0FfUkVHX01FTV9TVEFSVCA9IDE4LCAgICAgICAgICAgLyogKERlcHJlY2F0ZWQp ICovCisgICBTVkdBX1JFR19NRU1fU0laRSA9IDE5LAorICAgU1ZHQV9SRUdfQ09ORklHX0RPTkUg PSAyMCwgICAgICAgICAvKiBTZXQgd2hlbiBtZW1vcnkgYXJlYSBjb25maWd1cmVkICovCisgICBT VkdBX1JFR19TWU5DID0gMjEsICAgICAgICAgICAgICAgIC8qIFNlZSAiRklGTyBTeW5jaHJvbml6 YXRpb24gUmVnaXN0ZXJzIiAqLworICAgU1ZHQV9SRUdfQlVTWSA9IDIyLCAgICAgICAgICAgICAg ICAvKiBTZWUgIkZJRk8gU3luY2hyb25pemF0aW9uIFJlZ2lzdGVycyIgKi8KKyAgIFNWR0FfUkVH X0dVRVNUX0lEID0gMjMsICAgICAgICAgICAgLyogU2V0IGd1ZXN0IE9TIGlkZW50aWZpZXIgKi8K KyAgIFNWR0FfUkVHX0NVUlNPUl9JRCA9IDI0LCAgICAgICAgICAgLyogKERlcHJlY2F0ZWQpICov CisgICBTVkdBX1JFR19DVVJTT1JfWCA9IDI1LCAgICAgICAgICAgIC8qIChEZXByZWNhdGVkKSAq LworICAgU1ZHQV9SRUdfQ1VSU09SX1kgPSAyNiwgICAgICAgICAgICAvKiAoRGVwcmVjYXRlZCkg Ki8KKyAgIFNWR0FfUkVHX0NVUlNPUl9PTiA9IDI3LCAgICAgICAgICAgLyogKERlcHJlY2F0ZWQp ICovCisgICBTVkdBX1JFR19IT1NUX0JJVFNfUEVSX1BJWEVMID0gMjgsIC8qIChEZXByZWNhdGVk KSAqLworICAgU1ZHQV9SRUdfU0NSQVRDSF9TSVpFID0gMjksICAgICAgICAvKiBOdW1iZXIgb2Yg c2NyYXRjaCByZWdpc3RlcnMgKi8KKyAgIFNWR0FfUkVHX01FTV9SRUdTID0gMzAsICAgICAgICAg ICAgLyogTnVtYmVyIG9mIEZJRk8gcmVnaXN0ZXJzICovCisgICBTVkdBX1JFR19OVU1fRElTUExB WVMgPSAzMSwgICAgICAgIC8qIChEZXByZWNhdGVkKSAqLworICAgU1ZHQV9SRUdfUElUQ0hMT0NL ID0gMzIsICAgICAgICAgICAvKiBGaXhlZCBwaXRjaCBmb3IgYWxsIG1vZGVzICovCisgICBTVkdB X1JFR19JUlFNQVNLID0gMzMsICAgICAgICAgICAgIC8qIEludGVycnVwdCBtYXNrICovCisKKyAg IC8qIExlZ2FjeSBtdWx0aS1tb25pdG9yIHN1cHBvcnQgKi8KKyAgIFNWR0FfUkVHX05VTV9HVUVT VF9ESVNQTEFZUyA9IDM0LC8qIE51bWJlciBvZiBndWVzdCBkaXNwbGF5cyBpbiBYL1kgZGlyZWN0 aW9uICovCisgICBTVkdBX1JFR19ESVNQTEFZX0lEID0gMzUsICAgICAgICAvKiBEaXNwbGF5IElE IGZvciB0aGUgZm9sbG93aW5nIGRpc3BsYXkgYXR0cmlidXRlcyAqLworICAgU1ZHQV9SRUdfRElT UExBWV9JU19QUklNQVJZID0gMzYsLyogV2hldGhlciB0aGlzIGlzIGEgcHJpbWFyeSBkaXNwbGF5 ICovCisgICBTVkdBX1JFR19ESVNQTEFZX1BPU0lUSU9OX1ggPSAzNywvKiBUaGUgZGlzcGxheSBw b3NpdGlvbiB4ICovCisgICBTVkdBX1JFR19ESVNQTEFZX1BPU0lUSU9OX1kgPSAzOCwvKiBUaGUg ZGlzcGxheSBwb3NpdGlvbiB5ICovCisgICBTVkdBX1JFR19ESVNQTEFZX1dJRFRIID0gMzksICAg ICAvKiBUaGUgZGlzcGxheSdzIHdpZHRoICovCisgICBTVkdBX1JFR19ESVNQTEFZX0hFSUdIVCA9 IDQwLCAgICAvKiBUaGUgZGlzcGxheSdzIGhlaWdodCAqLworCisgICAvKiBTZWUgIkd1ZXN0IG1l bW9yeSByZWdpb25zIiBiZWxvdy4gKi8KKyAgIFNWR0FfUkVHX0dNUl9JRCA9IDQxLAorICAgU1ZH QV9SRUdfR01SX0RFU0NSSVBUT1IgPSA0MiwKKyAgIFNWR0FfUkVHX0dNUl9NQVhfSURTID0gNDMs CisgICBTVkdBX1JFR19HTVJfTUFYX0RFU0NSSVBUT1JfTEVOR1RIID0gNDQsCisKKyAgIFNWR0Ff UkVHX1RSQUNFUyA9IDQ1LCAgICAgICAgICAgIC8qIEVuYWJsZSB0cmFjZS1iYXNlZCB1cGRhdGVz IGV2ZW4gd2hlbiBGSUZPIGlzIG9uICovCisgICBTVkdBX1JFR19HTVJTX01BWF9QQUdFUyA9IDQ2 LCAgICAvKiBNYXhpbXVtIG51bWJlciBvZiA0S0IgcGFnZXMgZm9yIGFsbCBHTVJzICovCisgICBT VkdBX1JFR19NRU1PUllfU0laRSA9IDQ3LCAgICAgICAvKiBUb3RhbCBkZWRpY2F0ZWQgZGV2aWNl IG1lbW9yeSBleGNsdWRpbmcgRklGTyAqLworICAgU1ZHQV9SRUdfQ09NTUFORF9MT1cgPSA0OCwg ICAgICAgLyogTG93ZXIgMzIgYml0cyBhbmQgc3VibWl0cyBjb21tYW5kcyAqLworICAgU1ZHQV9S RUdfQ09NTUFORF9ISUdIID0gNDksICAgICAgLyogVXBwZXIgMzIgYml0cyBvZiBjb21tYW5kIGJ1 ZmZlciBQQSAqLworICAgU1ZHQV9SRUdfTUFYX1BSSU1BUllfQk9VTkRJTkdfQk9YX01FTSA9IDUw LCAgIC8qIE1heCBwcmltYXJ5IG1lbW9yeSAqLworICAgU1ZHQV9SRUdfU1VHR0VTVEVEX0dCT0JK RUNUX01FTV9TSVpFX0tCID0gNTEsIC8qIFN1Z2VzdGVkIGxpbWl0IG9uIG1vYiBtZW0gKi8KKyAg IFNWR0FfUkVHX0RFVl9DQVAgPSA1MiwgICAgICAgICAgIC8qIFdyaXRlIGRldiBjYXAgaW5kZXgs IHJlYWQgdmFsdWUgKi8KKyAgIFNWR0FfUkVHX0NNRF9QUkVQRU5EX0xPVyA9IDUzLAorICAgU1ZH QV9SRUdfQ01EX1BSRVBFTkRfSElHSCA9IDU0LAorICAgU1ZHQV9SRUdfU0NSRUVOVEFSR0VUX01B WF9XSURUSCA9IDU1LAorICAgU1ZHQV9SRUdfU0NSRUVOVEFSR0VUX01BWF9IRUlHSFQgPSA1NiwK KyAgIFNWR0FfUkVHX01PQl9NQVhfU0laRSA9IDU3LAorICAgU1ZHQV9SRUdfVE9QID0gNTgsICAg ICAgICAgICAgICAgLyogTXVzdCBiZSAxIG1vcmUgdGhhbiB0aGUgbGFzdCByZWdpc3RlciAqLwor CisgICBTVkdBX1BBTEVUVEVfQkFTRSA9IDEwMjQsICAgICAgICAvKiBCYXNlIG9mIFNWR0EgY29s b3IgbWFwICovCisgICAvKiBOZXh0IDc2OCAoPT0gMjU2KjMpIHJlZ2lzdGVycyBleGlzdCBmb3Ig Y29sb3JtYXAgKi8KKyAgIFNWR0FfU0NSQVRDSF9CQVNFID0gU1ZHQV9QQUxFVFRFX0JBU0UgKyBT VkdBX05VTV9QQUxFVFRFX1JFR1MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIEJhc2Ugb2Ygc2NyYXRjaCByZWdpc3RlcnMgKi8KKyAgIC8qIE5leHQgcmVnW1NWR0FfUkVH X1NDUkFUQ0hfU0laRV0gcmVnaXN0ZXJzIGV4aXN0IGZvciBzY3JhdGNoIHVzYWdlOgorICAgICAg Rmlyc3QgNCBhcmUgcmVzZXJ2ZWQgZm9yIFZFU0EgQklPUyBFeHRlbnNpb247IGFueSByZW1haW5p bmcgYXJlIGZvcgorICAgICAgdGhlIHVzZSBvZiB0aGUgY3VycmVudCBTVkdBIGRyaXZlci4gKi8K K307CisKKy8qCisgKiBHdWVzdCBtZW1vcnkgcmVnaW9ucyAoR01Scyk6CisgKgorICogVGhpcyBp cyBhIG5ldyBtZW1vcnkgbWFwcGluZyBmZWF0dXJlIGF2YWlsYWJsZSBpbiBTVkdBIGRldmljZXMK KyAqIHdoaWNoIGhhdmUgdGhlIFNWR0FfQ0FQX0dNUiBiaXQgc2V0LiBQcmV2aW91c2x5LCB0aGVy ZSB3ZXJlIHR3bworICogZml4ZWQgbWVtb3J5IHJlZ2lvbnMgYXZhaWxhYmxlIHdpdGggd2hpY2gg dG8gc2hhcmUgZGF0YSBiZXR3ZWVuIHRoZQorICogZGV2aWNlIGFuZCB0aGUgZHJpdmVyOiB0aGUg RklGTyAoJ01FTScpIGFuZCB0aGUgZnJhbWVidWZmZXIuIEdNUnMKKyAqIGFyZSBvdXIgbmFtZSBm b3IgYW4gZXh0ZW5zaWJsZSB3YXkgb2YgcHJvdmlkaW5nIGFyYml0cmFyeSBETUEKKyAqIGJ1ZmZl cnMgZm9yIHVzZSBiZXR3ZWVuIHRoZSBkcml2ZXIgYW5kIHRoZSBTVkdBIGRldmljZS4gVGhleSBh cmUgYQorICogbmV3IGFsdGVybmF0aXZlIHRvIGZyYW1lYnVmZmVyIG1lbW9yeSwgdXNhYmxlIGZv ciBib3RoIDJEIGFuZCAzRAorICogZ3JhcGhpY3Mgb3BlcmF0aW9ucy4KKyAqCisgKiBTaW5jZSBH TVIgbWFwcGluZyBtdXN0IGJlIGRvbmUgc3luY2hyb25vdXNseSB3aXRoIGd1ZXN0IENQVQorICog ZXhlY3V0aW9uLCB3ZSB1c2UgYSBuZXcgcGFpciBvZiBTVkdBIHJlZ2lzdGVyczoKKyAqCisgKiAg IFNWR0FfUkVHX0dNUl9JRCAtLQorICoKKyAqICAgICBSZWFkL3dyaXRlLgorICogICAgIFRoaXMg cmVnaXN0ZXIgaG9sZHMgdGhlIDMyLWJpdCBJRCAoYSBzbWFsbCBwb3NpdGl2ZSBpbnRlZ2VyKQor ICogICAgIG9mIGEgR01SIHRvIGNyZWF0ZSwgZGVsZXRlLCBvciByZWRlZmluZS4gV3JpdGluZyB0 aGlzIHJlZ2lzdGVyCisgKiAgICAgaGFzIG5vIHNpZGUtZWZmZWN0cy4KKyAqCisgKiAgIFNWR0Ff UkVHX0dNUl9ERVNDUklQVE9SIC0tCisgKgorICogICAgIFdyaXRlLW9ubHkuCisgKiAgICAgV3Jp dGluZyB0aGlzIHJlZ2lzdGVyIHdpbGwgY3JlYXRlLCBkZWxldGUsIG9yIHJlZGVmaW5lIHRoZSBH TVIKKyAqICAgICBzcGVjaWZpZWQgYnkgdGhlIGFib3ZlIElEIHJlZ2lzdGVyLiBJZiB0aGlzIHJl Z2lzdGVyIGlzIHplcm8sCisgKiAgICAgdGhlIEdNUiBpcyBkZWxldGVkLiBBbnkgcG9pbnRlcnMg aW50byB0aGlzIEdNUiAoaW5jbHVkaW5nIHRob3NlCisgKiAgICAgY3VycmVudGx5IGJlaW5nIHBy b2Nlc3NlZCBieSBGSUZPIGNvbW1hbmRzKSB3aWxsIGJlCisgKiAgICAgc3luY2hyb25vdXNseSBp bnZhbGlkYXRlZC4KKyAqCisgKiAgICAgSWYgdGhpcyByZWdpc3RlciBpcyBub256ZXJvLCBpdCBt dXN0IGJlIHRoZSBwaHlzaWNhbCBwYWdlCisgKiAgICAgbnVtYmVyIChQUE4pIG9mIGEgZGF0YSBz dHJ1Y3R1cmUgd2hpY2ggZGVzY3JpYmVzIHRoZSBwaHlzaWNhbAorICogICAgIGxheW91dCBvZiB0 aGUgbWVtb3J5IHJlZ2lvbiB0aGlzIEdNUiBzaG91bGQgZGVzY3JpYmUuIFRoZQorICogICAgIGRl c2NyaXB0b3Igc3RydWN0dXJlIHdpbGwgYmUgcmVhZCBzeW5jaHJvbm91c2x5IGJ5IHRoZSBTVkdB CisgKiAgICAgZGV2aWNlIHdoZW4gdGhpcyByZWdpc3RlciBpcyB3cml0dGVuLiBUaGUgZGVzY3Jp cHRvciBuZWVkIG5vdAorICogICAgIHJlbWFpbiBhbGxvY2F0ZWQgZm9yIHRoZSBsaWZldGltZSBv ZiB0aGUgR01SLgorICoKKyAqICAgICBUaGUgZ3Vlc3QgZHJpdmVyIHNob3VsZCB3cml0ZSBTVkdB X1JFR19HTVJfSUQgZmlyc3QsIHRoZW4KKyAqICAgICBTVkdBX1JFR19HTVJfREVTQ1JJUFRPUi4K KyAqCisgKiAgIFNWR0FfUkVHX0dNUl9NQVhfSURTIC0tCisgKgorICogICAgIFJlYWQtb25seS4K KyAqICAgICBUaGUgU1ZHQSBkZXZpY2UgbWF5IGNob29zZSB0byBzdXBwb3J0IGEgbWF4aW11bSBu dW1iZXIgb2YKKyAqICAgICB1c2VyLWRlZmluZWQgR01SIElEcy4gVGhpcyByZWdpc3RlciBob2xk cyB0aGUgbnVtYmVyIG9mIHN1cHBvcnRlZAorICogICAgIElEcy4gKFRoZSBtYXhpbXVtIHN1cHBv cnRlZCBJRCBwbHVzIDEpCisgKgorICogICBTVkdBX1JFR19HTVJfTUFYX0RFU0NSSVBUT1JfTEVO R1RIIC0tCisgKgorICogICAgIFJlYWQtb25seS4KKyAqICAgICBUaGUgU1ZHQSBkZXZpY2UgbWF5 IGNob29zZSB0byBwdXQgYSBsaW1pdCBvbiB0aGUgdG90YWwgbnVtYmVyCisgKiAgICAgb2YgU1ZH QUd1ZXN0TWVtRGVzY3JpcHRvciBzdHJ1Y3R1cmVzIGl0IHdpbGwgcmVhZCB3aGVuIGRlZmluaW5n CisgKiAgICAgYSBzaW5nbGUgR01SLgorICoKKyAqIFRoZSBkZXNjcmlwdG9yIHN0cnVjdHVyZSBp cyBhbiBhcnJheSBvZiBTVkdBR3Vlc3RNZW1EZXNjcmlwdG9yCisgKiBzdHJ1Y3R1cmVzLiBFYWNo IHN0cnVjdHVyZSBtYXkgZG8gb25lIG9mIHRocmVlIHRoaW5nczoKKyAqCisgKiAgIC0gVGVybWlu YXRlIHRoZSBHTVIgZGVzY3JpcHRvciBsaXN0LgorICogICAgIChwcG49PTAsIG51bVBhZ2VzPT0w KQorICoKKyAqICAgLSBBZGQgYSBQUE4gb3IgcmFuZ2Ugb2YgUFBOcyB0byB0aGUgR01SJ3Mgdmly dHVhbCBhZGRyZXNzIHNwYWNlLgorICogICAgIChwcG4gIT0gMCwgbnVtUGFnZXMgIT0gMCkKKyAq CisgKiAgIC0gUHJvdmlkZSB0aGUgUFBOIG9mIHRoZSBuZXh0IFNWR0FHdWVzdE1lbURlc2NyaXB0 b3IsIGluIG9yZGVyIHRvCisgKiAgICAgc3VwcG9ydCBtdWx0aS1wYWdlIEdNUiBkZXNjcmlwdG9y IHRhYmxlcyB3aXRob3V0IGZvcmNpbmcgdGhlCisgKiAgICAgZHJpdmVyIHRvIGFsbG9jYXRlIHBo eXNpY2FsbHkgY29udGlndW91cyBtZW1vcnkuCisgKiAgICAgKHBwbiAhPSAwLCBudW1QYWdlcyA9 PSAwKQorICoKKyAqIE5vdGUgdGhhdCBlYWNoIHBoeXNpY2FsIHBhZ2Ugb2YgU1ZHQUd1ZXN0TWVt RGVzY3JpcHRvciBzdHJ1Y3R1cmVzCisgKiBjYW4gZGVzY3JpYmUgYXQgbGVhc3QgMk1CIG9mIGd1 ZXN0IG1lbW9yeS4gSWYgdGhlIGRyaXZlciBuZWVkcyB0bworICogdXNlIG1vcmUgdGhhbiBvbmUg cGFnZSBvZiBkZXNjcmlwdG9yIHN0cnVjdHVyZXMsIGl0IG11c3QgdXNlIG9uZSBvZgorICogaXRz IFNWR0FHdWVzdE1lbURlc2NyaXB0b3JzIHRvIHBvaW50IHRvIGFuIGFkZGl0aW9uYWwgcGFnZS4g IFRoZQorICogZGV2aWNlIHdpbGwgbmV2ZXIgYXV0b21hdGljYWxseSBjcm9zcyBhIHBhZ2UgYm91 bmRhcnkuCisgKgorICogT25jZSB0aGUgZHJpdmVyIGhhcyBkZXNjcmliZWQgYSBHTVIsIGl0IGlz IGltbWVkaWF0ZWx5IGF2YWlsYWJsZQorICogZm9yIHVzZSB2aWEgYW55IEZJRk8gY29tbWFuZCB0 aGF0IHVzZXMgYW4gU1ZHQUd1ZXN0UHRyIHN0cnVjdHVyZS4KKyAqIFRoZXNlIHBvaW50ZXJzIGlu Y2x1ZGUgYSBHTVIgaWRlbnRpZmllciBwbHVzIGFuIG9mZnNldCBpbnRvIHRoYXQKKyAqIEdNUi4K KyAqCisgKiBUaGUgZHJpdmVyIG11c3QgY2hlY2sgdGhlIFNWR0FfQ0FQX0dNUiBiaXQgYmVmb3Jl IHVzaW5nIHRoZSBHTVIKKyAqIHJlZ2lzdGVycy4KKyAqLworCisvKgorICogU3BlY2lhbCBHTVIg SURzLCBhbGxvd2luZyBTVkdBR3Vlc3RQdHJzIHRvIHBvaW50IHRvIGZyYW1lYnVmZmVyCisgKiBt ZW1vcnkgYXMgd2VsbC4gIEluIHRoZSBmdXR1cmUsIHRoZXNlIElEcyBjb3VsZCBldmVuIGJlIHVz ZWQgdG8KKyAqIGFsbG93IGxlZ2FjeSBtZW1vcnkgcmVnaW9ucyB0byBiZSByZWRlZmluZWQgYnkg dGhlIGd1ZXN0IGFzIEdNUnMuCisgKgorICogVXNpbmcgdGhlIGd1ZXN0IGZyYW1lYnVmZmVyIChH RkIpIGF0IEJBUjEgZm9yIGdlbmVyYWwgcHVycG9zZSBETUEKKyAqIGlzIGJlaW5nIHBoYXNlZCBv dXQuIFBsZWFzZSB0cnkgdG8gdXNlIHVzZXItZGVmaW5lZCBHTVJzIHdoZW5ldmVyCisgKiBwb3Nz aWJsZS4KKyAqLworI2RlZmluZSBTVkdBX0dNUl9OVUxMICAgICAgICAgKCh1aW50MzIpIC0xKQor I2RlZmluZSBTVkdBX0dNUl9GUkFNRUJVRkZFUiAgKCh1aW50MzIpIC0yKSAgLyogR3Vlc3QgRnJh bWVidWZmZXIgKEdGQikgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2lu LmgiCitzdHJ1Y3QgU1ZHQUd1ZXN0TWVtRGVzY3JpcHRvciB7CisgICB1aW50MzIgcHBuOworICAg dWludDMyIG51bVBhZ2VzOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQUd1 ZXN0TWVtRGVzY3JpcHRvcjsKKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2lu LmgiCitzdHJ1Y3QgU1ZHQUd1ZXN0UHRyIHsKKyAgIHVpbnQzMiBnbXJJZDsKKyAgIHVpbnQzMiBv ZmZzZXQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBR3Vlc3RQdHI7CisK Ky8qCisgKiBSZWdpc3RlciBiYXNlZCBjb21tYW5kIGJ1ZmZlcnMgLS0KKyAqCisgKiBQcm92aWRl IGFuIFNWR0EgZGV2aWNlIGludGVyZmFjZSB0aGF0IGFsbG93cyB0aGUgZ3Vlc3QgdG8gc3VibWl0 CisgKiBjb21tYW5kIGJ1ZmZlcnMgdG8gdGhlIFNWR0EgZGV2aWNlIHRocm91Z2ggYW4gU1ZHQSBk ZXZpY2UgcmVnaXN0ZXIuCisgKiBUaGUgbWV0YWRhdGEgZm9yIGVhY2ggY29tbWFuZCBidWZmZXIg aXMgY29udGFpbmVkIGluIHRoZQorICogU1ZHQUNCSGVhZGVyIHN0cnVjdHVyZSBhbG9uZyB3aXRo IHRoZSByZXR1cm4gc3RhdHVzIGNvZGVzLgorICoKKyAqIFRoZSBTVkdBIGRldmljZSBzdXBwb3J0 cyBjb21tYW5kIGJ1ZmZlcnMgaWYKKyAqIFNWR0FfQ0FQX0NPTU1BTkRfQlVGRkVSUyBpcyBzZXQg aW4gdGhlIGRldmljZSBjYXBzIHJlZ2lzdGVyLiAgVGhlCisgKiBmaWZvIG11c3QgYmUgZW5hYmxl ZCBmb3IgY29tbWFuZCBidWZmZXJzIHRvIGJlIHN1Ym1pdHRlZC4KKyAqCisgKiBDb21tYW5kIGJ1 ZmZlcnMgYXJlIHN1Ym1pdHRlZCB3aGVuIHRoZSBndWVzdCB3cml0aW5nIHRoZSA2NCBieXRlCisg KiBhbGlnbmVkIHBoeXNpY2FsIGFkZHJlc3MgaW50byB0aGUgU1ZHQV9SRUdfQ09NTUFORF9MT1cg YW5kCisgKiBTVkdBX1JFR19DT01NQU5EX0hJR0guICBTVkdBX1JFR19DT01NQU5EX0hJR0ggY29u dGFpbnMgdGhlIHVwcGVyIDMyCisgKiBiaXRzIG9mIHRoZSBwaHlzaWNhbCBhZGRyZXNzLiAgU1ZH QV9SRUdfQ09NTUFORF9MT1cgY29udGFpbnMgdGhlCisgKiBsb3dlciAzMiBiaXRzIG9mIHRoZSBw aHlzaWNhbCBhZGRyZXNzLCBzaW5jZSB0aGUgY29tbWFuZCBidWZmZXIKKyAqIGhlYWRlcnMgYXJl IHJlcXVpcmVkIHRvIGJlIDY0IGJ5dGUgYWxpZ25lZCB0aGUgbG93ZXIgNiBiaXRzIGFyZQorICog dXNlZCBmb3IgdGhlIFNWR0FDQkNvbnRleHQgdmFsdWUuICBXcml0aW5nIHRvIFNWR0FfUkVHX0NP TU1BTkRfTE9XCisgKiBzdWJtaXRzIHRoZSBjb21tYW5kIGJ1ZmZlciB0byB0aGUgZGV2aWNlIGFu ZCBxdWV1ZXMgaXQgZm9yCisgKiBleGVjdXRpb24uICBUaGUgU1ZHQSBkZXZpY2Ugc3VwcG9ydHMg YXQgbGVhc3QKKyAqIFNWR0FfQ0JfTUFYX1FVRVVFRF9QRVJfQ09OVEVYVCBjb21tYW5kIGJ1ZmZl cnMgdGhhdCBjYW4gYmUgcXVldWVkCisgKiBwZXIgY29udGV4dCBhbmQgaWYgdGhhdCBsaW1pdCBp cyByZWFjaGVkIHRoZSBkZXZpY2Ugd2lsbCB3cml0ZSB0aGUKKyAqIHN0YXR1cyBTVkdBX0NCX1NU QVRVU19RVUVVRV9GVUxMIHRvIHRoZSBzdGF0dXMgdmFsdWUgb2YgdGhlIGNvbW1hbmQKKyAqIGJ1 ZmZlciBoZWFkZXIgc3luY2hyb25vdXNseSBhbmQgbm90IHJhaXNlIGFueSBJUlFzLgorICoKKyAq IEl0IGlzIGludmFsaWQgdG8gc3VibWl0IGEgY29tbWFuZCBidWZmZXIgd2l0aG91dCBhIHZhbGlk IHBoeXNpY2FsCisgKiBhZGRyZXNzIGFuZCByZXN1bHRzIGFyZSB1bmRlZmluZWQuCisgKgorICog VGhlIGRldmljZSBndWFyYW50ZWVzIHRoYXQgY29tbWFuZCBidWZmZXJzIG9mIHNpemUgU1ZHQV9D Ql9NQVhfU0laRQorICogd2lsbCBiZSBzdXBwb3J0ZWQuICBJZiBhIGxhcmdlciBjb21tYW5kIGJ1 ZmZlciBpcyBzdWJtaXR0ZWQgcmVzdWx0cworICogYXJlIHVuc3BlY2lmaWVkIGFuZCB0aGUgZGV2 aWNlIHdpbGwgZWl0aGVyIGNvbXBsZXRlIHRoZSBjb21tYW5kCisgKiBidWZmZXIgb3IgcmV0dXJu IGFuIGVycm9yLgorICoKKyAqIFRoZSBkZXZpY2UgZ3VhcmFudGVlcyB0aGF0IGFueSBpbmRpdmlk dWFsIGNvbW1hbmQgaW4gYSBjb21tYW5kCisgKiBidWZmZXIgY2FuIGJlIHVwIHRvIFNWR0FfQ0Jf TUFYX0NPTU1BTkRfU0laRSBpbiBzaXplIHdoaWNoIGlzCisgKiBlbm91Z2ggdG8gZml0IGEgNjR4 NjQgY29sb3ItY3Vyc29yIGRlZmluaXRpb24uICBJZiB0aGUgY29tbWFuZCBpcworICogdG9vIGxh cmdlIHRoZSBkZXZpY2UgaXMgYWxsb3dlZCB0byBwcm9jZXNzIHRoZSBjb21tYW5kIG9yIHJldHVy biBhbgorICogZXJyb3IuCisgKgorICogVGhlIGRldmljZSBjb250ZXh0IGlzIGEgc3BlY2lhbCBT VkdBQ0JDb250ZXh0IHRoYXQgYWxsb3dzIGZvcgorICogc3luY2hyb25vdXMgcmVnaXN0ZXIgbGlr ZSBhY2Nlc3NlcyB3aXRoIHRoZSBmbGV4aWJpbGl0eSBvZgorICogY29tbWFuZHMuICBUaGVyZSBp cyBhIGRpZmZlcmVudCBjb21tYW5kIHNldCBkZWZpbmVkIGJ5CisgKiBTVkdBRGV2aWNlQ29udGV4 dENtZElkLiAgVGhlIGNvbW1hbmRzIGluIGVhY2ggY29tbWFuZCBidWZmZXIgaXMgbm90CisgKiBh bGxvd2VkIHRvIHN0cmFkZGxlIHBoeXNpY2FsIHBhZ2VzLgorICoKKyAqIFRoZSBvZmZzZXQgZmll bGQgd2hpY2ggaXMgYXZhaWxhYmxlIHN0YXJ0aW5nIHdpdGggdGhlCisgKiBTVkdBX0NBUF9DTURf QlVGRkVSU18yIGNhcCBiaXQgY2FuIGJlIHNldCBieSB0aGUgZ3Vlc3QgdG8gYmlhcyB0aGUKKyAq IHN0YXJ0IG9mIGNvbW1hbmQgcHJvY2Vzc2luZyBpbnRvIHRoZSBidWZmZXIuICBJZiBhbiBlcnJv ciBpcworICogZW5jb3VudGVyZWQgdGhlIGVycm9yT2Zmc2V0IHdpbGwgc3RpbGwgYmUgcmVsYXRp dmUgdG8gdGhlIHNwZWNpZmljCisgKiBQQSwgbm90IGJpYXNlZCBieSB0aGUgb2Zmc2V0LiAgV2hl biB0aGUgY29tbWFuZCBidWZmZXIgaXMgZmluaXNoZWQKKyAqIHRoZSBndWVzdCBzaG91bGQgbm90 IHJlYWQgdGhlIG9mZnNldCBmaWVsZCBhcyB0aGVyZSBpcyBubyBndWFyYW50ZWUKKyAqIHdoYXQg aXQgd2lsbCBzZXQgdG8uCisgKi8KKworI2RlZmluZSBTVkdBX0NCX01BWF9TSVpFICg1MTIgKiAx MDI0KSAgLyogNTEyIEtCICovCisjZGVmaW5lIFNWR0FfQ0JfTUFYX1FVRVVFRF9QRVJfQ09OVEVY VCAzMgorI2RlZmluZSBTVkdBX0NCX01BWF9DT01NQU5EX1NJWkUgKDMyICogMTAyNCkgLyogMzIg S0IgKi8KKworI2RlZmluZSBTVkdBX0NCX0NPTlRFWFRfTUFTSyAweDNmCit0eXBlZGVmIGVudW0g eworICAgU1ZHQV9DQl9DT05URVhUX0RFVklDRSA9IDB4M2YsCisgICBTVkdBX0NCX0NPTlRFWFRf MCAgICAgID0gMHgwLAorICAgU1ZHQV9DQl9DT05URVhUX01BWCAgICA9IDB4MSwKK30gU1ZHQUNC Q29udGV4dDsKKworCit0eXBlZGVmIGVudW0geworICAgLyoKKyAgICAqIFRoZSBndWVzdCBpcyBz dXBwb3NlZCB0byB3cml0ZSBTVkdBX0NCX1NUQVRVU19OT05FIHRvIHRoZSBzdGF0dXMKKyAgICAq IGZpZWxkIGJlZm9yZSBzdWJtaXR0aW5nIHRoZSBjb21tYW5kIGJ1ZmZlciBoZWFkZXIsIHRoZSBo b3N0IHdpbGwKKyAgICAqIGNoYW5nZSB0aGUgdmFsdWUgd2hlbiBpdCBpcyBkb25lIHdpdGggdGhl IGNvbW1hbmQgYnVmZmVyLgorICAgICovCisgICBTVkdBX0NCX1NUQVRVU19OT05FICAgICAgICAg ICAgID0gMCwKKworICAgLyoKKyAgICAqIFdyaXR0ZW4gYnkgdGhlIGhvc3Qgd2hlbiBhIGNvbW1h bmQgYnVmZmVyIGNvbXBsZXRlcyBzdWNjZXNzZnVsbHkuCisgICAgKiBUaGUgZGV2aWNlIHJhaXNl cyBhbiBJUlEgd2l0aCBTVkdBX0lSUUZMQUdfQ09NTUFORF9CVUZGRVIgdW5sZXNzCisgICAgKiB0 aGUgU1ZHQV9DQl9GTEFHX05PX0lSUSBmbGFnIGlzIHNldC4KKyAgICAqLworICAgU1ZHQV9DQl9T VEFUVVNfQ09NUExFVEVEICAgICAgICA9IDEsCisKKyAgIC8qCisgICAgKiBXcml0dGVuIGJ5IHRo ZSBob3N0IHN5bmNocm9ub3VzbHkgd2l0aCB0aGUgY29tbWFuZCBidWZmZXIKKyAgICAqIHN1Ym1p c3Npb24gdG8gaW5kaWNhdGUgdGhlIGNvbW1hbmQgYnVmZmVyIHdhcyBub3Qgc3VibWl0dGVkLiAg Tm8KKyAgICAqIElSUSBpcyByYWlzZWQuCisgICAgKi8KKyAgIFNWR0FfQ0JfU1RBVFVTX1FVRVVF X0ZVTEwgICAgICAgPSAyLAorCisgICAvKgorICAgICogV3JpdHRlbiBieSB0aGUgaG9zdCB3aGVu IGFuIGVycm9yIHdhcyBkZXRlY3RlZCBwYXJzaW5nIGEgY29tbWFuZAorICAgICogaW4gdGhlIGNv bW1hbmQgYnVmZmVyLCBlcnJvck9mZnNldCBpcyB3cml0dGVuIHRvIGNvbnRhaW4gdGhlCisgICAg KiBvZmZzZXQgdG8gdGhlIGZpcnN0IGJ5dGUgb2YgdGhlIGZhaWxpbmcgY29tbWFuZC4gIFRoZSBk ZXZpY2UKKyAgICAqIHJhaXNlcyB0aGUgSVJRIHdpdGggYm90aCBTVkdBX0lSUUZMQUdfRVJST1Ig YW5kCisgICAgKiBTVkdBX0lSUUZMQUdfQ09NTUFORF9CVUZGRVIuICBTb21lIG9mIHRoZSBjb21t YW5kcyBtYXkgaGF2ZSBiZWVuCisgICAgKiBwcm9jZXNzZWQuCisgICAgKi8KKyAgIFNWR0FfQ0Jf U1RBVFVTX0NPTU1BTkRfRVJST1IgICAgPSAzLAorCisgICAvKgorICAgICogV3JpdHRlbiBieSB0 aGUgaG9zdCBpZiB0aGVyZSBpcyBhbiBlcnJvciBwYXJzaW5nIHRoZSBjb21tYW5kCisgICAgKiBi dWZmZXIgaGVhZGVyLiAgVGhlIGRldmljZSByYWlzZXMgdGhlIElSUSB3aXRoIGJvdGgKKyAgICAq IFNWR0FfSVJRRkxBR19FUlJPUiBhbmQgU1ZHQV9JUlFGTEFHX0NPTU1BTkRfQlVGRkVSLiAgVGhl IGRldmljZQorICAgICogZGlkIG5vdCBwcm9jZXNzZXMgYW55IG9mIHRoZSBjb21tYW5kIGJ1ZmZl ci4KKyAgICAqLworICAgU1ZHQV9DQl9TVEFUVVNfQ0JfSEVBREVSX0VSUk9SICA9IDQsCisKKyAg IC8qCisgICAgKiBXcml0dGVuIGJ5IHRoZSBob3N0IGlmIHRoZSBndWVzdCByZXF1ZXN0ZWQgdGhl IGhvc3QgdG8gcHJlZW1wdAorICAgICogdGhlIGNvbW1hbmQgYnVmZmVyLiAgVGhlIGRldmljZSB3 aWxsIG5vdCByYWlzZSBhbnkgSVJRcyBhbmQgdGhlCisgICAgKiBjb21tYW5kIGJ1ZmZlciB3YXMg bm90IHByb2Nlc3NlZC4KKyAgICAqLworICAgU1ZHQV9DQl9TVEFUVVNfUFJFRU1QVEVEICAgICAg ICA9IDUsCisKKyAgIC8qCisgICAgKiBXcml0dGVuIGJ5IHRoZSBob3N0IHN5bmNocm9ub3VzbHkg d2l0aCB0aGUgY29tbWFuZCBidWZmZXIKKyAgICAqIHN1Ym1pc3Npb24gdG8gaW5kaWNhdGUgdGhl IHRoZSBjb21tYW5kIGJ1ZmZlciB3YXMgbm90IHN1Ym1pdHRlZAorICAgICogZHVlIHRvIGFuIGVy cm9yLiAgTm8gSVJRIGlzIHJhaXNlZC4KKyAgICAqLworICAgU1ZHQV9DQl9TVEFUVVNfU1VCTUlT U0lPTl9FUlJPUiA9IDYsCit9IFNWR0FDQlN0YXR1czsKKwordHlwZWRlZiBlbnVtIHsKKyAgIFNW R0FfQ0JfRkxBR19OT05FICAgICAgID0gMCwKKyAgIFNWR0FfQ0JfRkxBR19OT19JUlEgICAgID0g MSA8PCAwLAorICAgU1ZHQV9DQl9GTEFHX0RYX0NPTlRFWFQgPSAxIDw8IDEsCisgICBTVkdBX0NC X0ZMQUdfTU9CICAgICAgICA9IDEgPDwgMiwKK30gU1ZHQUNCRmxhZ3M7CisKK3R5cGVkZWYKKyNp bmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAgIHZvbGF0aWxlIFNWR0FD QlN0YXR1cyBzdGF0dXM7CisgICB2b2xhdGlsZSB1aW50MzIgZXJyb3JPZmZzZXQ7CisgICB1aW50 NjQgaWQ7CisgICBTVkdBQ0JGbGFncyBmbGFnczsKKyAgIHVpbnQzMiBsZW5ndGg7CisgICB1bmlv biB7CisgICAgICBQQSBwYTsKKyAgICAgIHN0cnVjdCB7CisgICAgICAgICBTVkdBTW9iSWQgbW9i aWQ7CisgICAgICAgICB1aW50MzIgbW9iT2Zmc2V0OworICAgICAgfSBtb2I7CisgICB9IHB0cjsK KyAgIHVpbnQzMiBvZmZzZXQ7IC8qIFZhbGlkIGlmIENNRF9CVUZGRVJTXzIgY2FwIHNldCwgbXVz dCBiZSB6ZXJvIG90aGVyd2lzZSAqLworICAgdWludDMyIGR4Q29udGV4dDsgLyogVmFsaWQgaWYg RFhfQ09OVEVYVCBmbGFnIHNldCwgbXVzdCBiZSB6ZXJvIG90aGVyd2lzZSAqLworICAgdWludDMy IG11c3RCZVplcm9bNl07Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBQ0JI ZWFkZXI7CisKK3R5cGVkZWYgZW51bSB7CisgICBTVkdBX0RDX0NNRF9OT1AgICAgICAgICAgICAg ICAgICAgPSAwLAorICAgU1ZHQV9EQ19DTURfU1RBUlRfU1RPUF9DT05URVhUICAgID0gMSwKKyAg IFNWR0FfRENfQ01EX1BSRUVNUFQgICAgICAgICAgICAgICA9IDIsCisgICBTVkdBX0RDX0NNRF9N QVggICAgICAgICAgICAgICAgICAgPSAzLAorICAgU1ZHQV9EQ19DTURfRk9SQ0VfVUlOVCAgICAg ICAgICAgID0gTUFYX1VJTlQzMiwKK30gU1ZHQURldmljZUNvbnRleHRDbWRJZDsKKwordHlwZWRl ZiBzdHJ1Y3QgeworICAgdWludDMyIGVuYWJsZTsKKyAgIFNWR0FDQkNvbnRleHQgY29udGV4dDsK K30gU1ZHQURDQ21kU3RhcnRTdG9wOworCisvKgorICogU1ZHQURDQ21kUHJlZW1wdCAtLQorICoK KyAqIFRoaXMgY29tbWFuZCBhbGxvd3MgdGhlIGd1ZXN0IHRvIHJlcXVlc3QgdGhhdCBhbGwgY29t bWFuZCBidWZmZXJzCisgKiBvbiB0aGUgc3BlY2lmaWVkIGNvbnRleHQgYmUgcHJlZW1wdGVkIHRo YXQgY2FuIGJlLiAgQWZ0ZXIgZXhlY3V0aW9uCisgKiBvZiB0aGlzIGNvbW1hbmQgYWxsIGNvbW1h bmQgYnVmZmVycyB0aGF0IHdlcmUgcHJlZW1wdGVkIHdpbGwKKyAqIGFscmVhZHkgaGF2ZSBTVkdB X0NCX1NUQVRVU19QUkVFTVBURUQgd3JpdHRlbiBpbnRvIHRoZSBzdGF0dXMKKyAqIGZpZWxkLiAg VGhlIGRldmljZSBtaWdodCBzdGlsbCBiZSBwcm9jZXNzaW5nIGEgY29tbWFuZCBidWZmZXIsCisg KiBhc3N1bWluZyBleGVjdXRpb24gb2YgaXQgc3RhcnRlZCBiZWZvcmUgdGhlIHByZWVtcHRpb24g cmVxdWVzdCB3YXMKKyAqIHJlY2VpdmVkLiAgU3BlY2lmeWluZyB0aGUgaWdub3JlSURaZXJvIGZs YWcgdG8gVFJVRSB3aWxsIGNhdXNlIHRoZQorICogZGV2aWNlIHRvIG5vdCBwcmVlbXB0IGNvbW1h bmQgYnVmZmVycyB3aXRoIHRoZSBpZCBmaWVsZCBpbiB0aGUKKyAqIGNvbW1hbmQgYnVmZmVyIGhl YWRlciBzZXQgdG8gemVyby4KKyAqLworCit0eXBlZGVmIHN0cnVjdCB7CisgICBTVkdBQ0JDb250 ZXh0IGNvbnRleHQ7CisgICB1aW50MzIgaWdub3JlSURaZXJvOworfSBTVkdBRENDbWRQcmVlbXB0 OworCisvKgorICogU1ZHQUdNUkltYWdlRm9ybWF0IC0tCisgKgorICogICAgVGhpcyBpcyBhIHBh Y2tlZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgc291cmNlIDJEIGltYWdlIGZvcm1hdAorICogICAg Zm9yIGEgR01SLXRvLXNjcmVlbiBibGl0LiBDdXJyZW50bHkgaXQgaXMgZGVmaW5lZCBhcyBhbiBl bmNvZGluZworICogICAgb2YgdGhlIHNjcmVlbidzIGNvbG9yIGRlcHRoIGFuZCBiaXRzLXBlci1w aXhlbCwgaG93ZXZlciwgMTYgYml0cworICogICAgYXJlIHJlc2VydmVkIGZvciBmdXR1cmUgdXNl IHRvIGlkZW50aWZ5IG90aGVyIGVuY29kaW5ncyAoc3VjaCBhcworICogICAgUkdCQSBvciBoaWdo ZXItcHJlY2lzaW9uIGltYWdlcykuCisgKgorICogICAgQ3VycmVudGx5IHN1cHBvcnRlZCBmb3Jt YXRzOgorICoKKyAqICAgICAgIGJwcCBkZXB0aCAgRm9ybWF0IE5hbWUKKyAqICAgICAgIC0tLSAt LS0tLSAgLS0tLS0tLS0tLS0KKyAqICAgICAgICAzMiAgICAyNCAgMzItYml0IEJHUlgKKyAqICAg ICAgICAyNCAgICAyNCAgMjQtYml0IEJHUgorICogICAgICAgIDE2ICAgIDE2ICBSR0IgNS02LTUK KyAqICAgICAgICAxNiAgICAxNSAgUkdCIDUtNS01CisgKgorICovCisKK3R5cGVkZWYgc3RydWN0 IFNWR0FHTVJJbWFnZUZvcm1hdCB7CisgICB1bmlvbiB7CisgICAgICBzdHJ1Y3QgeworICAgICAg ICAgdWludDMyIGJpdHNQZXJQaXhlbCA6IDg7CisgICAgICAgICB1aW50MzIgY29sb3JEZXB0aCAg IDogODsKKwkgdWludDMyIHJlc2VydmVkICAgICA6IDE2OyAgLyogTXVzdCBiZSB6ZXJvICovCisg ICAgICB9OworCisgICAgICB1aW50MzIgdmFsdWU7CisgICB9OworfSBTVkdBR01SSW1hZ2VGb3Jt YXQ7CisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdpbi5oIgorc3RydWN0IFNW R0FHdWVzdEltYWdlIHsKKyAgIFNWR0FHdWVzdFB0ciAgICAgICAgIHB0cjsKKworICAgLyoKKyAg ICAqIEEgbm90ZSBvbiBpbnRlcnByZXRhdGlvbiBvZiBwaXRjaDogVGhpcyB2YWx1ZSBvZiBwaXRj aCBpcyB0aGUKKyAgICAqIG51bWJlciBvZiBieXRlcyBiZXR3ZWVuIHZlcnRpY2FsbHkgYWRqYWNl bnQgaW1hZ2UKKyAgICAqIGJsb2Nrcy4gTm9ybWFsbHkgdGhpcyBpcyB0aGUgbnVtYmVyIG9mIGJ5 dGVzIGJldHdlZW4gdGhlIGZpcnN0CisgICAgKiBwaXhlbCBvZiB0d28gYWRqYWNlbnQgc2Nhbmxp bmVzLiBXaXRoIGNvbXByZXNzZWQgdGV4dHVyZXMsCisgICAgKiBob3dldmVyLCB0aGlzIG1heSBy ZXByZXNlbnQgdGhlIG51bWJlciBvZiBieXRlcyBiZXR3ZWVuCisgICAgKiBjb21wcmVzc2lvbiBi bG9ja3MgcmF0aGVyIHRoYW4gYmV0d2VlbiByb3dzIG9mIHBpeGVscy4KKyAgICAqCisgICAgKiBY WFg6IENvbXByZXNzZWQgdGV4dHVyZXMgY3VycmVudGx5IG11c3QgYmUgdGlnaHRseSBwYWNrZWQg aW4gZ3Vlc3QgbWVtb3J5LgorICAgICoKKyAgICAqIElmIHRoZSBpbWFnZSBpcyAxLWRpbWVuc2lv bmFsLCBwaXRjaCBpcyBpZ25vcmVkLgorICAgICoKKyAgICAqIElmICdwaXRjaCcgaXMgemVybywg dGhlIFNWR0EzRCBkZXZpY2UgY2FsY3VsYXRlcyBhIHBpdGNoIHZhbHVlCisgICAgKiBhc3N1bWlu ZyBlYWNoIHJvdyBvZiBibG9ja3MgaXMgdGlnaHRseSBwYWNrZWQuCisgICAgKi8KKyAgIHVpbnQz MiBwaXRjaDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0FHdWVzdEltYWdl OworCisvKgorICogU1ZHQUNvbG9yQkdSWCAtLQorICoKKyAqICAgIEEgMjQtYml0IGNvbG9yIGZv cm1hdCAoQkdSWCksIHdoaWNoIGRvZXMgbm90IGRlcGVuZCBvbiB0aGUKKyAqICAgIGZvcm1hdCBv ZiB0aGUgbGVnYWN5IGd1ZXN0IGZyYW1lYnVmZmVyIChHRkIpIG9yIHRoZSBjdXJyZW50CisgKiAg ICBHTVJGQiBzdGF0ZS4KKyAqLworCit0eXBlZGVmIHN0cnVjdCBTVkdBQ29sb3JCR1JYIHsKKyAg IHVuaW9uIHsKKyAgICAgIHN0cnVjdCB7CisgICAgICAgICB1aW50MzIgYiA6IDg7CisgICAgICAg ICB1aW50MzIgZyA6IDg7CisgICAgICAgICB1aW50MzIgciA6IDg7CisJIHVpbnQzMiB4IDogODsg IC8qIFVudXNlZCAqLworICAgICAgfTsKKworICAgICAgdWludDMyIHZhbHVlOworICAgfTsKK30g U1ZHQUNvbG9yQkdSWDsKKworCisvKgorICogU1ZHQVNpZ25lZFJlY3QgLS0KKyAqIFNWR0FTaWdu ZWRQb2ludCAtLQorICoKKyAqICAgIFNpZ25lZCByZWN0YW5nbGUgYW5kIHBvaW50IHByaW1pdGl2 ZXMuIFRoZXNlIGFyZSB1c2VkIGJ5IHRoZSBuZXcKKyAqICAgIDJEIHByaW1pdGl2ZXMgZm9yIGRy YXdpbmcgdG8gU2NyZWVuIE9iamVjdHMsIHdoaWNoIGNhbiBvY2N1cHkgYQorICogICAgc2lnbmVk IHZpcnR1YWwgY29vcmRpbmF0ZSBzcGFjZS4KKyAqCisgKiAgICBTVkdBU2lnbmVkUmVjdCBzcGVj aWZpZXMgYSBoYWxmLW9wZW4gaW50ZXJ2YWw6IHRoZSAobGVmdCwgdG9wKQorICogICAgcGl4ZWwg aXMgcGFydCBvZiB0aGUgcmVjdGFuZ2xlLCBidXQgdGhlIChyaWdodCwgYm90dG9tKSBwaXhlbCBp cworICogICAgbm90LgorICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19iZWdp bi5oIgorc3RydWN0IHsKKyAgIGludDMyICBsZWZ0OworICAgaW50MzIgIHRvcDsKKyAgIGludDMy ICByaWdodDsKKyAgIGludDMyICBib3R0b207Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5k LmgiCitTVkdBU2lnbmVkUmVjdDsKKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2Jl Z2luLmgiCitzdHJ1Y3QgeworICAgaW50MzIgIHg7CisgICBpbnQzMiAgeTsKK30KKyNpbmNsdWRl ICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0FTaWduZWRQb2ludDsKKworCisvKgorICogU1ZHQSBE ZXZpY2UgQ2FwYWJpbGl0aWVzCisgKgorICogTm90ZSB0aGUgaG9sZXMgaW4gdGhlIGJpdGZpZWxk LiBNaXNzaW5nIGJpdHMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQsCisgKiBhbmQgbXVzdCBub3QgYmUg cmV1c2VkLiBUaG9zZSBjYXBhYmlsaXRpZXMgd2lsbCBuZXZlciBiZSByZXBvcnRlZAorICogYnkg bmV3IHZlcnNpb25zIG9mIHRoZSBTVkdBIGRldmljZS4KKyAqCisgKiBYWFg6IEFkZCBsb25nZXIg ZGVzY3JpcHRpb25zIGZvciBlYWNoIGNhcGFiaWxpdHksIGluY2x1ZGluZyBhIGxpc3QKKyAqICAg ICAgb2YgdGhlIG5ldyBmZWF0dXJlcyB0aGF0IGVhY2ggY2FwYWJpbGl0eSBwcm92aWRlcy4KKyAq CisgKiBTVkdBX0NBUF9JUlFNQVNLIC0tCisgKiAgICBQcm92aWRlcyBkZXZpY2UgaW50ZXJydXB0 cy4gIEFkZHMgZGV2aWNlIHJlZ2lzdGVyIFNWR0FfUkVHX0lSUU1BU0sKKyAqICAgIHRvIHNldCBp bnRlcnJ1cHQgbWFzayBhbmQgZGlyZWN0IEkvTyBwb3J0IFNWR0FfSVJRU1RBVFVTX1BPUlQgdG8K KyAqICAgIHNldC9jbGVhciBwZW5kaW5nIGludGVycnVwdHMuCisgKgorICogU1ZHQV9DQVBfR01S IC0tCisgKiAgICBQcm92aWRlcyBzeW5jaHJvbm91cyBtYXBwaW5nIG9mIGd1ZXN0IG1lbW9yeSBy ZWdpb25zIChHTVIpLgorICogICAgQWRkcyBkZXZpY2UgcmVnaXN0ZXJzIFNWR0FfUkVHX0dNUl9J RCwgU1ZHQV9SRUdfR01SX0RFU0NSSVBUT1IsCisgKiAgICBTVkdBX1JFR19HTVJfTUFYX0lEUywg YW5kIFNWR0FfUkVHX0dNUl9NQVhfREVTQ1JJUFRPUl9MRU5HVEguCisgKgorICogU1ZHQV9DQVBf VFJBQ0VTIC0tCisgKiAgICBBbGxvd3MgZnJhbWVidWZmZXIgdHJhY2UtYmFzZWQgdXBkYXRlcyBl dmVuIHdoZW4gRklGTyBpcyBlbmFibGVkLgorICogICAgQWRkcyBkZXZpY2UgcmVnaXN0ZXIgU1ZH QV9SRUdfVFJBQ0VTLgorICoKKyAqIFNWR0FfQ0FQX0dNUjIgLS0KKyAqICAgIFByb3ZpZGVzIGFz eW5jaHJvbm91cyBjb21tYW5kcyB0byBkZWZpbmUgYW5kIHJlbWFwIGd1ZXN0IG1lbW9yeQorICog ICAgcmVnaW9ucy4gIEFkZHMgZGV2aWNlIHJlZ2lzdGVycyBTVkdBX1JFR19HTVJTX01BWF9QQUdF UyBhbmQKKyAqICAgIFNWR0FfUkVHX01FTU9SWV9TSVpFLgorICoKKyAqIFNWR0FfQ0FQX1NDUkVF Tl9PQkpFQ1RfMiAtLQorICogICAgQWxsb3cgc2NyZWVuIG9iamVjdCBzdXBwb3J0LCBhbmQgcmVx dWlyZSBiYWNraW5nIHN0b3JlcyBmcm9tIHRoZQorICogICAgZ3Vlc3QgZm9yIGVhY2ggc2NyZWVu IG9iamVjdC4KKyAqCisgKiBTVkdBX0NBUF9DT01NQU5EX0JVRkZFUlMgLS0KKyAqICAgIEVuYWJs ZSByZWdpc3RlciBiYXNlZCBjb21tYW5kIGJ1ZmZlciBzdWJtaXNzaW9uLgorICoKKyAqIFNWR0Ff Q0FQX0RFQUQxIC0tCisgKiAgICBUaGlzIGNhcCB3YXMgaW5jb3JyZWN0bHkgdXNlZCBieSBvbGQg ZHJpdmVycyBhbmQgc2hvdWxkIG5vdCBiZQorICogICAgcmV1c2VkLgorICoKKyAqIFNWR0FfQ0FQ X0NNRF9CVUZGRVJTXzIgLS0KKyAqICAgIEVuYWJsZSBzdXBwb3J0IGZvciB0aGUgcHJlcGVuZCBj b21tYW5kIGJ1ZmZlciBzdWJtaXNpb24KKyAqICAgIHJlZ2lzdGVycy4gIFNWR0FfUkVHX0NNRF9Q UkVQRU5EX0xPVyBhbmQKKyAqICAgIFNWR0FfUkVHX0NNRF9QUkVQRU5EX0hJR0guCisgKgorICog U1ZHQV9DQVBfR0JPQkpFQ1RTIC0tCisgKiAgICBFbmFibGUgZ3Vlc3QtYmFja2VkIG9iamVjdHMg YW5kIHN1cmZhY2VzLgorICoKKyAqIFNWR0FfQ0FQX0NNRF9CVUZGRVJTXzMgLS0KKyAqICAgIEVu YWJsZSBzdXBwb3J0IGZvciBjb21tYW5kIGJ1ZmZlcnMgaW4gYSBtb2IuCisgKi8KKworI2RlZmlu ZSBTVkdBX0NBUF9OT05FICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBTVkdBX0NB UF9SRUNUX0NPUFkgICAgICAgICAgMHgwMDAwMDAwMgorI2RlZmluZSBTVkdBX0NBUF9DVVJTT1Ig ICAgICAgICAgICAgMHgwMDAwMDAyMAorI2RlZmluZSBTVkdBX0NBUF9DVVJTT1JfQllQQVNTICAg ICAgMHgwMDAwMDA0MAorI2RlZmluZSBTVkdBX0NBUF9DVVJTT1JfQllQQVNTXzIgICAgMHgwMDAw MDA4MAorI2RlZmluZSBTVkdBX0NBUF84QklUX0VNVUxBVElPTiAgICAgMHgwMDAwMDEwMAorI2Rl ZmluZSBTVkdBX0NBUF9BTFBIQV9DVVJTT1IgICAgICAgMHgwMDAwMDIwMAorI2RlZmluZSBTVkdB X0NBUF8zRCAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMAorI2RlZmluZSBTVkdBX0NBUF9FWFRF TkRFRF9GSUZPICAgICAgMHgwMDAwODAwMAorI2RlZmluZSBTVkdBX0NBUF9NVUxUSU1PTiAgICAg ICAgICAgMHgwMDAxMDAwMAorI2RlZmluZSBTVkdBX0NBUF9QSVRDSExPQ0sgICAgICAgICAgMHgw MDAyMDAwMAorI2RlZmluZSBTVkdBX0NBUF9JUlFNQVNLICAgICAgICAgICAgMHgwMDA0MDAwMAor I2RlZmluZSBTVkdBX0NBUF9ESVNQTEFZX1RPUE9MT0dZICAgMHgwMDA4MDAwMAorI2RlZmluZSBT VkdBX0NBUF9HTVIgICAgICAgICAgICAgICAgMHgwMDEwMDAwMAorI2RlZmluZSBTVkdBX0NBUF9U UkFDRVMgICAgICAgICAgICAgMHgwMDIwMDAwMAorI2RlZmluZSBTVkdBX0NBUF9HTVIyICAgICAg ICAgICAgICAgMHgwMDQwMDAwMAorI2RlZmluZSBTVkdBX0NBUF9TQ1JFRU5fT0JKRUNUXzIgICAg MHgwMDgwMDAwMAorI2RlZmluZSBTVkdBX0NBUF9DT01NQU5EX0JVRkZFUlMgICAgMHgwMTAwMDAw MAorI2RlZmluZSBTVkdBX0NBUF9ERUFEMSAgICAgICAgICAgICAgMHgwMjAwMDAwMAorI2RlZmlu ZSBTVkdBX0NBUF9DTURfQlVGRkVSU18yICAgICAgMHgwNDAwMDAwMAorI2RlZmluZSBTVkdBX0NB UF9HQk9CSkVDVFMgICAgICAgICAgMHgwODAwMDAwMAorI2RlZmluZSBTVkdBX0NBUF9EWCAgICAg ICAgICAgICAgICAgMHgxMDAwMDAwMAorCisjZGVmaW5lIFNWR0FfQ0FQX0NNRF9SRVNFUlZFRCAg ICAgICAweDgwMDAwMDAwCisKKworLyoKKyAqIFRoZSBHdWVzdCBjYW4gb3B0aW9uYWxseSByZWFk IHNvbWUgU1ZHQSBkZXZpY2UgY2FwYWJpbGl0aWVzIHRocm91Z2gKKyAqIHRoZSBiYWNrZG9vciB3 aXRoIGNvbW1hbmQgQkRPT1JfQ01EX0dFVF9TVkdBX0NBUEFCSUxJVElFUyBiZWZvcmUKKyAqIHRo ZSBTVkdBIGRldmljZSBpcyBpbml0aWFsaXplZC4gIFRoZSB0eXBlIG9mIGNhcGFiaWxpdHkgdGhl IGd1ZXN0CisgKiBpcyByZXF1ZXN0aW5nIGZyb20gdGhlIFNWR0FCYWNrZG9vckNhcFR5cGUgZW51 bSBzaG91bGQgYmUgcGxhY2VkIGluCisgKiB0aGUgdXBwZXIgMTYgYml0cyBvZiB0aGUgYmFja2Rv b3IgY29tbWFuZCBpZCAoRUNYKS4gIE9uIHN1Y2Nlc3MgdGhlCisgKiB0aGUgdmFsdWUgb2YgRUJY IHdpbGwgYmUgc2V0IHRvIEJET09SX01BR0lDIGFuZCBFQVggd2lsbCBiZSBzZXQgdG8KKyAqIHRo ZSByZXF1ZXN0ZWQgY2FwYWJpbGl0eS4gIElmIHRoZSBjb21tYW5kIGlzIG5vdCBzdXBwb3J0ZWQg dGhlbiBFQlgKKyAqIHdpbGwgYmUgbGVmdCB1bmNoYW5nZWQgYW5kIEVBWCB3aWxsIGJlIHNldCB0 byAtMS4gIEJlY2F1c2UgaXQgaXMKKyAqIHBvc3NpYmxlIHRoYXQgLTEgaXMgdGhlIHZhbHVlIG9m IHRoZSByZXF1ZXN0ZWQgY2FwIHRoZSBjb3JyZWN0IHdheQorICogdG8gY2hlY2sgaWYgdGhlIGNv bW1hbmQgd2FzIHN1Y2Nlc3NmdWwgaXMgdG8gY2hlY2sgaWYgRUJYIHdhcyBjaGFuZ2VkCisgKiB0 byBCRE9PUl9NQUdJQyBtYWtpbmcgc3VyZSB0byBpbml0aWFsaXplIHRoZSByZWdpc3RlciB0byBz b21ldGhpbmcKKyAqIGVsc2UgZmlyc3QuCisgKi8KKwordHlwZWRlZiBlbnVtIHsKKyAgIFNWR0FC YWNrZG9vckNhcERldmljZUNhcHMgPSAwLAorICAgU1ZHQUJhY2tkb29yQ2FwRmlmb0NhcHMgPSAx LAorICAgU1ZHQUJhY2tkb29yQ2FwM2RIV1ZlcnNpb24gPSAyLAorICAgU1ZHQUJhY2tkb29yQ2Fw TWF4ID0gMywKK30gU1ZHQUJhY2tkb29yQ2FwVHlwZTsKKworCisvKgorICogRklGTyByZWdpc3Rl ciBpbmRpY2VzLgorICoKKyAqIFRoZSBGSUZPIGlzIGEgY2h1bmsgb2YgZGV2aWNlIG1lbW9yeSBt YXBwZWQgaW50byBndWVzdCBwaHlzbWVtLiAgSXQKKyAqIGlzIGFsd2F5cyB0cmVhdGVkIGFzIDMy LWJpdCB3b3Jkcy4KKyAqCisgKiBUaGUgZ3Vlc3QgZHJpdmVyIGdldHMgdG8gZGVjaWRlIGhvdyB0 byBwYXJ0aXRpb24gaXQgYmV0d2VlbgorICogLSBGSUZPIHJlZ2lzdGVycyAodGhlcmUgYXJlIGFs d2F5cyBhdCBsZWFzdCA0LCBzcGVjaWZ5aW5nIHdoZXJlIHRoZQorICogICBmb2xsb3dpbmcgZGF0 YSBhcmVhIGlzIGFuZCBob3cgbXVjaCBkYXRhIGl0IGNvbnRhaW5zOyB0aGVyZSBtYXkgYmUKKyAq ICAgbW9yZSByZWdpc3RlcnMgZm9sbG93aW5nIHRoZXNlLCBkZXBlbmRpbmcgb24gdGhlIEZJRk8g cHJvdG9jb2wKKyAqICAgdmVyc2lvbiBpbiB1c2UpCisgKiAtIEZJRk8gZGF0YSwgd3JpdHRlbiBi eSB0aGUgZ3Vlc3QgYW5kIHNsdXJwZWQgb3V0IGJ5IHRoZSBWTVguCisgKiBUaGVzZSBpbmRpY2Vz IGFyZSAzMi1iaXQgd29yZCBvZmZzZXRzIGludG8gdGhlIEZJRk8uCisgKi8KKworZW51bSB7Cisg ICAvKgorICAgICogQmxvY2sgMSAoYmFzaWMgcmVnaXN0ZXJzKTogVGhlIG9yaWdpbmFsbHkgZGVm aW5lZCBGSUZPIHJlZ2lzdGVycy4KKyAgICAqIFRoZXNlIGV4aXN0IGFuZCBhcmUgdmFsaWQgZm9y IGFsbCB2ZXJzaW9ucyBvZiB0aGUgRklGTyBwcm90b2NvbC4KKyAgICAqLworCisgICBTVkdBX0ZJ Rk9fTUlOID0gMCwKKyAgIFNWR0FfRklGT19NQVgsICAgICAgIC8qIFRoZSBkaXN0YW5jZSBmcm9t IE1JTiB0byBNQVggbXVzdCBiZSBhdCBsZWFzdCAxMEsgKi8KKyAgIFNWR0FfRklGT19ORVhUX0NN RCwKKyAgIFNWR0FfRklGT19TVE9QLAorCisgICAvKgorICAgICogQmxvY2sgMiAoZXh0ZW5kZWQg cmVnaXN0ZXJzKTogTWFuZGF0b3J5IHJlZ2lzdGVycyBmb3IgdGhlIGV4dGVuZGVkCisgICAgKiBG SUZPLiAgVGhlc2UgZXhpc3QgaWYgdGhlIFNWR0EgY2FwcyByZWdpc3RlciBpbmNsdWRlcworICAg ICogU1ZHQV9DQVBfRVhURU5ERURfRklGTzsgc29tZSBvZiB0aGVtIGFyZSB2YWxpZCBvbmx5IGlm IHRoZWlyCisgICAgKiBhc3NvY2lhdGVkIGNhcGFiaWxpdHkgYml0IGlzIGVuYWJsZWQuCisgICAg KgorICAgICogTm90ZSB0aGF0IHdoZW4gb3JpZ2luYWxseSBkZWZpbmVkLCBTVkdBX0NBUF9FWFRF TkRFRF9GSUZPIGltcGxpZWQKKyAgICAqIHN1cHBvcnQgb25seSBmb3IgKEZJRk8gcmVnaXN0ZXJz KSBDQVBBQklMSVRJRVMsIEZMQUdTLCBhbmQgRkVOQ0UuCisgICAgKiBUaGlzIG1lYW5zIHRoYXQg dGhlIGd1ZXN0IGhhcyB0byB0ZXN0IGluZGl2aWR1YWxseSAoaW4gbW9zdCBjYXNlcworICAgICog dXNpbmcgRklGTyBjYXBzKSBmb3IgdGhlIHByZXNlbmNlIG9mIHJlZ2lzdGVycyBhZnRlciB0aGlz OyB0aGUgVk1YCisgICAgKiBjYW4gZGVmaW5lICJleHRlbmRlZCBGSUZPIiB0byBtZWFuIHdoYXRl dmVyIGl0IHdhbnRzLCBhbmQgY3VycmVudGx5CisgICAgKiB3b24ndCBlbmFibGUgaXQgdW5sZXNz IHRoZXJlJ3Mgcm9vbSBmb3IgdGhhdCBzZXQgYW5kIG11Y2ggbW9yZS4KKyAgICAqLworCisgICBT VkdBX0ZJRk9fQ0FQQUJJTElUSUVTID0gNCwKKyAgIFNWR0FfRklGT19GTEFHUywKKyAgIC8qIFZh bGlkIHdpdGggU1ZHQV9GSUZPX0NBUF9GRU5DRTogKi8KKyAgIFNWR0FfRklGT19GRU5DRSwKKwor ICAgLyoKKyAgICAqIEJsb2NrIDNhIChvcHRpb25hbCBleHRlbmRlZCByZWdpc3RlcnMpOiBBZGRp dGlvbmFsIHJlZ2lzdGVycyBmb3IgdGhlCisgICAgKiBleHRlbmRlZCBGSUZPLCB3aG9zZSBwcmVz ZW5jZSBpc24ndCBhY3R1YWxseSBpbXBsaWVkIGJ5CisgICAgKiBTVkdBX0NBUF9FWFRFTkRFRF9G SUZPOyB0aGVzZSBleGlzdCBpZiBTVkdBX0ZJRk9fTUlOIGlzIGhpZ2ggZW5vdWdoIHRvCisgICAg KiBsZWF2ZSByb29tIGZvciB0aGVtLgorICAgICoKKyAgICAqIFRoZXNlIGluIGJsb2NrIDNhLCB0 aGUgVk1YIGN1cnJlbnRseSBjb25zaWRlcnMgbWFuZGF0b3J5IGZvciB0aGUKKyAgICAqIGV4dGVu ZGVkIEZJRk8uCisgICAgKi8KKworICAgLyogVmFsaWQgaWYgZXhpc3RzIChpLmUuIGlmIGV4dGVu ZGVkIEZJRk8gZW5hYmxlZCk6ICovCisgICBTVkdBX0ZJRk9fM0RfSFdWRVJTSU9OLCAgICAgICAv KiBTZWUgU1ZHQTNkSGFyZHdhcmVWZXJzaW9uIGluIHN2Z2EzZF9yZWcuaCAqLworICAgLyogVmFs aWQgd2l0aCBTVkdBX0ZJRk9fQ0FQX1BJVENITE9DSzogKi8KKyAgIFNWR0FfRklGT19QSVRDSExP Q0ssCisKKyAgIC8qIFZhbGlkIHdpdGggU1ZHQV9GSUZPX0NBUF9DVVJTT1JfQllQQVNTXzM6ICov CisgICBTVkdBX0ZJRk9fQ1VSU09SX09OLCAgICAgICAgICAvKiBDdXJzb3IgYnlwYXNzIDMgc2hv dy9oaWRlIHJlZ2lzdGVyICovCisgICBTVkdBX0ZJRk9fQ1VSU09SX1gsICAgICAgICAgICAvKiBD dXJzb3IgYnlwYXNzIDMgeCByZWdpc3RlciAqLworICAgU1ZHQV9GSUZPX0NVUlNPUl9ZLCAgICAg ICAgICAgLyogQ3Vyc29yIGJ5cGFzcyAzIHkgcmVnaXN0ZXIgKi8KKyAgIFNWR0FfRklGT19DVVJT T1JfQ09VTlQsICAgICAgIC8qIEluY3JlbWVudGVkIHdoZW4gYW55IG9mIHRoZSBvdGhlciAzIGNo YW5nZSAqLworICAgU1ZHQV9GSUZPX0NVUlNPUl9MQVNUX1VQREFURUQsLyogTGFzdCB0aW1lIHRo ZSBob3N0IHVwZGF0ZWQgdGhlIGN1cnNvciAqLworCisgICAvKiBWYWxpZCB3aXRoIFNWR0FfRklG T19DQVBfUkVTRVJWRTogKi8KKyAgIFNWR0FfRklGT19SRVNFUlZFRCwgICAgICAgICAgIC8qIEJ5 dGVzIHBhc3QgTkVYVF9DTUQgd2l0aCByZWFsIGNvbnRlbnRzICovCisKKyAgIC8qCisgICAgKiBW YWxpZCB3aXRoIFNWR0FfRklGT19DQVBfU0NSRUVOX09CSkVDVCBvciBTVkdBX0ZJRk9fQ0FQX1ND UkVFTl9PQkpFQ1RfMjoKKyAgICAqCisgICAgKiBCeSBkZWZhdWx0IHRoaXMgaXMgU1ZHQV9JRF9J TlZBTElELCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBjdXJzb3IKKyAgICAqIGNvb3JkaW5hdGVzIGFy ZSBzcGVjaWZpZWQgcmVsYXRpdmUgdG8gdGhlIHZpcnR1YWwgcm9vdC4gSWYgdGhpcworICAgICog aXMgc2V0IHRvIGEgc3BlY2lmaWMgc2NyZWVuIElELCBjdXJzb3IgcG9zaXRpb24gaXMgcmVpbnRl cnByZXRlZAorICAgICogYXMgYSBzaWduZWQgb2Zmc2V0IHJlbGF0aXZlIHRvIHRoYXQgc2NyZWVu J3Mgb3JpZ2luLgorICAgICovCisgICBTVkdBX0ZJRk9fQ1VSU09SX1NDUkVFTl9JRCwKKworICAg LyoKKyAgICAqIFZhbGlkIHdpdGggU1ZHQV9GSUZPX0NBUF9ERUFECisgICAgKgorICAgICogQW4g YXJiaXRyYXJ5IHZhbHVlIHdyaXR0ZW4gYnkgdGhlIGhvc3QsIGRyaXZlcnMgc2hvdWxkIG5vdCB1 c2UgaXQuCisgICAgKi8KKyAgIFNWR0FfRklGT19ERUFELAorCisgICAvKgorICAgICogVmFsaWQg d2l0aCBTVkdBX0ZJRk9fQ0FQXzNEX0hXVkVSU0lPTl9SRVZJU0VEOgorICAgICoKKyAgICAqIENv bnRhaW5zIDNEIEhXVkVSU0lPTiAoc2VlIFNWR0EzZEhhcmR3YXJlVmVyc2lvbiBpbiBzdmdhM2Rf cmVnLmgpCisgICAgKiBvbiBwbGF0Zm9ybXMgdGhhdCBjYW4gZW5mb3JjZSBncmFwaGljcyByZXNv dXJjZSBsaW1pdHMuCisgICAgKi8KKyAgIFNWR0FfRklGT18zRF9IV1ZFUlNJT05fUkVWSVNFRCwK KworICAgLyoKKyAgICAqIFhYWDogVGhlIGdhcCBoZXJlLCB1cCB1bnRpbCBTVkdBX0ZJRk9fM0Rf Q0FQUywgY2FuIGJlIHVzZWQgZm9yIG5ldworICAgICogcmVnaXN0ZXJzLCBidXQgdGhpcyBtdXN0 IGJlIGRvbmUgY2FyZWZ1bGx5IGFuZCB3aXRoIGp1ZGljaW91cyB1c2Ugb2YKKyAgICAqIGNhcGFi aWxpdHkgYml0cywgc2luY2UgY29tcGFyaXNvbnMgYmFzZWQgb24gU1ZHQV9GSUZPX01JTiBhcmVu J3QKKyAgICAqIGVub3VnaCB0byB0ZWxsIHlvdSB3aGV0aGVyIHRoZSByZWdpc3RlciBleGlzdHM6 IHdlJ3ZlIHNoaXBwZWQgZHJpdmVycworICAgICogYW5kIHByb2R1Y3RzIHRoYXQgdXNlZCBTVkdB X0ZJRk9fM0RfQ0FQUyBidXQgZGlkbid0IGtub3cgYWJvdXQgc29tZSBvZgorICAgICogdGhlIGVh cmxpZXIgb25lcy4gIFRoZSBhY3R1YWwgb3JkZXIgb2YgaW50cm9kdWN0aW9uIHdhczoKKyAgICAq IC0gUElUQ0hMT0NLCisgICAgKiAtIDNEX0NBUFMKKyAgICAqIC0gQ1VSU09SXyogKGN1cnNvciBi eXBhc3MgMykKKyAgICAqIC0gUkVTRVJWRUQKKyAgICAqIFNvLCBjb2RlIHRoYXQgd2FudHMgdG8g a25vdyB3aGV0aGVyIGl0IGNhbiB1c2UgYW55IG9mIHRoZQorICAgICogYWZvcmVtZW50aW9uZWQg cmVnaXN0ZXJzLCBvciBhbnl0aGluZyBlbHNlIGFkZGVkIGFmdGVyIFBJVENITE9DSyBhbmQKKyAg ICAqIGJlZm9yZSAzRF9DQVBTLCBuZWVkcyB0byByZWFzb24gYWJvdXQgc29tZXRoaW5nIG90aGVy IHRoYW4KKyAgICAqIFNWR0FfRklGT19NSU4uCisgICAgKi8KKworICAgLyoKKyAgICAqIDNEIGNh cHMgYmxvY2sgc3BhY2U7IHZhbGlkIHdpdGggM0QgaGFyZHdhcmUgdmVyc2lvbiA+PQorICAgICog U1ZHQTNEX0hXVkVSU0lPTl9XUzZfQjEuCisgICAgKi8KKyAgIFNWR0FfRklGT18zRF9DQVBTICAg ICAgPSAzMiwKKyAgIFNWR0FfRklGT18zRF9DQVBTX0xBU1QgPSAzMiArIDI1NSwKKworICAgLyoK KyAgICAqIEVuZCBvZiBWTVgncyBjdXJyZW50IGRlZmluaXRpb24gb2YgImV4dGVuZGVkLUZJRk8g cmVnaXN0ZXJzIi4KKyAgICAqIFJlZ2lzdGVycyBiZWZvcmUgaGVyZSBhcmUgYWx3YXlzIGVuYWJs ZWQvZGlzYWJsZWQgYXMgYSBibG9jazsgZWl0aGVyCisgICAgKiB0aGUgZXh0ZW5kZWQgRklGTyBp cyBlbmFibGVkIGFuZCBpbmNsdWRlcyBhbGwgcHJlY2VkaW5nIHJlZ2lzdGVycywgb3IKKyAgICAq IGl0J3MgZGlzYWJsZWQgZW50aXJlbHkuCisgICAgKgorICAgICogQmxvY2sgM2IgKHRydWx5IG9w dGlvbmFsIGV4dGVuZGVkIHJlZ2lzdGVycyk6IEFkZGl0aW9uYWwgcmVnaXN0ZXJzIGZvcgorICAg ICogdGhlIGV4dGVuZGVkIEZJRk8sIHdoaWNoIHRoZSBWTVggYWxyZWFkeSBrbm93cyBob3cgdG8g ZW5hYmxlIGFuZAorICAgICogZGlzYWJsZSB3aXRoIGNvcnJlY3QgZ3JhbnVsYXJpdHkuCisgICAg KgorICAgICogUmVnaXN0ZXJzIGFmdGVyIGhlcmUgZXhpc3QgaWYgYW5kIG9ubHkgaWYgdGhlIGd1 ZXN0IFNWR0EgZHJpdmVyCisgICAgKiBzZXRzIFNWR0FfRklGT19NSU4gaGlnaCBlbm91Z2ggdG8g bGVhdmUgcm9vbSBmb3IgdGhlbS4KKyAgICAqLworCisgICAvKiBWYWxpZCBpZiByZWdpc3RlciBl eGlzdHM6ICovCisgICBTVkdBX0ZJRk9fR1VFU1RfM0RfSFdWRVJTSU9OLCAvKiBHdWVzdCBkcml2 ZXIncyAzRCB2ZXJzaW9uICovCisgICBTVkdBX0ZJRk9fRkVOQ0VfR09BTCwgICAgICAgICAvKiBN YXRjaGluZyB0YXJnZXQgZm9yIFNWR0FfSVJRRkxBR19GRU5DRV9HT0FMICovCisgICBTVkdBX0ZJ Rk9fQlVTWSwgICAgICAgICAgICAgICAvKiBTZWUgIkZJRk8gU3luY2hyb25pemF0aW9uIFJlZ2lz dGVycyIgKi8KKworICAgLyoKKyAgICAqIEFsd2F5cyBrZWVwIHRoaXMgbGFzdC4gIFRoaXMgZGVm aW5lcyB0aGUgbWF4aW11bSBudW1iZXIgb2YKKyAgICAqIHJlZ2lzdGVycyB3ZSBrbm93IGFib3V0 LiAgQXQgcG93ZXItb24sIHRoaXMgdmFsdWUgaXMgcGxhY2VkIGluCisgICAgKiB0aGUgU1ZHQV9S RUdfTUVNX1JFR1MgcmVnaXN0ZXIsIGFuZCB3ZSBleHBlY3QgdGhlIGd1ZXN0IGRyaXZlcgorICAg ICogdG8gYWxsb2NhdGUgdGhpcyBtdWNoIHNwYWNlIGluIEZJRk8gbWVtb3J5IGZvciByZWdpc3Rl cnMuCisgICAgKi8KKyAgICBTVkdBX0ZJRk9fTlVNX1JFR1MKK307CisKKworLyoKKyAqIERlZmlu aXRpb24gb2YgcmVnaXN0ZXJzIGluY2x1ZGVkIGluIGV4dGVuZGVkIEZJRk8gc3VwcG9ydC4KKyAq CisgKiBUaGUgZ3Vlc3QgU1ZHQSBkcml2ZXIgZ2V0cyB0byBhbGxvY2F0ZSB0aGUgRklGTyBiZXR3 ZWVuIHJlZ2lzdGVycworICogYW5kIGRhdGEuICBJdCBtdXN0IGFsd2F5cyBhbGxvY2F0ZSBhdCBs ZWFzdCA0IHJlZ2lzdGVycywgYnV0IG9sZAorICogZHJpdmVycyBzdG9wcGVkIHRoZXJlLgorICoK KyAqIFRoZSBWTVggd2lsbCBlbmFibGUgZXh0ZW5kZWQgRklGTyBzdXBwb3J0IGlmIGFuZCBvbmx5 IGlmIHRoZSBndWVzdAorICogbGVmdCBlbm91Z2ggcm9vbSBmb3IgYWxsIHJlZ2lzdGVycyBkZWZp bmVkIGFzIHBhcnQgb2YgdGhlIG1hbmRhdG9yeQorICogc2V0IGZvciB0aGUgZXh0ZW5kZWQgRklG Ty4KKyAqCisgKiBOb3RlIHRoYXQgdGhlIGd1ZXN0IGRyaXZlcnMgdHlwaWNhbGx5IGFsbG9jYXRl IHRoZSBGSUZPIG9ubHkgYXQKKyAqIGluaXRpYWxpemF0aW9uIHRpbWUsIG5vdCBhdCBtb2RlIHN3 aXRjaGVzLCBzbyBpdCdzIGxpa2VseSB0aGF0IHRoZQorICogbnVtYmVyIG9mIEZJRk8gcmVnaXN0 ZXJzIHdvbid0IGNoYW5nZSB3aXRob3V0IGEgcmVib290LgorICoKKyAqIEFsbCByZWdpc3RlcnMg bGVzcyB0aGFuIHRoaXMgdmFsdWUgYXJlIGd1YXJhbnRlZWQgdG8gYmUgcHJlc2VudCBpZgorICog c3ZnYVVzZXItPmZpZm8uZXh0ZW5kZWQgaXMgc2V0LiBBbnkgbGF0ZXIgcmVnaXN0ZXJzIG11c3Qg YmUgdGVzdGVkCisgKiBpbmRpdmlkdWFsbHkgZm9yIGNvbXBhdGliaWxpdHkgYXQgZWFjaCB1c2Ug KGluIHRoZSBWTVgpLgorICoKKyAqIFRoaXMgdmFsdWUgaXMgdXNlZCBvbmx5IGJ5IHRoZSBWTVgs IHNvIGl0IGNhbiBjaGFuZ2Ugd2l0aG91dAorICogYWZmZWN0aW5nIGRyaXZlciBjb21wYXRpYmls aXR5OyBrZWVwIGl0IHRoYXQgd2F5PworICovCisjZGVmaW5lIFNWR0FfRklGT19FWFRFTkRFRF9N QU5EQVRPUllfUkVHUyAgKFNWR0FfRklGT18zRF9DQVBTX0xBU1QgKyAxKQorCisKKy8qCisgKiBG SUZPIFN5bmNocm9uaXphdGlvbiBSZWdpc3RlcnMKKyAqCisgKiAgVGhpcyBleHBsYWlucyB0aGUg cmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIHZhcmlvdXMgRklGTworICogIHN5bmMtcmVsYXRlZCBy ZWdpc3RlcnMgaW4gSU9TcGFjZSBhbmQgaW4gRklGTyBzcGFjZS4KKyAqCisgKiAgU1ZHQV9SRUdf U1lOQyAtLQorICoKKyAqICAgICAgIFRoZSBTWU5DIHJlZ2lzdGVyIGNhbiBiZSB1c2VkIGluIHR3 byBkaWZmZXJlbnQgd2F5cyBieSB0aGUgZ3Vlc3Q6CisgKgorICogICAgICAgICAxLiBJZiB0aGUg Z3Vlc3Qgd2lzaGVzIHRvIGZ1bGx5IHN5bmMgKGRyYWluKSB0aGUgRklGTywKKyAqICAgICAgICAg ICAgaXQgd2lsbCB3cml0ZSBvbmNlIHRvIFNZTkMgdGhlbiBwb2xsIG9uIHRoZSBCVVNZCisgKiAg ICAgICAgICAgIHJlZ2lzdGVyLiBUaGUgRklGTyBpcyBzeW5jJ2VkIG9uY2UgQlVTWSBpcyB6ZXJv LgorICoKKyAqICAgICAgICAgMi4gSWYgdGhlIGd1ZXN0IHdhbnRzIHRvIGFzeW5jaHJvbm91c2x5 IHdha2UgdXAgdGhlIGhvc3QsCisgKiAgICAgICAgICAgIGl0IHdpbGwgd3JpdGUgb25jZSB0byBT WU5DIHdpdGhvdXQgcG9sbGluZyBvbiBCVVNZLgorICogICAgICAgICAgICBJZGVhbGx5IGl0IHdp bGwgZG8gdGhpcyBhZnRlciBzb21lIG5ldyBjb21tYW5kcyBoYXZlCisgKiAgICAgICAgICAgIGJl ZW4gcGxhY2VkIGluIHRoZSBGSUZPLCBhbmQgYWZ0ZXIgcmVhZGluZyBhIHplcm8KKyAqICAgICAg ICAgICAgZnJvbSBTVkdBX0ZJRk9fQlVTWS4KKyAqCisgKiAgICAgICAoMSkgaXMgdGhlIG9yaWdp bmFsIGJlaGF2aW91ciB0aGF0IFNZTkMgd2FzIGRlc2lnbmVkIHRvCisgKiAgICAgICBzdXBwb3J0 LiAgT3JpZ2luYWxseSwgYSB3cml0ZSB0byBTWU5DIHdvdWxkIGltcGxpY2l0bHkKKyAqICAgICAg IHRyaWdnZXIgYSByZWFkIGZyb20gQlVTWS4gVGhpcyBjYXVzZXMgdXMgdG8gc3luY2hyb25vdXNs eQorICogICAgICAgcHJvY2VzcyB0aGUgRklGTy4KKyAqCisgKiAgICAgICBUaGlzIGJlaGF2aW91 ciBoYXMgc2luY2UgYmVlbiBjaGFuZ2VkIHNvIHRoYXQgd3JpdGluZyBTWU5DCisgKiAgICAgICB3 aWxsICpub3QqIGltcGxpY2l0bHkgY2F1c2UgYSByZWFkIGZyb20gQlVTWS4gSW5zdGVhZCwgaXQK KyAqICAgICAgIG1ha2VzIGEgY2hhbm5lbCBjYWxsIHdoaWNoIGFzeW5jaHJvbm91c2x5IHdha2Vz IHVwIHRoZSBNS1MKKyAqICAgICAgIHRocmVhZC4KKyAqCisgKiAgICAgICBOZXcgZ3Vlc3RzIGNh biB1c2UgdGhpcyBuZXcgYmVoYXZpb3VyIHRvIGltcGxlbWVudCAoMikKKyAqICAgICAgIGVmZmlj aWVudGx5LiBUaGlzIGxldHMgZ3Vlc3RzIGdldCB0aGUgaG9zdCdzIGF0dGVudGlvbgorICogICAg ICAgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgTUtTIHRvIHBvbGwsIHdoaWNoIGdpdmVzIHVzIG11 Y2gKKyAqICAgICAgIGJldHRlciBDUFUgdXRpbGl6YXRpb24gb24gU01QIGhvc3RzIGFuZCBvbiBV UCBob3N0cyB3aGlsZQorICogICAgICAgd2UncmUgYmxvY2tlZCBvbiB0aGUgaG9zdCBHUFUuCisg KgorICogICAgICAgT2xkIGd1ZXN0cyBzaG91bGRuJ3Qgbm90aWNlIHRoZSBiZWhhdmlvdXIgY2hh bmdlLiBTWU5DIHdhcworICogICAgICAgbmV2ZXIgZ3VhcmFudGVlZCB0byBwcm9jZXNzIHRoZSBl bnRpcmUgRklGTywgc2luY2UgaXQgd2FzCisgKiAgICAgICBib3VuZGVkIHRvIGEgcGFydGljdWxh ciBudW1iZXIgb2YgQ1BVIGN5Y2xlcy4gT2xkIGd1ZXN0cyB3aWxsCisgKiAgICAgICBzdGlsbCBs b29wIG9uIHRoZSBCVVNZIHJlZ2lzdGVyIHVudGlsIHRoZSBGSUZPIGlzIGVtcHR5LgorICoKKyAq ICAgICAgIFdyaXRpbmcgdG8gU1lOQyBjdXJyZW50bHkgaGFzIHRoZSBmb2xsb3dpbmcgc2lkZS1l ZmZlY3RzOgorICoKKyAqICAgICAgICAgLSBTZXRzIFNWR0FfUkVHX0JVU1kgdG8gVFJVRSAoaW4g dGhlIG1vbml0b3IpCisgKiAgICAgICAgIC0gQXN5bmNocm9ub3VzbHkgd2FrZXMgdXAgdGhlIE1L UyB0aHJlYWQgZm9yIEZJRk8gcHJvY2Vzc2luZworICogICAgICAgICAtIFRoZSB2YWx1ZSB3cml0 dGVuIHRvIFNZTkMgaXMgcmVjb3JkZWQgYXMgYSAicmVhc29uIiwgZm9yCisgKiAgICAgICAgICAg c3RhdHMgcHVycG9zZXMuCisgKgorICogICAgICAgSWYgU1ZHQV9GSUZPX0JVU1kgaXMgYXZhaWxh YmxlLCBkcml2ZXJzIGFyZSBhZHZpc2VkIHRvIG9ubHkKKyAqICAgICAgIHdyaXRlIHRvIFNZTkMg aWYgU1ZHQV9GSUZPX0JVU1kgaXMgRkFMU0UuIERyaXZlcnMgc2hvdWxkIHNldAorICogICAgICAg U1ZHQV9GSUZPX0JVU1kgdG8gVFJVRSBhZnRlciB3cml0aW5nIHRvIFNZTkMuIFRoZSBNS1Mgd2ls bAorICogICAgICAgZXZlbnR1YWxseSBzZXQgU1ZHQV9GSUZPX0JVU1kgb24gaXRzIG93biwgYnV0 IHRoaXMgYXBwcm9hY2gKKyAqICAgICAgIGxldHMgdGhlIGRyaXZlciBhdm9pZCBzZW5kaW5nIG11 bHRpcGxlIGFzeW5jaHJvbm91cyB3YWtldXAKKyAqICAgICAgIG1lc3NhZ2VzIHRvIHRoZSBNS1Mg dGhyZWFkLgorICoKKyAqICBTVkdBX1JFR19CVVNZIC0tCisgKgorICogICAgICAgVGhpcyByZWdp c3RlciBpcyBzZXQgdG8gVFJVRSB3aGVuIFNWR0FfUkVHX1NZTkMgaXMgd3JpdHRlbiwKKyAqICAg ICAgIGFuZCBpdCByZWFkcyBhcyBGQUxTRSB3aGVuIHRoZSBGSUZPIGhhcyBiZWVuIGNvbXBsZXRl bHkKKyAqICAgICAgIGRyYWluZWQuCisgKgorICogICAgICAgRXZlcnkgcmVhZCBmcm9tIHRoaXMg cmVnaXN0ZXIgY2F1c2VzIHVzIHRvIHN5bmNocm9ub3VzbHkKKyAqICAgICAgIHByb2Nlc3MgRklG TyBjb21tYW5kcy4gVGhlcmUgaXMgbm8gZ3VhcmFudGVlIGFzIHRvIGhvdyBtYW55CisgKiAgICAg ICBjb21tYW5kcyBlYWNoIHJlYWQgd2lsbCBwcm9jZXNzLgorICoKKyAqICAgICAgIENQVSB0aW1l IHNwZW50IHByb2Nlc3NpbmcgRklGTyBjb21tYW5kcyB3aWxsIGJlIGJpbGxlZCB0bworICogICAg ICAgdGhlIGd1ZXN0LgorICoKKyAqICAgICAgIE5ldyBkcml2ZXJzIHNob3VsZCBhdm9pZCB1c2lu ZyB0aGlzIHJlZ2lzdGVyIHVubGVzcyB0aGV5CisgKiAgICAgICBuZWVkIHRvIGd1YXJhbnRlZSB0 aGF0IHRoZSBGSUZPIGlzIGNvbXBsZXRlbHkgZHJhaW5lZC4gSXQKKyAqICAgICAgIGlzIG92ZXJr aWxsIGZvciBwZXJmb3JtaW5nIGEgc3luYy10by1mZW5jZS4gT2xkZXIgZHJpdmVycworICogICAg ICAgd2lsbCB1c2UgdGhpcyByZWdpc3RlciBmb3IgYW55IHR5cGUgb2Ygc3luY2hyb25pemF0aW9u LgorICoKKyAqICBTVkdBX0ZJRk9fQlVTWSAtLQorICoKKyAqICAgICAgIFRoaXMgcmVnaXN0ZXIg aXMgYSBmYXN0IHdheSBmb3IgdGhlIGd1ZXN0IGRyaXZlciB0byBjaGVjaworICogICAgICAgd2hl dGhlciB0aGUgRklGTyBpcyBhbHJlYWR5IGJlaW5nIHByb2Nlc3NlZC4gSXQgcmVhZHMgYW5kCisg KiAgICAgICB3cml0ZXMgYXQgbm9ybWFsIFJBTSBzcGVlZHMsIHdpdGggbm8gbW9uaXRvciBpbnRl cnZlbnRpb24uCisgKgorICogICAgICAgSWYgdGhpcyByZWdpc3RlciByZWFkcyBhcyBUUlVFLCB0 aGUgaG9zdCBpcyBndWFyYW50ZWVpbmcgdGhhdAorICogICAgICAgYW55IG5ldyBjb21tYW5kcyB3 cml0dGVuIGludG8gdGhlIEZJRk8gd2lsbCBiZSBub3RpY2VkIGJlZm9yZQorICogICAgICAgdGhl IE1LUyBnb2VzIGJhY2sgdG8gc2xlZXAuCisgKgorICogICAgICAgSWYgdGhpcyByZWdpc3RlciBy ZWFkcyBhcyBGQUxTRSwgbm8gc3VjaCBndWFyYW50ZWUgY2FuIGJlCisgKiAgICAgICBtYWRlLgor ICoKKyAqICAgICAgIFRoZSBndWVzdCBzaG91bGQgdXNlIHRoaXMgcmVnaXN0ZXIgdG8gcXVpY2ts eSBkZXRlcm1pbmUKKyAqICAgICAgIHdoZXRoZXIgb3Igbm90IGl0IG5lZWRzIHRvIHdha2UgdXAg dGhlIGhvc3QuIElmIHRoZSBndWVzdAorICogICAgICAganVzdCB3cm90ZSBhIGNvbW1hbmQgb3Ig Z3JvdXAgb2YgY29tbWFuZHMgdGhhdCBpdCB3b3VsZCBsaWtlCisgKiAgICAgICB0aGUgaG9zdCB0 byBiZWdpbiBwcm9jZXNzaW5nLCBpdCBzaG91bGQ6CisgKgorICogICAgICAgICAxLiBSZWFkIFNW R0FfRklGT19CVVNZLiBJZiBpdCByZWFkcyBhcyBUUlVFLCBubyBmdXJ0aGVyCisgKiAgICAgICAg ICAgIGFjdGlvbiBpcyBuZWNlc3NhcnkuCisgKgorICogICAgICAgICAyLiBXcml0ZSBUUlVFIHRv IFNWR0FfRklGT19CVVNZLiBUaGlzIGluZm9ybXMgZnV0dXJlIGd1ZXN0CisgKiAgICAgICAgICAg IGNvZGUgdGhhdCB3ZSd2ZSBhbHJlYWR5IHNlbnQgYSBTWU5DIHRvIHRoZSBob3N0IGFuZCB3ZQor ICogICAgICAgICAgICBkb24ndCBuZWVkIHRvIHNlbmQgYSBkdXBsaWNhdGUuCisgKgorICogICAg ICAgICAzLiBXcml0ZSBhIHJlYXNvbiB0byBTVkdBX1JFR19TWU5DLiBUaGlzIHdpbGwgc2VuZCBh bgorICogICAgICAgICAgICBhc3luY2hyb25vdXMgd2FrZXVwIHRvIHRoZSBNS1MgdGhyZWFkLgor ICovCisKKworLyoKKyAqIEZJRk8gQ2FwYWJpbGl0aWVzCisgKgorICogICAgICBGZW5jZSAtLSBG ZW5jZSByZWdpc3RlciBhbmQgY29tbWFuZCBhcmUgc3VwcG9ydGVkCisgKiAgICAgIEFjY2VsIEZy b250IC0tIEZyb250IGJ1ZmZlciBvbmx5IGNvbW1hbmRzIGFyZSBzdXBwb3J0ZWQKKyAqICAgICAg UGl0Y2ggTG9jayAtLSBQaXRjaCBsb2NrIHJlZ2lzdGVyIGlzIHN1cHBvcnRlZAorICogICAgICBW aWRlbyAtLSBTVkdBIFZpZGVvIG92ZXJsYXkgdW5pdHMgYXJlIHN1cHBvcnRlZAorICogICAgICBF c2NhcGUgLS0gRXNjYXBlIGNvbW1hbmQgaXMgc3VwcG9ydGVkCisgKgorICogWFhYOiBBZGQgbG9u Z2VyIGRlc2NyaXB0aW9ucyBmb3IgZWFjaCBjYXBhYmlsaXR5LCBpbmNsdWRpbmcgYSBsaXN0Cisg KiAgICAgIG9mIHRoZSBuZXcgZmVhdHVyZXMgdGhhdCBlYWNoIGNhcGFiaWxpdHkgcHJvdmlkZXMu CisgKgorICogU1ZHQV9GSUZPX0NBUF9TQ1JFRU5fT0JKRUNUIC0tCisgKgorICogICAgUHJvdmlk ZXMgZHluYW1pYyBtdWx0aS1zY3JlZW4gcmVuZGVyaW5nLCBmb3IgaW1wcm92ZWQgVW5pdHkgYW5k CisgKiAgICBtdWx0aS1tb25pdG9yIG1vZGVzLiBXaXRoIFNjcmVlbiBPYmplY3QsIHRoZSBndWVz dCBjYW4KKyAqICAgIGR5bmFtaWNhbGx5IGNyZWF0ZSBhbmQgZGVzdHJveSAnc2NyZWVucycsIHdo aWNoIGNhbiByZXByZXNlbnQKKyAqICAgIFVuaXR5IHdpbmRvd3Mgb3IgdmlydHVhbCBtb25pdG9y cy4gU2NyZWVuIE9iamVjdCBhbHNvIHByb3ZpZGVzCisgKiAgICBzdHJvbmcgZ3VhcmFudGVlcyB0 aGF0IERNQSBvcGVyYXRpb25zIGhhcHBlbiBvbmx5IHdoZW4KKyAqICAgIGd1ZXN0LWluaXRpYXRl ZC4gU2NyZWVuIE9iamVjdCBkZXByZWNhdGVzIHRoZSBCQVIxIGd1ZXN0CisgKiAgICBmcmFtZWJ1 ZmZlciAoR0ZCKSBhbmQgYWxsIGNvbW1hbmRzIHRoYXQgd29yayBvbmx5IHdpdGggdGhlIEdGQi4K KyAqCisgKiAgICBOZXcgcmVnaXN0ZXJzOgorICogICAgICAgRklGT19DVVJTT1JfU0NSRUVOX0lE LCBWSURFT19EQVRBX0dNUklELCBWSURFT19EU1RfU0NSRUVOX0lECisgKgorICogICAgTmV3IDJE IGNvbW1hbmRzOgorICogICAgICAgREVGSU5FX1NDUkVFTiwgREVTVFJPWV9TQ1JFRU4sIERFRklO RV9HTVJGQiwgQkxJVF9HTVJGQl9UT19TQ1JFRU4sCisgKiAgICAgICBCTElUX1NDUkVFTl9UT19H TVJGQiwgQU5OT1RBVElPTl9GSUxMLCBBTk5PVEFUSU9OX0NPUFkKKyAqCisgKiAgICBOZXcgM0Qg Y29tbWFuZHM6CisgKiAgICAgICBCTElUX1NVUkZBQ0VfVE9fU0NSRUVOCisgKgorICogICAgTmV3 IGd1YXJhbnRlZXM6CisgKgorICogICAgICAgLSBUaGUgaG9zdCB3aWxsIG5vdCByZWFkIG9yIHdy aXRlIGd1ZXN0IG1lbW9yeSwgaW5jbHVkaW5nIHRoZSBHRkIsCisgKiAgICAgICAgIGV4Y2VwdCB3 aGVuIGV4cGxpY2l0bHkgaW5pdGlhdGVkIGJ5IGEgRE1BIGNvbW1hbmQuCisgKgorICogICAgICAg LSBBbGwgRE1BLCBpbmNsdWRpbmcgbGVnYWN5IERNQSBsaWtlIFVQREFURSBhbmQgUFJFU0VOVF9S RUFEQkFDSywKKyAqICAgICAgICAgaXMgZ3VhcmFudGVlZCB0byBjb21wbGV0ZSBiZWZvcmUgYW55 IHN1YnNlcXVlbnQgRkVOQ0VzLgorICoKKyAqICAgICAgIC0gQWxsIGxlZ2FjeSBjb21tYW5kcyB3 aGljaCBhZmZlY3QgYSBTY3JlZW4gKFVQREFURSwgUFJFU0VOVCwKKyAqICAgICAgICAgUFJFU0VO VF9SRUFEQkFDSykgYXMgd2VsbCBhcyBuZXcgU2NyZWVuIGJsaXQgY29tbWFuZHMgd2lsbAorICog ICAgICAgICBhbGwgYmVoYXZlIGNvbnNpc3RlbnRseSBhcyBibGl0cywgYW5kIG1lbW9yeSB3aWxs IGJlIHJlYWQKKyAqICAgICAgICAgb3Igd3JpdHRlbiBpbiBGSUZPIG9yZGVyLgorICoKKyAqICAg ICAgICAgRm9yIGV4YW1wbGUsIGlmIHlvdSBQUkVTRU5UIGZyb20gb25lIFNWR0EzRCBzdXJmYWNl IHRvIG11bHRpcGxlCisgKiAgICAgICAgIHBsYWNlcyBvbiB0aGUgc2NyZWVuLCB0aGUgZGF0YSBj b3BpZWQgd2lsbCBhbHdheXMgYmUgZnJvbSB0aGUKKyAqICAgICAgICAgU1ZHQTNEIHN1cmZhY2Ug YXQgdGhlIHRpbWUgdGhlIFBSRVNFTlQgd2FzIGlzc3VlZCBpbiB0aGUgRklGTy4KKyAqICAgICAg ICAgVGhpcyB3YXMgbm90IG5lY2Vzc2FyaWx5IHRydWUgb24gZGV2aWNlcyB3aXRob3V0IFNjcmVl biBPYmplY3QuCisgKgorICogICAgICAgICBUaGlzIG1lYW5zIHRoYXQgb24gZGV2aWNlcyB0aGF0 IHN1cHBvcnQgU2NyZWVuIE9iamVjdCwgdGhlCisgKiAgICAgICAgIFBSRVNFTlRfUkVBREJBQ0sg Y29tbWFuZCBzaG91bGQgbm90IGJlIG5lY2Vzc2FyeSB1bmxlc3MgeW91CisgKiAgICAgICAgIGFj dHVhbGx5IHdhbnQgdG8gcmVhZCBiYWNrIHRoZSByZXN1bHRzIG9mIDNEIHJlbmRlcmluZyBpbnRv CisgKiAgICAgICAgIHN5c3RlbSBtZW1vcnkuIChBbmQgZm9yIHRoYXQsIHRoZSBCTElUX1NDUkVF Tl9UT19HTVJGQgorICogICAgICAgICBjb21tYW5kIHByb3ZpZGVzIGEgc3RyaWN0IHN1cGVyc2V0 IG9mIGZ1bmN0aW9uYWxpdHkuKQorICoKKyAqICAgICAgIC0gV2hlbiBhIHNjcmVlbiBpcyByZXNp emVkLCBlaXRoZXIgdXNpbmcgU2NyZWVuIE9iamVjdCBjb21tYW5kcyBvcgorICogICAgICAgICBs ZWdhY3kgbXVsdGltb24gcmVnaXN0ZXJzLCBpdHMgY29udGVudHMgYXJlIHByZXNlcnZlZC4KKyAq CisgKiBTVkdBX0ZJRk9fQ0FQX0dNUjIgLS0KKyAqCisgKiAgICBQcm92aWRlcyBuZXcgY29tbWFu ZHMgdG8gZGVmaW5lIGFuZCByZW1hcCBndWVzdCBtZW1vcnkgcmVnaW9ucyAoR01SKS4KKyAqCisg KiAgICBOZXcgMkQgY29tbWFuZHM6CisgKiAgICAgICBERUZJTkVfR01SMiwgUkVNQVBfR01SMi4K KyAqCisgKiBTVkdBX0ZJRk9fQ0FQXzNEX0hXVkVSU0lPTl9SRVZJU0VEIC0tCisgKgorICogICAg SW5kaWNhdGVzIG5ldyByZWdpc3RlciBTVkdBX0ZJRk9fM0RfSFdWRVJTSU9OX1JFVklTRUQgZXhp c3RzLgorICogICAgVGhpcyByZWdpc3RlciBtYXkgcmVwbGFjZSBTVkdBX0ZJRk9fM0RfSFdWRVJT SU9OIG9uIHBsYXRmb3JtcworICogICAgdGhhdCBlbmZvcmNlIGdyYXBoaWNzIHJlc291cmNlIGxp bWl0cy4gIFRoaXMgYWxsb3dzIHRoZSBwbGF0Zm9ybQorICogICAgdG8gY2xlYXIgU1ZHQV9GSUZP XzNEX0hXVkVSU0lPTiBhbmQgZGlzYWJsZSAzRCBpbiBsZWdhY3kgZ3Vlc3QKKyAqICAgIGRyaXZl cnMgdGhhdCBkbyBub3QgbGltaXQgdGhlaXIgcmVzb3VyY2VzLgorICoKKyAqICAgIE5vdGUgdGhp cyBpcyBhbiBhbGlhcyB0byBTVkdBX0ZJRk9fQ0FQX0dNUjIgYmVjYXVzZSB0aGVzZSBpbmRpY2F0 b3JzCisgKiAgICBhcmUgY29kZXBlbmRlbnQgKGFuZCB0aHVzIHdlIHVzZSBhIHNpbmdsZSBjYXBh YmlsaXR5IGJpdCkuCisgKgorICogU1ZHQV9GSUZPX0NBUF9TQ1JFRU5fT0JKRUNUXzIgLS0KKyAq CisgKiAgICBNb2RpZmllcyB0aGUgREVGSU5FX1NDUkVFTiBjb21tYW5kIHRvIGluY2x1ZGUgYSBn dWVzdCBwcm92aWRlZAorICogICAgYmFja2luZyBzdG9yZSBpbiBHTVIgbWVtb3J5IGFuZCB0aGUg Ynl0ZXNQZXJMaW5lIGZvciB0aGUgYmFja2luZworICogICAgc3RvcmUuICBUaGlzIGNhcGFiaWxp dHkgcmVxdWlyZXMgdGhlIHVzZSBvZiBhIGJhY2tpbmcgc3RvcmUgd2hlbgorICogICAgY3JlYXRp bmcgc2NyZWVuIG9iamVjdHMuICBIb3dldmVyIGlmIFNWR0FfRklGT19DQVBfU0NSRUVOX09CSkVD VAorICogICAgaXMgcHJlc2VudCB0aGVuIGJhY2tpbmcgc3RvcmVzIGFyZSBvcHRpb25hbC4KKyAq CisgKiBTVkdBX0ZJRk9fQ0FQX0RFQUQgLS0KKyAqCisgKiAgICBEcml2ZXJzIHNob3VsZCBub3Qg dXNlIHRoaXMgY2FwIGJpdC4gIFRoaXMgY2FwIGJpdCBjYW4gbm90IGJlCisgKiAgICByZXVzZWQg c2luY2Ugc29tZSBob3N0cyBhbHJlYWR5IGV4cG9zZSBpdC4KKyAqLworCisjZGVmaW5lIFNWR0Ff RklGT19DQVBfTk9ORSAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU1ZHQV9GSUZPX0NBUF9G RU5DRSAgICAgICAgICAgICAoMTw8MCkKKyNkZWZpbmUgU1ZHQV9GSUZPX0NBUF9BQ0NFTEZST05U ICAgICAgICAoMTw8MSkKKyNkZWZpbmUgU1ZHQV9GSUZPX0NBUF9QSVRDSExPQ0sgICAgICAgICAo MTw8MikKKyNkZWZpbmUgU1ZHQV9GSUZPX0NBUF9WSURFTyAgICAgICAgICAgICAoMTw8MykKKyNk ZWZpbmUgU1ZHQV9GSUZPX0NBUF9DVVJTT1JfQllQQVNTXzMgICAoMTw8NCkKKyNkZWZpbmUgU1ZH QV9GSUZPX0NBUF9FU0NBUEUgICAgICAgICAgICAoMTw8NSkKKyNkZWZpbmUgU1ZHQV9GSUZPX0NB UF9SRVNFUlZFICAgICAgICAgICAoMTw8NikKKyNkZWZpbmUgU1ZHQV9GSUZPX0NBUF9TQ1JFRU5f T0JKRUNUICAgICAoMTw8NykKKyNkZWZpbmUgU1ZHQV9GSUZPX0NBUF9HTVIyICAgICAgICAgICAg ICAoMTw8OCkKKyNkZWZpbmUgU1ZHQV9GSUZPX0NBUF8zRF9IV1ZFUlNJT05fUkVWSVNFRCAgU1ZH QV9GSUZPX0NBUF9HTVIyCisjZGVmaW5lIFNWR0FfRklGT19DQVBfU0NSRUVOX09CSkVDVF8yICAg KDE8PDkpCisjZGVmaW5lIFNWR0FfRklGT19DQVBfREVBRCAgICAgICAgICAgICAgKDE8PDEwKQor CisKKy8qCisgKiBGSUZPIEZsYWdzCisgKgorICogICAgICBBY2NlbCBGcm9udCAtLSBEcml2ZXIg c2hvdWxkIHVzZSBmcm9udCBidWZmZXIgb25seSBjb21tYW5kcworICovCisKKyNkZWZpbmUgU1ZH QV9GSUZPX0ZMQUdfTk9ORSAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTVkdBX0ZJRk9fRkxB R19BQ0NFTEZST05UICAgICAgICgxPDwwKQorI2RlZmluZSBTVkdBX0ZJRk9fRkxBR19SRVNFUlZF RCAgICAgICAgKDE8PDMxKSAvKiBJbnRlcm5hbCB1c2Ugb25seSAqLworCisvKgorICogRklGTyBy ZXNlcnZhdGlvbiBzZW50aW5lbCB2YWx1ZQorICovCisKKyNkZWZpbmUgU1ZHQV9GSUZPX1JFU0VS VkVEX1VOS05PV04gICAgICAweGZmZmZmZmZmCisKKworLyoKKyAqIFZpZGVvIG92ZXJsYXkgc3Vw cG9ydAorICovCisKKyNkZWZpbmUgU1ZHQV9OVU1fT1ZFUkxBWV9VTklUUyAzMgorCisKKy8qCisg KiBWaWRlbyBjYXBhYmlsaXRpZXMgdGhhdCB0aGUgZ3Vlc3QgaXMgY3VycmVudGx5IHVzaW5nCisg Ki8KKworI2RlZmluZSBTVkdBX1ZJREVPX0ZMQUdfQ09MT1JLRVkgICAgICAgIDB4MDAwMQorCisK Ky8qCisgKiBPZmZzZXRzIGZvciB0aGUgdmlkZW8gb3ZlcmxheSByZWdpc3RlcnMKKyAqLworCitl bnVtIHsKKyAgIFNWR0FfVklERU9fRU5BQkxFRCA9IDAsCisgICBTVkdBX1ZJREVPX0ZMQUdTLAor ICAgU1ZHQV9WSURFT19EQVRBX09GRlNFVCwKKyAgIFNWR0FfVklERU9fRk9STUFULAorICAgU1ZH QV9WSURFT19DT0xPUktFWSwKKyAgIFNWR0FfVklERU9fU0laRSwgICAgICAgICAgLyogRGVwcmVj YXRlZCAqLworICAgU1ZHQV9WSURFT19XSURUSCwKKyAgIFNWR0FfVklERU9fSEVJR0hULAorICAg U1ZHQV9WSURFT19TUkNfWCwKKyAgIFNWR0FfVklERU9fU1JDX1ksCisgICBTVkdBX1ZJREVPX1NS Q19XSURUSCwKKyAgIFNWR0FfVklERU9fU1JDX0hFSUdIVCwKKyAgIFNWR0FfVklERU9fRFNUX1gs ICAgICAgICAgLyogU2lnbmVkIGludDMyICovCisgICBTVkdBX1ZJREVPX0RTVF9ZLCAgICAgICAg IC8qIFNpZ25lZCBpbnQzMiAqLworICAgU1ZHQV9WSURFT19EU1RfV0lEVEgsCisgICBTVkdBX1ZJ REVPX0RTVF9IRUlHSFQsCisgICBTVkdBX1ZJREVPX1BJVENIXzEsCisgICBTVkdBX1ZJREVPX1BJ VENIXzIsCisgICBTVkdBX1ZJREVPX1BJVENIXzMsCisgICBTVkdBX1ZJREVPX0RBVEFfR01SSUQs ICAgIC8qIE9wdGlvbmFsLCBkZWZhdWx0cyB0byBTVkdBX0dNUl9GUkFNRUJVRkZFUiAqLworICAg U1ZHQV9WSURFT19EU1RfU0NSRUVOX0lELCAvKiBPcHRpb25hbCwgZGVmYXVsdHMgdG8gdmlydHVh bCBjb29yZHMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogKFNWR0FfSURfSU5W QUxJRCkgKi8KKyAgIFNWR0FfVklERU9fTlVNX1JFR1MKK307CisKKworLyoKKyAqIFNWR0EgT3Zl cmxheSBVbml0cworICoKKyAqICAgICAgd2lkdGggYW5kIGhlaWdodCByZWxhdGUgdG8gdGhlIGVu dGlyZSBzb3VyY2UgdmlkZW8gZnJhbWUuCisgKiAgICAgIHNyY1gsIHNyY1ksIHNyY1dpZHRoIGFu ZCBzcmNIZWlnaHQgcmVwcmVzZW50IHN1YnNldCBvZiB0aGUgc291cmNlCisgKiAgICAgIHZpZGVv IGZyYW1lIHRvIGJlIGRpc3BsYXllZC4KKyAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJl X3BhY2tfYmVnaW4uaCIKK3N0cnVjdCBTVkdBT3ZlcmxheVVuaXQgeworICAgdWludDMyIGVuYWJs ZWQ7CisgICB1aW50MzIgZmxhZ3M7CisgICB1aW50MzIgZGF0YU9mZnNldDsKKyAgIHVpbnQzMiBm b3JtYXQ7CisgICB1aW50MzIgY29sb3JLZXk7CisgICB1aW50MzIgc2l6ZTsKKyAgIHVpbnQzMiB3 aWR0aDsKKyAgIHVpbnQzMiBoZWlnaHQ7CisgICB1aW50MzIgc3JjWDsKKyAgIHVpbnQzMiBzcmNZ OworICAgdWludDMyIHNyY1dpZHRoOworICAgdWludDMyIHNyY0hlaWdodDsKKyAgIGludDMyICBk c3RYOworICAgaW50MzIgIGRzdFk7CisgICB1aW50MzIgZHN0V2lkdGg7CisgICB1aW50MzIgZHN0 SGVpZ2h0OworICAgdWludDMyIHBpdGNoZXNbM107CisgICB1aW50MzIgZGF0YUdNUklkOworICAg dWludDMyIGRzdFNjcmVlbklkOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZH QU92ZXJsYXlVbml0OworCisKKy8qCisgKiBHdWVzdCBkaXNwbGF5IHRvcG9sb2d5CisgKgorICog WFhYOiBUaGlzIHN0cnVjdHVyZSBpcyBub3QgcGFydCBvZiB0aGUgU1ZHQSBkZXZpY2UncyBpbnRl cmZhY2UsIGFuZAorICogZG9lc24ndCByZWFsbHkgYmVsb25nIGhlcmUuCisgKi8KKyNkZWZpbmUg U1ZHQV9JTlZBTElEX0RJU1BMQVlfSUQgKCh1aW50MzIpLTEpCisKK3R5cGVkZWYgc3RydWN0IFNW R0FEaXNwbGF5VG9wb2xvZ3kgeworICAgdWludDE2IGRpc3BsYXlJZDsKKyAgIHVpbnQxNiBpc1By aW1hcnk7CisgICB1aW50MzIgd2lkdGg7CisgICB1aW50MzIgaGVpZ2h0OworICAgdWludDMyIHBv c2l0aW9uWDsKKyAgIHVpbnQzMiBwb3NpdGlvblk7Cit9IFNWR0FEaXNwbGF5VG9wb2xvZ3k7CisK KworLyoKKyAqIFNWR0FTY3JlZW5PYmplY3QgLS0KKyAqCisgKiAgICBUaGlzIGlzIGEgbmV3IHdh eSB0byByZXByZXNlbnQgYSBndWVzdCdzIG11bHRpLW1vbml0b3Igc2NyZWVuIG9yCisgKiAgICBV bml0eSB3aW5kb3cuIFNjcmVlbiBvYmplY3RzIGFyZSBvbmx5IHN1cHBvcnRlZCBpZiB0aGUKKyAq ICAgIFNWR0FfRklGT19DQVBfU0NSRUVOX09CSkVDVCBjYXBhYmlsaXR5IGJpdCBpcyBzZXQuCisg KgorICogICAgSWYgU2NyZWVuIE9iamVjdHMgYXJlIHN1cHBvcnRlZCwgdGhleSBjYW4gYmUgdXNl ZCB0byBmdWxseQorICogICAgcmVwbGFjZSB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBieSB0 aGUgZnJhbWVidWZmZXIgcmVnaXN0ZXJzCisgKiAgICAoU1ZHQV9SRUdfV0lEVEgsIEhFSUdIVCwg ZXRjLikgYW5kIGJ5IFNWR0FfQ0FQX0RJU1BMQVlfVE9QT0xPR1kuCisgKgorICogICAgVGhlIHNj cmVlbiBvYmplY3QgaXMgYSBzdHJ1Y3Qgd2l0aCBndWFyYW50ZWVkIGJpbmFyeQorICogICAgY29t cGF0aWJpbGl0eS4gTmV3IGZsYWdzIGNhbiBiZSBhZGRlZCwgYW5kIHRoZSBzdHJ1Y3QgbWF5IGdy b3csCisgKiAgICBidXQgZXhpc3RpbmcgZmllbGRzIG11c3QgcmV0YWluIHRoZWlyIG1lYW5pbmcu CisgKgorICogICAgQWRkZWQgd2l0aCBTVkdBX0ZJRk9fQ0FQX1NDUkVFTl9PQkpFQ1RfMiBhcmUg cmVxdWlyZWQgZmllbGRzIG9mCisgKiAgICBhIFNWR0FHdWVzdFB0ciB0aGF0IGlzIHVzZWQgdG8g YmFjayB0aGUgc2NyZWVuIGNvbnRlbnRzLiAgVGhpcworICogICAgbWVtb3J5IG11c3QgY29tZSBm cm9tIHRoZSBHRkIuICBUaGUgZ3Vlc3QgaXMgbm90IGFsbG93ZWQgdG8KKyAqICAgIGFjY2VzcyB0 aGUgbWVtb3J5IGFuZCBkb2luZyBzbyB3aWxsIGhhdmUgdW5kZWZpbmVkIHJlc3VsdHMuICBUaGUK KyAqICAgIGJhY2tpbmcgc3RvcmUgaXMgcmVxdWlyZWQgdG8gYmUgcGFnZSBhbGlnbmVkIGFuZCB0 aGUgc2l6ZSBpcworICogICAgcGFkZGVkIHRvIHRoZSBuZXh0IHBhZ2UgYm91bmRyeS4gIFRoZSBu dW1iZXIgb2YgcGFnZXMgaXM6CisgKiAgICAgICAoYnl0ZXNQZXJMaW5lICogc2l6ZS53aWR0aCAq IDQgKyBQQUdFX1NJWkUgLSAxKSAvIFBBR0VfU0laRQorICoKKyAqICAgIFRoZSBwaXRjaCBpbiB0 aGUgYmFja2luZ1N0b3JlIGlzIHJlcXVpcmVkIHRvIGJlIGF0IGxlYXN0IGxhcmdlCisgKiAgICBl bm91Z2ggdG8gaG9sZCBhIDMyYmJwIHNjYW5saW5lLiAgSXQgaXMgcmVjb21tZW5kZWQgdGhhdCB0 aGUKKyAqICAgIGRyaXZlciBwYWQgYnl0ZXNQZXJMaW5lIGZvciBhIHBvdGVudGlhbCBwZXJmb3Jt YW5jZSB3aW4uCisgKgorICogICAgVGhlIGNsb25lQ291bnQgZmllbGQgaXMgdHJlYXRlZCBhcyBh IGhpbnQgZnJvbSB0aGUgZ3Vlc3QgdGhhdAorICogICAgdGhlIHVzZXIgd2FudHMgdGhpcyBkaXNw bGF5IHRvIGJlIGNsb25lZCwgY291bnRDb3VudCB0aW1lcy4gIEEKKyAqICAgIHZhbHVlIG9mIHpl cm8gbWVhbnMgbm8gY2xvbmluZyBzaG91bGQgaGFwcGVuLgorICovCisKKyNkZWZpbmUgU1ZHQV9T Q1JFRU5fTVVTVF9CRV9TRVQgICAgICgxIDw8IDApCisjZGVmaW5lIFNWR0FfU0NSRUVOX0hBU19S T09UIFNWR0FfU0NSRUVOX01VU1RfQkVfU0VUIC8qIERlcHJlY2F0ZWQgKi8KKyNkZWZpbmUgU1ZH QV9TQ1JFRU5fSVNfUFJJTUFSWSAgICAgICgxIDw8IDEpCisjZGVmaW5lIFNWR0FfU0NSRUVOX0ZV TExTQ1JFRU5fSElOVCAoMSA8PCAyKQorCisvKgorICogQWRkZWQgd2l0aCBTVkdBX0ZJRk9fQ0FQ X1NDUkVFTl9PQkpFQ1RfMi4gIFdoZW4gdGhlIHNjcmVlbiBpcworICogZGVhY3RpdmF0ZWQgdGhl IGJhc2UgbGF5ZXIgaXMgZGVmaW5lZCB0byBsb3NlIGFsbCBjb250ZW50cyBhbmQKKyAqIGJlY29t ZSBibGFjay4gIFdoZW4gYSBzY3JlZW4gaXMgZGVhY3RpdmF0ZWQgdGhlIGJhY2tpbmcgc3RvcmUg aXMKKyAqIG9wdGlvbmFsLiAgV2hlbiBzZXQgYmFja2luZ1B0ciBhbmQgYnl0ZXNQZXJMaW5lIHdp bGwgYmUgaWdub3JlZC4KKyAqLworI2RlZmluZSBTVkdBX1NDUkVFTl9ERUFDVElWQVRFICAoMSA8 PCAzKQorCisvKgorICogQWRkZWQgd2l0aCBTVkdBX0ZJRk9fQ0FQX1NDUkVFTl9PQkpFQ1RfMi4g IFdoZW4gdGhpcyBmbGFnIGlzIHNldAorICogdGhlIHNjcmVlbiBjb250ZW50cyB3aWxsIGJlIG91 dHB1dHRlZCBhcyBhbGwgYmxhY2sgdG8gdGhlIHVzZXIKKyAqIHRob3VnaCB0aGUgYmFzZSBsYXll ciBjb250ZW50cyBpcyBwcmVzZXJ2ZWQuICBUaGUgc2NyZWVuIGJhc2UgbGF5ZXIKKyAqIGNhbiBz dGlsbCBiZSByZWFkIGFuZCB3cml0dGVuIHRvIGxpa2Ugbm9ybWFsIHRob3VnaCB0aGUgbm8gdmlz aWJsZQorICogZWZmZWN0IHdpbGwgYmUgc2VlbiBieSB0aGUgdXNlci4gIFdoZW4gdGhlIGZsYWcg aXMgY2hhbmdlZCB0aGUKKyAqIHNjcmVlbiB3aWxsIGJlIGJsYW5rZWQgb3IgcmVkcmF3biB0byB0 aGUgY3VycmVudCBjb250ZW50cyBhcyBuZWVkZWQKKyAqIHdpdGhvdXQgYW55IGV4dHJhIGNvbW1h bmRzIGZyb20gdGhlIGRyaXZlci4gIFRoaXMgZmxhZyBvbmx5IGhhcyBhbgorICogZWZmZWN0IHdo ZW4gdGhlIHNjcmVlbiBpcyBub3QgZGVhY3RpdmF0ZWQuCisgKi8KKyNkZWZpbmUgU1ZHQV9TQ1JF RU5fQkxBTktJTkcgKDEgPDwgNCkKKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2Jl Z2luLmgiCitzdHJ1Y3QgeworICAgdWludDMyIHN0cnVjdFNpemU7ICAgLyogc2l6ZW9mKFNWR0FT Y3JlZW5PYmplY3QpICovCisgICB1aW50MzIgaWQ7CisgICB1aW50MzIgZmxhZ3M7CisgICBzdHJ1 Y3QgeworICAgICAgdWludDMyIHdpZHRoOworICAgICAgdWludDMyIGhlaWdodDsKKyAgIH0gc2l6 ZTsKKyAgIHN0cnVjdCB7CisgICAgICBpbnQzMiB4OworICAgICAgaW50MzIgeTsKKyAgIH0gcm9v dDsKKworICAgLyoKKyAgICAqIEFkZGVkIGFuZCByZXF1aXJlZCBieSBTVkdBX0ZJRk9fQ0FQX1ND UkVFTl9PQkpFQ1RfMiwgb3B0aW9uYWwKKyAgICAqIHdpdGggU1ZHQV9GSUZPX0NBUF9TQ1JFRU5f T0JKRUNULgorICAgICovCisgICBTVkdBR3Vlc3RJbWFnZSBiYWNraW5nU3RvcmU7CisKKyAgIC8q CisgICAgKiBUaGUgY2xvbmVDb3VudCBmaWVsZCBpcyB0cmVhdGVkIGFzIGEgaGludCBmcm9tIHRo ZSBndWVzdCB0aGF0CisgICAgKiB0aGUgdXNlciB3YW50cyB0aGlzIGRpc3BsYXkgdG8gYmUgY2xv bmVkLCBjbG9uZUNvdW50IHRpbWVzLgorICAgICoKKyAgICAqIEEgdmFsdWUgb2YgemVybyBtZWFu cyBubyBjbG9uaW5nIHNob3VsZCBoYXBwZW4uCisgICAgKi8KKyAgIHVpbnQzMiBjbG9uZUNvdW50 OworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQVNjcmVlbk9iamVjdDsKKwor CisvKgorICogIENvbW1hbmRzIGluIHRoZSBjb21tYW5kIEZJRk86CisgKgorICogIENvbW1hbmQg SURzIGRlZmluZWQgYmVsb3cgYXJlIHVzZWQgZm9yIHRoZSB0cmFkaXRpb25hbCAyRCBGSUZPCisg KiAgY29tbXVuaWNhdGlvbiAobm90IGFsbCBjb21tYW5kcyBhcmUgYXZhaWxhYmxlIGZvciBhbGwg dmVyc2lvbnMgb2YgdGhlCisgKiAgU1ZHQSBGSUZPIHByb3RvY29sKS4KKyAqCisgKiAgTm90ZSB0 aGUgaG9sZXMgaW4gdGhlIGNvbW1hbmQgSUQgbnVtYmVyczogVGhlc2UgY29tbWFuZHMgaGF2ZSBi ZWVuCisgKiAgZGVwcmVjYXRlZCwgYW5kIHRoZSBvbGQgSURzIG11c3Qgbm90IGJlIHJldXNlZC4K KyAqCisgKiAgQ29tbWFuZCBJRHMgZnJvbSAxMDAwIHRvIDI5OTkgYXJlIHJlc2VydmVkIGZvciB1 c2UgYnkgdGhlIFNWR0EzRAorICogIHByb3RvY29sLgorICoKKyAqICBFYWNoIGNvbW1hbmQncyBw YXJhbWV0ZXJzIGFyZSBkZXNjcmliZWQgYnkgdGhlIGNvbW1lbnRzIGFuZAorICogIHN0cnVjdHMg YmVsb3cuCisgKi8KKwordHlwZWRlZiBlbnVtIHsKKyAgIFNWR0FfQ01EX0lOVkFMSURfQ01EICAg ICAgICAgICA9IDAsCisgICBTVkdBX0NNRF9VUERBVEUgICAgICAgICAgICAgICAgPSAxLAorICAg U1ZHQV9DTURfUkVDVF9DT1BZICAgICAgICAgICAgID0gMywKKyAgIFNWR0FfQ01EX1JFQ1RfUk9Q X0NPUFkgICAgICAgICA9IDE0LAorICAgU1ZHQV9DTURfREVGSU5FX0NVUlNPUiAgICAgICAgID0g MTksCisgICBTVkdBX0NNRF9ERUZJTkVfQUxQSEFfQ1VSU09SICAgPSAyMiwKKyAgIFNWR0FfQ01E X1VQREFURV9WRVJCT1NFICAgICAgICA9IDI1LAorICAgU1ZHQV9DTURfRlJPTlRfUk9QX0ZJTEwg ICAgICAgID0gMjksCisgICBTVkdBX0NNRF9GRU5DRSAgICAgICAgICAgICAgICAgPSAzMCwKKyAg IFNWR0FfQ01EX0VTQ0FQRSAgICAgICAgICAgICAgICA9IDMzLAorICAgU1ZHQV9DTURfREVGSU5F X1NDUkVFTiAgICAgICAgID0gMzQsCisgICBTVkdBX0NNRF9ERVNUUk9ZX1NDUkVFTiAgICAgICAg PSAzNSwKKyAgIFNWR0FfQ01EX0RFRklORV9HTVJGQiAgICAgICAgICA9IDM2LAorICAgU1ZHQV9D TURfQkxJVF9HTVJGQl9UT19TQ1JFRU4gID0gMzcsCisgICBTVkdBX0NNRF9CTElUX1NDUkVFTl9U T19HTVJGQiAgPSAzOCwKKyAgIFNWR0FfQ01EX0FOTk9UQVRJT05fRklMTCAgICAgICA9IDM5LAor ICAgU1ZHQV9DTURfQU5OT1RBVElPTl9DT1BZICAgICAgID0gNDAsCisgICBTVkdBX0NNRF9ERUZJ TkVfR01SMiAgICAgICAgICAgPSA0MSwKKyAgIFNWR0FfQ01EX1JFTUFQX0dNUjIgICAgICAgICAg ICA9IDQyLAorICAgU1ZHQV9DTURfREVBRCAgICAgICAgICAgICAgICAgID0gNDMsCisgICBTVkdB X0NNRF9ERUFEXzIgICAgICAgICAgICAgICAgPSA0NCwKKyAgIFNWR0FfQ01EX05PUCAgICAgICAg ICAgICAgICAgICA9IDQ1LAorICAgU1ZHQV9DTURfTk9QX0VSUk9SICAgICAgICAgICAgID0gNDYs CisgICBTVkdBX0NNRF9NQVgKK30gU1ZHQUZpZm9DbWRJZDsKKworI2RlZmluZSBTVkdBX0NNRF9N QVhfREFUQVNJWkUgICAgICAgKDI1NiAqIDEwMjQpCisjZGVmaW5lIFNWR0FfQ01EX01BWF9BUkdT ICAgICAgICAgICA2NAorCisKKy8qCisgKiBTVkdBX0NNRF9VUERBVEUgLS0KKyAqCisgKiAgICBU aGlzIGlzIGEgRE1BIHRyYW5zZmVyIHdoaWNoIGNvcGllcyBmcm9tIHRoZSBHdWVzdCBGcmFtZWJ1 ZmZlcgorICogICAgKEdGQikgYXQgQkFSMSArIFNWR0FfUkVHX0ZCX09GRlNFVCB0byBhbnkgc2Ny ZWVucyB3aGljaAorICogICAgaW50ZXJzZWN0IHdpdGggdGhlIHByb3ZpZGVkIHZpcnR1YWwgcmVj dGFuZ2xlLgorICoKKyAqICAgIFRoaXMgY29tbWFuZCBkb2VzIG5vdCBzdXBwb3J0IHVzaW5nIGFy Yml0cmFyeSBndWVzdCBtZW1vcnkgYXMgYQorICogICAgZGF0YSBzb3VyY2UtIGl0IG9ubHkgd29y a3Mgd2l0aCB0aGUgcHJlLWRlZmluZWQgR0ZCIG1lbW9yeS4KKyAqICAgIFRoaXMgY29tbWFuZCBh bHNvIGRvZXMgbm90IHN1cHBvcnQgc2lnbmVkIHZpcnR1YWwgY29vcmRpbmF0ZXMuCisgKiAgICBJ ZiB5b3UgaGF2ZSBkZWZpbmVkIHNjcmVlbnMgKHVzaW5nIFNWR0FfQ01EX0RFRklORV9TQ1JFRU4p IHdpdGgKKyAqICAgIG5lZ2F0aXZlIHJvb3QgeC95IGNvb3JkaW5hdGVzLCB0aGUgbmVnYXRpdmUg cG9ydGlvbiBvZiB0aG9zZQorICogICAgc2NyZWVucyB3aWxsIG5vdCBiZSByZWFjaGFibGUgYnkg dGhpcyBjb21tYW5kLgorICoKKyAqICAgIFRoaXMgY29tbWFuZCBpcyBub3QgbmVjZXNzYXJ5IHdo ZW4gdXNpbmcgZnJhbWVidWZmZXIKKyAqICAgIHRyYWNlcy4gVHJhY2VzIGFyZSBhdXRvbWF0aWNh bGx5IGVuYWJsZWQgaWYgdGhlIFNWR0EgRklGTyBpcworICogICAgZGlzYWJsZWQsIGFuZCB5b3Ug bWF5IGV4cGxpY2l0bHkgZW5hYmxlL2Rpc2FibGUgdHJhY2VzIHVzaW5nCisgKiAgICBTVkdBX1JF R19UUkFDRVMuIFdpdGggdHJhY2VzIGVuYWJsZWQsIGFueSB3cml0ZSB0byB0aGUgR0ZCIHdpbGwK KyAqICAgIGF1dG9tYXRpY2FsbHkgYWN0IGFzIGlmIGEgc3Vic2VxdWVudCBTVkdBX0NNRF9VUERB VEUgd2FzIGlzc3VlZC4KKyAqCisgKiAgICBUcmFjZXMgYW5kIFNWR0FfQ01EX1VQREFURSBhcmUg dGhlIG9ubHkgc3VwcG9ydGVkIHdheXMgdG8gcmVuZGVyCisgKiAgICBwc2V1ZG9jb2xvciBzY3Jl ZW4gdXBkYXRlcy4gVGhlIG5ld2VyIFNjcmVlbiBPYmplY3QgY29tbWFuZHMKKyAqICAgIG9ubHkg c3VwcG9ydCB0cnVlIGNvbG9yIGZvcm1hdHMuCisgKgorICogQXZhaWxhYmlsaXR5OgorICogICAg QWx3YXlzIGF2YWlsYWJsZS4KKyAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tf YmVnaW4uaCIKK3N0cnVjdCB7CisgICB1aW50MzIgeDsKKyAgIHVpbnQzMiB5OworICAgdWludDMy IHdpZHRoOworICAgdWludDMyIGhlaWdodDsKK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQu aCIKK1NWR0FGaWZvQ21kVXBkYXRlOworCisKKy8qCisgKiBTVkdBX0NNRF9SRUNUX0NPUFkgLS0K KyAqCisgKiAgICBQZXJmb3JtIGEgcmVjdGFuZ3VsYXIgRE1BIHRyYW5zZmVyIGZyb20gb25lIGFy ZWEgb2YgdGhlIEdGQiB0bworICogICAgYW5vdGhlciwgYW5kIGNvcHkgdGhlIHJlc3VsdCB0byBh bnkgc2NyZWVucyB3aGljaCBpbnRlcnNlY3QgaXQuCisgKgorICogQXZhaWxhYmlsaXR5OgorICog ICAgU1ZHQV9DQVBfUkVDVF9DT1BZCisgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9w YWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAgdWludDMyIHNyY1g7CisgICB1aW50MzIgc3JjWTsK KyAgIHVpbnQzMiBkZXN0WDsKKyAgIHVpbnQzMiBkZXN0WTsKKyAgIHVpbnQzMiB3aWR0aDsKKyAg IHVpbnQzMiBoZWlnaHQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBRmlm b0NtZFJlY3RDb3B5OworCisKKy8qCisgKiBTVkdBX0NNRF9SRUNUX1JPUF9DT1BZIC0tCisgKgor ICogICAgUGVyZm9ybSBhIHJlY3Rhbmd1bGFyIERNQSB0cmFuc2ZlciBmcm9tIG9uZSBhcmVhIG9m IHRoZSBHRkIgdG8KKyAqICAgIGFub3RoZXIsIGFuZCBjb3B5IHRoZSByZXN1bHQgdG8gYW55IHNj cmVlbnMgd2hpY2ggaW50ZXJzZWN0IGl0LgorICogICAgVGhlIHZhbHVlIG9mIFJPUCBtYXkgb25s eSBiZSBTVkdBX1JPUF9DT1BZLCBhbmQgdGhpcyBjb21tYW5kIGlzCisgKiAgICBvbmx5IHN1cHBv cnRlZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcmVhc29ucy4KKyAqCisgKiBBdmFpbGFi aWxpdHk6CisgKiAgICBTVkdBX0NBUF9SRUNUX0NPUFkKKyAqLworCit0eXBlZGVmCisjaW5jbHVk ZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7CisgICB1aW50MzIgc3JjWDsKKyAgIHVp bnQzMiBzcmNZOworICAgdWludDMyIGRlc3RYOworICAgdWludDMyIGRlc3RZOworICAgdWludDMy IHdpZHRoOworICAgdWludDMyIGhlaWdodDsKKyAgIHVpbnQzMiByb3A7Cit9CisjaW5jbHVkZSAi dm13YXJlX3BhY2tfZW5kLmgiCitTVkdBRmlmb0NtZFJlY3RSb3BDb3B5OworCisKKy8qCisgKiBT VkdBX0NNRF9ERUZJTkVfQ1VSU09SIC0tCisgKgorICogICAgUHJvdmlkZSBhIG5ldyBjdXJzb3Ig aW1hZ2UsIGFzIGFuIEFORC9YT1IgbWFzay4KKyAqCisgKiAgICBUaGUgcmVjb21tZW5kZWQgd2F5 IHRvIHBvc2l0aW9uIHRoZSBjdXJzb3Igb3ZlcmxheSBpcyBieSB1c2luZworICogICAgdGhlIFNW R0FfRklGT19DVVJTT1JfKiByZWdpc3RlcnMsIHN1cHBvcnRlZCBieSB0aGUKKyAqICAgIFNWR0Ff RklGT19DQVBfQ1VSU09SX0JZUEFTU18zIGNhcGFiaWxpdHkuCisgKgorICogQXZhaWxhYmlsaXR5 OgorICogICAgU1ZHQV9DQVBfQ1VSU09SCisgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2Fy ZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAgdWludDMyIGlkOyAgICAgICAgICAgICAvKiBS ZXNlcnZlZCwgbXVzdCBiZSB6ZXJvLiAqLworICAgdWludDMyIGhvdHNwb3RYOworICAgdWludDMy IGhvdHNwb3RZOworICAgdWludDMyIHdpZHRoOworICAgdWludDMyIGhlaWdodDsKKyAgIHVpbnQz MiBhbmRNYXNrRGVwdGg7ICAgLyogVmFsdWUgbXVzdCBiZSAxIG9yIGVxdWFsIHRvIEJJVFNfUEVS X1BJWEVMICovCisgICB1aW50MzIgeG9yTWFza0RlcHRoOyAgIC8qIFZhbHVlIG11c3QgYmUgMSBv ciBlcXVhbCB0byBCSVRTX1BFUl9QSVhFTCAqLworICAgLyoKKyAgICAqIEZvbGxvd2VkIGJ5IHNj YW5saW5lIGRhdGEgZm9yIEFORCBtYXNrLCB0aGVuIFhPUiBtYXNrLgorICAgICogRWFjaCBzY2Fu bGluZSBpcyBwYWRkZWQgdG8gYSAzMi1iaXQgYm91bmRhcnkuCisgICAqLworfQorI2luY2x1ZGUg InZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQUZpZm9DbWREZWZpbmVDdXJzb3I7CisKKworLyoKKyAq IFNWR0FfQ01EX0RFRklORV9BTFBIQV9DVVJTT1IgLS0KKyAqCisgKiAgICBQcm92aWRlIGEgbmV3 IGN1cnNvciBpbWFnZSwgaW4gMzItYml0IEJHUkEgZm9ybWF0LgorICoKKyAqICAgIFRoZSByZWNv bW1lbmRlZCB3YXkgdG8gcG9zaXRpb24gdGhlIGN1cnNvciBvdmVybGF5IGlzIGJ5IHVzaW5nCisg KiAgICB0aGUgU1ZHQV9GSUZPX0NVUlNPUl8qIHJlZ2lzdGVycywgc3VwcG9ydGVkIGJ5IHRoZQor ICogICAgU1ZHQV9GSUZPX0NBUF9DVVJTT1JfQllQQVNTXzMgY2FwYWJpbGl0eS4KKyAqCisgKiBB dmFpbGFiaWxpdHk6CisgKiAgICBTVkdBX0NBUF9BTFBIQV9DVVJTT1IKKyAqLworCit0eXBlZGVm CisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7CisgICB1aW50MzIgaWQ7 ICAgICAgICAgICAgIC8qIFJlc2VydmVkLCBtdXN0IGJlIHplcm8uICovCisgICB1aW50MzIgaG90 c3BvdFg7CisgICB1aW50MzIgaG90c3BvdFk7CisgICB1aW50MzIgd2lkdGg7CisgICB1aW50MzIg aGVpZ2h0OworICAgLyogRm9sbG93ZWQgYnkgc2NhbmxpbmUgZGF0YSAqLworfQorI2luY2x1ZGUg InZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQUZpZm9DbWREZWZpbmVBbHBoYUN1cnNvcjsKKworCisv KgorICogU1ZHQV9DTURfVVBEQVRFX1ZFUkJPU0UgLS0KKyAqCisgKiAgICBKdXN0IGxpa2UgU1ZH QV9DTURfVVBEQVRFLCBidXQgYWxzbyBwcm92aWRlIGEgcGVyLXJlY3RhbmdsZQorICogICAgJ3Jl YXNvbicgdmFsdWUsIGFuIG9wYXF1ZSBjb29raWUgd2hpY2ggaXMgdXNlZCBieSBpbnRlcm5hbAor ICogICAgZGVidWdnaW5nIHRvb2xzLiBUaGlyZCBwYXJ0eSBkcml2ZXJzIHNob3VsZCBub3QgdXNl IHRoaXMKKyAqICAgIGNvbW1hbmQuCisgKgorICogQXZhaWxhYmlsaXR5OgorICogICAgU1ZHQV9D QVBfRVhURU5ERURfRklGTworICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVfcGFja19i ZWdpbi5oIgorc3RydWN0IHsKKyAgIHVpbnQzMiB4OworICAgdWludDMyIHk7CisgICB1aW50MzIg d2lkdGg7CisgICB1aW50MzIgaGVpZ2h0OworICAgdWludDMyIHJlYXNvbjsKK30KKyNpbmNsdWRl ICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0FGaWZvQ21kVXBkYXRlVmVyYm9zZTsKKworCisvKgor ICogU1ZHQV9DTURfRlJPTlRfUk9QX0ZJTEwgLS0KKyAqCisgKiAgICBUaGlzIGlzIGEgaGludCB3 aGljaCB0ZWxscyB0aGUgU1ZHQSBkZXZpY2UgdGhhdCB0aGUgZHJpdmVyIGhhcworICogICAganVz dCBmaWxsZWQgYSByZWN0YW5ndWxhciByZWdpb24gb2YgdGhlIEdGQiB3aXRoIGEgc29saWQKKyAq ICAgIGNvbG9yLiBJbnN0ZWFkIG9mIHJlYWRpbmcgdGhlc2UgcGl4ZWxzIGZyb20gdGhlIEdGQiwg dGhlIGRldmljZQorICogICAgY2FuIGFzc3VtZSB0aGF0IHRoZXkgYWxsIGVxdWFsICdjb2xvcicu IFRoaXMgaXMgcHJpbWFyaWx5IHVzZWQKKyAqICAgIGZvciByZW1vdGUgZGVza3RvcCBwcm90b2Nv bHMuCisgKgorICogQXZhaWxhYmlsaXR5OgorICogICAgU1ZHQV9GSUZPX0NBUF9BQ0NFTEZST05U CisgKi8KKworI2RlZmluZSAgU1ZHQV9ST1BfQ09QWSAgICAgICAgICAgICAgICAgICAgMHgwMwor Cit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7CisgICB1 aW50MzIgY29sb3I7ICAgICAvKiBJbiB0aGUgc2FtZSBmb3JtYXQgYXMgdGhlIEdGQiAqLworICAg dWludDMyIHg7CisgICB1aW50MzIgeTsKKyAgIHVpbnQzMiB3aWR0aDsKKyAgIHVpbnQzMiBoZWln aHQ7CisgICB1aW50MzIgcm9wOyAgICAgICAvKiBNdXN0IGJlIFNWR0FfUk9QX0NPUFkgKi8KK30K KyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0FGaWZvQ21kRnJvbnRSb3BGaWxsOwor CisKKy8qCisgKiBTVkdBX0NNRF9GRU5DRSAtLQorICoKKyAqICAgIEluc2VydCBhIHN5bmNocm9u aXphdGlvbiBmZW5jZS4gIFdoZW4gdGhlIFNWR0EgZGV2aWNlIHJlYWNoZXMKKyAqICAgIHRoaXMg Y29tbWFuZCwgaXQgd2lsbCBjb3B5IHRoZSAnZmVuY2UnIHZhbHVlIGludG8gdGhlCisgKiAgICBT VkdBX0ZJRk9fRkVOQ0UgcmVnaXN0ZXIuIEl0IHdpbGwgYWxzbyBjb21wYXJlIHRoZSBmZW5jZSBh Z2FpbnN0CisgKiAgICBTVkdBX0ZJRk9fRkVOQ0VfR09BTC4gSWYgdGhlIGZlbmNlIG1hdGNoZXMg dGhlIGdvYWwgYW5kIHRoZQorICogICAgU1ZHQV9JUlFGTEFHX0ZFTkNFX0dPQUwgaW50ZXJydXB0 IGlzIGVuYWJsZWQsIHRoZSBkZXZpY2Ugd2lsbAorICogICAgcmFpc2UgdGhpcyBpbnRlcnJ1cHQu CisgKgorICogQXZhaWxhYmlsaXR5OgorICogICAgU1ZHQV9GSUZPX0ZFTkNFIGZvciB0aGlzIGNv bW1hbmQsCisgKiAgICBTVkdBX0NBUF9JUlFNQVNLIGZvciBTVkdBX0ZJRk9fRkVOQ0VfR09BTC4K KyAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7 CisgICB1aW50MzIgZmVuY2U7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdB Rmlmb0NtZEZlbmNlOworCisKKy8qCisgKiBTVkdBX0NNRF9FU0NBUEUgLS0KKyAqCisgKiAgICBT ZW5kIGFuIGV4dGVuZGVkIG9yIHZlbmRvci1zcGVjaWZpYyB2YXJpYWJsZSBsZW5ndGggY29tbWFu ZC4KKyAqICAgIFRoaXMgaXMgdXNlZCBmb3IgdmlkZW8gb3ZlcmxheSwgdGhpcmQgcGFydHkgcGx1 Z2lucywgYW5kCisgKiAgICBpbnRlcm5hbCBkZWJ1Z2dpbmcgdG9vbHMuIFNlZSBzdmdhX2VzY2Fw ZS5oCisgKgorICogQXZhaWxhYmlsaXR5OgorICogICAgU1ZHQV9GSUZPX0NBUF9FU0NBUEUKKyAq LworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7Cisg ICB1aW50MzIgbnNpZDsKKyAgIHVpbnQzMiBzaXplOworICAgLyogZm9sbG93ZWQgYnkgJ3NpemUn IGJ5dGVzIG9mIGRhdGEgKi8KK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19lbmQuaCIKK1NWR0FG aWZvQ21kRXNjYXBlOworCisKKy8qCisgKiBTVkdBX0NNRF9ERUZJTkVfU0NSRUVOIC0tCisgKgor ICogICAgRGVmaW5lIG9yIHJlZGVmaW5lIGFuIFNWR0FTY3JlZW5PYmplY3QuIFNlZSB0aGUgZGVz Y3JpcHRpb24gb2YKKyAqICAgIFNWR0FTY3JlZW5PYmplY3QgYWJvdmUuICBUaGUgdmlkZW8gZHJp dmVyIGlzIHJlc3BvbnNpYmxlIGZvcgorICogICAgZ2VuZXJhdGluZyBuZXcgc2NyZWVuIElEcy4g VGhleSBzaG91bGQgYmUgc21hbGwgcG9zaXRpdmUKKyAqICAgIGludGVnZXJzLiBUaGUgdmlydHVh bCBkZXZpY2Ugd2lsbCBoYXZlIGFuIGltcGxlbWVudGF0aW9uCisgKiAgICBzcGVjaWZpYyB1cHBl ciBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIHNjcmVlbiBJRHMKKyAqICAgIHN1cHBvcnRlZC4gRHJp dmVycyBhcmUgcmVzcG9uc2libGUgZm9yIHJlY3ljbGluZyBJRHMuIFRoZSBmaXJzdAorICogICAg dmFsaWQgSUQgaXMgemVyby4KKyAqCisgKiAgICAtIEludGVyYWN0aW9uIHdpdGggb3RoZXIgcmVn aXN0ZXJzOgorICoKKyAqICAgIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgd2hlbiB0aGUg R0ZCIG1vZGUgcmVnaXN0ZXJzIChXSURUSCwKKyAqICAgIEhFSUdIVCwgUElUQ0hMT0NLLCBCSVRT X1BFUl9QSVhFTCkgYXJlIG1vZGlmaWVkLCB0aGUgU1ZHQSBkZXZpY2UKKyAqICAgIGRlbGV0ZXMg YWxsIHNjcmVlbnMgb3RoZXIgdGhhbiBzY3JlZW4gIzAsIGFuZCByZWRlZmluZXMgc2NyZWVuCisg KiAgICAjMCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBtb2RlLiBEcml2ZXJzIHRoYXQgdXNl CisgKiAgICBTVkdBX0NNRF9ERUZJTkVfU0NSRUVOIHNob3VsZCBkZXN0cm95IG9yIHJlZGVmaW5l IHNjcmVlbiAjMC4KKyAqCisgKiAgICBJZiB5b3UgdXNlIHNjcmVlbiBvYmplY3RzLCBkbyBub3Qg dXNlIHRoZSBsZWdhY3kgbXVsdGktbW9uCisgKiAgICByZWdpc3RlcnMgKFNWR0FfUkVHX05VTV9H VUVTVF9ESVNQTEFZUywgU1ZHQV9SRUdfRElTUExBWV8qKS4KKyAqCisgKiBBdmFpbGFiaWxpdHk6 CisgKiAgICBTVkdBX0ZJRk9fQ0FQX1NDUkVFTl9PQkpFQ1Qgb3IgU1ZHQV9GSUZPX0NBUF9TQ1JF RU5fT0JKRUNUXzIKKyAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4u aCIKK3N0cnVjdCB7CisgICBTVkdBU2NyZWVuT2JqZWN0IHNjcmVlbjsgICAvKiBWYXJpYWJsZS1s ZW5ndGggYWNjb3JkaW5nIHRvIHZlcnNpb24gKi8KK30KKyNpbmNsdWRlICJ2bXdhcmVfcGFja19l bmQuaCIKK1NWR0FGaWZvQ21kRGVmaW5lU2NyZWVuOworCisKKy8qCisgKiBTVkdBX0NNRF9ERVNU Uk9ZX1NDUkVFTiAtLQorICoKKyAqICAgIERlc3Ryb3kgYW4gU1ZHQVNjcmVlbk9iamVjdC4gSXRz IElEIGlzIGltbWVkaWF0ZWx5IGF2YWlsYWJsZSBmb3IKKyAqICAgIHJlLXVzZS4KKyAqCisgKiBB dmFpbGFiaWxpdHk6CisgKiAgICBTVkdBX0ZJRk9fQ0FQX1NDUkVFTl9PQkpFQ1Qgb3IgU1ZHQV9G SUZPX0NBUF9TQ1JFRU5fT0JKRUNUXzIKKyAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJl X3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7CisgICB1aW50MzIgc2NyZWVuSWQ7Cit9CisjaW5jbHVk ZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBRmlmb0NtZERlc3Ryb3lTY3JlZW47CisKKworLyoK KyAqIFNWR0FfQ01EX0RFRklORV9HTVJGQiAtLQorICoKKyAqICAgIFRoaXMgY29tbWFuZCBzZXRz IGEgcGllY2Ugb2YgU1ZHQSBkZXZpY2Ugc3RhdGUgY2FsbGVkIHRoZQorICogICAgR3Vlc3QgTWVt b3J5IFJlZ2lvbiBGcmFtZWJ1ZmZlciwgb3IgR01SRkIuIFRoZSBHTVJGQiBpcyBhCisgKiAgICBw aWVjZSBvZiBsaWdodC13ZWlnaHQgc3RhdGUgd2hpY2ggaWRlbnRpZmllcyB0aGUgbG9jYXRpb24g YW5kCisgKiAgICBmb3JtYXQgb2YgYW4gaW1hZ2UgaW4gZ3Vlc3QgbWVtb3J5IG9yIGluIEJBUjEu IFRoZSBHTVJGQiBoYXMKKyAqICAgIGFuIGFyYml0cmFyeSBzaXplLCBhbmQgaXQgZG9lc24ndCBu ZWVkIHRvIG1hdGNoIHRoZSBnZW9tZXRyeQorICogICAgb2YgdGhlIEdGQiBvciBhbnkgc2NyZWVu IG9iamVjdC4KKyAqCisgKiAgICBUaGUgR01SRkIgY2FuIGJlIHJlZGVmaW5lZCBhcyBvZnRlbiBh cyB5b3UgbGlrZS4gWW91IGNvdWxkCisgKiAgICBhbHdheXMgdXNlIHRoZSBzYW1lIEdNUkZCLCB5 b3UgY291bGQgcmVkZWZpbmUgaXQgYmVmb3JlCisgKiAgICByZW5kZXJpbmcgZnJvbSBhIGRpZmZl cmVudCBndWVzdCBzY3JlZW4sIG9yIHlvdSBjb3VsZCBldmVuCisgKiAgICByZWRlZmluZSBpdCBi ZWZvcmUgZXZlcnkgYmxpdC4KKyAqCisgKiAgICBUaGVyZSBhcmUgbXVsdGlwbGUgd2F5cyB0byB1 c2UgdGhpcyBjb21tYW5kLiBUaGUgc2ltcGxlc3Qgd2F5IGlzCisgKiAgICB0byB1c2UgaXQgdG8g bW92ZSB0aGUgZnJhbWVidWZmZXIgZWl0aGVyIHRvIGVsc2V3aGVyZSBpbiB0aGUgR0ZCCisgKiAg ICAoQkFSMSkgbWVtb3J5IHJlZ2lvbiwgb3IgdG8gYSB1c2VyLWRlZmluZWQgR01SLiBUaGlzIGxl dHMgYQorICogICAgZHJpdmVyIHVzZSBhIGZyYW1lYnVmZmVyIGFsbG9jYXRlZCBlbnRpcmVseSBv dXQgb2Ygbm9ybWFsIHN5c3RlbQorICogICAgbWVtb3J5LCB3aGljaCB3ZSBlbmNvdXJhZ2UuCisg KgorICogICAgQW5vdGhlciB3YXkgdG8gdXNlIHRoaXMgY29tbWFuZCBpcyB0byBzZXQgdXAgYSBy aW5nIGJ1ZmZlciBvZgorICogICAgdXBkYXRlcyBpbiBHRkIgbWVtb3J5LiBJZiBhIGRyaXZlciB3 YW50cyB0byBlbnN1cmUgdGhhdCBubworICogICAgZnJhbWVzIGFyZSBza2lwcGVkIGJ5IHRoZSBT VkdBIGRldmljZSwgaXQgaXMgaW1wb3J0YW50IHRoYXQgdGhlCisgKiAgICBkcml2ZXIgbm90IG1v ZGlmeSB0aGUgc291cmNlIGRhdGEgZm9yIGEgYmxpdCB1bnRpbCB0aGUgZGV2aWNlIGlzCisgKiAg ICBkb25lIHByb2Nlc3NpbmcgdGhlIGNvbW1hbmQuIE9uZSBlZmZpY2llbnQgd2F5IHRvIGFjY29t cGxpc2gKKyAqICAgIHRoaXMgaXMgdG8gdXNlIGEgcmluZyBvZiBzbWFsbCBETUEgYnVmZmVycy4g RWFjaCBidWZmZXIgaXMgdXNlZAorICogICAgZm9yIG9uZSBibGl0LCB0aGVuIHdlIG1vdmUgb24g dG8gdGhlIG5leHQgYnVmZmVyIGluIHRoZQorICogICAgcmluZy4gVGhlIEZFTkNFIG1lY2hhbmlz bSBpcyB1c2VkIHRvIHByb3RlY3QgZWFjaCBidWZmZXIgZnJvbQorICogICAgcmUtdXNlIHVudGls IHRoZSBkZXZpY2UgaXMgZmluaXNoZWQgd2l0aCB0aGF0IGJ1ZmZlcidzCisgKiAgICBjb3JyZXNw b25kaW5nIGJsaXQuCisgKgorICogICAgVGhpcyBjb21tYW5kIGRvZXMgbm90IGFmZmVjdCB0aGUg bWVhbmluZyBvZiBTVkdBX0NNRF9VUERBVEUuCisgKiAgICBVUERBVEVzIGFsd2F5cyBvY2N1ciBm cm9tIHRoZSBsZWdhY3kgR0ZCIG1lbW9yeSBhcmVhLiBUaGlzCisgKiAgICBjb21tYW5kIGhhcyBu byBzdXBwb3J0IGZvciBwc2V1ZG9jb2xvciBHTVJGQnMuIEN1cnJlbnRseSBvbmx5CisgKiAgICB0 cnVlLWNvbG9yIDE1LCAxNiwgYW5kIDI0LWJpdCBkZXB0aHMgYXJlIHN1cHBvcnRlZC4gRnV0dXJl CisgKiAgICBkZXZpY2VzIG1heSBleHBvc2UgY2FwYWJpbGl0aWVzIGZvciBhZGRpdGlvbmFsIGZy YW1lYnVmZmVyCisgKiAgICBmb3JtYXRzLgorICoKKyAqICAgIFRoZSBkZWZhdWx0IEdNUkZCIHZh bHVlIGlzIHVuZGVmaW5lZC4gRHJpdmVycyBtdXN0IGFsd2F5cyBzZW5kCisgKiAgICB0aGlzIGNv bW1hbmQgYXQgbGVhc3Qgb25jZSBiZWZvcmUgcGVyZm9ybWluZyBhbnkgYmxpdCBmcm9tIHRoZQor ICogICAgR01SRkIuCisgKgorICogQXZhaWxhYmlsaXR5OgorICogICAgU1ZHQV9GSUZPX0NBUF9T Q1JFRU5fT0JKRUNUIG9yIFNWR0FfRklGT19DQVBfU0NSRUVOX09CSkVDVF8yCisgKi8KKwordHlw ZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1Y3QgeworICAgU1ZHQUd1 ZXN0UHRyICAgICAgICBwdHI7CisgICB1aW50MzIgICAgICAgICAgICAgIGJ5dGVzUGVyTGluZTsK KyAgIFNWR0FHTVJJbWFnZUZvcm1hdCAgZm9ybWF0OworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNr X2VuZC5oIgorU1ZHQUZpZm9DbWREZWZpbmVHTVJGQjsKKworCisvKgorICogU1ZHQV9DTURfQkxJ VF9HTVJGQl9UT19TQ1JFRU4gLS0KKyAqCisgKiAgICBUaGlzIGlzIGEgZ3Vlc3QtdG8taG9zdCBi bGl0LiBJdCBwZXJmb3JtcyBhIERNQSBvcGVyYXRpb24gdG8KKyAqICAgIGNvcHkgYSByZWN0YW5n dWxhciByZWdpb24gb2YgcGl4ZWxzIGZyb20gdGhlIGN1cnJlbnQgR01SRkIgdG8KKyAqICAgIGEg U2NyZWVuT2JqZWN0LgorICoKKyAqICAgIFRoZSBkZXN0aW5hdGlvbiBjb29yZGluYXRlIG1heSBi ZSBzcGVjaWZpZWQgcmVsYXRpdmUgdG8gYQorICogICAgc2NyZWVuJ3Mgb3JpZ2luLiAgVGhlIHBy b3ZpZGVkIHNjcmVlbiBJRCBtdXN0IGJlIHZhbGlkLgorICoKKyAqICAgIFRoZSBTVkdBIGRldmlj ZSBpcyBndWFyYW50ZWVkIHRvIGZpbmlzaCByZWFkaW5nIGZyb20gdGhlIEdNUkZCCisgKiAgICBi eSB0aGUgdGltZSBhbnkgc3Vic2VxdWVudCBGRU5DRSBjb21tYW5kcyBhcmUgcmVhY2hlZC4KKyAq CisgKiAgICBUaGlzIGNvbW1hbmQgY29uc3VtZXMgYW4gYW5ub3RhdGlvbi4gU2VlIHRoZQorICog ICAgU1ZHQV9DTURfQU5OT1RBVElPTl8qIGNvbW1hbmRzIGZvciBkZXRhaWxzLgorICoKKyAqIEF2 YWlsYWJpbGl0eToKKyAqICAgIFNWR0FfRklGT19DQVBfU0NSRUVOX09CSkVDVCBvciBTVkdBX0ZJ Rk9fQ0FQX1NDUkVFTl9PQkpFQ1RfMgorICovCisKK3R5cGVkZWYKKyNpbmNsdWRlICJ2bXdhcmVf cGFja19iZWdpbi5oIgorc3RydWN0IHsKKyAgIFNWR0FTaWduZWRQb2ludCAgc3JjT3JpZ2luOwor ICAgU1ZHQVNpZ25lZFJlY3QgICBkZXN0UmVjdDsKKyAgIHVpbnQzMiAgICAgICAgICAgZGVzdFNj cmVlbklkOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZHQUZpZm9DbWRCbGl0 R01SRkJUb1NjcmVlbjsKKworCisvKgorICogU1ZHQV9DTURfQkxJVF9TQ1JFRU5fVE9fR01SRkIg LS0KKyAqCisgKiAgICBUaGlzIGlzIGEgaG9zdC10by1ndWVzdCBibGl0LiBJdCBwZXJmb3JtcyBh IERNQSBvcGVyYXRpb24gdG8KKyAqICAgIGNvcHkgYSByZWN0YW5ndWxhciByZWdpb24gb2YgcGl4 ZWxzIGZyb20gYSBzaW5nbGUgU2NyZWVuT2JqZWN0CisgKiAgICBiYWNrIHRvIHRoZSBjdXJyZW50 IEdNUkZCLgorICoKKyAqICAgIFRoZSBzb3VyY2UgY29vcmRpbmF0ZSBpcyBzcGVjaWZpZWQgcmVs YXRpdmUgdG8gYSBzY3JlZW4ncworICogICAgb3JpZ2luLiAgVGhlIHByb3ZpZGVkIHNjcmVlbiBJ RCBtdXN0IGJlIHZhbGlkLiBJZiBhbnkgcGFyYW1ldGVycworICogICAgYXJlIGludmFsaWQsIHRo ZSByZXN1bHRpbmcgcGl4ZWwgdmFsdWVzIGFyZSB1bmRlZmluZWQuCisgKgorICogICAgVGhlIFNW R0EgZGV2aWNlIGlzIGd1YXJhbnRlZWQgdG8gZmluaXNoIHdyaXRpbmcgdG8gdGhlIEdNUkZCIGJ5 CisgKiAgICB0aGUgdGltZSBhbnkgc3Vic2VxdWVudCBGRU5DRSBjb21tYW5kcyBhcmUgcmVhY2hl ZC4KKyAqCisgKiBBdmFpbGFiaWxpdHk6CisgKiAgICBTVkdBX0ZJRk9fQ0FQX1NDUkVFTl9PQkpF Q1Qgb3IgU1ZHQV9GSUZPX0NBUF9TQ1JFRU5fT0JKRUNUXzIKKyAqLworCit0eXBlZGVmCisjaW5j bHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7CisgICBTVkdBU2lnbmVkUG9pbnQg IGRlc3RPcmlnaW47CisgICBTVkdBU2lnbmVkUmVjdCAgIHNyY1JlY3Q7CisgICB1aW50MzIgICAg ICAgICAgIHNyY1NjcmVlbklkOworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5oIgorU1ZH QUZpZm9DbWRCbGl0U2NyZWVuVG9HTVJGQjsKKworCisvKgorICogU1ZHQV9DTURfQU5OT1RBVElP Tl9GSUxMIC0tCisgKgorICogICAgVGhlIGFubm90YXRpb24gY29tbWFuZHMgaGF2ZSBiZWVuIGRl cHJlY2F0ZWQsIHNob3VsZCBub3QgYmUgdXNlZAorICogICAgYnkgbmV3IGRyaXZlcnMuICBUaGV5 IHVzZWQgdG8gcHJvdmlkZSBwZXJmb3JtYW5jZSBoaW50cyB0byB0aGUgU1ZHQQorICogICAgZGV2 aWNlIGFib3V0IHRoZSBjb250ZW50IG9mIHNjcmVlbiB1cGRhdGVzLCBidXQgbmV3ZXIgU1ZHQSBk ZXZpY2VzCisgKiAgICBpZ25vcmUgdGhlc2UuCisgKgorICogQXZhaWxhYmlsaXR5OgorICogICAg U1ZHQV9GSUZPX0NBUF9TQ1JFRU5fT0JKRUNUIG9yIFNWR0FfRklGT19DQVBfU0NSRUVOX09CSkVD VF8yCisgKi8KKwordHlwZWRlZgorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2JlZ2luLmgiCitzdHJ1 Y3QgeworICAgU1ZHQUNvbG9yQkdSWCAgY29sb3I7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tf ZW5kLmgiCitTVkdBRmlmb0NtZEFubm90YXRpb25GaWxsOworCisKKy8qCisgKiBTVkdBX0NNRF9B Tk5PVEFUSU9OX0NPUFkgLS0KKyAqCisgKiAgICBUaGUgYW5ub3RhdGlvbiBjb21tYW5kcyBoYXZl IGJlZW4gZGVwcmVjYXRlZCwgc2hvdWxkIG5vdCBiZSB1c2VkCisgKiAgICBieSBuZXcgZHJpdmVy cy4gIFRoZXkgdXNlZCB0byBwcm92aWRlIHBlcmZvcm1hbmNlIGhpbnRzIHRvIHRoZSBTVkdBCisg KiAgICBkZXZpY2UgYWJvdXQgdGhlIGNvbnRlbnQgb2Ygc2NyZWVuIHVwZGF0ZXMsIGJ1dCBuZXdl ciBTVkdBIGRldmljZXMKKyAqICAgIGlnbm9yZSB0aGVzZS4KKyAqCisgKiBBdmFpbGFiaWxpdHk6 CisgKiAgICBTVkdBX0ZJRk9fQ0FQX1NDUkVFTl9PQkpFQ1Qgb3IgU1ZHQV9GSUZPX0NBUF9TQ1JF RU5fT0JKRUNUXzIKKyAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4u aCIKK3N0cnVjdCB7CisgICBTVkdBU2lnbmVkUG9pbnQgIHNyY09yaWdpbjsKKyAgIHVpbnQzMiAg ICAgICAgICAgc3JjU2NyZWVuSWQ7Cit9CisjaW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitT VkdBRmlmb0NtZEFubm90YXRpb25Db3B5OworCisKKy8qCisgKiBTVkdBX0NNRF9ERUZJTkVfR01S MiAtLQorICoKKyAqICAgIERlZmluZSBndWVzdCBtZW1vcnkgcmVnaW9uIHYyLiAgU2VlIHRoZSBk ZXNjcmlwdGlvbiBvZiBHTVJzIGFib3ZlLgorICoKKyAqIEF2YWlsYWJpbGl0eToKKyAqICAgIFNW R0FfQ0FQX0dNUjIKKyAqLworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4u aCIKK3N0cnVjdCB7CisgICB1aW50MzIgZ21ySWQ7CisgICB1aW50MzIgbnVtUGFnZXM7Cit9Cisj aW5jbHVkZSAidm13YXJlX3BhY2tfZW5kLmgiCitTVkdBRmlmb0NtZERlZmluZUdNUjI7CisKKwor LyoKKyAqIFNWR0FfQ01EX1JFTUFQX0dNUjIgLS0KKyAqCisgKiAgICBSZW1hcCBndWVzdCBtZW1v cnkgcmVnaW9uIHYyLiAgU2VlIHRoZSBkZXNjcmlwdGlvbiBvZiBHTVJzIGFib3ZlLgorICoKKyAq ICAgIFRoaXMgY29tbWFuZCBhbGxvd3MgZ3Vlc3QgdG8gbW9kaWZ5IGEgcG9ydGlvbiBvZiBhbiBl eGlzdGluZyBHTVIgYnkKKyAqICAgIGludmFsaWRhdGluZyBpdCBvciByZWFzc2lnbmluZyBpdCB0 byBkaWZmZXJlbnQgZ3Vlc3QgcGh5c2ljYWwgcGFnZXMuCisgKiAgICBUaGUgcGFnZXMgYXJlIGlk ZW50aWZpZWQgYnkgcGh5c2ljYWwgcGFnZSBudW1iZXIgKFBQTikuICBUaGUgcGFnZXMKKyAqICAg IGFyZSBhc3N1bWVkIHRvIGJlIHBpbm5lZCBhbmQgdmFsaWQgZm9yIERNQSBvcGVyYXRpb25zLgor ICoKKyAqICAgIERlc2NyaXB0aW9uIG9mIGNvbW1hbmQgZmxhZ3M6CisgKgorICogICAgU1ZHQV9S RU1BUF9HTVIyX1ZJQV9HTVI6IElmIGVuYWJsZWQsIHJlZmVyZW5jZXMgYSBQUE4gbGlzdCBpbiBh IEdNUi4KKyAqICAgICAgIFRoZSBQUE4gbGlzdCBtdXN0IG5vdCBvdmVybGFwIHdpdGggdGhlIHJl bWFwIHJlZ2lvbiAodGhpcyBjYW4gYmUKKyAqICAgICAgIGhhbmRsZWQgdHJpdmlhbGx5IGJ5IHJl ZmVyZW5jaW5nIGEgc2VwYXJhdGUgR01SKS4gIElmIGZsYWcgaXMKKyAqICAgICAgIGRpc2FibGVk LCBQUE4gbGlzdCBpcyBhcHBlbmRlZCB0byBTVkdBUmVtYXBHTVIgY29tbWFuZC4KKyAqCisgKiAg ICBTVkdBX1JFTUFQX0dNUjJfUFBONjQ6IElmIHNldCwgUFBOIGxpc3QgaXMgaW4gUFBONjQgZm9y bWF0LCBvdGhlcndpc2UKKyAqICAgICAgIGl0IGlzIGluIFBQTjMyIGZvcm1hdC4KKyAqCisgKiAg ICBTVkdBX1JFTUFQX0dNUjJfU0lOR0xFX1BQTjogSWYgc2V0LCBQUE4gbGlzdCBjb250YWlucyBh IHNpbmdsZSBlbnRyeS4KKyAqICAgICAgIEEgc2luZ2xlIFBQTiBjYW4gYmUgdXNlZCB0byBpbnZh bGlkYXRlIGEgcG9ydGlvbiBvZiBhIEdNUiBvcgorICogICAgICAgbWFwIGl0IHRvIHRvIGEgc2lu Z2xlIGd1ZXN0IHNjcmF0Y2ggcGFnZS4KKyAqCisgKiBBdmFpbGFiaWxpdHk6CisgKiAgICBTVkdB X0NBUF9HTVIyCisgKi8KKwordHlwZWRlZiBlbnVtIHsKKyAgIFNWR0FfUkVNQVBfR01SMl9QUE4z MiAgICAgICAgID0gMCwKKyAgIFNWR0FfUkVNQVBfR01SMl9WSUFfR01SICAgICAgID0gKDEgPDwg MCksCisgICBTVkdBX1JFTUFQX0dNUjJfUFBONjQgICAgICAgICA9ICgxIDw8IDEpLAorICAgU1ZH QV9SRU1BUF9HTVIyX1NJTkdMRV9QUE4gICAgPSAoMSA8PCAyKSwKK30gU1ZHQVJlbWFwR01SMkZs YWdzOworCit0eXBlZGVmCisjaW5jbHVkZSAidm13YXJlX3BhY2tfYmVnaW4uaCIKK3N0cnVjdCB7 CisgICB1aW50MzIgZ21ySWQ7CisgICBTVkdBUmVtYXBHTVIyRmxhZ3MgZmxhZ3M7CisgICB1aW50 MzIgb2Zmc2V0UGFnZXM7IC8qIG9mZnNldCBpbiBwYWdlcyB0byBiZWdpbiByZW1hcCAqLworICAg dWludDMyIG51bVBhZ2VzOyAvKiBudW1iZXIgb2YgcGFnZXMgdG8gcmVtYXAgKi8KKyAgIC8qCisg ICAgKiBGb2xsb3dlZCBieSBhZGRpdGlvbmFsIGRhdGEgZGVwZW5kaW5nIG9uIFNWR0FSZW1hcEdN UjJGbGFncy4KKyAgICAqCisgICAgKiBJZiBmbGFnIFNWR0FfUkVNQVBfR01SMl9WSUFfR01SIGlz IHNldCwgc2luZ2xlIFNWR0FHdWVzdFB0ciBmb2xsb3dzLgorICAgICogT3RoZXJ3aXNlIGFuIGFy cmF5IG9mIHBhZ2UgZGVzY3JpcHRvcnMgaW4gUFBOMzIgb3IgUFBONjQgZm9ybWF0CisgICAgKiAo YWNjb3JkaW5nIHRvIGZsYWcgU1ZHQV9SRU1BUF9HTVIyX1BQTjY0KSBmb2xsb3dzLiAgSWYgZmxh ZworICAgICogU1ZHQV9SRU1BUF9HTVIyX1NJTkdMRV9QUE4gaXMgc2V0LCBhcnJheSBjb250YWlu cyBhIHNpbmdsZSBlbnRyeS4KKyAgICAqLworfQorI2luY2x1ZGUgInZtd2FyZV9wYWNrX2VuZC5o IgorU1ZHQUZpZm9DbWRSZW1hcEdNUjI7CisKKworLyoKKyAqIFNpemUgb2YgU1ZHQSBkZXZpY2Ug bWVtb3J5IHN1Y2ggYXMgZnJhbWUgYnVmZmVyIGFuZCBGSUZPLgorICovCisjZGVmaW5lIFNWR0Ff VlJBTV9NSU5fU0laRSAgICAgICAgICAgICAoNCAqIDY0MCAqIDQ4MCkgLyogYnl0ZXMgKi8KKyNk ZWZpbmUgU1ZHQV9WUkFNX01JTl9TSVpFXzNEICAgICAgICgxNiAqIDEwMjQgKiAxMDI0KQorI2Rl ZmluZSBTVkdBX1ZSQU1fTUFYX1NJWkUgICAgICAgICAoMTI4ICogMTAyNCAqIDEwMjQpCisjZGVm aW5lIFNWR0FfTUVNT1JZX1NJWkVfTUFYICAgICAgKDEwMjQgKiAxMDI0ICogMTAyNCkKKyNkZWZp bmUgU1ZHQV9GSUZPX1NJWkVfTUFYICAgICAgICAgICAoMiAqIDEwMjQgKiAxMDI0KQorI2RlZmlu ZSBTVkdBX0dSQVBISUNTX01FTU9SWV9LQl9NSU4gICAgICAgKDMyICogMTAyNCkKKyNkZWZpbmUg U1ZHQV9HUkFQSElDU19NRU1PUllfS0JfTUFYICAgICAgICgyICogMTAyNCAqIDEwMjQpCisjZGVm aW5lIFNWR0FfR1JBUEhJQ1NfTUVNT1JZX0tCX0RFRkFVTFQgICAoMjU2ICogMTAyNCkKKworI2Rl ZmluZSBTVkdBX1ZSQU1fU0laRV9XMksgICAgICAgICAgKDY0ICogMTAyNCAqIDEwMjQpIC8qIDY0 IE1CICovCisKKy8qCisgKiBUbyBzaW1wbGlmeSBhdXRvRGV0ZWN0IGRpc3BsYXkgY29uZmlndXJh dGlvbiwgc3VwcG9ydCBhIG1pbmltdW0gb2YKKyAqIHR3byAxOTIweDEyMDAgbW9uaXRvcnMsIDMy YnBwLCBzaWRlLWJ5LXNpZGUsIG9wdGlvbmFsbHkgcm90YXRlZDoKKyAqICAgbnVtRGlzcGxheXMg PSAyCisgKiAgIG1heFdpZHRoID0gbnVtRGlzcGxheSAqIDE5MjAgPSAzODQwCisgKiAgIG1heEhl aWdodCA9IHJvdGF0ZWQgd2lkdGggb2Ygc2luZ2xlIG1vbml0b3IgPSAxOTIwCisgKiAgIHZyYW1T aXplID0gbWF4V2lkdGggKiBtYXhIZWlnaHQgKiA0ID0gMjk0OTEyMDAKKyAqLworI2RlZmluZSBT VkdBX1ZSQU1fU0laRV9BVVRPREVURUNUICAgKDMyICogMTAyNCAqIDEwMjQpCisKKyNpZiBkZWZp bmVkKFZNWDg2X1NFUlZFUikKKyNkZWZpbmUgU1ZHQV9WUkFNX1NJWkUgICAgICAgICAgICAgICAo NCAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBTVkdBX1ZSQU1fU0laRV8zRCAgICAgICAgICAgKDY0 ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIFNWR0FfRklGT19TSVpFICAgICAgICAgICAgICAgICAg ICAoMjU2ICogMTAyNCkKKyNkZWZpbmUgU1ZHQV9GSUZPX1NJWkVfM0QgICAgICAgICAgICAgICAg ICg1MTYgKiAxMDI0KQorI2RlZmluZSBTVkdBX01FTU9SWV9TSVpFX0RFRkFVTFQgICAoMTYwICog MTAyNCAqIDEwMjQpCisjZGVmaW5lIFNWR0FfQVVUT0RFVEVDVF9ERUZBVUxUICAgICAgICAgICAg ICAgICAgRkFMU0UKKyNlbHNlCisjZGVmaW5lIFNWR0FfVlJBTV9TSVpFICAgICAgICAgICAgICAo MTYgKiAxMDI0ICogMTAyNCkKKyNkZWZpbmUgU1ZHQV9WUkFNX1NJWkVfM0QgICAgICAgICAgIFNW R0FfVlJBTV9NQVhfU0laRQorI2RlZmluZSBTVkdBX0ZJRk9fU0laRSAgICAgICAgICAgICAgICgy ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIFNWR0FfRklGT19TSVpFXzNEICAgICAgICAgICAgICAg U1ZHQV9GSUZPX1NJWkUKKyNkZWZpbmUgU1ZHQV9NRU1PUllfU0laRV9ERUZBVUxUICAgKDc2OCAq IDEwMjQgKiAxMDI0KQorI2RlZmluZSBTVkdBX0FVVE9ERVRFQ1RfREVGQVVMVCAgICAgICAgICAg ICAgICAgICBUUlVFCisjZW5kaWYKKworI2RlZmluZSBTVkdBX0ZJRk9fU0laRV9HQk9CSkVDVFMg ICAgICAgICAgKDI1NiAqIDEwMjQpCisjZGVmaW5lIFNWR0FfVlJBTV9TSVpFX0dCT0JKRUNUUyAg ICAgKDQgKiAxMDI0ICogMTAyNCkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L2RldmljZV9pbmNsdWRlL3N2Z2FfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvZGV2aWNlX2luY2x1ZGUvc3ZnYV90eXBlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjJlOGJhNGQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L2RldmljZV9pbmNsdWRlL3N2Z2FfdHlwZXMuaApAQCAtMCwwICsxLDQ2IEBACisvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor ICogQ29weXJpZ2h0IDIwMTUgVk13YXJlLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK KyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg cGVyc29uCisgKiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0 ZWQgZG9jdW1lbnRhdGlvbgorICogZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0 aGUgU29mdHdhcmUgd2l0aG91dAorICogcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxp bWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksCisgKiBtb2RpZnksIG1lcmdlLCBwdWJs aXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMKKyAqIG9mIHRo ZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlz CisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp b25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np b24gbm90aWNlIHNoYWxsIGJlCisgKiBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50 aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJP VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyAqIEVYUFJFU1Mg T1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBP RgorICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB TkQKKyAqIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1Ig Q09QWVJJR0hUIEhPTERFUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S IE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgorICogQUNUSU9OIE9GIENPTlRSQUNULCBU T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJ T04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUK KyAqIFNPRlRXQVJFLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLworI2lmbmRlZiBfVk1fQkFTSUNfVFlQRVNfSF8KKyNkZWZp bmUgX1ZNX0JBU0lDX1RZUEVTX0hfCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisKK3R5cGVk ZWYgdTMyIHVpbnQzMjsKK3R5cGVkZWYgczMyIGludDMyOwordHlwZWRlZiB1NjQgdWludDY0Owor dHlwZWRlZiB1MTYgdWludDE2OwordHlwZWRlZiBzMTYgaW50MTY7Cit0eXBlZGVmIHU4ICB1aW50 ODsKK3R5cGVkZWYgczggIGludDg7CisKK3R5cGVkZWYgdWludDY0IFBBOwordHlwZWRlZiB1aW50 MzIgUFBOOwordHlwZWRlZiB1aW50NjQgUFBONjQ7CisKK3R5cGVkZWYgYm9vbCBCb29sOworCisj ZGVmaW5lIE1BWF9VSU5UMzIgVTMyX01BWAorI2RlZmluZSBNQVhfVUlOVDE2IFUxNl9NQVgKKwor I2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L2RldmljZV9pbmNsdWRl L3ZtX2Jhc2ljX3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L2RldmljZV9pbmNsdWRl L3ZtX2Jhc2ljX3R5cGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTIw ZWFiOAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvZGV2aWNlX2lu Y2x1ZGUvdm1fYmFzaWNfdHlwZXMuaApAQCAtMCwwICsxLDIxIEBACisjaWZuZGVmIF9WTV9CQVNJ Q19UWVBFU19IXworI2RlZmluZSBfVk1fQkFTSUNfVFlQRVNfSF8KKyNpbmNsdWRlIDxsaW51eC9r ZXJuZWwuaD4KKwordHlwZWRlZiB1MzIgdWludDMyOwordHlwZWRlZiBzMzIgaW50MzI7Cit0eXBl ZGVmIHU2NCB1aW50NjQ7Cit0eXBlZGVmIHUxNiB1aW50MTY7Cit0eXBlZGVmIHMxNiBpbnQxNjsK K3R5cGVkZWYgdTggIHVpbnQ4OwordHlwZWRlZiBzOCAgaW50ODsKKwordHlwZWRlZiB1aW50NjQg UEE7Cit0eXBlZGVmIHVpbnQzMiBQUE47Cit0eXBlZGVmIHVpbnQ2NCBQUE42NDsKKwordHlwZWRl ZiBib29sIEJvb2w7CisKKyNkZWZpbmUgTUFYX1VJTlQzMiBVMzJfTUFYCisKKyNlbmRpZgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9kZXZpY2VfaW5jbHVkZS92bXdhcmVfcGFj a19iZWdpbi5oIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9kZXZpY2VfaW5jbHVkZS92bXdhcmVf cGFja19iZWdpbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlN2IwY2UK LS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L2RldmljZV9pbmNsdWRl L3Ztd2FyZV9wYWNrX2JlZ2luLmgKQEAgLTAsMCArMSwyNSBAQAorLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAy MDE1IFZNd2FyZSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9u IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgorICogb2J0 YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRp b24KKyAqIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdp dGhvdXQKKyAqIHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSBy aWdodHMgdG8gdXNlLCBjb3B5LAorICogbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0 ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzCisgKiBvZiB0aGUgU29mdHdhcmUsIGFu ZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVk IHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBU aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFs bCBiZQorICogaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBv ZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIs IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisgKiBFWFBSRVNTIE9SIElNUExJRUQsIElO Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5U QUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECisgKiBOT05JTkZS SU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xE RVJTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJ VFksIFdIRVRIRVIgSU4gQU4KKyAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJ U0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNP RlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCisgKiBTT0ZUV0FSRS4K KyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KKyNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC9kZXZpY2VfaW5jbHVkZS92bXdhcmVfcGFja19lbmQuaCBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvZGV2aWNlX2luY2x1ZGUvdm13YXJlX3BhY2tfZW5kLmgKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTJlNDQwZQotLS0gL2Rldi9udWxsCisrKyBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvZGV2aWNlX2luY2x1ZGUvdm13YXJlX3BhY2tfZW5kLmgK QEAgLTAsMCArMSwyNSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAyMDE1IFZNd2FyZSwgSW5jLiAgQWxs IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBm cmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgorICogb2J0YWluaW5nIGEgY29weSBvZiB0aGlz IHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24KKyAqIGZpbGVzICh0aGUgIlNv ZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQKKyAqIHJlc3RyaWN0aW9u LCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LAor ICogbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29y IHNlbGwgY29waWVzCisgKiBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0 byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQorICogaW5jbHVkZWQgaW4g YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgor ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg QU5ZIEtJTkQsCisgKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECisgKiBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5U IFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTCisgKiBCRSBMSUFCTEUgRk9S IEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4KKyAq IEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VU IE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1Ig T1RIRVIgREVBTElOR1MgSU4gVEhFCisgKiBTT0ZUV0FSRS4KKyAqCisgKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK19fcGFja2VkCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3N2Z2EzZF9yZWcuaCBiL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvc3ZnYTNkX3JlZy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBmNGFmOWYxLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvc3ZnYTNkX3Jl Zy5oCisrKyAvZGV2L251bGwKQEAgLTEsMjY3NSArMCwwIEBACi0vKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IDE5 OTgtMjAxNCBWTXdhcmUsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUGVybWlz c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KLSAq IG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVu dGF0aW9uCi0gKiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2Fy ZSB3aXRob3V0Ci0gKiByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0 aGUgcmlnaHRzIHRvIHVzZSwgY29weSwKLSAqIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3Ry aWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcwotICogb2YgdGhlIFNvZnR3YXJl LCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKLSAqIGZ1cm5p c2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgot ICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug c2hhbGwgYmUKLSAqIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv bnMgb2YgdGhlIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMg SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotICogRVhQUkVTUyBPUiBJTVBMSUVE LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0gKiBNRVJD SEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAotICogTk9O SU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg SE9MREVSUwotICogQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElB QklMSVRZLCBXSEVUSEVSIElOIEFOCi0gKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI RVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgotICogQ09OTkVDVElPTiBXSVRIIFRI RSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQotICogU09GVFdB UkUuCi0gKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCi0KLS8qCi0gKiBzdmdhM2RfcmVnLmggLS0KLSAqCi0gKiAgICAgICBTVkdB IDNEIGhhcmR3YXJlIGRlZmluaXRpb25zCi0gKi8KLQotI2lmbmRlZiBfU1ZHQTNEX1JFR19IXwot I2RlZmluZSBfU1ZHQTNEX1JFR19IXwotCi0jaW5jbHVkZSAic3ZnYV9yZWcuaCIKLQotdHlwZWRl ZiB1aW50MzIgUFBOOwotdHlwZWRlZiB1NjQgUFBONjQ7Ci0KLS8qCi0gKiAzRCBIYXJkd2FyZSBW ZXJzaW9uCi0gKgotICogICBUaGUgaGFyZHdhcmUgdmVyc2lvbiBpcyBzdG9yZWQgaW4gdGhlIFNW R0FfRklGT18zRF9IV1ZFUlNJT04gZmlmbwotICogICByZWdpc3Rlci4gICBJcyBzZXQgYnkgdGhl IGhvc3QgYW5kIHJlYWQgYnkgdGhlIGd1ZXN0LiAgVGhpcyBsZXRzCi0gKiAgIHVzIG1ha2UgbmV3 IGd1ZXN0IGRyaXZlcnMgd2hpY2ggYXJlIGJhY2t3YXJkcy1jb21wYXRpYmxlIHdpdGggb2xkCi0g KiAgIFNWR0EgaGFyZHdhcmUgcmV2aXNpb25zLiAgSXQgZG9lcyBub3QgbGV0IHVzIHN1cHBvcnQg b2xkIGd1ZXN0Ci0gKiAgIGRyaXZlcnMuICBHb29kIGVub3VnaCBmb3Igbm93LgotICoKLSAqLwot Ci0jZGVmaW5lIFNWR0EzRF9NQUtFX0hXVkVSU0lPTihtYWpvciwgbWlub3IpICAgICAgKCgobWFq b3IpIDw8IDE2KSB8ICgobWlub3IpICYgMHhGRikpCi0jZGVmaW5lIFNWR0EzRF9NQUpPUl9IV1ZF UlNJT04odmVyc2lvbikgICAgICAgICAgKCh2ZXJzaW9uKSA+PiAxNikKLSNkZWZpbmUgU1ZHQTNE X01JTk9SX0hXVkVSU0lPTih2ZXJzaW9uKSAgICAgICAgICAoKHZlcnNpb24pICYgMHhGRikKLQot dHlwZWRlZiBlbnVtIHsKLSAgIFNWR0EzRF9IV1ZFUlNJT05fV1M1X1JDMSAgID0gU1ZHQTNEX01B S0VfSFdWRVJTSU9OKDAsIDEpLAotICAgU1ZHQTNEX0hXVkVSU0lPTl9XUzVfUkMyICAgPSBTVkdB M0RfTUFLRV9IV1ZFUlNJT04oMCwgMiksCi0gICBTVkdBM0RfSFdWRVJTSU9OX1dTNTFfUkMxICA9 IFNWR0EzRF9NQUtFX0hXVkVSU0lPTigwLCAzKSwKLSAgIFNWR0EzRF9IV1ZFUlNJT05fV1M2X0Ix ICAgID0gU1ZHQTNEX01BS0VfSFdWRVJTSU9OKDEsIDEpLAotICAgU1ZHQTNEX0hXVkVSU0lPTl9G VVNJT05fMTEgPSBTVkdBM0RfTUFLRV9IV1ZFUlNJT04oMSwgNCksCi0gICBTVkdBM0RfSFdWRVJT SU9OX1dTNjVfQjEgICA9IFNWR0EzRF9NQUtFX0hXVkVSU0lPTigyLCAwKSwKLSAgIFNWR0EzRF9I V1ZFUlNJT05fV1M4X0IxICAgID0gU1ZHQTNEX01BS0VfSFdWRVJTSU9OKDIsIDEpLAotICAgU1ZH QTNEX0hXVkVSU0lPTl9DVVJSRU5UICAgPSBTVkdBM0RfSFdWRVJTSU9OX1dTOF9CMSwKLX0gU1ZH QTNkSGFyZHdhcmVWZXJzaW9uOwotCi0vKgotICogR2VuZXJpYyBUeXBlcwotICovCi0KLXR5cGVk ZWYgdWludDMyIFNWR0EzZEJvb2w7IC8qIDMyLWJpdCBCb29sIGRlZmluaXRpb24gKi8KLSNkZWZp bmUgU1ZHQTNEX05VTV9DTElQUExBTkVTICAgICAgICAgICAgICAgICAgIDYKLSNkZWZpbmUgU1ZH QTNEX01BWF9TSU1VTFRBTkVPVVNfUkVOREVSX1RBUkdFVFMgIDgKLSNkZWZpbmUgU1ZHQTNEX01B WF9DT05URVhUX0lEUyAgICAgICAgICAgICAgICAgIDI1NgotI2RlZmluZSBTVkdBM0RfTUFYX1NV UkZBQ0VfSURTICAgICAgICAgICAgICAgICAgKDMyICogMTAyNCkKLQotI2RlZmluZSBTVkdBM0Rf TlVNX1RFWFRVUkVfVU5JVFMgICAgICAgICAgICAgICAgMzIKLSNkZWZpbmUgU1ZHQTNEX05VTV9M SUdIVFMgICAgICAgICAgICAgICAgICAgICAgIDgKLQotLyoKLSAqIFN1cmZhY2UgZm9ybWF0cy4K LSAqCi0gKiBJZiB5b3UgbW9kaWZ5IHRoaXMgbGlzdCwgYmUgc3VyZSB0byBrZWVwIEdMVXRpbC5j IGluIHN5bmMuIEl0Ci0gKiBpbmNsdWRlcyB0aGUgaW50ZXJuYWwgZm9ybWF0IGRlZmluaXRpb24g b2YgZWFjaCBzdXJmYWNlIGluCi0gKiBHTFV0aWxfQ29udmVydFN1cmZhY2VGb3JtYXQsIGFuZCBp dCBjb250YWlucyBhIHRhYmxlIG9mCi0gKiBodW1hbi1yZWFkYWJsZSBuYW1lcyBpbiBHTFV0aWxf R2V0Rm9ybWF0TmFtZS4KLSAqLwotCi10eXBlZGVmIGVudW0gU1ZHQTNkU3VyZmFjZUZvcm1hdCB7 Ci0gICBTVkdBM0RfRk9STUFUX01JTiAgICAgICAgICAgICAgICAgICA9IDAsCi0gICBTVkdBM0Rf Rk9STUFUX0lOVkFMSUQgICAgICAgICAgICAgICA9IDAsCi0KLSAgIFNWR0EzRF9YOFI4RzhCOCAg ICAgICAgICAgICAgICAgICAgID0gMSwKLSAgIFNWR0EzRF9BOFI4RzhCOCAgICAgICAgICAgICAg ICAgICAgID0gMiwKLQotICAgU1ZHQTNEX1I1RzZCNSAgICAgICAgICAgICAgICAgICAgICAgPSAz LAotICAgU1ZHQTNEX1gxUjVHNUI1ICAgICAgICAgICAgICAgICAgICAgPSA0LAotICAgU1ZHQTNE X0ExUjVHNUI1ICAgICAgICAgICAgICAgICAgICAgPSA1LAotICAgU1ZHQTNEX0E0UjRHNEI0ICAg ICAgICAgICAgICAgICAgICAgPSA2LAotCi0gICBTVkdBM0RfWl9EMzIgICAgICAgICAgICAgICAg ICAgICAgICA9IDcsCi0gICBTVkdBM0RfWl9EMTYgICAgICAgICAgICAgICAgICAgICAgICA9IDgs Ci0gICBTVkdBM0RfWl9EMjRTOCAgICAgICAgICAgICAgICAgICAgICA9IDksCi0gICBTVkdBM0Rf Wl9EMTVTMSAgICAgICAgICAgICAgICAgICAgICA9IDEwLAotCi0gICBTVkdBM0RfTFVNSU5BTkNF OCAgICAgICAgICAgICAgICAgICA9IDExLAotICAgU1ZHQTNEX0xVTUlOQU5DRTRfQUxQSEE0ICAg ICAgICAgICAgPSAxMiwKLSAgIFNWR0EzRF9MVU1JTkFOQ0UxNiAgICAgICAgICAgICAgICAgID0g MTMsCi0gICBTVkdBM0RfTFVNSU5BTkNFOF9BTFBIQTggICAgICAgICAgICA9IDE0LAotCi0gICBT VkdBM0RfRFhUMSAgICAgICAgICAgICAgICAgICAgICAgICA9IDE1LAotICAgU1ZHQTNEX0RYVDIg ICAgICAgICAgICAgICAgICAgICAgICAgPSAxNiwKLSAgIFNWR0EzRF9EWFQzICAgICAgICAgICAg ICAgICAgICAgICAgID0gMTcsCi0gICBTVkdBM0RfRFhUNCAgICAgICAgICAgICAgICAgICAgICAg ICA9IDE4LAotICAgU1ZHQTNEX0RYVDUgICAgICAgICAgICAgICAgICAgICAgICAgPSAxOSwKLQot ICAgU1ZHQTNEX0JVTVBVOFY4ICAgICAgICAgICAgICAgICAgICAgPSAyMCwKLSAgIFNWR0EzRF9C VU1QTDZWNVU1ICAgICAgICAgICAgICAgICAgID0gMjEsCi0gICBTVkdBM0RfQlVNUFg4TDhWOFU4 ICAgICAgICAgICAgICAgICA9IDIyLAotICAgU1ZHQTNEX0JVTVBMOFY4VTggICAgICAgICAgICAg ICAgICAgPSAyMywKLQotICAgU1ZHQTNEX0FSR0JfUzEwRTUgICAgICAgICAgICAgICAgICAgPSAy NCwgICAvKiAxNi1iaXQgZmxvYXRpbmctcG9pbnQgQVJHQiAqLwotICAgU1ZHQTNEX0FSR0JfUzIz RTggICAgICAgICAgICAgICAgICAgPSAyNSwgICAvKiAzMi1iaXQgZmxvYXRpbmctcG9pbnQgQVJH QiAqLwotCi0gICBTVkdBM0RfQTJSMTBHMTBCMTAgICAgICAgICAgICAgICAgICA9IDI2LAotCi0g ICAvKiBzaWduZWQgZm9ybWF0cyAqLwotICAgU1ZHQTNEX1Y4VTggICAgICAgICAgICAgICAgICAg ICAgICAgPSAyNywKLSAgIFNWR0EzRF9ROFc4VjhVOCAgICAgICAgICAgICAgICAgICAgID0gMjgs Ci0gICBTVkdBM0RfQ3hWOFU4ICAgICAgICAgICAgICAgICAgICAgICA9IDI5LAotCi0gICAvKiBt aXhlZCBmb3JtYXRzICovCi0gICBTVkdBM0RfWDhMOFY4VTggICAgICAgICAgICAgICAgICAgICA9 IDMwLAotICAgU1ZHQTNEX0EyVzEwVjEwVTEwICAgICAgICAgICAgICAgICAgPSAzMSwKLQotICAg U1ZHQTNEX0FMUEhBOCAgICAgICAgICAgICAgICAgICAgICAgPSAzMiwKLQotICAgLyogU2luZ2xl LSBhbmQgZHVhbC1jb21wb25lbnQgZmxvYXRpbmcgcG9pbnQgZm9ybWF0cyAqLwotICAgU1ZHQTNE X1JfUzEwRTUgICAgICAgICAgICAgICAgICAgICAgPSAzMywKLSAgIFNWR0EzRF9SX1MyM0U4ICAg ICAgICAgICAgICAgICAgICAgID0gMzQsCi0gICBTVkdBM0RfUkdfUzEwRTUgICAgICAgICAgICAg ICAgICAgICA9IDM1LAotICAgU1ZHQTNEX1JHX1MyM0U4ICAgICAgICAgICAgICAgICAgICAgPSAz NiwKLQotICAgU1ZHQTNEX0JVRkZFUiAgICAgICAgICAgICAgICAgICAgICAgPSAzNywKLQotICAg U1ZHQTNEX1pfRDI0WDggICAgICAgICAgICAgICAgICAgICAgPSAzOCwKLQotICAgU1ZHQTNEX1Yx NlUxNiAgICAgICAgICAgICAgICAgICAgICAgPSAzOSwKLQotICAgU1ZHQTNEX0cxNlIxNiAgICAg ICAgICAgICAgICAgICAgICAgPSA0MCwKLSAgIFNWR0EzRF9BMTZCMTZHMTZSMTYgICAgICAgICAg ICAgICAgID0gNDEsCi0KLSAgIC8qIFBhY2tlZCBWaWRlbyBmb3JtYXRzICovCi0gICBTVkdBM0Rf VVlWWSAgICAgICAgICAgICAgICAgICAgICAgICA9IDQyLAotICAgU1ZHQTNEX1lVWTIgICAgICAg ICAgICAgICAgICAgICAgICAgPSA0MywKLQotICAgLyogUGxhbmFyIHZpZGVvIGZvcm1hdHMgKi8K LSAgIFNWR0EzRF9OVjEyICAgICAgICAgICAgICAgICAgICAgICAgID0gNDQsCi0KLSAgIC8qIFZp ZGVvIGZvcm1hdCB3aXRoIGFscGhhICovCi0gICBTVkdBM0RfQVlVViAgICAgICAgICAgICAgICAg ICAgICAgICA9IDQ1LAotCi0gICBTVkdBM0RfUjMyRzMyQjMyQTMyX1RZUEVMRVNTICAgICAgICA9 IDQ2LAotICAgU1ZHQTNEX1IzMkczMkIzMkEzMl9GTE9BVCAgICAgICAgICAgPSAyNSwKLSAgIFNW R0EzRF9SMzJHMzJCMzJBMzJfVUlOVCAgICAgICAgICAgID0gNDcsCi0gICBTVkdBM0RfUjMyRzMy QjMyQTMyX1NJTlQgICAgICAgICAgICA9IDQ4LAotICAgU1ZHQTNEX1IzMkczMkIzMl9UWVBFTEVT UyAgICAgICAgICAgPSA0OSwKLSAgIFNWR0EzRF9SMzJHMzJCMzJfRkxPQVQgICAgICAgICAgICAg ID0gNTAsCi0gICBTVkdBM0RfUjMyRzMyQjMyX1VJTlQgICAgICAgICAgICAgICA9IDUxLAotICAg U1ZHQTNEX1IzMkczMkIzMl9TSU5UICAgICAgICAgICAgICAgPSA1MiwKLSAgIFNWR0EzRF9SMTZH MTZCMTZBMTZfVFlQRUxFU1MgICAgICAgID0gNTMsCi0gICBTVkdBM0RfUjE2RzE2QjE2QTE2X0ZM T0FUICAgICAgICAgICA9IDI0LAotICAgU1ZHQTNEX1IxNkcxNkIxNkExNl9VTk9STSAgICAgICAg ICAgPSA0MSwKLSAgIFNWR0EzRF9SMTZHMTZCMTZBMTZfVUlOVCAgICAgICAgICAgID0gNTQsCi0g ICBTVkdBM0RfUjE2RzE2QjE2QTE2X1NOT1JNICAgICAgICAgICA9IDU1LAotICAgU1ZHQTNEX1Ix NkcxNkIxNkExNl9TSU5UICAgICAgICAgICAgPSA1NiwKLSAgIFNWR0EzRF9SMzJHMzJfVFlQRUxF U1MgICAgICAgICAgICAgID0gNTcsCi0gICBTVkdBM0RfUjMyRzMyX0ZMT0FUICAgICAgICAgICAg ICAgICA9IDM2LAotICAgU1ZHQTNEX1IzMkczMl9VSU5UICAgICAgICAgICAgICAgICAgPSA1OCwK LSAgIFNWR0EzRF9SMzJHMzJfU0lOVCAgICAgICAgICAgICAgICAgID0gNTksCi0gICBTVkdBM0Rf UjMyRzhYMjRfVFlQRUxFU1MgICAgICAgICAgICA9IDYwLAotICAgU1ZHQTNEX0QzMl9GTE9BVF9T OFgyNF9VSU5UICAgICAgICAgPSA2MSwKLSAgIFNWR0EzRF9SMzJfRkxPQVRfWDhYMjRfVFlQRUxF U1MgICAgID0gNjIsCi0gICBTVkdBM0RfWDMyX1RZUEVMRVNTX0c4WDI0X1VJTlQgICAgICA9IDYz LAotICAgU1ZHQTNEX1IxMEcxMEIxMEEyX1RZUEVMRVNTICAgICAgICAgPSA2NCwKLSAgIFNWR0Ez RF9SMTBHMTBCMTBBMl9VTk9STSAgICAgICAgICAgID0gMjYsCi0gICBTVkdBM0RfUjEwRzEwQjEw QTJfVUlOVCAgICAgICAgICAgICA9IDY1LAotICAgU1ZHQTNEX1IxMUcxMUIxMF9GTE9BVCAgICAg ICAgICAgICAgPSA2NiwKLSAgIFNWR0EzRF9SOEc4QjhBOF9UWVBFTEVTUyAgICAgICAgICAgID0g NjcsCi0gICBTVkdBM0RfUjhHOEI4QThfVU5PUk0gICAgICAgICAgICAgICA9IDY4LAotICAgU1ZH QTNEX1I4RzhCOEE4X1VOT1JNX1NSR0IgICAgICAgICAgPSA2OSwKLSAgIFNWR0EzRF9SOEc4QjhB OF9VSU5UICAgICAgICAgICAgICAgID0gNzAsCi0gICBTVkdBM0RfUjhHOEI4QThfU05PUk0gICAg ICAgICAgICAgICA9IDI4LAotICAgU1ZHQTNEX1I4RzhCOEE4X1NJTlQgICAgICAgICAgICAgICAg PSA3MSwKLSAgIFNWR0EzRF9SMTZHMTZfVFlQRUxFU1MgICAgICAgICAgICAgID0gNzIsCi0gICBT VkdBM0RfUjE2RzE2X0ZMT0FUICAgICAgICAgICAgICAgICA9IDM1LAotICAgU1ZHQTNEX1IxNkcx Nl9VTk9STSAgICAgICAgICAgICAgICAgPSA0MCwKLSAgIFNWR0EzRF9SMTZHMTZfVUlOVCAgICAg ICAgICAgICAgICAgID0gNzMsCi0gICBTVkdBM0RfUjE2RzE2X1NOT1JNICAgICAgICAgICAgICAg ICA9IDM5LAotICAgU1ZHQTNEX1IxNkcxNl9TSU5UICAgICAgICAgICAgICAgICAgPSA3NCwKLSAg IFNWR0EzRF9SMzJfVFlQRUxFU1MgICAgICAgICAgICAgICAgID0gNzUsCi0gICBTVkdBM0RfRDMy X0ZMT0FUICAgICAgICAgICAgICAgICAgICA9IDc2LAotICAgU1ZHQTNEX1IzMl9GTE9BVCAgICAg ICAgICAgICAgICAgICAgPSAzNCwKLSAgIFNWR0EzRF9SMzJfVUlOVCAgICAgICAgICAgICAgICAg ICAgID0gNzcsCi0gICBTVkdBM0RfUjMyX1NJTlQgICAgICAgICAgICAgICAgICAgICA9IDc4LAot ICAgU1ZHQTNEX1IyNEc4X1RZUEVMRVNTICAgICAgICAgICAgICAgPSA3OSwKLSAgIFNWR0EzRF9E MjRfVU5PUk1fUzhfVUlOVCAgICAgICAgICAgID0gODAsCi0gICBTVkdBM0RfUjI0X1VOT1JNX1g4 X1RZUEVMRVNTICAgICAgICA9IDgxLAotICAgU1ZHQTNEX1gyNF9UWVBFTEVTU19HOF9VSU5UICAg ICAgICAgPSA4MiwKLSAgIFNWR0EzRF9SOEc4X1RZUEVMRVNTICAgICAgICAgICAgICAgID0gODMs Ci0gICBTVkdBM0RfUjhHOF9VTk9STSAgICAgICAgICAgICAgICAgICA9IDg0LAotICAgU1ZHQTNE X1I4RzhfVUlOVCAgICAgICAgICAgICAgICAgICAgPSA4NSwKLSAgIFNWR0EzRF9SOEc4X1NOT1JN ICAgICAgICAgICAgICAgICAgID0gMjcsCi0gICBTVkdBM0RfUjhHOF9TSU5UICAgICAgICAgICAg ICAgICAgICA9IDg2LAotICAgU1ZHQTNEX1IxNl9UWVBFTEVTUyAgICAgICAgICAgICAgICAgPSA4 NywKLSAgIFNWR0EzRF9SMTZfRkxPQVQgICAgICAgICAgICAgICAgICAgID0gMzMsCi0gICBTVkdB M0RfRDE2X1VOT1JNICAgICAgICAgICAgICAgICAgICA9IDgsCi0gICBTVkdBM0RfUjE2X1VOT1JN ICAgICAgICAgICAgICAgICAgICA9IDg4LAotICAgU1ZHQTNEX1IxNl9VSU5UICAgICAgICAgICAg ICAgICAgICAgPSA4OSwKLSAgIFNWR0EzRF9SMTZfU05PUk0gICAgICAgICAgICAgICAgICAgID0g OTAsCi0gICBTVkdBM0RfUjE2X1NJTlQgICAgICAgICAgICAgICAgICAgICA9IDkxLAotICAgU1ZH QTNEX1I4X1RZUEVMRVNTICAgICAgICAgICAgICAgICAgPSA5MiwKLSAgIFNWR0EzRF9SOF9VTk9S TSAgICAgICAgICAgICAgICAgICAgID0gOTMsCi0gICBTVkdBM0RfUjhfVUlOVCAgICAgICAgICAg ICAgICAgICAgICA9IDk0LAotICAgU1ZHQTNEX1I4X1NOT1JNICAgICAgICAgICAgICAgICAgICAg PSA5NSwKLSAgIFNWR0EzRF9SOF9TSU5UICAgICAgICAgICAgICAgICAgICAgID0gOTYsCi0gICBT VkdBM0RfQThfVU5PUk0gICAgICAgICAgICAgICAgICAgICA9IDMyLAotICAgU1ZHQTNEX1A4ICAg ICAgICAgICAgICAgICAgICAgICAgICAgPSA5NywKLSAgIFNWR0EzRF9SOUc5QjlFNV9TSEFSRURF WFAgICAgICAgICAgID0gOTgsCi0gICBTVkdBM0RfUjhHOF9COEc4X1VOT1JNICAgICAgICAgICAg ICA9IDk5LAotICAgU1ZHQTNEX0c4UjhfRzhCOF9VTk9STSAgICAgICAgICAgICAgPSAxMDAsCi0g ICBTVkdBM0RfQkMxX1RZUEVMRVNTICAgICAgICAgICAgICAgICA9IDEwMSwKLSAgIFNWR0EzRF9C QzFfVU5PUk0gICAgICAgICAgICAgICAgICAgID0gMTUsCi0gICBTVkdBM0RfQkMxX1VOT1JNX1NS R0IgICAgICAgICAgICAgICA9IDEwMiwKLSAgIFNWR0EzRF9CQzJfVFlQRUxFU1MgICAgICAgICAg ICAgICAgID0gMTAzLAotICAgU1ZHQTNEX0JDMl9VTk9STSAgICAgICAgICAgICAgICAgICAgPSAx NywKLSAgIFNWR0EzRF9CQzJfVU5PUk1fU1JHQiAgICAgICAgICAgICAgID0gMTA0LAotICAgU1ZH QTNEX0JDM19UWVBFTEVTUyAgICAgICAgICAgICAgICAgPSAxMDUsCi0gICBTVkdBM0RfQkMzX1VO T1JNICAgICAgICAgICAgICAgICAgICA9IDE5LAotICAgU1ZHQTNEX0JDM19VTk9STV9TUkdCICAg ICAgICAgICAgICAgPSAxMDYsCi0gICBTVkdBM0RfQkM0X1RZUEVMRVNTICAgICAgICAgICAgICAg ICA9IDEwNywKLSAgIFNWR0EzRF9CQzRfVU5PUk0gICAgICAgICAgICAgICAgICAgID0gMTA4LAot ICAgU1ZHQTNEX0JDNF9TTk9STSAgICAgICAgICAgICAgICAgICAgPSAxMDksCi0gICBTVkdBM0Rf QkM1X1RZUEVMRVNTICAgICAgICAgICAgICAgICA9IDExMCwKLSAgIFNWR0EzRF9CQzVfVU5PUk0g ICAgICAgICAgICAgICAgICAgID0gMTExLAotICAgU1ZHQTNEX0JDNV9TTk9STSAgICAgICAgICAg ICAgICAgICAgPSAxMTIsCi0gICBTVkdBM0RfQjVHNlI1X1VOT1JNICAgICAgICAgICAgICAgICA9 IDMsCi0gICBTVkdBM0RfQjVHNVI1QTFfVU5PUk0gICAgICAgICAgICAgICA9IDUsCi0gICBTVkdB M0RfQjhHOFI4QThfVU5PUk0gICAgICAgICAgICAgICA9IDIsCi0gICBTVkdBM0RfQjhHOFI4WDhf VU5PUk0gICAgICAgICAgICAgICA9IDEsCi0gICBTVkdBM0RfUjEwRzEwQjEwX1hSX0JJQVNfQTJf VU5PUk0gICA9IDExMywKLSAgIFNWR0EzRF9COEc4UjhBOF9UWVBFTEVTUyAgICAgICAgICAgID0g MTE0LAotICAgU1ZHQTNEX0I4RzhSOEE4X1VOT1JNX1NSR0IgICAgICAgICAgPSAxMTUsCi0gICBT VkdBM0RfQjhHOFI4WDhfVFlQRUxFU1MgICAgICAgICAgICA9IDExNiwKLSAgIFNWR0EzRF9COEc4 UjhYOF9VTk9STV9TUkdCICAgICAgICAgID0gMTE3LAotCi0gICAvKiBBZHZhbmNlZCBEM0Q5IGRl cHRoIGZvcm1hdHMuICovCi0gICBTVkdBM0RfWl9ERjE2ICAgICAgICAgICAgICAgICAgICAgICA9 IDExOCwKLSAgIFNWR0EzRF9aX0RGMjQgICAgICAgICAgICAgICAgICAgICAgID0gMTE5LAotICAg U1ZHQTNEX1pfRDI0UzhfSU5UICAgICAgICAgICAgICAgICAgPSAxMjAsCi0KLSAgIC8qIFBsYW5h ciB2aWRlbyBmb3JtYXRzLiAqLwotICAgU1ZHQTNEX1lWMTIgICAgICAgICAgICAgICAgICAgICAg ICAgPSAxMjEsCi0KLSAgIFNWR0EzRF9GT1JNQVRfTUFYICAgICAgICAgICAgICAgICAgID0gMTIy LAotfSBTVkdBM2RTdXJmYWNlRm9ybWF0OwotCi10eXBlZGVmIHVpbnQzMiBTVkdBM2RDb2xvcjsg LyogYSwgciwgZywgYiAqLwotCi0vKgotICogVGhlc2UgbWF0Y2ggdGhlIEQzREZPUk1BVF9PUCBk ZWZpbml0aW9ucyB1c2VkIGJ5IERpcmVjdDNELiBXZSBuZWVkCi0gKiB0aGVtIHNvIHRoYXQgd2Ug Y2FuIHF1ZXJ5IHRoZSBob3N0IGZvciB3aGF0IHRoZSBzdXBwb3J0ZWQgc3VyZmFjZQotICogb3Bl cmF0aW9ucyBhcmUgKHdoZW4gd2UncmUgdXNpbmcgdGhlIEQzRCBiYWNrZW5kLCBpbiBwYXJ0aWN1 bGFyKSwKLSAqIGFuZCBzbyB3ZSBjYW4gc2VuZCB0aG9zZSBvcGVyYXRpb25zIHRvIHRoZSBndWVz dC4KLSAqLwotdHlwZWRlZiBlbnVtIHsKLSAgIFNWR0EzREZPUk1BVF9PUF9URVhUVVJFICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDAwMSwKLSAgIFNWR0EzREZPUk1BVF9P UF9WT0xVTUVURVhUVVJFICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDAwMiwKLSAg IFNWR0EzREZPUk1BVF9PUF9DVUJFVEVYVFVSRSAgICAgICAgICAgICAgICAgICAgICAgICAgID0g MHgwMDAwMDAwNCwKLSAgIFNWR0EzREZPUk1BVF9PUF9PRkZTQ1JFRU5fUkVOREVSVEFSR0VUICAg ICAgICAgICAgICAgID0gMHgwMDAwMDAwOCwKLSAgIFNWR0EzREZPUk1BVF9PUF9TQU1FX0ZPUk1B VF9SRU5ERVJUQVJHRVQgICAgICAgICAgICAgID0gMHgwMDAwMDAxMCwKLSAgIFNWR0EzREZPUk1B VF9PUF9aU1RFTkNJTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDA0MCwK LSAgIFNWR0EzREZPUk1BVF9PUF9aU1RFTkNJTF9XSVRIX0FSQklUUkFSWV9DT0xPUl9ERVBUSCAg ID0gMHgwMDAwMDA4MCwKLQotLyoKLSAqIFRoaXMgZm9ybWF0IGNhbiBiZSB1c2VkIGFzIGEgcmVu ZGVyIHRhcmdldCBpZiB0aGUgY3VycmVudCBkaXNwbGF5IG1vZGUKLSAqIGlzIHRoZSBzYW1lIGRl cHRoIGlmIHRoZSBhbHBoYSBjaGFubmVsIGlzIGlnbm9yZWQuIGUuZy4gaWYgdGhlIGRldmljZQot ICogY2FuIHJlbmRlciB0byBBOFI4RzhCOCB3aGVuIHRoZSBkaXNwbGF5IG1vZGUgaXMgWDhSOEc4 QjgsIHRoZW4gdGhlCi0gKiBmb3JtYXQgb3AgbGlzdCBlbnRyeSBmb3IgQThSOEc4Qjggc2hvdWxk IGhhdmUgdGhpcyBjYXAuCi0gKi8KLSAgIFNWR0EzREZPUk1BVF9PUF9TQU1FX0ZPUk1BVF9VUF9U T19BTFBIQV9SRU5ERVJUQVJHRVQgID0gMHgwMDAwMDEwMCwKLQotLyoKLSAqIFRoaXMgZm9ybWF0 IGNvbnRhaW5zIERpcmVjdERyYXcgc3VwcG9ydCAoaW5jbHVkaW5nIEZsaXApLiAgVGhpcyBmbGFn Ci0gKiBzaG91bGQgbm90IHRvIGJlIHNldCBvbiBhbHBoYSBmb3JtYXRzLgotICovCi0gICBTVkdB M0RGT1JNQVRfT1BfRElTUExBWU1PREUgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAw MDA0MDAsCi0KLS8qCi0gKiBUaGUgcmFzdGVyaXplciBjYW4gc3VwcG9ydCBzb21lIGxldmVsIG9m IERpcmVjdDNEIHN1cHBvcnQgaW4gdGhpcyBmb3JtYXQKLSAqIGFuZCBpbXBsaWVzIHRoYXQgdGhl IGRyaXZlciBjYW4gY3JlYXRlIGEgQ29udGV4dCBpbiB0aGlzIG1vZGUgKGZvciBzb21lCi0gKiBy ZW5kZXIgdGFyZ2V0IGZvcm1hdCkuICBXaGVuIHRoaXMgZmxhZyBpcyBzZXQsIHRoZSBTVkdBM0RG T1JNQVRfT1BfRElTUExBWU1PREUKLSAqIGZsYWcgbXVzdCBhbHNvIGJlIHNldC4KLSAqLwotICAg U1ZHQTNERk9STUFUX09QXzNEQUNDRUxFUkFUSU9OICAgICAgICAgICAgICAgICAgICAgICAgPSAw eDAwMDAwODAwLAotCi0vKgotICogVGhpcyBpcyBzZXQgZm9yIGEgcHJpdmF0ZSBmb3JtYXQgd2hl biB0aGUgZHJpdmVyIGhhcyBwdXQgdGhlIGJwcCBpbgotICogdGhlIHN0cnVjdHVyZS4KLSAqLwot ICAgU1ZHQTNERk9STUFUX09QX1BJWEVMU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PSAweDAwMDAxMDAwLAotCi0vKgotICogSW5kaWNhdGVzIHRoYXQgdGhpcyBmb3JtYXQgY2FuIGJl IGNvbnZlcnRlZCB0byBhbnkgUkdCIGZvcm1hdCBmb3Igd2hpY2gKLSAqIFNWR0EzREZPUk1BVF9P UF9NRU1CRVJPRkdST1VQX0FSR0IgaXMgc3BlY2lmaWVkCi0gKi8KLSAgIFNWR0EzREZPUk1BVF9P UF9DT05WRVJUX1RPX0FSR0IgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMjAwMCwKLQot LyoKLSAqIEluZGljYXRlcyB0aGF0IHRoaXMgZm9ybWF0IGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBv ZmZzY3JlZW4gcGxhaW4gc3VyZmFjZXMuCi0gKi8KLSAgIFNWR0EzREZPUk1BVF9PUF9PRkZTQ1JF RU5QTEFJTiAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAwNDAwMCwKLQotLyoKLSAqIElu ZGljYXRlZCB0aGF0IHRoaXMgZm9ybWF0IGNhbiBiZSByZWFkIGFzIGFuIFNSR0IgdGV4dHVyZSAo bWVhbmluZyB0aGF0IHRoZQotICogc2FtcGxlciB3aWxsIGxpbmVhcml6ZSB0aGUgbG9va2VkIHVw IGRhdGEpCi0gKi8KLSAgIFNWR0EzREZPUk1BVF9PUF9TUkdCUkVBRCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgID0gMHgwMDAwODAwMCwKLQotLyoKLSAqIEluZGljYXRlcyB0aGF0IHRoaXMg Zm9ybWF0IGNhbiBiZSB1c2VkIGluIHRoZSBidW1wbWFwIGluc3RydWN0aW9ucwotICovCi0gICBT VkdBM0RGT1JNQVRfT1BfQlVNUE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4 MDAwMTAwMDAsCi0KLS8qCi0gKiBJbmRpY2F0ZXMgdGhhdCB0aGlzIGZvcm1hdCBjYW4gYmUgc2Ft cGxlZCBieSB0aGUgZGlzcGxhY2VtZW50IG1hcCBzYW1wbGVyCi0gKi8KLSAgIFNWR0EzREZPUk1B VF9PUF9ETUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAyMDAwMCwK LQotLyoKLSAqIEluZGljYXRlcyB0aGF0IHRoaXMgZm9ybWF0IGNhbm5vdCBiZSB1c2VkIHdpdGgg dGV4dHVyZSBmaWx0ZXJpbmcKLSAqLwotICAgU1ZHQTNERk9STUFUX09QX05PRklMVEVSICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDQwMDAwLAotCi0vKgotICogSW5kaWNhdGVz IHRoYXQgZm9ybWF0IGNvbnZlcnNpb25zIGFyZSBzdXBwb3J0ZWQgdG8gdGhpcyBSR0IgZm9ybWF0 IGlmCi0gKiBTVkdBM0RGT1JNQVRfT1BfQ09OVkVSVF9UT19BUkdCIGlzIHNwZWNpZmllZCBpbiB0 aGUgc291cmNlIGZvcm1hdC4KLSAqLwotICAgU1ZHQTNERk9STUFUX09QX01FTUJFUk9GR1JPVVBf QVJHQiAgICAgICAgICAgICAgICAgICAgPSAweDAwMDgwMDAwLAotCi0vKgotICogSW5kaWNhdGVk IHRoYXQgdGhpcyBmb3JtYXQgY2FuIGJlIHdyaXR0ZW4gYXMgYW4gU1JHQiB0YXJnZXQgKG1lYW5p bmcgdGhhdCB0aGUKLSAqIHBpeGVsIHBpcGUgd2lsbCBERS1saW5lYXJpemUgZGF0YSBvbiBvdXRw dXQgdG8gZm9ybWF0KQotICovCi0gICBTVkdBM0RGT1JNQVRfT1BfU1JHQldSSVRFICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA9IDB4MDAxMDAwMDAsCi0KLS8qCi0gKiBJbmRpY2F0ZXMgdGhh dCB0aGlzIGZvcm1hdCBjYW5ub3QgYmUgdXNlZCB3aXRoIGFscGhhIGJsZW5kaW5nCi0gKi8KLSAg IFNWR0EzREZPUk1BVF9PUF9OT0FMUEhBQkxFTkQgICAgICAgICAgICAgICAgICAgICAgICAgID0g MHgwMDIwMDAwMCwKLQotLyoKLSAqIEluZGljYXRlcyB0aGF0IHRoZSBkZXZpY2UgY2FuIGF1dG8t Z2VuZXJhdGVkIHN1YmxldmVscyBmb3IgcmVzb3VyY2VzCi0gKiBvZiB0aGlzIGZvcm1hdAotICov Ci0gICBTVkdBM0RGT1JNQVRfT1BfQVVUT0dFTk1JUE1BUCAgICAgICAgICAgICAgICAgICAgICAg ICA9IDB4MDA0MDAwMDAsCi0KLS8qCi0gKiBJbmRpY2F0ZXMgdGhhdCB0aGlzIGZvcm1hdCBjYW4g YmUgdXNlZCBieSB2ZXJ0ZXggdGV4dHVyZSBzYW1wbGVyCi0gKi8KLSAgIFNWR0EzREZPUk1BVF9P UF9WRVJURVhURVhUVVJFICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDgwMDAwMCwKLQot LyoKLSAqIEluZGljYXRlcyB0aGF0IHRoaXMgZm9ybWF0IHN1cHBvcnRzIG5laXRoZXIgdGV4dHVy ZSBjb29yZGluYXRlIHdyYXAKLSAqIG1vZGVzLCBub3IgbWlwbWFwcGluZwotICovCi0gICBTVkdB M0RGT1JNQVRfT1BfTk9URVhDT09SRFdSQVBOT1JNSVAgICAgICAgICAgICAgICAgICA9IDB4MDEw MDAwMDAKLX0gU1ZHQTNkRm9ybWF0T3A7Ci0KLS8qCi0gKiBUaGlzIHN0cnVjdHVyZSBpcyBhIGNv bnZlcnNpb24gb2YgU1ZHQTNERk9STUFUX09QXyouCi0gKiBFbnRyaWVzIG11c3QgYmUgbG9jYXRl ZCBhdCB0aGUgc2FtZSBwb3NpdGlvbi4KLSAqLwotdHlwZWRlZiB1bmlvbiB7Ci0gICB1aW50MzIg dmFsdWU7Ci0gICBzdHJ1Y3QgewotICAgICAgdWludDMyIHRleHR1cmUgOiAxOwotICAgICAgdWlu dDMyIHZvbHVtZVRleHR1cmUgOiAxOwotICAgICAgdWludDMyIGN1YmVUZXh0dXJlIDogMTsKLSAg ICAgIHVpbnQzMiBvZmZzY3JlZW5SZW5kZXJUYXJnZXQgOiAxOwotICAgICAgdWludDMyIHNhbWVG b3JtYXRSZW5kZXJUYXJnZXQgOiAxOwotICAgICAgdWludDMyIHVua25vd24xIDogMTsKLSAgICAg IHVpbnQzMiB6U3RlbmNpbCA6IDE7Ci0gICAgICB1aW50MzIgelN0ZW5jaWxBcmJpdHJhcnlEZXB0 aCA6IDE7Ci0gICAgICB1aW50MzIgc2FtZUZvcm1hdFVwVG9BbHBoYSA6IDE7Ci0gICAgICB1aW50 MzIgdW5rbm93bjIgOiAxOwotICAgICAgdWludDMyIGRpc3BsYXlNb2RlIDogMTsKLSAgICAgIHVp bnQzMiBhY2NlbGVyYXRpb24zZCA6IDE7Ci0gICAgICB1aW50MzIgcGl4ZWxTaXplIDogMTsKLSAg ICAgIHVpbnQzMiBjb252ZXJ0VG9BUkdCIDogMTsKLSAgICAgIHVpbnQzMiBvZmZzY3JlZW5QbGFp biA6IDE7Ci0gICAgICB1aW50MzIgc1JHQlJlYWQgOiAxOwotICAgICAgdWludDMyIGJ1bXBNYXAg OiAxOwotICAgICAgdWludDMyIGRtYXAgOiAxOwotICAgICAgdWludDMyIG5vRmlsdGVyIDogMTsK LSAgICAgIHVpbnQzMiBtZW1iZXJPZkdyb3VwQVJHQiA6IDE7Ci0gICAgICB1aW50MzIgc1JHQldy aXRlIDogMTsKLSAgICAgIHVpbnQzMiBub0FscGhhQmxlbmQgOiAxOwotICAgICAgdWludDMyIGF1 dG9HZW5NaXBNYXAgOiAxOwotICAgICAgdWludDMyIHZlcnRleFRleHR1cmUgOiAxOwotICAgICAg dWludDMyIG5vVGV4Q29vcmRXcmFwTm9yTWlwIDogMTsKLSAgIH07Ci19IFNWR0EzZFN1cmZhY2VG b3JtYXRDYXBzOwotCi0vKgotICogU1ZHQV8zRF9DTURfU0VUUkVOREVSU1RBVEUgVHlwZXMuICBB bGwgdmFsdWUgdHlwZXMKLSAqIG11c3QgZml0IGluIGEgdWludDMyLgotICovCi0KLXR5cGVkZWYg ZW51bSB7Ci0gICBTVkdBM0RfUlNfSU5WQUxJRCAgICAgICAgICAgICAgICAgICA9IDAsCi0gICBT VkdBM0RfUlNfWkVOQUJMRSAgICAgICAgICAgICAgICAgICA9IDEsICAgICAvKiBTVkdBM2RCb29s ICovCi0gICBTVkdBM0RfUlNfWldSSVRFRU5BQkxFICAgICAgICAgICAgICA9IDIsICAgICAvKiBT VkdBM2RCb29sICovCi0gICBTVkdBM0RfUlNfQUxQSEFURVNURU5BQkxFICAgICAgICAgICA9IDMs ICAgICAvKiBTVkdBM2RCb29sICovCi0gICBTVkdBM0RfUlNfRElUSEVSRU5BQkxFICAgICAgICAg ICAgICA9IDQsICAgICAvKiBTVkdBM2RCb29sICovCi0gICBTVkdBM0RfUlNfQkxFTkRFTkFCTEUg ICAgICAgICAgICAgICA9IDUsICAgICAvKiBTVkdBM2RCb29sICovCi0gICBTVkdBM0RfUlNfRk9H RU5BQkxFICAgICAgICAgICAgICAgICA9IDYsICAgICAvKiBTVkdBM2RCb29sICovCi0gICBTVkdB M0RfUlNfU1BFQ1VMQVJFTkFCTEUgICAgICAgICAgICA9IDcsICAgICAvKiBTVkdBM2RCb29sICov Ci0gICBTVkdBM0RfUlNfU1RFTkNJTEVOQUJMRSAgICAgICAgICAgICA9IDgsICAgICAvKiBTVkdB M2RCb29sICovCi0gICBTVkdBM0RfUlNfTElHSFRJTkdFTkFCTEUgICAgICAgICAgICA9IDksICAg ICAvKiBTVkdBM2RCb29sICovCi0gICBTVkdBM0RfUlNfTk9STUFMSVpFTk9STUFMUyAgICAgICAg ICA9IDEwLCAgICAvKiBTVkdBM2RCb29sICovCi0gICBTVkdBM0RfUlNfUE9JTlRTUFJJVEVFTkFC TEUgICAgICAgICA9IDExLCAgICAvKiBTVkdBM2RCb29sICovCi0gICBTVkdBM0RfUlNfUE9JTlRT Q0FMRUVOQUJMRSAgICAgICAgICA9IDEyLCAgICAvKiBTVkdBM2RCb29sICovCi0gICBTVkdBM0Rf UlNfU1RFTkNJTFJFRiAgICAgICAgICAgICAgICA9IDEzLCAgICAvKiB1aW50MzIgKi8KLSAgIFNW R0EzRF9SU19TVEVOQ0lMTUFTSyAgICAgICAgICAgICAgID0gMTQsICAgIC8qIHVpbnQzMiAqLwot ICAgU1ZHQTNEX1JTX1NURU5DSUxXUklURU1BU0sgICAgICAgICAgPSAxNSwgICAgLyogdWludDMy ICovCi0gICBTVkdBM0RfUlNfRk9HU1RBUlQgICAgICAgICAgICAgICAgICA9IDE2LCAgICAvKiBm bG9hdCAqLwotICAgU1ZHQTNEX1JTX0ZPR0VORCAgICAgICAgICAgICAgICAgICAgPSAxNywgICAg LyogZmxvYXQgKi8KLSAgIFNWR0EzRF9SU19GT0dERU5TSVRZICAgICAgICAgICAgICAgID0gMTgs ICAgIC8qIGZsb2F0ICovCi0gICBTVkdBM0RfUlNfUE9JTlRTSVpFICAgICAgICAgICAgICAgICA9 IDE5LCAgICAvKiBmbG9hdCAqLwotICAgU1ZHQTNEX1JTX1BPSU5UU0laRU1JTiAgICAgICAgICAg ICAgPSAyMCwgICAgLyogZmxvYXQgKi8KLSAgIFNWR0EzRF9SU19QT0lOVFNJWkVNQVggICAgICAg ICAgICAgID0gMjEsICAgIC8qIGZsb2F0ICovCi0gICBTVkdBM0RfUlNfUE9JTlRTQ0FMRV9BICAg ICAgICAgICAgICA9IDIyLCAgICAvKiBmbG9hdCAqLwotICAgU1ZHQTNEX1JTX1BPSU5UU0NBTEVf QiAgICAgICAgICAgICAgPSAyMywgICAgLyogZmxvYXQgKi8KLSAgIFNWR0EzRF9SU19QT0lOVFND QUxFX0MgICAgICAgICAgICAgID0gMjQsICAgIC8qIGZsb2F0ICovCi0gICBTVkdBM0RfUlNfRk9H Q09MT1IgICAgICAgICAgICAgICAgICA9IDI1LCAgICAvKiBTVkdBM2RDb2xvciAqLwotICAgU1ZH QTNEX1JTX0FNQklFTlQgICAgICAgICAgICAgICAgICAgPSAyNiwgICAgLyogU1ZHQTNkQ29sb3Ig Ki8KLSAgIFNWR0EzRF9SU19DTElQUExBTkVFTkFCTEUgICAgICAgICAgID0gMjcsICAgIC8qIFNW R0EzZENsaXBQbGFuZXMgKi8KLSAgIFNWR0EzRF9SU19GT0dNT0RFICAgICAgICAgICAgICAgICAg ID0gMjgsICAgIC8qIFNWR0EzZEZvZ01vZGUgKi8KLSAgIFNWR0EzRF9SU19GSUxMTU9ERSAgICAg ICAgICAgICAgICAgID0gMjksICAgIC8qIFNWR0EzZEZpbGxNb2RlICovCi0gICBTVkdBM0RfUlNf U0hBREVNT0RFICAgICAgICAgICAgICAgICA9IDMwLCAgICAvKiBTVkdBM2RTaGFkZU1vZGUgKi8K LSAgIFNWR0EzRF9SU19MSU5FUEFUVEVSTiAgICAgICAgICAgICAgID0gMzEsICAgIC8qIFNWR0Ez ZExpbmVQYXR0ZXJuICovCi0gICBTVkdBM0RfUlNfU1JDQkxFTkQgICAgICAgICAgICAgICAgICA9 IDMyLCAgICAvKiBTVkdBM2RCbGVuZE9wICovCi0gICBTVkdBM0RfUlNfRFNUQkxFTkQgICAgICAg ICAgICAgICAgICA9IDMzLCAgICAvKiBTVkdBM2RCbGVuZE9wICovCi0gICBTVkdBM0RfUlNfQkxF TkRFUVVBVElPTiAgICAgICAgICAgICA9IDM0LCAgICAvKiBTVkdBM2RCbGVuZEVxdWF0aW9uICov Ci0gICBTVkdBM0RfUlNfQ1VMTE1PREUgICAgICAgICAgICAgICAgICA9IDM1LCAgICAvKiBTVkdB M2RGYWNlICovCi0gICBTVkdBM0RfUlNfWkZVTkMgICAgICAgICAgICAgICAgICAgICA9IDM2LCAg ICAvKiBTVkdBM2RDbXBGdW5jICovCi0gICBTVkdBM0RfUlNfQUxQSEFGVU5DICAgICAgICAgICAg ICAgICA9IDM3LCAgICAvKiBTVkdBM2RDbXBGdW5jICovCi0gICBTVkdBM0RfUlNfU1RFTkNJTEZV TkMgICAgICAgICAgICAgICA9IDM4LCAgICAvKiBTVkdBM2RDbXBGdW5jICovCi0gICBTVkdBM0Rf UlNfU1RFTkNJTEZBSUwgICAgICAgICAgICAgICA9IDM5LCAgICAvKiBTVkdBM2RTdGVuY2lsT3Ag Ki8KLSAgIFNWR0EzRF9SU19TVEVOQ0lMWkZBSUwgICAgICAgICAgICAgID0gNDAsICAgIC8qIFNW R0EzZFN0ZW5jaWxPcCAqLwotICAgU1ZHQTNEX1JTX1NURU5DSUxQQVNTICAgICAgICAgICAgICAg PSA0MSwgICAgLyogU1ZHQTNkU3RlbmNpbE9wICovCi0gICBTVkdBM0RfUlNfQUxQSEFSRUYgICAg ICAgICAgICAgICAgICA9IDQyLCAgICAvKiBmbG9hdCAoMC4wIC4uIDEuMCkgKi8KLSAgIFNWR0Ez RF9SU19GUk9OVFdJTkRJTkcgICAgICAgICAgICAgID0gNDMsICAgIC8qIFNWR0EzZEZyb250V2lu ZGluZyAqLwotICAgU1ZHQTNEX1JTX0NPT1JESU5BVEVUWVBFICAgICAgICAgICAgPSA0NCwgICAg LyogU1ZHQTNkQ29vcmRpbmF0ZVR5cGUgKi8KLSAgIFNWR0EzRF9SU19aQklBUyAgICAgICAgICAg ICAgICAgICAgID0gNDUsICAgIC8qIGZsb2F0ICovCi0gICBTVkdBM0RfUlNfUkFOR0VGT0dFTkFC TEUgICAgICAgICAgICA9IDQ2LCAgICAvKiBTVkdBM2RCb29sICovCi0gICBTVkdBM0RfUlNfQ09M T1JXUklURUVOQUJMRSAgICAgICAgICA9IDQ3LCAgICAvKiBTVkdBM2RDb2xvck1hc2sgKi8KLSAg IFNWR0EzRF9SU19WRVJURVhNQVRFUklBTEVOQUJMRSAgICAgID0gNDgsICAgIC8qIFNWR0EzZEJv b2wgKi8KLSAgIFNWR0EzRF9SU19ESUZGVVNFTUFURVJJQUxTT1VSQ0UgICAgID0gNDksICAgIC8q IFNWR0EzZFZlcnRleE1hdGVyaWFsICovCi0gICBTVkdBM0RfUlNfU1BFQ1VMQVJNQVRFUklBTFNP VVJDRSAgICA9IDUwLCAgICAvKiBTVkdBM2RWZXJ0ZXhNYXRlcmlhbCAqLwotICAgU1ZHQTNEX1JT X0FNQklFTlRNQVRFUklBTFNPVVJDRSAgICAgPSA1MSwgICAgLyogU1ZHQTNkVmVydGV4TWF0ZXJp YWwgKi8KLSAgIFNWR0EzRF9SU19FTUlTU0lWRU1BVEVSSUFMU09VUkNFICAgID0gNTIsICAgIC8q IFNWR0EzZFZlcnRleE1hdGVyaWFsICovCi0gICBTVkdBM0RfUlNfVEVYVFVSRUZBQ1RPUiAgICAg ICAgICAgICA9IDUzLCAgICAvKiBTVkdBM2RDb2xvciAqLwotICAgU1ZHQTNEX1JTX0xPQ0FMVklF V0VSICAgICAgICAgICAgICAgPSA1NCwgICAgLyogU1ZHQTNkQm9vbCAqLwotICAgU1ZHQTNEX1JT X1NDSVNTT1JURVNURU5BQkxFICAgICAgICAgPSA1NSwgICAgLyogU1ZHQTNkQm9vbCAqLwotICAg U1ZHQTNEX1JTX0JMRU5EQ09MT1IgICAgICAgICAgICAgICAgPSA1NiwgICAgLyogU1ZHQTNkQ29s b3IgKi8KLSAgIFNWR0EzRF9SU19TVEVOQ0lMRU5BQkxFMlNJREVEICAgICAgID0gNTcsICAgIC8q IFNWR0EzZEJvb2wgKi8KLSAgIFNWR0EzRF9SU19DQ1dTVEVOQ0lMRlVOQyAgICAgICAgICAgID0g NTgsICAgIC8qIFNWR0EzZENtcEZ1bmMgKi8KLSAgIFNWR0EzRF9SU19DQ1dTVEVOQ0lMRkFJTCAg ICAgICAgICAgID0gNTksICAgIC8qIFNWR0EzZFN0ZW5jaWxPcCAqLwotICAgU1ZHQTNEX1JTX0ND V1NURU5DSUxaRkFJTCAgICAgICAgICAgPSA2MCwgICAgLyogU1ZHQTNkU3RlbmNpbE9wICovCi0g ICBTVkdBM0RfUlNfQ0NXU1RFTkNJTFBBU1MgICAgICAgICAgICA9IDYxLCAgICAvKiBTVkdBM2RT dGVuY2lsT3AgKi8KLSAgIFNWR0EzRF9SU19WRVJURVhCTEVORCAgICAgICAgICAgICAgID0gNjIs ICAgIC8qIFNWR0EzZFZlcnRleEJsZW5kRmxhZ3MgKi8KLSAgIFNWR0EzRF9SU19TTE9QRVNDQUxF REVQVEhCSUFTICAgICAgID0gNjMsICAgIC8qIGZsb2F0ICovCi0gICBTVkdBM0RfUlNfREVQVEhC SUFTICAgICAgICAgICAgICAgICA9IDY0LCAgICAvKiBmbG9hdCAqLwotCi0KLSAgIC8qCi0gICAg KiBPdXRwdXQgR2FtbWEgTGV2ZWwKLSAgICAqCi0gICAgKiBPdXRwdXQgZ2FtbWEgZWZmZWN0cyB0 aGUgZ2FtbWEgY3VydmUgb2YgY29sb3JzIHRoYXQgYXJlIG91dHB1dCBmcm9tIHRoZQotICAgICog cmVuZGVyaW5nIHBpcGVsaW5lLiAgQSB2YWx1ZSBvZiAxLjAgc3BlY2lmaWVzIGEgbGluZWFyIGNv bG9yIHNwYWNlLiBJZiB0aGUKLSAgICAqIHZhbHVlIGlzIDw9IDAuMCwgZ2FtbWEgY29ycmVjdGlv biBpcyBpZ25vcmVkIGFuZCBsaW5lYXIgY29sb3Igc3BhY2UgaXMKLSAgICAqIHVzZWQuCi0gICAg Ki8KLQotICAgU1ZHQTNEX1JTX09VVFBVVEdBTU1BICAgICAgICAgICAgICAgPSA2NSwgICAgLyog ZmxvYXQgKi8KLSAgIFNWR0EzRF9SU19aVklTSUJMRSAgICAgICAgICAgICAgICAgID0gNjYsICAg IC8qIFNWR0EzZEJvb2wgKi8KLSAgIFNWR0EzRF9SU19MQVNUUElYRUwgICAgICAgICAgICAgICAg ID0gNjcsICAgIC8qIFNWR0EzZEJvb2wgKi8KLSAgIFNWR0EzRF9SU19DTElQUElORyAgICAgICAg ICAgICAgICAgID0gNjgsICAgIC8qIFNWR0EzZEJvb2wgKi8KLSAgIFNWR0EzRF9SU19XUkFQMCAg ICAgICAgICAgICAgICAgICAgID0gNjksICAgIC8qIFNWR0EzZFdyYXBGbGFncyAqLwotICAgU1ZH QTNEX1JTX1dSQVAxICAgICAgICAgICAgICAgICAgICAgPSA3MCwgICAgLyogU1ZHQTNkV3JhcEZs YWdzICovCi0gICBTVkdBM0RfUlNfV1JBUDIgICAgICAgICAgICAgICAgICAgICA9IDcxLCAgICAv KiBTVkdBM2RXcmFwRmxhZ3MgKi8KLSAgIFNWR0EzRF9SU19XUkFQMyAgICAgICAgICAgICAgICAg ICAgID0gNzIsICAgIC8qIFNWR0EzZFdyYXBGbGFncyAqLwotICAgU1ZHQTNEX1JTX1dSQVA0ICAg ICAgICAgICAgICAgICAgICAgPSA3MywgICAgLyogU1ZHQTNkV3JhcEZsYWdzICovCi0gICBTVkdB M0RfUlNfV1JBUDUgICAgICAgICAgICAgICAgICAgICA9IDc0LCAgICAvKiBTVkdBM2RXcmFwRmxh Z3MgKi8KLSAgIFNWR0EzRF9SU19XUkFQNiAgICAgICAgICAgICAgICAgICAgID0gNzUsICAgIC8q IFNWR0EzZFdyYXBGbGFncyAqLwotICAgU1ZHQTNEX1JTX1dSQVA3ICAgICAgICAgICAgICAgICAg ICAgPSA3NiwgICAgLyogU1ZHQTNkV3JhcEZsYWdzICovCi0gICBTVkdBM0RfUlNfV1JBUDggICAg ICAgICAgICAgICAgICAgICA9IDc3LCAgICAvKiBTVkdBM2RXcmFwRmxhZ3MgKi8KLSAgIFNWR0Ez RF9SU19XUkFQOSAgICAgICAgICAgICAgICAgICAgID0gNzgsICAgIC8qIFNWR0EzZFdyYXBGbGFn cyAqLwotICAgU1ZHQTNEX1JTX1dSQVAxMCAgICAgICAgICAgICAgICAgICAgPSA3OSwgICAgLyog U1ZHQTNkV3JhcEZsYWdzICovCi0gICBTVkdBM0RfUlNfV1JBUDExICAgICAgICAgICAgICAgICAg ICA9IDgwLCAgICAvKiBTVkdBM2RXcmFwRmxhZ3MgKi8KLSAgIFNWR0EzRF9SU19XUkFQMTIgICAg ICAgICAgICAgICAgICAgID0gODEsICAgIC8qIFNWR0EzZFdyYXBGbGFncyAqLwotICAgU1ZHQTNE X1JTX1dSQVAxMyAgICAgICAgICAgICAgICAgICAgPSA4MiwgICAgLyogU1ZHQTNkV3JhcEZsYWdz ICovCi0gICBTVkdBM0RfUlNfV1JBUDE0ICAgICAgICAgICAgICAgICAgICA9IDgzLCAgICAvKiBT VkdBM2RXcmFwRmxhZ3MgKi8KLSAgIFNWR0EzRF9SU19XUkFQMTUgICAgICAgICAgICAgICAgICAg ID0gODQsICAgIC8qIFNWR0EzZFdyYXBGbGFncyAqLwotICAgU1ZHQTNEX1JTX01VTFRJU0FNUExF QU5USUFMSUFTICAgICAgPSA4NSwgICAgLyogU1ZHQTNkQm9vbCAqLwotICAgU1ZHQTNEX1JTX01V TFRJU0FNUExFTUFTSyAgICAgICAgICAgPSA4NiwgICAgLyogdWludDMyICovCi0gICBTVkdBM0Rf UlNfSU5ERVhFRFZFUlRFWEJMRU5ERU5BQkxFICA9IDg3LCAgICAvKiBTVkdBM2RCb29sICovCi0g ICBTVkdBM0RfUlNfVFdFRU5GQUNUT1IgICAgICAgICAgICAgICA9IDg4LCAgICAvKiBmbG9hdCAq LwotICAgU1ZHQTNEX1JTX0FOVElBTElBU0VETElORUVOQUJMRSAgICAgPSA4OSwgICAgLyogU1ZH QTNkQm9vbCAqLwotICAgU1ZHQTNEX1JTX0NPTE9SV1JJVEVFTkFCTEUxICAgICAgICAgPSA5MCwg ICAgLyogU1ZHQTNkQ29sb3JNYXNrICovCi0gICBTVkdBM0RfUlNfQ09MT1JXUklURUVOQUJMRTIg ICAgICAgICA9IDkxLCAgICAvKiBTVkdBM2RDb2xvck1hc2sgKi8KLSAgIFNWR0EzRF9SU19DT0xP UldSSVRFRU5BQkxFMyAgICAgICAgID0gOTIsICAgIC8qIFNWR0EzZENvbG9yTWFzayAqLwotICAg U1ZHQTNEX1JTX1NFUEFSQVRFQUxQSEFCTEVOREVOQUJMRSAgPSA5MywgICAgLyogU1ZHQTNkQm9v bCAqLwotICAgU1ZHQTNEX1JTX1NSQ0JMRU5EQUxQSEEgICAgICAgICAgICAgPSA5NCwgICAgLyog U1ZHQTNkQmxlbmRPcCAqLwotICAgU1ZHQTNEX1JTX0RTVEJMRU5EQUxQSEEgICAgICAgICAgICAg PSA5NSwgICAgLyogU1ZHQTNkQmxlbmRPcCAqLwotICAgU1ZHQTNEX1JTX0JMRU5ERVFVQVRJT05B TFBIQSAgICAgICAgPSA5NiwgICAgLyogU1ZHQTNkQmxlbmRFcXVhdGlvbiAqLwotICAgU1ZHQTNE X1JTX1RSQU5TUEFSRU5DWUFOVElBTElBUyAgICAgPSA5NywgICAgLyogU1ZHQTNkVHJhbnNwYXJl bmN5QW50aWFsaWFzVHlwZSAqLwotICAgU1ZHQTNEX1JTX0xJTkVBQSAgICAgICAgICAgICAgICAg ICAgPSA5OCwgICAgLyogU1ZHQTNkQm9vbCAqLwotICAgU1ZHQTNEX1JTX0xJTkVXSURUSCAgICAg ICAgICAgICAgICAgPSA5OSwgICAgLyogZmxvYXQgKi8KLSAgIFNWR0EzRF9SU19NQVgKLX0gU1ZH QTNkUmVuZGVyU3RhdGVOYW1lOwotCi10eXBlZGVmIGVudW0gewotICAgU1ZHQTNEX1RSQU5TUEFS RU5DWUFOVElBTElBU19OT1JNQUwgICAgICAgICAgICA9IDAsCi0gICBTVkdBM0RfVFJBTlNQQVJF TkNZQU5USUFMSUFTX0FMUEhBVE9DT1ZFUkFHRSAgID0gMSwKLSAgIFNWR0EzRF9UUkFOU1BBUkVO Q1lBTlRJQUxJQVNfU1VQRVJTQU1QTEUgICAgICAgPSAyLAotICAgU1ZHQTNEX1RSQU5TUEFSRU5D WUFOVElBTElBU19NQVgKLX0gU1ZHQTNkVHJhbnNwYXJlbmN5QW50aWFsaWFzVHlwZTsKLQotdHlw ZWRlZiBlbnVtIHsKLSAgIFNWR0EzRF9WRVJURVhNQVRFUklBTF9OT05FICAgICA9IDAsICAgIC8q IFVzZSB0aGUgdmFsdWUgaW4gdGhlIGN1cnJlbnQgbWF0ZXJpYWwgKi8KLSAgIFNWR0EzRF9WRVJU RVhNQVRFUklBTF9ESUZGVVNFICA9IDEsICAgIC8qIFVzZSB0aGUgdmFsdWUgaW4gdGhlIGRpZmZ1 c2UgY29tcG9uZW50ICovCi0gICBTVkdBM0RfVkVSVEVYTUFURVJJQUxfU1BFQ1VMQVIgPSAyLCAg ICAvKiBVc2UgdGhlIHZhbHVlIGluIHRoZSBzcGVjdWxhciBjb21wb25lbnQgKi8KLX0gU1ZHQTNk VmVydGV4TWF0ZXJpYWw7Ci0KLXR5cGVkZWYgZW51bSB7Ci0gICBTVkdBM0RfRklMTE1PREVfSU5W QUxJRCA9IDAsCi0gICBTVkdBM0RfRklMTE1PREVfUE9JTlQgICA9IDEsCi0gICBTVkdBM0RfRklM TE1PREVfTElORSAgICA9IDIsCi0gICBTVkdBM0RfRklMTE1PREVfRklMTCAgICA9IDMsCi0gICBT VkdBM0RfRklMTE1PREVfTUFYCi19IFNWR0EzZEZpbGxNb2RlVHlwZTsKLQotCi10eXBlZGVmCi11 bmlvbiB7Ci0gICBzdHJ1Y3QgewotICAgICAgdWludDE2ICAgbW9kZTsgICAgICAgLyogU1ZHQTNk RmlsbE1vZGVUeXBlICovCi0gICAgICB1aW50MTYgICBmYWNlOyAgICAgICAvKiBTVkdBM2RGYWNl ICovCi0gICB9OwotICAgdWludDMyIHVpbnRWYWx1ZTsKLX0gU1ZHQTNkRmlsbE1vZGU7Ci0KLXR5 cGVkZWYgZW51bSB7Ci0gICBTVkdBM0RfU0hBREVNT0RFX0lOVkFMSUQgPSAwLAotICAgU1ZHQTNE X1NIQURFTU9ERV9GTEFUICAgID0gMSwKLSAgIFNWR0EzRF9TSEFERU1PREVfU01PT1RIICA9IDIs Ci0gICBTVkdBM0RfU0hBREVNT0RFX1BIT05HICAgPSAzLCAgICAgLyogTm90IHN1cHBvcnRlZCAq LwotICAgU1ZHQTNEX1NIQURFTU9ERV9NQVgKLX0gU1ZHQTNkU2hhZGVNb2RlOwotCi10eXBlZGVm Ci11bmlvbiB7Ci0gICBzdHJ1Y3QgewotICAgICAgdWludDE2IHJlcGVhdDsKLSAgICAgIHVpbnQx NiBwYXR0ZXJuOwotICAgfTsKLSAgIHVpbnQzMiB1aW50VmFsdWU7Ci19IFNWR0EzZExpbmVQYXR0 ZXJuOwotCi10eXBlZGVmIGVudW0gewotICAgU1ZHQTNEX0JMRU5ET1BfSU5WQUxJRCAgICAgICAg ICAgID0gMCwKLSAgIFNWR0EzRF9CTEVORE9QX1pFUk8gICAgICAgICAgICAgICA9IDEsCi0gICBT VkdBM0RfQkxFTkRPUF9PTkUgICAgICAgICAgICAgICAgPSAyLAotICAgU1ZHQTNEX0JMRU5ET1Bf U1JDQ09MT1IgICAgICAgICAgID0gMywKLSAgIFNWR0EzRF9CTEVORE9QX0lOVlNSQ0NPTE9SICAg ICAgICA9IDQsCi0gICBTVkdBM0RfQkxFTkRPUF9TUkNBTFBIQSAgICAgICAgICAgPSA1LAotICAg U1ZHQTNEX0JMRU5ET1BfSU5WU1JDQUxQSEEgICAgICAgID0gNiwKLSAgIFNWR0EzRF9CTEVORE9Q X0RFU1RBTFBIQSAgICAgICAgICA9IDcsCi0gICBTVkdBM0RfQkxFTkRPUF9JTlZERVNUQUxQSEEg ICAgICAgPSA4LAotICAgU1ZHQTNEX0JMRU5ET1BfREVTVENPTE9SICAgICAgICAgID0gOSwKLSAg IFNWR0EzRF9CTEVORE9QX0lOVkRFU1RDT0xPUiAgICAgICA9IDEwLAotICAgU1ZHQTNEX0JMRU5E T1BfU1JDQUxQSEFTQVQgICAgICAgID0gMTEsCi0gICBTVkdBM0RfQkxFTkRPUF9CTEVOREZBQ1RP UiAgICAgICAgPSAxMiwKLSAgIFNWR0EzRF9CTEVORE9QX0lOVkJMRU5ERkFDVE9SICAgICA9IDEz LAotICAgU1ZHQTNEX0JMRU5ET1BfTUFYCi19IFNWR0EzZEJsZW5kT3A7Ci0KLXR5cGVkZWYgZW51 bSB7Ci0gICBTVkdBM0RfQkxFTkRFUV9JTlZBTElEICAgICAgICAgICAgPSAwLAotICAgU1ZHQTNE X0JMRU5ERVFfQUREICAgICAgICAgICAgICAgID0gMSwKLSAgIFNWR0EzRF9CTEVOREVRX1NVQlRS QUNUICAgICAgICAgICA9IDIsCi0gICBTVkdBM0RfQkxFTkRFUV9SRVZTVUJUUkFDVCAgICAgICAg PSAzLAotICAgU1ZHQTNEX0JMRU5ERVFfTUlOSU1VTSAgICAgICAgICAgID0gNCwKLSAgIFNWR0Ez RF9CTEVOREVRX01BWElNVU0gICAgICAgICAgICA9IDUsCi0gICBTVkdBM0RfQkxFTkRFUV9NQVgK LX0gU1ZHQTNkQmxlbmRFcXVhdGlvbjsKLQotdHlwZWRlZiBlbnVtIHsKLSAgIFNWR0EzRF9GUk9O VFdJTkRJTkdfSU5WQUxJRCA9IDAsCi0gICBTVkdBM0RfRlJPTlRXSU5ESU5HX0NXICAgICAgPSAx LAotICAgU1ZHQTNEX0ZST05UV0lORElOR19DQ1cgICAgID0gMiwKLSAgIFNWR0EzRF9GUk9OVFdJ TkRJTkdfTUFYCi19IFNWR0EzZEZyb250V2luZGluZzsKLQotdHlwZWRlZiBlbnVtIHsKLSAgIFNW R0EzRF9GQUNFX0lOVkFMSUQgID0gMCwKLSAgIFNWR0EzRF9GQUNFX05PTkUgICAgID0gMSwKLSAg IFNWR0EzRF9GQUNFX0ZST05UICAgID0gMiwKLSAgIFNWR0EzRF9GQUNFX0JBQ0sgICAgID0gMywK LSAgIFNWR0EzRF9GQUNFX0ZST05UX0JBQ0sgPSA0LAotICAgU1ZHQTNEX0ZBQ0VfTUFYCi19IFNW R0EzZEZhY2U7Ci0KLS8qCi0gKiBUaGUgb3JkZXIgYW5kIHRoZSB2YWx1ZXMgc2hvdWxkIG5vdCBi ZSBjaGFuZ2VkCi0gKi8KLQotdHlwZWRlZiBlbnVtIHsKLSAgIFNWR0EzRF9DTVBfSU5WQUxJRCAg ICAgICAgICAgICAgPSAwLAotICAgU1ZHQTNEX0NNUF9ORVZFUiAgICAgICAgICAgICAgICA9IDEs Ci0gICBTVkdBM0RfQ01QX0xFU1MgICAgICAgICAgICAgICAgID0gMiwKLSAgIFNWR0EzRF9DTVBf RVFVQUwgICAgICAgICAgICAgICAgPSAzLAotICAgU1ZHQTNEX0NNUF9MRVNTRVFVQUwgICAgICAg ICAgICA9IDQsCi0gICBTVkdBM0RfQ01QX0dSRUFURVIgICAgICAgICAgICAgID0gNSwKLSAgIFNW R0EzRF9DTVBfTk9URVFVQUwgICAgICAgICAgICAgPSA2LAotICAgU1ZHQTNEX0NNUF9HUkVBVEVS RVFVQUwgICAgICAgICA9IDcsCi0gICBTVkdBM0RfQ01QX0FMV0FZUyAgICAgICAgICAgICAgID0g OCwKLSAgIFNWR0EzRF9DTVBfTUFYCi19IFNWR0EzZENtcEZ1bmM7Ci0KLS8qCi0gKiBTVkdBM0Rf Rk9HRlVOQ18qIHNwZWNpZmllcyB0aGUgZm9nIGVxdWF0aW9uLCBvciBQRVJfVkVSVEVYIHdoaWNo IGFsbG93cwotICogdGhlIGZvZyBmYWN0b3IgdG8gYmUgc3BlY2lmaWVkIGluIHRoZSBhbHBoYSBj b21wb25lbnQgb2YgdGhlIHNwZWN1bGFyCi0gKiAoYS5rLmEuIHNlY29uZGFyeSkgdmVydGV4IGNv bG9yLgotICovCi10eXBlZGVmIGVudW0gewotICAgU1ZHQTNEX0ZPR0ZVTkNfSU5WQUxJRCAgICAg ICAgICA9IDAsCi0gICBTVkdBM0RfRk9HRlVOQ19FWFAgICAgICAgICAgICAgID0gMSwKLSAgIFNW R0EzRF9GT0dGVU5DX0VYUDIgICAgICAgICAgICAgPSAyLAotICAgU1ZHQTNEX0ZPR0ZVTkNfTElO RUFSICAgICAgICAgICA9IDMsCi0gICBTVkdBM0RfRk9HRlVOQ19QRVJfVkVSVEVYICAgICAgID0g NAotfSBTVkdBM2RGb2dGdW5jdGlvbjsKLQotLyoKLSAqIFNWR0EzRF9GT0dUWVBFXyogc3BlY2lm aWVzIGlmIGZvZyBmYWN0b3JzIGFyZSBjb21wdXRlZCBvbiBhIHBlci12ZXJ0ZXgKLSAqIG9yIHBl ci1waXhlbCBiYXNpcy4KLSAqLwotdHlwZWRlZiBlbnVtIHsKLSAgIFNWR0EzRF9GT0dUWVBFX0lO VkFMSUQgICAgICAgICAgPSAwLAotICAgU1ZHQTNEX0ZPR1RZUEVfVkVSVEVYICAgICAgICAgICA9 IDEsCi0gICBTVkdBM0RfRk9HVFlQRV9QSVhFTCAgICAgICAgICAgID0gMiwKLSAgIFNWR0EzRF9G T0dUWVBFX01BWCAgICAgICAgICAgICAgPSAzCi19IFNWR0EzZEZvZ1R5cGU7Ci0KLS8qCi0gKiBT VkdBM0RfRk9HQkFTRV8qIHNlbGVjdHMgZGVwdGggb3IgcmFuZ2UtYmFzZWQgZm9nLiBEZXB0aC1i YXNlZCBmb2cgaXMKLSAqIGNvbXB1dGVkIHVzaW5nIHRoZSBleWUgWiB2YWx1ZSBvZiBlYWNoIHBp eGVsIChvciB2ZXJ0ZXgpLCB3aGVyZWFzIHJhbmdlLQotICogYmFzZWQgZm9nIGlzIGNvbXB1dGVk IHVzaW5nIHRoZSBhY3R1YWwgZGlzdGFuY2UgKHJhbmdlKSB0byB0aGUgZXllLgotICovCi10eXBl ZGVmIGVudW0gewotICAgU1ZHQTNEX0ZPR0JBU0VfSU5WQUxJRCAgICAgICAgICA9IDAsCi0gICBT VkdBM0RfRk9HQkFTRV9ERVBUSEJBU0VEICAgICAgID0gMSwKLSAgIFNWR0EzRF9GT0dCQVNFX1JB TkdFQkFTRUQgICAgICAgPSAyLAotICAgU1ZHQTNEX0ZPR0JBU0VfTUFYICAgICAgICAgICAgICA9 IDMKLX0gU1ZHQTNkRm9nQmFzZTsKLQotdHlwZWRlZiBlbnVtIHsKLSAgIFNWR0EzRF9TVEVOQ0lM T1BfSU5WQUxJRCAgICAgICAgPSAwLAotICAgU1ZHQTNEX1NURU5DSUxPUF9LRUVQICAgICAgICAg ICA9IDEsCi0gICBTVkdBM0RfU1RFTkNJTE9QX1pFUk8gICAgICAgICAgID0gMiwKLSAgIFNWR0Ez RF9TVEVOQ0lMT1BfUkVQTEFDRSAgICAgICAgPSAzLAotICAgU1ZHQTNEX1NURU5DSUxPUF9JTkNS U0FUICAgICAgICA9IDQsCi0gICBTVkdBM0RfU1RFTkNJTE9QX0RFQ1JTQVQgICAgICAgID0gNSwK LSAgIFNWR0EzRF9TVEVOQ0lMT1BfSU5WRVJUICAgICAgICAgPSA2LAotICAgU1ZHQTNEX1NURU5D SUxPUF9JTkNSICAgICAgICAgICA9IDcsCi0gICBTVkdBM0RfU1RFTkNJTE9QX0RFQ1IgICAgICAg ICAgID0gOCwKLSAgIFNWR0EzRF9TVEVOQ0lMT1BfTUFYCi19IFNWR0EzZFN0ZW5jaWxPcDsKLQot dHlwZWRlZiBlbnVtIHsKLSAgIFNWR0EzRF9DTElQUExBTkVfMCAgICAgICAgICAgICAgPSAoMSA8 PCAwKSwKLSAgIFNWR0EzRF9DTElQUExBTkVfMSAgICAgICAgICAgICAgPSAoMSA8PCAxKSwKLSAg IFNWR0EzRF9DTElQUExBTkVfMiAgICAgICAgICAgICAgPSAoMSA8PCAyKSwKLSAgIFNWR0EzRF9D TElQUExBTkVfMyAgICAgICAgICAgICAgPSAoMSA8PCAzKSwKLSAgIFNWR0EzRF9DTElQUExBTkVf NCAgICAgICAgICAgICAgPSAoMSA8PCA0KSwKLSAgIFNWR0EzRF9DTElQUExBTkVfNSAgICAgICAg ICAgICAgPSAoMSA8PCA1KSwKLX0gU1ZHQTNkQ2xpcFBsYW5lczsKLQotdHlwZWRlZiBlbnVtIHsK LSAgIFNWR0EzRF9DTEVBUl9DT0xPUiAgICAgICAgICAgICAgPSAweDEsCi0gICBTVkdBM0RfQ0xF QVJfREVQVEggICAgICAgICAgICAgID0gMHgyLAotICAgU1ZHQTNEX0NMRUFSX1NURU5DSUwgICAg ICAgICAgICA9IDB4NAotfSBTVkdBM2RDbGVhckZsYWc7Ci0KLXR5cGVkZWYgZW51bSB7Ci0gICBT VkdBM0RfUlRfREVQVEggICAgICAgICAgICAgICAgID0gMCwKLSAgIFNWR0EzRF9SVF9TVEVOQ0lM ICAgICAgICAgICAgICAgPSAxLAotICAgU1ZHQTNEX1JUX0NPTE9SMCAgICAgICAgICAgICAgICA9 IDIsCi0gICBTVkdBM0RfUlRfQ09MT1IxICAgICAgICAgICAgICAgID0gMywKLSAgIFNWR0EzRF9S VF9DT0xPUjIgICAgICAgICAgICAgICAgPSA0LAotICAgU1ZHQTNEX1JUX0NPTE9SMyAgICAgICAg ICAgICAgICA9IDUsCi0gICBTVkdBM0RfUlRfQ09MT1I0ICAgICAgICAgICAgICAgID0gNiwKLSAg IFNWR0EzRF9SVF9DT0xPUjUgICAgICAgICAgICAgICAgPSA3LAotICAgU1ZHQTNEX1JUX0NPTE9S NiAgICAgICAgICAgICAgICA9IDgsCi0gICBTVkdBM0RfUlRfQ09MT1I3ICAgICAgICAgICAgICAg ID0gOSwKLSAgIFNWR0EzRF9SVF9NQVgsCi0gICBTVkdBM0RfUlRfSU5WQUxJRCAgICAgICAgICAg ICAgID0gKCh1aW50MzIpLTEpLAotfSBTVkdBM2RSZW5kZXJUYXJnZXRUeXBlOwotCi0jZGVmaW5l IFNWR0EzRF9NQVhfUlRfQ09MT1IgKFNWR0EzRF9SVF9DT0xPUjcgLSBTVkdBM0RfUlRfQ09MT1Iw ICsgMSkKLQotdHlwZWRlZgotdW5pb24gewotICAgc3RydWN0IHsKLSAgICAgIHVpbnQzMiAgcmVk ICAgOiAxOwotICAgICAgdWludDMyICBncmVlbiA6IDE7Ci0gICAgICB1aW50MzIgIGJsdWUgIDog MTsKLSAgICAgIHVpbnQzMiAgYWxwaGEgOiAxOwotICAgfTsKLSAgIHVpbnQzMiB1aW50VmFsdWU7 Ci19IFNWR0EzZENvbG9yTWFzazsKLQotdHlwZWRlZiBlbnVtIHsKLSAgIFNWR0EzRF9WQkxFTkRf RElTQUJMRSAgICAgICAgICAgID0gMCwKLSAgIFNWR0EzRF9WQkxFTkRfMVdFSUdIVCAgICAgICAg ICAgID0gMSwKLSAgIFNWR0EzRF9WQkxFTkRfMldFSUdIVCAgICAgICAgICAgID0gMiwKLSAgIFNW R0EzRF9WQkxFTkRfM1dFSUdIVCAgICAgICAgICAgID0gMywKLX0gU1ZHQTNkVmVydGV4QmxlbmRG bGFnczsKLQotdHlwZWRlZiBlbnVtIHsKLSAgIFNWR0EzRF9XUkFQQ09PUkRfMCAgID0gMSA8PCAw LAotICAgU1ZHQTNEX1dSQVBDT09SRF8xICAgPSAxIDw8IDEsCi0gICBTVkdBM0RfV1JBUENPT1JE XzIgICA9IDEgPDwgMiwKLSAgIFNWR0EzRF9XUkFQQ09PUkRfMyAgID0gMSA8PCAzLAotICAgU1ZH QTNEX1dSQVBDT09SRF9BTEwgPSAweEYsCi19IFNWR0EzZFdyYXBGbGFnczsKLQotLyoKLSAqIFNW R0FfM0RfQ01EX1RFWFRVUkVTVEFURSBUeXBlcy4gIEFsbCB2YWx1ZSB0eXBlcwotICogbXVzdCBm aXQgaW4gYSB1aW50MzIuCi0gKi8KLQotdHlwZWRlZiBlbnVtIHsKLSAgIFNWR0EzRF9UU19JTlZB TElEICAgICAgICAgICAgICAgICAgICA9IDAsCi0gICBTVkdBM0RfVFNfQklORF9URVhUVVJFICAg ICAgICAgICAgICAgPSAxLCAgICAvKiBTVkdBM2RTdXJmYWNlSWQgKi8KLSAgIFNWR0EzRF9UU19D T0xPUk9QICAgICAgICAgICAgICAgICAgICA9IDIsICAgIC8qIFNWR0EzZFRleHR1cmVDb21iaW5l ciAqLwotICAgU1ZHQTNEX1RTX0NPTE9SQVJHMSAgICAgICAgICAgICAgICAgID0gMywgICAgLyog U1ZHQTNkVGV4dHVyZUFyZ0RhdGEgKi8KLSAgIFNWR0EzRF9UU19DT0xPUkFSRzIgICAgICAgICAg ICAgICAgICA9IDQsICAgIC8qIFNWR0EzZFRleHR1cmVBcmdEYXRhICovCi0gICBTVkdBM0RfVFNf QUxQSEFPUCAgICAgICAgICAgICAgICAgICAgPSA1LCAgICAvKiBTVkdBM2RUZXh0dXJlQ29tYmlu ZXIgKi8KLSAgIFNWR0EzRF9UU19BTFBIQUFSRzEgICAgICAgICAgICAgICAgICA9IDYsICAgIC8q IFNWR0EzZFRleHR1cmVBcmdEYXRhICovCi0gICBTVkdBM0RfVFNfQUxQSEFBUkcyICAgICAgICAg ICAgICAgICAgPSA3LCAgICAvKiBTVkdBM2RUZXh0dXJlQXJnRGF0YSAqLwotICAgU1ZHQTNEX1RT X0FERFJFU1NVICAgICAgICAgICAgICAgICAgID0gOCwgICAgLyogU1ZHQTNkVGV4dHVyZUFkZHJl c3MgKi8KLSAgIFNWR0EzRF9UU19BRERSRVNTViAgICAgICAgICAgICAgICAgICA9IDksICAgIC8q IFNWR0EzZFRleHR1cmVBZGRyZXNzICovCi0gICBTVkdBM0RfVFNfTUlQRklMVEVSICAgICAgICAg ICAgICAgICAgPSAxMCwgICAvKiBTVkdBM2RUZXh0dXJlRmlsdGVyICovCi0gICBTVkdBM0RfVFNf TUFHRklMVEVSICAgICAgICAgICAgICAgICAgPSAxMSwgICAvKiBTVkdBM2RUZXh0dXJlRmlsdGVy ICovCi0gICBTVkdBM0RfVFNfTUlORklMVEVSICAgICAgICAgICAgICAgICAgPSAxMiwgICAvKiBT VkdBM2RUZXh0dXJlRmlsdGVyICovCi0gICBTVkdBM0RfVFNfQk9SREVSQ09MT1IgICAgICAgICAg ICAgICAgPSAxMywgICAvKiBTVkdBM2RDb2xvciAqLwotICAgU1ZHQTNEX1RTX1RFWENPT1JESU5E RVggICAgICAgICAgICAgID0gMTQsICAgLyogdWludDMyICovCi0gICBTVkdBM0RfVFNfVEVYVFVS RVRSQU5TRk9STUZMQUdTICAgICAgPSAxNSwgICAvKiBTVkdBM2RUZXhUcmFuc2Zvcm1GbGFncyAq LwotICAgU1ZHQTNEX1RTX1RFWENPT1JER0VOICAgICAgICAgICAgICAgID0gMTYsICAgLyogU1ZH QTNkVGV4dHVyZUNvb3JkR2VuICovCi0gICBTVkdBM0RfVFNfQlVNUEVOVk1BVDAwICAgICAgICAg ICAgICAgPSAxNywgICAvKiBmbG9hdCAqLwotICAgU1ZHQTNEX1RTX0JVTVBFTlZNQVQwMSAgICAg ICAgICAgICAgID0gMTgsICAgLyogZmxvYXQgKi8KLSAgIFNWR0EzRF9UU19CVU1QRU5WTUFUMTAg ICAgICAgICAgICAgICA9IDE5LCAgIC8qIGZsb2F0ICovCi0gICBTVkdBM0RfVFNfQlVNUEVOVk1B VDExICAgICAgICAgICAgICAgPSAyMCwgICAvKiBmbG9hdCAqLwotICAgU1ZHQTNEX1RTX1RFWFRV UkVfTUlQTUFQX0xFVkVMICAgICAgID0gMjEsICAgLyogdWludDMyICovCi0gICBTVkdBM0RfVFNf VEVYVFVSRV9MT0RfQklBUyAgICAgICAgICAgPSAyMiwgICAvKiBmbG9hdCAqLwotICAgU1ZHQTNE X1RTX1RFWFRVUkVfQU5JU09UUk9QSUNfTEVWRUwgID0gMjMsICAgLyogdWludDMyICovCi0gICBT VkdBM0RfVFNfQUREUkVTU1cgICAgICAgICAgICAgICAgICAgPSAyNCwgICAvKiBTVkdBM2RUZXh0 dXJlQWRkcmVzcyAqLwotCi0KLSAgIC8qCi0gICAgKiBTYW1wbGVyIEdhbW1hIExldmVsCi0gICAg KgotICAgICogU2FtcGxlciBnYW1tYSBlZmZlY3RzIHRoZSBjb2xvciBvZiBzYW1wbGVzIHRha2Vu IGZyb20gdGhlIHNhbXBsZXIuICBBCi0gICAgKiB2YWx1ZSBvZiAxLjAgd2lsbCBwcm9kdWNlIGxp bmVhciBzYW1wbGVzLiAgSWYgdGhlIHZhbHVlIGlzIDw9IDAuMCB0aGUKLSAgICAqIGdhbW1hIHZh bHVlIGlzIGlnbm9yZWQgYW5kIGEgbGluZWFyIHNwYWNlIGlzIHVzZWQuCi0gICAgKi8KLQotICAg U1ZHQTNEX1RTX0dBTU1BICAgICAgICAgICAgICAgICAgICAgID0gMjUsICAgLyogZmxvYXQgKi8K LSAgIFNWR0EzRF9UU19CVU1QRU5WTFNDQUxFICAgICAgICAgICAgICA9IDI2LCAgIC8qIGZsb2F0 ICovCi0gICBTVkdBM0RfVFNfQlVNUEVOVkxPRkZTRVQgICAgICAgICAgICAgPSAyNywgICAvKiBm bG9hdCAqLwotICAgU1ZHQTNEX1RTX0NPTE9SQVJHMCAgICAgICAgICAgICAgICAgID0gMjgsICAg LyogU1ZHQTNkVGV4dHVyZUFyZ0RhdGEgKi8KLSAgIFNWR0EzRF9UU19BTFBIQUFSRzAgICAgICAg ICAgICAgICAgICA9IDI5LCAgIC8qIFNWR0EzZFRleHR1cmVBcmdEYXRhICovCi0gICBTVkdBM0Rf VFNfTUFYCi19IFNWR0EzZFRleHR1cmVTdGF0ZU5hbWU7Ci0KLXR5cGVkZWYgZW51bSB7Ci0gICBT VkdBM0RfVENfSU5WQUxJRCAgICAgICAgICAgICAgICAgICA9IDAsCi0gICBTVkdBM0RfVENfRElT QUJMRSAgICAgICAgICAgICAgICAgICA9IDEsCi0gICBTVkdBM0RfVENfU0VMRUNUQVJHMSAgICAg ICAgICAgICAgICA9IDIsCi0gICBTVkdBM0RfVENfU0VMRUNUQVJHMiAgICAgICAgICAgICAgICA9 IDMsCi0gICBTVkdBM0RfVENfTU9EVUxBVEUgICAgICAgICAgICAgICAgICA9IDQsCi0gICBTVkdB M0RfVENfQUREICAgICAgICAgICAgICAgICAgICAgICA9IDUsCi0gICBTVkdBM0RfVENfQUREU0lH TkVEICAgICAgICAgICAgICAgICA9IDYsCi0gICBTVkdBM0RfVENfU1VCVFJBQ1QgICAgICAgICAg ICAgICAgICA9IDcsCi0gICBTVkdBM0RfVENfQkxFTkRURVhUVVJFQUxQSEEgICAgICAgICA9IDgs Ci0gICBTVkdBM0RfVENfQkxFTkRESUZGVVNFQUxQSEEgICAgICAgICA9IDksCi0gICBTVkdBM0Rf VENfQkxFTkRDVVJSRU5UQUxQSEEgICAgICAgICA9IDEwLAotICAgU1ZHQTNEX1RDX0JMRU5ERkFD VE9SQUxQSEEgICAgICAgICAgPSAxMSwKLSAgIFNWR0EzRF9UQ19NT0RVTEFURTJYICAgICAgICAg ICAgICAgID0gMTIsCi0gICBTVkdBM0RfVENfTU9EVUxBVEU0WCAgICAgICAgICAgICAgICA9IDEz LAotICAgU1ZHQTNEX1RDX0RTRFQgICAgICAgICAgICAgICAgICAgICAgPSAxNCwKLSAgIFNWR0Ez RF9UQ19ET1RQUk9EVUNUMyAgICAgICAgICAgICAgID0gMTUsCi0gICBTVkdBM0RfVENfQkxFTkRU RVhUVVJFQUxQSEFQTSAgICAgICA9IDE2LAotICAgU1ZHQTNEX1RDX0FERFNJR05FRDJYICAgICAg ICAgICAgICAgPSAxNywKLSAgIFNWR0EzRF9UQ19BRERTTU9PVEggICAgICAgICAgICAgICAgID0g MTgsCi0gICBTVkdBM0RfVENfUFJFTU9EVUxBVEUgICAgICAgICAgICAgICA9IDE5LAotICAgU1ZH QTNEX1RDX01PRFVMQVRFQUxQSEFfQUREQ09MT1IgICAgPSAyMCwKLSAgIFNWR0EzRF9UQ19NT0RV TEFURUNPTE9SX0FEREFMUEhBICAgID0gMjEsCi0gICBTVkdBM0RfVENfTU9EVUxBVEVJTlZBTFBI QV9BRERDT0xPUiA9IDIyLAotICAgU1ZHQTNEX1RDX01PRFVMQVRFSU5WQ09MT1JfQUREQUxQSEEg PSAyMywKLSAgIFNWR0EzRF9UQ19CVU1QRU5WTUFQTFVNSU5BTkNFICAgICAgID0gMjQsCi0gICBT VkdBM0RfVENfTVVMVElQTFlBREQgICAgICAgICAgICAgICA9IDI1LAotICAgU1ZHQTNEX1RDX0xF UlAgICAgICAgICAgICAgICAgICAgICAgPSAyNiwKLSAgIFNWR0EzRF9UQ19NQVgKLX0gU1ZHQTNk VGV4dHVyZUNvbWJpbmVyOwotCi0jZGVmaW5lIFNWR0EzRF9UQ19DQVBfQklUKHN2Z2EzZF90Y19v cCkgKHN2Z2EzZF90Y19vcCA/ICgxIDw8IChzdmdhM2RfdGNfb3AgLSAxKSkgOiAwKQotCi10eXBl ZGVmIGVudW0gewotICAgU1ZHQTNEX1RFWF9BRERSRVNTX0lOVkFMSUQgICAgPSAwLAotICAgU1ZH QTNEX1RFWF9BRERSRVNTX1dSQVAgICAgICAgPSAxLAotICAgU1ZHQTNEX1RFWF9BRERSRVNTX01J UlJPUiAgICAgPSAyLAotICAgU1ZHQTNEX1RFWF9BRERSRVNTX0NMQU1QICAgICAgPSAzLAotICAg U1ZHQTNEX1RFWF9BRERSRVNTX0JPUkRFUiAgICAgPSA0LAotICAgU1ZHQTNEX1RFWF9BRERSRVNT X01JUlJPUk9OQ0UgPSA1LAotICAgU1ZHQTNEX1RFWF9BRERSRVNTX0VER0UgICAgICAgPSA2LAot ICAgU1ZHQTNEX1RFWF9BRERSRVNTX01BWAotfSBTVkdBM2RUZXh0dXJlQWRkcmVzczsKLQotLyoK LSAqIFNWR0EzRF9URVhfRklMVEVSX05PTkUgYXMgdGhlIG1pbmlmaWNhdGlvbiBmaWx0ZXIgbWVh bnMgbWlwbWFwcGluZyBpcwotICogZGlzYWJsZWQsIGFuZCB0aGUgcmFzdGVyaXplciBzaG91bGQg dXNlIHRoZSBtYWduaWZpY2F0aW9uIGZpbHRlciBpbnN0ZWFkLgotICovCi10eXBlZGVmIGVudW0g ewotICAgU1ZHQTNEX1RFWF9GSUxURVJfTk9ORSAgICAgICAgICAgPSAwLAotICAgU1ZHQTNEX1RF WF9GSUxURVJfTkVBUkVTVCAgICAgICAgPSAxLAotICAgU1ZHQTNEX1RFWF9GSUxURVJfTElORUFS ICAgICAgICAgPSAyLAotICAgU1ZHQTNEX1RFWF9GSUxURVJfQU5JU09UUk9QSUMgICAgPSAzLAot ICAgU1ZHQTNEX1RFWF9GSUxURVJfRkxBVENVQklDICAgICAgPSA0LCAvKiBEZXByZWNhdGVkLCBu b3QgaW1wbGVtZW50ZWQgKi8KLSAgIFNWR0EzRF9URVhfRklMVEVSX0dBVVNTSUFOQ1VCSUMgID0g NSwgLyogRGVwcmVjYXRlZCwgbm90IGltcGxlbWVudGVkICovCi0gICBTVkdBM0RfVEVYX0ZJTFRF Ul9QWVJBTUlEQUxRVUFEICA9IDYsIC8qIE5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWQgKi8KLSAg IFNWR0EzRF9URVhfRklMVEVSX0dBVVNTSUFOUVVBRCAgID0gNywgLyogTm90IGN1cnJlbnRseSBp bXBsZW1lbnRlZCAqLwotICAgU1ZHQTNEX1RFWF9GSUxURVJfTUFYCi19IFNWR0EzZFRleHR1cmVG aWx0ZXI7Ci0KLXR5cGVkZWYgZW51bSB7Ci0gICBTVkdBM0RfVEVYX1RSQU5TRk9STV9PRkYgICAg PSAwLAotICAgU1ZHQTNEX1RFWF9UUkFOU0ZPUk1fUyAgICAgID0gKDEgPDwgMCksCi0gICBTVkdB M0RfVEVYX1RSQU5TRk9STV9UICAgICAgPSAoMSA8PCAxKSwKLSAgIFNWR0EzRF9URVhfVFJBTlNG T1JNX1IgICAgICA9ICgxIDw8IDIpLAotICAgU1ZHQTNEX1RFWF9UUkFOU0ZPUk1fUSAgICAgID0g KDEgPDwgMyksCi0gICBTVkdBM0RfVEVYX1BST0pFQ1RFRCAgICAgICAgPSAoMSA8PCAxNSksCi19 IFNWR0EzZFRleFRyYW5zZm9ybUZsYWdzOwotCi10eXBlZGVmIGVudW0gewotICAgU1ZHQTNEX1RF WENPT1JEX0dFTl9PRkYgICAgICAgICAgICAgID0gMCwKLSAgIFNWR0EzRF9URVhDT09SRF9HRU5f RVlFX1BPU0lUSU9OICAgICA9IDEsCi0gICBTVkdBM0RfVEVYQ09PUkRfR0VOX0VZRV9OT1JNQUwg ICAgICAgPSAyLAotICAgU1ZHQTNEX1RFWENPT1JEX0dFTl9SRUZMRUNUSU9OVkVDVE9SID0gMywK LSAgIFNWR0EzRF9URVhDT09SRF9HRU5fU1BIRVJFICAgICAgICAgICA9IDQsCi0gICBTVkdBM0Rf VEVYQ09PUkRfR0VOX01BWAotfSBTVkdBM2RUZXh0dXJlQ29vcmRHZW47Ci0KLS8qCi0gKiBUZXh0 dXJlIGFyZ3VtZW50IGNvbnN0YW50cyBmb3IgdGV4dHVyZSBjb21iaW5lcgotICovCi10eXBlZGVm IGVudW0gewotICAgU1ZHQTNEX1RBX0lOVkFMSUQgICAgPSAwLAotICAgU1ZHQTNEX1RBX0NPTlNU QU5UICAgPSAxLAotICAgU1ZHQTNEX1RBX1BSRVZJT1VTICAgPSAyLAotICAgU1ZHQTNEX1RBX0RJ RkZVU0UgICAgPSAzLAotICAgU1ZHQTNEX1RBX1RFWFRVUkUgICAgPSA0LAotICAgU1ZHQTNEX1RB X1NQRUNVTEFSICAgPSA1LAotICAgU1ZHQTNEX1RBX01BWAotfSBTVkdBM2RUZXh0dXJlQXJnRGF0 YTsKLQotI2RlZmluZSBTVkdBM0RfVE1fTUFTS19MRU4gNAotCi0vKiBNb2RpZmllcnMgZm9yIHRl eHR1cmUgYXJndW1lbnQgY29uc3RhbnRzIGRlZmluZWQgYWJvdmUuICovCi10eXBlZGVmIGVudW0g ewotICAgU1ZHQTNEX1RNX05PTkUgICAgICAgPSAwLAotICAgU1ZHQTNEX1RNX0FMUEhBICAgICAg PSAoMSA8PCBTVkdBM0RfVE1fTUFTS19MRU4pLAotICAgU1ZHQTNEX1RNX09ORV9NSU5VUyAgPSAo MiA8PCBTVkdBM0RfVE1fTUFTS19MRU4pLAotfSBTVkdBM2RUZXh0dXJlQXJnTW9kaWZpZXI7Ci0K LSNkZWZpbmUgU1ZHQTNEX0lOVkFMSURfSUQgICAgICAgICAoKHVpbnQzMiktMSkKLSNkZWZpbmUg U1ZHQTNEX01BWF9DTElQX1BMQU5FUyAgICA2Ci0KLS8qCi0gKiBUaGlzIGlzIHRoZSBsaW1pdCB0 byB0aGUgbnVtYmVyIG9mIGZpeGVkLWZ1bmN0aW9uIHRleHR1cmUKLSAqIHRyYW5zZm9ybXMgYW5k IHRleHR1cmUgY29vcmRpbmF0ZXMgd2UgY2FuIHN1cHBvcnQuIEl0IGRvZXMgKm5vdCoKLSAqIGNv cnJlc3BvbmQgdG8gdGhlIG51bWJlciBvZiB0ZXh0dXJlIGltYWdlIHVuaXRzIChzYW1wbGVycykg d2UKLSAqIHN1cHBvcnQhCi0gKi8KLSNkZWZpbmUgU1ZHQTNEX01BWF9URVhUVVJFX0NPT1JEUyA4 Ci0KLS8qCi0gKiBWZXJ0ZXggZGVjbGFyYXRpb25zCi0gKgotICogTm90ZXM6Ci0gKgotICogU1ZH QTNEX0RFQ0xVU0FHRV9QT1NJVElPTlQgaXMgZm9yIHByZS10cmFuc2Zvcm1lZCB2ZXJ0aWNlcy4g SWYgeW91Ci0gKiBkcmF3IHdpdGggYW55IFBPU0lUSU9OVCB2ZXJ0ZXggYXJyYXlzLCB0aGUgcHJv Z3JhbW1hYmxlIHZlcnRleAotICogcGlwZWxpbmUgd2lsbCBiZSBpbXBsaWNpdGx5IGRpc2FibGVk LiBEcmF3aW5nIHdpbGwgdGFrZSBwbGFjZSBhcyBpZgotICogbm8gdmVydGV4IHNoYWRlciB3YXMg Ym91bmQuCi0gKi8KLQotdHlwZWRlZiBlbnVtIHsKLSAgIFNWR0EzRF9ERUNMVVNBR0VfUE9TSVRJ T04gICAgID0gMCwKLSAgIFNWR0EzRF9ERUNMVVNBR0VfQkxFTkRXRUlHSFQsICAgICAgIC8qICAx ICovCi0gICBTVkdBM0RfREVDTFVTQUdFX0JMRU5ESU5ESUNFUywgICAgICAvKiAgMiAqLwotICAg U1ZHQTNEX0RFQ0xVU0FHRV9OT1JNQUwsICAgICAgICAgICAgLyogIDMgKi8KLSAgIFNWR0EzRF9E RUNMVVNBR0VfUFNJWkUsICAgICAgICAgICAgIC8qICA0ICovCi0gICBTVkdBM0RfREVDTFVTQUdF X1RFWENPT1JELCAgICAgICAgICAvKiAgNSAqLwotICAgU1ZHQTNEX0RFQ0xVU0FHRV9UQU5HRU5U LCAgICAgICAgICAgLyogIDYgKi8KLSAgIFNWR0EzRF9ERUNMVVNBR0VfQklOT1JNQUwsICAgICAg ICAgIC8qICA3ICovCi0gICBTVkdBM0RfREVDTFVTQUdFX1RFU1NGQUNUT1IsICAgICAgICAvKiAg OCAqLwotICAgU1ZHQTNEX0RFQ0xVU0FHRV9QT1NJVElPTlQsICAgICAgICAgLyogIDkgKi8KLSAg IFNWR0EzRF9ERUNMVVNBR0VfQ09MT1IsICAgICAgICAgICAgIC8qIDEwICovCi0gICBTVkdBM0Rf REVDTFVTQUdFX0ZPRywgICAgICAgICAgICAgICAvKiAxMSAqLwotICAgU1ZHQTNEX0RFQ0xVU0FH RV9ERVBUSCwgICAgICAgICAgICAgLyogMTIgKi8KLSAgIFNWR0EzRF9ERUNMVVNBR0VfU0FNUExF LCAgICAgICAgICAgIC8qIDEzICovCi0gICBTVkdBM0RfREVDTFVTQUdFX01BWAotfSBTVkdBM2RE ZWNsVXNhZ2U7Ci0KLXR5cGVkZWYgZW51bSB7Ci0gICBTVkdBM0RfREVDTE1FVEhPRF9ERUZBVUxU ICAgICA9IDAsCi0gICBTVkdBM0RfREVDTE1FVEhPRF9QQVJUSUFMVSwKLSAgIFNWR0EzRF9ERUNM TUVUSE9EX1BBUlRJQUxWLAotICAgU1ZHQTNEX0RFQ0xNRVRIT0RfQ1JPU1NVViwgICAgICAgICAg LyogTm9ybWFsICovCi0gICBTVkdBM0RfREVDTE1FVEhPRF9VViwKLSAgIFNWR0EzRF9ERUNMTUVU SE9EX0xPT0tVUCwgICAgICAgICAgIC8qIExvb2t1cCBhIGRpc3BsYWNlbWVudCBtYXAgKi8KLSAg IFNWR0EzRF9ERUNMTUVUSE9EX0xPT0tVUFBSRVNBTVBMRUQsIC8qIExvb2t1cCBhIHByZS1zYW1w bGVkIGRpc3BsYWNlbWVudCBtYXAgKi8KLX0gU1ZHQTNkRGVjbE1ldGhvZDsKLQotdHlwZWRlZiBl bnVtIHsKLSAgIFNWR0EzRF9ERUNMVFlQRV9GTE9BVDEgICAgICAgID0gIDAsCi0gICBTVkdBM0Rf REVDTFRZUEVfRkxPQVQyICAgICAgICA9ICAxLAotICAgU1ZHQTNEX0RFQ0xUWVBFX0ZMT0FUMyAg ICAgICAgPSAgMiwKLSAgIFNWR0EzRF9ERUNMVFlQRV9GTE9BVDQgICAgICAgID0gIDMsCi0gICBT VkdBM0RfREVDTFRZUEVfRDNEQ09MT1IgICAgICA9ICA0LAotICAgU1ZHQTNEX0RFQ0xUWVBFX1VC WVRFNCAgICAgICAgPSAgNSwKLSAgIFNWR0EzRF9ERUNMVFlQRV9TSE9SVDIgICAgICAgID0gIDYs Ci0gICBTVkdBM0RfREVDTFRZUEVfU0hPUlQ0ICAgICAgICA9ICA3LAotICAgU1ZHQTNEX0RFQ0xU WVBFX1VCWVRFNE4gICAgICAgPSAgOCwKLSAgIFNWR0EzRF9ERUNMVFlQRV9TSE9SVDJOICAgICAg ID0gIDksCi0gICBTVkdBM0RfREVDTFRZUEVfU0hPUlQ0TiAgICAgICA9IDEwLAotICAgU1ZHQTNE X0RFQ0xUWVBFX1VTSE9SVDJOICAgICAgPSAxMSwKLSAgIFNWR0EzRF9ERUNMVFlQRV9VU0hPUlQ0 TiAgICAgID0gMTIsCi0gICBTVkdBM0RfREVDTFRZUEVfVURFQzMgICAgICAgICA9IDEzLAotICAg U1ZHQTNEX0RFQ0xUWVBFX0RFQzNOICAgICAgICAgPSAxNCwKLSAgIFNWR0EzRF9ERUNMVFlQRV9G TE9BVDE2XzIgICAgID0gMTUsCi0gICBTVkdBM0RfREVDTFRZUEVfRkxPQVQxNl80ICAgICA9IDE2 LAotICAgU1ZHQTNEX0RFQ0xUWVBFX01BWCwKLX0gU1ZHQTNkRGVjbFR5cGU7Ci0KLS8qCi0gKiBU aGlzIHN0cnVjdHVyZSBpcyB1c2VkIGZvciB0aGUgZGl2aXNvciBmb3IgZ2VvbWV0cnkgaW5zdGFu Y2luZzsKLSAqIGl0J3MgYSBkaXJlY3QgdHJhbnNsYXRpb24gb2YgdGhlIERpcmVjdDNEIGVxdWl2 YWxlbnQuCi0gKi8KLXR5cGVkZWYgdW5pb24gewotICAgc3RydWN0IHsKLSAgICAgIC8qCi0gICAg ICAgKiBGb3IgaW5kZXggZGF0YSwgdGhpcyBudW1iZXIgcmVwcmVzZW50cyB0aGUgbnVtYmVyIG9m IGluc3RhbmNlcyB0byBkcmF3LgotICAgICAgICogRm9yIGluc3RhbmNlIGRhdGEsIHRoaXMgbnVt YmVyIHJlcHJlc2VudHMgdGhlIG51bWJlciBvZgotICAgICAgICogaW5zdGFuY2VzL3ZlcnRleCBp biB0aGlzIHN0cmVhbQotICAgICAgICovCi0gICAgICB1aW50MzIgY291bnQgOiAzMDsKLQotICAg ICAgLyoKLSAgICAgICAqIFRoaXMgaXMgMSBpZiB0aGlzIGlzIHN1cHBvc2VkIHRvIGJlIHRoZSBk YXRhIHRoYXQgaXMgcmVwZWF0ZWQgZm9yCi0gICAgICAgKiBldmVyeSBpbnN0YW5jZS4KLSAgICAg ICAqLwotICAgICAgdWludDMyIGluZGV4ZWREYXRhIDogMTsKLQotICAgICAgLyoKLSAgICAgICAq IFRoaXMgaXMgMSBpZiB0aGlzIGlzIHN1cHBvc2VkIHRvIGJlIHRoZSBwZXItaW5zdGFuY2UgZGF0 YS4KLSAgICAgICAqLwotICAgICAgdWludDMyIGluc3RhbmNlRGF0YSA6IDE7Ci0gICB9OwotCi0g ICB1aW50MzIgdmFsdWU7Ci19IFNWR0EzZFZlcnRleERpdmlzb3I7Ci0KLXR5cGVkZWYgZW51bSB7 Ci0gICBTVkdBM0RfUFJJTUlUSVZFX0lOVkFMSUQgICAgICAgICAgICAgICAgICAgICA9IDAsCi0g ICBTVkdBM0RfUFJJTUlUSVZFX1RSSUFOR0xFTElTVCAgICAgICAgICAgICAgICA9IDEsCi0gICBT VkdBM0RfUFJJTUlUSVZFX1BPSU5UTElTVCAgICAgICAgICAgICAgICAgICA9IDIsCi0gICBTVkdB M0RfUFJJTUlUSVZFX0xJTkVMSVNUICAgICAgICAgICAgICAgICAgICA9IDMsCi0gICBTVkdBM0Rf UFJJTUlUSVZFX0xJTkVTVFJJUCAgICAgICAgICAgICAgICAgICA9IDQsCi0gICBTVkdBM0RfUFJJ TUlUSVZFX1RSSUFOR0xFU1RSSVAgICAgICAgICAgICAgICA9IDUsCi0gICBTVkdBM0RfUFJJTUlU SVZFX1RSSUFOR0xFRkFOICAgICAgICAgICAgICAgICA9IDYsCi0gICBTVkdBM0RfUFJJTUlUSVZF X01BWAotfSBTVkdBM2RQcmltaXRpdmVUeXBlOwotCi10eXBlZGVmIGVudW0gewotICAgU1ZHQTNE X0NPT1JESU5BVEVfSU5WQUxJRCAgICAgICAgICAgICAgICAgICA9IDAsCi0gICBTVkdBM0RfQ09P UkRJTkFURV9MRUZUSEFOREVEICAgICAgICAgICAgICAgID0gMSwKLSAgIFNWR0EzRF9DT09SRElO QVRFX1JJR0hUSEFOREVEICAgICAgICAgICAgICAgPSAyLAotICAgU1ZHQTNEX0NPT1JESU5BVEVf TUFYCi19IFNWR0EzZENvb3JkaW5hdGVUeXBlOwotCi10eXBlZGVmIGVudW0gewotICAgU1ZHQTNE X1RSQU5TRk9STV9JTlZBTElEICAgICAgICAgICAgICAgICAgICAgPSAwLAotICAgU1ZHQTNEX1RS QU5TRk9STV9XT1JMRCAgICAgICAgICAgICAgICAgICAgICAgPSAxLAotICAgU1ZHQTNEX1RSQU5T Rk9STV9WSUVXICAgICAgICAgICAgICAgICAgICAgICAgPSAyLAotICAgU1ZHQTNEX1RSQU5TRk9S TV9QUk9KRUNUSU9OICAgICAgICAgICAgICAgICAgPSAzLAotICAgU1ZHQTNEX1RSQU5TRk9STV9U RVhUVVJFMCAgICAgICAgICAgICAgICAgICAgPSA0LAotICAgU1ZHQTNEX1RSQU5TRk9STV9URVhU VVJFMSAgICAgICAgICAgICAgICAgICAgPSA1LAotICAgU1ZHQTNEX1RSQU5TRk9STV9URVhUVVJF MiAgICAgICAgICAgICAgICAgICAgPSA2LAotICAgU1ZHQTNEX1RSQU5TRk9STV9URVhUVVJFMyAg ICAgICAgICAgICAgICAgICAgPSA3LAotICAgU1ZHQTNEX1RSQU5TRk9STV9URVhUVVJFNCAgICAg ICAgICAgICAgICAgICAgPSA4LAotICAgU1ZHQTNEX1RSQU5TRk9STV9URVhUVVJFNSAgICAgICAg ICAgICAgICAgICAgPSA5LAotICAgU1ZHQTNEX1RSQU5TRk9STV9URVhUVVJFNiAgICAgICAgICAg ICAgICAgICAgPSAxMCwKLSAgIFNWR0EzRF9UUkFOU0ZPUk1fVEVYVFVSRTcgICAgICAgICAgICAg ICAgICAgID0gMTEsCi0gICBTVkdBM0RfVFJBTlNGT1JNX1dPUkxEMSAgICAgICAgICAgICAgICAg ICAgICA9IDEyLAotICAgU1ZHQTNEX1RSQU5TRk9STV9XT1JMRDIgICAgICAgICAgICAgICAgICAg ICAgPSAxMywKLSAgIFNWR0EzRF9UUkFOU0ZPUk1fV09STEQzICAgICAgICAgICAgICAgICAgICAg ID0gMTQsCi0gICBTVkdBM0RfVFJBTlNGT1JNX01BWAotfSBTVkdBM2RUcmFuc2Zvcm1UeXBlOwot Ci10eXBlZGVmIGVudW0gewotICAgU1ZHQTNEX0xJR0hUVFlQRV9JTlZBTElEICAgICAgICAgICAg ICAgICAgICAgPSAwLAotICAgU1ZHQTNEX0xJR0hUVFlQRV9QT0lOVCAgICAgICAgICAgICAgICAg ICAgICAgPSAxLAotICAgU1ZHQTNEX0xJR0hUVFlQRV9TUE9UMSAgICAgICAgICAgICAgICAgICAg ICAgPSAyLCAvKiAxLWNvbmUsIGluIGRlZ3JlZXMgKi8KLSAgIFNWR0EzRF9MSUdIVFRZUEVfU1BP VDIgICAgICAgICAgICAgICAgICAgICAgID0gMywgLyogMi1jb25lLCBpbiByYWRpYW5zICovCi0g ICBTVkdBM0RfTElHSFRUWVBFX0RJUkVDVElPTkFMICAgICAgICAgICAgICAgICA9IDQsCi0gICBT VkdBM0RfTElHSFRUWVBFX01BWAotfSBTVkdBM2RMaWdodFR5cGU7Ci0KLXR5cGVkZWYgZW51bSB7 Ci0gICBTVkdBM0RfQ1VCRUZBQ0VfUE9TWCAgICAgICAgICAgICAgICAgICAgICAgICA9IDAsCi0g ICBTVkdBM0RfQ1VCRUZBQ0VfTkVHWCAgICAgICAgICAgICAgICAgICAgICAgICA9IDEsCi0gICBT VkdBM0RfQ1VCRUZBQ0VfUE9TWSAgICAgICAgICAgICAgICAgICAgICAgICA9IDIsCi0gICBTVkdB M0RfQ1VCRUZBQ0VfTkVHWSAgICAgICAgICAgICAgICAgICAgICAgICA9IDMsCi0gICBTVkdBM0Rf Q1VCRUZBQ0VfUE9TWiAgICAgICAgICAgICAgICAgICAgICAgICA9IDQsCi0gICBTVkdBM0RfQ1VC RUZBQ0VfTkVHWiAgICAgICAgICAgICAgICAgICAgICAgICA9IDUsCi19IFNWR0EzZEN1YmVGYWNl OwotCi10eXBlZGVmIGVudW0gewotICAgU1ZHQTNEX1NIQURFUlRZUEVfSU5WQUxJRCAgICAgICAg ICAgICAgICAgICAgPSAwLAotICAgU1ZHQTNEX1NIQURFUlRZUEVfTUlOICAgICAgICAgICAgICAg ICAgICAgICAgPSAxLAotICAgU1ZHQTNEX1NIQURFUlRZUEVfVlMgICAgICAgICAgICAgICAgICAg ICAgICAgPSAxLAotICAgU1ZHQTNEX1NIQURFUlRZUEVfUFMgICAgICAgICAgICAgICAgICAgICAg ICAgPSAyLAotICAgU1ZHQTNEX1NIQURFUlRZUEVfTUFYICAgICAgICAgICAgICAgICAgICAgICAg PSAzLAotICAgU1ZHQTNEX1NIQURFUlRZUEVfR1MgICAgICAgICAgICAgICAgICAgICAgICAgPSAz LAotfSBTVkdBM2RTaGFkZXJUeXBlOwotCi0jZGVmaW5lIFNWR0EzRF9OVU1fU0hBREVSVFlQRSAo U1ZHQTNEX1NIQURFUlRZUEVfTUFYIC0gU1ZHQTNEX1NIQURFUlRZUEVfTUlOKQotCi10eXBlZGVm IGVudW0gewotICAgU1ZHQTNEX0NPTlNUX1RZUEVfRkxPQVQgICAgICAgICAgICAgICAgICAgICAg PSAwLAotICAgU1ZHQTNEX0NPTlNUX1RZUEVfSU5UICAgICAgICAgICAgICAgICAgICAgICAgPSAx LAotICAgU1ZHQTNEX0NPTlNUX1RZUEVfQk9PTCAgICAgICAgICAgICAgICAgICAgICAgPSAyLAot ICAgU1ZHQTNEX0NPTlNUX1RZUEVfTUFYCi19IFNWR0EzZFNoYWRlckNvbnN0VHlwZTsKLQotI2Rl ZmluZSBTVkdBM0RfTUFYX1NVUkZBQ0VfRkFDRVMgICAgICAgICAgICAgICAgNgotCi10eXBlZGVm IGVudW0gewotICAgU1ZHQTNEX1NUUkVUQ0hfQkxUX1BPSU5UICAgICAgICAgICAgICAgICAgICAg PSAwLAotICAgU1ZHQTNEX1NUUkVUQ0hfQkxUX0xJTkVBUiAgICAgICAgICAgICAgICAgICAgPSAx LAotICAgU1ZHQTNEX1NUUkVUQ0hfQkxUX01BWAotfSBTVkdBM2RTdHJldGNoQmx0TW9kZTsKLQot dHlwZWRlZiBlbnVtIHsKLSAgIFNWR0EzRF9RVUVSWVRZUEVfT0NDTFVTSU9OICAgICAgICAgICAg ICAgICAgID0gMCwKLSAgIFNWR0EzRF9RVUVSWVRZUEVfTUFYCi19IFNWR0EzZFF1ZXJ5VHlwZTsK LQotdHlwZWRlZiBlbnVtIHsKLSAgIFNWR0EzRF9RVUVSWVNUQVRFX1BFTkRJTkcgICAgID0gMCwg ICAgICAvKiBXYWl0aW5nIG9uIHRoZSBob3N0IChzZXQgYnkgZ3Vlc3QpICovCi0gICBTVkdBM0Rf UVVFUllTVEFURV9TVUNDRUVERUQgICA9IDEsICAgICAgLyogQ29tcGxldGVkIHN1Y2Nlc3NmdWxs eSAoc2V0IGJ5IGhvc3QpICovCi0gICBTVkdBM0RfUVVFUllTVEFURV9GQUlMRUQgICAgICA9IDIs ICAgICAgLyogQ29tcGxldGVkIHVuc3VjY2Vzc2Z1bGx5IChzZXQgYnkgaG9zdCkgKi8KLSAgIFNW R0EzRF9RVUVSWVNUQVRFX05FVyAgICAgICAgID0gMywgICAgICAvKiBOZXZlciBzdWJtaXR0ZWQg KEZvciBndWVzdCB1c2Ugb25seSkgKi8KLX0gU1ZHQTNkUXVlcnlTdGF0ZTsKLQotdHlwZWRlZiBl bnVtIHsKLSAgIFNWR0EzRF9XUklURV9IT1NUX1ZSQU0gICAgICAgID0gMSwKLSAgIFNWR0EzRF9S RUFEX0hPU1RfVlJBTSAgICAgICAgID0gMiwKLX0gU1ZHQTNkVHJhbnNmZXJUeXBlOwotCi0vKgot ICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHZlcnRleCBhcnJheXMgd2UncmUgZ3VhcmFudGVlZCB0 byBzdXBwb3J0IGluCi0gKiBTVkdBXzNEX0NNRF9EUkFXUFJJTUlUSVZFUy4KLSAqLwotI2RlZmlu ZSBTVkdBM0RfTUFYX1ZFUlRFWF9BUlJBWVMgICAzMgotCi0vKgotICogVGhlIG1heGltdW0gbnVt YmVyIG9mIHByaW1pdGl2ZSByYW5nZXMgd2UncmUgZ3VhcmFudGVlZCB0byBzdXBwb3J0Ci0gKiBp biBTVkdBXzNEX0NNRF9EUkFXUFJJTUlUSVZFUy4KLSAqLwotI2RlZmluZSBTVkdBM0RfTUFYX0RS QVdfUFJJTUlUSVZFX1JBTkdFUyAzMgotCi0vKgotICogSWRlbnRpZmllcnMgZm9yIGNvbW1hbmRz IGluIHRoZSBjb21tYW5kIEZJRk8uCi0gKgotICogSURzIGJldHdlZW4gMTAwMCBhbmQgMTAzOSAo aW5jbHVzaXZlKSB3ZXJlIHVzZWQgYnkgb2Jzb2xldGUgdmVyc2lvbnMgb2YKLSAqIHRoZSBTVkdB M0QgcHJvdG9jb2wgYW5kIHJlbWFpbiByZXNlcnZlZDsgdGhleSBzaG91bGQgbm90IGJlIHVzZWQg aW4gdGhlCi0gKiBmdXR1cmUuCi0gKgotICogSURzIGJldHdlZW4gMTA0MCBhbmQgMTk5OSAoaW5j bHVzaXZlKSBhcmUgYXZhaWxhYmxlIGZvciB1c2UgYnkgdGhlCi0gKiBjdXJyZW50IFNWR0EzRCBw cm90b2NvbC4KLSAqCi0gKiBGSUZPIGNsaWVudHMgb3RoZXIgdGhhbiBTVkdBM0Qgc2hvdWxkIHN0 YXkgYmVsb3cgMTAwMCwgb3IgYXQgMjAwMAotICogYW5kIHVwLgotICovCi0KLSNkZWZpbmUgU1ZH QV8zRF9DTURfTEVHQUNZX0JBU0UgICAgICAgICAgICAxMDAwCi0jZGVmaW5lIFNWR0FfM0RfQ01E X0JBU0UgICAgICAgICAgICAgICAgICAgMTA0MAotCi0jZGVmaW5lIFNWR0FfM0RfQ01EX1NVUkZB Q0VfREVGSU5FICAgICAgICAgU1ZHQV8zRF9DTURfQkFTRSArIDAgICAgIC8qIERlcHJlY2F0ZWQg Ki8KLSNkZWZpbmUgU1ZHQV8zRF9DTURfU1VSRkFDRV9ERVNUUk9ZICAgICAgICBTVkdBXzNEX0NN RF9CQVNFICsgMQotI2RlZmluZSBTVkdBXzNEX0NNRF9TVVJGQUNFX0NPUFkgICAgICAgICAgIFNW R0FfM0RfQ01EX0JBU0UgKyAyCi0jZGVmaW5lIFNWR0FfM0RfQ01EX1NVUkZBQ0VfU1RSRVRDSEJM VCAgICAgU1ZHQV8zRF9DTURfQkFTRSArIDMKLSNkZWZpbmUgU1ZHQV8zRF9DTURfU1VSRkFDRV9E TUEgICAgICAgICAgICBTVkdBXzNEX0NNRF9CQVNFICsgNAotI2RlZmluZSBTVkdBXzNEX0NNRF9D T05URVhUX0RFRklORSAgICAgICAgIFNWR0FfM0RfQ01EX0JBU0UgKyA1Ci0jZGVmaW5lIFNWR0Ff M0RfQ01EX0NPTlRFWFRfREVTVFJPWSAgICAgICAgU1ZHQV8zRF9DTURfQkFTRSArIDYKLSNkZWZp bmUgU1ZHQV8zRF9DTURfU0VUVFJBTlNGT1JNICAgICAgICAgICBTVkdBXzNEX0NNRF9CQVNFICsg NwotI2RlZmluZSBTVkdBXzNEX0NNRF9TRVRaUkFOR0UgICAgICAgICAgICAgIFNWR0FfM0RfQ01E X0JBU0UgKyA4Ci0jZGVmaW5lIFNWR0FfM0RfQ01EX1NFVFJFTkRFUlNUQVRFICAgICAgICAgU1ZH QV8zRF9DTURfQkFTRSArIDkKLSNkZWZpbmUgU1ZHQV8zRF9DTURfU0VUUkVOREVSVEFSR0VUICAg ICAgICBTVkdBXzNEX0NNRF9CQVNFICsgMTAKLSNkZWZpbmUgU1ZHQV8zRF9DTURfU0VUVEVYVFVS RVNUQVRFICAgICAgICBTVkdBXzNEX0NNRF9CQVNFICsgMTEKLSNkZWZpbmUgU1ZHQV8zRF9DTURf U0VUTUFURVJJQUwgICAgICAgICAgICBTVkdBXzNEX0NNRF9CQVNFICsgMTIKLSNkZWZpbmUgU1ZH QV8zRF9DTURfU0VUTElHSFREQVRBICAgICAgICAgICBTVkdBXzNEX0NNRF9CQVNFICsgMTMKLSNk ZWZpbmUgU1ZHQV8zRF9DTURfU0VUTElHSFRFTkFCTEVEICAgICAgICBTVkdBXzNEX0NNRF9CQVNF ICsgMTQKLSNkZWZpbmUgU1ZHQV8zRF9DTURfU0VUVklFV1BPUlQgICAgICAgICAgICBTVkdBXzNE X0NNRF9CQVNFICsgMTUKLSNkZWZpbmUgU1ZHQV8zRF9DTURfU0VUQ0xJUFBMQU5FICAgICAgICAg ICBTVkdBXzNEX0NNRF9CQVNFICsgMTYKLSNkZWZpbmUgU1ZHQV8zRF9DTURfQ0xFQVIgICAgICAg ICAgICAgICAgICBTVkdBXzNEX0NNRF9CQVNFICsgMTcKLSNkZWZpbmUgU1ZHQV8zRF9DTURfUFJF U0VOVCAgICAgICAgICAgICAgICBTVkdBXzNEX0NNRF9CQVNFICsgMTggICAgLyogRGVwcmVjYXRl ZCAqLwotI2RlZmluZSBTVkdBXzNEX0NNRF9TSEFERVJfREVGSU5FICAgICAgICAgIFNWR0FfM0Rf Q01EX0JBU0UgKyAxOQotI2RlZmluZSBTVkdBXzNEX0NNRF9TSEFERVJfREVTVFJPWSAgICAgICAg IFNWR0FfM0RfQ01EX0JBU0UgKyAyMAotI2RlZmluZSBTVkdBXzNEX0NNRF9TRVRfU0hBREVSICAg ICAgICAgICAgIFNWR0FfM0RfQ01EX0JBU0UgKyAyMQotI2RlZmluZSBTVkdBXzNEX0NNRF9TRVRf U0hBREVSX0NPTlNUICAgICAgIFNWR0FfM0RfQ01EX0JBU0UgKyAyMgotI2RlZmluZSBTVkdBXzNE X0NNRF9EUkFXX1BSSU1JVElWRVMgICAgICAgIFNWR0FfM0RfQ01EX0JBU0UgKyAyMwotI2RlZmlu ZSBTVkdBXzNEX0NNRF9TRVRTQ0lTU09SUkVDVCAgICAgICAgIFNWR0FfM0RfQ01EX0JBU0UgKyAy NAotI2RlZmluZSBTVkdBXzNEX0NNRF9CRUdJTl9RVUVSWSAgICAgICAgICAgIFNWR0FfM0RfQ01E X0JBU0UgKyAyNQotI2RlZmluZSBTVkdBXzNEX0NNRF9FTkRfUVVFUlkgICAgICAgICAgICAgIFNW R0FfM0RfQ01EX0JBU0UgKyAyNgotI2RlZmluZSBTVkdBXzNEX0NNRF9XQUlUX0ZPUl9RVUVSWSAg ICAgICAgIFNWR0FfM0RfQ01EX0JBU0UgKyAyNwotI2RlZmluZSBTVkdBXzNEX0NNRF9QUkVTRU5U X1JFQURCQUNLICAgICAgIFNWR0FfM0RfQ01EX0JBU0UgKyAyOCAgICAvKiBEZXByZWNhdGVkICov Ci0jZGVmaW5lIFNWR0FfM0RfQ01EX0JMSVRfU1VSRkFDRV9UT19TQ1JFRU4gU1ZHQV8zRF9DTURf QkFTRSArIDI5Ci0jZGVmaW5lIFNWR0FfM0RfQ01EX1NVUkZBQ0VfREVGSU5FX1YyICAgICAgU1ZH QV8zRF9DTURfQkFTRSArIDMwCi0jZGVmaW5lIFNWR0FfM0RfQ01EX0dFTkVSQVRFX01JUE1BUFMg ICAgICAgU1ZHQV8zRF9DTURfQkFTRSArIDMxCi0jZGVmaW5lIFNWR0FfM0RfQ01EX0FDVElWQVRF X1NVUkZBQ0UgICAgICAgU1ZHQV8zRF9DTURfQkFTRSArIDQwCi0jZGVmaW5lIFNWR0FfM0RfQ01E X0RFQUNUSVZBVEVfU1VSRkFDRSAgICAgU1ZHQV8zRF9DTURfQkFTRSArIDQxCi0jZGVmaW5lIFNW R0FfM0RfQ01EX1NDUkVFTl9ETUEgICAgICAgICAgICAgICAxMDgyCi0jZGVmaW5lIFNWR0FfM0Rf Q01EX1NFVF9VTklUWV9TVVJGQUNFX0NPT0tJRSAxMDgzCi0jZGVmaW5lIFNWR0FfM0RfQ01EX09Q RU5fQ09OVEVYVF9TVVJGQUNFICAgICAxMDg0Ci0KLSNkZWZpbmUgU1ZHQV8zRF9DTURfTE9HSUNP UFNfQklUQkxUICAgICAgICAgIDEwODUKLSNkZWZpbmUgU1ZHQV8zRF9DTURfTE9HSUNPUFNfVFJB TlNCTFQgICAgICAgIDEwODYKLSNkZWZpbmUgU1ZHQV8zRF9DTURfTE9HSUNPUFNfU1RSRVRDSEJM VCAgICAgIDEwODcKLSNkZWZpbmUgU1ZHQV8zRF9DTURfTE9HSUNPUFNfQ09MT1JGSUxMICAgICAg IDEwODgKLSNkZWZpbmUgU1ZHQV8zRF9DTURfTE9HSUNPUFNfQUxQSEFCTEVORCAgICAgIDEwODkK LSNkZWZpbmUgU1ZHQV8zRF9DTURfTE9HSUNPUFNfQ0xFQVJUWVBFQkxFTkQgIDEwOTAKLQotI2Rl ZmluZSBTVkdBXzNEX0NNRF9TRVRfT1RBQkxFX0JBU0UgICAgICAgICAgMTA5MQotI2RlZmluZSBT VkdBXzNEX0NNRF9SRUFEQkFDS19PVEFCTEUgICAgICAgICAgMTA5MgotCi0jZGVmaW5lIFNWR0Ff M0RfQ01EX0RFRklORV9HQl9NT0IgICAgICAgICAgICAxMDkzCi0jZGVmaW5lIFNWR0FfM0RfQ01E X0RFU1RST1lfR0JfTU9CICAgICAgICAgICAxMDk0Ci0jZGVmaW5lIFNWR0FfM0RfQ01EX1JFREVG SU5FX0dCX01PQiAgICAgICAgICAxMDk1Ci0jZGVmaW5lIFNWR0FfM0RfQ01EX1VQREFURV9HQl9N T0JfTUFQUElORyAgICAxMDk2Ci0KLSNkZWZpbmUgU1ZHQV8zRF9DTURfREVGSU5FX0dCX1NVUkZB Q0UgICAgICAgIDEwOTcKLSNkZWZpbmUgU1ZHQV8zRF9DTURfREVTVFJPWV9HQl9TVVJGQUNFICAg ICAgIDEwOTgKLSNkZWZpbmUgU1ZHQV8zRF9DTURfQklORF9HQl9TVVJGQUNFICAgICAgICAgIDEw OTkKLSNkZWZpbmUgU1ZHQV8zRF9DTURfQ09ORF9CSU5EX0dCX1NVUkZBQ0UgICAgIDExMDAKLSNk ZWZpbmUgU1ZHQV8zRF9DTURfVVBEQVRFX0dCX0lNQUdFICAgICAgICAgIDExMDEKLSNkZWZpbmUg U1ZHQV8zRF9DTURfVVBEQVRFX0dCX1NVUkZBQ0UgICAgICAgIDExMDIKLSNkZWZpbmUgU1ZHQV8z RF9DTURfUkVBREJBQ0tfR0JfSU1BR0UgICAgICAgIDExMDMKLSNkZWZpbmUgU1ZHQV8zRF9DTURf UkVBREJBQ0tfR0JfU1VSRkFDRSAgICAgIDExMDQKLSNkZWZpbmUgU1ZHQV8zRF9DTURfSU5WQUxJ REFURV9HQl9JTUFHRSAgICAgIDExMDUKLSNkZWZpbmUgU1ZHQV8zRF9DTURfSU5WQUxJREFURV9H Ql9TVVJGQUNFICAgIDExMDYKLQotI2RlZmluZSBTVkdBXzNEX0NNRF9ERUZJTkVfR0JfQ09OVEVY VCAgICAgICAgMTEwNwotI2RlZmluZSBTVkdBXzNEX0NNRF9ERVNUUk9ZX0dCX0NPTlRFWFQgICAg ICAgMTEwOAotI2RlZmluZSBTVkdBXzNEX0NNRF9CSU5EX0dCX0NPTlRFWFQgICAgICAgICAgMTEw OQotI2RlZmluZSBTVkdBXzNEX0NNRF9SRUFEQkFDS19HQl9DT05URVhUICAgICAgMTExMAotI2Rl ZmluZSBTVkdBXzNEX0NNRF9JTlZBTElEQVRFX0dCX0NPTlRFWFQgICAgMTExMQotCi0jZGVmaW5l IFNWR0FfM0RfQ01EX0RFRklORV9HQl9TSEFERVIgICAgICAgICAxMTEyCi0jZGVmaW5lIFNWR0Ff M0RfQ01EX0RFU1RST1lfR0JfU0hBREVSICAgICAgICAxMTEzCi0jZGVmaW5lIFNWR0FfM0RfQ01E X0JJTkRfR0JfU0hBREVSICAgICAgICAgICAxMTE0Ci0KLSNkZWZpbmUgU1ZHQV8zRF9DTURfU0VU X09UQUJMRV9CQVNFNjQgICAgICAgIDExMTUKLQotI2RlZmluZSBTVkdBXzNEX0NNRF9CRUdJTl9H Ql9RVUVSWSAgICAgICAgICAgMTExNgotI2RlZmluZSBTVkdBXzNEX0NNRF9FTkRfR0JfUVVFUlkg ICAgICAgICAgICAgMTExNwotI2RlZmluZSBTVkdBXzNEX0NNRF9XQUlUX0ZPUl9HQl9RVUVSWSAg ICAgICAgMTExOAotCi0jZGVmaW5lIFNWR0FfM0RfQ01EX05PUCAgICAgICAgICAgICAgICAgICAg ICAxMTE5Ci0KLSNkZWZpbmUgU1ZHQV8zRF9DTURfRU5BQkxFX0dBUlQgICAgICAgICAgICAgIDEx MjAKLSNkZWZpbmUgU1ZHQV8zRF9DTURfRElTQUJMRV9HQVJUICAgICAgICAgICAgIDExMjEKLSNk ZWZpbmUgU1ZHQV8zRF9DTURfTUFQX01PQl9JTlRPX0dBUlQgICAgICAgIDExMjIKLSNkZWZpbmUg U1ZHQV8zRF9DTURfVU5NQVBfR0FSVF9SQU5HRSAgICAgICAgIDExMjMKLQotI2RlZmluZSBTVkdB XzNEX0NNRF9ERUZJTkVfR0JfU0NSRUVOVEFSR0VUICAgMTEyNAotI2RlZmluZSBTVkdBXzNEX0NN RF9ERVNUUk9ZX0dCX1NDUkVFTlRBUkdFVCAgMTEyNQotI2RlZmluZSBTVkdBXzNEX0NNRF9CSU5E X0dCX1NDUkVFTlRBUkdFVCAgICAgMTEyNgotI2RlZmluZSBTVkdBXzNEX0NNRF9VUERBVEVfR0Jf U0NSRUVOVEFSR0VUICAgMTEyNwotCi0jZGVmaW5lIFNWR0FfM0RfQ01EX1JFQURCQUNLX0dCX0lN QUdFX1BBUlRJQUwgICAxMTI4Ci0jZGVmaW5lIFNWR0FfM0RfQ01EX0lOVkFMSURBVEVfR0JfSU1B R0VfUEFSVElBTCAxMTI5Ci0KLSNkZWZpbmUgU1ZHQV8zRF9DTURfU0VUX0dCX1NIQURFUkNPTlNU U19JTkxJTkUgIDExMzAKLSNkZWZpbmUgU1ZHQV8zRF9DTURfR0JfU0NSRUVOX0RNQSAgICAgICAg ICAgICAgIDExMzEKLSNkZWZpbmUgU1ZHQV8zRF9DTURfQklORF9HQl9TVVJGQUNFX1dJVEhfUElU Q0ggIDExMzIKLSNkZWZpbmUgU1ZHQV8zRF9DTURfR0JfTU9CX0ZFTkNFICAgICAgICAgICAgICAg IDExMzMKLSNkZWZpbmUgU1ZHQV8zRF9DTURfREVGSU5FX0dCX1NVUkZBQ0VfVjIgICAgICAgIDEx MzQKLSNkZWZpbmUgU1ZHQV8zRF9DTURfREVGSU5FX0dCX01PQjY0ICAgICAgICAgIDExMzUKLSNk ZWZpbmUgU1ZHQV8zRF9DTURfUkVERUZJTkVfR0JfTU9CNjQgICAgICAgIDExMzYKLSNkZWZpbmUg U1ZHQV8zRF9DTURfTk9QX0VSUk9SICAgICAgICAgICAgICAgIDExMzcKLQotI2RlZmluZSBTVkdB XzNEX0NNRF9SRVNFUlZFRDEgICAgICAgICAgICAgICAgMTEzOAotI2RlZmluZSBTVkdBXzNEX0NN RF9SRVNFUlZFRDIgICAgICAgICAgICAgICAgMTEzOQotI2RlZmluZSBTVkdBXzNEX0NNRF9SRVNF UlZFRDMgICAgICAgICAgICAgICAgMTE0MAotI2RlZmluZSBTVkdBXzNEX0NNRF9SRVNFUlZFRDQg ICAgICAgICAgICAgICAgMTE0MQotI2RlZmluZSBTVkdBXzNEX0NNRF9SRVNFUlZFRDUgICAgICAg ICAgICAgICAgMTE0MgotCi0jZGVmaW5lIFNWR0FfM0RfQ01EX01BWCAgICAgICAgICAgICAgICAg ICAgICAxMTQyCi0jZGVmaW5lIFNWR0FfM0RfQ01EX0ZVVFVSRV9NQVggICAgICAgICAgICAgICAz MDAwCi0KLS8qCi0gKiBDb21tb24gc3Vic3RydWN0dXJlcyB1c2VkIGluIG11bHRpcGxlIEZJRk8g Y29tbWFuZHM6Ci0gKi8KLQotdHlwZWRlZiBzdHJ1Y3QgewotICAgdW5pb24gewotICAgICAgc3Ry dWN0IHsKLSAgICAgICAgIHVpbnQxNiAgZnVuY3Rpb247ICAgICAgIC8qIFNWR0EzZEZvZ0Z1bmN0 aW9uICovCi0gICAgICAgICB1aW50OCAgIHR5cGU7ICAgICAgICAgICAvKiBTVkdBM2RGb2dUeXBl ICovCi0gICAgICAgICB1aW50OCAgIGJhc2U7ICAgICAgICAgICAvKiBTVkdBM2RGb2dCYXNlICov Ci0gICAgICB9OwotICAgICAgdWludDMyICAgICB1aW50VmFsdWU7Ci0gICB9OwotfSBTVkdBM2RG b2dNb2RlOwotCi0vKgotICogVW5pcXVlbHkgaWRlbnRpZnkgb25lIGltYWdlIChhIDFELzJELzNE IGFycmF5KSBmcm9tIGEgc3VyZmFjZS4gVGhpcwotICogaXMgYSBzdXJmYWNlIElEIGFzIHdlbGwg YXMgZmFjZS9taXBtYXAgaW5kaWNlcy4KLSAqLwotCi10eXBlZGVmCi1zdHJ1Y3QgU1ZHQTNkU3Vy ZmFjZUltYWdlSWQgewotICAgdWludDMyICAgICAgICAgICAgICAgc2lkOwotICAgdWludDMyICAg ICAgICAgICAgICAgZmFjZTsKLSAgIHVpbnQzMiAgICAgICAgICAgICAgIG1pcG1hcDsKLX0gU1ZH QTNkU3VyZmFjZUltYWdlSWQ7Ci0KLXR5cGVkZWYKLXN0cnVjdCBTVkdBM2RHdWVzdEltYWdlIHsK LSAgIFNWR0FHdWVzdFB0ciAgICAgICAgIHB0cjsKLQotICAgLyoKLSAgICAqIEEgbm90ZSBvbiBp bnRlcnByZXRhdGlvbiBvZiBwaXRjaDogVGhpcyB2YWx1ZSBvZiBwaXRjaCBpcyB0aGUKLSAgICAq IG51bWJlciBvZiBieXRlcyBiZXR3ZWVuIHZlcnRpY2FsbHkgYWRqYWNlbnQgaW1hZ2UKLSAgICAq IGJsb2Nrcy4gTm9ybWFsbHkgdGhpcyBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGJldHdlZW4gdGhl IGZpcnN0Ci0gICAgKiBwaXhlbCBvZiB0d28gYWRqYWNlbnQgc2NhbmxpbmVzLiBXaXRoIGNvbXBy ZXNzZWQgdGV4dHVyZXMsCi0gICAgKiBob3dldmVyLCB0aGlzIG1heSByZXByZXNlbnQgdGhlIG51 bWJlciBvZiBieXRlcyBiZXR3ZWVuCi0gICAgKiBjb21wcmVzc2lvbiBibG9ja3MgcmF0aGVyIHRo YW4gYmV0d2VlbiByb3dzIG9mIHBpeGVscy4KLSAgICAqCi0gICAgKiBYWFg6IENvbXByZXNzZWQg dGV4dHVyZXMgY3VycmVudGx5IG11c3QgYmUgdGlnaHRseSBwYWNrZWQgaW4gZ3Vlc3QgbWVtb3J5 LgotICAgICoKLSAgICAqIElmIHRoZSBpbWFnZSBpcyAxLWRpbWVuc2lvbmFsLCBwaXRjaCBpcyBp Z25vcmVkLgotICAgICoKLSAgICAqIElmICdwaXRjaCcgaXMgemVybywgdGhlIFNWR0EzRCBkZXZp Y2UgY2FsY3VsYXRlcyBhIHBpdGNoIHZhbHVlCi0gICAgKiBhc3N1bWluZyBlYWNoIHJvdyBvZiBi bG9ja3MgaXMgdGlnaHRseSBwYWNrZWQuCi0gICAgKi8KLSAgIHVpbnQzMiBwaXRjaDsKLX0gU1ZH QTNkR3Vlc3RJbWFnZTsKLQotCi0vKgotICogRklGTyBjb21tYW5kIGZvcm1hdCBkZWZpbml0aW9u czoKLSAqLwotCi0vKgotICogVGhlIGRhdGEgc2l6ZSBoZWFkZXIgZm9sbG93aW5nIGNtZE51bSBm b3IgZXZlcnkgM2QgY29tbWFuZAotICovCi10eXBlZGVmCi1zdHJ1Y3QgewotICAgdWludDMyICAg ICAgICAgICAgICAgaWQ7Ci0gICB1aW50MzIgICAgICAgICAgICAgICBzaXplOwotfSBTVkdBM2RD bWRIZWFkZXI7Ci0KLS8qCi0gKiBBIHN1cmZhY2UgaXMgYSBoaWVyYXJjaHkgb2YgaG9zdCBWUkFN IHN1cmZhY2VzOiAxRCwgMkQsIG9yIDNELCB3aXRoCi0gKiBvcHRpb25hbCBtaXBtYXBzIGFuZCBj dWJlIGZhY2VzLgotICovCi0KLXR5cGVkZWYKLXN0cnVjdCB7Ci0gICB1aW50MzIgICAgICAgICAg ICAgICB3aWR0aDsKLSAgIHVpbnQzMiAgICAgICAgICAgICAgIGhlaWdodDsKLSAgIHVpbnQzMiAg ICAgICAgICAgICAgIGRlcHRoOwotfSBTVkdBM2RTaXplOwotCi10eXBlZGVmIGVudW0gewotICAg U1ZHQTNEX1NVUkZBQ0VfQ1VCRU1BUCAgICAgICAgICAgICAgPSAoMSA8PCAwKSwKLQotICAgLyoK LSAgICAqIEhJTlQgZmxhZ3MgYXJlIG5vdCBlbmZvcmNlZCBieSB0aGUgZGV2aWNlIGJ1dCBhcmUg dXNlZnVsIGZvcgotICAgICogcGVyZm9ybWFuY2UuCi0gICAgKi8KLSAgIFNWR0EzRF9TVVJGQUNF X0hJTlRfU1RBVElDICAgICAgICAgID0gKDEgPDwgMSksCi0gICBTVkdBM0RfU1VSRkFDRV9ISU5U X0RZTkFNSUMgICAgICAgICA9ICgxIDw8IDIpLAotICAgU1ZHQTNEX1NVUkZBQ0VfSElOVF9JTkRF WEJVRkZFUiAgICAgPSAoMSA8PCAzKSwKLSAgIFNWR0EzRF9TVVJGQUNFX0hJTlRfVkVSVEVYQlVG RkVSICAgID0gKDEgPDwgNCksCi0gICBTVkdBM0RfU1VSRkFDRV9ISU5UX1RFWFRVUkUgICAgICAg ICA9ICgxIDw8IDUpLAotICAgU1ZHQTNEX1NVUkZBQ0VfSElOVF9SRU5ERVJUQVJHRVQgICAgPSAo MSA8PCA2KSwKLSAgIFNWR0EzRF9TVVJGQUNFX0hJTlRfREVQVEhTVEVOQ0lMICAgID0gKDEgPDwg NyksCi0gICBTVkdBM0RfU1VSRkFDRV9ISU5UX1dSSVRFT05MWSAgICAgICA9ICgxIDw8IDgpLAot ICAgU1ZHQTNEX1NVUkZBQ0VfTUFTS0FCTEVfQU5USUFMSUFTICAgPSAoMSA8PCA5KSwKLSAgIFNW R0EzRF9TVVJGQUNFX0FVVE9HRU5NSVBNQVBTICAgICAgID0gKDEgPDwgMTApLAotICAgU1ZHQTNE X1NVUkZBQ0VfREVDT0RFX1JFTkRFUlRBUkdFVCAgID0gKDEgPDwgMTEpLAotCi0gICAvKgotICAg ICogSXMgdGhpcyBzdXJmYWNlIHVzaW5nIGEgYmFzZS1sZXZlbCBwaXRjaCBmb3IgaXQncyBtb2Ig YmFja2luZz8KLSAgICAqCi0gICAgKiBUaGlzIGZsYWcgaXMgbm90IGludGVuZGVkIHRvIGJlIHNl dCBieSBndWVzdC1kcml2ZXJzLCBidXQgaXMgaW5zdGVhZAotICAgICogc2V0IGJ5IHRoZSBkZXZp Y2Ugd2hlbiB0aGUgc3VyZmFjZSBpcyBib3VuZCB0byBhIG1vYiB3aXRoIGEgc3BlY2lmaWVkCi0g ICAgKiBwaXRjaC4KLSAgICAqLwotICAgU1ZHQTNEX1NVUkZBQ0VfTU9CX1BJVENIICAgICAgICAg ICAgID0gKDEgPDwgMTIpLAotCi0gICBTVkdBM0RfU1VSRkFDRV9JTkFDVElWRSAgICAgICAgICAg ICAgPSAoMSA8PCAxMyksCi0gICBTVkdBM0RfU1VSRkFDRV9ISU5UX1JUX0xPQ0tBQkxFICAgICAg PSAoMSA8PCAxNCksCi0gICBTVkdBM0RfU1VSRkFDRV9WT0xVTUUgICAgICAgICAgICAgICAgPSAo MSA8PCAxNSksCi0KLSAgIC8qCi0gICAgKiBSZXF1aXJlZCB0byBiZSBzZXQgb24gYSBzdXJmYWNl IHRvIGJpbmQgaXQgdG8gYSBzY3JlZW4gdGFyZ2V0LgotICAgICovCi0gICBTVkdBM0RfU1VSRkFD RV9TQ1JFRU5UQVJHRVQgICAgICAgICAgPSAoMSA8PCAxNiksCi0KLSAgIC8qCi0gICAgKiBBbGln biBpbWFnZXMgaW4gdGhlIGd1ZXN0LWJhY2tpbmcgbW9iIHRvIDE2LWJ5dGVzLgotICAgICovCi0g ICBTVkdBM0RfU1VSRkFDRV9BTElHTjE2ICAgICAgICAgICAgICAgPSAoMSA8PCAxNyksCi0KLSAg IFNWR0EzRF9TVVJGQUNFXzFEICAgICAgICAgICAgICAgICAgICA9ICgxIDw8IDE4KSwKLSAgIFNW R0EzRF9TVVJGQUNFX0FSUkFZICAgICAgICAgICAgICAgICA9ICgxIDw8IDE5KSwKLQotICAgLyoK LSAgICAqIEJpbmQgZmxhZ3MuCi0gICAgKiBUaGVzZSBhcmUgZW5mb3JjZWQgZm9yIGFueSBzdXJm YWNlIGRlZmluZWQgd2l0aCBEZWZpbmVHQlN1cmZhY2VfdjIuCi0gICAgKi8KLSAgIFNWR0EzRF9T VVJGQUNFX0JJTkRfVkVSVEVYX0JVRkZFUiAgICA9ICgxIDw8IDIwKSwKLSAgIFNWR0EzRF9TVVJG QUNFX0JJTkRfSU5ERVhfQlVGRkVSICAgICA9ICgxIDw8IDIxKSwKLSAgIFNWR0EzRF9TVVJGQUNF X0JJTkRfQ09OU1RBTlRfQlVGRkVSICA9ICgxIDw8IDIyKSwKLSAgIFNWR0EzRF9TVVJGQUNFX0JJ TkRfU0hBREVSX1JFU09VUkNFICA9ICgxIDw8IDIzKSwKLSAgIFNWR0EzRF9TVVJGQUNFX0JJTkRf UkVOREVSX1RBUkdFVCAgICA9ICgxIDw8IDI0KSwKLSAgIFNWR0EzRF9TVVJGQUNFX0JJTkRfREVQ VEhfU1RFTkNJTCAgICA9ICgxIDw8IDI1KSwKLSAgIFNWR0EzRF9TVVJGQUNFX0JJTkRfU1RSRUFN X09VVFBVVCAgICA9ICgxIDw8IDI2KSwKLQotICAgLyoKLSAgICAqIE1hcmtlciBmb3IgdGhlIGxh c3QgZGVmaW5lZCBiaXQuCi0gICAgKi8KLSAgIFNWR0EzRF9TVVJGQUNFX0ZMQUdfTUFYICAgICAg ICAgICAgICA9ICgxIDw8IDI3KSwKLX0gU1ZHQTNkU3VyZmFjZUZsYWdzOwotCi10eXBlZGVmCi1z dHJ1Y3QgewotICAgdWludDMyICAgICAgICAgICAgICAgbnVtTWlwTGV2ZWxzOwotfSBTVkdBM2RT dXJmYWNlRmFjZTsKLQotdHlwZWRlZgotc3RydWN0IHsKLSAgIHVpbnQzMiAgICAgICAgICAgICAg ICAgICAgICBzaWQ7Ci0gICBTVkdBM2RTdXJmYWNlRmxhZ3MgICAgICAgICAgc3VyZmFjZUZsYWdz OwotICAgU1ZHQTNkU3VyZmFjZUZvcm1hdCAgICAgICAgIGZvcm1hdDsKLSAgIC8qCi0gICAgKiBJ ZiBzdXJmYWNlRmxhZ3MgaGFzIFNWR0EzRF9TVVJGQUNFX0NVQkVNQVAgYml0IHNldCwgYWxsIFNW R0EzZFN1cmZhY2VGYWNlCi0gICAgKiBzdHJ1Y3R1cmVzIG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1 ZSBvZiBudW1NaXBMZXZlbHMgZmllbGQuCi0gICAgKiBPdGhlcndpc2UsIGFsbCBidXQgdGhlIGZp cnN0IFNWR0EzZFN1cmZhY2VGYWNlIHN0cnVjdHVyZXMgbXVzdCBoYXZlIHRoZQotICAgICogbnVt TWlwTGV2ZWxzIHNldCB0byAwLgotICAgICovCi0gICBTVkdBM2RTdXJmYWNlRmFjZSAgICAgICAg ICAgZmFjZVtTVkdBM0RfTUFYX1NVUkZBQ0VfRkFDRVNdOwotICAgLyoKLSAgICAqIEZvbGxvd2Vk IGJ5IGFuIFNWR0EzZFNpemUgc3RydWN0dXJlIGZvciBlYWNoIG1pcCBsZXZlbCBpbiBlYWNoIGZh Y2UuCi0gICAgKgotICAgICogQSBub3RlIG9uIHN1cmZhY2Ugc2l6ZXM6IFNpemVzIGFyZSBhbHdh eXMgc3BlY2lmaWVkIGluIHBpeGVscywKLSAgICAqIGV2ZW4gaWYgdGhlIHRydWUgc3VyZmFjZSBz aXplIGlzIG5vdCBhIG11bHRpcGxlIG9mIHRoZSBtaW5pbXVtCi0gICAgKiBibG9jayBzaXplIG9m IHRoZSBzdXJmYWNlJ3MgZm9ybWF0LiBGb3IgZXhhbXBsZSwgYSAzeDN4MSBEWFQxCi0gICAgKiBj b21wcmVzc2VkIHRleHR1cmUgd291bGQgYWN0dWFsbHkgYmUgc3RvcmVkIGFzIGEgNHg0eDEgaW1h Z2UgaW4KLSAgICAqIG1lbW9yeS4KLSAgICAqLwotfSBTVkdBM2RDbWREZWZpbmVTdXJmYWNlOyAg ICAgICAvKiBTVkdBXzNEX0NNRF9TVVJGQUNFX0RFRklORSAqLwotCi10eXBlZGVmCi1zdHJ1Y3Qg ewotICAgdWludDMyICAgICAgICAgICAgICAgICAgICAgIHNpZDsKLSAgIFNWR0EzZFN1cmZhY2VG bGFncyAgICAgICAgICBzdXJmYWNlRmxhZ3M7Ci0gICBTVkdBM2RTdXJmYWNlRm9ybWF0ICAgICAg ICAgZm9ybWF0OwotICAgLyoKLSAgICAqIElmIHN1cmZhY2VGbGFncyBoYXMgU1ZHQTNEX1NVUkZB Q0VfQ1VCRU1BUCBiaXQgc2V0LCBhbGwgU1ZHQTNkU3VyZmFjZUZhY2UKLSAgICAqIHN0cnVjdHVy ZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHZhbHVlIG9mIG51bU1pcExldmVscyBmaWVsZC4KLSAgICAq IE90aGVyd2lzZSwgYWxsIGJ1dCB0aGUgZmlyc3QgU1ZHQTNkU3VyZmFjZUZhY2Ugc3RydWN0dXJl cyBtdXN0IGhhdmUgdGhlCi0gICAgKiBudW1NaXBMZXZlbHMgc2V0IHRvIDAuCi0gICAgKi8KLSAg IFNWR0EzZFN1cmZhY2VGYWNlICAgICAgICAgICBmYWNlW1NWR0EzRF9NQVhfU1VSRkFDRV9GQUNF U107Ci0gICB1aW50MzIgICAgICAgICAgICAgICAgICAgICAgbXVsdGlzYW1wbGVDb3VudDsKLSAg IFNWR0EzZFRleHR1cmVGaWx0ZXIgICAgICAgICBhdXRvZ2VuRmlsdGVyOwotICAgLyoKLSAgICAq IEZvbGxvd2VkIGJ5IGFuIFNWR0EzZFNpemUgc3RydWN0dXJlIGZvciBlYWNoIG1pcCBsZXZlbCBp biBlYWNoIGZhY2UuCi0gICAgKgotICAgICogQSBub3RlIG9uIHN1cmZhY2Ugc2l6ZXM6IFNpemVz IGFyZSBhbHdheXMgc3BlY2lmaWVkIGluIHBpeGVscywKLSAgICAqIGV2ZW4gaWYgdGhlIHRydWUg c3VyZmFjZSBzaXplIGlzIG5vdCBhIG11bHRpcGxlIG9mIHRoZSBtaW5pbXVtCi0gICAgKiBibG9j ayBzaXplIG9mIHRoZSBzdXJmYWNlJ3MgZm9ybWF0LiBGb3IgZXhhbXBsZSwgYSAzeDN4MSBEWFQx Ci0gICAgKiBjb21wcmVzc2VkIHRleHR1cmUgd291bGQgYWN0dWFsbHkgYmUgc3RvcmVkIGFzIGEg NHg0eDEgaW1hZ2UgaW4KLSAgICAqIG1lbW9yeS4KLSAgICAqLwotfSBTVkdBM2RDbWREZWZpbmVT dXJmYWNlX3YyOyAgICAgLyogU1ZHQV8zRF9DTURfU1VSRkFDRV9ERUZJTkVfVjIgKi8KLQotdHlw ZWRlZgotc3RydWN0IHsKLSAgIHVpbnQzMiAgICAgICAgICAgICAgIHNpZDsKLX0gU1ZHQTNkQ21k RGVzdHJveVN1cmZhY2U7ICAgICAgLyogU1ZHQV8zRF9DTURfU1VSRkFDRV9ERVNUUk9ZICovCi0K LXR5cGVkZWYKLXN0cnVjdCB7Ci0gICB1aW50MzIgICAgICAgICAgICAgICBjaWQ7Ci19IFNWR0Ez ZENtZERlZmluZUNvbnRleHQ7ICAgICAgIC8qIFNWR0FfM0RfQ01EX0NPTlRFWFRfREVGSU5FICov Ci0KLXR5cGVkZWYKLXN0cnVjdCB7Ci0gICB1aW50MzIgICAgICAgICAgICAgICBjaWQ7Ci19IFNW R0EzZENtZERlc3Ryb3lDb250ZXh0OyAgICAgIC8qIFNWR0FfM0RfQ01EX0NPTlRFWFRfREVTVFJP WSAqLwotCi10eXBlZGVmCi1zdHJ1Y3QgewotICAgdWludDMyICAgICAgICAgICAgICAgY2lkOwot ICAgU1ZHQTNkQ2xlYXJGbGFnICAgICAgY2xlYXJGbGFnOwotICAgdWludDMyICAgICAgICAgICAg ICAgY29sb3I7Ci0gICBmbG9hdCAgICAgICAgICAgICAgICBkZXB0aDsKLSAgIHVpbnQzMiAgICAg ICAgICAgICAgIHN0ZW5jaWw7Ci0gICAvKiBGb2xsb3dlZCBieSB2YXJpYWJsZSBudW1iZXIgb2Yg U1ZHQTNkUmVjdCBzdHJ1Y3R1cmVzICovCi19IFNWR0EzZENtZENsZWFyOyAgICAgICAgICAgICAg IC8qIFNWR0FfM0RfQ01EX0NMRUFSICovCi0KLXR5cGVkZWYKLXN0cnVjdCBTVkdBM2RDb3B5UmVj dCB7Ci0gICB1aW50MzIgICAgICAgICAgICAgICB4OwotICAgdWludDMyICAgICAgICAgICAgICAg eTsKLSAgIHVpbnQzMiAgICAgICAgICAgICAgIHc7Ci0gICB1aW50MzIgICAgICAgICAgICAgICBo OwotICAgdWludDMyICAgICAgICAgICAgICAgc3JjeDsKLSAgIHVpbnQzMiAgICAgICAgICAgICAg IHNyY3k7Ci19IFNWR0EzZENvcHlSZWN0OwotCi10eXBlZGVmCi1zdHJ1Y3QgU1ZHQTNkQ29weUJv eCB7Ci0gICB1aW50MzIgICAgICAgICAgICAgICB4OwotICAgdWludDMyICAgICAgICAgICAgICAg eTsKLSAgIHVpbnQzMiAgICAgICAgICAgICAgIHo7Ci0gICB1aW50MzIgICAgICAgICAgICAgICB3 OwotICAgdWludDMyICAgICAgICAgICAgICAgaDsKLSAgIHVpbnQzMiAgICAgICAgICAgICAgIGQ7 Ci0gICB1aW50MzIgICAgICAgICAgICAgICBzcmN4OwotICAgdWludDMyICAgICAgICAgICAgICAg c3JjeTsKLSAgIHVpbnQzMiAgICAgICAgICAgICAgIHNyY3o7Ci19IFNWR0EzZENvcHlCb3g7Ci0K LXR5cGVkZWYKLXN0cnVjdCB7Ci0gICB1aW50MzIgICAgICAgICAgICAgICB4OwotICAgdWludDMy ICAgICAgICAgICAgICAgeTsKLSAgIHVpbnQzMiAgICAgICAgICAgICAgIHc7Ci0gICB1aW50MzIg ICAgICAgICAgICAgICBoOwotfSBTVkdBM2RSZWN0OwotCi10eXBlZGVmCi1zdHJ1Y3QgewotICAg dWludDMyICAgICAgICAgICAgICAgeDsKLSAgIHVpbnQzMiAgICAgICAgICAgICAgIHk7Ci0gICB1 aW50MzIgICAgICAgICAgICAgICB6OwotICAgdWludDMyICAgICAgICAgICAgICAgdzsKLSAgIHVp bnQzMiAgICAgICAgICAgICAgIGg7Ci0gICB1aW50MzIgICAgICAgICAgICAgICBkOwotfSBTVkdB M2RCb3g7Ci0KLXR5cGVkZWYKLXN0cnVjdCB7Ci0gICB1aW50MzIgICAgICAgICAgICAgICB4Owot ICAgdWludDMyICAgICAgICAgICAgICAgeTsKLSAgIHVpbnQzMiAgICAgICAgICAgICAgIHo7Ci19 IFNWR0EzZFBvaW50OwotCi10eXBlZGVmCi1zdHJ1Y3QgewotICAgU1ZHQTNkTGlnaHRUeXBlICAg ICAgdHlwZTsKLSAgIFNWR0EzZEJvb2wgICAgICAgICAgIGluV29ybGRTcGFjZTsKLSAgIGZsb2F0 ICAgICAgICAgICAgICAgIGRpZmZ1c2VbNF07Ci0gICBmbG9hdCAgICAgICAgICAgICAgICBzcGVj dWxhcls0XTsKLSAgIGZsb2F0ICAgICAgICAgICAgICAgIGFtYmllbnRbNF07Ci0gICBmbG9hdCAg ICAgICAgICAgICAgICBwb3NpdGlvbls0XTsKLSAgIGZsb2F0ICAgICAgICAgICAgICAgIGRpcmVj dGlvbls0XTsKLSAgIGZsb2F0ICAgICAgICAgICAgICAgIHJhbmdlOwotICAgZmxvYXQgICAgICAg ICAgICAgICAgZmFsbG9mZjsKLSAgIGZsb2F0ICAgICAgICAgICAgICAgIGF0dGVudWF0aW9uMDsK LSAgIGZsb2F0ICAgICAgICAgICAgICAgIGF0dGVudWF0aW9uMTsKLSAgIGZsb2F0ICAgICAgICAg ICAgICAgIGF0dGVudWF0aW9uMjsKLSAgIGZsb2F0ICAgICAgICAgICAgICAgIHRoZXRhOwotICAg ZmxvYXQgICAgICAgICAgICAgICAgcGhpOwotfSBTVkdBM2RMaWdodERhdGE7Ci0KLXR5cGVkZWYK LXN0cnVjdCB7Ci0gICB1aW50MzIgICAgICAgICAgICAgICBzaWQ7Ci0gICAvKiBGb2xsb3dlZCBi eSB2YXJpYWJsZSBudW1iZXIgb2YgU1ZHQTNkQ29weVJlY3Qgc3RydWN0dXJlcyAqLwotfSBTVkdB M2RDbWRQcmVzZW50OyAgICAgICAgICAgICAvKiBTVkdBXzNEX0NNRF9QUkVTRU5UICovCi0KLXR5 cGVkZWYKLXN0cnVjdCB7Ci0gICBTVkdBM2RSZW5kZXJTdGF0ZU5hbWUgICBzdGF0ZTsKLSAgIHVu aW9uIHsKLSAgICAgIHVpbnQzMiAgICAgICAgICAgICAgIHVpbnRWYWx1ZTsKLSAgICAgIGZsb2F0 ICAgICAgICAgICAgICAgIGZsb2F0VmFsdWU7Ci0gICB9OwotfSBTVkdBM2RSZW5kZXJTdGF0ZTsK LQotdHlwZWRlZgotc3RydWN0IHsKLSAgIHVpbnQzMiAgICAgICAgICAgICAgIGNpZDsKLSAgIC8q IEZvbGxvd2VkIGJ5IHZhcmlhYmxlIG51bWJlciBvZiBTVkdBM2RSZW5kZXJTdGF0ZSBzdHJ1Y3R1 cmVzICovCi19IFNWR0EzZENtZFNldFJlbmRlclN0YXRlOyAgICAgIC8qIFNWR0FfM0RfQ01EX1NF VFJFTkRFUlNUQVRFICovCi0KLXR5cGVkZWYKLXN0cnVjdCB7Ci0gICB1aW50MzIgICAgICAgICAg ICAgICAgIGNpZDsKLSAgIFNWR0EzZFJlbmRlclRhcmdldFR5cGUgdHlwZTsKLSAgIFNWR0EzZFN1 cmZhY2VJbWFnZUlkICAgdGFyZ2V0OwotfSBTVkdBM2RDbWRTZXRSZW5kZXJUYXJnZXQ7ICAgICAv KiBTVkdBXzNEX0NNRF9TRVRSRU5ERVJUQVJHRVQgKi8KLQotdHlwZWRlZgotc3RydWN0IHsKLSAg IFNWR0EzZFN1cmZhY2VJbWFnZUlkICBzcmM7Ci0gICBTVkdBM2RTdXJmYWNlSW1hZ2VJZCAgZGVz dDsKLSAgIC8qIEZvbGxvd2VkIGJ5IHZhcmlhYmxlIG51bWJlciBvZiBTVkdBM2RDb3B5Qm94IHN0 cnVjdHVyZXMgKi8KLX0gU1ZHQTNkQ21kU3VyZmFjZUNvcHk7ICAgICAgICAgICAgICAgLyogU1ZH QV8zRF9DTURfU1VSRkFDRV9DT1BZICovCi0KLXR5cGVkZWYKLXN0cnVjdCB7Ci0gICBTVkdBM2RT dXJmYWNlSW1hZ2VJZCAgc3JjOwotICAgU1ZHQTNkU3VyZmFjZUltYWdlSWQgIGRlc3Q7Ci0gICBT VkdBM2RCb3ggICAgICAgICAgICAgYm94U3JjOwotICAgU1ZHQTNkQm94ICAgICAgICAgICAgIGJv eERlc3Q7Ci0gICBTVkdBM2RTdHJldGNoQmx0TW9kZSAgbW9kZTsKLX0gU1ZHQTNkQ21kU3VyZmFj ZVN0cmV0Y2hCbHQ7ICAgICAgICAgLyogU1ZHQV8zRF9DTURfU1VSRkFDRV9TVFJFVENIQkxUICov Ci0KLXR5cGVkZWYKLXN0cnVjdCB7Ci0gICAvKgotICAgICogSWYgdGhlIGRpc2NhcmQgZmxhZyBp cyBwcmVzZW50IGluIGEgc3VyZmFjZSBETUEgb3BlcmF0aW9uLCB0aGUgaG9zdCBtYXkKLSAgICAq IGRpc2NhcmQgdGhlIGNvbnRlbnRzIG9mIHRoZSBjdXJyZW50IG1pcG1hcCBsZXZlbCBhbmQgZmFj ZSBvZiB0aGUgdGFyZ2V0Ci0gICAgKiBzdXJmYWNlIGJlZm9yZSBhcHBseWluZyB0aGUgc3VyZmFj ZSBETUEgY29udGVudHMuCi0gICAgKi8KLSAgIHVpbnQzMiBkaXNjYXJkIDogMTsKLQotICAgLyoK LSAgICAqIElmIHRoZSB1bnN5bmNocm9uaXplZCBmbGFnIGlzIHByZXNlbnQsIHRoZSBob3N0IG1h eSBwZXJmb3JtIHRoaXMgdXBsb2FkCi0gICAgKiB3aXRob3V0IHN5bmNpbmcgdG8gcGVuZGluZyBy ZWFkcyBvbiB0aGlzIHN1cmZhY2UuCi0gICAgKi8KLSAgIHVpbnQzMiB1bnN5bmNocm9uaXplZCA6 IDE7Ci0KLSAgIC8qCi0gICAgKiBHdWVzdHMgKk1VU1QqIHNldCB0aGUgcmVzZXJ2ZWQgYml0cyB0 byAwIGJlZm9yZSBzdWJtaXR0aW5nIHRoZSBjb21tYW5kCi0gICAgKiBzdWZmaXggYXMgZnV0dXJl IGZsYWdzIG1heSBvY2N1cHkgdGhlc2UgYml0cy4KLSAgICAqLwotICAgdWludDMyIHJlc2VydmVk IDogMzA7Ci19IFNWR0EzZFN1cmZhY2VETUFGbGFnczsKLQotdHlwZWRlZgotc3RydWN0IHsKLSAg IFNWR0EzZEd1ZXN0SW1hZ2UgICAgICBndWVzdDsKLSAgIFNWR0EzZFN1cmZhY2VJbWFnZUlkICBo b3N0OwotICAgU1ZHQTNkVHJhbnNmZXJUeXBlICAgIHRyYW5zZmVyOwotICAgLyoKLSAgICAqIEZv bGxvd2VkIGJ5IHZhcmlhYmxlIG51bWJlciBvZiBTVkdBM2RDb3B5Qm94IHN0cnVjdHVyZXMuIEZv ciBjb25zaXN0ZW5jeQotICAgICogaW4gYWxsIGNsaXBwaW5nIGxvZ2ljIGFuZCBjb29yZGluYXRl IHRyYW5zbGF0aW9uLCB3ZSBkZWZpbmUgdGhlCi0gICAgKiAic291cmNlIiBpbiBlYWNoIGNvcHlC b3ggYXMgdGhlIGd1ZXN0IGltYWdlIGFuZCB0aGUKLSAgICAqICJkZXN0aW5hdGlvbiIgYXMgdGhl IGhvc3QgaW1hZ2UsIHJlZ2FyZGxlc3Mgb2YgdHJhbnNmZXIKLSAgICAqIGRpcmVjdGlvbi4KLSAg ICAqCi0gICAgKiBGb3IgZWZmaWNpZW5jeSwgdGhlIFNWR0EzRCBkZXZpY2UgaXMgZnJlZSB0byBj b3B5IG1vcmUgZGF0YSB0aGFuCi0gICAgKiBzcGVjaWZpZWQuIEZvciBleGFtcGxlLCBpdCBtYXkg cm91bmQgY29weSBib3hlcyBvdXR3YXJkcyBzdWNoCi0gICAgKiB0aGF0IHRoZXkgbGllIG9uIHBh cnRpY3VsYXIgYWxpZ25tZW50IGJvdW5kYXJpZXMuCi0gICAgKi8KLX0gU1ZHQTNkQ21kU3VyZmFj ZURNQTsgICAgICAgICAgICAgICAgLyogU1ZHQV8zRF9DTURfU1VSRkFDRV9ETUEgKi8KLQotLyoK LSAqIFNWR0EzZENtZFN1cmZhY2VETUFTdWZmaXggLS0KLSAqCi0gKiAgICBUaGlzIGlzIGEgY29t bWFuZCBzdWZmaXggdGhhdCB3aWxsIGFwcGVhciBhZnRlciBhIFN1cmZhY2VETUEgY29tbWFuZCBp bgotICogICAgdGhlIEZJRk8uICBJdCBjb250YWlucyBzb21lIGV4dHJhIGluZm9ybWF0aW9uIHRo YXQgaG9zdHMgbWF5IHVzZSB0bwotICogICAgb3B0aW1pemUgcGVyZm9ybWFuY2Ugb3IgcHJvdGVj dCB0aGUgZ3Vlc3QuICBUaGlzIHN1ZmZpeCBleGlzdHMgdG8gcHJlc2VydmUKLSAqICAgIGJhY2t3 YXJkcyBjb21wYXRpYmlsaXR5IHdoaWxlIGFsc28gYWxsb3dpbmcgZm9yIG5ldyBmdW5jdGlvbmFs aXR5IHRvIGJlCi0gKiAgICBpbXBsZW1lbnRlZC4KLSAqLwotCi10eXBlZGVmCi1zdHJ1Y3Qgewot ICAgdWludDMyIHN1ZmZpeFNpemU7Ci0KLSAgIC8qCi0gICAgKiBUaGUgbWF4aW11bSBvZmZzZXQg aXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIG1heGltdW0gb2Zmc2V0IGZyb20gdGhlCi0gICAgKiBn dWVzdFB0ciBiYXNlIGFkZHJlc3MgdGhhdCB3aWxsIGJlIGFjY2Vzc2VkIG9yIHdyaXR0ZW4gdG8g ZHVyaW5nIHRoaXMKLSAgICAqIHN1cmZhY2VETUEuICBJZiB0aGUgc3VmZml4IGlzIHN1cHBvcnRl ZCwgdGhlIGhvc3Qgd2lsbCByZXNwZWN0IHRoaXMKLSAgICAqIGJvdW5kYXJ5IHdoaWxlIHBlcmZv cm1pbmcgc3VyZmFjZSBETUFzLgotICAgICoKLSAgICAqIERlZmF1bHRzIHRvIE1BWF9VSU5UMzIK LSAgICAqLwotICAgdWludDMyIG1heGltdW1PZmZzZXQ7Ci0KLSAgIC8qCi0gICAgKiBBIHNldCBv ZiBmbGFncyB0aGF0IGRlc2NyaWJlcyBvcHRpbWl6YXRpb25zIHRoYXQgdGhlIGhvc3QgbWF5IHBl cmZvcm0KLSAgICAqIHdoaWxlIHBlcmZvcm1pbmcgdGhpcyBzdXJmYWNlIERNQSBvcGVyYXRpb24u ICBUaGUgZ3Vlc3Qgc2hvdWxkIG5ldmVyIHJlbHkKLSAgICAqIG9uIGJlaGF2aW91ciB0aGF0IGlz IGRpZmZlcmVudCB3aGVuIHRoZXNlIGZsYWdzIGFyZSBzZXQgZm9yIGNvcnJlY3RuZXNzLgotICAg ICoKLSAgICAqIERlZmF1bHRzIHRvIDAKLSAgICAqLwotICAgU1ZHQTNkU3VyZmFjZURNQUZsYWdz IGZsYWdzOwotfSBTVkdBM2RDbWRTdXJmYWNlRE1BU3VmZml4OwotCi0vKgotICogU1ZHQV8zRF9D TURfRFJBV19QUklNSVRJVkVTIC0tCi0gKgotICogICBUaGlzIGNvbW1hbmQgaXMgdGhlIFNWR0Ez RCBkZXZpY2UncyBnZW5lcmljIGRyYXdpbmcgZW50cnkgcG9pbnQuCi0gKiAgIEl0IGNhbiBkcmF3 IG11bHRpcGxlIHJhbmdlcyBvZiBwcmltaXRpdmVzLCBvcHRpb25hbGx5IHVzaW5nIGFuCi0gKiAg IGluZGV4IGJ1ZmZlciwgdXNpbmcgYW4gYXJiaXRyYXJ5IGNvbGxlY3Rpb24gb2YgdmVydGV4IGJ1 ZmZlcnMuCi0gKgotICogICBFYWNoIFNWR0EzZFZlcnRleERlY2wgZGVmaW5lcyBhIGRpc3RpbmN0 IHZlcnRleCBhcnJheSB0byBiaW5kCi0gKiAgIGR1cmluZyB0aGlzIGRyYXcgY2FsbC4gVGhlIGRl Y2xhcmF0aW9ucyBzcGVjaWZ5IHdoaWNoIHN1cmZhY2UKLSAqICAgdGhlIHZlcnRleCBkYXRhIGxp dmVzIGluLCB3aGF0IHRoYXQgdmVydGV4IGRhdGEgaXMgdXNlZCBmb3IsCi0gKiAgIGFuZCBob3cg dG8gaW50ZXJwcmV0IGl0LgotICoKLSAqICAgRWFjaCBTVkdBM2RQcmltaXRpdmVSYW5nZSBkZWZp bmVzIGEgY29sbGVjdGlvbiBvZiBwcmltaXRpdmVzCi0gKiAgIHRvIHJlbmRlciB1c2luZyB0aGUg c2FtZSB2ZXJ0ZXggYXJyYXlzLiBBbiBpbmRleCBidWZmZXIgaXMKLSAqICAgb3B0aW9uYWwuCi0g Ki8KLQotdHlwZWRlZgotc3RydWN0IHsKLSAgIC8qCi0gICAgKiBBIHJhbmdlIGhpbnQgaXMgYW4g b3B0aW9uYWwgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIHJhbmdlIG9mIGluZGljZXMKLSAgICAqIGlu IGFuIFNWR0EzZEFycmF5IHRoYXQgd2lsbCBiZSB1c2VkLiBJZiAnbGFzdCcgaXMgemVybywgaXQg aXMgYXNzdW1lZAotICAgICogdGhhdCB0aGUgZW50aXJlIGFycmF5IHdpbGwgYmUgdXNlZC4KLSAg ICAqCi0gICAgKiBUaGVzZSBhcmUgb25seSBoaW50cy4gVGhlIFNWR0EzRCBkZXZpY2UgbWF5IHVz ZSB0aGVtIGZvcgotICAgICogcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uIGlmIHBvc3NpYmxlLCBi dXQgaXQncyBhbHNvIGFsbG93ZWQgdG8KLSAgICAqIGlnbm9yZSB0aGVzZSB2YWx1ZXMuCi0gICAg Ki8KLSAgIHVpbnQzMiAgICAgICAgICAgICAgIGZpcnN0OwotICAgdWludDMyICAgICAgICAgICAg ICAgbGFzdDsKLX0gU1ZHQTNkQXJyYXlSYW5nZUhpbnQ7Ci0KLXR5cGVkZWYKLXN0cnVjdCB7Ci0g ICAvKgotICAgICogRGVmaW5lIHRoZSBvcmlnaW4gYW5kIHNoYXBlIG9mIGEgdmVydGV4IG9yIGlu ZGV4IGFycmF5LiBCb3RoCi0gICAgKiAnb2Zmc2V0JyBhbmQgJ3N0cmlkZScgYXJlIGluIGJ5dGVz LiBUaGUgcHJvdmlkZWQgc3VyZmFjZSB3aWxsIGJlCi0gICAgKiByZWludGVycHJldGVkIGFzIGEg ZmxhdCBhcnJheSBvZiBieXRlcyBpbiB0aGUgc2FtZSBmb3JtYXQgdXNlZAotICAgICogYnkgc3Vy ZmFjZSBETUEgb3BlcmF0aW9ucy4gVG8gYXZvaWQgdW5uZWNlc3NhcnkgY29udmVyc2lvbnMsIHRo ZQotICAgICogc3VyZmFjZSBzaG91bGQgYmUgY3JlYXRlZCB3aXRoIHRoZSBTVkdBM0RfQlVGRkVS IGZvcm1hdC4KLSAgICAqCi0gICAgKiBJbmRleCAwIGluIHRoZSBhcnJheSBzdGFydHMgJ29mZnNl dCcgYnl0ZXMgaW50byB0aGUgc3VyZmFjZS4KLSAgICAqIEluZGV4IDEgYmVnaW5zIGF0IGJ5dGUg J29mZnNldCArIHN0cmlkZScsIGV0Yy4gQXJyYXkgaW5kaWNlcyBtYXkKLSAgICAqIG5vdCBiZSBu ZWdhdGl2ZS4KLSAgICAqLwotICAgdWludDMyICAgICAgICAgICAgICAgc3VyZmFjZUlkOwotICAg dWludDMyICAgICAgICAgICAgICAgb2Zmc2V0OwotICAgdWludDMyICAgICAgICAgICAgICAgc3Ry aWRlOwotfSBTVkdBM2RBcnJheTsKLQotdHlwZWRlZgotc3RydWN0IHsKLSAgIC8qCi0gICAgKiBE ZXNjcmliZSBhIHZlcnRleCBhcnJheSdzIGRhdGEgdHlwZSwgYW5kIGRlZmluZSBob3cgaXQgaXMg dG8gYmUKLSAgICAqIHVzZWQgYnkgdGhlIGZpeGVkIGZ1bmN0aW9uIHBpcGVsaW5lIG9yIHRoZSB2 ZXJ0ZXggc2hhZGVyLiBJdAotICAgICogaXNuJ3QgdXNlZnVsIHRvIGhhdmUgdHdvIFZlcnRleERl Y2xzIHdpdGggdGhlIHNhbWUKLSAgICAqIFZlcnRleEFycmF5SWRlbnRpdHkgaW4gb25lIGRyYXcg Y2FsbC4KLSAgICAqLwotICAgU1ZHQTNkRGVjbFR5cGUgICAgICAgdHlwZTsKLSAgIFNWR0EzZERl Y2xNZXRob2QgICAgIG1ldGhvZDsKLSAgIFNWR0EzZERlY2xVc2FnZSAgICAgIHVzYWdlOwotICAg dWludDMyICAgICAgICAgICAgICAgdXNhZ2VJbmRleDsKLX0gU1ZHQTNkVmVydGV4QXJyYXlJZGVu dGl0eTsKLQotdHlwZWRlZgotc3RydWN0IHsKLSAgIFNWR0EzZFZlcnRleEFycmF5SWRlbnRpdHkg IGlkZW50aXR5OwotICAgU1ZHQTNkQXJyYXkgICAgICAgICAgICAgICAgYXJyYXk7Ci0gICBTVkdB M2RBcnJheVJhbmdlSGludCAgICAgICByYW5nZUhpbnQ7Ci19IFNWR0EzZFZlcnRleERlY2w7Ci0K LXR5cGVkZWYKLXN0cnVjdCB7Ci0gICAvKgotICAgICogRGVmaW5lIGEgZ3JvdXAgb2YgcHJpbWl0 aXZlcyB0byByZW5kZXIsIGZyb20gc2VxdWVudGlhbCBpbmRpY2VzLgotICAgICoKLSAgICAqIFRo ZSB2YWx1ZSBvZiAncHJpbWl0aXZlVHlwZScgYW5kICdwcmltaXRpdmVDb3VudCcgaW1wbHkgdGhl Ci0gICAgKiB0b3RhbCBudW1iZXIgb2YgdmVydGljZXMgdGhhdCB3aWxsIGJlIHJlbmRlcmVkLgot ICAgICovCi0gICBTVkdBM2RQcmltaXRpdmVUeXBlICBwcmltVHlwZTsKLSAgIHVpbnQzMiAgICAg ICAgICAgICAgIHByaW1pdGl2ZUNvdW50OwotCi0gICAvKgotICAgICogT3B0aW9uYWwgaW5kZXgg YnVmZmVyLiBJZiBpbmRleEFycmF5LnN1cmZhY2VJZCBpcwotICAgICogU1ZHQTNEX0lOVkFMSURf SUQsIHdlIHJlbmRlciB3aXRob3V0IGFuIGluZGV4IGJ1ZmZlci4gUmVuZGVyaW5nCi0gICAgKiB3 aXRob3V0IGFuIGluZGV4IGJ1ZmZlciBpcyBpZGVudGljYWwgdG8gcmVuZGVyaW5nIHdpdGggYW4g aW5kZXgKLSAgICAqIGJ1ZmZlciBjb250YWluaW5nIHRoZSBzZXF1ZW5jZSBbMCwgMSwgMiwgMywg Li4uXS4KLSAgICAqCi0gICAgKiBJZiBhbiBpbmRleCBidWZmZXIgaXMgaW4gdXNlLCBpbmRleFdp ZHRoIHNwZWNpZmllcyB0aGUgd2lkdGggaW4KLSAgICAqIGJ5dGVzIG9mIGVhY2ggaW5kZXggdmFs dWUuIEl0IG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvCi0gICAgKiBpbmRleEFycmF5LnN0 cmlkZS4KLSAgICAqCi0gICAgKiAoQ3VycmVudGx5LCB0aGUgU1ZHQTNEIGRldmljZSByZXF1aXJl cyBpbmRleCBidWZmZXJzIHRvIGJlIHRpZ2h0bHkKLSAgICAqIHBhY2tlZC4gSW4gb3RoZXIgd29y ZHMsIGluZGV4V2lkdGggPT0gaW5kZXhBcnJheS5zdHJpZGUpCi0gICAgKi8KLSAgIFNWR0EzZEFy cmF5ICAgICAgICAgIGluZGV4QXJyYXk7Ci0gICB1aW50MzIgICAgICAgICAgICAgICBpbmRleFdp ZHRoOwotCi0gICAvKgotICAgICogT3B0aW9uYWwgaW5kZXggYmlhcy4gVGhpcyBudW1iZXIgaXMg YWRkZWQgdG8gYWxsIGluZGljZXMgZnJvbQotICAgICogaW5kZXhBcnJheSBiZWZvcmUgdGhleSBh cmUgdXNlZCBhcyB2ZXJ0ZXggYXJyYXkgaW5kaWNlcy4gVGhpcwotICAgICogY2FuIGJlIHVzZWQg aW4gbXVsdGlwbGUgd2F5czoKLSAgICAqCi0gICAgKiAgLSBXaGVuIG5vdCB1c2luZyBhbiBpbmRl eEFycmF5LCB0aGlzIGJpYXMgY2FuIGJlIHVzZWQgdG8KLSAgICAqICAgIHNwZWNpZnkgd2hlcmUg aW4gdGhlIHZlcnRleCBhcnJheXMgdG8gYmVnaW4gcmVuZGVyaW5nLgotICAgICoKLSAgICAqICAt IEEgcG9zaXRpdmUgbnVtYmVyIGhlcmUgaXMgZXF1aXZhbGVudCB0byBpbmNyZWFzaW5nIHRoZQot ICAgICogICAgb2Zmc2V0IGluIGVhY2ggdmVydGV4IGFycmF5LgotICAgICoKLSAgICAqICAtIEEg bmVnYXRpdmUgbnVtYmVyIGNhbiBiZSB1c2VkIHRvIHJlbmRlciB1c2luZyBhIHNtYWxsCi0gICAg KiAgICB2ZXJ0ZXggYXJyYXkgYW5kIGFuIGluZGV4IGJ1ZmZlciB0aGF0IGNvbnRhaW5zIGxhcmdl Ci0gICAgKiAgICB2YWx1ZXMuIFRoaXMgbWF5IGJlIHVzZWQgYnkgc29tZSBhcHBsaWNhdGlvbnMg dGhhdAotICAgICogICAgY3JvcCBhIHZlcnRleCBidWZmZXIgd2l0aG91dCBtb2RpZnlpbmcgdGhl aXIgaW5kZXgKLSAgICAqICAgIGJ1ZmZlci4KLSAgICAqCi0gICAgKiBOb3RlIHRoYXQgcmVuZGVy aW5nIHdpdGggYSBuZWdhdGl2ZSBiaWFzIHZhbHVlIG1heSBiZSBzbG93ZXIgYW5kCi0gICAgKiB1 c2UgbW9yZSBtZW1vcnkgdGhhbiByZW5kZXJpbmcgd2l0aCBhIHBvc2l0aXZlIG9yIHplcm8gYmlh cy4KLSAgICAqLwotICAgaW50MzIgICAgICAgICAgICAgICAgaW5kZXhCaWFzOwotfSBTVkdBM2RQ cmltaXRpdmVSYW5nZTsKLQotdHlwZWRlZgotc3RydWN0IHsKLSAgIHVpbnQzMiAgICAgICAgICAg ICAgIGNpZDsKLSAgIHVpbnQzMiAgICAgICAgICAgICAgIG51bVZlcnRleERlY2xzOwotICAgdWlu dDMyICAgICAgICAgICAgICAgbnVtUmFuZ2VzOwotCi0gICAvKgotICAgICogVGhlcmUgYXJlIHR3 byB2YXJpYWJsZSBzaXplIGFycmF5cyBhZnRlciB0aGUKLSAgICAqIFNWR0EzZENtZERyYXdQcmlt aXRpdmVzIHN0cnVjdHVyZS4gSW4gb3JkZXIsCi0gICAgKiB0aGV5IGFyZToKLSAgICAqCi0gICAg KiAxLiBTVkdBM2RWZXJ0ZXhEZWNsLCBxdWFudGl0eSAnbnVtVmVydGV4RGVjbHMnLCBidXQgbm8g bW9yZSB0aGFuCi0gICAgKiAgICBTVkdBM0RfTUFYX1ZFUlRFWF9BUlJBWVM7Ci0gICAgKiAyLiBT VkdBM2RQcmltaXRpdmVSYW5nZSwgcXVhbnRpdHkgJ251bVJhbmdlcycsIGJ1dCBubyBtb3JlIHRo YW4KLSAgICAqICAgIFNWR0EzRF9NQVhfRFJBV19QUklNSVRJVkVfUkFOR0VTOwotICAgICogMy4g T3B0aW9uYWxseSwgU1ZHQTNkVmVydGV4RGl2aXNvciwgcXVhbnRpdHkgJ251bVZlcnRleERlY2xz JyAoY29udGFpbnMKLSAgICAqICAgIHRoZSBmcmVxdWVuY3kgZGl2aXNvciBmb3IgdGhlIGNvcnJl c3BvbmRpbmcgdmVydGV4IGRlY2wpLgotICAgICovCi19IFNWR0EzZENtZERyYXdQcmltaXRpdmVz OyAgICAgIC8qIFNWR0FfM0RfQ01EX0RSQVdQUklNSVRJVkVTICovCi0KLXR5cGVkZWYKLXN0cnVj dCB7Ci0gICB1aW50MzIgICAgICAgICAgICAgICAgICAgc3RhZ2U7Ci0gICBTVkdBM2RUZXh0dXJl U3RhdGVOYW1lICAgbmFtZTsKLSAgIHVuaW9uIHsKLSAgICAgIHVpbnQzMiAgICAgICAgICAgICAg ICB2YWx1ZTsKLSAgICAgIGZsb2F0ICAgICAgICAgICAgICAgICBmbG9hdFZhbHVlOwotICAgfTsK LX0gU1ZHQTNkVGV4dHVyZVN0YXRlOwotCi10eXBlZGVmCi1zdHJ1Y3QgewotICAgdWludDMyICAg ICAgICAgICAgICAgY2lkOwotICAgLyogRm9sbG93ZWQgYnkgdmFyaWFibGUgbnVtYmVyIG9mIFNW R0EzZFRleHR1cmVTdGF0ZSBzdHJ1Y3R1cmVzICovCi19IFNWR0EzZENtZFNldFRleHR1cmVTdGF0 ZTsgICAgICAvKiBTVkdBXzNEX0NNRF9TRVRURVhUVVJFU1RBVEUgKi8KLQotdHlwZWRlZgotc3Ry dWN0IHsKLSAgIHVpbnQzMiAgICAgICAgICAgICAgICAgICBjaWQ7Ci0gICBTVkdBM2RUcmFuc2Zv cm1UeXBlICAgICAgdHlwZTsKLSAgIGZsb2F0ICAgICAgICAgICAgICAgICAgICBtYXRyaXhbMTZd OwotfSBTVkdBM2RDbWRTZXRUcmFuc2Zvcm07ICAgICAgICAgIC8qIFNWR0FfM0RfQ01EX1NFVFRS QU5TRk9STSAqLwotCi10eXBlZGVmCi1zdHJ1Y3QgewotICAgZmxvYXQgICAgICAgICAgICAgICAg bWluOwotICAgZmxvYXQgICAgICAgICAgICAgICAgbWF4OwotfSBTVkdBM2RaUmFuZ2U7Ci0KLXR5 cGVkZWYKLXN0cnVjdCB7Ci0gICB1aW50MzIgICAgICAgICAgICAgICBjaWQ7Ci0gICBTVkdBM2Ra UmFuZ2UgICAgICAgICB6UmFuZ2U7Ci19IFNWR0EzZENtZFNldFpSYW5nZTsgICAgICAgICAgICAg LyogU1ZHQV8zRF9DTURfU0VUWlJBTkdFICovCi0KLXR5cGVkZWYKLXN0cnVjdCB7Ci0gICBmbG9h dCAgICAgICAgICAgICAgICBkaWZmdXNlWzRdOwotICAgZmxvYXQgICAgICAgICAgICAgICAgYW1i aWVudFs0XTsKLSAgIGZsb2F0ICAgICAgICAgICAgICAgIHNwZWN1bGFyWzRdOwotICAgZmxvYXQg ICAgICAgICAgICAgICAgZW1pc3NpdmVbNF07Ci0gICBmbG9hdCAgICAgICAgICAgICAgICBzaGlu aW5lc3M7Ci19IFNWR0EzZE1hdGVyaWFsOwotCi10eXBlZGVmCi1zdHJ1Y3QgewotICAgdWludDMy ICAgICAgICAgICAgICAgY2lkOwotICAgU1ZHQTNkRmFjZSAgICAgICAgICAgZmFjZTsKLSAgIFNW R0EzZE1hdGVyaWFsICAgICAgIG1hdGVyaWFsOwotfSBTVkdBM2RDbWRTZXRNYXRlcmlhbDsgICAg ICAgICAgIC8qIFNWR0FfM0RfQ01EX1NFVE1BVEVSSUFMICovCi0KLXR5cGVkZWYKLXN0cnVjdCB7 Ci0gICB1aW50MzIgICAgICAgICAgICAgICBjaWQ7Ci0gICB1aW50MzIgICAgICAgICAgICAgICBp bmRleDsKLSAgIFNWR0EzZExpZ2h0RGF0YSAgICAgIGRhdGE7Ci19IFNWR0EzZENtZFNldExpZ2h0 RGF0YTsgICAgICAgICAgIC8qIFNWR0FfM0RfQ01EX1NFVExJR0hUREFUQSAqLwotCi10eXBlZGVm Ci1zdHJ1Y3QgewotICAgdWludDMyICAgICAgICAgICAgICAgY2lkOwotICAgdWludDMyICAgICAg ICAgICAgICAgaW5kZXg7Ci0gICB1aW50MzIgICAgICAgICAgICAgICBlbmFibGVkOwotfSBTVkdB M2RDbWRTZXRMaWdodEVuYWJsZWQ7ICAgICAgLyogU1ZHQV8zRF9DTURfU0VUTElHSFRFTkFCTEVE ICovCi0KLXR5cGVkZWYKLXN0cnVjdCB7Ci0gICB1aW50MzIgICAgICAgICAgICAgICBjaWQ7Ci0g ICBTVkdBM2RSZWN0ICAgICAgICAgICByZWN0OwotfSBTVkdBM2RDbWRTZXRWaWV3cG9ydDsgICAg ICAgICAgIC8qIFNWR0FfM0RfQ01EX1NFVFZJRVdQT1JUICovCi0KLXR5cGVkZWYKLXN0cnVjdCB7 Ci0gICB1aW50MzIgICAgICAgICAgICAgICBjaWQ7Ci0gICBTVkdBM2RSZWN0ICAgICAgICAgICBy ZWN0OwotfSBTVkdBM2RDbWRTZXRTY2lzc29yUmVjdDsgICAgICAgICAvKiBTVkdBXzNEX0NNRF9T RVRTQ0lTU09SUkVDVCAqLwotCi10eXBlZGVmCi1zdHJ1Y3QgewotICAgdWludDMyICAgICAgICAg ICAgICAgY2lkOwotICAgdWludDMyICAgICAgICAgICAgICAgaW5kZXg7Ci0gICBmbG9hdCAgICAg ICAgICAgICAgICBwbGFuZVs0XTsKLX0gU1ZHQTNkQ21kU2V0Q2xpcFBsYW5lOyAgICAgICAgICAg LyogU1ZHQV8zRF9DTURfU0VUQ0xJUFBMQU5FICovCi0KLXR5cGVkZWYKLXN0cnVjdCB7Ci0gICB1 aW50MzIgICAgICAgICAgICAgICBjaWQ7Ci0gICB1aW50MzIgICAgICAgICAgICAgICBzaGlkOwot ICAgU1ZHQTNkU2hhZGVyVHlwZSAgICAgdHlwZTsKLSAgIC8qIEZvbGxvd2VkIGJ5IHZhcmlhYmxl IG51bWJlciBvZiBEV09SRHMgZm9yIHNoYWRlciBieWNvZGUgKi8KLX0gU1ZHQTNkQ21kRGVmaW5l U2hhZGVyOyAgICAgICAgICAgLyogU1ZHQV8zRF9DTURfU0hBREVSX0RFRklORSAqLwotCi10eXBl ZGVmCi1zdHJ1Y3QgewotICAgdWludDMyICAgICAgICAgICAgICAgY2lkOwotICAgdWludDMyICAg ICAgICAgICAgICAgc2hpZDsKLSAgIFNWR0EzZFNoYWRlclR5cGUgICAgIHR5cGU7Ci19IFNWR0Ez ZENtZERlc3Ryb3lTaGFkZXI7ICAgICAgICAgLyogU1ZHQV8zRF9DTURfU0hBREVSX0RFU1RST1kg Ki8KLQotdHlwZWRlZgotc3RydWN0IHsKLSAgIHVpbnQzMiAgICAgICAgICAgICAgICAgIGNpZDsK LSAgIHVpbnQzMiAgICAgICAgICAgICAgICAgIHJlZzsgICAgIC8qIHJlZ2lzdGVyIG51bWJlciAq LwotICAgU1ZHQTNkU2hhZGVyVHlwZSAgICAgICAgdHlwZTsKLSAgIFNWR0EzZFNoYWRlckNvbnN0 VHlwZSAgIGN0eXBlOwotICAgdWludDMyICAgICAgICAgICAgICAgICAgdmFsdWVzWzRdOwotfSBT VkdBM2RDbWRTZXRTaGFkZXJDb25zdDsgICAgICAgIC8qIFNWR0FfM0RfQ01EX1NFVF9TSEFERVJf Q09OU1QgKi8KLQotdHlwZWRlZgotc3RydWN0IHsKLSAgIHVpbnQzMiAgICAgICAgICAgICAgIGNp ZDsKLSAgIFNWR0EzZFNoYWRlclR5cGUgICAgIHR5cGU7Ci0gICB1aW50MzIgICAgICAgICAgICAg ICBzaGlkOwotfSBTVkdBM2RDbWRTZXRTaGFkZXI7ICAgICAgICAgICAgIC8qIFNWR0FfM0RfQ01E X1NFVF9TSEFERVIgKi8KLQotdHlwZWRlZgotc3RydWN0IHsKLSAgIHVpbnQzMiAgICAgICAgICAg ICAgIGNpZDsKLSAgIFNWR0EzZFF1ZXJ5VHlwZSAgICAgIHR5cGU7Ci19IFNWR0EzZENtZEJlZ2lu UXVlcnk7ICAgICAgICAgICAvKiBTVkdBXzNEX0NNRF9CRUdJTl9RVUVSWSAqLwotCi10eXBlZGVm Ci1zdHJ1Y3QgewotICAgdWludDMyICAgICAgICAgICAgICAgY2lkOwotICAgU1ZHQTNkUXVlcnlU eXBlICAgICAgdHlwZTsKLSAgIFNWR0FHdWVzdFB0ciAgICAgICAgIGd1ZXN0UmVzdWx0OyAgLyog UG9pbnRzIHRvIGFuIFNWR0EzZFF1ZXJ5UmVzdWx0IHN0cnVjdHVyZSAqLwotfSBTVkdBM2RDbWRF bmRRdWVyeTsgICAgICAgICAgICAgICAgICAvKiBTVkdBXzNEX0NNRF9FTkRfUVVFUlkgKi8KLQot dHlwZWRlZgotc3RydWN0IHsKLSAgIHVpbnQzMiAgICAgICAgICAgICAgIGNpZDsgICAgICAgICAg LyogU2FtZSBwYXJhbWV0ZXJzIHBhc3NlZCB0byBFTkRfUVVFUlkgKi8KLSAgIFNWR0EzZFF1ZXJ5 VHlwZSAgICAgIHR5cGU7Ci0gICBTVkdBR3Vlc3RQdHIgICAgICAgICBndWVzdFJlc3VsdDsKLX0g U1ZHQTNkQ21kV2FpdEZvclF1ZXJ5OyAgICAgICAgICAgICAgLyogU1ZHQV8zRF9DTURfV0FJVF9G T1JfUVVFUlkgKi8KLQotdHlwZWRlZgotc3RydWN0IHsKLSAgIHVpbnQzMiAgICAgICAgICAgICAg IHRvdGFsU2l6ZTsgICAgLyogU2V0IGJ5IGd1ZXN0IGJlZm9yZSBxdWVyeSBpcyBlbmRlZC4gKi8K LSAgIFNWR0EzZFF1ZXJ5U3RhdGUgICAgIHN0YXRlOyAgICAgICAgLyogU2V0IGJ5IGhvc3Qgb3Ig Z3Vlc3QuIFNlZSBTVkdBM2RRdWVyeVN0YXRlLiAqLwotICAgdW5pb24geyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiBTZXQgYnkgaG9zdCBvbiBleGl0IGZyb20gUEVORElORyBzdGF0ZSAq LwotICAgICAgdWludDMyICAgICAgICAgICAgcmVzdWx0MzI7Ci0gICB9OwotfSBTVkdBM2RRdWVy eVJlc3VsdDsKLQotLyoKLSAqIFNWR0FfM0RfQ01EX0JMSVRfU1VSRkFDRV9UT19TQ1JFRU4gLS0K LSAqCi0gKiAgICBUaGlzIGlzIGEgYmxpdCBmcm9tIGFuIFNWR0EzRCBzdXJmYWNlIHRvIGEgU2Ny ZWVuIE9iamVjdC4gSnVzdAotICogICAgbGlrZSBHTVItdG8tc2NyZWVuIGJsaXRzLCB0aGlzIGJs aXQgbWF5IGJlIGRpcmVjdGVkIGF0IGEKLSAqICAgIHNwZWNpZmljIHNjcmVlbiBvciB0byB0aGUg dmlydHVhbCBjb29yZGluYXRlIHNwYWNlLgotICoKLSAqICAgIFRoZSBibGl0IGNvcGllcyBmcm9t IGEgcmVjdGFuZ3VsYXIgcmVnaW9uIG9mIGFuIFNWR0EzRCBzdXJmYWNlCi0gKiAgICBpbWFnZSB0 byBhIHJlY3Rhbmd1bGFyIHJlZ2lvbiBvZiBhIHNjcmVlbiBvciBzY3JlZW5zLgotICoKLSAqICAg IFRoaXMgY29tbWFuZCB0YWtlcyBhbiBvcHRpb25hbCB2YXJpYWJsZS1sZW5ndGggbGlzdCBvZiBj bGlwcGluZwotICogICAgcmVjdGFuZ2xlcyBhZnRlciB0aGUgYm9keSBvZiB0aGUgY29tbWFuZC4g SWYgbm8gcmVjdGFuZ2xlcyBhcmUKLSAqICAgIHNwZWNpZmllZCwgdGhlcmUgaXMgbm8gY2xpcHBp bmcgcmVnaW9uLiBUaGUgZW50aXJlIGRlc3RSZWN0IGlzCi0gKiAgICBkcmF3biB0by4gSWYgb25l IG9yIG1vcmUgcmVjdGFuZ2xlcyBhcmUgaW5jbHVkZWQsIHRoZXkgZGVzY3JpYmUKLSAqICAgIGEg Y2xpcHBpbmcgcmVnaW9uLiBUaGUgY2xpcCByZWN0YW5nbGUgY29vcmRpbmF0ZXMgYXJlIG1lYXN1 cmVkCi0gKiAgICByZWxhdGl2ZSB0byB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIGRlc3RSZWN0Lgot ICoKLSAqICAgIFRoaXMgY2xpcHBpbmcgcmVnaW9uIHNlcnZlcyBtdWx0aXBsZSBwdXJwb3NlczoK LSAqCi0gKiAgICAgIC0gSXQgY2FuIGJlIHVzZWQgdG8gcGVyZm9ybSBhbiBpcnJlZ3VsYXJseSBz aGFwZWQgYmxpdCBtb3JlCi0gKiAgICAgICAgZWZmaWNpZW50bHkgdGhhbiBieSBpc3N1aW5nIG1h bnkgc2VwYXJhdGUgYmxpdCBjb21tYW5kcy4KLSAqCi0gKiAgICAgIC0gSXQgaXMgZXF1aXZhbGVu dCB0byBhbGxvd2luZyBibGl0cyB3aXRoIG5vbi1pbnRlZ2VyCi0gKiAgICAgICAgc291cmNlIGNv b3JkaW5hdGVzLiBZb3UgY291bGQgYmxpdCBqdXN0IG9uZSBoYWxmLXBpeGVsCi0gKiAgICAgICAg b2YgYSBzb3VyY2UsIGZvciBleGFtcGxlLCBieSBzcGVjaWZ5aW5nIGEgbGFyZ2VyCi0gKiAgICAg ICAgZGVzdGluYXRpb24gcmVjdGFuZ2xlIHRoYW4geW91IG5lZWQsIHRoZW4gcmVtb3ZpbmcKLSAq ICAgICAgICBwYXJ0IG9mIGl0IHVzaW5nIGEgY2xpcCByZWN0YW5nbGUuCi0gKgotICogQXZhaWxh YmlsaXR5OgotICogICAgU1ZHQV9GSUZPX0NBUF9TQ1JFRU5fT0JKRUNUCi0gKgotICogTGltaXRh dGlvbnM6Ci0gKgotICogICAgLSBDdXJyZW50bHksIG5vIGJhY2tlbmQgc3VwcG9ydHMgYmxpdHMg ZnJvbSBhIG1pcG1hcCBvciBmYWNlCi0gKiAgICAgIG90aGVyIHRoYW4gdGhlIGZpcnN0IG9uZS4K LSAqLwotCi10eXBlZGVmCi1zdHJ1Y3QgewotICAgU1ZHQTNkU3VyZmFjZUltYWdlSWQgc3JjSW1h Z2U7Ci0gICBTVkdBU2lnbmVkUmVjdCAgICAgICBzcmNSZWN0OwotICAgdWludDMyICAgICAgICAg ICAgICAgZGVzdFNjcmVlbklkOyAvKiBTY3JlZW4gSUQgb3IgU1ZHQV9JRF9JTlZBTElEIGZvciB2 aXJ0LiBjb29yZHMgKi8KLSAgIFNWR0FTaWduZWRSZWN0ICAgICAgIGRlc3RSZWN0OyAgICAgLyog U3VwcG9ydHMgc2NhbGluZyBpZiBzcmMvcmVzdCBkaWZmZXJlbnQgc2l6ZSAqLwotICAgLyogQ2xp cHBpbmc6IHplcm8gb3IgbW9yZSBTVkdBU2lnbmVkUmVjdHMgZm9sbG93ICovCi19IFNWR0EzZENt ZEJsaXRTdXJmYWNlVG9TY3JlZW47ICAgICAgICAgLyogU1ZHQV8zRF9DTURfQkxJVF9TVVJGQUNF X1RPX1NDUkVFTiAqLwotCi10eXBlZGVmCi1zdHJ1Y3QgewotICAgdWludDMyICAgICAgICAgICAg ICAgc2lkOwotICAgU1ZHQTNkVGV4dHVyZUZpbHRlciAgZmlsdGVyOwotfSBTVkdBM2RDbWRHZW5l cmF0ZU1pcG1hcHM7ICAgICAgICAgICAgIC8qIFNWR0FfM0RfQ01EX0dFTkVSQVRFX01JUE1BUFMg Ki8KLQotCi0vKgotICogR3Vlc3QtYmFja2VkIHN1cmZhY2UgZGVmaW5pdGlvbnMuCi0gKi8KLQot dHlwZWRlZiBlbnVtIFNWR0FNb2JGb3JtYXQgewotICAgU1ZHQTNEX01PQkZNVF9JTlZBTElEID0g U1ZHQTNEX0lOVkFMSURfSUQsCi0gICBTVkdBM0RfTU9CRk1UX1BUREVQVEhfMCA9IDAsCi0gICBT VkdBM0RfTU9CRk1UX1BUREVQVEhfMSA9IDEsCi0gICBTVkdBM0RfTU9CRk1UX1BUREVQVEhfMiA9 IDIsCi0gICBTVkdBM0RfTU9CRk1UX1JBTkdFICAgICA9IDMsCi0gICBTVkdBM0RfTU9CRk1UX1BU REVQVEg2NF8wID0gNCwKLSAgIFNWR0EzRF9NT0JGTVRfUFRERVBUSDY0XzEgPSA1LAotICAgU1ZH QTNEX01PQkZNVF9QVERFUFRINjRfMiA9IDYsCi0gICBTVkdBM0RfTU9CRk1UX01BWCwKLX0gU1ZH QU1vYkZvcm1hdDsKLQotLyoKLSAqIFNpemVzIG9mIG9wYXF1ZSB0eXBlcy4KLSAqLwotCi0jZGVm aW5lIFNWR0EzRF9PVEFCTEVfTU9CX0VOVFJZX1NJWkUgMTYKLSNkZWZpbmUgU1ZHQTNEX09UQUJM RV9DT05URVhUX0VOVFJZX1NJWkUgOAotI2RlZmluZSBTVkdBM0RfT1RBQkxFX1NVUkZBQ0VfRU5U UllfU0laRSA2NAotI2RlZmluZSBTVkdBM0RfT1RBQkxFX1NIQURFUl9FTlRSWV9TSVpFIDE2Ci0j ZGVmaW5lIFNWR0EzRF9PVEFCTEVfU0NSRUVOX1RBUkdFVF9FTlRSWV9TSVpFIDY0Ci0jZGVmaW5l IFNWR0EzRF9DT05URVhUX0RBVEFfU0laRSAxNjM4NAotCi0vKgotICogU1ZHQTNkQ21kU2V0T1Rh YmxlQmFzZSAtLQotICoKLSAqIFRoaXMgY29tbWFuZCBhbGxvd3MgdGhlIGd1ZXN0IHRvIHNwZWNp ZnkgdGhlIGJhc2UgUFBOIG9mIHRoZQotICogc3BlY2lmaWVkIG9iamVjdCB0YWJsZS4KLSAqLwot Ci10eXBlZGVmIGVudW0gewotICAgU1ZHQV9PVEFCTEVfTU9CICAgICAgICAgICA9IDAsCi0gICBT VkdBX09UQUJMRV9NSU4gICAgICAgICAgID0gMCwKLSAgIFNWR0FfT1RBQkxFX1NVUkZBQ0UgICAg ICAgPSAxLAotICAgU1ZHQV9PVEFCTEVfQ09OVEVYVCAgICAgICA9IDIsCi0gICBTVkdBX09UQUJM RV9TSEFERVIgICAgICAgID0gMywKLSAgIFNWR0FfT1RBQkxFX1NDUkVFTl9UQVJHRVQgPSA0LAot ICAgU1ZHQV9PVEFCTEVfRFg5X01BWCAgICAgICA9IDUsCi0gICBTVkdBX09UQUJMRV9NQVggICAg ICAgICAgID0gOAotfSBTVkdBT1RhYmxlVHlwZTsKLQotdHlwZWRlZgotc3RydWN0IHsKLSAgIFNW R0FPVGFibGVUeXBlIHR5cGU7Ci0gICBQUE4gYmFzZUFkZHJlc3M7Ci0gICB1aW50MzIgc2l6ZUlu Qnl0ZXM7Ci0gICB1aW50MzIgdmFsaWRTaXplSW5CeXRlczsKLSAgIFNWR0FNb2JGb3JtYXQgcHRE ZXB0aDsKLX0gX19wYWNrZWQKLVNWR0EzZENtZFNldE9UYWJsZUJhc2U7ICAvKiBTVkdBXzNEX0NN RF9TRVRfT1RBQkxFX0JBU0UgKi8KLQotdHlwZWRlZgotc3RydWN0IHsKLSAgIFNWR0FPVGFibGVU eXBlIHR5cGU7Ci0gICBQUE42NCBiYXNlQWRkcmVzczsKLSAgIHVpbnQzMiBzaXplSW5CeXRlczsK LSAgIHVpbnQzMiB2YWxpZFNpemVJbkJ5dGVzOwotICAgU1ZHQU1vYkZvcm1hdCBwdERlcHRoOwot fSBfX3BhY2tlZAotU1ZHQTNkQ21kU2V0T1RhYmxlQmFzZTY0OyAgLyogU1ZHQV8zRF9DTURfU0VU X09UQUJMRV9CQVNFNjQgKi8KLQotdHlwZWRlZgotc3RydWN0IHsKLSAgIFNWR0FPVGFibGVUeXBl IHR5cGU7Ci19IF9fcGFja2VkCi1TVkdBM2RDbWRSZWFkYmFja09UYWJsZTsgIC8qIFNWR0FfM0Rf Q01EX1JFQURCQUNLX09UQUJMRSAqLwotCi0vKgotICogRGVmaW5lIGEgbWVtb3J5IG9iamVjdCAo TW9iKSBpbiB0aGUgT1RhYmxlLgotICovCi0KLXR5cGVkZWYKLXN0cnVjdCBTVkdBM2RDbWREZWZp bmVHQk1vYiB7Ci0gICBTVkdBTW9iSWQgbW9iaWQ7Ci0gICBTVkdBTW9iRm9ybWF0IHB0RGVwdGg7 Ci0gICBQUE4gYmFzZTsKLSAgIHVpbnQzMiBzaXplSW5CeXRlczsKLX0gX19wYWNrZWQKLVNWR0Ez ZENtZERlZmluZUdCTW9iOyAgIC8qIFNWR0FfM0RfQ01EX0RFRklORV9HQl9NT0IgKi8KLQotCi0v KgotICogRGVzdHJveXMgYW4gb2JqZWN0IGluIHRoZSBPVGFibGUuCi0gKi8KLQotdHlwZWRlZgot c3RydWN0IFNWR0EzZENtZERlc3Ryb3lHQk1vYiB7Ci0gICBTVkdBTW9iSWQgbW9iaWQ7Ci19IF9f cGFja2VkCi1TVkdBM2RDbWREZXN0cm95R0JNb2I7ICAgLyogU1ZHQV8zRF9DTURfREVTVFJPWV9H Ql9NT0IgKi8KLQotLyoKLSAqIFJlZGVmaW5lIGFuIG9iamVjdCBpbiB0aGUgT1RhYmxlLgotICov Ci0KLXR5cGVkZWYKLXN0cnVjdCBTVkdBM2RDbWRSZWRlZmluZUdCTW9iIHsKLSAgIFNWR0FNb2JJ ZCBtb2JpZDsKLSAgIFNWR0FNb2JGb3JtYXQgcHREZXB0aDsKLSAgIFBQTiBiYXNlOwotICAgdWlu dDMyIHNpemVJbkJ5dGVzOwotfSBfX3BhY2tlZAotU1ZHQTNkQ21kUmVkZWZpbmVHQk1vYjsgICAv KiBTVkdBXzNEX0NNRF9SRURFRklORV9HQl9NT0IgKi8KLQotLyoKLSAqIERlZmluZSBhIG1lbW9y eSBvYmplY3QgKE1vYikgaW4gdGhlIE9UYWJsZSB3aXRoIGEgUFBONjQgYmFzZS4KLSAqLwotCi10 eXBlZGVmCi1zdHJ1Y3QgU1ZHQTNkQ21kRGVmaW5lR0JNb2I2NCB7Ci0gICBTVkdBTW9iSWQgbW9i aWQ7Ci0gICBTVkdBTW9iRm9ybWF0IHB0RGVwdGg7Ci0gICBQUE42NCBiYXNlOwotICAgdWludDMy IHNpemVJbkJ5dGVzOwotfSBfX3BhY2tlZAotU1ZHQTNkQ21kRGVmaW5lR0JNb2I2NDsgICAvKiBT VkdBXzNEX0NNRF9ERUZJTkVfR0JfTU9CNjQgKi8KLQotLyoKLSAqIFJlZGVmaW5lIGFuIG9iamVj dCBpbiB0aGUgT1RhYmxlIHdpdGggUFBONjQgYmFzZS4KLSAqLwotCi10eXBlZGVmCi1zdHJ1Y3Qg U1ZHQTNkQ21kUmVkZWZpbmVHQk1vYjY0IHsKLSAgIFNWR0FNb2JJZCBtb2JpZDsKLSAgIFNWR0FN b2JGb3JtYXQgcHREZXB0aDsKLSAgIFBQTjY0IGJhc2U7Ci0gICB1aW50MzIgc2l6ZUluQnl0ZXM7 Ci19IF9fcGFja2VkCi1TVkdBM2RDbWRSZWRlZmluZUdCTW9iNjQ7ICAgLyogU1ZHQV8zRF9DTURf UkVERUZJTkVfR0JfTU9CNjQgKi8KLQotLyoKLSAqIE5vdGlmaWNhdGlvbiB0aGF0IHRoZSBwYWdl IHRhYmxlcyBoYXZlIGJlZW4gbW9kaWZpZWQuCi0gKi8KLQotdHlwZWRlZgotc3RydWN0IFNWR0Ez ZENtZFVwZGF0ZUdCTW9iTWFwcGluZyB7Ci0gICBTVkdBTW9iSWQgbW9iaWQ7Ci19IF9fcGFja2Vk Ci1TVkdBM2RDbWRVcGRhdGVHQk1vYk1hcHBpbmc7ICAgLyogU1ZHQV8zRF9DTURfVVBEQVRFX0dC X01PQl9NQVBQSU5HICovCi0KLS8qCi0gKiBEZWZpbmUgYSBndWVzdC1iYWNrZWQgc3VyZmFjZS4K LSAqLwotCi10eXBlZGVmCi1zdHJ1Y3QgU1ZHQTNkQ21kRGVmaW5lR0JTdXJmYWNlIHsKLSAgIHVp bnQzMiBzaWQ7Ci0gICBTVkdBM2RTdXJmYWNlRmxhZ3Mgc3VyZmFjZUZsYWdzOwotICAgU1ZHQTNk U3VyZmFjZUZvcm1hdCBmb3JtYXQ7Ci0gICB1aW50MzIgbnVtTWlwTGV2ZWxzOwotICAgdWludDMy IG11bHRpc2FtcGxlQ291bnQ7Ci0gICBTVkdBM2RUZXh0dXJlRmlsdGVyIGF1dG9nZW5GaWx0ZXI7 Ci0gICBTVkdBM2RTaXplIHNpemU7Ci19IF9fcGFja2VkCi1TVkdBM2RDbWREZWZpbmVHQlN1cmZh Y2U7ICAgLyogU1ZHQV8zRF9DTURfREVGSU5FX0dCX1NVUkZBQ0UgKi8KLQotLyoKLSAqIERlc3Ry b3kgYSBndWVzdC1iYWNrZWQgc3VyZmFjZS4KLSAqLwotCi10eXBlZGVmCi1zdHJ1Y3QgU1ZHQTNk Q21kRGVzdHJveUdCU3VyZmFjZSB7Ci0gICB1aW50MzIgc2lkOwotfSBfX3BhY2tlZAotU1ZHQTNk Q21kRGVzdHJveUdCU3VyZmFjZTsgICAvKiBTVkdBXzNEX0NNRF9ERVNUUk9ZX0dCX1NVUkZBQ0Ug Ki8KLQotLyoKLSAqIEJpbmQgYSBndWVzdC1iYWNrZWQgc3VyZmFjZSB0byBhbiBvYmplY3QuCi0g Ki8KLQotdHlwZWRlZgotc3RydWN0IFNWR0EzZENtZEJpbmRHQlN1cmZhY2UgewotICAgdWludDMy IHNpZDsKLSAgIFNWR0FNb2JJZCBtb2JpZDsKLX0gX19wYWNrZWQKLVNWR0EzZENtZEJpbmRHQlN1 cmZhY2U7ICAgLyogU1ZHQV8zRF9DTURfQklORF9HQl9TVVJGQUNFICovCi0KLS8qCi0gKiBDb25k aXRpb25hbGx5IGJpbmQgYSBtb2IgdG8gYSBndWVzdCBiYWNrZWQgc3VyZmFjZSBpZiB0ZXN0TW9i aWQKLSAqIG1hdGNoZXMgdGhlIGN1cnJlbnRseSBib3VuZCBtb2IuICBPcHRpb25hbGx5IGlzc3Vl IGEgcmVhZGJhY2sgb24KLSAqIHRoZSBzdXJmYWNlIHdoaWxlIGl0IGlzIHN0aWxsIGJvdW5kIHRv IHRoZSBvbGQgbW9iaWQgaWYgdGhlIG1vYmlkCi0gKiBpcyBjaGFuZ2VkIGJ5IHRoaXMgY29tbWFu ZC4KLSAqLwotCi0jZGVmaW5lIFNWR0EzRF9DT05EX0JJTkRfR0JfU1VSRkFDRV9GTEFHX1JFQURC QUNLICgxIDw8IDApCi0KLXR5cGVkZWYKLXN0cnVjdHsKLSAgIHVpbnQzMiBzaWQ7Ci0gICBTVkdB TW9iSWQgdGVzdE1vYmlkOwotICAgU1ZHQU1vYklkIG1vYmlkOwotICAgdWludDMyIGZsYWdzOwot fSBfX3BhY2tlZAotU1ZHQTNkQ21kQ29uZEJpbmRHQlN1cmZhY2U7ICAgICAgICAgIC8qIFNWR0Ff M0RfQ01EX0NPTkRfQklORF9HQl9TVVJGQUNFICovCi0KLS8qCi0gKiBVcGRhdGUgYW4gaW1hZ2Ug aW4gYSBndWVzdC1iYWNrZWQgc3VyZmFjZS4KLSAqIChJbmZvcm0gdGhlIGRldmljZSB0aGF0IHRo ZSBndWVzdC1jb250ZW50cyBoYXZlIGJlZW4gdXBkYXRlZC4pCi0gKi8KLQotdHlwZWRlZgotc3Ry dWN0IFNWR0EzZENtZFVwZGF0ZUdCSW1hZ2UgewotICAgU1ZHQTNkU3VyZmFjZUltYWdlSWQgaW1h Z2U7Ci0gICBTVkdBM2RCb3ggYm94OwotfSBfX3BhY2tlZAotU1ZHQTNkQ21kVXBkYXRlR0JJbWFn ZTsgICAvKiBTVkdBXzNEX0NNRF9VUERBVEVfR0JfSU1BR0UgKi8KLQotLyoKLSAqIFVwZGF0ZSBh biBlbnRpcmUgZ3Vlc3QtYmFja2VkIHN1cmZhY2UuCi0gKiAoSW5mb3JtIHRoZSBkZXZpY2UgdGhh dCB0aGUgZ3Vlc3QtY29udGVudHMgaGF2ZSBiZWVuIHVwZGF0ZWQuKQotICovCi0KLXR5cGVkZWYK LXN0cnVjdCBTVkdBM2RDbWRVcGRhdGVHQlN1cmZhY2UgewotICAgdWludDMyIHNpZDsKLX0gX19w YWNrZWQKLVNWR0EzZENtZFVwZGF0ZUdCU3VyZmFjZTsgICAvKiBTVkdBXzNEX0NNRF9VUERBVEVf R0JfU1VSRkFDRSAqLwotCi0vKgotICogUmVhZGJhY2sgYW4gaW1hZ2UgaW4gYSBndWVzdC1iYWNr ZWQgc3VyZmFjZS4KLSAqIChSZXF1ZXN0IHRoZSBkZXZpY2UgdG8gZmx1c2ggdGhlIGRpcnR5IGNv bnRlbnRzIGludG8gdGhlIGd1ZXN0LikKLSAqLwotCi10eXBlZGVmCi1zdHJ1Y3QgU1ZHQTNkQ21k UmVhZGJhY2tHQkltYWdlIHsKLSAgIFNWR0EzZFN1cmZhY2VJbWFnZUlkIGltYWdlOwotfSBfX3Bh Y2tlZAotU1ZHQTNkQ21kUmVhZGJhY2tHQkltYWdlOyAgIC8qIFNWR0FfM0RfQ01EX1JFQURCQUNL X0dCX0lNQUdFKi8KLQotLyoKLSAqIFJlYWRiYWNrIGFuIGVudGlyZSBndWVzdC1iYWNrZWQgc3Vy ZmFjZS4KLSAqIChSZXF1ZXN0IHRoZSBkZXZpY2UgdG8gZmx1c2ggdGhlIGRpcnR5IGNvbnRlbnRz IGludG8gdGhlIGd1ZXN0LikKLSAqLwotCi10eXBlZGVmCi1zdHJ1Y3QgU1ZHQTNkQ21kUmVhZGJh Y2tHQlN1cmZhY2UgewotICAgdWludDMyIHNpZDsKLX0gX19wYWNrZWQKLVNWR0EzZENtZFJlYWRi YWNrR0JTdXJmYWNlOyAgIC8qIFNWR0FfM0RfQ01EX1JFQURCQUNLX0dCX1NVUkZBQ0UgKi8KLQot LyoKLSAqIFJlYWRiYWNrIGEgc3ViIHJlY3Qgb2YgYW4gaW1hZ2UgaW4gYSBndWVzdC1iYWNrZWQg c3VyZmFjZS4gIEFmdGVyCi0gKiBpc3N1aW5nIHRoaXMgY29tbWFuZCB0aGUgZHJpdmVyIGlzIHJl cXVpcmVkIHRvIGlzc3VlIGFuIHVwZGF0ZSBjYWxsCi0gKiBvZiB0aGUgc2FtZSByZWdpb24gYmVm b3JlIGlzc3VpbmcgYW55IG90aGVyIGNvbW1hbmRzIHRoYXQgcmVmZXJlbmNlCi0gKiB0aGlzIHN1 cmZhY2Ugb3IgcmVuZGVyaW5nIGlzIG5vdCBndWFyYW50ZWVkLgotICovCi0KLXR5cGVkZWYKLXN0 cnVjdCBTVkdBM2RDbWRSZWFkYmFja0dCSW1hZ2VQYXJ0aWFsIHsKLSAgIFNWR0EzZFN1cmZhY2VJ bWFnZUlkIGltYWdlOwotICAgU1ZHQTNkQm94IGJveDsKLSAgIHVpbnQzMiBpbnZlcnRCb3g7Ci19 IF9fcGFja2VkCi1TVkdBM2RDbWRSZWFkYmFja0dCSW1hZ2VQYXJ0aWFsOyAvKiBTVkdBXzNEX0NN RF9SRUFEQkFDS19HQl9JTUFHRV9QQVJUSUFMICovCi0KLS8qCi0gKiBJbnZhbGlkYXRlIGFuIGlt YWdlIGluIGEgZ3Vlc3QtYmFja2VkIHN1cmZhY2UuCi0gKiAoTm90aWZ5IHRoZSBkZXZpY2UgdGhh dCB0aGUgY29udGVudHMgY2FuIGJlIGxvc3QuKQotICovCi0KLXR5cGVkZWYKLXN0cnVjdCBTVkdB M2RDbWRJbnZhbGlkYXRlR0JJbWFnZSB7Ci0gICBTVkdBM2RTdXJmYWNlSW1hZ2VJZCBpbWFnZTsK LX0gX19wYWNrZWQKLVNWR0EzZENtZEludmFsaWRhdGVHQkltYWdlOyAgIC8qIFNWR0FfM0RfQ01E X0lOVkFMSURBVEVfR0JfSU1BR0UgKi8KLQotLyoKLSAqIEludmFsaWRhdGUgYW4gZW50aXJlIGd1 ZXN0LWJhY2tlZCBzdXJmYWNlLgotICogKE5vdGlmeSB0aGUgZGV2aWNlIHRoYXQgdGhlIGNvbnRl bnRzIGlmIGFsbCBpbWFnZXMgY2FuIGJlIGxvc3QuKQotICovCi0KLXR5cGVkZWYKLXN0cnVjdCBT VkdBM2RDbWRJbnZhbGlkYXRlR0JTdXJmYWNlIHsKLSAgIHVpbnQzMiBzaWQ7Ci19IF9fcGFja2Vk Ci1TVkdBM2RDbWRJbnZhbGlkYXRlR0JTdXJmYWNlOyAvKiBTVkdBXzNEX0NNRF9JTlZBTElEQVRF X0dCX1NVUkZBQ0UgKi8KLQotLyoKLSAqIEludmFsaWRhdGUgYSBzdWIgcmVjdCBvZiBhbiBpbWFn ZSBpbiBhIGd1ZXN0LWJhY2tlZCBzdXJmYWNlLiAgQWZ0ZXIKLSAqIGlzc3VpbmcgdGhpcyBjb21t YW5kIHRoZSBkcml2ZXIgaXMgcmVxdWlyZWQgdG8gaXNzdWUgYW4gdXBkYXRlIGNhbGwKLSAqIG9m IHRoZSBzYW1lIHJlZ2lvbiBiZWZvcmUgaXNzdWluZyBhbnkgb3RoZXIgY29tbWFuZHMgdGhhdCBy ZWZlcmVuY2UKLSAqIHRoaXMgc3VyZmFjZSBvciByZW5kZXJpbmcgaXMgbm90IGd1YXJhbnRlZWQu Ci0gKi8KLQotdHlwZWRlZgotc3RydWN0IFNWR0EzZENtZEludmFsaWRhdGVHQkltYWdlUGFydGlh bCB7Ci0gICBTVkdBM2RTdXJmYWNlSW1hZ2VJZCBpbWFnZTsKLSAgIFNWR0EzZEJveCBib3g7Ci0g ICB1aW50MzIgaW52ZXJ0Qm94OwotfSBfX3BhY2tlZAotU1ZHQTNkQ21kSW52YWxpZGF0ZUdCSW1h Z2VQYXJ0aWFsOyAvKiBTVkdBXzNEX0NNRF9JTlZBTElEQVRFX0dCX0lNQUdFX1BBUlRJQUwgKi8K LQotLyoKLSAqIERlZmluZSBhIGd1ZXN0LWJhY2tlZCBjb250ZXh0LgotICovCi0KLXR5cGVkZWYK LXN0cnVjdCBTVkdBM2RDbWREZWZpbmVHQkNvbnRleHQgewotICAgdWludDMyIGNpZDsKLX0gX19w YWNrZWQKLVNWR0EzZENtZERlZmluZUdCQ29udGV4dDsgICAvKiBTVkdBXzNEX0NNRF9ERUZJTkVf R0JfQ09OVEVYVCAqLwotCi0vKgotICogRGVzdHJveSBhIGd1ZXN0LWJhY2tlZCBjb250ZXh0Lgot ICovCi0KLXR5cGVkZWYKLXN0cnVjdCBTVkdBM2RDbWREZXN0cm95R0JDb250ZXh0IHsKLSAgIHVp bnQzMiBjaWQ7Ci19IF9fcGFja2VkCi1TVkdBM2RDbWREZXN0cm95R0JDb250ZXh0OyAgIC8qIFNW R0FfM0RfQ01EX0RFU1RST1lfR0JfQ09OVEVYVCAqLwotCi0vKgotICogQmluZCBhIGd1ZXN0LWJh Y2tlZCBjb250ZXh0LgotICoKLSAqIHZhbGlkQ29udGVudHMgc2hvdWxkIGJlIHNldCB0byAwIGZv ciBuZXcgY29udGV4dHMsCi0gKiBhbmQgMSBpZiB0aGlzIGlzIGFuIG9sZCBjb250ZXh0IHdoaWNo IGlzIGdldHRpbmcgcGFnZWQKLSAqIGJhY2sgb24gdG8gdGhlIGRldmljZS4KLSAqCi0gKiBGb3Ig bmV3IGNvbnRleHRzLCBpdCBpcyByZWNvbW1lbmRlZCB0aGF0IHRoZSBkcml2ZXIKLSAqIGlzc3Vl IGNvbW1hbmRzIHRvIGluaXRpYWxpemUgYWxsIGludGVyZXN0aW5nIHN0YXRlCi0gKiBwcmlvciB0 byByZW5kZXJpbmcuCi0gKi8KLQotdHlwZWRlZgotc3RydWN0IFNWR0EzZENtZEJpbmRHQkNvbnRl eHQgewotICAgdWludDMyIGNpZDsKLSAgIFNWR0FNb2JJZCBtb2JpZDsKLSAgIHVpbnQzMiB2YWxp ZENvbnRlbnRzOwotfSBfX3BhY2tlZAotU1ZHQTNkQ21kQmluZEdCQ29udGV4dDsgICAvKiBTVkdB XzNEX0NNRF9CSU5EX0dCX0NPTlRFWFQgKi8KLQotLyoKLSAqIFJlYWRiYWNrIGEgZ3Vlc3QtYmFj a2VkIGNvbnRleHQuCi0gKiAoUmVxdWVzdCB0aGF0IHRoZSBkZXZpY2UgZmx1c2ggdGhlIGNvbnRl bnRzIGJhY2sgaW50byBndWVzdCBtZW1vcnkuKQotICovCi0KLXR5cGVkZWYKLXN0cnVjdCBTVkdB M2RDbWRSZWFkYmFja0dCQ29udGV4dCB7Ci0gICB1aW50MzIgY2lkOwotfSBfX3BhY2tlZAotU1ZH QTNkQ21kUmVhZGJhY2tHQkNvbnRleHQ7ICAgLyogU1ZHQV8zRF9DTURfUkVBREJBQ0tfR0JfQ09O VEVYVCAqLwotCi0vKgotICogSW52YWxpZGF0ZSBhIGd1ZXN0LWJhY2tlZCBjb250ZXh0LgotICov Ci10eXBlZGVmCi1zdHJ1Y3QgU1ZHQTNkQ21kSW52YWxpZGF0ZUdCQ29udGV4dCB7Ci0gICB1aW50 MzIgY2lkOwotfSBfX3BhY2tlZAotU1ZHQTNkQ21kSW52YWxpZGF0ZUdCQ29udGV4dDsgICAvKiBT VkdBXzNEX0NNRF9JTlZBTElEQVRFX0dCX0NPTlRFWFQgKi8KLQotLyoKLSAqIERlZmluZSBhIGd1 ZXN0LWJhY2tlZCBzaGFkZXIuCi0gKi8KLQotdHlwZWRlZgotc3RydWN0IFNWR0EzZENtZERlZmlu ZUdCU2hhZGVyIHsKLSAgIHVpbnQzMiBzaGlkOwotICAgU1ZHQTNkU2hhZGVyVHlwZSB0eXBlOwot ICAgdWludDMyIHNpemVJbkJ5dGVzOwotfSBfX3BhY2tlZAotU1ZHQTNkQ21kRGVmaW5lR0JTaGFk ZXI7ICAgLyogU1ZHQV8zRF9DTURfREVGSU5FX0dCX1NIQURFUiAqLwotCi0vKgotICogQmluZCBh IGd1ZXN0LWJhY2tlZCBzaGFkZXIuCi0gKi8KLQotdHlwZWRlZiBzdHJ1Y3QgU1ZHQTNkQ21kQmlu ZEdCU2hhZGVyIHsKLSAgIHVpbnQzMiBzaGlkOwotICAgU1ZHQU1vYklkIG1vYmlkOwotICAgdWlu dDMyIG9mZnNldEluQnl0ZXM7Ci19IF9fcGFja2VkCi1TVkdBM2RDbWRCaW5kR0JTaGFkZXI7ICAg LyogU1ZHQV8zRF9DTURfQklORF9HQl9TSEFERVIgKi8KLQotLyoKLSAqIERlc3Ryb3kgYSBndWVz dC1iYWNrZWQgc2hhZGVyLgotICovCi0KLXR5cGVkZWYgc3RydWN0IFNWR0EzZENtZERlc3Ryb3lH QlNoYWRlciB7Ci0gICB1aW50MzIgc2hpZDsKLX0gX19wYWNrZWQKLVNWR0EzZENtZERlc3Ryb3lH QlNoYWRlcjsgICAvKiBTVkdBXzNEX0NNRF9ERVNUUk9ZX0dCX1NIQURFUiAqLwotCi10eXBlZGVm Ci1zdHJ1Y3QgewotICAgdWludDMyICAgICAgICAgICAgICAgICAgY2lkOwotICAgdWludDMyICAg ICAgICAgICAgICAgICAgcmVnU3RhcnQ7Ci0gICBTVkdBM2RTaGFkZXJUeXBlICAgICAgICBzaGFk ZXJUeXBlOwotICAgU1ZHQTNkU2hhZGVyQ29uc3RUeXBlICAgY29uc3RUeXBlOwotCi0gICAvKgot ICAgICogRm9sbG93ZWQgYnkgYSB2YXJpYWJsZSBudW1iZXIgb2Ygc2hhZGVyIGNvbnN0YW50cy4K LSAgICAqCi0gICAgKiBOb3RlIHRoYXQgRkxPQVQgYW5kIElOVCBjb25zdGFudHMgYXJlIDQtZHdv cmRzIGluIGxlbmd0aCwgd2hpbGUKLSAgICAqIEJPT0wgY29uc3RhbnRzIGFyZSAxLWR3b3JkIGlu IGxlbmd0aC4KLSAgICAqLwotfSBfX3BhY2tlZAotU1ZHQTNkQ21kU2V0R0JTaGFkZXJDb25zdElu bGluZTsKLS8qIFNWR0FfM0RfQ01EX1NFVF9HQl9TSEFERVJDT05TVFNfSU5MSU5FICovCi0KLXR5 cGVkZWYKLXN0cnVjdCB7Ci0gICB1aW50MzIgICAgICAgICAgICAgICBjaWQ7Ci0gICBTVkdBM2RR dWVyeVR5cGUgICAgICB0eXBlOwotfSBfX3BhY2tlZAotU1ZHQTNkQ21kQmVnaW5HQlF1ZXJ5OyAg ICAgICAgICAgLyogU1ZHQV8zRF9DTURfQkVHSU5fR0JfUVVFUlkgKi8KLQotdHlwZWRlZgotc3Ry dWN0IHsKLSAgIHVpbnQzMiAgICAgICAgICAgICAgIGNpZDsKLSAgIFNWR0EzZFF1ZXJ5VHlwZSAg ICAgIHR5cGU7Ci0gICBTVkdBTW9iSWQgbW9iaWQ7Ci0gICB1aW50MzIgb2Zmc2V0OwotfSBfX3Bh Y2tlZAotU1ZHQTNkQ21kRW5kR0JRdWVyeTsgICAgICAgICAgICAgICAgICAvKiBTVkdBXzNEX0NN RF9FTkRfR0JfUVVFUlkgKi8KLQotCi0vKgotICogU1ZHQV8zRF9DTURfV0FJVF9GT1JfR0JfUVVF UlkgLS0KLSAqCi0gKiAgICBUaGUgc2VtYW50aWNzIG9mIHRoaXMgY29tbWFuZCBhcmUgaWRlbnRp Y2FsIHRvIHRoZQotICogICAgU1ZHQV8zRF9DTURfV0FJVF9GT1JfUVVFUlkgZXhjZXB0IHRoYXQg dGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4KLSAqICAgIHRvIGEgTW9iIGluc3RlYWQgb2YgYSBHTVIu Ci0gKi8KLQotdHlwZWRlZgotc3RydWN0IHsKLSAgIHVpbnQzMiAgICAgICAgICAgICAgIGNpZDsK LSAgIFNWR0EzZFF1ZXJ5VHlwZSAgICAgIHR5cGU7Ci0gICBTVkdBTW9iSWQgbW9iaWQ7Ci0gICB1 aW50MzIgb2Zmc2V0OwotfSBfX3BhY2tlZAotU1ZHQTNkQ21kV2FpdEZvckdCUXVlcnk7ICAgICAg ICAgIC8qIFNWR0FfM0RfQ01EX1dBSVRfRk9SX0dCX1FVRVJZICovCi0KLXR5cGVkZWYKLXN0cnVj dCB7Ci0gICBTVkdBTW9iSWQgbW9iaWQ7Ci0gICB1aW50MzIgZmJPZmZzZXQ7Ci0gICB1aW50MzIg aW5pdGFsaXplZDsKLX0gX19wYWNrZWQKLVNWR0EzZENtZEVuYWJsZUdhcnQ7ICAgICAgICAgICAg ICAvKiBTVkdBXzNEX0NNRF9FTkFCTEVfR0FSVCAqLwotCi10eXBlZGVmCi1zdHJ1Y3QgewotICAg U1ZHQU1vYklkIG1vYmlkOwotICAgdWludDMyIGdhcnRPZmZzZXQ7Ci19IF9fcGFja2VkCi1TVkdB M2RDbWRNYXBNb2JJbnRvR2FydDsgICAgICAgICAgLyogU1ZHQV8zRF9DTURfTUFQX01PQl9JTlRP X0dBUlQgKi8KLQotCi10eXBlZGVmCi1zdHJ1Y3QgewotICAgdWludDMyIGdhcnRPZmZzZXQ7Ci0g ICB1aW50MzIgbnVtUGFnZXM7Ci19IF9fcGFja2VkCi1TVkdBM2RDbWRVbm1hcEdhcnRSYW5nZTsg ICAgICAgICAgLyogU1ZHQV8zRF9DTURfVU5NQVBfR0FSVF9SQU5HRSAqLwotCi0KLS8qCi0gKiBT Y3JlZW4gVGFyZ2V0cwotICovCi0jZGVmaW5lIFNWR0FfU1RGTEFHX1BSSU1BUlkgKDEgPDwgMCkK LQotdHlwZWRlZgotc3RydWN0IHsKLSAgIHVpbnQzMiBzdGlkOwotICAgdWludDMyIHdpZHRoOwot ICAgdWludDMyIGhlaWdodDsKLSAgIGludDMyIHhSb290OwotICAgaW50MzIgeVJvb3Q7Ci0gICB1 aW50MzIgZmxhZ3M7Ci0gICB1aW50MzIgZHBpOwotfSBfX3BhY2tlZAotU1ZHQTNkQ21kRGVmaW5l R0JTY3JlZW5UYXJnZXQ7ICAgIC8qIFNWR0FfM0RfQ01EX0RFRklORV9HQl9TQ1JFRU5UQVJHRVQg Ki8KLQotdHlwZWRlZgotc3RydWN0IHsKLSAgIHVpbnQzMiBzdGlkOwotfSBfX3BhY2tlZAotU1ZH QTNkQ21kRGVzdHJveUdCU2NyZWVuVGFyZ2V0OyAgLyogU1ZHQV8zRF9DTURfREVTVFJPWV9HQl9T Q1JFRU5UQVJHRVQgKi8KLQotdHlwZWRlZgotc3RydWN0IHsKLSAgIHVpbnQzMiBzdGlkOwotICAg U1ZHQTNkU3VyZmFjZUltYWdlSWQgaW1hZ2U7Ci19IF9fcGFja2VkCi1TVkdBM2RDbWRCaW5kR0JT Y3JlZW5UYXJnZXQ7ICAvKiBTVkdBXzNEX0NNRF9CSU5EX0dCX1NDUkVFTlRBUkdFVCAqLwotCi10 eXBlZGVmCi1zdHJ1Y3QgewotICAgdWludDMyIHN0aWQ7Ci0gICBTVkdBM2RSZWN0IHJlY3Q7Ci19 IF9fcGFja2VkCi1TVkdBM2RDbWRVcGRhdGVHQlNjcmVlblRhcmdldDsgIC8qIFNWR0FfM0RfQ01E X1VQREFURV9HQl9TQ1JFRU5UQVJHRVQgKi8KLQotLyoKLSAqIENhcGFiaWxpdHkgcXVlcnkgaW5k ZXguCi0gKgotICogTm90ZXM6Ci0gKgotICogICAxLiBTVkdBM0RfREVWQ0FQX01BWF9URVhUVVJF UyByZWZsZWN0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YKLSAqICAgICAgZml4ZWQtZnVuY3Rpb24g dGV4dHVyZSB1bml0cyBhdmFpbGFibGUuIEVhY2ggb2YgdGhlc2UgdW5pdHMKLSAqICAgICAgd29y ayBpbiBib3RoIEZGUCBhbmQgU2hhZGVyIG1vZGVzLCBhbmQgdGhleSBzdXBwb3J0IHRleHR1cmUK LSAqICAgICAgdHJhbnNmb3JtcyBhbmQgdGV4dHVyZSBjb29yZGluYXRlcy4gVGhlIGhvc3QgbWF5 IGhhdmUgYWRkaXRpb25hbAotICogICAgICB0ZXh0dXJlIGltYWdlIHVuaXRzIHRoYXQgYXJlIG9u bHkgdXNhYmxlIHdpdGggc2hhZGVycy4KLSAqCi0gKiAgIDIuIFRoZSBCVUZGRVJfRk9STUFUIGNh cGFiaWxpdGllcyBhcmUgZGVwcmVjYXRlZCwgYW5kIHRoZXkgYWx3YXlzCi0gKiAgICAgIHJldHVy biBUUlVFLiBFdmVuIG9uIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQgZG9lcyBub3Qgc3VwcG9ydAot ICogICAgICB0aGVzZSBmb3JtYXRzIG5hdGl2ZWx5LCB0aGUgU1ZHQTNEIGRldmljZSB3aWxsIHBy b3ZpZGUgYW4gZW11bGF0aW9uCi0gKiAgICAgIHdoaWNoIHNob3VsZCBiZSBpbnZpc2libGUgdG8g dGhlIGd1ZXN0IE9TLgotICoKLSAqICAgICAgSW4gZ2VuZXJhbCwgdGhlIFNWR0EzRCBkZXZpY2Ug c2hvdWxkIHN1cHBvcnQgYW55IG9wZXJhdGlvbiBvbgotICogICAgICBhbnkgc3VyZmFjZSBmb3Jt YXQsIGl0IGp1c3QgbWF5IHBlcmZvcm0gc29tZSBvZiB0aGVzZQotICogICAgICBvcGVyYXRpb25z IGluIHNvZnR3YXJlIGRlcGVuZGluZyBvbiB0aGUgY2FwYWJpbGl0aWVzIG9mIHRoZQotICogICAg ICBhdmFpbGFibGUgcGh5c2ljYWwgaGFyZHdhcmUuCi0gKgotICogICAgICBYWFg6IEluIHRoZSBm dXR1cmUsIHdlIHdpbGwgYWRkIGNhcGFiaWxpdGllcyB0aGF0IGRlc2NyaWJlIGluCi0gKiAgICAg IGRldGFpbCB3aGF0IGZvcm1hdHMgYXJlIHN1cHBvcnRlZCBpbiBoYXJkd2FyZSBmb3Igd2hhdCBr aW5kcwotICogICAgICBvZiBvcGVyYXRpb25zLgotICovCi0KLXR5cGVkZWYgZW51bSB7Ci0gICBT VkdBM0RfREVWQ0FQXzNEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAsCi0gICBT VkdBM0RfREVWQ0FQX01BWF9MSUdIVFMgICAgICAgICAgICAgICAgICAgICAgICA9IDEsCi0gICBT VkdBM0RfREVWQ0FQX01BWF9URVhUVVJFUyAgICAgICAgICAgICAgICAgICAgICA9IDIsICAvKiBT ZWUgbm90ZSAoMSkgKi8KLSAgIFNWR0EzRF9ERVZDQVBfTUFYX0NMSVBfUExBTkVTICAgICAgICAg ICAgICAgICAgID0gMywKLSAgIFNWR0EzRF9ERVZDQVBfVkVSVEVYX1NIQURFUl9WRVJTSU9OICAg ICAgICAgICAgID0gNCwKLSAgIFNWR0EzRF9ERVZDQVBfVkVSVEVYX1NIQURFUiAgICAgICAgICAg ICAgICAgICAgID0gNSwKLSAgIFNWR0EzRF9ERVZDQVBfRlJBR01FTlRfU0hBREVSX1ZFUlNJT04g ICAgICAgICAgID0gNiwKLSAgIFNWR0EzRF9ERVZDQVBfRlJBR01FTlRfU0hBREVSICAgICAgICAg ICAgICAgICAgID0gNywKLSAgIFNWR0EzRF9ERVZDQVBfTUFYX1JFTkRFUl9UQVJHRVRTICAgICAg ICAgICAgICAgID0gOCwKLSAgIFNWR0EzRF9ERVZDQVBfUzIzRThfVEVYVFVSRVMgICAgICAgICAg ICAgICAgICAgID0gOSwKLSAgIFNWR0EzRF9ERVZDQVBfUzEwRTVfVEVYVFVSRVMgICAgICAgICAg ICAgICAgICAgID0gMTAsCi0gICBTVkdBM0RfREVWQ0FQX01BWF9GSVhFRF9WRVJURVhCTEVORCAg ICAgICAgICAgICA9IDExLAotICAgU1ZHQTNEX0RFVkNBUF9EMTZfQlVGRkVSX0ZPUk1BVCAgICAg ICAgICAgICAgICAgPSAxMiwgLyogU2VlIG5vdGUgKDIpICovCi0gICBTVkdBM0RfREVWQ0FQX0Qy NFM4X0JVRkZFUl9GT1JNQVQgICAgICAgICAgICAgICA9IDEzLCAvKiBTZWUgbm90ZSAoMikgKi8K LSAgIFNWR0EzRF9ERVZDQVBfRDI0WDhfQlVGRkVSX0ZPUk1BVCAgICAgICAgICAgICAgID0gMTQs IC8qIFNlZSBub3RlICgyKSAqLwotICAgU1ZHQTNEX0RFVkNBUF9RVUVSWV9UWVBFUyAgICAgICAg ICAgICAgICAgICAgICAgPSAxNSwKLSAgIFNWR0EzRF9ERVZDQVBfVEVYVFVSRV9HUkFESUVOVF9T QU1QTElORyAgICAgICAgID0gMTYsCi0gICBTVkdBM0RfREVWQ0FQX01BWF9QT0lOVF9TSVpFICAg ICAgICAgICAgICAgICAgICA9IDE3LAotICAgU1ZHQTNEX0RFVkNBUF9NQVhfU0hBREVSX1RFWFRV UkVTICAgICAgICAgICAgICAgPSAxOCwKLSAgIFNWR0EzRF9ERVZDQVBfTUFYX1RFWFRVUkVfV0lE VEggICAgICAgICAgICAgICAgID0gMTksCi0gICBTVkdBM0RfREVWQ0FQX01BWF9URVhUVVJFX0hF SUdIVCAgICAgICAgICAgICAgICA9IDIwLAotICAgU1ZHQTNEX0RFVkNBUF9NQVhfVk9MVU1FX0VY VEVOVCAgICAgICAgICAgICAgICAgPSAyMSwKLSAgIFNWR0EzRF9ERVZDQVBfTUFYX1RFWFRVUkVf UkVQRUFUICAgICAgICAgICAgICAgID0gMjIsCi0gICBTVkdBM0RfREVWQ0FQX01BWF9URVhUVVJF X0FTUEVDVF9SQVRJTyAgICAgICAgICA9IDIzLAotICAgU1ZHQTNEX0RFVkNBUF9NQVhfVEVYVFVS RV9BTklTT1RST1BZICAgICAgICAgICAgPSAyNCwKLSAgIFNWR0EzRF9ERVZDQVBfTUFYX1BSSU1J VElWRV9DT1VOVCAgICAgICAgICAgICAgID0gMjUsCi0gICBTVkdBM0RfREVWQ0FQX01BWF9WRVJU RVhfSU5ERVggICAgICAgICAgICAgICAgICA9IDI2LAotICAgU1ZHQTNEX0RFVkNBUF9NQVhfVkVS VEVYX1NIQURFUl9JTlNUUlVDVElPTlMgICAgPSAyNywKLSAgIFNWR0EzRF9ERVZDQVBfTUFYX0ZS QUdNRU5UX1NIQURFUl9JTlNUUlVDVElPTlMgID0gMjgsCi0gICBTVkdBM0RfREVWQ0FQX01BWF9W RVJURVhfU0hBREVSX1RFTVBTICAgICAgICAgICA9IDI5LAotICAgU1ZHQTNEX0RFVkNBUF9NQVhf RlJBR01FTlRfU0hBREVSX1RFTVBTICAgICAgICAgPSAzMCwKLSAgIFNWR0EzRF9ERVZDQVBfVEVY VFVSRV9PUFMgICAgICAgICAgICAgICAgICAgICAgID0gMzEsCi0gICBTVkdBM0RfREVWQ0FQX1NV UkZBQ0VGTVRfWDhSOEc4QjggICAgICAgICAgICAgICA9IDMyLAotICAgU1ZHQTNEX0RFVkNBUF9T VVJGQUNFRk1UX0E4UjhHOEI4ICAgICAgICAgICAgICAgPSAzMywKLSAgIFNWR0EzRF9ERVZDQVBf U1VSRkFDRUZNVF9BMlIxMEcxMEIxMCAgICAgICAgICAgID0gMzQsCi0gICBTVkdBM0RfREVWQ0FQ X1NVUkZBQ0VGTVRfWDFSNUc1QjUgICAgICAgICAgICAgICA9IDM1LAotICAgU1ZHQTNEX0RFVkNB UF9TVVJGQUNFRk1UX0ExUjVHNUI1ICAgICAgICAgICAgICAgPSAzNiwKLSAgIFNWR0EzRF9ERVZD QVBfU1VSRkFDRUZNVF9BNFI0RzRCNCAgICAgICAgICAgICAgID0gMzcsCi0gICBTVkdBM0RfREVW Q0FQX1NVUkZBQ0VGTVRfUjVHNkI1ICAgICAgICAgICAgICAgICA9IDM4LAotICAgU1ZHQTNEX0RF VkNBUF9TVVJGQUNFRk1UX0xVTUlOQU5DRTE2ICAgICAgICAgICAgPSAzOSwKLSAgIFNWR0EzRF9E RVZDQVBfU1VSRkFDRUZNVF9MVU1JTkFOQ0U4X0FMUEhBOCAgICAgID0gNDAsCi0gICBTVkdBM0Rf REVWQ0FQX1NVUkZBQ0VGTVRfQUxQSEE4ICAgICAgICAgICAgICAgICA9IDQxLAotICAgU1ZHQTNE X0RFVkNBUF9TVVJGQUNFRk1UX0xVTUlOQU5DRTggICAgICAgICAgICAgPSA0MiwKLSAgIFNWR0Ez RF9ERVZDQVBfU1VSRkFDRUZNVF9aX0QxNiAgICAgICAgICAgICAgICAgID0gNDMsCi0gICBTVkdB M0RfREVWQ0FQX1NVUkZBQ0VGTVRfWl9EMjRTOCAgICAgICAgICAgICAgICA9IDQ0LAotICAgU1ZH QTNEX0RFVkNBUF9TVVJGQUNFRk1UX1pfRDI0WDggICAgICAgICAgICAgICAgPSA0NSwKLSAgIFNW R0EzRF9ERVZDQVBfU1VSRkFDRUZNVF9EWFQxICAgICAgICAgICAgICAgICAgID0gNDYsCi0gICBT VkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfRFhUMiAgICAgICAgICAgICAgICAgICA9IDQ3LAotICAg U1ZHQTNEX0RFVkNBUF9TVVJGQUNFRk1UX0RYVDMgICAgICAgICAgICAgICAgICAgPSA0OCwKLSAg IFNWR0EzRF9ERVZDQVBfU1VSRkFDRUZNVF9EWFQ0ICAgICAgICAgICAgICAgICAgID0gNDksCi0g ICBTVkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfRFhUNSAgICAgICAgICAgICAgICAgICA9IDUwLAot ICAgU1ZHQTNEX0RFVkNBUF9TVVJGQUNFRk1UX0JVTVBYOEw4VjhVOCAgICAgICAgICAgPSA1MSwK LSAgIFNWR0EzRF9ERVZDQVBfU1VSRkFDRUZNVF9BMlcxMFYxMFUxMCAgICAgICAgICAgID0gNTIs Ci0gICBTVkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfQlVNUFU4VjggICAgICAgICAgICAgICA9IDUz LAotICAgU1ZHQTNEX0RFVkNBUF9TVVJGQUNFRk1UX1E4VzhWOFU4ICAgICAgICAgICAgICAgPSA1 NCwKLSAgIFNWR0EzRF9ERVZDQVBfU1VSRkFDRUZNVF9DeFY4VTggICAgICAgICAgICAgICAgID0g NTUsCi0gICBTVkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfUl9TMTBFNSAgICAgICAgICAgICAgICA9 IDU2LAotICAgU1ZHQTNEX0RFVkNBUF9TVVJGQUNFRk1UX1JfUzIzRTggICAgICAgICAgICAgICAg PSA1NywKLSAgIFNWR0EzRF9ERVZDQVBfU1VSRkFDRUZNVF9SR19TMTBFNSAgICAgICAgICAgICAg ID0gNTgsCi0gICBTVkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfUkdfUzIzRTggICAgICAgICAgICAg ICA9IDU5LAotICAgU1ZHQTNEX0RFVkNBUF9TVVJGQUNFRk1UX0FSR0JfUzEwRTUgICAgICAgICAg ICAgPSA2MCwKLSAgIFNWR0EzRF9ERVZDQVBfU1VSRkFDRUZNVF9BUkdCX1MyM0U4ICAgICAgICAg ICAgID0gNjEsCi0gICBTVkdBM0RfREVWQ0FQX01BWF9WRVJURVhfU0hBREVSX1RFWFRVUkVTICAg ICAgICA9IDYzLAotCi0gICAvKgotICAgICogTm90ZSB0aGF0IE1BWF9TSU1VTFRBTkVPVVNfUkVO REVSX1RBUkdFVFMgaXMgYSBtYXhpbXVtIGNvdW50IG9mIGNvbG9yCi0gICAgKiByZW5kZXIgdGFy Z2V0cy4gIFRoaXMgZG9lcyBubyBpbmNsdWRlIHRoZSBkZXB0aCBvciBzdGVuY2lsIHRhcmdldHMu Ci0gICAgKi8KLSAgIFNWR0EzRF9ERVZDQVBfTUFYX1NJTVVMVEFORU9VU19SRU5ERVJfVEFSR0VU UyAgID0gNjQsCi0KLSAgIFNWR0EzRF9ERVZDQVBfU1VSRkFDRUZNVF9WMTZVMTYgICAgICAgICAg ICAgICAgID0gNjUsCi0gICBTVkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfRzE2UjE2ICAgICAgICAg ICAgICAgICA9IDY2LAotICAgU1ZHQTNEX0RFVkNBUF9TVVJGQUNFRk1UX0ExNkIxNkcxNlIxNiAg ICAgICAgICAgPSA2NywKLSAgIFNWR0EzRF9ERVZDQVBfU1VSRkFDRUZNVF9VWVZZICAgICAgICAg ICAgICAgICAgID0gNjgsCi0gICBTVkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfWVVZMiAgICAgICAg ICAgICAgICAgICA9IDY5LAotICAgU1ZHQTNEX0RFVkNBUF9NVUxUSVNBTVBMRV9OT05NQVNLQUJM RVNBTVBMRVMgICAgPSA3MCwKLSAgIFNWR0EzRF9ERVZDQVBfTVVMVElTQU1QTEVfTUFTS0FCTEVT QU1QTEVTICAgICAgID0gNzEsCi0gICBTVkdBM0RfREVWQ0FQX0FMUEhBVE9DT1ZFUkFHRSAgICAg ICAgICAgICAgICAgICA9IDcyLAotICAgU1ZHQTNEX0RFVkNBUF9TVVBFUlNBTVBMRSAgICAgICAg ICAgICAgICAgICAgICAgPSA3MywKLSAgIFNWR0EzRF9ERVZDQVBfQVVUT0dFTk1JUE1BUFMgICAg ICAgICAgICAgICAgICAgID0gNzQsCi0gICBTVkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfTlYxMiAg ICAgICAgICAgICAgICAgICA9IDc1LAotICAgU1ZHQTNEX0RFVkNBUF9TVVJGQUNFRk1UX0FZVVYg ICAgICAgICAgICAgICAgICAgPSA3NiwKLQotICAgLyoKLSAgICAqIFRoaXMgaXMgdGhlIG1heGlt dW0gbnVtYmVyIG9mIFNWR0EgY29udGV4dCBJRHMgdGhhdCB0aGUgZ3Vlc3QKLSAgICAqIGNhbiBk ZWZpbmUgdXNpbmcgU1ZHQV8zRF9DTURfQ09OVEVYVF9ERUZJTkUuCi0gICAgKi8KLSAgIFNWR0Ez RF9ERVZDQVBfTUFYX0NPTlRFWFRfSURTICAgICAgICAgICAgICAgICAgID0gNzcsCi0KLSAgIC8q Ci0gICAgKiBUaGlzIGlzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBTVkdBIHN1cmZhY2UgSURzIHRo YXQgdGhlIGd1ZXN0Ci0gICAgKiBjYW4gZGVmaW5lIHVzaW5nIFNWR0FfM0RfQ01EX1NVUkZBQ0Vf REVGSU5FKi4KLSAgICAqLwotICAgU1ZHQTNEX0RFVkNBUF9NQVhfU1VSRkFDRV9JRFMgICAgICAg ICAgICAgICAgICAgPSA3OCwKLQotICAgU1ZHQTNEX0RFVkNBUF9TVVJGQUNFRk1UX1pfREYxNiAg ICAgICAgICAgICAgICAgPSA3OSwKLSAgIFNWR0EzRF9ERVZDQVBfU1VSRkFDRUZNVF9aX0RGMjQg ICAgICAgICAgICAgICAgID0gODAsCi0gICBTVkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfWl9EMjRT OF9JTlQgICAgICAgICAgICA9IDgxLAotCi0gICBTVkdBM0RfREVWQ0FQX1NVUkZBQ0VGTVRfQkM0 X1VOT1JNICAgICAgICAgICAgICA9IDgyLAotICAgU1ZHQTNEX0RFVkNBUF9TVVJGQUNFRk1UX0JD NV9VTk9STSAgICAgICAgICAgICAgPSA4MywKLQotICAgLyoKLSAgICAqIERlcHJlY2F0ZWQuCi0g ICAgKi8KLSAgIFNWR0EzRF9ERVZDQVBfVkdQVTEwICAgICAgICAgICAgICAgICAgICAgICAgICAg ID0gODQsCi0KLSAgIC8qCi0gICAgKiBUaGlzIGNvbnRhaW5zIHNldmVyYWwgU1ZHQV8zRF9DQVBT X1ZJREVPX0RFQ09ERSBlbGVtZW50cwotICAgICogb3JlZCB0b2dldGhlciwgb25lIGZvciBldmVy eSB0eXBlIG9mIHZpZGVvIGRlY29kaW5nIHN1cHBvcnRlZC4KLSAgICAqLwotICAgU1ZHQTNEX0RF VkNBUF9WSURFT19ERUNPREUgICAgICAgICAgICAgICAgICAgICAgPSA4NSwKLQotICAgLyoKLSAg ICAqIFRoaXMgY29udGFpbnMgc2V2ZXJhbCBTVkdBXzNEX0NBUFNfVklERU9fUFJPQ0VTUyBlbGVt ZW50cwotICAgICogb3JlZCB0b2dldGhlciwgb25lIGZvciBldmVyeSB0eXBlIG9mIHZpZGVvIHBy b2Nlc3Npbmcgc3VwcG9ydGVkLgotICAgICovCi0gICBTVkdBM0RfREVWQ0FQX1ZJREVPX1BST0NF U1MgICAgICAgICAgICAgICAgICAgICA9IDg2LAotCi0gICBTVkdBM0RfREVWQ0FQX0xJTkVfQUEg ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDg3LCAgLyogYm9vbGVhbiAqLwotICAgU1ZHQTNE X0RFVkNBUF9MSU5FX1NUSVBQTEUgICAgICAgICAgICAgICAgICAgICAgPSA4OCwgIC8qIGJvb2xl YW4gKi8KLSAgIFNWR0EzRF9ERVZDQVBfTUFYX0xJTkVfV0lEVEggICAgICAgICAgICAgICAgICAg ID0gODksICAvKiBmbG9hdCAqLwotICAgU1ZHQTNEX0RFVkNBUF9NQVhfQUFfTElORV9XSURUSCAg ICAgICAgICAgICAgICAgPSA5MCwgIC8qIGZsb2F0ICovCi0KLSAgIFNWR0EzRF9ERVZDQVBfU1VS RkFDRUZNVF9ZVjEyICAgICAgICAgICAgICAgICAgID0gOTEsCi0KLSAgIC8qCi0gICAgKiBEb2Vz IHRoZSBob3N0IHN1cHBvcnQgdGhlIFNWR0EgbG9naWMgb3BzIGNvbW1hbmRzPwotICAgICovCi0g ICBTVkdBM0RfREVWQ0FQX0xPR0lDT1BTICAgICAgICAgICAgICAgICAgICAgICAgICA9IDkyLAot Ci0gICAvKgotICAgICogV2hhdCBzdXBwb3J0IGRvZXMgdGhlIGhvc3QgaGF2ZSBmb3Igc2NyZWVu IHRhcmdldHM/Ci0gICAgKgotICAgICogU2VlIHRoZSBTVkdBM0RfU0NSRUVOVEFSR0VUX0NBUCBi aXRzIGJlbG93LgotICAgICovCi0gICBTVkdBM0RfREVWQ0FQX1NDUkVFTlRBUkdFVFMgICAgICAg ICAgICAgICAgICAgICA9IDkzLAotCi0gICBTVkdBM0RfREVWQ0FQX01BWCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvKiBUaGlzIG11c3QgYmUgdGhlIGxhc3QgaW5kZXguICovCi19 IFNWR0EzZERldkNhcEluZGV4OwotCi10eXBlZGVmIHVuaW9uIHsKLSAgIEJvb2wgICBiOwotICAg dWludDMyIHU7Ci0gICBpbnQzMiAgaTsKLSAgIGZsb2F0ICBmOwotfSBTVkdBM2REZXZDYXBSZXN1 bHQ7Ci0KLXR5cGVkZWYgZW51bSB7Ci0gICBTVkdBM0RDQVBTX1JFQ09SRF9VTktOT1dOICAgICAg ICA9IDAsCi0gICBTVkdBM0RDQVBTX1JFQ09SRF9ERVZDQVBTX01JTiAgICA9IDB4MTAwLAotICAg U1ZHQTNEQ0FQU19SRUNPUkRfREVWQ0FQUyAgICAgICAgPSAweDEwMCwKLSAgIFNWR0EzRENBUFNf UkVDT1JEX0RFVkNBUFNfTUFYICAgID0gMHgxZmYsCi19IFNWR0EzZENhcHNSZWNvcmRUeXBlOwot Ci10eXBlZGVmCi1zdHJ1Y3QgU1ZHQTNkQ2Fwc1JlY29yZEhlYWRlciB7Ci0gICB1aW50MzIgbGVu Z3RoOwotICAgU1ZHQTNkQ2Fwc1JlY29yZFR5cGUgdHlwZTsKLX0KLVNWR0EzZENhcHNSZWNvcmRI ZWFkZXI7Ci0KLXR5cGVkZWYKLXN0cnVjdCBTVkdBM2RDYXBzUmVjb3JkIHsKLSAgIFNWR0EzZENh cHNSZWNvcmRIZWFkZXIgaGVhZGVyOwotICAgdWludDMyIGRhdGFbMV07Ci19Ci1TVkdBM2RDYXBz UmVjb3JkOwotCi0KLXR5cGVkZWYgdWludDMyIFNWR0EzZENhcFBhaXJbMl07Ci0KLSNlbmRpZiAv KiBfU1ZHQTNEX1JFR19IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9z dmdhM2Rfc3VyZmFjZWRlZnMuaCBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvc3ZnYTNkX3N1cmZh Y2VkZWZzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1NWFiMDEuLjAwMDAwMDAK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9zdmdhM2Rfc3VyZmFjZWRlZnMuaAorKysgL2Rl di9udWxsCkBAIC0xLDk3MyArMCwwIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCi0gKiBDb3B5 cmlnaHQgwqkgMjAwOC0yMDEyIFZNd2FyZSwgSW5jLiwgUGFsbyBBbHRvLCBDQS4sIFVTQQotICog QWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0 aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotICog IlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24s IGluY2x1ZGluZwotICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5 LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotICogZGlzdHJpYnV0ZSwgc3ViIGxpY2Vuc2UsIGFu ZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwotICogcGVybWl0IHBlcnNv bnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv Ci0gKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdo dCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUKLSAqIG5l eHQgcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50 aWFsIHBvcnRpb25zCi0gKiBvZiB0aGUgU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElT IFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Mg T1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJ RVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UgQU5EIE5PTi1JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMCi0gKiBUSEUgQ09QWVJJ R0hUIEhPTERFUlMsIEFVVEhPUlMgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBB TlkgQ0xBSU0sCi0gKiBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBB Q1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IKLSAqIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBP VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUKLSAqIFVTRSBP UiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0gKgotICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq LwotCi0jaWZkZWYgX19LRVJORUxfXwotCi0jaW5jbHVkZSA8ZHJtL3Ztd2dmeF9kcm0uaD4KLSNk ZWZpbmUgc3VyZl9zaXplX3N0cnVjdCBzdHJ1Y3QgZHJtX3Ztd19zaXplCi0KLSNlbHNlIC8qIF9f S0VSTkVMX18gKi8KLQotI2lmbmRlZiBBUlJBWV9TSVpFCi0jZGVmaW5lIEFSUkFZX1NJWkUoX0Ep IChzaXplb2YoX0EpIC8gc2l6ZW9mKChfQSlbMF0pKQotI2VuZGlmIC8qIEFSUkFZX1NJWkUgKi8K LQotI2RlZmluZSBESVZfUk9VTkRfVVAoeCwgeSkgICgoKHgpICsgKHkpIC0gMSkgLyAoeSkpCi0j ZGVmaW5lIG1heF90KHR5cGUsIHgsIHkpICAoKHgpID4gKHkpID8gKHgpIDogKHkpKQotI2RlZmlu ZSBtaW5fdCh0eXBlLCB4LCB5KSAgKCh4KSA8ICh5KSA/ICh4KSA6ICh5KSkKLSNkZWZpbmUgc3Vy Zl9zaXplX3N0cnVjdCBTVkdBM2RTaXplCi0jZGVmaW5lIHUzMiB1aW50MzIKLSNkZWZpbmUgdTY0 IHVpbnQ2NF90Ci0jZGVmaW5lIFUzMl9NQVggKCh1MzIpfjBVKQotCi0jZW5kaWYgLyogX19LRVJO RUxfXyAqLwotCi0jaW5jbHVkZSAic3ZnYTNkX3JlZy5oIgotCi0vKgotICogZW51bSBzdmdhM2Rf YmxvY2tfZGVzYyBkZXNjcmliZXMgdGhlIGFjdGl2ZSBkYXRhIGNoYW5uZWxzIGluIGEgYmxvY2su Ci0gKgotICogVGhlcmUgY2FuIGJlIGF0LW1vc3QgZm91ciBhY3RpdmUgY2hhbm5lbHMgaW4gYSBi bG9jazoKLSAqICAgIDEuIFJlZCwgYnVtcCBXLCBsdW1pbmFuY2UgYW5kIGRlcHRoIGFyZSBzdG9y ZWQgaW4gdGhlIGZpcnN0IGNoYW5uZWwuCi0gKiAgICAyLiBHcmVlbiwgYnVtcCBWIGFuZCBzdGVu Y2lsIGFyZSBzdG9yZWQgaW4gdGhlIHNlY29uZCBjaGFubmVsLgotICogICAgMy4gQmx1ZSBhbmQg YnVtcCBVIGFyZSBzdG9yZWQgaW4gdGhlIHRoaXJkIGNoYW5uZWwuCi0gKiAgICA0LiBBbHBoYSBh bmQgYnVtcCBRIGFyZSBzdG9yZWQgaW4gdGhlIGZvdXJ0aCBjaGFubmVsLgotICoKLSAqIEJsb2Nr IGNoYW5uZWxzIGNhbiBiZSB1c2VkIHRvIHN0b3JlIGNvbXByZXNzZWQgYW5kIGJ1ZmZlciBkYXRh OgotICogICAgMS4gRm9yIGNvbXByZXNzZWQgZm9ybWF0cywgb25seSB0aGUgZGF0YSBjaGFubmVs IGlzIHVzZWQgYW5kIGl0cyBzaXplCi0gKiAgICAgICBpcyBlcXVhbCB0byB0aGF0IG9mIGEgc2lu Z3VsYXIgYmxvY2sgaW4gdGhlIGNvbXByZXNzaW9uIHNjaGVtZS4KLSAqICAgIDIuIEZvciBidWZm ZXIgZm9ybWF0cywgb25seSB0aGUgZGF0YSBjaGFubmVsIGlzIHVzZWQgYW5kIGl0cyBzaXplIGlz Ci0gKiAgICAgICBleGFjdGx5IG9uZSBieXRlIGluIGxlbmd0aC4KLSAqICAgIDMuIEluIGVhY2gg Y2FzZSB0aGUgYml0IGRlcHRoIHJlcHJlc2VudCB0aGUgc2l6ZSBvZiBhIHNpbmd1bGFyIGJsb2Nr LgotICoKLSAqIE5vdGU6IENvbXByZXNzZWQgYW5kIElFRUUgZm9ybWF0cyBkbyBub3QgdXNlIHRo ZSBiaXRNYXNrIHN0cnVjdHVyZS4KLSAqLwotCi1lbnVtIHN2Z2EzZF9ibG9ja19kZXNjIHsKLQlT VkdBM0RCTE9DS0RFU0NfTk9ORSAgICAgICAgPSAwLCAgICAgICAgIC8qIE5vIGNoYW5uZWxzIGFy ZSBhY3RpdmUgKi8KLQlTVkdBM0RCTE9DS0RFU0NfQkxVRSAgICAgICAgPSAxIDw8IDAsICAgIC8q IEJsb2NrIHdpdGggcmVkIGNoYW5uZWwKLQkJCQkJCSAgICBkYXRhICovCi0JU1ZHQTNEQkxPQ0tE RVNDX1UgICAgICAgICAgID0gMSA8PCAwLCAgICAvKiBCbG9jayB3aXRoIGJ1bXAgVSBjaGFubmVs Ci0JCQkJCQkgICAgZGF0YSAqLwotCVNWR0EzREJMT0NLREVTQ19VVl9WSURFTyAgICA9IDEgPDwg NywgICAgLyogQmxvY2sgd2l0aCBhbHRlcm5hdGluZyB2aWRlbwotCQkJCQkJICAgIFUgYW5kIFYg Ki8KLQlTVkdBM0RCTE9DS0RFU0NfR1JFRU4gICAgICAgPSAxIDw8IDEsICAgIC8qIEJsb2NrIHdp dGggZ3JlZW4gY2hhbm5lbAotCQkJCQkJICAgIGRhdGEgKi8KLQlTVkdBM0RCTE9DS0RFU0NfViAg ICAgICAgICAgPSAxIDw8IDEsICAgIC8qIEJsb2NrIHdpdGggYnVtcCBWIGNoYW5uZWwKLQkJCQkJ CSAgICBkYXRhICovCi0JU1ZHQTNEQkxPQ0tERVNDX1NURU5DSUwgICAgID0gMSA8PCAxLCAgICAv KiBCbG9jayB3aXRoIGEgc3RlbmNpbAotCQkJCQkJICAgIGNoYW5uZWwgKi8KLQlTVkdBM0RCTE9D S0RFU0NfUkVEICAgICAgICAgPSAxIDw8IDIsICAgIC8qIEJsb2NrIHdpdGggYmx1ZSBjaGFubmVs Ci0JCQkJCQkgICAgZGF0YSAqLwotCVNWR0EzREJMT0NLREVTQ19XICAgICAgICAgICA9IDEgPDwg MiwgICAgLyogQmxvY2sgd2l0aCBidW1wIFcgY2hhbm5lbAotCQkJCQkJICAgIGRhdGEgKi8KLQlT VkdBM0RCTE9DS0RFU0NfTFVNSU5BTkNFICAgPSAxIDw8IDIsICAgIC8qIEJsb2NrIHdpdGggbHVt aW5hbmNlIGNoYW5uZWwKLQkJCQkJCSAgICBkYXRhICovCi0JU1ZHQTNEQkxPQ0tERVNDX1kgICAg ICAgICAgID0gMSA8PCAyLCAgICAvKiBCbG9jayB3aXRoIHZpZGVvIGx1bWluYW5jZQotCQkJCQkJ ICAgIGRhdGEgKi8KLQlTVkdBM0RCTE9DS0RFU0NfREVQVEggICAgICAgPSAxIDw8IDIsICAgIC8q IEJsb2NrIHdpdGggZGVwdGggY2hhbm5lbCAqLwotCVNWR0EzREJMT0NLREVTQ19BTFBIQSAgICAg ICA9IDEgPDwgMywgICAgLyogQmxvY2sgd2l0aCBhbiBhbHBoYQotCQkJCQkJICAgIGNoYW5uZWwg Ki8KLQlTVkdBM0RCTE9DS0RFU0NfUSAgICAgICAgICAgPSAxIDw8IDMsICAgIC8qIEJsb2NrIHdp dGggYnVtcCBRIGNoYW5uZWwKLQkJCQkJCSAgICBkYXRhICovCi0JU1ZHQTNEQkxPQ0tERVNDX0JV RkZFUiAgICAgID0gMSA8PCA0LCAgICAvKiBCbG9jayBzdG9yZXMgMSBieXRlIG9mCi0JCQkJCQkg ICAgZGF0YSAqLwotCVNWR0EzREJMT0NLREVTQ19DT01QUkVTU0VEICA9IDEgPDwgNSwgICAgLyog QmxvY2sgc3RvcmVzIG4gYnl0ZXMgb2YKLQkJCQkJCSAgICBkYXRhIGRlcGVuZGluZyBvbiB0aGUK LQkJCQkJCSAgICBjb21wcmVzc2lvbiBtZXRob2QgdXNlZCAqLwotCVNWR0EzREJMT0NLREVTQ19J RUVFX0ZQICAgICA9IDEgPDwgNiwgICAgLyogQmxvY2sgc3RvcmVzIGRhdGEgaW4gYW4gSUVFRQot CQkJCQkJICAgIGZsb2F0aW5nIHBvaW50Ci0JCQkJCQkgICAgcmVwcmVzZW50YXRpb24gaW4KLQkJ CQkJCSAgICBhbGwgY2hhbm5lbHMgKi8KLQlTVkdBM0RCTE9DS0RFU0NfUExBTkFSX1lVViAgPSAx IDw8IDgsICAgIC8qIFRocmVlIHNlcGFyYXRlIGJsb2NrcyBzdG9yZQotCQkJCQkJICAgIGRhdGEu ICovCi0JU1ZHQTNEQkxPQ0tERVNDX1VfVklERU8gICAgID0gMSA8PCA5LCAgICAvKiBCbG9jayB3 aXRoIFUgdmlkZW8gZGF0YSAqLwotCVNWR0EzREJMT0NLREVTQ19WX1ZJREVPICAgICA9IDEgPDwg MTAsICAgLyogQmxvY2sgd2l0aCBWIHZpZGVvIGRhdGEgKi8KLQlTVkdBM0RCTE9DS0RFU0NfRVhQ ICAgICAgICAgPSAxIDw8IDExLCAgIC8qIFNoYXJlZCBleHBvbmVudCAqLwotCVNWR0EzREJMT0NL REVTQ19TUkdCICAgICAgICA9IDEgPDwgMTIsICAgLyogRGF0YSBpcyBpbiBzUkdCIGZvcm1hdCAq LwotCVNWR0EzREJMT0NLREVTQ18yUExBTkFSX1lVViA9IDEgPDwgMTMsICAgLyogMiBwbGFuZXMg b2YgWSwgVVYsCi0JCQkJCQkgICAgZS5nLiwgTlYxMi4gKi8KLQlTVkdBM0RCTE9DS0RFU0NfM1BM QU5BUl9ZVVYgPSAxIDw8IDE0LCAgIC8qIDMgcGxhbmVzIG9mIHNlcGFyYXRlCi0JCQkJCQkgICAg WSwgVSwgViwgZS5nLiwgWVYxMi4gKi8KLQotCVNWR0EzREJMT0NLREVTQ19SRyAgICAgICAgID0g U1ZHQTNEQkxPQ0tERVNDX1JFRCB8Ci0JU1ZHQTNEQkxPQ0tERVNDX0dSRUVOLAotCVNWR0EzREJM T0NLREVTQ19SR0IgICAgICAgID0gU1ZHQTNEQkxPQ0tERVNDX1JHIHwKLQlTVkdBM0RCTE9DS0RF U0NfQkxVRSwKLQlTVkdBM0RCTE9DS0RFU0NfUkdCX1NSR0IgICA9IFNWR0EzREJMT0NLREVTQ19S R0IgfAotCVNWR0EzREJMT0NLREVTQ19TUkdCLAotCVNWR0EzREJMT0NLREVTQ19SR0JBICAgICAg ID0gU1ZHQTNEQkxPQ0tERVNDX1JHQiB8Ci0JU1ZHQTNEQkxPQ0tERVNDX0FMUEhBLAotCVNWR0Ez REJMT0NLREVTQ19SR0JBX1NSR0IgID0gU1ZHQTNEQkxPQ0tERVNDX1JHQkEgfAotCVNWR0EzREJM T0NLREVTQ19TUkdCLAotCVNWR0EzREJMT0NLREVTQ19VViAgICAgICAgID0gU1ZHQTNEQkxPQ0tE RVNDX1UgfAotCVNWR0EzREJMT0NLREVTQ19WLAotCVNWR0EzREJMT0NLREVTQ19VVkwgICAgICAg ID0gU1ZHQTNEQkxPQ0tERVNDX1VWIHwKLQlTVkdBM0RCTE9DS0RFU0NfTFVNSU5BTkNFLAotCVNW R0EzREJMT0NLREVTQ19VVlcgICAgICAgID0gU1ZHQTNEQkxPQ0tERVNDX1VWIHwKLQlTVkdBM0RC TE9DS0RFU0NfVywKLQlTVkdBM0RCTE9DS0RFU0NfVVZXQSAgICAgICA9IFNWR0EzREJMT0NLREVT Q19VVlcgfAotCVNWR0EzREJMT0NLREVTQ19BTFBIQSwKLQlTVkdBM0RCTE9DS0RFU0NfVVZXUSAg ICAgICA9IFNWR0EzREJMT0NLREVTQ19VIHwKLQlTVkdBM0RCTE9DS0RFU0NfViB8Ci0JU1ZHQTNE QkxPQ0tERVNDX1cgfAotCVNWR0EzREJMT0NLREVTQ19RLAotCVNWR0EzREJMT0NLREVTQ19MQSAg ICAgICAgID0gU1ZHQTNEQkxPQ0tERVNDX0xVTUlOQU5DRSB8Ci0JU1ZHQTNEQkxPQ0tERVNDX0FM UEhBLAotCVNWR0EzREJMT0NLREVTQ19SX0ZQICAgICAgID0gU1ZHQTNEQkxPQ0tERVNDX1JFRCB8 Ci0JU1ZHQTNEQkxPQ0tERVNDX0lFRUVfRlAsCi0JU1ZHQTNEQkxPQ0tERVNDX1JHX0ZQICAgICAg PSBTVkdBM0RCTE9DS0RFU0NfUl9GUCB8Ci0JU1ZHQTNEQkxPQ0tERVNDX0dSRUVOLAotCVNWR0Ez REJMT0NLREVTQ19SR0JfRlAgICAgID0gU1ZHQTNEQkxPQ0tERVNDX1JHX0ZQIHwKLQlTVkdBM0RC TE9DS0RFU0NfQkxVRSwKLQlTVkdBM0RCTE9DS0RFU0NfUkdCQV9GUCAgICA9IFNWR0EzREJMT0NL REVTQ19SR0JfRlAgfAotCVNWR0EzREJMT0NLREVTQ19BTFBIQSwKLQlTVkdBM0RCTE9DS0RFU0Nf RFMgICAgICAgICA9IFNWR0EzREJMT0NLREVTQ19ERVBUSCB8Ci0JU1ZHQTNEQkxPQ0tERVNDX1NU RU5DSUwsCi0JU1ZHQTNEQkxPQ0tERVNDX1lVViAgICAgICAgPSBTVkdBM0RCTE9DS0RFU0NfVVZf VklERU8gfAotCVNWR0EzREJMT0NLREVTQ19ZLAotCVNWR0EzREJMT0NLREVTQ19BWVVWICAgICAg ID0gU1ZHQTNEQkxPQ0tERVNDX0FMUEhBIHwKLQlTVkdBM0RCTE9DS0RFU0NfWSB8Ci0JU1ZHQTNE QkxPQ0tERVNDX1VfVklERU8gfAotCVNWR0EzREJMT0NLREVTQ19WX1ZJREVPLAotCVNWR0EzREJM T0NLREVTQ19SR0JFICAgICAgID0gU1ZHQTNEQkxPQ0tERVNDX1JHQiB8Ci0JU1ZHQTNEQkxPQ0tE RVNDX0VYUCwKLQlTVkdBM0RCTE9DS0RFU0NfQ09NUFJFU1NFRF9TUkdCID0gU1ZHQTNEQkxPQ0tE RVNDX0NPTVBSRVNTRUQgfAotCVNWR0EzREJMT0NLREVTQ19TUkdCLAotCVNWR0EzREJMT0NLREVT Q19OVjEyICAgICAgID0gU1ZHQTNEQkxPQ0tERVNDX1BMQU5BUl9ZVVYgfAotCVNWR0EzREJMT0NL REVTQ18yUExBTkFSX1lVViwKLQlTVkdBM0RCTE9DS0RFU0NfWVYxMiAgICAgICA9IFNWR0EzREJM T0NLREVTQ19QTEFOQVJfWVVWIHwKLQlTVkdBM0RCTE9DS0RFU0NfM1BMQU5BUl9ZVVYsCi19Owot Ci0vKgotICogU1ZHQTNkU3VyZmFjZURlc2MgZGVzY3JpYmVzIHRoZSBhY3R1YWwgcGl4ZWwgZGF0 YS4KLSAqCi0gKiBUaGlzIHN0cnVjdHVyZSBwcm92aWRlcyB0aGUgZm9sbG93aW5nIGluZm9ybWF0 aW9uOgotICogICAgMS4gQmxvY2sgZGVzY3JpcHRpb24uCi0gKiAgICAyLiBEaW1lbnNpb25zIG9m IGEgYmxvY2sgaW4gdGhlIHN1cmZhY2UuCi0gKiAgICAzLiBTaXplIG9mIGJsb2NrIGluIGJ5dGVz LgotICogICAgNC4gQml0IGRlcHRoIG9mIHRoZSBwaXhlbCBkYXRhLgotICogICAgNS4gQ2hhbm5l bCBiaXQgZGVwdGhzIGFuZCBtYXNrcyAoaWYgYXBwbGljYWJsZSkuCi0gKi8KLSNkZWZpbmUgU1ZH QTNEX0NIQU5ORUxfREVGKHR5cGUpCQlcCi0Jc3RydWN0IHsJCQkJXAotCQl1bmlvbiB7CQkJCVwK LQkJCXR5cGUgYmx1ZTsgICAgICAgICAgICAgIFwKLQkJCXR5cGUgdTsgICAgICAgICAgICAgICAg IFwKLQkJCXR5cGUgdXZfdmlkZW87ICAgICAgICAgIFwKLQkJCXR5cGUgdV92aWRlbzsgICAgICAg ICAgIFwKLQkJfTsJCQkJXAotCQl1bmlvbiB7CQkJCVwKLQkJCXR5cGUgZ3JlZW47ICAgICAgICAg ICAgIFwKLQkJCXR5cGUgdjsgICAgICAgICAgICAgICAgIFwKLQkJCXR5cGUgc3RlbmNpbDsgICAg ICAgICAgIFwKLQkJCXR5cGUgdl92aWRlbzsgICAgICAgICAgIFwKLQkJfTsJCQkJXAotCQl1bmlv biB7CQkJCVwKLQkJCXR5cGUgcmVkOyAgICAgICAgICAgICAgIFwKLQkJCXR5cGUgdzsgICAgICAg ICAgICAgICAgIFwKLQkJCXR5cGUgbHVtaW5hbmNlOyAgICAgICAgIFwKLQkJCXR5cGUgeTsgICAg ICAgICAgICAgICAgIFwKLQkJCXR5cGUgZGVwdGg7ICAgICAgICAgICAgIFwKLQkJCXR5cGUgZGF0 YTsgICAgICAgICAgICAgIFwKLQkJfTsJCQkJXAotCQl1bmlvbiB7CQkJCVwKLQkJCXR5cGUgYWxw aGE7ICAgICAgICAgICAgIFwKLQkJCXR5cGUgcTsgICAgICAgICAgICAgICAgIFwKLQkJCXR5cGUg ZXhwOyAgICAgICAgICAgICAgIFwKLQkJfTsJCQkJXAotCX0KLQotc3RydWN0IHN2Z2EzZF9zdXJm YWNlX2Rlc2MgewotCWVudW0gc3ZnYTNkX2Jsb2NrX2Rlc2MgYmxvY2tfZGVzYzsKLQlzdXJmX3Np emVfc3RydWN0IGJsb2NrX3NpemU7Ci0JdTMyIGJ5dGVzX3Blcl9ibG9jazsKLQl1MzIgcGl0Y2hf Ynl0ZXNfcGVyX2Jsb2NrOwotCi0Jc3RydWN0IHsKLQkJdTMyIHRvdGFsOwotCQlTVkdBM0RfQ0hB Tk5FTF9ERUYodWludDgpOwotCX0gYml0X2RlcHRoOwotCi0Jc3RydWN0IHsKLQkJU1ZHQTNEX0NI QU5ORUxfREVGKHVpbnQ4KTsKLQl9IGJpdF9vZmZzZXQ7Ci19OwotCi1zdGF0aWMgY29uc3Qgc3Ry dWN0IHN2Z2EzZF9zdXJmYWNlX2Rlc2Mgc3ZnYTNkX3N1cmZhY2VfZGVzY3NbXSA9IHsKLQl7U1ZH QTNEQkxPQ0tERVNDX05PTkUsCi0JIHsxLCAxLCAxfSwgIDAsIDAsIHswLCB7ezB9LCB7MH0sIHsw fSwgezB9IH0gfSwKLQkge3t7MH0sIHswfSwgezB9LCB7MH0gfSB9IH0sICAgICAvKiBTVkdBM0Rf Rk9STUFUX0lOVkFMSUQgKi8KLQotCXtTVkdBM0RCTE9DS0RFU0NfUkdCLAotCSB7MSwgMSwgMX0s ICA0LCA0LCB7MjQsIHt7OH0sIHs4fSwgezh9LCB7MH0gfSB9LAotCSB7e3swfSwgezh9LCB7MTZ9 LCB7MjR9IH0gfSB9LCAgIC8qIFNWR0EzRF9YOFI4RzhCOCAqLwotCi0Je1NWR0EzREJMT0NLREVT Q19SR0JBLAotCSB7MSwgMSwgMX0sICA0LCA0LCB7MzIsIHt7OH0sIHs4fSwgezh9LCB7OH0gfSB9 LAotCSB7e3swfSwgezh9LCB7MTZ9LCB7MjR9IH0gfSB9LCAgIC8qIFNWR0EzRF9BOFI4RzhCOCAq LwotCi0Je1NWR0EzREJMT0NLREVTQ19SR0IsCi0JIHsxLCAxLCAxfSwgIDIsIDIsIHsxNiwge3s1 fSwgezZ9LCB7NX0sIHswfSB9IH0sCi0JIHt7ezB9LCB7NX0sIHsxMX0sIHswfSB9IH0gfSwgICAg LyogU1ZHQTNEX1I1RzZCNSAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19SR0IsCi0JIHsxLCAxLCAx fSwgIDIsIDIsIHsxNSwge3s1fSwgezV9LCB7NX0sIHswfSB9IH0sCi0JIHt7ezB9LCB7NX0sIHsx MH0sIHswfSB9IH0gfSwgICAgLyogU1ZHQTNEX1gxUjVHNUI1ICovCi0KLQl7U1ZHQTNEQkxPQ0tE RVNDX1JHQkEsCi0JIHsxLCAxLCAxfSwgIDIsIDIsIHsxNiwge3s1fSwgezV9LCB7NX0sIHsxfSB9 IH0sCi0JIHt7ezB9LCB7NX0sIHsxMH0sIHsxNX0gfSB9IH0sICAgLyogU1ZHQTNEX0ExUjVHNUI1 ICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX1JHQkEsCi0JIHsxLCAxLCAxfSwgIDIsIDIsIHsxNiwg e3s0fSwgezR9LCB7NH0sIHs0fSB9IH0sCi0JIHt7ezB9LCB7NH0sIHs4fSwgezEyfSB9IH0gfSwg ICAgLyogU1ZHQTNEX0E0UjRHNEI0ICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX0RFUFRILAotCSB7 MSwgMSwgMX0sICA0LCA0LCB7MzIsIHt7MH0sIHswfSwgezMyfSwgezB9IH0gfSwKLQkge3t7MH0s IHswfSwgezB9LCB7MH0gfSB9IH0sICAgICAvKiBTVkdBM0RfWl9EMzIgKi8KLQotCXtTVkdBM0RC TE9DS0RFU0NfREVQVEgsCi0JIHsxLCAxLCAxfSwgIDIsIDIsIHsxNiwge3swfSwgezB9LCB7MTZ9 LCB7MH0gfSB9LAotCSB7e3swfSwgezB9LCB7MH0sIHswfSB9IH0gfSwgICAgIC8qIFNWR0EzRF9a X0QxNiAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19EUywKLQkgezEsIDEsIDF9LCAgNCwgNCwgezMy LCB7ezB9LCB7OH0sIHsyNH0sIHswfSB9IH0sCi0JIHt7ezB9LCB7MjR9LCB7MH0sIHswfSB9IH0g fSwgICAgLyogU1ZHQTNEX1pfRDI0UzggKi8KLQotCXtTVkdBM0RCTE9DS0RFU0NfRFMsCi0JIHsx LCAxLCAxfSwgIDIsIDIsIHsxNiwge3swfSwgezF9LCB7MTV9LCB7MH0gfSB9LAotCSB7e3swfSwg ezE1fSwgezB9LCB7MH0gfSB9IH0sICAgIC8qIFNWR0EzRF9aX0QxNVMxICovCi0KLQl7U1ZHQTNE QkxPQ0tERVNDX0xVTUlOQU5DRSwKLQkgezEsIDEsIDF9LCAgMSwgMSwgezgsIHt7MH0sIHswfSwg ezh9LCB7MH0gfSB9LAotCSB7e3swfSwgezB9LCB7MH0sIHswfSB9IH0gfSwgICAgIC8qIFNWR0Ez RF9MVU1JTkFOQ0U4ICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX0xBLAotCSB7MSwgMSwgMX0sICAx LCAxLCB7OCwge3swfSwgezB9LCB7NH0sIHs0fSB9IH0sCi0JIHt7ezB9LCB7MH0sIHswfSwgezR9 IH0gfSB9LCAgICAgLyogU1ZHQTNEX0xVTUlOQU5DRTRfQUxQSEE0ICovCi0KLQl7U1ZHQTNEQkxP Q0tERVNDX0xVTUlOQU5DRSwKLQkgezEsIDEsIDF9LCAgMiwgMiwgezE2LCB7ezB9LCB7MH0sIHsx Nn0sIHswfSB9IH0sCi0JIHt7ezB9LCB7MH0sIHswfSwgezB9IH0gfSB9LCAgICAgLyogU1ZHQTNE X0xVTUlOQU5DRTE2ICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX0xBLAotCSB7MSwgMSwgMX0sICAy LCAyLCB7MTYsIHt7MH0sIHswfSwgezh9LCB7OH0gfSB9LAotCSB7e3swfSwgezB9LCB7MH0sIHs4 fSB9IH0gfSwgICAgIC8qIFNWR0EzRF9MVU1JTkFOQ0U4X0FMUEhBOCAqLwotCi0Je1NWR0EzREJM T0NLREVTQ19DT01QUkVTU0VELAotCSB7NCwgNCwgMX0sICA4LCA4LCB7NjQsIHt7MH0sIHswfSwg ezY0fSwgezB9IH0gfSwKLQkge3t7MH0sIHswfSwgezB9LCB7MH0gfSB9IH0sICAgICAvKiBTVkdB M0RfRFhUMSAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19DT01QUkVTU0VELAotCSB7NCwgNCwgMX0s ICAxNiwgMTYsIHsxMjgsIHt7MH0sIHswfSwgezEyOH0sIHswfSB9IH0sCi0JIHt7ezB9LCB7MH0s IHswfSwgezB9IH0gfSB9LCAgICAgLyogU1ZHQTNEX0RYVDIgKi8KLQotCXtTVkdBM0RCTE9DS0RF U0NfQ09NUFJFU1NFRCwKLQkgezQsIDQsIDF9LCAgMTYsIDE2LCB7MTI4LCB7ezB9LCB7MH0sIHsx Mjh9LCB7MH0gfSB9LAotCSB7e3swfSwgezB9LCB7MH0sIHswfSB9IH0gfSwgICAgIC8qIFNWR0Ez RF9EWFQzICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX0NPTVBSRVNTRUQsCi0JIHs0LCA0LCAxfSwg IDE2LCAxNiwgezEyOCwge3swfSwgezB9LCB7MTI4fSwgezB9IH0gfSwKLQkge3t7MH0sIHswfSwg ezB9LCB7MH0gfSB9IH0sICAgICAvKiBTVkdBM0RfRFhUNCAqLwotCi0Je1NWR0EzREJMT0NLREVT Q19DT01QUkVTU0VELAotCSB7NCwgNCwgMX0sICAxNiwgMTYsIHsxMjgsIHt7MH0sIHswfSwgezEy OH0sIHswfSB9IH0sCi0JIHt7ezB9LCB7MH0sIHswfSwgezB9IH0gfSB9LCAgICAgLyogU1ZHQTNE X0RYVDUgKi8KLQotCXtTVkdBM0RCTE9DS0RFU0NfVVYsCi0JIHsxLCAxLCAxfSwgIDIsIDIsIHsx Niwge3swfSwgezB9LCB7OH0sIHs4fSB9IH0sCi0JIHt7ezB9LCB7MH0sIHswfSwgezh9IH0gfSB9 LCAgICAgLyogU1ZHQTNEX0JVTVBVOFY4ICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX1VWTCwKLQkg ezEsIDEsIDF9LCAgMiwgMiwgezE2LCB7ezV9LCB7NX0sIHs2fSwgezB9IH0gfSwKLQkge3t7MTF9 LCB7Nn0sIHswfSwgezB9IH0gfSB9LCAgICAvKiBTVkdBM0RfQlVNUEw2VjVVNSAqLwotCi0Je1NW R0EzREJMT0NLREVTQ19VVkwsCi0JIHsxLCAxLCAxfSwgIDQsIDQsIHszMiwge3s4fSwgezh9LCB7 OH0sIHswfSB9IH0sCi0JIHt7ezE2fSwgezh9LCB7MH0sIHswfSB9IH0gfSwgICAgLyogU1ZHQTNE X0JVTVBYOEw4VjhVOCAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19VVkwsCi0JIHsxLCAxLCAxfSwg IDMsIDMsIHsyNCwge3s4fSwgezh9LCB7OH0sIHswfSB9IH0sCi0JIHt7ezE2fSwgezh9LCB7MH0s IHswfSB9IH0gfSwgICAgLyogU1ZHQTNEX0JVTVBMOFY4VTggKi8KLQotCXtTVkdBM0RCTE9DS0RF U0NfUkdCQV9GUCwKLQkgezEsIDEsIDF9LCAgOCwgOCwgezY0LCB7ezE2fSwgezE2fSwgezE2fSwg ezE2fSB9IH0sCi0JIHt7ezMyfSwgezE2fSwgezB9LCB7NDh9IH0gfSB9LCAgLyogU1ZHQTNEX0FS R0JfUzEwRTUgKi8KLQotCXtTVkdBM0RCTE9DS0RFU0NfUkdCQV9GUCwKLQkgezEsIDEsIDF9LCAg MTYsIDE2LCB7MTI4LCB7ezMyfSwgezMyfSwgezMyfSwgezMyfSB9IH0sCi0JIHt7ezY0fSwgezMy fSwgezB9LCB7OTZ9IH0gfSB9LCAgLyogU1ZHQTNEX0FSR0JfUzIzRTggKi8KLQotCXtTVkdBM0RC TE9DS0RFU0NfUkdCQSwKLQkgezEsIDEsIDF9LCAgNCwgNCwgezMyLCB7ezEwfSwgezEwfSwgezEw fSwgezJ9IH0gfSwKLQkge3t7MH0sIHsxMH0sIHsyMH0sIHszMH0gfSB9IH0sICAvKiBTVkdBM0Rf QTJSMTBHMTBCMTAgKi8KLQotCXtTVkdBM0RCTE9DS0RFU0NfVVYsCi0JIHsxLCAxLCAxfSwgIDIs IDIsIHsxNiwge3s4fSwgezh9LCB7MH0sIHswfSB9IH0sCi0JIHt7ezh9LCB7MH0sIHswfSwgezB9 IH0gfSB9LCAgICAgLyogU1ZHQTNEX1Y4VTggKi8KLQotCXtTVkdBM0RCTE9DS0RFU0NfVVZXUSwK LQkgezEsIDEsIDF9LCAgNCwgNCwgezMyLCB7ezh9LCB7OH0sIHs4fSwgezh9IH0gfSwKLQkge3t7 MjR9LCB7MTZ9LCB7OH0sIHswfSB9IH0gfSwgICAvKiBTVkdBM0RfUThXOFY4VTggKi8KLQotCXtT VkdBM0RCTE9DS0RFU0NfVVYsCi0JIHsxLCAxLCAxfSwgIDIsIDIsIHsxNiwge3s4fSwgezh9LCB7 MH0sIHswfSB9IH0sCi0JIHt7ezh9LCB7MH0sIHswfSwgezB9IH0gfSB9LCAgICAgLyogU1ZHQTNE X0N4VjhVOCAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19VVkwsCi0JIHsxLCAxLCAxfSwgIDQsIDQs IHsyNCwge3s4fSwgezh9LCB7OH0sIHswfSB9IH0sCi0JIHt7ezE2fSwgezh9LCB7MH0sIHswfSB9 IH0gfSwgICAgLyogU1ZHQTNEX1g4TDhWOFU4ICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX1VWV0Es Ci0JIHsxLCAxLCAxfSwgIDQsIDQsIHszMiwge3sxMH0sIHsxMH0sIHsxMH0sIHsyfSB9IH0sCi0J IHt7ezB9LCB7MTB9LCB7MjB9LCB7MzB9IH0gfSB9LCAgLyogU1ZHQTNEX0EyVzEwVjEwVTEwICov Ci0KLQl7U1ZHQTNEQkxPQ0tERVNDX0FMUEhBLAotCSB7MSwgMSwgMX0sICAxLCAxLCB7OCwge3sw fSwgezB9LCB7MH0sIHs4fSB9IH0sCi0JIHt7ezB9LCB7MH0sIHswfSwgezB9IH0gfSB9LCAgICAg LyogU1ZHQTNEX0FMUEhBOCAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19SX0ZQLAotCSB7MSwgMSwg MX0sICAyLCAyLCB7MTYsIHt7MH0sIHswfSwgezE2fSwgezB9IH0gfSwKLQkge3t7MH0sIHswfSwg ezB9LCB7MH0gfSB9IH0sICAgICAvKiBTVkdBM0RfUl9TMTBFNSAqLwotCi0Je1NWR0EzREJMT0NL REVTQ19SX0ZQLAotCSB7MSwgMSwgMX0sICA0LCA0LCB7MzIsIHt7MH0sIHswfSwgezMyfSwgezB9 IH0gfSwKLQkge3t7MH0sIHswfSwgezB9LCB7MH0gfSB9IH0sICAgICAvKiBTVkdBM0RfUl9TMjNF OCAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19SR19GUCwKLQkgezEsIDEsIDF9LCAgNCwgNCwgezMy LCB7ezB9LCB7MTZ9LCB7MTZ9LCB7MH0gfSB9LAotCSB7e3swfSwgezE2fSwgezB9LCB7MH0gfSB9 IH0sICAgIC8qIFNWR0EzRF9SR19TMTBFNSAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19SR19GUCwK LQkgezEsIDEsIDF9LCAgOCwgOCwgezY0LCB7ezB9LCB7MzJ9LCB7MzJ9LCB7MH0gfSB9LAotCSB7 e3swfSwgezMyfSwgezB9LCB7MH0gfSB9IH0sICAgIC8qIFNWR0EzRF9SR19TMjNFOCAqLwotCi0J e1NWR0EzREJMT0NLREVTQ19CVUZGRVIsCi0JIHsxLCAxLCAxfSwgIDEsIDEsIHs4LCB7ezB9LCB7 MH0sIHs4fSwgezB9IH0gfSwKLQkge3t7MH0sIHswfSwgezB9LCB7MH0gfSB9IH0sICAgICAvKiBT VkdBM0RfQlVGRkVSICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX0RFUFRILAotCSB7MSwgMSwgMX0s ICA0LCA0LCB7MzIsIHt7MH0sIHswfSwgezI0fSwgezB9IH0gfSwKLQkge3t7MH0sIHsyNH0sIHsw fSwgezB9IH0gfSB9LCAgICAvKiBTVkdBM0RfWl9EMjRYOCAqLwotCi0Je1NWR0EzREJMT0NLREVT Q19VViwKLQkgezEsIDEsIDF9LCAgNCwgNCwgezMyLCB7ezE2fSwgezE2fSwgezB9LCB7MH0gfSB9 LAotCSB7e3sxNn0sIHswfSwgezB9LCB7MH0gfSB9IH0sICAgIC8qIFNWR0EzRF9WMTZVMTYgKi8K LQotCXtTVkdBM0RCTE9DS0RFU0NfUkcsCi0JIHsxLCAxLCAxfSwgIDQsIDQsIHszMiwge3swfSwg ezE2fSwgezE2fSwgezB9IH0gfSwKLQkge3t7MH0sIHswfSwgezE2fSwgezB9IH0gfSB9LCAgICAv KiBTVkdBM0RfRzE2UjE2ICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX1JHQkEsCi0JIHsxLCAxLCAx fSwgIDgsIDgsIHs2NCwge3sxNn0sIHsxNn0sIHsxNn0sIHsxNn0gfSB9LAotCSB7e3szMn0sIHsx Nn0sIHswfSwgezQ4fSB9IH0gfSwgIC8qIFNWR0EzRF9BMTZCMTZHMTZSMTYgKi8KLQotCXtTVkdB M0RCTE9DS0RFU0NfWVVWLAotCSB7MSwgMSwgMX0sICAyLCAyLCB7MTYsIHt7OH0sIHswfSwgezh9 LCB7MH0gfSB9LAotCSB7e3swfSwgezB9LCB7OH0sIHswfSB9IH0gfSwgICAgIC8qIFNWR0EzRF9V WVZZICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX1lVViwKLQkgezEsIDEsIDF9LCAgMiwgMiwgezE2 LCB7ezh9LCB7MH0sIHs4fSwgezB9IH0gfSwKLQkge3t7OH0sIHswfSwgezB9LCB7MH0gfSB9IH0s ICAgICAvKiBTVkdBM0RfWVVZMiAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19OVjEyLAotCSB7Miwg MiwgMX0sICA2LCAyLCB7NDgsIHt7MH0sIHswfSwgezQ4fSwgezB9IH0gfSwKLQkge3t7MH0sIHsw fSwgezB9LCB7MH0gfSB9IH0sICAgICAvKiBTVkdBM0RfTlYxMiAqLwotCi0Je1NWR0EzREJMT0NL REVTQ19BWVVWLAotCSB7MSwgMSwgMX0sICA0LCA0LCB7MzIsIHt7OH0sIHs4fSwgezh9LCB7OH0g fSB9LAotCSB7e3swfSwgezh9LCB7MTZ9LCB7MjR9IH0gfSB9LCAgIC8qIFNWR0EzRF9BWVVWICov Ci0KLQl7U1ZHQTNEQkxPQ0tERVNDX1JHQkEsCi0JIHsxLCAxLCAxfSwgIDE2LCAxNiwgezEyOCwg e3szMn0sIHszMn0sIHszMn0sIHszMn0gfSB9LAotCSB7e3s2NH0sIHszMn0sIHswfSwgezk2fSB9 IH0gfSwgIC8qIFNWR0EzRF9SMzJHMzJCMzJBMzJfVFlQRUxFU1MgKi8KLQotCXtTVkdBM0RCTE9D S0RFU0NfUkdCQSwKLQkgezEsIDEsIDF9LCAgMTYsIDE2LCB7MTI4LCB7ezMyfSwgezMyfSwgezMy fSwgezMyfSB9IH0sCi0JIHt7ezY0fSwgezMyfSwgezB9LCB7OTZ9IH0gfSB9LCAgLyogU1ZHQTNE X1IzMkczMkIzMkEzMl9VSU5UICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX1VWV1EsCi0JIHsxLCAx LCAxfSwgIDE2LCAxNiwgezEyOCwge3szMn0sIHszMn0sIHszMn0sIHszMn0gfSB9LAotCSB7e3s2 NH0sIHszMn0sIHswfSwgezk2fSB9IH0gfSwgIC8qIFNWR0EzRF9SMzJHMzJCMzJBMzJfU0lOVCAq LwotCi0Je1NWR0EzREJMT0NLREVTQ19SR0IsCi0JIHsxLCAxLCAxfSwgIDEyLCAxMiwgezk2LCB7 ezMyfSwgezMyfSwgezMyfSwgezB9IH0gfSwKLQkge3t7NjR9LCB7MzJ9LCB7MH0sIHswfSB9IH0g fSwgICAvKiBTVkdBM0RfUjMyRzMyQjMyX1RZUEVMRVNTICovCi0KLQl7U1ZHQTNEQkxPQ0tERVND X1JHQl9GUCwKLQkgezEsIDEsIDF9LCAgMTIsIDEyLCB7OTYsIHt7MzJ9LCB7MzJ9LCB7MzJ9LCB7 MH0gfSB9LAotCSB7e3s2NH0sIHszMn0sIHswfSwgezB9IH0gfSB9LCAgIC8qIFNWR0EzRF9SMzJH MzJCMzJfRkxPQVQgKi8KLQotCXtTVkdBM0RCTE9DS0RFU0NfUkdCLAotCSB7MSwgMSwgMX0sICAx MiwgMTIsIHs5Niwge3szMn0sIHszMn0sIHszMn0sIHswfSB9IH0sCi0JIHt7ezY0fSwgezMyfSwg ezB9LCB7MH0gfSB9IH0sICAgLyogU1ZHQTNEX1IzMkczMkIzMl9VSU5UICovCi0KLQl7U1ZHQTNE QkxPQ0tERVNDX1VWVywKLQkgezEsIDEsIDF9LCAgMTIsIDEyLCB7OTYsIHt7MzJ9LCB7MzJ9LCB7 MzJ9LCB7MH0gfSB9LAotCSB7e3s2NH0sIHszMn0sIHswfSwgezB9IH0gfSB9LCAgIC8qIFNWR0Ez RF9SMzJHMzJCMzJfU0lOVCAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19SR0JBLAotCSB7MSwgMSwg MX0sICA4LCA4LCB7NjQsIHt7MTZ9LCB7MTZ9LCB7MTZ9LCB7MTZ9IH0gfSwKLQkge3t7MzJ9LCB7 MTZ9LCB7MH0sIHs0OH0gfSB9IH0sICAvKiBTVkdBM0RfUjE2RzE2QjE2QTE2X1RZUEVMRVNTICov Ci0KLQl7U1ZHQTNEQkxPQ0tERVNDX1JHQkEsCi0JIHsxLCAxLCAxfSwgIDgsIDgsIHs2NCwge3sx Nn0sIHsxNn0sIHsxNn0sIHsxNn0gfSB9LAotCSB7e3szMn0sIHsxNn0sIHswfSwgezQ4fSB9IH0g fSwgIC8qIFNWR0EzRF9SMTZHMTZCMTZBMTZfVUlOVCAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19V VldRLAotCSB7MSwgMSwgMX0sICA4LCA4LCB7NjQsIHt7MTZ9LCB7MTZ9LCB7MTZ9LCB7MTZ9IH0g fSwKLQkge3t7MzJ9LCB7MTZ9LCB7MH0sIHs0OH0gfSB9IH0sICAvKiBTVkdBM0RfUjE2RzE2QjE2 QTE2X1NOT1JNICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX1VWV1EsCi0JIHsxLCAxLCAxfSwgIDgs IDgsIHs2NCwge3sxNn0sIHsxNn0sIHsxNn0sIHsxNn0gfSB9LAotCSB7e3szMn0sIHsxNn0sIHsw fSwgezQ4fSB9IH0gfSwgIC8qIFNWR0EzRF9SMTZHMTZCMTZBMTZfU0lOVCAqLwotCi0Je1NWR0Ez REJMT0NLREVTQ19SRywKLQkgezEsIDEsIDF9LCAgOCwgOCwgezY0LCB7ezB9LCB7MzJ9LCB7MzJ9 LCB7MH0gfSB9LAotCSB7e3swfSwgezMyfSwgezB9LCB7MH0gfSB9IH0sICAgIC8qIFNWR0EzRF9S MzJHMzJfVFlQRUxFU1MgKi8KLQotCXtTVkdBM0RCTE9DS0RFU0NfUkcsCi0JIHsxLCAxLCAxfSwg IDgsIDgsIHs2NCwge3swfSwgezMyfSwgezMyfSwgezB9IH0gfSwKLQkge3t7MH0sIHszMn0sIHsw fSwgezB9IH0gfSB9LCAgICAvKiBTVkdBM0RfUjMyRzMyX1VJTlQgKi8KLQotCXtTVkdBM0RCTE9D S0RFU0NfVVYsCi0JIHsxLCAxLCAxfSwgIDgsIDgsIHs2NCwge3swfSwgezMyfSwgezMyfSwgezB9 IH0gfSwKLQkge3t7MH0sIHszMn0sIHswfSwgezB9IH0gfSB9LCAgICAvKiBTVkdBM0RfUjMyRzMy X1NJTlQgKi8KLQotCXtTVkdBM0RCTE9DS0RFU0NfUkcsCi0JIHsxLCAxLCAxfSwgIDgsIDgsIHs2 NCwge3swfSwgezh9LCB7MzJ9LCB7MH0gfSB9LAotCSB7e3swfSwgezMyfSwgezB9LCB7MH0gfSB9 IH0sICAgIC8qIFNWR0EzRF9SMzJHOFgyNF9UWVBFTEVTUyAqLwotCi0Je1NWR0EzREJMT0NLREVT Q19EUywKLQkgezEsIDEsIDF9LCAgOCwgOCwgezY0LCB7ezB9LCB7OH0sIHszMn0sIHswfSB9IH0s Ci0JIHt7ezB9LCB7MzJ9LCB7MH0sIHswfSB9IH0gfSwgICAgLyogU1ZHQTNEX0QzMl9GTE9BVF9T OFgyNF9VSU5UICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX1JfRlAsCi0JIHsxLCAxLCAxfSwgIDgs IDgsIHs2NCwge3swfSwgezB9LCB7MzJ9LCB7MH0gfSB9LAotCSB7e3swfSwgezB9LCB7MH0sIHsw fSB9IH0gfSwgICAgLyogU1ZHQTNEX1IzMl9GTE9BVF9YOF9YMjRfVFlQRUxFU1MgKi8KLQotCXtT VkdBM0RCTE9DS0RFU0NfR1JFRU4sCi0JIHsxLCAxLCAxfSwgIDgsIDgsIHs2NCwge3swfSwgezh9 LCB7MH0sIHswfSB9IH0sCi0JIHt7ezB9LCB7MzJ9LCB7MH0sIHswfSB9IH0gfSwgICAgLyogU1ZH QTNEX1gzMl9UWVBFTEVTU19HOFgyNF9VSU5UICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX1JHQkEs Ci0JIHsxLCAxLCAxfSwgIDQsIDQsIHszMiwge3sxMH0sIHsxMH0sIHsxMH0sIHsyfSB9IH0sCi0J IHt7ezB9LCB7MTB9LCB7MjB9LCB7MzB9IH0gfSB9LCAgLyogU1ZHQTNEX1IxMEcxMEIxMEEyX1RZ UEVMRVNTICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX1JHQkEsCi0JIHsxLCAxLCAxfSwgIDQsIDQs IHszMiwge3sxMH0sIHsxMH0sIHsxMH0sIHsyfSB9IH0sCi0JIHt7ezB9LCB7MTB9LCB7MjB9LCB7 MzB9IH0gfSB9LCAgLyogU1ZHQTNEX1IxMEcxMEIxMEEyX1VJTlQgKi8KLQotCXtTVkdBM0RCTE9D S0RFU0NfUkdCX0ZQLAotCSB7MSwgMSwgMX0sICA0LCA0LCB7MzIsIHt7MTB9LCB7MTF9LCB7MTF9 LCB7MH0gfSB9LAotCSB7e3swfSwgezEwfSwgezIxfSwgezB9IH0gfSB9LCAgLyogU1ZHQTNEX1Ix MUcxMUIxMF9GTE9BVCAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19SR0JBLAotCSB7MSwgMSwgMX0s ICA0LCA0LCB7MzIsIHt7OH0sIHs4fSwgezh9LCB7OH0gfSB9LAotCSB7e3sxNn0sIHs4fSwgezB9 LCB7MjR9IH0gfSB9LCAgIC8qIFNWR0EzRF9SOEc4QjhBOF9UWVBFTEVTUyAqLwotCi0Je1NWR0Ez REJMT0NLREVTQ19SR0JBLAotCSB7MSwgMSwgMX0sICA0LCA0LCB7MzIsIHt7OH0sIHs4fSwgezh9 LCB7OH0gfSB9LAotCSB7e3sxNn0sIHs4fSwgezB9LCB7MjR9IH0gfSB9LCAgIC8qIFNWR0EzRF9S OEc4QjhBOF9VTk9STSAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19SR0JBX1NSR0IsCi0JIHsxLCAx LCAxfSwgIDQsIDQsIHszMiwge3s4fSwgezh9LCB7OH0sIHs4fSB9IH0sCi0JIHt7ezE2fSwgezh9 LCB7MH0sIHsyNH0gfSB9IH0sICAgLyogU1ZHQTNEX1I4RzhCOEE4X1VOT1JNX1NSR0IgKi8KLQot CXtTVkdBM0RCTE9DS0RFU0NfUkdCQSwKLQkgezEsIDEsIDF9LCAgNCwgNCwgezMyLCB7ezh9LCB7 OH0sIHs4fSwgezh9IH0gfSwKLQkge3t7MTZ9LCB7OH0sIHswfSwgezI0fSB9IH0gfSwgICAvKiBT VkdBM0RfUjhHOEI4QThfVUlOVCAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19SR0JBLAotCSB7MSwg MSwgMX0sICA0LCA0LCB7MzIsIHt7OH0sIHs4fSwgezh9LCB7OH0gfSB9LAotCSB7e3sxNn0sIHs4 fSwgezB9LCB7MjR9IH0gfSB9LCAgIC8qIFNWR0EzRF9SOEc4QjhBOF9TSU5UICovCi0KLQl7U1ZH QTNEQkxPQ0tERVNDX1JHLAotCSB7MSwgMSwgMX0sICA0LCA0LCB7MzIsIHt7MH0sIHsxNn0sIHsx Nn0sIHswfSB9IH0sCi0JIHt7ezB9LCB7MTZ9LCB7MH0sIHswfSB9IH0gfSwgICAgLyogU1ZHQTNE X1IxNkcxNl9UWVBFTEVTUyAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19SR19GUCwKLQkgezEsIDEs IDF9LCAgNCwgNCwgezMyLCB7ezB9LCB7MTZ9LCB7MTZ9LCB7MH0gfSB9LAotCSB7e3swfSwgezE2 fSwgezB9LCB7MH0gfSB9IH0sICAgIC8qIFNWR0EzRF9SMTZHMTZfVUlOVCAqLwotCi0Je1NWR0Ez REJMT0NLREVTQ19VViwKLQkgezEsIDEsIDF9LCAgNCwgNCwgezMyLCB7ezB9LCB7MTZ9LCB7MTZ9 LCB7MH0gfSB9LAotCSB7e3swfSwgezE2fSwgezB9LCB7MH0gfSB9IH0sICAgIC8qIFNWR0EzRF9S MTZHMTZfU0lOVCAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19SRUQsCi0JIHsxLCAxLCAxfSwgIDQs IDQsIHszMiwge3swfSwgezB9LCB7MzJ9LCB7MH0gfSB9LAotCSB7e3swfSwgezB9LCB7MH0sIHsw fSB9IH0gfSwgICAgIC8qIFNWR0EzRF9SMzJfVFlQRUxFU1MgKi8KLQotCXtTVkdBM0RCTE9DS0RF U0NfREVQVEgsCi0JIHsxLCAxLCAxfSwgIDQsIDQsIHszMiwge3swfSwgezB9LCB7MzJ9LCB7MH0g fSB9LAotCSB7e3swfSwgezB9LCB7MH0sIHswfSB9IH0gfSwgICAgIC8qIFNWR0EzRF9EMzJfRkxP QVQgKi8KLQotCXtTVkdBM0RCTE9DS0RFU0NfUkVELAotCSB7MSwgMSwgMX0sICA0LCA0LCB7MzIs IHt7MH0sIHswfSwgezMyfSwgezB9IH0gfSwKLQkge3t7MH0sIHswfSwgezB9LCB7MH0gfSB9IH0s ICAgICAvKiBTVkdBM0RfUjMyX1VJTlQgKi8KLQotCXtTVkdBM0RCTE9DS0RFU0NfUkVELAotCSB7 MSwgMSwgMX0sICA0LCA0LCB7MzIsIHt7MH0sIHswfSwgezMyfSwgezB9IH0gfSwKLQkge3t7MH0s IHswfSwgezB9LCB7MH0gfSB9IH0sICAgICAvKiBTVkdBM0RfUjMyX1NJTlQgKi8KLQotCXtTVkdB M0RCTE9DS0RFU0NfUkcsCi0JIHsxLCAxLCAxfSwgIDQsIDQsIHszMiwge3swfSwgezh9LCB7MjR9 LCB7MH0gfSB9LAotCSB7e3swfSwgezI0fSwgezB9LCB7MH0gfSB9IH0sICAgIC8qIFNWR0EzRF9S MjRHOF9UWVBFTEVTUyAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19EUywKLQkgezEsIDEsIDF9LCAg NCwgNCwgezMyLCB7ezB9LCB7OH0sIHsyNH0sIHswfSB9IH0sCi0JIHt7ezB9LCB7MjR9LCB7MH0s IHswfSB9IH0gfSwgICAgLyogU1ZHQTNEX0QyNF9VTk9STV9TOF9VSU5UICovCi0KLQl7U1ZHQTNE QkxPQ0tERVNDX1JFRCwKLQkgezEsIDEsIDF9LCAgNCwgNCwgezMyLCB7ezB9LCB7MH0sIHsyNH0s IHswfSB9IH0sCi0JIHt7ezB9LCB7MH0sIHswfSwgezB9IH0gfSB9LCAgICAgLyogU1ZHQTNEX1Iy NF9VTk9STV9YOF9UWVBFTEVTUyAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19HUkVFTiwKLQkgezEs IDEsIDF9LCAgNCwgNCwgezMyLCB7ezB9LCB7OH0sIHswfSwgezB9IH0gfSwKLQkge3t7MH0sIHsy NH0sIHswfSwgezB9IH0gfSB9LCAgICAvKiBTVkdBM0RfWDI0X1RZUEVMRVNTX0c4X1VJTlQgKi8K LQotCXtTVkdBM0RCTE9DS0RFU0NfUkcsCi0JIHsxLCAxLCAxfSwgIDIsIDIsIHsxNiwge3swfSwg ezh9LCB7OH0sIHswfSB9IH0sCi0JIHt7ezB9LCB7OH0sIHswfSwgezB9IH0gfSB9LCAgICAgLyog U1ZHQTNEX1I4RzhfVFlQRUxFU1MgKi8KLQotCXtTVkdBM0RCTE9DS0RFU0NfUkcsCi0JIHsxLCAx LCAxfSwgIDIsIDIsIHsxNiwge3swfSwgezh9LCB7OH0sIHswfSB9IH0sCi0JIHt7ezB9LCB7OH0s IHswfSwgezB9IH0gfSB9LCAgICAgLyogU1ZHQTNEX1I4RzhfVU5PUk0gKi8KLQotCXtTVkdBM0RC TE9DS0RFU0NfUkcsCi0JIHsxLCAxLCAxfSwgIDIsIDIsIHsxNiwge3swfSwgezh9LCB7OH0sIHsw fSB9IH0sCi0JIHt7ezB9LCB7OH0sIHswfSwgezB9IH0gfSB9LCAgICAgLyogU1ZHQTNEX1I4Rzhf VUlOVCAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19VViwKLQkgezEsIDEsIDF9LCAgMiwgMiwgezE2 LCB7ezB9LCB7OH0sIHs4fSwgezB9IH0gfSwKLQkge3t7MH0sIHs4fSwgezB9LCB7MH0gfSB9IH0s ICAgICAvKiBTVkdBM0RfUjhHOF9TSU5UICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX1JFRCwKLQkg ezEsIDEsIDF9LCAgMiwgMiwgezE2LCB7ezB9LCB7MH0sIHsxNn0sIHswfSB9IH0sCi0JIHt7ezB9 LCB7MH0sIHswfSwgezB9IH0gfSB9LCAgICAgLyogU1ZHQTNEX1IxNl9UWVBFTEVTUyAqLwotCi0J e1NWR0EzREJMT0NLREVTQ19SRUQsCi0JIHsxLCAxLCAxfSwgIDIsIDIsIHsxNiwge3swfSwgezB9 LCB7MTZ9LCB7MH0gfSB9LAotCSB7e3swfSwgezB9LCB7MH0sIHswfSB9IH0gfSwgICAgIC8qIFNW R0EzRF9SMTZfVU5PUk0gKi8KLQotCXtTVkdBM0RCTE9DS0RFU0NfUkVELAotCSB7MSwgMSwgMX0s ICAyLCAyLCB7MTYsIHt7MH0sIHswfSwgezE2fSwgezB9IH0gfSwKLQkge3t7MH0sIHswfSwgezB9 LCB7MH0gfSB9IH0sICAgICAvKiBTVkdBM0RfUjE2X1VJTlQgKi8KLQotCXtTVkdBM0RCTE9DS0RF U0NfVSwKLQkgezEsIDEsIDF9LCAgMiwgMiwgezE2LCB7ezB9LCB7MH0sIHsxNn0sIHswfSB9IH0s Ci0JIHt7ezB9LCB7MH0sIHswfSwgezB9IH0gfSB9LCAgICAgLyogU1ZHQTNEX1IxNl9TTk9STSAq LwotCi0Je1NWR0EzREJMT0NLREVTQ19VLAotCSB7MSwgMSwgMX0sICAyLCAyLCB7MTYsIHt7MH0s IHswfSwgezE2fSwgezB9IH0gfSwKLQkge3t7MH0sIHswfSwgezB9LCB7MH0gfSB9IH0sICAgICAv KiBTVkdBM0RfUjE2X1NJTlQgKi8KLQotCXtTVkdBM0RCTE9DS0RFU0NfUkVELAotCSB7MSwgMSwg MX0sICAxLCAxLCB7OCwge3swfSwgezB9LCB7OH0sIHswfSB9IH0sCi0JIHt7ezB9LCB7MH0sIHsw fSwgezB9IH0gfSB9LCAgICAgLyogU1ZHQTNEX1I4X1RZUEVMRVNTICovCi0KLQl7U1ZHQTNEQkxP Q0tERVNDX1JFRCwKLQkgezEsIDEsIDF9LCAgMSwgMSwgezgsIHt7MH0sIHswfSwgezh9LCB7MH0g fSB9LAotCSB7e3swfSwgezB9LCB7MH0sIHswfSB9IH0gfSwgICAgIC8qIFNWR0EzRF9SOF9VTk9S TSAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19SRUQsCi0JIHsxLCAxLCAxfSwgIDEsIDEsIHs4LCB7 ezB9LCB7MH0sIHs4fSwgezB9IH0gfSwKLQkge3t7MH0sIHswfSwgezB9LCB7MH0gfSB9IH0sICAg ICAvKiBTVkdBM0RfUjhfVUlOVCAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19VLAotCSB7MSwgMSwg MX0sICAxLCAxLCB7OCwge3swfSwgezB9LCB7OH0sIHswfSB9IH0sCi0JIHt7ezB9LCB7MH0sIHsw fSwgezB9IH0gfSB9LCAgICAgLyogU1ZHQTNEX1I4X1NOT1JNICovCi0KLQl7U1ZHQTNEQkxPQ0tE RVNDX1UsCi0JIHsxLCAxLCAxfSwgIDEsIDEsIHs4LCB7ezB9LCB7MH0sIHs4fSwgezB9IH0gfSwK LQkge3t7MH0sIHswfSwgezB9LCB7MH0gfSB9IH0sICAgICAvKiBTVkdBM0RfUjhfU0lOVCAqLwot Ci0gICAgICAgIHtTVkdBM0RCTE9DS0RFU0NfTk9ORSwKLSAgICAgICAgIHsxLCAxLCAxfSwgIDEs IDEsIHs4LCB7ezB9LCB7MH0sIHs4fSwgezB9IH0gfSwKLSAgICAgICAgIHt7ezB9LCB7MH0sIHsw fSwgezB9IH0gfSB9LCAgICAgLyogU1ZHQTNEX1A4ICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX1JH QkUsCi0JIHsxLCAxLCAxfSwgIDQsIDQsIHszMiwge3s5fSwgezl9LCB7OX0sIHs1fSB9IH0sCi0J IHt7ezE4fSwgezl9LCB7MH0sIHsyN30gfSB9IH0sICAgLyogU1ZHQTNEX1I5RzlCOUU1X1NIQVJF REVYUCAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19SRywKLQkgezEsIDEsIDF9LCAgMiwgMiwgezE2 LCB7ezB9LCB7OH0sIHs4fSwgezB9IH0gfSwKLQkge3t7MH0sIHs4fSwgezB9LCB7MH0gfSB9IH0s ICAgICAvKiBTVkdBM0RfUjhHOF9COEc4X1VOT1JNICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX1JH LAotCSB7MSwgMSwgMX0sICAyLCAyLCB7MTYsIHt7MH0sIHs4fSwgezh9LCB7MH0gfSB9LAotCSB7 e3swfSwgezh9LCB7MH0sIHswfSB9IH0gfSwgICAgIC8qIFNWR0EzRF9HOFI4X0c4QjhfVU5PUk0g Ki8KLQotCXtTVkdBM0RCTE9DS0RFU0NfQ09NUFJFU1NFRCwKLQkgezQsIDQsIDF9LCAgOCwgOCwg ezY0LCB7ezB9LCB7MH0sIHs2NH0sIHswfSB9IH0sCi0JIHt7ezB9LCB7MH0sIHswfSwgezB9IH0g fSB9LCAgICAgLyogU1ZHQTNEX0JDMV9UWVBFTEVTUyAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19D T01QUkVTU0VEX1NSR0IsCi0JIHs0LCA0LCAxfSwgIDgsIDgsIHs2NCwge3swfSwgezB9LCB7NjR9 LCB7MH0gfSB9LAotCSB7e3swfSwgezB9LCB7MH0sIHswfSB9IH0gfSwgICAgIC8qIFNWR0EzRF9C QzFfVU5PUk1fU1JHQiAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19DT01QUkVTU0VELAotCSB7NCwg NCwgMX0sICAxNiwgMTYsIHsxMjgsIHt7MH0sIHswfSwgezEyOH0sIHswfSB9IH0sCi0JIHt7ezB9 LCB7MH0sIHswfSwgezB9IH0gfSB9LCAgICAgLyogU1ZHQTNEX0JDMl9UWVBFTEVTUyAqLwotCi0J e1NWR0EzREJMT0NLREVTQ19DT01QUkVTU0VEX1NSR0IsCi0JIHs0LCA0LCAxfSwgIDE2LCAxNiwg ezEyOCwge3swfSwgezB9LCB7MTI4fSwgezB9IH0gfSwKLQkge3t7MH0sIHswfSwgezB9LCB7MH0g fSB9IH0sICAgICAvKiBTVkdBM0RfQkMyX1VOT1JNX1NSR0IgKi8KLQotCXtTVkdBM0RCTE9DS0RF U0NfQ09NUFJFU1NFRCwKLQkgezQsIDQsIDF9LCAgMTYsIDE2LCB7MTI4LCB7ezB9LCB7MH0sIHsx Mjh9LCB7MH0gfSB9LAotCSB7e3swfSwgezB9LCB7MH0sIHswfSB9IH0gfSwgICAgIC8qIFNWR0Ez RF9CQzNfVFlQRUxFU1MgKi8KLQotCXtTVkdBM0RCTE9DS0RFU0NfQ09NUFJFU1NFRF9TUkdCLAot CSB7NCwgNCwgMX0sICAxNiwgMTYsIHsxMjgsIHt7MH0sIHswfSwgezEyOH0sIHswfSB9IH0sCi0J IHt7ezB9LCB7MH0sIHswfSwgezB9IH0gfSB9LCAgICAgLyogU1ZHQTNEX0JDM19VTk9STV9TUkdC ICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX0NPTVBSRVNTRUQsCi0JIHs0LCA0LCAxfSwgIDgsIDgs IHs2NCwge3swfSwgezB9LCB7NjR9LCB7MH0gfSB9LAotCSB7e3swfSwgezB9LCB7MH0sIHswfSB9 IH0gfSwgICAgIC8qIFNWR0EzRF9CQzRfVFlQRUxFU1MgKi8KLQotCXtTVkdBM0RCTE9DS0RFU0Nf Q09NUFJFU1NFRCwKLQkgezQsIDQsIDF9LCAgOCwgOCwgezY0LCB7ezB9LCB7MH0sIHs2NH0sIHsw fSB9IH0sCi0JIHt7ezB9LCB7MH0sIHswfSwgezB9IH0gfSB9LCAgICAgLyogU1ZHQTNEX0JDNF9V Tk9STSAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19DT01QUkVTU0VELAotCSB7NCwgNCwgMX0sICA4 LCA4LCB7NjQsIHt7MH0sIHswfSwgezY0fSwgezB9IH0gfSwKLQkge3t7MH0sIHswfSwgezB9LCB7 MH0gfSB9IH0sICAgICAvKiBTVkdBM0RfQkM0X1NOT1JNICovCi0KLQl7U1ZHQTNEQkxPQ0tERVND X0NPTVBSRVNTRUQsCi0JIHs0LCA0LCAxfSwgIDE2LCAxNiwgezEyOCwge3swfSwgezB9LCB7MTI4 fSwgezB9IH0gfSwKLQkge3t7MH0sIHswfSwgezB9LCB7MH0gfSB9IH0sICAgICAvKiBTVkdBM0Rf QkM1X1RZUEVMRVNTICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX0NPTVBSRVNTRUQsCi0JIHs0LCA0 LCAxfSwgIDE2LCAxNiwgezEyOCwge3swfSwgezB9LCB7MTI4fSwgezB9IH0gfSwKLQkge3t7MH0s IHswfSwgezB9LCB7MH0gfSB9IH0sICAgICAvKiBTVkdBM0RfQkM1X1VOT1JNICovCi0KLQl7U1ZH QTNEQkxPQ0tERVNDX0NPTVBSRVNTRUQsCi0JIHs0LCA0LCAxfSwgIDE2LCAxNiwgezEyOCwge3sw fSwgezB9LCB7MTI4fSwgezB9IH0gfSwKLQkge3t7MH0sIHswfSwgezB9LCB7MH0gfSB9IH0sICAg ICAvKiBTVkdBM0RfQkM1X1NOT1JNICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX1JHQkEsCi0JIHsx LCAxLCAxfSwgIDQsIDQsIHszMiwge3sxMH0sIHsxMH0sIHsxMH0sIHsyfSB9IH0sCi0JIHt7ezB9 LCB7MTB9LCB7MjB9LCB7MzB9IH0gfSB9LCAgLyogU1ZHQTNEX1IxMEcxMEIxMF9YUl9CSUFTX0Ey X1VOT1JNICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX1JHQkEsCi0JIHsxLCAxLCAxfSwgIDQsIDQs IHszMiwge3s4fSwgezh9LCB7OH0sIHs4fSB9IH0sCi0JIHt7ezB9LCB7OH0sIHsxNn0sIHsyNH0g fSB9IH0sICAgLyogU1ZHQTNEX0I4RzhSOEE4X1RZUEVMRVNTICovCi0KLQl7U1ZHQTNEQkxPQ0tE RVNDX1JHQkFfU1JHQiwKLQkgezEsIDEsIDF9LCAgNCwgNCwgezMyLCB7ezh9LCB7OH0sIHs4fSwg ezh9IH0gfSwKLQkge3t7MH0sIHs4fSwgezE2fSwgezI0fSB9IH0gfSwgICAvKiBTVkdBM0RfQjhH OFI4QThfVU5PUk1fU1JHQiAqLwotCi0Je1NWR0EzREJMT0NLREVTQ19SR0IsCi0JIHsxLCAxLCAx fSwgIDQsIDQsIHsyNCwge3s4fSwgezh9LCB7OH0sIHswfSB9IH0sCi0JIHt7ezB9LCB7OH0sIHsx Nn0sIHsyNH0gfSB9IH0sICAgLyogU1ZHQTNEX0I4RzhSOFg4X1RZUEVMRVNTICovCi0KLQl7U1ZH QTNEQkxPQ0tERVNDX1JHQl9TUkdCLAotCSB7MSwgMSwgMX0sICA0LCA0LCB7MjQsIHt7OH0sIHs4 fSwgezh9LCB7MH0gfSB9LAotCSB7e3swfSwgezh9LCB7MTZ9LCB7MjR9IH0gfSB9LCAgIC8qIFNW R0EzRF9COEc4UjhYOF9VTk9STV9TUkdCICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX0RFUFRILAot CSB7MSwgMSwgMX0sICAyLCAyLCB7MTYsIHt7MH0sIHswfSwgezE2fSwgezB9IH0gfSwKLQkge3t7 MH0sIHswfSwgezB9LCB7MH0gfSB9IH0sICAgICAvKiBTVkdBM0RfWl9ERjE2ICovCi0KLQl7U1ZH QTNEQkxPQ0tERVNDX0RTLAotCSB7MSwgMSwgMX0sICA0LCA0LCB7MzIsIHt7MH0sIHs4fSwgezI0 fSwgezB9IH0gfSwKLQkge3t7MH0sIHsyNH0sIHswfSwgezB9IH0gfSB9LCAgICAvKiBTVkdBM0Rf Wl9ERjI0ICovCi0KLQl7U1ZHQTNEQkxPQ0tERVNDX0RTLAotCSB7MSwgMSwgMX0sICA0LCA0LCB7 MzIsIHt7MH0sIHs4fSwgezI0fSwgezB9IH0gfSwKLQkge3t7MH0sIHsyNH0sIHswfSwgezB9IH0g fSB9LCAgICAvKiBTVkdBM0RfWl9EMjRTOF9JTlQgKi8KLX07Ci0KLXN0YXRpYyBpbmxpbmUgdTMy IGNsYW1wZWRfdW11bDMyKHUzMiBhLCB1MzIgYikKLXsKLQl1NjQgdG1wID0gKHU2NCkgYSpiOwot CXJldHVybiAodG1wID4gKHU2NCkgVTMyX01BWCkgPyBVMzJfTUFYIDogdG1wOwotfQotCi1zdGF0 aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBzdmdhM2Rfc3VyZmFjZV9kZXNjICoKLXN2Z2EzZHN1cmZh Y2VfZ2V0X2Rlc2MoU1ZHQTNkU3VyZmFjZUZvcm1hdCBmb3JtYXQpCi17Ci0JaWYgKGZvcm1hdCA8 IEFSUkFZX1NJWkUoc3ZnYTNkX3N1cmZhY2VfZGVzY3MpKQotCQlyZXR1cm4gJnN2Z2EzZF9zdXJm YWNlX2Rlc2NzW2Zvcm1hdF07Ci0KLQlyZXR1cm4gJnN2Z2EzZF9zdXJmYWNlX2Rlc2NzW1NWR0Ez RF9GT1JNQVRfSU5WQUxJRF07Ci19Ci0KLS8qCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqCi0gKiBzdmdh M2RzdXJmYWNlX2dldF9taXBfc2l6ZSAtLQotICoKLSAqICAgICAgR2l2ZW4gYSBiYXNlIGxldmVs IHNpemUgYW5kIHRoZSBtaXAgbGV2ZWwsIGNvbXB1dGUgdGhlIHNpemUgb2YKLSAqICAgICAgdGhl IG1pcCBsZXZlbC4KLSAqCi0gKiBSZXN1bHRzOgotICogICAgICBTZWUgYWJvdmUuCi0gKgotICog U2lkZSBlZmZlY3RzOgotICogICAgICBOb25lLgotICoKLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICovCi0K LXN0YXRpYyBpbmxpbmUgc3VyZl9zaXplX3N0cnVjdAotc3ZnYTNkc3VyZmFjZV9nZXRfbWlwX3Np emUoc3VyZl9zaXplX3N0cnVjdCBiYXNlX2xldmVsLCB1MzIgbWlwX2xldmVsKQotewotCXN1cmZf c2l6ZV9zdHJ1Y3Qgc2l6ZTsKLQotCXNpemUud2lkdGggPSBtYXhfdCh1MzIsIGJhc2VfbGV2ZWwu d2lkdGggPj4gbWlwX2xldmVsLCAxKTsKLQlzaXplLmhlaWdodCA9IG1heF90KHUzMiwgYmFzZV9s ZXZlbC5oZWlnaHQgPj4gbWlwX2xldmVsLCAxKTsKLQlzaXplLmRlcHRoID0gbWF4X3QodTMyLCBi YXNlX2xldmVsLmRlcHRoID4+IG1pcF9sZXZlbCwgMSk7Ci0JcmV0dXJuIHNpemU7Ci19Ci0KLXN0 YXRpYyBpbmxpbmUgdm9pZAotc3ZnYTNkc3VyZmFjZV9nZXRfc2l6ZV9pbl9ibG9ja3MoY29uc3Qg c3RydWN0IHN2Z2EzZF9zdXJmYWNlX2Rlc2MgKmRlc2MsCi0JCQkJIGNvbnN0IHN1cmZfc2l6ZV9z dHJ1Y3QgKnBpeGVsX3NpemUsCi0JCQkJIHN1cmZfc2l6ZV9zdHJ1Y3QgKmJsb2NrX3NpemUpCi17 Ci0JYmxvY2tfc2l6ZS0+d2lkdGggPSBESVZfUk9VTkRfVVAocGl4ZWxfc2l6ZS0+d2lkdGgsCi0J CQkJCSBkZXNjLT5ibG9ja19zaXplLndpZHRoKTsKLQlibG9ja19zaXplLT5oZWlnaHQgPSBESVZf Uk9VTkRfVVAocGl4ZWxfc2l6ZS0+aGVpZ2h0LAotCQkJCQkgIGRlc2MtPmJsb2NrX3NpemUuaGVp Z2h0KTsKLQlibG9ja19zaXplLT5kZXB0aCA9IERJVl9ST1VORF9VUChwaXhlbF9zaXplLT5kZXB0 aCwKLQkJCQkJIGRlc2MtPmJsb2NrX3NpemUuZGVwdGgpOwotfQotCi1zdGF0aWMgaW5saW5lIGJv b2wKLXN2Z2EzZHN1cmZhY2VfaXNfcGxhbmFyX3N1cmZhY2UoY29uc3Qgc3RydWN0IHN2Z2EzZF9z dXJmYWNlX2Rlc2MgKmRlc2MpCi17Ci0JcmV0dXJuIChkZXNjLT5ibG9ja19kZXNjICYgU1ZHQTNE QkxPQ0tERVNDX1BMQU5BUl9ZVVYpICE9IDA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdTMyCi1zdmdh M2RzdXJmYWNlX2NhbGN1bGF0ZV9waXRjaChjb25zdCBzdHJ1Y3Qgc3ZnYTNkX3N1cmZhY2VfZGVz YyAqZGVzYywKLQkJCSAgICAgIGNvbnN0IHN1cmZfc2l6ZV9zdHJ1Y3QgKnNpemUpCi17Ci0JdTMy IHBpdGNoOwotCXN1cmZfc2l6ZV9zdHJ1Y3QgYmxvY2tzOwotCi0Jc3ZnYTNkc3VyZmFjZV9nZXRf c2l6ZV9pbl9ibG9ja3MoZGVzYywgc2l6ZSwgJmJsb2Nrcyk7Ci0KLQlwaXRjaCA9IGJsb2Nrcy53 aWR0aCAqIGRlc2MtPnBpdGNoX2J5dGVzX3Blcl9ibG9jazsKLQotCXJldHVybiBwaXRjaDsKLX0K LQotLyoKLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqCi0gKiBzdmdhM2RzdXJmYWNlX2dldF9p bWFnZV9idWZmZXJfc2l6ZSAtLQotICoKLSAqICAgICAgUmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0 ZXMgb2YgYnVmZmVyIHNwYWNlIHJlcXVpcmVkIHRvIHN0b3JlCi0gKiAgICAgIG9uZSBpbWFnZSBv ZiBhIHN1cmZhY2UsIG9wdGlvbmFsbHkgdXNpbmcgdGhlIHNwZWNpZmllZCBwaXRjaC4KLSAqCi0g KiAgICAgIElmIHBpdGNoIGlzIHplcm8sIGl0IGlzIGFzc3VtZWQgdGhhdCByb3dzIGFyZSB0aWdo dGx5IHBhY2tlZC4KLSAqCi0gKiAgICAgIFRoaXMgZnVuY3Rpb24gaXMgb3ZlcmZsb3ctc2FmZS4g SWYgdGhlIHJlc3VsdCB3b3VsZCBoYXZlCi0gKiAgICAgIG92ZXJmbG93ZWQsIGluc3RlYWQgd2Ug cmV0dXJuIE1BWF9VSU5UMzIuCi0gKgotICogUmVzdWx0czoKLSAqICAgICAgQnl0ZSBjb3VudC4K LSAqCi0gKiBTaWRlIGVmZmVjdHM6Ci0gKiAgICAgIE5vbmUuCi0gKgotICotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotICovCi0KLXN0YXRpYyBpbmxpbmUgdTMyCi1zdmdhM2RzdXJmYWNlX2dldF9pbWFn ZV9idWZmZXJfc2l6ZShjb25zdCBzdHJ1Y3Qgc3ZnYTNkX3N1cmZhY2VfZGVzYyAqZGVzYywKLQkJ CQkgICAgY29uc3Qgc3VyZl9zaXplX3N0cnVjdCAqc2l6ZSwKLQkJCQkgICAgdTMyIHBpdGNoKQot ewotCXN1cmZfc2l6ZV9zdHJ1Y3QgaW1hZ2VfYmxvY2tzOwotCXUzMiBzbGljZV9zaXplLCB0b3Rh bF9zaXplOwotCi0Jc3ZnYTNkc3VyZmFjZV9nZXRfc2l6ZV9pbl9ibG9ja3MoZGVzYywgc2l6ZSwg JmltYWdlX2Jsb2Nrcyk7Ci0KLQlpZiAoc3ZnYTNkc3VyZmFjZV9pc19wbGFuYXJfc3VyZmFjZShk ZXNjKSkgewotCQl0b3RhbF9zaXplID0gY2xhbXBlZF91bXVsMzIoaW1hZ2VfYmxvY2tzLndpZHRo LAotCQkJCQkgICAgaW1hZ2VfYmxvY2tzLmhlaWdodCk7Ci0JCXRvdGFsX3NpemUgPSBjbGFtcGVk X3VtdWwzMih0b3RhbF9zaXplLCBpbWFnZV9ibG9ja3MuZGVwdGgpOwotCQl0b3RhbF9zaXplID0g Y2xhbXBlZF91bXVsMzIodG90YWxfc2l6ZSwgZGVzYy0+Ynl0ZXNfcGVyX2Jsb2NrKTsKLQkJcmV0 dXJuIHRvdGFsX3NpemU7Ci0JfQotCi0JaWYgKHBpdGNoID09IDApCi0JCXBpdGNoID0gc3ZnYTNk c3VyZmFjZV9jYWxjdWxhdGVfcGl0Y2goZGVzYywgc2l6ZSk7Ci0KLQlzbGljZV9zaXplID0gY2xh bXBlZF91bXVsMzIoaW1hZ2VfYmxvY2tzLmhlaWdodCwgcGl0Y2gpOwotCXRvdGFsX3NpemUgPSBj bGFtcGVkX3VtdWwzMihzbGljZV9zaXplLCBpbWFnZV9ibG9ja3MuZGVwdGgpOwotCi0JcmV0dXJu IHRvdGFsX3NpemU7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdTMyCi1zdmdhM2RzdXJmYWNlX2dldF9z ZXJpYWxpemVkX3NpemUoU1ZHQTNkU3VyZmFjZUZvcm1hdCBmb3JtYXQsCi0JCQkJICBzdXJmX3Np emVfc3RydWN0IGJhc2VfbGV2ZWxfc2l6ZSwKLQkJCQkgIHUzMiBudW1fbWlwX2xldmVscywKLQkJ CQkgIGJvb2wgY3ViZW1hcCkKLXsKLQljb25zdCBzdHJ1Y3Qgc3ZnYTNkX3N1cmZhY2VfZGVzYyAq ZGVzYyA9IHN2Z2EzZHN1cmZhY2VfZ2V0X2Rlc2MoZm9ybWF0KTsKLQl1NjQgdG90YWxfc2l6ZSA9 IDA7Ci0JdTMyIG1pcDsKLQotCWZvciAobWlwID0gMDsgbWlwIDwgbnVtX21pcF9sZXZlbHM7IG1p cCsrKSB7Ci0JCXN1cmZfc2l6ZV9zdHJ1Y3Qgc2l6ZSA9Ci0JCQlzdmdhM2RzdXJmYWNlX2dldF9t aXBfc2l6ZShiYXNlX2xldmVsX3NpemUsIG1pcCk7Ci0JCXRvdGFsX3NpemUgKz0gc3ZnYTNkc3Vy ZmFjZV9nZXRfaW1hZ2VfYnVmZmVyX3NpemUoZGVzYywKLQkJCQkJCQkJICAmc2l6ZSwgMCk7Ci0J fQotCi0JaWYgKGN1YmVtYXApCi0JCXRvdGFsX3NpemUgKj0gU1ZHQTNEX01BWF9TVVJGQUNFX0ZB Q0VTOwotCi0JcmV0dXJuICh1MzIpIG1pbl90KHU2NCwgdG90YWxfc2l6ZSwgKHU2NCkgVTMyX01B WCk7Ci19Ci0KLQotLyoqCi0gKiBzdmdhM2RzdXJmYWNlX2dldF9waXhlbF9vZmZzZXQgLSBDb21w dXRlIHRoZSBvZmZzZXQgKGluIGJ5dGVzKSB0byBhIHBpeGVsCi0gKiBpbiBhbiBpbWFnZSAob3Ig dm9sdW1lKS4KLSAqCi0gKiBAd2lkdGg6IFRoZSBpbWFnZSB3aWR0aCBpbiBwaXhlbHMuCi0gKiBA aGVpZ2h0OiBUaGUgaW1hZ2UgaGVpZ2h0IGluIHBpeGVscwotICovCi1zdGF0aWMgaW5saW5lIHUz Mgotc3ZnYTNkc3VyZmFjZV9nZXRfcGl4ZWxfb2Zmc2V0KFNWR0EzZFN1cmZhY2VGb3JtYXQgZm9y bWF0LAotCQkJICAgICAgIHUzMiB3aWR0aCwgdTMyIGhlaWdodCwKLQkJCSAgICAgICB1MzIgeCwg dTMyIHksIHUzMiB6KQotewotCWNvbnN0IHN0cnVjdCBzdmdhM2Rfc3VyZmFjZV9kZXNjICpkZXNj ID0gc3ZnYTNkc3VyZmFjZV9nZXRfZGVzYyhmb3JtYXQpOwotCWNvbnN0IHUzMiBidyA9IGRlc2Mt PmJsb2NrX3NpemUud2lkdGgsIGJoID0gZGVzYy0+YmxvY2tfc2l6ZS5oZWlnaHQ7Ci0JY29uc3Qg dTMyIGJkID0gZGVzYy0+YmxvY2tfc2l6ZS5kZXB0aDsKLQljb25zdCB1MzIgcm93c3RyaWRlID0g RElWX1JPVU5EX1VQKHdpZHRoLCBidykgKiBkZXNjLT5ieXRlc19wZXJfYmxvY2s7Ci0JY29uc3Qg dTMyIGltZ3N0cmlkZSA9IERJVl9ST1VORF9VUChoZWlnaHQsIGJoKSAqIHJvd3N0cmlkZTsKLQlj b25zdCB1MzIgb2Zmc2V0ID0gKHogLyBiZCAqIGltZ3N0cmlkZSArCi0JCQkgICAgeSAvIGJoICog cm93c3RyaWRlICsKLQkJCSAgICB4IC8gYncgKiBkZXNjLT5ieXRlc19wZXJfYmxvY2spOwotCXJl dHVybiBvZmZzZXQ7Ci19Ci0KLQotc3RhdGljIGlubGluZSB1MzIKLXN2Z2EzZHN1cmZhY2VfZ2V0 X2ltYWdlX29mZnNldChTVkdBM2RTdXJmYWNlRm9ybWF0IGZvcm1hdCwKLQkJCSAgICAgICBzdXJm X3NpemVfc3RydWN0IGJhc2VMZXZlbFNpemUsCi0JCQkgICAgICAgdTMyIG51bU1pcExldmVscywK LQkJCSAgICAgICB1MzIgZmFjZSwKLQkJCSAgICAgICB1MzIgbWlwKQotCi17Ci0JdTMyIG9mZnNl dDsKLQl1MzIgbWlwQ2hhaW5CeXRlczsKLQl1MzIgbWlwQ2hhaW5CeXRlc1RvTGV2ZWw7Ci0JdTMy IGk7Ci0JY29uc3Qgc3RydWN0IHN2Z2EzZF9zdXJmYWNlX2Rlc2MgKmRlc2M7Ci0Jc3VyZl9zaXpl X3N0cnVjdCBtaXBTaXplOwotCXUzMiBieXRlczsKLQotCWRlc2MgPSBzdmdhM2RzdXJmYWNlX2dl dF9kZXNjKGZvcm1hdCk7Ci0KLQltaXBDaGFpbkJ5dGVzID0gMDsKLQltaXBDaGFpbkJ5dGVzVG9M ZXZlbCA9IDA7Ci0JZm9yIChpID0gMDsgaSA8IG51bU1pcExldmVsczsgaSsrKSB7Ci0JCW1pcFNp emUgPSBzdmdhM2RzdXJmYWNlX2dldF9taXBfc2l6ZShiYXNlTGV2ZWxTaXplLCBpKTsKLQkJYnl0 ZXMgPSBzdmdhM2RzdXJmYWNlX2dldF9pbWFnZV9idWZmZXJfc2l6ZShkZXNjLCAmbWlwU2l6ZSwg MCk7Ci0JCW1pcENoYWluQnl0ZXMgKz0gYnl0ZXM7Ci0JCWlmIChpIDwgbWlwKQotCQkJbWlwQ2hh aW5CeXRlc1RvTGV2ZWwgKz0gYnl0ZXM7Ci0JfQotCi0Jb2Zmc2V0ID0gbWlwQ2hhaW5CeXRlcyAq IGZhY2UgKyBtaXBDaGFpbkJ5dGVzVG9MZXZlbDsKLQotCXJldHVybiBvZmZzZXQ7Ci19Ci0KLQot LyoqCi0gKiBzdmdhM2RzdXJmYWNlX2lzX2diX3NjcmVlbl90YXJnZXRfZm9ybWF0IC0gSXMgdGhl IHNwZWNpZmllZCBmb3JtYXQgdXNhYmxlIGFzCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYSBTY3JlZW5UYXJnZXQ/Ci0gKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHdpdGgganVzdCB0aGUgR0JPYmplY3RzIGNhcC1iaXQK LSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0KQotICog QGZvcm1hdDogZm9ybWF0IHRvIHF1ZXJpZWQKLSAqCi0gKiBSRVRVUk5TOgotICogdHJ1ZSBpZiBx dWVyaWVkIGZvcm1hdCBpcyB2YWxpZCBmb3Igc2NyZWVuIHRhcmdldHMKLSAqLwotc3RhdGljIGlu bGluZSBib29sCi1zdmdhM2RzdXJmYWNlX2lzX2diX3NjcmVlbl90YXJnZXRfZm9ybWF0KFNWR0Ez ZFN1cmZhY2VGb3JtYXQgZm9ybWF0KQotewotCXJldHVybiAoZm9ybWF0ID09IFNWR0EzRF9YOFI4 RzhCOCB8fAotCQlmb3JtYXQgPT0gU1ZHQTNEX0E4UjhHOEI4IHx8Ci0JCWZvcm1hdCA9PSBTVkdB M0RfUjVHNkI1ICAgfHwKLQkJZm9ybWF0ID09IFNWR0EzRF9YMVI1RzVCNSB8fAotCQlmb3JtYXQg PT0gU1ZHQTNEX0ExUjVHNUI1IHx8Ci0JCWZvcm1hdCA9PSBTVkdBM0RfUDgpOwotfQotCi0KLS8q KgotICogc3ZnYTNkc3VyZmFjZV9pc19keF9zY3JlZW5fdGFyZ2V0X2Zvcm1hdCAtIElzIHRoZSBz cGVjaWZpZWQgZm9ybWF0IHVzYWJsZSBhcwotICogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGEgU2NyZWVuVGFyZ2V0PwotICogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICh3aXRoIERYMTAgZW5hYmxlZCkKLSAqCi0gKiBAZm9ybWF0 OiBmb3JtYXQgdG8gcXVlcmllZAotICoKLSAqIFJlc3VsdHM6Ci0gKiB0cnVlIGlmIHF1ZXJpZWQg Zm9ybWF0IGlzIHZhbGlkIGZvciBzY3JlZW4gdGFyZ2V0cwotICovCi1zdGF0aWMgaW5saW5lIGJv b2wKLXN2Z2EzZHN1cmZhY2VfaXNfZHhfc2NyZWVuX3RhcmdldF9mb3JtYXQoU1ZHQTNkU3VyZmFj ZUZvcm1hdCBmb3JtYXQpCi17Ci0JcmV0dXJuIChmb3JtYXQgPT0gU1ZHQTNEX1I4RzhCOEE4X1VO T1JNIHx8Ci0JCWZvcm1hdCA9PSBTVkdBM0RfQjhHOFI4QThfVU5PUk0gfHwKLQkJZm9ybWF0ID09 IFNWR0EzRF9COEc4UjhYOF9VTk9STSk7Ci19Ci0KLQotLyoqCi0gKiBzdmdhM2RzdXJmYWNlX2lz X3NjcmVlbl90YXJnZXRfZm9ybWF0IC0gSXMgdGhlIHNwZWNpZmllZCBmb3JtYXQgdXNhYmxlIGFz IGEKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTY3JlZW5UYXJn ZXQ/Ci0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvciBzb21l IGNvbWJpbmF0aW9uIG9mIGNhcHMpCi0gKgotICogQGZvcm1hdDogZm9ybWF0IHRvIHF1ZXJpZWQK LSAqCi0gKiBSZXN1bHRzOgotICogdHJ1ZSBpZiBxdWVyaWVkIGZvcm1hdCBpcyB2YWxpZCBmb3Ig c2NyZWVuIHRhcmdldHMKLSAqLwotc3RhdGljIGlubGluZSBib29sCi1zdmdhM2RzdXJmYWNlX2lz X3NjcmVlbl90YXJnZXRfZm9ybWF0KFNWR0EzZFN1cmZhY2VGb3JtYXQgZm9ybWF0KQotewotCWlm IChzdmdhM2RzdXJmYWNlX2lzX2diX3NjcmVlbl90YXJnZXRfZm9ybWF0KGZvcm1hdCkpIHsKLQkJ cmV0dXJuIHRydWU7Ci0JfQotCXJldHVybiBzdmdhM2RzdXJmYWNlX2lzX2R4X3NjcmVlbl90YXJn ZXRfZm9ybWF0KGZvcm1hdCk7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3N2Z2FfZXNjYXBlLmggYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3N2Z2FfZXNjYXBlLmgKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlOGQ5NjguLjAwMDAwMDAKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC9zdmdhX2VzY2FwZS5oCisrKyAvZGV2L251bGwKQEAgLTEsODkgKzAs MCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKLSAqIENvcHlyaWdodCAyMDA3LTIwMDkgVk13YXJlLCBJbmMuICBBbGwgcmlnaHRz IHJlc2VydmVkLgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg Y2hhcmdlLCB0byBhbnkgcGVyc29uCi0gKiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdh cmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgotICogZmlsZXMgKHRoZSAiU29mdHdhcmUi KSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dAotICogcmVzdHJpY3Rpb24sIGluY2x1 ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksCi0gKiBtb2Rp ZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBj b3BpZXMKLSAqIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20g dGhlIFNvZnR3YXJlIGlzCi0gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZv bGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCi0gKiBpbmNsdWRlZCBpbiBhbGwgY29w aWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUg U09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO RCwKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBU SEUgV0FSUkFOVElFUyBPRgotICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRSBBTkQKLSAqIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwg VEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIENM QUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgotICogQUNUSU9O IE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1Ig SU4KLSAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBE RUFMSU5HUyBJTiBUSEUKLSAqIFNPRlRXQVJFLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKgotICogc3ZnYV9lc2Nh cGUuaCAtLQotICoKLSAqICAgIERlZmluaXRpb25zIGZvciBvdXIgb3duICh2ZW5kb3Itc3BlY2lm aWMpIFNWR0EgRXNjYXBlIGNvbW1hbmRzLgotICovCi0KLSNpZm5kZWYgX1NWR0FfRVNDQVBFX0hf Ci0jZGVmaW5lIF9TVkdBX0VTQ0FQRV9IXwotCi0KLS8qCi0gKiBOYW1lc3BhY2UgSURzIGZvciB0 aGUgZXNjYXBlIGNvbW1hbmQKLSAqLwotCi0jZGVmaW5lIFNWR0FfRVNDQVBFX05TSURfVk1XQVJF IDB4MDAwMDAwMDAKLSNkZWZpbmUgU1ZHQV9FU0NBUEVfTlNJRF9ERVZFTCAgMHhGRkZGRkZGRgot Ci0KLS8qCi0gKiBXaXRoaW4gU1ZHQV9FU0NBUEVfTlNJRF9WTVdBUkUsIHdlIG11bHRpcGxleCBj b21tYW5kcyBhY2NvcmRpbmcgdG8KLSAqIHRoZSBmaXJzdCBEV09SRCBvZiBlc2NhcGUgZGF0YSAo YWZ0ZXIgdGhlIG5zSUQgYW5kIHNpemUpLiBBcyBhCi0gKiBndWlkZWxpbmUgd2UncmUgdXNpbmcg dGhlIGhpZ2ggd29yZCBhbmQgbG93IHdvcmQgYXMgYSBtYWpvciBhbmQKLSAqIG1pbm9yIGNvbW1h bmQgbnVtYmVyLCByZXNwZWN0aXZlbHkuCi0gKgotICogTWFqb3IgY29tbWFuZCBudW1iZXIgYWxs b2NhdGlvbjoKLSAqCi0gKiAgIDAwMDA6IFJlc2VydmVkCi0gKiAgIDAwMDE6IFNWR0FfRVNDQVBF X1ZNV0FSRV9MT0cgKHN2Z2FfYmluYXJ5X2xvZ2dlci5oKQotICogICAwMDAyOiBTVkdBX0VTQ0FQ RV9WTVdBUkVfVklERU8gKHN2Z2Ffb3ZlcmxheS5oKQotICogICAwMDAzOiBTVkdBX0VTQ0FQRV9W TVdBUkVfSElOVCAoc3ZnYV9lc2NhcGUuaCkKLSAqLwotCi0jZGVmaW5lIFNWR0FfRVNDQVBFX1ZN V0FSRV9NQUpPUl9NQVNLICAweEZGRkYwMDAwCi0KLQotLyoKLSAqIFNWR0EgSGludCBjb21tYW5k cy4KLSAqCi0gKiBUaGVzZSBlc2NhcGVzIGxldCB0aGUgU1ZHQSBkcml2ZXIgcHJvdmlkZSBvcHRp b25hbCBpbmZvcm1hdGlvbiB0bwotICogaGUgaG9zdCBhYm91dCB0aGUgc3RhdGUgb2YgdGhlIGd1 ZXN0IG9yIGd1ZXN0IGFwcGxpY2F0aW9ucy4gVGhlCi0gKiBob3N0IGNhbiB1c2UgdGhlc2UgaGlu dHMgdG8gbWFrZSB1c2VyIGludGVyZmFjZSBvciBwZXJmb3JtYW5jZQotICogZGVjaXNpb25zLgot ICoKLSAqIE5vdGVzOgotICoKLSAqICAgLSBTVkdBX0VTQ0FQRV9WTVdBUkVfSElOVF9GVUxMU0NS RUVOIGlzIGRlcHJlY2F0ZWQgZm9yIGd1ZXN0cwotICogICAgIHRoYXQgdXNlIHRoZSBTVkdBIFNj cmVlbiBPYmplY3QgZXh0ZW5zaW9uLiBJbnN0ZWFkIG9mIHNlbmRpbmcKLSAqICAgICB0aGlzIGVz Y2FwZSwgdXNlIHRoZSBTVkdBX1NDUkVFTl9GVUxMU0NSRUVOX0hJTlQgZmxhZyBvbiB5b3VyCi0g KiAgICAgU2NyZWVuIE9iamVjdC4KLSAqLwotCi0jZGVmaW5lIFNWR0FfRVNDQVBFX1ZNV0FSRV9I SU5UICAgICAgICAgICAgICAgMHgwMDAzMDAwMAotI2RlZmluZSBTVkdBX0VTQ0FQRV9WTVdBUkVf SElOVF9GVUxMU0NSRUVOICAgIDB4MDAwMzAwMDEgIC8qIERlcHJlY2F0ZWQgKi8KLQotdHlwZWRl Zgotc3RydWN0IHsKLSAgIHVpbnQzMiBjb21tYW5kOwotICAgdWludDMyIGZ1bGxzY3JlZW47Ci0g ICBzdHJ1Y3QgewotICAgICAgaW50MzIgeCwgeTsKLSAgIH0gbW9uaXRvclBvc2l0aW9uOwotfSBT VkdBRXNjYXBlSGludEZ1bGxzY3JlZW47Ci0KLSNlbmRpZiAvKiBfU1ZHQV9FU0NBUEVfSF8gKi8K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvc3ZnYV9vdmVybGF5LmggYi9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3N2Z2Ffb3ZlcmxheS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBmMzg0MTZmLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvc3Zn YV9vdmVybGF5LmgKKysrIC9kZXYvbnVsbApAQCAtMSwyMDEgKzAsMCBAQAotLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHly aWdodCAyMDA3LTIwMDkgVk13YXJlLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq IFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVy c29uCi0gKiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQg ZG9jdW1lbnRhdGlvbgotICogZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUg U29mdHdhcmUgd2l0aG91dAotICogcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0 YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksCi0gKiBtb2RpZnksIG1lcmdlLCBwdWJsaXNo LCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMKLSAqIG9mIHRoZSBT b2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCi0g KiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25z OgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g bm90aWNlIHNoYWxsIGJlCi0gKiBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFs IHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklE RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSAqIEVYUFJFU1MgT1Ig SU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgot ICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQK LSAqIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09Q WVJJR0hUIEhPTERFUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9U SEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgotICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JU IE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KLSAqIENPTk5FQ1RJT04g V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKLSAq IFNPRlRXQVJFLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLwotCi0vKgotICogc3ZnYV9vdmVybGF5LmggLS0KLSAqCi0gKiAg ICBEZWZpbml0aW9ucyBmb3IgdmlkZW8tb3ZlcmxheSBzdXBwb3J0LgotICovCi0KLSNpZm5kZWYg X1NWR0FfT1ZFUkxBWV9IXwotI2RlZmluZSBfU1ZHQV9PVkVSTEFZX0hfCi0KLSNpbmNsdWRlICJz dmdhX3JlZy5oIgotCi0vKgotICogVmlkZW8gZm9ybWF0cyB3ZSBzdXBwb3J0Ci0gKi8KLQotI2Rl ZmluZSBWTVdBUkVfRk9VUkNDX1lWMTIgMHgzMjMxNTY1OSAvKiAnWScgJ1YnICcxJyAnMicgKi8K LSNkZWZpbmUgVk1XQVJFX0ZPVVJDQ19ZVVkyIDB4MzI1OTU1NTkgLyogJ1knICdVJyAnWScgJzIn ICovCi0jZGVmaW5lIFZNV0FSRV9GT1VSQ0NfVVlWWSAweDU5NTY1OTU1IC8qICdVJyAnWScgJ1Yn ICdZJyAqLwotCi10eXBlZGVmIGVudW0gewotICAgU1ZHQV9PVkVSTEFZX0ZPUk1BVF9JTlZBTElE ID0gMCwKLSAgIFNWR0FfT1ZFUkxBWV9GT1JNQVRfWVYxMiA9IFZNV0FSRV9GT1VSQ0NfWVYxMiwK LSAgIFNWR0FfT1ZFUkxBWV9GT1JNQVRfWVVZMiA9IFZNV0FSRV9GT1VSQ0NfWVVZMiwKLSAgIFNW R0FfT1ZFUkxBWV9GT1JNQVRfVVlWWSA9IFZNV0FSRV9GT1VSQ0NfVVlWWSwKLX0gU1ZHQU92ZXJs YXlGb3JtYXQ7Ci0KLSNkZWZpbmUgU1ZHQV9WSURFT19DT0xPUktFWV9NQVNLICAgICAgICAgICAg IDB4MDBmZmZmZmYKLQotI2RlZmluZSBTVkdBX0VTQ0FQRV9WTVdBUkVfVklERU8gICAgICAgICAg ICAgMHgwMDAyMDAwMAotCi0jZGVmaW5lIFNWR0FfRVNDQVBFX1ZNV0FSRV9WSURFT19TRVRfUkVH UyAgICAweDAwMDIwMDAxCi0gICAgICAgIC8qIEZJRk8gZXNjYXBlIGxheW91dDoKLSAgICAgICAg ICogVHlwZSwgU3RyZWFtIElkLCAoUmVnaXN0ZXIgSWQsIFZhbHVlKSBwYWlycyAqLwotCi0jZGVm aW5lIFNWR0FfRVNDQVBFX1ZNV0FSRV9WSURFT19GTFVTSCAgICAgICAweDAwMDIwMDAyCi0gICAg ICAgIC8qIEZJRk8gZXNjYXBlIGxheW91dDoKLSAgICAgICAgICogVHlwZSwgU3RyZWFtIElkICov Ci0KLXR5cGVkZWYKLXN0cnVjdCBTVkdBRXNjYXBlVmlkZW9TZXRSZWdzIHsKLSAgIHN0cnVjdCB7 Ci0gICAgICB1aW50MzIgY21kVHlwZTsKLSAgICAgIHVpbnQzMiBzdHJlYW1JZDsKLSAgIH0gaGVh ZGVyOwotCi0gICAvKiBNYXkgaW5jbHVkZSB6ZXJvIG9yIG1vcmUgaXRlbXMuICovCi0gICBzdHJ1 Y3QgewotICAgICAgdWludDMyIHJlZ2lzdGVySWQ7Ci0gICAgICB1aW50MzIgdmFsdWU7Ci0gICB9 IGl0ZW1zWzFdOwotfSBTVkdBRXNjYXBlVmlkZW9TZXRSZWdzOwotCi10eXBlZGVmCi1zdHJ1Y3Qg U1ZHQUVzY2FwZVZpZGVvRmx1c2ggewotICAgdWludDMyIGNtZFR5cGU7Ci0gICB1aW50MzIgc3Ry ZWFtSWQ7Ci19IFNWR0FFc2NhcGVWaWRlb0ZsdXNoOwotCi0KLS8qCi0gKiBTdHJ1Y3QgZGVmaW5p dGlvbnMgZm9yIHRoZSB2aWRlbyBvdmVybGF5IGNvbW1hbmRzIGJ1aWx0IG9uCi0gKiBTVkdBRmlm b0NtZEVzY2FwZS4KLSAqLwotdHlwZWRlZgotc3RydWN0IHsKLSAgIHVpbnQzMiBjb21tYW5kOwot ICAgdWludDMyIG92ZXJsYXk7Ci19IFNWR0FGaWZvRXNjYXBlQ21kVmlkZW9CYXNlOwotCi10eXBl ZGVmCi1zdHJ1Y3QgewotICAgU1ZHQUZpZm9Fc2NhcGVDbWRWaWRlb0Jhc2UgdmlkZW9DbWQ7Ci19 IFNWR0FGaWZvRXNjYXBlQ21kVmlkZW9GbHVzaDsKLQotdHlwZWRlZgotc3RydWN0IHsKLSAgIFNW R0FGaWZvRXNjYXBlQ21kVmlkZW9CYXNlIHZpZGVvQ21kOwotICAgc3RydWN0IHsKLSAgICAgIHVp bnQzMiByZWdJZDsKLSAgICAgIHVpbnQzMiB2YWx1ZTsKLSAgIH0gaXRlbXNbMV07Ci19IFNWR0FG aWZvRXNjYXBlQ21kVmlkZW9TZXRSZWdzOwotCi10eXBlZGVmCi1zdHJ1Y3QgewotICAgU1ZHQUZp Zm9Fc2NhcGVDbWRWaWRlb0Jhc2UgdmlkZW9DbWQ7Ci0gICBzdHJ1Y3QgewotICAgICAgdWludDMy IHJlZ0lkOwotICAgICAgdWludDMyIHZhbHVlOwotICAgfSBpdGVtc1tTVkdBX1ZJREVPX05VTV9S RUdTXTsKLX0gU1ZHQUZpZm9Fc2NhcGVDbWRWaWRlb1NldEFsbFJlZ3M7Ci0KLQotLyoKLSAqLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotICoKLSAqIFZNd2FyZVZpZGVvR2V0QXR0cmlidXRlcyAtLQotICoKLSAqICAg ICAgQ29tcHV0ZXMgdGhlIHNpemUsIHBpdGNoZXMgYW5kIG9mZnNldHMgZm9yIFlVViBmcmFtZXMu Ci0gKgotICogUmVzdWx0czoKLSAqICAgICAgVFJVRSBvbiBzdWNjZXNzOyBvdGhlcndpc2UgRkFM U0Ugb24gZmFpbHVyZS4KLSAqCi0gKiBTaWRlIGVmZmVjdHM6Ci0gKiAgICAgIFBpdGNoZXMgYW5k IG9mZnNldHMgZm9yIHRoZSBnaXZlbiBZVVYgZnJhbWUgYXJlIHB1dCBpbiAncGl0Y2hlcycKLSAq ICAgICAgYW5kICdvZmZzZXRzJyByZXNwZWN0aXZlbHkuIFRoZXkgYXJlIGJvdGggb3B0aW9uYWwg dGhvdWdoLgotICoKLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICovCi0KLXN0YXRpYyBpbmxpbmUgYm9vbAot Vk13YXJlVmlkZW9HZXRBdHRyaWJ1dGVzKGNvbnN0IFNWR0FPdmVybGF5Rm9ybWF0IGZvcm1hdCwg ICAgLyogSU4gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzIgKndpZHRoLCAgICAg ICAgICAgICAgICAgICAgIC8qIElOIC8gT1VUICovCi0gICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyICpoZWlnaHQsICAgICAgICAgICAgICAgICAgICAvKiBJTiAvIE9VVCAqLwotICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMiAqc2l6ZSwgICAgICAgICAgICAgICAgICAgICAgLyog T1VUICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyICpwaXRjaGVzLCAgICAgICAg ICAgICAgICAgICAvKiBPVVQgKG9wdGlvbmFsKSAqLwotICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQzMiAqb2Zmc2V0cykgICAgICAgICAgICAgICAgICAgLyogT1VUIChvcHRpb25hbCkgKi8K LXsKLSAgICBpbnQgdG1wOwotCi0gICAgKndpZHRoID0gKCp3aWR0aCArIDEpICYgfjE7Ci0KLSAg ICBpZiAob2Zmc2V0cykgewotICAgICAgICBvZmZzZXRzWzBdID0gMDsKLSAgICB9Ci0KLSAgICBz d2l0Y2ggKGZvcm1hdCkgewotICAgIGNhc2UgVk1XQVJFX0ZPVVJDQ19ZVjEyOgotICAgICAgICpo ZWlnaHQgPSAoKmhlaWdodCArIDEpICYgfjE7Ci0gICAgICAgKnNpemUgPSAoKndpZHRoICsgMykg JiB+MzsKLQotICAgICAgIGlmIChwaXRjaGVzKSB7Ci0gICAgICAgICAgcGl0Y2hlc1swXSA9ICpz aXplOwotICAgICAgIH0KLQotICAgICAgICpzaXplICo9ICpoZWlnaHQ7Ci0KLSAgICAgICBpZiAo b2Zmc2V0cykgewotICAgICAgICAgIG9mZnNldHNbMV0gPSAqc2l6ZTsKLSAgICAgICB9Ci0KLSAg ICAgICB0bXAgPSAoKCp3aWR0aCA+PiAxKSArIDMpICYgfjM7Ci0KLSAgICAgICBpZiAocGl0Y2hl cykgewotICAgICAgICAgIHBpdGNoZXNbMV0gPSBwaXRjaGVzWzJdID0gdG1wOwotICAgICAgIH0K LQotICAgICAgIHRtcCAqPSAoKmhlaWdodCA+PiAxKTsKLSAgICAgICAqc2l6ZSArPSB0bXA7Ci0K LSAgICAgICBpZiAob2Zmc2V0cykgewotICAgICAgICAgIG9mZnNldHNbMl0gPSAqc2l6ZTsKLSAg ICAgICB9Ci0KLSAgICAgICAqc2l6ZSArPSB0bXA7Ci0gICAgICAgYnJlYWs7Ci0KLSAgICBjYXNl IFZNV0FSRV9GT1VSQ0NfWVVZMjoKLSAgICBjYXNlIFZNV0FSRV9GT1VSQ0NfVVlWWToKLSAgICAg ICAqc2l6ZSA9ICp3aWR0aCAqIDI7Ci0KLSAgICAgICBpZiAocGl0Y2hlcykgewotICAgICAgICAg IHBpdGNoZXNbMF0gPSAqc2l6ZTsKLSAgICAgICB9Ci0KLSAgICAgICAqc2l6ZSAqPSAqaGVpZ2h0 OwotICAgICAgIGJyZWFrOwotCi0gICAgZGVmYXVsdDoKLSAgICAgICByZXR1cm4gZmFsc2U7Ci0g ICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLSNlbmRpZiAvKiBfU1ZHQV9PVkVSTEFZX0hf ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3N2Z2FfcmVnLmggYi9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3N2Z2FfcmVnLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDM3NjNkNWIuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9zdmdhX3Jl Zy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTc1MSArMCwwIEBACi0vKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IDE5 OTgtMjAwOSBWTXdhcmUsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUGVybWlz c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KLSAq IG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVu dGF0aW9uCi0gKiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2Fy ZSB3aXRob3V0Ci0gKiByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0 aGUgcmlnaHRzIHRvIHVzZSwgY29weSwKLSAqIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3Ry aWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcwotICogb2YgdGhlIFNvZnR3YXJl LCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKLSAqIGZ1cm5p c2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgot ICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug c2hhbGwgYmUKLSAqIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv bnMgb2YgdGhlIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMg SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotICogRVhQUkVTUyBPUiBJTVBMSUVE LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0gKiBNRVJD SEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAotICogTk9O SU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg SE9MREVSUwotICogQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElB QklMSVRZLCBXSEVUSEVSIElOIEFOCi0gKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI RVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgotICogQ09OTkVDVElPTiBXSVRIIFRI RSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQotICogU09GVFdB UkUuCi0gKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCi0KLS8qCi0gKiBzdmdhX3JlZy5oIC0tCi0gKgotICogICAgVmlydHVhbCBo YXJkd2FyZSBkZWZpbml0aW9ucyBmb3IgdGhlIFZNd2FyZSBTVkdBIElJIGRldmljZS4KLSAqLwot Ci0jaWZuZGVmIF9TVkdBX1JFR19IXwotI2RlZmluZSBfU1ZHQV9SRUdfSF8KLQotLyoKLSAqIFBD SSBkZXZpY2UgSURzLgotICovCi0jZGVmaW5lIFBDSV9ERVZJQ0VfSURfVk1XQVJFX1NWR0EyICAg ICAgMHgwNDA1Ci0KLS8qCi0gKiBTVkdBX1JFR19FTkFCTEUgYml0IGRlZmluaXRpb25zLgotICov Ci0jZGVmaW5lIFNWR0FfUkVHX0VOQUJMRV9ESVNBQkxFICAgICAwCi0jZGVmaW5lIFNWR0FfUkVH X0VOQUJMRV9FTkFCTEUgICAgICAxCi0jZGVmaW5lIFNWR0FfUkVHX0VOQUJMRV9ISURFICAgICAg ICAyCi0jZGVmaW5lIFNWR0FfUkVHX0VOQUJMRV9FTkFCTEVfSElERSAoU1ZHQV9SRUdfRU5BQkxF X0VOQUJMRSB8XAotCQkJCSAgICAgU1ZHQV9SRUdfRU5BQkxFX0hJREUpCi0KLS8qCi0gKiBMZWdh bCB2YWx1ZXMgZm9yIHRoZSBTVkdBX1JFR19DVVJTT1JfT04gcmVnaXN0ZXIgaW4gb2xkLWZhc2hp b25lZAotICogY3Vyc29yIGJ5cGFzcyBtb2RlLiBUaGlzIGlzIHN0aWxsIHN1cHBvcnRlZCwgYnV0 IG5vIG5ldyBndWVzdAotICogZHJpdmVycyBzaG91bGQgdXNlIGl0LgotICovCi0jZGVmaW5lIFNW R0FfQ1VSU09SX09OX0hJREUgICAgICAgICAgICAweDAgICAvKiBNdXN0IGJlIDAgdG8gbWFpbnRh aW4gYmFja3dhcmQgY29tcGF0aWJpbGl0eSAqLwotI2RlZmluZSBTVkdBX0NVUlNPUl9PTl9TSE9X ICAgICAgICAgICAgMHgxICAgLyogTXVzdCBiZSAxIHRvIG1haW50YWluIGJhY2t3YXJkIGNvbXBh dGliaWxpdHkgKi8KLSNkZWZpbmUgU1ZHQV9DVVJTT1JfT05fUkVNT1ZFX0ZST01fRkIgIDB4MiAg IC8qIFJlbW92ZSB0aGUgY3Vyc29yIGZyb20gdGhlIGZyYW1lYnVmZmVyIGJlY2F1c2Ugd2UgbmVl ZCB0byBzZWUgd2hhdCdzIHVuZGVyIGl0ICovCi0jZGVmaW5lIFNWR0FfQ1VSU09SX09OX1JFU1RP UkVfVE9fRkIgICAweDMgICAvKiBQdXQgdGhlIGN1cnNvciBiYWNrIGluIHRoZSBmcmFtZWJ1ZmZl ciBzbyB0aGUgdXNlciBjYW4gc2VlIGl0ICovCi0KLS8qCi0gKiBUaGUgbWF4aW11bSBmcmFtZWJ1 ZmZlciBzaXplIHRoYXQgY2FuIHRyYWNlZCBmb3IgZS5nLiBndWVzdHMgaW4gVkVTQSBtb2RlLgot ICogVGhlIGNoYW5nZU1hcCBpbiB0aGUgbW9uaXRvciBpcyBwcm9wb3J0aW9uYWwgdG8gdGhpcyBu dW1iZXIuIFRoZXJlZm9yZSwgd2UnZAotICogbGlrZSB0byBrZWVwIGl0IGFzIHNtYWxsIGFzIHBv c3NpYmxlIHRvIHJlZHVjZSBtb25pdG9yIG92ZXJoZWFkICh1c2luZwotICogU1ZHQV9WUkFNX01B WF9TSVpFIGZvciB0aGlzIGluY3JlYXNlcyB0aGUgc2l6ZSBvZiB0aGUgc2hhcmVkIGFyZWEgYnkg b3ZlcgotICogNGshKS4KLSAqCi0gKiBOQjogRm9yIGNvbXBhdGliaWxpdHkgcmVhc29ucywgdGhp cyB2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAweGZmMDAwMC4KLSAqICAgICBTZWUgYnVnIDMz NTA3Mi4KLSAqLwotI2RlZmluZSBTVkdBX0ZCX01BWF9UUkFDRUFCTEVfU0laRSAgICAgIDB4MTAw MDAwMAotCi0jZGVmaW5lIFNWR0FfTUFYX1BTRVVET0NPTE9SX0RFUFRIICAgICAgOAotI2RlZmlu ZSBTVkdBX01BWF9QU0VVRE9DT0xPUlMgICAgICAgICAgICgxIDw8IFNWR0FfTUFYX1BTRVVET0NP TE9SX0RFUFRIKQotI2RlZmluZSBTVkdBX05VTV9QQUxFVFRFX1JFR1MgICAgICAgICAgICgzICog U1ZHQV9NQVhfUFNFVURPQ09MT1JTKQotCi0jZGVmaW5lIFNWR0FfTUFHSUMgICAgICAgICAweDkw MDAwMFVMCi0jZGVmaW5lIFNWR0FfTUFLRV9JRCh2ZXIpICAoU1ZHQV9NQUdJQyA8PCA4IHwgKHZl cikpCi0KLS8qIFZlcnNpb24gMiBsZXQgdGhlIGFkZHJlc3Mgb2YgdGhlIGZyYW1lIGJ1ZmZlciBi ZSB1bnNpZ25lZCBvbiBXaW4zMiAqLwotI2RlZmluZSBTVkdBX1ZFUlNJT05fMiAgICAgMgotI2Rl ZmluZSBTVkdBX0lEXzIgICAgICAgICAgU1ZHQV9NQUtFX0lEKFNWR0FfVkVSU0lPTl8yKQotCi0v KiBWZXJzaW9uIDEgaGFzIG5ldyByZWdpc3RlcnMgc3RhcnRpbmcgd2l0aCBTVkdBX1JFR19DQVBB QklMSVRJRVMgc28KLSAgIFBBTEVUVEVfQkFTRSBoYXMgbW92ZWQgKi8KLSNkZWZpbmUgU1ZHQV9W RVJTSU9OXzEgICAgIDEKLSNkZWZpbmUgU1ZHQV9JRF8xICAgICAgICAgIFNWR0FfTUFLRV9JRChT VkdBX1ZFUlNJT05fMSkKLQotLyogVmVyc2lvbiAwIGlzIHRoZSBpbml0aWFsIHZlcnNpb24gKi8K LSNkZWZpbmUgU1ZHQV9WRVJTSU9OXzAgICAgIDAKLSNkZWZpbmUgU1ZHQV9JRF8wICAgICAgICAg IFNWR0FfTUFLRV9JRChTVkdBX1ZFUlNJT05fMCkKLQotLyogIkludmFsaWQiIHZhbHVlIGZvciBh bGwgU1ZHQSBJRHMuIChWZXJzaW9uIElELCBzY3JlZW4gb2JqZWN0IElELCBzdXJmYWNlIElELi4u KSAqLwotI2RlZmluZSBTVkdBX0lEX0lOVkFMSUQgICAgMHhGRkZGRkZGRgotCi0vKiBQb3J0IG9m ZnNldHMsIHJlbGF0aXZlIHRvIEJBUjAgKi8KLSNkZWZpbmUgU1ZHQV9JTkRFWF9QT1JUICAgICAg ICAgMHgwCi0jZGVmaW5lIFNWR0FfVkFMVUVfUE9SVCAgICAgICAgIDB4MQotI2RlZmluZSBTVkdB X0JJT1NfUE9SVCAgICAgICAgICAweDIKLSNkZWZpbmUgU1ZHQV9JUlFTVEFUVVNfUE9SVCAgICAg MHg4Ci0KLS8qCi0gKiBJbnRlcnJ1cHQgc291cmNlIGZsYWdzIGZvciBJUlFTVEFUVVNfUE9SVCBh bmQgSVJRTUFTSy4KLSAqCi0gKiBJbnRlcnJ1cHRzIGFyZSBvbmx5IHN1cHBvcnRlZCB3aGVuIHRo ZQotICogU1ZHQV9DQVBfSVJRTUFTSyBjYXBhYmlsaXR5IGlzIHByZXNlbnQuCi0gKi8KLSNkZWZp bmUgU1ZHQV9JUlFGTEFHX0FOWV9GRU5DRSAgICAgICAgICAgIDB4MSAgICAvKiBBbnkgZmVuY2Ug d2FzIHBhc3NlZCAqLwotI2RlZmluZSBTVkdBX0lSUUZMQUdfRklGT19QUk9HUkVTUyAgICAgICAg MHgyICAgIC8qIE1hZGUgZm9yd2FyZCBwcm9ncmVzcyBpbiB0aGUgRklGTyAqLwotI2RlZmluZSBT VkdBX0lSUUZMQUdfRkVOQ0VfR09BTCAgICAgICAgICAgMHg0ICAgIC8qIFNWR0FfRklGT19GRU5D RV9HT0FMIHJlYWNoZWQgKi8KLSNkZWZpbmUgU1ZHQV9JUlFGTEFHX0NPTU1BTkRfQlVGRkVSICAg ICAgIDB4OCAgICAvKiBDb21tYW5kIGJ1ZmZlciBjb21wbGV0ZWQgKi8KLSNkZWZpbmUgU1ZHQV9J UlFGTEFHX0VSUk9SICAgICAgICAgICAgICAgIDB4MTAgICAvKiBFcnJvciB3aGlsZSBwcm9jZXNz aW5nIGNvbW1hbmRzICovCi0KLS8qCi0gKiBSZWdpc3RlcnMKLSAqLwotCi1lbnVtIHsKLSAgIFNW R0FfUkVHX0lEID0gMCwKLSAgIFNWR0FfUkVHX0VOQUJMRSA9IDEsCi0gICBTVkdBX1JFR19XSURU SCA9IDIsCi0gICBTVkdBX1JFR19IRUlHSFQgPSAzLAotICAgU1ZHQV9SRUdfTUFYX1dJRFRIID0g NCwKLSAgIFNWR0FfUkVHX01BWF9IRUlHSFQgPSA1LAotICAgU1ZHQV9SRUdfREVQVEggPSA2LAot ICAgU1ZHQV9SRUdfQklUU19QRVJfUElYRUwgPSA3LCAgICAgICAvKiBDdXJyZW50IGJwcCBpbiB0 aGUgZ3Vlc3QgKi8KLSAgIFNWR0FfUkVHX1BTRVVET0NPTE9SID0gOCwKLSAgIFNWR0FfUkVHX1JF RF9NQVNLID0gOSwKLSAgIFNWR0FfUkVHX0dSRUVOX01BU0sgPSAxMCwKLSAgIFNWR0FfUkVHX0JM VUVfTUFTSyA9IDExLAotICAgU1ZHQV9SRUdfQllURVNfUEVSX0xJTkUgPSAxMiwKLSAgIFNWR0Ff UkVHX0ZCX1NUQVJUID0gMTMsICAgICAgICAgICAgLyogKERlcHJlY2F0ZWQpICovCi0gICBTVkdB X1JFR19GQl9PRkZTRVQgPSAxNCwKLSAgIFNWR0FfUkVHX1ZSQU1fU0laRSA9IDE1LAotICAgU1ZH QV9SRUdfRkJfU0laRSA9IDE2LAotCi0gICAvKiBJRCAwIGltcGxlbWVudGF0aW9uIG9ubHkgaGFk IHRoZSBhYm92ZSByZWdpc3RlcnMsIHRoZW4gdGhlIHBhbGV0dGUgKi8KLQotICAgU1ZHQV9SRUdf Q0FQQUJJTElUSUVTID0gMTcsCi0gICBTVkdBX1JFR19NRU1fU1RBUlQgPSAxOCwgICAgICAgICAg IC8qIChEZXByZWNhdGVkKSAqLwotICAgU1ZHQV9SRUdfTUVNX1NJWkUgPSAxOSwKLSAgIFNWR0Ff UkVHX0NPTkZJR19ET05FID0gMjAsICAgICAgICAgLyogU2V0IHdoZW4gbWVtb3J5IGFyZWEgY29u ZmlndXJlZCAqLwotICAgU1ZHQV9SRUdfU1lOQyA9IDIxLCAgICAgICAgICAgICAgICAvKiBTZWUg IkZJRk8gU3luY2hyb25pemF0aW9uIFJlZ2lzdGVycyIgKi8KLSAgIFNWR0FfUkVHX0JVU1kgPSAy MiwgICAgICAgICAgICAgICAgLyogU2VlICJGSUZPIFN5bmNocm9uaXphdGlvbiBSZWdpc3RlcnMi ICovCi0gICBTVkdBX1JFR19HVUVTVF9JRCA9IDIzLCAgICAgICAgICAgIC8qIFNldCBndWVzdCBP UyBpZGVudGlmaWVyICovCi0gICBTVkdBX1JFR19DVVJTT1JfSUQgPSAyNCwgICAgICAgICAgIC8q IChEZXByZWNhdGVkKSAqLwotICAgU1ZHQV9SRUdfQ1VSU09SX1ggPSAyNSwgICAgICAgICAgICAv KiAoRGVwcmVjYXRlZCkgKi8KLSAgIFNWR0FfUkVHX0NVUlNPUl9ZID0gMjYsICAgICAgICAgICAg LyogKERlcHJlY2F0ZWQpICovCi0gICBTVkdBX1JFR19DVVJTT1JfT04gPSAyNywgICAgICAgICAg IC8qIChEZXByZWNhdGVkKSAqLwotICAgU1ZHQV9SRUdfSE9TVF9CSVRTX1BFUl9QSVhFTCA9IDI4 LCAvKiAoRGVwcmVjYXRlZCkgKi8KLSAgIFNWR0FfUkVHX1NDUkFUQ0hfU0laRSA9IDI5LCAgICAg ICAgLyogTnVtYmVyIG9mIHNjcmF0Y2ggcmVnaXN0ZXJzICovCi0gICBTVkdBX1JFR19NRU1fUkVH UyA9IDMwLCAgICAgICAgICAgIC8qIE51bWJlciBvZiBGSUZPIHJlZ2lzdGVycyAqLwotICAgU1ZH QV9SRUdfTlVNX0RJU1BMQVlTID0gMzEsICAgICAgICAvKiAoRGVwcmVjYXRlZCkgKi8KLSAgIFNW R0FfUkVHX1BJVENITE9DSyA9IDMyLCAgICAgICAgICAgLyogRml4ZWQgcGl0Y2ggZm9yIGFsbCBt b2RlcyAqLwotICAgU1ZHQV9SRUdfSVJRTUFTSyA9IDMzLCAgICAgICAgICAgICAvKiBJbnRlcnJ1 cHQgbWFzayAqLwotCi0gICAvKiBMZWdhY3kgbXVsdGktbW9uaXRvciBzdXBwb3J0ICovCi0gICBT VkdBX1JFR19OVU1fR1VFU1RfRElTUExBWVMgPSAzNCwvKiBOdW1iZXIgb2YgZ3Vlc3QgZGlzcGxh eXMgaW4gWC9ZIGRpcmVjdGlvbiAqLwotICAgU1ZHQV9SRUdfRElTUExBWV9JRCA9IDM1LCAgICAg ICAgLyogRGlzcGxheSBJRCBmb3IgdGhlIGZvbGxvd2luZyBkaXNwbGF5IGF0dHJpYnV0ZXMgKi8K LSAgIFNWR0FfUkVHX0RJU1BMQVlfSVNfUFJJTUFSWSA9IDM2LC8qIFdoZXRoZXIgdGhpcyBpcyBh IHByaW1hcnkgZGlzcGxheSAqLwotICAgU1ZHQV9SRUdfRElTUExBWV9QT1NJVElPTl9YID0gMzcs LyogVGhlIGRpc3BsYXkgcG9zaXRpb24geCAqLwotICAgU1ZHQV9SRUdfRElTUExBWV9QT1NJVElP Tl9ZID0gMzgsLyogVGhlIGRpc3BsYXkgcG9zaXRpb24geSAqLwotICAgU1ZHQV9SRUdfRElTUExB WV9XSURUSCA9IDM5LCAgICAgLyogVGhlIGRpc3BsYXkncyB3aWR0aCAqLwotICAgU1ZHQV9SRUdf RElTUExBWV9IRUlHSFQgPSA0MCwgICAgLyogVGhlIGRpc3BsYXkncyBoZWlnaHQgKi8KLQotICAg LyogU2VlICJHdWVzdCBtZW1vcnkgcmVnaW9ucyIgYmVsb3cuICovCi0gICBTVkdBX1JFR19HTVJf SUQgPSA0MSwKLSAgIFNWR0FfUkVHX0dNUl9ERVNDUklQVE9SID0gNDIsCi0gICBTVkdBX1JFR19H TVJfTUFYX0lEUyA9IDQzLAotICAgU1ZHQV9SRUdfR01SX01BWF9ERVNDUklQVE9SX0xFTkdUSCA9 IDQ0LAotCi0gICBTVkdBX1JFR19UUkFDRVMgPSA0NSwgICAgICAgICAgICAvKiBFbmFibGUgdHJh Y2UtYmFzZWQgdXBkYXRlcyBldmVuIHdoZW4gRklGTyBpcyBvbiAqLwotICAgU1ZHQV9SRUdfR01S U19NQVhfUEFHRVMgPSA0NiwgICAgLyogTWF4aW11bSBudW1iZXIgb2YgNEtCIHBhZ2VzIGZvciBh bGwgR01ScyAqLwotICAgU1ZHQV9SRUdfTUVNT1JZX1NJWkUgPSA0NywgICAgICAgLyogVG90YWwg ZGVkaWNhdGVkIGRldmljZSBtZW1vcnkgZXhjbHVkaW5nIEZJRk8gKi8KLSAgIFNWR0FfUkVHX0NP TU1BTkRfTE9XID0gNDgsICAgICAgIC8qIExvd2VyIDMyIGJpdHMgYW5kIHN1Ym1pdHMgY29tbWFu ZHMgKi8KLSAgIFNWR0FfUkVHX0NPTU1BTkRfSElHSCA9IDQ5LCAgICAgIC8qIFVwcGVyIDMyIGJp dHMgb2YgY29tbWFuZCBidWZmZXIgUEEgKi8KLSAgIFNWR0FfUkVHX01BWF9QUklNQVJZX0JPVU5E SU5HX0JPWF9NRU0gPSA1MCwgICAvKiBNYXggcHJpbWFyeSBtZW1vcnkgKi8KLSAgIFNWR0FfUkVH X1NVR0dFU1RFRF9HQk9CSkVDVF9NRU1fU0laRV9LQiA9IDUxLCAvKiBTdWdnZXN0ZWQgbGltaXQg b24gbW9iIG1lbSAqLwotICAgU1ZHQV9SRUdfREVWX0NBUCA9IDUyLCAgICAgICAgICAgLyogV3Jp dGUgZGV2IGNhcCBpbmRleCwgcmVhZCB2YWx1ZSAqLwotICAgU1ZHQV9SRUdfQ01EX1BSRVBFTkRf TE9XID0gNTMsCi0gICBTVkdBX1JFR19DTURfUFJFUEVORF9ISUdIID0gNTQsCi0gICBTVkdBX1JF R19TQ1JFRU5UQVJHRVRfTUFYX1dJRFRIID0gNTUsCi0gICBTVkdBX1JFR19TQ1JFRU5UQVJHRVRf TUFYX0hFSUdIVCA9IDU2LAotICAgU1ZHQV9SRUdfTU9CX01BWF9TSVpFID0gNTcsCi0gICBTVkdB X1JFR19UT1AgPSA1OCwgICAgICAgICAgICAgICAvKiBNdXN0IGJlIDEgbW9yZSB0aGFuIHRoZSBs YXN0IHJlZ2lzdGVyICovCi0KLSAgIFNWR0FfUEFMRVRURV9CQVNFID0gMTAyNCwgICAgICAgIC8q IEJhc2Ugb2YgU1ZHQSBjb2xvciBtYXAgKi8KLSAgIC8qIE5leHQgNzY4ICg9PSAyNTYqMykgcmVn aXN0ZXJzIGV4aXN0IGZvciBjb2xvcm1hcCAqLwotCi0gICBTVkdBX1NDUkFUQ0hfQkFTRSA9IFNW R0FfUEFMRVRURV9CQVNFICsgU1ZHQV9OVU1fUEFMRVRURV9SRUdTCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvKiBCYXNlIG9mIHNjcmF0Y2ggcmVnaXN0ZXJzICovCi0gICAv KiBOZXh0IHJlZ1tTVkdBX1JFR19TQ1JBVENIX1NJWkVdIHJlZ2lzdGVycyBleGlzdCBmb3Igc2Ny YXRjaCB1c2FnZToKLSAgICAgIEZpcnN0IDQgYXJlIHJlc2VydmVkIGZvciBWRVNBIEJJT1MgRXh0 ZW5zaW9uOyBhbnkgcmVtYWluaW5nIGFyZSBmb3IKLSAgICAgIHRoZSB1c2Ugb2YgdGhlIGN1cnJl bnQgU1ZHQSBkcml2ZXIuICovCi19OwotCi0KLS8qCi0gKiBHdWVzdCBtZW1vcnkgcmVnaW9ucyAo R01Scyk6Ci0gKgotICogVGhpcyBpcyBhIG5ldyBtZW1vcnkgbWFwcGluZyBmZWF0dXJlIGF2YWls YWJsZSBpbiBTVkdBIGRldmljZXMKLSAqIHdoaWNoIGhhdmUgdGhlIFNWR0FfQ0FQX0dNUiBiaXQg c2V0LiBQcmV2aW91c2x5LCB0aGVyZSB3ZXJlIHR3bwotICogZml4ZWQgbWVtb3J5IHJlZ2lvbnMg YXZhaWxhYmxlIHdpdGggd2hpY2ggdG8gc2hhcmUgZGF0YSBiZXR3ZWVuIHRoZQotICogZGV2aWNl IGFuZCB0aGUgZHJpdmVyOiB0aGUgRklGTyAoJ01FTScpIGFuZCB0aGUgZnJhbWVidWZmZXIuIEdN UnMKLSAqIGFyZSBvdXIgbmFtZSBmb3IgYW4gZXh0ZW5zaWJsZSB3YXkgb2YgcHJvdmlkaW5nIGFy Yml0cmFyeSBETUEKLSAqIGJ1ZmZlcnMgZm9yIHVzZSBiZXR3ZWVuIHRoZSBkcml2ZXIgYW5kIHRo ZSBTVkdBIGRldmljZS4gVGhleSBhcmUgYQotICogbmV3IGFsdGVybmF0aXZlIHRvIGZyYW1lYnVm ZmVyIG1lbW9yeSwgdXNhYmxlIGZvciBib3RoIDJEIGFuZCAzRAotICogZ3JhcGhpY3Mgb3BlcmF0 aW9ucy4KLSAqCi0gKiBTaW5jZSBHTVIgbWFwcGluZyBtdXN0IGJlIGRvbmUgc3luY2hyb25vdXNs eSB3aXRoIGd1ZXN0IENQVQotICogZXhlY3V0aW9uLCB3ZSB1c2UgYSBuZXcgcGFpciBvZiBTVkdB IHJlZ2lzdGVyczoKLSAqCi0gKiAgIFNWR0FfUkVHX0dNUl9JRCAtLQotICoKLSAqICAgICBSZWFk L3dyaXRlLgotICogICAgIFRoaXMgcmVnaXN0ZXIgaG9sZHMgdGhlIDMyLWJpdCBJRCAoYSBzbWFs bCBwb3NpdGl2ZSBpbnRlZ2VyKQotICogICAgIG9mIGEgR01SIHRvIGNyZWF0ZSwgZGVsZXRlLCBv ciByZWRlZmluZS4gV3JpdGluZyB0aGlzIHJlZ2lzdGVyCi0gKiAgICAgaGFzIG5vIHNpZGUtZWZm ZWN0cy4KLSAqCi0gKiAgIFNWR0FfUkVHX0dNUl9ERVNDUklQVE9SIC0tCi0gKgotICogICAgIFdy aXRlLW9ubHkuCi0gKiAgICAgV3JpdGluZyB0aGlzIHJlZ2lzdGVyIHdpbGwgY3JlYXRlLCBkZWxl dGUsIG9yIHJlZGVmaW5lIHRoZSBHTVIKLSAqICAgICBzcGVjaWZpZWQgYnkgdGhlIGFib3ZlIElE IHJlZ2lzdGVyLiBJZiB0aGlzIHJlZ2lzdGVyIGlzIHplcm8sCi0gKiAgICAgdGhlIEdNUiBpcyBk ZWxldGVkLiBBbnkgcG9pbnRlcnMgaW50byB0aGlzIEdNUiAoaW5jbHVkaW5nIHRob3NlCi0gKiAg ICAgY3VycmVudGx5IGJlaW5nIHByb2Nlc3NlZCBieSBGSUZPIGNvbW1hbmRzKSB3aWxsIGJlCi0g KiAgICAgc3luY2hyb25vdXNseSBpbnZhbGlkYXRlZC4KLSAqCi0gKiAgICAgSWYgdGhpcyByZWdp c3RlciBpcyBub256ZXJvLCBpdCBtdXN0IGJlIHRoZSBwaHlzaWNhbCBwYWdlCi0gKiAgICAgbnVt YmVyIChQUE4pIG9mIGEgZGF0YSBzdHJ1Y3R1cmUgd2hpY2ggZGVzY3JpYmVzIHRoZSBwaHlzaWNh bAotICogICAgIGxheW91dCBvZiB0aGUgbWVtb3J5IHJlZ2lvbiB0aGlzIEdNUiBzaG91bGQgZGVz Y3JpYmUuIFRoZQotICogICAgIGRlc2NyaXB0b3Igc3RydWN0dXJlIHdpbGwgYmUgcmVhZCBzeW5j aHJvbm91c2x5IGJ5IHRoZSBTVkdBCi0gKiAgICAgZGV2aWNlIHdoZW4gdGhpcyByZWdpc3RlciBp cyB3cml0dGVuLiBUaGUgZGVzY3JpcHRvciBuZWVkIG5vdAotICogICAgIHJlbWFpbiBhbGxvY2F0 ZWQgZm9yIHRoZSBsaWZldGltZSBvZiB0aGUgR01SLgotICoKLSAqICAgICBUaGUgZ3Vlc3QgZHJp dmVyIHNob3VsZCB3cml0ZSBTVkdBX1JFR19HTVJfSUQgZmlyc3QsIHRoZW4KLSAqICAgICBTVkdB X1JFR19HTVJfREVTQ1JJUFRPUi4KLSAqCi0gKiAgIFNWR0FfUkVHX0dNUl9NQVhfSURTIC0tCi0g KgotICogICAgIFJlYWQtb25seS4KLSAqICAgICBUaGUgU1ZHQSBkZXZpY2UgbWF5IGNob29zZSB0 byBzdXBwb3J0IGEgbWF4aW11bSBudW1iZXIgb2YKLSAqICAgICB1c2VyLWRlZmluZWQgR01SIElE cy4gVGhpcyByZWdpc3RlciBob2xkcyB0aGUgbnVtYmVyIG9mIHN1cHBvcnRlZAotICogICAgIElE cy4gKFRoZSBtYXhpbXVtIHN1cHBvcnRlZCBJRCBwbHVzIDEpCi0gKgotICogICBTVkdBX1JFR19H TVJfTUFYX0RFU0NSSVBUT1JfTEVOR1RIIC0tCi0gKgotICogICAgIFJlYWQtb25seS4KLSAqICAg ICBUaGUgU1ZHQSBkZXZpY2UgbWF5IGNob29zZSB0byBwdXQgYSBsaW1pdCBvbiB0aGUgdG90YWwg bnVtYmVyCi0gKiAgICAgb2YgU1ZHQUd1ZXN0TWVtRGVzY3JpcHRvciBzdHJ1Y3R1cmVzIGl0IHdp bGwgcmVhZCB3aGVuIGRlZmluaW5nCi0gKiAgICAgYSBzaW5nbGUgR01SLgotICoKLSAqIFRoZSBk ZXNjcmlwdG9yIHN0cnVjdHVyZSBpcyBhbiBhcnJheSBvZiBTVkdBR3Vlc3RNZW1EZXNjcmlwdG9y Ci0gKiBzdHJ1Y3R1cmVzLiBFYWNoIHN0cnVjdHVyZSBtYXkgZG8gb25lIG9mIHRocmVlIHRoaW5n czoKLSAqCi0gKiAgIC0gVGVybWluYXRlIHRoZSBHTVIgZGVzY3JpcHRvciBsaXN0LgotICogICAg IChwcG49PTAsIG51bVBhZ2VzPT0wKQotICoKLSAqICAgLSBBZGQgYSBQUE4gb3IgcmFuZ2Ugb2Yg UFBOcyB0byB0aGUgR01SJ3MgdmlydHVhbCBhZGRyZXNzIHNwYWNlLgotICogICAgIChwcG4gIT0g MCwgbnVtUGFnZXMgIT0gMCkKLSAqCi0gKiAgIC0gUHJvdmlkZSB0aGUgUFBOIG9mIHRoZSBuZXh0 IFNWR0FHdWVzdE1lbURlc2NyaXB0b3IsIGluIG9yZGVyIHRvCi0gKiAgICAgc3VwcG9ydCBtdWx0 aS1wYWdlIEdNUiBkZXNjcmlwdG9yIHRhYmxlcyB3aXRob3V0IGZvcmNpbmcgdGhlCi0gKiAgICAg ZHJpdmVyIHRvIGFsbG9jYXRlIHBoeXNpY2FsbHkgY29udGlndW91cyBtZW1vcnkuCi0gKiAgICAg KHBwbiAhPSAwLCBudW1QYWdlcyA9PSAwKQotICoKLSAqIE5vdGUgdGhhdCBlYWNoIHBoeXNpY2Fs IHBhZ2Ugb2YgU1ZHQUd1ZXN0TWVtRGVzY3JpcHRvciBzdHJ1Y3R1cmVzCi0gKiBjYW4gZGVzY3Jp YmUgYXQgbGVhc3QgMk1CIG9mIGd1ZXN0IG1lbW9yeS4gSWYgdGhlIGRyaXZlciBuZWVkcyB0bwot ICogdXNlIG1vcmUgdGhhbiBvbmUgcGFnZSBvZiBkZXNjcmlwdG9yIHN0cnVjdHVyZXMsIGl0IG11 c3QgdXNlIG9uZSBvZgotICogaXRzIFNWR0FHdWVzdE1lbURlc2NyaXB0b3JzIHRvIHBvaW50IHRv IGFuIGFkZGl0aW9uYWwgcGFnZS4gIFRoZQotICogZGV2aWNlIHdpbGwgbmV2ZXIgYXV0b21hdGlj YWxseSBjcm9zcyBhIHBhZ2UgYm91bmRhcnkuCi0gKgotICogT25jZSB0aGUgZHJpdmVyIGhhcyBk ZXNjcmliZWQgYSBHTVIsIGl0IGlzIGltbWVkaWF0ZWx5IGF2YWlsYWJsZQotICogZm9yIHVzZSB2 aWEgYW55IEZJRk8gY29tbWFuZCB0aGF0IHVzZXMgYW4gU1ZHQUd1ZXN0UHRyIHN0cnVjdHVyZS4K LSAqIFRoZXNlIHBvaW50ZXJzIGluY2x1ZGUgYSBHTVIgaWRlbnRpZmllciBwbHVzIGFuIG9mZnNl dCBpbnRvIHRoYXQKLSAqIEdNUi4KLSAqCi0gKiBUaGUgZHJpdmVyIG11c3QgY2hlY2sgdGhlIFNW R0FfQ0FQX0dNUiBiaXQgYmVmb3JlIHVzaW5nIHRoZSBHTVIKLSAqIHJlZ2lzdGVycy4KLSAqLwot Ci0vKgotICogU3BlY2lhbCBHTVIgSURzLCBhbGxvd2luZyBTVkdBR3Vlc3RQdHJzIHRvIHBvaW50 IHRvIGZyYW1lYnVmZmVyCi0gKiBtZW1vcnkgYXMgd2VsbC4gIEluIHRoZSBmdXR1cmUsIHRoZXNl IElEcyBjb3VsZCBldmVuIGJlIHVzZWQgdG8KLSAqIGFsbG93IGxlZ2FjeSBtZW1vcnkgcmVnaW9u cyB0byBiZSByZWRlZmluZWQgYnkgdGhlIGd1ZXN0IGFzIEdNUnMuCi0gKgotICogVXNpbmcgdGhl IGd1ZXN0IGZyYW1lYnVmZmVyIChHRkIpIGF0IEJBUjEgZm9yIGdlbmVyYWwgcHVycG9zZSBETUEK LSAqIGlzIGJlaW5nIHBoYXNlZCBvdXQuIFBsZWFzZSB0cnkgdG8gdXNlIHVzZXItZGVmaW5lZCBH TVJzIHdoZW5ldmVyCi0gKiBwb3NzaWJsZS4KLSAqLwotI2RlZmluZSBTVkdBX0dNUl9OVUxMICAg ICAgICAgKCh1aW50MzIpIC0xKQotI2RlZmluZSBTVkdBX0dNUl9GUkFNRUJVRkZFUiAgKCh1aW50 MzIpIC0yKSAgLyogR3Vlc3QgRnJhbWVidWZmZXIgKEdGQikgKi8KLQotdHlwZWRlZgotc3RydWN0 IFNWR0FHdWVzdE1lbURlc2NyaXB0b3IgewotICAgdWludDMyIHBwbjsKLSAgIHVpbnQzMiBudW1Q YWdlczsKLX0gU1ZHQUd1ZXN0TWVtRGVzY3JpcHRvcjsKLQotdHlwZWRlZgotc3RydWN0IFNWR0FH dWVzdFB0ciB7Ci0gICB1aW50MzIgZ21ySWQ7Ci0gICB1aW50MzIgb2Zmc2V0OwotfSBTVkdBR3Vl c3RQdHI7Ci0KLS8qCi0gKiBSZWdpc3RlciBiYXNlZCBjb21tYW5kIGJ1ZmZlcnMgLS0KLSAqCi0g KiBQcm92aWRlIGFuIFNWR0EgZGV2aWNlIGludGVyZmFjZSB0aGF0IGFsbG93cyB0aGUgZ3Vlc3Qg dG8gc3VibWl0Ci0gKiBjb21tYW5kIGJ1ZmZlcnMgdG8gdGhlIFNWR0EgZGV2aWNlIHRocm91Z2gg YW4gU1ZHQSBkZXZpY2UgcmVnaXN0ZXIuCi0gKiBUaGUgbWV0YWRhdGEgZm9yIGVhY2ggY29tbWFu ZCBidWZmZXIgaXMgY29udGFpbmVkIGluIHRoZQotICogU1ZHQUNCSGVhZGVyIHN0cnVjdHVyZSBh bG9uZyB3aXRoIHRoZSByZXR1cm4gc3RhdHVzIGNvZGVzLgotICoKLSAqIFRoZSBTVkdBIGRldmlj ZSBzdXBwb3J0cyBjb21tYW5kIGJ1ZmZlcnMgaWYKLSAqIFNWR0FfQ0FQX0NPTU1BTkRfQlVGRkVS UyBpcyBzZXQgaW4gdGhlIGRldmljZSBjYXBzIHJlZ2lzdGVyLiAgVGhlCi0gKiBmaWZvIG11c3Qg YmUgZW5hYmxlZCBmb3IgY29tbWFuZCBidWZmZXJzIHRvIGJlIHN1Ym1pdHRlZC4KLSAqCi0gKiBD b21tYW5kIGJ1ZmZlcnMgYXJlIHN1Ym1pdHRlZCB3aGVuIHRoZSBndWVzdCB3cml0aW5nIHRoZSA2 NCBieXRlCi0gKiBhbGlnbmVkIHBoeXNpY2FsIGFkZHJlc3MgaW50byB0aGUgU1ZHQV9SRUdfQ09N TUFORF9MT1cgYW5kCi0gKiBTVkdBX1JFR19DT01NQU5EX0hJR0guICBTVkdBX1JFR19DT01NQU5E X0hJR0ggY29udGFpbnMgdGhlIHVwcGVyIDMyCi0gKiBiaXRzIG9mIHRoZSBwaHlzaWNhbCBhZGRy ZXNzLiAgU1ZHQV9SRUdfQ09NTUFORF9MT1cgY29udGFpbnMgdGhlCi0gKiBsb3dlciAzMiBiaXRz IG9mIHRoZSBwaHlzaWNhbCBhZGRyZXNzLCBzaW5jZSB0aGUgY29tbWFuZCBidWZmZXIKLSAqIGhl YWRlcnMgYXJlIHJlcXVpcmVkIHRvIGJlIDY0IGJ5dGUgYWxpZ25lZCB0aGUgbG93ZXIgNiBiaXRz IGFyZQotICogdXNlZCBmb3IgdGhlIFNWR0FDQkNvbnRleHQgdmFsdWUuICBXcml0aW5nIHRvIFNW R0FfUkVHX0NPTU1BTkRfTE9XCi0gKiBzdWJtaXRzIHRoZSBjb21tYW5kIGJ1ZmZlciB0byB0aGUg ZGV2aWNlIGFuZCBxdWV1ZXMgaXQgZm9yCi0gKiBleGVjdXRpb24uICBUaGUgU1ZHQSBkZXZpY2Ug c3VwcG9ydHMgYXQgbGVhc3QKLSAqIFNWR0FfQ0JfTUFYX1FVRVVFRF9QRVJfQ09OVEVYVCBjb21t YW5kIGJ1ZmZlcnMgdGhhdCBjYW4gYmUgcXVldWVkCi0gKiBwZXIgY29udGV4dCBhbmQgaWYgdGhh dCBsaW1pdCBpcyByZWFjaGVkIHRoZSBkZXZpY2Ugd2lsbCB3cml0ZSB0aGUKLSAqIHN0YXR1cyBT VkdBX0NCX1NUQVRVU19RVUVVRV9GVUxMIHRvIHRoZSBzdGF0dXMgdmFsdWUgb2YgdGhlIGNvbW1h bmQKLSAqIGJ1ZmZlciBoZWFkZXIgc3luY2hyb25vdXNseSBhbmQgbm90IHJhaXNlIGFueSBJUlFz LgotICoKLSAqIEl0IGlzIGludmFsaWQgdG8gc3VibWl0IGEgY29tbWFuZCBidWZmZXIgd2l0aG91 dCBhIHZhbGlkIHBoeXNpY2FsCi0gKiBhZGRyZXNzIGFuZCByZXN1bHRzIGFyZSB1bmRlZmluZWQu Ci0gKgotICogVGhlIGRldmljZSBndWFyYW50ZWVzIHRoYXQgY29tbWFuZCBidWZmZXJzIG9mIHNp emUgU1ZHQV9DQl9NQVhfU0laRQotICogd2lsbCBiZSBzdXBwb3J0ZWQuICBJZiBhIGxhcmdlciBj b21tYW5kIGJ1ZmZlciBpcyBzdWJtaXR0ZWQgcmVzdWx0cwotICogYXJlIHVuc3BlY2lmaWVkIGFu ZCB0aGUgZGV2aWNlIHdpbGwgZWl0aGVyIGNvbXBsZXRlIHRoZSBjb21tYW5kCi0gKiBidWZmZXIg b3IgcmV0dXJuIGFuIGVycm9yLgotICoKLSAqIFRoZSBkZXZpY2UgZ3VhcmFudGVlcyB0aGF0IGFu eSBpbmRpdmlkdWFsIGNvbW1hbmQgaW4gYSBjb21tYW5kCi0gKiBidWZmZXIgY2FuIGJlIHVwIHRv IFNWR0FfQ0JfTUFYX0NPTU1BTkRfU0laRSBpbiBzaXplIHdoaWNoIGlzCi0gKiBlbm91Z2ggdG8g Zml0IGEgNjR4NjQgY29sb3ItY3Vyc29yIGRlZmluaXRpb24uICBJZiB0aGUgY29tbWFuZCBpcwot ICogdG9vIGxhcmdlIHRoZSBkZXZpY2UgaXMgYWxsb3dlZCB0byBwcm9jZXNzIHRoZSBjb21tYW5k IG9yIHJldHVybiBhbgotICogZXJyb3IuCi0gKgotICogVGhlIGRldmljZSBjb250ZXh0IGlzIGEg c3BlY2lhbCBTVkdBQ0JDb250ZXh0IHRoYXQgYWxsb3dzIGZvcgotICogc3luY2hyb25vdXMgcmVn aXN0ZXIgbGlrZSBhY2Nlc3NlcyB3aXRoIHRoZSBmbGV4aWJpbGl0eSBvZgotICogY29tbWFuZHMu ICBUaGVyZSBpcyBhIGRpZmZlcmVudCBjb21tYW5kIHNldCBkZWZpbmVkIGJ5Ci0gKiBTVkdBRGV2 aWNlQ29udGV4dENtZElkLiAgVGhlIGNvbW1hbmRzIGluIGVhY2ggY29tbWFuZCBidWZmZXIgaXMg bm90Ci0gKiBhbGxvd2VkIHRvIHN0cmFkZGxlIHBoeXNpY2FsIHBhZ2VzLgotICoKLSAqIFRoZSBv ZmZzZXQgZmllbGQgd2hpY2ggaXMgYXZhaWxhYmxlIHN0YXJ0aW5nIHdpdGggdGhlCi0gKiBTVkdB X0NBUF9DTURfQlVGRkVSU18yIGNhcCBiaXQgY2FuIGJlIHNldCBieSB0aGUgZ3Vlc3QgdG8gYmlh cyB0aGUKLSAqIHN0YXJ0IG9mIGNvbW1hbmQgcHJvY2Vzc2luZyBpbnRvIHRoZSBidWZmZXIuICBJ ZiBhbiBlcnJvciBpcwotICogZW5jb3VudGVyZWQgdGhlIGVycm9yT2Zmc2V0IHdpbGwgc3RpbGwg YmUgcmVsYXRpdmUgdG8gdGhlIHNwZWNpZmljCi0gKiBQQSwgbm90IGJpYXNlZCBieSB0aGUgb2Zm c2V0LiAgV2hlbiB0aGUgY29tbWFuZCBidWZmZXIgaXMgZmluaXNoZWQKLSAqIHRoZSBndWVzdCBz aG91bGQgbm90IHJlYWQgdGhlIG9mZnNldCBmaWVsZCBhcyB0aGVyZSBpcyBubyBndWFyYW50ZWUK LSAqIHdoYXQgaXQgd2lsbCBzZXQgdG8uCi0gKi8KLQotI2RlZmluZSBTVkdBX0NCX01BWF9TSVpF ICg1MTIgKiAxMDI0KSAgLy8gNTEyIEtCCi0jZGVmaW5lIFNWR0FfQ0JfTUFYX1FVRVVFRF9QRVJf Q09OVEVYVCAzMgotI2RlZmluZSBTVkdBX0NCX01BWF9DT01NQU5EX1NJWkUgKDMyICogMTAyNCkg Ly8gMzIgS0IKLQotI2RlZmluZSBTVkdBX0NCX0NPTlRFWFRfTUFTSyAweDNmCi10eXBlZGVmIGVu dW0gewotICAgU1ZHQV9DQl9DT05URVhUX0RFVklDRSA9IDB4M2YsCi0gICBTVkdBX0NCX0NPTlRF WFRfMCAgICAgID0gMHgwLAotICAgU1ZHQV9DQl9DT05URVhUX01BWCAgICA9IDB4MSwKLX0gU1ZH QUNCQ29udGV4dDsKLQotCi10eXBlZGVmIGVudW0gewotICAgLyoKLSAgICAqIFRoZSBndWVzdCBp cyBzdXBwb3NlZCB0byB3cml0ZSBTVkdBX0NCX1NUQVRVU19OT05FIHRvIHRoZSBzdGF0dXMKLSAg ICAqIGZpZWxkIGJlZm9yZSBzdWJtaXR0aW5nIHRoZSBjb21tYW5kIGJ1ZmZlciBoZWFkZXIsIHRo ZSBob3N0IHdpbGwKLSAgICAqIGNoYW5nZSB0aGUgdmFsdWUgd2hlbiBpdCBpcyBkb25lIHdpdGgg dGhlIGNvbW1hbmQgYnVmZmVyLgotICAgICovCi0gICBTVkdBX0NCX1NUQVRVU19OT05FICAgICAg ICAgICAgID0gMCwKLQotICAgLyoKLSAgICAqIFdyaXR0ZW4gYnkgdGhlIGhvc3Qgd2hlbiBhIGNv bW1hbmQgYnVmZmVyIGNvbXBsZXRlcyBzdWNjZXNzZnVsbHkuCi0gICAgKiBUaGUgZGV2aWNlIHJh aXNlcyBhbiBJUlEgd2l0aCBTVkdBX0lSUUZMQUdfQ09NTUFORF9CVUZGRVIgdW5sZXNzCi0gICAg KiB0aGUgU1ZHQV9DQl9GTEFHX05PX0lSUSBmbGFnIGlzIHNldC4KLSAgICAqLwotICAgU1ZHQV9D Ql9TVEFUVVNfQ09NUExFVEVEICAgICAgICA9IDEsCi0KLSAgIC8qCi0gICAgKiBXcml0dGVuIGJ5 IHRoZSBob3N0IHN5bmNocm9ub3VzbHkgd2l0aCB0aGUgY29tbWFuZCBidWZmZXIKLSAgICAqIHN1 Ym1pc3Npb24gdG8gaW5kaWNhdGUgdGhlIGNvbW1hbmQgYnVmZmVyIHdhcyBub3Qgc3VibWl0dGVk LiAgTm8KLSAgICAqIElSUSBpcyByYWlzZWQuCi0gICAgKi8KLSAgIFNWR0FfQ0JfU1RBVFVTX1FV RVVFX0ZVTEwgICAgICAgPSAyLAotCi0gICAvKgotICAgICogV3JpdHRlbiBieSB0aGUgaG9zdCB3 aGVuIGFuIGVycm9yIHdhcyBkZXRlY3RlZCBwYXJzaW5nIGEgY29tbWFuZAotICAgICogaW4gdGhl IGNvbW1hbmQgYnVmZmVyLCBlcnJvck9mZnNldCBpcyB3cml0dGVuIHRvIGNvbnRhaW4gdGhlCi0g ICAgKiBvZmZzZXQgdG8gdGhlIGZpcnN0IGJ5dGUgb2YgdGhlIGZhaWxpbmcgY29tbWFuZC4gIFRo ZSBkZXZpY2UKLSAgICAqIHJhaXNlcyB0aGUgSVJRIHdpdGggYm90aCBTVkdBX0lSUUZMQUdfRVJS T1IgYW5kCi0gICAgKiBTVkdBX0lSUUZMQUdfQ09NTUFORF9CVUZGRVIuICBTb21lIG9mIHRoZSBj b21tYW5kcyBtYXkgaGF2ZSBiZWVuCi0gICAgKiBwcm9jZXNzZWQuCi0gICAgKi8KLSAgIFNWR0Ff Q0JfU1RBVFVTX0NPTU1BTkRfRVJST1IgICAgPSAzLAotCi0gICAvKgotICAgICogV3JpdHRlbiBi eSB0aGUgaG9zdCBpZiB0aGVyZSBpcyBhbiBlcnJvciBwYXJzaW5nIHRoZSBjb21tYW5kCi0gICAg KiBidWZmZXIgaGVhZGVyLiAgVGhlIGRldmljZSByYWlzZXMgdGhlIElSUSB3aXRoIGJvdGgKLSAg ICAqIFNWR0FfSVJRRkxBR19FUlJPUiBhbmQgU1ZHQV9JUlFGTEFHX0NPTU1BTkRfQlVGRkVSLiAg VGhlIGRldmljZQotICAgICogZGlkIG5vdCBwcm9jZXNzZXMgYW55IG9mIHRoZSBjb21tYW5kIGJ1 ZmZlci4KLSAgICAqLwotICAgU1ZHQV9DQl9TVEFUVVNfQ0JfSEVBREVSX0VSUk9SICA9IDQsCi0K LSAgIC8qCi0gICAgKiBXcml0dGVuIGJ5IHRoZSBob3N0IGlmIHRoZSBndWVzdCByZXF1ZXN0ZWQg dGhlIGhvc3QgdG8gcHJlZW1wdAotICAgICogdGhlIGNvbW1hbmQgYnVmZmVyLiAgVGhlIGRldmlj ZSB3aWxsIG5vdCByYWlzZSBhbnkgSVJRcyBhbmQgdGhlCi0gICAgKiBjb21tYW5kIGJ1ZmZlciB3 YXMgbm90IHByb2Nlc3NlZC4KLSAgICAqLwotICAgU1ZHQV9DQl9TVEFUVVNfUFJFRU1QVEVEICAg ICAgICA9IDUsCi0KLSAgIC8qCi0gICAgKiBXcml0dGVuIGJ5IHRoZSBob3N0IHN5bmNocm9ub3Vz bHkgd2l0aCB0aGUgY29tbWFuZCBidWZmZXIKLSAgICAqIHN1Ym1pc3Npb24gdG8gaW5kaWNhdGUg dGhlIHRoZSBjb21tYW5kIGJ1ZmZlciB3YXMgbm90IHN1Ym1pdHRlZAotICAgICogZHVlIHRvIGFu IGVycm9yLiAgTm8gSVJRIGlzIHJhaXNlZC4KLSAgICAqLwotICAgU1ZHQV9DQl9TVEFUVVNfU1VC TUlTU0lPTl9FUlJPUiA9IDYsCi19IFNWR0FDQlN0YXR1czsKLQotdHlwZWRlZiBlbnVtIHsKLSAg IFNWR0FfQ0JfRkxBR19OT05FICAgICAgID0gMCwKLSAgIFNWR0FfQ0JfRkxBR19OT19JUlEgICAg ID0gMSA8PCAwLAotICAgU1ZHQV9DQl9GTEFHX0RYX0NPTlRFWFQgPSAxIDw8IDEsCi0gICBTVkdB X0NCX0ZMQUdfTU9CICAgICAgICA9IDEgPDwgMiwKLX0gU1ZHQUNCRmxhZ3M7Ci0KLXR5cGVkZWYK LXN0cnVjdCB7Ci0gICB2b2xhdGlsZSBTVkdBQ0JTdGF0dXMgc3RhdHVzOyAvKiBNb2RpZmllZCBi eSBkZXZpY2UuICovCi0gICB2b2xhdGlsZSB1aW50MzIgZXJyb3JPZmZzZXQ7ICAvKiBNb2RpZmll ZCBieSBkZXZpY2UuICovCi0gICB1aW50NjQgaWQ7Ci0gICBTVkdBQ0JGbGFncyBmbGFnczsKLSAg IHVpbnQzMiBsZW5ndGg7Ci0gICB1bmlvbiB7Ci0gICAgICBQQSBwYTsKLSAgICAgIHN0cnVjdCB7 Ci0gICAgICAgICBTVkdBTW9iSWQgbW9iaWQ7Ci0gICAgICAgICB1aW50MzIgbW9iT2Zmc2V0Owot ICAgICAgfSBtb2I7Ci0gICB9IHB0cjsKLSAgIHVpbnQzMiBvZmZzZXQ7IC8qIFZhbGlkIGlmIENN RF9CVUZGRVJTXzIgY2FwIHNldCwgbXVzdCBiZSB6ZXJvIG90aGVyd2lzZSwKLSAgICAgICAgICAg ICAgICAgICAqIG1vZGlmaWVkIGJ5IGRldmljZS4KLSAgICAgICAgICAgICAgICAgICAqLwotICAg dWludDMyIGR4Q29udGV4dDsgLyogVmFsaWQgaWYgRFhfQ09OVEVYVCBmbGFnIHNldCwgbXVzdCBi ZSB6ZXJvIG90aGVyd2lzZSAqLwotICAgdWludDMyIG11c3RCZVplcm9bNl07Ci19Ci1fX2F0dHJp YnV0ZV9fKChfX3BhY2tlZF9fKSkKLVNWR0FDQkhlYWRlcjsKLQotdHlwZWRlZiBlbnVtIHsKLSAg IFNWR0FfRENfQ01EX05PUCAgICAgICAgICAgICAgICAgICA9IDAsCi0gICBTVkdBX0RDX0NNRF9T VEFSVF9TVE9QX0NPTlRFWFQgICAgPSAxLAotICAgU1ZHQV9EQ19DTURfUFJFRU1QVCAgICAgICAg ICAgICAgID0gMiwKLSAgIFNWR0FfRENfQ01EX01BWCAgICAgICAgICAgICAgICAgICA9IDMsCi19 IFNWR0FEZXZpY2VDb250ZXh0Q21kSWQ7Ci0KLQotdHlwZWRlZiBzdHJ1Y3QgewotICAgdWludDMy IGVuYWJsZTsKLSAgIFNWR0FDQkNvbnRleHQgY29udGV4dDsKLX0gU1ZHQURDQ21kU3RhcnRTdG9w OwotCi0vKgotICogU1ZHQURDQ21kUHJlZW1wdCAtLQotICoKLSAqIFRoaXMgY29tbWFuZCBhbGxv d3MgdGhlIGd1ZXN0IHRvIHJlcXVlc3QgdGhhdCBhbGwgY29tbWFuZCBidWZmZXJzCi0gKiBvbiB0 aGUgc3BlY2lmaWVkIGNvbnRleHQgYmUgcHJlZW1wdGVkIHRoYXQgY2FuIGJlLiAgQWZ0ZXIgZXhl Y3V0aW9uCi0gKiBvZiB0aGlzIGNvbW1hbmQgYWxsIGNvbW1hbmQgYnVmZmVycyB0aGF0IHdlcmUg cHJlZW1wdGVkIHdpbGwKLSAqIGFscmVhZHkgaGF2ZSBTVkdBX0NCX1NUQVRVU19QUkVFTVBURUQg d3JpdHRlbiBpbnRvIHRoZSBzdGF0dXMKLSAqIGZpZWxkLiAgVGhlIGRldmljZSBtaWdodCBzdGls bCBiZSBwcm9jZXNzaW5nIGEgY29tbWFuZCBidWZmZXIsCi0gKiBhc3N1bWluZyBleGVjdXRpb24g b2YgaXQgc3RhcnRlZCBiZWZvcmUgdGhlIHByZWVtcHRpb24gcmVxdWVzdCB3YXMKLSAqIHJlY2Vp dmVkLiAgU3BlY2lmeWluZyB0aGUgaWdub3JlSURaZXJvIGZsYWcgdG8gVFJVRSB3aWxsIGNhdXNl IHRoZQotICogZGV2aWNlIHRvIG5vdCBwcmVlbXB0IGNvbW1hbmQgYnVmZmVycyB3aXRoIHRoZSBp ZCBmaWVsZCBpbiB0aGUKLSAqIGNvbW1hbmQgYnVmZmVyIGhlYWRlciBzZXQgdG8gemVyby4KLSAq LwotCi10eXBlZGVmIHN0cnVjdCB7Ci0gICBTVkdBQ0JDb250ZXh0IGNvbnRleHQ7Ci0gICB1aW50 MzIgaWdub3JlSURaZXJvOwotfSBTVkdBRENDbWRQcmVlbXB0OwotCi0KLS8qCi0gKiBTVkdBR01S SW1hZ2VGb3JtYXQgLS0KLSAqCi0gKiAgICBUaGlzIGlzIGEgcGFja2VkIHJlcHJlc2VudGF0aW9u IG9mIHRoZSBzb3VyY2UgMkQgaW1hZ2UgZm9ybWF0Ci0gKiAgICBmb3IgYSBHTVItdG8tc2NyZWVu IGJsaXQuIEN1cnJlbnRseSBpdCBpcyBkZWZpbmVkIGFzIGFuIGVuY29kaW5nCi0gKiAgICBvZiB0 aGUgc2NyZWVuJ3MgY29sb3IgZGVwdGggYW5kIGJpdHMtcGVyLXBpeGVsLCBob3dldmVyLCAxNiBi aXRzCi0gKiAgICBhcmUgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgdG8gaWRlbnRpZnkgb3RoZXIg ZW5jb2RpbmdzIChzdWNoIGFzCi0gKiAgICBSR0JBIG9yIGhpZ2hlci1wcmVjaXNpb24gaW1hZ2Vz KS4KLSAqCi0gKiAgICBDdXJyZW50bHkgc3VwcG9ydGVkIGZvcm1hdHM6Ci0gKgotICogICAgICAg YnBwIGRlcHRoICBGb3JtYXQgTmFtZQotICogICAgICAgLS0tIC0tLS0tICAtLS0tLS0tLS0tLQot ICogICAgICAgIDMyICAgIDI0ICAzMi1iaXQgQkdSWAotICogICAgICAgIDI0ICAgIDI0ICAyNC1i aXQgQkdSCi0gKiAgICAgICAgMTYgICAgMTYgIFJHQiA1LTYtNQotICogICAgICAgIDE2ICAgIDE1 ICBSR0IgNS01LTUKLSAqCi0gKi8KLQotdHlwZWRlZgotc3RydWN0IFNWR0FHTVJJbWFnZUZvcm1h dCB7Ci0gICB1bmlvbiB7Ci0gICAgICBzdHJ1Y3QgewotICAgICAgICAgdWludDMyIGJpdHNQZXJQ aXhlbCA6IDg7Ci0gICAgICAgICB1aW50MzIgY29sb3JEZXB0aCAgIDogODsKLSAgICAgICAgIHVp bnQzMiByZXNlcnZlZCAgICAgOiAxNjsgIC8qIE11c3QgYmUgemVybyAqLwotICAgICAgfTsKLQot ICAgICAgdWludDMyIHZhbHVlOwotICAgfTsKLX0gU1ZHQUdNUkltYWdlRm9ybWF0OwotCi10eXBl ZGVmCi1zdHJ1Y3QgU1ZHQUd1ZXN0SW1hZ2UgewotICAgU1ZHQUd1ZXN0UHRyICAgICAgICAgcHRy OwotCi0gICAvKgotICAgICogQSBub3RlIG9uIGludGVycHJldGF0aW9uIG9mIHBpdGNoOiBUaGlz IHZhbHVlIG9mIHBpdGNoIGlzIHRoZQotICAgICogbnVtYmVyIG9mIGJ5dGVzIGJldHdlZW4gdmVy dGljYWxseSBhZGphY2VudCBpbWFnZQotICAgICogYmxvY2tzLiBOb3JtYWxseSB0aGlzIGlzIHRo ZSBudW1iZXIgb2YgYnl0ZXMgYmV0d2VlbiB0aGUgZmlyc3QKLSAgICAqIHBpeGVsIG9mIHR3byBh ZGphY2VudCBzY2FubGluZXMuIFdpdGggY29tcHJlc3NlZCB0ZXh0dXJlcywKLSAgICAqIGhvd2V2 ZXIsIHRoaXMgbWF5IHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIGJ5dGVzIGJldHdlZW4KLSAgICAq IGNvbXByZXNzaW9uIGJsb2NrcyByYXRoZXIgdGhhbiBiZXR3ZWVuIHJvd3Mgb2YgcGl4ZWxzLgot ICAgICoKLSAgICAqIFhYWDogQ29tcHJlc3NlZCB0ZXh0dXJlcyBjdXJyZW50bHkgbXVzdCBiZSB0 aWdodGx5IHBhY2tlZCBpbiBndWVzdCBtZW1vcnkuCi0gICAgKgotICAgICogSWYgdGhlIGltYWdl IGlzIDEtZGltZW5zaW9uYWwsIHBpdGNoIGlzIGlnbm9yZWQuCi0gICAgKgotICAgICogSWYgJ3Bp dGNoJyBpcyB6ZXJvLCB0aGUgU1ZHQTNEIGRldmljZSBjYWxjdWxhdGVzIGEgcGl0Y2ggdmFsdWUK LSAgICAqIGFzc3VtaW5nIGVhY2ggcm93IG9mIGJsb2NrcyBpcyB0aWdodGx5IHBhY2tlZC4KLSAg ICAqLwotICAgdWludDMyIHBpdGNoOwotfSBTVkdBR3Vlc3RJbWFnZTsKLQotLyoKLSAqIFNWR0FD b2xvckJHUlggLS0KLSAqCi0gKiAgICBBIDI0LWJpdCBjb2xvciBmb3JtYXQgKEJHUlgpLCB3aGlj aCBkb2VzIG5vdCBkZXBlbmQgb24gdGhlCi0gKiAgICBmb3JtYXQgb2YgdGhlIGxlZ2FjeSBndWVz dCBmcmFtZWJ1ZmZlciAoR0ZCKSBvciB0aGUgY3VycmVudAotICogICAgR01SRkIgc3RhdGUuCi0g Ki8KLQotdHlwZWRlZgotc3RydWN0IFNWR0FDb2xvckJHUlggewotICAgdW5pb24gewotICAgICAg c3RydWN0IHsKLSAgICAgICAgIHVpbnQzMiBiIDogODsKLSAgICAgICAgIHVpbnQzMiBnIDogODsK LSAgICAgICAgIHVpbnQzMiByIDogODsKLSAgICAgICAgIHVpbnQzMiB4IDogODsgIC8qIFVudXNl ZCAqLwotICAgICAgfTsKLQotICAgICAgdWludDMyIHZhbHVlOwotICAgfTsKLX0gU1ZHQUNvbG9y QkdSWDsKLQotCi0vKgotICogU1ZHQVNpZ25lZFJlY3QgLS0KLSAqIFNWR0FTaWduZWRQb2ludCAt LQotICoKLSAqICAgIFNpZ25lZCByZWN0YW5nbGUgYW5kIHBvaW50IHByaW1pdGl2ZXMuIFRoZXNl IGFyZSB1c2VkIGJ5IHRoZSBuZXcKLSAqICAgIDJEIHByaW1pdGl2ZXMgZm9yIGRyYXdpbmcgdG8g U2NyZWVuIE9iamVjdHMsIHdoaWNoIGNhbiBvY2N1cHkgYQotICogICAgc2lnbmVkIHZpcnR1YWwg Y29vcmRpbmF0ZSBzcGFjZS4KLSAqCi0gKiAgICBTVkdBU2lnbmVkUmVjdCBzcGVjaWZpZXMgYSBo YWxmLW9wZW4gaW50ZXJ2YWw6IHRoZSAobGVmdCwgdG9wKQotICogICAgcGl4ZWwgaXMgcGFydCBv ZiB0aGUgcmVjdGFuZ2xlLCBidXQgdGhlIChyaWdodCwgYm90dG9tKSBwaXhlbCBpcwotICogICAg bm90LgotICovCi0KLXR5cGVkZWYKLXN0cnVjdCBTVkdBU2lnbmVkUmVjdCB7Ci0gICBpbnQzMiAg bGVmdDsKLSAgIGludDMyICB0b3A7Ci0gICBpbnQzMiAgcmlnaHQ7Ci0gICBpbnQzMiAgYm90dG9t OwotfSBTVkdBU2lnbmVkUmVjdDsKLQotdHlwZWRlZgotc3RydWN0IFNWR0FTaWduZWRQb2ludCB7 Ci0gICBpbnQzMiAgeDsKLSAgIGludDMyICB5OwotfSBTVkdBU2lnbmVkUG9pbnQ7Ci0KLQotLyoK LSAqICBDYXBhYmlsaXRpZXMKLSAqCi0gKiAgTm90ZSB0aGUgaG9sZXMgaW4gdGhlIGJpdGZpZWxk LiBNaXNzaW5nIGJpdHMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQsCi0gKiAgYW5kIG11c3Qgbm90IGJl IHJldXNlZC4gVGhvc2UgY2FwYWJpbGl0aWVzIHdpbGwgbmV2ZXIgYmUgcmVwb3J0ZWQKLSAqICBi eSBuZXcgdmVyc2lvbnMgb2YgdGhlIFNWR0EgZGV2aWNlLgotICoKLSAqIFNWR0FfQ0FQX0dNUjIg LS0KLSAqICAgIFByb3ZpZGVzIGFzeW5jaHJvbm91cyBjb21tYW5kcyB0byBkZWZpbmUgYW5kIHJl bWFwIGd1ZXN0IG1lbW9yeQotICogICAgcmVnaW9ucy4gIEFkZHMgZGV2aWNlIHJlZ2lzdGVycyBT VkdBX1JFR19HTVJTX01BWF9QQUdFUyBhbmQKLSAqICAgIFNWR0FfUkVHX01FTU9SWV9TSVpFLgot ICoKLSAqIFNWR0FfQ0FQX1NDUkVFTl9PQkpFQ1RfMiAtLQotICogICAgQWxsb3cgc2NyZWVuIG9i amVjdCBzdXBwb3J0LCBhbmQgcmVxdWlyZSBiYWNraW5nIHN0b3JlcyBmcm9tIHRoZQotICogICAg Z3Vlc3QgZm9yIGVhY2ggc2NyZWVuIG9iamVjdC4KLSAqLwotCi0jZGVmaW5lIFNWR0FfQ0FQX05P TkUgICAgICAgICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIFNWR0FfQ0FQX1JFQ1RfQ09QWSAg ICAgICAgICAweDAwMDAwMDAyCi0jZGVmaW5lIFNWR0FfQ0FQX0NVUlNPUiAgICAgICAgICAgICAw eDAwMDAwMDIwCi0jZGVmaW5lIFNWR0FfQ0FQX0NVUlNPUl9CWVBBU1MgICAgICAweDAwMDAwMDQw ICAgLyogTGVnYWN5IChVc2UgQ3Vyc29yIEJ5cGFzcyAzIGluc3RlYWQpICovCi0jZGVmaW5lIFNW R0FfQ0FQX0NVUlNPUl9CWVBBU1NfMiAgICAweDAwMDAwMDgwICAgLyogTGVnYWN5IChVc2UgQ3Vy c29yIEJ5cGFzcyAzIGluc3RlYWQpICovCi0jZGVmaW5lIFNWR0FfQ0FQXzhCSVRfRU1VTEFUSU9O ICAgICAweDAwMDAwMTAwCi0jZGVmaW5lIFNWR0FfQ0FQX0FMUEhBX0NVUlNPUiAgICAgICAweDAw MDAwMjAwCi0jZGVmaW5lIFNWR0FfQ0FQXzNEICAgICAgICAgICAgICAgICAweDAwMDA0MDAwCi0j ZGVmaW5lIFNWR0FfQ0FQX0VYVEVOREVEX0ZJRk8gICAgICAweDAwMDA4MDAwCi0jZGVmaW5lIFNW R0FfQ0FQX01VTFRJTU9OICAgICAgICAgICAweDAwMDEwMDAwICAgLyogTGVnYWN5IG11bHRpLW1v bml0b3Igc3VwcG9ydCAqLwotI2RlZmluZSBTVkdBX0NBUF9QSVRDSExPQ0sgICAgICAgICAgMHgw MDAyMDAwMAotI2RlZmluZSBTVkdBX0NBUF9JUlFNQVNLICAgICAgICAgICAgMHgwMDA0MDAwMAot I2RlZmluZSBTVkdBX0NBUF9ESVNQTEFZX1RPUE9MT0dZICAgMHgwMDA4MDAwMCAgIC8qIExlZ2Fj eSBtdWx0aS1tb25pdG9yIHN1cHBvcnQgKi8KLSNkZWZpbmUgU1ZHQV9DQVBfR01SICAgICAgICAg ICAgICAgIDB4MDAxMDAwMDAKLSNkZWZpbmUgU1ZHQV9DQVBfVFJBQ0VTICAgICAgICAgICAgIDB4 MDAyMDAwMDAKLSNkZWZpbmUgU1ZHQV9DQVBfR01SMiAgICAgICAgICAgICAgIDB4MDA0MDAwMDAK LSNkZWZpbmUgU1ZHQV9DQVBfU0NSRUVOX09CSkVDVF8yICAgIDB4MDA4MDAwMDAKLSNkZWZpbmUg U1ZHQV9DQVBfQ09NTUFORF9CVUZGRVJTICAgIDB4MDEwMDAwMDAKLSNkZWZpbmUgU1ZHQV9DQVBf REVBRDEgICAgICAgICAgICAgIDB4MDIwMDAwMDAKLSNkZWZpbmUgU1ZHQV9DQVBfQ01EX0JVRkZF UlNfMiAgICAgIDB4MDQwMDAwMDAKLSNkZWZpbmUgU1ZHQV9DQVBfR0JPQkpFQ1RTICAgICAgICAg IDB4MDgwMDAwMDAKLSNkZWZpbmUgU1ZHQV9DQVBfQ01EX0JVRkZFUlNfMyAgICAgIDB4MTAwMDAw MDAKLQotLyoKLSAqIEZJRk8gcmVnaXN0ZXIgaW5kaWNlcy4KLSAqCi0gKiBUaGUgRklGTyBpcyBh IGNodW5rIG9mIGRldmljZSBtZW1vcnkgbWFwcGVkIGludG8gZ3Vlc3QgcGh5c21lbS4gIEl0Ci0g KiBpcyBhbHdheXMgdHJlYXRlZCBhcyAzMi1iaXQgd29yZHMuCi0gKgotICogVGhlIGd1ZXN0IGRy aXZlciBnZXRzIHRvIGRlY2lkZSBob3cgdG8gcGFydGl0aW9uIGl0IGJldHdlZW4KLSAqIC0gRklG TyByZWdpc3RlcnMgKHRoZXJlIGFyZSBhbHdheXMgYXQgbGVhc3QgNCwgc3BlY2lmeWluZyB3aGVy ZSB0aGUKLSAqICAgZm9sbG93aW5nIGRhdGEgYXJlYSBpcyBhbmQgaG93IG11Y2ggZGF0YSBpdCBj b250YWluczsgdGhlcmUgbWF5IGJlCi0gKiAgIG1vcmUgcmVnaXN0ZXJzIGZvbGxvd2luZyB0aGVz ZSwgZGVwZW5kaW5nIG9uIHRoZSBGSUZPIHByb3RvY29sCi0gKiAgIHZlcnNpb24gaW4gdXNlKQot ICogLSBGSUZPIGRhdGEsIHdyaXR0ZW4gYnkgdGhlIGd1ZXN0IGFuZCBzbHVycGVkIG91dCBieSB0 aGUgVk1YLgotICogVGhlc2UgaW5kaWNlcyBhcmUgMzItYml0IHdvcmQgb2Zmc2V0cyBpbnRvIHRo ZSBGSUZPLgotICovCi0KLWVudW0gewotICAgLyoKLSAgICAqIEJsb2NrIDEgKGJhc2ljIHJlZ2lz dGVycyk6IFRoZSBvcmlnaW5hbGx5IGRlZmluZWQgRklGTyByZWdpc3RlcnMuCi0gICAgKiBUaGVz ZSBleGlzdCBhbmQgYXJlIHZhbGlkIGZvciBhbGwgdmVyc2lvbnMgb2YgdGhlIEZJRk8gcHJvdG9j b2wuCi0gICAgKi8KLQotICAgU1ZHQV9GSUZPX01JTiA9IDAsCi0gICBTVkdBX0ZJRk9fTUFYLCAg ICAgICAvKiBUaGUgZGlzdGFuY2UgZnJvbSBNSU4gdG8gTUFYIG11c3QgYmUgYXQgbGVhc3QgMTBL ICovCi0gICBTVkdBX0ZJRk9fTkVYVF9DTUQsCi0gICBTVkdBX0ZJRk9fU1RPUCwKLQotICAgLyoK LSAgICAqIEJsb2NrIDIgKGV4dGVuZGVkIHJlZ2lzdGVycyk6IE1hbmRhdG9yeSByZWdpc3RlcnMg Zm9yIHRoZSBleHRlbmRlZAotICAgICogRklGTy4gIFRoZXNlIGV4aXN0IGlmIHRoZSBTVkdBIGNh cHMgcmVnaXN0ZXIgaW5jbHVkZXMKLSAgICAqIFNWR0FfQ0FQX0VYVEVOREVEX0ZJRk87IHNvbWUg b2YgdGhlbSBhcmUgdmFsaWQgb25seSBpZiB0aGVpcgotICAgICogYXNzb2NpYXRlZCBjYXBhYmls aXR5IGJpdCBpcyBlbmFibGVkLgotICAgICoKLSAgICAqIE5vdGUgdGhhdCB3aGVuIG9yaWdpbmFs bHkgZGVmaW5lZCwgU1ZHQV9DQVBfRVhURU5ERURfRklGTyBpbXBsaWVkCi0gICAgKiBzdXBwb3J0 IG9ubHkgZm9yIChGSUZPIHJlZ2lzdGVycykgQ0FQQUJJTElUSUVTLCBGTEFHUywgYW5kIEZFTkNF LgotICAgICogVGhpcyBtZWFucyB0aGF0IHRoZSBndWVzdCBoYXMgdG8gdGVzdCBpbmRpdmlkdWFs bHkgKGluIG1vc3QgY2FzZXMKLSAgICAqIHVzaW5nIEZJRk8gY2FwcykgZm9yIHRoZSBwcmVzZW5j ZSBvZiByZWdpc3RlcnMgYWZ0ZXIgdGhpczsgdGhlIFZNWAotICAgICogY2FuIGRlZmluZSAiZXh0 ZW5kZWQgRklGTyIgdG8gbWVhbiB3aGF0ZXZlciBpdCB3YW50cywgYW5kIGN1cnJlbnRseQotICAg ICogd29uJ3QgZW5hYmxlIGl0IHVubGVzcyB0aGVyZSdzIHJvb20gZm9yIHRoYXQgc2V0IGFuZCBt dWNoIG1vcmUuCi0gICAgKi8KLQotICAgU1ZHQV9GSUZPX0NBUEFCSUxJVElFUyA9IDQsCi0gICBT VkdBX0ZJRk9fRkxBR1MsCi0gICAvKiBWYWxpZCB3aXRoIFNWR0FfRklGT19DQVBfRkVOQ0U6ICov Ci0gICBTVkdBX0ZJRk9fRkVOQ0UsCi0KLSAgIC8qCi0gICAgKiBCbG9jayAzYSAob3B0aW9uYWwg ZXh0ZW5kZWQgcmVnaXN0ZXJzKTogQWRkaXRpb25hbCByZWdpc3RlcnMgZm9yIHRoZQotICAgICog ZXh0ZW5kZWQgRklGTywgd2hvc2UgcHJlc2VuY2UgaXNuJ3QgYWN0dWFsbHkgaW1wbGllZCBieQot ICAgICogU1ZHQV9DQVBfRVhURU5ERURfRklGTzsgdGhlc2UgZXhpc3QgaWYgU1ZHQV9GSUZPX01J TiBpcyBoaWdoIGVub3VnaCB0bwotICAgICogbGVhdmUgcm9vbSBmb3IgdGhlbS4KLSAgICAqCi0g ICAgKiBUaGVzZSBpbiBibG9jayAzYSwgdGhlIFZNWCBjdXJyZW50bHkgY29uc2lkZXJzIG1hbmRh dG9yeSBmb3IgdGhlCi0gICAgKiBleHRlbmRlZCBGSUZPLgotICAgICovCi0KLSAgIC8qIFZhbGlk IGlmIGV4aXN0cyAoaS5lLiBpZiBleHRlbmRlZCBGSUZPIGVuYWJsZWQpOiAqLwotICAgU1ZHQV9G SUZPXzNEX0hXVkVSU0lPTiwgICAgICAgLyogU2VlIFNWR0EzZEhhcmR3YXJlVmVyc2lvbiBpbiBz dmdhM2RfcmVnLmggKi8KLSAgIC8qIFZhbGlkIHdpdGggU1ZHQV9GSUZPX0NBUF9QSVRDSExPQ0s6 ICovCi0gICBTVkdBX0ZJRk9fUElUQ0hMT0NLLAotCi0gICAvKiBWYWxpZCB3aXRoIFNWR0FfRklG T19DQVBfQ1VSU09SX0JZUEFTU18zOiAqLwotICAgU1ZHQV9GSUZPX0NVUlNPUl9PTiwgICAgICAg ICAgLyogQ3Vyc29yIGJ5cGFzcyAzIHNob3cvaGlkZSByZWdpc3RlciAqLwotICAgU1ZHQV9GSUZP X0NVUlNPUl9YLCAgICAgICAgICAgLyogQ3Vyc29yIGJ5cGFzcyAzIHggcmVnaXN0ZXIgKi8KLSAg IFNWR0FfRklGT19DVVJTT1JfWSwgICAgICAgICAgIC8qIEN1cnNvciBieXBhc3MgMyB5IHJlZ2lz dGVyICovCi0gICBTVkdBX0ZJRk9fQ1VSU09SX0NPVU5ULCAgICAgICAvKiBJbmNyZW1lbnRlZCB3 aGVuIGFueSBvZiB0aGUgb3RoZXIgMyBjaGFuZ2UgKi8KLSAgIFNWR0FfRklGT19DVVJTT1JfTEFT VF9VUERBVEVELC8qIExhc3QgdGltZSB0aGUgaG9zdCB1cGRhdGVkIHRoZSBjdXJzb3IgKi8KLQot ICAgLyogVmFsaWQgd2l0aCBTVkdBX0ZJRk9fQ0FQX1JFU0VSVkU6ICovCi0gICBTVkdBX0ZJRk9f UkVTRVJWRUQsICAgICAgICAgICAvKiBCeXRlcyBwYXN0IE5FWFRfQ01EIHdpdGggcmVhbCBjb250 ZW50cyAqLwotCi0gICAvKgotICAgICogVmFsaWQgd2l0aCBTVkdBX0ZJRk9fQ0FQX1NDUkVFTl9P QkpFQ1Qgb3IgU1ZHQV9GSUZPX0NBUF9TQ1JFRU5fT0JKRUNUXzI6Ci0gICAgKgotICAgICogQnkg ZGVmYXVsdCB0aGlzIGlzIFNWR0FfSURfSU5WQUxJRCwgdG8gaW5kaWNhdGUgdGhhdCB0aGUgY3Vy c29yCi0gICAgKiBjb29yZGluYXRlcyBhcmUgc3BlY2lmaWVkIHJlbGF0aXZlIHRvIHRoZSB2aXJ0 dWFsIHJvb3QuIElmIHRoaXMKLSAgICAqIGlzIHNldCB0byBhIHNwZWNpZmljIHNjcmVlbiBJRCwg Y3Vyc29yIHBvc2l0aW9uIGlzIHJlaW50ZXJwcmV0ZWQKLSAgICAqIGFzIGEgc2lnbmVkIG9mZnNl dCByZWxhdGl2ZSB0byB0aGF0IHNjcmVlbidzIG9yaWdpbi4KLSAgICAqLwotICAgU1ZHQV9GSUZP X0NVUlNPUl9TQ1JFRU5fSUQsCi0KLSAgIC8qCi0gICAgKiBWYWxpZCB3aXRoIFNWR0FfRklGT19D QVBfREVBRAotICAgICoKLSAgICAqIEFuIGFyYml0cmFyeSB2YWx1ZSB3cml0dGVuIGJ5IHRoZSBo b3N0LCBkcml2ZXJzIHNob3VsZCBub3QgdXNlIGl0LgotICAgICovCi0gICBTVkdBX0ZJRk9fREVB RCwKLQotICAgLyoKLSAgICAqIFZhbGlkIHdpdGggU1ZHQV9GSUZPX0NBUF8zRF9IV1ZFUlNJT05f UkVWSVNFRDoKLSAgICAqCi0gICAgKiBDb250YWlucyAzRCBIV1ZFUlNJT04gKHNlZSBTVkdBM2RI YXJkd2FyZVZlcnNpb24gaW4gc3ZnYTNkX3JlZy5oKQotICAgICogb24gcGxhdGZvcm1zIHRoYXQg Y2FuIGVuZm9yY2UgZ3JhcGhpY3MgcmVzb3VyY2UgbGltaXRzLgotICAgICovCi0gICBTVkdBX0ZJ Rk9fM0RfSFdWRVJTSU9OX1JFVklTRUQsCi0KLSAgIC8qCi0gICAgKiBYWFg6IFRoZSBnYXAgaGVy ZSwgdXAgdW50aWwgU1ZHQV9GSUZPXzNEX0NBUFMsIGNhbiBiZSB1c2VkIGZvciBuZXcKLSAgICAq IHJlZ2lzdGVycywgYnV0IHRoaXMgbXVzdCBiZSBkb25lIGNhcmVmdWxseSBhbmQgd2l0aCBqdWRp Y2lvdXMgdXNlIG9mCi0gICAgKiBjYXBhYmlsaXR5IGJpdHMsIHNpbmNlIGNvbXBhcmlzb25zIGJh c2VkIG9uIFNWR0FfRklGT19NSU4gYXJlbid0Ci0gICAgKiBlbm91Z2ggdG8gdGVsbCB5b3Ugd2hl dGhlciB0aGUgcmVnaXN0ZXIgZXhpc3RzOiB3ZSd2ZSBzaGlwcGVkIGRyaXZlcnMKLSAgICAqIGFu ZCBwcm9kdWN0cyB0aGF0IHVzZWQgU1ZHQV9GSUZPXzNEX0NBUFMgYnV0IGRpZG4ndCBrbm93IGFi b3V0IHNvbWUgb2YKLSAgICAqIHRoZSBlYXJsaWVyIG9uZXMuICBUaGUgYWN0dWFsIG9yZGVyIG9m IGludHJvZHVjdGlvbiB3YXM6Ci0gICAgKiAtIFBJVENITE9DSwotICAgICogLSAzRF9DQVBTCi0g ICAgKiAtIENVUlNPUl8qIChjdXJzb3IgYnlwYXNzIDMpCi0gICAgKiAtIFJFU0VSVkVECi0gICAg KiBTbywgY29kZSB0aGF0IHdhbnRzIHRvIGtub3cgd2hldGhlciBpdCBjYW4gdXNlIGFueSBvZiB0 aGUKLSAgICAqIGFmb3JlbWVudGlvbmVkIHJlZ2lzdGVycywgb3IgYW55dGhpbmcgZWxzZSBhZGRl ZCBhZnRlciBQSVRDSExPQ0sgYW5kCi0gICAgKiBiZWZvcmUgM0RfQ0FQUywgbmVlZHMgdG8gcmVh c29uIGFib3V0IHNvbWV0aGluZyBvdGhlciB0aGFuCi0gICAgKiBTVkdBX0ZJRk9fTUlOLgotICAg ICovCi0KLSAgIC8qCi0gICAgKiAzRCBjYXBzIGJsb2NrIHNwYWNlOyB2YWxpZCB3aXRoIDNEIGhh cmR3YXJlIHZlcnNpb24gPj0KLSAgICAqIFNWR0EzRF9IV1ZFUlNJT05fV1M2X0IxLgotICAgICov Ci0gICBTVkdBX0ZJRk9fM0RfQ0FQUyAgICAgID0gMzIsCi0gICBTVkdBX0ZJRk9fM0RfQ0FQU19M QVNUID0gMzIgKyAyNTUsCi0KLSAgIC8qCi0gICAgKiBFbmQgb2YgVk1YJ3MgY3VycmVudCBkZWZp bml0aW9uIG9mICJleHRlbmRlZC1GSUZPIHJlZ2lzdGVycyIuCi0gICAgKiBSZWdpc3RlcnMgYmVm b3JlIGhlcmUgYXJlIGFsd2F5cyBlbmFibGVkL2Rpc2FibGVkIGFzIGEgYmxvY2s7IGVpdGhlcgot ICAgICogdGhlIGV4dGVuZGVkIEZJRk8gaXMgZW5hYmxlZCBhbmQgaW5jbHVkZXMgYWxsIHByZWNl ZGluZyByZWdpc3RlcnMsIG9yCi0gICAgKiBpdCdzIGRpc2FibGVkIGVudGlyZWx5LgotICAgICoK LSAgICAqIEJsb2NrIDNiICh0cnVseSBvcHRpb25hbCBleHRlbmRlZCByZWdpc3RlcnMpOiBBZGRp dGlvbmFsIHJlZ2lzdGVycyBmb3IKLSAgICAqIHRoZSBleHRlbmRlZCBGSUZPLCB3aGljaCB0aGUg Vk1YIGFscmVhZHkga25vd3MgaG93IHRvIGVuYWJsZSBhbmQKLSAgICAqIGRpc2FibGUgd2l0aCBj b3JyZWN0IGdyYW51bGFyaXR5LgotICAgICoKLSAgICAqIFJlZ2lzdGVycyBhZnRlciBoZXJlIGV4 aXN0IGlmIGFuZCBvbmx5IGlmIHRoZSBndWVzdCBTVkdBIGRyaXZlcgotICAgICogc2V0cyBTVkdB X0ZJRk9fTUlOIGhpZ2ggZW5vdWdoIHRvIGxlYXZlIHJvb20gZm9yIHRoZW0uCi0gICAgKi8KLQot ICAgLyogVmFsaWQgaWYgcmVnaXN0ZXIgZXhpc3RzOiAqLwotICAgU1ZHQV9GSUZPX0dVRVNUXzNE X0hXVkVSU0lPTiwgLyogR3Vlc3QgZHJpdmVyJ3MgM0QgdmVyc2lvbiAqLwotICAgU1ZHQV9GSUZP X0ZFTkNFX0dPQUwsICAgICAgICAgLyogTWF0Y2hpbmcgdGFyZ2V0IGZvciBTVkdBX0lSUUZMQUdf RkVOQ0VfR09BTCAqLwotICAgU1ZHQV9GSUZPX0JVU1ksICAgICAgICAgICAgICAgLyogU2VlICJG SUZPIFN5bmNocm9uaXphdGlvbiBSZWdpc3RlcnMiICovCi0KLSAgIC8qCi0gICAgKiBBbHdheXMg a2VlcCB0aGlzIGxhc3QuICBUaGlzIGRlZmluZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mCi0gICAg KiByZWdpc3RlcnMgd2Uga25vdyBhYm91dC4gIEF0IHBvd2VyLW9uLCB0aGlzIHZhbHVlIGlzIHBs YWNlZCBpbgotICAgICogdGhlIFNWR0FfUkVHX01FTV9SRUdTIHJlZ2lzdGVyLCBhbmQgd2UgZXhw ZWN0IHRoZSBndWVzdCBkcml2ZXIKLSAgICAqIHRvIGFsbG9jYXRlIHRoaXMgbXVjaCBzcGFjZSBp biBGSUZPIG1lbW9yeSBmb3IgcmVnaXN0ZXJzLgotICAgICovCi0gICAgU1ZHQV9GSUZPX05VTV9S RUdTCi19OwotCi0KLS8qCi0gKiBEZWZpbml0aW9uIG9mIHJlZ2lzdGVycyBpbmNsdWRlZCBpbiBl eHRlbmRlZCBGSUZPIHN1cHBvcnQuCi0gKgotICogVGhlIGd1ZXN0IFNWR0EgZHJpdmVyIGdldHMg dG8gYWxsb2NhdGUgdGhlIEZJRk8gYmV0d2VlbiByZWdpc3RlcnMKLSAqIGFuZCBkYXRhLiAgSXQg bXVzdCBhbHdheXMgYWxsb2NhdGUgYXQgbGVhc3QgNCByZWdpc3RlcnMsIGJ1dCBvbGQKLSAqIGRy aXZlcnMgc3RvcHBlZCB0aGVyZS4KLSAqCi0gKiBUaGUgVk1YIHdpbGwgZW5hYmxlIGV4dGVuZGVk IEZJRk8gc3VwcG9ydCBpZiBhbmQgb25seSBpZiB0aGUgZ3Vlc3QKLSAqIGxlZnQgZW5vdWdoIHJv b20gZm9yIGFsbCByZWdpc3RlcnMgZGVmaW5lZCBhcyBwYXJ0IG9mIHRoZSBtYW5kYXRvcnkKLSAq IHNldCBmb3IgdGhlIGV4dGVuZGVkIEZJRk8uCi0gKgotICogTm90ZSB0aGF0IHRoZSBndWVzdCBk cml2ZXJzIHR5cGljYWxseSBhbGxvY2F0ZSB0aGUgRklGTyBvbmx5IGF0Ci0gKiBpbml0aWFsaXph dGlvbiB0aW1lLCBub3QgYXQgbW9kZSBzd2l0Y2hlcywgc28gaXQncyBsaWtlbHkgdGhhdCB0aGUK LSAqIG51bWJlciBvZiBGSUZPIHJlZ2lzdGVycyB3b24ndCBjaGFuZ2Ugd2l0aG91dCBhIHJlYm9v dC4KLSAqCi0gKiBBbGwgcmVnaXN0ZXJzIGxlc3MgdGhhbiB0aGlzIHZhbHVlIGFyZSBndWFyYW50 ZWVkIHRvIGJlIHByZXNlbnQgaWYKLSAqIHN2Z2FVc2VyLT5maWZvLmV4dGVuZGVkIGlzIHNldC4g QW55IGxhdGVyIHJlZ2lzdGVycyBtdXN0IGJlIHRlc3RlZAotICogaW5kaXZpZHVhbGx5IGZvciBj b21wYXRpYmlsaXR5IGF0IGVhY2ggdXNlIChpbiB0aGUgVk1YKS4KLSAqCi0gKiBUaGlzIHZhbHVl IGlzIHVzZWQgb25seSBieSB0aGUgVk1YLCBzbyBpdCBjYW4gY2hhbmdlIHdpdGhvdXQKLSAqIGFm ZmVjdGluZyBkcml2ZXIgY29tcGF0aWJpbGl0eTsga2VlcCBpdCB0aGF0IHdheT8KLSAqLwotI2Rl ZmluZSBTVkdBX0ZJRk9fRVhURU5ERURfTUFOREFUT1JZX1JFR1MgIChTVkdBX0ZJRk9fM0RfQ0FQ U19MQVNUICsgMSkKLQotCi0vKgotICogRklGTyBTeW5jaHJvbml6YXRpb24gUmVnaXN0ZXJzCi0g KgotICogIFRoaXMgZXhwbGFpbnMgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZSB2YXJpb3Vz IEZJRk8KLSAqICBzeW5jLXJlbGF0ZWQgcmVnaXN0ZXJzIGluIElPU3BhY2UgYW5kIGluIEZJRk8g c3BhY2UuCi0gKgotICogIFNWR0FfUkVHX1NZTkMgLS0KLSAqCi0gKiAgICAgICBUaGUgU1lOQyBy ZWdpc3RlciBjYW4gYmUgdXNlZCBpbiB0d28gZGlmZmVyZW50IHdheXMgYnkgdGhlIGd1ZXN0Ogot ICoKLSAqICAgICAgICAgMS4gSWYgdGhlIGd1ZXN0IHdpc2hlcyB0byBmdWxseSBzeW5jIChkcmFp bikgdGhlIEZJRk8sCi0gKiAgICAgICAgICAgIGl0IHdpbGwgd3JpdGUgb25jZSB0byBTWU5DIHRo ZW4gcG9sbCBvbiB0aGUgQlVTWQotICogICAgICAgICAgICByZWdpc3Rlci4gVGhlIEZJRk8gaXMg c3luYydlZCBvbmNlIEJVU1kgaXMgemVyby4KLSAqCi0gKiAgICAgICAgIDIuIElmIHRoZSBndWVz dCB3YW50cyB0byBhc3luY2hyb25vdXNseSB3YWtlIHVwIHRoZSBob3N0LAotICogICAgICAgICAg ICBpdCB3aWxsIHdyaXRlIG9uY2UgdG8gU1lOQyB3aXRob3V0IHBvbGxpbmcgb24gQlVTWS4KLSAq ICAgICAgICAgICAgSWRlYWxseSBpdCB3aWxsIGRvIHRoaXMgYWZ0ZXIgc29tZSBuZXcgY29tbWFu ZHMgaGF2ZQotICogICAgICAgICAgICBiZWVuIHBsYWNlZCBpbiB0aGUgRklGTywgYW5kIGFmdGVy IHJlYWRpbmcgYSB6ZXJvCi0gKiAgICAgICAgICAgIGZyb20gU1ZHQV9GSUZPX0JVU1kuCi0gKgot ICogICAgICAgKDEpIGlzIHRoZSBvcmlnaW5hbCBiZWhhdmlvdXIgdGhhdCBTWU5DIHdhcyBkZXNp Z25lZCB0bwotICogICAgICAgc3VwcG9ydC4gIE9yaWdpbmFsbHksIGEgd3JpdGUgdG8gU1lOQyB3 b3VsZCBpbXBsaWNpdGx5Ci0gKiAgICAgICB0cmlnZ2VyIGEgcmVhZCBmcm9tIEJVU1kuIFRoaXMg Y2F1c2VzIHVzIHRvIHN5bmNocm9ub3VzbHkKLSAqICAgICAgIHByb2Nlc3MgdGhlIEZJRk8uCi0g KgotICogICAgICAgVGhpcyBiZWhhdmlvdXIgaGFzIHNpbmNlIGJlZW4gY2hhbmdlZCBzbyB0aGF0 IHdyaXRpbmcgU1lOQwotICogICAgICAgd2lsbCAqbm90KiBpbXBsaWNpdGx5IGNhdXNlIGEgcmVh ZCBmcm9tIEJVU1kuIEluc3RlYWQsIGl0Ci0gKiAgICAgICBtYWtlcyBhIGNoYW5uZWwgY2FsbCB3 aGljaCBhc3luY2hyb25vdXNseSB3YWtlcyB1cCB0aGUgTUtTCi0gKiAgICAgICB0aHJlYWQuCi0g KgotICogICAgICAgTmV3IGd1ZXN0cyBjYW4gdXNlIHRoaXMgbmV3IGJlaGF2aW91ciB0byBpbXBs ZW1lbnQgKDIpCi0gKiAgICAgICBlZmZpY2llbnRseS4gVGhpcyBsZXRzIGd1ZXN0cyBnZXQgdGhl IGhvc3QncyBhdHRlbnRpb24KLSAqICAgICAgIHdpdGhvdXQgd2FpdGluZyBmb3IgdGhlIE1LUyB0 byBwb2xsLCB3aGljaCBnaXZlcyB1cyBtdWNoCi0gKiAgICAgICBiZXR0ZXIgQ1BVIHV0aWxpemF0 aW9uIG9uIFNNUCBob3N0cyBhbmQgb24gVVAgaG9zdHMgd2hpbGUKLSAqICAgICAgIHdlJ3JlIGJs b2NrZWQgb24gdGhlIGhvc3QgR1BVLgotICoKLSAqICAgICAgIE9sZCBndWVzdHMgc2hvdWxkbid0 IG5vdGljZSB0aGUgYmVoYXZpb3VyIGNoYW5nZS4gU1lOQyB3YXMKLSAqICAgICAgIG5ldmVyIGd1 YXJhbnRlZWQgdG8gcHJvY2VzcyB0aGUgZW50aXJlIEZJRk8sIHNpbmNlIGl0IHdhcwotICogICAg ICAgYm91bmRlZCB0byBhIHBhcnRpY3VsYXIgbnVtYmVyIG9mIENQVSBjeWNsZXMuIE9sZCBndWVz dHMgd2lsbAotICogICAgICAgc3RpbGwgbG9vcCBvbiB0aGUgQlVTWSByZWdpc3RlciB1bnRpbCB0 aGUgRklGTyBpcyBlbXB0eS4KLSAqCi0gKiAgICAgICBXcml0aW5nIHRvIFNZTkMgY3VycmVudGx5 IGhhcyB0aGUgZm9sbG93aW5nIHNpZGUtZWZmZWN0czoKLSAqCi0gKiAgICAgICAgIC0gU2V0cyBT VkdBX1JFR19CVVNZIHRvIFRSVUUgKGluIHRoZSBtb25pdG9yKQotICogICAgICAgICAtIEFzeW5j aHJvbm91c2x5IHdha2VzIHVwIHRoZSBNS1MgdGhyZWFkIGZvciBGSUZPIHByb2Nlc3NpbmcKLSAq ICAgICAgICAgLSBUaGUgdmFsdWUgd3JpdHRlbiB0byBTWU5DIGlzIHJlY29yZGVkIGFzIGEgInJl YXNvbiIsIGZvcgotICogICAgICAgICAgIHN0YXRzIHB1cnBvc2VzLgotICoKLSAqICAgICAgIElm IFNWR0FfRklGT19CVVNZIGlzIGF2YWlsYWJsZSwgZHJpdmVycyBhcmUgYWR2aXNlZCB0byBvbmx5 Ci0gKiAgICAgICB3cml0ZSB0byBTWU5DIGlmIFNWR0FfRklGT19CVVNZIGlzIEZBTFNFLiBEcml2 ZXJzIHNob3VsZCBzZXQKLSAqICAgICAgIFNWR0FfRklGT19CVVNZIHRvIFRSVUUgYWZ0ZXIgd3Jp dGluZyB0byBTWU5DLiBUaGUgTUtTIHdpbGwKLSAqICAgICAgIGV2ZW50dWFsbHkgc2V0IFNWR0Ff RklGT19CVVNZIG9uIGl0cyBvd24sIGJ1dCB0aGlzIGFwcHJvYWNoCi0gKiAgICAgICBsZXRzIHRo ZSBkcml2ZXIgYXZvaWQgc2VuZGluZyBtdWx0aXBsZSBhc3luY2hyb25vdXMgd2FrZXVwCi0gKiAg ICAgICBtZXNzYWdlcyB0byB0aGUgTUtTIHRocmVhZC4KLSAqCi0gKiAgU1ZHQV9SRUdfQlVTWSAt LQotICoKLSAqICAgICAgIFRoaXMgcmVnaXN0ZXIgaXMgc2V0IHRvIFRSVUUgd2hlbiBTVkdBX1JF R19TWU5DIGlzIHdyaXR0ZW4sCi0gKiAgICAgICBhbmQgaXQgcmVhZHMgYXMgRkFMU0Ugd2hlbiB0 aGUgRklGTyBoYXMgYmVlbiBjb21wbGV0ZWx5Ci0gKiAgICAgICBkcmFpbmVkLgotICoKLSAqICAg ICAgIEV2ZXJ5IHJlYWQgZnJvbSB0aGlzIHJlZ2lzdGVyIGNhdXNlcyB1cyB0byBzeW5jaHJvbm91 c2x5Ci0gKiAgICAgICBwcm9jZXNzIEZJRk8gY29tbWFuZHMuIFRoZXJlIGlzIG5vIGd1YXJhbnRl ZSBhcyB0byBob3cgbWFueQotICogICAgICAgY29tbWFuZHMgZWFjaCByZWFkIHdpbGwgcHJvY2Vz cy4KLSAqCi0gKiAgICAgICBDUFUgdGltZSBzcGVudCBwcm9jZXNzaW5nIEZJRk8gY29tbWFuZHMg d2lsbCBiZSBiaWxsZWQgdG8KLSAqICAgICAgIHRoZSBndWVzdC4KLSAqCi0gKiAgICAgICBOZXcg ZHJpdmVycyBzaG91bGQgYXZvaWQgdXNpbmcgdGhpcyByZWdpc3RlciB1bmxlc3MgdGhleQotICog ICAgICAgbmVlZCB0byBndWFyYW50ZWUgdGhhdCB0aGUgRklGTyBpcyBjb21wbGV0ZWx5IGRyYWlu ZWQuIEl0Ci0gKiAgICAgICBpcyBvdmVya2lsbCBmb3IgcGVyZm9ybWluZyBhIHN5bmMtdG8tZmVu Y2UuIE9sZGVyIGRyaXZlcnMKLSAqICAgICAgIHdpbGwgdXNlIHRoaXMgcmVnaXN0ZXIgZm9yIGFu eSB0eXBlIG9mIHN5bmNocm9uaXphdGlvbi4KLSAqCi0gKiAgU1ZHQV9GSUZPX0JVU1kgLS0KLSAq Ci0gKiAgICAgICBUaGlzIHJlZ2lzdGVyIGlzIGEgZmFzdCB3YXkgZm9yIHRoZSBndWVzdCBkcml2 ZXIgdG8gY2hlY2sKLSAqICAgICAgIHdoZXRoZXIgdGhlIEZJRk8gaXMgYWxyZWFkeSBiZWluZyBw cm9jZXNzZWQuIEl0IHJlYWRzIGFuZAotICogICAgICAgd3JpdGVzIGF0IG5vcm1hbCBSQU0gc3Bl ZWRzLCB3aXRoIG5vIG1vbml0b3IgaW50ZXJ2ZW50aW9uLgotICoKLSAqICAgICAgIElmIHRoaXMg cmVnaXN0ZXIgcmVhZHMgYXMgVFJVRSwgdGhlIGhvc3QgaXMgZ3VhcmFudGVlaW5nIHRoYXQKLSAq ICAgICAgIGFueSBuZXcgY29tbWFuZHMgd3JpdHRlbiBpbnRvIHRoZSBGSUZPIHdpbGwgYmUgbm90 aWNlZCBiZWZvcmUKLSAqICAgICAgIHRoZSBNS1MgZ29lcyBiYWNrIHRvIHNsZWVwLgotICoKLSAq ICAgICAgIElmIHRoaXMgcmVnaXN0ZXIgcmVhZHMgYXMgRkFMU0UsIG5vIHN1Y2ggZ3VhcmFudGVl IGNhbiBiZQotICogICAgICAgbWFkZS4KLSAqCi0gKiAgICAgICBUaGUgZ3Vlc3Qgc2hvdWxkIHVz ZSB0aGlzIHJlZ2lzdGVyIHRvIHF1aWNrbHkgZGV0ZXJtaW5lCi0gKiAgICAgICB3aGV0aGVyIG9y IG5vdCBpdCBuZWVkcyB0byB3YWtlIHVwIHRoZSBob3N0LiBJZiB0aGUgZ3Vlc3QKLSAqICAgICAg IGp1c3Qgd3JvdGUgYSBjb21tYW5kIG9yIGdyb3VwIG9mIGNvbW1hbmRzIHRoYXQgaXQgd291bGQg bGlrZQotICogICAgICAgdGhlIGhvc3QgdG8gYmVnaW4gcHJvY2Vzc2luZywgaXQgc2hvdWxkOgot ICoKLSAqICAgICAgICAgMS4gUmVhZCBTVkdBX0ZJRk9fQlVTWS4gSWYgaXQgcmVhZHMgYXMgVFJV RSwgbm8gZnVydGhlcgotICogICAgICAgICAgICBhY3Rpb24gaXMgbmVjZXNzYXJ5LgotICoKLSAq ICAgICAgICAgMi4gV3JpdGUgVFJVRSB0byBTVkdBX0ZJRk9fQlVTWS4gVGhpcyBpbmZvcm1zIGZ1 dHVyZSBndWVzdAotICogICAgICAgICAgICBjb2RlIHRoYXQgd2UndmUgYWxyZWFkeSBzZW50IGEg U1lOQyB0byB0aGUgaG9zdCBhbmQgd2UKLSAqICAgICAgICAgICAgZG9uJ3QgbmVlZCB0byBzZW5k IGEgZHVwbGljYXRlLgotICoKLSAqICAgICAgICAgMy4gV3JpdGUgYSByZWFzb24gdG8gU1ZHQV9S RUdfU1lOQy4gVGhpcyB3aWxsIHNlbmQgYW4KLSAqICAgICAgICAgICAgYXN5bmNocm9ub3VzIHdh a2V1cCB0byB0aGUgTUtTIHRocmVhZC4KLSAqLwotCi0KLS8qCi0gKiBGSUZPIENhcGFiaWxpdGll cwotICoKLSAqICAgICAgRmVuY2UgLS0gRmVuY2UgcmVnaXN0ZXIgYW5kIGNvbW1hbmQgYXJlIHN1 cHBvcnRlZAotICogICAgICBBY2NlbCBGcm9udCAtLSBGcm9udCBidWZmZXIgb25seSBjb21tYW5k cyBhcmUgc3VwcG9ydGVkCi0gKiAgICAgIFBpdGNoIExvY2sgLS0gUGl0Y2ggbG9jayByZWdpc3Rl ciBpcyBzdXBwb3J0ZWQKLSAqICAgICAgVmlkZW8gLS0gU1ZHQSBWaWRlbyBvdmVybGF5IHVuaXRz IGFyZSBzdXBwb3J0ZWQKLSAqICAgICAgRXNjYXBlIC0tIEVzY2FwZSBjb21tYW5kIGlzIHN1cHBv cnRlZAotICoKLSAqIFhYWDogQWRkIGxvbmdlciBkZXNjcmlwdGlvbnMgZm9yIGVhY2ggY2FwYWJp bGl0eSwgaW5jbHVkaW5nIGEgbGlzdAotICogICAgICBvZiB0aGUgbmV3IGZlYXR1cmVzIHRoYXQg ZWFjaCBjYXBhYmlsaXR5IHByb3ZpZGVzLgotICoKLSAqIFNWR0FfRklGT19DQVBfU0NSRUVOX09C SkVDVCAtLQotICoKLSAqICAgIFByb3ZpZGVzIGR5bmFtaWMgbXVsdGktc2NyZWVuIHJlbmRlcmlu ZywgZm9yIGltcHJvdmVkIFVuaXR5IGFuZAotICogICAgbXVsdGktbW9uaXRvciBtb2Rlcy4gV2l0 aCBTY3JlZW4gT2JqZWN0LCB0aGUgZ3Vlc3QgY2FuCi0gKiAgICBkeW5hbWljYWxseSBjcmVhdGUg YW5kIGRlc3Ryb3kgJ3NjcmVlbnMnLCB3aGljaCBjYW4gcmVwcmVzZW50Ci0gKiAgICBVbml0eSB3 aW5kb3dzIG9yIHZpcnR1YWwgbW9uaXRvcnMuIFNjcmVlbiBPYmplY3QgYWxzbyBwcm92aWRlcwot ICogICAgc3Ryb25nIGd1YXJhbnRlZXMgdGhhdCBETUEgb3BlcmF0aW9ucyBoYXBwZW4gb25seSB3 aGVuCi0gKiAgICBndWVzdC1pbml0aWF0ZWQuIFNjcmVlbiBPYmplY3QgZGVwcmVjYXRlcyB0aGUg QkFSMSBndWVzdAotICogICAgZnJhbWVidWZmZXIgKEdGQikgYW5kIGFsbCBjb21tYW5kcyB0aGF0 IHdvcmsgb25seSB3aXRoIHRoZSBHRkIuCi0gKgotICogICAgTmV3IHJlZ2lzdGVyczoKLSAqICAg ICAgIEZJRk9fQ1VSU09SX1NDUkVFTl9JRCwgVklERU9fREFUQV9HTVJJRCwgVklERU9fRFNUX1ND UkVFTl9JRAotICoKLSAqICAgIE5ldyAyRCBjb21tYW5kczoKLSAqICAgICAgIERFRklORV9TQ1JF RU4sIERFU1RST1lfU0NSRUVOLCBERUZJTkVfR01SRkIsIEJMSVRfR01SRkJfVE9fU0NSRUVOLAot ICogICAgICAgQkxJVF9TQ1JFRU5fVE9fR01SRkIsIEFOTk9UQVRJT05fRklMTCwgQU5OT1RBVElP Tl9DT1BZCi0gKgotICogICAgTmV3IDNEIGNvbW1hbmRzOgotICogICAgICAgQkxJVF9TVVJGQUNF X1RPX1NDUkVFTgotICoKLSAqICAgIE5ldyBndWFyYW50ZWVzOgotICoKLSAqICAgICAgIC0gVGhl IGhvc3Qgd2lsbCBub3QgcmVhZCBvciB3cml0ZSBndWVzdCBtZW1vcnksIGluY2x1ZGluZyB0aGUg R0ZCLAotICogICAgICAgICBleGNlcHQgd2hlbiBleHBsaWNpdGx5IGluaXRpYXRlZCBieSBhIERN QSBjb21tYW5kLgotICoKLSAqICAgICAgIC0gQWxsIERNQSwgaW5jbHVkaW5nIGxlZ2FjeSBETUEg bGlrZSBVUERBVEUgYW5kIFBSRVNFTlRfUkVBREJBQ0ssCi0gKiAgICAgICAgIGlzIGd1YXJhbnRl ZWQgdG8gY29tcGxldGUgYmVmb3JlIGFueSBzdWJzZXF1ZW50IEZFTkNFcy4KLSAqCi0gKiAgICAg ICAtIEFsbCBsZWdhY3kgY29tbWFuZHMgd2hpY2ggYWZmZWN0IGEgU2NyZWVuIChVUERBVEUsIFBS RVNFTlQsCi0gKiAgICAgICAgIFBSRVNFTlRfUkVBREJBQ0spIGFzIHdlbGwgYXMgbmV3IFNjcmVl biBibGl0IGNvbW1hbmRzIHdpbGwKLSAqICAgICAgICAgYWxsIGJlaGF2ZSBjb25zaXN0ZW50bHkg YXMgYmxpdHMsIGFuZCBtZW1vcnkgd2lsbCBiZSByZWFkCi0gKiAgICAgICAgIG9yIHdyaXR0ZW4g aW4gRklGTyBvcmRlci4KLSAqCi0gKiAgICAgICAgIEZvciBleGFtcGxlLCBpZiB5b3UgUFJFU0VO VCBmcm9tIG9uZSBTVkdBM0Qgc3VyZmFjZSB0byBtdWx0aXBsZQotICogICAgICAgICBwbGFjZXMg b24gdGhlIHNjcmVlbiwgdGhlIGRhdGEgY29waWVkIHdpbGwgYWx3YXlzIGJlIGZyb20gdGhlCi0g KiAgICAgICAgIFNWR0EzRCBzdXJmYWNlIGF0IHRoZSB0aW1lIHRoZSBQUkVTRU5UIHdhcyBpc3N1 ZWQgaW4gdGhlIEZJRk8uCi0gKiAgICAgICAgIFRoaXMgd2FzIG5vdCBuZWNlc3NhcmlseSB0cnVl IG9uIGRldmljZXMgd2l0aG91dCBTY3JlZW4gT2JqZWN0LgotICoKLSAqICAgICAgICAgVGhpcyBt ZWFucyB0aGF0IG9uIGRldmljZXMgdGhhdCBzdXBwb3J0IFNjcmVlbiBPYmplY3QsIHRoZQotICog ICAgICAgICBQUkVTRU5UX1JFQURCQUNLIGNvbW1hbmQgc2hvdWxkIG5vdCBiZSBuZWNlc3Nhcnkg dW5sZXNzIHlvdQotICogICAgICAgICBhY3R1YWxseSB3YW50IHRvIHJlYWQgYmFjayB0aGUgcmVz dWx0cyBvZiAzRCByZW5kZXJpbmcgaW50bwotICogICAgICAgICBzeXN0ZW0gbWVtb3J5LiAoQW5k IGZvciB0aGF0LCB0aGUgQkxJVF9TQ1JFRU5fVE9fR01SRkIKLSAqICAgICAgICAgY29tbWFuZCBw cm92aWRlcyBhIHN0cmljdCBzdXBlcnNldCBvZiBmdW5jdGlvbmFsaXR5LikKLSAqCi0gKiAgICAg ICAtIFdoZW4gYSBzY3JlZW4gaXMgcmVzaXplZCwgZWl0aGVyIHVzaW5nIFNjcmVlbiBPYmplY3Qg Y29tbWFuZHMgb3IKLSAqICAgICAgICAgbGVnYWN5IG11bHRpbW9uIHJlZ2lzdGVycywgaXRzIGNv bnRlbnRzIGFyZSBwcmVzZXJ2ZWQuCi0gKgotICogU1ZHQV9GSUZPX0NBUF9HTVIyIC0tCi0gKgot ICogICAgUHJvdmlkZXMgbmV3IGNvbW1hbmRzIHRvIGRlZmluZSBhbmQgcmVtYXAgZ3Vlc3QgbWVt b3J5IHJlZ2lvbnMgKEdNUikuCi0gKgotICogICAgTmV3IDJEIGNvbW1hbmRzOgotICogICAgICAg REVGSU5FX0dNUjIsIFJFTUFQX0dNUjIuCi0gKgotICogU1ZHQV9GSUZPX0NBUF8zRF9IV1ZFUlNJ T05fUkVWSVNFRCAtLQotICoKLSAqICAgIEluZGljYXRlcyBuZXcgcmVnaXN0ZXIgU1ZHQV9GSUZP XzNEX0hXVkVSU0lPTl9SRVZJU0VEIGV4aXN0cy4KLSAqICAgIFRoaXMgcmVnaXN0ZXIgbWF5IHJl cGxhY2UgU1ZHQV9GSUZPXzNEX0hXVkVSU0lPTiBvbiBwbGF0Zm9ybXMKLSAqICAgIHRoYXQgZW5m b3JjZSBncmFwaGljcyByZXNvdXJjZSBsaW1pdHMuICBUaGlzIGFsbG93cyB0aGUgcGxhdGZvcm0K LSAqICAgIHRvIGNsZWFyIFNWR0FfRklGT18zRF9IV1ZFUlNJT04gYW5kIGRpc2FibGUgM0QgaW4g bGVnYWN5IGd1ZXN0Ci0gKiAgICBkcml2ZXJzIHRoYXQgZG8gbm90IGxpbWl0IHRoZWlyIHJlc291 cmNlcy4KLSAqCi0gKiAgICBOb3RlIHRoaXMgaXMgYW4gYWxpYXMgdG8gU1ZHQV9GSUZPX0NBUF9H TVIyIGJlY2F1c2UgdGhlc2UgaW5kaWNhdG9ycwotICogICAgYXJlIGNvZGVwZW5kZW50IChhbmQg dGh1cyB3ZSB1c2UgYSBzaW5nbGUgY2FwYWJpbGl0eSBiaXQpLgotICoKLSAqIFNWR0FfRklGT19D QVBfU0NSRUVOX09CSkVDVF8yIC0tCi0gKgotICogICAgTW9kaWZpZXMgdGhlIERFRklORV9TQ1JF RU4gY29tbWFuZCB0byBpbmNsdWRlIGEgZ3Vlc3QgcHJvdmlkZWQKLSAqICAgIGJhY2tpbmcgc3Rv cmUgaW4gR01SIG1lbW9yeSBhbmQgdGhlIGJ5dGVzUGVyTGluZSBmb3IgdGhlIGJhY2tpbmcKLSAq ICAgIHN0b3JlLiAgVGhpcyBjYXBhYmlsaXR5IHJlcXVpcmVzIHRoZSB1c2Ugb2YgYSBiYWNraW5n IHN0b3JlIHdoZW4KLSAqICAgIGNyZWF0aW5nIHNjcmVlbiBvYmplY3RzLiAgSG93ZXZlciBpZiBT VkdBX0ZJRk9fQ0FQX1NDUkVFTl9PQkpFQ1QKLSAqICAgIGlzIHByZXNlbnQgdGhlbiBiYWNraW5n IHN0b3JlcyBhcmUgb3B0aW9uYWwuCi0gKgotICogU1ZHQV9GSUZPX0NBUF9ERUFEIC0tCi0gKgot ICogICAgRHJpdmVycyBzaG91bGQgbm90IHVzZSB0aGlzIGNhcCBiaXQuICBUaGlzIGNhcCBiaXQg Y2FuIG5vdCBiZQotICogICAgcmV1c2VkIHNpbmNlIHNvbWUgaG9zdHMgYWxyZWFkeSBleHBvc2Ug aXQuCi0gKi8KLQotI2RlZmluZSBTVkdBX0ZJRk9fQ0FQX05PTkUgICAgICAgICAgICAgICAgICAw Ci0jZGVmaW5lIFNWR0FfRklGT19DQVBfRkVOQ0UgICAgICAgICAgICAgKDE8PDApCi0jZGVmaW5l IFNWR0FfRklGT19DQVBfQUNDRUxGUk9OVCAgICAgICAgKDE8PDEpCi0jZGVmaW5lIFNWR0FfRklG T19DQVBfUElUQ0hMT0NLICAgICAgICAgKDE8PDIpCi0jZGVmaW5lIFNWR0FfRklGT19DQVBfVklE RU8gICAgICAgICAgICAgKDE8PDMpCi0jZGVmaW5lIFNWR0FfRklGT19DQVBfQ1VSU09SX0JZUEFT U18zICAgKDE8PDQpCi0jZGVmaW5lIFNWR0FfRklGT19DQVBfRVNDQVBFICAgICAgICAgICAgKDE8 PDUpCi0jZGVmaW5lIFNWR0FfRklGT19DQVBfUkVTRVJWRSAgICAgICAgICAgKDE8PDYpCi0jZGVm aW5lIFNWR0FfRklGT19DQVBfU0NSRUVOX09CSkVDVCAgICAgKDE8PDcpCi0jZGVmaW5lIFNWR0Ff RklGT19DQVBfR01SMiAgICAgICAgICAgICAgKDE8PDgpCi0jZGVmaW5lIFNWR0FfRklGT19DQVBf M0RfSFdWRVJTSU9OX1JFVklTRUQgIFNWR0FfRklGT19DQVBfR01SMgotI2RlZmluZSBTVkdBX0ZJ Rk9fQ0FQX1NDUkVFTl9PQkpFQ1RfMiAgICgxPDw5KQotI2RlZmluZSBTVkdBX0ZJRk9fQ0FQX0RF QUQgICAgICAgICAgICAgICgxPDwxMCkKLQotCi0vKgotICogRklGTyBGbGFncwotICoKLSAqICAg ICAgQWNjZWwgRnJvbnQgLS0gRHJpdmVyIHNob3VsZCB1c2UgZnJvbnQgYnVmZmVyIG9ubHkgY29t bWFuZHMKLSAqLwotCi0jZGVmaW5lIFNWR0FfRklGT19GTEFHX05PTkUgICAgICAgICAgICAgICAg IDAKLSNkZWZpbmUgU1ZHQV9GSUZPX0ZMQUdfQUNDRUxGUk9OVCAgICAgICAoMTw8MCkKLSNkZWZp bmUgU1ZHQV9GSUZPX0ZMQUdfUkVTRVJWRUQgICAgICAgICgxPDwzMSkgLyogSW50ZXJuYWwgdXNl IG9ubHkgKi8KLQotLyoKLSAqIEZJRk8gcmVzZXJ2YXRpb24gc2VudGluZWwgdmFsdWUKLSAqLwot Ci0jZGVmaW5lIFNWR0FfRklGT19SRVNFUlZFRF9VTktOT1dOICAgICAgMHhmZmZmZmZmZgotCi0K LS8qCi0gKiBWaWRlbyBvdmVybGF5IHN1cHBvcnQKLSAqLwotCi0jZGVmaW5lIFNWR0FfTlVNX09W RVJMQVlfVU5JVFMgMzIKLQotCi0vKgotICogVmlkZW8gY2FwYWJpbGl0aWVzIHRoYXQgdGhlIGd1 ZXN0IGlzIGN1cnJlbnRseSB1c2luZwotICovCi0KLSNkZWZpbmUgU1ZHQV9WSURFT19GTEFHX0NP TE9SS0VZICAgICAgICAweDAwMDEKLQotCi0vKgotICogT2Zmc2V0cyBmb3IgdGhlIHZpZGVvIG92 ZXJsYXkgcmVnaXN0ZXJzCi0gKi8KLQotZW51bSB7Ci0gICBTVkdBX1ZJREVPX0VOQUJMRUQgPSAw LAotICAgU1ZHQV9WSURFT19GTEFHUywKLSAgIFNWR0FfVklERU9fREFUQV9PRkZTRVQsCi0gICBT VkdBX1ZJREVPX0ZPUk1BVCwKLSAgIFNWR0FfVklERU9fQ09MT1JLRVksCi0gICBTVkdBX1ZJREVP X1NJWkUsICAgICAgICAgIC8qIERlcHJlY2F0ZWQgKi8KLSAgIFNWR0FfVklERU9fV0lEVEgsCi0g ICBTVkdBX1ZJREVPX0hFSUdIVCwKLSAgIFNWR0FfVklERU9fU1JDX1gsCi0gICBTVkdBX1ZJREVP X1NSQ19ZLAotICAgU1ZHQV9WSURFT19TUkNfV0lEVEgsCi0gICBTVkdBX1ZJREVPX1NSQ19IRUlH SFQsCi0gICBTVkdBX1ZJREVPX0RTVF9YLCAgICAgICAgIC8qIFNpZ25lZCBpbnQzMiAqLwotICAg U1ZHQV9WSURFT19EU1RfWSwgICAgICAgICAvKiBTaWduZWQgaW50MzIgKi8KLSAgIFNWR0FfVklE RU9fRFNUX1dJRFRILAotICAgU1ZHQV9WSURFT19EU1RfSEVJR0hULAotICAgU1ZHQV9WSURFT19Q SVRDSF8xLAotICAgU1ZHQV9WSURFT19QSVRDSF8yLAotICAgU1ZHQV9WSURFT19QSVRDSF8zLAot ICAgU1ZHQV9WSURFT19EQVRBX0dNUklELCAgICAvKiBPcHRpb25hbCwgZGVmYXVsdHMgdG8gU1ZH QV9HTVJfRlJBTUVCVUZGRVIgKi8KLSAgIFNWR0FfVklERU9fRFNUX1NDUkVFTl9JRCwgLyogT3B0 aW9uYWwsIGRlZmF1bHRzIHRvIHZpcnR1YWwgY29vcmRzIChTVkdBX0lEX0lOVkFMSUQpICovCi0g ICBTVkdBX1ZJREVPX05VTV9SRUdTCi19OwotCi0KLS8qCi0gKiBTVkdBIE92ZXJsYXkgVW5pdHMK LSAqCi0gKiAgICAgIHdpZHRoIGFuZCBoZWlnaHQgcmVsYXRlIHRvIHRoZSBlbnRpcmUgc291cmNl IHZpZGVvIGZyYW1lLgotICogICAgICBzcmNYLCBzcmNZLCBzcmNXaWR0aCBhbmQgc3JjSGVpZ2h0 IHJlcHJlc2VudCBzdWJzZXQgb2YgdGhlIHNvdXJjZQotICogICAgICB2aWRlbyBmcmFtZSB0byBi ZSBkaXNwbGF5ZWQuCi0gKi8KLQotdHlwZWRlZiBzdHJ1Y3QgU1ZHQU92ZXJsYXlVbml0IHsKLSAg IHVpbnQzMiBlbmFibGVkOwotICAgdWludDMyIGZsYWdzOwotICAgdWludDMyIGRhdGFPZmZzZXQ7 Ci0gICB1aW50MzIgZm9ybWF0OwotICAgdWludDMyIGNvbG9yS2V5OwotICAgdWludDMyIHNpemU7 Ci0gICB1aW50MzIgd2lkdGg7Ci0gICB1aW50MzIgaGVpZ2h0OwotICAgdWludDMyIHNyY1g7Ci0g ICB1aW50MzIgc3JjWTsKLSAgIHVpbnQzMiBzcmNXaWR0aDsKLSAgIHVpbnQzMiBzcmNIZWlnaHQ7 Ci0gICBpbnQzMiAgZHN0WDsKLSAgIGludDMyICBkc3RZOwotICAgdWludDMyIGRzdFdpZHRoOwot ICAgdWludDMyIGRzdEhlaWdodDsKLSAgIHVpbnQzMiBwaXRjaGVzWzNdOwotICAgdWludDMyIGRh dGFHTVJJZDsKLSAgIHVpbnQzMiBkc3RTY3JlZW5JZDsKLX0gU1ZHQU92ZXJsYXlVbml0OwotCi0K LS8qCi0gKiBTVkdBU2NyZWVuT2JqZWN0IC0tCi0gKgotICogICAgVGhpcyBpcyBhIG5ldyB3YXkg dG8gcmVwcmVzZW50IGEgZ3Vlc3QncyBtdWx0aS1tb25pdG9yIHNjcmVlbiBvcgotICogICAgVW5p dHkgd2luZG93LiBTY3JlZW4gb2JqZWN0cyBhcmUgb25seSBzdXBwb3J0ZWQgaWYgdGhlCi0gKiAg ICBTVkdBX0ZJRk9fQ0FQX1NDUkVFTl9PQkpFQ1QgY2FwYWJpbGl0eSBiaXQgaXMgc2V0LgotICoK LSAqICAgIElmIFNjcmVlbiBPYmplY3RzIGFyZSBzdXBwb3J0ZWQsIHRoZXkgY2FuIGJlIHVzZWQg dG8gZnVsbHkKLSAqICAgIHJlcGxhY2UgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkgdGhl IGZyYW1lYnVmZmVyIHJlZ2lzdGVycwotICogICAgKFNWR0FfUkVHX1dJRFRILCBIRUlHSFQsIGV0 Yy4pIGFuZCBieSBTVkdBX0NBUF9ESVNQTEFZX1RPUE9MT0dZLgotICoKLSAqICAgIFRoZSBzY3Jl ZW4gb2JqZWN0IGlzIGEgc3RydWN0IHdpdGggZ3VhcmFudGVlZCBiaW5hcnkKLSAqICAgIGNvbXBh dGliaWxpdHkuIE5ldyBmbGFncyBjYW4gYmUgYWRkZWQsIGFuZCB0aGUgc3RydWN0IG1heSBncm93 LAotICogICAgYnV0IGV4aXN0aW5nIGZpZWxkcyBtdXN0IHJldGFpbiB0aGVpciBtZWFuaW5nLgot ICoKLSAqICAgIEFkZGVkIHdpdGggU1ZHQV9GSUZPX0NBUF9TQ1JFRU5fT0JKRUNUXzIgYXJlIHJl cXVpcmVkIGZpZWxkcyBvZgotICogICAgYSBTVkdBR3Vlc3RQdHIgdGhhdCBpcyB1c2VkIHRvIGJh Y2sgdGhlIHNjcmVlbiBjb250ZW50cy4gIFRoaXMKLSAqICAgIG1lbW9yeSBtdXN0IGNvbWUgZnJv bSB0aGUgR0ZCLiAgVGhlIGd1ZXN0IGlzIG5vdCBhbGxvd2VkIHRvCi0gKiAgICBhY2Nlc3MgdGhl IG1lbW9yeSBhbmQgZG9pbmcgc28gd2lsbCBoYXZlIHVuZGVmaW5lZCByZXN1bHRzLiAgVGhlCi0g KiAgICBiYWNraW5nIHN0b3JlIGlzIHJlcXVpcmVkIHRvIGJlIHBhZ2UgYWxpZ25lZCBhbmQgdGhl IHNpemUgaXMKLSAqICAgIHBhZGRlZCB0byB0aGUgbmV4dCBwYWdlIGJvdW5kcnkuICBUaGUgbnVt YmVyIG9mIHBhZ2VzIGlzOgotICogICAgICAgKGJ5dGVzUGVyTGluZSAqIHNpemUud2lkdGggKiA0 ICsgUEFHRV9TSVpFIC0gMSkgLyBQQUdFX1NJWkUKLSAqCi0gKiAgICBUaGUgcGl0Y2ggaW4gdGhl IGJhY2tpbmdTdG9yZSBpcyByZXF1aXJlZCB0byBiZSBhdCBsZWFzdCBsYXJnZQotICogICAgZW5v dWdoIHRvIGhvbGQgYSAzMmJicCBzY2FubGluZS4gIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgdGhl Ci0gKiAgICBkcml2ZXIgcGFkIGJ5dGVzUGVyTGluZSBmb3IgYSBwb3RlbnRpYWwgcGVyZm9ybWFu Y2Ugd2luLgotICoKLSAqICAgIFRoZSBjbG9uZUNvdW50IGZpZWxkIGlzIHRyZWF0ZWQgYXMgYSBo aW50IGZyb20gdGhlIGd1ZXN0IHRoYXQKLSAqICAgIHRoZSB1c2VyIHdhbnRzIHRoaXMgZGlzcGxh eSB0byBiZSBjbG9uZWQsIGNvdW50Q291bnQgdGltZXMuICBBCi0gKiAgICB2YWx1ZSBvZiB6ZXJv IG1lYW5zIG5vIGNsb25pbmcgc2hvdWxkIGhhcHBlbi4KLSAqLwotCi0jZGVmaW5lIFNWR0FfU0NS RUVOX01VU1RfQkVfU0VUICAgICAoMSA8PCAwKSAvKiBNdXN0IGJlIHNldCBvciByZXN1bHRzIHVu ZGVmaW5lZCAqLwotI2RlZmluZSBTVkdBX1NDUkVFTl9IQVNfUk9PVCBTVkdBX1NDUkVFTl9NVVNU X0JFX1NFVCAvKiBEZXByZWNhdGVkICovCi0jZGVmaW5lIFNWR0FfU0NSRUVOX0lTX1BSSU1BUlkg ICAgICAoMSA8PCAxKSAvKiBHdWVzdCBjb25zaWRlcnMgdGhpcyBzY3JlZW4gdG8gYmUgJ3ByaW1h cnknICovCi0jZGVmaW5lIFNWR0FfU0NSRUVOX0ZVTExTQ1JFRU5fSElOVCAoMSA8PCAyKSAvKiBH dWVzdCBpcyBydW5uaW5nIGEgZnVsbHNjcmVlbiBhcHAgaGVyZSAqLwotCi0vKgotICogQWRkZWQg d2l0aCBTVkdBX0ZJRk9fQ0FQX1NDUkVFTl9PQkpFQ1RfMi4gIFdoZW4gdGhlIHNjcmVlbiBpcwot ICogZGVhY3RpdmF0ZWQgdGhlIGJhc2UgbGF5ZXIgaXMgZGVmaW5lZCB0byBsb3NlIGFsbCBjb250 ZW50cyBhbmQKLSAqIGJlY29tZSBibGFjay4gIFdoZW4gYSBzY3JlZW4gaXMgZGVhY3RpdmF0ZWQg dGhlIGJhY2tpbmcgc3RvcmUgaXMKLSAqIG9wdGlvbmFsLiAgV2hlbiBzZXQgYmFja2luZ1B0ciBh bmQgYnl0ZXNQZXJMaW5lIHdpbGwgYmUgaWdub3JlZC4KLSAqLwotI2RlZmluZSBTVkdBX1NDUkVF Tl9ERUFDVElWQVRFICAoMSA8PCAzKQotCi0vKgotICogQWRkZWQgd2l0aCBTVkdBX0ZJRk9fQ0FQ X1NDUkVFTl9PQkpFQ1RfMi4gIFdoZW4gdGhpcyBmbGFnIGlzIHNldAotICogdGhlIHNjcmVlbiBj b250ZW50cyB3aWxsIGJlIG91dHB1dHRlZCBhcyBhbGwgYmxhY2sgdG8gdGhlIHVzZXIKLSAqIHRo b3VnaCB0aGUgYmFzZSBsYXllciBjb250ZW50cyBpcyBwcmVzZXJ2ZWQuICBUaGUgc2NyZWVuIGJh c2UgbGF5ZXIKLSAqIGNhbiBzdGlsbCBiZSByZWFkIGFuZCB3cml0dGVuIHRvIGxpa2Ugbm9ybWFs IHRob3VnaCB0aGUgbm8gdmlzaWJsZQotICogZWZmZWN0IHdpbGwgYmUgc2VlbiBieSB0aGUgdXNl ci4gIFdoZW4gdGhlIGZsYWcgaXMgY2hhbmdlZCB0aGUKLSAqIHNjcmVlbiB3aWxsIGJlIGJsYW5r ZWQgb3IgcmVkcmF3biB0byB0aGUgY3VycmVudCBjb250ZW50cyBhcyBuZWVkZWQKLSAqIHdpdGhv dXQgYW55IGV4dHJhIGNvbW1hbmRzIGZyb20gdGhlIGRyaXZlci4gIFRoaXMgZmxhZyBvbmx5IGhh cyBhbgotICogZWZmZWN0IHdoZW4gdGhlIHNjcmVlbiBpcyBub3QgZGVhY3RpdmF0ZWQuCi0gKi8K LSNkZWZpbmUgU1ZHQV9TQ1JFRU5fQkxBTktJTkcgKDEgPDwgNCkKLQotdHlwZWRlZgotc3RydWN0 IFNWR0FTY3JlZW5PYmplY3QgewotICAgdWludDMyIHN0cnVjdFNpemU7ICAgLyogc2l6ZW9mKFNW R0FTY3JlZW5PYmplY3QpICovCi0gICB1aW50MzIgaWQ7Ci0gICB1aW50MzIgZmxhZ3M7Ci0gICBz dHJ1Y3QgewotICAgICAgdWludDMyIHdpZHRoOwotICAgICAgdWludDMyIGhlaWdodDsKLSAgIH0g c2l6ZTsKLSAgIHN0cnVjdCB7Ci0gICAgICBpbnQzMiB4OwotICAgICAgaW50MzIgeTsKLSAgIH0g cm9vdDsKLQotICAgLyoKLSAgICAqIEFkZGVkIGFuZCByZXF1aXJlZCBieSBTVkdBX0ZJRk9fQ0FQ X1NDUkVFTl9PQkpFQ1RfMiwgb3B0aW9uYWwKLSAgICAqIHdpdGggU1ZHQV9GSUZPX0NBUF9TQ1JF RU5fT0JKRUNULgotICAgICovCi0gICBTVkdBR3Vlc3RJbWFnZSBiYWNraW5nU3RvcmU7Ci0gICB1 aW50MzIgY2xvbmVDb3VudDsKLX0gU1ZHQVNjcmVlbk9iamVjdDsKLQotCi0vKgotICogIENvbW1h bmRzIGluIHRoZSBjb21tYW5kIEZJRk86Ci0gKgotICogIENvbW1hbmQgSURzIGRlZmluZWQgYmVs b3cgYXJlIHVzZWQgZm9yIHRoZSB0cmFkaXRpb25hbCAyRCBGSUZPCi0gKiAgY29tbXVuaWNhdGlv biAobm90IGFsbCBjb21tYW5kcyBhcmUgYXZhaWxhYmxlIGZvciBhbGwgdmVyc2lvbnMgb2YgdGhl Ci0gKiAgU1ZHQSBGSUZPIHByb3RvY29sKS4KLSAqCi0gKiAgTm90ZSB0aGUgaG9sZXMgaW4gdGhl IGNvbW1hbmQgSUQgbnVtYmVyczogVGhlc2UgY29tbWFuZHMgaGF2ZSBiZWVuCi0gKiAgZGVwcmVj YXRlZCwgYW5kIHRoZSBvbGQgSURzIG11c3Qgbm90IGJlIHJldXNlZC4KLSAqCi0gKiAgQ29tbWFu ZCBJRHMgZnJvbSAxMDAwIHRvIDE5OTkgYXJlIHJlc2VydmVkIGZvciB1c2UgYnkgdGhlIFNWR0Ez RAotICogIHByb3RvY29sLgotICoKLSAqICBFYWNoIGNvbW1hbmQncyBwYXJhbWV0ZXJzIGFyZSBk ZXNjcmliZWQgYnkgdGhlIGNvbW1lbnRzIGFuZAotICogIHN0cnVjdHMgYmVsb3cuCi0gKi8KLQot dHlwZWRlZiBlbnVtIHsKLSAgIFNWR0FfQ01EX0lOVkFMSURfQ01EICAgICAgICAgICA9IDAsCi0g ICBTVkdBX0NNRF9VUERBVEUgICAgICAgICAgICAgICAgPSAxLAotICAgU1ZHQV9DTURfUkVDVF9D T1BZICAgICAgICAgICAgID0gMywKLSAgIFNWR0FfQ01EX0RFRklORV9DVVJTT1IgICAgICAgICA9 IDE5LAotICAgU1ZHQV9DTURfREVGSU5FX0FMUEhBX0NVUlNPUiAgID0gMjIsCi0gICBTVkdBX0NN RF9VUERBVEVfVkVSQk9TRSAgICAgICAgPSAyNSwKLSAgIFNWR0FfQ01EX0ZST05UX1JPUF9GSUxM ICAgICAgICA9IDI5LAotICAgU1ZHQV9DTURfRkVOQ0UgICAgICAgICAgICAgICAgID0gMzAsCi0g ICBTVkdBX0NNRF9FU0NBUEUgICAgICAgICAgICAgICAgPSAzMywKLSAgIFNWR0FfQ01EX0RFRklO RV9TQ1JFRU4gICAgICAgICA9IDM0LAotICAgU1ZHQV9DTURfREVTVFJPWV9TQ1JFRU4gICAgICAg ID0gMzUsCi0gICBTVkdBX0NNRF9ERUZJTkVfR01SRkIgICAgICAgICAgPSAzNiwKLSAgIFNWR0Ff Q01EX0JMSVRfR01SRkJfVE9fU0NSRUVOICA9IDM3LAotICAgU1ZHQV9DTURfQkxJVF9TQ1JFRU5f VE9fR01SRkIgID0gMzgsCi0gICBTVkdBX0NNRF9BTk5PVEFUSU9OX0ZJTEwgICAgICAgPSAzOSwK LSAgIFNWR0FfQ01EX0FOTk9UQVRJT05fQ09QWSAgICAgICA9IDQwLAotICAgU1ZHQV9DTURfREVG SU5FX0dNUjIgICAgICAgICAgID0gNDEsCi0gICBTVkdBX0NNRF9SRU1BUF9HTVIyICAgICAgICAg ICAgPSA0MiwKLSAgIFNWR0FfQ01EX01BWAotfSBTVkdBRmlmb0NtZElkOwotCi0jZGVmaW5lIFNW R0FfQ01EX01BWF9BUkdTICAgICAgICAgICA2NAotCi0KLS8qCi0gKiBTVkdBX0NNRF9VUERBVEUg LS0KLSAqCi0gKiAgICBUaGlzIGlzIGEgRE1BIHRyYW5zZmVyIHdoaWNoIGNvcGllcyBmcm9tIHRo ZSBHdWVzdCBGcmFtZWJ1ZmZlcgotICogICAgKEdGQikgYXQgQkFSMSArIFNWR0FfUkVHX0ZCX09G RlNFVCB0byBhbnkgc2NyZWVucyB3aGljaAotICogICAgaW50ZXJzZWN0IHdpdGggdGhlIHByb3Zp ZGVkIHZpcnR1YWwgcmVjdGFuZ2xlLgotICoKLSAqICAgIFRoaXMgY29tbWFuZCBkb2VzIG5vdCBz dXBwb3J0IHVzaW5nIGFyYml0cmFyeSBndWVzdCBtZW1vcnkgYXMgYQotICogICAgZGF0YSBzb3Vy Y2UtIGl0IG9ubHkgd29ya3Mgd2l0aCB0aGUgcHJlLWRlZmluZWQgR0ZCIG1lbW9yeS4KLSAqICAg IFRoaXMgY29tbWFuZCBhbHNvIGRvZXMgbm90IHN1cHBvcnQgc2lnbmVkIHZpcnR1YWwgY29vcmRp bmF0ZXMuCi0gKiAgICBJZiB5b3UgaGF2ZSBkZWZpbmVkIHNjcmVlbnMgKHVzaW5nIFNWR0FfQ01E X0RFRklORV9TQ1JFRU4pIHdpdGgKLSAqICAgIG5lZ2F0aXZlIHJvb3QgeC95IGNvb3JkaW5hdGVz LCB0aGUgbmVnYXRpdmUgcG9ydGlvbiBvZiB0aG9zZQotICogICAgc2NyZWVucyB3aWxsIG5vdCBi ZSByZWFjaGFibGUgYnkgdGhpcyBjb21tYW5kLgotICoKLSAqICAgIFRoaXMgY29tbWFuZCBpcyBu b3QgbmVjZXNzYXJ5IHdoZW4gdXNpbmcgZnJhbWVidWZmZXIKLSAqICAgIHRyYWNlcy4gVHJhY2Vz IGFyZSBhdXRvbWF0aWNhbGx5IGVuYWJsZWQgaWYgdGhlIFNWR0EgRklGTyBpcwotICogICAgZGlz YWJsZWQsIGFuZCB5b3UgbWF5IGV4cGxpY2l0bHkgZW5hYmxlL2Rpc2FibGUgdHJhY2VzIHVzaW5n Ci0gKiAgICBTVkdBX1JFR19UUkFDRVMuIFdpdGggdHJhY2VzIGVuYWJsZWQsIGFueSB3cml0ZSB0 byB0aGUgR0ZCIHdpbGwKLSAqICAgIGF1dG9tYXRpY2FsbHkgYWN0IGFzIGlmIGEgc3Vic2VxdWVu dCBTVkdBX0NNRF9VUERBVEUgd2FzIGlzc3VlZC4KLSAqCi0gKiAgICBUcmFjZXMgYW5kIFNWR0Ff Q01EX1VQREFURSBhcmUgdGhlIG9ubHkgc3VwcG9ydGVkIHdheXMgdG8gcmVuZGVyCi0gKiAgICBw c2V1ZG9jb2xvciBzY3JlZW4gdXBkYXRlcy4gVGhlIG5ld2VyIFNjcmVlbiBPYmplY3QgY29tbWFu ZHMKLSAqICAgIG9ubHkgc3VwcG9ydCB0cnVlIGNvbG9yIGZvcm1hdHMuCi0gKgotICogQXZhaWxh YmlsaXR5OgotICogICAgQWx3YXlzIGF2YWlsYWJsZS4KLSAqLwotCi10eXBlZGVmCi1zdHJ1Y3Qg U1ZHQUZpZm9DbWRVcGRhdGUgewotICAgdWludDMyIHg7Ci0gICB1aW50MzIgeTsKLSAgIHVpbnQz MiB3aWR0aDsKLSAgIHVpbnQzMiBoZWlnaHQ7Ci19IFNWR0FGaWZvQ21kVXBkYXRlOwotCi0KLS8q Ci0gKiBTVkdBX0NNRF9SRUNUX0NPUFkgLS0KLSAqCi0gKiAgICBQZXJmb3JtIGEgcmVjdGFuZ3Vs YXIgRE1BIHRyYW5zZmVyIGZyb20gb25lIGFyZWEgb2YgdGhlIEdGQiB0bwotICogICAgYW5vdGhl ciwgYW5kIGNvcHkgdGhlIHJlc3VsdCB0byBhbnkgc2NyZWVucyB3aGljaCBpbnRlcnNlY3QgaXQu Ci0gKgotICogQXZhaWxhYmlsaXR5OgotICogICAgU1ZHQV9DQVBfUkVDVF9DT1BZCi0gKi8KLQot dHlwZWRlZgotc3RydWN0IFNWR0FGaWZvQ21kUmVjdENvcHkgewotICAgdWludDMyIHNyY1g7Ci0g ICB1aW50MzIgc3JjWTsKLSAgIHVpbnQzMiBkZXN0WDsKLSAgIHVpbnQzMiBkZXN0WTsKLSAgIHVp bnQzMiB3aWR0aDsKLSAgIHVpbnQzMiBoZWlnaHQ7Ci19IFNWR0FGaWZvQ21kUmVjdENvcHk7Ci0K LQotLyoKLSAqIFNWR0FfQ01EX0RFRklORV9DVVJTT1IgLS0KLSAqCi0gKiAgICBQcm92aWRlIGEg bmV3IGN1cnNvciBpbWFnZSwgYXMgYW4gQU5EL1hPUiBtYXNrLgotICoKLSAqICAgIFRoZSByZWNv bW1lbmRlZCB3YXkgdG8gcG9zaXRpb24gdGhlIGN1cnNvciBvdmVybGF5IGlzIGJ5IHVzaW5nCi0g KiAgICB0aGUgU1ZHQV9GSUZPX0NVUlNPUl8qIHJlZ2lzdGVycywgc3VwcG9ydGVkIGJ5IHRoZQot ICogICAgU1ZHQV9GSUZPX0NBUF9DVVJTT1JfQllQQVNTXzMgY2FwYWJpbGl0eS4KLSAqCi0gKiBB dmFpbGFiaWxpdHk6Ci0gKiAgICBTVkdBX0NBUF9DVVJTT1IKLSAqLwotCi10eXBlZGVmCi1zdHJ1 Y3QgU1ZHQUZpZm9DbWREZWZpbmVDdXJzb3IgewotICAgdWludDMyIGlkOyAgICAgICAgICAgICAv KiBSZXNlcnZlZCwgbXVzdCBiZSB6ZXJvLiAqLwotICAgdWludDMyIGhvdHNwb3RYOwotICAgdWlu dDMyIGhvdHNwb3RZOwotICAgdWludDMyIHdpZHRoOwotICAgdWludDMyIGhlaWdodDsKLSAgIHVp bnQzMiBhbmRNYXNrRGVwdGg7ICAgLyogVmFsdWUgbXVzdCBiZSAxIG9yIGVxdWFsIHRvIEJJVFNf UEVSX1BJWEVMICovCi0gICB1aW50MzIgeG9yTWFza0RlcHRoOyAgIC8qIFZhbHVlIG11c3QgYmUg MSBvciBlcXVhbCB0byBCSVRTX1BFUl9QSVhFTCAqLwotICAgLyoKLSAgICAqIEZvbGxvd2VkIGJ5 IHNjYW5saW5lIGRhdGEgZm9yIEFORCBtYXNrLCB0aGVuIFhPUiBtYXNrLgotICAgICogRWFjaCBz Y2FubGluZSBpcyBwYWRkZWQgdG8gYSAzMi1iaXQgYm91bmRhcnkuCi0gICAqLwotfSBTVkdBRmlm b0NtZERlZmluZUN1cnNvcjsKLQotCi0vKgotICogU1ZHQV9DTURfREVGSU5FX0FMUEhBX0NVUlNP UiAtLQotICoKLSAqICAgIFByb3ZpZGUgYSBuZXcgY3Vyc29yIGltYWdlLCBpbiAzMi1iaXQgQkdS QSBmb3JtYXQuCi0gKgotICogICAgVGhlIHJlY29tbWVuZGVkIHdheSB0byBwb3NpdGlvbiB0aGUg Y3Vyc29yIG92ZXJsYXkgaXMgYnkgdXNpbmcKLSAqICAgIHRoZSBTVkdBX0ZJRk9fQ1VSU09SXyog cmVnaXN0ZXJzLCBzdXBwb3J0ZWQgYnkgdGhlCi0gKiAgICBTVkdBX0ZJRk9fQ0FQX0NVUlNPUl9C WVBBU1NfMyBjYXBhYmlsaXR5LgotICoKLSAqIEF2YWlsYWJpbGl0eToKLSAqICAgIFNWR0FfQ0FQ X0FMUEhBX0NVUlNPUgotICovCi0KLXR5cGVkZWYKLXN0cnVjdCBTVkdBRmlmb0NtZERlZmluZUFs cGhhQ3Vyc29yIHsKLSAgIHVpbnQzMiBpZDsgICAgICAgICAgICAgLyogUmVzZXJ2ZWQsIG11c3Qg YmUgemVyby4gKi8KLSAgIHVpbnQzMiBob3RzcG90WDsKLSAgIHVpbnQzMiBob3RzcG90WTsKLSAg IHVpbnQzMiB3aWR0aDsKLSAgIHVpbnQzMiBoZWlnaHQ7Ci0gICAvKiBGb2xsb3dlZCBieSBzY2Fu bGluZSBkYXRhICovCi19IFNWR0FGaWZvQ21kRGVmaW5lQWxwaGFDdXJzb3I7Ci0KLQotLyoKLSAq IFNWR0FfQ01EX1VQREFURV9WRVJCT1NFIC0tCi0gKgotICogICAgSnVzdCBsaWtlIFNWR0FfQ01E X1VQREFURSwgYnV0IGFsc28gcHJvdmlkZSBhIHBlci1yZWN0YW5nbGUKLSAqICAgICdyZWFzb24n IHZhbHVlLCBhbiBvcGFxdWUgY29va2llIHdoaWNoIGlzIHVzZWQgYnkgaW50ZXJuYWwKLSAqICAg IGRlYnVnZ2luZyB0b29scy4gVGhpcmQgcGFydHkgZHJpdmVycyBzaG91bGQgbm90IHVzZSB0aGlz Ci0gKiAgICBjb21tYW5kLgotICoKLSAqIEF2YWlsYWJpbGl0eToKLSAqICAgIFNWR0FfQ0FQX0VY VEVOREVEX0ZJRk8KLSAqLwotCi10eXBlZGVmCi1zdHJ1Y3QgU1ZHQUZpZm9DbWRVcGRhdGVWZXJi b3NlIHsKLSAgIHVpbnQzMiB4OwotICAgdWludDMyIHk7Ci0gICB1aW50MzIgd2lkdGg7Ci0gICB1 aW50MzIgaGVpZ2h0OwotICAgdWludDMyIHJlYXNvbjsKLX0gU1ZHQUZpZm9DbWRVcGRhdGVWZXJi b3NlOwotCi0KLS8qCi0gKiBTVkdBX0NNRF9GUk9OVF9ST1BfRklMTCAtLQotICoKLSAqICAgIFRo aXMgaXMgYSBoaW50IHdoaWNoIHRlbGxzIHRoZSBTVkdBIGRldmljZSB0aGF0IHRoZSBkcml2ZXIg aGFzCi0gKiAgICBqdXN0IGZpbGxlZCBhIHJlY3Rhbmd1bGFyIHJlZ2lvbiBvZiB0aGUgR0ZCIHdp dGggYSBzb2xpZAotICogICAgY29sb3IuIEluc3RlYWQgb2YgcmVhZGluZyB0aGVzZSBwaXhlbHMg ZnJvbSB0aGUgR0ZCLCB0aGUgZGV2aWNlCi0gKiAgICBjYW4gYXNzdW1lIHRoYXQgdGhleSBhbGwg ZXF1YWwgJ2NvbG9yJy4gVGhpcyBpcyBwcmltYXJpbHkgdXNlZAotICogICAgZm9yIHJlbW90ZSBk ZXNrdG9wIHByb3RvY29scy4KLSAqCi0gKiBBdmFpbGFiaWxpdHk6Ci0gKiAgICBTVkdBX0ZJRk9f Q0FQX0FDQ0VMRlJPTlQKLSAqLwotCi0jZGVmaW5lICBTVkdBX1JPUF9DT1BZICAgICAgICAgICAg ICAgICAgICAweDAzCi0KLXR5cGVkZWYKLXN0cnVjdCBTVkdBRmlmb0NtZEZyb250Um9wRmlsbCB7 Ci0gICB1aW50MzIgY29sb3I7ICAgICAvKiBJbiB0aGUgc2FtZSBmb3JtYXQgYXMgdGhlIEdGQiAq LwotICAgdWludDMyIHg7Ci0gICB1aW50MzIgeTsKLSAgIHVpbnQzMiB3aWR0aDsKLSAgIHVpbnQz MiBoZWlnaHQ7Ci0gICB1aW50MzIgcm9wOyAgICAgICAvKiBNdXN0IGJlIFNWR0FfUk9QX0NPUFkg Ki8KLX0gU1ZHQUZpZm9DbWRGcm9udFJvcEZpbGw7Ci0KLQotLyoKLSAqIFNWR0FfQ01EX0ZFTkNF IC0tCi0gKgotICogICAgSW5zZXJ0IGEgc3luY2hyb25pemF0aW9uIGZlbmNlLiAgV2hlbiB0aGUg U1ZHQSBkZXZpY2UgcmVhY2hlcwotICogICAgdGhpcyBjb21tYW5kLCBpdCB3aWxsIGNvcHkgdGhl ICdmZW5jZScgdmFsdWUgaW50byB0aGUKLSAqICAgIFNWR0FfRklGT19GRU5DRSByZWdpc3Rlci4g SXQgd2lsbCBhbHNvIGNvbXBhcmUgdGhlIGZlbmNlIGFnYWluc3QKLSAqICAgIFNWR0FfRklGT19G RU5DRV9HT0FMLiBJZiB0aGUgZmVuY2UgbWF0Y2hlcyB0aGUgZ29hbCBhbmQgdGhlCi0gKiAgICBT VkdBX0lSUUZMQUdfRkVOQ0VfR09BTCBpbnRlcnJ1cHQgaXMgZW5hYmxlZCwgdGhlIGRldmljZSB3 aWxsCi0gKiAgICByYWlzZSB0aGlzIGludGVycnVwdC4KLSAqCi0gKiBBdmFpbGFiaWxpdHk6Ci0g KiAgICBTVkdBX0ZJRk9fRkVOQ0UgZm9yIHRoaXMgY29tbWFuZCwKLSAqICAgIFNWR0FfQ0FQX0lS UU1BU0sgZm9yIFNWR0FfRklGT19GRU5DRV9HT0FMLgotICovCi0KLXR5cGVkZWYKLXN0cnVjdCB7 Ci0gICB1aW50MzIgZmVuY2U7Ci19IFNWR0FGaWZvQ21kRmVuY2U7Ci0KLQotLyoKLSAqIFNWR0Ff Q01EX0VTQ0FQRSAtLQotICoKLSAqICAgIFNlbmQgYW4gZXh0ZW5kZWQgb3IgdmVuZG9yLXNwZWNp ZmljIHZhcmlhYmxlIGxlbmd0aCBjb21tYW5kLgotICogICAgVGhpcyBpcyB1c2VkIGZvciB2aWRl byBvdmVybGF5LCB0aGlyZCBwYXJ0eSBwbHVnaW5zLCBhbmQKLSAqICAgIGludGVybmFsIGRlYnVn Z2luZyB0b29scy4gU2VlIHN2Z2FfZXNjYXBlLmgKLSAqCi0gKiBBdmFpbGFiaWxpdHk6Ci0gKiAg ICBTVkdBX0ZJRk9fQ0FQX0VTQ0FQRQotICovCi0KLXR5cGVkZWYKLXN0cnVjdCBTVkdBRmlmb0Nt ZEVzY2FwZSB7Ci0gICB1aW50MzIgbnNpZDsKLSAgIHVpbnQzMiBzaXplOwotICAgLyogZm9sbG93 ZWQgYnkgJ3NpemUnIGJ5dGVzIG9mIGRhdGEgKi8KLX0gU1ZHQUZpZm9DbWRFc2NhcGU7Ci0KLQot LyoKLSAqIFNWR0FfQ01EX0RFRklORV9TQ1JFRU4gLS0KLSAqCi0gKiAgICBEZWZpbmUgb3IgcmVk ZWZpbmUgYW4gU1ZHQVNjcmVlbk9iamVjdC4gU2VlIHRoZSBkZXNjcmlwdGlvbiBvZgotICogICAg U1ZHQVNjcmVlbk9iamVjdCBhYm92ZS4gIFRoZSB2aWRlbyBkcml2ZXIgaXMgcmVzcG9uc2libGUg Zm9yCi0gKiAgICBnZW5lcmF0aW5nIG5ldyBzY3JlZW4gSURzLiBUaGV5IHNob3VsZCBiZSBzbWFs bCBwb3NpdGl2ZQotICogICAgaW50ZWdlcnMuIFRoZSB2aXJ0dWFsIGRldmljZSB3aWxsIGhhdmUg YW4gaW1wbGVtZW50YXRpb24KLSAqICAgIHNwZWNpZmljIHVwcGVyIGxpbWl0IG9uIHRoZSBudW1i ZXIgb2Ygc2NyZWVuIElEcwotICogICAgc3VwcG9ydGVkLiBEcml2ZXJzIGFyZSByZXNwb25zaWJs ZSBmb3IgcmVjeWNsaW5nIElEcy4gVGhlIGZpcnN0Ci0gKiAgICB2YWxpZCBJRCBpcyB6ZXJvLgot ICoKLSAqICAgIC0gSW50ZXJhY3Rpb24gd2l0aCBvdGhlciByZWdpc3RlcnM6Ci0gKgotICogICAg Rm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB3aGVuIHRoZSBHRkIgbW9kZSByZWdpc3RlcnMg KFdJRFRILAotICogICAgSEVJR0hULCBQSVRDSExPQ0ssIEJJVFNfUEVSX1BJWEVMKSBhcmUgbW9k aWZpZWQsIHRoZSBTVkdBIGRldmljZQotICogICAgZGVsZXRlcyBhbGwgc2NyZWVucyBvdGhlciB0 aGFuIHNjcmVlbiAjMCwgYW5kIHJlZGVmaW5lcyBzY3JlZW4KLSAqICAgICMwIGFjY29yZGluZyB0 byB0aGUgc3BlY2lmaWVkIG1vZGUuIERyaXZlcnMgdGhhdCB1c2UKLSAqICAgIFNWR0FfQ01EX0RF RklORV9TQ1JFRU4gc2hvdWxkIGRlc3Ryb3kgb3IgcmVkZWZpbmUgc2NyZWVuICMwLgotICoKLSAq ICAgIElmIHlvdSB1c2Ugc2NyZWVuIG9iamVjdHMsIGRvIG5vdCB1c2UgdGhlIGxlZ2FjeSBtdWx0 aS1tb24KLSAqICAgIHJlZ2lzdGVycyAoU1ZHQV9SRUdfTlVNX0dVRVNUX0RJU1BMQVlTLCBTVkdB X1JFR19ESVNQTEFZXyopLgotICoKLSAqIEF2YWlsYWJpbGl0eToKLSAqICAgIFNWR0FfRklGT19D QVBfU0NSRUVOX09CSkVDVCBvciBTVkdBX0ZJRk9fQ0FQX1NDUkVFTl9PQkpFQ1RfMgotICovCi0K LXR5cGVkZWYKLXN0cnVjdCB7Ci0gICBTVkdBU2NyZWVuT2JqZWN0IHNjcmVlbjsgICAvKiBWYXJp YWJsZS1sZW5ndGggYWNjb3JkaW5nIHRvIHZlcnNpb24gKi8KLX0gU1ZHQUZpZm9DbWREZWZpbmVT Y3JlZW47Ci0KLQotLyoKLSAqIFNWR0FfQ01EX0RFU1RST1lfU0NSRUVOIC0tCi0gKgotICogICAg RGVzdHJveSBhbiBTVkdBU2NyZWVuT2JqZWN0LiBJdHMgSUQgaXMgaW1tZWRpYXRlbHkgYXZhaWxh YmxlIGZvcgotICogICAgcmUtdXNlLgotICoKLSAqIEF2YWlsYWJpbGl0eToKLSAqICAgIFNWR0Ff RklGT19DQVBfU0NSRUVOX09CSkVDVCBvciBTVkdBX0ZJRk9fQ0FQX1NDUkVFTl9PQkpFQ1RfMgot ICovCi0KLXR5cGVkZWYKLXN0cnVjdCB7Ci0gICB1aW50MzIgc2NyZWVuSWQ7Ci19IFNWR0FGaWZv Q21kRGVzdHJveVNjcmVlbjsKLQotCi0vKgotICogU1ZHQV9DTURfREVGSU5FX0dNUkZCIC0tCi0g KgotICogICAgVGhpcyBjb21tYW5kIHNldHMgYSBwaWVjZSBvZiBTVkdBIGRldmljZSBzdGF0ZSBj YWxsZWQgdGhlCi0gKiAgICBHdWVzdCBNZW1vcnkgUmVnaW9uIEZyYW1lYnVmZmVyLCBvciBHTVJG Qi4gVGhlIEdNUkZCIGlzIGEKLSAqICAgIHBpZWNlIG9mIGxpZ2h0LXdlaWdodCBzdGF0ZSB3aGlj aCBpZGVudGlmaWVzIHRoZSBsb2NhdGlvbiBhbmQKLSAqICAgIGZvcm1hdCBvZiBhbiBpbWFnZSBp biBndWVzdCBtZW1vcnkgb3IgaW4gQkFSMS4gVGhlIEdNUkZCIGhhcwotICogICAgYW4gYXJiaXRy YXJ5IHNpemUsIGFuZCBpdCBkb2Vzbid0IG5lZWQgdG8gbWF0Y2ggdGhlIGdlb21ldHJ5Ci0gKiAg ICBvZiB0aGUgR0ZCIG9yIGFueSBzY3JlZW4gb2JqZWN0LgotICoKLSAqICAgIFRoZSBHTVJGQiBj YW4gYmUgcmVkZWZpbmVkIGFzIG9mdGVuIGFzIHlvdSBsaWtlLiBZb3UgY291bGQKLSAqICAgIGFs d2F5cyB1c2UgdGhlIHNhbWUgR01SRkIsIHlvdSBjb3VsZCByZWRlZmluZSBpdCBiZWZvcmUKLSAq ICAgIHJlbmRlcmluZyBmcm9tIGEgZGlmZmVyZW50IGd1ZXN0IHNjcmVlbiwgb3IgeW91IGNvdWxk IGV2ZW4KLSAqICAgIHJlZGVmaW5lIGl0IGJlZm9yZSBldmVyeSBibGl0LgotICoKLSAqICAgIFRo ZXJlIGFyZSBtdWx0aXBsZSB3YXlzIHRvIHVzZSB0aGlzIGNvbW1hbmQuIFRoZSBzaW1wbGVzdCB3 YXkgaXMKLSAqICAgIHRvIHVzZSBpdCB0byBtb3ZlIHRoZSBmcmFtZWJ1ZmZlciBlaXRoZXIgdG8g ZWxzZXdoZXJlIGluIHRoZSBHRkIKLSAqICAgIChCQVIxKSBtZW1vcnkgcmVnaW9uLCBvciB0byBh IHVzZXItZGVmaW5lZCBHTVIuIFRoaXMgbGV0cyBhCi0gKiAgICBkcml2ZXIgdXNlIGEgZnJhbWVi dWZmZXIgYWxsb2NhdGVkIGVudGlyZWx5IG91dCBvZiBub3JtYWwgc3lzdGVtCi0gKiAgICBtZW1v cnksIHdoaWNoIHdlIGVuY291cmFnZS4KLSAqCi0gKiAgICBBbm90aGVyIHdheSB0byB1c2UgdGhp cyBjb21tYW5kIGlzIHRvIHNldCB1cCBhIHJpbmcgYnVmZmVyIG9mCi0gKiAgICB1cGRhdGVzIGlu IEdGQiBtZW1vcnkuIElmIGEgZHJpdmVyIHdhbnRzIHRvIGVuc3VyZSB0aGF0IG5vCi0gKiAgICBm cmFtZXMgYXJlIHNraXBwZWQgYnkgdGhlIFNWR0EgZGV2aWNlLCBpdCBpcyBpbXBvcnRhbnQgdGhh dCB0aGUKLSAqICAgIGRyaXZlciBub3QgbW9kaWZ5IHRoZSBzb3VyY2UgZGF0YSBmb3IgYSBibGl0 IHVudGlsIHRoZSBkZXZpY2UgaXMKLSAqICAgIGRvbmUgcHJvY2Vzc2luZyB0aGUgY29tbWFuZC4g T25lIGVmZmljaWVudCB3YXkgdG8gYWNjb21wbGlzaAotICogICAgdGhpcyBpcyB0byB1c2UgYSBy aW5nIG9mIHNtYWxsIERNQSBidWZmZXJzLiBFYWNoIGJ1ZmZlciBpcyB1c2VkCi0gKiAgICBmb3Ig b25lIGJsaXQsIHRoZW4gd2UgbW92ZSBvbiB0byB0aGUgbmV4dCBidWZmZXIgaW4gdGhlCi0gKiAg ICByaW5nLiBUaGUgRkVOQ0UgbWVjaGFuaXNtIGlzIHVzZWQgdG8gcHJvdGVjdCBlYWNoIGJ1ZmZl ciBmcm9tCi0gKiAgICByZS11c2UgdW50aWwgdGhlIGRldmljZSBpcyBmaW5pc2hlZCB3aXRoIHRo YXQgYnVmZmVyJ3MKLSAqICAgIGNvcnJlc3BvbmRpbmcgYmxpdC4KLSAqCi0gKiAgICBUaGlzIGNv bW1hbmQgZG9lcyBub3QgYWZmZWN0IHRoZSBtZWFuaW5nIG9mIFNWR0FfQ01EX1VQREFURS4KLSAq ICAgIFVQREFURXMgYWx3YXlzIG9jY3VyIGZyb20gdGhlIGxlZ2FjeSBHRkIgbWVtb3J5IGFyZWEu IFRoaXMKLSAqICAgIGNvbW1hbmQgaGFzIG5vIHN1cHBvcnQgZm9yIHBzZXVkb2NvbG9yIEdNUkZC cy4gQ3VycmVudGx5IG9ubHkKLSAqICAgIHRydWUtY29sb3IgMTUsIDE2LCBhbmQgMjQtYml0IGRl cHRocyBhcmUgc3VwcG9ydGVkLiBGdXR1cmUKLSAqICAgIGRldmljZXMgbWF5IGV4cG9zZSBjYXBh YmlsaXRpZXMgZm9yIGFkZGl0aW9uYWwgZnJhbWVidWZmZXIKLSAqICAgIGZvcm1hdHMuCi0gKgot ICogICAgVGhlIGRlZmF1bHQgR01SRkIgdmFsdWUgaXMgdW5kZWZpbmVkLiBEcml2ZXJzIG11c3Qg YWx3YXlzIHNlbmQKLSAqICAgIHRoaXMgY29tbWFuZCBhdCBsZWFzdCBvbmNlIGJlZm9yZSBwZXJm b3JtaW5nIGFueSBibGl0IGZyb20gdGhlCi0gKiAgICBHTVJGQi4KLSAqCi0gKiBBdmFpbGFiaWxp dHk6Ci0gKiAgICBTVkdBX0ZJRk9fQ0FQX1NDUkVFTl9PQkpFQ1Qgb3IgU1ZHQV9GSUZPX0NBUF9T Q1JFRU5fT0JKRUNUXzIKLSAqLwotCi10eXBlZGVmCi1zdHJ1Y3QgewotICAgU1ZHQUd1ZXN0UHRy ICAgICAgICBwdHI7Ci0gICB1aW50MzIgICAgICAgICAgICAgIGJ5dGVzUGVyTGluZTsKLSAgIFNW R0FHTVJJbWFnZUZvcm1hdCAgZm9ybWF0OwotfSBTVkdBRmlmb0NtZERlZmluZUdNUkZCOwotCi0K LS8qCi0gKiBTVkdBX0NNRF9CTElUX0dNUkZCX1RPX1NDUkVFTiAtLQotICoKLSAqICAgIFRoaXMg aXMgYSBndWVzdC10by1ob3N0IGJsaXQuIEl0IHBlcmZvcm1zIGEgRE1BIG9wZXJhdGlvbiB0bwot ICogICAgY29weSBhIHJlY3Rhbmd1bGFyIHJlZ2lvbiBvZiBwaXhlbHMgZnJvbSB0aGUgY3VycmVu dCBHTVJGQiB0bwotICogICAgb25lIG9yIG1vcmUgU2NyZWVuIE9iamVjdHMuCi0gKgotICogICAg VGhlIGRlc3RpbmF0aW9uIGNvb3JkaW5hdGUgbWF5IGJlIHNwZWNpZmllZCByZWxhdGl2ZSB0byBh Ci0gKiAgICBzY3JlZW4ncyBvcmlnaW4gKGlmIGEgc2NyZWVuIElEIGlzIHNwZWNpZmllZCkgb3Ig cmVsYXRpdmUgdG8gdGhlCi0gKiAgICB2aXJ0dWFsIGNvb3JkaW5hdGUgc3lzdGVtJ3Mgb3JpZ2lu IChpZiB0aGUgc2NyZWVuIElEIGlzCi0gKiAgICBTVkdBX0lEX0lOVkFMSUQpLiBUaGUgYWN0dWFs IGRlc3RpbmF0aW9uIG1heSBzcGFuIHplcm8gb3IgbW9yZQotICogICAgc2NyZWVucywgaW4gdGhl IGNhc2Ugb2YgYSB2aXJ0dWFsIGRlc3RpbmF0aW9uIHJlY3Qgb3IgYSByZWN0Ci0gKiAgICB3aGlj aCBleHRlbmRzIG9mZiB0aGUgZWRnZSBvZiB0aGUgc3BlY2lmaWVkIHNjcmVlbi4KLSAqCi0gKiAg ICBUaGlzIGNvbW1hbmQgd3JpdGVzIHRvIHRoZSBzY3JlZW4ncyAiYmFzZSBsYXllciI6IHRoZSB1 bmRlcmx5aW5nCi0gKiAgICBmcmFtZWJ1ZmZlciB3aGljaCBleGlzdHMgYmVsb3cgYW55IGN1cnNv ciBvciB2aWRlbyBvdmVybGF5cy4gTm8KLSAqICAgIGFjdGlvbiBpcyBuZWNlc3NhcnkgdG8gZXhw bGljaXRseSBoaWRlIG9yIHVwZGF0ZSBhbnkgb3ZlcmxheXMKLSAqICAgIHdoaWNoIGV4aXN0IG9u IHRvcCBvZiB0aGUgdXBkYXRlZCByZWdpb24uCi0gKgotICogICAgVGhlIFNWR0EgZGV2aWNlIGlz IGd1YXJhbnRlZWQgdG8gZmluaXNoIHJlYWRpbmcgZnJvbSB0aGUgR01SRkIKLSAqICAgIGJ5IHRo ZSB0aW1lIGFueSBzdWJzZXF1ZW50IEZFTkNFIGNvbW1hbmRzIGFyZSByZWFjaGVkLgotICoKLSAq ICAgIFRoaXMgY29tbWFuZCBjb25zdW1lcyBhbiBhbm5vdGF0aW9uLiBTZWUgdGhlCi0gKiAgICBT VkdBX0NNRF9BTk5PVEFUSU9OXyogY29tbWFuZHMgZm9yIGRldGFpbHMuCi0gKgotICogQXZhaWxh YmlsaXR5OgotICogICAgU1ZHQV9GSUZPX0NBUF9TQ1JFRU5fT0JKRUNUIG9yIFNWR0FfRklGT19D QVBfU0NSRUVOX09CSkVDVF8yCi0gKi8KLQotdHlwZWRlZgotc3RydWN0IHsKLSAgIFNWR0FTaWdu ZWRQb2ludCAgc3JjT3JpZ2luOwotICAgU1ZHQVNpZ25lZFJlY3QgICBkZXN0UmVjdDsKLSAgIHVp bnQzMiAgICAgICAgICAgZGVzdFNjcmVlbklkOwotfSBTVkdBRmlmb0NtZEJsaXRHTVJGQlRvU2Ny ZWVuOwotCi0KLS8qCi0gKiBTVkdBX0NNRF9CTElUX1NDUkVFTl9UT19HTVJGQiAtLQotICoKLSAq ICAgIFRoaXMgaXMgYSBob3N0LXRvLWd1ZXN0IGJsaXQuIEl0IHBlcmZvcm1zIGEgRE1BIG9wZXJh dGlvbiB0bwotICogICAgY29weSBhIHJlY3Rhbmd1bGFyIHJlZ2lvbiBvZiBwaXhlbHMgZnJvbSBh IHNpbmdsZSBTY3JlZW4gT2JqZWN0Ci0gKiAgICBiYWNrIHRvIHRoZSBjdXJyZW50IEdNUkZCLgot ICoKLSAqICAgIFVzYWdlIG5vdGU6IFRoaXMgY29tbWFuZCBzaG91bGQgYmUgdXNlZCByYXJlbHku IEl0IHdpbGwKLSAqICAgIHR5cGljYWxseSBiZSBpbmVmZmljaWVudCwgYnV0IGl0IGlzIG5lY2Vz c2FyeSBmb3Igc29tZSB0eXBlcyBvZgotICogICAgc3luY2hyb25pemF0aW9uIGJldHdlZW4gM0Qg KEdQVSkgYW5kIDJEIChDUFUpIHJlbmRlcmluZyBpbnRvCi0gKiAgICBvdmVybGFwcGluZyBhcmVh cyBvZiBhIHNjcmVlbi4KLSAqCi0gKiAgICBUaGUgc291cmNlIGNvb3JkaW5hdGUgaXMgc3BlY2lm aWVkIHJlbGF0aXZlIHRvIGEgc2NyZWVuJ3MKLSAqICAgIG9yaWdpbi4gVGhlIHByb3ZpZGVkIHNj cmVlbiBJRCBtdXN0IGJlIHZhbGlkLiBJZiBhbnkgcGFyYW1ldGVycwotICogICAgYXJlIGludmFs aWQsIHRoZSByZXN1bHRpbmcgcGl4ZWwgdmFsdWVzIGFyZSB1bmRlZmluZWQuCi0gKgotICogICAg VGhpcyBjb21tYW5kIHJlYWRzIHRoZSBzY3JlZW4ncyAiYmFzZSBsYXllciIuIE92ZXJsYXlzIGxp a2UKLSAqICAgIHZpZGVvIGFuZCBjdXJzb3IgYXJlIG5vdCBpbmNsdWRlZCwgYnV0IGFueSBkYXRh IHdoaWNoIHdhcyBzZW50Ci0gKiAgICB1c2luZyBhIGJsaXQtdG8tc2NyZWVuIHByaW1pdGl2ZSB3 aWxsIGJlIGF2YWlsYWJsZSwgbm8gbWF0dGVyCi0gKiAgICB3aGV0aGVyIHRoZSBkYXRhJ3Mgb3Jp Z2luYWwgc291cmNlIHdhcyB0aGUgR01SRkIgb3IgdGhlIDNECi0gKiAgICBhY2NlbGVyYXRpb24g aGFyZHdhcmUuCi0gKgotICogICAgTm90ZSB0aGF0IG91ciBndWVzdC10by1ob3N0IGJsaXRzIGFu ZCBob3N0LXRvLWd1ZXN0IGJsaXRzIGFyZW4ndAotICogICAgc3ltbWV0cmljIGluIHRoZWlyIGN1 cnJlbnQgaW1wbGVtZW50YXRpb24uIFdoaWxlIHRoZSBwYXJhbWV0ZXJzCi0gKiAgICBhcmUgaWRl bnRpY2FsLCBob3N0LXRvLWd1ZXN0IGJsaXRzIGFyZSBhIGxvdCBsZXNzIGZlYXR1cmVmdWwuCi0g KiAgICBUaGV5IGRvIG5vdCBzdXBwb3J0IGNsaXBwaW5nOiBJZiB0aGUgc291cmNlIHBhcmFtZXRl cnMgZG9uJ3QKLSAqICAgIGZ1bGx5IGZpdCB3aXRoaW4gYSBzY3JlZW4sIHRoZSBibGl0IGZhaWxz LiBUaGV5IG11c3Qgb3JpZ2luYXRlCi0gKiAgICBmcm9tIGV4YWN0bHkgb25lIHNjcmVlbi4gVmly dHVhbCBjb29yZGluYXRlcyBhcmUgbm90IGRpcmVjdGx5Ci0gKiAgICBzdXBwb3J0ZWQuCi0gKgot ICogICAgSG9zdC10by1ndWVzdCBibGl0cyBkbyBzdXBwb3J0IHRoZSBzYW1lIHNldCBvZiBHTVJG QiBmb3JtYXRzCi0gKiAgICBvZmZlcmVkIGJ5IGd1ZXN0LXRvLWhvc3QgYmxpdHMuCi0gKgotICog ICAgVGhlIFNWR0EgZGV2aWNlIGlzIGd1YXJhbnRlZWQgdG8gZmluaXNoIHdyaXRpbmcgdG8gdGhl IEdNUkZCIGJ5Ci0gKiAgICB0aGUgdGltZSBhbnkgc3Vic2VxdWVudCBGRU5DRSBjb21tYW5kcyBh cmUgcmVhY2hlZC4KLSAqCi0gKiBBdmFpbGFiaWxpdHk6Ci0gKiAgICBTVkdBX0ZJRk9fQ0FQX1ND UkVFTl9PQkpFQ1Qgb3IgU1ZHQV9GSUZPX0NBUF9TQ1JFRU5fT0JKRUNUXzIKLSAqLwotCi10eXBl ZGVmCi1zdHJ1Y3QgewotICAgU1ZHQVNpZ25lZFBvaW50ICBkZXN0T3JpZ2luOwotICAgU1ZHQVNp Z25lZFJlY3QgICBzcmNSZWN0OwotICAgdWludDMyICAgICAgICAgICBzcmNTY3JlZW5JZDsKLX0g U1ZHQUZpZm9DbWRCbGl0U2NyZWVuVG9HTVJGQjsKLQotCi0vKgotICogU1ZHQV9DTURfQU5OT1RB VElPTl9GSUxMIC0tCi0gKgotICogICAgVGhpcyBpcyBhIGJsaXQgYW5ub3RhdGlvbi4gVGhpcyBj b21tYW5kIHN0b3JlcyBhIHNtYWxsIHBpZWNlIG9mCi0gKiAgICBkZXZpY2Ugc3RhdGUgd2hpY2gg aXMgY29uc3VtZWQgYnkgdGhlIG5leHQgYmxpdC10by1zY3JlZW4KLSAqICAgIGNvbW1hbmQuIFRo ZSBzdGF0ZSBpcyBvbmx5IGNsZWFyZWQgYnkgY29tbWFuZHMgd2hpY2ggYXJlCi0gKiAgICBzcGVj aWZpY2FsbHkgZG9jdW1lbnRlZCBhcyBjb25zdW1pbmcgYW4gYW5ub3RhdGlvbi4gT3RoZXIKLSAq ICAgIGNvbW1hbmRzIChzdWNoIGFzIEVTQ0FQRXMgZm9yIGRlYnVnZ2luZykgbWF5IGludGVydmVu ZSBiZXR3ZWVuCi0gKiAgICB0aGUgYW5ub3RhdGlvbiBhbmQgaXRzIGFzc29jaWF0ZWQgYmxpdC4K LSAqCi0gKiAgICBUaGlzIGFubm90YXRpb24gaXMgYSBwcm9taXNlIGFib3V0IHRoZSBjb250ZW50 cyBvZiB0aGUgbmV4dAotICogICAgYmxpdDogVGhlIHZpZGVvIGRyaXZlciBpcyBndWFyYW50ZWVp bmcgdGhhdCBhbGwgcGl4ZWxzIGluIHRoYXQKLSAqICAgIGJsaXQgd2lsbCBoYXZlIHRoZSBzYW1l IHZhbHVlLCBzcGVjaWZpZWQgaGVyZSBhcyBhIGNvbG9yIGluCi0gKiAgICBTVkdBQ29sb3JCR1JY IGZvcm1hdC4KLSAqCi0gKiAgICBUaGUgU1ZHQSBkZXZpY2UgY2FuIHN0aWxsIHJlbmRlciB0aGUg YmxpdCBjb3JyZWN0bHkgZXZlbiBpZiBpdAotICogICAgaWdub3JlcyB0aGlzIGFubm90YXRpb24s IGJ1dCB0aGUgYW5ub3RhdGlvbiBtYXkgYWxsb3cgaXQgdG8KLSAqICAgIHBlcmZvcm0gdGhlIGJs aXQgbW9yZSBlZmZpY2llbnRseSwgZm9yIGV4YW1wbGUgYnkgaWdub3JpbmcgdGhlCi0gKiAgICBz b3VyY2UgZGF0YSBhbmQgcGVyZm9ybWluZyBhIGZpbGwgaW4gaGFyZHdhcmUuCi0gKgotICogICAg VGhpcyBhbm5vdGF0aW9uIGlzIG1vc3QgaW1wb3J0YW50IGZvciBwZXJmb3JtYW5jZSB3aGVuIHRo ZQotICogICAgdXNlcidzIGRpc3BsYXkgaXMgYmVpbmcgcmVtb3RlZCBvdmVyIGEgbmV0d29yayBj b25uZWN0aW9uLgotICoKLSAqIEF2YWlsYWJpbGl0eToKLSAqICAgIFNWR0FfRklGT19DQVBfU0NS RUVOX09CSkVDVCBvciBTVkdBX0ZJRk9fQ0FQX1NDUkVFTl9PQkpFQ1RfMgotICovCi0KLXR5cGVk ZWYKLXN0cnVjdCB7Ci0gICBTVkdBQ29sb3JCR1JYICBjb2xvcjsKLX0gU1ZHQUZpZm9DbWRBbm5v dGF0aW9uRmlsbDsKLQotCi0vKgotICogU1ZHQV9DTURfQU5OT1RBVElPTl9DT1BZIC0tCi0gKgot ICogICAgVGhpcyBpcyBhIGJsaXQgYW5ub3RhdGlvbi4gU2VlIFNWR0FfQ01EX0FOTk9UQVRJT05f RklMTCBmb3IgbW9yZQotICogICAgaW5mb3JtYXRpb24gYWJvdXQgYW5ub3RhdGlvbnMuCi0gKgot ICogICAgVGhpcyBhbm5vdGF0aW9uIGlzIGEgcHJvbWlzZSBhYm91dCB0aGUgY29udGVudHMgb2Yg dGhlIG5leHQKLSAqICAgIGJsaXQ6IFRoZSB2aWRlbyBkcml2ZXIgaXMgZ3VhcmFudGVlaW5nIHRo YXQgYWxsIHBpeGVscyBpbiB0aGF0Ci0gKiAgICBibGl0IHdpbGwgaGF2ZSB0aGUgc2FtZSB2YWx1 ZSBhcyB0aG9zZSB3aGljaCBhbHJlYWR5IGV4aXN0IGF0IGFuCi0gKiAgICBpZGVudGljYWxseS1z aXplZCByZWdpb24gb24gdGhlIHNhbWUgb3IgYSBkaWZmZXJlbnQgc2NyZWVuLgotICoKLSAqICAg IE5vdGUgdGhhdCB0aGUgc291cmNlIHBpeGVscyBmb3IgdGhlIENPUFkgaW4gdGhpcyBhbm5vdGF0 aW9uIGFyZQotICogICAgc2FtcGxlZCBiZWZvcmUgYXBwbHlpbmcgdGhlIGFucW5vdGF0aW9uJ3Mg YXNzb2NpYXRlZCBibGl0LiBUaGV5Ci0gKiAgICBhcmUgYWxsb3dlZCB0byBvdmVybGFwIHdpdGgg dGhlIGJsaXQncyBkZXN0aW5hdGlvbiBwaXhlbHMuCi0gKgotICogICAgVGhlIGNvcHkgc291cmNl IHJlY3RhbmdsZSBpcyBzcGVjaWZpZWQgdGhlIHNhbWUgd2F5IGFzIHRoZSBibGl0Ci0gKiAgICBk ZXN0aW5hdGlvbjogaXQgY2FuIGJlIGEgcmVjdGFuZ2xlIHdoaWNoIHNwYW5zIHplcm8gb3IgbW9y ZQotICogICAgc2NyZWVucywgc3BlY2lmaWVkIHJlbGF0aXZlIHRvIGVpdGhlciBhIHNjcmVlbiBv ciB0byB0aGUgdmlydHVhbAotICogICAgY29vcmRpbmF0ZSBzeXN0ZW0ncyBvcmlnaW4uIElmIHRo ZSBzb3VyY2UgcmVjdGFuZ2xlIGluY2x1ZGVzCi0gKiAgICBwaXhlbHMgd2hpY2ggYXJlIG5vdCBm cm9tIGV4YWN0bHkgb25lIHNjcmVlbiwgdGhlIHJlc3VsdHMgYXJlCi0gKiAgICB1bmRlZmluZWQu Ci0gKgotICogQXZhaWxhYmlsaXR5OgotICogICAgU1ZHQV9GSUZPX0NBUF9TQ1JFRU5fT0JKRUNU IG9yIFNWR0FfRklGT19DQVBfU0NSRUVOX09CSkVDVF8yCi0gKi8KLQotdHlwZWRlZgotc3RydWN0 IHsKLSAgIFNWR0FTaWduZWRQb2ludCAgc3JjT3JpZ2luOwotICAgdWludDMyICAgICAgICAgICBz cmNTY3JlZW5JZDsKLX0gU1ZHQUZpZm9DbWRBbm5vdGF0aW9uQ29weTsKLQotCi0vKgotICogU1ZH QV9DTURfREVGSU5FX0dNUjIgLS0KLSAqCi0gKiAgICBEZWZpbmUgZ3Vlc3QgbWVtb3J5IHJlZ2lv biB2Mi4gIFNlZSB0aGUgZGVzY3JpcHRpb24gb2YgR01ScyBhYm92ZS4KLSAqCi0gKiBBdmFpbGFi aWxpdHk6Ci0gKiAgICBTVkdBX0NBUF9HTVIyCi0gKi8KLQotdHlwZWRlZgotc3RydWN0IHsKLSAg IHVpbnQzMiBnbXJJZDsKLSAgIHVpbnQzMiBudW1QYWdlczsKLX0gU1ZHQUZpZm9DbWREZWZpbmVH TVIyOwotCi0KLS8qCi0gKiBTVkdBX0NNRF9SRU1BUF9HTVIyIC0tCi0gKgotICogICAgUmVtYXAg Z3Vlc3QgbWVtb3J5IHJlZ2lvbiB2Mi4gIFNlZSB0aGUgZGVzY3JpcHRpb24gb2YgR01ScyBhYm92 ZS4KLSAqCi0gKiAgICBUaGlzIGNvbW1hbmQgYWxsb3dzIGd1ZXN0IHRvIG1vZGlmeSBhIHBvcnRp b24gb2YgYW4gZXhpc3RpbmcgR01SIGJ5Ci0gKiAgICBpbnZhbGlkYXRpbmcgaXQgb3IgcmVhc3Np Z25pbmcgaXQgdG8gZGlmZmVyZW50IGd1ZXN0IHBoeXNpY2FsIHBhZ2VzLgotICogICAgVGhlIHBh Z2VzIGFyZSBpZGVudGlmaWVkIGJ5IHBoeXNpY2FsIHBhZ2UgbnVtYmVyIChQUE4pLiAgVGhlIHBh Z2VzCi0gKiAgICBhcmUgYXNzdW1lZCB0byBiZSBwaW5uZWQgYW5kIHZhbGlkIGZvciBETUEgb3Bl cmF0aW9ucy4KLSAqCi0gKiAgICBEZXNjcmlwdGlvbiBvZiBjb21tYW5kIGZsYWdzOgotICoKLSAq ICAgIFNWR0FfUkVNQVBfR01SMl9WSUFfR01SOiBJZiBlbmFibGVkLCByZWZlcmVuY2VzIGEgUFBO IGxpc3QgaW4gYSBHTVIuCi0gKiAgICAgICBUaGUgUFBOIGxpc3QgbXVzdCBub3Qgb3ZlcmxhcCB3 aXRoIHRoZSByZW1hcCByZWdpb24gKHRoaXMgY2FuIGJlCi0gKiAgICAgICBoYW5kbGVkIHRyaXZp YWxseSBieSByZWZlcmVuY2luZyBhIHNlcGFyYXRlIEdNUikuICBJZiBmbGFnIGlzCi0gKiAgICAg ICBkaXNhYmxlZCwgUFBOIGxpc3QgaXMgYXBwZW5kZWQgdG8gU1ZHQVJlbWFwR01SIGNvbW1hbmQu Ci0gKgotICogICAgU1ZHQV9SRU1BUF9HTVIyX1BQTjY0OiBJZiBzZXQsIFBQTiBsaXN0IGlzIGlu IFBQTjY0IGZvcm1hdCwgb3RoZXJ3aXNlCi0gKiAgICAgICBpdCBpcyBpbiBQUE4zMiBmb3JtYXQu Ci0gKgotICogICAgU1ZHQV9SRU1BUF9HTVIyX1NJTkdMRV9QUE46IElmIHNldCwgUFBOIGxpc3Qg Y29udGFpbnMgYSBzaW5nbGUgZW50cnkuCi0gKiAgICAgICBBIHNpbmdsZSBQUE4gY2FuIGJlIHVz ZWQgdG8gaW52YWxpZGF0ZSBhIHBvcnRpb24gb2YgYSBHTVIgb3IKLSAqICAgICAgIG1hcCBpdCB0 byB0byBhIHNpbmdsZSBndWVzdCBzY3JhdGNoIHBhZ2UuCi0gKgotICogQXZhaWxhYmlsaXR5Ogot ICogICAgU1ZHQV9DQVBfR01SMgotICovCi0KLXR5cGVkZWYgZW51bSB7Ci0gICBTVkdBX1JFTUFQ X0dNUjJfUFBOMzIgICAgICAgICA9IDAsCi0gICBTVkdBX1JFTUFQX0dNUjJfVklBX0dNUiAgICAg ICA9ICgxIDw8IDApLAotICAgU1ZHQV9SRU1BUF9HTVIyX1BQTjY0ICAgICAgICAgPSAoMSA8PCAx KSwKLSAgIFNWR0FfUkVNQVBfR01SMl9TSU5HTEVfUFBOICAgID0gKDEgPDwgMiksCi19IFNWR0FS ZW1hcEdNUjJGbGFnczsKLQotdHlwZWRlZgotc3RydWN0IHsKLSAgIHVpbnQzMiBnbXJJZDsKLSAg IFNWR0FSZW1hcEdNUjJGbGFncyBmbGFnczsKLSAgIHVpbnQzMiBvZmZzZXRQYWdlczsgLyogb2Zm c2V0IGluIHBhZ2VzIHRvIGJlZ2luIHJlbWFwICovCi0gICB1aW50MzIgbnVtUGFnZXM7IC8qIG51 bWJlciBvZiBwYWdlcyB0byByZW1hcCAqLwotICAgLyoKLSAgICAqIEZvbGxvd2VkIGJ5IGFkZGl0 aW9uYWwgZGF0YSBkZXBlbmRpbmcgb24gU1ZHQVJlbWFwR01SMkZsYWdzLgotICAgICoKLSAgICAq IElmIGZsYWcgU1ZHQV9SRU1BUF9HTVIyX1ZJQV9HTVIgaXMgc2V0LCBzaW5nbGUgU1ZHQUd1ZXN0 UHRyIGZvbGxvd3MuCi0gICAgKiBPdGhlcndpc2UgYW4gYXJyYXkgb2YgcGFnZSBkZXNjcmlwdG9y cyBpbiBQUE4zMiBvciBQUE42NCBmb3JtYXQKLSAgICAqIChhY2NvcmRpbmcgdG8gZmxhZyBTVkdB X1JFTUFQX0dNUjJfUFBONjQpIGZvbGxvd3MuICBJZiBmbGFnCi0gICAgKiBTVkdBX1JFTUFQX0dN UjJfU0lOR0xFX1BQTiBpcyBzZXQsIGFycmF5IGNvbnRhaW5zIGEgc2luZ2xlIGVudHJ5LgotICAg ICovCi19IFNWR0FGaWZvQ21kUmVtYXBHTVIyOwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvc3ZnYV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9z dmdhX3R5cGVzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExODY4OTguLjAwMDAw MDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9zdmdhX3R5cGVzLmgKKysrIC9kZXYvbnVs bApAQCAtMSw0OCArMCwwIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCi0gKiBDb3B5cmlnaHQg wqkgMjAwOSBWTXdhcmUsIEluYy4sIFBhbG8gQWx0bywgQ0EuLCBVU0EKLSAqIEFsbCBSaWdodHMg UmVzZXJ2ZWQuCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2Fy ZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSAqICJTb2Z0d2FyZSIp LCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcK LSAqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt ZXJnZSwgcHVibGlzaCwKLSAqIGRpc3RyaWJ1dGUsIHN1YiBsaWNlbnNlLCBhbmQvb3Igc2VsbCBj b3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KLSAqIHBlcm1pdCBwZXJzb25zIHRvIHdob20g dGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotICogdGhlIGZv bGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlCi0gKiBuZXh0IHBhcmFncmFw aCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9u cwotICogb2YgdGhlIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBM SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNI QU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04t SU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTAotICogVEhFIENPUFlSSUdIVCBIT0xERVJT LCBBVVRIT1JTIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLAot ICogREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP TlRSQUNULCBUT1JUIE9SCi0gKiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElO IENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFCi0gKiBVU0UgT1IgT1RIRVIgREVB TElOR1MgSU4gVEhFIFNPRlRXQVJFLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyoqCi0g KiBTaWxseSB0eXBlZGVmcyBmb3IgdGhlIHN2Z2EgaGVhZGVycy4gQ3VycmVudGx5IHRoZSBoZWFk ZXJzIGFyZSBzaGFyZWQKLSAqIGJldHdlZW4gYWxsIGNvbXBvbmVudHMgdGhhdCB0YWxrIHRvIHN2 Z2EuIEFuZCBhcyBzdWNoIHRoZSBoZWFkZXJzIGFyZQotICogYXJlIGluIGEgY29tcGxldGVseSBk aWZmZXJlbnQgc3R5bGUgYW5kIHVzZSB3ZWlyZCBkZWZpbmVzLgotICoKLSAqIFRoaXMgZmlsZSBs ZXRzIGFsbCB0aGUgdWdseSBiZSBwcmVmaXhlZCB3aXRoIHN2Z2EqLgotICovCi0KLSNpZm5kZWYg X1NWR0FfVFlQRVNfSF8KLSNkZWZpbmUgX1NWR0FfVFlQRVNfSF8KLQotdHlwZWRlZiB1aW50MTZf dCB1aW50MTY7Ci10eXBlZGVmIHVpbnQzMl90IHVpbnQzMjsKLXR5cGVkZWYgdWludDhfdCB1aW50 ODsKLXR5cGVkZWYgaW50MzJfdCBpbnQzMjsKLXR5cGVkZWYgdWludDY0X3QgdWludDY0OwotdHlw ZWRlZiBib29sIEJvb2w7Ci10eXBlZGVmIHVpbnQ2NCBQQTsKLXR5cGVkZWYgdWludDMyIFNWR0FN b2JJZDsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9jbWRidWYuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2NtZGJ1Zi5jCmluZGV4 IDU2NjdjMTMuLjA0ZmE4NTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2NtZGJ1Zi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2NtZGJ1Zi5j CkBAIC0xMTM5LDcgKzExMzksNyBAQCBpbnQgdm13X2NtZGJ1Zl9zZXRfcG9vbF9zaXplKHN0cnVj dCB2bXdfY21kYnVmX21hbiAqbWFuLAogCQkgKiBhY3R1YWxseSBjYWxsIGludG8gdGhlIGFscmVh ZHkgZW5hYmxlZCBtYW5hZ2VyLCB3aGVuCiAJCSAqIGJpbmRpbmcgdGhlIE1PQi4KIAkJICovCi0J CWlmICghKGRldl9wcml2LT5jYXBhYmlsaXRpZXMgJiBTVkdBX0NBUF9DTURfQlVGRkVSU18zKSkK KwkJaWYgKCEoZGV2X3ByaXYtPmNhcGFiaWxpdGllcyAmIFNWR0FfQ0FQX0RYKSkKIAkJCXJldHVy biAtRU5PTUVNOwogCiAJCXJldCA9IHR0bV9ib19jcmVhdGUoJmRldl9wcml2LT5iZGV2LCBzaXpl LCB0dG1fYm9fdHlwZV9kZXZpY2UsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9jb250ZXh0 LmMKaW5kZXggMmFhOGJiOC4uMTVmOTU0NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfY29udGV4dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2NvbnRleHQuYwpAQCAtNjk2LDcgKzY5Niw3IEBAIGludCB2bXdfY29udGV4dF9iaW5kaW5nX2Fk ZChzdHJ1Y3Qgdm13X2N0eF9iaW5kaW5nX3N0YXRlICpjYnMsCiAJCWJyZWFrOwogCWNhc2Ugdm13 X2N0eF9iaW5kaW5nX3NoYWRlcjoKIAkJaWYgKHVubGlrZWx5KCh1bnNpZ25lZCliaS0+aTEuc2hh ZGVyX3R5cGUgPj0KLQkJCSAgICAgU1ZHQTNEX1NIQURFUlRZUEVfTUFYKSkgeworCQkJICAgICBT VkdBM0RfU0hBREVSVFlQRV9QUkVEWF9NQVgpKSB7CiAJCQlEUk1fRVJST1IoIklsbGVnYWwgc2hh ZGVyIHR5cGUgJXUuXG4iLAogCQkJCSAgKHVuc2lnbmVkKSBiaS0+aTEuc2hhZGVyX3R5cGUpOwog CQkJcmV0dXJuIC1FSU5WQUw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jCmluZGV4IDY1 ZTM1NjUuLmI4M2FkZWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jCkBAIC0yNzgs OCArMjc4LDggQEAgc3RhdGljIHZvaWQgdm13X3ByaW50X2NhcGFiaWxpdGllcyh1aW50MzJfdCBj YXBhYmlsaXRpZXMpCiAJCURSTV9JTkZPKCIgIENvbW1hbmQgQnVmZmVycyAyLlxuIik7CiAJaWYg KGNhcGFiaWxpdGllcyAmIFNWR0FfQ0FQX0dCT0JKRUNUUykKIAkJRFJNX0lORk8oIiAgR3Vlc3Qg QmFja2VkIFJlc291cmNlcy5cbiIpOwotCWlmIChjYXBhYmlsaXRpZXMgJiBTVkdBX0NBUF9DTURf QlVGRkVSU18zKQotCQlEUk1fSU5GTygiICBDb21tYW5kIEJ1ZmZlcnMgMy5cbiIpOworCWlmIChj YXBhYmlsaXRpZXMgJiBTVkdBX0NBUF9EWCkKKwkJRFJNX0lORk8oIiAgRFggRmVhdHVyZXMuXG4i KTsKIH0KIAogLyoqCkBAIC0xMjY0LDcgKzEyNjQsOCBAQCBzdGF0aWMgdm9pZCBfX3Ztd19zdmdh X2Rpc2FibGUoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdikKIAlpZiAoZGV2X3ByaXYtPmJk ZXYubWFuW1RUTV9QTF9WUkFNXS51c2VfdHlwZSkgewogCQlkZXZfcHJpdi0+YmRldi5tYW5bVFRN X1BMX1ZSQU1dLnVzZV90eXBlID0gZmFsc2U7CiAJCXZtd193cml0ZShkZXZfcHJpdiwgU1ZHQV9S RUdfRU5BQkxFLAotCQkJICBTVkdBX1JFR19FTkFCTEVfRU5BQkxFX0hJREUpOworCQkJICBTVkdB X1JFR19FTkFCTEVfSElERSB8CisJCQkgIFNWR0FfUkVHX0VOQUJMRV9FTkFCTEUpOwogCX0KIAlz cGluX3VubG9jaygmZGV2X3ByaXYtPnN2Z2FfbG9jayk7CiB9CkBAIC0xMjgyLDExICsxMjgzLDEy IEBAIHZvaWQgdm13X3N2Z2FfZGlzYWJsZShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2KQog CXNwaW5fbG9jaygmZGV2X3ByaXYtPnN2Z2FfbG9jayk7CiAJaWYgKGRldl9wcml2LT5iZGV2Lm1h bltUVE1fUExfVlJBTV0udXNlX3R5cGUpIHsKIAkJZGV2X3ByaXYtPmJkZXYubWFuW1RUTV9QTF9W UkFNXS51c2VfdHlwZSA9IGZhbHNlOwotCQl2bXdfd3JpdGUoZGV2X3ByaXYsIFNWR0FfUkVHX0VO QUJMRSwKLQkJCSAgU1ZHQV9SRUdfRU5BQkxFX0VOQUJMRV9ISURFKTsKIAkJc3Bpbl91bmxvY2so JmRldl9wcml2LT5zdmdhX2xvY2spOwogCQlpZiAodHRtX2JvX2V2aWN0X21tKCZkZXZfcHJpdi0+ YmRldiwgVFRNX1BMX1ZSQU0pKQogCQkJRFJNX0VSUk9SKCJGYWlsZWQgZXZpY3RpbmcgVlJBTSBi dWZmZXJzLlxuIik7CisJCXZtd193cml0ZShkZXZfcHJpdiwgU1ZHQV9SRUdfRU5BQkxFLAorCQkJ ICBTVkdBX1JFR19FTkFCTEVfSElERSB8CisJCQkgIFNWR0FfUkVHX0VOQUJMRV9FTkFCTEUpOwog CX0gZWxzZQogCQlzcGluX3VubG9jaygmZGV2X3ByaXYtPnN2Z2FfbG9jayk7CiAJdHRtX3dyaXRl X3VubG9jaygmZGV2X3ByaXYtPnJlc2VydmF0aW9uX3NlbSk7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2Rydi5oCmluZGV4IGM5ZWE5YjEuLmY1MTNlNDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2Rydi5oCkBAIC0zMjgsNyArMzI4LDcgQEAgc3RydWN0IHZtd19jdHhfYmluZGluZ19zdGF0 ZSB7CiAJc3RydWN0IGxpc3RfaGVhZCBsaXN0OwogCXN0cnVjdCB2bXdfY3R4X2JpbmRpbmcgcmVu ZGVyX3RhcmdldHNbU1ZHQTNEX1JUX01BWF07CiAJc3RydWN0IHZtd19jdHhfYmluZGluZyB0ZXh0 dXJlX3VuaXRzW1NWR0EzRF9OVU1fVEVYVFVSRV9VTklUU107Ci0Jc3RydWN0IHZtd19jdHhfYmlu ZGluZyBzaGFkZXJzW1NWR0EzRF9TSEFERVJUWVBFX01BWF07CisJc3RydWN0IHZtd19jdHhfYmlu ZGluZyBzaGFkZXJzW1NWR0EzRF9TSEFERVJUWVBFX1BSRURYX01BWF07CiB9OwogCiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2V4ZWNidWYuYyBiL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2V4ZWNidWYuYwppbmRleCA0MGZkZDAyLi44NDcyNjRmOCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZXhlY2J1Zi5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2V4ZWNidWYuYwpAQCAtMTk4MSw4ICsxOTgx LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2bXdfY21kX2VudHJ5IHZtd19jbWRfZW50cmllc1tT VkdBXzNEX0NNRF9NQVhdID0gewogCQkgICAgZmFsc2UsIGZhbHNlLCB0cnVlKSwKIAlWTVdfQ01E X0RFRihTVkdBXzNEX0NNRF9ERVNUUk9ZX0dCX01PQiwgJnZtd19jbWRfaW52YWxpZCwKIAkJICAg IGZhbHNlLCBmYWxzZSwgdHJ1ZSksCi0JVk1XX0NNRF9ERUYoU1ZHQV8zRF9DTURfUkVERUZJTkVf R0JfTU9CLCAmdm13X2NtZF9pbnZhbGlkLAotCQkgICAgZmFsc2UsIGZhbHNlLCB0cnVlKSwKIAlW TVdfQ01EX0RFRihTVkdBXzNEX0NNRF9VUERBVEVfR0JfTU9CX01BUFBJTkcsICZ2bXdfY21kX2lu dmFsaWQsCiAJCSAgICBmYWxzZSwgZmFsc2UsIHRydWUpLAogCVZNV19DTURfREVGKFNWR0FfM0Rf Q01EX0RFRklORV9HQl9TVVJGQUNFLCAmdm13X2NtZF9pbnZhbGlkLApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmlmby5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfZmlmby5jCmluZGV4IDdhNmNmMTcuLmNiMjQ5MzYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZpZm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9maWZvLmMKQEAgLTExOSw3ICsxMTksOCBAQCBpbnQgdm13X2ZpZm9faW5pdChz dHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LCBzdHJ1Y3Qgdm13X2ZpZm9fc3RhdGUgKmZpZm8p CiAJZGV2X3ByaXYtPmNvbmZpZ19kb25lX3N0YXRlID0gdm13X3JlYWQoZGV2X3ByaXYsIFNWR0Ff UkVHX0NPTkZJR19ET05FKTsKIAlkZXZfcHJpdi0+dHJhY2VzX3N0YXRlID0gdm13X3JlYWQoZGV2 X3ByaXYsIFNWR0FfUkVHX1RSQUNFUyk7CiAKLQl2bXdfd3JpdGUoZGV2X3ByaXYsIFNWR0FfUkVH X0VOQUJMRSwgU1ZHQV9SRUdfRU5BQkxFX0VOQUJMRV9ISURFKTsKKwl2bXdfd3JpdGUoZGV2X3By aXYsIFNWR0FfUkVHX0VOQUJMRSwgU1ZHQV9SRUdfRU5BQkxFX0VOQUJMRSB8CisJCSAgU1ZHQV9S RUdfRU5BQkxFX0hJREUpOwogCXZtd193cml0ZShkZXZfcHJpdiwgU1ZHQV9SRUdfVFJBQ0VTLCAw KTsKIAogCW1pbiA9IDQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9pb2N0bC5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfaW9jdGwuYwppbmRleCA2 ZGI5ODI4Li45MWVmZTljIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9pb2N0bC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2lvY3RsLmMKQEAg LTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJ2bXdnZnhfZHJ2LmgiCiAjaW5jbHVkZSA8ZHJtL3Zt d2dmeF9kcm0uaD4KICNpbmNsdWRlICJ2bXdnZnhfa21zLmgiCisjaW5jbHVkZSAiZGV2aWNlX2lu Y2x1ZGUvc3ZnYTNkX2NhcHMuaCIKIAogc3RydWN0IHN2Z2FfM2RfY29tcGF0X2NhcCB7CiAJU1ZH QTNkQ2Fwc1JlY29yZEhlYWRlciBoZWFkZXI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9tb2IuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X21vYi5j CmluZGV4IGM1ODk3Y2IuLjViMDI4N2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdn Zngvdm13Z2Z4X21vYi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X21vYi5j CkBAIC0yNTMsNyArMjUzLDcgQEAgaW50IHZtd19vdGFibGVzX3NldHVwKHN0cnVjdCB2bXdfcHJp dmF0ZSAqZGV2X3ByaXYpCiAJCVZNV0dGWF9OVU1fR0JfQ09OVEVYVCAqIFNWR0EzRF9PVEFCTEVf Q09OVEVYVF9FTlRSWV9TSVpFOwogCW90YWJsZXNbU1ZHQV9PVEFCTEVfU0hBREVSXS5zaXplID0K IAkJVk1XR0ZYX05VTV9HQl9TSEFERVIgKiBTVkdBM0RfT1RBQkxFX1NIQURFUl9FTlRSWV9TSVpF OwotCW90YWJsZXNbU1ZHQV9PVEFCTEVfU0NSRUVOX1RBUkdFVF0uc2l6ZSA9CisJb3RhYmxlc1tT VkdBX09UQUJMRV9TQ1JFRU5UQVJHRVRdLnNpemUgPQogCQlWTVdHRlhfTlVNX0dCX1NDUkVFTl9U QVJHRVQgKgogCQlTVkdBM0RfT1RBQkxFX1NDUkVFTl9UQVJHRVRfRU5UUllfU0laRTsKIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfb3ZlcmxheS5jIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfb3ZlcmxheS5jCmluZGV4IGQ4MzkwNTEuLjc1NWU5NDEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X292ZXJsYXkuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9vdmVybGF5LmMKQEAgLTMxLDggKzMxLDgg QEAKIAogI2luY2x1ZGUgPGRybS90dG0vdHRtX3BsYWNlbWVudC5oPgogCi0jaW5jbHVkZSAic3Zn YV9vdmVybGF5LmgiCi0jaW5jbHVkZSAic3ZnYV9lc2NhcGUuaCIKKyNpbmNsdWRlICJkZXZpY2Vf aW5jbHVkZS9zdmdhX292ZXJsYXkuaCIKKyNpbmNsdWRlICJkZXZpY2VfaW5jbHVkZS9zdmdhX2Vz Y2FwZS5oIgogCiAjZGVmaW5lIFZNV19NQVhfTlVNX1NUUkVBTVMgMQogI2RlZmluZSBWTVdfT1ZF UkxBWV9DQVBfTUFTSyAoU1ZHQV9GSUZPX0NBUF9WSURFTyB8IFNWR0FfRklGT19DQVBfRVNDQVBF KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVnLmggYi9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZWcuaAppbmRleCAyOWQwNmE0Li41MjkyOTVkIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZWcuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZWcuaApAQCAtNTAsOCArNTAsNiBAQCBzdHJ1Y3Qg c3ZnYV9maWZvX2NtZF9mZW5jZSB7CiAjZGVmaW5lIFNWR0FfU1lOQ19HRU5FUklDICAgICAgICAg MQogI2RlZmluZSBTVkdBX1NZTkNfRklGT0ZVTEwgICAgICAgIDIKIAotI2luY2x1ZGUgInN2Z2Ff dHlwZXMuaCIKLQotI2luY2x1ZGUgInN2Z2EzZF9yZWcuaCIKKyNpbmNsdWRlICJkZXZpY2VfaW5j bHVkZS9zdmdhM2RfcmVnLmgiCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfc3RkdS5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3Rk dS5jCmluZGV4IDQ5M2ZjZDEuLmQ0YTQ1MzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X3N0ZHUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9z dGR1LmMKQEAgLTI2LDcgKzI2LDcgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKICNpbmNs dWRlICJ2bXdnZnhfa21zLmgiCi0jaW5jbHVkZSAic3ZnYTNkX3N1cmZhY2VkZWZzLmgiCisjaW5j bHVkZSAiZGV2aWNlX2luY2x1ZGUvc3ZnYTNkX3N1cmZhY2VkZWZzLmgiCiAjaW5jbHVkZSA8ZHJt L2RybV9wbGFuZV9oZWxwZXIuaD4KIAogI2RlZmluZSB2bXdfY3J0Y190b19zdGR1KHgpIFwKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N1cmZhY2UuYyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N1cmZhY2UuYwppbmRleCA4NDNkN2UwLi5lZWExNzkw IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdXJmYWNlLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3VyZmFjZS5jCkBAIC0yOCw3ICsyOCw3 IEBACiAjaW5jbHVkZSAidm13Z2Z4X2Rydi5oIgogI2luY2x1ZGUgInZtd2dmeF9yZXNvdXJjZV9w cml2LmgiCiAjaW5jbHVkZSA8dHRtL3R0bV9wbGFjZW1lbnQuaD4KLSNpbmNsdWRlICJzdmdhM2Rf c3VyZmFjZWRlZnMuaCIKKyNpbmNsdWRlICJkZXZpY2VfaW5jbHVkZS9zdmdhM2Rfc3VyZmFjZWRl ZnMuaCIKIAogLyoqCiAgKiBzdHJ1Y3Qgdm13X3VzZXJfc3VyZmFjZSAtIFVzZXItc3BhY2Ugdmlz aWJsZSBzdXJmYWNlIHJlc291cmNlCi0tIAoyLjEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCg==