From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrzej Hajda Subject: [PATCH v3 3/3] drm/bridge: add Silicon Image SiI8620 driver Date: Mon, 26 Sep 2016 15:40:03 +0200 Message-ID: <1474897203-2982-1-git-send-email-a.hajda@samsung.com> References: <1473842027-21670-4-git-send-email-a.hajda@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by gabe.freedesktop.org (Postfix) with ESMTPS id 68E346E149 for ; Mon, 26 Sep 2016 13:40:30 +0000 (UTC) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OE4005385ZE0980@mailout2.w1.samsung.com> for dri-devel@lists.freedesktop.org; Mon, 26 Sep 2016 14:40:26 +0100 (BST) In-reply-to: <1473842027-21670-4-git-send-email-a.hajda@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "open list:DRM DRIVERS" , Inki Dae , Daniel Vetter Cc: Bartlomiej Zolnierkiewicz , Marek Szyprowski List-Id: dri-devel@lists.freedesktop.org U2lJODYyMCB0cmFuc21pdHRlciBjb252ZXJ0cyBlVE1EUy9IRE1JIHNpZ25hbCB0byBNSEwgMy4w LgpJdCBpcyBjb250cm9sbGVkIHZpYSBJMkMgYnVzLiBJdHMgaW50ZXJhY3Rpb24gd2l0aCBvdGhl cgpkZXZpY2VzIGluIHZpZGVvIHBpcGVsaW5lIGlzIHBlcmZvcm1lZCBtYWlubHkgb24gSFcgbGV2 ZWwuClRoZSBvbmx5IGludGVyYWN0aW9uIGl0IGRvZXMgb24gZGV2aWNlIGRyaXZlciBsZXZlbCBp cwpmaWx0ZXJpbmctb3V0IHVuc3VwcG9ydGVkIHZpZGVvIG1vZGVzLCBpdCBleHBvc2VzIGRybV9i cmlkZ2UKaW50ZXJmYWNlIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24uCgpTaWduZWQtb2ZmLWJ5 OiBBbmRyemVqIEhhamRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgotLS0KdjM6CiAgLSBtb2RpZmll ZCBkcml2ZXIgZGVzY3JpcHRpb24sCiAgLSByZW1vdmVkIGR1bW15IGJyaWRnZSBjYWxsYmFja3Ms CiAgLSByZW1vdmVkIGxvY2tpbmcgZnJvbSBkcml2ZXIgcmVtb3ZlIGZ1bmN0aW9uLgotLS0KIGRy aXZlcnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZyAgICAgICB8ICAgIDcgKwogZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS9NYWtlZmlsZSAgICAgIHwgICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdl L3NpbC1zaWk4NjIwLmMgfCAxNTU3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IGRyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAuaCB8IDE1MTcgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDMwODIgaW5zZXJ0aW9ucygr KQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAu YwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAu aAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZyBiL2RyaXZlcnMv Z3B1L2RybS9icmlkZ2UvS2NvbmZpZwppbmRleCBiNTkwZTY3Li5lN2ZiMTc5IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS9LY29uZmlnCkBAIC01MCw2ICs1MCwxMyBAQCBjb25maWcgRFJNX1BBUkFERV9QUzg2MjIK IAktLS1oZWxwLS0tCiAJICBQYXJhZGUgZURQLUxWRFMgYnJpZGdlIGNoaXAgZHJpdmVyLgogCitj b25maWcgRFJNX1NJTF9TSUk4NjIwCisJdHJpc3RhdGUgIlNpbGljb24gSW1hZ2UgU0lJODYyMCBI RE1JL01ITCBicmlkZ2UiCisJZGVwZW5kcyBvbiBPRgorCXNlbGVjdCBEUk1fS01TX0hFTFBFUgor CWhlbHAKKwkgIFNpbGljb24gSW1hZ2UgU0lJODYyMCBIRE1JL01ITCBicmlkZ2UgY2hpcCBkcml2 ZXIuCisKIGNvbmZpZyBEUk1fU0lJOTAyWAogCXRyaXN0YXRlICJTaWxpY29uIEltYWdlIHNpaTkw MnggUkdCL0hETUkgYnJpZGdlIgogCWRlcGVuZHMgb24gT0YKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9icmlkZ2UvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL01ha2VmaWxl CmluZGV4IGVmZGIwN2UuLjMwNGNmOWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlk Z2UvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9NYWtlZmlsZQpAQCAtNSw2 ICs1LDcgQEAgb2JqLSQoQ09ORklHX0RSTV9EV19IRE1JKSArPSBkdy1oZG1pLm8KIG9iai0kKENP TkZJR19EUk1fRFdfSERNSV9BSEJfQVVESU8pICs9IGR3LWhkbWktYWhiLWF1ZGlvLm8KIG9iai0k KENPTkZJR19EUk1fTlhQX1BUTjM0NjApICs9IG54cC1wdG4zNDYwLm8KIG9iai0kKENPTkZJR19E Uk1fUEFSQURFX1BTODYyMikgKz0gcGFyYWRlLXBzODYyMi5vCitvYmotJChDT05GSUdfRFJNX1NJ TF9TSUk4NjIwKSArPSBzaWwtc2lpODYyMC5vCiBvYmotJChDT05GSUdfRFJNX1NJSTkwMlgpICs9 IHNpaTkwMngubwogb2JqLSQoQ09ORklHX0RSTV9UT1NISUJBX1RDMzU4NzY3KSArPSB0YzM1ODc2 Ny5vCiBvYmotJChDT05GSUdfRFJNX0FOQUxPR0lYX0RQKSArPSBhbmFsb2dpeC8KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9icmlkZ2Uvc2lsLXNpaTg2MjAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li45MDdjNjEyCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwt c2lpODYyMC5jCkBAIC0wLDAgKzEsMTU1NyBAQAorLyoKKyAqIFNpbGljb24gSW1hZ2UgU2lJODYy MCBIRE1JL01ITCBicmlkZ2UgZHJpdmVyCisgKgorICogQ29weXJpZ2h0IChDKSAyMDE1LCBTYW1z dW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorICogQW5kcnplaiBIYWpkYSA8YS5oYWpkYUBzYW1z dW5nLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBi eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpbmNsdWRlIDxkcm0vZHJt X2NydGMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KKworI2luY2x1ZGUgPGxpbnV4L2Ns ay5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby9jb25z dW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVw dC5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgor I2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9taGwuaD4KKyNpbmNsdWRl IDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxp bnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKworI2lu Y2x1ZGUgInNpbC1zaWk4NjIwLmgiCisKKyNkZWZpbmUgVkFMX1JYX0hETUlfQ1RSTDJfREVGVkFM CVZBTF9SWF9IRE1JX0NUUkwyX0lETEVfQ05UKDMpCisKK2VudW0gc2lpODYyMF9tb2RlIHsKKwlD TV9ESVNDT05ORUNURUQsCisJQ01fRElTQ09WRVJZLAorCUNNX01ITDEsCisJQ01fTUhMMywKKwlD TV9FQ0JVU19TCit9OworCitlbnVtIHNpaTg2MjBfc2lua190eXBlIHsKKwlTSU5LX05PTkUsCisJ U0lOS19IRE1JLAorCVNJTktfRFZJCit9OworCitlbnVtIHNpaTg2MjBfbXRfc3RhdGUgeworCU1U X1NUQVRFX1JFQURZLAorCU1UX1NUQVRFX0JVU1ksCisJTVRfU1RBVEVfRE9ORQorfTsKKworc3Ry dWN0IHNpaTg2MjAgeworCXN0cnVjdCBkcm1fYnJpZGdlIGJyaWRnZTsKKwlzdHJ1Y3QgZGV2aWNl ICpkZXY7CisJc3RydWN0IGNsayAqY2xrX3h0YWw7CisJc3RydWN0IGdwaW9fZGVzYyAqZ3Bpb19y ZXNldDsKKwlzdHJ1Y3QgZ3Bpb19kZXNjICpncGlvX2ludDsKKwlzdHJ1Y3QgcmVndWxhdG9yX2J1 bGtfZGF0YSBzdXBwbGllc1syXTsKKwlzdHJ1Y3QgbXV0ZXggbG9jazsgLyogY29udGV4dCBsb2Nr LCBwcm90ZWN0cyBmaWVsZHMgYmVsb3cgKi8KKwlpbnQgZXJyb3I7CisJZW51bSBzaWk4NjIwX21v ZGUgbW9kZTsKKwllbnVtIHNpaTg2MjBfc2lua190eXBlIHNpbmtfdHlwZTsKKwl1OCBjYnVzX3N0 YXR1czsKKwl1OCBzdGF0W01ITF9EU1RfU0laRV07CisJdTggeHN0YXRbTUhMX1hEU19TSVpFXTsK Kwl1OCBkZXZjYXBbTUhMX0RDQVBfU0laRV07CisJdTggeGRldmNhcFtNSExfWERDX1NJWkVdOwor CXU4IGF2aWZbMTldOworCXN0cnVjdCBlZGlkICplZGlkOworCXVuc2lnbmVkIGludCBnZW4yX3dy aXRlX2J1cnN0OjE7CisJZW51bSBzaWk4NjIwX210X3N0YXRlIG10X3N0YXRlOworCXN0cnVjdCBs aXN0X2hlYWQgbXRfcXVldWU7Cit9OworCitzdHJ1Y3Qgc2lpODYyMF9tdF9tc2c7CisKK3R5cGVk ZWYgdm9pZCAoKnNpaTg2MjBfbXRfbXNnX2NiKShzdHJ1Y3Qgc2lpODYyMCAqY3R4LAorCQkJCSAg c3RydWN0IHNpaTg2MjBfbXRfbXNnICptc2cpOworCitzdHJ1Y3Qgc2lpODYyMF9tdF9tc2cgewor CXN0cnVjdCBsaXN0X2hlYWQgbm9kZTsKKwl1OCByZWdbNF07CisJdTggcmV0OworCXNpaTg2MjBf bXRfbXNnX2NiIHNlbmQ7CisJc2lpODYyMF9tdF9tc2dfY2IgcmVjdjsKK307CisKK3N0YXRpYyBj b25zdCB1OCBzaWk4NjIwX2kyY19wYWdlW10gPSB7CisJMHgzOSwgLyogTWFpbiBTeXN0ZW0gKi8K KwkweDNkLCAvKiBURE0gYW5kIEhTSUMgKi8KKwkweDQ5LCAvKiBUTURTIFJlY2VpdmVyLCBNSEwg RURJRCAqLworCTB4NGQsIC8qIGVNU0MsIEhEQ1AsIEhTSUMgKi8KKwkweDVkLCAvKiBNSEwgU3Bl YyAqLworCTB4NjQsIC8qIE1ITCBDQlVTICovCisJMHg1OSwgLyogSGFyZHdhcmUgVFBJIChUcmFu c21pdHRlciBQcm9ncmFtbWluZyBJbnRlcmZhY2UpICovCisJMHg2MSwgLyogZUNCVVMtUywgZUNC VVMtRCAqLworfTsKKworc3RhdGljIHZvaWQgc2lpODYyMF9mZXRjaF9lZGlkKHN0cnVjdCBzaWk4 NjIwICpjdHgpOworc3RhdGljIHZvaWQgc2lpODYyMF9zZXRfdXBzdHJlYW1fZWRpZChzdHJ1Y3Qg c2lpODYyMCAqY3R4KTsKK3N0YXRpYyB2b2lkIHNpaTg2MjBfZW5hYmxlX2hwZChzdHJ1Y3Qgc2lp ODYyMCAqY3R4KTsKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbWhsX2Rpc2Nvbm5lY3RlZChzdHJ1Y3Qg c2lpODYyMCAqY3R4KTsKKworc3RhdGljIGludCBzaWk4NjIwX2NsZWFyX2Vycm9yKHN0cnVjdCBz aWk4NjIwICpjdHgpCit7CisJaW50IHJldCA9IGN0eC0+ZXJyb3I7CisKKwljdHgtPmVycm9yID0g MDsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3JlYWRfYnVmKHN0cnVj dCBzaWk4NjIwICpjdHgsIHUxNiBhZGRyLCB1OCAqYnVmLCBpbnQgbGVuKQoreworCXN0cnVjdCBk ZXZpY2UgKmRldiA9IGN0eC0+ZGV2OworCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQgPSB0b19p MmNfY2xpZW50KGRldik7CisJdTggZGF0YSA9IGFkZHI7CisJc3RydWN0IGkyY19tc2cgbXNnW10g PSB7CisJCXsKKwkJCS5hZGRyID0gc2lpODYyMF9pMmNfcGFnZVthZGRyID4+IDhdLAorCQkJLmZs YWdzID0gY2xpZW50LT5mbGFncywKKwkJCS5sZW4gPSAxLAorCQkJLmJ1ZiA9ICZkYXRhCisJCX0s CisJCXsKKwkJCS5hZGRyID0gc2lpODYyMF9pMmNfcGFnZVthZGRyID4+IDhdLAorCQkJLmZsYWdz ID0gY2xpZW50LT5mbGFncyB8IEkyQ19NX1JELAorCQkJLmxlbiA9IGxlbiwKKwkJCS5idWYgPSBi dWYKKwkJfSwKKwl9OworCWludCByZXQ7CisKKwlpZiAoY3R4LT5lcnJvcikKKwkJcmV0dXJuOwor CisJcmV0ID0gaTJjX3RyYW5zZmVyKGNsaWVudC0+YWRhcHRlciwgbXNnLCAyKTsKKwlkZXZfZGJn KGRldiwgInJlYWQgYXQgJTA0eDogJSpwaCwgJWRcbiIsIGFkZHIsIGxlbiwgYnVmLCByZXQpOwor CisJaWYgKHJldCAhPSAyKSB7CisJCWRldl9lcnIoZGV2LCAiUmVhZCBhdCAlIzA2eCBvZiAlZCBi eXRlcyBmYWlsZWQgd2l0aCBjb2RlICVkLlxuIiwKKwkJCWFkZHIsIGxlbiwgcmV0KTsKKwkJY3R4 LT5lcnJvciA9IHJldCA8IDAgPyByZXQgOiAtRUlPOworCX0KK30KKworc3RhdGljIHU4IHNpaTg2 MjBfcmVhZGIoc3RydWN0IHNpaTg2MjAgKmN0eCwgdTE2IGFkZHIpCit7CisJdTggcmV0OworCisJ c2lpODYyMF9yZWFkX2J1ZihjdHgsIGFkZHIsICZyZXQsIDEpOworCXJldHVybiByZXQ7Cit9CisK K3N0YXRpYyB2b2lkIHNpaTg2MjBfd3JpdGVfYnVmKHN0cnVjdCBzaWk4NjIwICpjdHgsIHUxNiBh ZGRyLCBjb25zdCB1OCAqYnVmLAorCQkJICAgICAgaW50IGxlbikKK3sKKwlzdHJ1Y3QgZGV2aWNl ICpkZXYgPSBjdHgtPmRldjsKKwlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50ID0gdG9faTJjX2Ns aWVudChkZXYpOworCXU4IGRhdGFbMl07CisJc3RydWN0IGkyY19tc2cgbXNnID0geworCQkuYWRk ciA9IHNpaTg2MjBfaTJjX3BhZ2VbYWRkciA+PiA4XSwKKwkJLmZsYWdzID0gY2xpZW50LT5mbGFn cywKKwkJLmxlbiA9IGxlbiArIDEsCisJfTsKKwlpbnQgcmV0OworCisJaWYgKGN0eC0+ZXJyb3Ip CisJCXJldHVybjsKKworCWlmIChsZW4gPiAxKSB7CisJCW1zZy5idWYgPSBrbWFsbG9jKGxlbiAr IDEsIEdGUF9LRVJORUwpOworCQlpZiAoIW1zZy5idWYpIHsKKwkJCWN0eC0+ZXJyb3IgPSAtRU5P TUVNOworCQkJcmV0dXJuOworCQl9CisJCW1lbWNweShtc2cuYnVmICsgMSwgYnVmLCBsZW4pOwor CX0gZWxzZSB7CisJCW1zZy5idWYgPSBkYXRhOworCQltc2cuYnVmWzFdID0gKmJ1ZjsKKwl9CisK Kwltc2cuYnVmWzBdID0gYWRkcjsKKworCXJldCA9IGkyY190cmFuc2ZlcihjbGllbnQtPmFkYXB0 ZXIsICZtc2csIDEpOworCWRldl9kYmcoZGV2LCAid3JpdGUgYXQgJTA0eDogJSpwaCwgJWRcbiIs IGFkZHIsIGxlbiwgYnVmLCByZXQpOworCisJaWYgKHJldCAhPSAxKSB7CisJCWRldl9lcnIoZGV2 LCAiV3JpdGUgYXQgJSMwNnggb2YgJSpwaCBmYWlsZWQgd2l0aCBjb2RlICVkLlxuIiwKKwkJCWFk ZHIsIGxlbiwgYnVmLCByZXQpOworCQljdHgtPmVycm9yID0gcmV0ID86IC1FSU87CisJfQorCisJ aWYgKGxlbiA+IDEpCisJCWtmcmVlKG1zZy5idWYpOworfQorCisjZGVmaW5lIHNpaTg2MjBfd3Jp dGUoY3R4LCBhZGRyLCBhcnIuLi4pIFwKKyh7XAorCXU4IGRbXSA9IHsgYXJyIH07IFwKKwlzaWk4 NjIwX3dyaXRlX2J1ZihjdHgsIGFkZHIsIGQsIEFSUkFZX1NJWkUoZCkpOyBcCit9KQorCitzdGF0 aWMgdm9pZCBfX3NpaTg2MjBfd3JpdGVfc2VxKHN0cnVjdCBzaWk4NjIwICpjdHgsIHUxNiAqc2Vx LCBpbnQgbGVuKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGxlbjsgaSArPSAyKQor CQlzaWk4NjIwX3dyaXRlKGN0eCwgc2VxW2ldLCBzZXFbaSArIDFdKTsKK30KKworI2RlZmluZSBz aWk4NjIwX3dyaXRlX3NlcShjdHgsIHNlcS4uLikgXAorKHtcCisJdTE2IGRbXSA9IHsgc2VxIH07 IFwKKwlfX3NpaTg2MjBfd3JpdGVfc2VxKGN0eCwgZCwgQVJSQVlfU0laRShkKSk7IFwKK30pCisK K3N0YXRpYyB2b2lkIHNpaTg2MjBfc2V0Yml0cyhzdHJ1Y3Qgc2lpODYyMCAqY3R4LCB1MTYgYWRk ciwgdTggbWFzaywgdTggdmFsKQoreworCXZhbCA9ICh2YWwgJiBtYXNrKSB8IChzaWk4NjIwX3Jl YWRiKGN0eCwgYWRkcikgJiB+bWFzayk7CisJc2lpODYyMF93cml0ZShjdHgsIGFkZHIsIHZhbCk7 Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXRfY2xlYW51cChzdHJ1Y3Qgc2lpODYyMCAqY3R4 KQoreworCXN0cnVjdCBzaWk4NjIwX210X21zZyAqbXNnLCAqbjsKKworCWxpc3RfZm9yX2VhY2hf ZW50cnlfc2FmZShtc2csIG4sICZjdHgtPm10X3F1ZXVlLCBub2RlKSB7CisJCWxpc3RfZGVsKCZt c2ctPm5vZGUpOworCQlrZnJlZShtc2cpOworCX0KKwljdHgtPm10X3N0YXRlID0gTVRfU1RBVEVf UkVBRFk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXRfd29yayhzdHJ1Y3Qgc2lpODYyMCAq Y3R4KQoreworCXN0cnVjdCBzaWk4NjIwX210X21zZyAqbXNnOworCisJaWYgKGN0eC0+ZXJyb3Ip CisJCXJldHVybjsKKwlpZiAoY3R4LT5tdF9zdGF0ZSA9PSBNVF9TVEFURV9CVVNZIHx8IGxpc3Rf ZW1wdHkoJmN0eC0+bXRfcXVldWUpKQorCQlyZXR1cm47CisKKwlpZiAoY3R4LT5tdF9zdGF0ZSA9 PSBNVF9TVEFURV9ET05FKSB7CisJCWN0eC0+bXRfc3RhdGUgPSBNVF9TVEFURV9SRUFEWTsKKwkJ bXNnID0gbGlzdF9maXJzdF9lbnRyeSgmY3R4LT5tdF9xdWV1ZSwgc3RydWN0IHNpaTg2MjBfbXRf bXNnLAorCQkJCSAgICAgICBub2RlKTsKKwkJaWYgKG1zZy0+cmVjdikKKwkJCW1zZy0+cmVjdihj dHgsIG1zZyk7CisJCWxpc3RfZGVsKCZtc2ctPm5vZGUpOworCQlrZnJlZShtc2cpOworCX0KKwor CWlmIChjdHgtPm10X3N0YXRlICE9IE1UX1NUQVRFX1JFQURZIHx8IGxpc3RfZW1wdHkoJmN0eC0+ bXRfcXVldWUpKQorCQlyZXR1cm47CisKKwljdHgtPm10X3N0YXRlID0gTVRfU1RBVEVfQlVTWTsK Kwltc2cgPSBsaXN0X2ZpcnN0X2VudHJ5KCZjdHgtPm10X3F1ZXVlLCBzdHJ1Y3Qgc2lpODYyMF9t dF9tc2csIG5vZGUpOworCWlmIChtc2ctPnNlbmQpCisJCW1zZy0+c2VuZChjdHgsIG1zZyk7Cit9 CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXRfbXNjX2NtZF9zZW5kKHN0cnVjdCBzaWk4NjIwICpj dHgsCisJCQkJICAgICAgIHN0cnVjdCBzaWk4NjIwX210X21zZyAqbXNnKQoreworCXN3aXRjaCAo bXNnLT5yZWdbMF0pIHsKKwljYXNlIE1ITF9XUklURV9TVEFUOgorCWNhc2UgTUhMX1NFVF9JTlQ6 CisJCXNpaTg2MjBfd3JpdGVfYnVmKGN0eCwgUkVHX01TQ19DTURfT1JfT0ZGU0VULCBtc2ctPnJl ZyArIDEsIDIpOworCQlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX01TQ19DT01NQU5EX1NUQVJULAor CQkJICAgICAgQklUX01TQ19DT01NQU5EX1NUQVJUX1dSSVRFX1NUQVQpOworCQlicmVhazsKKwlj YXNlIE1ITF9NU0NfTVNHOgorCQlzaWk4NjIwX3dyaXRlX2J1ZihjdHgsIFJFR19NU0NfQ01EX09S X09GRlNFVCwgbXNnLT5yZWcsIDMpOworCQlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX01TQ19DT01N QU5EX1NUQVJULAorCQkJICAgICAgQklUX01TQ19DT01NQU5EX1NUQVJUX01TQ19NU0cpOworCQli cmVhazsKKwlkZWZhdWx0OgorCQlkZXZfZXJyKGN0eC0+ZGV2LCAiJXM6IGNvbW1hbmQgJSN4IG5v dCBzdXBwb3J0ZWRcbiIsIF9fZnVuY19fLAorCQkJbXNnLT5yZWdbMF0pOworCX0KK30KKworc3Rh dGljIHN0cnVjdCBzaWk4NjIwX210X21zZyAqc2lpODYyMF9tdF9tc2dfbmV3KHN0cnVjdCBzaWk4 NjIwICpjdHgpCit7CisJc3RydWN0IHNpaTg2MjBfbXRfbXNnICptc2cgPSBremFsbG9jKHNpemVv ZigqbXNnKSwgR0ZQX0tFUk5FTCk7CisKKwlpZiAoIW1zZykKKwkJY3R4LT5lcnJvciA9IC1FTk9N RU07CisJZWxzZQorCQlsaXN0X2FkZF90YWlsKCZtc2ctPm5vZGUsICZjdHgtPm10X3F1ZXVlKTsK KworCXJldHVybiBtc2c7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXRfbXNjX2NtZChzdHJ1 Y3Qgc2lpODYyMCAqY3R4LCB1OCBjbWQsIHU4IGFyZzEsIHU4IGFyZzIpCit7CisJc3RydWN0IHNp aTg2MjBfbXRfbXNnICptc2cgPSBzaWk4NjIwX210X21zZ19uZXcoY3R4KTsKKworCWlmICghbXNn KQorCQlyZXR1cm47CisKKwltc2ctPnJlZ1swXSA9IGNtZDsKKwltc2ctPnJlZ1sxXSA9IGFyZzE7 CisJbXNnLT5yZWdbMl0gPSBhcmcyOworCW1zZy0+c2VuZCA9IHNpaTg2MjBfbXRfbXNjX2NtZF9z ZW5kOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX210X3dyaXRlX3N0YXQoc3RydWN0IHNpaTg2 MjAgKmN0eCwgdTggcmVnLCB1OCB2YWwpCit7CisJc2lpODYyMF9tdF9tc2NfY21kKGN0eCwgTUhM X1dSSVRFX1NUQVQsIHJlZywgdmFsKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHNpaTg2MjBf bXRfc2V0X2ludChzdHJ1Y3Qgc2lpODYyMCAqY3R4LCB1OCBpcnEsIHU4IG1hc2spCit7CisJc2lp ODYyMF9tdF9tc2NfY21kKGN0eCwgTUhMX1NFVF9JTlQsIGlycSwgbWFzayk7Cit9CisKK3N0YXRp YyB2b2lkIHNpaTg2MjBfbXRfbXNjX21zZyhzdHJ1Y3Qgc2lpODYyMCAqY3R4LCB1OCBjbWQsIHU4 IGRhdGEpCit7CisJc2lpODYyMF9tdF9tc2NfY21kKGN0eCwgTUhMX01TQ19NU0csIGNtZCwgZGF0 YSk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXRfcmFwKHN0cnVjdCBzaWk4NjIwICpjdHgs IHU4IGNvZGUpCit7CisJc2lpODYyMF9tdF9tc2NfbXNnKGN0eCwgTUhMX01TQ19NU0dfUkFQLCBj b2RlKTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9tdF9yZWFkX2RldmNhcF9zZW5kKHN0cnVj dCBzaWk4NjIwICpjdHgsCisJCQkJCXN0cnVjdCBzaWk4NjIwX210X21zZyAqbXNnKQoreworCXU4 IGN0cmwgPSBCSVRfRURJRF9DVFJMX0RFVkNBUF9TRUxFQ1RfREVWQ0FQCisJCQl8IEJJVF9FRElE X0NUUkxfRURJRF9GSUZPX0FERFJfQVVUTworCQkJfCBCSVRfRURJRF9DVFJMX0VESURfTU9ERV9F TjsKKworCWlmIChtc2ctPnJlZ1swXSA9PSBNSExfUkVBRF9YREVWQ0FQKQorCQljdHJsIHw9IEJJ VF9FRElEX0NUUkxfWERFVkNBUF9FTjsKKworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJUkVH X0lOVFI5X01BU0ssIEJJVF9JTlRSOV9ERVZDQVBfRE9ORSwKKwkJUkVHX0VESURfQ1RSTCwgY3Ry bCwKKwkJUkVHX1RQSV9DQlVTX1NUQVJULCBCSVRfVFBJX0NCVVNfU1RBUlRfR0VUX0RFVkNBUF9T VEFSVAorCSk7Cit9CisKKy8qIGNvcHkgc3JjIHRvIGRzdCBhbmQgc2V0IGNoYW5nZWQgYml0cyBp biBzcmMgKi8KK3N0YXRpYyB2b2lkIHNpaTg2MjBfdXBkYXRlX2FycmF5KHU4ICpkc3QsIHU4ICpz cmMsIGludCBjb3VudCkKK3sKKwl3aGlsZSAoLS1jb3VudCA+PSAwKSB7CisJCSpzcmMgXj0gKmRz dDsKKwkJKmRzdCsrIF49ICpzcmMrKzsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXJf ZGV2Y2FwKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z dCBzaW5rX3N0cltdID0geworCQlbU0lOS19OT05FXSA9ICJOT05FIiwKKwkJW1NJTktfSERNSV0g PSAiSERNSSIsCisJCVtTSU5LX0RWSV0gPSAiRFZJIgorCX07CisKKwl1OCBkY2FwW01ITF9EQ0FQ X1NJWkVdOworCWNoYXIgc2lua19uYW1lWzIwXTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBjdHgt PmRldjsKKworCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfRURJRF9GSUZPX1JEX0RBVEEsIGRj YXAsIE1ITF9EQ0FQX1NJWkUpOworCWlmIChjdHgtPmVycm9yIDwgMCkKKwkJcmV0dXJuOworCisJ ZGV2X2luZm8oZGV2LCAiZGNhcDogJSpwaFxuIiwgTUhMX0RDQVBfU0laRSwgZGNhcCk7CisJZGV2 X2luZm8oZGV2LCAiZGV0ZWN0ZWQgZG9uZ2xlIE1ITCAlZC4lZCwgQ2hpcElEICUwMnglMDJ4OiUw MnglMDJ4XG4iLAorCQlkY2FwW01ITF9EQ0FQX01ITF9WRVJTSU9OXSAvIDE2LCBkY2FwW01ITF9E Q0FQX01ITF9WRVJTSU9OXSAlIDE2LAorCQlkY2FwW01ITF9EQ0FQX0FET1BURVJfSURfSF0sIGRj YXBbTUhMX0RDQVBfQURPUFRFUl9JRF9MXSwKKwkJZGNhcFtNSExfRENBUF9ERVZJQ0VfSURfSF0s IGRjYXBbTUhMX0RDQVBfREVWSUNFX0lEX0xdKTsKKwlzaWk4NjIwX3VwZGF0ZV9hcnJheShjdHgt PmRldmNhcCwgZGNhcCwgTUhMX0RDQVBfU0laRSk7CisKKwlpZiAoIShkY2FwW01ITF9EQ0FQX0NB VF0gJiBNSExfRENBUF9DQVRfU0lOSykpCisJCXJldHVybjsKKworCXNpaTg2MjBfZmV0Y2hfZWRp ZChjdHgpOworCWlmICghY3R4LT5lZGlkKSB7CisJCWRldl9lcnIoY3R4LT5kZXYsICJDYW5ub3Qg ZmV0Y2ggRURJRFxuIik7CisJCXNpaTg2MjBfbWhsX2Rpc2Nvbm5lY3RlZChjdHgpOworCQlyZXR1 cm47CisJfQorCisJaWYgKGRybV9kZXRlY3RfaGRtaV9tb25pdG9yKGN0eC0+ZWRpZCkpCisJCWN0 eC0+c2lua190eXBlID0gU0lOS19IRE1JOworCWVsc2UKKwkJY3R4LT5zaW5rX3R5cGUgPSBTSU5L X0RWSTsKKworCWRybV9lZGlkX2dldF9tb25pdG9yX25hbWUoY3R4LT5lZGlkLCBzaW5rX25hbWUs IEFSUkFZX1NJWkUoc2lua19uYW1lKSk7CisKKwlkZXZfaW5mbyhkZXYsICJkZXRlY3RlZCBzaW5r KHR5cGU6ICVzKTogJXNcbiIsCisJCXNpbmtfc3RyW2N0eC0+c2lua190eXBlXSwgc2lua19uYW1l KTsKKwlzaWk4NjIwX3NldF91cHN0cmVhbV9lZGlkKGN0eCk7CisJc2lpODYyMF9lbmFibGVfaHBk KGN0eCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXJfeGRldmNhcChzdHJ1Y3Qgc2lpODYy MCAqY3R4KQoreworCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfRURJRF9GSUZPX1JEX0RBVEEs IGN0eC0+eGRldmNhcCwKKwkJCSBNSExfWERDX1NJWkUpOworCisJc2lpODYyMF9tdF93cml0ZV9z dGF0KGN0eCwgTUhMX1hEU19SRUcoQ1VSUl9FQ0JVU19NT0RFKSwKKwkJCSAgICAgIE1ITF9YRFNf RUNCVVNfUyB8IE1ITF9YRFNfU0xPVF9NT0RFXzhCSVQpOworCXNpaTg2MjBfbXRfcmFwKGN0eCwg TUhMX1JBUF9DQlVTX01PREVfVVApOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX210X3JlYWRf ZGV2Y2FwX3JlY3Yoc3RydWN0IHNpaTg2MjAgKmN0eCwKKwkJCQkJc3RydWN0IHNpaTg2MjBfbXRf bXNnICptc2cpCit7CisJdTggY3RybCA9IEJJVF9FRElEX0NUUkxfREVWQ0FQX1NFTEVDVF9ERVZD QVAKKwkJfCBCSVRfRURJRF9DVFJMX0VESURfRklGT19BRERSX0FVVE8KKwkJfCBCSVRfRURJRF9D VFJMX0VESURfTU9ERV9FTjsKKworCWlmIChtc2ctPnJlZ1swXSA9PSBNSExfUkVBRF9YREVWQ0FQ KQorCQljdHJsIHw9IEJJVF9FRElEX0NUUkxfWERFVkNBUF9FTjsKKworCXNpaTg2MjBfd3JpdGVf c2VxKGN0eCwKKwkJUkVHX0lOVFI5X01BU0ssIEJJVF9JTlRSOV9ERVZDQVBfRE9ORSB8IEJJVF9J TlRSOV9FRElEX0RPTkUKKwkJCXwgQklUX0lOVFI5X0VESURfRVJST1IsCisJCVJFR19FRElEX0NU UkwsIGN0cmwsCisJCVJFR19FRElEX0ZJRk9fQUREUiwgMAorCSk7CisKKwlpZiAobXNnLT5yZWdb MF0gPT0gTUhMX1JFQURfWERFVkNBUCkKKwkJc2lpODYyMF9tcl94ZGV2Y2FwKGN0eCk7CisJZWxz ZQorCQlzaWk4NjIwX21yX2RldmNhcChjdHgpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX210 X3JlYWRfZGV2Y2FwKHN0cnVjdCBzaWk4NjIwICpjdHgsIGJvb2wgeGRldmNhcCkKK3sKKwlzdHJ1 Y3Qgc2lpODYyMF9tdF9tc2cgKm1zZyA9IHNpaTg2MjBfbXRfbXNnX25ldyhjdHgpOworCisJaWYg KCFtc2cpCisJCXJldHVybjsKKworCW1zZy0+cmVnWzBdID0geGRldmNhcCA/IE1ITF9SRUFEX1hE RVZDQVAgOiBNSExfUkVBRF9ERVZDQVA7CisJbXNnLT5zZW5kID0gc2lpODYyMF9tdF9yZWFkX2Rl dmNhcF9zZW5kOworCW1zZy0+cmVjdiA9IHNpaTg2MjBfbXRfcmVhZF9kZXZjYXBfcmVjdjsKK30K Kworc3RhdGljIHZvaWQgc2lpODYyMF9mZXRjaF9lZGlkKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7 CisJdTggbG1fZGRjLCBkZGNfY21kLCBpbnQzLCBjYnVzOworCWludCBmZXRjaGVkLCBpOworCWlu dCBlZGlkX2xlbiA9IEVESURfTEVOR1RIOworCXU4ICplZGlkOworCisJc2lpODYyMF9yZWFkYihj dHgsIFJFR19DQlVTX1NUQVRVUyk7CisJbG1fZGRjID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19M TV9EREMpOworCWRkY19jbWQgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0REQ19DTUQpOworCisJ c2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfSU5UUjlfTUFTSywgMCwKKwkJUkVHX0VESURf Q1RSTCwgQklUX0VESURfQ1RSTF9FRElEX0ZJRk9fQUREUl9BVVRPLAorCQlSRUdfSERDUDJYX1BP TExfQ1MsIDB4NzEsCisJCVJFR19IRENQMlhfQ1RSTF8wLCBCSVRfSERDUDJYX0NUUkxfMF9IRENQ MlhfSERDUFRYLAorCQlSRUdfTE1fRERDLCBsbV9kZGMgfCBCSVRfTE1fRERDX1NXX1RQSV9FTl9E SVNBQkxFRCwKKwkpOworCisJZm9yIChpID0gMDsgaSA8IDI1NjsgKytpKSB7CisJCXU4IGRkY19z dGF0ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19ERENfU1RBVFVTKTsKKworCQlpZiAoIShkZGNf c3RhdCAmIEJJVF9ERENfU1RBVFVTX0REQ19JMkNfSU5fUFJPRykpCisJCQlicmVhazsKKwkJc2lp ODYyMF93cml0ZShjdHgsIFJFR19ERENfU1RBVFVTLAorCQkJICAgICAgIEJJVF9ERENfU1RBVFVT X0REQ19GSUZPX0VNUFRZKTsKKwl9CisKKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0REQ19BRERS LCAweDUwIDw8IDEpOworCisJZWRpZCA9IGttYWxsb2MoRURJRF9MRU5HVEgsIEdGUF9LRVJORUwp OworCWlmICghZWRpZCkgeworCQljdHgtPmVycm9yID0gLUVOT01FTTsKKwkJcmV0dXJuOworCX0K KworI2RlZmluZSBGRVRDSF9TSVpFIDE2CisJZm9yIChmZXRjaGVkID0gMDsgZmV0Y2hlZCA8IGVk aWRfbGVuOyBmZXRjaGVkICs9IEZFVENIX1NJWkUpIHsKKwkJc2lpODYyMF9yZWFkYihjdHgsIFJF R19ERENfU1RBVFVTKTsKKwkJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQkJUkVHX0REQ19DTUQs IGRkY19jbWQgfCBWQUxfRERDX0NNRF9ERENfQ01EX0FCT1JULAorCQkJUkVHX0REQ19DTUQsIGRk Y19jbWQgfCBWQUxfRERDX0NNRF9ERENfQ01EX0NMRUFSX0ZJRk8sCisJCQlSRUdfRERDX1NUQVRV UywgQklUX0REQ19TVEFUVVNfRERDX0ZJRk9fRU1QVFkKKwkJKTsKKwkJc2lpODYyMF93cml0ZV9z ZXEoY3R4LAorCQkJUkVHX0REQ19TRUdNLCBmZXRjaGVkID4+IDgsCisJCQlSRUdfRERDX09GRlNF VCwgZmV0Y2hlZCAmIDB4ZmYsCisJCQlSRUdfRERDX0RJTl9DTlQxLCBGRVRDSF9TSVpFLAorCQkJ UkVHX0REQ19ESU5fQ05UMiwgMCwKKwkJCVJFR19ERENfQ01ELCBkZGNfY21kIHwgVkFMX0REQ19D TURfRU5IX0REQ19SRUFEX05PX0FDSworCQkpOworCisJCWRvIHsKKwkJCWludDMgPSBzaWk4NjIw X3JlYWRiKGN0eCwgUkVHX0lOVFIzKTsKKwkJCWNidXMgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVH X0NCVVNfU1RBVFVTKTsKKworCQkJaWYgKGludDMgJiBCSVRfRERDX0NNRF9ET05FKQorCQkJCWJy ZWFrOworCisJCQlpZiAoIShjYnVzICYgQklUX0NCVVNfU1RBVFVTX0NCVVNfQ09OTkVDVEVEKSkg eworCQkJCWtmcmVlKGVkaWQpOworCQkJCWVkaWQgPSBOVUxMOworCQkJCWdvdG8gZW5kOworCQkJ fQorCQl9IHdoaWxlICgxKTsKKworCQlzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0REQ19TVEFUVVMp OworCQl3aGlsZSAoc2lpODYyMF9yZWFkYihjdHgsIFJFR19ERENfRE9VVF9DTlQpIDwgRkVUQ0hf U0laRSkKKwkJCXVzbGVlcF9yYW5nZSgxMCwgMjApOworCisJCXNpaTg2MjBfcmVhZF9idWYoY3R4 LCBSRUdfRERDX0RBVEEsIGVkaWQgKyBmZXRjaGVkLCBGRVRDSF9TSVpFKTsKKwkJaWYgKGZldGNo ZWQgKyBGRVRDSF9TSVpFID09IEVESURfTEVOR1RIKSB7CisJCQl1OCBleHQgPSAoKHN0cnVjdCBl ZGlkICopZWRpZCktPmV4dGVuc2lvbnM7CisKKwkJCWlmIChleHQpIHsKKwkJCQl1OCAqbmV3X2Vk aWQ7CisKKwkJCQllZGlkX2xlbiArPSBleHQgKiBFRElEX0xFTkdUSDsKKwkJCQluZXdfZWRpZCA9 IGtyZWFsbG9jKGVkaWQsIGVkaWRfbGVuLCBHRlBfS0VSTkVMKTsKKwkJCQlpZiAoIW5ld19lZGlk KSB7CisJCQkJCWtmcmVlKGVkaWQpOworCQkJCQljdHgtPmVycm9yID0gLUVOT01FTTsKKwkJCQkJ cmV0dXJuOworCQkJCX0KKwkJCQllZGlkID0gbmV3X2VkaWQ7CisJCQl9CisJCX0KKworCQlpZiAo ZmV0Y2hlZCArIEZFVENIX1NJWkUgPT0gZWRpZF9sZW4pCisJCQlzaWk4NjIwX3dyaXRlKGN0eCwg UkVHX0lOVFIzLCBpbnQzKTsKKwl9CisKKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0xNX0REQywg bG1fZGRjKTsKKworZW5kOgorCWtmcmVlKGN0eC0+ZWRpZCk7CisJY3R4LT5lZGlkID0gKHN0cnVj dCBlZGlkICopZWRpZDsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9zZXRfdXBzdHJlYW1fZWRp ZChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXNpaTg2MjBfc2V0Yml0cyhjdHgsIFJFR19EUEQs IEJJVF9EUERfUEROUlgxMiB8IEJJVF9EUERfUERJRENLX04KKwkJCXwgQklUX0RQRF9QRF9NSExf Q0xLX04sIDB4ZmYpOworCisJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfUlhfSERNSV9D VFJMMywgMHgwMCwKKwkJUkVHX1BLVF9GSUxURVJfMCwgMHhGRiwKKwkJUkVHX1BLVF9GSUxURVJf MSwgMHhGRiwKKwkJUkVHX0FMSUNFMF9CV19JMkMsIDB4MDYKKwkpOworCisJc2lpODYyMF9zZXRi aXRzKGN0eCwgUkVHX1JYX0hETUlfQ0xSX0JVRkZFUiwKKwkJCUJJVF9SWF9IRE1JX0NMUl9CVUZG RVJfVlNJX0NMUl9FTiwgMHhmZik7CisKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19F RElEX0NUUkwsIEJJVF9FRElEX0NUUkxfRURJRF9GSUZPX0FERFJfQVVUTworCQkJfCBCSVRfRURJ RF9DVFJMX0VESURfTU9ERV9FTiwKKwkJUkVHX0VESURfRklGT19BRERSLCAwLAorCSk7CisKKwlz aWk4NjIwX3dyaXRlX2J1ZihjdHgsIFJFR19FRElEX0ZJRk9fV1JfREFUQSwgKHU4ICopY3R4LT5l ZGlkLAorCQkJKGN0eC0+ZWRpZC0+ZXh0ZW5zaW9ucyArIDEpICogRURJRF9MRU5HVEgpOworCisJ c2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfRURJRF9DVFJMLCBCSVRfRURJRF9DVFJMX0VE SURfUFJJTUVfVkFMSUQKKwkJCXwgQklUX0VESURfQ1RSTF9FRElEX0ZJRk9fQUREUl9BVVRPCisJ CQl8IEJJVF9FRElEX0NUUkxfRURJRF9NT0RFX0VOLAorCQlSRUdfSU5UUjVfTUFTSywgQklUX0lO VFJfU0NEVF9DSEFOR0UsCisJCVJFR19JTlRSOV9NQVNLLCAwCisJKTsKK30KKworc3RhdGljIHZv aWQgc2lpODYyMF94dGFsX3NldF9yYXRlKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc3RhdGlj IGNvbnN0IHN0cnVjdCB7CisJCXVuc2lnbmVkIGludCByYXRlOworCQl1OCBkaXY7CisJCXU4IHRw MTsKKwl9IHJhdGVzW10gPSB7CisJCXsgMTkyMDAsIDB4MDQsIDB4NTMgfSwKKwkJeyAyMDAwMCwg MHgwNCwgMHg2MiB9LAorCQl7IDI0MDAwLCAweDA1LCAweDc1IH0sCisJCXsgMzAwMDAsIDB4MDYs IDB4OTIgfSwKKwkJeyAzODQwMCwgMHgwYywgMHhiYyB9LAorCX07CisJdW5zaWduZWQgbG9uZyBy YXRlID0gY2xrX2dldF9yYXRlKGN0eC0+Y2xrX3h0YWwpIC8gMTAwMDsKKwlpbnQgaTsKKworCWZv ciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHJhdGVzKSAtIDE7ICsraSkKKwkJaWYgKHJhdGUgPD0g cmF0ZXNbaV0ucmF0ZSkKKwkJCWJyZWFrOworCisJaWYgKHJhdGUgIT0gcmF0ZXNbaV0ucmF0ZSkK KwkJZGV2X2VycihjdHgtPmRldiwgInh0YWwgY2xvY2sgcmF0ZSglbHVrSHopIG5vdCBzdXBwb3J0 ZWQsIHNldHRpbmcgTUhMIGZvciAldWtIei5cbiIsCisJCQlyYXRlLCByYXRlc1tpXS5yYXRlKTsK KworCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfRElWX0NUTF9NQUlOLCByYXRlc1tpXS5kaXYpOwor CXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfSERDUDJYX1RQMSwgcmF0ZXNbaV0udHAxKTsKK30KKwor c3RhdGljIGludCBzaWk4NjIwX2h3X29uKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJaW50IHJl dDsKKworCXJldCA9IHJlZ3VsYXRvcl9idWxrX2VuYWJsZShBUlJBWV9TSVpFKGN0eC0+c3VwcGxp ZXMpLCBjdHgtPnN1cHBsaWVzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCXVzbGVlcF9y YW5nZSgxMDAwMCwgMjAwMDApOworCXJldHVybiBjbGtfcHJlcGFyZV9lbmFibGUoY3R4LT5jbGtf eHRhbCk7Cit9CisKK3N0YXRpYyBpbnQgc2lpODYyMF9od19vZmYoc3RydWN0IHNpaTg2MjAgKmN0 eCkKK3sKKwljbGtfZGlzYWJsZV91bnByZXBhcmUoY3R4LT5jbGtfeHRhbCk7CisJZ3Bpb2Rfc2V0 X3ZhbHVlKGN0eC0+Z3Bpb19yZXNldCwgMSk7CisJcmV0dXJuIHJlZ3VsYXRvcl9idWxrX2Rpc2Fi bGUoQVJSQVlfU0laRShjdHgtPnN1cHBsaWVzKSwgY3R4LT5zdXBwbGllcyk7Cit9CisKK3N0YXRp YyB2b2lkIHNpaTg2MjBfaHdfcmVzZXQoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1c2xlZXBf cmFuZ2UoMTAwMDAsIDIwMDAwKTsKKwlncGlvZF9zZXRfdmFsdWUoY3R4LT5ncGlvX3Jlc2V0LCAw KTsKKwl1c2xlZXBfcmFuZ2UoNTAwMCwgMjAwMDApOworCWdwaW9kX3NldF92YWx1ZShjdHgtPmdw aW9fcmVzZXQsIDEpOworCXVzbGVlcF9yYW5nZSgxMDAwMCwgMjAwMDApOworCWdwaW9kX3NldF92 YWx1ZShjdHgtPmdwaW9fcmVzZXQsIDApOworCW1zbGVlcCgzMDApOworfQorCitzdGF0aWMgdm9p ZCBzaWk4NjIwX2NidXNfcmVzZXQoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzaWk4NjIwX3dy aXRlX3NlcShjdHgsCisJCVJFR19QV0RfU1JTVCwgQklUX1BXRF9TUlNUX0NCVVNfUlNUCisJCQl8 IEJJVF9QV0RfU1JTVF9DQlVTX1JTVF9TV19FTiwKKwkJUkVHX1BXRF9TUlNULCBCSVRfUFdEX1NS U1RfQ0JVU19SU1RfU1dfRU4KKwkpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3NldF9hdXRv X3pvbmUoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlpZiAoY3R4LT5tb2RlICE9IENNX01ITDEp IHsKKwkJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQkJUkVHX1RYX1pPTkVfQ1RMMSwgMHgwLAor CQkJUkVHX01ITF9QTExfQ1RMMCwgVkFMX01ITF9QTExfQ1RMMF9IRE1JX0NMS19SQVRJT18xWAor CQkJCXwgQklUX01ITF9QTExfQ1RMMF9DUllTVEFMX0NMS19TRUwKKwkJCQl8IEJJVF9NSExfUExM X0NUTDBfWk9ORV9NQVNLX09FCisJCSk7CisJfSBlbHNlIHsKKwkJc2lpODYyMF93cml0ZV9zZXEo Y3R4LAorCQkJUkVHX1RYX1pPTkVfQ1RMMSwgVkFMX1RYX1pPTkVfQ1RMMV9UWF9aT05FX0NUUkxf TU9ERSwKKwkJCVJFR19NSExfUExMX0NUTDAsIFZBTF9NSExfUExMX0NUTDBfSERNSV9DTEtfUkFU SU9fMVgKKwkJCQl8IEJJVF9NSExfUExMX0NUTDBfWk9ORV9NQVNLX09FCisJCSk7CisJfQorfQor CitzdGF0aWMgdm9pZCBzaWk4NjIwX3N0b3BfdmlkZW8oc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sK Kwl1OCB1bmluaXRpYWxpemVkX3Zhcih2YWwpOworCisJc2lpODYyMF93cml0ZV9zZXEoY3R4LAor CQlSRUdfVFBJX0lOVFJfRU4sIDAsCisJCVJFR19IRENQMlhfSU5UUjBfTUFTSywgMCwKKwkJUkVH X1RQSV9DT1BQX0RBVEEyLCAwLAorCQlSRUdfVFBJX0lOVFJfU1QwLCB+MCwKKwkpOworCisJc3dp dGNoIChjdHgtPnNpbmtfdHlwZSkgeworCWNhc2UgU0lOS19EVkk6CisJCXZhbCA9IEJJVF9UUElf U0NfUkVHX1RNRFNfT0VfUE9XRVJfRE9XTgorCQkJfCBCSVRfVFBJX1NDX1RQSV9BVl9NVVRFOwor CQlicmVhazsKKwljYXNlIFNJTktfSERNSToKKwkJdmFsID0gQklUX1RQSV9TQ19SRUdfVE1EU19P RV9QT1dFUl9ET1dOCisJCQl8IEJJVF9UUElfU0NfVFBJX0FWX01VVEUKKwkJCXwgQklUX1RQSV9T Q19UUElfT1VUUFVUX01PREVfMF9IRE1JOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm47 CisJfQorCisJc2lpODYyMF93cml0ZShjdHgsIFJFR19UUElfU0MsIHZhbCk7Cit9CisKK3N0YXRp YyB2b2lkIHNpaTg2MjBfc3RhcnRfaGRtaShzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXNpaTg2 MjBfd3JpdGVfc2VxKGN0eCwKKwkJUkVHX1JYX0hETUlfQ1RSTDIsIFZBTF9SWF9IRE1JX0NUUkwy X0RFRlZBTAorCQkJfCBCSVRfUlhfSERNSV9DVFJMMl9VU0VfQVZfTVVURSwKKwkJUkVHX1ZJRF9P VlJSRCwgQklUX1ZJRF9PVlJSRF9QUF9BVVRPX0RJU0FCTEUKKwkJCXwgQklUX1ZJRF9PVlJSRF9N MTA4MFBfT1ZSUkQsCisJCVJFR19WSURfTU9ERSwgMCwKKwkJUkVHX01ITF9UT1BfQ1RMLCAweDEs CisJCVJFR19NSExUWF9DVEw2LCAweGEwLAorCQlSRUdfVFBJX0lOUFVULCBWQUxfVFBJX0ZPUk1B VChSR0IsIEZVTEwpLAorCQlSRUdfVFBJX09VVFBVVCwgVkFMX1RQSV9GT1JNQVQoUkdCLCBGVUxM KSwKKwkpOworCisJc2lpODYyMF9tdF93cml0ZV9zdGF0KGN0eCwgTUhMX0RTVF9SRUcoTElOS19N T0RFKSwKKwkJCU1ITF9EU1RfTE1fQ0xLX01PREVfTk9STUFMIHwgTUhMX0RTVF9MTV9QQVRIX0VO QUJMRUQpOworCisJc2lpODYyMF9zZXRfYXV0b196b25lKGN0eCk7CisKKwlzaWk4NjIwX3dyaXRl KGN0eCwgUkVHX1RQSV9TQywgQklUX1RQSV9TQ19UUElfT1VUUFVUX01PREVfMF9IRE1JKTsKKwor CXNpaTg2MjBfd3JpdGVfYnVmKGN0eCwgUkVHX1RQSV9BVklfQ0hTVU0sIGN0eC0+YXZpZiwKKwkJ CSAgQVJSQVlfU0laRShjdHgtPmF2aWYpKTsKKworCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfUEtU X0ZJTFRFUl8wLCAweGExLCAweDIpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3N0YXJ0X3Zp ZGVvKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJaWYgKGN0eC0+bW9kZSA8IENNX01ITDMpCisJ CXNpaTg2MjBfc3RvcF92aWRlbyhjdHgpOworCisJc3dpdGNoIChjdHgtPnNpbmtfdHlwZSkgewor CWNhc2UgU0lOS19IRE1JOgorCQlzaWk4NjIwX3N0YXJ0X2hkbWkoY3R4KTsKKwkJYnJlYWs7CisJ Y2FzZSBTSU5LX0RWSToKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9Cit9CisKK3N0YXRpYyB2b2lk IHNpaTg2MjBfZGlzYWJsZV9ocGQoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzaWk4NjIwX3Nl dGJpdHMoY3R4LCBSRUdfRURJRF9DVFJMLCBCSVRfRURJRF9DVFJMX0VESURfUFJJTUVfVkFMSUQs IDApOworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJUkVHX0hQRF9DVFJMLCBCSVRfSFBEX0NU UkxfSFBEX09VVF9PVlJfRU4sCisJCVJFR19JTlRSOF9NQVNLLCAwCisJKTsKK30KKworc3RhdGlj IHZvaWQgc2lpODYyMF9lbmFibGVfaHBkKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc2lpODYy MF9zZXRiaXRzKGN0eCwgUkVHX1RNRFNfQ1NUQVRfUDMsCisJCQlCSVRfVE1EU19DU1RBVF9QM19T Q0RUX0NMUl9BVklfRElTCisJCQl8IEJJVF9UTURTX0NTVEFUX1AzX0NMUl9BVkksIH4wKTsKKwlz aWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19IUERfQ1RSTCwgQklUX0hQRF9DVFJMX0hQRF9P VVRfT1ZSX0VOCisJCQl8IEJJVF9IUERfQ1RSTF9IUERfSElHSCwKKwkpOworfQorCitzdGF0aWMg dm9pZCBzaWk4NjIwX2VuYWJsZV9nZW4yX3dyaXRlX2J1cnN0KHN0cnVjdCBzaWk4NjIwICpjdHgp Cit7CisJaWYgKGN0eC0+Z2VuMl93cml0ZV9idXJzdCkKKwkJcmV0dXJuOworCisJc2lpODYyMF93 cml0ZV9zZXEoY3R4LAorCQlSRUdfTURUX1JDVl9USU1FT1VULCAxMDAsCisJCVJFR19NRFRfUkNW X0NUUkwsIEJJVF9NRFRfUkNWX0NUUkxfTURUX1JDVl9FTgorCSk7CisJY3R4LT5nZW4yX3dyaXRl X2J1cnN0ID0gMTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9kaXNhYmxlX2dlbjJfd3JpdGVf YnVyc3Qoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlpZiAoIWN0eC0+Z2VuMl93cml0ZV9idXJz dCkKKwkJcmV0dXJuOworCisJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfTURUX1hNSVRf Q1RSTCwgMCwKKwkJUkVHX01EVF9SQ1ZfQ1RSTCwgMAorCSk7CisJY3R4LT5nZW4yX3dyaXRlX2J1 cnN0ID0gMDsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9zdGFydF9nZW4yX3dyaXRlX2J1cnN0 KHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdf TURUX0lOVF8xX01BU0ssIEJJVF9NRFRfUkNWX1RJTUVPVVQKKwkJCXwgQklUX01EVF9SQ1ZfU01f QUJPUlRfUEtUX1JDVkQgfCBCSVRfTURUX1JDVl9TTV9FUlJPUgorCQkJfCBCSVRfTURUX1hNSVRf VElNRU9VVCB8IEJJVF9NRFRfWE1JVF9TTV9BQk9SVF9QS1RfUkNWRAorCQkJfCBCSVRfTURUX1hN SVRfU01fRVJST1IsCisJCVJFR19NRFRfSU5UXzBfTUFTSywgQklUX01EVF9YRklGT19FTVBUWQor CQkJfCBCSVRfTURUX0lETEVfQUZURVJfSEFXQl9ESVNBQkxFCisJCQl8IEJJVF9NRFRfUkZJRk9f REFUQV9SRFkKKwkpOworCXNpaTg2MjBfZW5hYmxlX2dlbjJfd3JpdGVfYnVyc3QoY3R4KTsKK30K Kworc3RhdGljIHZvaWQgc2lpODYyMF9taGxfZGlzY292ZXIoc3RydWN0IHNpaTg2MjAgKmN0eCkK K3sKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19ESVNDX0NUUkw5LCBCSVRfRElTQ19D VFJMOV9XQUtFX0RSVkZMVAorCQkJfCBCSVRfRElTQ19DVFJMOV9ESVNDX1BVTFNFX1BST0NFRUQs CisJCVJFR19ESVNDX0NUUkw0LCBWQUxfRElTQ19DVFJMNChWQUxfUFVQXzVLLCBWQUxfUFVQXzIw SyksCisJCVJFR19DQlVTX0RJU0NfSU5UUjBfTUFTSywgQklUX01ITDNfRVNUX0lOVAorCQkJfCBC SVRfTUhMX0VTVF9JTlQKKwkJCXwgQklUX05PVF9NSExfRVNUX0lOVAorCQkJfCBCSVRfQ0JVU19N SEwzX0RJU0NPTl9JTlQKKwkJCXwgQklUX0NCVVNfTUhMMTJfRElTQ09OX0lOVAorCQkJfCBCSVRf UkdORF9SRUFEWV9JTlQsCisJCVJFR19NSExfUExMX0NUTDAsIFZBTF9NSExfUExMX0NUTDBfSERN SV9DTEtfUkFUSU9fMVgKKwkJCXwgQklUX01ITF9QTExfQ1RMMF9DUllTVEFMX0NMS19TRUwKKwkJ CXwgQklUX01ITF9QTExfQ1RMMF9aT05FX01BU0tfT0UsCisJCVJFR19NSExfRFBfQ1RMMCwgQklU X01ITF9EUF9DVEwwX0RQX09FCisJCQl8IEJJVF9NSExfRFBfQ1RMMF9UWF9PRV9PVlIsCisJCVJF R19NM19DVFJMLCBWQUxfTTNfQ1RSTF9NSEwzX1ZBTFVFLAorCQlSRUdfTUhMX0RQX0NUTDEsIDB4 QTIsCisJCVJFR19NSExfRFBfQ1RMMiwgMHgwMywKKwkJUkVHX01ITF9EUF9DVEwzLCAweDM1LAor CQlSRUdfTUhMX0RQX0NUTDUsIDB4MDIsCisJCVJFR19NSExfRFBfQ1RMNiwgMHgwMiwKKwkJUkVH X01ITF9EUF9DVEw3LCAweDAzLAorCQlSRUdfQ09DX0NUTEMsIDB4RkYsCisJCVJFR19EUEQsIEJJ VF9EUERfUFdST05fUExMIHwgQklUX0RQRF9QRE5UWDEyCisJCQl8IEJJVF9EUERfT1NDX0VOIHwg QklUX0RQRF9QV1JPTl9IU0lDLAorCQlSRUdfQ09DX0lOVFJfTUFTSywgQklUX0NPQ19QTExfTE9D S19TVEFUVVNfQ0hBTkdFCisJCQl8IEJJVF9DT0NfQ0FMSUJSQVRJT05fRE9ORSwKKwkJUkVHX0NC VVNfSU5UXzFfTUFTSywgQklUX0NCVVNfTVNDX0FCT1JUX1JDVkQKKwkJCXwgQklUX0NCVVNfQ01E X0FCT1JULAorCQlSRUdfQ0JVU19JTlRfMF9NQVNLLCBCSVRfQ0JVU19NU0NfTVRfRE9ORQorCQkJ fCBCSVRfQ0JVU19IUERfQ0hHCisJCQl8IEJJVF9DQlVTX01TQ19NUl9XUklURV9TVEFUCisJCQl8 IEJJVF9DQlVTX01TQ19NUl9NU0NfTVNHCisJCQl8IEJJVF9DQlVTX01TQ19NUl9XUklURV9CVVJT VAorCQkJfCBCSVRfQ0JVU19NU0NfTVJfU0VUX0lOVAorCQkJfCBCSVRfQ0JVU19NU0NfTVRfRE9O RV9OQUNLCisJKTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9wZWVyX3NwZWNpZmljX2luaXQo c3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlpZiAoY3R4LT5tb2RlID09IENNX01ITDMpCisJCXNp aTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJCVJFR19TWVNfQ1RSTDEsIEJJVF9TWVNfQ1RSTDFfQkxP Q0tfRERDX0JZX0hQRCwKKwkJCVJFR19FTVNDSU5UUk1BU0sxLAorCQkJCUJJVF9FTVNDSU5UUjFf RU1TQ19UUkFJTklOR19DT01NQV9FUlIKKwkJKTsKKwllbHNlCisJCXNpaTg2MjBfd3JpdGVfc2Vx KGN0eCwKKwkJCVJFR19IRENQMlhfSU5UUjBfTUFTSywgMHgwMCwKKwkJCVJFR19FTVNDSU5UUk1B U0sxLCAweDAwLAorCQkJUkVHX0hEQ1AyWF9JTlRSMCwgMHhGRiwKKwkJCVJFR19JTlRSMSwgMHhG RiwKKwkJCVJFR19TWVNfQ1RSTDEsIEJJVF9TWVNfQ1RSTDFfQkxPQ0tfRERDX0JZX0hQRAorCQkJ CXwgQklUX1NZU19DVFJMMV9UWF9DVFJMX0hETUkKKwkJKTsKK30KKworI2RlZmluZSBTSUk4NjIw X01ITF9WRVJTSU9OCQkJMHgzMgorI2RlZmluZSBTSUk4NjIwX1NDUkFUQ0hQQURfU0laRQkJCTE2 CisjZGVmaW5lIFNJSTg2MjBfSU5UX1NUQVRfU0laRQkJCTB4MzMKKworc3RhdGljIHZvaWQgc2lp ODYyMF9zZXRfZGV2X2NhcChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXN0YXRpYyBjb25zdCB1 OCBkZXZjYXBbTUhMX0RDQVBfU0laRV0gPSB7CisJCVtNSExfRENBUF9NSExfVkVSU0lPTl0gPSBT SUk4NjIwX01ITF9WRVJTSU9OLAorCQlbTUhMX0RDQVBfQ0FUXSA9IE1ITF9EQ0FQX0NBVF9TT1VS Q0UgfCBNSExfRENBUF9DQVRfUE9XRVIsCisJCVtNSExfRENBUF9BRE9QVEVSX0lEX0hdID0gMHgw MSwKKwkJW01ITF9EQ0FQX0FET1BURVJfSURfTF0gPSAweDQxLAorCQlbTUhMX0RDQVBfVklEX0xJ TktfTU9ERV0gPSBNSExfRENBUF9WSURfTElOS19SR0I0NDQKKwkJCXwgTUhMX0RDQVBfVklEX0xJ TktfUFBJWEVMCisJCQl8IE1ITF9EQ0FQX1ZJRF9MSU5LXzE2QlBQLAorCQlbTUhMX0RDQVBfQVVE X0xJTktfTU9ERV0gPSBNSExfRENBUF9BVURfTElOS18yQ0gsCisJCVtNSExfRENBUF9WSURFT19U WVBFXSA9IE1ITF9EQ0FQX1ZUX0dSQVBISUNTLAorCQlbTUhMX0RDQVBfTE9HX0RFVl9NQVBdID0g TUhMX0RDQVBfTERfR1VJLAorCQlbTUhMX0RDQVBfQkFORFdJRFRIXSA9IDB4MGYsCisJCVtNSExf RENBUF9GRUFUVVJFX0ZMQUddID0gTUhMX0RDQVBfRkVBVFVSRV9SQ1BfU1VQUE9SVAorCQkJfCBN SExfRENBUF9GRUFUVVJFX1JBUF9TVVBQT1JUCisJCQl8IE1ITF9EQ0FQX0ZFQVRVUkVfU1BfU1VQ UE9SVCwKKwkJW01ITF9EQ0FQX1NDUkFUQ0hQQURfU0laRV0gPSBTSUk4NjIwX1NDUkFUQ0hQQURf U0laRSwKKwkJW01ITF9EQ0FQX0lOVF9TVEFUX1NJWkVdID0gU0lJODYyMF9JTlRfU1RBVF9TSVpF LAorCX07CisJc3RhdGljIGNvbnN0IHU4IHhkY2FwW01ITF9YRENfU0laRV0gPSB7CisJCVtNSExf WERDX0VDQlVTX1NQRUVEU10gPSBNSExfWERDX0VDQlVTX1NfMDc1CisJCQl8IE1ITF9YRENfRUNC VVNfU184QklULAorCQlbTUhMX1hEQ19UTURTX1NQRUVEU10gPSBNSExfWERDX1RNRFNfMTUwCisJ CQl8IE1ITF9YRENfVE1EU18zMDAgfCBNSExfWERDX1RNRFNfNjAwLAorCQlbTUhMX1hEQ19FQ0JV U19ST0xFU10gPSBNSExfWERDX0RFVl9IT1NULAorCQlbTUhMX1hEQ19MT0dfREVWX01BUFhdID0g TUhMX1hEQ19MRF9QSE9ORSwKKwl9OworCisJc2lpODYyMF93cml0ZV9idWYoY3R4LCBSRUdfTUhM X0RFVkNBUF8wLCBkZXZjYXAsIEFSUkFZX1NJWkUoZGV2Y2FwKSk7CisJc2lpODYyMF93cml0ZV9i dWYoY3R4LCBSRUdfTUhMX0VYVERFVkNBUF8wLCB4ZGNhcCwgQVJSQVlfU0laRSh4ZGNhcCkpOwor fQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX21obF9pbml0KHN0cnVjdCBzaWk4NjIwICpjdHgpCit7 CisJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfRElTQ19DVFJMNCwgVkFMX0RJU0NfQ1RS TDQoVkFMX1BVUF9PRkYsIFZBTF9QVVBfMjBLKSwKKwkJUkVHX0NCVVNfTVNDX0NPTVBBVF9DVFJM LAorCQkJQklUX0NCVVNfTVNDX0NPTVBBVF9DVFJMX1hERVZDQVBfRU4sCisJKTsKKworCXNpaTg2 MjBfcGVlcl9zcGVjaWZpY19pbml0KGN0eCk7CisKKwlzaWk4NjIwX2Rpc2FibGVfaHBkKGN0eCk7 CisKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19FRElEX0NUUkwsIEJJVF9FRElEX0NU UkxfRURJRF9GSUZPX0FERFJfQVVUTywKKwkJUkVHX0RJU0NfQ1RSTDksIEJJVF9ESVNDX0NUUkw5 X1dBS0VfRFJWRkxUCisJCQl8IEJJVF9ESVNDX0NUUkw5X1dBS0VfUFVMU0VfQllQQVNTLAorCQlS RUdfVE1EUzBfQ0NUUkwxLCAweDkwLAorCQlSRUdfVE1EU19DTEtfRU4sIDB4MDEsCisJCVJFR19U TURTX0NIX0VOLCAweDExLAorCQlSRUdfQkdSX0JJQVMsIDB4ODcsCisJCVJFR19BTElDRTBfWk9O RV9DVFJMLCAweEU4LAorCQlSRUdfQUxJQ0UwX01PREVfQ1RSTCwgMHgwNCwKKwkpOworCXNpaTg2 MjBfc2V0Yml0cyhjdHgsIFJFR19MTV9EREMsIEJJVF9MTV9ERENfU1dfVFBJX0VOX0RJU0FCTEVE LCAwKTsKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19UUElfSFdfT1BUMywgMHg3NiwK KwkJUkVHX1RNRFNfQ0NUUkwsIEJJVF9UTURTX0NDVFJMX1RNRFNfT0UsCisJCVJFR19UUElfRFRE X0IyLCA3OSwKKwkpOworCXNpaTg2MjBfc2V0X2Rldl9jYXAoY3R4KTsKKwlzaWk4NjIwX3dyaXRl X3NlcShjdHgsCisJCVJFR19NRFRfWE1JVF9USU1FT1VULCAxMDAsCisJCVJFR19NRFRfWE1JVF9D VFJMLCAweDAzLAorCQlSRUdfTURUX1hGSUZPX1NUQVQsIDB4MDAsCisJCVJFR19NRFRfUkNWX1RJ TUVPVVQsIDEwMCwKKwkJUkVHX0NCVVNfTElOS19DVFJMXzgsIDB4MUQsCisJKTsKKworCXNpaTg2 MjBfc3RhcnRfZ2VuMl93cml0ZV9idXJzdChjdHgpOworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwK KwkJUkVHX0JJU1RfQ1RSTCwgMHgwMCwKKwkJUkVHX0NPQ19DVEwxLCAweDEwLAorCQlSRUdfQ09D X0NUTDIsIDB4MTgsCisJCVJFR19DT0NfQ1RMRiwgMHgwNywKKwkJUkVHX0NPQ19DVEwxMSwgMHhG OCwKKwkJUkVHX0NPQ19DVEwxNywgMHg2MSwKKwkJUkVHX0NPQ19DVEwxOCwgMHg0NiwKKwkJUkVH X0NPQ19DVEwxOSwgMHgxNSwKKwkJUkVHX0NPQ19DVEwxQSwgMHgwMSwKKwkJUkVHX01ITF9DT0Nf Q1RMMywgQklUX01ITF9DT0NfQ1RMM19DT0NfQUVDSE9fRU4sCisJCVJFR19NSExfQ09DX0NUTDQs IDB4MkQsCisJCVJFR19NSExfQ09DX0NUTDUsIDB4RjksCisJCVJFR19NU0NfSEVBUlRCRUFUX0NU UkwsIDB4MjcsCisJKTsKKwlzaWk4NjIwX2Rpc2FibGVfZ2VuMl93cml0ZV9idXJzdChjdHgpOwor CisJLyogY3VycmVudGx5IE1ITDMgaXMgbm90IHN1cHBvcnRlZCwgc28gd2UgZm9yY2UgdmVyc2lv biB0byAwICovCisJc2lpODYyMF9tdF93cml0ZV9zdGF0KGN0eCwgTUhMX0RTVF9SRUcoVkVSU0lP TiksIDApOworCXNpaTg2MjBfbXRfd3JpdGVfc3RhdChjdHgsIE1ITF9EU1RfUkVHKENPTk5FQ1RF RF9SRFkpLAorCQkJICAgICAgTUhMX0RTVF9DT05OX0RDQVBfUkRZIHwgTUhMX0RTVF9DT05OX1hE RVZDQVBQX1NVUFAKKwkJCSAgICAgIHwgTUhMX0RTVF9DT05OX1BPV19TVEFUKTsKKwlzaWk4NjIw X210X3NldF9pbnQoY3R4LCBNSExfSU5UX1JFRyhSQ0hBTkdFKSwgTUhMX0lOVF9SQ19EQ0FQX0NI Ryk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfc2V0X21vZGUoc3RydWN0IHNpaTg2MjAgKmN0 eCwgZW51bSBzaWk4NjIwX21vZGUgbW9kZSkKK3sKKwlpZiAoY3R4LT5tb2RlID09IG1vZGUpCisJ CXJldHVybjsKKworCWN0eC0+bW9kZSA9IG1vZGU7CisKKwlzd2l0Y2ggKG1vZGUpIHsKKwljYXNl IENNX01ITDE6CisJCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJCVJFR19DQlVTX01TQ19DT01Q QVRfQ1RSTCwgMHgwMiwKKwkJCVJFR19NM19DVFJMLCBWQUxfTTNfQ1RSTF9NSEwxXzJfVkFMVUUs CisJCQlSRUdfRFBELCBCSVRfRFBEX1BXUk9OX1BMTCB8IEJJVF9EUERfUEROVFgxMgorCQkJCXwg QklUX0RQRF9PU0NfRU4sCisJCQlSRUdfQ09DX0lOVFJfTUFTSywgMAorCQkpOworCQlicmVhazsK KwljYXNlIENNX01ITDM6CisJCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJCVJFR19NM19DVFJM LCBWQUxfTTNfQ1RSTF9NSEwzX1ZBTFVFLAorCQkJUkVHX0NPQ19DVEwwLCAweDQwLAorCQkJUkVH X01ITF9DT0NfQ1RMMSwgMHgwNworCQkpOworCQlicmVhazsKKwljYXNlIENNX0RJU0NPTk5FQ1RF RDoKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJZGV2X2VycihjdHgtPmRldiwgIiVzIG1vZGUgJWQg bm90IHN1cHBvcnRlZFxuIiwgX19mdW5jX18sIG1vZGUpOworCQlicmVhazsKKwl9OworCisJc2lp ODYyMF9zZXRfYXV0b196b25lKGN0eCk7CisKKwlpZiAobW9kZSAhPSBDTV9NSEwxKQorCQlyZXR1 cm47CisKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19NSExfRFBfQ1RMMCwgMHhCQywK KwkJUkVHX01ITF9EUF9DVEwxLCAweEJCLAorCQlSRUdfTUhMX0RQX0NUTDMsIDB4NDgsCisJCVJF R19NSExfRFBfQ1RMNSwgMHgzOSwKKwkJUkVHX01ITF9EUF9DVEwyLCAweDJBLAorCQlSRUdfTUhM X0RQX0NUTDYsIDB4MkEsCisJCVJFR19NSExfRFBfQ1RMNywgMHgwOAorCSk7Cit9CisKK3N0YXRp YyB2b2lkIHNpaTg2MjBfZGlzY29ubmVjdChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXNpaTg2 MjBfZGlzYWJsZV9nZW4yX3dyaXRlX2J1cnN0KGN0eCk7CisJc2lpODYyMF9zdG9wX3ZpZGVvKGN0 eCk7CisJbXNsZWVwKDUwKTsKKwlzaWk4NjIwX2NidXNfcmVzZXQoY3R4KTsKKwlzaWk4NjIwX3Nl dF9tb2RlKGN0eCwgQ01fRElTQ09OTkVDVEVEKTsKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJ CVJFR19DT0NfQ1RMMCwgMHg0MCwKKwkJUkVHX0NCVVMzX0NOVlQsIDB4ODQsCisJCVJFR19DT0Nf Q1RMMTQsIDB4MDAsCisJCVJFR19DT0NfQ1RMMCwgMHg0MCwKKwkJUkVHX0hSWENUUkwzLCAweDA3 LAorCQlSRUdfTUhMX1BMTF9DVEwwLCBWQUxfTUhMX1BMTF9DVEwwX0hETUlfQ0xLX1JBVElPXzFY CisJCQl8IEJJVF9NSExfUExMX0NUTDBfQ1JZU1RBTF9DTEtfU0VMCisJCQl8IEJJVF9NSExfUExM X0NUTDBfWk9ORV9NQVNLX09FLAorCQlSRUdfTUhMX0RQX0NUTDAsIEJJVF9NSExfRFBfQ1RMMF9E UF9PRQorCQkJfCBCSVRfTUhMX0RQX0NUTDBfVFhfT0VfT1ZSLAorCQlSRUdfTUhMX0RQX0NUTDEs IDB4QkIsCisJCVJFR19NSExfRFBfQ1RMMywgMHg0OCwKKwkJUkVHX01ITF9EUF9DVEw1LCAweDNG LAorCQlSRUdfTUhMX0RQX0NUTDIsIDB4MkYsCisJCVJFR19NSExfRFBfQ1RMNiwgMHgyQSwKKwkJ UkVHX01ITF9EUF9DVEw3LCAweDAzCisJKTsKKwlzaWk4NjIwX2Rpc2FibGVfaHBkKGN0eCk7CisJ c2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfTTNfQ1RSTCwgVkFMX00zX0NUUkxfTUhMM19W QUxVRSwKKwkJUkVHX01ITF9DT0NfQ1RMMSwgMHgwNywKKwkJUkVHX0RJU0NfQ1RSTDQsIFZBTF9E SVNDX0NUUkw0KFZBTF9QVVBfT0ZGLCBWQUxfUFVQXzIwSyksCisJCVJFR19ESVNDX0NUUkw4LCAw eDAwLAorCQlSRUdfRElTQ19DVFJMOSwgQklUX0RJU0NfQ1RSTDlfV0FLRV9EUlZGTFQKKwkJCXwg QklUX0RJU0NfQ1RSTDlfV0FLRV9QVUxTRV9CWVBBU1MsCisJCVJFR19JTlRfQ1RSTCwgMHgwMCwK KwkJUkVHX01TQ19IRUFSVEJFQVRfQ1RSTCwgMHgyNywKKwkJUkVHX0RJU0NfQ1RSTDEsIDB4MjUs CisJCVJFR19DQlVTX0RJU0NfSU5UUjAsICh1OCl+QklUX1JHTkRfUkVBRFlfSU5ULAorCQlSRUdf Q0JVU19ESVNDX0lOVFIwX01BU0ssIEJJVF9SR05EX1JFQURZX0lOVCwKKwkJUkVHX01EVF9JTlRf MSwgMHhmZiwKKwkJUkVHX01EVF9JTlRfMV9NQVNLLCAweDAwLAorCQlSRUdfTURUX0lOVF8wLCAw eGZmLAorCQlSRUdfTURUX0lOVF8wX01BU0ssIDB4MDAsCisJCVJFR19DT0NfSU5UUiwgMHhmZiwK KwkJUkVHX0NPQ19JTlRSX01BU0ssIDB4MDAsCisJCVJFR19UUlhJTlRILCAweGZmLAorCQlSRUdf VFJYSU5UTUgsIDB4MDAsCisJCVJFR19DQlVTX0lOVF8wLCAweGZmLAorCQlSRUdfQ0JVU19JTlRf MF9NQVNLLCAweDAwLAorCQlSRUdfQ0JVU19JTlRfMSwgMHhmZiwKKwkJUkVHX0NCVVNfSU5UXzFf TUFTSywgMHgwMCwKKwkJUkVHX0VNU0NJTlRSLCAweGZmLAorCQlSRUdfRU1TQ0lOVFJNQVNLLCAw eDAwLAorCQlSRUdfRU1TQ0lOVFIxLCAweGZmLAorCQlSRUdfRU1TQ0lOVFJNQVNLMSwgMHgwMCwK KwkJUkVHX0lOVFI4LCAweGZmLAorCQlSRUdfSU5UUjhfTUFTSywgMHgwMCwKKwkJUkVHX1RQSV9J TlRSX1NUMCwgMHhmZiwKKwkJUkVHX1RQSV9JTlRSX0VOLCAweDAwLAorCQlSRUdfSERDUDJYX0lO VFIwLCAweGZmLAorCQlSRUdfSERDUDJYX0lOVFIwX01BU0ssIDB4MDAsCisJCVJFR19JTlRSOSwg MHhmZiwKKwkJUkVHX0lOVFI5X01BU0ssIDB4MDAsCisJCVJFR19JTlRSMywgMHhmZiwKKwkJUkVH X0lOVFIzX01BU0ssIDB4MDAsCisJCVJFR19JTlRSNSwgMHhmZiwKKwkJUkVHX0lOVFI1X01BU0ss IDB4MDAsCisJCVJFR19JTlRSMiwgMHhmZiwKKwkJUkVHX0lOVFIyX01BU0ssIDB4MDAsCisJKTsK KwltZW1zZXQoY3R4LT5zdGF0LCAwLCBzaXplb2YoY3R4LT5zdGF0KSk7CisJbWVtc2V0KGN0eC0+ eHN0YXQsIDAsIHNpemVvZihjdHgtPnhzdGF0KSk7CisJbWVtc2V0KGN0eC0+ZGV2Y2FwLCAwLCBz aXplb2YoY3R4LT5kZXZjYXApKTsKKwltZW1zZXQoY3R4LT54ZGV2Y2FwLCAwLCBzaXplb2YoY3R4 LT54ZGV2Y2FwKSk7CisJY3R4LT5jYnVzX3N0YXR1cyA9IDA7CisJY3R4LT5zaW5rX3R5cGUgPSBT SU5LX05PTkU7CisJa2ZyZWUoY3R4LT5lZGlkKTsKKwljdHgtPmVkaWQgPSBOVUxMOworCXNpaTg2 MjBfbXRfY2xlYW51cChjdHgpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX21obF9kaXNjb25u ZWN0ZWQoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJ CVJFR19ESVNDX0NUUkw0LCBWQUxfRElTQ19DVFJMNChWQUxfUFVQX09GRiwgVkFMX1BVUF8yMEsp LAorCQlSRUdfQ0JVU19NU0NfQ09NUEFUX0NUUkwsCisJCQlCSVRfQ0JVU19NU0NfQ09NUEFUX0NU UkxfWERFVkNBUF9FTgorCSk7CisJc2lpODYyMF9kaXNjb25uZWN0KGN0eCk7Cit9CisKK3N0YXRp YyB2b2lkIHNpaTg2MjBfaXJxX2Rpc2Moc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCBzdGF0 ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19DQlVTX0RJU0NfSU5UUjApOworCisJaWYgKHN0YXQg JiBWQUxfQ0JVU19NSExfRElTQ09OKQorCQlzaWk4NjIwX21obF9kaXNjb25uZWN0ZWQoY3R4KTsK KworCWlmIChzdGF0ICYgQklUX1JHTkRfUkVBRFlfSU5UKSB7CisJCXU4IHN0YXQyID0gc2lpODYy MF9yZWFkYihjdHgsIFJFR19ESVNDX1NUQVQyKTsKKworCQlpZiAoKHN0YXQyICYgTVNLX0RJU0Nf U1RBVDJfUkdORCkgPT0gVkFMX1JHTkRfMUspCisJCQlzaWk4NjIwX21obF9kaXNjb3ZlcihjdHgp OworCQllbHNlIHsKKwkJCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJCQlSRUdfRElTQ19DVFJM OSwgQklUX0RJU0NfQ1RSTDlfV0FLRV9EUlZGTFQKKwkJCQkJfCBCSVRfRElTQ19DVFJMOV9OT01I TF9FU1QKKwkJCQkJfCBCSVRfRElTQ19DVFJMOV9XQUtFX1BVTFNFX0JZUEFTUywKKwkJCQlSRUdf Q0JVU19ESVNDX0lOVFIwX01BU0ssIEJJVF9SR05EX1JFQURZX0lOVAorCQkJCQl8IEJJVF9DQlVT X01ITDNfRElTQ09OX0lOVAorCQkJCQl8IEJJVF9DQlVTX01ITDEyX0RJU0NPTl9JTlQKKwkJCQkJ fCBCSVRfTk9UX01ITF9FU1RfSU5UCisJCQkpOworCQl9CisJfQorCWlmIChzdGF0ICYgQklUX01I TF9FU1RfSU5UKQorCQlzaWk4NjIwX21obF9pbml0KGN0eCk7CisKKwlzaWk4NjIwX3dyaXRlKGN0 eCwgUkVHX0NCVVNfRElTQ19JTlRSMCwgc3RhdCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBf aXJxX2cyd2Ioc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCBzdGF0ID0gc2lpODYyMF9yZWFk YihjdHgsIFJFR19NRFRfSU5UXzApOworCisJaWYgKHN0YXQgJiBCSVRfTURUX0lETEVfQUZURVJf SEFXQl9ESVNBQkxFKQorCQlkZXZfZGJnKGN0eC0+ZGV2LCAiSEFXQiBpZGxlXG4iKTsKKworCXNp aTg2MjBfd3JpdGUoY3R4LCBSRUdfTURUX0lOVF8wLCBzdGF0KTsKK30KKworc3RhdGljIHZvaWQg c2lpODYyMF9zdGF0dXNfY2hhbmdlZF9kY2FwKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJaWYg KGN0eC0+c3RhdFtNSExfRFNUX0NPTk5FQ1RFRF9SRFldICYgTUhMX0RTVF9DT05OX0RDQVBfUkRZ KSB7CisJCXNpaTg2MjBfc2V0X21vZGUoY3R4LCBDTV9NSEwxKTsKKwkJc2lpODYyMF9wZWVyX3Nw ZWNpZmljX2luaXQoY3R4KTsKKwkJc2lpODYyMF93cml0ZShjdHgsIFJFR19JTlRSOV9NQVNLLCBC SVRfSU5UUjlfREVWQ0FQX0RPTkUKKwkJCSAgICAgICB8IEJJVF9JTlRSOV9FRElEX0RPTkUgfCBC SVRfSU5UUjlfRURJRF9FUlJPUik7CisJfQorfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3N0YXR1 c19jaGFuZ2VkX3BhdGgoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlpZiAoY3R4LT5zdGF0W01I TF9EU1RfTElOS19NT0RFXSAmIE1ITF9EU1RfTE1fUEFUSF9FTkFCTEVEKSB7CisJCXNpaTg2MjBf bXRfd3JpdGVfc3RhdChjdHgsIE1ITF9EU1RfUkVHKExJTktfTU9ERSksCisJCQkJICAgICAgTUhM X0RTVF9MTV9DTEtfTU9ERV9OT1JNQUwKKwkJCQkgICAgICB8IE1ITF9EU1RfTE1fUEFUSF9FTkFC TEVEKTsKKwkJc2lpODYyMF9tdF9yZWFkX2RldmNhcChjdHgsIGZhbHNlKTsKKwl9IGVsc2Ugewor CQlzaWk4NjIwX210X3dyaXRlX3N0YXQoY3R4LCBNSExfRFNUX1JFRyhMSU5LX01PREUpLAorCQkJ CSAgICAgIE1ITF9EU1RfTE1fQ0xLX01PREVfTk9STUFMKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lk IHNpaTg2MjBfbXNjX21yX3dyaXRlX3N0YXQoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCBz dFtNSExfRFNUX1NJWkVdLCB4c3RbTUhMX1hEU19TSVpFXTsKKworCXNpaTg2MjBfcmVhZF9idWYo Y3R4LCBSRUdfTUhMX1NUQVRfMCwgc3QsIE1ITF9EU1RfU0laRSk7CisJc2lpODYyMF9yZWFkX2J1 ZihjdHgsIFJFR19NSExfRVhUU1RBVF8wLCB4c3QsIE1ITF9YRFNfU0laRSk7CisKKwlzaWk4NjIw X3VwZGF0ZV9hcnJheShjdHgtPnN0YXQsIHN0LCBNSExfRFNUX1NJWkUpOworCXNpaTg2MjBfdXBk YXRlX2FycmF5KGN0eC0+eHN0YXQsIHhzdCwgTUhMX1hEU19TSVpFKTsKKworCWlmIChzdFtNSExf RFNUX0NPTk5FQ1RFRF9SRFldICYgTUhMX0RTVF9DT05OX0RDQVBfUkRZKQorCQlzaWk4NjIwX3N0 YXR1c19jaGFuZ2VkX2RjYXAoY3R4KTsKKworCWlmIChzdFtNSExfRFNUX0xJTktfTU9ERV0gJiBN SExfRFNUX0xNX1BBVEhfRU5BQkxFRCkKKwkJc2lpODYyMF9zdGF0dXNfY2hhbmdlZF9wYXRoKGN0 eCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXNjX21yX3NldF9pbnQoc3RydWN0IHNpaTg2 MjAgKmN0eCkKK3sKKwl1OCBpbnRzW01ITF9JTlRfU0laRV07CisKKwlzaWk4NjIwX3JlYWRfYnVm KGN0eCwgUkVHX01ITF9JTlRfMCwgaW50cywgTUhMX0lOVF9TSVpFKTsKKwlzaWk4NjIwX3dyaXRl X2J1ZihjdHgsIFJFR19NSExfSU5UXzAsIGludHMsIE1ITF9JTlRfU0laRSk7Cit9CisKK3N0YXRp YyBzdHJ1Y3Qgc2lpODYyMF9tdF9tc2cgKnNpaTg2MjBfbXNjX21zZ19maXJzdChzdHJ1Y3Qgc2lp ODYyMCAqY3R4KQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9IGN0eC0+ZGV2OworCisJaWYgKGxp c3RfZW1wdHkoJmN0eC0+bXRfcXVldWUpKSB7CisJCWRldl9lcnIoZGV2LCAidW5leHBlY3RlZCBN U0MgTVQgcmVzcG9uc2VcbiIpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlyZXR1cm4gbGlzdF9m aXJzdF9lbnRyeSgmY3R4LT5tdF9xdWV1ZSwgc3RydWN0IHNpaTg2MjBfbXRfbXNnLCBub2RlKTsK K30KKworc3RhdGljIHZvaWQgc2lpODYyMF9tc2NfbXRfZG9uZShzdHJ1Y3Qgc2lpODYyMCAqY3R4 KQoreworCXN0cnVjdCBzaWk4NjIwX210X21zZyAqbXNnID0gc2lpODYyMF9tc2NfbXNnX2ZpcnN0 KGN0eCk7CisKKwlpZiAoIW1zZykKKwkJcmV0dXJuOworCisJbXNnLT5yZXQgPSBzaWk4NjIwX3Jl YWRiKGN0eCwgUkVHX01TQ19NVF9SQ1ZEX0RBVEEwKTsKKwljdHgtPm10X3N0YXRlID0gTVRfU1RB VEVfRE9ORTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9tc2NfbXJfbXNjX21zZyhzdHJ1Y3Qg c2lpODYyMCAqY3R4KQoreworCXN0cnVjdCBzaWk4NjIwX210X21zZyAqbXNnID0gc2lpODYyMF9t c2NfbXNnX2ZpcnN0KGN0eCk7CisJdTggYnVmWzJdOworCisJaWYgKCFtc2cpCisJCXJldHVybjsK KworCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfTVNDX01SX01TQ19NU0dfUkNWRF8xU1RfREFU QSwgYnVmLCAyKTsKKworCXN3aXRjaCAoYnVmWzBdKSB7CisJY2FzZSBNSExfTVNDX01TR19SQVBL OgorCQltc2ctPnJldCA9IGJ1ZlsxXTsKKwkJY3R4LT5tdF9zdGF0ZSA9IE1UX1NUQVRFX0RPTkU7 CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWRldl9lcnIoY3R4LT5kZXYsICIlcyBtZXNzYWdlIHR5 cGUgJWQsJWQgbm90IHN1cHBvcnRlZCIsCisJCQlfX2Z1bmNfXywgYnVmWzBdLCBidWZbMV0pOwor CX0KK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9pcnFfbXNjKHN0cnVjdCBzaWk4NjIwICpjdHgp Cit7CisJdTggc3RhdCA9IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfQ0JVU19JTlRfMCk7CisKKwlp ZiAoc3RhdCAmIH5CSVRfQ0JVU19IUERfQ0hHKQorCQlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0NC VVNfSU5UXzAsIHN0YXQgJiB+QklUX0NCVVNfSFBEX0NIRyk7CisKKwlpZiAoc3RhdCAmIEJJVF9D QlVTX0hQRF9DSEcpIHsKKwkJdTggY2J1c19zdGF0ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19D QlVTX1NUQVRVUyk7CisKKwkJaWYgKChjYnVzX3N0YXQgXiBjdHgtPmNidXNfc3RhdHVzKSAmIEJJ VF9DQlVTX1NUQVRVU19DQlVTX0hQRCkgeworCQkJc2lpODYyMF93cml0ZShjdHgsIFJFR19DQlVT X0lOVF8wLCBCSVRfQ0JVU19IUERfQ0hHKTsKKwkJfSBlbHNlIHsKKwkJCXN0YXQgXj0gQklUX0NC VVNfU1RBVFVTX0NCVVNfSFBEOworCQkJY2J1c19zdGF0IF49IEJJVF9DQlVTX1NUQVRVU19DQlVT X0hQRDsKKwkJfQorCQljdHgtPmNidXNfc3RhdHVzID0gY2J1c19zdGF0OworCX0KKworCWlmIChz dGF0ICYgQklUX0NCVVNfTVNDX01SX1dSSVRFX1NUQVQpCisJCXNpaTg2MjBfbXNjX21yX3dyaXRl X3N0YXQoY3R4KTsKKworCWlmIChzdGF0ICYgQklUX0NCVVNfTVNDX01SX1NFVF9JTlQpCisJCXNp aTg2MjBfbXNjX21yX3NldF9pbnQoY3R4KTsKKworCWlmIChzdGF0ICYgQklUX0NCVVNfTVNDX01U X0RPTkUpCisJCXNpaTg2MjBfbXNjX210X2RvbmUoY3R4KTsKKworCWlmIChzdGF0ICYgQklUX0NC VVNfTVNDX01SX01TQ19NU0cpCisJCXNpaTg2MjBfbXNjX21yX21zY19tc2coY3R4KTsKK30KKwor c3RhdGljIHZvaWQgc2lpODYyMF9pcnFfY29jKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJdTgg c3RhdCA9IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfQ09DX0lOVFIpOworCisJc2lpODYyMF93cml0 ZShjdHgsIFJFR19DT0NfSU5UUiwgc3RhdCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfaXJx X21lcnIoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCBzdGF0ID0gc2lpODYyMF9yZWFkYihj dHgsIFJFR19DQlVTX0lOVF8xKTsKKworCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfQ0JVU19JTlRf MSwgc3RhdCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfaXJxX2VkaWQoc3RydWN0IHNpaTg2 MjAgKmN0eCkKK3sKKwl1OCBzdGF0ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19JTlRSOSk7CisK KwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0lOVFI5LCBzdGF0KTsKKworCWlmIChzdGF0ICYgQklU X0lOVFI5X0RFVkNBUF9ET05FKQorCQljdHgtPm10X3N0YXRlID0gTVRfU1RBVEVfRE9ORTsKK30K Kworc3RhdGljIHZvaWQgc2lpODYyMF9zY2R0X2hpZ2goc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sK KwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19JTlRSOF9NQVNLLCBCSVRfQ0VBX05FV19B VkkgfCBCSVRfQ0VBX05FV19WU0ksCisJCVJFR19UUElfU0MsIEJJVF9UUElfU0NfVFBJX09VVFBV VF9NT0RFXzBfSERNSSwKKwkpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3NjZHRfbG93KHN0 cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc2lpODYyMF93cml0ZShjdHgsIFJFR19UTURTX0NTVEFU X1AzLAorCQkgICAgICAgQklUX1RNRFNfQ1NUQVRfUDNfU0NEVF9DTFJfQVZJX0RJUworCQkgICAg ICAgfCBCSVRfVE1EU19DU1RBVF9QM19DTFJfQVZJKTsKKworCXNpaTg2MjBfc3RvcF92aWRlbyhj dHgpOworCisJc2lpODYyMF93cml0ZShjdHgsIFJFR19JTlRSOF9NQVNLLCAwKTsKK30KKworc3Rh dGljIHZvaWQgc2lpODYyMF9pcnFfc2NkdChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXU4IHN0 YXQgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0lOVFI1KTsKKworCWlmIChzdGF0ICYgQklUX0lO VFJfU0NEVF9DSEFOR0UpIHsKKwkJdTggY3N0YXQgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX1RN RFNfQ1NUQVRfUDMpOworCisJCWlmIChjc3RhdCAmIEJJVF9UTURTX0NTVEFUX1AzX1NDRFQpCisJ CQlzaWk4NjIwX3NjZHRfaGlnaChjdHgpOworCQllbHNlCisJCQlzaWk4NjIwX3NjZHRfbG93KGN0 eCk7CisJfQorCisJc2lpODYyMF93cml0ZShjdHgsIFJFR19JTlRSNSwgc3RhdCk7Cit9CisKK3N0 YXRpYyB2b2lkIHNpaTg2MjBfbmV3X3ZzaShzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXU4IHZz aWZbMTFdOworCisJc2lpODYyMF93cml0ZShjdHgsIFJFR19SWF9IRE1JX0NUUkwyLAorCQkgICAg ICAgVkFMX1JYX0hETUlfQ1RSTDJfREVGVkFMCisJCSAgICAgICB8IEJJVF9SWF9IRE1JX0NUUkwy X1ZTSV9NT05fU0VMX1ZTSSk7CisJc2lpODYyMF9yZWFkX2J1ZihjdHgsIFJFR19SWF9IRE1JX01P Tl9QS1RfSEVBREVSMSwgdnNpZiwKKwkJCSBBUlJBWV9TSVpFKHZzaWYpKTsKK30KKworc3RhdGlj IHZvaWQgc2lpODYyMF9uZXdfYXZpKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc2lpODYyMF93 cml0ZShjdHgsIFJFR19SWF9IRE1JX0NUUkwyLCBWQUxfUlhfSERNSV9DVFJMMl9ERUZWQUwpOwor CXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfUlhfSERNSV9NT05fUEtUX0hFQURFUjEsIGN0eC0+ YXZpZiwKKwkJCSBBUlJBWV9TSVpFKGN0eC0+YXZpZikpOworfQorCitzdGF0aWMgdm9pZCBzaWk4 NjIwX2lycV9pbmZyKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJdTggc3RhdCA9IHNpaTg2MjBf cmVhZGIoY3R4LCBSRUdfSU5UUjgpCisJCSYgKEJJVF9DRUFfTkVXX1ZTSSB8IEJJVF9DRUFfTkVX X0FWSSk7CisKKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0lOVFI4LCBzdGF0KTsKKworCWlmIChz dGF0ICYgQklUX0NFQV9ORVdfVlNJKQorCQlzaWk4NjIwX25ld192c2koY3R4KTsKKworCWlmIChz dGF0ICYgQklUX0NFQV9ORVdfQVZJKQorCQlzaWk4NjIwX25ld19hdmkoY3R4KTsKKworCWlmIChz dGF0ICYgKEJJVF9DRUFfTkVXX1ZTSSB8IEJJVF9DRUFfTkVXX0FWSSkpCisJCXNpaTg2MjBfc3Rh cnRfdmlkZW8oY3R4KTsKK30KKworLyogZW5kaWFuIGFnbm9zdGljLCBub24tdm9sYXRpbGUgdmVy c2lvbiBvZiB0ZXN0X2JpdCAqLworc3RhdGljIGJvb2wgc2lpODYyMF90ZXN0X2JpdCh1bnNpZ25l ZCBpbnQgbnIsIGNvbnN0IHU4ICphZGRyKQoreworCXJldHVybiAxICYgKGFkZHJbbnIgLyBCSVRT X1BFUl9CWVRFXSA+PiAobnIgJSBCSVRTX1BFUl9CWVRFKSk7Cit9CisKK3N0YXRpYyBpcnFyZXR1 cm5fdCBzaWk4NjIwX2lycV90aHJlYWQoaW50IGlycSwgdm9pZCAqZGF0YSkKK3sKKwlzdGF0aWMg Y29uc3Qgc3RydWN0IHsKKwkJaW50IGJpdDsKKwkJdm9pZCAoKmhhbmRsZXIpKHN0cnVjdCBzaWk4 NjIwICpjdHgpOworCX0gaXJxX3ZlY1tdID0geworCQl7IEJJVF9GQVNUX0lOVFJfU1RBVF9ESVND LCBzaWk4NjIwX2lycV9kaXNjIH0sCisJCXsgQklUX0ZBU1RfSU5UUl9TVEFUX0cyV0IsIHNpaTg2 MjBfaXJxX2cyd2IgfSwKKwkJeyBCSVRfRkFTVF9JTlRSX1NUQVRfQ09DLCBzaWk4NjIwX2lycV9j b2MgfSwKKwkJeyBCSVRfRkFTVF9JTlRSX1NUQVRfTVNDLCBzaWk4NjIwX2lycV9tc2MgfSwKKwkJ eyBCSVRfRkFTVF9JTlRSX1NUQVRfTUVSUiwgc2lpODYyMF9pcnFfbWVyciB9LAorCQl7IEJJVF9G QVNUX0lOVFJfU1RBVF9FRElELCBzaWk4NjIwX2lycV9lZGlkIH0sCisJCXsgQklUX0ZBU1RfSU5U Ul9TVEFUX1NDRFQsIHNpaTg2MjBfaXJxX3NjZHQgfSwKKwkJeyBCSVRfRkFTVF9JTlRSX1NUQVRf SU5GUiwgc2lpODYyMF9pcnFfaW5mciB9LAorCX07CisJc3RydWN0IHNpaTg2MjAgKmN0eCA9IGRh dGE7CisJdTggc3RhdHNbTEVOX0ZBU1RfSU5UUl9TVEFUXTsKKwlpbnQgaSwgcmV0OworCisJbXV0 ZXhfbG9jaygmY3R4LT5sb2NrKTsKKworCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfRkFTVF9J TlRSX1NUQVQsIHN0YXRzLCBBUlJBWV9TSVpFKHN0YXRzKSk7CisJZm9yIChpID0gMDsgaSA8IEFS UkFZX1NJWkUoaXJxX3ZlYyk7ICsraSkKKwkJaWYgKHNpaTg2MjBfdGVzdF9iaXQoaXJxX3ZlY1tp XS5iaXQsIHN0YXRzKSkKKwkJCWlycV92ZWNbaV0uaGFuZGxlcihjdHgpOworCisJc2lpODYyMF9t dF93b3JrKGN0eCk7CisKKwlyZXQgPSBzaWk4NjIwX2NsZWFyX2Vycm9yKGN0eCk7CisJaWYgKHJl dCkgeworCQlkZXZfZXJyKGN0eC0+ZGV2LCAiRXJyb3IgZHVyaW5nIElSUSBoYW5kbGluZywgJWQu XG4iLCByZXQpOworCQlzaWk4NjIwX21obF9kaXNjb25uZWN0ZWQoY3R4KTsKKwl9CisJbXV0ZXhf dW5sb2NrKCZjdHgtPmxvY2spOworCisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCitzdGF0aWMg dm9pZCBzaWk4NjIwX2NhYmxlX2luKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc3RydWN0IGRl dmljZSAqZGV2ID0gY3R4LT5kZXY7CisJdTggdmVyWzVdOworCWludCByZXQ7CisKKwlyZXQgPSBz aWk4NjIwX2h3X29uKGN0eCk7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKGRldiwgIkVycm9yIHBv d2VyaW5nIG9uLCAlZC5cbiIsIHJldCk7CisJCXJldHVybjsKKwl9CisJc2lpODYyMF9od19yZXNl dChjdHgpOworCisJc2lpODYyMF9yZWFkX2J1ZihjdHgsIFJFR19WTkRfSURMLCB2ZXIsIEFSUkFZ X1NJWkUodmVyKSk7CisJcmV0ID0gc2lpODYyMF9jbGVhcl9lcnJvcihjdHgpOworCWlmIChyZXQp IHsKKwkJZGV2X2VycihkZXYsICJFcnJvciBhY2Nlc3NpbmcgSTJDIGJ1cywgJWQuXG4iLCByZXQp OworCQlyZXR1cm47CisJfQorCisJZGV2X2luZm8oZGV2LCAiQ2hpcElEICUwMnglMDJ4OiUwMngl MDJ4IHJldiAlMDJ4LlxuIiwgdmVyWzFdLCB2ZXJbMF0sCisJCSB2ZXJbM10sIHZlclsyXSwgdmVy WzRdKTsKKworCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfRFBELAorCQkJQklUX0RQRF9QV1JPTl9Q TEwgfCBCSVRfRFBEX1BETlRYMTIgfCBCSVRfRFBEX09TQ19FTik7CisKKwlzaWk4NjIwX3h0YWxf c2V0X3JhdGUoY3R4KTsKKwlzaWk4NjIwX2Rpc2Nvbm5lY3QoY3R4KTsKKworCXNpaTg2MjBfd3Jp dGVfc2VxKGN0eCwKKwkJUkVHX01ITF9DQlVTX0NUTDAsIFZBTF9NSExfQ0JVU19DVEwwX0NCVVNf RFJWX1NFTF9TVFJPTkcKKwkJCXwgVkFMX01ITF9DQlVTX0NUTDBfQ0JVU19SR05EX1ZCSUFTXzcz NCwKKwkJUkVHX01ITF9DQlVTX0NUTDEsIFZBTF9NSExfQ0JVU19DVEwxXzExMTVfT0hNLAorCQlS RUdfRFBELCBCSVRfRFBEX1BXUk9OX1BMTCB8IEJJVF9EUERfUEROVFgxMiB8IEJJVF9EUERfT1ND X0VOLAorCSk7CisKKwlyZXQgPSBzaWk4NjIwX2NsZWFyX2Vycm9yKGN0eCk7CisJaWYgKHJldCkg eworCQlkZXZfZXJyKGRldiwgIkVycm9yIGFjY2Vzc2luZyBJMkMgYnVzLCAlZC5cbiIsIHJldCk7 CisJCXJldHVybjsKKwl9CisKKwllbmFibGVfaXJxKHRvX2kyY19jbGllbnQoY3R4LT5kZXYpLT5p cnEpOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBzaWk4NjIwICpicmlkZ2VfdG9fc2lpODYy MChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQoreworCXJldHVybiBjb250YWluZXJfb2YoYnJp ZGdlLCBzdHJ1Y3Qgc2lpODYyMCwgYnJpZGdlKTsKK30KKworYm9vbCBzaWk4NjIwX21vZGVfZml4 dXAoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKKwkJICAgY29uc3Qgc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKm1vZGUsCisJCSAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9t b2RlKQoreworCXN0cnVjdCBzaWk4NjIwICpjdHggPSBicmlkZ2VfdG9fc2lpODYyMChicmlkZ2Up OworCWJvb2wgcmV0ID0gZmFsc2U7CisJaW50IG1heF9jbG9jayA9IDc0MjUwOworCisJbXV0ZXhf bG9jaygmY3R4LT5sb2NrKTsKKworCWlmIChtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5U RVJMQUNFKQorCQlnb3RvIG91dDsKKworCWlmIChjdHgtPmRldmNhcFtNSExfRENBUF9WSURfTElO S19NT0RFXSAmIE1ITF9EQ0FQX1ZJRF9MSU5LX1BQSVhFTCkKKwkJbWF4X2Nsb2NrID0gMzAwMDAw OworCisJcmV0ID0gbW9kZS0+Y2xvY2sgPD0gbWF4X2Nsb2NrOworCitvdXQ6CisJbXV0ZXhfdW5s b2NrKCZjdHgtPmxvY2spOworCisJcmV0dXJuIHJldDsKK30KKworCitzdGF0aWMgY29uc3Qgc3Ry dWN0IGRybV9icmlkZ2VfZnVuY3Mgc2lpODYyMF9icmlkZ2VfZnVuY3MgPSB7CisJLm1vZGVfZml4 dXAgPSBzaWk4NjIwX21vZGVfZml4dXAsCit9OworCitzdGF0aWMgaW50IHNpaTg2MjBfcHJvYmUo c3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKKwkJCSBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9p ZCAqaWQpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJmNsaWVudC0+ZGV2OworCXN0cnVjdCBz aWk4NjIwICpjdHg7CisJaW50IHJldDsKKworCWN0eCA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVv ZigqY3R4KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjdHgpCisJCXJldHVybiAtRU5PTUVNOworCisJ Y3R4LT5kZXYgPSBkZXY7CisJbXV0ZXhfaW5pdCgmY3R4LT5sb2NrKTsKKwlJTklUX0xJU1RfSEVB RCgmY3R4LT5tdF9xdWV1ZSk7CisKKwljdHgtPmNsa194dGFsID0gZGV2bV9jbGtfZ2V0KGRldiwg Inh0YWwiKTsKKwlpZiAoSVNfRVJSKGN0eC0+Y2xrX3h0YWwpKSB7CisJCWRldl9lcnIoZGV2LCAi ZmFpbGVkIHRvIGdldCB4dGFsIGNsb2NrIGZyb20gRFRcbiIpOworCQlyZXR1cm4gUFRSX0VSUihj dHgtPmNsa194dGFsKTsKKwl9CisKKwlpZiAoIWNsaWVudC0+aXJxKSB7CisJCWRldl9lcnIoZGV2 LCAibm8gaXJxIHByb3ZpZGVkXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCWlycV9zZXRf c3RhdHVzX2ZsYWdzKGNsaWVudC0+aXJxLCBJUlFfTk9BVVRPRU4pOworCXJldCA9IGRldm1fcmVx dWVzdF90aHJlYWRlZF9pcnEoZGV2LCBjbGllbnQtPmlycSwgTlVMTCwKKwkJCXNpaTg2MjBfaXJx X3RocmVhZCwgSVJRRl9UUklHR0VSX0hJR0ggfCBJUlFGX09ORVNIT1QsCisJCQkic2lpODYyMCIs IGN0eCk7CisKKwljdHgtPmdwaW9fcmVzZXQgPSBkZXZtX2dwaW9kX2dldChkZXYsICJyZXNldCIs IEdQSU9EX09VVF9ISUdIKTsKKwlpZiAoSVNfRVJSKGN0eC0+Z3Bpb19yZXNldCkpIHsKKwkJZGV2 X2VycihkZXYsICJmYWlsZWQgdG8gZ2V0IHJlc2V0IGdwaW8gZnJvbSBEVFxuIik7CisJCXJldHVy biBQVFJfRVJSKGN0eC0+Z3Bpb19yZXNldCk7CisJfQorCisJY3R4LT5zdXBwbGllc1swXS5zdXBw bHkgPSAiY3ZjYzEwIjsKKwljdHgtPnN1cHBsaWVzWzFdLnN1cHBseSA9ICJpb3ZjYzE4IjsKKwly ZXQgPSBkZXZtX3JlZ3VsYXRvcl9idWxrX2dldChkZXYsIDIsIGN0eC0+c3VwcGxpZXMpOworCWlm IChyZXQpCisJCXJldHVybiByZXQ7CisKKwlpMmNfc2V0X2NsaWVudGRhdGEoY2xpZW50LCBjdHgp OworCisJY3R4LT5icmlkZ2UuZnVuY3MgPSAmc2lpODYyMF9icmlkZ2VfZnVuY3M7CisJY3R4LT5i cmlkZ2Uub2Zfbm9kZSA9IGRldi0+b2Zfbm9kZTsKKwlkcm1fYnJpZGdlX2FkZCgmY3R4LT5icmlk Z2UpOworCisJc2lpODYyMF9jYWJsZV9pbihjdHgpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRp YyBpbnQgc2lpODYyMF9yZW1vdmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKK3sKKwlzdHJ1 Y3Qgc2lpODYyMCAqY3R4ID0gaTJjX2dldF9jbGllbnRkYXRhKGNsaWVudCk7CisKKwlkaXNhYmxl X2lycSh0b19pMmNfY2xpZW50KGN0eC0+ZGV2KS0+aXJxKTsKKwlkcm1fYnJpZGdlX3JlbW92ZSgm Y3R4LT5icmlkZ2UpOworCXNpaTg2MjBfaHdfb2ZmKGN0eCk7CisKKwlyZXR1cm4gMDsKK30KKwor c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc2lpODYyMF9kdF9tYXRjaFtdID0gewor CXsgLmNvbXBhdGlibGUgPSAic2lsLHNpaTg2MjAiIH0sCisJeyB9LAorfTsKK01PRFVMRV9ERVZJ Q0VfVEFCTEUob2YsIHNpaTg2MjBfZHRfbWF0Y2gpOworCitzdGF0aWMgY29uc3Qgc3RydWN0IGky Y19kZXZpY2VfaWQgc2lpODYyMF9pZFtdID0geworCXsgIlNJSTg2MjAiLCAwIH0sCisJeyB9LAor fTsKKworTU9EVUxFX0RFVklDRV9UQUJMRShpMmMsIHNpaTg2MjBfaWQpOworc3RhdGljIHN0cnVj dCBpMmNfZHJpdmVyIHNpaTg2MjBfZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lCT0g InNpaTg2MjAiLAorCQkub3duZXIJPSBUSElTX01PRFVMRSwKKwkJLm9mX21hdGNoX3RhYmxlID0g b2ZfbWF0Y2hfcHRyKHNpaTg2MjBfZHRfbWF0Y2gpLAorCX0sCisJLnByb2JlCQk9IHNpaTg2MjBf cHJvYmUsCisJLnJlbW92ZQkJPSBzaWk4NjIwX3JlbW92ZSwKKwkuaWRfdGFibGUgPSBzaWk4NjIw X2lkLAorfTsKKworbW9kdWxlX2kyY19kcml2ZXIoc2lpODYyMF9kcml2ZXIpOworTU9EVUxFX0xJ Q0VOU0UoIkdQTCB2MiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwt c2lpODYyMC5oIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5oCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmZjYxNmEKLS0tIC9kZXYvbnVsbAorKysgYi9k cml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbC1zaWk4NjIwLmgKQEAgLTAsMCArMSwxNTE3IEBACisv KgorICogUmVnaXN0ZXJzIG9mIFNpbGljb24gSW1hZ2UgU2lJODYyMCBNb2JpbGUgSEQgVHJhbnNt aXR0ZXIKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUsIFNhbXN1bmcgRWxlY3Ryb25pY3MgQ28u LCBMdGQuCisgKiBBbmRyemVqIEhhamRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgorICoKKyAqIEJh c2VkIG9uIE1ITCBkcml2ZXIgZm9yIEFuZHJvaWQgZGV2aWNlcy4KKyAqIENvcHlyaWdodCAoQykg MjAxMy0yMDE0IFNpbGljb24gSW1hZ2UsIEluYy4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9u IDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICov CisKKyNpZm5kZWYgX19TSUxfU0lJODYyMF9IX18KKyNkZWZpbmUgX19TSUxfU0lJODYyMF9IX18K KworLyogVmVuZG9yIElEIExvdyBieXRlLCBkZWZhdWx0IHZhbHVlOiAweDAxICovCisjZGVmaW5l IFJFR19WTkRfSURMCQkJCTB4MDAwMAorCisvKiBWZW5kb3IgSUQgSGlnaCBieXRlLCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19WTkRfSURICQkJCTB4MDAwMQorCisvKiBEZXZp Y2UgSUQgTG93IGJ5dGUsIGRlZmF1bHQgdmFsdWU6IDB4NjAgKi8KKyNkZWZpbmUgUkVHX0RFVl9J REwJCQkJMHgwMDAyCisKKy8qIERldmljZSBJRCBIaWdoIGJ5dGUsIGRlZmF1bHQgdmFsdWU6IDB4 ODYgKi8KKyNkZWZpbmUgUkVHX0RFVl9JREgJCQkJMHgwMDAzCisKKy8qIERldmljZSBSZXZpc2lv biwgZGVmYXVsdCB2YWx1ZTogMHgxMCAqLworI2RlZmluZSBSRUdfREVWX1JFVgkJCQkweDAwMDQK KworLyogT1RQIERCWVRFNTEwLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19P VFBfREJZVEU1MTAJCQkweDAwMDYKKworLyogU3lzdGVtIENvbnRyb2wgIzEsIGRlZmF1bHQgdmFs dWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1NZU19DVFJMMQkJCQkweDAwMDgKKyNkZWZpbmUgQklU X1NZU19DVFJMMV9PVFBWTVVURU9WUl9TRVQJCUJJVCg3KQorI2RlZmluZSBCSVRfU1lTX0NUUkwx X1ZTWU5DUElOCQkJQklUKDYpCisjZGVmaW5lIEJJVF9TWVNfQ1RSTDFfT1RQQURST1BPVlJfU0VU CQlCSVQoNSkKKyNkZWZpbmUgQklUX1NZU19DVFJMMV9CTE9DS19ERENfQllfSFBECQlCSVQoNCkK KyNkZWZpbmUgQklUX1NZU19DVFJMMV9PVFAyWFZPVlJfRU4JCUJJVCgzKQorI2RlZmluZSBCSVRf U1lTX0NUUkwxX09UUDJYQU9WUl9FTgkJQklUKDIpCisjZGVmaW5lIEJJVF9TWVNfQ1RSTDFfVFhf Q1RSTF9IRE1JCQlCSVQoMSkKKyNkZWZpbmUgQklUX1NZU19DVFJMMV9PVFBBTVVURU9WUl9TRVQJ CUJJVCgwKQorCisvKiBTeXN0ZW0gQ29udHJvbCBEUEQsIGRlZmF1bHQgdmFsdWU6IDB4OTAgKi8K KyNkZWZpbmUgUkVHX0RQRAkJCQkJMHgwMDBiCisjZGVmaW5lIEJJVF9EUERfUFdST05fUExMCQkJ QklUKDcpCisjZGVmaW5lIEJJVF9EUERfUEROVFgxMgkJCQlCSVQoNikKKyNkZWZpbmUgQklUX0RQ RF9QRE5SWDEyCQkJCUJJVCg1KQorI2RlZmluZSBCSVRfRFBEX09TQ19FTgkJCQlCSVQoNCkKKyNk ZWZpbmUgQklUX0RQRF9QV1JPTl9IU0lDCQkJQklUKDMpCisjZGVmaW5lIEJJVF9EUERfUERJRENL X04JCQlCSVQoMikKKyNkZWZpbmUgQklUX0RQRF9QRF9NSExfQ0xLX04JCQlCSVQoMSkKKworLyog RHVhbCBsaW5rIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0RD VEwJCQkJMHgwMDBkCisjZGVmaW5lIEJJVF9EQ1RMX1RETV9MQ0xLX1BIQVNFCQkJQklUKDcpCisj ZGVmaW5lIEJJVF9EQ1RMX0hTSUNfQ0xLX1BIQVNFCQkJQklUKDYpCisjZGVmaW5lIEJJVF9EQ1RM X0NUU19UQ0tfUEhBU0UJCQlCSVQoNSkKKyNkZWZpbmUgQklUX0RDVExfRVhUX0REQ19TRUwJCQlC SVQoNCkKKyNkZWZpbmUgQklUX0RDVExfVFJBTlNDT0RFCQkJQklUKDMpCisjZGVmaW5lIEJJVF9E Q1RMX0hTSUNfUlhfU1RST0JFX1BIQVNFCQlCSVQoMikKKyNkZWZpbmUgQklUX0RDVExfSFNJQ19U WF9CSVNUX1NUQVJUX1NFTAkJQklUKDEpCisjZGVmaW5lIEJJVF9EQ1RMX1RDTEtOWF9QSEFTRQkJ CUJJVCgwKQorCisvKiBQV0QgU29mdHdhcmUgUmVzZXQsIGRlZmF1bHQgdmFsdWU6IDB4MjAgKi8K KyNkZWZpbmUgUkVHX1BXRF9TUlNUCQkJCTB4MDAwZQorI2RlZmluZSBCSVRfUFdEX1NSU1RfQ09D X0RPQ19SU1QJCUJJVCg3KQorI2RlZmluZSBCSVRfUFdEX1NSU1RfQ0JVU19SU1RfU1cJCUJJVCg2 KQorI2RlZmluZSBCSVRfUFdEX1NSU1RfQ0JVU19SU1RfU1dfRU4JCUJJVCg1KQorI2RlZmluZSBC SVRfUFdEX1NSU1RfTUhMRklGT19SU1QJCUJJVCg0KQorI2RlZmluZSBCSVRfUFdEX1NSU1RfQ0JV U19SU1QJCQlCSVQoMykKKyNkZWZpbmUgQklUX1BXRF9TUlNUX1NXX1JTVF9BVVRPCQlCSVQoMikK KyNkZWZpbmUgQklUX1BXRF9TUlNUX0hEQ1AyWF9TV19SU1QJCUJJVCgxKQorI2RlZmluZSBCSVRf UFdEX1NSU1RfU1dfUlNUCQkJQklUKDApCisKKy8qIEFLU1ZfMSwgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLworI2RlZmluZSBSRUdfQUtTVl8xCQkJCTB4MDAxZAorCisvKiBWaWRlbyBIIFJlc29sdXRp b24gIzEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0hfUkVTTAkJCQkweDAw M2EKKworLyogVmlkZW8gTW9kZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdf VklEX01PREUJCQkJMHgwMDRhCisjZGVmaW5lIEJJVF9WSURfTU9ERV9NMTA4MFAJCQlCSVQoNikK KworLyogVmlkZW8gSW5wdXQgTW9kZSwgZGVmYXVsdCB2YWx1ZTogMHhjMCAqLworI2RlZmluZSBS RUdfVklEX09WUlJECQkJCTB4MDA1MQorI2RlZmluZSBCSVRfVklEX09WUlJEX1BQX0FVVE9fRElT QUJMRQkJQklUKDcpCisjZGVmaW5lIEJJVF9WSURfT1ZSUkRfTTEwODBQX09WUlJECQlCSVQoNikK KyNkZWZpbmUgQklUX1ZJRF9PVlJSRF9NSU5JVlNZTkNfT04JCUJJVCg1KQorI2RlZmluZSBCSVRf VklEX09WUlJEXzNEQ09OVl9FTl9GUkFNRV9QQUNLCUJJVCg0KQorI2RlZmluZSBCSVRfVklEX09W UlJEX0VOQUJMRV9BVVRPX1BBVEhfRU4JQklUKDMpCisjZGVmaW5lIEJJVF9WSURfT1ZSUkRfRU5S R0IyWUNCQ1JfT1ZSUkQJCUJJVCgyKQorI2RlZmluZSBCSVRfVklEX09WUlJEX0VORE9XTlNBTVBM RV9PVlJSRAlCSVQoMCkKKworLyogSTJDIEFkZHJlc3MgcmVhc3NpZ25tZW50LCBkZWZhdWx0IHZh bHVlOiAweDAwICovCisjZGVmaW5lIFJFR19QQUdFX01ITFNQRUNfQUREUgkJCTB4MDA1NworI2Rl ZmluZSBSRUdfUEFHRTdfQUREUgkJCQkweDAwNTgKKyNkZWZpbmUgUkVHX1BBR0U4X0FERFIJCQkJ MHgwMDVjCisKKy8qIEZhc3QgSW50ZXJydXB0IFN0YXR1cywgZGVmYXVsdCB2YWx1ZTogMHgwMCAq LworI2RlZmluZSBSRUdfRkFTVF9JTlRSX1NUQVQJCQkweDAwNWYKKyNkZWZpbmUgTEVOX0ZBU1Rf SU5UUl9TVEFUCQkJNworI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfVElNUgkJCTgKKyNkZWZp bmUgQklUX0ZBU1RfSU5UUl9TVEFUX0lOVDIJCQk5CisjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RB VF9EREMJCQkxMAorI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfU0NEVAkJCTExCisjZGVmaW5l IEJJVF9GQVNUX0lOVFJfU1RBVF9JTkZSCQkJMTMKKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFU X0VESUQJCQkxNAorI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfSERDUAkJCTE1CisjZGVmaW5l IEJJVF9GQVNUX0lOVFJfU1RBVF9NU0MJCQkxNgorI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRf TUVSUgkJCTE3CisjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9HMldCCQkJMTgKKyNkZWZpbmUg QklUX0ZBU1RfSU5UUl9TVEFUX0cyV0JfRVJSCQkxOQorI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NU QVRfRElTQwkJCTI4CisjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9CTE9DSwkJMzAKKyNkZWZp bmUgQklUX0ZBU1RfSU5UUl9TVEFUX0xUUk4JCQkzMQorI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NU QVRfSERDUDIJCTMyCisjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9URE0JCQk0MgorI2RlZmlu ZSBCSVRfRkFTVF9JTlRSX1NUQVRfQ09DCQkJNTEKKworLyogR1BJTyBDb250cm9sLCBkZWZhdWx0 IHZhbHVlOiAweDE1ICovCisjZGVmaW5lIFJFR19HUElPX0NUUkwxCQkJCTB4MDA2ZQorI2RlZmlu ZSBCSVRfQ1RSTDFfR1BJT19JXzgJCQlCSVQoNSkKKyNkZWZpbmUgQklUX0NUUkwxX0dQSU9fT0VO XzgJCQlCSVQoNCkKKyNkZWZpbmUgQklUX0NUUkwxX0dQSU9fSV83CQkJQklUKDMpCisjZGVmaW5l IEJJVF9DVFJMMV9HUElPX09FTl83CQkJQklUKDIpCisjZGVmaW5lIEJJVF9DVFJMMV9HUElPX0lf NgkJCUJJVCgxKQorI2RlZmluZSBCSVRfQ1RSTDFfR1BJT19PRU5fNgkJCUJJVCgwKQorCisvKiBJ bnRlcnJ1cHQgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgwNiAqLworI2RlZmluZSBSRUdfSU5U X0NUUkwJCQkJMHgwMDZmCisjZGVmaW5lIEJJVF9JTlRfQ1RSTF9TT0ZUV0FSRV9XUAkJQklUKDcp CisjZGVmaW5lIEJJVF9JTlRfQ1RSTF9JTlRSX09ECQkJQklUKDIpCisjZGVmaW5lIEJJVF9JTlRf Q1RSTF9JTlRSX1BPTEFSSVRZCQlCSVQoMSkKKworLyogSW50ZXJydXB0IFN0YXRlLCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19JTlRSX1NUQVRFCQkJCTB4MDA3MAorI2RlZmlu ZSBCSVRfSU5UUl9TVEFURV9JTlRSX1NUQVRFCQlCSVQoMCkKKworLyogSW50ZXJydXB0IFNvdXJj ZSAjMSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSU5UUjEJCQkJMHgwMDcx CisKKy8qIEludGVycnVwdCBTb3VyY2UgIzIsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZp bmUgUkVHX0lOVFIyCQkJCTB4MDA3MgorCisvKiBJbnRlcnJ1cHQgU291cmNlICMzLCBkZWZhdWx0 IHZhbHVlOiAweDAxICovCisjZGVmaW5lIFJFR19JTlRSMwkJCQkweDAwNzMKKyNkZWZpbmUgQklU X0REQ19DTURfRE9ORQkJCUJJVCgzKQorCisvKiBJbnRlcnJ1cHQgU291cmNlICM1LCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19JTlRSNQkJCQkweDAwNzQKKworLyogSW50ZXJy dXB0ICMxIE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0lOVFIxX01B U0sJCQkJMHgwMDc1CisKKy8qIEludGVycnVwdCAjMiBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCisjZGVmaW5lIFJFR19JTlRSMl9NQVNLCQkJCTB4MDA3NgorCisvKiBJbnRlcnJ1cHQgIzMg TWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSU5UUjNfTUFTSwkJCQkw eDAwNzcKKworLyogSW50ZXJydXB0ICM1IE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNk ZWZpbmUgUkVHX0lOVFI1X01BU0sJCQkJMHgwMDc4CisjZGVmaW5lIEJJVF9JTlRSX1NDRFRfQ0hB TkdFCQkJQklUKDApCisKKy8qIEhvdCBQbHVnIENvbm5lY3Rpb24gQ29udHJvbCwgZGVmYXVsdCB2 YWx1ZTogMHg0NSAqLworI2RlZmluZSBSRUdfSFBEX0NUUkwJCQkJMHgwMDc5CisjZGVmaW5lIEJJ VF9IUERfQ1RSTF9IUERfRFNfU0lHTkFMCQlCSVQoNykKKyNkZWZpbmUgQklUX0hQRF9DVFJMX0hQ RF9PVVRfT0RfRU4JCUJJVCg2KQorI2RlZmluZSBCSVRfSFBEX0NUUkxfSFBEX0hJR0gJCQlCSVQo NSkKKyNkZWZpbmUgQklUX0hQRF9DVFJMX0hQRF9PVVRfT1ZSX0VOCQlCSVQoNCkKKyNkZWZpbmUg QklUX0hQRF9DVFJMX0dQSU9fSV8xCQkJQklUKDMpCisjZGVmaW5lIEJJVF9IUERfQ1RSTF9HUElP X09FTl8xCQkJQklUKDIpCisjZGVmaW5lIEJJVF9IUERfQ1RSTF9HUElPX0lfMAkJCUJJVCgxKQor I2RlZmluZSBCSVRfSFBEX0NUUkxfR1BJT19PRU5fMAkJCUJJVCgwKQorCisvKiBHUElPIENvbnRy b2wsIGRlZmF1bHQgdmFsdWU6IDB4NTUgKi8KKyNkZWZpbmUgUkVHX0dQSU9fQ1RSTAkJCQkweDAw N2EKKyNkZWZpbmUgQklUX0NUUkxfR1BJT19JXzUJCQlCSVQoNykKKyNkZWZpbmUgQklUX0NUUkxf R1BJT19PRU5fNQkJCUJJVCg2KQorI2RlZmluZSBCSVRfQ1RSTF9HUElPX0lfNAkJCUJJVCg1KQor I2RlZmluZSBCSVRfQ1RSTF9HUElPX09FTl80CQkJQklUKDQpCisjZGVmaW5lIEJJVF9DVFJMX0dQ SU9fSV8zCQkJQklUKDMpCisjZGVmaW5lIEJJVF9DVFJMX0dQSU9fT0VOXzMJCQlCSVQoMikKKyNk ZWZpbmUgQklUX0NUUkxfR1BJT19JXzIJCQlCSVQoMSkKKyNkZWZpbmUgQklUX0NUUkxfR1BJT19P RU5fMgkJCUJJVCgwKQorCisvKiBJbnRlcnJ1cHQgU291cmNlIDcsIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KKyNkZWZpbmUgUkVHX0lOVFI3CQkJCTB4MDA3YgorCisvKiBJbnRlcnJ1cHQgU291cmNl IDgsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0lOVFI4CQkJCTB4MDA3Ywor CisvKiBJbnRlcnJ1cHQgIzcgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBS RUdfSU5UUjdfTUFTSwkJCQkweDAwN2QKKworLyogSW50ZXJydXB0ICM4IE1hc2ssIGRlZmF1bHQg dmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0lOVFI4X01BU0sJCQkJMHgwMDdlCisjZGVmaW5l IEJJVF9DRUFfTkVXX1ZTSQkJCQlCSVQoMikKKyNkZWZpbmUgQklUX0NFQV9ORVdfQVZJCQkJCUJJ VCgxKQorCisvKiBJRUVFLCBkZWZhdWx0IHZhbHVlOiAweDEwICovCisjZGVmaW5lIFJFR19UTURT X0NDVFJMCQkJCTB4MDA4MAorI2RlZmluZSBCSVRfVE1EU19DQ1RSTF9UTURTX09FCQkJQklUKDQp CisKKy8qIFRNRFMgQ29udHJvbCAjNCwgZGVmYXVsdCB2YWx1ZTogMHgwMiAqLworI2RlZmluZSBS RUdfVE1EU19DVFJMNAkJCQkweDAwODUKKyNkZWZpbmUgQklUX1RNRFNfQ1RSTDRfU0NEVF9DS0RU X1NFTAkJQklUKDEpCisjZGVmaW5lIEJJVF9UTURTX0NUUkw0X1RYX0VOX0JZX1NDRFQJCUJJVCgw KQorCisvKiBCSVNUIENOVEwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0JJ U1RfQ1RSTAkJCQkweDAwYmIKKyNkZWZpbmUgQklUX1JYQklTVF9WR0JfRU4JCQlCSVQoNykKKyNk ZWZpbmUgQklUX1RYQklTVF9WR0JfRU4JCQlCSVQoNikKKyNkZWZpbmUgQklUX0JJU1RfU1RBUlRf U0VMCQkJQklUKDUpCisjZGVmaW5lIEJJVF9CSVNUX1NUQVJUX0JJVAkJCUJJVCg0KQorI2RlZmlu ZSBCSVRfQklTVF9BTFdBWVNfT04JCQlCSVQoMykKKyNkZWZpbmUgQklUX0JJU1RfVFJBTlMJCQkJ QklUKDIpCisjZGVmaW5lIEJJVF9CSVNUX1JFU0VUCQkJCUJJVCgxKQorI2RlZmluZSBCSVRfQklT VF9FTgkJCQlCSVQoMCkKKworLyogQklTVCBEVVJBVElPTjAsIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KKyNkZWZpbmUgUkVHX0JJU1RfVEVTVF9TRUwJCQkweDAwYmQKKyNkZWZpbmUgTVNLX0JJU1Rf VEVTVF9TRUxfQklTVF9QQVRUX1NFTAkJMHgwZgorCisvKiBCSVNUIFZJREVPX01PREUsIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0JJU1RfVklERU9fTU9ERQkJCTB4MDBiZQor I2RlZmluZSBNU0tfQklTVF9WSURFT19NT0RFX0JJU1RfVklERU9fTU9ERV8zXzAJMHgwZgorCisv KiBCSVNUIERVUkFUSU9OMCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQklT VF9EVVJBVElPTl8wCQkJMHgwMGJmCisKKy8qIEJJU1QgRFVSQVRJT04xLCBkZWZhdWx0IHZhbHVl OiAweDAwICovCisjZGVmaW5lIFJFR19CSVNUX0RVUkFUSU9OXzEJCQkweDAwYzAKKworLyogQklT VCBEVVJBVElPTjIsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0JJU1RfRFVS QVRJT05fMgkJCTB4MDBjMQorCisvKiBCSVNUIDhCSVRfUEFUVEVSTiwgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLworI2RlZmluZSBSRUdfQklTVF84QklUX1BBVFRFUk4JCQkweDAwYzIKKworLyogTE0g RERDLCBkZWZhdWx0IHZhbHVlOiAweDgwICovCisjZGVmaW5lIFJFR19MTV9EREMJCQkJMHgwMGM3 CisjZGVmaW5lIEJJVF9MTV9ERENfU1dfVFBJX0VOX0RJU0FCTEVECQlCSVQoNykKKworI2RlZmlu ZSBCSVRfTE1fRERDX1ZJREVPX01VVEVfRU4JCUJJVCg1KQorI2RlZmluZSBCSVRfTE1fRERDX0RE Q19UUElfU1cJCQlCSVQoMikKKyNkZWZpbmUgQklUX0xNX0REQ19ERENfR1JBTlQJCQlCSVQoMSkK KyNkZWZpbmUgQklUX0xNX0REQ19ERENfR1BVX1JFUVVFU1QJCUJJVCgwKQorCisvKiBEREMgSTJD IE1hbnVhbCwgZGVmYXVsdCB2YWx1ZTogMHgwMyAqLworI2RlZmluZSBSRUdfRERDX01BTlVBTAkJ CQkweDAwZWMKKyNkZWZpbmUgQklUX0REQ19NQU5VQUxfTUFOX0REQwkJCUJJVCg3KQorI2RlZmlu ZSBCSVRfRERDX01BTlVBTF9WUF9TRUwJCQlCSVQoNikKKyNkZWZpbmUgQklUX0REQ19NQU5VQUxf RFNEQQkJCUJJVCg1KQorI2RlZmluZSBCSVRfRERDX01BTlVBTF9EU0NMCQkJQklUKDQpCisjZGVm aW5lIEJJVF9ERENfTUFOVUFMX0dDUF9IV19DVExfRU4JCUJJVCgzKQorI2RlZmluZSBCSVRfRERD X01BTlVBTF9ERENNX0FCT1JUX1dQCQlCSVQoMikKKyNkZWZpbmUgQklUX0REQ19NQU5VQUxfSU9f RFNEQQkJCUJJVCgxKQorI2RlZmluZSBCSVRfRERDX01BTlVBTF9JT19EU0NMCQkJQklUKDApCisK Ky8qIEREQyBJMkMgVGFyZ2V0IFNsYXZlIEFkZHJlc3MsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8K KyNkZWZpbmUgUkVHX0REQ19BRERSCQkJCTB4MDBlZAorI2RlZmluZSBNU0tfRERDX0FERFJfRERD X0FERFIJCQkweGZlCisKKy8qIEREQyBJMkMgVGFyZ2V0IFNlZ21lbnQgQWRkcmVzcywgZGVmYXVs dCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRERDX1NFR00JCQkJMHgwMGVlCisKKy8qIERE QyBJMkMgVGFyZ2V0IE9mZnNldCBBZGRyZXNzLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVm aW5lIFJFR19ERENfT0ZGU0VUCQkJCTB4MDBlZgorCisvKiBEREMgSTJDIERhdGEgSW4gY291bnQg IzEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0REQ19ESU5fQ05UMQkJCTB4 MDBmMAorCisvKiBEREMgSTJDIERhdGEgSW4gY291bnQgIzIsIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KKyNkZWZpbmUgUkVHX0REQ19ESU5fQ05UMgkJCTB4MDBmMQorI2RlZmluZSBNU0tfRERDX0RJ Tl9DTlQyX0REQ19ESU5fQ05UXzlfOAkweDAzCisKKy8qIEREQyBJMkMgU3RhdHVzLCBkZWZhdWx0 IHZhbHVlOiAweDA0ICovCisjZGVmaW5lIFJFR19ERENfU1RBVFVTCQkJCTB4MDBmMgorI2RlZmlu ZSBCSVRfRERDX1NUQVRVU19ERENfQlVTX0xPVwkJQklUKDYpCisjZGVmaW5lIEJJVF9ERENfU1RB VFVTX0REQ19OT19BQ0sJCUJJVCg1KQorI2RlZmluZSBCSVRfRERDX1NUQVRVU19ERENfSTJDX0lO X1BST0cJCUJJVCg0KQorI2RlZmluZSBCSVRfRERDX1NUQVRVU19ERENfRklGT19GVUxMCQlCSVQo MykKKyNkZWZpbmUgQklUX0REQ19TVEFUVVNfRERDX0ZJRk9fRU1QVFkJCUJJVCgyKQorI2RlZmlu ZSBCSVRfRERDX1NUQVRVU19ERENfRklGT19SRUFEX0lOX1NVRQlCSVQoMSkKKyNkZWZpbmUgQklU X0REQ19TVEFUVVNfRERDX0ZJRk9fV1JJVEVfSU5fVVNFCUJJVCgwKQorCisvKiBEREMgSTJDIENv bW1hbmQsIGRlZmF1bHQgdmFsdWU6IDB4NzAgKi8KKyNkZWZpbmUgUkVHX0REQ19DTUQJCQkJMHgw MGYzCisjZGVmaW5lIEJJVF9ERENfQ01EX0hEQ1BfRERDX0VOCQkJQklUKDYpCisjZGVmaW5lIEJJ VF9ERENfQ01EX1NEQV9ERUxfRU4JCQlCSVQoNSkKKyNkZWZpbmUgQklUX0REQ19DTURfRERDX0ZM VF9FTgkJCUJJVCg0KQorCisjZGVmaW5lIE1TS19ERENfQ01EX0REQ19DTUQJCQkweDBmCisjZGVm aW5lIFZBTF9ERENfQ01EX0VOSF9ERENfUkVBRF9OT19BQ0sJCTB4MDQKKyNkZWZpbmUgVkFMX0RE Q19DTURfRERDX0NNRF9DTEVBUl9GSUZPCQkweDA5CisjZGVmaW5lIFZBTF9ERENfQ01EX0REQ19D TURfQUJPUlQJCTB4MGYKKworLyogRERDIEkyQyBGSUZPIERhdGEgSW4vT3V0LCBkZWZhdWx0IHZh bHVlOiAweDAwICovCisjZGVmaW5lIFJFR19ERENfREFUQQkJCQkweDAwZjQKKworLyogRERDIEky QyBEYXRhIE91dCBDb3VudGVyLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19E RENfRE9VVF9DTlQJCQkweDAwZjUKKyNkZWZpbmUgQklUX0REQ19ET1VUX0NOVF9ERENfREVMQVlf Q05UXzgJQklUKDcpCisjZGVmaW5lIE1TS19ERENfRE9VVF9DTlRfRERDX0RBVEFfT1VUX0NOVAkw eDFmCisKKy8qIEREQyBJMkMgRGVsYXkgQ291bnQsIGRlZmF1bHQgdmFsdWU6IDB4MTQgKi8KKyNk ZWZpbmUgUkVHX0REQ19ERUxBWV9DTlQJCQkweDAwZjYKKworLyogVGVzdCBDb250cm9sLCBkZWZh dWx0IHZhbHVlOiAweDgwICovCisjZGVmaW5lIFJFR19URVNUX1RYQ1RSTAkJCQkweDAwZjcKKyNk ZWZpbmUgQklUX1RFU1RfVFhDVFJMX1JDTEtfUkVGX1NFTAkJQklUKDcpCisjZGVmaW5lIEJJVF9U RVNUX1RYQ1RSTF9QQ0xLX1JFRl9TRUwJCUJJVCg2KQorI2RlZmluZSBNU0tfVEVTVF9UWENUUkxf QllQQVNTX1BMTF9DTEsJCTB4M2MKKyNkZWZpbmUgQklUX1RFU1RfVFhDVFJMX0hETUlfTU9ERQkJ QklUKDEpCisjZGVmaW5lIEJJVF9URVNUX1RYQ1RSTF9UU1RfUExMQ0sJCUJJVCgwKQorCisvKiBD QlVTIEFkZHJlc3MsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1BBR0VfQ0JV U19BRERSCQkJMHgwMGY4CisKKy8qIEkyQyBEZXZpY2UgQWRkcmVzcyByZS1hc3NpZ25tZW50ICov CisjZGVmaW5lIFJFR19QQUdFMV9BRERSCQkJCTB4MDBmYworI2RlZmluZSBSRUdfUEFHRTJfQURE UgkJCQkweDAwZmQKKyNkZWZpbmUgUkVHX1BBR0UzX0FERFIJCQkJMHgwMGZlCisjZGVmaW5lIFJF R19IV19UUElfQUREUgkJCQkweDAwZmYKKworLyogVVNCVCBDVFJMMCwgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLworI2RlZmluZSBSRUdfVVRTUlNUCQkJCTB4MDEwMAorI2RlZmluZSBCSVRfVVRTUlNU X0ZDX1NSU1QJCQlCSVQoNSkKKyNkZWZpbmUgQklUX1VUU1JTVF9LRUVQRVJfU1JTVAkJCUJJVCg0 KQorI2RlZmluZSBCSVRfVVRTUlNUX0hUWF9TUlNUCQkJQklUKDMpCisjZGVmaW5lIEJJVF9VVFNS U1RfVFJYX1NSU1QJCQlCSVQoMikKKyNkZWZpbmUgQklUX1VUU1JTVF9UVFhfU1JTVAkJCUJJVCgx KQorI2RlZmluZSBCSVRfVVRTUlNUX0hSWF9TUlNUCQkJQklUKDApCisKKy8qIEhTSUMgUlggQ29u dHJvbDMsIGRlZmF1bHQgdmFsdWU6IDB4MDcgKi8KKyNkZWZpbmUgUkVHX0hSWENUUkwzCQkJCTB4 MDEwNAorI2RlZmluZSBNU0tfSFJYQ1RSTDNfSFJYX0FGRkNUUkwJCTB4ZjAKKyNkZWZpbmUgQklU X0hSWENUUkwzX0hSWF9PVVRfRU4JCQlCSVQoMikKKyNkZWZpbmUgQklUX0hSWENUUkwzX1NUQVRV U19FTgkJCUJJVCgxKQorI2RlZmluZSBCSVRfSFJYQ1RSTDNfSFJYX1NUQVlfUkVTRVQJCUJJVCgw KQorCisvKiBIU0lDIFJYIElOVCBSZWdpc3RlcnMgKi8KKyNkZWZpbmUgUkVHX0hSWElOVEwJCQkJ MHgwMTExCisjZGVmaW5lIFJFR19IUlhJTlRICQkJCTB4MDExMgorCisvKiBURE0gVFggTlVNQklU UywgZGVmYXVsdCB2YWx1ZTogMHgwYyAqLworI2RlZmluZSBSRUdfVFRYTlVNQgkJCQkweDAxMTYK KyNkZWZpbmUgTVNLX1RUWE5VTUJfVFRYX0FGRkNUUkxfM18wCQkweGYwCisjZGVmaW5lIEJJVF9U VFhOVU1CX1RUWF9DT00xX0FUX1NZTkNfV0FJVAlCSVQoMykKKyNkZWZpbmUgTVNLX1RUWE5VTUJf VFRYX05VTUJQU18yXzAJCTB4MDcKKworLyogVERNIFRYIE5VTVNQSVNZTSwgZGVmYXVsdCB2YWx1 ZTogMHgwNCAqLworI2RlZmluZSBSRUdfVFRYU1BJTlVNUwkJCQkweDAxMTcKKworLyogVERNIFRY IE5VTUhTSUNTWU0sIGRlZmF1bHQgdmFsdWU6IDB4MTQgKi8KKyNkZWZpbmUgUkVHX1RUWEhTSUNO VU1TCQkJCTB4MDExOAorCisvKiBURE0gVFggTlVNVE9UU1lNLCBkZWZhdWx0IHZhbHVlOiAweDE4 ICovCisjZGVmaW5lIFJFR19UVFhUT1ROVU1TCQkJCTB4MDExOQorCisvKiBURE0gVFggSU5UIExv dywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFRYSU5UTAkJCQkweDAxMzYK KyNkZWZpbmUgQklUX1RUWElOVExfVFRYX0lOVFI3CQkJQklUKDcpCisjZGVmaW5lIEJJVF9UVFhJ TlRMX1RUWF9JTlRSNgkJCUJJVCg2KQorI2RlZmluZSBCSVRfVFRYSU5UTF9UVFhfSU5UUjUJCQlC SVQoNSkKKyNkZWZpbmUgQklUX1RUWElOVExfVFRYX0lOVFI0CQkJQklUKDQpCisjZGVmaW5lIEJJ VF9UVFhJTlRMX1RUWF9JTlRSMwkJCUJJVCgzKQorI2RlZmluZSBCSVRfVFRYSU5UTF9UVFhfSU5U UjIJCQlCSVQoMikKKyNkZWZpbmUgQklUX1RUWElOVExfVFRYX0lOVFIxCQkJQklUKDEpCisjZGVm aW5lIEJJVF9UVFhJTlRMX1RUWF9JTlRSMAkJCUJJVCgwKQorCisvKiBURE0gVFggSU5UIEhpZ2gs IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RUWElOVEgJCQkJMHgwMTM3Cisj ZGVmaW5lIEJJVF9UVFhJTlRIX1RUWF9JTlRSMTUJCQlCSVQoNykKKyNkZWZpbmUgQklUX1RUWElO VEhfVFRYX0lOVFIxNAkJCUJJVCg2KQorI2RlZmluZSBCSVRfVFRYSU5USF9UVFhfSU5UUjEzCQkJ QklUKDUpCisjZGVmaW5lIEJJVF9UVFhJTlRIX1RUWF9JTlRSMTIJCQlCSVQoNCkKKyNkZWZpbmUg QklUX1RUWElOVEhfVFRYX0lOVFIxMQkJCUJJVCgzKQorI2RlZmluZSBCSVRfVFRYSU5USF9UVFhf SU5UUjEwCQkJQklUKDIpCisjZGVmaW5lIEJJVF9UVFhJTlRIX1RUWF9JTlRSOQkJCUJJVCgxKQor I2RlZmluZSBCSVRfVFRYSU5USF9UVFhfSU5UUjgJCQlCSVQoMCkKKworLyogVERNIFJYIENvbnRy b2wsIGRlZmF1bHQgdmFsdWU6IDB4MWMgKi8KKyNkZWZpbmUgUkVHX1RSWENUUkwJCQkJMHgwMTNi CisjZGVmaW5lIEJJVF9UUlhDVFJMX1RSWF9DTFJfV1ZBTExPVwkJQklUKDQpCisjZGVmaW5lIEJJ VF9UUlhDVFJMX1RSWF9GUk9NX1NFX0NPQwkJQklUKDMpCisjZGVmaW5lIE1TS19UUlhDVFJMX1RS WF9OVU1CUFNfMl8wCQkweDA3CisKKy8qIFRETSBSWCBOVU1TUElTWU0sIGRlZmF1bHQgdmFsdWU6 IDB4MDQgKi8KKyNkZWZpbmUgUkVHX1RSWFNQSU5VTVMJCQkJMHgwMTNjCisKKy8qIFRETSBSWCBO VU1IU0lDU1lNLCBkZWZhdWx0IHZhbHVlOiAweDE0ICovCisjZGVmaW5lIFJFR19UUlhIU0lDTlVN UwkJCQkweDAxM2QKKworLyogVERNIFJYIE5VTVRPVFNZTSwgZGVmYXVsdCB2YWx1ZTogMHgxOCAq LworI2RlZmluZSBSRUdfVFJYVE9UTlVNUwkJCQkweDAxM2UKKworLyogVERNIFJYIFN0YXR1cyAy bmQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RSWFNUQTIJCQkJMHgwMTVj CisKKy8qIFRETSBSWCBJTlQgTG93LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJF R19UUlhJTlRMCQkJCTB4MDE2MworCisvKiBURE0gUlggSU5UIEhpZ2gsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RSWElOVEgJCQkJMHgwMTY0CisKKy8qIFRETSBSWCBJTlRN QVNLIEhpZ2gsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RSWElOVE1ICQkJ CTB4MDE2NgorCisvKiBIU0lDIFRYIENSVEwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZp bmUgUkVHX0hUWENUUkwJCQkJMHgwMTY5CisjZGVmaW5lIEJJVF9IVFhDVFJMX0hUWF9BTExTQkVf U09QCQlCSVQoNCkKKyNkZWZpbmUgQklUX0hUWENUUkxfSFRYX1JHRElOVl9VU0IJCUJJVCgzKQor I2RlZmluZSBCSVRfSFRYQ1RSTF9IVFhfUlNQVERNX0JVU1kJCUJJVCgyKQorI2RlZmluZSBCSVRf SFRYQ1RSTF9IVFhfRFJWQ09OTjEJCUJJVCgxKQorI2RlZmluZSBCSVRfSFRYQ1RSTF9IVFhfRFJW UlNUMQkJCUJJVCgwKQorCisvKiBIU0lDIFRYIElOVCBMb3csIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KKyNkZWZpbmUgUkVHX0hUWElOVEwJCQkJMHgwMTdkCisKKy8qIEhTSUMgVFggSU5UIEhpZ2gs IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0hUWElOVEgJCQkJMHgwMTdlCisK Ky8qIEhTSUMgS2VlcGVyLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19LRUVQ RVIJCQkJMHgwMTgxCisjZGVmaW5lIE1TS19LRUVQRVJfS0VFUEVSX01PREVfMV8wCQkweDAzCisK Ky8qIEhTSUMgRmxvdyBDb250cm9sIEdlbmVyYWwsIGRlZmF1bHQgdmFsdWU6IDB4MDIgKi8KKyNk ZWZpbmUgUkVHX0ZDR0MJCQkJMHgwMTgzCisjZGVmaW5lIEJJVF9GQ0dDX0hTSUNfRkNfSE9TVE1P REUJCUJJVCgxKQorI2RlZmluZSBCSVRfRkNHQ19IU0lDX0ZDX0VOQUJMRQkJCUJJVCgwKQorCisv KiBIU0lDIEZsb3cgQ29udHJvbCBDVFIxMywgZGVmYXVsdCB2YWx1ZTogMHhmYyAqLworI2RlZmlu ZSBSRUdfRkNDVFIxMwkJCQkweDAxOTEKKworLyogSFNJQyBGbG93IENvbnRyb2wgQ1RSMTQsIGRl ZmF1bHQgdmFsdWU6IDB4ZmYgKi8KKyNkZWZpbmUgUkVHX0ZDQ1RSMTQJCQkJMHgwMTkyCisKKy8q IEhTSUMgRmxvdyBDb250cm9sIENUUjE1LCBkZWZhdWx0IHZhbHVlOiAweGZmICovCisjZGVmaW5l IFJFR19GQ0NUUjE1CQkJCTB4MDE5MworCisvKiBIU0lDIEZsb3cgQ29udHJvbCBDVFI1MCwgZGVm YXVsdCB2YWx1ZTogMHgwMyAqLworI2RlZmluZSBSRUdfRkNDVFI1MAkJCQkweDAxYjYKKworLyog SFNJQyBGbG93IENvbnRyb2wgSU5UUjAsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUg UkVHX0ZDSU5UUjAJCQkJMHgwMWVjCisjZGVmaW5lIFJFR19GQ0lOVFIxCQkJCTB4MDFlZAorI2Rl ZmluZSBSRUdfRkNJTlRSMgkJCQkweDAxZWUKKyNkZWZpbmUgUkVHX0ZDSU5UUjMJCQkJMHgwMWVm CisjZGVmaW5lIFJFR19GQ0lOVFI0CQkJCTB4MDFmMAorI2RlZmluZSBSRUdfRkNJTlRSNQkJCQkw eDAxZjEKKyNkZWZpbmUgUkVHX0ZDSU5UUjYJCQkJMHgwMWYyCisjZGVmaW5lIFJFR19GQ0lOVFI3 CQkJCTB4MDFmMworCisvKiBURE0gTG93IExhdGVuY3ksIGRlZmF1bHQgdmFsdWU6IDB4MjAgKi8K KyNkZWZpbmUgUkVHX1RETUxMQ1RMCQkJCTB4MDFmYworI2RlZmluZSBNU0tfVERNTExDVExfVFJY X0xMX1NFTF9NQU5VQUwJCTB4YzAKKyNkZWZpbmUgTVNLX1RETUxMQ1RMX1RSWF9MTF9TRUxfTU9E RQkJMHgzMAorI2RlZmluZSBNU0tfVERNTExDVExfVFRYX0xMX1NFTF9NQU5VQUwJCTB4MGMKKyNk ZWZpbmUgQklUX1RETUxMQ1RMX1RUWF9MTF9USUVfTE9XCQlCSVQoMSkKKyNkZWZpbmUgQklUX1RE TUxMQ1RMX1RUWF9MTF9TRUxfTU9ERQkJQklUKDApCisKKy8qIFRNRFMgMCBDbG9jayBDb250cm9s LCBkZWZhdWx0IHZhbHVlOiAweDEwICovCisjZGVmaW5lIFJFR19UTURTMF9DQ1RSTDEJCQkweDAy MTAKKyNkZWZpbmUgTVNLX1RNRFMwX0NDVFJMMV9URVNUX1NFTAkJMHhjMAorI2RlZmluZSBNU0tf VE1EUzBfQ0NUUkwxX0NMSzFYX0NUTAkJMHgzMAorCisvKiBUTURTIENsb2NrIEVuYWJsZSwgZGVm YXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVE1EU19DTEtfRU4JCQkJMHgwMjExCisj ZGVmaW5lIEJJVF9UTURTX0NMS19FTl9DTEtfRU4JCQlCSVQoMCkKKworLyogVE1EUyBDaGFubmVs IEVuYWJsZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVE1EU19DSF9FTgkJ CQkweDAyMTIKKyNkZWZpbmUgQklUX1RNRFNfQ0hfRU5fQ0gwX0VOCQkJQklUKDQpCisjZGVmaW5l IEJJVF9UTURTX0NIX0VOX0NIMTJfRU4JCQlCSVQoMCkKKworLyogQkdSX0JJQVMsIGRlZmF1bHQg dmFsdWU6IDB4MDcgKi8KKyNkZWZpbmUgUkVHX0JHUl9CSUFTCQkJCTB4MDIxNQorI2RlZmluZSBC SVRfQkdSX0JJQVNfQkdSX0VOCQkJQklUKDcpCisjZGVmaW5lIE1TS19CR1JfQklBU19CSUFTX0JH Ul9ECQkJMHgwZgorCisvKiBUTURTIDAgRGlnaXRhbCBJMkMgQlcsIGRlZmF1bHQgdmFsdWU6IDB4 MGEgKi8KKyNkZWZpbmUgUkVHX0FMSUNFMF9CV19JMkMJCQkweDAyMzEKKworLyogVE1EUyAwIERp Z2l0YWwgWm9uZSBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweGUwICovCisjZGVmaW5lIFJFR19B TElDRTBfWk9ORV9DVFJMCQkJMHgwMjRjCisjZGVmaW5lIEJJVF9BTElDRTBfWk9ORV9DVFJMX0lD UlNUX04JCUJJVCg3KQorI2RlZmluZSBCSVRfQUxJQ0UwX1pPTkVfQ1RSTF9VU0VfSU5UX0RJVjIw CUJJVCg2KQorI2RlZmluZSBNU0tfQUxJQ0UwX1pPTkVfQ1RSTF9TWk9ORV9JMkMJCTB4MzAKKyNk ZWZpbmUgTVNLX0FMSUNFMF9aT05FX0NUUkxfWk9ORV9DVFJMCQkweDBmCisKKy8qIFRNRFMgMCBE aWdpdGFsIFBMTCBNb2RlIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUg UkVHX0FMSUNFMF9NT0RFX0NUUkwJCQkweDAyNGQKKyNkZWZpbmUgTVNLX0FMSUNFMF9NT0RFX0NU UkxfUExMX01PREVfSTJDCTB4MGMKKyNkZWZpbmUgTVNLX0FMSUNFMF9NT0RFX0NUUkxfRElWMjBf Q1RSTAkJMHgwMworCisvKiBNSEwgVHggQ29udHJvbCA2dGgsIGRlZmF1bHQgdmFsdWU6IDB4YTAg Ki8KKyNkZWZpbmUgUkVHX01ITFRYX0NUTDYJCQkJMHgwMjg1CisjZGVmaW5lIE1TS19NSExUWF9D VEw2X0VNSV9TRUwJCQkweGUwCisjZGVmaW5lIE1TS19NSExUWF9DVEw2X1RYX0NMS19TSEFQRV85 XzgJCTB4MDMKKworLyogUGFja2V0IEZpbHRlcjAsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNk ZWZpbmUgUkVHX1BLVF9GSUxURVJfMAkJCTB4MDI5MAorI2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8w X0RST1BfQ0VBX0dBTVVUX1BLVAlCSVQoNykKKyNkZWZpbmUgQklUX1BLVF9GSUxURVJfMF9EUk9Q X0NFQV9DUF9QS1QJQklUKDYpCisjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzBfRFJPUF9NUEVHX1BL VAkJQklUKDUpCisjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzBfRFJPUF9TUElGX1BLVAkJQklUKDQp CisjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzBfRFJPUF9BSUZfUEtUCQlCSVQoMykKKyNkZWZpbmUg QklUX1BLVF9GSUxURVJfMF9EUk9QX0FWSV9QS1QJCUJJVCgyKQorI2RlZmluZSBCSVRfUEtUX0ZJ TFRFUl8wX0RST1BfQ1RTX1BLVAkJQklUKDEpCisjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzBfRFJP UF9HQ1BfUEtUCQlCSVQoMCkKKworLyogUGFja2V0IEZpbHRlcjEsIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KKyNkZWZpbmUgUkVHX1BLVF9GSUxURVJfMQkJCTB4MDI5MQorI2RlZmluZSBCSVRfUEtU X0ZJTFRFUl8xX1ZTSV9PVkVSUklERV9ESVMJQklUKDcpCisjZGVmaW5lIEJJVF9QS1RfRklMVEVS XzFfQVZJX09WRVJSSURFX0RJUwlCSVQoNikKKyNkZWZpbmUgQklUX1BLVF9GSUxURVJfMV9EUk9Q X0FVRElPX1BLVAkJQklUKDMpCisjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzFfRFJPUF9HRU4yX1BL VAkJQklUKDIpCisjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzFfRFJPUF9HRU5fUEtUCQlCSVQoMSkK KyNkZWZpbmUgQklUX1BLVF9GSUxURVJfMV9EUk9QX1ZTSUZfUEtUCQlCSVQoMCkKKworLyogVE1E UyBDbG9jayBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4MTAgKi8KKyNkZWZpbmUgUkVHX1RNRFNf Q1NUQVRfUDMJCQkweDAyYTAKKyNkZWZpbmUgQklUX1RNRFNfQ1NUQVRfUDNfUlhfSERNSV9DUF9D TFJfTVVURQlCSVQoNykKKyNkZWZpbmUgQklUX1RNRFNfQ1NUQVRfUDNfUlhfSERNSV9DUF9TRVRf TVVURQlCSVQoNikKKyNkZWZpbmUgQklUX1RNRFNfQ1NUQVRfUDNfUlhfSERNSV9DUF9ORVdfQ1AJ QklUKDUpCisjZGVmaW5lIEJJVF9UTURTX0NTVEFUX1AzX0NMUl9BVkkJCUJJVCgzKQorI2RlZmlu ZSBCSVRfVE1EU19DU1RBVF9QM19TQ0RUX0NMUl9BVklfRElTCUJJVCgyKQorI2RlZmluZSBCSVRf VE1EU19DU1RBVF9QM19TQ0RUCQkJQklUKDEpCisjZGVmaW5lIEJJVF9UTURTX0NTVEFUX1AzX0NL RFQJCQlCSVQoMCkKKworLyogUlhfSERNSSBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDEwICov CisjZGVmaW5lIFJFR19SWF9IRE1JX0NUUkwwCQkJMHgwMmExCisjZGVmaW5lIEJJVF9SWF9IRE1J X0NUUkwwX0JZUF9EVklGSUxUX1NZTkMJQklUKDUpCisjZGVmaW5lIEJJVF9SWF9IRE1JX0NUUkww X0hETUlfTU9ERV9FTl9JVFNFTEZfQ0xSIEJJVCg0KQorI2RlZmluZSBCSVRfUlhfSERNSV9DVFJM MF9IRE1JX01PREVfU1dfVkFMVUUJQklUKDMpCisjZGVmaW5lIEJJVF9SWF9IRE1JX0NUUkwwX0hE TUlfTU9ERV9PVkVSV1JJVEUJQklUKDIpCisjZGVmaW5lIEJJVF9SWF9IRE1JX0NUUkwwX1JYX0hE TUlfSERNSV9NT0RFX0VOCUJJVCgxKQorI2RlZmluZSBCSVRfUlhfSERNSV9DVFJMMF9SWF9IRE1J X0hETUlfTU9ERQlCSVQoMCkKKworLyogUlhfSERNSSBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAw eDM4ICovCisjZGVmaW5lIFJFR19SWF9IRE1JX0NUUkwyCQkJMHgwMmEzCisjZGVmaW5lIE1TS19S WF9IRE1JX0NUUkwyX0lETEVfQ05UCQkweGYwCisjZGVmaW5lIFZBTF9SWF9IRE1JX0NUUkwyX0lE TEVfQ05UKG4pCQkoKG4pIDw8IDQpCisjZGVmaW5lIEJJVF9SWF9IRE1JX0NUUkwyX1VTRV9BVl9N VVRFCQlCSVQoMykKKyNkZWZpbmUgQklUX1JYX0hETUlfQ1RSTDJfVlNJX01PTl9TRUxfVlNJCUJJ VCgwKQorCisvKiBSWF9IRE1JIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MGYgKi8KKyNkZWZp bmUgUkVHX1JYX0hETUlfQ1RSTDMJCQkweDAyYTQKKyNkZWZpbmUgTVNLX1JYX0hETUlfQ1RSTDNf UFBfTU9ERV9DTEtfRU4JMHgwZgorCisvKiByeF9oZG1pIENsZWFyIEJ1ZmZlciwgZGVmYXVsdCB2 YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfUlhfSERNSV9DTFJfQlVGRkVSCQkJMHgwMmFjCisj ZGVmaW5lIE1TS19SWF9IRE1JX0NMUl9CVUZGRVJfQUlGNFZTSV9DTVAJMHhjMAorI2RlZmluZSBC SVRfUlhfSERNSV9DTFJfQlVGRkVSX1VTRV9BSUY0VlNJCUJJVCg1KQorI2RlZmluZSBCSVRfUlhf SERNSV9DTFJfQlVGRkVSX1ZTSV9DTFJfV19BVkkJQklUKDQpCisjZGVmaW5lIEJJVF9SWF9IRE1J X0NMUl9CVUZGRVJfVlNJX0lFRUVfSURfQ0hLX0VOIEJJVCgzKQorI2RlZmluZSBCSVRfUlhfSERN SV9DTFJfQlVGRkVSX1NXQVBfVlNJX0lFRUVfSUQJQklUKDIpCisjZGVmaW5lIEJJVF9SWF9IRE1J X0NMUl9CVUZGRVJfQUlGX0NMUl9FTglCSVQoMSkKKyNkZWZpbmUgQklUX1JYX0hETUlfQ0xSX0JV RkZFUl9WU0lfQ0xSX0VOCUJJVCgwKQorCisvKiBSWF9IRE1JIFZTSSBIZWFkZXIxLCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19SWF9IRE1JX01PTl9QS1RfSEVBREVSMQkJMHgw MmI4CisKKy8qIFJYX0hETUkgVlNJIE1ITCBNb25pdG9yLCBkZWZhdWx0IHZhbHVlOiAweDNjICov CisjZGVmaW5lIFJFR19SWF9IRE1JX1ZTSUZfTUhMX01PTgkJMHgwMmQ3CisKKyNkZWZpbmUgTVNL X1JYX0hETUlfVlNJRl9NSExfTU9OX1JYX0hETUlfTUhMXzNEX0ZPUk1BVCAweDNjCisjZGVmaW5l IE1TS19SWF9IRE1JX1ZTSUZfTUhMX01PTl9SWF9IRE1JX01ITF9WSURfRk9STUFUIDB4MDMKKwor LyogSW50ZXJydXB0IFNvdXJjZSA5LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJF R19JTlRSOQkJCQkweDAyZTAKKyNkZWZpbmUgQklUX0lOVFI5X0VESURfRVJST1IJCQlCSVQoNikK KyNkZWZpbmUgQklUX0lOVFI5X0VESURfRE9ORQkJCUJJVCg1KQorI2RlZmluZSBCSVRfSU5UUjlf REVWQ0FQX0RPTkUJCQlCSVQoNCkKKworLyogSW50ZXJydXB0IDkgTWFzaywgZGVmYXVsdCB2YWx1 ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSU5UUjlfTUFTSwkJCQkweDAyZTEKKworLyogVFBJIENC VVMgU3RhcnQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RQSV9DQlVTX1NU QVJUCQkJMHgwMmUyCisjZGVmaW5lIEJJVF9UUElfQ0JVU19TVEFSVF9SQ1BfUkVRX1NUQVJUCUJJ VCg3KQorI2RlZmluZSBCSVRfVFBJX0NCVVNfU1RBUlRfUkNQS19SRVBMWV9TVEFSVAlCSVQoNikK KyNkZWZpbmUgQklUX1RQSV9DQlVTX1NUQVJUX1JDUEVfUkVQTFlfU1RBUlQJQklUKDUpCisjZGVm aW5lIEJJVF9UUElfQ0JVU19TVEFSVF9QVVRfTElOS19NT0RFX1NUQVJUCUJJVCg0KQorI2RlZmlu ZSBCSVRfVFBJX0NCVVNfU1RBUlRfUFVUX0RDQVBDSEdfU1RBUlQJQklUKDMpCisjZGVmaW5lIEJJ VF9UUElfQ0JVU19TVEFSVF9QVVRfRENBUFJEWV9TVEFSVAlCSVQoMikKKyNkZWZpbmUgQklUX1RQ SV9DQlVTX1NUQVJUX0dFVF9FRElEX1NUQVJUXzAJQklUKDEpCisjZGVmaW5lIEJJVF9UUElfQ0JV U19TVEFSVF9HRVRfREVWQ0FQX1NUQVJUCUJJVCgwKQorCisvKiBFRElEIENvbnRyb2wsIGRlZmF1 bHQgdmFsdWU6IDB4MTAgKi8KKyNkZWZpbmUgUkVHX0VESURfQ1RSTAkJCQkweDAyZTMKKyNkZWZp bmUgQklUX0VESURfQ1RSTF9FRElEX1BSSU1FX1ZBTElECQlCSVQoNykKKyNkZWZpbmUgQklUX0VE SURfQ1RSTF9YREVWQ0FQX0VOCQlCSVQoNikKKyNkZWZpbmUgQklUX0VESURfQ1RSTF9ERVZDQVBf U0VMRUNUX0RFVkNBUAlCSVQoNSkKKyNkZWZpbmUgQklUX0VESURfQ1RSTF9FRElEX0ZJRk9fQURE Ul9BVVRPCUJJVCg0KQorI2RlZmluZSBCSVRfRURJRF9DVFJMX0VESURfRklGT19BQ0NFU1NfQUxX QVlTX0VOIEJJVCgzKQorI2RlZmluZSBCSVRfRURJRF9DVFJMX0VESURfRklGT19CTE9DS19TRUwJ QklUKDIpCisjZGVmaW5lIEJJVF9FRElEX0NUUkxfSU5WQUxJRF9CS1NWCQlCSVQoMSkKKyNkZWZp bmUgQklUX0VESURfQ1RSTF9FRElEX01PREVfRU4JCUJJVCgwKQorCisvKiBFRElEIEZJRk8gQWRk ciwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRURJRF9GSUZPX0FERFIJCQkw eDAyZTkKKworLyogRURJRCBGSUZPIFdyaXRlIERhdGEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8K KyNkZWZpbmUgUkVHX0VESURfRklGT19XUl9EQVRBCQkJMHgwMmVhCisKKy8qIEVESUQvREVWQ0FQ IEZJRk8gSW50ZXJuYWwgQWRkciwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdf RURJRF9GSUZPX0FERFJfTU9OCQkJMHgwMmViCisKKy8qIEVESUQgRklGTyBSZWFkIERhdGEsIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0VESURfRklGT19SRF9EQVRBCQkJMHgw MmVjCisKKy8qIEVESUQgRERDIFNlZ21lbnQgUG9pbnRlciwgZGVmYXVsdCB2YWx1ZTogMHgwMCAq LworI2RlZmluZSBSRUdfRURJRF9TVEFSVF9FWFQJCQkweDAyZWQKKworLyogVFggSVAgQklTVCBD TlRMIGFuZCBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RYX0lQ X0JJU1RfQ05UTFNUQQkJCTB4MDJmMgorI2RlZmluZSBCSVRfVFhfSVBfQklTVF9DTlRMU1RBX1RY QklTVF9RVUFSVEVSX0NMS19TRUwgQklUKDYpCisjZGVmaW5lIEJJVF9UWF9JUF9CSVNUX0NOVExT VEFfVFhCSVNUX0RPTkUJQklUKDUpCisjZGVmaW5lIEJJVF9UWF9JUF9CSVNUX0NOVExTVEFfVFhC SVNUX09OCUJJVCg0KQorI2RlZmluZSBCSVRfVFhfSVBfQklTVF9DTlRMU1RBX1RYQklTVF9SVU4J QklUKDMpCisjZGVmaW5lIEJJVF9UWF9JUF9CSVNUX0NOVExTVEFfVFhDTEtfSEFMRl9TRUwJQklU KDIpCisjZGVmaW5lIEJJVF9UWF9JUF9CSVNUX0NOVExTVEFfVFhCSVNUX0VOCUJJVCgxKQorI2Rl ZmluZSBCSVRfVFhfSVBfQklTVF9DTlRMU1RBX1RYQklTVF9TRUwJQklUKDApCisKKy8qIFRYIElQ IEJJU1QgSU5TVCBMT1csIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RYX0lQ X0JJU1RfSU5TVF9MT1cJCQkweDAyZjMKKyNkZWZpbmUgUkVHX1RYX0lQX0JJU1RfSU5TVF9ISUdI CQkweDAyZjQKKworLyogVFggSVAgQklTVCBQQVRURVJOIExPVywgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLworI2RlZmluZSBSRUdfVFhfSVBfQklTVF9QQVRfTE9XCQkJMHgwMmY1CisjZGVmaW5lIFJF R19UWF9JUF9CSVNUX1BBVF9ISUdICQkJMHgwMmY2CisKKy8qIFRYIElQIEJJU1QgQ09ORklHVVJF IExPVywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFhfSVBfQklTVF9DT05G X0xPVwkJCTB4MDJmNworI2RlZmluZSBSRUdfVFhfSVBfQklTVF9DT05GX0hJR0gJCTB4MDJmOAor CisvKiBFLU1TQyBHZW5lcmFsIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4ODAgKi8KKyNkZWZp bmUgUkVHX0dFTkNUTAkJCQkweDAzMDAKKyNkZWZpbmUgQklUX0dFTkNUTF9TUEVDX1RSQU5TX0RJ UwkJQklUKDcpCisjZGVmaW5lIEJJVF9HRU5DVExfRElTX1hNSVRfRVJSX1NUQVRFCQlCSVQoNikK KyNkZWZpbmUgQklUX0dFTkNUTF9TUElfTUlTT19FREdFCQlCSVQoNSkKKyNkZWZpbmUgQklUX0dF TkNUTF9TUElfTU9TSV9FREdFCQlCSVQoNCkKKyNkZWZpbmUgQklUX0dFTkNUTF9DTFJfRU1TQ19S RklGTwkJQklUKDMpCisjZGVmaW5lIEJJVF9HRU5DVExfQ0xSX0VNU0NfWEZJRk8JCUJJVCgyKQor I2RlZmluZSBCSVRfR0VOQ1RMX1NUQVJUX1RSQUlOX1NFUQkJQklUKDEpCisjZGVmaW5lIEJJVF9H RU5DVExfRU1TQ19FTgkJCUJJVCgwKQorCisvKiBFLU1TQyBDb21tYSBFcnJvckNOVCwgZGVmYXVs dCB2YWx1ZTogMHgwMyAqLworI2RlZmluZSBSRUdfQ09NTUVDTlQJCQkJMHgwMzA1CisjZGVmaW5l IEJJVF9DT01NRUNOVF9JMkNfVE9fRU1TQ19FTgkJQklUKDcpCisjZGVmaW5lIE1TS19DT01NRUNO VF9DT01NQV9DSEFSX0VSUl9DTlQJCTB4MGYKKworLyogRS1NU0MgUkZJRk8gQnl0ZUNudCwgZGVm YXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRU1TQ1JGSUZPQkNOVEwJCQkweDAzMWEK KyNkZWZpbmUgUkVHX0VNU0NSRklGT0JDTlRICQkJMHgwMzFiCisKKy8qIFNQSSBCdXJzdCBDbnQg U3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19TUElCVVJTVENOVAkJ CQkweDAzMWUKKworLyogU1BJIEJ1cnN0IFN0YXR1cyBhbmQgU1dSU1QsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1NQSUJVUlNUU1RBVAkJCTB4MDMyMgorI2RlZmluZSBCSVRf U1BJQlVSU1RTVEFUX1NQSV9IRENQUlNUCQlCSVQoNykKKyNkZWZpbmUgQklUX1NQSUJVUlNUU1RB VF9TUElfQ0JVU1JTVAkJQklUKDYpCisjZGVmaW5lIEJJVF9TUElCVVJTVFNUQVRfU1BJX1NSU1QJ CUJJVCg1KQorI2RlZmluZSBCSVRfU1BJQlVSU1RTVEFUX0VNU0NfTk9STUFMX01PREUJQklUKDAp CisKKy8qIEUtTVNDIDFzdCBJbnRlcnJ1cHQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZp bmUgUkVHX0VNU0NJTlRSCQkJCTB4MDMyMworI2RlZmluZSBCSVRfRU1TQ0lOVFJfRU1TQ19YRklG T19FTVBUWQkJQklUKDcpCisjZGVmaW5lIEJJVF9FTVNDSU5UUl9FTVNDX1hNSVRfQUNLX1RPVVQJ CUJJVCg2KQorI2RlZmluZSBCSVRfRU1TQ0lOVFJfRU1TQ19SRklGT19SRUFEX0VSUglCSVQoNSkK KyNkZWZpbmUgQklUX0VNU0NJTlRSX0VNU0NfWEZJRk9fV1JJVEVfRVJSCUJJVCg0KQorI2RlZmlu ZSBCSVRfRU1TQ0lOVFJfRU1TQ19DT01NQV9DSEFSX0VSUglCSVQoMykKKyNkZWZpbmUgQklUX0VN U0NJTlRSX0VNU0NfWE1JVF9ET05FCQlCSVQoMikKKyNkZWZpbmUgQklUX0VNU0NJTlRSX0VNU0Nf WE1JVF9HTlRfVE9VVAkJQklUKDEpCisjZGVmaW5lIEJJVF9FTVNDSU5UUl9TUElfRFZMRAkJQklU KDApCisKKy8qIEUtTVNDIEludGVycnVwdCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisj ZGVmaW5lIFJFR19FTVNDSU5UUk1BU0sJCQkweDAzMjQKKworLyogSTJDIEUtTVNDIFhNSVQgRklG TyBXcml0ZSBQb3J0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19FTVNDX1hN SVRfV1JJVEVfUE9SVAkJMHgwMzJhCisKKy8qIEkyQyBFLU1TQyBSQ1YgRklGTyBXcml0ZSBQb3J0 LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19FTVNDX1JDVl9SRUFEX1BPUlQJ CQkweDAzMmIKKworLyogRS1NU0MgMm5kIEludGVycnVwdCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAq LworI2RlZmluZSBSRUdfRU1TQ0lOVFIxCQkJCTB4MDMyYworI2RlZmluZSBCSVRfRU1TQ0lOVFIx X0VNU0NfVFJBSU5JTkdfQ09NTUFfRVJSCUJJVCgwKQorCisvKiBFLU1TQyBJbnRlcnJ1cHQgTWFz aywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRU1TQ0lOVFJNQVNLMQkJCTB4 MDMyZAorI2RlZmluZSBCSVRfRU1TQ0lOVFJNQVNLMV9FTVNDX0lOVFJNQVNLMV8wCUJJVCgwKQor CisvKiBNSEwgVG9wIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTUhM X1RPUF9DVEwJCQkJMHgwMzMwCisjZGVmaW5lIEJJVF9NSExfVE9QX0NUTF9NSEwzX0RPQ19TRUwJ CUJJVCg3KQorI2RlZmluZSBCSVRfTUhMX1RPUF9DVExfTUhMX1BQX1NFTAkJQklUKDYpCisjZGVm aW5lIE1TS19NSExfVE9QX0NUTF9JRl9USU1JTkdfQ1RMCQkweDAzCisKKy8qIE1ITCBEYXRhUGF0 aCAxc3QgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweGJjICovCisjZGVmaW5lIFJFR19NSExfRFBfQ1RM MAkJCQkweDAzMzEKKyNkZWZpbmUgQklUX01ITF9EUF9DVEwwX0RQX09FCQkJQklUKDcpCisjZGVm aW5lIEJJVF9NSExfRFBfQ1RMMF9UWF9PRV9PVlIJCUJJVCg2KQorI2RlZmluZSBNU0tfTUhMX0RQ X0NUTDBfVFhfT0UJCQkweDNmCisKKy8qIE1ITCBEYXRhUGF0aCAybmQgQ3RsLCBkZWZhdWx0IHZh bHVlOiAweGJiICovCisjZGVmaW5lIFJFR19NSExfRFBfQ1RMMQkJCQkweDAzMzIKKyNkZWZpbmUg TVNLX01ITF9EUF9DVEwxX0NLX1NXSU5HX0NUTAkJMHhmMAorI2RlZmluZSBNU0tfTUhMX0RQX0NU TDFfRFRfU1dJTkdfQ1RMCQkweDBmCisKKy8qIE1ITCBEYXRhUGF0aCAzcmQgQ3RsLCBkZWZhdWx0 IHZhbHVlOiAweDJmICovCisjZGVmaW5lIFJFR19NSExfRFBfQ1RMMgkJCQkweDAzMzMKKyNkZWZp bmUgQklUX01ITF9EUF9DVEwyX0NMS19CWVBBU1NfRU4JCUJJVCg3KQorI2RlZmluZSBNU0tfTUhM X0RQX0NUTDJfREFNUF9URVJNX1NFTAkJMHgzMAorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDJfQ0tf VEVSTV9TRUwJCTB4MGMKKyNkZWZpbmUgTVNLX01ITF9EUF9DVEwyX0RUX1RFUk1fU0VMCQkweDAz CisKKy8qIE1ITCBEYXRhUGF0aCA0dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDQ4ICovCisjZGVm aW5lIFJFR19NSExfRFBfQ1RMMwkJCQkweDAzMzQKKyNkZWZpbmUgTVNLX01ITF9EUF9DVEwzX0RU X0RSVl9WTkJDX0NUTAkJMHhmMAorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDNfRFRfRFJWX1ZOQl9D VEwJCTB4MGYKKworLyogTUhMIERhdGFQYXRoIDV0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4NDgg Ki8KKyNkZWZpbmUgUkVHX01ITF9EUF9DVEw0CQkJCTB4MDMzNQorI2RlZmluZSBNU0tfTUhMX0RQ X0NUTDRfQ0tfRFJWX1ZOQkNfQ1RMCQkweGYwCisjZGVmaW5lIE1TS19NSExfRFBfQ1RMNF9DS19E UlZfVk5CX0NUTAkJMHgwZgorCisvKiBNSEwgRGF0YVBhdGggNnRoIEN0bCwgZGVmYXVsdCB2YWx1 ZTogMHgzZiAqLworI2RlZmluZSBSRUdfTUhMX0RQX0NUTDUJCQkJMHgwMzM2CisjZGVmaW5lIEJJ VF9NSExfRFBfQ1RMNV9SU0VOX0VOX09WUgkJQklUKDcpCisjZGVmaW5lIEJJVF9NSExfRFBfQ1RM NV9SU0VOX0VOCQkJQklUKDYpCisjZGVmaW5lIE1TS19NSExfRFBfQ1RMNV9EQU1QX1RFUk1fVkdT X0NUTAkweDMwCisjZGVmaW5lIE1TS19NSExfRFBfQ1RMNV9DS19URVJNX1ZHU19DVEwJCTB4MGMK KyNkZWZpbmUgTVNLX01ITF9EUF9DVEw1X0RUX1RFUk1fVkdTX0NUTAkJMHgwMworCisvKiBNSEwg UExMIDFzdCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDUgKi8KKyNkZWZpbmUgUkVHX01ITF9QTExf Q1RMMAkJCTB4MDMzNworI2RlZmluZSBCSVRfTUhMX1BMTF9DVEwwX0FVRF9DTEtfRU4JCUJJVCg3 KQorCisjZGVmaW5lIE1TS19NSExfUExMX0NUTDBfQVVEX0NMS19SQVRJTwkJMHg3MAorI2RlZmlu ZSBWQUxfTUhMX1BMTF9DVEwwX0FVRF9DTEtfUkFUSU9fNV8xMAkweDcwCisjZGVmaW5lIFZBTF9N SExfUExMX0NUTDBfQVVEX0NMS19SQVRJT181XzYJMHg2MAorI2RlZmluZSBWQUxfTUhMX1BMTF9D VEwwX0FVRF9DTEtfUkFUSU9fNV80CTB4NTAKKyNkZWZpbmUgVkFMX01ITF9QTExfQ1RMMF9BVURf Q0xLX1JBVElPXzVfMgkweDQwCisjZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfQVVEX0NMS19SQVRJ T181XzUJMHgzMAorI2RlZmluZSBWQUxfTUhMX1BMTF9DVEwwX0FVRF9DTEtfUkFUSU9fNV8zCTB4 MjAKKyNkZWZpbmUgVkFMX01ITF9QTExfQ1RMMF9BVURfQ0xLX1JBVElPXzVfMl9QUklNRSAweDEw CisjZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfQVVEX0NMS19SQVRJT181XzEJMHgwMAorCisjZGVm aW5lIE1TS19NSExfUExMX0NUTDBfSERNSV9DTEtfUkFUSU8JCTB4MGMKKyNkZWZpbmUgVkFMX01I TF9QTExfQ1RMMF9IRE1JX0NMS19SQVRJT180WAkweDBjCisjZGVmaW5lIFZBTF9NSExfUExMX0NU TDBfSERNSV9DTEtfUkFUSU9fMlgJMHgwOAorI2RlZmluZSBWQUxfTUhMX1BMTF9DVEwwX0hETUlf Q0xLX1JBVElPXzFYCTB4MDQKKyNkZWZpbmUgVkFMX01ITF9QTExfQ1RMMF9IRE1JX0NMS19SQVRJ T19IQUxGX1gJMHgwMAorCisjZGVmaW5lIEJJVF9NSExfUExMX0NUTDBfQ1JZU1RBTF9DTEtfU0VM CUJJVCgxKQorI2RlZmluZSBCSVRfTUhMX1BMTF9DVEwwX1pPTkVfTUFTS19PRQkJQklUKDApCisK Ky8qIE1ITCBQTEwgM3JkIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHg4MCAqLworI2RlZmluZSBSRUdf TUhMX1BMTF9DVEwyCQkJMHgwMzM5CisjZGVmaW5lIEJJVF9NSExfUExMX0NUTDJfQ0xLREVURUNU X0VOCQlCSVQoNykKKyNkZWZpbmUgQklUX01ITF9QTExfQ1RMMl9NRUFTX0ZWQ08JCUJJVCgzKQor I2RlZmluZSBCSVRfTUhMX1BMTF9DVEwyX1BMTF9GQVNUX0xPQ0sJCUJJVCgyKQorI2RlZmluZSBN U0tfTUhMX1BMTF9DVEwyX1BMTF9MRl9TRUwJCTB4MDMKKworLyogTUhMIENCVVMgMXN0IEN0bCwg ZGVmYXVsdCB2YWx1ZTogMHgxMiAqLworI2RlZmluZSBSRUdfTUhMX0NCVVNfQ1RMMAkJCTB4MDM0 MAorI2RlZmluZSBCSVRfTUhMX0NCVVNfQ1RMMF9DQlVTX1JHTkRfVEVTVF9NT0RFCUJJVCg3KQor CisjZGVmaW5lIE1TS19NSExfQ0JVU19DVEwwX0NCVVNfUkdORF9WVEhfQ1RMCTB4MzAKKyNkZWZp bmUgVkFMX01ITF9DQlVTX0NUTDBfQ0JVU19SR05EX1ZCSUFTXzczNAkweDAwCisjZGVmaW5lIFZB TF9NSExfQ0JVU19DVEwwX0NCVVNfUkdORF9WQklBU183NDcJMHgxMAorI2RlZmluZSBWQUxfTUhM X0NCVVNfQ1RMMF9DQlVTX1JHTkRfVkJJQVNfNzQwCTB4MjAKKyNkZWZpbmUgVkFMX01ITF9DQlVT X0NUTDBfQ0JVU19SR05EX1ZCSUFTXzc1NAkweDMwCisKKyNkZWZpbmUgTVNLX01ITF9DQlVTX0NU TDBfQ0JVU19SRVNfVEVTVF9TRUwJMHgwYworCisjZGVmaW5lIE1TS19NSExfQ0JVU19DVEwwX0NC VVNfRFJWX1NFTAkJMHgwMworI2RlZmluZSBWQUxfTUhMX0NCVVNfQ1RMMF9DQlVTX0RSVl9TRUxf V0VBS0VTVAkweDAwCisjZGVmaW5lIFZBTF9NSExfQ0JVU19DVEwwX0NCVVNfRFJWX1NFTF9XRUFL CTB4MDEKKyNkZWZpbmUgVkFMX01ITF9DQlVTX0NUTDBfQ0JVU19EUlZfU0VMX1NUUk9ORwkweDAy CisjZGVmaW5lIFZBTF9NSExfQ0JVU19DVEwwX0NCVVNfRFJWX1NFTF9TVFJPTkdFU1QgMHgwMwor CisvKiBNSEwgQ0JVUyAybmQgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAzICovCisjZGVmaW5lIFJF R19NSExfQ0JVU19DVEwxCQkJMHgwMzQxCisjZGVmaW5lIE1TS19NSExfQ0JVU19DVEwxX0NCVVNf UkdORF9SRVNfQ1RMCTB4MDcKKyNkZWZpbmUgVkFMX01ITF9DQlVTX0NUTDFfMDg4OF9PSE0JCTB4 MDAKKyNkZWZpbmUgVkFMX01ITF9DQlVTX0NUTDFfMTExNV9PSE0JCTB4MDQKKyNkZWZpbmUgVkFM X01ITF9DQlVTX0NUTDFfMTM3OF9PSE0JCTB4MDcKKworLyogTUhMIENvQyAxc3QgQ3RsLCBkZWZh dWx0IHZhbHVlOiAweGMzICovCisjZGVmaW5lIFJFR19NSExfQ09DX0NUTDAJCQkweDAzNDIKKyNk ZWZpbmUgQklUX01ITF9DT0NfQ1RMMF9DT0NfQklBU19FTgkJQklUKDcpCisjZGVmaW5lIE1TS19N SExfQ09DX0NUTDBfQ09DX0JJQVNfQ1RMCQkweDcwCisjZGVmaW5lIE1TS19NSExfQ09DX0NUTDBf Q09DX1RFUk1fQ1RMCQkweDA3CisKKy8qIE1ITCBDb0MgMm5kIEN0bCwgZGVmYXVsdCB2YWx1ZTog MHg4NyAqLworI2RlZmluZSBSRUdfTUhMX0NPQ19DVEwxCQkJMHgwMzQzCisjZGVmaW5lIEJJVF9N SExfQ09DX0NUTDFfQ09DX0VOCQkJQklUKDcpCisjZGVmaW5lIE1TS19NSExfQ09DX0NUTDFfQ09D X0RSVl9DVEwJCTB4M2YKKworLyogTUhMIENvQyA0dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCisjZGVmaW5lIFJFR19NSExfQ09DX0NUTDMJCQkweDAzNDUKKyNkZWZpbmUgQklUX01ITF9D T0NfQ1RMM19DT0NfQUVDSE9fRU4JCUJJVCgwKQorCisvKiBNSEwgQ29DIDV0aCBDdGwsIGRlZmF1 bHQgdmFsdWU6IDB4MjggKi8KKyNkZWZpbmUgUkVHX01ITF9DT0NfQ1RMNAkJCTB4MDM0NgorI2Rl ZmluZSBNU0tfTUhMX0NPQ19DVEw0X0NPQ19JRl9DVEwJCTB4ZjAKKyNkZWZpbmUgTVNLX01ITF9D T0NfQ1RMNF9DT0NfU0xFV19DVEwJCTB4MGYKKworLyogTUhMIENvQyA2dGggQ3RsLCBkZWZhdWx0 IHZhbHVlOiAweDBkICovCisjZGVmaW5lIFJFR19NSExfQ09DX0NUTDUJCQkweDAzNDcKKworLyog TUhMIERvQyAxc3QgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDE4ICovCisjZGVmaW5lIFJFR19NSExf RE9DX0NUTDAJCQkweDAzNDkKKyNkZWZpbmUgQklUX01ITF9ET0NfQ1RMMF9ET0NfUlhEQVRBX0VO CQlCSVQoNykKKyNkZWZpbmUgTVNLX01ITF9ET0NfQ1RMMF9ET0NfRE1fVEVSTQkJMHgzOAorI2Rl ZmluZSBNU0tfTUhMX0RPQ19DVEwwX0RPQ19PUE1PREUJCTB4MDYKKyNkZWZpbmUgQklUX01ITF9E T0NfQ1RMMF9ET0NfUlhCSUFTX0VOCQlCSVQoMCkKKworLyogTUhMIERhdGFQYXRoIDd0aCBDdGws IGRlZmF1bHQgdmFsdWU6IDB4MmEgKi8KKyNkZWZpbmUgUkVHX01ITF9EUF9DVEw2CQkJCTB4MDM1 MAorI2RlZmluZSBCSVRfTUhMX0RQX0NUTDZfRFBfVEFQMl9TR04JCUJJVCg1KQorI2RlZmluZSBC SVRfTUhMX0RQX0NUTDZfRFBfVEFQMl9FTgkJQklUKDQpCisjZGVmaW5lIEJJVF9NSExfRFBfQ1RM Nl9EUF9UQVAxX1NHTgkJQklUKDMpCisjZGVmaW5lIEJJVF9NSExfRFBfQ1RMNl9EUF9UQVAxX0VO CQlCSVQoMikKKyNkZWZpbmUgQklUX01ITF9EUF9DVEw2X0RUX1BSRURSVl9GRUVEQ0FQX0VOCUJJ VCgxKQorI2RlZmluZSBCSVRfTUhMX0RQX0NUTDZfRFBfUFJFX1BPU1RfU0VMCQlCSVQoMCkKKwor LyogTUhMIERhdGFQYXRoIDh0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDYgKi8KKyNkZWZpbmUg UkVHX01ITF9EUF9DVEw3CQkJCTB4MDM1MQorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDdfRFRfRFJW X1ZCSUFTX0NBU0NUTAkweGYwCisjZGVmaW5lIE1TS19NSExfRFBfQ1RMN19EVF9EUlZfSVJFRl9D VEwJCTB4MGYKKworLyogVHggWm9uZSBDdGwxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVm aW5lIFJFR19UWF9aT05FX0NUTDEJCQkweDAzNjEKKyNkZWZpbmUgVkFMX1RYX1pPTkVfQ1RMMV9U WF9aT05FX0NUUkxfTU9ERQkweDA4CisKKy8qIE1ITDMgVHggWm9uZSBDdGwsIGRlZmF1bHQgdmFs dWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01ITDNfVFhfWk9ORV9DVEwJCQkweDAzNjQKKyNkZWZp bmUgQklUX01ITDNfVFhfWk9ORV9DVExfTUhMMl9JTlRQTFRfWk9ORV9NQU5VX0VOIEJJVCg3KQor I2RlZmluZSBNU0tfTUhMM19UWF9aT05FX0NUTF9NSEwzX1RYX1pPTkUJMHgwMworCisjZGVmaW5l IE1TS19UWF9aT05FX0NUTDNfVFhfWk9ORQkJMHgwMworI2RlZmluZSBWQUxfVFhfWk9ORV9DVEwz X1RYX1pPTkVfNkdCUFMJCTB4MDAKKyNkZWZpbmUgVkFMX1RYX1pPTkVfQ1RMM19UWF9aT05FXzNH QlBTCQkweDAxCisjZGVmaW5lIFZBTF9UWF9aT05FX0NUTDNfVFhfWk9ORV8xXzVHQlBTCTB4MDIK KworLyogSERDUCBQb2xsaW5nIENvbnRyb2wgYW5kIFN0YXR1cywgZGVmYXVsdCB2YWx1ZTogMHg3 MCAqLworI2RlZmluZSBSRUdfSERDUDJYX1BPTExfQ1MJCQkweDAzOTEKKworI2RlZmluZSBCSVRf SERDUDJYX1BPTExfQ1NfSERDUDJYX01TR19TWl9DTFJfT1BUSU9OIEJJVCg2KQorI2RlZmluZSBC SVRfSERDUDJYX1BPTExfQ1NfSERDUDJYX1JQVF9SRUFEWV9DTFJfT1BUSU9OIEJJVCg1KQorI2Rl ZmluZSBCSVRfSERDUDJYX1BPTExfQ1NfSERDUDJYX1JFQVVUSF9SRVFfQ0xSX09QVElPTiBCSVQo NCkKKyNkZWZpbmUgTVNLX0hEQ1AyWF9QT0xMX0NTXwkJCTB4MGMKKyNkZWZpbmUgQklUX0hEQ1Ay WF9QT0xMX0NTX0hEQ1AyWF9ESVNfUE9MTF9HTlQJQklUKDEpCisjZGVmaW5lIEJJVF9IRENQMlhf UE9MTF9DU19IRENQMlhfRElTX1BPTExfRU4JQklUKDApCisKKy8qIEhEQ1AgSW50ZXJydXB0IDAs IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0hEQ1AyWF9JTlRSMAkJCTB4MDM5 OAorCisvKiBIRENQIEludGVycnVwdCAwIE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNk ZWZpbmUgUkVHX0hEQ1AyWF9JTlRSMF9NQVNLCQkJMHgwMzk5CisKKy8qIEhEQ1AgR2VuZXJhbCBD b250cm9sIDAsIGRlZmF1bHQgdmFsdWU6IDB4MDIgKi8KKyNkZWZpbmUgUkVHX0hEQ1AyWF9DVFJM XzAJCQkweDAzYTAKKyNkZWZpbmUgQklUX0hEQ1AyWF9DVFJMXzBfSERDUDJYX0VOQ1JZUFRfRU4J QklUKDcpCisjZGVmaW5lIEJJVF9IRENQMlhfQ1RSTF8wX0hEQ1AyWF9QT0xJTlRfU0VMCUJJVCg2 KQorI2RlZmluZSBCSVRfSERDUDJYX0NUUkxfMF9IRENQMlhfUE9MSU5UX09WUglCSVQoNSkKKyNk ZWZpbmUgQklUX0hEQ1AyWF9DVFJMXzBfSERDUDJYX1BSRUNPTVBVVEUJQklUKDQpCisjZGVmaW5l IEJJVF9IRENQMlhfQ1RSTF8wX0hEQ1AyWF9IRE1JTU9ERQlCSVQoMykKKyNkZWZpbmUgQklUX0hE Q1AyWF9DVFJMXzBfSERDUDJYX1JFUEVBVEVSCUJJVCgyKQorI2RlZmluZSBCSVRfSERDUDJYX0NU UkxfMF9IRENQMlhfSERDUFRYCQlCSVQoMSkKKyNkZWZpbmUgQklUX0hEQ1AyWF9DVFJMXzBfSERD UDJYX0VOCQlCSVQoMCkKKworLyogSERDUCBHZW5lcmFsIENvbnRyb2wgMSwgZGVmYXVsdCB2YWx1 ZTogMHgwOCAqLworI2RlZmluZSBSRUdfSERDUDJYX0NUUkxfMQkJCTB4MDNhMQorI2RlZmluZSBN U0tfSERDUDJYX0NUUkxfMV9IRENQMlhfUkVBVVRIX01TS18zXzAJMHhmMAorI2RlZmluZSBCSVRf SERDUDJYX0NUUkxfMV9IRENQMlhfSFBEX1NXCQlCSVQoMykKKyNkZWZpbmUgQklUX0hEQ1AyWF9D VFJMXzFfSERDUDJYX0hQRF9PVlIJQklUKDIpCisjZGVmaW5lIEJJVF9IRENQMlhfQ1RSTF8xX0hE Q1AyWF9DVEwzTVNLCUJJVCgxKQorI2RlZmluZSBCSVRfSERDUDJYX0NUUkxfMV9IRENQMlhfUkVB VVRIX1NXCUJJVCgwKQorCisvKiBIRENQIE1pc2MgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLworI2RlZmluZSBSRUdfSERDUDJYX01JU0NfQ1RSTAkJCTB4MDNhNQorI2RlZmluZSBCSVRf SERDUDJYX01JU0NfQ1RSTF9IRENQMlhfUlBUX1NNTkdfWEZFUl9TVEFSVCBCSVQoNCkKKyNkZWZp bmUgQklUX0hEQ1AyWF9NSVNDX0NUUkxfSERDUDJYX1JQVF9TTU5HX1dSX1NUQVJUIEJJVCgzKQor I2RlZmluZSBCSVRfSERDUDJYX01JU0NfQ1RSTF9IRENQMlhfUlBUX1NNTkdfV1IJQklUKDIpCisj ZGVmaW5lIEJJVF9IRENQMlhfTUlTQ19DVFJMX0hEQ1AyWF9SUFRfUkNWSURfUkRfU1RBUlQgQklU KDEpCisjZGVmaW5lIEJJVF9IRENQMlhfTUlTQ19DVFJMX0hEQ1AyWF9SUFRfUkNWSURfUkQJQklU KDApCisKKy8qIEhEQ1AgUlBUIFNNTkcgSywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmlu ZSBSRUdfSERDUDJYX1JQVF9TTU5HX0sJCQkweDAzYTYKKworLyogSERDUCBSUFQgU01ORyBJbiwg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSERDUDJYX1JQVF9TTU5HX0lOCQkJ MHgwM2E3CisKKy8qIEhEQ1AgQXV0aCBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNk ZWZpbmUgUkVHX0hEQ1AyWF9BVVRIX1NUQVQJCQkweDAzYWEKKworLyogSERDUCBSUFQgUkNWSUQg T3V0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19IRENQMlhfUlBUX1JDVklE X09VVAkJMHgwM2FjCisKKy8qIEhEQ1AgVFAxLCBkZWZhdWx0IHZhbHVlOiAweDYyICovCisjZGVm aW5lIFJFR19IRENQMlhfVFAxCQkJCTB4MDNiNAorCisvKiBIRENQIEdQIE91dCAwLCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19IRENQMlhfR1BfT1VUMAkJCTB4MDNjNworCisv KiBIRENQIFJlcGVhdGVyIFJDVlIgSUQgMCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmlu ZSBSRUdfSERDUDJYX1JQVF9SQ1ZSX0lEMAkJCTB4MDNkMQorCisvKiBIRENQIEREQ00gU3RhdHVz LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19IRENQMlhfRERDTV9TVFMJCQkw eDAzZDgKKyNkZWZpbmUgTVNLX0hEQ1AyWF9ERENNX1NUU19IRENQMlhfRERDTV9FUlJfU1RTXzNf MCAweGYwCisjZGVmaW5lIE1TS19IRENQMlhfRERDTV9TVFNfSERDUDJYX0REQ01fQ1RMX0NTXzNf MCAweDBmCisKKy8qIEhETUkyTUhMMyBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDBhICovCisj ZGVmaW5lIFJFR19NM19DVFJMCQkJCTB4MDNlMAorI2RlZmluZSBCSVRfTTNfQ1RSTF9IMk1fU1dS U1QJCQlCSVQoNCkKKyNkZWZpbmUgQklUX00zX0NUUkxfU1dfTUhMM19TRUwJCQlCSVQoMykKKyNk ZWZpbmUgQklUX00zX0NUUkxfTTNBVl9FTgkJCUJJVCgyKQorI2RlZmluZSBCSVRfTTNfQ1RSTF9F TkNfVE1EUwkJCUJJVCgxKQorI2RlZmluZSBCSVRfTTNfQ1RSTF9NSEwzX01BU1RFUl9FTgkJQklU KDApCisKKyNkZWZpbmUgVkFMX00zX0NUUkxfTUhMMV8yX1ZBTFVFIChCSVRfTTNfQ1RSTF9TV19N SEwzX1NFTCBcCisJCQkJICB8IEJJVF9NM19DVFJMX0VOQ19UTURTKQorI2RlZmluZSBWQUxfTTNf Q1RSTF9NSEwzX1ZBTFVFIChCSVRfTTNfQ1RSTF9TV19NSEwzX1NFTCBcCisJCQkJfCBCSVRfTTNf Q1RSTF9NM0FWX0VOIFwKKwkJCQl8IEJJVF9NM19DVFJMX0VOQ19UTURTIFwKKwkJCQl8IEJJVF9N M19DVFJMX01ITDNfTUFTVEVSX0VOKQorCisvKiBIRE1JMk1ITDMgUG9ydDAgQ29udHJvbCwgZGVm YXVsdCB2YWx1ZTogMHgwNCAqLworI2RlZmluZSBSRUdfTTNfUDBDVFJMCQkJCTB4MDNlMQorI2Rl ZmluZSBCSVRfTTNfUDBDVFJMX01ITDNfUDBfSERDUF9FTkNfRU4JQklUKDQpCisjZGVmaW5lIEJJ VF9NM19QMENUUkxfTUhMM19QMF9VTkxJTUlUX0VOCUJJVCgzKQorI2RlZmluZSBCSVRfTTNfUDBD VFJMX01ITDNfUDBfSERDUF9FTgkJQklUKDIpCisjZGVmaW5lIEJJVF9NM19QMENUUkxfTUhMM19Q MF9QSVhFTF9NT0RFX1BBQ0tFRAlCSVQoMSkKKyNkZWZpbmUgQklUX00zX1AwQ1RSTF9NSEwzX1Aw X1BPUlRfRU4JCUJJVCgwKQorCisjZGVmaW5lIFJFR19NM19QT1NUTQkJCQkweDAzZTIKKyNkZWZp bmUgTVNLX00zX1BPU1RNX1JSUF9ERUNPREUJCQkweGY4CisjZGVmaW5lIE1TS19NM19QT1NUTV9N SEwzX1AwX1NUTV9JRAkJMHgwNworCisvKiBIRE1JMk1ITDMgU2NyYW1ibGUgQ29udHJvbCwgZGVm YXVsdCB2YWx1ZTogMHg0MSAqLworI2RlZmluZSBSRUdfTTNfU0NUUkwJCQkJMHgwM2U2CisjZGVm aW5lIE1TS19NM19TQ1RSTF9NSEwzX1NSX0xFTkdUSAkJMHhmMAorI2RlZmluZSBCSVRfTTNfU0NU UkxfTUhMM19TQ1JBTUJMRVJfRU4JCUJJVCgwKQorCisvKiBIU0lDIERpdiBDdGwsIGRlZmF1bHQg dmFsdWU6IDB4MDUgKi8KKyNkZWZpbmUgUkVHX0RJVl9DVExfTUFJTgkJCTB4MDNmMgorI2RlZmlu ZSBNU0tfRElWX0NUTF9NQUlOX1BSRV9ESVZfQ1RMX01BSU4JMHgxYworI2RlZmluZSBNU0tfRElW X0NUTF9NQUlOX0ZCX0RJVl9DVExfTUFJTgkweDAzCisKKy8qIE1ITCBDYXBhYmlsaXR5IDFzdCBC eXRlLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NSExfREVWQ0FQXzAJCQkw eDA0MDAKKworLyogTUhMIEludGVycnVwdCAxc3QgQnl0ZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAq LworI2RlZmluZSBSRUdfTUhMX0lOVF8wCQkJCTB4MDQyMAorCisvKiBEZXZpY2UgU3RhdHVzIDFz dCBieXRlLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NSExfU1RBVF8wCQkJ CTB4MDQzMAorCisvKiBDQlVTIFNjcmF0Y2ggUGFkIDFzdCBCeXRlLCBkZWZhdWx0IHZhbHVlOiAw eDAwICovCisjZGVmaW5lIFJFR19NSExfU0NSUEFEXzAJCQkweDA0NDAKKworLyogTUhMIEV4dGVu ZGVkIENhcGFiaWxpdHkgMXN0IEJ5dGUsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUg UkVHX01ITF9FWFRERVZDQVBfMAkJCTB4MDQ4MAorCisvKiBEZXZpY2UgRXh0ZW5kZWQgU3RhdHVz IDFzdCBieXRlLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NSExfRVhUU1RB VF8wCQkJMHgwNDkwCisKKy8qIFRQSSBEVEQgQnl0ZTIsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8K KyNkZWZpbmUgUkVHX1RQSV9EVERfQjIJCQkJMHgwNjAyCisKKyNkZWZpbmUgVkFMX1RQSV9RVUFO X1JBTkdFX0xJTUlURUQJCTB4MDEKKyNkZWZpbmUgVkFMX1RQSV9RVUFOX1JBTkdFX0ZVTEwJCQkw eDAyCisjZGVmaW5lIFZBTF9UUElfRk9STUFUX1JHQgkJCTB4MDAKKyNkZWZpbmUgVkFMX1RQSV9G T1JNQVRfWUNCQ1I0NDQJCQkweDAxCisjZGVmaW5lIFZBTF9UUElfRk9STUFUX1lDQkNSNDIyCQkJ MHgwMgorI2RlZmluZSBWQUxfVFBJX0ZPUk1BVF9JTlRFUk5BTF9SR0IJCTB4MDMKKyNkZWZpbmUg VkFMX1RQSV9GT1JNQVQoX2ZtdCwgX3FyKSBcCisJCShWQUxfVFBJX0ZPUk1BVF8jI19mbXQgfCAo VkFMX1RQSV9RVUFOX1JBTkdFXyMjX3FyIDw8IDIpKQorCisvKiBJbnB1dCBGb3JtYXQsIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RQSV9JTlBVVAkJCQkweDA2MDkKKyNkZWZp bmUgQklUX1RQSV9JTlBVVF9FWFRFTkRFREJJVE1PREUJCUJJVCg3KQorI2RlZmluZSBCSVRfVFBJ X0lOUFVUX0VORElUSEVSCQkJQklUKDYpCisjZGVmaW5lIE1TS19UUElfSU5QVVRfSU5QVVRfUVVB Tl9SQU5HRQkJMHgwYworI2RlZmluZSBNU0tfVFBJX0lOUFVUX0lOUFVUX0ZPUk1BVAkJMHgwMwor CisvKiBPdXRwdXQgRm9ybWF0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19U UElfT1VUUFVUCQkJCTB4MDYwYQorI2RlZmluZSBCSVRfVFBJX09VVFBVVF9DU0NNT0RFNzA5CQlC SVQoNCkKKyNkZWZpbmUgTVNLX1RQSV9PVVRQVVRfT1VUUFVUX1FVQU5fUkFOR0UJMHgwYworI2Rl ZmluZSBNU0tfVFBJX09VVFBVVF9PVVRQVVRfRk9STUFUCQkweDAzCisKKy8qIFRQSSBBVkkgQ2hl Y2sgU3VtLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUElfQVZJX0NIU1VN CQkJMHgwNjBjCisKKy8qIFRQSSBTeXN0ZW0gQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAq LworI2RlZmluZSBSRUdfVFBJX1NDCQkJCTB4MDYxYQorI2RlZmluZSBCSVRfVFBJX1NDX1RQSV9V UERBVEVfRkxHCQlCSVQoNykKKyNkZWZpbmUgQklUX1RQSV9TQ19UUElfUkVBVVRIX0NUTAkJQklU KDYpCisjZGVmaW5lIEJJVF9UUElfU0NfVFBJX09VVFBVVF9NT0RFXzEJCUJJVCg1KQorI2RlZmlu ZSBCSVRfVFBJX1NDX1JFR19UTURTX09FX1BPV0VSX0RPV04JQklUKDQpCisjZGVmaW5lIEJJVF9U UElfU0NfVFBJX0FWX01VVEUJCQlCSVQoMykKKyNkZWZpbmUgQklUX1RQSV9TQ19ERENfR1BVX1JF UVVFU1QJCUJJVCgyKQorI2RlZmluZSBCSVRfVFBJX1NDX0REQ19UUElfU1cJCQlCSVQoMSkKKyNk ZWZpbmUgQklUX1RQSV9TQ19UUElfT1VUUFVUX01PREVfMF9IRE1JCUJJVCgwKQorCisvKiBUUEkg Q09QUCBRdWVyeSBEYXRhLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUElf Q09QUF9EQVRBMQkJCTB4MDYyOQorI2RlZmluZSBCSVRfVFBJX0NPUFBfREFUQTFfQ09QUF9HUFJP VAkJQklUKDcpCisjZGVmaW5lIEJJVF9UUElfQ09QUF9EQVRBMV9DT1BQX0xQUk9UCQlCSVQoNikK KyNkZWZpbmUgTVNLX1RQSV9DT1BQX0RBVEExX0NPUFBfTElOS19TVEFUVVMJMHgzMAorI2RlZmlu ZSBWQUxfVFBJX0NPUFBfTElOS19TVEFUVVNfTk9STUFMCQkweDAwCisjZGVmaW5lIFZBTF9UUElf Q09QUF9MSU5LX1NUQVRVU19MSU5LX0xPU1QJMHgxMAorI2RlZmluZSBWQUxfVFBJX0NPUFBfTElO S19TVEFUVVNfUkVORUdPVElBVElPTl9SRVEgMHgyMAorI2RlZmluZSBWQUxfVFBJX0NPUFBfTElO S19TVEFUVVNfTElOS19TVVNQRU5ERUQJMHgzMAorI2RlZmluZSBCSVRfVFBJX0NPUFBfREFUQTFf Q09QUF9IRENQX1JFUAlCSVQoMykKKyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEExX0NPUFBfQ09O TlRZUEVfMAlCSVQoMikKKyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEExX0NPUFBfUFJPVFlQRQkJ QklUKDEpCisjZGVmaW5lIEJJVF9UUElfQ09QUF9EQVRBMV9DT1BQX0NPTk5UWVBFXzEJQklUKDAp CisKKy8qIFRQSSBDT1BQIENvbnRyb2wgRGF0YSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2Rl ZmluZSBSRUdfVFBJX0NPUFBfREFUQTIJCQkweDA2MmEKKyNkZWZpbmUgQklUX1RQSV9DT1BQX0RB VEEyX0lOVFJfRU5DUllQVElPTglCSVQoNSkKKyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEEyX0tT Vl9GT1JXQVJECQlCSVQoNCkKKyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEEyX0lOVEVSTV9SSV9D SEVDS19FTglCSVQoMykKKyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEEyX0RPVUJMRV9SSV9DSEVD SwlCSVQoMikKKyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEEyX0REQ19TSE9SVF9SSV9SRAlCSVQo MSkKKyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEEyX0NPUFBfUFJPVExFVkVMCUJJVCgwKQorCisv KiBUUEkgSW50ZXJydXB0IEVuYWJsZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBS RUdfVFBJX0lOVFJfRU4JCQkJMHgwNjNjCisKKy8qIFRQSSBJbnRlcnJ1cHQgU3RhdHVzIExvdyBC eXRlLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUElfSU5UUl9TVDAJCQkw eDA2M2QKKyNkZWZpbmUgQklUX1RQSV9JTlRSX1NUMF9UUElfQVVUSF9DSE5HRV9TVEFUCUJJVCg3 KQorI2RlZmluZSBCSVRfVFBJX0lOVFJfU1QwX1RQSV9WX1JEWV9TVEFUCQlCSVQoNikKKyNkZWZp bmUgQklUX1RQSV9JTlRSX1NUMF9UUElfQ09QUF9DSE5HRV9TVEFUCUJJVCg1KQorI2RlZmluZSBC SVRfVFBJX0lOVFJfU1QwX0tTVl9GSUZPX0ZJUlNUX1NUQVQJQklUKDMpCisjZGVmaW5lIEJJVF9U UElfSU5UUl9TVDBfUkVBRF9CS1NWX0JDQVBTX0RPTkVfU1RBVCBCSVQoMikKKyNkZWZpbmUgQklU X1RQSV9JTlRSX1NUMF9SRUFEX0JLU1ZfQkNBUFNfRVJSX1NUQVQgQklUKDEpCisjZGVmaW5lIEJJ VF9UUElfSU5UUl9TVDBfUkVBRF9CS1NWX0VSUl9TVEFUCUJJVCgwKQorCisvKiBUUEkgRFMgQkNB UFMgU3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUElfRFNfQkNB UFMJCQkweDA2NDQKKworLyogVFBJIEJTdGF0dXMxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisj ZGVmaW5lIFJFR19UUElfQlNUQVRVUzEJCQkweDA2NDUKKyNkZWZpbmUgQklUX1RQSV9CU1RBVFVT MV9EU19ERVZfRVhDRUVECQlCSVQoNykKKyNkZWZpbmUgTVNLX1RQSV9CU1RBVFVTMV9EU19ERVZf Q05UCQkweDdmCisKKy8qIFRQSSBCU3RhdHVzMiwgZGVmYXVsdCB2YWx1ZTogMHgxMCAqLworI2Rl ZmluZSBSRUdfVFBJX0JTVEFUVVMyCQkJMHgwNjQ2CisjZGVmaW5lIE1TS19UUElfQlNUQVRVUzJf RFNfQlNUQVRVUwkJMHhlMAorI2RlZmluZSBCSVRfVFBJX0JTVEFUVVMyX0RTX0hETUlfTU9ERQkJ QklUKDQpCisjZGVmaW5lIEJJVF9UUElfQlNUQVRVUzJfRFNfQ0FTQ19FWENFRUQJCUJJVCgzKQor I2RlZmluZSBNU0tfVFBJX0JTVEFUVVMyX0RTX0RFUFRICQkweDA3CisKKy8qIFRQSSBIVyBPcHRp bWl6YXRpb24gQ29udHJvbCAjMywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdf VFBJX0hXX09QVDMJCQkJMHgwNmJiCisjZGVmaW5lIEJJVF9UUElfSFdfT1BUM19ERENfREVCVUcJ CUJJVCg3KQorI2RlZmluZSBCSVRfVFBJX0hXX09QVDNfUklfQ0hFQ0tfU0tJUAkJQklUKDMpCisj ZGVmaW5lIEJJVF9UUElfSFdfT1BUM19UUElfRERDX0JVUlNUX01PREUJQklUKDIpCisjZGVmaW5l IE1TS19UUElfSFdfT1BUM19UUElfRERDX1JFUV9MRVZFTAkweDAzCisKKy8qIFRQSSBJbmZvIEZy YW1lIFNlbGVjdCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFBJX0lORk9f RlNFTAkJCTB4MDZiZgorI2RlZmluZSBCSVRfVFBJX0lORk9fRlNFTF9UUElfSU5GT19FTgkJQklU KDcpCisjZGVmaW5lIEJJVF9UUElfSU5GT19GU0VMX1RQSV9JTkZPX1JQVAkJQklUKDYpCisjZGVm aW5lIEJJVF9UUElfSU5GT19GU0VMX1RQSV9JTkZPX1JFQURfRkxBRwlCSVQoNSkKKyNkZWZpbmUg TVNLX1RQSV9JTkZPX0ZTRUxfVFBJX0lORk9fU0VMCQkweDA3CisKKy8qIFRQSSBJbmZvIEJ5dGUg IzAsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RQSV9JTkZPX0IwCQkJCTB4 MDZjMAorCisvKiBDb0MgU3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJF R19DT0NfU1RBVF8wCQkJCTB4MDcwMAorI2RlZmluZSBSRUdfQ09DX1NUQVRfMQkJCQkweDA3MDEK KyNkZWZpbmUgUkVHX0NPQ19TVEFUXzIJCQkJMHgwNzAyCisjZGVmaW5lIFJFR19DT0NfU1RBVF8z CQkJCTB4MDcwMworI2RlZmluZSBSRUdfQ09DX1NUQVRfNAkJCQkweDA3MDQKKyNkZWZpbmUgUkVH X0NPQ19TVEFUXzUJCQkJMHgwNzA1CisKKy8qIENvQyAxc3QgQ3RsLCBkZWZhdWx0IHZhbHVlOiAw eDQwICovCisjZGVmaW5lIFJFR19DT0NfQ1RMMAkJCQkweDA3MTAKKworLyogQ29DIDJuZCBDdGws IGRlZmF1bHQgdmFsdWU6IDB4MGEgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVEwxCQkJCTB4MDcxMQor I2RlZmluZSBNU0tfQ09DX0NUTDFfQ09DX0NUUkwxXzdfNgkJMHhjMAorI2RlZmluZSBNU0tfQ09D X0NUTDFfQ09DX0NUUkwxXzVfMAkJMHgzZgorCisvKiBDb0MgM3JkIEN0bCwgZGVmYXVsdCB2YWx1 ZTogMHgxNCAqLworI2RlZmluZSBSRUdfQ09DX0NUTDIJCQkJMHgwNzEyCisjZGVmaW5lIE1TS19D T0NfQ1RMMl9DT0NfQ1RSTDJfN182CQkweGMwCisjZGVmaW5lIE1TS19DT0NfQ1RMMl9DT0NfQ1RS TDJfNV8wCQkweDNmCisKKy8qIENvQyA0dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDQwICovCisj ZGVmaW5lIFJFR19DT0NfQ1RMMwkJCQkweDA3MTMKKyNkZWZpbmUgQklUX0NPQ19DVEwzX0NPQ19D VFJMM183CQlCSVQoNykKKyNkZWZpbmUgTVNLX0NPQ19DVEwzX0NPQ19DVFJMM182XzAJCTB4N2YK KworLyogQ29DIDd0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NP Q19DVEw2CQkJCTB4MDcxNgorI2RlZmluZSBCSVRfQ09DX0NUTDZfQ09DX0NUUkw2XzcJCUJJVCg3 KQorI2RlZmluZSBCSVRfQ09DX0NUTDZfQ09DX0NUUkw2XzYJCUJJVCg2KQorI2RlZmluZSBNU0tf Q09DX0NUTDZfQ09DX0NUUkw2XzVfMAkJMHgzZgorCisvKiBDb0MgOHRoIEN0bCwgZGVmYXVsdCB2 YWx1ZTogMHgwNiAqLworI2RlZmluZSBSRUdfQ09DX0NUTDcJCQkJMHgwNzE3CisjZGVmaW5lIEJJ VF9DT0NfQ1RMN19DT0NfQ1RSTDdfNwkJQklUKDcpCisjZGVmaW5lIEJJVF9DT0NfQ1RMN19DT0Nf Q1RSTDdfNgkJQklUKDYpCisjZGVmaW5lIEJJVF9DT0NfQ1RMN19DT0NfQ1RSTDdfNQkJQklUKDUp CisjZGVmaW5lIE1TS19DT0NfQ1RMN19DT0NfQ1RSTDdfNF8zCQkweDE4CisjZGVmaW5lIE1TS19D T0NfQ1RMN19DT0NfQ1RSTDdfMl8wCQkweDA3CisKKy8qIENvQyAxMHRoIEN0bCwgZGVmYXVsdCB2 YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ09DX0NUTDkJCQkJMHgwNzE5CisKKy8qIENvQyAx MXRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ09DX0NUTEEJCQkJ MHgwNzFhCisKKy8qIENvQyAxMnRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmlu ZSBSRUdfQ09DX0NUTEIJCQkJMHgwNzFiCisKKy8qIENvQyAxM3RoIEN0bCwgZGVmYXVsdCB2YWx1 ZTogMHgwZiAqLworI2RlZmluZSBSRUdfQ09DX0NUTEMJCQkJMHgwNzFjCisKKy8qIENvQyAxNHRo IEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwYSAqLworI2RlZmluZSBSRUdfQ09DX0NUTEQJCQkJMHgw NzFkCisjZGVmaW5lIEJJVF9DT0NfQ1RMRF9DT0NfQ1RSTERfNwkJQklUKDcpCisjZGVmaW5lIE1T S19DT0NfQ1RMRF9DT0NfQ1RSTERfNl8wCQkweDdmCisKKy8qIENvQyAxNXRoIEN0bCwgZGVmYXVs dCB2YWx1ZTogMHgwYSAqLworI2RlZmluZSBSRUdfQ09DX0NUTEUJCQkJMHgwNzFlCisjZGVmaW5l IEJJVF9DT0NfQ1RMRV9DT0NfQ1RSTEVfNwkJQklUKDcpCisjZGVmaW5lIE1TS19DT0NfQ1RMRV9D T0NfQ1RSTEVfNl8wCQkweDdmCisKKy8qIENvQyAxNnRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLworI2RlZmluZSBSRUdfQ09DX0NUTEYJCQkJMHgwNzFmCisjZGVmaW5lIE1TS19DT0NfQ1RM Rl9DT0NfQ1RSTEZfN18zCQkweGY4CisjZGVmaW5lIE1TS19DT0NfQ1RMRl9DT0NfQ1RSTEZfMl8w CQkweDA3CisKKy8qIENvQyAxOHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgzMiAqLworI2RlZmlu ZSBSRUdfQ09DX0NUTDExCQkJCTB4MDcyMQorI2RlZmluZSBNU0tfQ09DX0NUTDExX0NPQ19DVFJM MTFfN180CQkweGYwCisjZGVmaW5lIE1TS19DT0NfQ1RMMTFfQ09DX0NUUkwxMV8zXzAJCTB4MGYK KworLyogQ29DIDIxc3QgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19D T0NfQ1RMMTQJCQkJMHgwNzI0CisjZGVmaW5lIE1TS19DT0NfQ1RMMTRfQ09DX0NUUkwxNF83XzQJ CTB4ZjAKKyNkZWZpbmUgTVNLX0NPQ19DVEwxNF9DT0NfQ1RSTDE0XzNfMAkJMHgwZgorCisvKiBD b0MgMjJuZCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVEwx NQkJCQkweDA3MjUKKyNkZWZpbmUgQklUX0NPQ19DVEwxNV9DT0NfQ1RSTDE1XzcJCUJJVCg3KQor I2RlZmluZSBNU0tfQ09DX0NUTDE1X0NPQ19DVFJMMTVfNl80CQkweDcwCisjZGVmaW5lIE1TS19D T0NfQ1RMMTVfQ09DX0NUUkwxNV8zXzAJCTB4MGYKKworLyogQ29DIEludGVycnVwdCwgZGVmYXVs dCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ09DX0lOVFIJCQkJMHgwNzI2CisKKy8qIENv QyBJbnRlcnJ1cHQgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ09D X0lOVFJfTUFTSwkJCTB4MDcyNworI2RlZmluZSBCSVRfQ09DX1BMTF9MT0NLX1NUQVRVU19DSEFO R0UJCUJJVCgwKQorI2RlZmluZSBCSVRfQ09DX0NBTElCUkFUSU9OX0RPTkUJCUJJVCgxKQorCisv KiBDb0MgTWlzYyBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19N SVNDX0NUTDAJCQkweDA3MjgKKyNkZWZpbmUgQklUX0NPQ19NSVNDX0NUTDBfRlNNX01PTgkJQklU KDcpCisKKy8qIENvQyAyNHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBS RUdfQ09DX0NUTDE3CQkJCTB4MDcyYQorI2RlZmluZSBNU0tfQ09DX0NUTDE3X0NPQ19DVFJMMTdf N180CQkweGYwCisjZGVmaW5lIE1TS19DT0NfQ1RMMTdfQ09DX0NUUkwxN18zXzAJCTB4MGYKKwor LyogQ29DIDI1dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DT0Nf Q1RMMTgJCQkJMHgwNzJiCisjZGVmaW5lIE1TS19DT0NfQ1RMMThfQ09DX0NUUkwxOF83XzQJCTB4 ZjAKKyNkZWZpbmUgTVNLX0NPQ19DVEwxOF9DT0NfQ1RSTDE4XzNfMAkJMHgwZgorCisvKiBDb0Mg MjZ0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVEwxOQkJ CQkweDA3MmMKKyNkZWZpbmUgTVNLX0NPQ19DVEwxOV9DT0NfQ1RSTDE5XzdfNAkJMHhmMAorI2Rl ZmluZSBNU0tfQ09DX0NUTDE5X0NPQ19DVFJMMTlfM18wCQkweDBmCisKKy8qIENvQyAyN3RoIEN0 bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ09DX0NUTDFBCQkJCTB4MDcy ZAorI2RlZmluZSBNU0tfQ09DX0NUTDFBX0NPQ19DVFJMMUFfN18yCQkweGZjCisjZGVmaW5lIE1T S19DT0NfQ1RMMUFfQ09DX0NUUkwxQV8xXzAJCTB4MDMKKworLyogRG9DIDl0aCBTdGF0dXMsIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0RPQ19TVEFUXzgJCQkJMHgwNzQwCisK Ky8qIERvQyAxMHRoIFN0YXR1cywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdf RE9DX1NUQVRfOQkJCQkweDA3NDEKKworLyogRG9DIDV0aCBDRkcsIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KKyNkZWZpbmUgUkVHX0RPQ19DRkc0CQkJCTB4MDc0ZQorI2RlZmluZSBNU0tfRE9DX0NG RzRfREJHX1NUQVRFX0RPQ19GU00JCTB4MGYKKworLyogRG9DIDFzdCBDdGwsIGRlZmF1bHQgdmFs dWU6IDB4NDAgKi8KKyNkZWZpbmUgUkVHX0RPQ19DVEwwCQkJCTB4MDc1MQorCisvKiBEb0MgN3Ro IEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRE9DX0NUTDYJCQkJMHgw NzU3CisjZGVmaW5lIEJJVF9ET0NfQ1RMNl9ET0NfQ1RSTDZfNwkJQklUKDcpCisjZGVmaW5lIEJJ VF9ET0NfQ1RMNl9ET0NfQ1RSTDZfNgkJQklUKDYpCisjZGVmaW5lIE1TS19ET0NfQ1RMNl9ET0Nf Q1RSTDZfNV80CQkweDMwCisjZGVmaW5lIE1TS19ET0NfQ1RMNl9ET0NfQ1RSTDZfM18wCQkweDBm CisKKy8qIERvQyA4dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19E T0NfQ1RMNwkJCQkweDA3NTgKKyNkZWZpbmUgQklUX0RPQ19DVEw3X0RPQ19DVFJMN183CQlCSVQo NykKKyNkZWZpbmUgQklUX0RPQ19DVEw3X0RPQ19DVFJMN182CQlCSVQoNikKKyNkZWZpbmUgQklU X0RPQ19DVEw3X0RPQ19DVFJMN181CQlCSVQoNSkKKyNkZWZpbmUgTVNLX0RPQ19DVEw3X0RPQ19D VFJMN180XzMJCTB4MTgKKyNkZWZpbmUgTVNLX0RPQ19DVEw3X0RPQ19DVFJMN18yXzAJCTB4MDcK KworLyogRG9DIDl0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0RP Q19DVEw4CQkJCTB4MDc2YworI2RlZmluZSBCSVRfRE9DX0NUTDhfRE9DX0NUUkw4XzcJCUJJVCg3 KQorI2RlZmluZSBNU0tfRE9DX0NUTDhfRE9DX0NUUkw4XzZfNAkJMHg3MAorI2RlZmluZSBNU0tf RE9DX0NUTDhfRE9DX0NUUkw4XzNfMgkJMHgwYworI2RlZmluZSBNU0tfRE9DX0NUTDhfRE9DX0NU Ukw4XzFfMAkJMHgwMworCisvKiBEb0MgMTB0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8K KyNkZWZpbmUgUkVHX0RPQ19DVEw5CQkJCTB4MDc2ZAorCisvKiBEb0MgMTF0aCBDdGwsIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0RPQ19DVExBCQkJCTB4MDc2ZQorCisvKiBE b0MgMTV0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0RPQ19DVExF CQkJCTB4MDc3MgorI2RlZmluZSBCSVRfRE9DX0NUTEVfRE9DX0NUUkxFXzcJCUJJVCg3KQorI2Rl ZmluZSBCSVRfRE9DX0NUTEVfRE9DX0NUUkxFXzYJCUJJVCg2KQorI2RlZmluZSBNU0tfRE9DX0NU TEVfRE9DX0NUUkxFXzVfNAkJMHgzMAorI2RlZmluZSBNU0tfRE9DX0NUTEVfRE9DX0NUUkxFXzNf MAkJMHgwZgorCisvKiBJbnRlcnJ1cHQgTWFzayAxc3QsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8K KyNkZWZpbmUgUkVHX01ITF9JTlRfMF9NQVNLCQkJMHgwNTgwCisKKy8qIEludGVycnVwdCBNYXNr IDJuZCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTUhMX0lOVF8xX01BU0sJ CQkweDA1ODEKKworLyogSW50ZXJydXB0IE1hc2sgM3JkLCBkZWZhdWx0IHZhbHVlOiAweDAwICov CisjZGVmaW5lIFJFR19NSExfSU5UXzJfTUFTSwkJCTB4MDU4MgorCisvKiBJbnRlcnJ1cHQgTWFz ayA0dGgsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01ITF9JTlRfM19NQVNL CQkJMHgwNTgzCisKKy8qIE1EVCBSZWNlaXZlIFRpbWUgT3V0LCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCisjZGVmaW5lIFJFR19NRFRfUkNWX1RJTUVPVVQJCQkweDA1ODQKKworLyogTURUIFRyYW5z bWl0IFRpbWUgT3V0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NRFRfWE1J VF9USU1FT1VUCQkJMHgwNTg1CisKKy8qIE1EVCBSZWNlaXZlIENvbnRyb2wsIGRlZmF1bHQgdmFs dWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01EVF9SQ1ZfQ1RSTAkJCTB4MDU4NgorI2RlZmluZSBC SVRfTURUX1JDVl9DVFJMX01EVF9SQ1ZfRU4JCUJJVCg3KQorI2RlZmluZSBCSVRfTURUX1JDVl9D VFJMX01EVF9ERUxBWV9SQ1ZfRU4JQklUKDYpCisjZGVmaW5lIEJJVF9NRFRfUkNWX0NUUkxfTURU X1JGSUZPX09WRVJfV1JfRU4JQklUKDQpCisjZGVmaW5lIEJJVF9NRFRfUkNWX0NUUkxfTURUX1hG SUZPX09WRVJfV1JfRU4JQklUKDMpCisjZGVmaW5lIEJJVF9NRFRfUkNWX0NUUkxfTURUX0RJU0FC TEUJCUJJVCgyKQorI2RlZmluZSBCSVRfTURUX1JDVl9DVFJMX01EVF9SRklGT19DTFJfQUxMCUJJ VCgxKQorI2RlZmluZSBCSVRfTURUX1JDVl9DVFJMX01EVF9SRklGT19DTFJfQ1VSCUJJVCgwKQor CisvKiBNRFQgUmVjZWl2ZSBSZWFkIFBvcnQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZp bmUgUkVHX01EVF9SQ1ZfUkVBRF9QT1JUCQkJMHgwNTg3CisKKy8qIE1EVCBUcmFuc21pdCBDb250 cm9sLCBkZWZhdWx0IHZhbHVlOiAweDcwICovCisjZGVmaW5lIFJFR19NRFRfWE1JVF9DVFJMCQkJ MHgwNTg4CisjZGVmaW5lIEJJVF9NRFRfWE1JVF9DVFJMX01EVF9YTUlUX0VOCQlCSVQoNykKKyNk ZWZpbmUgQklUX01EVF9YTUlUX0NUUkxfTURUX1hNSVRfQ01EX01FUkdFX0VOCUJJVCg2KQorI2Rl ZmluZSBCSVRfTURUX1hNSVRfQ1RSTF9NRFRfWE1JVF9GSVhFRF9CVVJTVF9MRU4gQklUKDUpCisj ZGVmaW5lIEJJVF9NRFRfWE1JVF9DVFJMX01EVF9YTUlUX0ZJWEVEX0FJRAlCSVQoNCkKKyNkZWZp bmUgQklUX01EVF9YTUlUX0NUUkxfTURUX1hNSVRfU0lOR0xFX1JVTl9FTiBCSVQoMykKKyNkZWZp bmUgQklUX01EVF9YTUlUX0NUUkxfTURUX0NMUl9BQk9SVF9XQUlUCUJJVCgyKQorI2RlZmluZSBC SVRfTURUX1hNSVRfQ1RSTF9NRFRfWEZJRk9fQ0xSX0FMTAlCSVQoMSkKKyNkZWZpbmUgQklUX01E VF9YTUlUX0NUUkxfTURUX1hGSUZPX0NMUl9DVVIJQklUKDApCisKKy8qIE1EVCBSZWNlaXZlIFdS SVRFIFBvcnQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01EVF9YTUlUX1dS SVRFX1BPUlQJCQkweDA1ODkKKworLyogTURUIFJGSUZPIFN0YXR1cywgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLworI2RlZmluZSBSRUdfTURUX1JGSUZPX1NUQVQJCQkweDA1OGEKKyNkZWZpbmUgTVNL X01EVF9SRklGT19TVEFUX01EVF9SRklGT19DTlQJMHhlMAorI2RlZmluZSBNU0tfTURUX1JGSUZP X1NUQVRfTURUX1JGSUZPX0NVUl9CWVRFX0NOVCAweDFmCisKKy8qIE1EVCBYRklGTyBTdGF0dXMs IGRlZmF1bHQgdmFsdWU6IDB4ODAgKi8KKyNkZWZpbmUgUkVHX01EVF9YRklGT19TVEFUCQkJMHgw NThiCisjZGVmaW5lIE1TS19NRFRfWEZJRk9fU1RBVF9NRFRfWEZJRk9fTEVWRUxfQVZBSUwgMHhl MAorI2RlZmluZSBCSVRfTURUX1hGSUZPX1NUQVRfTURUX1hNSVRfUFJFX0hTX0VOCUJJVCg0KQor I2RlZmluZSBNU0tfTURUX1hGSUZPX1NUQVRfTURUX1dSSVRFX0JVUlNUX0xFTgkweDBmCisKKy8q IE1EVCBJbnRlcnJ1cHQgMCwgZGVmYXVsdCB2YWx1ZTogMHgwYyAqLworI2RlZmluZSBSRUdfTURU X0lOVF8wCQkJCTB4MDU4YworI2RlZmluZSBCSVRfTURUX1JGSUZPX0RBVEFfUkRZCQkJQklUKDAp CisjZGVmaW5lIEJJVF9NRFRfSURMRV9BRlRFUl9IQVdCX0RJU0FCTEUJCUJJVCgyKQorI2RlZmlu ZSBCSVRfTURUX1hGSUZPX0VNUFRZCQkJQklUKDMpCisKKy8qIE1EVCBJbnRlcnJ1cHQgMCBNYXNr LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NRFRfSU5UXzBfTUFTSwkJCTB4 MDU4ZAorCisvKiBNRFQgSW50ZXJydXB0IDEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZp bmUgUkVHX01EVF9JTlRfMQkJCQkweDA1OGUKKyNkZWZpbmUgQklUX01EVF9SQ1ZfVElNRU9VVAkJ CUJJVCgwKQorI2RlZmluZSBCSVRfTURUX1JDVl9TTV9BQk9SVF9QS1RfUkNWRAkJQklUKDEpCisj ZGVmaW5lIEJJVF9NRFRfUkNWX1NNX0VSUk9SCQkJQklUKDIpCisjZGVmaW5lIEJJVF9NRFRfWE1J VF9USU1FT1VUCQkJQklUKDUpCisjZGVmaW5lIEJJVF9NRFRfWE1JVF9TTV9BQk9SVF9QS1RfUkNW RAkJQklUKDYpCisjZGVmaW5lIEJJVF9NRFRfWE1JVF9TTV9FUlJPUgkJCUJJVCg3KQorCisvKiBN RFQgSW50ZXJydXB0IDEgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdf TURUX0lOVF8xX01BU0sJCQkweDA1OGYKKworLyogQ0JVUyBWZW5kb3IgSUQsIGRlZmF1bHQgdmFs dWU6IDB4MDEgKi8KKyNkZWZpbmUgUkVHX0NCVVNfVkVORE9SX0lECQkJMHgwNTkwCisKKy8qIENC VVMgQ29ubmVjdGlvbiBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVH X0NCVVNfU1RBVFVTCQkJCTB4MDU5MQorI2RlZmluZSBCSVRfQ0JVU19TVEFUVVNfTUhMX0NBQkxF X1BSRVNFTlQJQklUKDQpCisjZGVmaW5lIEJJVF9DQlVTX1NUQVRVU19NU0NfSEJfU1VDQ0VTUwkJ QklUKDMpCisjZGVmaW5lIEJJVF9DQlVTX1NUQVRVU19DQlVTX0hQRAkJQklUKDIpCisjZGVmaW5l IEJJVF9DQlVTX1NUQVRVU19NSExfTU9ERQkJQklUKDEpCisjZGVmaW5lIEJJVF9DQlVTX1NUQVRV U19DQlVTX0NPTk5FQ1RFRAkJQklUKDApCisKKy8qIENCVVMgSW50ZXJydXB0IDFzdCwgZGVmYXVs dCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ0JVU19JTlRfMAkJCQkweDA1OTIKKyNkZWZp bmUgQklUX0NCVVNfTVNDX01UX0RPTkVfTkFDSwkJQklUKDcpCisjZGVmaW5lIEJJVF9DQlVTX01T Q19NUl9TRVRfSU5UCQkJQklUKDYpCisjZGVmaW5lIEJJVF9DQlVTX01TQ19NUl9XUklURV9CVVJT VAkJQklUKDUpCisjZGVmaW5lIEJJVF9DQlVTX01TQ19NUl9NU0NfTVNHCQkJQklUKDQpCisjZGVm aW5lIEJJVF9DQlVTX01TQ19NUl9XUklURV9TVEFUCQlCSVQoMykKKyNkZWZpbmUgQklUX0NCVVNf SFBEX0NIRwkJCUJJVCgyKQorI2RlZmluZSBCSVRfQ0JVU19NU0NfTVRfRE9ORQkJCUJJVCgxKQor I2RlZmluZSBCSVRfQ0JVU19DTlhfQ0hHCQkJQklUKDApCisKKy8qIENCVVMgSW50ZXJydXB0IE1h c2sgMXN0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DQlVTX0lOVF8wX01B U0sJCQkweDA1OTMKKworLyogQ0JVUyBJbnRlcnJ1cHQgMm5kLCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCisjZGVmaW5lIFJFR19DQlVTX0lOVF8xCQkJCTB4MDU5NAorI2RlZmluZSBCSVRfQ0JVU19D TURfQUJPUlQJCQlCSVQoNikKKyNkZWZpbmUgQklUX0NCVVNfTVNDX0FCT1JUX1JDVkQJCQlCSVQo MykKKyNkZWZpbmUgQklUX0NCVVNfRERDX0FCT1JUCQkJQklUKDIpCisjZGVmaW5lIEJJVF9DQlVT X0NFQ19BQk9SVAkJCUJJVCgxKQorCisvKiBDQlVTIEludGVycnVwdCBNYXNrIDJuZCwgZGVmYXVs dCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ0JVU19JTlRfMV9NQVNLCQkJMHgwNTk1CisK Ky8qIENCVVMgRERDIEFib3J0IEludGVycnVwdCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2Rl ZmluZSBSRUdfRERDX0FCT1JUX0lOVAkJCTB4MDU5OAorCisvKiBDQlVTIEREQyBBYm9ydCBJbnRl cnJ1cHQgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRERDX0FCT1JU X0lOVF9NQVNLCQkJMHgwNTk5CisKKy8qIENCVVMgTVNDIFJlcXVlc3RlciBBYm9ydCBJbnRlcnJ1 cHQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01TQ19NVF9BQk9SVF9JTlQJ CQkweDA1OWEKKworLyogQ0JVUyBNU0MgUmVxdWVzdGVyIEFib3J0IEludGVycnVwdCBNYXNrLCBk ZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NU0NfTVRfQUJPUlRfSU5UX01BU0sJ CTB4MDU5YgorCisvKiBDQlVTIE1TQyBSZXNwb25kZXIgQWJvcnQgSW50ZXJydXB0LCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NU0NfTVJfQUJPUlRfSU5UCQkJMHgwNTljCisK Ky8qIENCVVMgTVNDIFJlc3BvbmRlciBBYm9ydCBJbnRlcnJ1cHQgTWFzaywgZGVmYXVsdCB2YWx1 ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTVNDX01SX0FCT1JUX0lOVF9NQVNLCQkweDA1OWQKKwor LyogQ0JVUyBSWCBESVNDT1ZFUlkgaW50ZXJydXB0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisj ZGVmaW5lIFJFR19DQlVTX1JYX0RJU0NfSU5UMAkJCTB4MDU5ZQorCisvKiBDQlVTIFJYIERJU0NP VkVSWSBJbnRlcnJ1cHQgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdf Q0JVU19SWF9ESVNDX0lOVDBfTUFTSwkJMHgwNTlmCisKKy8qIENCVVNfTGlua19MYXllciBDb250 cm9sICM4LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DQlVTX0xJTktfQ1RS TF84CQkJMHgwNWE3CisKKy8qIE1EVCBTdGF0ZSBNYWNoaW5lIFN0YXR1cywgZGVmYXVsdCB2YWx1 ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTURUX1NNX1NUQVQJCQkJMHgwNWI1CisjZGVmaW5lIE1T S19NRFRfU01fU1RBVF9NRFRfUkNWX1NUQVRFCQkweGYwCisjZGVmaW5lIE1TS19NRFRfU01fU1RB VF9NRFRfWE1JVF9TVEFURQkJMHgwZgorCisvKiBDQlVTIE1TQyBjb21tYW5kIHRyaWdnZXIsIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01TQ19DT01NQU5EX1NUQVJUCQkJMHgw NWI4CisjZGVmaW5lIEJJVF9NU0NfQ09NTUFORF9TVEFSVF9ERUJVRwkJQklUKDUpCisjZGVmaW5l IEJJVF9NU0NfQ09NTUFORF9TVEFSVF9XUklURV9CVVJTVAlCSVQoNCkKKyNkZWZpbmUgQklUX01T Q19DT01NQU5EX1NUQVJUX1dSSVRFX1NUQVQJQklUKDMpCisjZGVmaW5lIEJJVF9NU0NfQ09NTUFO RF9TVEFSVF9SRUFEX0RFVkNBUAlCSVQoMikKKyNkZWZpbmUgQklUX01TQ19DT01NQU5EX1NUQVJU X01TQ19NU0cJCUJJVCgxKQorI2RlZmluZSBCSVRfTVNDX0NPTU1BTkRfU1RBUlRfUEVFUgkJQklU KDApCisKKy8qIENCVVMgTVNDIENvbW1hbmQvT2Zmc2V0LCBkZWZhdWx0IHZhbHVlOiAweDAwICov CisjZGVmaW5lIFJFR19NU0NfQ01EX09SX09GRlNFVAkJCTB4MDViOQorCisvKiBDQlVTIE1TQyBU cmFuc21pdCBEYXRhICovCisjZGVmaW5lIFJFR19NU0NfMVNUX1RSQU5TTUlUX0RBVEEJCTB4MDVi YQorI2RlZmluZSBSRUdfTVNDXzJORF9UUkFOU01JVF9EQVRBCQkweDA1YmIKKworLyogQ0JVUyBN U0MgUmVxdWVzdGVyIFJlY2VpdmVkIERhdGEgKi8KKyNkZWZpbmUgUkVHX01TQ19NVF9SQ1ZEX0RB VEEwCQkJMHgwNWJjCisjZGVmaW5lIFJFR19NU0NfTVRfUkNWRF9EQVRBMQkJCTB4MDViZAorCisv KiBDQlVTIE1TQyBSZXNwb25kZXIgTVNDX01TRyBSZWNlaXZlZCBEYXRhICovCisjZGVmaW5lIFJF R19NU0NfTVJfTVNDX01TR19SQ1ZEXzFTVF9EQVRBCTB4MDViZgorI2RlZmluZSBSRUdfTVNDX01S X01TQ19NU0dfUkNWRF8yTkRfREFUQQkweDA1YzAKKworLyogQ0JVUyBNU0MgSGVhcnRiZWF0IENv bnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MjcgKi8KKyNkZWZpbmUgUkVHX01TQ19IRUFSVEJFQVRf Q1RSTAkJCTB4MDVjNAorI2RlZmluZSBCSVRfTVNDX0hFQVJUQkVBVF9DVFJMX01TQ19IQl9FTglC SVQoNykKKyNkZWZpbmUgTVNLX01TQ19IRUFSVEJFQVRfQ1RSTF9NU0NfSEJfRkFJTF9MSU1JVCAw eDcwCisjZGVmaW5lIE1TS19NU0NfSEVBUlRCRUFUX0NUUkxfTVNDX0hCX1BFUklPRF9NU0IgMHgw ZgorCisvKiBDQlVTIE1TQyBDb21wYXRpYmlsaXR5IENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4 MDIgKi8KKyNkZWZpbmUgUkVHX0NCVVNfTVNDX0NPTVBBVF9DVFJMCQkweDA1YzcKKyNkZWZpbmUg QklUX0NCVVNfTVNDX0NPTVBBVF9DVFJMX1hERVZDQVBfRU4JQklUKDcpCisjZGVmaW5lIEJJVF9D QlVTX01TQ19DT01QQVRfQ1RSTF9ESVNBQkxFX01TQ19PTl9DQlVTIEJJVCg2KQorI2RlZmluZSBC SVRfQ0JVU19NU0NfQ09NUEFUX0NUUkxfRElTQUJMRV9ERENfT05fQ0JVUyBCSVQoNSkKKyNkZWZp bmUgQklUX0NCVVNfTVNDX0NPTVBBVF9DVFJMX0RJU0FCTEVfR0VUX0REQ19FUlJPUkNPREUgQklU KDMpCisjZGVmaW5lIEJJVF9DQlVTX01TQ19DT01QQVRfQ1RSTF9ESVNBQkxFX0dFVF9WUzFfRVJS T1JDT0RFIEJJVCgyKQorCisvKiBDQlVTMyBDb252ZXJ0ZXIgQ29udHJvbCwgZGVmYXVsdCB2YWx1 ZTogMHgyNCAqLworI2RlZmluZSBSRUdfQ0JVUzNfQ05WVAkJCQkweDA1ZGMKKyNkZWZpbmUgTVNL X0NCVVMzX0NOVlRfQ0JVUzNfUkVUUllMTVQJCTB4ZjAKKyNkZWZpbmUgTVNLX0NCVVMzX0NOVlRf Q0JVUzNfUEVFUlRPVVRfU0VMCTB4MGMKKyNkZWZpbmUgQklUX0NCVVMzX0NOVlRfVEVBUkNCVVNf RU4JCUJJVCgxKQorI2RlZmluZSBCSVRfQ0JVUzNfQ05WVF9DQlVTM0NOVlRfRU4JCUJJVCgwKQor CisvKiBEaXNjb3ZlcnkgQ29udHJvbDEsIGRlZmF1bHQgdmFsdWU6IDB4MjQgKi8KKyNkZWZpbmUg UkVHX0RJU0NfQ1RSTDEJCQkJMHgwNWUwCisjZGVmaW5lIEJJVF9ESVNDX0NUUkwxX0NCVVNfSU5U Ul9FTgkJQklUKDcpCisjZGVmaW5lIEJJVF9ESVNDX0NUUkwxX0hCX09OTFkJCQlCSVQoNikKKyNk ZWZpbmUgTVNLX0RJU0NfQ1RSTDFfRElTQ19BVFQJCQkweDMwCisjZGVmaW5lIE1TS19ESVNDX0NU UkwxX0RJU0NfQ1lDCQkJMHgwYworI2RlZmluZSBCSVRfRElTQ19DVFJMMV9ESVNDX0VOCQkJQklU KDApCisKKyNkZWZpbmUgVkFMX1BVUF9PRkYJCQkJMAorI2RlZmluZSBWQUxfUFVQXzIwSwkJCQkx CisjZGVmaW5lIFZBTF9QVVBfNUsJCQkJMgorCisvKiBEaXNjb3ZlcnkgQ29udHJvbDQsIGRlZmF1 bHQgdmFsdWU6IDB4ODAgKi8KKyNkZWZpbmUgUkVHX0RJU0NfQ1RSTDQJCQkJMHgwNWUzCisjZGVm aW5lIE1TS19ESVNDX0NUUkw0X0NCVVNESVNDX1BVUF9TRUwJCTB4YzAKKyNkZWZpbmUgTVNLX0RJ U0NfQ1RSTDRfQ0JVU0lETEVfUFVQX1NFTAkJMHgzMAorI2RlZmluZSBWQUxfRElTQ19DVFJMNChw dXBfZGlzYywgcHVwX2lkbGUpICgoKHB1cF9kaXNjKSA8PCA2KSB8IChwdXBfaWRsZSA8PCA0KSkK KworLyogRGlzY292ZXJ5IENvbnRyb2w1LCBkZWZhdWx0IHZhbHVlOiAweDAzICovCisjZGVmaW5l IFJFR19ESVNDX0NUUkw1CQkJCTB4MDVlNAorI2RlZmluZSBCSVRfRElTQ19DVFJMNV9EU01fT1ZS SURFCQlCSVQoMykKKyNkZWZpbmUgTVNLX0RJU0NfQ1RSTDVfQ0JVU01ITF9QVVBfU0VMCQkweDAz CisKKy8qIERpc2NvdmVyeSBDb250cm9sOCwgZGVmYXVsdCB2YWx1ZTogMHg4MSAqLworI2RlZmlu ZSBSRUdfRElTQ19DVFJMOAkJCQkweDA1ZTcKKyNkZWZpbmUgQklUX0RJU0NfQ1RSTDhfTk9NSExJ TlRfQ0xSX0JZUEFTUwlCSVQoNykKKyNkZWZpbmUgQklUX0RJU0NfQ1RSTDhfREVMQVlfQ0JVU19J TlRSX0VOCUJJVCgwKQorCisvKiBEaXNjb3ZlcnkgQ29udHJvbDksIGRlZmF1bHQgdmFsdWU6IDB4 NTQgKi8KKyNkZWZpbmUgUkVHX0RJU0NfQ1RSTDkJCQkweDA1ZTgKKyNkZWZpbmUgQklUX0RJU0Nf Q1RSTDlfTUhMM19SU0VOX0JZUAkJQklUKDcpCisjZGVmaW5lIEJJVF9ESVNDX0NUUkw5X01ITDNE SVNDX0VOCQlCSVQoNikKKyNkZWZpbmUgQklUX0RJU0NfQ1RSTDlfV0FLRV9EUlZGTFQJCUJJVCg0 KQorI2RlZmluZSBCSVRfRElTQ19DVFJMOV9OT01ITF9FU1QJCUJJVCgzKQorI2RlZmluZSBCSVRf RElTQ19DVFJMOV9ESVNDX1BVTFNFX1BST0NFRUQJQklUKDIpCisjZGVmaW5lIEJJVF9ESVNDX0NU Ukw5X1dBS0VfUFVMU0VfQllQQVNTCUJJVCgxKQorI2RlZmluZSBCSVRfRElTQ19DVFJMOV9WQlVT X09VVFBVVF9DQVBBQklMSVRZX1NSQyBCSVQoMCkKKworLyogRGlzY292ZXJ5IFN0YXR1czEsIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0RJU0NfU1RBVDEJCQkJMHgwNWViCisj ZGVmaW5lIEJJVF9ESVNDX1NUQVQxX1BTTV9PVlJJREUJCUJJVCg1KQorI2RlZmluZSBNU0tfRElT Q19TVEFUMV9ESVNDX1NNCQkJMHgwZgorCisvKiBEaXNjb3ZlcnkgU3RhdHVzMiwgZGVmYXVsdCB2 YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRElTQ19TVEFUMgkJCQkweDA1ZWMKKyNkZWZpbmUg QklUX0RJU0NfU1RBVDJfQ0JVU19PRV9QT0wJCUJJVCg2KQorI2RlZmluZSBCSVRfRElTQ19TVEFU Ml9DQlVTX1NBVFVTCQlCSVQoNSkKKyNkZWZpbmUgQklUX0RJU0NfU1RBVDJfUlNFTgkJCUJJVCg0 KQorCisjZGVmaW5lIE1TS19ESVNDX1NUQVQyX01ITF9WUlNOCQkJMHgwYworI2RlZmluZSBWQUxf RElTQ19TVEFUMl9ERUZBVUxUCQkJMHgwMAorI2RlZmluZSBWQUxfRElTQ19TVEFUMl9NSEwxXzIJ CQkweDA0CisjZGVmaW5lIFZBTF9ESVNDX1NUQVQyX01ITDMJCQkweDA4CisjZGVmaW5lIFZBTF9E SVNDX1NUQVQyX1JFU0VSVkVECQkJMHgwYworCisjZGVmaW5lIE1TS19ESVNDX1NUQVQyX1JHTkQJ CQkweDAzCisjZGVmaW5lIFZBTF9SR05EX09QRU4JCQkJMHgwMAorI2RlZmluZSBWQUxfUkdORF8y SwkJCQkweDAxCisjZGVmaW5lIFZBTF9SR05EXzFLCQkJCTB4MDIKKyNkZWZpbmUgVkFMX1JHTkRf U0hPUlQJCQkJMHgwMworCisvKiBJbnRlcnJ1cHQgQ0JVU19yZWcxIElOVFIwLCBkZWZhdWx0IHZh bHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DQlVTX0RJU0NfSU5UUjAJCQkweDA1ZWQKKyNkZWZp bmUgQklUX1JHTkRfUkVBRFlfSU5UCQkJQklUKDYpCisjZGVmaW5lIEJJVF9DQlVTX01ITDEyX0RJ U0NPTl9JTlQJCUJJVCg1KQorI2RlZmluZSBCSVRfQ0JVU19NSEwzX0RJU0NPTl9JTlQJCUJJVCg0 KQorI2RlZmluZSBCSVRfTk9UX01ITF9FU1RfSU5UCQkJQklUKDMpCisjZGVmaW5lIEJJVF9NSExf RVNUX0lOVAkJCQlCSVQoMikKKyNkZWZpbmUgQklUX01ITDNfRVNUX0lOVAkJCUJJVCgxKQorI2Rl ZmluZSBWQUxfQ0JVU19NSExfRElTQ09OIChCSVRfQ0JVU19NSEwxMl9ESVNDT05fSU5UIFwKKwkJ CSAgICB8IEJJVF9DQlVTX01ITDNfRElTQ09OX0lOVCBcCisJCQkgICAgfCBCSVRfTk9UX01ITF9F U1RfSU5UKQorCisvKiBJbnRlcnJ1cHQgQ0JVU19yZWcxIElOVFIwIE1hc2ssIGRlZmF1bHQgdmFs dWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NCVVNfRElTQ19JTlRSMF9NQVNLCQkweDA1ZWUKKwor I2VuZGlmIC8qIF9fU0lMX1NJSTg2MjBfSF9fICovCi0tIAoyLjcuNAoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApk cmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==