From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: Re: [PATCH v5 3/3] drm/bridge: add Silicon Image SiI8620 driver Date: Wed, 26 Oct 2016 13:33:35 +0530 Message-ID: <52856993-493f-4813-48fa-7ef13607752b@codeaurora.org> References: <4382674.RlEaMclDsa@avalon> <1476085157-5266-1-git-send-email-a.hajda@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from smtp.codeaurora.org (smtp.codeaurora.org [198.145.29.96]) by gabe.freedesktop.org (Postfix) with ESMTPS id EEC836E7E5 for ; Wed, 26 Oct 2016 08:03:44 +0000 (UTC) In-Reply-To: <1476085157-5266-1-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: Andrzej Hajda , "open list:DRM DRIVERS" Cc: Daniel Vetter , Marek Szyprowski , laurent.pinchart@ideasonboard.com, Bartlomiej Zolnierkiewicz List-Id: dri-devel@lists.freedesktop.org CgpPbiAxMC8xMC8yMDE2IDAxOjA5IFBNLCBBbmRyemVqIEhhamRhIHdyb3RlOgo+IFNpSTg2MjAg dHJhbnNtaXR0ZXIgY29udmVydHMgZVRNRFMvSERNSSBzaWduYWwgdG8gTUhMIDMuMC4KPiBJdCBp cyBjb250cm9sbGVkIHZpYSBJMkMgYnVzLiBJdHMgaW50ZXJhY3Rpb24gd2l0aCBvdGhlcgo+IGRl dmljZXMgaW4gdmlkZW8gcGlwZWxpbmUgaXMgcGVyZm9ybWVkIG1haW5seSBvbiBIVyBsZXZlbC4K PiBUaGUgb25seSBpbnRlcmFjdGlvbiBpdCBkb2VzIG9uIGRldmljZSBkcml2ZXIgbGV2ZWwgaXMK PiBmaWx0ZXJpbmctb3V0IHVuc3VwcG9ydGVkIHZpZGVvIG1vZGVzLCBpdCBleHBvc2VzIGRybV9i cmlkZ2UKPiBpbnRlcmZhY2UgdG8gcGVyZm9ybSB0aGlzIG9wZXJhdGlvbi4KCnF1ZXVlZCB0byBk cm0tbWlzYy4KClRoYW5rcywKQXJjaGl0Cgo+Cj4gU2lnbmVkLW9mZi1ieTogQW5kcnplaiBIYWpk YSA8YS5oYWpkYUBzYW1zdW5nLmNvbT4KPiAtLS0KPiB2NToKPiAgIC0gYWRkZWQgc3RhdGljIHZl cnNpb24gb2Ygc2lpODYyMF93cml0ZV9zZXFfc3RhdGljLAo+ICAgLSB1c2UgbG93ZXJjYXNlIGZv ciBpMmNfZGV2aWNlX2lkCj4gdjQ6Cj4gICAtIHVwZGF0ZWQgbWhsLmggbG9jYXRpb24KPiB2MzoK PiAgIC0gbW9kaWZpZWQgZHJpdmVyIGRlc2NyaXB0aW9uLAo+ICAgLSByZW1vdmVkIGR1bW15IGJy aWRnZSBjYWxsYmFja3MsCj4gICAtIHJlbW92ZWQgbG9ja2luZyBmcm9tIGRyaXZlciByZW1vdmUg ZnVuY3Rpb24uCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZyAgICAgICB8 ICAgIDcgKwo+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL01ha2VmaWxlICAgICAgfCAgICAxICsK PiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5jIHwgMTU2MyArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lsLXNp aTg2MjAuaCB8IDE1MTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIDQgZmls ZXMgY2hhbmdlZCwgMzA4OCBpbnNlcnRpb25zKCspCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbC1zaWk4NjIwLmMKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAuaAo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZp Zwo+IGluZGV4IGI1OTBlNjcuLmU3ZmIxNzkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2JyaWRnZS9LY29uZmlnCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnCj4g QEAgLTUwLDYgKzUwLDEzIEBAIGNvbmZpZyBEUk1fUEFSQURFX1BTODYyMgo+ICAJLS0taGVscC0t LQo+ICAJICBQYXJhZGUgZURQLUxWRFMgYnJpZGdlIGNoaXAgZHJpdmVyLgo+Cj4gK2NvbmZpZyBE Uk1fU0lMX1NJSTg2MjAKPiArCXRyaXN0YXRlICJTaWxpY29uIEltYWdlIFNJSTg2MjAgSERNSS9N SEwgYnJpZGdlIgo+ICsJZGVwZW5kcyBvbiBPRgo+ICsJc2VsZWN0IERSTV9LTVNfSEVMUEVSCj4g KwloZWxwCj4gKwkgIFNpbGljb24gSW1hZ2UgU0lJODYyMCBIRE1JL01ITCBicmlkZ2UgY2hpcCBk cml2ZXIuCj4gKwo+ICBjb25maWcgRFJNX1NJSTkwMlgKPiAgCXRyaXN0YXRlICJTaWxpY29uIElt YWdlIHNpaTkwMnggUkdCL0hETUkgYnJpZGdlIgo+ICAJZGVwZW5kcyBvbiBPRgo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS9NYWtlZmlsZQo+IGluZGV4IGVmZGIwN2UuLjMwNGNmOWQgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2JyaWRnZS9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlk Z2UvTWFrZWZpbGUKPiBAQCAtNSw2ICs1LDcgQEAgb2JqLSQoQ09ORklHX0RSTV9EV19IRE1JKSAr PSBkdy1oZG1pLm8KPiAgb2JqLSQoQ09ORklHX0RSTV9EV19IRE1JX0FIQl9BVURJTykgKz0gZHct aGRtaS1haGItYXVkaW8ubwo+ICBvYmotJChDT05GSUdfRFJNX05YUF9QVE4zNDYwKSArPSBueHAt cHRuMzQ2MC5vCj4gIG9iai0kKENPTkZJR19EUk1fUEFSQURFX1BTODYyMikgKz0gcGFyYWRlLXBz ODYyMi5vCj4gK29iai0kKENPTkZJR19EUk1fU0lMX1NJSTg2MjApICs9IHNpbC1zaWk4NjIwLm8K PiAgb2JqLSQoQ09ORklHX0RSTV9TSUk5MDJYKSArPSBzaWk5MDJ4Lm8KPiAgb2JqLSQoQ09ORklH X0RSTV9UT1NISUJBX1RDMzU4NzY3KSArPSB0YzM1ODc2Ny5vCj4gIG9iai0kKENPTkZJR19EUk1f QU5BTE9HSVhfRFApICs9IGFuYWxvZ2l4Lwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL3NpbC1zaWk4NjIwLmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbC1zaWk4NjIw LmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjRiZTcyYzMKPiAtLS0g L2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5jCj4g QEAgLTAsMCArMSwxNTYzIEBACj4gKy8qCj4gKyAqIFNpbGljb24gSW1hZ2UgU2lJODYyMCBIRE1J L01ITCBicmlkZ2UgZHJpdmVyCj4gKyAqCj4gKyAqIENvcHlyaWdodCAoQykgMjAxNSwgU2Ftc3Vu ZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KPiArICogQW5kcnplaiBIYWpkYSA8YS5oYWpkYUBzYW1z dW5nLmNvbT4KPiArICoKPiArICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKPiArICogaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKPiArICogcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCj4gKyAqLwo+ICsKPiArI2lu Y2x1ZGUgPGRybS9icmlkZ2UvbWhsLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KPiAr I2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgo+ICsKPiArI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgo+ ICsjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3Vt ZXIuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgo+ICsjaW5jbHVkZSA8bGludXgvaW50ZXJy dXB0Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2tlcm5l bC5oPgo+ICsjaW5jbHVkZSA8bGludXgvbGlzdC5oPgo+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxl Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgo+ICsjaW5jbHVkZSA8bGludXgvcmVndWxh dG9yL2NvbnN1bWVyLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4gKwo+ICsjaW5jbHVk ZSAic2lsLXNpaTg2MjAuaCIKPiArCj4gKyNkZWZpbmUgVkFMX1JYX0hETUlfQ1RSTDJfREVGVkFM CVZBTF9SWF9IRE1JX0NUUkwyX0lETEVfQ05UKDMpCj4gKwo+ICtlbnVtIHNpaTg2MjBfbW9kZSB7 Cj4gKwlDTV9ESVNDT05ORUNURUQsCj4gKwlDTV9ESVNDT1ZFUlksCj4gKwlDTV9NSEwxLAo+ICsJ Q01fTUhMMywKPiArCUNNX0VDQlVTX1MKPiArfTsKPiArCj4gK2VudW0gc2lpODYyMF9zaW5rX3R5 cGUgewo+ICsJU0lOS19OT05FLAo+ICsJU0lOS19IRE1JLAo+ICsJU0lOS19EVkkKPiArfTsKPiAr Cj4gK2VudW0gc2lpODYyMF9tdF9zdGF0ZSB7Cj4gKwlNVF9TVEFURV9SRUFEWSwKPiArCU1UX1NU QVRFX0JVU1ksCj4gKwlNVF9TVEFURV9ET05FCj4gK307Cj4gKwo+ICtzdHJ1Y3Qgc2lpODYyMCB7 Cj4gKwlzdHJ1Y3QgZHJtX2JyaWRnZSBicmlkZ2U7Cj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXY7Cj4g KwlzdHJ1Y3QgY2xrICpjbGtfeHRhbDsKPiArCXN0cnVjdCBncGlvX2Rlc2MgKmdwaW9fcmVzZXQ7 Cj4gKwlzdHJ1Y3QgZ3Bpb19kZXNjICpncGlvX2ludDsKPiArCXN0cnVjdCByZWd1bGF0b3JfYnVs a19kYXRhIHN1cHBsaWVzWzJdOwo+ICsJc3RydWN0IG11dGV4IGxvY2s7IC8qIGNvbnRleHQgbG9j aywgcHJvdGVjdHMgZmllbGRzIGJlbG93ICovCj4gKwlpbnQgZXJyb3I7Cj4gKwllbnVtIHNpaTg2 MjBfbW9kZSBtb2RlOwo+ICsJZW51bSBzaWk4NjIwX3NpbmtfdHlwZSBzaW5rX3R5cGU7Cj4gKwl1 OCBjYnVzX3N0YXR1czsKPiArCXU4IHN0YXRbTUhMX0RTVF9TSVpFXTsKPiArCXU4IHhzdGF0W01I TF9YRFNfU0laRV07Cj4gKwl1OCBkZXZjYXBbTUhMX0RDQVBfU0laRV07Cj4gKwl1OCB4ZGV2Y2Fw W01ITF9YRENfU0laRV07Cj4gKwl1OCBhdmlmWzE5XTsKPiArCXN0cnVjdCBlZGlkICplZGlkOwo+ ICsJdW5zaWduZWQgaW50IGdlbjJfd3JpdGVfYnVyc3Q6MTsKPiArCWVudW0gc2lpODYyMF9tdF9z dGF0ZSBtdF9zdGF0ZTsKPiArCXN0cnVjdCBsaXN0X2hlYWQgbXRfcXVldWU7Cj4gK307Cj4gKwo+ ICtzdHJ1Y3Qgc2lpODYyMF9tdF9tc2c7Cj4gKwo+ICt0eXBlZGVmIHZvaWQgKCpzaWk4NjIwX210 X21zZ19jYikoc3RydWN0IHNpaTg2MjAgKmN0eCwKPiArCQkJCSAgc3RydWN0IHNpaTg2MjBfbXRf bXNnICptc2cpOwo+ICsKPiArc3RydWN0IHNpaTg2MjBfbXRfbXNnIHsKPiArCXN0cnVjdCBsaXN0 X2hlYWQgbm9kZTsKPiArCXU4IHJlZ1s0XTsKPiArCXU4IHJldDsKPiArCXNpaTg2MjBfbXRfbXNn X2NiIHNlbmQ7Cj4gKwlzaWk4NjIwX210X21zZ19jYiByZWN2Owo+ICt9Owo+ICsKPiArc3RhdGlj IGNvbnN0IHU4IHNpaTg2MjBfaTJjX3BhZ2VbXSA9IHsKPiArCTB4MzksIC8qIE1haW4gU3lzdGVt ICovCj4gKwkweDNkLCAvKiBURE0gYW5kIEhTSUMgKi8KPiArCTB4NDksIC8qIFRNRFMgUmVjZWl2 ZXIsIE1ITCBFRElEICovCj4gKwkweDRkLCAvKiBlTVNDLCBIRENQLCBIU0lDICovCj4gKwkweDVk LCAvKiBNSEwgU3BlYyAqLwo+ICsJMHg2NCwgLyogTUhMIENCVVMgKi8KPiArCTB4NTksIC8qIEhh cmR3YXJlIFRQSSAoVHJhbnNtaXR0ZXIgUHJvZ3JhbW1pbmcgSW50ZXJmYWNlKSAqLwo+ICsJMHg2 MSwgLyogZUNCVVMtUywgZUNCVVMtRCAqLwo+ICt9Owo+ICsKPiArc3RhdGljIHZvaWQgc2lpODYy MF9mZXRjaF9lZGlkKHN0cnVjdCBzaWk4NjIwICpjdHgpOwo+ICtzdGF0aWMgdm9pZCBzaWk4NjIw X3NldF91cHN0cmVhbV9lZGlkKHN0cnVjdCBzaWk4NjIwICpjdHgpOwo+ICtzdGF0aWMgdm9pZCBz aWk4NjIwX2VuYWJsZV9ocGQoc3RydWN0IHNpaTg2MjAgKmN0eCk7Cj4gK3N0YXRpYyB2b2lkIHNp aTg2MjBfbWhsX2Rpc2Nvbm5lY3RlZChzdHJ1Y3Qgc2lpODYyMCAqY3R4KTsKPiArCj4gK3N0YXRp YyBpbnQgc2lpODYyMF9jbGVhcl9lcnJvcihzdHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ICt7Cj4gKwlp bnQgcmV0ID0gY3R4LT5lcnJvcjsKPiArCj4gKwljdHgtPmVycm9yID0gMDsKPiArCXJldHVybiBy ZXQ7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfcmVhZF9idWYoc3RydWN0IHNpaTg2 MjAgKmN0eCwgdTE2IGFkZHIsIHU4ICpidWYsIGludCBsZW4pCj4gK3sKPiArCXN0cnVjdCBkZXZp Y2UgKmRldiA9IGN0eC0+ZGV2Owo+ICsJc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCA9IHRvX2ky Y19jbGllbnQoZGV2KTsKPiArCXU4IGRhdGEgPSBhZGRyOwo+ICsJc3RydWN0IGkyY19tc2cgbXNn W10gPSB7Cj4gKwkJewo+ICsJCQkuYWRkciA9IHNpaTg2MjBfaTJjX3BhZ2VbYWRkciA+PiA4XSwK PiArCQkJLmZsYWdzID0gY2xpZW50LT5mbGFncywKPiArCQkJLmxlbiA9IDEsCj4gKwkJCS5idWYg PSAmZGF0YQo+ICsJCX0sCj4gKwkJewo+ICsJCQkuYWRkciA9IHNpaTg2MjBfaTJjX3BhZ2VbYWRk ciA+PiA4XSwKPiArCQkJLmZsYWdzID0gY2xpZW50LT5mbGFncyB8IEkyQ19NX1JELAo+ICsJCQku bGVuID0gbGVuLAo+ICsJCQkuYnVmID0gYnVmCj4gKwkJfSwKPiArCX07Cj4gKwlpbnQgcmV0Owo+ ICsKPiArCWlmIChjdHgtPmVycm9yKQo+ICsJCXJldHVybjsKPiArCj4gKwlyZXQgPSBpMmNfdHJh bnNmZXIoY2xpZW50LT5hZGFwdGVyLCBtc2csIDIpOwo+ICsJZGV2X2RiZyhkZXYsICJyZWFkIGF0 ICUwNHg6ICUqcGgsICVkXG4iLCBhZGRyLCBsZW4sIGJ1ZiwgcmV0KTsKPiArCj4gKwlpZiAocmV0 ICE9IDIpIHsKPiArCQlkZXZfZXJyKGRldiwgIlJlYWQgYXQgJSMwNnggb2YgJWQgYnl0ZXMgZmFp bGVkIHdpdGggY29kZSAlZC5cbiIsCj4gKwkJCWFkZHIsIGxlbiwgcmV0KTsKPiArCQljdHgtPmVy cm9yID0gcmV0IDwgMCA/IHJldCA6IC1FSU87Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB1OCBz aWk4NjIwX3JlYWRiKHN0cnVjdCBzaWk4NjIwICpjdHgsIHUxNiBhZGRyKQo+ICt7Cj4gKwl1OCBy ZXQ7Cj4gKwo+ICsJc2lpODYyMF9yZWFkX2J1ZihjdHgsIGFkZHIsICZyZXQsIDEpOwo+ICsJcmV0 dXJuIHJldDsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgc2lpODYyMF93cml0ZV9idWYoc3RydWN0 IHNpaTg2MjAgKmN0eCwgdTE2IGFkZHIsIGNvbnN0IHU4ICpidWYsCj4gKwkJCSAgICAgIGludCBs ZW4pCj4gK3sKPiArCXN0cnVjdCBkZXZpY2UgKmRldiA9IGN0eC0+ZGV2Owo+ICsJc3RydWN0IGky Y19jbGllbnQgKmNsaWVudCA9IHRvX2kyY19jbGllbnQoZGV2KTsKPiArCXU4IGRhdGFbMl07Cj4g KwlzdHJ1Y3QgaTJjX21zZyBtc2cgPSB7Cj4gKwkJLmFkZHIgPSBzaWk4NjIwX2kyY19wYWdlW2Fk ZHIgPj4gOF0sCj4gKwkJLmZsYWdzID0gY2xpZW50LT5mbGFncywKPiArCQkubGVuID0gbGVuICsg MSwKPiArCX07Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWlmIChjdHgtPmVycm9yKQo+ICsJCXJldHVy bjsKPiArCj4gKwlpZiAobGVuID4gMSkgewo+ICsJCW1zZy5idWYgPSBrbWFsbG9jKGxlbiArIDEs IEdGUF9LRVJORUwpOwo+ICsJCWlmICghbXNnLmJ1Zikgewo+ICsJCQljdHgtPmVycm9yID0gLUVO T01FTTsKPiArCQkJcmV0dXJuOwo+ICsJCX0KPiArCQltZW1jcHkobXNnLmJ1ZiArIDEsIGJ1Ziwg bGVuKTsKPiArCX0gZWxzZSB7Cj4gKwkJbXNnLmJ1ZiA9IGRhdGE7Cj4gKwkJbXNnLmJ1ZlsxXSA9 ICpidWY7Cj4gKwl9Cj4gKwo+ICsJbXNnLmJ1ZlswXSA9IGFkZHI7Cj4gKwo+ICsJcmV0ID0gaTJj X3RyYW5zZmVyKGNsaWVudC0+YWRhcHRlciwgJm1zZywgMSk7Cj4gKwlkZXZfZGJnKGRldiwgIndy aXRlIGF0ICUwNHg6ICUqcGgsICVkXG4iLCBhZGRyLCBsZW4sIGJ1ZiwgcmV0KTsKPiArCj4gKwlp ZiAocmV0ICE9IDEpIHsKPiArCQlkZXZfZXJyKGRldiwgIldyaXRlIGF0ICUjMDZ4IG9mICUqcGgg ZmFpbGVkIHdpdGggY29kZSAlZC5cbiIsCj4gKwkJCWFkZHIsIGxlbiwgYnVmLCByZXQpOwo+ICsJ CWN0eC0+ZXJyb3IgPSByZXQgPzogLUVJTzsKPiArCX0KPiArCj4gKwlpZiAobGVuID4gMSkKPiAr CQlrZnJlZShtc2cuYnVmKTsKPiArfQo+ICsKPiArI2RlZmluZSBzaWk4NjIwX3dyaXRlKGN0eCwg YWRkciwgYXJyLi4uKSBcCj4gKyh7XAo+ICsJdTggZFtdID0geyBhcnIgfTsgXAo+ICsJc2lpODYy MF93cml0ZV9idWYoY3R4LCBhZGRyLCBkLCBBUlJBWV9TSVpFKGQpKTsgXAo+ICt9KQo+ICsKPiAr c3RhdGljIHZvaWQgX19zaWk4NjIwX3dyaXRlX3NlcShzdHJ1Y3Qgc2lpODYyMCAqY3R4LCBjb25z dCB1MTYgKnNlcSwgaW50IGxlbikKPiArewo+ICsJaW50IGk7Cj4gKwo+ICsJZm9yIChpID0gMDsg aSA8IGxlbjsgaSArPSAyKQo+ICsJCXNpaTg2MjBfd3JpdGUoY3R4LCBzZXFbaV0sIHNlcVtpICsg MV0pOwo+ICt9Cj4gKwo+ICsjZGVmaW5lIHNpaTg2MjBfd3JpdGVfc2VxKGN0eCwgc2VxLi4uKSBc Cj4gKyh7XAo+ICsJY29uc3QgdTE2IGRbXSA9IHsgc2VxIH07IFwKPiArCV9fc2lpODYyMF93cml0 ZV9zZXEoY3R4LCBkLCBBUlJBWV9TSVpFKGQpKTsgXAo+ICt9KQo+ICsKPiArI2RlZmluZSBzaWk4 NjIwX3dyaXRlX3NlcV9zdGF0aWMoY3R4LCBzZXEuLi4pIFwKPiArKHtcCj4gKwlzdGF0aWMgY29u c3QgdTE2IGRbXSA9IHsgc2VxIH07IFwKPiArCV9fc2lpODYyMF93cml0ZV9zZXEoY3R4LCBkLCBB UlJBWV9TSVpFKGQpKTsgXAo+ICt9KQo+ICsKPiArc3RhdGljIHZvaWQgc2lpODYyMF9zZXRiaXRz KHN0cnVjdCBzaWk4NjIwICpjdHgsIHUxNiBhZGRyLCB1OCBtYXNrLCB1OCB2YWwpCj4gK3sKPiAr CXZhbCA9ICh2YWwgJiBtYXNrKSB8IChzaWk4NjIwX3JlYWRiKGN0eCwgYWRkcikgJiB+bWFzayk7 Cj4gKwlzaWk4NjIwX3dyaXRlKGN0eCwgYWRkciwgdmFsKTsKPiArfQo+ICsKPiArc3RhdGljIHZv aWQgc2lpODYyMF9tdF9jbGVhbnVwKHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gK3sKPiArCXN0cnVj dCBzaWk4NjIwX210X21zZyAqbXNnLCAqbjsKPiArCj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3Nh ZmUobXNnLCBuLCAmY3R4LT5tdF9xdWV1ZSwgbm9kZSkgewo+ICsJCWxpc3RfZGVsKCZtc2ctPm5v ZGUpOwo+ICsJCWtmcmVlKG1zZyk7Cj4gKwl9Cj4gKwljdHgtPm10X3N0YXRlID0gTVRfU1RBVEVf UkVBRFk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXRfd29yayhzdHJ1Y3Qgc2lp ODYyMCAqY3R4KQo+ICt7Cj4gKwlzdHJ1Y3Qgc2lpODYyMF9tdF9tc2cgKm1zZzsKPiArCj4gKwlp ZiAoY3R4LT5lcnJvcikKPiArCQlyZXR1cm47Cj4gKwlpZiAoY3R4LT5tdF9zdGF0ZSA9PSBNVF9T VEFURV9CVVNZIHx8IGxpc3RfZW1wdHkoJmN0eC0+bXRfcXVldWUpKQo+ICsJCXJldHVybjsKPiAr Cj4gKwlpZiAoY3R4LT5tdF9zdGF0ZSA9PSBNVF9TVEFURV9ET05FKSB7Cj4gKwkJY3R4LT5tdF9z dGF0ZSA9IE1UX1NUQVRFX1JFQURZOwo+ICsJCW1zZyA9IGxpc3RfZmlyc3RfZW50cnkoJmN0eC0+ bXRfcXVldWUsIHN0cnVjdCBzaWk4NjIwX210X21zZywKPiArCQkJCSAgICAgICBub2RlKTsKPiAr CQlpZiAobXNnLT5yZWN2KQo+ICsJCQltc2ctPnJlY3YoY3R4LCBtc2cpOwo+ICsJCWxpc3RfZGVs KCZtc2ctPm5vZGUpOwo+ICsJCWtmcmVlKG1zZyk7Cj4gKwl9Cj4gKwo+ICsJaWYgKGN0eC0+bXRf c3RhdGUgIT0gTVRfU1RBVEVfUkVBRFkgfHwgbGlzdF9lbXB0eSgmY3R4LT5tdF9xdWV1ZSkpCj4g KwkJcmV0dXJuOwo+ICsKPiArCWN0eC0+bXRfc3RhdGUgPSBNVF9TVEFURV9CVVNZOwo+ICsJbXNn ID0gbGlzdF9maXJzdF9lbnRyeSgmY3R4LT5tdF9xdWV1ZSwgc3RydWN0IHNpaTg2MjBfbXRfbXNn LCBub2RlKTsKPiArCWlmIChtc2ctPnNlbmQpCj4gKwkJbXNnLT5zZW5kKGN0eCwgbXNnKTsKPiAr fQo+ICsKPiArc3RhdGljIHZvaWQgc2lpODYyMF9tdF9tc2NfY21kX3NlbmQoc3RydWN0IHNpaTg2 MjAgKmN0eCwKPiArCQkJCSAgICAgICBzdHJ1Y3Qgc2lpODYyMF9tdF9tc2cgKm1zZykKPiArewo+ ICsJc3dpdGNoIChtc2ctPnJlZ1swXSkgewo+ICsJY2FzZSBNSExfV1JJVEVfU1RBVDoKPiArCWNh c2UgTUhMX1NFVF9JTlQ6Cj4gKwkJc2lpODYyMF93cml0ZV9idWYoY3R4LCBSRUdfTVNDX0NNRF9P Ul9PRkZTRVQsIG1zZy0+cmVnICsgMSwgMik7Cj4gKwkJc2lpODYyMF93cml0ZShjdHgsIFJFR19N U0NfQ09NTUFORF9TVEFSVCwKPiArCQkJICAgICAgQklUX01TQ19DT01NQU5EX1NUQVJUX1dSSVRF X1NUQVQpOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBNSExfTVNDX01TRzoKPiArCQlzaWk4NjIwX3dy aXRlX2J1ZihjdHgsIFJFR19NU0NfQ01EX09SX09GRlNFVCwgbXNnLT5yZWcsIDMpOwo+ICsJCXNp aTg2MjBfd3JpdGUoY3R4LCBSRUdfTVNDX0NPTU1BTkRfU1RBUlQsCj4gKwkJCSAgICAgIEJJVF9N U0NfQ09NTUFORF9TVEFSVF9NU0NfTVNHKTsKPiArCQlicmVhazsKPiArCWRlZmF1bHQ6Cj4gKwkJ ZGV2X2VycihjdHgtPmRldiwgIiVzOiBjb21tYW5kICUjeCBub3Qgc3VwcG9ydGVkXG4iLCBfX2Z1 bmNfXywKPiArCQkJbXNnLT5yZWdbMF0pOwo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgc3RydWN0 IHNpaTg2MjBfbXRfbXNnICpzaWk4NjIwX210X21zZ19uZXcoc3RydWN0IHNpaTg2MjAgKmN0eCkK PiArewo+ICsJc3RydWN0IHNpaTg2MjBfbXRfbXNnICptc2cgPSBremFsbG9jKHNpemVvZigqbXNn KSwgR0ZQX0tFUk5FTCk7Cj4gKwo+ICsJaWYgKCFtc2cpCj4gKwkJY3R4LT5lcnJvciA9IC1FTk9N RU07Cj4gKwllbHNlCj4gKwkJbGlzdF9hZGRfdGFpbCgmbXNnLT5ub2RlLCAmY3R4LT5tdF9xdWV1 ZSk7Cj4gKwo+ICsJcmV0dXJuIG1zZzsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgc2lpODYyMF9t dF9tc2NfY21kKHN0cnVjdCBzaWk4NjIwICpjdHgsIHU4IGNtZCwgdTggYXJnMSwgdTggYXJnMikK PiArewo+ICsJc3RydWN0IHNpaTg2MjBfbXRfbXNnICptc2cgPSBzaWk4NjIwX210X21zZ19uZXco Y3R4KTsKPiArCj4gKwlpZiAoIW1zZykKPiArCQlyZXR1cm47Cj4gKwo+ICsJbXNnLT5yZWdbMF0g PSBjbWQ7Cj4gKwltc2ctPnJlZ1sxXSA9IGFyZzE7Cj4gKwltc2ctPnJlZ1syXSA9IGFyZzI7Cj4g Kwltc2ctPnNlbmQgPSBzaWk4NjIwX210X21zY19jbWRfc2VuZDsKPiArfQo+ICsKPiArc3RhdGlj IHZvaWQgc2lpODYyMF9tdF93cml0ZV9zdGF0KHN0cnVjdCBzaWk4NjIwICpjdHgsIHU4IHJlZywg dTggdmFsKQo+ICt7Cj4gKwlzaWk4NjIwX210X21zY19jbWQoY3R4LCBNSExfV1JJVEVfU1RBVCwg cmVnLCB2YWwpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHZvaWQgc2lpODYyMF9tdF9zZXRf aW50KHN0cnVjdCBzaWk4NjIwICpjdHgsIHU4IGlycSwgdTggbWFzaykKPiArewo+ICsJc2lpODYy MF9tdF9tc2NfY21kKGN0eCwgTUhMX1NFVF9JTlQsIGlycSwgbWFzayk7Cj4gK30KPiArCj4gK3N0 YXRpYyB2b2lkIHNpaTg2MjBfbXRfbXNjX21zZyhzdHJ1Y3Qgc2lpODYyMCAqY3R4LCB1OCBjbWQs IHU4IGRhdGEpCj4gK3sKPiArCXNpaTg2MjBfbXRfbXNjX2NtZChjdHgsIE1ITF9NU0NfTVNHLCBj bWQsIGRhdGEpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX210X3JhcChzdHJ1Y3Qg c2lpODYyMCAqY3R4LCB1OCBjb2RlKQo+ICt7Cj4gKwlzaWk4NjIwX210X21zY19tc2coY3R4LCBN SExfTVNDX01TR19SQVAsIGNvZGUpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX210 X3JlYWRfZGV2Y2FwX3NlbmQoc3RydWN0IHNpaTg2MjAgKmN0eCwKPiArCQkJCQlzdHJ1Y3Qgc2lp ODYyMF9tdF9tc2cgKm1zZykKPiArewo+ICsJdTggY3RybCA9IEJJVF9FRElEX0NUUkxfREVWQ0FQ X1NFTEVDVF9ERVZDQVAKPiArCQkJfCBCSVRfRURJRF9DVFJMX0VESURfRklGT19BRERSX0FVVE8K PiArCQkJfCBCSVRfRURJRF9DVFJMX0VESURfTU9ERV9FTjsKPiArCj4gKwlpZiAobXNnLT5yZWdb MF0gPT0gTUhMX1JFQURfWERFVkNBUCkKPiArCQljdHJsIHw9IEJJVF9FRElEX0NUUkxfWERFVkNB UF9FTjsKPiArCj4gKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCj4gKwkJUkVHX0lOVFI5X01BU0ss IEJJVF9JTlRSOV9ERVZDQVBfRE9ORSwKPiArCQlSRUdfRURJRF9DVFJMLCBjdHJsLAo+ICsJCVJF R19UUElfQ0JVU19TVEFSVCwgQklUX1RQSV9DQlVTX1NUQVJUX0dFVF9ERVZDQVBfU1RBUlQKPiAr CSk7Cj4gK30KPiArCj4gKy8qIGNvcHkgc3JjIHRvIGRzdCBhbmQgc2V0IGNoYW5nZWQgYml0cyBp biBzcmMgKi8KPiArc3RhdGljIHZvaWQgc2lpODYyMF91cGRhdGVfYXJyYXkodTggKmRzdCwgdTgg KnNyYywgaW50IGNvdW50KQo+ICt7Cj4gKwl3aGlsZSAoLS1jb3VudCA+PSAwKSB7Cj4gKwkJKnNy YyBePSAqZHN0Owo+ICsJCSpkc3QrKyBePSAqc3JjKys7Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRp YyB2b2lkIHNpaTg2MjBfbXJfZGV2Y2FwKHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gK3sKPiArCXN0 YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc2lua19zdHJbXSA9IHsKPiArCQlbU0lOS19OT05FXSA9 ICJOT05FIiwKPiArCQlbU0lOS19IRE1JXSA9ICJIRE1JIiwKPiArCQlbU0lOS19EVkldID0gIkRW SSIKPiArCX07Cj4gKwo+ICsJdTggZGNhcFtNSExfRENBUF9TSVpFXTsKPiArCWNoYXIgc2lua19u YW1lWzIwXTsKPiArCXN0cnVjdCBkZXZpY2UgKmRldiA9IGN0eC0+ZGV2Owo+ICsKPiArCXNpaTg2 MjBfcmVhZF9idWYoY3R4LCBSRUdfRURJRF9GSUZPX1JEX0RBVEEsIGRjYXAsIE1ITF9EQ0FQX1NJ WkUpOwo+ICsJaWYgKGN0eC0+ZXJyb3IgPCAwKQo+ICsJCXJldHVybjsKPiArCj4gKwlkZXZfaW5m byhkZXYsICJkY2FwOiAlKnBoXG4iLCBNSExfRENBUF9TSVpFLCBkY2FwKTsKPiArCWRldl9pbmZv KGRldiwgImRldGVjdGVkIGRvbmdsZSBNSEwgJWQuJWQsIENoaXBJRCAlMDJ4JTAyeDolMDJ4JTAy eFxuIiwKPiArCQlkY2FwW01ITF9EQ0FQX01ITF9WRVJTSU9OXSAvIDE2LCBkY2FwW01ITF9EQ0FQ X01ITF9WRVJTSU9OXSAlIDE2LAo+ICsJCWRjYXBbTUhMX0RDQVBfQURPUFRFUl9JRF9IXSwgZGNh cFtNSExfRENBUF9BRE9QVEVSX0lEX0xdLAo+ICsJCWRjYXBbTUhMX0RDQVBfREVWSUNFX0lEX0hd LCBkY2FwW01ITF9EQ0FQX0RFVklDRV9JRF9MXSk7Cj4gKwlzaWk4NjIwX3VwZGF0ZV9hcnJheShj dHgtPmRldmNhcCwgZGNhcCwgTUhMX0RDQVBfU0laRSk7Cj4gKwo+ICsJaWYgKCEoZGNhcFtNSExf RENBUF9DQVRdICYgTUhMX0RDQVBfQ0FUX1NJTkspKQo+ICsJCXJldHVybjsKPiArCj4gKwlzaWk4 NjIwX2ZldGNoX2VkaWQoY3R4KTsKPiArCWlmICghY3R4LT5lZGlkKSB7Cj4gKwkJZGV2X2Vycihj dHgtPmRldiwgIkNhbm5vdCBmZXRjaCBFRElEXG4iKTsKPiArCQlzaWk4NjIwX21obF9kaXNjb25u ZWN0ZWQoY3R4KTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJaWYgKGRybV9kZXRlY3RfaGRt aV9tb25pdG9yKGN0eC0+ZWRpZCkpCj4gKwkJY3R4LT5zaW5rX3R5cGUgPSBTSU5LX0hETUk7Cj4g KwllbHNlCj4gKwkJY3R4LT5zaW5rX3R5cGUgPSBTSU5LX0RWSTsKPiArCj4gKwlkcm1fZWRpZF9n ZXRfbW9uaXRvcl9uYW1lKGN0eC0+ZWRpZCwgc2lua19uYW1lLCBBUlJBWV9TSVpFKHNpbmtfbmFt ZSkpOwo+ICsKPiArCWRldl9pbmZvKGRldiwgImRldGVjdGVkIHNpbmsodHlwZTogJXMpOiAlc1xu IiwKPiArCQlzaW5rX3N0cltjdHgtPnNpbmtfdHlwZV0sIHNpbmtfbmFtZSk7Cj4gKwlzaWk4NjIw X3NldF91cHN0cmVhbV9lZGlkKGN0eCk7Cj4gKwlzaWk4NjIwX2VuYWJsZV9ocGQoY3R4KTsKPiAr fQo+ICsKPiArc3RhdGljIHZvaWQgc2lpODYyMF9tcl94ZGV2Y2FwKHN0cnVjdCBzaWk4NjIwICpj dHgpCj4gK3sKPiArCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfRURJRF9GSUZPX1JEX0RBVEEs IGN0eC0+eGRldmNhcCwKPiArCQkJIE1ITF9YRENfU0laRSk7Cj4gKwo+ICsJc2lpODYyMF9tdF93 cml0ZV9zdGF0KGN0eCwgTUhMX1hEU19SRUcoQ1VSUl9FQ0JVU19NT0RFKSwKPiArCQkJICAgICAg TUhMX1hEU19FQ0JVU19TIHwgTUhMX1hEU19TTE9UX01PREVfOEJJVCk7Cj4gKwlzaWk4NjIwX210 X3JhcChjdHgsIE1ITF9SQVBfQ0JVU19NT0RFX1VQKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQg c2lpODYyMF9tdF9yZWFkX2RldmNhcF9yZWN2KHN0cnVjdCBzaWk4NjIwICpjdHgsCj4gKwkJCQkJ c3RydWN0IHNpaTg2MjBfbXRfbXNnICptc2cpCj4gK3sKPiArCXU4IGN0cmwgPSBCSVRfRURJRF9D VFJMX0RFVkNBUF9TRUxFQ1RfREVWQ0FQCj4gKwkJfCBCSVRfRURJRF9DVFJMX0VESURfRklGT19B RERSX0FVVE8KPiArCQl8IEJJVF9FRElEX0NUUkxfRURJRF9NT0RFX0VOOwo+ICsKPiArCWlmICht c2ctPnJlZ1swXSA9PSBNSExfUkVBRF9YREVWQ0FQKQo+ICsJCWN0cmwgfD0gQklUX0VESURfQ1RS TF9YREVWQ0FQX0VOOwo+ICsKPiArCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKPiArCQlSRUdfSU5U UjlfTUFTSywgQklUX0lOVFI5X0RFVkNBUF9ET05FIHwgQklUX0lOVFI5X0VESURfRE9ORQo+ICsJ CQl8IEJJVF9JTlRSOV9FRElEX0VSUk9SLAo+ICsJCVJFR19FRElEX0NUUkwsIGN0cmwsCj4gKwkJ UkVHX0VESURfRklGT19BRERSLCAwCj4gKwkpOwo+ICsKPiArCWlmIChtc2ctPnJlZ1swXSA9PSBN SExfUkVBRF9YREVWQ0FQKQo+ICsJCXNpaTg2MjBfbXJfeGRldmNhcChjdHgpOwo+ICsJZWxzZQo+ ICsJCXNpaTg2MjBfbXJfZGV2Y2FwKGN0eCk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHNpaTg2 MjBfbXRfcmVhZF9kZXZjYXAoc3RydWN0IHNpaTg2MjAgKmN0eCwgYm9vbCB4ZGV2Y2FwKQo+ICt7 Cj4gKwlzdHJ1Y3Qgc2lpODYyMF9tdF9tc2cgKm1zZyA9IHNpaTg2MjBfbXRfbXNnX25ldyhjdHgp Owo+ICsKPiArCWlmICghbXNnKQo+ICsJCXJldHVybjsKPiArCj4gKwltc2ctPnJlZ1swXSA9IHhk ZXZjYXAgPyBNSExfUkVBRF9YREVWQ0FQIDogTUhMX1JFQURfREVWQ0FQOwo+ICsJbXNnLT5zZW5k ID0gc2lpODYyMF9tdF9yZWFkX2RldmNhcF9zZW5kOwo+ICsJbXNnLT5yZWN2ID0gc2lpODYyMF9t dF9yZWFkX2RldmNhcF9yZWN2Owo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX2ZldGNo X2VkaWQoc3RydWN0IHNpaTg2MjAgKmN0eCkKPiArewo+ICsJdTggbG1fZGRjLCBkZGNfY21kLCBp bnQzLCBjYnVzOwo+ICsJaW50IGZldGNoZWQsIGk7Cj4gKwlpbnQgZWRpZF9sZW4gPSBFRElEX0xF TkdUSDsKPiArCXU4ICplZGlkOwo+ICsKPiArCXNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfQ0JVU19T VEFUVVMpOwo+ICsJbG1fZGRjID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19MTV9EREMpOwo+ICsJ ZGRjX2NtZCA9IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfRERDX0NNRCk7Cj4gKwo+ICsJc2lpODYy MF93cml0ZV9zZXEoY3R4LAo+ICsJCVJFR19JTlRSOV9NQVNLLCAwLAo+ICsJCVJFR19FRElEX0NU UkwsIEJJVF9FRElEX0NUUkxfRURJRF9GSUZPX0FERFJfQVVUTywKPiArCQlSRUdfSERDUDJYX1BP TExfQ1MsIDB4NzEsCj4gKwkJUkVHX0hEQ1AyWF9DVFJMXzAsIEJJVF9IRENQMlhfQ1RSTF8wX0hE Q1AyWF9IRENQVFgsCj4gKwkJUkVHX0xNX0REQywgbG1fZGRjIHwgQklUX0xNX0REQ19TV19UUElf RU5fRElTQUJMRUQsCj4gKwkpOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCAyNTY7ICsraSkgewo+ ICsJCXU4IGRkY19zdGF0ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19ERENfU1RBVFVTKTsKPiAr Cj4gKwkJaWYgKCEoZGRjX3N0YXQgJiBCSVRfRERDX1NUQVRVU19ERENfSTJDX0lOX1BST0cpKQo+ ICsJCQlicmVhazsKPiArCQlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0REQ19TVEFUVVMsCj4gKwkJ CSAgICAgICBCSVRfRERDX1NUQVRVU19ERENfRklGT19FTVBUWSk7Cj4gKwl9Cj4gKwo+ICsJc2lp ODYyMF93cml0ZShjdHgsIFJFR19ERENfQUREUiwgMHg1MCA8PCAxKTsKPiArCj4gKwllZGlkID0g a21hbGxvYyhFRElEX0xFTkdUSCwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIWVkaWQpIHsKPiArCQlj dHgtPmVycm9yID0gLUVOT01FTTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsjZGVmaW5lIEZF VENIX1NJWkUgMTYKPiArCWZvciAoZmV0Y2hlZCA9IDA7IGZldGNoZWQgPCBlZGlkX2xlbjsgZmV0 Y2hlZCArPSBGRVRDSF9TSVpFKSB7Cj4gKwkJc2lpODYyMF9yZWFkYihjdHgsIFJFR19ERENfU1RB VFVTKTsKPiArCQlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCj4gKwkJCVJFR19ERENfQ01ELCBkZGNf Y21kIHwgVkFMX0REQ19DTURfRERDX0NNRF9BQk9SVCwKPiArCQkJUkVHX0REQ19DTUQsIGRkY19j bWQgfCBWQUxfRERDX0NNRF9ERENfQ01EX0NMRUFSX0ZJRk8sCj4gKwkJCVJFR19ERENfU1RBVFVT LCBCSVRfRERDX1NUQVRVU19ERENfRklGT19FTVBUWQo+ICsJCSk7Cj4gKwkJc2lpODYyMF93cml0 ZV9zZXEoY3R4LAo+ICsJCQlSRUdfRERDX1NFR00sIGZldGNoZWQgPj4gOCwKPiArCQkJUkVHX0RE Q19PRkZTRVQsIGZldGNoZWQgJiAweGZmLAo+ICsJCQlSRUdfRERDX0RJTl9DTlQxLCBGRVRDSF9T SVpFLAo+ICsJCQlSRUdfRERDX0RJTl9DTlQyLCAwLAo+ICsJCQlSRUdfRERDX0NNRCwgZGRjX2Nt ZCB8IFZBTF9ERENfQ01EX0VOSF9ERENfUkVBRF9OT19BQ0sKPiArCQkpOwo+ICsKPiArCQlkbyB7 Cj4gKwkJCWludDMgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0lOVFIzKTsKPiArCQkJY2J1cyA9 IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfQ0JVU19TVEFUVVMpOwo+ICsKPiArCQkJaWYgKGludDMg JiBCSVRfRERDX0NNRF9ET05FKQo+ICsJCQkJYnJlYWs7Cj4gKwo+ICsJCQlpZiAoIShjYnVzICYg QklUX0NCVVNfU1RBVFVTX0NCVVNfQ09OTkVDVEVEKSkgewo+ICsJCQkJa2ZyZWUoZWRpZCk7Cj4g KwkJCQllZGlkID0gTlVMTDsKPiArCQkJCWdvdG8gZW5kOwo+ICsJCQl9Cj4gKwkJfSB3aGlsZSAo MSk7Cj4gKwo+ICsJCXNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfRERDX1NUQVRVUyk7Cj4gKwkJd2hp bGUgKHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfRERDX0RPVVRfQ05UKSA8IEZFVENIX1NJWkUpCj4g KwkJCXVzbGVlcF9yYW5nZSgxMCwgMjApOwo+ICsKPiArCQlzaWk4NjIwX3JlYWRfYnVmKGN0eCwg UkVHX0REQ19EQVRBLCBlZGlkICsgZmV0Y2hlZCwgRkVUQ0hfU0laRSk7Cj4gKwkJaWYgKGZldGNo ZWQgKyBGRVRDSF9TSVpFID09IEVESURfTEVOR1RIKSB7Cj4gKwkJCXU4IGV4dCA9ICgoc3RydWN0 IGVkaWQgKillZGlkKS0+ZXh0ZW5zaW9uczsKPiArCj4gKwkJCWlmIChleHQpIHsKPiArCQkJCXU4 ICpuZXdfZWRpZDsKPiArCj4gKwkJCQllZGlkX2xlbiArPSBleHQgKiBFRElEX0xFTkdUSDsKPiAr CQkJCW5ld19lZGlkID0ga3JlYWxsb2MoZWRpZCwgZWRpZF9sZW4sIEdGUF9LRVJORUwpOwo+ICsJ CQkJaWYgKCFuZXdfZWRpZCkgewo+ICsJCQkJCWtmcmVlKGVkaWQpOwo+ICsJCQkJCWN0eC0+ZXJy b3IgPSAtRU5PTUVNOwo+ICsJCQkJCXJldHVybjsKPiArCQkJCX0KPiArCQkJCWVkaWQgPSBuZXdf ZWRpZDsKPiArCQkJfQo+ICsJCX0KPiArCj4gKwkJaWYgKGZldGNoZWQgKyBGRVRDSF9TSVpFID09 IGVkaWRfbGVuKQo+ICsJCQlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0lOVFIzLCBpbnQzKTsKPiAr CX0KPiArCj4gKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0xNX0REQywgbG1fZGRjKTsKPiArCj4g K2VuZDoKPiArCWtmcmVlKGN0eC0+ZWRpZCk7Cj4gKwljdHgtPmVkaWQgPSAoc3RydWN0IGVkaWQg KillZGlkOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX3NldF91cHN0cmVhbV9lZGlk KHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gK3sKPiArCXNpaTg2MjBfc2V0Yml0cyhjdHgsIFJFR19E UEQsIEJJVF9EUERfUEROUlgxMiB8IEJJVF9EUERfUERJRENLX04KPiArCQkJfCBCSVRfRFBEX1BE X01ITF9DTEtfTiwgMHhmZik7Cj4gKwo+ICsJc2lpODYyMF93cml0ZV9zZXFfc3RhdGljKGN0eCwK PiArCQlSRUdfUlhfSERNSV9DVFJMMywgMHgwMCwKPiArCQlSRUdfUEtUX0ZJTFRFUl8wLCAweEZG LAo+ICsJCVJFR19QS1RfRklMVEVSXzEsIDB4RkYsCj4gKwkJUkVHX0FMSUNFMF9CV19JMkMsIDB4 MDYKPiArCSk7Cj4gKwo+ICsJc2lpODYyMF9zZXRiaXRzKGN0eCwgUkVHX1JYX0hETUlfQ0xSX0JV RkZFUiwKPiArCQkJQklUX1JYX0hETUlfQ0xSX0JVRkZFUl9WU0lfQ0xSX0VOLCAweGZmKTsKPiAr Cj4gKwlzaWk4NjIwX3dyaXRlX3NlcV9zdGF0aWMoY3R4LAo+ICsJCVJFR19FRElEX0NUUkwsIEJJ VF9FRElEX0NUUkxfRURJRF9GSUZPX0FERFJfQVVUTwo+ICsJCQl8IEJJVF9FRElEX0NUUkxfRURJ RF9NT0RFX0VOLAo+ICsJCVJFR19FRElEX0ZJRk9fQUREUiwgMCwKPiArCSk7Cj4gKwo+ICsJc2lp ODYyMF93cml0ZV9idWYoY3R4LCBSRUdfRURJRF9GSUZPX1dSX0RBVEEsICh1OCAqKWN0eC0+ZWRp ZCwKPiArCQkJKGN0eC0+ZWRpZC0+ZXh0ZW5zaW9ucyArIDEpICogRURJRF9MRU5HVEgpOwo+ICsK PiArCXNpaTg2MjBfd3JpdGVfc2VxX3N0YXRpYyhjdHgsCj4gKwkJUkVHX0VESURfQ1RSTCwgQklU X0VESURfQ1RSTF9FRElEX1BSSU1FX1ZBTElECj4gKwkJCXwgQklUX0VESURfQ1RSTF9FRElEX0ZJ Rk9fQUREUl9BVVRPCj4gKwkJCXwgQklUX0VESURfQ1RSTF9FRElEX01PREVfRU4sCj4gKwkJUkVH X0lOVFI1X01BU0ssIEJJVF9JTlRSX1NDRFRfQ0hBTkdFLAo+ICsJCVJFR19JTlRSOV9NQVNLLCAw Cj4gKwkpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX3h0YWxfc2V0X3JhdGUoc3Ry dWN0IHNpaTg2MjAgKmN0eCkKPiArewo+ICsJc3RhdGljIGNvbnN0IHN0cnVjdCB7Cj4gKwkJdW5z aWduZWQgaW50IHJhdGU7Cj4gKwkJdTggZGl2Owo+ICsJCXU4IHRwMTsKPiArCX0gcmF0ZXNbXSA9 IHsKPiArCQl7IDE5MjAwLCAweDA0LCAweDUzIH0sCj4gKwkJeyAyMDAwMCwgMHgwNCwgMHg2MiB9 LAo+ICsJCXsgMjQwMDAsIDB4MDUsIDB4NzUgfSwKPiArCQl7IDMwMDAwLCAweDA2LCAweDkyIH0s Cj4gKwkJeyAzODQwMCwgMHgwYywgMHhiYyB9LAo+ICsJfTsKPiArCXVuc2lnbmVkIGxvbmcgcmF0 ZSA9IGNsa19nZXRfcmF0ZShjdHgtPmNsa194dGFsKSAvIDEwMDA7Cj4gKwlpbnQgaTsKPiArCj4g Kwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShyYXRlcykgLSAxOyArK2kpCj4gKwkJaWYgKHJh dGUgPD0gcmF0ZXNbaV0ucmF0ZSkKPiArCQkJYnJlYWs7Cj4gKwo+ICsJaWYgKHJhdGUgIT0gcmF0 ZXNbaV0ucmF0ZSkKPiArCQlkZXZfZXJyKGN0eC0+ZGV2LCAieHRhbCBjbG9jayByYXRlKCVsdWtI eikgbm90IHN1cHBvcnRlZCwgc2V0dGluZyBNSEwgZm9yICV1a0h6LlxuIiwKPiArCQkJcmF0ZSwg cmF0ZXNbaV0ucmF0ZSk7Cj4gKwo+ICsJc2lpODYyMF93cml0ZShjdHgsIFJFR19ESVZfQ1RMX01B SU4sIHJhdGVzW2ldLmRpdik7Cj4gKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0hEQ1AyWF9UUDEs IHJhdGVzW2ldLnRwMSk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgc2lpODYyMF9od19vbihzdHJ1 Y3Qgc2lpODYyMCAqY3R4KQo+ICt7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXJldCA9IHJlZ3VsYXRv cl9idWxrX2VuYWJsZShBUlJBWV9TSVpFKGN0eC0+c3VwcGxpZXMpLCBjdHgtPnN1cHBsaWVzKTsK PiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCXVzbGVlcF9yYW5nZSgxMDAwMCwgMjAw MDApOwo+ICsJcmV0dXJuIGNsa19wcmVwYXJlX2VuYWJsZShjdHgtPmNsa194dGFsKTsKPiArfQo+ ICsKPiArc3RhdGljIGludCBzaWk4NjIwX2h3X29mZihzdHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ICt7 Cj4gKwljbGtfZGlzYWJsZV91bnByZXBhcmUoY3R4LT5jbGtfeHRhbCk7Cj4gKwlncGlvZF9zZXRf dmFsdWUoY3R4LT5ncGlvX3Jlc2V0LCAxKTsKPiArCXJldHVybiByZWd1bGF0b3JfYnVsa19kaXNh YmxlKEFSUkFZX1NJWkUoY3R4LT5zdXBwbGllcyksIGN0eC0+c3VwcGxpZXMpOwo+ICt9Cj4gKwo+ ICtzdGF0aWMgdm9pZCBzaWk4NjIwX2h3X3Jlc2V0KHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gK3sK PiArCXVzbGVlcF9yYW5nZSgxMDAwMCwgMjAwMDApOwo+ICsJZ3Bpb2Rfc2V0X3ZhbHVlKGN0eC0+ Z3Bpb19yZXNldCwgMCk7Cj4gKwl1c2xlZXBfcmFuZ2UoNTAwMCwgMjAwMDApOwo+ICsJZ3Bpb2Rf c2V0X3ZhbHVlKGN0eC0+Z3Bpb19yZXNldCwgMSk7Cj4gKwl1c2xlZXBfcmFuZ2UoMTAwMDAsIDIw MDAwKTsKPiArCWdwaW9kX3NldF92YWx1ZShjdHgtPmdwaW9fcmVzZXQsIDApOwo+ICsJbXNsZWVw KDMwMCk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfY2J1c19yZXNldChzdHJ1Y3Qg c2lpODYyMCAqY3R4KQo+ICt7Cj4gKwlzaWk4NjIwX3dyaXRlX3NlcV9zdGF0aWMoY3R4LAo+ICsJ CVJFR19QV0RfU1JTVCwgQklUX1BXRF9TUlNUX0NCVVNfUlNUCj4gKwkJCXwgQklUX1BXRF9TUlNU X0NCVVNfUlNUX1NXX0VOLAo+ICsJCVJFR19QV0RfU1JTVCwgQklUX1BXRF9TUlNUX0NCVVNfUlNU X1NXX0VOCj4gKwkpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX3NldF9hdXRvX3pv bmUoc3RydWN0IHNpaTg2MjAgKmN0eCkKPiArewo+ICsJaWYgKGN0eC0+bW9kZSAhPSBDTV9NSEwx KSB7Cj4gKwkJc2lpODYyMF93cml0ZV9zZXFfc3RhdGljKGN0eCwKPiArCQkJUkVHX1RYX1pPTkVf Q1RMMSwgMHgwLAo+ICsJCQlSRUdfTUhMX1BMTF9DVEwwLCBWQUxfTUhMX1BMTF9DVEwwX0hETUlf Q0xLX1JBVElPXzFYCj4gKwkJCQl8IEJJVF9NSExfUExMX0NUTDBfQ1JZU1RBTF9DTEtfU0VMCj4g KwkJCQl8IEJJVF9NSExfUExMX0NUTDBfWk9ORV9NQVNLX09FCj4gKwkJKTsKPiArCX0gZWxzZSB7 Cj4gKwkJc2lpODYyMF93cml0ZV9zZXFfc3RhdGljKGN0eCwKPiArCQkJUkVHX1RYX1pPTkVfQ1RM MSwgVkFMX1RYX1pPTkVfQ1RMMV9UWF9aT05FX0NUUkxfTU9ERSwKPiArCQkJUkVHX01ITF9QTExf Q1RMMCwgVkFMX01ITF9QTExfQ1RMMF9IRE1JX0NMS19SQVRJT18xWAo+ICsJCQkJfCBCSVRfTUhM X1BMTF9DVEwwX1pPTkVfTUFTS19PRQo+ICsJCSk7Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2 b2lkIHNpaTg2MjBfc3RvcF92aWRlbyhzdHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ICt7Cj4gKwl1OCB1 bmluaXRpYWxpemVkX3Zhcih2YWwpOwo+ICsKPiArCXNpaTg2MjBfd3JpdGVfc2VxX3N0YXRpYyhj dHgsCj4gKwkJUkVHX1RQSV9JTlRSX0VOLCAwLAo+ICsJCVJFR19IRENQMlhfSU5UUjBfTUFTSywg MCwKPiArCQlSRUdfVFBJX0NPUFBfREFUQTIsIDAsCj4gKwkJUkVHX1RQSV9JTlRSX1NUMCwgfjAs Cj4gKwkpOwo+ICsKPiArCXN3aXRjaCAoY3R4LT5zaW5rX3R5cGUpIHsKPiArCWNhc2UgU0lOS19E Vkk6Cj4gKwkJdmFsID0gQklUX1RQSV9TQ19SRUdfVE1EU19PRV9QT1dFUl9ET1dOCj4gKwkJCXwg QklUX1RQSV9TQ19UUElfQVZfTVVURTsKPiArCQlicmVhazsKPiArCWNhc2UgU0lOS19IRE1JOgo+ ICsJCXZhbCA9IEJJVF9UUElfU0NfUkVHX1RNRFNfT0VfUE9XRVJfRE9XTgo+ICsJCQl8IEJJVF9U UElfU0NfVFBJX0FWX01VVEUKPiArCQkJfCBCSVRfVFBJX1NDX1RQSV9PVVRQVVRfTU9ERV8wX0hE TUk7Cj4gKwkJYnJlYWs7Cj4gKwlkZWZhdWx0Ogo+ICsJCXJldHVybjsKPiArCX0KPiArCj4gKwlz aWk4NjIwX3dyaXRlKGN0eCwgUkVHX1RQSV9TQywgdmFsKTsKPiArfQo+ICsKPiArc3RhdGljIHZv aWQgc2lpODYyMF9zdGFydF9oZG1pKHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gK3sKPiArCXNpaTg2 MjBfd3JpdGVfc2VxX3N0YXRpYyhjdHgsCj4gKwkJUkVHX1JYX0hETUlfQ1RSTDIsIFZBTF9SWF9I RE1JX0NUUkwyX0RFRlZBTAo+ICsJCQl8IEJJVF9SWF9IRE1JX0NUUkwyX1VTRV9BVl9NVVRFLAo+ ICsJCVJFR19WSURfT1ZSUkQsIEJJVF9WSURfT1ZSUkRfUFBfQVVUT19ESVNBQkxFCj4gKwkJCXwg QklUX1ZJRF9PVlJSRF9NMTA4MFBfT1ZSUkQsCj4gKwkJUkVHX1ZJRF9NT0RFLCAwLAo+ICsJCVJF R19NSExfVE9QX0NUTCwgMHgxLAo+ICsJCVJFR19NSExUWF9DVEw2LCAweGEwLAo+ICsJCVJFR19U UElfSU5QVVQsIFZBTF9UUElfRk9STUFUKFJHQiwgRlVMTCksCj4gKwkJUkVHX1RQSV9PVVRQVVQs IFZBTF9UUElfRk9STUFUKFJHQiwgRlVMTCksCj4gKwkpOwo+ICsKPiArCXNpaTg2MjBfbXRfd3Jp dGVfc3RhdChjdHgsIE1ITF9EU1RfUkVHKExJTktfTU9ERSksCj4gKwkJCU1ITF9EU1RfTE1fQ0xL X01PREVfTk9STUFMIHwgTUhMX0RTVF9MTV9QQVRIX0VOQUJMRUQpOwo+ICsKPiArCXNpaTg2MjBf c2V0X2F1dG9fem9uZShjdHgpOwo+ICsKPiArCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfVFBJX1ND LCBCSVRfVFBJX1NDX1RQSV9PVVRQVVRfTU9ERV8wX0hETUkpOwo+ICsKPiArCXNpaTg2MjBfd3Jp dGVfYnVmKGN0eCwgUkVHX1RQSV9BVklfQ0hTVU0sIGN0eC0+YXZpZiwKPiArCQkJICBBUlJBWV9T SVpFKGN0eC0+YXZpZikpOwo+ICsKPiArCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfUEtUX0ZJTFRF Ul8wLCAweGExLCAweDIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX3N0YXJ0X3Zp ZGVvKHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gK3sKPiArCWlmIChjdHgtPm1vZGUgPCBDTV9NSEwz KQo+ICsJCXNpaTg2MjBfc3RvcF92aWRlbyhjdHgpOwo+ICsKPiArCXN3aXRjaCAoY3R4LT5zaW5r X3R5cGUpIHsKPiArCWNhc2UgU0lOS19IRE1JOgo+ICsJCXNpaTg2MjBfc3RhcnRfaGRtaShjdHgp Owo+ICsJCWJyZWFrOwo+ICsJY2FzZSBTSU5LX0RWSToKPiArCWRlZmF1bHQ6Cj4gKwkJYnJlYWs7 Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfZGlzYWJsZV9ocGQoc3RydWN0 IHNpaTg2MjAgKmN0eCkKPiArewo+ICsJc2lpODYyMF9zZXRiaXRzKGN0eCwgUkVHX0VESURfQ1RS TCwgQklUX0VESURfQ1RSTF9FRElEX1BSSU1FX1ZBTElELCAwKTsKPiArCXNpaTg2MjBfd3JpdGVf c2VxX3N0YXRpYyhjdHgsCj4gKwkJUkVHX0hQRF9DVFJMLCBCSVRfSFBEX0NUUkxfSFBEX09VVF9P VlJfRU4sCj4gKwkJUkVHX0lOVFI4X01BU0ssIDAKPiArCSk7Cj4gK30KPiArCj4gK3N0YXRpYyB2 b2lkIHNpaTg2MjBfZW5hYmxlX2hwZChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ICt7Cj4gKwlzaWk4 NjIwX3NldGJpdHMoY3R4LCBSRUdfVE1EU19DU1RBVF9QMywKPiArCQkJQklUX1RNRFNfQ1NUQVRf UDNfU0NEVF9DTFJfQVZJX0RJUwo+ICsJCQl8IEJJVF9UTURTX0NTVEFUX1AzX0NMUl9BVkksIH4w KTsKPiArCXNpaTg2MjBfd3JpdGVfc2VxX3N0YXRpYyhjdHgsCj4gKwkJUkVHX0hQRF9DVFJMLCBC SVRfSFBEX0NUUkxfSFBEX09VVF9PVlJfRU4KPiArCQkJfCBCSVRfSFBEX0NUUkxfSFBEX0hJR0gs Cj4gKwkpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX2VuYWJsZV9nZW4yX3dyaXRl X2J1cnN0KHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gK3sKPiArCWlmIChjdHgtPmdlbjJfd3JpdGVf YnVyc3QpCj4gKwkJcmV0dXJuOwo+ICsKPiArCXNpaTg2MjBfd3JpdGVfc2VxX3N0YXRpYyhjdHgs Cj4gKwkJUkVHX01EVF9SQ1ZfVElNRU9VVCwgMTAwLAo+ICsJCVJFR19NRFRfUkNWX0NUUkwsIEJJ VF9NRFRfUkNWX0NUUkxfTURUX1JDVl9FTgo+ICsJKTsKPiArCWN0eC0+Z2VuMl93cml0ZV9idXJz dCA9IDE7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfZGlzYWJsZV9nZW4yX3dyaXRl X2J1cnN0KHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gK3sKPiArCWlmICghY3R4LT5nZW4yX3dyaXRl X2J1cnN0KQo+ICsJCXJldHVybjsKPiArCj4gKwlzaWk4NjIwX3dyaXRlX3NlcV9zdGF0aWMoY3R4 LAo+ICsJCVJFR19NRFRfWE1JVF9DVFJMLCAwLAo+ICsJCVJFR19NRFRfUkNWX0NUUkwsIDAKPiAr CSk7Cj4gKwljdHgtPmdlbjJfd3JpdGVfYnVyc3QgPSAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9p ZCBzaWk4NjIwX3N0YXJ0X2dlbjJfd3JpdGVfYnVyc3Qoc3RydWN0IHNpaTg2MjAgKmN0eCkKPiAr ewo+ICsJc2lpODYyMF93cml0ZV9zZXFfc3RhdGljKGN0eCwKPiArCQlSRUdfTURUX0lOVF8xX01B U0ssIEJJVF9NRFRfUkNWX1RJTUVPVVQKPiArCQkJfCBCSVRfTURUX1JDVl9TTV9BQk9SVF9QS1Rf UkNWRCB8IEJJVF9NRFRfUkNWX1NNX0VSUk9SCj4gKwkJCXwgQklUX01EVF9YTUlUX1RJTUVPVVQg fCBCSVRfTURUX1hNSVRfU01fQUJPUlRfUEtUX1JDVkQKPiArCQkJfCBCSVRfTURUX1hNSVRfU01f RVJST1IsCj4gKwkJUkVHX01EVF9JTlRfMF9NQVNLLCBCSVRfTURUX1hGSUZPX0VNUFRZCj4gKwkJ CXwgQklUX01EVF9JRExFX0FGVEVSX0hBV0JfRElTQUJMRQo+ICsJCQl8IEJJVF9NRFRfUkZJRk9f REFUQV9SRFkKPiArCSk7Cj4gKwlzaWk4NjIwX2VuYWJsZV9nZW4yX3dyaXRlX2J1cnN0KGN0eCk7 Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfbWhsX2Rpc2NvdmVyKHN0cnVjdCBzaWk4 NjIwICpjdHgpCj4gK3sKPiArCXNpaTg2MjBfd3JpdGVfc2VxX3N0YXRpYyhjdHgsCj4gKwkJUkVH X0RJU0NfQ1RSTDksIEJJVF9ESVNDX0NUUkw5X1dBS0VfRFJWRkxUCj4gKwkJCXwgQklUX0RJU0Nf Q1RSTDlfRElTQ19QVUxTRV9QUk9DRUVELAo+ICsJCVJFR19ESVNDX0NUUkw0LCBWQUxfRElTQ19D VFJMNChWQUxfUFVQXzVLLCBWQUxfUFVQXzIwSyksCj4gKwkJUkVHX0NCVVNfRElTQ19JTlRSMF9N QVNLLCBCSVRfTUhMM19FU1RfSU5UCj4gKwkJCXwgQklUX01ITF9FU1RfSU5UCj4gKwkJCXwgQklU X05PVF9NSExfRVNUX0lOVAo+ICsJCQl8IEJJVF9DQlVTX01ITDNfRElTQ09OX0lOVAo+ICsJCQl8 IEJJVF9DQlVTX01ITDEyX0RJU0NPTl9JTlQKPiArCQkJfCBCSVRfUkdORF9SRUFEWV9JTlQsCj4g KwkJUkVHX01ITF9QTExfQ1RMMCwgVkFMX01ITF9QTExfQ1RMMF9IRE1JX0NMS19SQVRJT18xWAo+ ICsJCQl8IEJJVF9NSExfUExMX0NUTDBfQ1JZU1RBTF9DTEtfU0VMCj4gKwkJCXwgQklUX01ITF9Q TExfQ1RMMF9aT05FX01BU0tfT0UsCj4gKwkJUkVHX01ITF9EUF9DVEwwLCBCSVRfTUhMX0RQX0NU TDBfRFBfT0UKPiArCQkJfCBCSVRfTUhMX0RQX0NUTDBfVFhfT0VfT1ZSLAo+ICsJCVJFR19NM19D VFJMLCBWQUxfTTNfQ1RSTF9NSEwzX1ZBTFVFLAo+ICsJCVJFR19NSExfRFBfQ1RMMSwgMHhBMiwK PiArCQlSRUdfTUhMX0RQX0NUTDIsIDB4MDMsCj4gKwkJUkVHX01ITF9EUF9DVEwzLCAweDM1LAo+ ICsJCVJFR19NSExfRFBfQ1RMNSwgMHgwMiwKPiArCQlSRUdfTUhMX0RQX0NUTDYsIDB4MDIsCj4g KwkJUkVHX01ITF9EUF9DVEw3LCAweDAzLAo+ICsJCVJFR19DT0NfQ1RMQywgMHhGRiwKPiArCQlS RUdfRFBELCBCSVRfRFBEX1BXUk9OX1BMTCB8IEJJVF9EUERfUEROVFgxMgo+ICsJCQl8IEJJVF9E UERfT1NDX0VOIHwgQklUX0RQRF9QV1JPTl9IU0lDLAo+ICsJCVJFR19DT0NfSU5UUl9NQVNLLCBC SVRfQ09DX1BMTF9MT0NLX1NUQVRVU19DSEFOR0UKPiArCQkJfCBCSVRfQ09DX0NBTElCUkFUSU9O X0RPTkUsCj4gKwkJUkVHX0NCVVNfSU5UXzFfTUFTSywgQklUX0NCVVNfTVNDX0FCT1JUX1JDVkQK PiArCQkJfCBCSVRfQ0JVU19DTURfQUJPUlQsCj4gKwkJUkVHX0NCVVNfSU5UXzBfTUFTSywgQklU X0NCVVNfTVNDX01UX0RPTkUKPiArCQkJfCBCSVRfQ0JVU19IUERfQ0hHCj4gKwkJCXwgQklUX0NC VVNfTVNDX01SX1dSSVRFX1NUQVQKPiArCQkJfCBCSVRfQ0JVU19NU0NfTVJfTVNDX01TRwo+ICsJ CQl8IEJJVF9DQlVTX01TQ19NUl9XUklURV9CVVJTVAo+ICsJCQl8IEJJVF9DQlVTX01TQ19NUl9T RVRfSU5UCj4gKwkJCXwgQklUX0NCVVNfTVNDX01UX0RPTkVfTkFDSwo+ICsJKTsKPiArfQo+ICsK PiArc3RhdGljIHZvaWQgc2lpODYyMF9wZWVyX3NwZWNpZmljX2luaXQoc3RydWN0IHNpaTg2MjAg KmN0eCkKPiArewo+ICsJaWYgKGN0eC0+bW9kZSA9PSBDTV9NSEwzKQo+ICsJCXNpaTg2MjBfd3Jp dGVfc2VxX3N0YXRpYyhjdHgsCj4gKwkJCVJFR19TWVNfQ1RSTDEsIEJJVF9TWVNfQ1RSTDFfQkxP Q0tfRERDX0JZX0hQRCwKPiArCQkJUkVHX0VNU0NJTlRSTUFTSzEsCj4gKwkJCQlCSVRfRU1TQ0lO VFIxX0VNU0NfVFJBSU5JTkdfQ09NTUFfRVJSCj4gKwkJKTsKPiArCWVsc2UKPiArCQlzaWk4NjIw X3dyaXRlX3NlcV9zdGF0aWMoY3R4LAo+ICsJCQlSRUdfSERDUDJYX0lOVFIwX01BU0ssIDB4MDAs Cj4gKwkJCVJFR19FTVNDSU5UUk1BU0sxLCAweDAwLAo+ICsJCQlSRUdfSERDUDJYX0lOVFIwLCAw eEZGLAo+ICsJCQlSRUdfSU5UUjEsIDB4RkYsCj4gKwkJCVJFR19TWVNfQ1RSTDEsIEJJVF9TWVNf Q1RSTDFfQkxPQ0tfRERDX0JZX0hQRAo+ICsJCQkJfCBCSVRfU1lTX0NUUkwxX1RYX0NUUkxfSERN SQo+ICsJCSk7Cj4gK30KPiArCj4gKyNkZWZpbmUgU0lJODYyMF9NSExfVkVSU0lPTgkJCTB4MzIK PiArI2RlZmluZSBTSUk4NjIwX1NDUkFUQ0hQQURfU0laRQkJCTE2Cj4gKyNkZWZpbmUgU0lJODYy MF9JTlRfU1RBVF9TSVpFCQkJMHgzMwo+ICsKPiArc3RhdGljIHZvaWQgc2lpODYyMF9zZXRfZGV2 X2NhcChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ICt7Cj4gKwlzdGF0aWMgY29uc3QgdTggZGV2Y2Fw W01ITF9EQ0FQX1NJWkVdID0gewo+ICsJCVtNSExfRENBUF9NSExfVkVSU0lPTl0gPSBTSUk4NjIw X01ITF9WRVJTSU9OLAo+ICsJCVtNSExfRENBUF9DQVRdID0gTUhMX0RDQVBfQ0FUX1NPVVJDRSB8 IE1ITF9EQ0FQX0NBVF9QT1dFUiwKPiArCQlbTUhMX0RDQVBfQURPUFRFUl9JRF9IXSA9IDB4MDEs Cj4gKwkJW01ITF9EQ0FQX0FET1BURVJfSURfTF0gPSAweDQxLAo+ICsJCVtNSExfRENBUF9WSURf TElOS19NT0RFXSA9IE1ITF9EQ0FQX1ZJRF9MSU5LX1JHQjQ0NAo+ICsJCQl8IE1ITF9EQ0FQX1ZJ RF9MSU5LX1BQSVhFTAo+ICsJCQl8IE1ITF9EQ0FQX1ZJRF9MSU5LXzE2QlBQLAo+ICsJCVtNSExf RENBUF9BVURfTElOS19NT0RFXSA9IE1ITF9EQ0FQX0FVRF9MSU5LXzJDSCwKPiArCQlbTUhMX0RD QVBfVklERU9fVFlQRV0gPSBNSExfRENBUF9WVF9HUkFQSElDUywKPiArCQlbTUhMX0RDQVBfTE9H X0RFVl9NQVBdID0gTUhMX0RDQVBfTERfR1VJLAo+ICsJCVtNSExfRENBUF9CQU5EV0lEVEhdID0g MHgwZiwKPiArCQlbTUhMX0RDQVBfRkVBVFVSRV9GTEFHXSA9IE1ITF9EQ0FQX0ZFQVRVUkVfUkNQ X1NVUFBPUlQKPiArCQkJfCBNSExfRENBUF9GRUFUVVJFX1JBUF9TVVBQT1JUCj4gKwkJCXwgTUhM X0RDQVBfRkVBVFVSRV9TUF9TVVBQT1JULAo+ICsJCVtNSExfRENBUF9TQ1JBVENIUEFEX1NJWkVd ID0gU0lJODYyMF9TQ1JBVENIUEFEX1NJWkUsCj4gKwkJW01ITF9EQ0FQX0lOVF9TVEFUX1NJWkVd ID0gU0lJODYyMF9JTlRfU1RBVF9TSVpFLAo+ICsJfTsKPiArCXN0YXRpYyBjb25zdCB1OCB4ZGNh cFtNSExfWERDX1NJWkVdID0gewo+ICsJCVtNSExfWERDX0VDQlVTX1NQRUVEU10gPSBNSExfWERD X0VDQlVTX1NfMDc1Cj4gKwkJCXwgTUhMX1hEQ19FQ0JVU19TXzhCSVQsCj4gKwkJW01ITF9YRENf VE1EU19TUEVFRFNdID0gTUhMX1hEQ19UTURTXzE1MAo+ICsJCQl8IE1ITF9YRENfVE1EU18zMDAg fCBNSExfWERDX1RNRFNfNjAwLAo+ICsJCVtNSExfWERDX0VDQlVTX1JPTEVTXSA9IE1ITF9YRENf REVWX0hPU1QsCj4gKwkJW01ITF9YRENfTE9HX0RFVl9NQVBYXSA9IE1ITF9YRENfTERfUEhPTkUs Cj4gKwl9Owo+ICsKPiArCXNpaTg2MjBfd3JpdGVfYnVmKGN0eCwgUkVHX01ITF9ERVZDQVBfMCwg ZGV2Y2FwLCBBUlJBWV9TSVpFKGRldmNhcCkpOwo+ICsJc2lpODYyMF93cml0ZV9idWYoY3R4LCBS RUdfTUhMX0VYVERFVkNBUF8wLCB4ZGNhcCwgQVJSQVlfU0laRSh4ZGNhcCkpOwo+ICt9Cj4gKwo+ ICtzdGF0aWMgdm9pZCBzaWk4NjIwX21obF9pbml0KHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gK3sK PiArCXNpaTg2MjBfd3JpdGVfc2VxX3N0YXRpYyhjdHgsCj4gKwkJUkVHX0RJU0NfQ1RSTDQsIFZB TF9ESVNDX0NUUkw0KFZBTF9QVVBfT0ZGLCBWQUxfUFVQXzIwSyksCj4gKwkJUkVHX0NCVVNfTVND X0NPTVBBVF9DVFJMLAo+ICsJCQlCSVRfQ0JVU19NU0NfQ09NUEFUX0NUUkxfWERFVkNBUF9FTiwK PiArCSk7Cj4gKwo+ICsJc2lpODYyMF9wZWVyX3NwZWNpZmljX2luaXQoY3R4KTsKPiArCj4gKwlz aWk4NjIwX2Rpc2FibGVfaHBkKGN0eCk7Cj4gKwo+ICsJc2lpODYyMF93cml0ZV9zZXFfc3RhdGlj KGN0eCwKPiArCQlSRUdfRURJRF9DVFJMLCBCSVRfRURJRF9DVFJMX0VESURfRklGT19BRERSX0FV VE8sCj4gKwkJUkVHX0RJU0NfQ1RSTDksIEJJVF9ESVNDX0NUUkw5X1dBS0VfRFJWRkxUCj4gKwkJ CXwgQklUX0RJU0NfQ1RSTDlfV0FLRV9QVUxTRV9CWVBBU1MsCj4gKwkJUkVHX1RNRFMwX0NDVFJM MSwgMHg5MCwKPiArCQlSRUdfVE1EU19DTEtfRU4sIDB4MDEsCj4gKwkJUkVHX1RNRFNfQ0hfRU4s IDB4MTEsCj4gKwkJUkVHX0JHUl9CSUFTLCAweDg3LAo+ICsJCVJFR19BTElDRTBfWk9ORV9DVFJM LCAweEU4LAo+ICsJCVJFR19BTElDRTBfTU9ERV9DVFJMLCAweDA0LAo+ICsJKTsKPiArCXNpaTg2 MjBfc2V0Yml0cyhjdHgsIFJFR19MTV9EREMsIEJJVF9MTV9ERENfU1dfVFBJX0VOX0RJU0FCTEVE LCAwKTsKPiArCXNpaTg2MjBfd3JpdGVfc2VxX3N0YXRpYyhjdHgsCj4gKwkJUkVHX1RQSV9IV19P UFQzLCAweDc2LAo+ICsJCVJFR19UTURTX0NDVFJMLCBCSVRfVE1EU19DQ1RSTF9UTURTX09FLAo+ ICsJCVJFR19UUElfRFREX0IyLCA3OSwKPiArCSk7Cj4gKwlzaWk4NjIwX3NldF9kZXZfY2FwKGN0 eCk7Cj4gKwlzaWk4NjIwX3dyaXRlX3NlcV9zdGF0aWMoY3R4LAo+ICsJCVJFR19NRFRfWE1JVF9U SU1FT1VULCAxMDAsCj4gKwkJUkVHX01EVF9YTUlUX0NUUkwsIDB4MDMsCj4gKwkJUkVHX01EVF9Y RklGT19TVEFULCAweDAwLAo+ICsJCVJFR19NRFRfUkNWX1RJTUVPVVQsIDEwMCwKPiArCQlSRUdf Q0JVU19MSU5LX0NUUkxfOCwgMHgxRCwKPiArCSk7Cj4gKwo+ICsJc2lpODYyMF9zdGFydF9nZW4y X3dyaXRlX2J1cnN0KGN0eCk7Cj4gKwlzaWk4NjIwX3dyaXRlX3NlcV9zdGF0aWMoY3R4LAo+ICsJ CVJFR19CSVNUX0NUUkwsIDB4MDAsCj4gKwkJUkVHX0NPQ19DVEwxLCAweDEwLAo+ICsJCVJFR19D T0NfQ1RMMiwgMHgxOCwKPiArCQlSRUdfQ09DX0NUTEYsIDB4MDcsCj4gKwkJUkVHX0NPQ19DVEwx MSwgMHhGOCwKPiArCQlSRUdfQ09DX0NUTDE3LCAweDYxLAo+ICsJCVJFR19DT0NfQ1RMMTgsIDB4 NDYsCj4gKwkJUkVHX0NPQ19DVEwxOSwgMHgxNSwKPiArCQlSRUdfQ09DX0NUTDFBLCAweDAxLAo+ ICsJCVJFR19NSExfQ09DX0NUTDMsIEJJVF9NSExfQ09DX0NUTDNfQ09DX0FFQ0hPX0VOLAo+ICsJ CVJFR19NSExfQ09DX0NUTDQsIDB4MkQsCj4gKwkJUkVHX01ITF9DT0NfQ1RMNSwgMHhGOSwKPiAr CQlSRUdfTVNDX0hFQVJUQkVBVF9DVFJMLCAweDI3LAo+ICsJKTsKPiArCXNpaTg2MjBfZGlzYWJs ZV9nZW4yX3dyaXRlX2J1cnN0KGN0eCk7Cj4gKwo+ICsJLyogY3VycmVudGx5IE1ITDMgaXMgbm90 IHN1cHBvcnRlZCwgc28gd2UgZm9yY2UgdmVyc2lvbiB0byAwICovCj4gKwlzaWk4NjIwX210X3dy aXRlX3N0YXQoY3R4LCBNSExfRFNUX1JFRyhWRVJTSU9OKSwgMCk7Cj4gKwlzaWk4NjIwX210X3dy aXRlX3N0YXQoY3R4LCBNSExfRFNUX1JFRyhDT05ORUNURURfUkRZKSwKPiArCQkJICAgICAgTUhM X0RTVF9DT05OX0RDQVBfUkRZIHwgTUhMX0RTVF9DT05OX1hERVZDQVBQX1NVUFAKPiArCQkJICAg ICAgfCBNSExfRFNUX0NPTk5fUE9XX1NUQVQpOwo+ICsJc2lpODYyMF9tdF9zZXRfaW50KGN0eCwg TUhMX0lOVF9SRUcoUkNIQU5HRSksIE1ITF9JTlRfUkNfRENBUF9DSEcpOwo+ICt9Cj4gKwo+ICtz dGF0aWMgdm9pZCBzaWk4NjIwX3NldF9tb2RlKHN0cnVjdCBzaWk4NjIwICpjdHgsIGVudW0gc2lp ODYyMF9tb2RlIG1vZGUpCj4gK3sKPiArCWlmIChjdHgtPm1vZGUgPT0gbW9kZSkKPiArCQlyZXR1 cm47Cj4gKwo+ICsJY3R4LT5tb2RlID0gbW9kZTsKPiArCj4gKwlzd2l0Y2ggKG1vZGUpIHsKPiAr CWNhc2UgQ01fTUhMMToKPiArCQlzaWk4NjIwX3dyaXRlX3NlcV9zdGF0aWMoY3R4LAo+ICsJCQlS RUdfQ0JVU19NU0NfQ09NUEFUX0NUUkwsIDB4MDIsCj4gKwkJCVJFR19NM19DVFJMLCBWQUxfTTNf Q1RSTF9NSEwxXzJfVkFMVUUsCj4gKwkJCVJFR19EUEQsIEJJVF9EUERfUFdST05fUExMIHwgQklU X0RQRF9QRE5UWDEyCj4gKwkJCQl8IEJJVF9EUERfT1NDX0VOLAo+ICsJCQlSRUdfQ09DX0lOVFJf TUFTSywgMAo+ICsJCSk7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIENNX01ITDM6Cj4gKwkJc2lpODYy MF93cml0ZV9zZXFfc3RhdGljKGN0eCwKPiArCQkJUkVHX00zX0NUUkwsIFZBTF9NM19DVFJMX01I TDNfVkFMVUUsCj4gKwkJCVJFR19DT0NfQ1RMMCwgMHg0MCwKPiArCQkJUkVHX01ITF9DT0NfQ1RM MSwgMHgwNwo+ICsJCSk7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIENNX0RJU0NPTk5FQ1RFRDoKPiAr CQlicmVhazsKPiArCWRlZmF1bHQ6Cj4gKwkJZGV2X2VycihjdHgtPmRldiwgIiVzIG1vZGUgJWQg bm90IHN1cHBvcnRlZFxuIiwgX19mdW5jX18sIG1vZGUpOwo+ICsJCWJyZWFrOwo+ICsJfTsKPiAr Cj4gKwlzaWk4NjIwX3NldF9hdXRvX3pvbmUoY3R4KTsKPiArCj4gKwlpZiAobW9kZSAhPSBDTV9N SEwxKQo+ICsJCXJldHVybjsKPiArCj4gKwlzaWk4NjIwX3dyaXRlX3NlcV9zdGF0aWMoY3R4LAo+ ICsJCVJFR19NSExfRFBfQ1RMMCwgMHhCQywKPiArCQlSRUdfTUhMX0RQX0NUTDEsIDB4QkIsCj4g KwkJUkVHX01ITF9EUF9DVEwzLCAweDQ4LAo+ICsJCVJFR19NSExfRFBfQ1RMNSwgMHgzOSwKPiAr CQlSRUdfTUhMX0RQX0NUTDIsIDB4MkEsCj4gKwkJUkVHX01ITF9EUF9DVEw2LCAweDJBLAo+ICsJ CVJFR19NSExfRFBfQ1RMNywgMHgwOAo+ICsJKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgc2lp ODYyMF9kaXNjb25uZWN0KHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gK3sKPiArCXNpaTg2MjBfZGlz YWJsZV9nZW4yX3dyaXRlX2J1cnN0KGN0eCk7Cj4gKwlzaWk4NjIwX3N0b3BfdmlkZW8oY3R4KTsK PiArCW1zbGVlcCg1MCk7Cj4gKwlzaWk4NjIwX2NidXNfcmVzZXQoY3R4KTsKPiArCXNpaTg2MjBf c2V0X21vZGUoY3R4LCBDTV9ESVNDT05ORUNURUQpOwo+ICsJc2lpODYyMF93cml0ZV9zZXFfc3Rh dGljKGN0eCwKPiArCQlSRUdfQ09DX0NUTDAsIDB4NDAsCj4gKwkJUkVHX0NCVVMzX0NOVlQsIDB4 ODQsCj4gKwkJUkVHX0NPQ19DVEwxNCwgMHgwMCwKPiArCQlSRUdfQ09DX0NUTDAsIDB4NDAsCj4g KwkJUkVHX0hSWENUUkwzLCAweDA3LAo+ICsJCVJFR19NSExfUExMX0NUTDAsIFZBTF9NSExfUExM X0NUTDBfSERNSV9DTEtfUkFUSU9fMVgKPiArCQkJfCBCSVRfTUhMX1BMTF9DVEwwX0NSWVNUQUxf Q0xLX1NFTAo+ICsJCQl8IEJJVF9NSExfUExMX0NUTDBfWk9ORV9NQVNLX09FLAo+ICsJCVJFR19N SExfRFBfQ1RMMCwgQklUX01ITF9EUF9DVEwwX0RQX09FCj4gKwkJCXwgQklUX01ITF9EUF9DVEww X1RYX09FX09WUiwKPiArCQlSRUdfTUhMX0RQX0NUTDEsIDB4QkIsCj4gKwkJUkVHX01ITF9EUF9D VEwzLCAweDQ4LAo+ICsJCVJFR19NSExfRFBfQ1RMNSwgMHgzRiwKPiArCQlSRUdfTUhMX0RQX0NU TDIsIDB4MkYsCj4gKwkJUkVHX01ITF9EUF9DVEw2LCAweDJBLAo+ICsJCVJFR19NSExfRFBfQ1RM NywgMHgwMwo+ICsJKTsKPiArCXNpaTg2MjBfZGlzYWJsZV9ocGQoY3R4KTsKPiArCXNpaTg2MjBf d3JpdGVfc2VxX3N0YXRpYyhjdHgsCj4gKwkJUkVHX00zX0NUUkwsIFZBTF9NM19DVFJMX01ITDNf VkFMVUUsCj4gKwkJUkVHX01ITF9DT0NfQ1RMMSwgMHgwNywKPiArCQlSRUdfRElTQ19DVFJMNCwg VkFMX0RJU0NfQ1RSTDQoVkFMX1BVUF9PRkYsIFZBTF9QVVBfMjBLKSwKPiArCQlSRUdfRElTQ19D VFJMOCwgMHgwMCwKPiArCQlSRUdfRElTQ19DVFJMOSwgQklUX0RJU0NfQ1RSTDlfV0FLRV9EUlZG TFQKPiArCQkJfCBCSVRfRElTQ19DVFJMOV9XQUtFX1BVTFNFX0JZUEFTUywKPiArCQlSRUdfSU5U X0NUUkwsIDB4MDAsCj4gKwkJUkVHX01TQ19IRUFSVEJFQVRfQ1RSTCwgMHgyNywKPiArCQlSRUdf RElTQ19DVFJMMSwgMHgyNSwKPiArCQlSRUdfQ0JVU19ESVNDX0lOVFIwLCAodTgpfkJJVF9SR05E X1JFQURZX0lOVCwKPiArCQlSRUdfQ0JVU19ESVNDX0lOVFIwX01BU0ssIEJJVF9SR05EX1JFQURZ X0lOVCwKPiArCQlSRUdfTURUX0lOVF8xLCAweGZmLAo+ICsJCVJFR19NRFRfSU5UXzFfTUFTSywg MHgwMCwKPiArCQlSRUdfTURUX0lOVF8wLCAweGZmLAo+ICsJCVJFR19NRFRfSU5UXzBfTUFTSywg MHgwMCwKPiArCQlSRUdfQ09DX0lOVFIsIDB4ZmYsCj4gKwkJUkVHX0NPQ19JTlRSX01BU0ssIDB4 MDAsCj4gKwkJUkVHX1RSWElOVEgsIDB4ZmYsCj4gKwkJUkVHX1RSWElOVE1ILCAweDAwLAo+ICsJ CVJFR19DQlVTX0lOVF8wLCAweGZmLAo+ICsJCVJFR19DQlVTX0lOVF8wX01BU0ssIDB4MDAsCj4g KwkJUkVHX0NCVVNfSU5UXzEsIDB4ZmYsCj4gKwkJUkVHX0NCVVNfSU5UXzFfTUFTSywgMHgwMCwK PiArCQlSRUdfRU1TQ0lOVFIsIDB4ZmYsCj4gKwkJUkVHX0VNU0NJTlRSTUFTSywgMHgwMCwKPiAr CQlSRUdfRU1TQ0lOVFIxLCAweGZmLAo+ICsJCVJFR19FTVNDSU5UUk1BU0sxLCAweDAwLAo+ICsJ CVJFR19JTlRSOCwgMHhmZiwKPiArCQlSRUdfSU5UUjhfTUFTSywgMHgwMCwKPiArCQlSRUdfVFBJ X0lOVFJfU1QwLCAweGZmLAo+ICsJCVJFR19UUElfSU5UUl9FTiwgMHgwMCwKPiArCQlSRUdfSERD UDJYX0lOVFIwLCAweGZmLAo+ICsJCVJFR19IRENQMlhfSU5UUjBfTUFTSywgMHgwMCwKPiArCQlS RUdfSU5UUjksIDB4ZmYsCj4gKwkJUkVHX0lOVFI5X01BU0ssIDB4MDAsCj4gKwkJUkVHX0lOVFIz LCAweGZmLAo+ICsJCVJFR19JTlRSM19NQVNLLCAweDAwLAo+ICsJCVJFR19JTlRSNSwgMHhmZiwK PiArCQlSRUdfSU5UUjVfTUFTSywgMHgwMCwKPiArCQlSRUdfSU5UUjIsIDB4ZmYsCj4gKwkJUkVH X0lOVFIyX01BU0ssIDB4MDAsCj4gKwkpOwo+ICsJbWVtc2V0KGN0eC0+c3RhdCwgMCwgc2l6ZW9m KGN0eC0+c3RhdCkpOwo+ICsJbWVtc2V0KGN0eC0+eHN0YXQsIDAsIHNpemVvZihjdHgtPnhzdGF0 KSk7Cj4gKwltZW1zZXQoY3R4LT5kZXZjYXAsIDAsIHNpemVvZihjdHgtPmRldmNhcCkpOwo+ICsJ bWVtc2V0KGN0eC0+eGRldmNhcCwgMCwgc2l6ZW9mKGN0eC0+eGRldmNhcCkpOwo+ICsJY3R4LT5j YnVzX3N0YXR1cyA9IDA7Cj4gKwljdHgtPnNpbmtfdHlwZSA9IFNJTktfTk9ORTsKPiArCWtmcmVl KGN0eC0+ZWRpZCk7Cj4gKwljdHgtPmVkaWQgPSBOVUxMOwo+ICsJc2lpODYyMF9tdF9jbGVhbnVw KGN0eCk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfbWhsX2Rpc2Nvbm5lY3RlZChz dHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ICt7Cj4gKwlzaWk4NjIwX3dyaXRlX3NlcV9zdGF0aWMoY3R4 LAo+ICsJCVJFR19ESVNDX0NUUkw0LCBWQUxfRElTQ19DVFJMNChWQUxfUFVQX09GRiwgVkFMX1BV UF8yMEspLAo+ICsJCVJFR19DQlVTX01TQ19DT01QQVRfQ1RSTCwKPiArCQkJQklUX0NCVVNfTVND X0NPTVBBVF9DVFJMX1hERVZDQVBfRU4KPiArCSk7Cj4gKwlzaWk4NjIwX2Rpc2Nvbm5lY3QoY3R4 KTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgc2lpODYyMF9pcnFfZGlzYyhzdHJ1Y3Qgc2lpODYy MCAqY3R4KQo+ICt7Cj4gKwl1OCBzdGF0ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19DQlVTX0RJ U0NfSU5UUjApOwo+ICsKPiArCWlmIChzdGF0ICYgVkFMX0NCVVNfTUhMX0RJU0NPTikKPiArCQlz aWk4NjIwX21obF9kaXNjb25uZWN0ZWQoY3R4KTsKPiArCj4gKwlpZiAoc3RhdCAmIEJJVF9SR05E X1JFQURZX0lOVCkgewo+ICsJCXU4IHN0YXQyID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19ESVND X1NUQVQyKTsKPiArCj4gKwkJaWYgKChzdGF0MiAmIE1TS19ESVNDX1NUQVQyX1JHTkQpID09IFZB TF9SR05EXzFLKQo+ICsJCQlzaWk4NjIwX21obF9kaXNjb3ZlcihjdHgpOwo+ICsJCWVsc2Ugewo+ ICsJCQlzaWk4NjIwX3dyaXRlX3NlcV9zdGF0aWMoY3R4LAo+ICsJCQkJUkVHX0RJU0NfQ1RSTDks IEJJVF9ESVNDX0NUUkw5X1dBS0VfRFJWRkxUCj4gKwkJCQkJfCBCSVRfRElTQ19DVFJMOV9OT01I TF9FU1QKPiArCQkJCQl8IEJJVF9ESVNDX0NUUkw5X1dBS0VfUFVMU0VfQllQQVNTLAo+ICsJCQkJ UkVHX0NCVVNfRElTQ19JTlRSMF9NQVNLLCBCSVRfUkdORF9SRUFEWV9JTlQKPiArCQkJCQl8IEJJ VF9DQlVTX01ITDNfRElTQ09OX0lOVAo+ICsJCQkJCXwgQklUX0NCVVNfTUhMMTJfRElTQ09OX0lO VAo+ICsJCQkJCXwgQklUX05PVF9NSExfRVNUX0lOVAo+ICsJCQkpOwo+ICsJCX0KPiArCX0KPiAr CWlmIChzdGF0ICYgQklUX01ITF9FU1RfSU5UKQo+ICsJCXNpaTg2MjBfbWhsX2luaXQoY3R4KTsK PiArCj4gKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0NCVVNfRElTQ19JTlRSMCwgc3RhdCk7Cj4g K30KPiArCj4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfaXJxX2cyd2Ioc3RydWN0IHNpaTg2MjAgKmN0 eCkKPiArewo+ICsJdTggc3RhdCA9IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfTURUX0lOVF8wKTsK PiArCj4gKwlpZiAoc3RhdCAmIEJJVF9NRFRfSURMRV9BRlRFUl9IQVdCX0RJU0FCTEUpCj4gKwkJ ZGV2X2RiZyhjdHgtPmRldiwgIkhBV0IgaWRsZVxuIik7Cj4gKwo+ICsJc2lpODYyMF93cml0ZShj dHgsIFJFR19NRFRfSU5UXzAsIHN0YXQpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBzaWk4NjIw X3N0YXR1c19jaGFuZ2VkX2RjYXAoc3RydWN0IHNpaTg2MjAgKmN0eCkKPiArewo+ICsJaWYgKGN0 eC0+c3RhdFtNSExfRFNUX0NPTk5FQ1RFRF9SRFldICYgTUhMX0RTVF9DT05OX0RDQVBfUkRZKSB7 Cj4gKwkJc2lpODYyMF9zZXRfbW9kZShjdHgsIENNX01ITDEpOwo+ICsJCXNpaTg2MjBfcGVlcl9z cGVjaWZpY19pbml0KGN0eCk7Cj4gKwkJc2lpODYyMF93cml0ZShjdHgsIFJFR19JTlRSOV9NQVNL LCBCSVRfSU5UUjlfREVWQ0FQX0RPTkUKPiArCQkJICAgICAgIHwgQklUX0lOVFI5X0VESURfRE9O RSB8IEJJVF9JTlRSOV9FRElEX0VSUk9SKTsKPiArCX0KPiArfQo+ICsKPiArc3RhdGljIHZvaWQg c2lpODYyMF9zdGF0dXNfY2hhbmdlZF9wYXRoKHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gK3sKPiAr CWlmIChjdHgtPnN0YXRbTUhMX0RTVF9MSU5LX01PREVdICYgTUhMX0RTVF9MTV9QQVRIX0VOQUJM RUQpIHsKPiArCQlzaWk4NjIwX210X3dyaXRlX3N0YXQoY3R4LCBNSExfRFNUX1JFRyhMSU5LX01P REUpLAo+ICsJCQkJICAgICAgTUhMX0RTVF9MTV9DTEtfTU9ERV9OT1JNQUwKPiArCQkJCSAgICAg IHwgTUhMX0RTVF9MTV9QQVRIX0VOQUJMRUQpOwo+ICsJCXNpaTg2MjBfbXRfcmVhZF9kZXZjYXAo Y3R4LCBmYWxzZSk7Cj4gKwl9IGVsc2Ugewo+ICsJCXNpaTg2MjBfbXRfd3JpdGVfc3RhdChjdHgs IE1ITF9EU1RfUkVHKExJTktfTU9ERSksCj4gKwkJCQkgICAgICBNSExfRFNUX0xNX0NMS19NT0RF X05PUk1BTCk7Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXNjX21yX3dy aXRlX3N0YXQoc3RydWN0IHNpaTg2MjAgKmN0eCkKPiArewo+ICsJdTggc3RbTUhMX0RTVF9TSVpF XSwgeHN0W01ITF9YRFNfU0laRV07Cj4gKwo+ICsJc2lpODYyMF9yZWFkX2J1ZihjdHgsIFJFR19N SExfU1RBVF8wLCBzdCwgTUhMX0RTVF9TSVpFKTsKPiArCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBS RUdfTUhMX0VYVFNUQVRfMCwgeHN0LCBNSExfWERTX1NJWkUpOwo+ICsKPiArCXNpaTg2MjBfdXBk YXRlX2FycmF5KGN0eC0+c3RhdCwgc3QsIE1ITF9EU1RfU0laRSk7Cj4gKwlzaWk4NjIwX3VwZGF0 ZV9hcnJheShjdHgtPnhzdGF0LCB4c3QsIE1ITF9YRFNfU0laRSk7Cj4gKwo+ICsJaWYgKHN0W01I TF9EU1RfQ09OTkVDVEVEX1JEWV0gJiBNSExfRFNUX0NPTk5fRENBUF9SRFkpCj4gKwkJc2lpODYy MF9zdGF0dXNfY2hhbmdlZF9kY2FwKGN0eCk7Cj4gKwo+ICsJaWYgKHN0W01ITF9EU1RfTElOS19N T0RFXSAmIE1ITF9EU1RfTE1fUEFUSF9FTkFCTEVEKQo+ICsJCXNpaTg2MjBfc3RhdHVzX2NoYW5n ZWRfcGF0aChjdHgpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX21zY19tcl9zZXRf aW50KHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gK3sKPiArCXU4IGludHNbTUhMX0lOVF9TSVpFXTsK PiArCj4gKwlzaWk4NjIwX3JlYWRfYnVmKGN0eCwgUkVHX01ITF9JTlRfMCwgaW50cywgTUhMX0lO VF9TSVpFKTsKPiArCXNpaTg2MjBfd3JpdGVfYnVmKGN0eCwgUkVHX01ITF9JTlRfMCwgaW50cywg TUhMX0lOVF9TSVpFKTsKPiArfQo+ICsKPiArc3RhdGljIHN0cnVjdCBzaWk4NjIwX210X21zZyAq c2lpODYyMF9tc2NfbXNnX2ZpcnN0KHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gK3sKPiArCXN0cnVj dCBkZXZpY2UgKmRldiA9IGN0eC0+ZGV2Owo+ICsKPiArCWlmIChsaXN0X2VtcHR5KCZjdHgtPm10 X3F1ZXVlKSkgewo+ICsJCWRldl9lcnIoZGV2LCAidW5leHBlY3RlZCBNU0MgTVQgcmVzcG9uc2Vc biIpOwo+ICsJCXJldHVybiBOVUxMOwo+ICsJfQo+ICsKPiArCXJldHVybiBsaXN0X2ZpcnN0X2Vu dHJ5KCZjdHgtPm10X3F1ZXVlLCBzdHJ1Y3Qgc2lpODYyMF9tdF9tc2csIG5vZGUpOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX21zY19tdF9kb25lKHN0cnVjdCBzaWk4NjIwICpjdHgp Cj4gK3sKPiArCXN0cnVjdCBzaWk4NjIwX210X21zZyAqbXNnID0gc2lpODYyMF9tc2NfbXNnX2Zp cnN0KGN0eCk7Cj4gKwo+ICsJaWYgKCFtc2cpCj4gKwkJcmV0dXJuOwo+ICsKPiArCW1zZy0+cmV0 ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19NU0NfTVRfUkNWRF9EQVRBMCk7Cj4gKwljdHgtPm10 X3N0YXRlID0gTVRfU1RBVEVfRE9ORTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgc2lpODYyMF9t c2NfbXJfbXNjX21zZyhzdHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ICt7Cj4gKwlzdHJ1Y3Qgc2lpODYy MF9tdF9tc2cgKm1zZyA9IHNpaTg2MjBfbXNjX21zZ19maXJzdChjdHgpOwo+ICsJdTggYnVmWzJd Owo+ICsKPiArCWlmICghbXNnKQo+ICsJCXJldHVybjsKPiArCj4gKwlzaWk4NjIwX3JlYWRfYnVm KGN0eCwgUkVHX01TQ19NUl9NU0NfTVNHX1JDVkRfMVNUX0RBVEEsIGJ1ZiwgMik7Cj4gKwo+ICsJ c3dpdGNoIChidWZbMF0pIHsKPiArCWNhc2UgTUhMX01TQ19NU0dfUkFQSzoKPiArCQltc2ctPnJl dCA9IGJ1ZlsxXTsKPiArCQljdHgtPm10X3N0YXRlID0gTVRfU1RBVEVfRE9ORTsKPiArCQlicmVh azsKPiArCWRlZmF1bHQ6Cj4gKwkJZGV2X2VycihjdHgtPmRldiwgIiVzIG1lc3NhZ2UgdHlwZSAl ZCwlZCBub3Qgc3VwcG9ydGVkIiwKPiArCQkJX19mdW5jX18sIGJ1ZlswXSwgYnVmWzFdKTsKPiAr CX0KPiArfQo+ICsKPiArc3RhdGljIHZvaWQgc2lpODYyMF9pcnFfbXNjKHN0cnVjdCBzaWk4NjIw ICpjdHgpCj4gK3sKPiArCXU4IHN0YXQgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0NCVVNfSU5U XzApOwo+ICsKPiArCWlmIChzdGF0ICYgfkJJVF9DQlVTX0hQRF9DSEcpCj4gKwkJc2lpODYyMF93 cml0ZShjdHgsIFJFR19DQlVTX0lOVF8wLCBzdGF0ICYgfkJJVF9DQlVTX0hQRF9DSEcpOwo+ICsK PiArCWlmIChzdGF0ICYgQklUX0NCVVNfSFBEX0NIRykgewo+ICsJCXU4IGNidXNfc3RhdCA9IHNp aTg2MjBfcmVhZGIoY3R4LCBSRUdfQ0JVU19TVEFUVVMpOwo+ICsKPiArCQlpZiAoKGNidXNfc3Rh dCBeIGN0eC0+Y2J1c19zdGF0dXMpICYgQklUX0NCVVNfU1RBVFVTX0NCVVNfSFBEKSB7Cj4gKwkJ CXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfQ0JVU19JTlRfMCwgQklUX0NCVVNfSFBEX0NIRyk7Cj4g KwkJfSBlbHNlIHsKPiArCQkJc3RhdCBePSBCSVRfQ0JVU19TVEFUVVNfQ0JVU19IUEQ7Cj4gKwkJ CWNidXNfc3RhdCBePSBCSVRfQ0JVU19TVEFUVVNfQ0JVU19IUEQ7Cj4gKwkJfQo+ICsJCWN0eC0+ Y2J1c19zdGF0dXMgPSBjYnVzX3N0YXQ7Cj4gKwl9Cj4gKwo+ICsJaWYgKHN0YXQgJiBCSVRfQ0JV U19NU0NfTVJfV1JJVEVfU1RBVCkKPiArCQlzaWk4NjIwX21zY19tcl93cml0ZV9zdGF0KGN0eCk7 Cj4gKwo+ICsJaWYgKHN0YXQgJiBCSVRfQ0JVU19NU0NfTVJfU0VUX0lOVCkKPiArCQlzaWk4NjIw X21zY19tcl9zZXRfaW50KGN0eCk7Cj4gKwo+ICsJaWYgKHN0YXQgJiBCSVRfQ0JVU19NU0NfTVRf RE9ORSkKPiArCQlzaWk4NjIwX21zY19tdF9kb25lKGN0eCk7Cj4gKwo+ICsJaWYgKHN0YXQgJiBC SVRfQ0JVU19NU0NfTVJfTVNDX01TRykKPiArCQlzaWk4NjIwX21zY19tcl9tc2NfbXNnKGN0eCk7 Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfaXJxX2NvYyhzdHJ1Y3Qgc2lpODYyMCAq Y3R4KQo+ICt7Cj4gKwl1OCBzdGF0ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19DT0NfSU5UUik7 Cj4gKwo+ICsJc2lpODYyMF93cml0ZShjdHgsIFJFR19DT0NfSU5UUiwgc3RhdCk7Cj4gK30KPiAr Cj4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfaXJxX21lcnIoc3RydWN0IHNpaTg2MjAgKmN0eCkKPiAr ewo+ICsJdTggc3RhdCA9IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfQ0JVU19JTlRfMSk7Cj4gKwo+ ICsJc2lpODYyMF93cml0ZShjdHgsIFJFR19DQlVTX0lOVF8xLCBzdGF0KTsKPiArfQo+ICsKPiAr c3RhdGljIHZvaWQgc2lpODYyMF9pcnFfZWRpZChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ICt7Cj4g Kwl1OCBzdGF0ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19JTlRSOSk7Cj4gKwo+ICsJc2lpODYy MF93cml0ZShjdHgsIFJFR19JTlRSOSwgc3RhdCk7Cj4gKwo+ICsJaWYgKHN0YXQgJiBCSVRfSU5U UjlfREVWQ0FQX0RPTkUpCj4gKwkJY3R4LT5tdF9zdGF0ZSA9IE1UX1NUQVRFX0RPTkU7Cj4gK30K PiArCj4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfc2NkdF9oaWdoKHN0cnVjdCBzaWk4NjIwICpjdHgp Cj4gK3sKPiArCXNpaTg2MjBfd3JpdGVfc2VxX3N0YXRpYyhjdHgsCj4gKwkJUkVHX0lOVFI4X01B U0ssIEJJVF9DRUFfTkVXX0FWSSB8IEJJVF9DRUFfTkVXX1ZTSSwKPiArCQlSRUdfVFBJX1NDLCBC SVRfVFBJX1NDX1RQSV9PVVRQVVRfTU9ERV8wX0hETUksCj4gKwkpOwo+ICt9Cj4gKwo+ICtzdGF0 aWMgdm9pZCBzaWk4NjIwX3NjZHRfbG93KHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gK3sKPiArCXNp aTg2MjBfd3JpdGUoY3R4LCBSRUdfVE1EU19DU1RBVF9QMywKPiArCQkgICAgICAgQklUX1RNRFNf Q1NUQVRfUDNfU0NEVF9DTFJfQVZJX0RJUwo+ICsJCSAgICAgICB8IEJJVF9UTURTX0NTVEFUX1Az X0NMUl9BVkkpOwo+ICsKPiArCXNpaTg2MjBfc3RvcF92aWRlbyhjdHgpOwo+ICsKPiArCXNpaTg2 MjBfd3JpdGUoY3R4LCBSRUdfSU5UUjhfTUFTSywgMCk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lk IHNpaTg2MjBfaXJxX3NjZHQoc3RydWN0IHNpaTg2MjAgKmN0eCkKPiArewo+ICsJdTggc3RhdCA9 IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfSU5UUjUpOwo+ICsKPiArCWlmIChzdGF0ICYgQklUX0lO VFJfU0NEVF9DSEFOR0UpIHsKPiArCQl1OCBjc3RhdCA9IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdf VE1EU19DU1RBVF9QMyk7Cj4gKwo+ICsJCWlmIChjc3RhdCAmIEJJVF9UTURTX0NTVEFUX1AzX1ND RFQpCj4gKwkJCXNpaTg2MjBfc2NkdF9oaWdoKGN0eCk7Cj4gKwkJZWxzZQo+ICsJCQlzaWk4NjIw X3NjZHRfbG93KGN0eCk7Cj4gKwl9Cj4gKwo+ICsJc2lpODYyMF93cml0ZShjdHgsIFJFR19JTlRS NSwgc3RhdCk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfbmV3X3ZzaShzdHJ1Y3Qg c2lpODYyMCAqY3R4KQo+ICt7Cj4gKwl1OCB2c2lmWzExXTsKPiArCj4gKwlzaWk4NjIwX3dyaXRl KGN0eCwgUkVHX1JYX0hETUlfQ1RSTDIsCj4gKwkJICAgICAgIFZBTF9SWF9IRE1JX0NUUkwyX0RF RlZBTAo+ICsJCSAgICAgICB8IEJJVF9SWF9IRE1JX0NUUkwyX1ZTSV9NT05fU0VMX1ZTSSk7Cj4g KwlzaWk4NjIwX3JlYWRfYnVmKGN0eCwgUkVHX1JYX0hETUlfTU9OX1BLVF9IRUFERVIxLCB2c2lm LAo+ICsJCQkgQVJSQVlfU0laRSh2c2lmKSk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHNpaTg2 MjBfbmV3X2F2aShzdHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ICt7Cj4gKwlzaWk4NjIwX3dyaXRlKGN0 eCwgUkVHX1JYX0hETUlfQ1RSTDIsIFZBTF9SWF9IRE1JX0NUUkwyX0RFRlZBTCk7Cj4gKwlzaWk4 NjIwX3JlYWRfYnVmKGN0eCwgUkVHX1JYX0hETUlfTU9OX1BLVF9IRUFERVIxLCBjdHgtPmF2aWYs Cj4gKwkJCSBBUlJBWV9TSVpFKGN0eC0+YXZpZikpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBz aWk4NjIwX2lycV9pbmZyKHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gK3sKPiArCXU4IHN0YXQgPSBz aWk4NjIwX3JlYWRiKGN0eCwgUkVHX0lOVFI4KQo+ICsJCSYgKEJJVF9DRUFfTkVXX1ZTSSB8IEJJ VF9DRUFfTkVXX0FWSSk7Cj4gKwo+ICsJc2lpODYyMF93cml0ZShjdHgsIFJFR19JTlRSOCwgc3Rh dCk7Cj4gKwo+ICsJaWYgKHN0YXQgJiBCSVRfQ0VBX05FV19WU0kpCj4gKwkJc2lpODYyMF9uZXdf dnNpKGN0eCk7Cj4gKwo+ICsJaWYgKHN0YXQgJiBCSVRfQ0VBX05FV19BVkkpCj4gKwkJc2lpODYy MF9uZXdfYXZpKGN0eCk7Cj4gKwo+ICsJaWYgKHN0YXQgJiAoQklUX0NFQV9ORVdfVlNJIHwgQklU X0NFQV9ORVdfQVZJKSkKPiArCQlzaWk4NjIwX3N0YXJ0X3ZpZGVvKGN0eCk7Cj4gK30KPiArCj4g Ky8qIGVuZGlhbiBhZ25vc3RpYywgbm9uLXZvbGF0aWxlIHZlcnNpb24gb2YgdGVzdF9iaXQgKi8K PiArc3RhdGljIGJvb2wgc2lpODYyMF90ZXN0X2JpdCh1bnNpZ25lZCBpbnQgbnIsIGNvbnN0IHU4 ICphZGRyKQo+ICt7Cj4gKwlyZXR1cm4gMSAmIChhZGRyW25yIC8gQklUU19QRVJfQllURV0gPj4g KG5yICUgQklUU19QRVJfQllURSkpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaXJxcmV0dXJuX3Qgc2lp ODYyMF9pcnFfdGhyZWFkKGludCBpcnEsIHZvaWQgKmRhdGEpCj4gK3sKPiArCXN0YXRpYyBjb25z dCBzdHJ1Y3Qgewo+ICsJCWludCBiaXQ7Cj4gKwkJdm9pZCAoKmhhbmRsZXIpKHN0cnVjdCBzaWk4 NjIwICpjdHgpOwo+ICsJfSBpcnFfdmVjW10gPSB7Cj4gKwkJeyBCSVRfRkFTVF9JTlRSX1NUQVRf RElTQywgc2lpODYyMF9pcnFfZGlzYyB9LAo+ICsJCXsgQklUX0ZBU1RfSU5UUl9TVEFUX0cyV0Is IHNpaTg2MjBfaXJxX2cyd2IgfSwKPiArCQl7IEJJVF9GQVNUX0lOVFJfU1RBVF9DT0MsIHNpaTg2 MjBfaXJxX2NvYyB9LAo+ICsJCXsgQklUX0ZBU1RfSU5UUl9TVEFUX01TQywgc2lpODYyMF9pcnFf bXNjIH0sCj4gKwkJeyBCSVRfRkFTVF9JTlRSX1NUQVRfTUVSUiwgc2lpODYyMF9pcnFfbWVyciB9 LAo+ICsJCXsgQklUX0ZBU1RfSU5UUl9TVEFUX0VESUQsIHNpaTg2MjBfaXJxX2VkaWQgfSwKPiAr CQl7IEJJVF9GQVNUX0lOVFJfU1RBVF9TQ0RULCBzaWk4NjIwX2lycV9zY2R0IH0sCj4gKwkJeyBC SVRfRkFTVF9JTlRSX1NUQVRfSU5GUiwgc2lpODYyMF9pcnFfaW5mciB9LAo+ICsJfTsKPiArCXN0 cnVjdCBzaWk4NjIwICpjdHggPSBkYXRhOwo+ICsJdTggc3RhdHNbTEVOX0ZBU1RfSU5UUl9TVEFU XTsKPiArCWludCBpLCByZXQ7Cj4gKwo+ICsJbXV0ZXhfbG9jaygmY3R4LT5sb2NrKTsKPiArCj4g KwlzaWk4NjIwX3JlYWRfYnVmKGN0eCwgUkVHX0ZBU1RfSU5UUl9TVEFULCBzdGF0cywgQVJSQVlf U0laRShzdGF0cykpOwo+ICsJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaXJxX3ZlYyk7ICsr aSkKPiArCQlpZiAoc2lpODYyMF90ZXN0X2JpdChpcnFfdmVjW2ldLmJpdCwgc3RhdHMpKQo+ICsJ CQlpcnFfdmVjW2ldLmhhbmRsZXIoY3R4KTsKPiArCj4gKwlzaWk4NjIwX210X3dvcmsoY3R4KTsK PiArCj4gKwlyZXQgPSBzaWk4NjIwX2NsZWFyX2Vycm9yKGN0eCk7Cj4gKwlpZiAocmV0KSB7Cj4g KwkJZGV2X2VycihjdHgtPmRldiwgIkVycm9yIGR1cmluZyBJUlEgaGFuZGxpbmcsICVkLlxuIiwg cmV0KTsKPiArCQlzaWk4NjIwX21obF9kaXNjb25uZWN0ZWQoY3R4KTsKPiArCX0KPiArCW11dGV4 X3VubG9jaygmY3R4LT5sb2NrKTsKPiArCj4gKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cj4gK30KPiAr Cj4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfY2FibGVfaW4oc3RydWN0IHNpaTg2MjAgKmN0eCkKPiAr ewo+ICsJc3RydWN0IGRldmljZSAqZGV2ID0gY3R4LT5kZXY7Cj4gKwl1OCB2ZXJbNV07Cj4gKwlp bnQgcmV0Owo+ICsKPiArCXJldCA9IHNpaTg2MjBfaHdfb24oY3R4KTsKPiArCWlmIChyZXQpIHsK PiArCQlkZXZfZXJyKGRldiwgIkVycm9yIHBvd2VyaW5nIG9uLCAlZC5cbiIsIHJldCk7Cj4gKwkJ cmV0dXJuOwo+ICsJfQo+ICsJc2lpODYyMF9od19yZXNldChjdHgpOwo+ICsKPiArCXNpaTg2MjBf cmVhZF9idWYoY3R4LCBSRUdfVk5EX0lETCwgdmVyLCBBUlJBWV9TSVpFKHZlcikpOwo+ICsJcmV0 ID0gc2lpODYyMF9jbGVhcl9lcnJvcihjdHgpOwo+ICsJaWYgKHJldCkgewo+ICsJCWRldl9lcnIo ZGV2LCAiRXJyb3IgYWNjZXNzaW5nIEkyQyBidXMsICVkLlxuIiwgcmV0KTsKPiArCQlyZXR1cm47 Cj4gKwl9Cj4gKwo+ICsJZGV2X2luZm8oZGV2LCAiQ2hpcElEICUwMnglMDJ4OiUwMnglMDJ4IHJl diAlMDJ4LlxuIiwgdmVyWzFdLCB2ZXJbMF0sCj4gKwkJIHZlclszXSwgdmVyWzJdLCB2ZXJbNF0p Owo+ICsKPiArCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfRFBELAo+ICsJCQlCSVRfRFBEX1BXUk9O X1BMTCB8IEJJVF9EUERfUEROVFgxMiB8IEJJVF9EUERfT1NDX0VOKTsKPiArCj4gKwlzaWk4NjIw X3h0YWxfc2V0X3JhdGUoY3R4KTsKPiArCXNpaTg2MjBfZGlzY29ubmVjdChjdHgpOwo+ICsKPiAr CXNpaTg2MjBfd3JpdGVfc2VxX3N0YXRpYyhjdHgsCj4gKwkJUkVHX01ITF9DQlVTX0NUTDAsIFZB TF9NSExfQ0JVU19DVEwwX0NCVVNfRFJWX1NFTF9TVFJPTkcKPiArCQkJfCBWQUxfTUhMX0NCVVNf Q1RMMF9DQlVTX1JHTkRfVkJJQVNfNzM0LAo+ICsJCVJFR19NSExfQ0JVU19DVEwxLCBWQUxfTUhM X0NCVVNfQ1RMMV8xMTE1X09ITSwKPiArCQlSRUdfRFBELCBCSVRfRFBEX1BXUk9OX1BMTCB8IEJJ VF9EUERfUEROVFgxMiB8IEJJVF9EUERfT1NDX0VOLAo+ICsJKTsKPiArCj4gKwlyZXQgPSBzaWk4 NjIwX2NsZWFyX2Vycm9yKGN0eCk7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJZGV2X2VycihkZXYsICJF cnJvciBhY2Nlc3NpbmcgSTJDIGJ1cywgJWQuXG4iLCByZXQpOwo+ICsJCXJldHVybjsKPiArCX0K PiArCj4gKwllbmFibGVfaXJxKHRvX2kyY19jbGllbnQoY3R4LT5kZXYpLT5pcnEpOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgaW5saW5lIHN0cnVjdCBzaWk4NjIwICpicmlkZ2VfdG9fc2lpODYyMChzdHJ1 Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICt7Cj4gKwlyZXR1cm4gY29udGFpbmVyX29mKGJyaWRn ZSwgc3RydWN0IHNpaTg2MjAsIGJyaWRnZSk7Cj4gK30KPiArCj4gK2Jvb2wgc2lpODYyMF9tb2Rl X2ZpeHVwKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gKwkJICAgY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gKwkJICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGUpCj4gK3sKPiArCXN0cnVjdCBzaWk4NjIwICpjdHggPSBicmlkZ2VfdG9fc2lp ODYyMChicmlkZ2UpOwo+ICsJYm9vbCByZXQgPSBmYWxzZTsKPiArCWludCBtYXhfY2xvY2sgPSA3 NDI1MDsKPiArCj4gKwltdXRleF9sb2NrKCZjdHgtPmxvY2spOwo+ICsKPiArCWlmIChtb2RlLT5m bGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKQo+ICsJCWdvdG8gb3V0Owo+ICsKPiArCWlm IChjdHgtPmRldmNhcFtNSExfRENBUF9WSURfTElOS19NT0RFXSAmIE1ITF9EQ0FQX1ZJRF9MSU5L X1BQSVhFTCkKPiArCQltYXhfY2xvY2sgPSAzMDAwMDA7Cj4gKwo+ICsJcmV0ID0gbW9kZS0+Y2xv Y2sgPD0gbWF4X2Nsb2NrOwo+ICsKPiArb3V0Ogo+ICsJbXV0ZXhfdW5sb2NrKCZjdHgtPmxvY2sp Owo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0 IGRybV9icmlkZ2VfZnVuY3Mgc2lpODYyMF9icmlkZ2VfZnVuY3MgPSB7Cj4gKwkubW9kZV9maXh1 cCA9IHNpaTg2MjBfbW9kZV9maXh1cCwKPiArfTsKPiArCj4gK3N0YXRpYyBpbnQgc2lpODYyMF9w cm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAo+ICsJCQkgY29uc3Qgc3RydWN0IGkyY19k ZXZpY2VfaWQgKmlkKQo+ICt7Cj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmY2xpZW50LT5kZXY7 Cj4gKwlzdHJ1Y3Qgc2lpODYyMCAqY3R4Owo+ICsJaW50IHJldDsKPiArCj4gKwljdHggPSBkZXZt X2t6YWxsb2MoZGV2LCBzaXplb2YoKmN0eCksIEdGUF9LRVJORUwpOwo+ICsJaWYgKCFjdHgpCj4g KwkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsJY3R4LT5kZXYgPSBkZXY7Cj4gKwltdXRleF9pbml0 KCZjdHgtPmxvY2spOwo+ICsJSU5JVF9MSVNUX0hFQUQoJmN0eC0+bXRfcXVldWUpOwo+ICsKPiAr CWN0eC0+Y2xrX3h0YWwgPSBkZXZtX2Nsa19nZXQoZGV2LCAieHRhbCIpOwo+ICsJaWYgKElTX0VS UihjdHgtPmNsa194dGFsKSkgewo+ICsJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCB4dGFs IGNsb2NrIGZyb20gRFRcbiIpOwo+ICsJCXJldHVybiBQVFJfRVJSKGN0eC0+Y2xrX3h0YWwpOwo+ ICsJfQo+ICsKPiArCWlmICghY2xpZW50LT5pcnEpIHsKPiArCQlkZXZfZXJyKGRldiwgIm5vIGly cSBwcm92aWRlZFxuIik7Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwl9Cj4gKwlpcnFfc2V0X3N0 YXR1c19mbGFncyhjbGllbnQtPmlycSwgSVJRX05PQVVUT0VOKTsKPiArCXJldCA9IGRldm1fcmVx dWVzdF90aHJlYWRlZF9pcnEoZGV2LCBjbGllbnQtPmlycSwgTlVMTCwKPiArCQkJc2lpODYyMF9p cnFfdGhyZWFkLCBJUlFGX1RSSUdHRVJfSElHSCB8IElSUUZfT05FU0hPVCwKPiArCQkJInNpaTg2 MjAiLCBjdHgpOwo+ICsKPiArCWN0eC0+Z3Bpb19yZXNldCA9IGRldm1fZ3Bpb2RfZ2V0KGRldiwg InJlc2V0IiwgR1BJT0RfT1VUX0hJR0gpOwo+ICsJaWYgKElTX0VSUihjdHgtPmdwaW9fcmVzZXQp KSB7Cj4gKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gZ2V0IHJlc2V0IGdwaW8gZnJvbSBEVFxu Iik7Cj4gKwkJcmV0dXJuIFBUUl9FUlIoY3R4LT5ncGlvX3Jlc2V0KTsKPiArCX0KPiArCj4gKwlj dHgtPnN1cHBsaWVzWzBdLnN1cHBseSA9ICJjdmNjMTAiOwo+ICsJY3R4LT5zdXBwbGllc1sxXS5z dXBwbHkgPSAiaW92Y2MxOCI7Cj4gKwlyZXQgPSBkZXZtX3JlZ3VsYXRvcl9idWxrX2dldChkZXYs IDIsIGN0eC0+c3VwcGxpZXMpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiAr CWkyY19zZXRfY2xpZW50ZGF0YShjbGllbnQsIGN0eCk7Cj4gKwo+ICsJY3R4LT5icmlkZ2UuZnVu Y3MgPSAmc2lpODYyMF9icmlkZ2VfZnVuY3M7Cj4gKwljdHgtPmJyaWRnZS5vZl9ub2RlID0gZGV2 LT5vZl9ub2RlOwo+ICsJZHJtX2JyaWRnZV9hZGQoJmN0eC0+YnJpZGdlKTsKPiArCj4gKwlzaWk4 NjIwX2NhYmxlX2luKGN0eCk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBp bnQgc2lpODYyMF9yZW1vdmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKPiArewo+ICsJc3Ry dWN0IHNpaTg2MjAgKmN0eCA9IGkyY19nZXRfY2xpZW50ZGF0YShjbGllbnQpOwo+ICsKPiArCWRp c2FibGVfaXJxKHRvX2kyY19jbGllbnQoY3R4LT5kZXYpLT5pcnEpOwo+ICsJZHJtX2JyaWRnZV9y ZW1vdmUoJmN0eC0+YnJpZGdlKTsKPiArCXNpaTg2MjBfaHdfb2ZmKGN0eCk7Cj4gKwo+ICsJcmV0 dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNpaTg2 MjBfZHRfbWF0Y2hbXSA9IHsKPiArCXsgLmNvbXBhdGlibGUgPSAic2lsLHNpaTg2MjAiIH0sCj4g Kwl7IH0sCj4gK307Cj4gK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNpaTg2MjBfZHRfbWF0Y2gp Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkIHNpaTg2MjBfaWRbXSA9 IHsKPiArCXsgInNpaTg2MjAiLCAwIH0sCj4gKwl7IH0sCj4gK307Cj4gKwo+ICtNT0RVTEVfREVW SUNFX1RBQkxFKGkyYywgc2lpODYyMF9pZCk7Cj4gK3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBz aWk4NjIwX2RyaXZlciA9IHsKPiArCS5kcml2ZXIgPSB7Cj4gKwkJLm5hbWUJPSAic2lpODYyMCIs Cj4gKwkJLm93bmVyCT0gVEhJU19NT0RVTEUsCj4gKwkJLm9mX21hdGNoX3RhYmxlID0gb2ZfbWF0 Y2hfcHRyKHNpaTg2MjBfZHRfbWF0Y2gpLAo+ICsJfSwKPiArCS5wcm9iZQkJPSBzaWk4NjIwX3By b2JlLAo+ICsJLnJlbW92ZQkJPSBzaWk4NjIwX3JlbW92ZSwKPiArCS5pZF90YWJsZSA9IHNpaTg2 MjBfaWQsCj4gK307Cj4gKwo+ICttb2R1bGVfaTJjX2RyaXZlcihzaWk4NjIwX2RyaXZlcik7Cj4g K01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2JyaWRnZS9zaWwtc2lpODYyMC5oIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYy MC5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi42ZmY2MTZhCj4gLS0t IC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAuaAo+ IEBAIC0wLDAgKzEsMTUxNyBAQAo+ICsvKgo+ICsgKiBSZWdpc3RlcnMgb2YgU2lsaWNvbiBJbWFn ZSBTaUk4NjIwIE1vYmlsZSBIRCBUcmFuc21pdHRlcgo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgKEMp IDIwMTUsIFNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCj4gKyAqIEFuZHJ6ZWogSGFqZGEg PGEuaGFqZGFAc2Ftc3VuZy5jb20+Cj4gKyAqCj4gKyAqIEJhc2VkIG9uIE1ITCBkcml2ZXIgZm9y IEFuZHJvaWQgZGV2aWNlcy4KPiArICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTQgU2lsaWNvbiBJ bWFnZSwgSW5jLgo+ICsgKgo+ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo+ICsgKiBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwo+ICsgKiBw dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KPiArICovCj4gKwo+ICsj aWZuZGVmIF9fU0lMX1NJSTg2MjBfSF9fCj4gKyNkZWZpbmUgX19TSUxfU0lJODYyMF9IX18KPiAr Cj4gKy8qIFZlbmRvciBJRCBMb3cgYnl0ZSwgZGVmYXVsdCB2YWx1ZTogMHgwMSAqLwo+ICsjZGVm aW5lIFJFR19WTkRfSURMCQkJCTB4MDAwMAo+ICsKPiArLyogVmVuZG9yIElEIEhpZ2ggYnl0ZSwg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19WTkRfSURICQkJCTB4MDAwMQo+ ICsKPiArLyogRGV2aWNlIElEIExvdyBieXRlLCBkZWZhdWx0IHZhbHVlOiAweDYwICovCj4gKyNk ZWZpbmUgUkVHX0RFVl9JREwJCQkJMHgwMDAyCj4gKwo+ICsvKiBEZXZpY2UgSUQgSGlnaCBieXRl LCBkZWZhdWx0IHZhbHVlOiAweDg2ICovCj4gKyNkZWZpbmUgUkVHX0RFVl9JREgJCQkJMHgwMDAz Cj4gKwo+ICsvKiBEZXZpY2UgUmV2aXNpb24sIGRlZmF1bHQgdmFsdWU6IDB4MTAgKi8KPiArI2Rl ZmluZSBSRUdfREVWX1JFVgkJCQkweDAwMDQKPiArCj4gKy8qIE9UUCBEQllURTUxMCwgZGVmYXVs dCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19PVFBfREJZVEU1MTAJCQkweDAwMDYKPiAr Cj4gKy8qIFN5c3RlbSBDb250cm9sICMxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZp bmUgUkVHX1NZU19DVFJMMQkJCQkweDAwMDgKPiArI2RlZmluZSBCSVRfU1lTX0NUUkwxX09UUFZN VVRFT1ZSX1NFVAkJQklUKDcpCj4gKyNkZWZpbmUgQklUX1NZU19DVFJMMV9WU1lOQ1BJTgkJCUJJ VCg2KQo+ICsjZGVmaW5lIEJJVF9TWVNfQ1RSTDFfT1RQQURST1BPVlJfU0VUCQlCSVQoNSkKPiAr I2RlZmluZSBCSVRfU1lTX0NUUkwxX0JMT0NLX0REQ19CWV9IUEQJCUJJVCg0KQo+ICsjZGVmaW5l IEJJVF9TWVNfQ1RSTDFfT1RQMlhWT1ZSX0VOCQlCSVQoMykKPiArI2RlZmluZSBCSVRfU1lTX0NU UkwxX09UUDJYQU9WUl9FTgkJQklUKDIpCj4gKyNkZWZpbmUgQklUX1NZU19DVFJMMV9UWF9DVFJM X0hETUkJCUJJVCgxKQo+ICsjZGVmaW5lIEJJVF9TWVNfQ1RSTDFfT1RQQU1VVEVPVlJfU0VUCQlC SVQoMCkKPiArCj4gKy8qIFN5c3RlbSBDb250cm9sIERQRCwgZGVmYXVsdCB2YWx1ZTogMHg5MCAq Lwo+ICsjZGVmaW5lIFJFR19EUEQJCQkJCTB4MDAwYgo+ICsjZGVmaW5lIEJJVF9EUERfUFdST05f UExMCQkJQklUKDcpCj4gKyNkZWZpbmUgQklUX0RQRF9QRE5UWDEyCQkJCUJJVCg2KQo+ICsjZGVm aW5lIEJJVF9EUERfUEROUlgxMgkJCQlCSVQoNSkKPiArI2RlZmluZSBCSVRfRFBEX09TQ19FTgkJ CQlCSVQoNCkKPiArI2RlZmluZSBCSVRfRFBEX1BXUk9OX0hTSUMJCQlCSVQoMykKPiArI2RlZmlu ZSBCSVRfRFBEX1BESURDS19OCQkJQklUKDIpCj4gKyNkZWZpbmUgQklUX0RQRF9QRF9NSExfQ0xL X04JCQlCSVQoMSkKPiArCj4gKy8qIER1YWwgbGluayBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAw eDAwICovCj4gKyNkZWZpbmUgUkVHX0RDVEwJCQkJMHgwMDBkCj4gKyNkZWZpbmUgQklUX0RDVExf VERNX0xDTEtfUEhBU0UJCQlCSVQoNykKPiArI2RlZmluZSBCSVRfRENUTF9IU0lDX0NMS19QSEFT RQkJCUJJVCg2KQo+ICsjZGVmaW5lIEJJVF9EQ1RMX0NUU19UQ0tfUEhBU0UJCQlCSVQoNSkKPiAr I2RlZmluZSBCSVRfRENUTF9FWFRfRERDX1NFTAkJCUJJVCg0KQo+ICsjZGVmaW5lIEJJVF9EQ1RM X1RSQU5TQ09ERQkJCUJJVCgzKQo+ICsjZGVmaW5lIEJJVF9EQ1RMX0hTSUNfUlhfU1RST0JFX1BI QVNFCQlCSVQoMikKPiArI2RlZmluZSBCSVRfRENUTF9IU0lDX1RYX0JJU1RfU1RBUlRfU0VMCQlC SVQoMSkKPiArI2RlZmluZSBCSVRfRENUTF9UQ0xLTlhfUEhBU0UJCQlCSVQoMCkKPiArCj4gKy8q IFBXRCBTb2Z0d2FyZSBSZXNldCwgZGVmYXVsdCB2YWx1ZTogMHgyMCAqLwo+ICsjZGVmaW5lIFJF R19QV0RfU1JTVAkJCQkweDAwMGUKPiArI2RlZmluZSBCSVRfUFdEX1NSU1RfQ09DX0RPQ19SU1QJ CUJJVCg3KQo+ICsjZGVmaW5lIEJJVF9QV0RfU1JTVF9DQlVTX1JTVF9TVwkJQklUKDYpCj4gKyNk ZWZpbmUgQklUX1BXRF9TUlNUX0NCVVNfUlNUX1NXX0VOCQlCSVQoNSkKPiArI2RlZmluZSBCSVRf UFdEX1NSU1RfTUhMRklGT19SU1QJCUJJVCg0KQo+ICsjZGVmaW5lIEJJVF9QV0RfU1JTVF9DQlVT X1JTVAkJCUJJVCgzKQo+ICsjZGVmaW5lIEJJVF9QV0RfU1JTVF9TV19SU1RfQVVUTwkJQklUKDIp Cj4gKyNkZWZpbmUgQklUX1BXRF9TUlNUX0hEQ1AyWF9TV19SU1QJCUJJVCgxKQo+ICsjZGVmaW5l IEJJVF9QV0RfU1JTVF9TV19SU1QJCQlCSVQoMCkKPiArCj4gKy8qIEFLU1ZfMSwgZGVmYXVsdCB2 YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19BS1NWXzEJCQkJMHgwMDFkCj4gKwo+ICsvKiBW aWRlbyBIIFJlc29sdXRpb24gIzEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBS RUdfSF9SRVNMCQkJCTB4MDAzYQo+ICsKPiArLyogVmlkZW8gTW9kZSwgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLwo+ICsjZGVmaW5lIFJFR19WSURfTU9ERQkJCQkweDAwNGEKPiArI2RlZmluZSBCSVRf VklEX01PREVfTTEwODBQCQkJQklUKDYpCj4gKwo+ICsvKiBWaWRlbyBJbnB1dCBNb2RlLCBkZWZh dWx0IHZhbHVlOiAweGMwICovCj4gKyNkZWZpbmUgUkVHX1ZJRF9PVlJSRAkJCQkweDAwNTEKPiAr I2RlZmluZSBCSVRfVklEX09WUlJEX1BQX0FVVE9fRElTQUJMRQkJQklUKDcpCj4gKyNkZWZpbmUg QklUX1ZJRF9PVlJSRF9NMTA4MFBfT1ZSUkQJCUJJVCg2KQo+ICsjZGVmaW5lIEJJVF9WSURfT1ZS UkRfTUlOSVZTWU5DX09OCQlCSVQoNSkKPiArI2RlZmluZSBCSVRfVklEX09WUlJEXzNEQ09OVl9F Tl9GUkFNRV9QQUNLCUJJVCg0KQo+ICsjZGVmaW5lIEJJVF9WSURfT1ZSUkRfRU5BQkxFX0FVVE9f UEFUSF9FTglCSVQoMykKPiArI2RlZmluZSBCSVRfVklEX09WUlJEX0VOUkdCMllDQkNSX09WUlJE CQlCSVQoMikKPiArI2RlZmluZSBCSVRfVklEX09WUlJEX0VORE9XTlNBTVBMRV9PVlJSRAlCSVQo MCkKPiArCj4gKy8qIEkyQyBBZGRyZXNzIHJlYXNzaWdubWVudCwgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLwo+ICsjZGVmaW5lIFJFR19QQUdFX01ITFNQRUNfQUREUgkJCTB4MDA1Nwo+ICsjZGVmaW5l IFJFR19QQUdFN19BRERSCQkJCTB4MDA1OAo+ICsjZGVmaW5lIFJFR19QQUdFOF9BRERSCQkJCTB4 MDA1Ywo+ICsKPiArLyogRmFzdCBJbnRlcnJ1cHQgU3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCj4gKyNkZWZpbmUgUkVHX0ZBU1RfSU5UUl9TVEFUCQkJMHgwMDVmCj4gKyNkZWZpbmUgTEVO X0ZBU1RfSU5UUl9TVEFUCQkJNwo+ICsjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9USU1SCQkJ OAo+ICsjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9JTlQyCQkJOQo+ICsjZGVmaW5lIEJJVF9G QVNUX0lOVFJfU1RBVF9EREMJCQkxMAo+ICsjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9TQ0RU CQkJMTEKPiArI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfSU5GUgkJCTEzCj4gKyNkZWZpbmUg QklUX0ZBU1RfSU5UUl9TVEFUX0VESUQJCQkxNAo+ICsjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RB VF9IRENQCQkJMTUKPiArI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfTVNDCQkJMTYKPiArI2Rl ZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfTUVSUgkJCTE3Cj4gKyNkZWZpbmUgQklUX0ZBU1RfSU5U Ul9TVEFUX0cyV0IJCQkxOAo+ICsjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9HMldCX0VSUgkJ MTkKPiArI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfRElTQwkJCTI4Cj4gKyNkZWZpbmUgQklU X0ZBU1RfSU5UUl9TVEFUX0JMT0NLCQkzMAo+ICsjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9M VFJOCQkJMzEKPiArI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfSERDUDIJCTMyCj4gKyNkZWZp bmUgQklUX0ZBU1RfSU5UUl9TVEFUX1RETQkJCTQyCj4gKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9T VEFUX0NPQwkJCTUxCj4gKwo+ICsvKiBHUElPIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MTUg Ki8KPiArI2RlZmluZSBSRUdfR1BJT19DVFJMMQkJCQkweDAwNmUKPiArI2RlZmluZSBCSVRfQ1RS TDFfR1BJT19JXzgJCQlCSVQoNSkKPiArI2RlZmluZSBCSVRfQ1RSTDFfR1BJT19PRU5fOAkJCUJJ VCg0KQo+ICsjZGVmaW5lIEJJVF9DVFJMMV9HUElPX0lfNwkJCUJJVCgzKQo+ICsjZGVmaW5lIEJJ VF9DVFJMMV9HUElPX09FTl83CQkJQklUKDIpCj4gKyNkZWZpbmUgQklUX0NUUkwxX0dQSU9fSV82 CQkJQklUKDEpCj4gKyNkZWZpbmUgQklUX0NUUkwxX0dQSU9fT0VOXzYJCQlCSVQoMCkKPiArCj4g Ky8qIEludGVycnVwdCBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDA2ICovCj4gKyNkZWZpbmUg UkVHX0lOVF9DVFJMCQkJCTB4MDA2Zgo+ICsjZGVmaW5lIEJJVF9JTlRfQ1RSTF9TT0ZUV0FSRV9X UAkJQklUKDcpCj4gKyNkZWZpbmUgQklUX0lOVF9DVFJMX0lOVFJfT0QJCQlCSVQoMikKPiArI2Rl ZmluZSBCSVRfSU5UX0NUUkxfSU5UUl9QT0xBUklUWQkJQklUKDEpCj4gKwo+ICsvKiBJbnRlcnJ1 cHQgU3RhdGUsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfSU5UUl9TVEFU RQkJCQkweDAwNzAKPiArI2RlZmluZSBCSVRfSU5UUl9TVEFURV9JTlRSX1NUQVRFCQlCSVQoMCkK PiArCj4gKy8qIEludGVycnVwdCBTb3VyY2UgIzEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiAr I2RlZmluZSBSRUdfSU5UUjEJCQkJMHgwMDcxCj4gKwo+ICsvKiBJbnRlcnJ1cHQgU291cmNlICMy LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0lOVFIyCQkJCTB4MDA3Mgo+ ICsKPiArLyogSW50ZXJydXB0IFNvdXJjZSAjMywgZGVmYXVsdCB2YWx1ZTogMHgwMSAqLwo+ICsj ZGVmaW5lIFJFR19JTlRSMwkJCQkweDAwNzMKPiArI2RlZmluZSBCSVRfRERDX0NNRF9ET05FCQkJ QklUKDMpCj4gKwo+ICsvKiBJbnRlcnJ1cHQgU291cmNlICM1LCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCj4gKyNkZWZpbmUgUkVHX0lOVFI1CQkJCTB4MDA3NAo+ICsKPiArLyogSW50ZXJydXB0ICMx IE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfSU5UUjFfTUFTSwkJ CQkweDAwNzUKPiArCj4gKy8qIEludGVycnVwdCAjMiBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCj4gKyNkZWZpbmUgUkVHX0lOVFIyX01BU0sJCQkJMHgwMDc2Cj4gKwo+ICsvKiBJbnRlcnJ1 cHQgIzMgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19JTlRSM19N QVNLCQkJCTB4MDA3Nwo+ICsKPiArLyogSW50ZXJydXB0ICM1IE1hc2ssIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfSU5UUjVfTUFTSwkJCQkweDAwNzgKPiArI2RlZmluZSBC SVRfSU5UUl9TQ0RUX0NIQU5HRQkJCUJJVCgwKQo+ICsKPiArLyogSG90IFBsdWcgQ29ubmVjdGlv biBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDQ1ICovCj4gKyNkZWZpbmUgUkVHX0hQRF9DVFJM CQkJCTB4MDA3OQo+ICsjZGVmaW5lIEJJVF9IUERfQ1RSTF9IUERfRFNfU0lHTkFMCQlCSVQoNykK PiArI2RlZmluZSBCSVRfSFBEX0NUUkxfSFBEX09VVF9PRF9FTgkJQklUKDYpCj4gKyNkZWZpbmUg QklUX0hQRF9DVFJMX0hQRF9ISUdICQkJQklUKDUpCj4gKyNkZWZpbmUgQklUX0hQRF9DVFJMX0hQ RF9PVVRfT1ZSX0VOCQlCSVQoNCkKPiArI2RlZmluZSBCSVRfSFBEX0NUUkxfR1BJT19JXzEJCQlC SVQoMykKPiArI2RlZmluZSBCSVRfSFBEX0NUUkxfR1BJT19PRU5fMQkJCUJJVCgyKQo+ICsjZGVm aW5lIEJJVF9IUERfQ1RSTF9HUElPX0lfMAkJCUJJVCgxKQo+ICsjZGVmaW5lIEJJVF9IUERfQ1RS TF9HUElPX09FTl8wCQkJQklUKDApCj4gKwo+ICsvKiBHUElPIENvbnRyb2wsIGRlZmF1bHQgdmFs dWU6IDB4NTUgKi8KPiArI2RlZmluZSBSRUdfR1BJT19DVFJMCQkJCTB4MDA3YQo+ICsjZGVmaW5l IEJJVF9DVFJMX0dQSU9fSV81CQkJQklUKDcpCj4gKyNkZWZpbmUgQklUX0NUUkxfR1BJT19PRU5f NQkJCUJJVCg2KQo+ICsjZGVmaW5lIEJJVF9DVFJMX0dQSU9fSV80CQkJQklUKDUpCj4gKyNkZWZp bmUgQklUX0NUUkxfR1BJT19PRU5fNAkJCUJJVCg0KQo+ICsjZGVmaW5lIEJJVF9DVFJMX0dQSU9f SV8zCQkJQklUKDMpCj4gKyNkZWZpbmUgQklUX0NUUkxfR1BJT19PRU5fMwkJCUJJVCgyKQo+ICsj ZGVmaW5lIEJJVF9DVFJMX0dQSU9fSV8yCQkJQklUKDEpCj4gKyNkZWZpbmUgQklUX0NUUkxfR1BJ T19PRU5fMgkJCUJJVCgwKQo+ICsKPiArLyogSW50ZXJydXB0IFNvdXJjZSA3LCBkZWZhdWx0IHZh bHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0lOVFI3CQkJCTB4MDA3Ygo+ICsKPiArLyogSW50 ZXJydXB0IFNvdXJjZSA4LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0lO VFI4CQkJCTB4MDA3Ywo+ICsKPiArLyogSW50ZXJydXB0ICM3IE1hc2ssIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfSU5UUjdfTUFTSwkJCQkweDAwN2QKPiArCj4gKy8qIElu dGVycnVwdCAjOCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0lO VFI4X01BU0sJCQkJMHgwMDdlCj4gKyNkZWZpbmUgQklUX0NFQV9ORVdfVlNJCQkJCUJJVCgyKQo+ ICsjZGVmaW5lIEJJVF9DRUFfTkVXX0FWSQkJCQlCSVQoMSkKPiArCj4gKy8qIElFRUUsIGRlZmF1 bHQgdmFsdWU6IDB4MTAgKi8KPiArI2RlZmluZSBSRUdfVE1EU19DQ1RSTAkJCQkweDAwODAKPiAr I2RlZmluZSBCSVRfVE1EU19DQ1RSTF9UTURTX09FCQkJQklUKDQpCj4gKwo+ICsvKiBUTURTIENv bnRyb2wgIzQsIGRlZmF1bHQgdmFsdWU6IDB4MDIgKi8KPiArI2RlZmluZSBSRUdfVE1EU19DVFJM NAkJCQkweDAwODUKPiArI2RlZmluZSBCSVRfVE1EU19DVFJMNF9TQ0RUX0NLRFRfU0VMCQlCSVQo MSkKPiArI2RlZmluZSBCSVRfVE1EU19DVFJMNF9UWF9FTl9CWV9TQ0RUCQlCSVQoMCkKPiArCj4g Ky8qIEJJU1QgQ05UTCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19CSVNU X0NUUkwJCQkJMHgwMGJiCj4gKyNkZWZpbmUgQklUX1JYQklTVF9WR0JfRU4JCQlCSVQoNykKPiAr I2RlZmluZSBCSVRfVFhCSVNUX1ZHQl9FTgkJCUJJVCg2KQo+ICsjZGVmaW5lIEJJVF9CSVNUX1NU QVJUX1NFTAkJCUJJVCg1KQo+ICsjZGVmaW5lIEJJVF9CSVNUX1NUQVJUX0JJVAkJCUJJVCg0KQo+ ICsjZGVmaW5lIEJJVF9CSVNUX0FMV0FZU19PTgkJCUJJVCgzKQo+ICsjZGVmaW5lIEJJVF9CSVNU X1RSQU5TCQkJCUJJVCgyKQo+ICsjZGVmaW5lIEJJVF9CSVNUX1JFU0VUCQkJCUJJVCgxKQo+ICsj ZGVmaW5lIEJJVF9CSVNUX0VOCQkJCUJJVCgwKQo+ICsKPiArLyogQklTVCBEVVJBVElPTjAsIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfQklTVF9URVNUX1NFTAkJCTB4MDBi ZAo+ICsjZGVmaW5lIE1TS19CSVNUX1RFU1RfU0VMX0JJU1RfUEFUVF9TRUwJCTB4MGYKPiArCj4g Ky8qIEJJU1QgVklERU9fTU9ERSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJF R19CSVNUX1ZJREVPX01PREUJCQkweDAwYmUKPiArI2RlZmluZSBNU0tfQklTVF9WSURFT19NT0RF X0JJU1RfVklERU9fTU9ERV8zXzAJMHgwZgo+ICsKPiArLyogQklTVCBEVVJBVElPTjAsIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfQklTVF9EVVJBVElPTl8wCQkJMHgwMGJm Cj4gKwo+ICsvKiBCSVNUIERVUkFUSU9OMSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVm aW5lIFJFR19CSVNUX0RVUkFUSU9OXzEJCQkweDAwYzAKPiArCj4gKy8qIEJJU1QgRFVSQVRJT04y LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0JJU1RfRFVSQVRJT05fMgkJ CTB4MDBjMQo+ICsKPiArLyogQklTVCA4QklUX1BBVFRFUk4sIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KPiArI2RlZmluZSBSRUdfQklTVF84QklUX1BBVFRFUk4JCQkweDAwYzIKPiArCj4gKy8qIExN IEREQywgZGVmYXVsdCB2YWx1ZTogMHg4MCAqLwo+ICsjZGVmaW5lIFJFR19MTV9EREMJCQkJMHgw MGM3Cj4gKyNkZWZpbmUgQklUX0xNX0REQ19TV19UUElfRU5fRElTQUJMRUQJCUJJVCg3KQo+ICsK PiArI2RlZmluZSBCSVRfTE1fRERDX1ZJREVPX01VVEVfRU4JCUJJVCg1KQo+ICsjZGVmaW5lIEJJ VF9MTV9ERENfRERDX1RQSV9TVwkJCUJJVCgyKQo+ICsjZGVmaW5lIEJJVF9MTV9ERENfRERDX0dS QU5UCQkJQklUKDEpCj4gKyNkZWZpbmUgQklUX0xNX0REQ19ERENfR1BVX1JFUVVFU1QJCUJJVCgw KQo+ICsKPiArLyogRERDIEkyQyBNYW51YWwsIGRlZmF1bHQgdmFsdWU6IDB4MDMgKi8KPiArI2Rl ZmluZSBSRUdfRERDX01BTlVBTAkJCQkweDAwZWMKPiArI2RlZmluZSBCSVRfRERDX01BTlVBTF9N QU5fRERDCQkJQklUKDcpCj4gKyNkZWZpbmUgQklUX0REQ19NQU5VQUxfVlBfU0VMCQkJQklUKDYp Cj4gKyNkZWZpbmUgQklUX0REQ19NQU5VQUxfRFNEQQkJCUJJVCg1KQo+ICsjZGVmaW5lIEJJVF9E RENfTUFOVUFMX0RTQ0wJCQlCSVQoNCkKPiArI2RlZmluZSBCSVRfRERDX01BTlVBTF9HQ1BfSFdf Q1RMX0VOCQlCSVQoMykKPiArI2RlZmluZSBCSVRfRERDX01BTlVBTF9ERENNX0FCT1JUX1dQCQlC SVQoMikKPiArI2RlZmluZSBCSVRfRERDX01BTlVBTF9JT19EU0RBCQkJQklUKDEpCj4gKyNkZWZp bmUgQklUX0REQ19NQU5VQUxfSU9fRFNDTAkJCUJJVCgwKQo+ICsKPiArLyogRERDIEkyQyBUYXJn ZXQgU2xhdmUgQWRkcmVzcywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19E RENfQUREUgkJCQkweDAwZWQKPiArI2RlZmluZSBNU0tfRERDX0FERFJfRERDX0FERFIJCQkweGZl Cj4gKwo+ICsvKiBEREMgSTJDIFRhcmdldCBTZWdtZW50IEFkZHJlc3MsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfRERDX1NFR00JCQkJMHgwMGVlCj4gKwo+ICsvKiBEREMg STJDIFRhcmdldCBPZmZzZXQgQWRkcmVzcywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVm aW5lIFJFR19ERENfT0ZGU0VUCQkJCTB4MDBlZgo+ICsKPiArLyogRERDIEkyQyBEYXRhIEluIGNv dW50ICMxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0REQ19ESU5fQ05U MQkJCTB4MDBmMAo+ICsKPiArLyogRERDIEkyQyBEYXRhIEluIGNvdW50ICMyLCBkZWZhdWx0IHZh bHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0REQ19ESU5fQ05UMgkJCTB4MDBmMQo+ICsjZGVm aW5lIE1TS19ERENfRElOX0NOVDJfRERDX0RJTl9DTlRfOV84CTB4MDMKPiArCj4gKy8qIEREQyBJ MkMgU3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDA0ICovCj4gKyNkZWZpbmUgUkVHX0REQ19TVEFU VVMJCQkJMHgwMGYyCj4gKyNkZWZpbmUgQklUX0REQ19TVEFUVVNfRERDX0JVU19MT1cJCUJJVCg2 KQo+ICsjZGVmaW5lIEJJVF9ERENfU1RBVFVTX0REQ19OT19BQ0sJCUJJVCg1KQo+ICsjZGVmaW5l IEJJVF9ERENfU1RBVFVTX0REQ19JMkNfSU5fUFJPRwkJQklUKDQpCj4gKyNkZWZpbmUgQklUX0RE Q19TVEFUVVNfRERDX0ZJRk9fRlVMTAkJQklUKDMpCj4gKyNkZWZpbmUgQklUX0REQ19TVEFUVVNf RERDX0ZJRk9fRU1QVFkJCUJJVCgyKQo+ICsjZGVmaW5lIEJJVF9ERENfU1RBVFVTX0REQ19GSUZP X1JFQURfSU5fU1VFCUJJVCgxKQo+ICsjZGVmaW5lIEJJVF9ERENfU1RBVFVTX0REQ19GSUZPX1dS SVRFX0lOX1VTRQlCSVQoMCkKPiArCj4gKy8qIEREQyBJMkMgQ29tbWFuZCwgZGVmYXVsdCB2YWx1 ZTogMHg3MCAqLwo+ICsjZGVmaW5lIFJFR19ERENfQ01ECQkJCTB4MDBmMwo+ICsjZGVmaW5lIEJJ VF9ERENfQ01EX0hEQ1BfRERDX0VOCQkJQklUKDYpCj4gKyNkZWZpbmUgQklUX0REQ19DTURfU0RB X0RFTF9FTgkJCUJJVCg1KQo+ICsjZGVmaW5lIEJJVF9ERENfQ01EX0REQ19GTFRfRU4JCQlCSVQo NCkKPiArCj4gKyNkZWZpbmUgTVNLX0REQ19DTURfRERDX0NNRAkJCTB4MGYKPiArI2RlZmluZSBW QUxfRERDX0NNRF9FTkhfRERDX1JFQURfTk9fQUNLCQkweDA0Cj4gKyNkZWZpbmUgVkFMX0REQ19D TURfRERDX0NNRF9DTEVBUl9GSUZPCQkweDA5Cj4gKyNkZWZpbmUgVkFMX0REQ19DTURfRERDX0NN RF9BQk9SVAkJMHgwZgo+ICsKPiArLyogRERDIEkyQyBGSUZPIERhdGEgSW4vT3V0LCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0REQ19EQVRBCQkJCTB4MDBmNAo+ICsKPiAr LyogRERDIEkyQyBEYXRhIE91dCBDb3VudGVyLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNk ZWZpbmUgUkVHX0REQ19ET1VUX0NOVAkJCTB4MDBmNQo+ICsjZGVmaW5lIEJJVF9ERENfRE9VVF9D TlRfRERDX0RFTEFZX0NOVF84CUJJVCg3KQo+ICsjZGVmaW5lIE1TS19ERENfRE9VVF9DTlRfRERD X0RBVEFfT1VUX0NOVAkweDFmCj4gKwo+ICsvKiBEREMgSTJDIERlbGF5IENvdW50LCBkZWZhdWx0 IHZhbHVlOiAweDE0ICovCj4gKyNkZWZpbmUgUkVHX0REQ19ERUxBWV9DTlQJCQkweDAwZjYKPiAr Cj4gKy8qIFRlc3QgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHg4MCAqLwo+ICsjZGVmaW5lIFJF R19URVNUX1RYQ1RSTAkJCQkweDAwZjcKPiArI2RlZmluZSBCSVRfVEVTVF9UWENUUkxfUkNMS19S RUZfU0VMCQlCSVQoNykKPiArI2RlZmluZSBCSVRfVEVTVF9UWENUUkxfUENMS19SRUZfU0VMCQlC SVQoNikKPiArI2RlZmluZSBNU0tfVEVTVF9UWENUUkxfQllQQVNTX1BMTF9DTEsJCTB4M2MKPiAr I2RlZmluZSBCSVRfVEVTVF9UWENUUkxfSERNSV9NT0RFCQlCSVQoMSkKPiArI2RlZmluZSBCSVRf VEVTVF9UWENUUkxfVFNUX1BMTENLCQlCSVQoMCkKPiArCj4gKy8qIENCVVMgQWRkcmVzcywgZGVm YXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19QQUdFX0NCVVNfQUREUgkJCTB4MDBm OAo+ICsKPiArLyogSTJDIERldmljZSBBZGRyZXNzIHJlLWFzc2lnbm1lbnQgKi8KPiArI2RlZmlu ZSBSRUdfUEFHRTFfQUREUgkJCQkweDAwZmMKPiArI2RlZmluZSBSRUdfUEFHRTJfQUREUgkJCQkw eDAwZmQKPiArI2RlZmluZSBSRUdfUEFHRTNfQUREUgkJCQkweDAwZmUKPiArI2RlZmluZSBSRUdf SFdfVFBJX0FERFIJCQkJMHgwMGZmCj4gKwo+ICsvKiBVU0JUIENUUkwwLCBkZWZhdWx0IHZhbHVl OiAweDAwICovCj4gKyNkZWZpbmUgUkVHX1VUU1JTVAkJCQkweDAxMDAKPiArI2RlZmluZSBCSVRf VVRTUlNUX0ZDX1NSU1QJCQlCSVQoNSkKPiArI2RlZmluZSBCSVRfVVRTUlNUX0tFRVBFUl9TUlNU CQkJQklUKDQpCj4gKyNkZWZpbmUgQklUX1VUU1JTVF9IVFhfU1JTVAkJCUJJVCgzKQo+ICsjZGVm aW5lIEJJVF9VVFNSU1RfVFJYX1NSU1QJCQlCSVQoMikKPiArI2RlZmluZSBCSVRfVVRTUlNUX1RU WF9TUlNUCQkJQklUKDEpCj4gKyNkZWZpbmUgQklUX1VUU1JTVF9IUlhfU1JTVAkJCUJJVCgwKQo+ ICsKPiArLyogSFNJQyBSWCBDb250cm9sMywgZGVmYXVsdCB2YWx1ZTogMHgwNyAqLwo+ICsjZGVm aW5lIFJFR19IUlhDVFJMMwkJCQkweDAxMDQKPiArI2RlZmluZSBNU0tfSFJYQ1RSTDNfSFJYX0FG RkNUUkwJCTB4ZjAKPiArI2RlZmluZSBCSVRfSFJYQ1RSTDNfSFJYX09VVF9FTgkJCUJJVCgyKQo+ ICsjZGVmaW5lIEJJVF9IUlhDVFJMM19TVEFUVVNfRU4JCQlCSVQoMSkKPiArI2RlZmluZSBCSVRf SFJYQ1RSTDNfSFJYX1NUQVlfUkVTRVQJCUJJVCgwKQo+ICsKPiArLyogSFNJQyBSWCBJTlQgUmVn aXN0ZXJzICovCj4gKyNkZWZpbmUgUkVHX0hSWElOVEwJCQkJMHgwMTExCj4gKyNkZWZpbmUgUkVH X0hSWElOVEgJCQkJMHgwMTEyCj4gKwo+ICsvKiBURE0gVFggTlVNQklUUywgZGVmYXVsdCB2YWx1 ZTogMHgwYyAqLwo+ICsjZGVmaW5lIFJFR19UVFhOVU1CCQkJCTB4MDExNgo+ICsjZGVmaW5lIE1T S19UVFhOVU1CX1RUWF9BRkZDVFJMXzNfMAkJMHhmMAo+ICsjZGVmaW5lIEJJVF9UVFhOVU1CX1RU WF9DT00xX0FUX1NZTkNfV0FJVAlCSVQoMykKPiArI2RlZmluZSBNU0tfVFRYTlVNQl9UVFhfTlVN QlBTXzJfMAkJMHgwNwo+ICsKPiArLyogVERNIFRYIE5VTVNQSVNZTSwgZGVmYXVsdCB2YWx1ZTog MHgwNCAqLwo+ICsjZGVmaW5lIFJFR19UVFhTUElOVU1TCQkJCTB4MDExNwo+ICsKPiArLyogVERN IFRYIE5VTUhTSUNTWU0sIGRlZmF1bHQgdmFsdWU6IDB4MTQgKi8KPiArI2RlZmluZSBSRUdfVFRY SFNJQ05VTVMJCQkJMHgwMTE4Cj4gKwo+ICsvKiBURE0gVFggTlVNVE9UU1lNLCBkZWZhdWx0IHZh bHVlOiAweDE4ICovCj4gKyNkZWZpbmUgUkVHX1RUWFRPVE5VTVMJCQkJMHgwMTE5Cj4gKwo+ICsv KiBURE0gVFggSU5UIExvdywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19U VFhJTlRMCQkJCTB4MDEzNgo+ICsjZGVmaW5lIEJJVF9UVFhJTlRMX1RUWF9JTlRSNwkJCUJJVCg3 KQo+ICsjZGVmaW5lIEJJVF9UVFhJTlRMX1RUWF9JTlRSNgkJCUJJVCg2KQo+ICsjZGVmaW5lIEJJ VF9UVFhJTlRMX1RUWF9JTlRSNQkJCUJJVCg1KQo+ICsjZGVmaW5lIEJJVF9UVFhJTlRMX1RUWF9J TlRSNAkJCUJJVCg0KQo+ICsjZGVmaW5lIEJJVF9UVFhJTlRMX1RUWF9JTlRSMwkJCUJJVCgzKQo+ ICsjZGVmaW5lIEJJVF9UVFhJTlRMX1RUWF9JTlRSMgkJCUJJVCgyKQo+ICsjZGVmaW5lIEJJVF9U VFhJTlRMX1RUWF9JTlRSMQkJCUJJVCgxKQo+ICsjZGVmaW5lIEJJVF9UVFhJTlRMX1RUWF9JTlRS MAkJCUJJVCgwKQo+ICsKPiArLyogVERNIFRYIElOVCBIaWdoLCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCj4gKyNkZWZpbmUgUkVHX1RUWElOVEgJCQkJMHgwMTM3Cj4gKyNkZWZpbmUgQklUX1RUWElO VEhfVFRYX0lOVFIxNQkJCUJJVCg3KQo+ICsjZGVmaW5lIEJJVF9UVFhJTlRIX1RUWF9JTlRSMTQJ CQlCSVQoNikKPiArI2RlZmluZSBCSVRfVFRYSU5USF9UVFhfSU5UUjEzCQkJQklUKDUpCj4gKyNk ZWZpbmUgQklUX1RUWElOVEhfVFRYX0lOVFIxMgkJCUJJVCg0KQo+ICsjZGVmaW5lIEJJVF9UVFhJ TlRIX1RUWF9JTlRSMTEJCQlCSVQoMykKPiArI2RlZmluZSBCSVRfVFRYSU5USF9UVFhfSU5UUjEw CQkJQklUKDIpCj4gKyNkZWZpbmUgQklUX1RUWElOVEhfVFRYX0lOVFI5CQkJQklUKDEpCj4gKyNk ZWZpbmUgQklUX1RUWElOVEhfVFRYX0lOVFI4CQkJQklUKDApCj4gKwo+ICsvKiBURE0gUlggQ29u dHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgxYyAqLwo+ICsjZGVmaW5lIFJFR19UUlhDVFJMCQkJCTB4 MDEzYgo+ICsjZGVmaW5lIEJJVF9UUlhDVFJMX1RSWF9DTFJfV1ZBTExPVwkJQklUKDQpCj4gKyNk ZWZpbmUgQklUX1RSWENUUkxfVFJYX0ZST01fU0VfQ09DCQlCSVQoMykKPiArI2RlZmluZSBNU0tf VFJYQ1RSTF9UUlhfTlVNQlBTXzJfMAkJMHgwNwo+ICsKPiArLyogVERNIFJYIE5VTVNQSVNZTSwg ZGVmYXVsdCB2YWx1ZTogMHgwNCAqLwo+ICsjZGVmaW5lIFJFR19UUlhTUElOVU1TCQkJCTB4MDEz Ywo+ICsKPiArLyogVERNIFJYIE5VTUhTSUNTWU0sIGRlZmF1bHQgdmFsdWU6IDB4MTQgKi8KPiAr I2RlZmluZSBSRUdfVFJYSFNJQ05VTVMJCQkJMHgwMTNkCj4gKwo+ICsvKiBURE0gUlggTlVNVE9U U1lNLCBkZWZhdWx0IHZhbHVlOiAweDE4ICovCj4gKyNkZWZpbmUgUkVHX1RSWFRPVE5VTVMJCQkJ MHgwMTNlCj4gKwo+ICsvKiBURE0gUlggU3RhdHVzIDJuZCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAq Lwo+ICsjZGVmaW5lIFJFR19UUlhTVEEyCQkJCTB4MDE1Ywo+ICsKPiArLyogVERNIFJYIElOVCBM b3csIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfVFJYSU5UTAkJCQkweDAx NjMKPiArCj4gKy8qIFRETSBSWCBJTlQgSGlnaCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsj ZGVmaW5lIFJFR19UUlhJTlRICQkJCTB4MDE2NAo+ICsKPiArLyogVERNIFJYIElOVE1BU0sgSGln aCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19UUlhJTlRNSAkJCQkweDAx NjYKPiArCj4gKy8qIEhTSUMgVFggQ1JUTCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVm aW5lIFJFR19IVFhDVFJMCQkJCTB4MDE2OQo+ICsjZGVmaW5lIEJJVF9IVFhDVFJMX0hUWF9BTExT QkVfU09QCQlCSVQoNCkKPiArI2RlZmluZSBCSVRfSFRYQ1RSTF9IVFhfUkdESU5WX1VTQgkJQklU KDMpCj4gKyNkZWZpbmUgQklUX0hUWENUUkxfSFRYX1JTUFRETV9CVVNZCQlCSVQoMikKPiArI2Rl ZmluZSBCSVRfSFRYQ1RSTF9IVFhfRFJWQ09OTjEJCUJJVCgxKQo+ICsjZGVmaW5lIEJJVF9IVFhD VFJMX0hUWF9EUlZSU1QxCQkJQklUKDApCj4gKwo+ICsvKiBIU0lDIFRYIElOVCBMb3csIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfSFRYSU5UTAkJCQkweDAxN2QKPiArCj4g Ky8qIEhTSUMgVFggSU5UIEhpZ2gsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBS RUdfSFRYSU5USAkJCQkweDAxN2UKPiArCj4gKy8qIEhTSUMgS2VlcGVyLCBkZWZhdWx0IHZhbHVl OiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0tFRVBFUgkJCQkweDAxODEKPiArI2RlZmluZSBNU0tf S0VFUEVSX0tFRVBFUl9NT0RFXzFfMAkJMHgwMwo+ICsKPiArLyogSFNJQyBGbG93IENvbnRyb2wg R2VuZXJhbCwgZGVmYXVsdCB2YWx1ZTogMHgwMiAqLwo+ICsjZGVmaW5lIFJFR19GQ0dDCQkJCTB4 MDE4Mwo+ICsjZGVmaW5lIEJJVF9GQ0dDX0hTSUNfRkNfSE9TVE1PREUJCUJJVCgxKQo+ICsjZGVm aW5lIEJJVF9GQ0dDX0hTSUNfRkNfRU5BQkxFCQkJQklUKDApCj4gKwo+ICsvKiBIU0lDIEZsb3cg Q29udHJvbCBDVFIxMywgZGVmYXVsdCB2YWx1ZTogMHhmYyAqLwo+ICsjZGVmaW5lIFJFR19GQ0NU UjEzCQkJCTB4MDE5MQo+ICsKPiArLyogSFNJQyBGbG93IENvbnRyb2wgQ1RSMTQsIGRlZmF1bHQg dmFsdWU6IDB4ZmYgKi8KPiArI2RlZmluZSBSRUdfRkNDVFIxNAkJCQkweDAxOTIKPiArCj4gKy8q IEhTSUMgRmxvdyBDb250cm9sIENUUjE1LCBkZWZhdWx0IHZhbHVlOiAweGZmICovCj4gKyNkZWZp bmUgUkVHX0ZDQ1RSMTUJCQkJMHgwMTkzCj4gKwo+ICsvKiBIU0lDIEZsb3cgQ29udHJvbCBDVFI1 MCwgZGVmYXVsdCB2YWx1ZTogMHgwMyAqLwo+ICsjZGVmaW5lIFJFR19GQ0NUUjUwCQkJCTB4MDFi Ngo+ICsKPiArLyogSFNJQyBGbG93IENvbnRyb2wgSU5UUjAsIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KPiArI2RlZmluZSBSRUdfRkNJTlRSMAkJCQkweDAxZWMKPiArI2RlZmluZSBSRUdfRkNJTlRS MQkJCQkweDAxZWQKPiArI2RlZmluZSBSRUdfRkNJTlRSMgkJCQkweDAxZWUKPiArI2RlZmluZSBS RUdfRkNJTlRSMwkJCQkweDAxZWYKPiArI2RlZmluZSBSRUdfRkNJTlRSNAkJCQkweDAxZjAKPiAr I2RlZmluZSBSRUdfRkNJTlRSNQkJCQkweDAxZjEKPiArI2RlZmluZSBSRUdfRkNJTlRSNgkJCQkw eDAxZjIKPiArI2RlZmluZSBSRUdfRkNJTlRSNwkJCQkweDAxZjMKPiArCj4gKy8qIFRETSBMb3cg TGF0ZW5jeSwgZGVmYXVsdCB2YWx1ZTogMHgyMCAqLwo+ICsjZGVmaW5lIFJFR19URE1MTENUTAkJ CQkweDAxZmMKPiArI2RlZmluZSBNU0tfVERNTExDVExfVFJYX0xMX1NFTF9NQU5VQUwJCTB4YzAK PiArI2RlZmluZSBNU0tfVERNTExDVExfVFJYX0xMX1NFTF9NT0RFCQkweDMwCj4gKyNkZWZpbmUg TVNLX1RETUxMQ1RMX1RUWF9MTF9TRUxfTUFOVUFMCQkweDBjCj4gKyNkZWZpbmUgQklUX1RETUxM Q1RMX1RUWF9MTF9USUVfTE9XCQlCSVQoMSkKPiArI2RlZmluZSBCSVRfVERNTExDVExfVFRYX0xM X1NFTF9NT0RFCQlCSVQoMCkKPiArCj4gKy8qIFRNRFMgMCBDbG9jayBDb250cm9sLCBkZWZhdWx0 IHZhbHVlOiAweDEwICovCj4gKyNkZWZpbmUgUkVHX1RNRFMwX0NDVFJMMQkJCTB4MDIxMAo+ICsj ZGVmaW5lIE1TS19UTURTMF9DQ1RSTDFfVEVTVF9TRUwJCTB4YzAKPiArI2RlZmluZSBNU0tfVE1E UzBfQ0NUUkwxX0NMSzFYX0NUTAkJMHgzMAo+ICsKPiArLyogVE1EUyBDbG9jayBFbmFibGUsIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfVE1EU19DTEtfRU4JCQkJMHgwMjEx Cj4gKyNkZWZpbmUgQklUX1RNRFNfQ0xLX0VOX0NMS19FTgkJCUJJVCgwKQo+ICsKPiArLyogVE1E UyBDaGFubmVsIEVuYWJsZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19U TURTX0NIX0VOCQkJCTB4MDIxMgo+ICsjZGVmaW5lIEJJVF9UTURTX0NIX0VOX0NIMF9FTgkJCUJJ VCg0KQo+ICsjZGVmaW5lIEJJVF9UTURTX0NIX0VOX0NIMTJfRU4JCQlCSVQoMCkKPiArCj4gKy8q IEJHUl9CSUFTLCBkZWZhdWx0IHZhbHVlOiAweDA3ICovCj4gKyNkZWZpbmUgUkVHX0JHUl9CSUFT CQkJCTB4MDIxNQo+ICsjZGVmaW5lIEJJVF9CR1JfQklBU19CR1JfRU4JCQlCSVQoNykKPiArI2Rl ZmluZSBNU0tfQkdSX0JJQVNfQklBU19CR1JfRAkJCTB4MGYKPiArCj4gKy8qIFRNRFMgMCBEaWdp dGFsIEkyQyBCVywgZGVmYXVsdCB2YWx1ZTogMHgwYSAqLwo+ICsjZGVmaW5lIFJFR19BTElDRTBf QldfSTJDCQkJMHgwMjMxCj4gKwo+ICsvKiBUTURTIDAgRGlnaXRhbCBab25lIENvbnRyb2wsIGRl ZmF1bHQgdmFsdWU6IDB4ZTAgKi8KPiArI2RlZmluZSBSRUdfQUxJQ0UwX1pPTkVfQ1RSTAkJCTB4 MDI0Ywo+ICsjZGVmaW5lIEJJVF9BTElDRTBfWk9ORV9DVFJMX0lDUlNUX04JCUJJVCg3KQo+ICsj ZGVmaW5lIEJJVF9BTElDRTBfWk9ORV9DVFJMX1VTRV9JTlRfRElWMjAJQklUKDYpCj4gKyNkZWZp bmUgTVNLX0FMSUNFMF9aT05FX0NUUkxfU1pPTkVfSTJDCQkweDMwCj4gKyNkZWZpbmUgTVNLX0FM SUNFMF9aT05FX0NUUkxfWk9ORV9DVFJMCQkweDBmCj4gKwo+ICsvKiBUTURTIDAgRGlnaXRhbCBQ TEwgTW9kZSBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0FM SUNFMF9NT0RFX0NUUkwJCQkweDAyNGQKPiArI2RlZmluZSBNU0tfQUxJQ0UwX01PREVfQ1RSTF9Q TExfTU9ERV9JMkMJMHgwYwo+ICsjZGVmaW5lIE1TS19BTElDRTBfTU9ERV9DVFJMX0RJVjIwX0NU UkwJCTB4MDMKPiArCj4gKy8qIE1ITCBUeCBDb250cm9sIDZ0aCwgZGVmYXVsdCB2YWx1ZTogMHhh MCAqLwo+ICsjZGVmaW5lIFJFR19NSExUWF9DVEw2CQkJCTB4MDI4NQo+ICsjZGVmaW5lIE1TS19N SExUWF9DVEw2X0VNSV9TRUwJCQkweGUwCj4gKyNkZWZpbmUgTVNLX01ITFRYX0NUTDZfVFhfQ0xL X1NIQVBFXzlfOAkJMHgwMwo+ICsKPiArLyogUGFja2V0IEZpbHRlcjAsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfUEtUX0ZJTFRFUl8wCQkJMHgwMjkwCj4gKyNkZWZpbmUg QklUX1BLVF9GSUxURVJfMF9EUk9QX0NFQV9HQU1VVF9QS1QJQklUKDcpCj4gKyNkZWZpbmUgQklU X1BLVF9GSUxURVJfMF9EUk9QX0NFQV9DUF9QS1QJQklUKDYpCj4gKyNkZWZpbmUgQklUX1BLVF9G SUxURVJfMF9EUk9QX01QRUdfUEtUCQlCSVQoNSkKPiArI2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8w X0RST1BfU1BJRl9QS1QJCUJJVCg0KQo+ICsjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzBfRFJPUF9B SUZfUEtUCQlCSVQoMykKPiArI2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8wX0RST1BfQVZJX1BLVAkJ QklUKDIpCj4gKyNkZWZpbmUgQklUX1BLVF9GSUxURVJfMF9EUk9QX0NUU19QS1QJCUJJVCgxKQo+ ICsjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzBfRFJPUF9HQ1BfUEtUCQlCSVQoMCkKPiArCj4gKy8q IFBhY2tldCBGaWx0ZXIxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX1BL VF9GSUxURVJfMQkJCTB4MDI5MQo+ICsjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzFfVlNJX09WRVJS SURFX0RJUwlCSVQoNykKPiArI2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8xX0FWSV9PVkVSUklERV9E SVMJQklUKDYpCj4gKyNkZWZpbmUgQklUX1BLVF9GSUxURVJfMV9EUk9QX0FVRElPX1BLVAkJQklU KDMpCj4gKyNkZWZpbmUgQklUX1BLVF9GSUxURVJfMV9EUk9QX0dFTjJfUEtUCQlCSVQoMikKPiAr I2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8xX0RST1BfR0VOX1BLVAkJQklUKDEpCj4gKyNkZWZpbmUg QklUX1BLVF9GSUxURVJfMV9EUk9QX1ZTSUZfUEtUCQlCSVQoMCkKPiArCj4gKy8qIFRNRFMgQ2xv Y2sgU3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDEwICovCj4gKyNkZWZpbmUgUkVHX1RNRFNfQ1NU QVRfUDMJCQkweDAyYTAKPiArI2RlZmluZSBCSVRfVE1EU19DU1RBVF9QM19SWF9IRE1JX0NQX0NM Ul9NVVRFCUJJVCg3KQo+ICsjZGVmaW5lIEJJVF9UTURTX0NTVEFUX1AzX1JYX0hETUlfQ1BfU0VU X01VVEUJQklUKDYpCj4gKyNkZWZpbmUgQklUX1RNRFNfQ1NUQVRfUDNfUlhfSERNSV9DUF9ORVdf Q1AJQklUKDUpCj4gKyNkZWZpbmUgQklUX1RNRFNfQ1NUQVRfUDNfQ0xSX0FWSQkJQklUKDMpCj4g KyNkZWZpbmUgQklUX1RNRFNfQ1NUQVRfUDNfU0NEVF9DTFJfQVZJX0RJUwlCSVQoMikKPiArI2Rl ZmluZSBCSVRfVE1EU19DU1RBVF9QM19TQ0RUCQkJQklUKDEpCj4gKyNkZWZpbmUgQklUX1RNRFNf Q1NUQVRfUDNfQ0tEVAkJCUJJVCgwKQo+ICsKPiArLyogUlhfSERNSSBDb250cm9sLCBkZWZhdWx0 IHZhbHVlOiAweDEwICovCj4gKyNkZWZpbmUgUkVHX1JYX0hETUlfQ1RSTDAJCQkweDAyYTEKPiAr I2RlZmluZSBCSVRfUlhfSERNSV9DVFJMMF9CWVBfRFZJRklMVF9TWU5DCUJJVCg1KQo+ICsjZGVm aW5lIEJJVF9SWF9IRE1JX0NUUkwwX0hETUlfTU9ERV9FTl9JVFNFTEZfQ0xSIEJJVCg0KQo+ICsj ZGVmaW5lIEJJVF9SWF9IRE1JX0NUUkwwX0hETUlfTU9ERV9TV19WQUxVRQlCSVQoMykKPiArI2Rl ZmluZSBCSVRfUlhfSERNSV9DVFJMMF9IRE1JX01PREVfT1ZFUldSSVRFCUJJVCgyKQo+ICsjZGVm aW5lIEJJVF9SWF9IRE1JX0NUUkwwX1JYX0hETUlfSERNSV9NT0RFX0VOCUJJVCgxKQo+ICsjZGVm aW5lIEJJVF9SWF9IRE1JX0NUUkwwX1JYX0hETUlfSERNSV9NT0RFCUJJVCgwKQo+ICsKPiArLyog UlhfSERNSSBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDM4ICovCj4gKyNkZWZpbmUgUkVHX1JY X0hETUlfQ1RSTDIJCQkweDAyYTMKPiArI2RlZmluZSBNU0tfUlhfSERNSV9DVFJMMl9JRExFX0NO VAkJMHhmMAo+ICsjZGVmaW5lIFZBTF9SWF9IRE1JX0NUUkwyX0lETEVfQ05UKG4pCQkoKG4pIDw8 IDQpCj4gKyNkZWZpbmUgQklUX1JYX0hETUlfQ1RSTDJfVVNFX0FWX01VVEUJCUJJVCgzKQo+ICsj ZGVmaW5lIEJJVF9SWF9IRE1JX0NUUkwyX1ZTSV9NT05fU0VMX1ZTSQlCSVQoMCkKPiArCj4gKy8q IFJYX0hETUkgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgwZiAqLwo+ICsjZGVmaW5lIFJFR19S WF9IRE1JX0NUUkwzCQkJMHgwMmE0Cj4gKyNkZWZpbmUgTVNLX1JYX0hETUlfQ1RSTDNfUFBfTU9E RV9DTEtfRU4JMHgwZgo+ICsKPiArLyogcnhfaGRtaSBDbGVhciBCdWZmZXIsIGRlZmF1bHQgdmFs dWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfUlhfSERNSV9DTFJfQlVGRkVSCQkJMHgwMmFjCj4g KyNkZWZpbmUgTVNLX1JYX0hETUlfQ0xSX0JVRkZFUl9BSUY0VlNJX0NNUAkweGMwCj4gKyNkZWZp bmUgQklUX1JYX0hETUlfQ0xSX0JVRkZFUl9VU0VfQUlGNFZTSQlCSVQoNSkKPiArI2RlZmluZSBC SVRfUlhfSERNSV9DTFJfQlVGRkVSX1ZTSV9DTFJfV19BVkkJQklUKDQpCj4gKyNkZWZpbmUgQklU X1JYX0hETUlfQ0xSX0JVRkZFUl9WU0lfSUVFRV9JRF9DSEtfRU4gQklUKDMpCj4gKyNkZWZpbmUg QklUX1JYX0hETUlfQ0xSX0JVRkZFUl9TV0FQX1ZTSV9JRUVFX0lECUJJVCgyKQo+ICsjZGVmaW5l IEJJVF9SWF9IRE1JX0NMUl9CVUZGRVJfQUlGX0NMUl9FTglCSVQoMSkKPiArI2RlZmluZSBCSVRf UlhfSERNSV9DTFJfQlVGRkVSX1ZTSV9DTFJfRU4JQklUKDApCj4gKwo+ICsvKiBSWF9IRE1JIFZT SSBIZWFkZXIxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX1JYX0hETUlf TU9OX1BLVF9IRUFERVIxCQkweDAyYjgKPiArCj4gKy8qIFJYX0hETUkgVlNJIE1ITCBNb25pdG9y LCBkZWZhdWx0IHZhbHVlOiAweDNjICovCj4gKyNkZWZpbmUgUkVHX1JYX0hETUlfVlNJRl9NSExf TU9OCQkweDAyZDcKPiArCj4gKyNkZWZpbmUgTVNLX1JYX0hETUlfVlNJRl9NSExfTU9OX1JYX0hE TUlfTUhMXzNEX0ZPUk1BVCAweDNjCj4gKyNkZWZpbmUgTVNLX1JYX0hETUlfVlNJRl9NSExfTU9O X1JYX0hETUlfTUhMX1ZJRF9GT1JNQVQgMHgwMwo+ICsKPiArLyogSW50ZXJydXB0IFNvdXJjZSA5 LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0lOVFI5CQkJCTB4MDJlMAo+ ICsjZGVmaW5lIEJJVF9JTlRSOV9FRElEX0VSUk9SCQkJQklUKDYpCj4gKyNkZWZpbmUgQklUX0lO VFI5X0VESURfRE9ORQkJCUJJVCg1KQo+ICsjZGVmaW5lIEJJVF9JTlRSOV9ERVZDQVBfRE9ORQkJ CUJJVCg0KQo+ICsKPiArLyogSW50ZXJydXB0IDkgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAq Lwo+ICsjZGVmaW5lIFJFR19JTlRSOV9NQVNLCQkJCTB4MDJlMQo+ICsKPiArLyogVFBJIENCVVMg U3RhcnQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfVFBJX0NCVVNfU1RB UlQJCQkweDAyZTIKPiArI2RlZmluZSBCSVRfVFBJX0NCVVNfU1RBUlRfUkNQX1JFUV9TVEFSVAlC SVQoNykKPiArI2RlZmluZSBCSVRfVFBJX0NCVVNfU1RBUlRfUkNQS19SRVBMWV9TVEFSVAlCSVQo NikKPiArI2RlZmluZSBCSVRfVFBJX0NCVVNfU1RBUlRfUkNQRV9SRVBMWV9TVEFSVAlCSVQoNSkK PiArI2RlZmluZSBCSVRfVFBJX0NCVVNfU1RBUlRfUFVUX0xJTktfTU9ERV9TVEFSVAlCSVQoNCkK PiArI2RlZmluZSBCSVRfVFBJX0NCVVNfU1RBUlRfUFVUX0RDQVBDSEdfU1RBUlQJQklUKDMpCj4g KyNkZWZpbmUgQklUX1RQSV9DQlVTX1NUQVJUX1BVVF9EQ0FQUkRZX1NUQVJUCUJJVCgyKQo+ICsj ZGVmaW5lIEJJVF9UUElfQ0JVU19TVEFSVF9HRVRfRURJRF9TVEFSVF8wCUJJVCgxKQo+ICsjZGVm aW5lIEJJVF9UUElfQ0JVU19TVEFSVF9HRVRfREVWQ0FQX1NUQVJUCUJJVCgwKQo+ICsKPiArLyog RURJRCBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDEwICovCj4gKyNkZWZpbmUgUkVHX0VESURf Q1RSTAkJCQkweDAyZTMKPiArI2RlZmluZSBCSVRfRURJRF9DVFJMX0VESURfUFJJTUVfVkFMSUQJ CUJJVCg3KQo+ICsjZGVmaW5lIEJJVF9FRElEX0NUUkxfWERFVkNBUF9FTgkJQklUKDYpCj4gKyNk ZWZpbmUgQklUX0VESURfQ1RSTF9ERVZDQVBfU0VMRUNUX0RFVkNBUAlCSVQoNSkKPiArI2RlZmlu ZSBCSVRfRURJRF9DVFJMX0VESURfRklGT19BRERSX0FVVE8JQklUKDQpCj4gKyNkZWZpbmUgQklU X0VESURfQ1RSTF9FRElEX0ZJRk9fQUNDRVNTX0FMV0FZU19FTiBCSVQoMykKPiArI2RlZmluZSBC SVRfRURJRF9DVFJMX0VESURfRklGT19CTE9DS19TRUwJQklUKDIpCj4gKyNkZWZpbmUgQklUX0VE SURfQ1RSTF9JTlZBTElEX0JLU1YJCUJJVCgxKQo+ICsjZGVmaW5lIEJJVF9FRElEX0NUUkxfRURJ RF9NT0RFX0VOCQlCSVQoMCkKPiArCj4gKy8qIEVESUQgRklGTyBBZGRyLCBkZWZhdWx0IHZhbHVl OiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0VESURfRklGT19BRERSCQkJMHgwMmU5Cj4gKwo+ICsv KiBFRElEIEZJRk8gV3JpdGUgRGF0YSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5l IFJFR19FRElEX0ZJRk9fV1JfREFUQQkJCTB4MDJlYQo+ICsKPiArLyogRURJRC9ERVZDQVAgRklG TyBJbnRlcm5hbCBBZGRyLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0VE SURfRklGT19BRERSX01PTgkJCTB4MDJlYgo+ICsKPiArLyogRURJRCBGSUZPIFJlYWQgRGF0YSwg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19FRElEX0ZJRk9fUkRfREFUQQkJ CTB4MDJlYwo+ICsKPiArLyogRURJRCBEREMgU2VnbWVudCBQb2ludGVyLCBkZWZhdWx0IHZhbHVl OiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0VESURfU1RBUlRfRVhUCQkJMHgwMmVkCj4gKwo+ICsv KiBUWCBJUCBCSVNUIENOVEwgYW5kIFN0YXR1cywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsj ZGVmaW5lIFJFR19UWF9JUF9CSVNUX0NOVExTVEEJCQkweDAyZjIKPiArI2RlZmluZSBCSVRfVFhf SVBfQklTVF9DTlRMU1RBX1RYQklTVF9RVUFSVEVSX0NMS19TRUwgQklUKDYpCj4gKyNkZWZpbmUg QklUX1RYX0lQX0JJU1RfQ05UTFNUQV9UWEJJU1RfRE9ORQlCSVQoNSkKPiArI2RlZmluZSBCSVRf VFhfSVBfQklTVF9DTlRMU1RBX1RYQklTVF9PTglCSVQoNCkKPiArI2RlZmluZSBCSVRfVFhfSVBf QklTVF9DTlRMU1RBX1RYQklTVF9SVU4JQklUKDMpCj4gKyNkZWZpbmUgQklUX1RYX0lQX0JJU1Rf Q05UTFNUQV9UWENMS19IQUxGX1NFTAlCSVQoMikKPiArI2RlZmluZSBCSVRfVFhfSVBfQklTVF9D TlRMU1RBX1RYQklTVF9FTglCSVQoMSkKPiArI2RlZmluZSBCSVRfVFhfSVBfQklTVF9DTlRMU1RB X1RYQklTVF9TRUwJQklUKDApCj4gKwo+ICsvKiBUWCBJUCBCSVNUIElOU1QgTE9XLCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX1RYX0lQX0JJU1RfSU5TVF9MT1cJCQkweDAy ZjMKPiArI2RlZmluZSBSRUdfVFhfSVBfQklTVF9JTlNUX0hJR0gJCTB4MDJmNAo+ICsKPiArLyog VFggSVAgQklTVCBQQVRURVJOIExPVywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5l IFJFR19UWF9JUF9CSVNUX1BBVF9MT1cJCQkweDAyZjUKPiArI2RlZmluZSBSRUdfVFhfSVBfQklT VF9QQVRfSElHSAkJCTB4MDJmNgo+ICsKPiArLyogVFggSVAgQklTVCBDT05GSUdVUkUgTE9XLCBk ZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX1RYX0lQX0JJU1RfQ09ORl9MT1cJ CQkweDAyZjcKPiArI2RlZmluZSBSRUdfVFhfSVBfQklTVF9DT05GX0hJR0gJCTB4MDJmOAo+ICsK PiArLyogRS1NU0MgR2VuZXJhbCBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDgwICovCj4gKyNk ZWZpbmUgUkVHX0dFTkNUTAkJCQkweDAzMDAKPiArI2RlZmluZSBCSVRfR0VOQ1RMX1NQRUNfVFJB TlNfRElTCQlCSVQoNykKPiArI2RlZmluZSBCSVRfR0VOQ1RMX0RJU19YTUlUX0VSUl9TVEFURQkJ QklUKDYpCj4gKyNkZWZpbmUgQklUX0dFTkNUTF9TUElfTUlTT19FREdFCQlCSVQoNSkKPiArI2Rl ZmluZSBCSVRfR0VOQ1RMX1NQSV9NT1NJX0VER0UJCUJJVCg0KQo+ICsjZGVmaW5lIEJJVF9HRU5D VExfQ0xSX0VNU0NfUkZJRk8JCUJJVCgzKQo+ICsjZGVmaW5lIEJJVF9HRU5DVExfQ0xSX0VNU0Nf WEZJRk8JCUJJVCgyKQo+ICsjZGVmaW5lIEJJVF9HRU5DVExfU1RBUlRfVFJBSU5fU0VRCQlCSVQo MSkKPiArI2RlZmluZSBCSVRfR0VOQ1RMX0VNU0NfRU4JCQlCSVQoMCkKPiArCj4gKy8qIEUtTVND IENvbW1hIEVycm9yQ05ULCBkZWZhdWx0IHZhbHVlOiAweDAzICovCj4gKyNkZWZpbmUgUkVHX0NP TU1FQ05UCQkJCTB4MDMwNQo+ICsjZGVmaW5lIEJJVF9DT01NRUNOVF9JMkNfVE9fRU1TQ19FTgkJ QklUKDcpCj4gKyNkZWZpbmUgTVNLX0NPTU1FQ05UX0NPTU1BX0NIQVJfRVJSX0NOVAkJMHgwZgo+ ICsKPiArLyogRS1NU0MgUkZJRk8gQnl0ZUNudCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsj ZGVmaW5lIFJFR19FTVNDUkZJRk9CQ05UTAkJCTB4MDMxYQo+ICsjZGVmaW5lIFJFR19FTVNDUkZJ Rk9CQ05USAkJCTB4MDMxYgo+ICsKPiArLyogU1BJIEJ1cnN0IENudCBTdGF0dXMsIGRlZmF1bHQg dmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfU1BJQlVSU1RDTlQJCQkJMHgwMzFlCj4gKwo+ ICsvKiBTUEkgQnVyc3QgU3RhdHVzIGFuZCBTV1JTVCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ ICsjZGVmaW5lIFJFR19TUElCVVJTVFNUQVQJCQkweDAzMjIKPiArI2RlZmluZSBCSVRfU1BJQlVS U1RTVEFUX1NQSV9IRENQUlNUCQlCSVQoNykKPiArI2RlZmluZSBCSVRfU1BJQlVSU1RTVEFUX1NQ SV9DQlVTUlNUCQlCSVQoNikKPiArI2RlZmluZSBCSVRfU1BJQlVSU1RTVEFUX1NQSV9TUlNUCQlC SVQoNSkKPiArI2RlZmluZSBCSVRfU1BJQlVSU1RTVEFUX0VNU0NfTk9STUFMX01PREUJQklUKDAp Cj4gKwo+ICsvKiBFLU1TQyAxc3QgSW50ZXJydXB0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4g KyNkZWZpbmUgUkVHX0VNU0NJTlRSCQkJCTB4MDMyMwo+ICsjZGVmaW5lIEJJVF9FTVNDSU5UUl9F TVNDX1hGSUZPX0VNUFRZCQlCSVQoNykKPiArI2RlZmluZSBCSVRfRU1TQ0lOVFJfRU1TQ19YTUlU X0FDS19UT1VUCQlCSVQoNikKPiArI2RlZmluZSBCSVRfRU1TQ0lOVFJfRU1TQ19SRklGT19SRUFE X0VSUglCSVQoNSkKPiArI2RlZmluZSBCSVRfRU1TQ0lOVFJfRU1TQ19YRklGT19XUklURV9FUlIJ QklUKDQpCj4gKyNkZWZpbmUgQklUX0VNU0NJTlRSX0VNU0NfQ09NTUFfQ0hBUl9FUlIJQklUKDMp Cj4gKyNkZWZpbmUgQklUX0VNU0NJTlRSX0VNU0NfWE1JVF9ET05FCQlCSVQoMikKPiArI2RlZmlu ZSBCSVRfRU1TQ0lOVFJfRU1TQ19YTUlUX0dOVF9UT1VUCQlCSVQoMSkKPiArI2RlZmluZSBCSVRf RU1TQ0lOVFJfU1BJX0RWTEQJCUJJVCgwKQo+ICsKPiArLyogRS1NU0MgSW50ZXJydXB0IE1hc2ss IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfRU1TQ0lOVFJNQVNLCQkJMHgw MzI0Cj4gKwo+ICsvKiBJMkMgRS1NU0MgWE1JVCBGSUZPIFdyaXRlIFBvcnQsIGRlZmF1bHQgdmFs dWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfRU1TQ19YTUlUX1dSSVRFX1BPUlQJCTB4MDMyYQo+ ICsKPiArLyogSTJDIEUtTVNDIFJDViBGSUZPIFdyaXRlIFBvcnQsIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KPiArI2RlZmluZSBSRUdfRU1TQ19SQ1ZfUkVBRF9QT1JUCQkJMHgwMzJiCj4gKwo+ICsv KiBFLU1TQyAybmQgSW50ZXJydXB0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUg UkVHX0VNU0NJTlRSMQkJCQkweDAzMmMKPiArI2RlZmluZSBCSVRfRU1TQ0lOVFIxX0VNU0NfVFJB SU5JTkdfQ09NTUFfRVJSCUJJVCgwKQo+ICsKPiArLyogRS1NU0MgSW50ZXJydXB0IE1hc2ssIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfRU1TQ0lOVFJNQVNLMQkJCTB4MDMy ZAo+ICsjZGVmaW5lIEJJVF9FTVNDSU5UUk1BU0sxX0VNU0NfSU5UUk1BU0sxXzAJQklUKDApCj4g Kwo+ICsvKiBNSEwgVG9wIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJF R19NSExfVE9QX0NUTAkJCQkweDAzMzAKPiArI2RlZmluZSBCSVRfTUhMX1RPUF9DVExfTUhMM19E T0NfU0VMCQlCSVQoNykKPiArI2RlZmluZSBCSVRfTUhMX1RPUF9DVExfTUhMX1BQX1NFTAkJQklU KDYpCj4gKyNkZWZpbmUgTVNLX01ITF9UT1BfQ1RMX0lGX1RJTUlOR19DVEwJCTB4MDMKPiArCj4g Ky8qIE1ITCBEYXRhUGF0aCAxc3QgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweGJjICovCj4gKyNkZWZp bmUgUkVHX01ITF9EUF9DVEwwCQkJCTB4MDMzMQo+ICsjZGVmaW5lIEJJVF9NSExfRFBfQ1RMMF9E UF9PRQkJCUJJVCg3KQo+ICsjZGVmaW5lIEJJVF9NSExfRFBfQ1RMMF9UWF9PRV9PVlIJCUJJVCg2 KQo+ICsjZGVmaW5lIE1TS19NSExfRFBfQ1RMMF9UWF9PRQkJCTB4M2YKPiArCj4gKy8qIE1ITCBE YXRhUGF0aCAybmQgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweGJiICovCj4gKyNkZWZpbmUgUkVHX01I TF9EUF9DVEwxCQkJCTB4MDMzMgo+ICsjZGVmaW5lIE1TS19NSExfRFBfQ1RMMV9DS19TV0lOR19D VEwJCTB4ZjAKPiArI2RlZmluZSBNU0tfTUhMX0RQX0NUTDFfRFRfU1dJTkdfQ1RMCQkweDBmCj4g Kwo+ICsvKiBNSEwgRGF0YVBhdGggM3JkIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgyZiAqLwo+ICsj ZGVmaW5lIFJFR19NSExfRFBfQ1RMMgkJCQkweDAzMzMKPiArI2RlZmluZSBCSVRfTUhMX0RQX0NU TDJfQ0xLX0JZUEFTU19FTgkJQklUKDcpCj4gKyNkZWZpbmUgTVNLX01ITF9EUF9DVEwyX0RBTVBf VEVSTV9TRUwJCTB4MzAKPiArI2RlZmluZSBNU0tfTUhMX0RQX0NUTDJfQ0tfVEVSTV9TRUwJCTB4 MGMKPiArI2RlZmluZSBNU0tfTUhMX0RQX0NUTDJfRFRfVEVSTV9TRUwJCTB4MDMKPiArCj4gKy8q IE1ITCBEYXRhUGF0aCA0dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDQ4ICovCj4gKyNkZWZpbmUg UkVHX01ITF9EUF9DVEwzCQkJCTB4MDMzNAo+ICsjZGVmaW5lIE1TS19NSExfRFBfQ1RMM19EVF9E UlZfVk5CQ19DVEwJCTB4ZjAKPiArI2RlZmluZSBNU0tfTUhMX0RQX0NUTDNfRFRfRFJWX1ZOQl9D VEwJCTB4MGYKPiArCj4gKy8qIE1ITCBEYXRhUGF0aCA1dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAw eDQ4ICovCj4gKyNkZWZpbmUgUkVHX01ITF9EUF9DVEw0CQkJCTB4MDMzNQo+ICsjZGVmaW5lIE1T S19NSExfRFBfQ1RMNF9DS19EUlZfVk5CQ19DVEwJCTB4ZjAKPiArI2RlZmluZSBNU0tfTUhMX0RQ X0NUTDRfQ0tfRFJWX1ZOQl9DVEwJCTB4MGYKPiArCj4gKy8qIE1ITCBEYXRhUGF0aCA2dGggQ3Rs LCBkZWZhdWx0IHZhbHVlOiAweDNmICovCj4gKyNkZWZpbmUgUkVHX01ITF9EUF9DVEw1CQkJCTB4 MDMzNgo+ICsjZGVmaW5lIEJJVF9NSExfRFBfQ1RMNV9SU0VOX0VOX09WUgkJQklUKDcpCj4gKyNk ZWZpbmUgQklUX01ITF9EUF9DVEw1X1JTRU5fRU4JCQlCSVQoNikKPiArI2RlZmluZSBNU0tfTUhM X0RQX0NUTDVfREFNUF9URVJNX1ZHU19DVEwJMHgzMAo+ICsjZGVmaW5lIE1TS19NSExfRFBfQ1RM NV9DS19URVJNX1ZHU19DVEwJCTB4MGMKPiArI2RlZmluZSBNU0tfTUhMX0RQX0NUTDVfRFRfVEVS TV9WR1NfQ1RMCQkweDAzCj4gKwo+ICsvKiBNSEwgUExMIDFzdCBDdGwsIGRlZmF1bHQgdmFsdWU6 IDB4MDUgKi8KPiArI2RlZmluZSBSRUdfTUhMX1BMTF9DVEwwCQkJMHgwMzM3Cj4gKyNkZWZpbmUg QklUX01ITF9QTExfQ1RMMF9BVURfQ0xLX0VOCQlCSVQoNykKPiArCj4gKyNkZWZpbmUgTVNLX01I TF9QTExfQ1RMMF9BVURfQ0xLX1JBVElPCQkweDcwCj4gKyNkZWZpbmUgVkFMX01ITF9QTExfQ1RM MF9BVURfQ0xLX1JBVElPXzVfMTAJMHg3MAo+ICsjZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfQVVE X0NMS19SQVRJT181XzYJMHg2MAo+ICsjZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfQVVEX0NMS19S QVRJT181XzQJMHg1MAo+ICsjZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfQVVEX0NMS19SQVRJT181 XzIJMHg0MAo+ICsjZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfQVVEX0NMS19SQVRJT181XzUJMHgz MAo+ICsjZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfQVVEX0NMS19SQVRJT181XzMJMHgyMAo+ICsj ZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfQVVEX0NMS19SQVRJT181XzJfUFJJTUUgMHgxMAo+ICsj ZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfQVVEX0NMS19SQVRJT181XzEJMHgwMAo+ICsKPiArI2Rl ZmluZSBNU0tfTUhMX1BMTF9DVEwwX0hETUlfQ0xLX1JBVElPCQkweDBjCj4gKyNkZWZpbmUgVkFM X01ITF9QTExfQ1RMMF9IRE1JX0NMS19SQVRJT180WAkweDBjCj4gKyNkZWZpbmUgVkFMX01ITF9Q TExfQ1RMMF9IRE1JX0NMS19SQVRJT18yWAkweDA4Cj4gKyNkZWZpbmUgVkFMX01ITF9QTExfQ1RM MF9IRE1JX0NMS19SQVRJT18xWAkweDA0Cj4gKyNkZWZpbmUgVkFMX01ITF9QTExfQ1RMMF9IRE1J X0NMS19SQVRJT19IQUxGX1gJMHgwMAo+ICsKPiArI2RlZmluZSBCSVRfTUhMX1BMTF9DVEwwX0NS WVNUQUxfQ0xLX1NFTAlCSVQoMSkKPiArI2RlZmluZSBCSVRfTUhMX1BMTF9DVEwwX1pPTkVfTUFT S19PRQkJQklUKDApCj4gKwo+ICsvKiBNSEwgUExMIDNyZCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4 ODAgKi8KPiArI2RlZmluZSBSRUdfTUhMX1BMTF9DVEwyCQkJMHgwMzM5Cj4gKyNkZWZpbmUgQklU X01ITF9QTExfQ1RMMl9DTEtERVRFQ1RfRU4JCUJJVCg3KQo+ICsjZGVmaW5lIEJJVF9NSExfUExM X0NUTDJfTUVBU19GVkNPCQlCSVQoMykKPiArI2RlZmluZSBCSVRfTUhMX1BMTF9DVEwyX1BMTF9G QVNUX0xPQ0sJCUJJVCgyKQo+ICsjZGVmaW5lIE1TS19NSExfUExMX0NUTDJfUExMX0xGX1NFTAkJ MHgwMwo+ICsKPiArLyogTUhMIENCVVMgMXN0IEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgxMiAqLwo+ ICsjZGVmaW5lIFJFR19NSExfQ0JVU19DVEwwCQkJMHgwMzQwCj4gKyNkZWZpbmUgQklUX01ITF9D QlVTX0NUTDBfQ0JVU19SR05EX1RFU1RfTU9ERQlCSVQoNykKPiArCj4gKyNkZWZpbmUgTVNLX01I TF9DQlVTX0NUTDBfQ0JVU19SR05EX1ZUSF9DVEwJMHgzMAo+ICsjZGVmaW5lIFZBTF9NSExfQ0JV U19DVEwwX0NCVVNfUkdORF9WQklBU183MzQJMHgwMAo+ICsjZGVmaW5lIFZBTF9NSExfQ0JVU19D VEwwX0NCVVNfUkdORF9WQklBU183NDcJMHgxMAo+ICsjZGVmaW5lIFZBTF9NSExfQ0JVU19DVEww X0NCVVNfUkdORF9WQklBU183NDAJMHgyMAo+ICsjZGVmaW5lIFZBTF9NSExfQ0JVU19DVEwwX0NC VVNfUkdORF9WQklBU183NTQJMHgzMAo+ICsKPiArI2RlZmluZSBNU0tfTUhMX0NCVVNfQ1RMMF9D QlVTX1JFU19URVNUX1NFTAkweDBjCj4gKwo+ICsjZGVmaW5lIE1TS19NSExfQ0JVU19DVEwwX0NC VVNfRFJWX1NFTAkJMHgwMwo+ICsjZGVmaW5lIFZBTF9NSExfQ0JVU19DVEwwX0NCVVNfRFJWX1NF TF9XRUFLRVNUCTB4MDAKPiArI2RlZmluZSBWQUxfTUhMX0NCVVNfQ1RMMF9DQlVTX0RSVl9TRUxf V0VBSwkweDAxCj4gKyNkZWZpbmUgVkFMX01ITF9DQlVTX0NUTDBfQ0JVU19EUlZfU0VMX1NUUk9O RwkweDAyCj4gKyNkZWZpbmUgVkFMX01ITF9DQlVTX0NUTDBfQ0JVU19EUlZfU0VMX1NUUk9OR0VT VCAweDAzCj4gKwo+ICsvKiBNSEwgQ0JVUyAybmQgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAzICov Cj4gKyNkZWZpbmUgUkVHX01ITF9DQlVTX0NUTDEJCQkweDAzNDEKPiArI2RlZmluZSBNU0tfTUhM X0NCVVNfQ1RMMV9DQlVTX1JHTkRfUkVTX0NUTAkweDA3Cj4gKyNkZWZpbmUgVkFMX01ITF9DQlVT X0NUTDFfMDg4OF9PSE0JCTB4MDAKPiArI2RlZmluZSBWQUxfTUhMX0NCVVNfQ1RMMV8xMTE1X09I TQkJMHgwNAo+ICsjZGVmaW5lIFZBTF9NSExfQ0JVU19DVEwxXzEzNzhfT0hNCQkweDA3Cj4gKwo+ ICsvKiBNSEwgQ29DIDFzdCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4YzMgKi8KPiArI2RlZmluZSBS RUdfTUhMX0NPQ19DVEwwCQkJMHgwMzQyCj4gKyNkZWZpbmUgQklUX01ITF9DT0NfQ1RMMF9DT0Nf QklBU19FTgkJQklUKDcpCj4gKyNkZWZpbmUgTVNLX01ITF9DT0NfQ1RMMF9DT0NfQklBU19DVEwJ CTB4NzAKPiArI2RlZmluZSBNU0tfTUhMX0NPQ19DVEwwX0NPQ19URVJNX0NUTAkJMHgwNwo+ICsK PiArLyogTUhMIENvQyAybmQgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDg3ICovCj4gKyNkZWZpbmUg UkVHX01ITF9DT0NfQ1RMMQkJCTB4MDM0Mwo+ICsjZGVmaW5lIEJJVF9NSExfQ09DX0NUTDFfQ09D X0VOCQkJQklUKDcpCj4gKyNkZWZpbmUgTVNLX01ITF9DT0NfQ1RMMV9DT0NfRFJWX0NUTAkJMHgz Zgo+ICsKPiArLyogTUhMIENvQyA0dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNk ZWZpbmUgUkVHX01ITF9DT0NfQ1RMMwkJCTB4MDM0NQo+ICsjZGVmaW5lIEJJVF9NSExfQ09DX0NU TDNfQ09DX0FFQ0hPX0VOCQlCSVQoMCkKPiArCj4gKy8qIE1ITCBDb0MgNXRoIEN0bCwgZGVmYXVs dCB2YWx1ZTogMHgyOCAqLwo+ICsjZGVmaW5lIFJFR19NSExfQ09DX0NUTDQJCQkweDAzNDYKPiAr I2RlZmluZSBNU0tfTUhMX0NPQ19DVEw0X0NPQ19JRl9DVEwJCTB4ZjAKPiArI2RlZmluZSBNU0tf TUhMX0NPQ19DVEw0X0NPQ19TTEVXX0NUTAkJMHgwZgo+ICsKPiArLyogTUhMIENvQyA2dGggQ3Rs LCBkZWZhdWx0IHZhbHVlOiAweDBkICovCj4gKyNkZWZpbmUgUkVHX01ITF9DT0NfQ1RMNQkJCTB4 MDM0Nwo+ICsKPiArLyogTUhMIERvQyAxc3QgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDE4ICovCj4g KyNkZWZpbmUgUkVHX01ITF9ET0NfQ1RMMAkJCTB4MDM0OQo+ICsjZGVmaW5lIEJJVF9NSExfRE9D X0NUTDBfRE9DX1JYREFUQV9FTgkJQklUKDcpCj4gKyNkZWZpbmUgTVNLX01ITF9ET0NfQ1RMMF9E T0NfRE1fVEVSTQkJMHgzOAo+ICsjZGVmaW5lIE1TS19NSExfRE9DX0NUTDBfRE9DX09QTU9ERQkJ MHgwNgo+ICsjZGVmaW5lIEJJVF9NSExfRE9DX0NUTDBfRE9DX1JYQklBU19FTgkJQklUKDApCj4g Kwo+ICsvKiBNSEwgRGF0YVBhdGggN3RoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgyYSAqLwo+ICsj ZGVmaW5lIFJFR19NSExfRFBfQ1RMNgkJCQkweDAzNTAKPiArI2RlZmluZSBCSVRfTUhMX0RQX0NU TDZfRFBfVEFQMl9TR04JCUJJVCg1KQo+ICsjZGVmaW5lIEJJVF9NSExfRFBfQ1RMNl9EUF9UQVAy X0VOCQlCSVQoNCkKPiArI2RlZmluZSBCSVRfTUhMX0RQX0NUTDZfRFBfVEFQMV9TR04JCUJJVCgz KQo+ICsjZGVmaW5lIEJJVF9NSExfRFBfQ1RMNl9EUF9UQVAxX0VOCQlCSVQoMikKPiArI2RlZmlu ZSBCSVRfTUhMX0RQX0NUTDZfRFRfUFJFRFJWX0ZFRURDQVBfRU4JQklUKDEpCj4gKyNkZWZpbmUg QklUX01ITF9EUF9DVEw2X0RQX1BSRV9QT1NUX1NFTAkJQklUKDApCj4gKwo+ICsvKiBNSEwgRGF0 YVBhdGggOHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwNiAqLwo+ICsjZGVmaW5lIFJFR19NSExf RFBfQ1RMNwkJCQkweDAzNTEKPiArI2RlZmluZSBNU0tfTUhMX0RQX0NUTDdfRFRfRFJWX1ZCSUFT X0NBU0NUTAkweGYwCj4gKyNkZWZpbmUgTVNLX01ITF9EUF9DVEw3X0RUX0RSVl9JUkVGX0NUTAkJ MHgwZgo+ICsKPiArLyogVHggWm9uZSBDdGwxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNk ZWZpbmUgUkVHX1RYX1pPTkVfQ1RMMQkJCTB4MDM2MQo+ICsjZGVmaW5lIFZBTF9UWF9aT05FX0NU TDFfVFhfWk9ORV9DVFJMX01PREUJMHgwOAo+ICsKPiArLyogTUhMMyBUeCBab25lIEN0bCwgZGVm YXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19NSEwzX1RYX1pPTkVfQ1RMCQkJMHgw MzY0Cj4gKyNkZWZpbmUgQklUX01ITDNfVFhfWk9ORV9DVExfTUhMMl9JTlRQTFRfWk9ORV9NQU5V X0VOIEJJVCg3KQo+ICsjZGVmaW5lIE1TS19NSEwzX1RYX1pPTkVfQ1RMX01ITDNfVFhfWk9ORQkw eDAzCj4gKwo+ICsjZGVmaW5lIE1TS19UWF9aT05FX0NUTDNfVFhfWk9ORQkJMHgwMwo+ICsjZGVm aW5lIFZBTF9UWF9aT05FX0NUTDNfVFhfWk9ORV82R0JQUwkJMHgwMAo+ICsjZGVmaW5lIFZBTF9U WF9aT05FX0NUTDNfVFhfWk9ORV8zR0JQUwkJMHgwMQo+ICsjZGVmaW5lIFZBTF9UWF9aT05FX0NU TDNfVFhfWk9ORV8xXzVHQlBTCTB4MDIKPiArCj4gKy8qIEhEQ1AgUG9sbGluZyBDb250cm9sIGFu ZCBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4NzAgKi8KPiArI2RlZmluZSBSRUdfSERDUDJYX1BP TExfQ1MJCQkweDAzOTEKPiArCj4gKyNkZWZpbmUgQklUX0hEQ1AyWF9QT0xMX0NTX0hEQ1AyWF9N U0dfU1pfQ0xSX09QVElPTiBCSVQoNikKPiArI2RlZmluZSBCSVRfSERDUDJYX1BPTExfQ1NfSERD UDJYX1JQVF9SRUFEWV9DTFJfT1BUSU9OIEJJVCg1KQo+ICsjZGVmaW5lIEJJVF9IRENQMlhfUE9M TF9DU19IRENQMlhfUkVBVVRIX1JFUV9DTFJfT1BUSU9OIEJJVCg0KQo+ICsjZGVmaW5lIE1TS19I RENQMlhfUE9MTF9DU18JCQkweDBjCj4gKyNkZWZpbmUgQklUX0hEQ1AyWF9QT0xMX0NTX0hEQ1Ay WF9ESVNfUE9MTF9HTlQJQklUKDEpCj4gKyNkZWZpbmUgQklUX0hEQ1AyWF9QT0xMX0NTX0hEQ1Ay WF9ESVNfUE9MTF9FTglCSVQoMCkKPiArCj4gKy8qIEhEQ1AgSW50ZXJydXB0IDAsIGRlZmF1bHQg dmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfSERDUDJYX0lOVFIwCQkJMHgwMzk4Cj4gKwo+ ICsvKiBIRENQIEludGVycnVwdCAwIE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2Rl ZmluZSBSRUdfSERDUDJYX0lOVFIwX01BU0sJCQkweDAzOTkKPiArCj4gKy8qIEhEQ1AgR2VuZXJh bCBDb250cm9sIDAsIGRlZmF1bHQgdmFsdWU6IDB4MDIgKi8KPiArI2RlZmluZSBSRUdfSERDUDJY X0NUUkxfMAkJCTB4MDNhMAo+ICsjZGVmaW5lIEJJVF9IRENQMlhfQ1RSTF8wX0hEQ1AyWF9FTkNS WVBUX0VOCUJJVCg3KQo+ICsjZGVmaW5lIEJJVF9IRENQMlhfQ1RSTF8wX0hEQ1AyWF9QT0xJTlRf U0VMCUJJVCg2KQo+ICsjZGVmaW5lIEJJVF9IRENQMlhfQ1RSTF8wX0hEQ1AyWF9QT0xJTlRfT1ZS CUJJVCg1KQo+ICsjZGVmaW5lIEJJVF9IRENQMlhfQ1RSTF8wX0hEQ1AyWF9QUkVDT01QVVRFCUJJ VCg0KQo+ICsjZGVmaW5lIEJJVF9IRENQMlhfQ1RSTF8wX0hEQ1AyWF9IRE1JTU9ERQlCSVQoMykK PiArI2RlZmluZSBCSVRfSERDUDJYX0NUUkxfMF9IRENQMlhfUkVQRUFURVIJQklUKDIpCj4gKyNk ZWZpbmUgQklUX0hEQ1AyWF9DVFJMXzBfSERDUDJYX0hEQ1BUWAkJQklUKDEpCj4gKyNkZWZpbmUg QklUX0hEQ1AyWF9DVFJMXzBfSERDUDJYX0VOCQlCSVQoMCkKPiArCj4gKy8qIEhEQ1AgR2VuZXJh bCBDb250cm9sIDEsIGRlZmF1bHQgdmFsdWU6IDB4MDggKi8KPiArI2RlZmluZSBSRUdfSERDUDJY X0NUUkxfMQkJCTB4MDNhMQo+ICsjZGVmaW5lIE1TS19IRENQMlhfQ1RSTF8xX0hEQ1AyWF9SRUFV VEhfTVNLXzNfMAkweGYwCj4gKyNkZWZpbmUgQklUX0hEQ1AyWF9DVFJMXzFfSERDUDJYX0hQRF9T VwkJQklUKDMpCj4gKyNkZWZpbmUgQklUX0hEQ1AyWF9DVFJMXzFfSERDUDJYX0hQRF9PVlIJQklU KDIpCj4gKyNkZWZpbmUgQklUX0hEQ1AyWF9DVFJMXzFfSERDUDJYX0NUTDNNU0sJQklUKDEpCj4g KyNkZWZpbmUgQklUX0hEQ1AyWF9DVFJMXzFfSERDUDJYX1JFQVVUSF9TVwlCSVQoMCkKPiArCj4g Ky8qIEhEQ1AgTWlzYyBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUg UkVHX0hEQ1AyWF9NSVNDX0NUUkwJCQkweDAzYTUKPiArI2RlZmluZSBCSVRfSERDUDJYX01JU0Nf Q1RSTF9IRENQMlhfUlBUX1NNTkdfWEZFUl9TVEFSVCBCSVQoNCkKPiArI2RlZmluZSBCSVRfSERD UDJYX01JU0NfQ1RSTF9IRENQMlhfUlBUX1NNTkdfV1JfU1RBUlQgQklUKDMpCj4gKyNkZWZpbmUg QklUX0hEQ1AyWF9NSVNDX0NUUkxfSERDUDJYX1JQVF9TTU5HX1dSCUJJVCgyKQo+ICsjZGVmaW5l IEJJVF9IRENQMlhfTUlTQ19DVFJMX0hEQ1AyWF9SUFRfUkNWSURfUkRfU1RBUlQgQklUKDEpCj4g KyNkZWZpbmUgQklUX0hEQ1AyWF9NSVNDX0NUUkxfSERDUDJYX1JQVF9SQ1ZJRF9SRAlCSVQoMCkK PiArCj4gKy8qIEhEQ1AgUlBUIFNNTkcgSywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVm aW5lIFJFR19IRENQMlhfUlBUX1NNTkdfSwkJCTB4MDNhNgo+ICsKPiArLyogSERDUCBSUFQgU01O RyBJbiwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19IRENQMlhfUlBUX1NN TkdfSU4JCQkweDAzYTcKPiArCj4gKy8qIEhEQ1AgQXV0aCBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfSERDUDJYX0FVVEhfU1RBVAkJCTB4MDNhYQo+ICsKPiAr LyogSERDUCBSUFQgUkNWSUQgT3V0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUg UkVHX0hEQ1AyWF9SUFRfUkNWSURfT1VUCQkweDAzYWMKPiArCj4gKy8qIEhEQ1AgVFAxLCBkZWZh dWx0IHZhbHVlOiAweDYyICovCj4gKyNkZWZpbmUgUkVHX0hEQ1AyWF9UUDEJCQkJMHgwM2I0Cj4g Kwo+ICsvKiBIRENQIEdQIE91dCAwLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUg UkVHX0hEQ1AyWF9HUF9PVVQwCQkJMHgwM2M3Cj4gKwo+ICsvKiBIRENQIFJlcGVhdGVyIFJDVlIg SUQgMCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19IRENQMlhfUlBUX1JD VlJfSUQwCQkJMHgwM2QxCj4gKwo+ICsvKiBIRENQIEREQ00gU3RhdHVzLCBkZWZhdWx0IHZhbHVl OiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0hEQ1AyWF9ERENNX1NUUwkJCTB4MDNkOAo+ICsjZGVm aW5lIE1TS19IRENQMlhfRERDTV9TVFNfSERDUDJYX0REQ01fRVJSX1NUU18zXzAgMHhmMAo+ICsj ZGVmaW5lIE1TS19IRENQMlhfRERDTV9TVFNfSERDUDJYX0REQ01fQ1RMX0NTXzNfMCAweDBmCj4g Kwo+ICsvKiBIRE1JMk1ITDMgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgwYSAqLwo+ICsjZGVm aW5lIFJFR19NM19DVFJMCQkJCTB4MDNlMAo+ICsjZGVmaW5lIEJJVF9NM19DVFJMX0gyTV9TV1JT VAkJCUJJVCg0KQo+ICsjZGVmaW5lIEJJVF9NM19DVFJMX1NXX01ITDNfU0VMCQkJQklUKDMpCj4g KyNkZWZpbmUgQklUX00zX0NUUkxfTTNBVl9FTgkJCUJJVCgyKQo+ICsjZGVmaW5lIEJJVF9NM19D VFJMX0VOQ19UTURTCQkJQklUKDEpCj4gKyNkZWZpbmUgQklUX00zX0NUUkxfTUhMM19NQVNURVJf RU4JCUJJVCgwKQo+ICsKPiArI2RlZmluZSBWQUxfTTNfQ1RSTF9NSEwxXzJfVkFMVUUgKEJJVF9N M19DVFJMX1NXX01ITDNfU0VMIFwKPiArCQkJCSAgfCBCSVRfTTNfQ1RSTF9FTkNfVE1EUykKPiAr I2RlZmluZSBWQUxfTTNfQ1RSTF9NSEwzX1ZBTFVFIChCSVRfTTNfQ1RSTF9TV19NSEwzX1NFTCBc Cj4gKwkJCQl8IEJJVF9NM19DVFJMX00zQVZfRU4gXAo+ICsJCQkJfCBCSVRfTTNfQ1RSTF9FTkNf VE1EUyBcCj4gKwkJCQl8IEJJVF9NM19DVFJMX01ITDNfTUFTVEVSX0VOKQo+ICsKPiArLyogSERN STJNSEwzIFBvcnQwIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MDQgKi8KPiArI2RlZmluZSBS RUdfTTNfUDBDVFJMCQkJCTB4MDNlMQo+ICsjZGVmaW5lIEJJVF9NM19QMENUUkxfTUhMM19QMF9I RENQX0VOQ19FTglCSVQoNCkKPiArI2RlZmluZSBCSVRfTTNfUDBDVFJMX01ITDNfUDBfVU5MSU1J VF9FTglCSVQoMykKPiArI2RlZmluZSBCSVRfTTNfUDBDVFJMX01ITDNfUDBfSERDUF9FTgkJQklU KDIpCj4gKyNkZWZpbmUgQklUX00zX1AwQ1RSTF9NSEwzX1AwX1BJWEVMX01PREVfUEFDS0VECUJJ VCgxKQo+ICsjZGVmaW5lIEJJVF9NM19QMENUUkxfTUhMM19QMF9QT1JUX0VOCQlCSVQoMCkKPiAr Cj4gKyNkZWZpbmUgUkVHX00zX1BPU1RNCQkJCTB4MDNlMgo+ICsjZGVmaW5lIE1TS19NM19QT1NU TV9SUlBfREVDT0RFCQkJMHhmOAo+ICsjZGVmaW5lIE1TS19NM19QT1NUTV9NSEwzX1AwX1NUTV9J RAkJMHgwNwo+ICsKPiArLyogSERNSTJNSEwzIFNjcmFtYmxlIENvbnRyb2wsIGRlZmF1bHQgdmFs dWU6IDB4NDEgKi8KPiArI2RlZmluZSBSRUdfTTNfU0NUUkwJCQkJMHgwM2U2Cj4gKyNkZWZpbmUg TVNLX00zX1NDVFJMX01ITDNfU1JfTEVOR1RICQkweGYwCj4gKyNkZWZpbmUgQklUX00zX1NDVFJM X01ITDNfU0NSQU1CTEVSX0VOCQlCSVQoMCkKPiArCj4gKy8qIEhTSUMgRGl2IEN0bCwgZGVmYXVs dCB2YWx1ZTogMHgwNSAqLwo+ICsjZGVmaW5lIFJFR19ESVZfQ1RMX01BSU4JCQkweDAzZjIKPiAr I2RlZmluZSBNU0tfRElWX0NUTF9NQUlOX1BSRV9ESVZfQ1RMX01BSU4JMHgxYwo+ICsjZGVmaW5l IE1TS19ESVZfQ1RMX01BSU5fRkJfRElWX0NUTF9NQUlOCTB4MDMKPiArCj4gKy8qIE1ITCBDYXBh YmlsaXR5IDFzdCBCeXRlLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX01I TF9ERVZDQVBfMAkJCTB4MDQwMAo+ICsKPiArLyogTUhMIEludGVycnVwdCAxc3QgQnl0ZSwgZGVm YXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19NSExfSU5UXzAJCQkJMHgwNDIwCj4g Kwo+ICsvKiBEZXZpY2UgU3RhdHVzIDFzdCBieXRlLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4g KyNkZWZpbmUgUkVHX01ITF9TVEFUXzAJCQkJMHgwNDMwCj4gKwo+ICsvKiBDQlVTIFNjcmF0Y2gg UGFkIDFzdCBCeXRlLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX01ITF9T Q1JQQURfMAkJCTB4MDQ0MAo+ICsKPiArLyogTUhMIEV4dGVuZGVkIENhcGFiaWxpdHkgMXN0IEJ5 dGUsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfTUhMX0VYVERFVkNBUF8w CQkJMHgwNDgwCj4gKwo+ICsvKiBEZXZpY2UgRXh0ZW5kZWQgU3RhdHVzIDFzdCBieXRlLCBkZWZh dWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX01ITF9FWFRTVEFUXzAJCQkweDA0OTAK PiArCj4gKy8qIFRQSSBEVEQgQnl0ZTIsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmlu ZSBSRUdfVFBJX0RURF9CMgkJCQkweDA2MDIKPiArCj4gKyNkZWZpbmUgVkFMX1RQSV9RVUFOX1JB TkdFX0xJTUlURUQJCTB4MDEKPiArI2RlZmluZSBWQUxfVFBJX1FVQU5fUkFOR0VfRlVMTAkJCTB4 MDIKPiArI2RlZmluZSBWQUxfVFBJX0ZPUk1BVF9SR0IJCQkweDAwCj4gKyNkZWZpbmUgVkFMX1RQ SV9GT1JNQVRfWUNCQ1I0NDQJCQkweDAxCj4gKyNkZWZpbmUgVkFMX1RQSV9GT1JNQVRfWUNCQ1I0 MjIJCQkweDAyCj4gKyNkZWZpbmUgVkFMX1RQSV9GT1JNQVRfSU5URVJOQUxfUkdCCQkweDAzCj4g KyNkZWZpbmUgVkFMX1RQSV9GT1JNQVQoX2ZtdCwgX3FyKSBcCj4gKwkJKFZBTF9UUElfRk9STUFU XyMjX2ZtdCB8IChWQUxfVFBJX1FVQU5fUkFOR0VfIyNfcXIgPDwgMikpCj4gKwo+ICsvKiBJbnB1 dCBGb3JtYXQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfVFBJX0lOUFVU CQkJCTB4MDYwOQo+ICsjZGVmaW5lIEJJVF9UUElfSU5QVVRfRVhURU5ERURCSVRNT0RFCQlCSVQo NykKPiArI2RlZmluZSBCSVRfVFBJX0lOUFVUX0VORElUSEVSCQkJQklUKDYpCj4gKyNkZWZpbmUg TVNLX1RQSV9JTlBVVF9JTlBVVF9RVUFOX1JBTkdFCQkweDBjCj4gKyNkZWZpbmUgTVNLX1RQSV9J TlBVVF9JTlBVVF9GT1JNQVQJCTB4MDMKPiArCj4gKy8qIE91dHB1dCBGb3JtYXQsIGRlZmF1bHQg dmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfVFBJX09VVFBVVAkJCQkweDA2MGEKPiArI2Rl ZmluZSBCSVRfVFBJX09VVFBVVF9DU0NNT0RFNzA5CQlCSVQoNCkKPiArI2RlZmluZSBNU0tfVFBJ X09VVFBVVF9PVVRQVVRfUVVBTl9SQU5HRQkweDBjCj4gKyNkZWZpbmUgTVNLX1RQSV9PVVRQVVRf T1VUUFVUX0ZPUk1BVAkJMHgwMwo+ICsKPiArLyogVFBJIEFWSSBDaGVjayBTdW0sIGRlZmF1bHQg dmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfVFBJX0FWSV9DSFNVTQkJCTB4MDYwYwo+ICsK PiArLyogVFBJIFN5c3RlbSBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZp bmUgUkVHX1RQSV9TQwkJCQkweDA2MWEKPiArI2RlZmluZSBCSVRfVFBJX1NDX1RQSV9VUERBVEVf RkxHCQlCSVQoNykKPiArI2RlZmluZSBCSVRfVFBJX1NDX1RQSV9SRUFVVEhfQ1RMCQlCSVQoNikK PiArI2RlZmluZSBCSVRfVFBJX1NDX1RQSV9PVVRQVVRfTU9ERV8xCQlCSVQoNSkKPiArI2RlZmlu ZSBCSVRfVFBJX1NDX1JFR19UTURTX09FX1BPV0VSX0RPV04JQklUKDQpCj4gKyNkZWZpbmUgQklU X1RQSV9TQ19UUElfQVZfTVVURQkJCUJJVCgzKQo+ICsjZGVmaW5lIEJJVF9UUElfU0NfRERDX0dQ VV9SRVFVRVNUCQlCSVQoMikKPiArI2RlZmluZSBCSVRfVFBJX1NDX0REQ19UUElfU1cJCQlCSVQo MSkKPiArI2RlZmluZSBCSVRfVFBJX1NDX1RQSV9PVVRQVVRfTU9ERV8wX0hETUkJQklUKDApCj4g Kwo+ICsvKiBUUEkgQ09QUCBRdWVyeSBEYXRhLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNk ZWZpbmUgUkVHX1RQSV9DT1BQX0RBVEExCQkJMHgwNjI5Cj4gKyNkZWZpbmUgQklUX1RQSV9DT1BQ X0RBVEExX0NPUFBfR1BST1QJCUJJVCg3KQo+ICsjZGVmaW5lIEJJVF9UUElfQ09QUF9EQVRBMV9D T1BQX0xQUk9UCQlCSVQoNikKPiArI2RlZmluZSBNU0tfVFBJX0NPUFBfREFUQTFfQ09QUF9MSU5L X1NUQVRVUwkweDMwCj4gKyNkZWZpbmUgVkFMX1RQSV9DT1BQX0xJTktfU1RBVFVTX05PUk1BTAkJ MHgwMAo+ICsjZGVmaW5lIFZBTF9UUElfQ09QUF9MSU5LX1NUQVRVU19MSU5LX0xPU1QJMHgxMAo+ ICsjZGVmaW5lIFZBTF9UUElfQ09QUF9MSU5LX1NUQVRVU19SRU5FR09USUFUSU9OX1JFUSAweDIw Cj4gKyNkZWZpbmUgVkFMX1RQSV9DT1BQX0xJTktfU1RBVFVTX0xJTktfU1VTUEVOREVECTB4MzAK PiArI2RlZmluZSBCSVRfVFBJX0NPUFBfREFUQTFfQ09QUF9IRENQX1JFUAlCSVQoMykKPiArI2Rl ZmluZSBCSVRfVFBJX0NPUFBfREFUQTFfQ09QUF9DT05OVFlQRV8wCUJJVCgyKQo+ICsjZGVmaW5l IEJJVF9UUElfQ09QUF9EQVRBMV9DT1BQX1BST1RZUEUJCUJJVCgxKQo+ICsjZGVmaW5lIEJJVF9U UElfQ09QUF9EQVRBMV9DT1BQX0NPTk5UWVBFXzEJQklUKDApCj4gKwo+ICsvKiBUUEkgQ09QUCBD b250cm9sIERhdGEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfVFBJX0NP UFBfREFUQTIJCQkweDA2MmEKPiArI2RlZmluZSBCSVRfVFBJX0NPUFBfREFUQTJfSU5UUl9FTkNS WVBUSU9OCUJJVCg1KQo+ICsjZGVmaW5lIEJJVF9UUElfQ09QUF9EQVRBMl9LU1ZfRk9SV0FSRAkJ QklUKDQpCj4gKyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEEyX0lOVEVSTV9SSV9DSEVDS19FTglC SVQoMykKPiArI2RlZmluZSBCSVRfVFBJX0NPUFBfREFUQTJfRE9VQkxFX1JJX0NIRUNLCUJJVCgy KQo+ICsjZGVmaW5lIEJJVF9UUElfQ09QUF9EQVRBMl9ERENfU0hPUlRfUklfUkQJQklUKDEpCj4g KyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEEyX0NPUFBfUFJPVExFVkVMCUJJVCgwKQo+ICsKPiAr LyogVFBJIEludGVycnVwdCBFbmFibGUsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmlu ZSBSRUdfVFBJX0lOVFJfRU4JCQkJMHgwNjNjCj4gKwo+ICsvKiBUUEkgSW50ZXJydXB0IFN0YXR1 cyBMb3cgQnl0ZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19UUElfSU5U Ul9TVDAJCQkweDA2M2QKPiArI2RlZmluZSBCSVRfVFBJX0lOVFJfU1QwX1RQSV9BVVRIX0NITkdF X1NUQVQJQklUKDcpCj4gKyNkZWZpbmUgQklUX1RQSV9JTlRSX1NUMF9UUElfVl9SRFlfU1RBVAkJ QklUKDYpCj4gKyNkZWZpbmUgQklUX1RQSV9JTlRSX1NUMF9UUElfQ09QUF9DSE5HRV9TVEFUCUJJ VCg1KQo+ICsjZGVmaW5lIEJJVF9UUElfSU5UUl9TVDBfS1NWX0ZJRk9fRklSU1RfU1RBVAlCSVQo MykKPiArI2RlZmluZSBCSVRfVFBJX0lOVFJfU1QwX1JFQURfQktTVl9CQ0FQU19ET05FX1NUQVQg QklUKDIpCj4gKyNkZWZpbmUgQklUX1RQSV9JTlRSX1NUMF9SRUFEX0JLU1ZfQkNBUFNfRVJSX1NU QVQgQklUKDEpCj4gKyNkZWZpbmUgQklUX1RQSV9JTlRSX1NUMF9SRUFEX0JLU1ZfRVJSX1NUQVQJ QklUKDApCj4gKwo+ICsvKiBUUEkgRFMgQkNBUFMgU3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCj4gKyNkZWZpbmUgUkVHX1RQSV9EU19CQ0FQUwkJCTB4MDY0NAo+ICsKPiArLyogVFBJIEJT dGF0dXMxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX1RQSV9CU1RBVFVT MQkJCTB4MDY0NQo+ICsjZGVmaW5lIEJJVF9UUElfQlNUQVRVUzFfRFNfREVWX0VYQ0VFRAkJQklU KDcpCj4gKyNkZWZpbmUgTVNLX1RQSV9CU1RBVFVTMV9EU19ERVZfQ05UCQkweDdmCj4gKwo+ICsv KiBUUEkgQlN0YXR1czIsIGRlZmF1bHQgdmFsdWU6IDB4MTAgKi8KPiArI2RlZmluZSBSRUdfVFBJ X0JTVEFUVVMyCQkJMHgwNjQ2Cj4gKyNkZWZpbmUgTVNLX1RQSV9CU1RBVFVTMl9EU19CU1RBVFVT CQkweGUwCj4gKyNkZWZpbmUgQklUX1RQSV9CU1RBVFVTMl9EU19IRE1JX01PREUJCUJJVCg0KQo+ ICsjZGVmaW5lIEJJVF9UUElfQlNUQVRVUzJfRFNfQ0FTQ19FWENFRUQJCUJJVCgzKQo+ICsjZGVm aW5lIE1TS19UUElfQlNUQVRVUzJfRFNfREVQVEgJCTB4MDcKPiArCj4gKy8qIFRQSSBIVyBPcHRp bWl6YXRpb24gQ29udHJvbCAjMywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJF R19UUElfSFdfT1BUMwkJCQkweDA2YmIKPiArI2RlZmluZSBCSVRfVFBJX0hXX09QVDNfRERDX0RF QlVHCQlCSVQoNykKPiArI2RlZmluZSBCSVRfVFBJX0hXX09QVDNfUklfQ0hFQ0tfU0tJUAkJQklU KDMpCj4gKyNkZWZpbmUgQklUX1RQSV9IV19PUFQzX1RQSV9ERENfQlVSU1RfTU9ERQlCSVQoMikK PiArI2RlZmluZSBNU0tfVFBJX0hXX09QVDNfVFBJX0REQ19SRVFfTEVWRUwJMHgwMwo+ICsKPiAr LyogVFBJIEluZm8gRnJhbWUgU2VsZWN0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZp bmUgUkVHX1RQSV9JTkZPX0ZTRUwJCQkweDA2YmYKPiArI2RlZmluZSBCSVRfVFBJX0lORk9fRlNF TF9UUElfSU5GT19FTgkJQklUKDcpCj4gKyNkZWZpbmUgQklUX1RQSV9JTkZPX0ZTRUxfVFBJX0lO Rk9fUlBUCQlCSVQoNikKPiArI2RlZmluZSBCSVRfVFBJX0lORk9fRlNFTF9UUElfSU5GT19SRUFE X0ZMQUcJQklUKDUpCj4gKyNkZWZpbmUgTVNLX1RQSV9JTkZPX0ZTRUxfVFBJX0lORk9fU0VMCQkw eDA3Cj4gKwo+ICsvKiBUUEkgSW5mbyBCeXRlICMwLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4g KyNkZWZpbmUgUkVHX1RQSV9JTkZPX0IwCQkJCTB4MDZjMAo+ICsKPiArLyogQ29DIFN0YXR1cywg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19DT0NfU1RBVF8wCQkJCTB4MDcw MAo+ICsjZGVmaW5lIFJFR19DT0NfU1RBVF8xCQkJCTB4MDcwMQo+ICsjZGVmaW5lIFJFR19DT0Nf U1RBVF8yCQkJCTB4MDcwMgo+ICsjZGVmaW5lIFJFR19DT0NfU1RBVF8zCQkJCTB4MDcwMwo+ICsj ZGVmaW5lIFJFR19DT0NfU1RBVF80CQkJCTB4MDcwNAo+ICsjZGVmaW5lIFJFR19DT0NfU1RBVF81 CQkJCTB4MDcwNQo+ICsKPiArLyogQ29DIDFzdCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4NDAgKi8K PiArI2RlZmluZSBSRUdfQ09DX0NUTDAJCQkJMHgwNzEwCj4gKwo+ICsvKiBDb0MgMm5kIEN0bCwg ZGVmYXVsdCB2YWx1ZTogMHgwYSAqLwo+ICsjZGVmaW5lIFJFR19DT0NfQ1RMMQkJCQkweDA3MTEK PiArI2RlZmluZSBNU0tfQ09DX0NUTDFfQ09DX0NUUkwxXzdfNgkJMHhjMAo+ICsjZGVmaW5lIE1T S19DT0NfQ1RMMV9DT0NfQ1RSTDFfNV8wCQkweDNmCj4gKwo+ICsvKiBDb0MgM3JkIEN0bCwgZGVm YXVsdCB2YWx1ZTogMHgxNCAqLwo+ICsjZGVmaW5lIFJFR19DT0NfQ1RMMgkJCQkweDA3MTIKPiAr I2RlZmluZSBNU0tfQ09DX0NUTDJfQ09DX0NUUkwyXzdfNgkJMHhjMAo+ICsjZGVmaW5lIE1TS19D T0NfQ1RMMl9DT0NfQ1RSTDJfNV8wCQkweDNmCj4gKwo+ICsvKiBDb0MgNHRoIEN0bCwgZGVmYXVs dCB2YWx1ZTogMHg0MCAqLwo+ICsjZGVmaW5lIFJFR19DT0NfQ1RMMwkJCQkweDA3MTMKPiArI2Rl ZmluZSBCSVRfQ09DX0NUTDNfQ09DX0NUUkwzXzcJCUJJVCg3KQo+ICsjZGVmaW5lIE1TS19DT0Nf Q1RMM19DT0NfQ1RSTDNfNl8wCQkweDdmCj4gKwo+ICsvKiBDb0MgN3RoIEN0bCwgZGVmYXVsdCB2 YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19DT0NfQ1RMNgkJCQkweDA3MTYKPiArI2RlZmlu ZSBCSVRfQ09DX0NUTDZfQ09DX0NUUkw2XzcJCUJJVCg3KQo+ICsjZGVmaW5lIEJJVF9DT0NfQ1RM Nl9DT0NfQ1RSTDZfNgkJQklUKDYpCj4gKyNkZWZpbmUgTVNLX0NPQ19DVEw2X0NPQ19DVFJMNl81 XzAJCTB4M2YKPiArCj4gKy8qIENvQyA4dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDA2ICovCj4g KyNkZWZpbmUgUkVHX0NPQ19DVEw3CQkJCTB4MDcxNwo+ICsjZGVmaW5lIEJJVF9DT0NfQ1RMN19D T0NfQ1RSTDdfNwkJQklUKDcpCj4gKyNkZWZpbmUgQklUX0NPQ19DVEw3X0NPQ19DVFJMN182CQlC SVQoNikKPiArI2RlZmluZSBCSVRfQ09DX0NUTDdfQ09DX0NUUkw3XzUJCUJJVCg1KQo+ICsjZGVm aW5lIE1TS19DT0NfQ1RMN19DT0NfQ1RSTDdfNF8zCQkweDE4Cj4gKyNkZWZpbmUgTVNLX0NPQ19D VEw3X0NPQ19DVFJMN18yXzAJCTB4MDcKPiArCj4gKy8qIENvQyAxMHRoIEN0bCwgZGVmYXVsdCB2 YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19DT0NfQ1RMOQkJCQkweDA3MTkKPiArCj4gKy8q IENvQyAxMXRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19DT0Nf Q1RMQQkJCQkweDA3MWEKPiArCj4gKy8qIENvQyAxMnRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLwo+ICsjZGVmaW5lIFJFR19DT0NfQ1RMQgkJCQkweDA3MWIKPiArCj4gKy8qIENvQyAxM3Ro IEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwZiAqLwo+ICsjZGVmaW5lIFJFR19DT0NfQ1RMQwkJCQkw eDA3MWMKPiArCj4gKy8qIENvQyAxNHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwYSAqLwo+ICsj ZGVmaW5lIFJFR19DT0NfQ1RMRAkJCQkweDA3MWQKPiArI2RlZmluZSBCSVRfQ09DX0NUTERfQ09D X0NUUkxEXzcJCUJJVCg3KQo+ICsjZGVmaW5lIE1TS19DT0NfQ1RMRF9DT0NfQ1RSTERfNl8wCQkw eDdmCj4gKwo+ICsvKiBDb0MgMTV0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MGEgKi8KPiArI2Rl ZmluZSBSRUdfQ09DX0NUTEUJCQkJMHgwNzFlCj4gKyNkZWZpbmUgQklUX0NPQ19DVExFX0NPQ19D VFJMRV83CQlCSVQoNykKPiArI2RlZmluZSBNU0tfQ09DX0NUTEVfQ09DX0NUUkxFXzZfMAkJMHg3 Zgo+ICsKPiArLyogQ29DIDE2dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZp bmUgUkVHX0NPQ19DVExGCQkJCTB4MDcxZgo+ICsjZGVmaW5lIE1TS19DT0NfQ1RMRl9DT0NfQ1RS TEZfN18zCQkweGY4Cj4gKyNkZWZpbmUgTVNLX0NPQ19DVExGX0NPQ19DVFJMRl8yXzAJCTB4MDcK PiArCj4gKy8qIENvQyAxOHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgzMiAqLwo+ICsjZGVmaW5l IFJFR19DT0NfQ1RMMTEJCQkJMHgwNzIxCj4gKyNkZWZpbmUgTVNLX0NPQ19DVEwxMV9DT0NfQ1RS TDExXzdfNAkJMHhmMAo+ICsjZGVmaW5lIE1TS19DT0NfQ1RMMTFfQ09DX0NUUkwxMV8zXzAJCTB4 MGYKPiArCj4gKy8qIENvQyAyMXN0IEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVm aW5lIFJFR19DT0NfQ1RMMTQJCQkJMHgwNzI0Cj4gKyNkZWZpbmUgTVNLX0NPQ19DVEwxNF9DT0Nf Q1RSTDE0XzdfNAkJMHhmMAo+ICsjZGVmaW5lIE1TS19DT0NfQ1RMMTRfQ09DX0NUUkwxNF8zXzAJ CTB4MGYKPiArCj4gKy8qIENvQyAyMm5kIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsj ZGVmaW5lIFJFR19DT0NfQ1RMMTUJCQkJMHgwNzI1Cj4gKyNkZWZpbmUgQklUX0NPQ19DVEwxNV9D T0NfQ1RSTDE1XzcJCUJJVCg3KQo+ICsjZGVmaW5lIE1TS19DT0NfQ1RMMTVfQ09DX0NUUkwxNV82 XzQJCTB4NzAKPiArI2RlZmluZSBNU0tfQ09DX0NUTDE1X0NPQ19DVFJMMTVfM18wCQkweDBmCj4g Kwo+ICsvKiBDb0MgSW50ZXJydXB0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUg UkVHX0NPQ19JTlRSCQkJCTB4MDcyNgo+ICsKPiArLyogQ29DIEludGVycnVwdCBNYXNrLCBkZWZh dWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0NPQ19JTlRSX01BU0sJCQkweDA3MjcK PiArI2RlZmluZSBCSVRfQ09DX1BMTF9MT0NLX1NUQVRVU19DSEFOR0UJCUJJVCgwKQo+ICsjZGVm aW5lIEJJVF9DT0NfQ0FMSUJSQVRJT05fRE9ORQkJQklUKDEpCj4gKwo+ICsvKiBDb0MgTWlzYyBD dGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfQ09DX01JU0NfQ1RMMAkJ CTB4MDcyOAo+ICsjZGVmaW5lIEJJVF9DT0NfTUlTQ19DVEwwX0ZTTV9NT04JCUJJVCg3KQo+ICsK PiArLyogQ29DIDI0dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVH X0NPQ19DVEwxNwkJCQkweDA3MmEKPiArI2RlZmluZSBNU0tfQ09DX0NUTDE3X0NPQ19DVFJMMTdf N180CQkweGYwCj4gKyNkZWZpbmUgTVNLX0NPQ19DVEwxN19DT0NfQ1RSTDE3XzNfMAkJMHgwZgo+ ICsKPiArLyogQ29DIDI1dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUg UkVHX0NPQ19DVEwxOAkJCQkweDA3MmIKPiArI2RlZmluZSBNU0tfQ09DX0NUTDE4X0NPQ19DVFJM MThfN180CQkweGYwCj4gKyNkZWZpbmUgTVNLX0NPQ19DVEwxOF9DT0NfQ1RSTDE4XzNfMAkJMHgw Zgo+ICsKPiArLyogQ29DIDI2dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZp bmUgUkVHX0NPQ19DVEwxOQkJCQkweDA3MmMKPiArI2RlZmluZSBNU0tfQ09DX0NUTDE5X0NPQ19D VFJMMTlfN180CQkweGYwCj4gKyNkZWZpbmUgTVNLX0NPQ19DVEwxOV9DT0NfQ1RSTDE5XzNfMAkJ MHgwZgo+ICsKPiArLyogQ29DIDI3dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNk ZWZpbmUgUkVHX0NPQ19DVEwxQQkJCQkweDA3MmQKPiArI2RlZmluZSBNU0tfQ09DX0NUTDFBX0NP Q19DVFJMMUFfN18yCQkweGZjCj4gKyNkZWZpbmUgTVNLX0NPQ19DVEwxQV9DT0NfQ1RSTDFBXzFf MAkJMHgwMwo+ICsKPiArLyogRG9DIDl0aCBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8K PiArI2RlZmluZSBSRUdfRE9DX1NUQVRfOAkJCQkweDA3NDAKPiArCj4gKy8qIERvQyAxMHRoIFN0 YXR1cywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19ET0NfU1RBVF85CQkJ CTB4MDc0MQo+ICsKPiArLyogRG9DIDV0aCBDRkcsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiAr I2RlZmluZSBSRUdfRE9DX0NGRzQJCQkJMHgwNzRlCj4gKyNkZWZpbmUgTVNLX0RPQ19DRkc0X0RC R19TVEFURV9ET0NfRlNNCQkweDBmCj4gKwo+ICsvKiBEb0MgMXN0IEN0bCwgZGVmYXVsdCB2YWx1 ZTogMHg0MCAqLwo+ICsjZGVmaW5lIFJFR19ET0NfQ1RMMAkJCQkweDA3NTEKPiArCj4gKy8qIERv QyA3dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0RPQ19DVEw2 CQkJCTB4MDc1Nwo+ICsjZGVmaW5lIEJJVF9ET0NfQ1RMNl9ET0NfQ1RSTDZfNwkJQklUKDcpCj4g KyNkZWZpbmUgQklUX0RPQ19DVEw2X0RPQ19DVFJMNl82CQlCSVQoNikKPiArI2RlZmluZSBNU0tf RE9DX0NUTDZfRE9DX0NUUkw2XzVfNAkJMHgzMAo+ICsjZGVmaW5lIE1TS19ET0NfQ1RMNl9ET0Nf Q1RSTDZfM18wCQkweDBmCj4gKwo+ICsvKiBEb0MgOHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLwo+ICsjZGVmaW5lIFJFR19ET0NfQ1RMNwkJCQkweDA3NTgKPiArI2RlZmluZSBCSVRfRE9D X0NUTDdfRE9DX0NUUkw3XzcJCUJJVCg3KQo+ICsjZGVmaW5lIEJJVF9ET0NfQ1RMN19ET0NfQ1RS TDdfNgkJQklUKDYpCj4gKyNkZWZpbmUgQklUX0RPQ19DVEw3X0RPQ19DVFJMN181CQlCSVQoNSkK PiArI2RlZmluZSBNU0tfRE9DX0NUTDdfRE9DX0NUUkw3XzRfMwkJMHgxOAo+ICsjZGVmaW5lIE1T S19ET0NfQ1RMN19ET0NfQ1RSTDdfMl8wCQkweDA3Cj4gKwo+ICsvKiBEb0MgOXRoIEN0bCwgZGVm YXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19ET0NfQ1RMOAkJCQkweDA3NmMKPiAr I2RlZmluZSBCSVRfRE9DX0NUTDhfRE9DX0NUUkw4XzcJCUJJVCg3KQo+ICsjZGVmaW5lIE1TS19E T0NfQ1RMOF9ET0NfQ1RSTDhfNl80CQkweDcwCj4gKyNkZWZpbmUgTVNLX0RPQ19DVEw4X0RPQ19D VFJMOF8zXzIJCTB4MGMKPiArI2RlZmluZSBNU0tfRE9DX0NUTDhfRE9DX0NUUkw4XzFfMAkJMHgw Mwo+ICsKPiArLyogRG9DIDEwdGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZp bmUgUkVHX0RPQ19DVEw5CQkJCTB4MDc2ZAo+ICsKPiArLyogRG9DIDExdGggQ3RsLCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0RPQ19DVExBCQkJCTB4MDc2ZQo+ICsKPiAr LyogRG9DIDE1dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0RP Q19DVExFCQkJCTB4MDc3Mgo+ICsjZGVmaW5lIEJJVF9ET0NfQ1RMRV9ET0NfQ1RSTEVfNwkJQklU KDcpCj4gKyNkZWZpbmUgQklUX0RPQ19DVExFX0RPQ19DVFJMRV82CQlCSVQoNikKPiArI2RlZmlu ZSBNU0tfRE9DX0NUTEVfRE9DX0NUUkxFXzVfNAkJMHgzMAo+ICsjZGVmaW5lIE1TS19ET0NfQ1RM RV9ET0NfQ1RSTEVfM18wCQkweDBmCj4gKwo+ICsvKiBJbnRlcnJ1cHQgTWFzayAxc3QsIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfTUhMX0lOVF8wX01BU0sJCQkweDA1ODAK PiArCj4gKy8qIEludGVycnVwdCBNYXNrIDJuZCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsj ZGVmaW5lIFJFR19NSExfSU5UXzFfTUFTSwkJCTB4MDU4MQo+ICsKPiArLyogSW50ZXJydXB0IE1h c2sgM3JkLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX01ITF9JTlRfMl9N QVNLCQkJMHgwNTgyCj4gKwo+ICsvKiBJbnRlcnJ1cHQgTWFzayA0dGgsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfTUhMX0lOVF8zX01BU0sJCQkweDA1ODMKPiArCj4gKy8q IE1EVCBSZWNlaXZlIFRpbWUgT3V0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUg UkVHX01EVF9SQ1ZfVElNRU9VVAkJCTB4MDU4NAo+ICsKPiArLyogTURUIFRyYW5zbWl0IFRpbWUg T3V0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX01EVF9YTUlUX1RJTUVP VVQJCQkweDA1ODUKPiArCj4gKy8qIE1EVCBSZWNlaXZlIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfTURUX1JDVl9DVFJMCQkJMHgwNTg2Cj4gKyNkZWZpbmUg QklUX01EVF9SQ1ZfQ1RSTF9NRFRfUkNWX0VOCQlCSVQoNykKPiArI2RlZmluZSBCSVRfTURUX1JD Vl9DVFJMX01EVF9ERUxBWV9SQ1ZfRU4JQklUKDYpCj4gKyNkZWZpbmUgQklUX01EVF9SQ1ZfQ1RS TF9NRFRfUkZJRk9fT1ZFUl9XUl9FTglCSVQoNCkKPiArI2RlZmluZSBCSVRfTURUX1JDVl9DVFJM X01EVF9YRklGT19PVkVSX1dSX0VOCUJJVCgzKQo+ICsjZGVmaW5lIEJJVF9NRFRfUkNWX0NUUkxf TURUX0RJU0FCTEUJCUJJVCgyKQo+ICsjZGVmaW5lIEJJVF9NRFRfUkNWX0NUUkxfTURUX1JGSUZP X0NMUl9BTEwJQklUKDEpCj4gKyNkZWZpbmUgQklUX01EVF9SQ1ZfQ1RSTF9NRFRfUkZJRk9fQ0xS X0NVUglCSVQoMCkKPiArCj4gKy8qIE1EVCBSZWNlaXZlIFJlYWQgUG9ydCwgZGVmYXVsdCB2YWx1 ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19NRFRfUkNWX1JFQURfUE9SVAkJCTB4MDU4Nwo+ICsK PiArLyogTURUIFRyYW5zbWl0IENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4NzAgKi8KPiArI2Rl ZmluZSBSRUdfTURUX1hNSVRfQ1RSTAkJCTB4MDU4OAo+ICsjZGVmaW5lIEJJVF9NRFRfWE1JVF9D VFJMX01EVF9YTUlUX0VOCQlCSVQoNykKPiArI2RlZmluZSBCSVRfTURUX1hNSVRfQ1RSTF9NRFRf WE1JVF9DTURfTUVSR0VfRU4JQklUKDYpCj4gKyNkZWZpbmUgQklUX01EVF9YTUlUX0NUUkxfTURU X1hNSVRfRklYRURfQlVSU1RfTEVOIEJJVCg1KQo+ICsjZGVmaW5lIEJJVF9NRFRfWE1JVF9DVFJM X01EVF9YTUlUX0ZJWEVEX0FJRAlCSVQoNCkKPiArI2RlZmluZSBCSVRfTURUX1hNSVRfQ1RSTF9N RFRfWE1JVF9TSU5HTEVfUlVOX0VOIEJJVCgzKQo+ICsjZGVmaW5lIEJJVF9NRFRfWE1JVF9DVFJM X01EVF9DTFJfQUJPUlRfV0FJVAlCSVQoMikKPiArI2RlZmluZSBCSVRfTURUX1hNSVRfQ1RSTF9N RFRfWEZJRk9fQ0xSX0FMTAlCSVQoMSkKPiArI2RlZmluZSBCSVRfTURUX1hNSVRfQ1RSTF9NRFRf WEZJRk9fQ0xSX0NVUglCSVQoMCkKPiArCj4gKy8qIE1EVCBSZWNlaXZlIFdSSVRFIFBvcnQsIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfTURUX1hNSVRfV1JJVEVfUE9SVAkJ CTB4MDU4OQo+ICsKPiArLyogTURUIFJGSUZPIFN0YXR1cywgZGVmYXVsdCB2YWx1ZTogMHgwMCAq Lwo+ICsjZGVmaW5lIFJFR19NRFRfUkZJRk9fU1RBVAkJCTB4MDU4YQo+ICsjZGVmaW5lIE1TS19N RFRfUkZJRk9fU1RBVF9NRFRfUkZJRk9fQ05UCTB4ZTAKPiArI2RlZmluZSBNU0tfTURUX1JGSUZP X1NUQVRfTURUX1JGSUZPX0NVUl9CWVRFX0NOVCAweDFmCj4gKwo+ICsvKiBNRFQgWEZJRk8gU3Rh dHVzLCBkZWZhdWx0IHZhbHVlOiAweDgwICovCj4gKyNkZWZpbmUgUkVHX01EVF9YRklGT19TVEFU CQkJMHgwNThiCj4gKyNkZWZpbmUgTVNLX01EVF9YRklGT19TVEFUX01EVF9YRklGT19MRVZFTF9B VkFJTCAweGUwCj4gKyNkZWZpbmUgQklUX01EVF9YRklGT19TVEFUX01EVF9YTUlUX1BSRV9IU19F TglCSVQoNCkKPiArI2RlZmluZSBNU0tfTURUX1hGSUZPX1NUQVRfTURUX1dSSVRFX0JVUlNUX0xF TgkweDBmCj4gKwo+ICsvKiBNRFQgSW50ZXJydXB0IDAsIGRlZmF1bHQgdmFsdWU6IDB4MGMgKi8K PiArI2RlZmluZSBSRUdfTURUX0lOVF8wCQkJCTB4MDU4Ywo+ICsjZGVmaW5lIEJJVF9NRFRfUkZJ Rk9fREFUQV9SRFkJCQlCSVQoMCkKPiArI2RlZmluZSBCSVRfTURUX0lETEVfQUZURVJfSEFXQl9E SVNBQkxFCQlCSVQoMikKPiArI2RlZmluZSBCSVRfTURUX1hGSUZPX0VNUFRZCQkJQklUKDMpCj4g Kwo+ICsvKiBNRFQgSW50ZXJydXB0IDAgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsj ZGVmaW5lIFJFR19NRFRfSU5UXzBfTUFTSwkJCTB4MDU4ZAo+ICsKPiArLyogTURUIEludGVycnVw dCAxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX01EVF9JTlRfMQkJCQkw eDA1OGUKPiArI2RlZmluZSBCSVRfTURUX1JDVl9USU1FT1VUCQkJQklUKDApCj4gKyNkZWZpbmUg QklUX01EVF9SQ1ZfU01fQUJPUlRfUEtUX1JDVkQJCUJJVCgxKQo+ICsjZGVmaW5lIEJJVF9NRFRf UkNWX1NNX0VSUk9SCQkJQklUKDIpCj4gKyNkZWZpbmUgQklUX01EVF9YTUlUX1RJTUVPVVQJCQlC SVQoNSkKPiArI2RlZmluZSBCSVRfTURUX1hNSVRfU01fQUJPUlRfUEtUX1JDVkQJCUJJVCg2KQo+ ICsjZGVmaW5lIEJJVF9NRFRfWE1JVF9TTV9FUlJPUgkJCUJJVCg3KQo+ICsKPiArLyogTURUIElu dGVycnVwdCAxIE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfTURU X0lOVF8xX01BU0sJCQkweDA1OGYKPiArCj4gKy8qIENCVVMgVmVuZG9yIElELCBkZWZhdWx0IHZh bHVlOiAweDAxICovCj4gKyNkZWZpbmUgUkVHX0NCVVNfVkVORE9SX0lECQkJMHgwNTkwCj4gKwo+ ICsvKiBDQlVTIENvbm5lY3Rpb24gU3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNk ZWZpbmUgUkVHX0NCVVNfU1RBVFVTCQkJCTB4MDU5MQo+ICsjZGVmaW5lIEJJVF9DQlVTX1NUQVRV U19NSExfQ0FCTEVfUFJFU0VOVAlCSVQoNCkKPiArI2RlZmluZSBCSVRfQ0JVU19TVEFUVVNfTVND X0hCX1NVQ0NFU1MJCUJJVCgzKQo+ICsjZGVmaW5lIEJJVF9DQlVTX1NUQVRVU19DQlVTX0hQRAkJ QklUKDIpCj4gKyNkZWZpbmUgQklUX0NCVVNfU1RBVFVTX01ITF9NT0RFCQlCSVQoMSkKPiArI2Rl ZmluZSBCSVRfQ0JVU19TVEFUVVNfQ0JVU19DT05ORUNURUQJCUJJVCgwKQo+ICsKPiArLyogQ0JV UyBJbnRlcnJ1cHQgMXN0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0NC VVNfSU5UXzAJCQkJMHgwNTkyCj4gKyNkZWZpbmUgQklUX0NCVVNfTVNDX01UX0RPTkVfTkFDSwkJ QklUKDcpCj4gKyNkZWZpbmUgQklUX0NCVVNfTVNDX01SX1NFVF9JTlQJCQlCSVQoNikKPiArI2Rl ZmluZSBCSVRfQ0JVU19NU0NfTVJfV1JJVEVfQlVSU1QJCUJJVCg1KQo+ICsjZGVmaW5lIEJJVF9D QlVTX01TQ19NUl9NU0NfTVNHCQkJQklUKDQpCj4gKyNkZWZpbmUgQklUX0NCVVNfTVNDX01SX1dS SVRFX1NUQVQJCUJJVCgzKQo+ICsjZGVmaW5lIEJJVF9DQlVTX0hQRF9DSEcJCQlCSVQoMikKPiAr I2RlZmluZSBCSVRfQ0JVU19NU0NfTVRfRE9ORQkJCUJJVCgxKQo+ICsjZGVmaW5lIEJJVF9DQlVT X0NOWF9DSEcJCQlCSVQoMCkKPiArCj4gKy8qIENCVVMgSW50ZXJydXB0IE1hc2sgMXN0LCBkZWZh dWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0NCVVNfSU5UXzBfTUFTSwkJCTB4MDU5 Mwo+ICsKPiArLyogQ0JVUyBJbnRlcnJ1cHQgMm5kLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4g KyNkZWZpbmUgUkVHX0NCVVNfSU5UXzEJCQkJMHgwNTk0Cj4gKyNkZWZpbmUgQklUX0NCVVNfQ01E X0FCT1JUCQkJQklUKDYpCj4gKyNkZWZpbmUgQklUX0NCVVNfTVNDX0FCT1JUX1JDVkQJCQlCSVQo MykKPiArI2RlZmluZSBCSVRfQ0JVU19ERENfQUJPUlQJCQlCSVQoMikKPiArI2RlZmluZSBCSVRf Q0JVU19DRUNfQUJPUlQJCQlCSVQoMSkKPiArCj4gKy8qIENCVVMgSW50ZXJydXB0IE1hc2sgMm5k LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0NCVVNfSU5UXzFfTUFTSwkJ CTB4MDU5NQo+ICsKPiArLyogQ0JVUyBEREMgQWJvcnQgSW50ZXJydXB0LCBkZWZhdWx0IHZhbHVl OiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0REQ19BQk9SVF9JTlQJCQkweDA1OTgKPiArCj4gKy8q IENCVVMgRERDIEFib3J0IEludGVycnVwdCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4g KyNkZWZpbmUgUkVHX0REQ19BQk9SVF9JTlRfTUFTSwkJCTB4MDU5OQo+ICsKPiArLyogQ0JVUyBN U0MgUmVxdWVzdGVyIEFib3J0IEludGVycnVwdCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsj ZGVmaW5lIFJFR19NU0NfTVRfQUJPUlRfSU5UCQkJMHgwNTlhCj4gKwo+ICsvKiBDQlVTIE1TQyBS ZXF1ZXN0ZXIgQWJvcnQgSW50ZXJydXB0IE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiAr I2RlZmluZSBSRUdfTVNDX01UX0FCT1JUX0lOVF9NQVNLCQkweDA1OWIKPiArCj4gKy8qIENCVVMg TVNDIFJlc3BvbmRlciBBYm9ydCBJbnRlcnJ1cHQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiAr I2RlZmluZSBSRUdfTVNDX01SX0FCT1JUX0lOVAkJCTB4MDU5Ywo+ICsKPiArLyogQ0JVUyBNU0Mg UmVzcG9uZGVyIEFib3J0IEludGVycnVwdCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4g KyNkZWZpbmUgUkVHX01TQ19NUl9BQk9SVF9JTlRfTUFTSwkJMHgwNTlkCj4gKwo+ICsvKiBDQlVT IFJYIERJU0NPVkVSWSBpbnRlcnJ1cHQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmlu ZSBSRUdfQ0JVU19SWF9ESVNDX0lOVDAJCQkweDA1OWUKPiArCj4gKy8qIENCVVMgUlggRElTQ09W RVJZIEludGVycnVwdCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVH X0NCVVNfUlhfRElTQ19JTlQwX01BU0sJCTB4MDU5Zgo+ICsKPiArLyogQ0JVU19MaW5rX0xheWVy IENvbnRyb2wgIzgsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfQ0JVU19M SU5LX0NUUkxfOAkJCTB4MDVhNwo+ICsKPiArLyogTURUIFN0YXRlIE1hY2hpbmUgU3RhdHVzLCBk ZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX01EVF9TTV9TVEFUCQkJCTB4MDVi NQo+ICsjZGVmaW5lIE1TS19NRFRfU01fU1RBVF9NRFRfUkNWX1NUQVRFCQkweGYwCj4gKyNkZWZp bmUgTVNLX01EVF9TTV9TVEFUX01EVF9YTUlUX1NUQVRFCQkweDBmCj4gKwo+ICsvKiBDQlVTIE1T QyBjb21tYW5kIHRyaWdnZXIsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdf TVNDX0NPTU1BTkRfU1RBUlQJCQkweDA1YjgKPiArI2RlZmluZSBCSVRfTVNDX0NPTU1BTkRfU1RB UlRfREVCVUcJCUJJVCg1KQo+ICsjZGVmaW5lIEJJVF9NU0NfQ09NTUFORF9TVEFSVF9XUklURV9C VVJTVAlCSVQoNCkKPiArI2RlZmluZSBCSVRfTVNDX0NPTU1BTkRfU1RBUlRfV1JJVEVfU1RBVAlC SVQoMykKPiArI2RlZmluZSBCSVRfTVNDX0NPTU1BTkRfU1RBUlRfUkVBRF9ERVZDQVAJQklUKDIp Cj4gKyNkZWZpbmUgQklUX01TQ19DT01NQU5EX1NUQVJUX01TQ19NU0cJCUJJVCgxKQo+ICsjZGVm aW5lIEJJVF9NU0NfQ09NTUFORF9TVEFSVF9QRUVSCQlCSVQoMCkKPiArCj4gKy8qIENCVVMgTVND IENvbW1hbmQvT2Zmc2V0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX01T Q19DTURfT1JfT0ZGU0VUCQkJMHgwNWI5Cj4gKwo+ICsvKiBDQlVTIE1TQyBUcmFuc21pdCBEYXRh ICovCj4gKyNkZWZpbmUgUkVHX01TQ18xU1RfVFJBTlNNSVRfREFUQQkJMHgwNWJhCj4gKyNkZWZp bmUgUkVHX01TQ18yTkRfVFJBTlNNSVRfREFUQQkJMHgwNWJiCj4gKwo+ICsvKiBDQlVTIE1TQyBS ZXF1ZXN0ZXIgUmVjZWl2ZWQgRGF0YSAqLwo+ICsjZGVmaW5lIFJFR19NU0NfTVRfUkNWRF9EQVRB MAkJCTB4MDViYwo+ICsjZGVmaW5lIFJFR19NU0NfTVRfUkNWRF9EQVRBMQkJCTB4MDViZAo+ICsK PiArLyogQ0JVUyBNU0MgUmVzcG9uZGVyIE1TQ19NU0cgUmVjZWl2ZWQgRGF0YSAqLwo+ICsjZGVm aW5lIFJFR19NU0NfTVJfTVNDX01TR19SQ1ZEXzFTVF9EQVRBCTB4MDViZgo+ICsjZGVmaW5lIFJF R19NU0NfTVJfTVNDX01TR19SQ1ZEXzJORF9EQVRBCTB4MDVjMAo+ICsKPiArLyogQ0JVUyBNU0Mg SGVhcnRiZWF0IENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MjcgKi8KPiArI2RlZmluZSBSRUdf TVNDX0hFQVJUQkVBVF9DVFJMCQkJMHgwNWM0Cj4gKyNkZWZpbmUgQklUX01TQ19IRUFSVEJFQVRf Q1RSTF9NU0NfSEJfRU4JQklUKDcpCj4gKyNkZWZpbmUgTVNLX01TQ19IRUFSVEJFQVRfQ1RSTF9N U0NfSEJfRkFJTF9MSU1JVCAweDcwCj4gKyNkZWZpbmUgTVNLX01TQ19IRUFSVEJFQVRfQ1RSTF9N U0NfSEJfUEVSSU9EX01TQiAweDBmCj4gKwo+ICsvKiBDQlVTIE1TQyBDb21wYXRpYmlsaXR5IENv bnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MDIgKi8KPiArI2RlZmluZSBSRUdfQ0JVU19NU0NfQ09N UEFUX0NUUkwJCTB4MDVjNwo+ICsjZGVmaW5lIEJJVF9DQlVTX01TQ19DT01QQVRfQ1RSTF9YREVW Q0FQX0VOCUJJVCg3KQo+ICsjZGVmaW5lIEJJVF9DQlVTX01TQ19DT01QQVRfQ1RSTF9ESVNBQkxF X01TQ19PTl9DQlVTIEJJVCg2KQo+ICsjZGVmaW5lIEJJVF9DQlVTX01TQ19DT01QQVRfQ1RSTF9E SVNBQkxFX0REQ19PTl9DQlVTIEJJVCg1KQo+ICsjZGVmaW5lIEJJVF9DQlVTX01TQ19DT01QQVRf Q1RSTF9ESVNBQkxFX0dFVF9ERENfRVJST1JDT0RFIEJJVCgzKQo+ICsjZGVmaW5lIEJJVF9DQlVT X01TQ19DT01QQVRfQ1RSTF9ESVNBQkxFX0dFVF9WUzFfRVJST1JDT0RFIEJJVCgyKQo+ICsKPiAr LyogQ0JVUzMgQ29udmVydGVyIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MjQgKi8KPiArI2Rl ZmluZSBSRUdfQ0JVUzNfQ05WVAkJCQkweDA1ZGMKPiArI2RlZmluZSBNU0tfQ0JVUzNfQ05WVF9D QlVTM19SRVRSWUxNVAkJMHhmMAo+ICsjZGVmaW5lIE1TS19DQlVTM19DTlZUX0NCVVMzX1BFRVJU T1VUX1NFTAkweDBjCj4gKyNkZWZpbmUgQklUX0NCVVMzX0NOVlRfVEVBUkNCVVNfRU4JCUJJVCgx KQo+ICsjZGVmaW5lIEJJVF9DQlVTM19DTlZUX0NCVVMzQ05WVF9FTgkJQklUKDApCj4gKwo+ICsv KiBEaXNjb3ZlcnkgQ29udHJvbDEsIGRlZmF1bHQgdmFsdWU6IDB4MjQgKi8KPiArI2RlZmluZSBS RUdfRElTQ19DVFJMMQkJCQkweDA1ZTAKPiArI2RlZmluZSBCSVRfRElTQ19DVFJMMV9DQlVTX0lO VFJfRU4JCUJJVCg3KQo+ICsjZGVmaW5lIEJJVF9ESVNDX0NUUkwxX0hCX09OTFkJCQlCSVQoNikK PiArI2RlZmluZSBNU0tfRElTQ19DVFJMMV9ESVNDX0FUVAkJCTB4MzAKPiArI2RlZmluZSBNU0tf RElTQ19DVFJMMV9ESVNDX0NZQwkJCTB4MGMKPiArI2RlZmluZSBCSVRfRElTQ19DVFJMMV9ESVND X0VOCQkJQklUKDApCj4gKwo+ICsjZGVmaW5lIFZBTF9QVVBfT0ZGCQkJCTAKPiArI2RlZmluZSBW QUxfUFVQXzIwSwkJCQkxCj4gKyNkZWZpbmUgVkFMX1BVUF81SwkJCQkyCj4gKwo+ICsvKiBEaXNj b3ZlcnkgQ29udHJvbDQsIGRlZmF1bHQgdmFsdWU6IDB4ODAgKi8KPiArI2RlZmluZSBSRUdfRElT Q19DVFJMNAkJCQkweDA1ZTMKPiArI2RlZmluZSBNU0tfRElTQ19DVFJMNF9DQlVTRElTQ19QVVBf U0VMCQkweGMwCj4gKyNkZWZpbmUgTVNLX0RJU0NfQ1RSTDRfQ0JVU0lETEVfUFVQX1NFTAkJMHgz MAo+ICsjZGVmaW5lIFZBTF9ESVNDX0NUUkw0KHB1cF9kaXNjLCBwdXBfaWRsZSkgKCgocHVwX2Rp c2MpIDw8IDYpIHwgKHB1cF9pZGxlIDw8IDQpKQo+ICsKPiArLyogRGlzY292ZXJ5IENvbnRyb2w1 LCBkZWZhdWx0IHZhbHVlOiAweDAzICovCj4gKyNkZWZpbmUgUkVHX0RJU0NfQ1RSTDUJCQkJMHgw NWU0Cj4gKyNkZWZpbmUgQklUX0RJU0NfQ1RSTDVfRFNNX09WUklERQkJQklUKDMpCj4gKyNkZWZp bmUgTVNLX0RJU0NfQ1RSTDVfQ0JVU01ITF9QVVBfU0VMCQkweDAzCj4gKwo+ICsvKiBEaXNjb3Zl cnkgQ29udHJvbDgsIGRlZmF1bHQgdmFsdWU6IDB4ODEgKi8KPiArI2RlZmluZSBSRUdfRElTQ19D VFJMOAkJCQkweDA1ZTcKPiArI2RlZmluZSBCSVRfRElTQ19DVFJMOF9OT01ITElOVF9DTFJfQllQ QVNTCUJJVCg3KQo+ICsjZGVmaW5lIEJJVF9ESVNDX0NUUkw4X0RFTEFZX0NCVVNfSU5UUl9FTglC SVQoMCkKPiArCj4gKy8qIERpc2NvdmVyeSBDb250cm9sOSwgZGVmYXVsdCB2YWx1ZTogMHg1NCAq Lwo+ICsjZGVmaW5lIFJFR19ESVNDX0NUUkw5CQkJMHgwNWU4Cj4gKyNkZWZpbmUgQklUX0RJU0Nf Q1RSTDlfTUhMM19SU0VOX0JZUAkJQklUKDcpCj4gKyNkZWZpbmUgQklUX0RJU0NfQ1RSTDlfTUhM M0RJU0NfRU4JCUJJVCg2KQo+ICsjZGVmaW5lIEJJVF9ESVNDX0NUUkw5X1dBS0VfRFJWRkxUCQlC SVQoNCkKPiArI2RlZmluZSBCSVRfRElTQ19DVFJMOV9OT01ITF9FU1QJCUJJVCgzKQo+ICsjZGVm aW5lIEJJVF9ESVNDX0NUUkw5X0RJU0NfUFVMU0VfUFJPQ0VFRAlCSVQoMikKPiArI2RlZmluZSBC SVRfRElTQ19DVFJMOV9XQUtFX1BVTFNFX0JZUEFTUwlCSVQoMSkKPiArI2RlZmluZSBCSVRfRElT Q19DVFJMOV9WQlVTX09VVFBVVF9DQVBBQklMSVRZX1NSQyBCSVQoMCkKPiArCj4gKy8qIERpc2Nv dmVyeSBTdGF0dXMxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0RJU0Nf U1RBVDEJCQkJMHgwNWViCj4gKyNkZWZpbmUgQklUX0RJU0NfU1RBVDFfUFNNX09WUklERQkJQklU KDUpCj4gKyNkZWZpbmUgTVNLX0RJU0NfU1RBVDFfRElTQ19TTQkJCTB4MGYKPiArCj4gKy8qIERp c2NvdmVyeSBTdGF0dXMyLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gKyNkZWZpbmUgUkVHX0RJ U0NfU1RBVDIJCQkJMHgwNWVjCj4gKyNkZWZpbmUgQklUX0RJU0NfU1RBVDJfQ0JVU19PRV9QT0wJ CUJJVCg2KQo+ICsjZGVmaW5lIEJJVF9ESVNDX1NUQVQyX0NCVVNfU0FUVVMJCUJJVCg1KQo+ICsj ZGVmaW5lIEJJVF9ESVNDX1NUQVQyX1JTRU4JCQlCSVQoNCkKPiArCj4gKyNkZWZpbmUgTVNLX0RJ U0NfU1RBVDJfTUhMX1ZSU04JCQkweDBjCj4gKyNkZWZpbmUgVkFMX0RJU0NfU1RBVDJfREVGQVVM VAkJCTB4MDAKPiArI2RlZmluZSBWQUxfRElTQ19TVEFUMl9NSEwxXzIJCQkweDA0Cj4gKyNkZWZp bmUgVkFMX0RJU0NfU1RBVDJfTUhMMwkJCTB4MDgKPiArI2RlZmluZSBWQUxfRElTQ19TVEFUMl9S RVNFUlZFRAkJCTB4MGMKPiArCj4gKyNkZWZpbmUgTVNLX0RJU0NfU1RBVDJfUkdORAkJCTB4MDMK PiArI2RlZmluZSBWQUxfUkdORF9PUEVOCQkJCTB4MDAKPiArI2RlZmluZSBWQUxfUkdORF8ySwkJ CQkweDAxCj4gKyNkZWZpbmUgVkFMX1JHTkRfMUsJCQkJMHgwMgo+ICsjZGVmaW5lIFZBTF9SR05E X1NIT1JUCQkJCTB4MDMKPiArCj4gKy8qIEludGVycnVwdCBDQlVTX3JlZzEgSU5UUjAsIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KPiArI2RlZmluZSBSRUdfQ0JVU19ESVNDX0lOVFIwCQkJMHgwNWVk Cj4gKyNkZWZpbmUgQklUX1JHTkRfUkVBRFlfSU5UCQkJQklUKDYpCj4gKyNkZWZpbmUgQklUX0NC VVNfTUhMMTJfRElTQ09OX0lOVAkJQklUKDUpCj4gKyNkZWZpbmUgQklUX0NCVVNfTUhMM19ESVND T05fSU5UCQlCSVQoNCkKPiArI2RlZmluZSBCSVRfTk9UX01ITF9FU1RfSU5UCQkJQklUKDMpCj4g KyNkZWZpbmUgQklUX01ITF9FU1RfSU5UCQkJCUJJVCgyKQo+ICsjZGVmaW5lIEJJVF9NSEwzX0VT VF9JTlQJCQlCSVQoMSkKPiArI2RlZmluZSBWQUxfQ0JVU19NSExfRElTQ09OIChCSVRfQ0JVU19N SEwxMl9ESVNDT05fSU5UIFwKPiArCQkJICAgIHwgQklUX0NCVVNfTUhMM19ESVNDT05fSU5UIFwK PiArCQkJICAgIHwgQklUX05PVF9NSExfRVNUX0lOVCkKPiArCj4gKy8qIEludGVycnVwdCBDQlVT X3JlZzEgSU5UUjAgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ICsjZGVmaW5lIFJFR19D QlVTX0RJU0NfSU5UUjBfTUFTSwkJMHgwNWVlCj4gKwo+ICsjZW5kaWYgLyogX19TSUxfU0lJODYy MF9IX18gKi8KPgoKLS0gClF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVt YmVyIG9mIENvZGUgQXVyb3JhIEZvcnVtLAphIExpbnV4IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2 ZSBQcm9qZWN0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=