ZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXBwYy9lMzAwLmggYi9pbmNsdWRlL2FzbS1wcGMvZTMwMC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwOTZhMjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1wcGMvZTMwMC5oCkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogQ29weXJpZ2h0IDIwMDQgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4KKyAqIExpYmVydHkgRXJhbiAobGliZXJ0eUBmcmVlc2NhbGUuY29tKQorICovCisKKyNpZm5kZWYJX19FMzAwX0hfXworI2RlZmluZSBfX0UzMDBfSF9fCisKKy8qCisgKiBlMzAwIFByb2Nlc3NvciBWZXJzaW9uICYgUmV2aXNpb24gTnVtYmVycyAKKyAqLworI2RlZmluZSBQVlJfODN4eCAweDgwODMwMDAwCisjZGVmaW5lIFBWUl84MzQ5X1JFVjEwIChQVlJfODN4eCB8IDB4MDAxMCkKKyNkZWZpbmUgUFZSXzgzNDlfUkVWMTEgKFBWUl84M3h4IHwgMHgwMDExKQorCisvKgorICogSGFyZHdhcmUgSW1wbGVtZW50YXRpb24tRGVwZW5kZW50IFJlZ2lzdGVyIDAgKEhJRDApCisgKi8KKyAKKy8qICNkZWZpbmUgSElEMCAxMDA4IGFscmVhZHkgZGVmaW5lZCBpbiBwcm9jZXNzb3IuaCAqLworI2RlZmluZSBISUQwX01BU0tfTUFDSElORV9DSEVDSyAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBISUQwX0VOQUJMRV9NQUNISU5FX0NIRUNLICAgICAgICAgICAgMHg4MDAwMDAwMAorCisjZGVmaW5lIEhJRDBfRElTQUJMRV9DQUNIRV9QQVJJVFkgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIEhJRDBfRU5BQkxFX0NBQ0hFX1BBUklUWSAgICAgICAgICAgICAweDQwMDAwMDAwCisKKyNkZWZpbmUgSElEMF9ESVNBQkxFX0FERFJFU1NfUEFSSVRZICAgICAgICAgIDB4MDAwMDAwMDAgLyogb24gbXBjODM0OWFkcyBtdXN0IGJlIGRpc2FibGVkICovCisjZGVmaW5lIEhJRDBfRU5BQkxFX0FERFJFU1NfUEFSSVRZICAgICAgICAgICAweDIwMDAwMDAwCisKKyNkZWZpbmUgSElEMF9ESVNBQkxFX0RBVEFfUEFSSVRZICAgICAgICAgICAgIDB4MDAwMDAwMDAgLyogb24gbXBjODM0OWFkcyBtdXN0IGJlIGRpc2FibGVkICovCisjZGVmaW5lIEhJRDBfRU5BQkxFX0RBVEVfUEFSSVRZICAgICAgICAgICAgICAweDEwMDAwMDAwCisKKyNkZWZpbmUgSElEMF9DT1JFX0NMS19PVVQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgSElEMF9DT1JFX0NMS19PVVRfRElWXzIgICAgICAgICAgICAgIDB4MDgwMDAwMDAKKworI2RlZmluZSBISUQwX0VOQUJMRV9BUlRSWV9PVVRfUFJFQ0hBUkdFICAgICAgMHgwMDAwMDAwMCAvKiBvbiBtcGM4MzQ5YWRzIG11c3QgYmUgZW5hYmxlZCAqLworI2RlZmluZSBISUQwX0RJU0FCTEVfQVJUUllfT1VUX1BSRUNIQVJHRSAgICAgMHgwMTAwMDAwMAorCisjZGVmaW5lIEhJRDBfRElTQUJMRV9ET1NFX01PREUgICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIEhJRDBfRU5BQkxFX0RPU0VfTU9ERSAgICAgICAgICAgICAgICAweDAwODAwMDAwCisKKyNkZWZpbmUgSElEMF9ESVNBQkxFX05BUF9NT0RFICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgSElEMF9FTkFCTEVfTkFQX01PREUgICAgICAgICAgICAgICAgIDB4MDA0MDAwMDAKKworI2RlZmluZSBISUQwX0RJU0FCTEVfU0xFRVBfTU9ERSAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBISUQwX0VOQUJMRV9TTEVFUF9NT0RFICAgICAgICAgICAgICAgMHgwMDIwMDAwMAorCisjZGVmaW5lIEhJRDBfRElTQUJMRV9EWU5BTUlDX1BPV0VSX01BTkFHTUVOVCAweDAwMDAwMDAwCisjZGVmaW5lIEhJRDBfRU5BQkxFX0RZTkFNSUNfUE9XRVJfTUFOQUdNRU5UICAweDAwMTAwMDAwCisKKyNkZWZpbmUgSElEMF9TT0ZUX1JFU0VUICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDAKKworI2RlZmluZSBISUQwX0RJU0FCTEVfSU5TVFJVQ1RJT05fQ0FDSEUgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBISUQwX0VOQUJMRV9JTlNUUlVDVElPTl9DQUNIRSAgICAgICAgMHgwMDAwODAwMAorCisjZGVmaW5lIEhJRDBfRElTQUJMRV9EQVRBX0NBQ0hFICAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIEhJRDBfRU5BQkxFX0RBVEFfQ0FDSEUgICAgICAgICAgICAgICAweDAwMDA0MDAwCisKKyNkZWZpbmUgSElEMF9MT0NLX0lOU1RSVUNUSU9OX0NBQ0hFICAgICAgICAgIDB4MDAwMDIwMDAKKworI2RlZmluZSBISUQwX0xPQ0tfREFUQV9DQUNIRSAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMAorCisjZGVmaW5lIEhJRDBfSU5WQUxJREFURV9JTlNUUlVDVElPTl9DQUNIRSAgICAweDAwMDAwODAwCisKKyNkZWZpbmUgSElEMF9JTlZBTElEQVRFX0RBVEFfQ0FDSEUgICAgICAgICAgIDB4MDAwMDA0MDAKKworI2RlZmluZSBISUQwX0RJU0FCTEVfTV9CSVQgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBISUQwX0VOQUJMRV9NX0JJVCAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MAorCisjZGVmaW5lIEhJRDBfRkJJT0IgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwCisKKyNkZWZpbmUgSElEMF9ESVNBQkxFX0FERFJFU1NfQlJPQURDQVNUICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgSElEMF9FTkFCTEVfQUREUkVTU19CUk9BRENBU1QgICAgICAgIDB4MDAwMDAwMDgKKworI2RlZmluZSBISUQwX0VOQUJMRV9OT09QX0RDQUNIRV9JTlNUUlVDVElPTiAgMHgwMDAwMDAwMAorI2RlZmluZSBISUQwX0RJU0FCTEVfTk9PUF9EQ0FDSEVfSU5TVFJVQ1RJT04gMHgwMDAwMDAwMQorCisvKgorICogSGFyZHdhcmUgSW1wbGVtZW50YXRpb24tRGVwZW5kZW50IFJlZ2lzdGVyIDIgKEhJRDIpCisgKi8KKyNkZWZpbmUgSElEMgkJMTAxMQorCisjZGVmaW5lIEhJRDJfTEVUICAgICAgIDB4MDgwMDAwMDAKKyNkZWZpbmUgSElEMl9IQkUgICAgICAgMHgwMDA0MDAwMAorI2RlZmluZSBISUQyX0lXTENLXzAwMCAweDAwMDAwMDAwIC8qIG5vIHdheXMgbG9ja2VkICovCisjZGVmaW5lIEhJRDJfSVdMQ0tfMDAxIDB4MDAwMDIwMDAgLyogd2F5IDAgbG9ja2VkICovCisjZGVmaW5lIEhJRDJfSVdMQ0tfMDEwIDB4MDAwMDQwMDAgLyogd2F5IDAgdGhyb3VnaCB3YXkgMSBsb2NrZWQgKi8KKyNkZWZpbmUgSElEMl9JV0xDS18wMTEgMHgwMDAwNjAwMCAvKiB3YXkgMCB0aHJvdWdoIHdheSAyIGxvY2tlZCAqLworI2RlZmluZSBISUQyX0lXTENLXzEwMCAweDAwMDA4MDAwIC8qIHdheSAwIHRocm91Z2ggd2F5IDMgbG9ja2VkICovCisjZGVmaW5lIEhJRDJfSVdMQ0tfMTAxIDB4MDAwMEEwMDAgLyogd2F5IDAgdGhyb3VnaCB3YXkgNCBsb2NrZWQgKi8KKyNkZWZpbmUgSElEMl9JV0xDS18xMTAgMHgwMDAwQzAwMCAvKiB3YXkgMCB0aHJvdWdoIHdheSA1IGxvY2tlZCAqLworCisKKy8qIEJBVCAoYmxvY2sgYWRkcmVzcyB0cmFuc2xhdGlvbiAqLworI2RlZmluZSBCQVRVX0JFUElfTVNLCSAgICAweGZmZmUwMDAwCisjZGVmaW5lIEJBVFVfQkxfTVNLICAgICAgICAgMHgwMDAwMWZmYworCisjZGVmaW5lIEJBVFVfQkxfMTI4SyAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBCQVRVX0JMXzI1NksgICAgICAgIDB4MDAwMDAwMDQKKyNkZWZpbmUgQkFUVV9CTF81MTJLICAgICAgICAweDAwMDAwMDBjCisjZGVmaW5lIEJBVFVfQkxfMU0gICAgICAgICAgMHgwMDAwMDAxYworI2RlZmluZSBCQVRVX0JMXzJNICAgICAgICAgIDB4MDAwMDAwM2MKKyNkZWZpbmUgQkFUVV9CTF80TSAgICAgICAgICAweDAwMDAwMDdjCisjZGVmaW5lIEJBVFVfQkxfOE0gICAgICAgICAgMHgwMDAwMDBmYworI2RlZmluZSBCQVRVX0JMXzE2TSAgICAgICAgIDB4MDAwMDAxZmMKKyNkZWZpbmUgQkFUVV9CTF8zMk0gICAgICAgICAweDAwMDAwM2ZjCisjZGVmaW5lIEJBVFVfQkxfNjRNICAgICAgICAgMHgwMDAwMDdmYworI2RlZmluZSBCQVRVX0JMXzEyOE0gICAgICAgIDB4MDAwMDBmZmMKKyNkZWZpbmUgQkFUVV9CTF8yNTZNICAgICAgICAweDAwMDAxZmZjCisKKyNkZWZpbmUgQkFUVV9WUyAgICAgICAgICAgICAweDAwMDAwMDAyCisjZGVmaW5lIEJBVFVfVlAgICAgICAgICAgICAgMHgwMDAwMDAwMQorCisjZGVmaW5lIEJBVExfQlJQTl9NU0sgICAgICAgMHhmZmZlMDAwMAorI2RlZmluZSBCQVRMX1dJTUdfTVNLICAgICAgIDB4MDAwMDAwNzgKKworI2RlZmluZSBCQVRMX1dSSVRFVEhST1VHSCAgIDB4MDAwMDAwNDAKKyNkZWZpbmUgQkFUTF9DQUNIRUlOSElCSVQgICAweDAwMDAwMDIwCisjZGVmaW5lIEJBVExfTUVNQ09IRVJFTkNFICAgMHgwMDAwMDAxMAorI2RlZmluZSBCQVRMX0dVQVJERURTVE9SQUdFIDB4MDAwMDAwMDgKKworI2RlZmluZSBCQVRMX1BQX01TSyAgICAgICAgIDB4MDAwMDAwMDMKKyNkZWZpbmUgQkFUTF9QUF8wMCAgICAgICAgICAweDAwMDAwMDAwIC8qIE5vIGFjY2VzcyAqLworI2RlZmluZSBCQVRMX1BQXzAxICAgICAgICAgIDB4MDAwMDAwMDEgLyogUmVhZC1vbmx5ICovCisjZGVmaW5lIEJBVExfUFBfMTAgICAgICAgICAgMHgwMDAwMDAwMiAvKiBSZWFkLXdyaXRlICovCisjZGVmaW5lIEJBVExfUFBfMTEgICAgICAgIAkweDAwMDAwMDAzCisKKyNlbmRpZgkvKiBfX0UzMDBfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1wcGMvZ2xvYmFsX2RhdGEuaCBiL2luY2x1ZGUvYXNtLXBwYy9nbG9iYWxfZGF0YS5oCmluZGV4IDJiNTdhOGIuLjk2ODFhNzQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXBwYy9nbG9iYWxfZGF0YS5oCisrKyBiL2luY2x1ZGUvYXNtLXBwYy9nbG9iYWxfZGF0YS5oCkBAIC0yMyw2ICsyMyw5IEBACiAKICNpZm5kZWYJX19BU01fR0JMX0RBVEFfSAogI2RlZmluZSBfX0FTTV9HQkxfREFUQV9ICisKKyNpbmNsdWRlICJhc20vdHlwZXMuaCIKKwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmUgaXMgcGxhY2VkIGluIHNvbWUgbWVtb3J5IHdpY2ggaXMKICAqIGF2YWlsYWJsZSB2ZXJ5IGVhcmx5IGFmdGVyIGJvb3QgKGxpa2UgRFBSQU0gb24gTVBDOHh4L01QQzgyeHgsIG9yCkBAIC00Niw2ICs0OSwyMCBAQAogCXVuc2lnbmVkIGxvbmcJc2NjX2NsazsKIAl1bnNpZ25lZCBsb25nCWJyZ19jbGs7CiAjZW5kaWYKKyNpZiBkZWZpbmVkKENPTkZJR19NUEM4M1hYKQorCS8qIFRoZXJlIGFyZSBvdGhlciBjbG9ja3MgaW4gdGhlIE1QQzgzWFggKi8KKwl1MzIgY3NiX2NsazsKKwl1MzIgdHNlYzFfY2xrOworCXUzMiB0c2VjMl9jbGs7CisJdTMyIGNvcmVfY2xrOworCXUzMiB1c2JtcGhfY2xrOworCXUzMiB1c2Jkcl9jbGs7CisJdTMyIGkyY19jbGs7CisJdTMyIGVuY19jbGs7CisJdTMyIGxiaXVfY2xrOworCXUzMiBsY2xrX2NsazsKKwl1MzIgZGRyX2NsazsKKyNlbmRpZgogI2lmIGRlZmluZWQoQ09ORklHX01QQzV4eHgpCiAJdW5zaWduZWQgbG9uZwlpcGJfY2xrOwogCXVuc2lnbmVkIGxvbmcJcGNpX2NsazsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXBwYy9pMmMuaCBiL2luY2x1ZGUvYXNtLXBwYy9pMmMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2VjOWFhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tcHBjL2kyYy5oCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogRnJlZXNjYWxlIEkyQyBDb250cm9sbGVyCisgKgorICogVGhpcyBzb2Z0d2FyZSBtYXkgYmUgdXNlZCBhbmQgZGlzdHJpYnV0ZWQgYWNjb3JkaW5nIHRvIHRoZQorICogdGVybXMgb2YgdGhlIEdOVSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAyLCBpbmNvcnBvcmF0ZWQKKyAqIGhlcmVpbiBieSByZWZlcmVuY2UuCisgKgorICogQ29weXJpZ2h0IDIwMDQgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IuCisgKiAoQykgQ29weXJpZ2h0IDIwMDMsIE1vdG9yb2xhLCBJbmMuCisgKiBhdXRob3I6IEVyYW4gTGliZXJ0eSAobGliZXJ0eUBmcmVlc2NhbGUuY29tKQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sCisgKiBNQSAwMjExMS0xMzA3IFVTQQorICovCisKKyNpZm5kZWYgX0FTTV9JMkNfSF8KKyNkZWZpbmUgX0FTTV9JMkNfSF8KKworI2luY2x1ZGUgPGFzbS90eXBlcy5oPgorCit0eXBlZGVmIHN0cnVjdCBpMmMKK3sKKyAgICB1OCBhZHI7ICAgICAgICAgIC8qKjwgSTJDIHNsYXZlIGFkZHJlc3MgICAgICAgICAgICAgICovCisjZGVmaW5lIEkyQ19BRFIJICAgICAgMHhGRQorI2RlZmluZSBJMkNfQURSX1NISUZUIDEKKyNkZWZpbmUgSTJDX0FEUl9SRVMgICB+KEkyQ19BRFIpCisgICAgdTggcmVzMFszXTsgICAgIAorICAgIHU4IGZkcjsgICAgICAgICAgLyoqPCBJMkMgZnJlcXVlbmN5IGRpdmlkZXIgcmVnaXN0ZXIgKi8KKyAgICAKKyNkZWZpbmUgSUMyX0ZEUiAgICAgICAweDNGCisjZGVmaW5lIElDMl9GRFJfU0hJRlQgMAorI2RlZmluZSBJQzJfRkRSX1JFUyAgIH4oSUMyX0ZEUikKKyAgICB1OCByZXMxWzNdOyAgICAgCisgICAgdTggY3I7ICAgICAgICAgICAvKio8IEkyQyBjb250cm9sIHJlZGlzdGVyICAgICAgICAgICAqLworI2RlZmluZSBJMkNfQ1JfTUVOCSAgMHg4MAorI2RlZmluZSBJMkNfQ1JfTUlFTgkgIDB4NDAKKyNkZWZpbmUgSTJDX0NSX01TVEEgICAweDIwCisjZGVmaW5lIEkyQ19DUl9NVFggICAgMHgxMAorI2RlZmluZSBJMkNfQ1JfVFhBSyAgIDB4MDgKKyNkZWZpbmUgSTJDX0NSX1JTVEEgICAweDA0CisjZGVmaW5lIEkyQ19DUl9CQ1NUICAgMHgwMQorICAgIHU4IHJlczJbM107ICAgICAKKyAgICB1OCBzcjsgICAgICAgICAgIC8qKjwgSTJDIHN0YXR1cyByZWdpc3RlciAgICAgICAgICAgICovCisjZGVmaW5lIEkyQ19TUl9NQ0YgICAgMHg4MAorI2RlZmluZSBJMkNfU1JfTUFBUyAgIDB4NDAKKyNkZWZpbmUgSTJDX1NSX01CQiAgICAweDIwCisjZGVmaW5lIEkyQ19TUl9NQUwgICAgMHgxMAorI2RlZmluZSBJMkNfU1JfQkNTVE0gIDB4MDgKKyNkZWZpbmUgSTJDX1NSX1NSVyAgICAweDA0CisjZGVmaW5lIEkyQ19TUl9NSUYgICAgMHgwMgorI2RlZmluZSBJMkNfU1JfUlhBSyAgIDB4MDEKKyAgICB1OCByZXMzWzNdOyAgICAgCisgICAgdTggZHI7ICAgICAgICAgICAvKio8IEkyQyBkYXRhIHJlZ2lzdGVyICAgICAgICAgICAgICAqLworI2RlZmluZSBJMkNfRFIgMHhGRgorI2RlZmluZSBJMkNfRFJfU0hJRlQgMAorI2RlZmluZSBJMkNfRFJfUkVTIH4oSTJDX0RSKQorICAgIHU4IHJlczRbM107ICAgICAKKyAgICB1OCBkZnNycjsgICAgICAgIC8qKjwgSTJDIGRpZ2l0YWwgZmlsdGVyIHNhbXBsaW5nIHJhdGUgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgSTJDX0RGU1JSIDB4M0YKKyNkZWZpbmUgSTJDX0RGU1JSX1NISUZUIDAKKyNkZWZpbmUgSTJDX0RGU1JSX1JFUyB+KEkyQ19EUikKKyAgICB1OCByZXM1WzNdOworICAgIHU4IHJlczZbMHhFOF07ICAgICAKK30gaTJjX3Q7CisKKyNpZm5kZWYgQ0ZHX0haCisjZXJyb3IgQ0ZHX0haIGlzIG5vdCBkZWZpbmVkIGluIC9pbmNsdWRlL2NvbmZpZ3MvJHtCT0FSRH0uaAorI2VuZGlmCisjZGVmaW5lIEkyQ19USU1FT1VUIChDRkdfSFovNCkKKworI2lmbmRlZiBDRkdfSU1NUkJBUgorI2Vycm9yIENGR19JTU1SQkFSIGlzIG5vdCBkZWZpbmVkIGluIC9pbmNsdWRlL2NvbmZpZ3MvJHtCT0FSRH0uaAorI2VuZGlmCisKKyNpZm5kZWYgQ0ZHX0kyQ19PRkZTRVQKKyNlcnJvciBDRkdfSTJDX09GRlNFVCBpcyBub3QgZGVmaW5lZCBpbiAvaW5jbHVkZS9jb25maWdzLyR7Qk9BUkR9LmgKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX01QQzgzNDlBRFMKKy8qIAorICogTVBDODM0OSBoYXZlIHR3byBpMmMgYnVzIAorICovCitleHRlcm4gaTJjX3QgKiBtcGM4MzQ5X2kyYzsKKyNkZWZpbmUgSTJDIG1wYzgzNDlfaTJjCisjZWxzZQorI2RlZmluZSBJMkMgKChpMmNfdCopKENGR19JTU1SQkFSICsgQ0ZHX0kyQ19PRkZTRVQpKQorI2VuZGlmCisKKyNkZWZpbmUgSTJDX1JFQUQgIDEKKyNkZWZpbmUgSTJDX1dSSVRFIDAKKworI2VuZGlmCS8qIF9BU01fSTJDX0hfICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1wcGMvaW1tYXBfODN4eC5oIGIvaW5jbHVkZS9hc20tcHBjL2ltbWFwXzgzeHguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODk0Y2RhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tcHBjL2ltbWFwXzgzeHguaApAQCAtMCwwICsxLDEwMzIgQEAKKy8qCisgKiBNUEM4MzQ5IEludGVybmFsIE1lbW9yeSBNYXAKKyAqIENvcHlyaWdodCAoYykgMjAwNCBGcmVlc2NhbGUgU2VtaWNvbmR1Y3Rvci4KKyAqIEVyYW4gTGliZXJ0eSAobGliZXJ0eUBmcmVlc2NhbGUuY29tKQorICogCisgKiBiYXNlZCBvbjoKKyAqIC0gTVBDODI2MCBJbnRlcm5hbCBNZW1vcnkgTWFwCisgKiAgIENvcHlyaWdodCAoYykgMTk5OSBEYW4gTWFsZWsgKGRtYWxla0BqbGMubmV0KQorICogLSBNUEM4NXh4IEludGVybmFsIE1lbW9yeSBNYXAKKyAqICAgQ29weXJpZ2h0KGMpIDIwMDIsMjAwMyBNb3Rvcm9sYSBJbmMuCisgKiAgIFhpYW5naHVhIFhpYW8gKHgueGlhb0Btb3Rvcm9sYS5jb20pCisgKi8KKyNpZm5kZWYgX19JTU1BUF84MzQ5X18KKyNkZWZpbmUgX19JTU1BUF84MzQ5X18KKworI2luY2x1ZGUgPGFzbS90eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9pMmMuaD4KKworLyogCisgKiBMb2NhbCBBY2Nlc3MgV2luZG93LgorICovCit0eXBlZGVmIHN0cnVjdCBsYXc4MzQ5IHsKKwl1MzIgYmFyOyAvKiBMQklVIGxvY2FsIGFjY2VzcyB3aW5kb3cgYmFzZSBhZGRyZXNzIHJlZ2lzdGVyICovCisjZGVmaW5lIExBV0JBUl9CQVIgICAgICAgICAweEZGRkZGMDAwIC8qIElkZW50aWZpZXMgdGhlIDIwIG1vc3Qtc2lnbmlmaWNhbnQgYWRkcmVzcyBiaXRzIG9mIHRoZSBiYXNlIG9mIGxvY2FsIGFjY2VzcyB3aW5kb3cgbi4gVGhlIHNwZWNpZmllZCBiYXNlIGFkZHJlc3Mgc2hvdWxkIGJlIGFsaWduZWQgdG8gdGhlIHdpbmRvdyBzaXplLCBhcyBkZWZpbmVkIGJ5IExCTEFXQVJuW1NJWkVdLiAqLworI2RlZmluZSBMQVdCQVJfUkVTCSAgICAgfihMQVdCQVJfQkFSKQorCXUzMiBhcjsgLyogTEJJVSBsb2NhbCBhY2Nlc3Mgd2luZG93IGF0dHJpYnV0ZSByZWdpc3RlciAqLworLyoKKyAqIFRoaXMgTWFjcm8gd2VyZSBtb3ZlZCBpbnRvIG1tdS5oCisgKi8KKyNpZiAwICAgIAorI2RlZmluZSBMQVdBUl9FTiAgICAgICAgICAgMHg4MDAwMDAwMCAvKiAwIFRoZSBsb2NhbCBidXMgbG9jYWwgYWNjZXNzIHdpbmRvdyBuIGlzIGRpc2FibGVkLiAxIFRoZSBsb2NhbCBidXMgbG9jYWwgYWNjZXNzIHdpbmRvdyBuIGlzIGVuYWJsZWQgYW5kIG90aGVyIExCTEFXQVIwIGFuZCBMQkxBV0JBUjAgZmllbGRzIGNvbWJpbmUgdG8gaWRlbnRpZnkgYW4gYWRkcmVzcyByYW5nZSBmb3IgdGhpcyB3aW5kb3cuICovCisjZGVmaW5lIExBV0FSX1NJWkUgICAgICAgICAweDAwMDAwMDNGIC8qIElkZW50aWZpZXMgdGhlIHNpemUgb2YgdGhlIHdpbmRvdyBmcm9tIHRoZSBzdGFydGluZyBhZGRyZXNzLiBXaW5kb3cgc2l6ZSBpcyAyXihTSVpFKzEpIGJ5dGVzLiAwMDAwMDCWMDAxMDEwUmVzZXJ2ZWQuIFdpbmRvdyBpcyB1bmRlZmluZWQuICovCisjZGVmaW5lCUxBV0FSX1NJWkVfNEsJMHgwMDAwMDAwQgorI2RlZmluZQlMQVdBUl9TSVpFXzhLCTB4MDAwMDAwMEMKKyNkZWZpbmUJTEFXQVJfU0laRV8xNksJMHgwMDAwMDAwRAorI2RlZmluZQlMQVdBUl9TSVpFXzMySwkweDAwMDAwMDBFCisjZGVmaW5lCUxBV0FSX1NJWkVfNjRLCTB4MDAwMDAwMEYKKyNkZWZpbmUJTEFXQVJfU0laRV8xMjhLCTB4MDAwMDAwMTAKKyNkZWZpbmUJTEFXQVJfU0laRV8yNTZLCTB4MDAwMDAwMTEKKyNkZWZpbmUJTEFXQVJfU0laRV81MTJLCTB4MDAwMDAwMTIKKyNkZWZpbmUJTEFXQVJfU0laRV8xTQkweDAwMDAwMDEzCisjZGVmaW5lCUxBV0FSX1NJWkVfMk0JMHgwMDAwMDAxNAorI2RlZmluZQlMQVdBUl9TSVpFXzRNCTB4MDAwMDAwMTUKKyNkZWZpbmUJTEFXQVJfU0laRV84TQkweDAwMDAwMDE2CisjZGVmaW5lCUxBV0FSX1NJWkVfMTZNCTB4MDAwMDAwMTcKKyNkZWZpbmUJTEFXQVJfU0laRV8zMk0JMHgwMDAwMDAxOAorI2RlZmluZQlMQVdBUl9TSVpFXzY0TQkweDAwMDAwMDE5CisjZGVmaW5lCUxBV0FSX1NJWkVfMTI4TQkweDAwMDAwMDFBCisjZGVmaW5lCUxBV0FSX1NJWkVfMjU2TQkweDAwMDAwMDFCCisjZGVmaW5lCUxBV0FSX1NJWkVfNTEyTQkweDAwMDAwMDFDCisjZGVmaW5lCUxBV0FSX1NJWkVfMUcJMHgwMDAwMDAxRAorI2RlZmluZQlMQVdBUl9TSVpFXzJHCTB4MDAwMDAwMUUKKyNkZWZpbmUgTEFXQVJfUkVTICAgICAgICAgIH4oTEFXQVJfRU58TEFXQVJfU0laRSkKKyNlbmRpZgorCit9IGxhdzgzNDlfdDsKKworLyogCisgKiBTeXN0ZW0gY29uZmlndXJhdGlvbiByZWdpc3RlcnMuCisgKi8KK3R5cGVkZWYgc3RydWN0IHN5c2NvbmY4MzQ5IHsKKwl1MzIgaW1tcmJhcjsgLyogSW50ZXJuYWwgbWVtb3J5IG1hcCBiYXNlIGFkZHJlc3MgcmVnaXN0ZXIgKi8KKwl1OCByZXMwWzB4MDRdOworCXUzMiBhbHRjYmFyOyAvKiBBbHRlcm5hdGUgY29uZmlndXJhdGlvbiBiYXNlIGFkZHJlc3MgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgQUxUQ0JBUl9CQVNFX0FERFIgICAgIDB4RkZGMDAwMDAgLyogSWRlbnRpZmllcyB0aGUxMiBtb3N0IHNpZ25pZmljYW50IGFkZHJlc3MgYml0cyBvZiBhbiBhbHRlcm5hdGUgYmFzZSBhZGRyZXNzIHVzZWQgZm9yIGJvb3Qgc2VxdWVuY2VyIGNvbmZpZ3VyYXRpb24gYWNjZXNzZXMuICovCisjZGVmaW5lIEFMVENCQVJfUkVTICAgICAgICAgICB+KEFMVENCQVJfQkFTRV9BRERSKSAvKiBSZXNlcnZlZC4gV3JpdGUgaGFzIG5vIGVmZmVjdCwgcmVhZCByZXR1cm5zIDAuICovCisJdTggcmVzMVsweDE0XTsKKwlsYXc4MzQ5X3QgbGJsYXdbNF07IC8qIExCSVUgbG9jYWwgYWNjZXNzIHdpbmRvdyAqLworCXU4IHJlczJbMHgyMF07CisJbGF3ODM0OV90IHBjaWxhd1syXTsgLyogUENJIGxvY2FsIGFjY2VzcyB3aW5kb3cgKi8KKwl1OCByZXMzWzB4MzBdOworCWxhdzgzNDlfdCBkZHJsYXdbMl07IC8qIEREUiBsb2NhbCBhY2Nlc3Mgd2luZG93ICovCisJdTggcmVzNFsweDUwXTsKKwl1MzIgc2dwcmw7IC8qIFN5c3RlbSBHZW5lcmFsIFB1cnBvc2UgUmVnaXN0ZXIgTG93ICovCisJdTMyIHNncHJoOyAvKiBTeXN0ZW0gR2VuZXJhbCBQdXJwb3NlIFJlZ2lzdGVyIEhpZ2ggKi8KKwl1MzIgc3ByaWRyOyAvKiBTeXN0ZW0gUGFydCBhbmQgUmV2aXNpb24gSUQgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgU1BSSURSX1BBUlRJRCAgICAgICAgIDB4RkZGRjAwMDAgLyogUGFydCBJZGVudGlmaWNhdGlvbi4gKi8KKyNkZWZpbmUgU1BSSURSX1JFVklEICAgICAgICAgIDB4MDAwMEZGRkYgLyogUmV2aXNpb24gSWRlbnRpZmljYXRpb24uICovCisJdTggcmVzNVsweDA0XTsKKwl1MzIgc3BjcjsgLyogU3lzdGVtIFByaW9yaXR5IENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8gCisjZGVmaW5lIFNQQ1JfUENJSFBFICAgMHgxMDAwMDAwMCAvKiBQQ0kgSGlnaGVzdCBQcmlvcml0eSBFbmFibGUuICovCisjZGVmaW5lIFNQQ1JfUENJUFIgICAgMHgwMzAwMDAwMCAvKiBQQ0kgYnJpZGdlIHN5c3RlbSBidXMgcmVxdWVzdCBwcmlvcml0eS4gKi8KKyNkZWZpbmUgU1BDUl9UQkVOICAgICAweDAwNDAwMDAwIC8qIEUzMDAgUG93ZXJQQyBjb3JlIHRpbWUgYmFzZSB1bml0IGVuYWJsZS4gKi8KKyNkZWZpbmUgU1BDUl9DT1JFUFIgICAweDAwMzAwMDAwIC8qIEUzMDAgUG93ZXJQQyBDb3JlIHN5c3RlbSBidXMgcmVxdWVzdCBwcmlvcml0eS4gKi8KKyNkZWZpbmUgU1BDUl9UU0VDMURQICAweDAwMDAzMDAwIC8qIFRTRUMxIGRhdGEgcHJpb3JpdHkuICovCisjZGVmaW5lIFNQQ1JfVFNFQzFCRFAgMHgwMDAwMEMwMCAvKiBUU0VDMSBidWZmZXIgZGVzY3JpcHRvciBwcmlvcml0eS4gKi8KKyNkZWZpbmUgU1BDUl9UU0VDMUVQICAweDAwMDAwMzAwIC8qIFRTRUMxIGVtZXJnZW5jeSBwcmlvcml0eS4gKi8KKyNkZWZpbmUgU1BDUl9UU0VDMkRQICAweDAwMDAwMDMwIC8qIFRTRUMyIGRhdGEgcHJpb3JpdHkuICovCisjZGVmaW5lIFNQQ1JfVFNFQzJCRFAgMHgwMDAwMDAwQyAvKiBUU0VDMiBidWZmZXIgZGVzY3JpcHRvciBwcmlvcml0eS4gKi8KKyNkZWZpbmUgU1BDUl9UU0VDMkVQICAweDAwMDAwMDAzIC8qIFRTRUMyIGVtZXJnZW5jeSBwcmlvcml0eS4gKi8KKyNkZWZpbmUgU1BDUl9SRVMgICAgICB+KFNQQ1JfUENJSFBFfFNQQ1JfUENJUFJ8U1BDUl9UQkVOfFNQQ1JfQ09SRVBSfFNQQ1JfVFNFQzFEUCBcCisgICAgICAgICAgICAgICAgICAgICAgIHxTUENSX1RTRUMxQkRQfFNQQ1JfVFNFQzFFUHxTUENSX1RTRUMyRFB8U1BDUl9UU0VDMkJEUHxTUENSX1RTRUMyRVApCisJdTMyIHNpY3JsOyAvKiBTeXN0ZW0gR2VuZXJhbCBQdXJwb3NlIFJlZ2lzdGVyIExvdyAqLworI2RlZmluZSBTSUNSTF9MRFBfQSAgIDB4ODAwMDAwMDAKKyNkZWZpbmUgU0lDUkxfVVNCMCAgICAweDQwMDAwMDAwCisjZGVmaW5lIFNJQ1JMX1VTQjEgICAgMHgyMDAwMDAwMAorI2RlZmluZSBTSUNSTF9VQVJUICAgIDB4MEMwMDAwMDAKKyNkZWZpbmUgU0lDUkxfR1BJTzFfQSAweDAyMDAwMDAwCisjZGVmaW5lIFNJQ1JMX0dQSU8xX0IgMHgwMTAwMDAwMAorI2RlZmluZSBTSUNSTF9HUElPMV9DIDB4MDA4MDAwMDAKKyNkZWZpbmUgU0lDUkxfR1BJTzFfRCAweDAwNDAwMDAwCisjZGVmaW5lIFNJQ1JMX0dQSU8xX0UgMHgwMDIwMDAwMAorI2RlZmluZSBTSUNSTF9HUElPMV9GIDB4MDAxODAwMDAKKyNkZWZpbmUgU0lDUkxfR1BJTzFfRyAweDAwMDQwMDAwCisjZGVmaW5lIFNJQ1JMX0dQSU8xX0ggMHgwMDAyMDAwMAorI2RlZmluZSBTSUNSTF9HUElPMV9JIDB4MDAwMTAwMDAKKyNkZWZpbmUgU0lDUkxfR1BJTzFfSiAweDAwMDA4MDAwCisjZGVmaW5lIFNJQ1JMX0dQSU8xX0sgMHgwMDAwNDAwMAorI2RlZmluZSBTSUNSTF9HUElPMV9MIDB4MDAwMDMwMDAKKyNkZWZpbmUgU0lDUkxfUkVTIH4oU0lDUkxfTERQX0F8U0lDUkxfVVNCMHxTSUNSTF9VU0IxfFNJQ1JMX1VBUlR8U0lDUkxfR1BJTzFfQSBcCisgICAgICAgICAgICAgICAgICAgIHxTSUNSTF9HUElPMV9CfFNJQ1JMX0dQSU8xX0N8U0lDUkxfR1BJTzFfRHxTSUNSTF9HUElPMV9FIFwKKyAgICAgICAgICAgICAgICAgICAgfFNJQ1JMX0dQSU8xX0Z8U0lDUkxfR1BJTzFfR3xTSUNSTF9HUElPMV9IfFNJQ1JMX0dQSU8xX0kgXAorICAgICAgICAgICAgICAgICAgICB8U0lDUkxfR1BJTzFfSnxTSUNSTF9HUElPMV9LfFNJQ1JMX0dQSU8xX0wgKQorCXUzMiBzaWNyaDsgLyogU3lzdGVtIEdlbmVyYWwgUHVycG9zZSBSZWdpc3RlciBIaWdoICovCisjZGVmaW5lIFNJQ1JIX0REUiAgICAgMHg4MDAwMDAwMAorI2RlZmluZSBTSUNSSF9UU0VDMV9BIDB4MTAwMDAwMDAKKyNkZWZpbmUgU0lDUkhfVFNFQzFfQiAweDA4MDAwMDAwCisjZGVmaW5lIFNJQ1JIX1RTRUMxX0MgMHgwNDAwMDAwMAorI2RlZmluZSBTSUNSSF9UU0VDMV9EIDB4MDIwMDAwMDAKKyNkZWZpbmUgU0lDUkhfVFNFQzFfRSAweDAxMDAwMDAwCisjZGVmaW5lIFNJQ1JIX1RTRUMxX0YgMHgwMDgwMDAwMAorI2RlZmluZSBTSUNSSF9UU0VDMl9BIDB4MDA0MDAwMDAKKyNkZWZpbmUgU0lDUkhfVFNFQzJfQiAweDAwMjAwMDAwCisjZGVmaW5lIFNJQ1JIX1RTRUMyX0MgMHgwMDEwMDAwMAorI2RlZmluZSBTSUNSSF9UU0VDMl9EIDB4MDAwODAwMDAKKyNkZWZpbmUgU0lDUkhfVFNFQzJfRSAweDAwMDQwMDAwCisjZGVmaW5lIFNJQ1JIX1RTRUMyX0YgMHgwMDAyMDAwMAorI2RlZmluZSBTSUNSSF9UU0VDMl9HIDB4MDAwMTAwMDAKKyNkZWZpbmUgU0lDUkhfVFNFQzJfSCAweDAwMDA4MDAwCisjZGVmaW5lIFNJQ1JIX0dQSU8yX0EgMHgwMDAwNDAwMAorI2RlZmluZSBTSUNSSF9HUElPMl9CIDB4MDAwMDIwMDAKKyNkZWZpbmUgU0lDUkhfR1BJTzJfQyAweDAwMDAxMDAwCisjZGVmaW5lIFNJQ1JIX0dQSU8yX0QgMHgwMDAwMDgwMAorI2RlZmluZSBTSUNSSF9HUElPMl9FIDB4MDAwMDA0MDAKKyNkZWZpbmUgU0lDUkhfR1BJTzJfRiAweDAwMDAwMjAwCisjZGVmaW5lIFNJQ1JIX0dQSU8yX0cgMHgwMDAwMDE4MAorI2RlZmluZSBTSUNSSF9HUElPMl9IIDB4MDAwMDAwNjAKKyNkZWZpbmUgU0lDUkhfVFNPQkkxICAweDAwMDAwMDAyCisjZGVmaW5lIFNJQ1JIX1RTT0JJMiAgMHgwMDAwMDAwMQorI2RlZmluZSBTSUNSaF9SRVMgICAgIH4oU0lDUkhfRERSfFNJQ1JIX1RTRUMxX0F8U0lDUkhfVFNFQzFfQnxTSUNSSF9UU0VDMV9DIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHxTSUNSSF9UU0VDMV9EfFNJQ1JIX1RTRUMxX0V8U0lDUkhfVFNFQzFfRnxTSUNSSF9UU0VDMl9BIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHxTSUNSSF9UU0VDMl9CfFNJQ1JIX1RTRUMyX0N8U0lDUkhfVFNFQzJfRHxTSUNSSF9UU0VDMl9FIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHxTSUNSSF9UU0VDMl9GfFNJQ1JIX1RTRUMyX0d8U0lDUkhfVFNFQzJfSHxTSUNSSF9HUElPMl9BIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHxTSUNSSF9HUElPMl9CfFNJQ1JIX0dQSU8yX0N8U0lDUkhfR1BJTzJfRHxTSUNSSF9HUElPMl9FIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHxTSUNSSF9HUElPMl9GfFNJQ1JIX0dQSU8yX0d8U0lDUkhfR1BJTzJfSHxTSUNSSF9UU09CSTEgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHxTSUNSSF9UU09CSTIpCisJdTggcmVzNlsweEU0XTsKK30gc3lzY29uZjgzNDlfdDsKKworLyogCisgKiBXYXRjaCBEb2cgVGltZXIgKFdEVCkgUmVnaXN0ZXJzCisgKi8KK3R5cGVkZWYgc3RydWN0IHdkdDgzNDkgeworCXU4IHJlczBbNF07IAorCXUzMiBzd2NycjsgLyogU3lzdGVtIHdhdGNoZG9nIGNvbnRyb2wgcmVnaXN0ZXIgKi8KKwl1MzIgc3djbnI7IC8qIFN5c3RlbSB3YXRjaGRvZyBjb3VudCByZWdpc3RlciAqLworI2RlZmluZSBTV0NOUl9TV0NOIDB4MDAwMEZGRkYgU29mdHdhcmUgV2F0Y2hkb2cgQ291bnQgRmllbGQuCisjZGVmaW5lIFNXQ05SX1JFUyAgfihTV0NOUl9TV0NOKQorCXU4IHJlczFbMl07IAorCXUxNiBzd3NycjsgLyogU3lzdGVtIHdhdGNoZG9nIHNlcnZpY2UgcmVnaXN0ZXIgKi8KKwl1OCByZXMyWzB4RjBdOworfSB3ZHQ4MzQ5X3Q7CisgCisvKgorICogUlRDL1BJVCBNb2R1bGUgUmVnaXN0ZXJzCisgKi8KK3R5cGVkZWYgc3RydWN0IHJ0Y2xrODM0OSB7CisJdTMyIGNucjsgLyogY29udHJvbCByZWdpc3RlciAqLworI2RlZmluZSBDTlJfQ0xFTiAweDAwMDAwMDgwIC8qIENsb2NrIEVuYWJsZSBDb250cm9sIEJpdCAgKi8KKyNkZWZpbmUgQ05SX0NMSU4gMHgwMDAwMDA0MCAvKiBJbnB1dCBDbG9jayBDb250cm9sIEJpdCAgKi8KKyNkZWZpbmUgQ05SX0FJTSAgMHgwMDAwMDAwMiAvKiBBbGFybSBJbnRlcnJ1cHQgTWFzayBCaXQgICovCisjZGVmaW5lIENOUl9TSU0gIDB4MDAwMDAwMDEgLyogU2Vjb25kIEludGVycnVwdCBNYXNrIEJpdCAgKi8KKyNkZWZpbmUgQ05SX1JFUyAgfihDTlJfQ0xFTiB8IENOUl9DTElOIHwgQ05SX0FJTSB8IENOUl9TSU0pCisJdTMyIGxkcjsgLyogbG9hZCByZWdpc3RlciAqLworCXUzMiBwc3I7IC8qIHByZXNjYWxlIHJlZ2lzdGVyICovCisJdTMyIGN0cjsgLyogcmVnaXN0ZXIgKi8gCisJdTMyIGV2cjsgLyogZXZlbnQgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgUlRFVlJfU0lGICAweDAwMDAwMDAxIC8qIFNlY29uZCBJbnRlcnJ1cHQgRmxhZyBCaXQgICovCisjZGVmaW5lIFJURVZSX0FJRiAgMHgwMDAwMDAwMiAvKiBBbGFybSBJbnRlcnJ1cHQgRmxhZyBCaXQgICovCisjZGVmaW5lIFJURVZSX1JFUyAgfihFVlJfU0lGIHwgRVZSX0FJRikKKwl1MzIgYWxyOyAvKiBhbGFybSByZWdpc3RlciAqLworCXU4IHJlczBbMHhFOF07Cit9IHJ0Y2xrODM0OV90OworCisvKgorICogR2xvYmFsIHRpbXBlciBtb2R1bGUKKyAqLworCit0eXBlZGVmIHN0cnVjdCBndG04MzQ5IHsKKyAgICB1OCAgICBjZnIxOyAvKiBUaW1lcjEvMiBDb25maWd1cmF0aW9uICAqLworI2RlZmluZSBDRlIxX1BDQVMgMHg4MCAvKiBQYWlyIENhc2NhZGUgbW9kZSAgKi8KKyNkZWZpbmUgQ0ZSMV9CQ00gIDB4NDAgIC8qIEJhY2t3YXJkIGNvbXBhdGlibGUgbW9kZSAgKi8KKyNkZWZpbmUgQ0ZSMV9TVFAyIDB4MjAgLyogU3RvcCB0aW1lciAgKi8KKyNkZWZpbmUgQ0ZSMV9SU1QyIDB4MTAgLyogUmVzZXQgdGltZXIgICovCisjZGVmaW5lIENGUjFfR00yICAweDA4IC8qIEdhdGUgbW9kZSBmb3IgcGluIDIgICovCisjZGVmaW5lIENGUjFfR00xICAweDA0IC8qIEdhdGUgbW9kZSBmb3IgcGluIDEgICovCisjZGVmaW5lIENGUjFfU1RQMSAweDAyIC8qIFN0b3AgdGltZXIgICovCisjZGVmaW5lIENGUjFfUlNUMSAweDAxIC8qIFJlc2V0IHRpbWVyICAqLworICAgIHU4ICAgIHJlczBbM107CisgICAgdTggICAgY2ZyMjsgLyogVGltZXIzLzQgQ29uZmlndXJhdGlvbiAgKi8KKyNkZWZpbmUgQ0ZSMl9QQ0FTIDB4ODAgLyogUGFpciBDYXNjYWRlIG1vZGUgICovCisjZGVmaW5lIENGUjJfU0NBUyAweDQwIC8qIFN1cGVyIENhc2NhZGUgbW9kZSAgKi8KKyNkZWZpbmUgQ0ZSMl9TVFA0IDB4MjAgLyogU3RvcCB0aW1lciAgKi8KKyNkZWZpbmUgQ0ZSMl9SU1Q0IDB4MTAgLyogUmVzZXQgdGltZXIgICovCisjZGVmaW5lIENGUjJfR000ICAweDA4IC8qIEdhdGUgbW9kZSBmb3IgcGluIDQgICovCisjZGVmaW5lIENGUjJfR00zICAweDA0IC8qIEdhdGUgbW9kZSBmb3IgcGluIDMgICovCisjZGVmaW5lIENGUjJfU1RQMyAweDAyIC8qIFN0b3AgdGltZXIgICovCisjZGVmaW5lIENGUjJfUlNUMyAweDAxIC8qIFJlc2V0IHRpbWVyICAqLworICAgIHU4ICAgIHJlczFbMTBdOworICAgIHUxNiAgIG1kcjE7IC8qIFRpbWVyMSBNb2RlIFJlZ2lzdGVyICAqLworI2RlZmluZSBNRFJfU1BTICAweGZmMDAgLyogU2Vjb25kYXJ5IFByZXNjYWxlciB2YWx1ZSAgKi8KKyNkZWZpbmUgTURSX0NFICAgMHgwMGMwIC8qIENhcHR1cmUgZWRnZSBhbmQgZW5hYmxlIGludGVycnVwdCAgKi8KKyNkZWZpbmUgTURSX09NICAgMHgwMDIwIC8qIE91dHB1dCBtb2RlICAqLworI2RlZmluZSBNRFJfT1JJICAweDAwMTAgLyogT3V0cHV0IHJlZmVyZW5jZSBpbnRlcnJ1cHQgZW5hYmxlICAqLworI2RlZmluZSBNRFJfRlJSICAweDAwMDggLyogRnJlZSBydW4vcmVzdGFydCAgKi8KKyNkZWZpbmUgTURSX0lDTEsgMHgwMDA2IC8qIElucHV0IGNsb2NrIHNvdXJjZSBmb3IgdGhlIHRpbWVyICAqLworI2RlZmluZSBNRFJfR0UgICAweDAwMDEgLyogR2F0ZSBlbmFibGUgICovCisgICAgdTE2ICAgbWRyMjsgLyogVGltZXIyIE1vZGUgUmVnaXN0ZXIgICovCisJdTE2ICAgcmZyMTsgLyogVGltZXIxIFJlZmVyZW5jZSBSZWdpc3RlciAgKi8KKyAgICB1MTYgICByZnIyOyAvKiBUaW1lcjIgUmVmZXJlbmNlIFJlZ2lzdGVyICAqLworICAgIHUxNiAgIGNwcjE7IC8qIFRpbWVyMSBDYXB0dXJlIFJlZ2lzdGVyICAqLworICAgIHUxNiAgIGNwcjI7IC8qIFRpbWVyMiBDYXB0dXJlIFJlZ2lzdGVyICAqLworICAgIHUxNiAgIGNucjE7IC8qIFRpbWVyMSBDb3VudGVyIFJlZ2lzdGVyICAqLworICAgIHUxNiAgIGNucjI7IC8qIFRpbWVyMiBDb3VudGVyIFJlZ2lzdGVyICAqLworICAgIHUxNiAgIG1kcjM7IC8qIFRpbWVyMyBNb2RlIFJlZ2lzdGVyICAqLworICAgIHUxNiAgIG1kcjQ7IC8qIFRpbWVyNCBNb2RlIFJlZ2lzdGVyICAqLworICAgIHUxNiAgIHJmcjM7IC8qIFRpbWVyMyBSZWZlcmVuY2UgUmVnaXN0ZXIgICovCisgICAgdTE2ICAgcmZyNDsgLyogVGltZXI0IFJlZmVyZW5jZSBSZWdpc3RlciAgKi8KKyAgICB1MTYgICBjcHIzOyAvKiBUaW1lcjMgQ2FwdHVyZSBSZWdpc3RlciAgKi8KKyAgICB1MTYgICBjcHI0OyAvKiBUaW1lcjQgQ2FwdHVyZSBSZWdpc3RlciAgKi8KKyAgICB1MTYgICBjbnIzOyAvKiBUaW1lcjMgQ291bnRlciBSZWdpc3RlciAgKi8KKyAgICB1MTYgICBjbnI0OyAvKiBUaW1lcjQgQ291bnRlciBSZWdpc3RlciAgKi8KKyAgICB1MTYgICBldnIxOyAvKiBUaW1lcjEgRXZlbnQgUmVnaXN0ZXIgICovCisgICAgdTE2ICAgZXZyMjsgLyogVGltZXIyIEV2ZW50IFJlZ2lzdGVyICAqLworICAgIHUxNiAgIGV2cjM7IC8qIFRpbWVyMyBFdmVudCBSZWdpc3RlciAgKi8KKyAgICB1MTYgICBldnI0OyAvKiBUaW1lcjQgRXZlbnQgUmVnaXN0ZXIgICovCisjZGVmaW5lIEdURVZSX1JFRiAweDAwMDIgLyogT3V0cHV0IHJlZmVyZW5jZSBldmVudCAgKi8KKyNkZWZpbmUgR1RFVlJfQ0FQIDB4MDAwMSAvKiBDb3VudGVyIENhcHR1cmUgZXZlbnQgICAqLworI2RlZmluZSBHVEVWUl9SRVMgfihFVlJfQ0FQfEVWUl9SRUYpCisgICAgdTE2ICAgcHNyMTsgLyogVGltZXIxIFByZXNjYWxlciBSZWdpc3RlciAgKi8KKyAgICB1MTYgICBwc3IyOyAvKiBUaW1lcjIgUHJlc2NhbGVyIFJlZ2lzdGVyICAqLworICAgIHUxNiAgIHBzcjM7IC8qIFRpbWVyMyBQcmVzY2FsZXIgUmVnaXN0ZXIgICovCisgICAgdTE2ICAgcHNyNDsgLyogVGltZXI0IFByZXNjYWxlciBSZWdpc3RlciAgKi8KKyAgICB1OCAgICByZXNbMHhDMF07Cit9IGd0bTgzNDlfdDsgCisKKy8qCisgKiBJbnRlZ3JhdGVkIFByb2dyYW1tYWJsZSBJbnRlcnJ1cHQgQ29udHJvbGxlcgorICovCit0eXBlZGVmIHN0cnVjdCBpcGljODM0OSB7CisgICAgdTMyICAgIHNpY2ZyOyAvKiAgU3lzdGVtIEdsb2JhbCBJbnRlcnJ1cHQgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAoU0lDRlIpICAqLworI2RlZmluZSBTSUNGUl9IUEkgIDB4N2YwMDAwMDAgLyogIEhpZ2hlc3QgUHJpb3JpdHkgSW50ZXJydXB0ICAqLworI2RlZmluZSBTSUNGUl9NUFNCIDB4MDA0MDAwMDAgLyogIE1peGVkIGludGVycnVwdHMgUHJpb3JpdHkgU2NoZW1lIGZvciBncm91cCBCICAqLworI2RlZmluZSBTSUNGUl9NUFNBIDB4MDAyMDAwMDAgLyogIE1peGVkIGludGVycnVwdHMgUHJpb3JpdHkgU2NoZW1lIGZvciBncm91cCBBICAqLworI2RlZmluZSBTSUNGUl9JUFNEIDB4MDAwODAwMDAgLyogIEludGVybmFsIGludGVycnVwdHMgUHJpb3JpdHkgU2NoZW1lIGZvciBncm91cCBEICAqLworI2RlZmluZSBTSUNGUl9JUFNBIDB4MDAwMTAwMDAgLyogIEludGVybmFsIGludGVycnVwdHMgUHJpb3JpdHkgU2NoZW1lIGZvciBncm91cCBBICAqLworI2RlZmluZSBTSUNGUl9IUElUIDB4MDAwMDAzMDAgLyogIEhQSSBwcmlvcml0eSBwb3NpdGlvbiBJUElDIG91dHB1dCBpbnRlcnJ1cHQgVHlwZSAgKi8KKyNkZWZpbmUgU0lDRlJfUkVTIH4oU0lDRlJfSFBJfFNJQ0ZSX01QU0J8U0lDRlJfTVBTQXxTSUNGUl9JUFNEfFNJQ0ZSX0lQU0F8U0lDRlJfSFBJVCkKKyAgICB1MzIgICAgc2l2Y3I7IC8qICBTeXN0ZW0gR2xvYmFsIEludGVycnVwdCBWZWN0b3IgUmVnaXN0ZXIgKFNJVkNSKSAgKi8KKyNkZWZpbmUgU0lDVlJfSVZFQ1ggMHhmYzAwMDAwMCAvKiAgSW50ZXJydXB0IHZlY3RvciAoZm9yIENFIGNvbXBhdGliaWxpdHkgcHVycG9zZSBvbmx5IG5vdCB1c2VkIGluIDgzNDkgSVBJQyBpbXBsZW1lbnRhdGlvbikgICovCisjZGVmaW5lIFNJQ1ZSX0lWRUMgIDB4MDAwMDAwN2YgLyogIEludGVycnVwdCB2ZWN0b3IgICovCisjZGVmaW5lIFNJQ1ZSX1JFUyB+KFNJQ1ZSX0lWRUNYfFNJQ1ZSX0lWRUMpCisgICAgdTMyICAgIHNpcG5yX2g7IC8qICBTeXN0ZW0gSW50ZXJuYWwgSW50ZXJydXB0IFBlbmRpbmcgUmVnaXN0ZXIgLSBIaWdoIChTSVBOUl9IKSAgKi8KKyNkZWZpbmUgU0lJSF9UU0VDMVRYIDB4ODAwMDAwMDAgLyogIFRTRUMxIFR4IGludGVycnVwdCAgKi8KKyNkZWZpbmUgU0lJSF9UU0VDMVJYIDB4NDAwMDAwMDAgLyogIFRTRUMxIFJ4IGludGVycnVwdCAgKi8KKyNkZWZpbmUgU0lJSF9UU0VDMUVSIDB4MjAwMDAwMDAgLyogIFRTRUMxIEVyb3IgaW50ZXJydXB0ICAqLworI2RlZmluZSBTSUlIX1RTRUMyVFggMHgxMDAwMDAwMCAvKiAgVFNFQzIgVHggaW50ZXJydXB0ICAqLworI2RlZmluZSBTSUlIX1RTRUMyUlggMHgwODAwMDAwMCAvKiAgVFNFQzIgUnggaW50ZXJydXB0ICAqLworI2RlZmluZSBTSUlIX1RTRUMyRVIgMHgwNDAwMDAwMCAvKiAgVFNFQzIgRXJvciBpbnRlcnJ1cHQgICovCisjZGVmaW5lIFNJSUhfVVNCMkRSICAweDAyMDAwMDAwIC8qICBVU0IyIERSIGludGVycnVwdCAgKi8KKyNkZWZpbmUgU0lJSF9VU0IyTVBIIDB4MDEwMDAwMDAgLyogIFVTQjIgTVBIIGludGVycnVwdCAgKi8KKyNkZWZpbmUgU0lJSF9VQVJUMSAgIDB4MDAwMDAwODAgLyogIFVBUlQxIGludGVycnVwdCAgKi8KKyNkZWZpbmUgU0lJSF9VQVJUMiAgIDB4MDAwMDAwNDAgLyogIFVBUlQyIGludGVycnVwdCAgKi8KKyNkZWZpbmUgU0lJSF9TRUMgICAgIDB4MDAwMDAwMjAgLyogIFNFQyBpbnRlcnJ1cHQgICovCisjZGVmaW5lIFNJSUhfSTJDMSAgICAweDAwMDAwMDA0IC8qICBJMkMxIGludGVycnVwdCAgKi8KKyNkZWZpbmUgU0lJSF9JMkMyICAgIDB4MDAwMDAwMDIgLyogIEkyQzEgaW50ZXJydXB0ICAqLworI2RlZmluZSBTSUlIX1NQSSAgICAgMHgwMDAwMDAwMSAvKiAgU1BJIGludGVycnVwdCAgKi8KKyNkZWZpbmUgU0lJSF9SRVMgfihTSUlIX1RTRUMxVFh8U0lJSF9UU0VDMVJYfFNJSUhfVFNFQzFFUnxTSUlIX1RTRUMyVFggXAorICAgICAgICAgICAgICAgICAgICB8U0lJSF9UU0VDMlJYfFNJSUhfVFNFQzJFUnxTSUlIX1VTQjJEUnxTSUlIX1VTQjJNUEggXAorICAgICAgICAgICAgICAgICAgICB8U0lJSF9VQVJUMSAgfFNJSUhfVUFSVDIgIHxTSUlIX1NFQyAgIHxTSUlIX0kyQzEgICAgXAorICAgICAgICAgICAgICAgICAgICB8U0lJSF9JMkMyICAgfFNJSUhfU1BJKQorICAgIHUzMiAgICBzaXBucl9sOyAvKiAgU3lzdGVtIEludGVybmFsIEludGVycnVwdCBQZW5kaW5nIFJlZ2lzdGVyIC0gTG93IChTSVBOUl9MKSAgKi8KKyNkZWZpbmUgU0lJTF9SVENTICAweDgwMDAwMDAwIC8qICBSVEMgU0VDT05EIGludGVycnVwdCAgKi8KKyNkZWZpbmUgU0lJTF9QSVQgICAweDQwMDAwMDAwIC8qICBQSVQgaW50ZXJydXB0ICAqLworI2RlZmluZSBTSUlMX1BDSTEgIDB4MjAwMDAwMDAgLyogIFBDSTEgaW50ZXJydXB0ICAqLworI2RlZmluZSBTSUlMX1BDSTIgIDB4MTAwMDAwMDAgLyogIFBDSTIgaW50ZXJydXB0ICAqLworI2RlZmluZSBTSUlMX1JUQ0EgIDB4MDgwMDAwMDAgLyogIFJUQyBBTEFSTSBpbnRlcnJ1cHQgICovCisjZGVmaW5lIFNJSUxfTVUgICAgMHgwNDAwMDAwMCAvKiAgTWVzc2FnZSBVbml0IGludGVycnVwdCAgKi8KKyNkZWZpbmUgU0lJTF9TQkEgICAweDAyMDAwMDAwIC8qICBTeXN0ZW0gQnVzIEFyYml0ZXIgaW50ZXJydXB0ICAqLworI2RlZmluZSBTSUlMX0RNQSAgIDB4MDEwMDAwMDAgLyogIERNQSBpbnRlcnJ1cHQgICovCisjZGVmaW5lIFNJSUxfR1RNNCAgMHgwMDgwMDAwMCAvKiAgR1RNNCBpbnRlcnJ1cHQgICovCisjZGVmaW5lIFNJSUxfR1RNOCAgMHgwMDQwMDAwMCAvKiAgR1RNOCBpbnRlcnJ1cHQgICovCisjZGVmaW5lIFNJSUxfR1BJTzEgMHgwMDIwMDAwMCAvKiAgR1BJTzEgaW50ZXJydXB0ICAqLworI2RlZmluZSBTSUlMX0dQSU8yIDB4MDAxMDAwMDAgLyogIEdQSU8yIGludGVycnVwdCAgKi8KKyNkZWZpbmUgU0lJTF9ERFIgICAweDAwMDgwMDAwIC8qICBERFIgaW50ZXJydXB0ICAqLworI2RlZmluZSBTSUlMX0xCQyAgIDB4MDAwNDAwMDAgLyogIExCQyBpbnRlcnJ1cHQgICovCisjZGVmaW5lIFNJSUxfR1RNMiAgMHgwMDAyMDAwMCAvKiAgR1RNMiBpbnRlcnJ1cHQgICovCisjZGVmaW5lIFNJSUxfR1RNNiAgMHgwMDAxMDAwMCAvKiAgR1RNNiBpbnRlcnJ1cHQgICovCisjZGVmaW5lIFNJSUxfUE1DICAgMHgwMDAwODAwMCAvKiAgUE1DIGludGVycnVwdCAgKi8KKyNkZWZpbmUgU0lJTF9HVE0zICAweDAwMDAwODAwIC8qICBHVE0zIGludGVycnVwdCAgKi8KKyNkZWZpbmUgU0lJTF9HVE03ICAweDAwMDAwNDAwIC8qICBHVE03IGludGVycnVwdCAgKi8KKyNkZWZpbmUgU0lJTF9HVE0xICAweDAwMDAwMDIwIC8qICBHVE0xIGludGVycnVwdCAgKi8KKyNkZWZpbmUgU0lJTF9HVE01ICAweDAwMDAwMDEwIC8qICBHVE01IGludGVycnVwdCAgKi8KKyNkZWZpbmUgU0lJTF9EUFRDICAweDAwMDAwMDAxIC8qICBEUFRDIGludGVycnVwdCAoISEhIEludmlzaWJsZSBmb3IgdXNlciAhISEpICAqLworI2RlZmluZSBTSUlMX1JFUyB+KFNJSUxfUlRDUyAgfFNJSUxfUElUICB8U0lJTF9QQ0kxIHxTSUlMX1BDSTIgfFNJSUxfUlRDQSBcCisgICAgICAgICAgICAgICAgICAgfFNJSUxfTVUgICB8U0lJTF9TQkEgIHxTSUlMX0RNQSAgfFNJSUxfR1RNNCB8U0lJTF9HVE04IFwKKyAgICAgICAgICAgICAgICAgICB8U0lJTF9HUElPMXxTSUlMX0dQSU8yfFNJSUxfRERSICB8U0lJTF9MQkMgIHxTSUlMX0dUTTIgXAorICAgICAgICAgICAgICAgICAgIHxTSUlMX0dUTTYgfFNJSUxfUE1DICB8U0lJTF9HVE0zIHxTSUlMX0dUTTcgfFNJSUxfR1RNMSBcCisgICAgICAgICAgICAgICAgICAgfFNJSUxfR1RNNSB8U0lJTF9EUFRDICkKKyAgICB1MzIgICAgc2lwcnJfYTsgLyogIFN5c3RlbSBJbnRlcm5hbCBJbnRlcnJ1cHQgR3JvdXAgQSBQcmlvcml0eSBSZWdpc3RlciAoUFJSKSAgKi8KKyAgICB1OCAgICAgcmVzMFs4XTsKKyAgICB1MzIgICAgc2lwcnJfZDsgLyogIFN5c3RlbSBJbnRlcm5hbCBJbnRlcnJ1cHQgR3JvdXAgRCBQcmlvcml0eSBSZWdpc3RlciAoUFJSKSAgKi8KKyAgICB1MzIgICAgc2ltc3JfaDsgLyogIFN5c3RlbSBJbnRlcm5hbCBJbnRlcnJ1cHQgTWFzayBSZWdpc3RlciAtIEhpZ2ggKFNJSUgpICAqLworICAgIHUzMiAgICBzaW1zcl9sOyAvKiAgU3lzdGVtIEludGVybmFsIEludGVycnVwdCBNYXNrIFJlZ2lzdGVyIC0gTG93IChTSUlMKSAgKi8KKyAgICB1OCAgICAgcmVzMVs0XTsKKyAgICB1MzIgICAgc2VwbnI7ICAgLyogIFN5c3RlbSBFeHRlcm5hbCBJbnRlcnJ1cHQgUGVuZGluZyBSZWdpc3RlciAoU0VJKSAgKi8KKyAgICB1MzIgICAgc21wcnJfYTsgLyogIFN5c3RlbSBNaXhlZCBJbnRlcnJ1cHQgR3JvdXAgQSBQcmlvcml0eSBSZWdpc3RlciAoUFJSKSAgKi8KKyAgICB1MzIgICAgc21wcnJfYjsgLyogIFN5c3RlbSBNaXhlZCBJbnRlcnJ1cHQgR3JvdXAgQiBQcmlvcml0eSBSZWdpc3RlciAoUFJSKSAgKi8KKyNkZWZpbmUgUFJSXzAgMHhlMDAwMDAwMCAvKiBQcmlvcml0eSBSZWdpc3RlciwgUG9zaXRpb24gMCBwcm9ncmFtbWluZyAqLworI2RlZmluZSBQUlJfMSAweDFjMDAwMDAwIC8qIFByaW9yaXR5IFJlZ2lzdGVyLCBQb3NpdGlvbiAxIHByb2dyYW1taW5nICovCisjZGVmaW5lIFBSUl8yIDB4MDM4MDAwMDAgLyogUHJpb3JpdHkgUmVnaXN0ZXIsIFBvc2l0aW9uIDIgcHJvZ3JhbW1pbmcgKi8KKyNkZWZpbmUgUFJSXzMgMHgwMDcwMDAwMCAvKiBQcmlvcml0eSBSZWdpc3RlciwgUG9zaXRpb24gMyBwcm9ncmFtbWluZyAqLworI2RlZmluZSBQUlJfNCAweDAwMDBlMDAwIC8qIFByaW9yaXR5IFJlZ2lzdGVyLCBQb3NpdGlvbiA0IHByb2dyYW1taW5nICovCisjZGVmaW5lIFBSUl81IDB4MDAwMDFjMDAgLyogUHJpb3JpdHkgUmVnaXN0ZXIsIFBvc2l0aW9uIDUgcHJvZ3JhbW1pbmcgKi8KKyNkZWZpbmUgUFJSXzYgMHgwMDAwMDM4MCAvKiBQcmlvcml0eSBSZWdpc3RlciwgUG9zaXRpb24gNiBwcm9ncmFtbWluZyAqLworI2RlZmluZSBQUlJfNyAweDAwMDAwMDcwIC8qIFByaW9yaXR5IFJlZ2lzdGVyLCBQb3NpdGlvbiA3IHByb2dyYW1taW5nICovCisjZGVmaW5lIFBSUl9SRVMgfihQUlJfMHxQUlJfMXxQUlJfMnxQUlJfM3xQUlJfNHxQUlJfNXxQUlJfNnxQUlJfNykKKyAgICB1MzIgICAgc2Vtc3I7IC8qICBTeXN0ZW0gRXh0ZXJuYWwgSW50ZXJydXB0IE1hc2sgUmVnaXN0ZXIgKFNFSSkgICovCisjZGVmaW5lIFNFSV9JUlEwICAweDgwMDAwMDAwIC8qICBJUlEwIGV4dGVybmFsIGludGVycnVwdCAgKi8KKyNkZWZpbmUgU0VJX0lSUTEgIDB4NDAwMDAwMDAgLyogIElSUTEgZXh0ZXJuYWwgaW50ZXJydXB0ICAqLworI2RlZmluZSBTRUlfSVJRMiAgMHgyMDAwMDAwMCAvKiAgSVJRMiBleHRlcm5hbCBpbnRlcnJ1cHQgICovCisjZGVmaW5lIFNFSV9JUlEzICAweDEwMDAwMDAwIC8qICBJUlEzIGV4dGVybmFsIGludGVycnVwdCAgKi8KKyNkZWZpbmUgU0VJX0lSUTQgIDB4MDgwMDAwMDAgLyogIElSUTQgZXh0ZXJuYWwgaW50ZXJydXB0ICAqLworI2RlZmluZSBTRUlfSVJRNSAgMHgwNDAwMDAwMCAvKiAgSVJRNSBleHRlcm5hbCBpbnRlcnJ1cHQgICovCisjZGVmaW5lIFNFSV9JUlE2ICAweDAyMDAwMDAwIC8qICBJUlE2IGV4dGVybmFsIGludGVycnVwdCAgKi8KKyNkZWZpbmUgU0VJX0lSUTcgIDB4MDEwMDAwMDAgLyogIElSUTcgZXh0ZXJuYWwgaW50ZXJydXB0ICAqLworI2RlZmluZSBTRUlfU0lSUTAgMHgwMDAwODAwMCAvKiAgU0lSUTAgZXh0ZXJuYWwgaW50ZXJydXB0ICAqLworI2RlZmluZSBTRUlfUkVTIH4oIFNFSV9JUlEwIHxTRUlfSVJRMSB8U0VJX0lSUTIgfFNFSV9JUlEzIHxTRUlfSVJRNCBcCisgICAgICAgICAgICAgICAgICB8U0VJX0lSUTUgfFNFSV9JUlE2IHxTRUlfSVJRNyB8U0VJX1NJUlEwKQorICAgIHUzMiAgICBzZWNucjsgLyogIFN5c3RlbSBFeHRlcm5hbCBJbnRlcnJ1cHQgQ29udHJvbCBSZWdpc3RlciAoU0VDTlIpICAqLworI2RlZmluZSBTRUNOUl9NSVhCMFQgMHhjMDAwMDAwMCAvKiAgTUlYQjAgcHJpb3JpdHkgcG9zaXRpb24gSVBJQyBvdXRwdXQgaW50ZXJydXB0IHR5cGUgICovCisjZGVmaW5lIFNFQ05SX01JWEIxVCAweDMwMDAwMDAwIC8qICBNSVhCMSBwcmlvcml0eSBwb3NpdGlvbiBJUElDIG91dHB1dCBpbnRlcnJ1cHQgdHlwZSAgKi8KKyNkZWZpbmUgU0VDTlJfTUlYQTBUIDB4MDBjMDAwMDAgLyogIE1JWEEwIHByaW9yaXR5IHBvc2l0aW9uIElQSUMgb3V0cHV0IGludGVycnVwdCB0eXBlICAqLworI2RlZmluZSBTRUNOUl9TWVNBMVQgMHgwMDMwMDAwMCAvKiAgTUlYQTEgcHJpb3JpdHkgcG9zaXRpb24gSVBJQyBvdXRwdXQgaW50ZXJydXB0IHR5cGUgICovCisjZGVmaW5lIFNFQ05SX0VESTAgICAweDAwMDA4MDAwIC8qICBJUlEwIGV4dGVybmFsIGludGVycnVwdCBlZGdlL2xldmVsIGRldGVjdCAgKi8KKyNkZWZpbmUgU0VDTlJfRURJMSAgIDB4MDAwMDQwMDAgLyogIElSUTEgZXh0ZXJuYWwgaW50ZXJydXB0IGVkZ2UvbGV2ZWwgZGV0ZWN0ICAqLworI2RlZmluZSBTRUNOUl9FREkyICAgMHgwMDAwMjAwMCAvKiAgSVJRMiBleHRlcm5hbCBpbnRlcnJ1cHQgZWRnZS9sZXZlbCBkZXRlY3QgICovCisjZGVmaW5lIFNFQ05SX0VESTMgICAweDAwMDAxMDAwIC8qICBJUlEzIGV4dGVybmFsIGludGVycnVwdCBlZGdlL2xldmVsIGRldGVjdCAgKi8KKyNkZWZpbmUgU0VDTlJfRURJNCAgIDB4MDAwMDA4MDAgLyogIElSUTQgZXh0ZXJuYWwgaW50ZXJydXB0IGVkZ2UvbGV2ZWwgZGV0ZWN0ICAqLworI2RlZmluZSBTRUNOUl9FREk1ICAgMHgwMDAwMDQwMCAvKiAgSVJRNSBleHRlcm5hbCBpbnRlcnJ1cHQgZWRnZS9sZXZlbCBkZXRlY3QgICovCisjZGVmaW5lIFNFQ05SX0VESTYgICAweDAwMDAwMjAwIC8qICBJUlE2IGV4dGVybmFsIGludGVycnVwdCBlZGdlL2xldmVsIGRldGVjdCAgKi8KKyNkZWZpbmUgU0VDTlJfRURJNyAgIDB4MDAwMDAxMDAgLyogIElSUTcgZXh0ZXJuYWwgaW50ZXJydXB0IGVkZ2UvbGV2ZWwgZGV0ZWN0ICAqLworI2RlZmluZSBTRUNOUl9SRVMgfiggU0VDTlJfTUlYQjBUfFNFQ05SX01JWEIxVHxTRUNOUl9NSVhBMFR8U0VDTlJfU1lTQTFUIFwKKyAgICAgICAgICAgICAgICAgICAgfFNFQ05SX0VESTAgIHxTRUNOUl9FREkxICB8U0VDTlJfRURJMiAgfFNFQ05SX0VESTMgICBcCisgICAgICAgICAgICAgICAgICAgIHxTRUNOUl9FREk0ICB8U0VDTlJfRURJNSAgfFNFQ05SX0VESTYgIHxTRUNOUl9FREk3KQorICAgIHUzMiAgIHNlcnNyOyAvKiAgU3lzdGVtIEVycm9yIFN0YXR1cyBSZWdpc3RlciAoU0VSUikgICovCisgICAgdTMyICAgc2VybXI7IC8qICBTeXN0ZW0gRXJyb3IgTWFzayBSZWdpc3RlciAoU0VSUikgICovCisjZGVmaW5lIFNFUlJfSVJRMCAweDgwMDAwMDAwIC8qICBJUlEwIE1DUCByZXF1ZXN0ICAqLworI2RlZmluZSBTRVJSX1dEVCAgMHg0MDAwMDAwMCAvKiAgV0RUIE1DUCByZXF1ZXN0ICAqLworI2RlZmluZSBTRVJSX1NCQSAgMHgyMDAwMDAwMCAvKiAgU0JBIE1DUCByZXF1ZXN0ICAqLworI2RlZmluZSBTRVJSX0REUiAgMHgxMDAwMDAwMCAvKiAgRERSIE1DUCByZXF1ZXN0ICAqLworI2RlZmluZSBTRVJSX0xCQyAgMHgwODAwMDAwMCAvKiAgTEJDIE1DUCByZXF1ZXN0ICAqLworI2RlZmluZSBTRVJSX1BDSTEgMHgwNDAwMDAwMCAvKiAgUENJMSBNQ1AgcmVxdWVzdCAgKi8KKyNkZWZpbmUgU0VSUl9QQ0kyIDB4MDIwMDAwMDAgLyogIFBDSTIgTUNQIHJlcXVlc3QgICovCisjZGVmaW5lIFNFUlJfTVUgICAweDAxMDAwMDAwIC8qICBNVSBNQ1AgcmVxdWVzdCAgKi8KKyNkZWZpbmUgU0VSUl9STkMgIDB4MDAwMTAwMDAgLyogIE1VIE1DUCByZXF1ZXN0ICghISEgTm9uLXZpc2libGUgZm9yIHVzZXJzICEhISkgICovCisjZGVmaW5lIFNFUlJfUkVTIH4oIFNFUlJfSVJRMHxTRVJSX1dEVCB8U0VSUl9TQkEgfFNFUlJfRERSIHxTRVJSX0xCQyBcCisgICAgICAgICAgICAgICAgICAgfFNFUlJfUENJMXxTRVJSX1BDSTJ8U0VSUl9NVSAgfFNFUlJfUk5DICkKKyAgICB1MzIgICAgc2VyY3I7IC8qICBTeXN0ZW0gRXJyb3IgQ29udHJvbCBSZWdpc3RlciAgKFNFUkNSKSAgKi8KKyNkZWZpbmUgU0VSQ1JfTUNQUiAweDAwMDAwMDAxIC8qICBNQ1AgUm91dGUgICovCisjZGVmaW5lIFNFUkNSX1JFUyB+KFNFUkNSX01DUFIpCisgICAgdTggICAgcmVzMls0XTsKKyAgICB1MzIgICBzaWZjcl9oOyAvKiAgU3lzdGVtIEludGVybmFsIEludGVycnVwdCBGb3JjZSBSZWdpc3RlciAtIEhpZ2ggKFNJSUgpICAqLworICAgIHUzMiAgIHNpZmNyX2w7IC8qICBTeXN0ZW0gSW50ZXJuYWwgSW50ZXJydXB0IEZvcmNlIFJlZ2lzdGVyIC0gTG93IChTSUlMKSAgKi8KKyAgICB1MzIgICBzZWZjcjsgICAvKiAgU3lzdGVtIEV4dGVybmFsIEludGVycnVwdCBGb3JjZSBSZWdpc3RlciAoU0VJKSAgKi8KKyAgICB1MzIgICBzZXJmcjsgICAvKiAgU3lzdGVtIEVycm9yIEZvcmNlIFJlZ2lzdGVyIChTRVJSKSAgKi8KKyAgICB1OCAgICByZXMzWzB4QTBdOworfSBpcGljODM0OV90OworCisvKgorICogU3lzdGVtIEFyYml0ZXIgUmVnaXN0ZXJzCisgKi8KK3R5cGVkZWYgc3RydWN0IGFyYml0ZXI4MzQ5IHsKKwl1MzIgYWNyOyAvKiBBcmJpdGVyIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8KKyNkZWZpbmUgQUNSX0NPUkVESVMgICAgMHgxMDAwMDAwMCAvKiBDb3JlIGRpc2FibGUuICovICAgIAorI2RlZmluZSBBQ1JfUElQRV9ERVAgICAweDAwMDcwMDAwIC8qIFBpcGVsaW5lIGRlcHRoIChudW1iZXIgb2Ygb3V0c3RhbmRpbmcgdHJhbnNhY3Rpb25zKS4gKi8KKyNkZWZpbmUgQUNSX1BDSV9SUFRDTlQgMHgwMDAwNzAwMCAvKiBQQ0kgcmVwZWF0IGNvdW50LiAqLworI2RlZmluZSBBQ1JfUlBUQ05UICAgICAweDAwMDAwNzAwIC8qIFJlcGVhdCBjb3VudC4gKi8gCisjZGVmaW5lIEFDUl9BUEFSSyAgICAgIDB4MDAwMDAwMzAgLyogQWRkcmVzcyBwYXJraW5nLiAqLworI2RlZmluZSBBQ1JfUEFSS00JICAgMHgwMDAwMDAwRiAvKiBQYXJraW5nIG1hc3Rlci4gKi8KKyNkZWZpbmUgQUNSX1JFUyB+KEFDUl9DT1JFRElTfEFDUl9QSVBFX0RFUHxBQ1JfUENJX1JQVENOVHxBQ1JfUlBUQ05UfEFDUl9BUEFSS3xBQ1JfUEFSS00pCisJdTMyIGF0cjsgLyogQXJiaXRlciBUaW1lcnMgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgQVRSX0RUTyAweDAwRkYwMDAwIC8qIERhdGEgdGltZSBvdXQuICovCisjZGVmaW5lIEFUUl9BVE8JMHgwMDAwMDBGRiAvKiBBZGRyZXNzIHRpbWUgb3V0LiAqLworI2RlZmluZSBBVFJfUkVTIH4oQVRSX0RUT3xBVFJfQVRPKQorCXU4IHJlc1s0XTsKKwl1MzIgYWVyOyAvKiBBcmJpdGVyIEV2ZW50IFJlZ2lzdGVyIChBRSkqLworCXUzMiBhaWRyOyAvKiBBcmJpdGVyIEludGVycnVwdCBEZWZpbml0aW9uIFJlZ2lzdGVyIChBRSkgKi8KKwl1MzIgYW1yOyAvKiBBcmJpdGVyIE1hc2sgUmVnaXN0ZXIgKEFFKSAqLworCXUzMiBhZWF0cjsgLyogQXJiaXRlciBFdmVudCBBdHRyaWJ1dGVzIFJlZ2lzdGVyICovCisjZGVmaW5lIEFFQVRSX0VWRU5UICAgMHgwNzAwMDAwMCAvKiBFdmVudCB0eXBlLiAqLworI2RlZmluZSBBRUFUUl9NU1RSX0lEIDB4MDAxRjAwMDAgLyogTWFzdGVyIElkLiAqLworI2RlZmluZSBBRUFUUl9UQlNUICAgIDB4MDAwMDA4MDAgLyogVHJhbnNmZXIgYnVyc3QuICovCisjZGVmaW5lIEFFQVRSX1RTSVpFICAgMHgwMDAwMDcwMCAvKiBUcmFuc2ZlciBTaXplLiAqLworI2RlZmluZSBBRUFUUl9UVFlQRQkgIDB4MDAwMDAwMUYgLyogVHJhbnNmZXIgVHlwZS4gKi8KKyNkZWZpbmUgQUVBVFJfUkVTIH4oQUVBVFJfRVZFTlR8QUVBVFJfTVNUUl9JRHxBRUFUUl9UQlNUfEFFQVRSX1RTSVpFfEFFQVRSX1RUWVBFKQorCXUzMiBhZWFkcjsgLyogQXJiaXRlciBFdmVudCBBZGRyZXNzIFJlZ2lzdGVyICovCisJdTMyIGFlcnI7IC8qIEFyYml0ZXIgRXZlbnQgUmVzcG9uc2UgUmVnaXN0ZXIgKEFFKSovCisjZGVmaW5lIEFFX0VURUEgMHgwMDAwMDAyMCAvKiBUcmFuc2ZlciBlcnJvci4gKi8KKyNkZWZpbmUgQUVfUkVTXyAweDAwMDAwMDEwIC8qIFJlc2VydmVkIHRyYW5zZmVyIHR5cGUuICovCisjZGVmaW5lIEFFX0VDVyAgMHgwMDAwMDAwOCAvKiBFeHRlcm5hbCBjb250cm9sIHdvcmQgdHJhbnNmZXIgdHlwZS4gKi8KKyNkZWZpbmUgQUVfQU8gICAweDAwMDAwMDA0IC8qIEFkZHJlc3MgT25seSB0cmFuc2ZlciB0eXBlLiAqLworI2RlZmluZSBBRV9EVE8gIDB4MDAwMDAwMDIgLyogRGF0YSB0aW1lIG91dC4gKi8KKyNkZWZpbmUgQUVfQVRPCTB4MDAwMDAwMDEgLyogQWRkcmVzcyB0aW1lIG91dC4gKi8KKyNkZWZpbmUgQUVfUlNSViB+KEFFX0VURUF8QUVfUkVTX3xBRV9FQ1d8QUVfQU98QUVfRFRPfEFFX0FUTykKKwl1OCByZXMxWzB4RENdOworfSBhcmJpdGVyODM0OV90OworCisvKgorICogUmVzZXQgTW9kdWxlCisgKi8KK3R5cGVkZWYgc3RydWN0IHJlc2V0ODM0OSB7CisgICAgdTMyICAgIHJjd2w7IC8qIFJDV0wgUmVnaXN0ZXIgICovCisjZGVmaW5lIFJDV0xfTEJJVUNNICAweDgwMDAwMDAwIC8qIExCSVVDTSAgKi8KKyNkZWZpbmUgUkNXTF9MQklVQ01fU0hJRlQgICAgMzEKKyNkZWZpbmUgUkNXTF9ERFJDTSAgIDB4NDAwMDAwMDAgLyogRERSQ00gICovCisjZGVmaW5lIFJDV0xfRERSQ01fU0hJRlQgICAgIDMwCisjZGVmaW5lIFJDV0xfU1ZDT0QgICAweDMwMDAwMDAwIC8qIFNWQ09EICAqLworI2RlZmluZSBSQ1dMX1NQTUYgICAgMHgwZjAwMDAwMCAvKiBTUE1GICAqLworI2RlZmluZSBSQ1dMX1NQTUZfU0hJRlQgICAgICAyNAorI2RlZmluZSBSQ1dMX0NPUkVQTEwgMHgwMDdGMDAwMCAvKiBDT1JFUExMICAqLworI2RlZmluZSBSQ1dMX0NPUkVQTExfU0hJRlQgICAxNgorI2RlZmluZSBSQ1dMX0NFVkNPRCAgMHgwMDAwMDBDMCAvKiBDRVZDT0QgICovCisjZGVmaW5lIFJDV0xfQ0VQREYgICAweDAwMDAwMDIwIC8qIENFUERGICAqLworI2RlZmluZSBSQ1dMX0NFUE1GICAgMHgwMDAwMDAxRiAvKiBDRVBNRiAgKi8KKyNkZWZpbmUgUkNXTF9SRVMgfihSQ1dMX0JJVUNNfFJDV0xfRERSQ018UkNXTF9TVkNPRHxSQ1dMX1NQTUZ8UkNXTF9DT1JFUExMfFJDV0xfQ0VWQ09EfFJDV0xfQ0VQREZ8UkNXTF9DRVBNRikgIAorICAgIHUzMiAgICByY3doOyAvKiBSQ0hMIFJlZ2lzdGVyICAqLworI2RlZmluZSBSQ1dIX1BDSUhPU1QgMHg4MDAwMDAwMCAvKiBQQ0lIT1NUICAqLworI2RlZmluZSBSQ1dIX1BDSUhPU1RfU0hJRlQgICAzMQorI2RlZmluZSBSQ1dIX1BDSTY0ICAgMHg0MDAwMDAwMCAvKiBQQ0k2NCAgKi8KKyNkZWZpbmUgUkNXSF9QQ0kxQVJCIDB4MjAwMDAwMDAgLyogUENJMUFSQiAgKi8KKyNkZWZpbmUgUkNXSF9QQ0kyQVJCIDB4MTAwMDAwMDAgLyogUENJMkFSQiAgKi8KKyNkZWZpbmUgUkNXSF9DT1JFRElTIDB4MDgwMDAwMDAgLyogQ09SRURJUyAgKi8KKyNkZWZpbmUgUkNXSF9CTVMgICAgIDB4MDQwMDAwMDAgLyogQk1TICAqLworI2RlZmluZSBSQ1dIX0JPT1RTRVEgMHgwMzAwMDAwMCAvKiBCT09UU0VRICAqLworI2RlZmluZSBSQ1dIX1NXRU4gICAgMHgwMDgwMDAwMCAvKiBTV0VOICAqLworI2RlZmluZSBSQ1dIX1JPTUxPQyAgMHgwMDcwMDAwMCAvKiBST01MT0MgICovCisjZGVmaW5lIFJDV0hfVFNFQzFNICAweDAwMDBjMDAwIC8qIFRTRUMxTSAgKi8KKyNkZWZpbmUgUkNXSF9UU0VDMk0gIDB4MDAwMDMwMDAgLyogVFNFQzJNICAqLworI2RlZmluZSBSQ1dIX1RQUiAgICAgMHgwMDAwMDEwMCAvKiBUUFIgICovCisjZGVmaW5lIFJDV0hfVExFICAgICAweDAwMDAwMDA4IC8qIFRMRSAgKi8KKyNkZWZpbmUgUkNXSF9MQUxFICAgIDB4MDAwMDAwMDQgLyogTEFMRSAgKi8KKyNkZWZpbmUgUkNXSF9SRVMgfihSQ1dIX1BDSUhPU1R8UkNXSF9QQ0k2NHxSQ1dIX1BDSTFBUkJ8UkNXSF9QQ0kyQVJCIFwKKyAgICAgICAgICAgICAgICAgICAgfFJDV0hfQ09SRURJU3xSQ1dIX0JNU3xSQ1dIX0JPT1RTRVF8UkNXSF9TV0VOfFJDV0hfUk9NTE9DIFwKKyAgICAgICAgICAgICAgICAgICAgfFJDV0hfVFNFQzFNfFJDV0hfVFNFQzJNfFJDV0hfVFBSfFJDV0hfVExFfFJDV0hfTEFMRSkKKyAgICB1OCAgICAgcmVzMFs4XTsKKyAgICB1MzIgICAgcnNyOyAvKiBSZXNldCBzdGF0dXMgUmVnaXN0ZXIgICovCisjZGVmaW5lIFJTUl9SU1RTUkMgMHhFMDAwMDAwMCAvKiBSZXNldCBzb3VyY2UgICovCisjZGVmaW5lIFJTUl9SU1RTUkNfU0hJRlQgICAyOQorI2RlZmluZSBSU1JfQlNGICAgIDB4MDAwMTAwMDAgLyogQm9vdCBzZXEuIGZhaWwgICovCisjZGVmaW5lIFJTUl9CU0ZfU0hJRlQgICAgICAxNgorI2RlZmluZSBSU1JfU1dTUiAgIDB4MDAwMDIwMDAgLyogc29mdHdhcmUgc29mdCByZXNldCAgKi8KKyNkZWZpbmUgUlNSX1NXU1JfU0hJRlQgICAgIDEzCisjZGVmaW5lIFJTUl9TV0hSICAgMHgwMDAwMTAwMCAvKiBzb2Z0d2FyZSBoYXJkIHJlc2V0ICAqLworI2RlZmluZSBSU1JfU1dIUl9TSElGVCAgICAgMTIKKyNkZWZpbmUgUlNSX0pIUlMgICAweDAwMDAwMjAwIC8qIGp0YWcgaHJlc2V0ICAqLworI2RlZmluZSBSU1JfSkhSU19TSElGVCAgICAgIDkKKyNkZWZpbmUgUlNSX0pTUlMgICAweDAwMDAwMTAwIC8qIGp0YWcgc3Jlc2V0IHN0YXR1cyAgKi8KKyNkZWZpbmUgUlNSX0pTUlNfU0hJRlQgICAgICA4CisjZGVmaW5lIFJTUl9DU0hSICAgMHgwMDAwMDAxMCAvKiBjaGVja3N0b3AgcmVzZXQgc3RhdHVzICAqLworI2RlZmluZSBSU1JfQ1NIUl9TSElGVCAgICAgIDQKKyNkZWZpbmUgUlNSX1NXUlMgICAweDAwMDAwMDA4IC8qIHNvZnR3YXJlIHdhdGNoZG9nIHJlc2V0IHN0YXR1cyAgKi8KKyNkZWZpbmUgUlNSX1NXUlNfU0hJRlQgICAgICAzCisjZGVmaW5lIFJTUl9CTVJTICAgMHgwMDAwMDAwNCAvKiBidXMgbW9uaXRvcCByZXNldCBzdGF0dXMgICovCisjZGVmaW5lIFJTUl9CTVJTX1NISUZUICAgICAgMgorI2RlZmluZSBSU1JfU1JTICAgIDB4MDAwMDAwMDIgLyogc29mdCByZXNldCBzdGF0dXMgICovCisjZGVmaW5lIFJTUl9TUlNfU0hJRlQgICAgICAgMQorI2RlZmluZSBSU1JfSFJTICAgIDB4MDAwMDAwMDEgLyogaGFyZCByZXNldCBzdGF0dXMgICovCisjZGVmaW5lIFJTUl9IUlNfU0hJRlQgICAgICAgMAorI2RlZmluZSBSU1JfUkVTIH4oUlNSX1JTVFNSQ3xSU1JfQlNGfFJTUl9TV1NSfFJTUl9TV0hSfFJTUl9KSFJTfFJTUl9KU1JTfFJTUl9DU0hSfFJTUl9TV1JTfFJTUl9CTVJTfFJTUl9TUlN8UlNSX0hSUykKKyAgICB1MzIgICAgcm1yOyAvKiBSZXNldCBtb2RlIFJlZ2lzdGVyICAqLworI2RlZmluZSBSTVJfQ1NSRSAgIDB4MDAwMDAwMDEgLyogY2hlY2tzdG9wIHJlc2V0IGVuYWJsZSAgKi8KKyNkZWZpbmUgUk1SX0NTUkVfU0hJRlQgICAgICAwCisjZGVmaW5lIFJNUl9SRVMgfihSTVJfQ1NSRSkKKyAgICB1MzIgICAgcnByOyAvKiBSZXNldCBwcm90ZWN0aW9uIFJlZ2lzdGVyICAqLworICAgIHUzMiAgICByY3I7IC8qIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIgICovCisjZGVmaW5lIFJDUl9TV0hSIDB4MDAwMDAwMDIgLyogc29mdHdhcmUgaGFyZCByZXNldCAgKi8KKyNkZWZpbmUgUkNSX1NXU1IgMHgwMDAwMDAwMSAvKiBzb2Z0d2FyZSBzb2Z0IHJlc2V0ICAqLworI2RlZmluZSBSQ1JfUkVTIH4oUkNSX1NXSFJ8UkNSX1NXU1IpCisgICAgdTMyICAgIHJjZXI7IC8qIFJlc2V0IENvbnRyb2wgRW5hYmxlIFJlZ2lzdGVyICAqLworI2RlZmluZSBSQ0VSX0NSRSAweDAwMDAwMDAxIC8qIHNvZnR3YXJlIGhhcmQgcmVzZXQgICovCisjZGVmaW5lIFJDRVJfUkVTIH4oUkNFUl9DUkUpCisJdTggICAgIHJlczFbMHhEQ107Cit9IHJlc2V0ODM0OV90OworIAordHlwZWRlZiBzdHJ1Y3QgY2xrODM0OSB7CisgICAgdTMyICAgIHNwbXI7IC8qIHN5c3RlbSBQTEwgbW9kZSBSZWdpc3RlciAgKi8KKyNkZWZpbmUgU1BNUl9MQklVQ00gIDB4ODAwMDAwMDAgLyogTEJJVUNNICAqLworI2RlZmluZSBTUE1SX0REUkNNICAgMHg0MDAwMDAwMCAvKiBERFJDTSAgKi8KKyNkZWZpbmUgU1BNUl9TVkNPRCAgIDB4MzAwMDAwMDAgLyogU1ZDT0QgICovCisjZGVmaW5lIFNQTVJfU1BNRiAgICAweDBGMDAwMDAwIC8qIFNQTUYgICovCisjZGVmaW5lIFNQTVJfQ0tJRCAgICAweDAwODAwMDAwIC8qIENLSUQgICovCisjZGVmaW5lIFNQTVJfQ0tJRF9TSElGVCAyMyAKKyNkZWZpbmUgU1BNUl9DT1JFUExMIDB4MDA3RjAwMDAgLyogQ09SRVBMTCAgKi8KKyNkZWZpbmUgU1BNUl9DRVZDT0QgIDB4MDAwMDAwQzAgLyogQ0VWQ09EICAqLworI2RlZmluZSBTUE1SX0NFUERGICAgMHgwMDAwMDAyMCAvKiBDRVBERiAgKi8KKyNkZWZpbmUgU1BNUl9DRVBNRiAgIDB4MDAwMDAwMUYgLyogQ0VQTUYgICovCisjZGVmaW5lIFNQTVJfUkVTIH4oU1BNUl9MQklVQ018U1BNUl9ERFJDTXxTUE1SX1NWQ09EfFNQTVJfU1BNRnxTUE1SX0NLSUQgXAorICAgICAgICAgICAgICAgICAgIHxTUE1SX0NPUkVQTEx8U1BNUl9DRVZDT0R8U1BNUl9DRVBERnxTUE1SX0NFUE1GKQorICAgIHUzMiAgICBvY2NyOyAvKiBvdXRwdXQgY2xvY2sgY29udHJvbCBSZWdpc3RlciAgKi8KKyNkZWZpbmUgT0NDUl9QQ0lDT0UwIDB4ODAwMDAwMDAgLyogUENJQ09FMCAgKi8KKyNkZWZpbmUgT0NDUl9QQ0lDT0UxIDB4NDAwMDAwMDAgLyogUENJQ09FMSAgKi8KKyNkZWZpbmUgT0NDUl9QQ0lDT0UyIDB4MjAwMDAwMDAgLyogUENJQ09FMiAgKi8KKyNkZWZpbmUgT0NDUl9QQ0lDT0UzIDB4MTAwMDAwMDAgLyogUENJQ09FMyAgKi8KKyNkZWZpbmUgT0NDUl9QQ0lDT0U0IDB4MDgwMDAwMDAgLyogUENJQ09FNCAgKi8KKyNkZWZpbmUgT0NDUl9QQ0lDT0U1IDB4MDQwMDAwMDAgLyogUENJQ09FNSAgKi8KKyNkZWZpbmUgT0NDUl9QQ0lDT0U2IDB4MDIwMDAwMDAgLyogUENJQ09FNiAgKi8KKyNkZWZpbmUgT0NDUl9QQ0lDT0U3IDB4MDEwMDAwMDAgLyogUENJQ09FNyAgKi8KKyNkZWZpbmUgT0NDUl9QQ0lDRDAgIDB4MDA4MDAwMDAgLyogUENJQ0QwICAqLworI2RlZmluZSBPQ0NSX1BDSUNEMSAgMHgwMDQwMDAwMCAvKiBQQ0lDRDEgICovCisjZGVmaW5lIE9DQ1JfUENJQ0QyICAweDAwMjAwMDAwIC8qIFBDSUNEMiAgKi8KKyNkZWZpbmUgT0NDUl9QQ0lDRDMgIDB4MDAxMDAwMDAgLyogUENJQ0QzICAqLworI2RlZmluZSBPQ0NSX1BDSUNENCAgMHgwMDA4MDAwMCAvKiBQQ0lDRDQgICovCisjZGVmaW5lIE9DQ1JfUENJQ0Q1ICAweDAwMDQwMDAwIC8qIFBDSUNENSAgKi8KKyNkZWZpbmUgT0NDUl9QQ0lDRDYgIDB4MDAwMjAwMDAgLyogUENJQ0Q2ICAqLworI2RlZmluZSBPQ0NSX1BDSUNENyAgMHgwMDAxMDAwMCAvKiBQQ0lDRDcgICovCisjZGVmaW5lIE9DQ1JfUENJMUNSICAweDAwMDAwMDAyIC8qIFBDSTFDUiAgKi8KKyNkZWZpbmUgT0NDUl9QQ0kyQ1IgIDB4MDAwMDAwMDEgLyogUENJMkNSICAqLworI2RlZmluZSBPQ0NSX1JFUyB+KE9DQ1JfUENJQ09FMHxPQ0NSX1BDSUNPRTF8T0NDUl9QQ0lDT0UyfE9DQ1JfUENJQ09FM3xPQ0NSX1BDSUNPRTQgXAorICAgICAgICAgICAgICAgICAgIHxPQ0NSX1BDSUNPRTV8T0NDUl9QQ0lDT0U2fE9DQ1JfUENJQ09FN3xPQ0NSX1BDSUNEMHxPQ0NSX1BDSUNEMSAgXAorICAgICAgICAgICAgICAgICAgIHxPQ0NSX1BDSUNEMiB8T0NDUl9QQ0lDRDMgfE9DQ1JfUENJQ0Q0IHxPQ0NSX1BDSUNENXxPQ0NSX1BDSUNENiAgXAorICAgICAgICAgICAgICAgICAgIHxPQ0NSX1BDSUNENyB8T0NDUl9QQ0kxQ1IgfE9DQ1JfUENJMkNSICkKKyAgICB1MzIgICAgc2NjcjsgLyogc3lzdGVtIGNsb2NrIGNvbnRyb2wgUmVnaXN0ZXIgICovCisjZGVmaW5lIFNDQ1JfVFNFQzFDTSAgMHhjMDAwMDAwMCAvKiBUU0VDMUNNICAqLworI2RlZmluZSBTQ0NSX1RTRUMxQ01fU0hJRlQgMzAKKyNkZWZpbmUgU0NDUl9UU0VDMkNNICAweDMwMDAwMDAwIC8qIFRTRUMyQ00gICovCisjZGVmaW5lIFNDQ1JfVFNFQzJDTV9TSElGVCAyOAorI2RlZmluZSBTQ0NSX0VOQ0NNICAgIDB4MDMwMDAwMDAgLyogRU5DQ00gICovCisjZGVmaW5lIFNDQ1JfRU5DQ01fU0hJRlQgMjQKKyNkZWZpbmUgU0NDUl9VU0JNUEhDTSAweDAwYzAwMDAwIC8qIFVTQk1QSENNICAqLworI2RlZmluZSBTQ0NSX1VTQk1QSENNX1NISUZUIDIyCisjZGVmaW5lIFNDQ1JfVVNCRFJDTSAgMHgwMDMwMDAwMCAvKiBVU0JEUkNNICAqLworI2RlZmluZSBTQ0NSX1VTQkRSQ01fU0hJRlQgMjAKKyNkZWZpbmUgU0NDUl9QQ0lDTSAgICAweDAwMDEwMDAwIC8qIFBDSUNNICAqLworI2RlZmluZSBTQ0NSX1JFUyB+KCBTQ0NSX1RTRUMxQ018U0NDUl9UU0VDMkNNfFNDQ1JfRU5DQ018U0NDUl9VU0JNUEhDTSBcCisgICAgICAgICAgICAgICAgICAgfFNDQ1JfVVNCRFJDTXxTQ0NSX1BDSUNNKQorCXU4ICAgICByZXMwWzB4RjRdOworfSBjbGs4MzQ5X3Q7IAorCisvKgorICogUG93ZXIgTWFuYWdlbWVudCBDb250cm9sIE1vZHVsZQorICovCit0eXBlZGVmIHN0cnVjdCBwbWM4MzQ5IHsKKyAgICB1MzIgICAgcG1jY3I7IC8qIFBNQyBDb25maWd1cmF0aW9uIFJlZ2lzdGVyICAqLworI2RlZmluZSBQTUNDUl9TTFBFTiAweDAwMDAwMDAxIC8qIFN5c3RlbSBMb3cgUG93ZXIgRW5hYmxlICAqLworI2RlZmluZSBQTUNDUl9ETFBFTiAweDAwMDAwMDAyIC8qIEREUiBTRFJBTSBMb3cgUG93ZXIgRW5hYmxlICAqLworI2RlZmluZSBQTUNDUl9SRVMgfihQTUNDUl9TTFBFTnxQTUNDUl9ETFBFTikKKyAgICB1MzIgICAgcG1jZXI7IC8qIFBNQyBFdmVudCBSZWdpc3RlciAgKi8KKyNkZWZpbmUgUE1DRVJfUE1DSSAgMHgwMDAwMDAwMSAvKiBQTUMgSW50ZXJydXB0ICAqLworI2RlZmluZSBQTUNFUl9SRVMgfihQTUNFUl9QTUNJKQorICAgIHUzMiAgICBwbWNtcjsgLyogUE1DIE1hc2sgUmVnaXN0ZXIgICovCisjZGVmaW5lIFBNQ01SX1BNQ0lFIDB4MDAwMSAvKiBQTUMgSW50ZXJydXB0IEVuYWJsZSAgKi8KKyNkZWZpbmUgUE1DTVJfUkVTIH4oUE1DTVJfUE1DSUUpCisJdTggcmVzMFsweEY0XTsKK30gcG1jODM0OV90OworCisKKy8qCisgKiBnZW5lcmFsIHB1cnBvc2UgSS9PIG1vZHVsZQorICovCit0eXBlZGVmIHN0cnVjdCBncGlvODM0OSB7CisJdTMyIGRpcjsgLyogZGlyZWN0aW9uIHJlZ2lzdGVyICovCisJdTMyIG9kcjsgLyogb3BlbiBkcmFpbiByZWdpc3RlciAqLyAKKwl1MzIgZGF0OyAvKiBkYXRhIHJlZ2lzdGVyICovCisJdTMyIGllcjsgLyogaW50ZXJydXB0IGV2ZW50IHJlZ2lzdGVyICovCisJdTMyIGltcjsgLyogaW50ZXJydXB0IG1hc2sgcmVnaXN0ZXIgKi8KKwl1MzIgaWNyOyAvKiBleHRlcm5hbCBpbnRlcnJ1cHQgY29udHJvbCByZWdpc3RlciAqLworCXU4IHJlczBbMHhFOF07Cit9IGdwaW84MzQ5X3Q7CisKKy8qIAorICogRERSIE1lbW9yeSBDb250cm9sbGVyIE1lbW9yeSBNYXAKKyAqLwordHlwZWRlZiBzdHJ1Y3QgZGRyX2NzX2JuZHN7CisgICAgdTMyIGNzYm5kczsKKyNkZWZpbmUgQ1NCTkRTX1NBIDB4MDBGRjAwMDAKKyNkZWZpbmUgQ1NCTkRTX1NBX1NISUZUICAgMTYKKyNkZWZpbmUgQ1NCTkRTX0VBIDB4MDAwMDAwRkYKKyNkZWZpbmUgQ1NCTkRTX0VBX1NISUZUICAgIDAKKyAgICB1OCAgcmVzMFs0XTsKK30gZGRyX2NzX2JuZHNfdDsKKwordHlwZWRlZiBzdHJ1Y3QgZGRyODM0OXsKKyAgICBkZHJfY3NfYm5kc190IGNzYm5kc1s0XTsgICAgICAgICAgICAvKio8IENoaXAgU2VsZWN0IHggTWVtb3J5IEJvdW5kcyAqLyAKKyAgICB1OCByZXMwWzB4NjBdOworICAgIHUzMiBjc19jb25maWdbNF07ICAgICAgIC8qKjwgQ2hpcCBTZWxlY3QgeCBDb25maWd1cmF0aW9uICovIAorI2RlZmluZSBDU0NPTkZJR19FTiAgICAgICAgIDB4ODAwMDAwMDAKKyNkZWZpbmUgQ1NDT05GSUdfQVAgICAgICAgICAweDAwODAwMDAwCisjZGVmaW5lIENTQ09ORklHX1JPV19CSVQgICAgMHgwMDAwMDcwMAorI2RlZmluZSBDU0NPTkZJR19ST1dfQklUXzEyIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ1NDT05GSUdfUk9XX0JJVF8xMyAweDAwMDAwMTAwCisjZGVmaW5lIENTQ09ORklHX1JPV19CSVRfMTQgMHgwMDAwMDIwMAorI2RlZmluZSBDU0NPTkZJR19DT0xfQklUICAgIDB4MDAwMDAwMDcKKyNkZWZpbmUgQ1NDT05GSUdfQ09MX0JJVF84ICAweDAwMDAwMDAwCisjZGVmaW5lIENTQ09ORklHX0NPTF9CSVRfOSAgMHgwMDAwMDAwMQorI2RlZmluZSBDU0NPTkZJR19DT0xfQklUXzEwIDB4MDAwMDAwMDIKKyNkZWZpbmUgQ1NDT05GSUdfQ09MX0JJVF8xMSAweDAwMDAwMDAzCisgICAgdTggcmVzMVsweDc4XTsKKyAgICB1MzIgdGltaW5nX2NmZ18xOyAgICAgICAvKio8IFNEUkFNIFRpbWluZyBDb25maWd1cmF0aW9uIDEgKi8KKyNkZWZpbmUgVElNSU5HX0NGRzFfUFJFVE9BQ1QgMHg3MDAwMDAwMAorI2RlZmluZSBUSU1JTkdfQ0ZHMV9QUkVUT0FDVF9TSElGVCAgIDI4CisjZGVmaW5lIFRJTUlOR19DRkcxX0FDVFRPUFJFIDB4MEYwMDAwMDAKKyNkZWZpbmUgVElNSU5HX0NGRzFfQUNUVE9QUkVfU0hJRlQgICAyNAorI2RlZmluZSBUSU1JTkdfQ0ZHMV9BQ1RUT1JXICAweDAwNzAwMDAwCisjZGVmaW5lIFRJTUlOR19DRkcxX0FDVFRPUldfU0hJRlQgICAgMjAKKyNkZWZpbmUgVElNSU5HX0NGRzFfQ0FTTEFUICAgMHgwMDA3MDAwMAorI2RlZmluZSBUSU1JTkdfQ0ZHMV9DQVNMQVRfU0hJRlQgICAgIDE2CisjZGVmaW5lIFRJTUlOR19DRkcxX1JFRlJFQyAgIDB4MDAwMEYwMDAKKyNkZWZpbmUgVElNSU5HX0NGRzFfUkVGUkVDX1NISUZUICAgICAxMgorI2RlZmluZSBUSU1JTkdfQ0ZHMV9XUlJFQyAgICAweDAwMDAwNzAwCisjZGVmaW5lIFRJTUlOR19DRkcxX1dSUkVDX1NISUZUICAgICAgIDgKKyNkZWZpbmUgVElNSU5HX0NGRzFfQUNUVE9BQ1QgMHgwMDAwMDA3MAorI2RlZmluZSBUSU1JTkdfQ0ZHMV9BQ1RUT0FDVF9TSElGVCAgICA0ICAgCisjZGVmaW5lIFRJTUlOR19DRkcxX1dSVE9SRCAgIDB4MDAwMDAwMDcKKyNkZWZpbmUgVElNSU5HX0NGRzFfV1JUT1JEX1NISUZUICAgICAgMAorCisgICAgdTMyIHRpbWluZ19jZmdfMjsgICAgICAgLyoqPCBTRFJBTSBUaW1pbmcgQ29uZmlndXJhdGlvbiAyICovCisjZGVmaW5lIFRJTUlOR19DRkcyX0NQTyAgICAgICAgICAgMHgwRjAwMDAwMAorI2RlZmluZSBUSU1JTkdfQ0ZHMl9DUE9fU0hJRlQgICAgICAgICAgICAgMjQKKyNkZWZpbmUgVElNSU5HX0NGRzJfQUNTTSAgICAgICAgICAweDAwMDgwMDAwCisjZGVmaW5lIFRJTUlOR19DRkcyX1dSX0RBVEFfREVMQVkgMHgwMDAwMUMwMCAgIAorI2RlZmluZSBUSU1JTkdfQ0ZHMl9XUl9EQVRBX0RFTEFZX1NISUZUICAgMTAKKworICAgIHUzMiBzZHJhbV9jZmc7ICAgICAgICAgIC8qKjwgU0RSQU0gQ29udHJvbCBDb25maWd1cmF0aW9uICovCisjZGVmaW5lIFNEUkFNX0NGR19NRU1fRU4gICAgIDB4ODAwMDAwMDAKKyNkZWZpbmUgU0RSQU1fQ0ZHX1NSRU4gICAgICAgMHg0MDAwMDAwMAorI2RlZmluZSBTRFJBTV9DRkdfRUNDX0VOICAgICAweDIwMDAwMDAwCisjZGVmaW5lIFNEUkFNX0NGR19SRF9FTiAgICAgIDB4MTAwMDAwMDAKKyNkZWZpbmUgU0RSQU1fQ0ZHX1NEUkFNX1RZUEUgMHgwMzAwMDAwMAorI2RlZmluZSBTRFJBTV9DRkdfU0RSQU1fVFlQRV9TSElGVCAgIDI0CisjZGVmaW5lIFNEUkFNX0NGR19EWU5fUFdSICAgIDB4MDAyMDAwMDAKKyNkZWZpbmUgU0RSQU1fQ0ZHXzMyX0JFICAgICAgMHgwMDA4MDAwMAorI2RlZmluZSBTRFJBTV9DRkdfOF9CRSAgICAgICAweDAwMDQwMDAwCisjZGVmaW5lIFNEUkFNX0NGR19OQ0FQICAgICAgIDB4MDAwMjAwMDAKKyNkZWZpbmUgU0RSQU1fQ0ZHXzJUX0VOICAgICAgMHgwMDAwODAwMAorCisgICAgdTggcmVzMls0XTsKKyAgICB1MzIgc2RyYW1fbW9kZTsgICAgICAgICAvKio8IFNEUkFNIE1vZGUgQ29uZmlndXJhdGlvbiAqLyAKKyNkZWZpbmUgU0RSQU1fTU9ERV9FU0QgMHhGRkZGMDAwMCAgIAorI2RlZmluZSBTRFJBTV9NT0RFX0VTRF9TSElGVCAgIDE2ICAgICAgICAgICAgICAKKyNkZWZpbmUgU0RSQU1fTU9ERV9TRCAgMHgwMDAwRkZGRgorI2RlZmluZSBTRFJBTV9NT0RFX1NEX1NISUZUICAgICAwCisKKyAgICB1OCByZXMzWzhdOworICAgIHUzMiBzZHJhbV9pbnRlcnZhbDsgICAgIC8qKjwgU0RSQU0gSW50ZXJ2YWwgQ29uZmlndXJhdGlvbiAqLworI2RlZmluZSBTRFJBTV9JTlRFUlZBTF9SRUZJTlQgIDB4M0ZGRjAwMDAKKyNkZWZpbmUgU0RSQU1fSU5URVJWQUxfUkVGSU5UX1NISUZUICAgIDE2CisjZGVmaW5lIFNEUkFNX0lOVEVSVkFMX0JTVE9QUkUgMHgwMDAwM0ZGRgorI2RlZmluZSBTRFJBTV9JTlRFUlZBTF9CU1RPUFJFX1NISUZUICAgIDAKKyAgICB1OCAgIHJlczlbOF07CisgICAgdTMyICBzZHJhbV9jbGtfY250bDsKKyAgICB1OCByZXM0WzB4Q0NDXTsKKyAgICB1MzIgZGF0YV9lcnJfaW5qZWN0X2hpOyAvKio8IE1lbW9yeSBEYXRhIFBhdGggRXJyb3IgSW5qZWN0aW9uIE1hc2sgSGlnaCAqLworICAgIHUzMiBkYXRhX2Vycl9pbmplY3RfbG87IC8qKjwgTWVtb3J5IERhdGEgUGF0aCBFcnJvciBJbmplY3Rpb24gTWFzayBMb3cgKi8KKyAgICB1MzIgZWNjX2Vycl9pbmplY3Q7ICAgICAvKio8IE1lbW9yeSBEYXRhIFBhdGggRXJyb3IgSW5qZWN0aW9uIE1hc2sgRUNDICovCisgICAgdTggcmVzNVsweDE0XTsKKyAgICB1MzIgY2FwdHVyZV9kYXRhX2hpOyAgICAvKio8IE1lbW9yeSBEYXRhIFBhdGggUmVhZCBDYXB0dXJlIEhpZ2ggKi8KKyAgICB1MzIgY2FwdHVyZV9kYXRhX2xvOyAgICAvKio8IE1lbW9yeSBEYXRhIFBhdGggUmVhZCBDYXB0dXJlIExvdyAqLworICAgIHUzMiBjYXB0dXJlX2VjYzsgICAgICAgIC8qKjwgTWVtb3J5IERhdGEgUGF0aCBSZWFkIENhcHR1cmUgRUNDICovCisgICAgdTggcmVzNlsweDE0XTsKKyAgICB1MzIgZXJyX2RldGVjdDsgICAgICAgICAvKio8IE1lbW9yeSBFcnJvciBEZXRlY3QgKi8gCisgICAgdTMyIGVycl9kaXNhYmxlOyAgICAgICAgLyoqPCBNZW1vcnkgRXJyb3IgRGlzYWJsZSAqLworICAgIHUzMiBlcnJfaW50X2VuOyAgICAgICAgIC8qKjwgTWVtb3J5IEVycm9yIEludGVycnVwdCBFbmFibGUgKi8KKyAgICB1MzIgY2FwdHVyZV9hdHRyaWJ1dGVzOyAvKio8IE1lbW9yeSBFcnJvciBBdHRyaWJ1dGVzIENhcHR1cmUgKi8KKyAgICB1MzIgY2FwdHVyZV9hZGRyZXNzOyAgICAvKio8IE1lbW9yeSBFcnJvciBBZGRyZXNzIENhcHR1cmUgKi8KKyAgICB1MzIgY2FwdHVyZV9leHRfYWRkcmVzczsvKio8IE1lbW9yeSBFcnJvciBFeHRlbmRlZCBBZGRyZXNzIENhcHR1cmUgKi8KKyAgICB1MzIgZXJyX3NiZTsgICAgICAgICAgICAvKio8IE1lbW9yeSBTaW5nbGUtQml0IEVDQyBFcnJvciBNYW5hZ2VtZW50ICovCisgICAgdTggcmVzN1sweEE0XTsKKwl1MzIgZGVidWdfcmVnOworICAgIHU4IHJlczhbMHhGQ107Cit9IGRkcjgzNDlfdDsKKworLyoKKyAqIEkyQzEgQ29udHJvbGxlcgorICovIAorCisKKy8qCisgKiBEVUFSVAorICovCit0eXBlZGVmIHN0cnVjdCBkdWFydDgzNDl7CisgICAgdTggdXJicl91bGNyX3VkbGI7IC8qKjwgY29tYmluZWQgcmVnaXN0ZXIgZm9yIFVSQlIsIFVUSFIgYW5kIFVETEIgKi8KKyAgICB1OCB1aWVyX3VkbWI7ICAgICAgLyoqPCBjb21iaW5lZCByZWdpc3RlciBmb3IgVUlFUiBhbmQgVURNQiAqLworICAgIHU4IHVpaXJfdWZjcl91YWZyOyAvKio8IGNvbWJpbmVkIHJlZ2lzdGVyIGZvciBVSUlSLCBVRkNSIGFuZCBVQUZSICovCisgICAgdTggdWxjcjsgICAgICAgIC8qKjwgbGluZSBjb250cm9sIHJlZ2lzdGVyICovCisgICAgdTggdW1jcjsgICAgICAgIC8qKjwgTU9ERU0gY29udHJvbCByZWdpc3RlciAqLworICAgIHU4IHVsc3I7ICAgICAgICAvKio8IGxpbmUgc3RhdHVzIHJlZ2lzdGVyICovCisgICAgdTggdW1zcjsgICAgICAgIC8qKjwgTU9ERU0gc3RhdHVzIHJlZ2lzdGVyICovCisgICAgdTggdXNjcjsgICAgICAgIC8qKjwgc2NyYXRjaCByZWdpc3RlciAqLworICAgIHU4IHJlczBbOF07CisgICAgdTggdWRzcjsgICAgICAgIC8qKjwgRE1BIHN0YXR1cyByZWdpc3RlciAqLworICAgIHU4IHJlczFbM107CisgICAgdTggcmVzMlsweEVDXTsKKyAgICAKK30gZHVhcnQ4MzQ5X3Q7CisKKy8qCisgKiBMb2NhbCBCdXMgQ29udHJvbGxlciBSZWdpc3RlcnMKKyAqLwordHlwZWRlZiBzdHJ1Y3QgbGJ1c19iYW5reworICAgIHUzMiBicjsgICAgICAgICAgICAgLyoqPCBCYXNlIFJlZ2lzdGVyICAqLworICAgIHUzMiBvcjsgICAgICAgICAgICAgLyoqPCBCYXNlIFJlZ2lzdGVyICAqLworfSBsYnVzX2JhbmtfdDsKKwordHlwZWRlZiBzdHJ1Y3QgbGJ1czgzNDkgeworICAgIGxidXNfYmFua190IGJhbmtbOF07CisgICAgdTggcmVzMFsweDI4XTsKKyAgICB1MzIgbWFyOyAgICAgICAgICAgICAgICAvKio8IFVQTSBBZGRyZXNzIFJlZ2lzdGVyICovCisgICAgdTggcmVzMVsweDRdOworICAgIHUzMiBtYW1yOyAgICAgICAgICAgICAgIC8qKjwgVVBNQSBNb2RlIFJlZ2lzdGVyICovCisgICAgdTMyIG1ibXI7ICAgICAgICAgICAgICAgLyoqPCBVUE1CIE1vZGUgUmVnaXN0ZXIgKi8KKyAgICB1MzIgbWNtcjsgICAgICAgICAgICAgICAvKio8IFVQTUMgTW9kZSBSZWdpc3RlciAqLworICAgIHU4IHJlczJbMHg4XTsKKyAgICB1MzIgbXJ0cHI7ICAgICAgICAgICAgICAvKio8IE1lbW9yeSBSZWZyZXNoIFRpbWVyIFByZXNjYWxlciBSZWdpc3RlciAqLworICAgIHUzMiBtZHI7ICAgICAgICAgICAgICAgIC8qKjwgVVBNIERhdGEgUmVnaXN0ZXIgKi8KKyAgICB1OCByZXMzWzB4OF07CisgICAgdTMyIGxzZG1yOyAgICAgICAgICAgICAgLyoqPCBTRFJBTSBNb2RlIFJlZ2lzdGVyICovCisgICAgdTggcmVzNFsweDhdOworICAgIHUzMiBsdXJ0OyAgICAgICAgICAgICAgIC8qKjwgVVBNIFJlZnJlc2ggVGltZXIgKi8KKyAgICB1MzIgbHNydDsgICAgICAgICAgICAgICAvKio8IFNEUkFNIFJlZnJlc2ggVGltZXIgKi8KKyAgICB1OCByZXM1WzB4OF07CisgICAgdTMyIGx0ZXNyOyAgICAgICAgICAgICAgLyoqPCBUcmFuc2ZlciBFcnJvciBTdGF0dXMgUmVnaXN0ZXIgKi8KKyAgICB1MzIgbHRlZHI7ICAgICAgICAgICAgICAvKio8IFRyYW5zZmVyIEVycm9yIERpc2FibGUgUmVnaXN0ZXIgKi8KKyAgICB1MzIgbHRlaXI7ICAgICAgICAgICAgICAvKio8IFRyYW5zZmVyIEVycm9yIEludGVycnVwdCBSZWdpc3RlciAqLworICAgIHUzMiBsdGVhdHI7ICAgICAgICAgICAgIC8qKjwgVHJhbnNmZXIgRXJyb3IgQXR0cmlidXRlcyBSZWdpc3RlciAqLworICAgIHUzMiBsdGVhcjsgICAgICAgICAgICAgIC8qKjwgVHJhbnNmZXIgRXJyb3IgQWRkcmVzcyBSZWdpc3RlciAqLworICAgIHU4IHJlczZbMHhDXTsKKyAgICB1MzIgbGJjcjsgICAgICAgICAgICAgICAvKio8IENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8KKyNkZWZpbmUgTEJDUl9MRElTICAweDgwMDAwMDAwCisjZGVmaW5lIExCQ1JfTERJU19TSElGVCAgICAzMQorI2RlZmluZSBMQkNSX0JDVExDIDB4MDBDMDAwMDAKKyNkZWZpbmUgTEJDUl9CQ1RMQ19TSElGVCAgIDIyCisjZGVmaW5lIExCQ1JfTFBCU0UgMHgwMDAyMDAwMAorI2RlZmluZSBMQkNSX0xQQlNFX1NISUZUICAgMTcgIAorI2RlZmluZSBMQkNSX0VQQVIgIDB4MDAwMTAwMDAKKyNkZWZpbmUgTEJDUl9FUEFSX1NISUZUICAgIDE2CisjZGVmaW5lIExCQ1JfQk1UICAgMHgwMDAwRkYwMAorI2RlZmluZSBMQkNSX0JNVF9TSElGVCAgICAgIDgKKyAgICB1MzIgbGNycjsgICAgICAgICAgICAgICAvKio8IENsb2NrIFJhdGlvIFJlZ2lzdGVyICovCisjZGVmaW5lIExDUlJfREJZUCAgICAweDgwMDAwMDAwCisjZGVmaW5lIExDUlJfREJZUF9TSElGVCAgICAgIDMxCisjZGVmaW5lIExDUlJfQlVGQ01EQyAweDMwMDAwMDAwCisjZGVmaW5lIExDUlJfQlVGQ01EQ19TSElGVCAgIDI4CisjZGVmaW5lIExDUlJfRUNMICAgICAweDAzMDAwMDAwCisjZGVmaW5lIExDUlJfRUNMX1NISUZUICAgICAgIDI0CisjZGVmaW5lIExDUlJfRUFEQyAgICAweDAwMDMwMDAwCisjZGVmaW5lIExDUlJfRUFEQ19TSElGVCAgICAgIDE2CisjZGVmaW5lIExDUlJfQ0xLRElWICAweDAwMDAwMDBGCisjZGVmaW5lIExDUlJfQ0xLRElWX1NISUZUICAgICAwCisKKworICAgIHU4IHJlczdbMHgyOF07CisgICAgdTggcmVzOFsweEYwMF07Cit9IGxidXM4MzQ5X3Q7CisKKy8qCisgKiBTZXJpYWwgUGVyaXBoZXJhbCBJbnRlcmZhY2UKKyAqLwordHlwZWRlZiBzdHJ1Y3Qgc3BpODM0OQoreworICAgIHUzMiBtb2RlOyAgICAgLyoqPCBtb2RlIHJlZ2lzdGVyICAqLworICAgIHUzMiBldmVudDsgICAgLyoqPCBldmVudCByZWdpc3RlciAqLworICAgIHUzMiBtYXNrOyAgICAgLyoqPCBtYXNrIHJlZ2lzdGVyICAqLworICAgIHUzMiBjb207ICAgICAgLyoqPCBjb21tYW5kIHJlZ2lzdGVyICovCisgICAgdTggcmVzMFsweDEwXTsKKyAgICB1MzIgdHg7ICAgICAgIC8qKjwgdHJhbnNtaXQgcmVnaXN0ZXIgKi8KKyAgICB1MzIgcng7ICAgICAgIC8qKjwgcmVjZWl2ZSByZWdpc3RlciAqLworICAgIHU4IHJlczFbMHhEOF07Cit9IHNwaTgzNDlfdDsKKyAKK3R5cGVkZWYgc3RydWN0IGRtYTgzNDkgeworCXU4IGZpeG1lWzB4MzAwXTsKK30gZG1hODM0OV90OworCisvKgorICogUENJIFNvZnR3YXJlIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXJzCisgKi8KK3R5cGVkZWYgc3RydWN0IHBjaWNvbmY4MzQ5IHsKKwl1MzIJY29uZmlnX2FkZHJlc3M7CisjZGVmaW5lIFBDSV9DT05GSUdfQUREUkVTU19FTgkweDgwMDAwMDAwCisjZGVmaW5lIFBDSV9DT05GSUdfQUREUkVTU19CTl9TSElGVAkxNgorI2RlZmluZSBQQ0lfQ09ORklHX0FERFJFU1NfQk5fTUFTSwkweDAwZmYwMDAwCisjZGVmaW5lIFBDSV9DT05GSUdfQUREUkVTU19ETl9TSElGVAkxMQorI2RlZmluZSBQQ0lfQ09ORklHX0FERFJFU1NfRE5fTUFTSwkweDAwMDBmODAwCisjZGVmaW5lIFBDSV9DT05GSUdfQUREUkVTU19GTl9TSElGVAk4CisjZGVmaW5lIFBDSV9DT05GSUdfQUREUkVTU19GTl9NQVNLCTB4MDAwMDA3MDAKKyNkZWZpbmUgUENJX0NPTkZJR19BRERSRVNTX1JOX1NISUZUCTAKKyNkZWZpbmUgUENJX0NPTkZJR19BRERSRVNTX1JOX01BU0sJMHgwMDAwMDBmYworCXUzMiBjb25maWdfZGF0YTsKKwl1MzIgaW50X2FjazsKKwl1OAlyZXNbMTE2XTsKK30gcGNpY29uZjgzNDlfdDsKKworLyoKKyAqIFBDSSBPdXRib3VuZCBUcmFuc2xhdGlvbiBSZWdpc3RlcgorICovCit0eXBlZGVmIHN0cnVjdCBwY2lfb3V0Ym91bmRfd2luZG93IHsKKwl1MzIJcG90YXI7CisJdTgJcmVzMFs0XTsKKwl1MzIJcG9iYXI7CisJdTgJcmVzMVs0XTsKKwl1MzIJcG9jbXI7CisJdTgJcmVzMls0XTsKK30gcG90ODM0OV90OworLyoKKyAqIFNlcXVlbmNlcgorICovIAordHlwZWRlZiBzdHJ1Y3QgaW9zODM0OSB7CisJcG90ODM0OV90CXBvdFs2XTsKKyNkZWZpbmUgUE9UQVJfVEFfTUFTSwkweDAwMGZmZmZmCisjZGVmaW5lCVBPQkFSX0JBX01BU0sJMHgwMDBmZmZmZgorI2RlZmluZQlQT0NNUl9FTgkweDgwMDAwMDAwCisjZGVmaW5lCVBPQ01SX0lPCTB4NDAwMDAwMDAJLyogMC0tbWVtb3J5IHNwYWNlIDEtLUkvTyBzcGFjZSAqLworI2RlZmluZQlQT0NNUl9TRQkweDIwMDAwMDAwCS8qIHN0cmVhbWluZyBlbmFibGUgKi8KKyNkZWZpbmUJUE9DTVJfRFNUCTB4MTAwMDAwMDAJLyogMC0tUENJMSAxLS1QQ0kyKi8KKyNkZWZpbmUJUE9DTVJfQ01fTUFTSwkweDAwMGZmZmZmCisjZGVmaW5lCVBPQ01SX0NNXzRHCTB4MDAwMDAwMDAKKyNkZWZpbmUJUE9DTVJfQ01fMkcJMHgwMDA4MDAwMAorI2RlZmluZQlQT0NNUl9DTV8xRwkweDAwMEMwMDAwCisjZGVmaW5lCVBPQ01SX0NNXzUxMk0JMHgwMDBFMDAwMAorI2RlZmluZQlQT0NNUl9DTV8yNTZNCTB4MDAwRjAwMDAKKyNkZWZpbmUJUE9DTVJfQ01fMTI4TQkweDAwMEY4MDAwCisjZGVmaW5lCVBPQ01SX0NNXzY0TQkweDAwMEZDMDAwCisjZGVmaW5lCVBPQ01SX0NNXzMyTQkweDAwMEZFMDAwCisjZGVmaW5lCVBPQ01SX0NNXzE2TQkweDAwMEZGMDAwCisjZGVmaW5lCVBPQ01SX0NNXzhNCTB4MDAwRkY4MDAKKyNkZWZpbmUJUE9DTVJfQ01fNE0JMHgwMDBGRkMwMAorI2RlZmluZQlQT0NNUl9DTV8yTQkweDAwMEZGRTAwCisjZGVmaW5lCVBPQ01SX0NNXzFNCTB4MDAwRkZGMDAKKyNkZWZpbmUJUE9DTVJfQ01fNTEySwkweDAwMEZGRjgwCisjZGVmaW5lCVBPQ01SX0NNXzI1NksJMHgwMDBGRkZDMAorI2RlZmluZQlQT0NNUl9DTV8xMjhLCTB4MDAwRkZGRTAKKyNkZWZpbmUJUE9DTVJfQ01fNjRLCTB4MDAwRkZGRjAKKyNkZWZpbmUJUE9DTVJfQ01fMzJLCTB4MDAwRkZGRjgKKyNkZWZpbmUJUE9DTVJfQ01fMTZLCTB4MDAwRkZGRkMKKyNkZWZpbmUJUE9DTVJfQ01fOEsJMHgwMDBGRkZGRQorI2RlZmluZQlQT0NNUl9DTV80SwkweDAwMEZGRkZGCisJdTgJcmVzMFsweDYwXTsKKwl1MzIJcG1jcjsKKwl1OAlyZXMxWzRdOworCXUzMglkdGNyOworCXU4CXJlczJbNF07Cit9IGlvczgzNDlfdDsKKworLyoKKyAqIFBDSSBDb250cm9sbGVyIENvbnRyb2wgYW5kIFN0YXR1cyBSZWdpc3RlcnMKKyAqLwordHlwZWRlZiBzdHJ1Y3QgcGNpY3RybDgzNDkgeworCXUzMgllc3I7CisjZGVmaW5lIEVTUl9NRVJSCTB4ODAwMDAwMDAKKyNkZWZpbmUgRVNSX0FQQVIJMHgwMDAwMDQwMAorI2RlZmluZQlFU1JfUENJU0VSUgkweDAwMDAwMjAwCisjZGVmaW5lCUVTUl9NUEVSUgkweDAwMDAwMTAwCisjZGVmaW5lCUVTUl9UUEVSUgkweDAwMDAwMDgwCisjZGVmaW5lCUVTUl9OT1JTUAkweDAwMDAwMDQwCisjZGVmaW5lCUVTUl9UQUJUCTB4MDAwMDAwMjAKKwl1MzIJZWNkcjsKKyNkZWZpbmUgRUNEUl9BUEFSCTB4MDAwMDA0MDAKKyNkZWZpbmUJRUNEUl9QQ0lTRVJSCTB4MDAwMDAyMDAKKyNkZWZpbmUJRUNEUl9NUEVSUgkweDAwMDAwMTAwCisjZGVmaW5lCUVDRFJfVFBFUlIJMHgwMDAwMDA4MAorI2RlZmluZQlFQ0RSX05PUlNQCTB4MDAwMDAwNDAKKyNkZWZpbmUJRUNEUl9UQUJUCTB4MDAwMDAwMjAKKwl1MzIgZWVyOworI2RlZmluZSBFRVJfQVBBUgkweDAwMDAwNDAwCisjZGVmaW5lCUVFUl9QQ0lTRVJSCTB4MDAwMDAyMDAKKyNkZWZpbmUJRUVSX01QRVJSCTB4MDAwMDAxMDAKKyNkZWZpbmUJRUVSX1RQRVJSCTB4MDAwMDAwODAKKyNkZWZpbmUJRUVSX05PUlNQCTB4MDAwMDAwNDAKKyNkZWZpbmUJRUVSX1RBQlQJMHgwMDAwMDAyMAorCXUzMgllYXRjcjsKKyNkZWZpbmUJRUFUQ1JfRVJSVFlQUl9NQVNLCTB4NzAwMDAwMDAKKyNkZWZpbmUJRUFUQ1JfRVJSVFlQUl9BUFIJMHgwMDAwMDAwMAkvKiBhZGRyZXNzIHBhcml0eSBlcnJvciAqLworI2RlZmluZQlFQVRDUl9FUlJUWVBSX1dEUFIJMHgxMDAwMDAwMAkvKiB3cml0ZSBkYXRhIHBhcml0eSBlcnJvciAqLworI2RlZmluZQlFQVRDUl9FUlJUWVBSX1JEUFIJMHgyMDAwMDAwMAkvKiByZWFkIGRhdGEgcGFyaXR5IGVycm9yICovCisjZGVmaW5lCUVBVENSX0VSUlRZUFJfTUEJMHgzMDAwMDAwMAkvKiBtYXN0ZXIgYWJvcnQgKi8KKyNkZWZpbmUJRUFUQ1JfRVJSVFlQUl9UQQkweDQwMDAwMDAwCS8qIHRhcmdldCBhYm9ydCAqLworI2RlZmluZQlFQVRDUl9FUlJUWVBSX1NFCTB4NTAwMDAwMDAJLyogc3lzdGVtIGVycm9yIGluZGljYXRpb24gcmVjZWl2ZWQgKi8KKyNkZWZpbmUJRUFUQ1JfRVJSVFlQUl9QRUEJMHg2MDAwMDAwMAkvKiBwYXJpdHkgZXJyb3IgaW5kaWNhdGlvbiByZWNlaXZlZCBvbiBhIHJlYWQgKi8KKyNkZWZpbmUJRUFUQ1JfRVJSVFlQUl9QRVcJMHg3MDAwMDAwMAkvKiBwYXJpdHkgZXJyb3IgaW5kaWNhdGlvbiByZWNlaXZlZCBvbiBhIHdyaXRlICovCisjZGVmaW5lIEVBVENSX0JOX01BU0sJCTB4MGYwMDAwMDAJLyogYmVhdCBudW1iZXIgKi8KKyNkZWZpbmUJRUFUQ1JfQk5fMXN0CQkweDAwMDAwMDAwCisjZGVmaW5lCUVBVENSX0JOXzJlZAkJMHgwMTAwMDAwMAorI2RlZmluZQlFQVRDUl9CTl8zcmQJCTB4MDIwMDAwMDAKKyNkZWZpbmUJRUFUQ1JfQk5fNHRoCQkweDAzMDAwMDAwCisjZGVmaW5lCUVBVENSX0JOXzV0aAkJMHgwNDAwMDAwCisjZGVmaW5lCUVBVENSX0JOXzZ0aAkJMHgwNTAwMDAwMAorI2RlZmluZQlFQVRDUl9CTl83dGgJCTB4MDYwMDAwMDAKKyNkZWZpbmUJRUFUQ1JfQk5fOHRoCQkweDA3MDAwMDAwCisjZGVmaW5lCUVBVENSX0JOXzl0aAkJMHgwODAwMDAwMAorI2RlZmluZSBFQVRDUl9UU19NQVNLCQkweDAwMzAwMDAwCS8qIHRyYW5zYWN0aW9uIHNpemUgKi8KKyNkZWZpbmUJRUFUQ1JfVFNfNAkJMHgwMDAwMDAwMAorI2RlZmluZQlFQVRDUl9UU18xCQkweDAwMTAwMDAwCisjZGVmaW5lCUVBVENSX1RTXzIJCTB4MDAyMDAwMDAKKyNkZWZpbmUJRUFUQ1JfVFNfMwkJMHgwMDMwMDAwMAorI2RlZmluZQlFQVRDUl9FU19NQVNLCQkweDAwMGYwMDAwCS8qIGVycm9yIHNvdXJjZSAqLworI2RlZmluZQlFQVRDUl9FU19FTQkJMHgwMDAwMDAwMAkvKiBleHRlcm5hbCBtYXN0ZXIgKi8KKyNkZWZpbmUJRUFUQ1JfRVNfRE1BCQkweDAwMDUwMDAwCQorI2RlZmluZQlFQVRDUl9DTURfTUFTSwkJMHgwMDAwZjAwMAorI2RlZmluZQlFQVRDUl9IQkVfTUFTSwkJMHgwMDAwMGYwMAkvKiBQQ0kgaGlnaCBieXRlIGVuYWJsZSovCisjZGVmaW5lCUVBVENSX0JFX01BU0sJCTB4MDAwMDAwZjAJLyogUENJIGJ5dGUgZW5hYmxlICovCisjZGVmaW5lCUVBVENSX0hQQgkJMHgwMDAwMDAwNAkvKiBoaWdoIHBhcml0eSBiaXQgKi8KKyNkZWZpbmUJRUFUQ1JfUEIJCTB4MDAwMDAwMDIJLyogcGFyaXR5IGJpdCovCisjZGVmaW5lCUVBVENSX1ZJCQkweDAwMDAwMDAxCS8qIGVycm9yIGluZm9ybWF0aW9uIHZhbGlkICovCisJdTMyCWVhY3I7CisJdTMyCWVlYWNyOworCXUzMgllZGxjcjsKKwl1MzIJZWRoY3I7CisJdTMyCWdjcjsKKwl1MzIJZWNyOworCXUzMglnc3I7CisJdTgJcmVzMFsxMl07CisJdTMyCXBpdGFyMjsKKwl1OAlyZXMxWzRdOworCXUzMglwaWJhcjI7CisJdTMyCXBpZWJhcjI7CisJdTMyCXBpd2FyMjsKKwl1OAlyZXMyWzRdOworCXUzMglwaXRhcjE7CisJdTgJcmVzM1s0XTsKKwl1MzIJcGliYXIxOworCXUzMglwaWViYXIxOworCXUzMglwaXdhcjE7CisJdTgJcmVzNFs0XTsKKwl1MzIJcGl0YXIwOworCXU4CXJlczVbNF07CisJdTMyCXBpYmFyMDsKKwl1OAlyZXM2WzRdOworCXUzMglwaXdhcjA7CisJdTgJcmVzN1sxMzJdOworI2RlZmluZSBQSVRBUl9UQV9NQVNLCQkweDAwMGZmZmZmCisjZGVmaW5lIFBJQkFSX01BU0sJCTB4ZmZmZmZmZmYKKyNkZWZpbmUgUElFQkFSX0VCQV9NQVNLCQkweDAwMGZmZmZmCisjZGVmaW5lIFBJV0FSX0VOCQkweDgwMDAwMDAwCisjZGVmaW5lIFBJV0FSX1BGCQkweDIwMDAwMDAwCisjZGVmaW5lCVBJV0FSX1JUVF9NQVNLCQkweDAwMGYwMDAwCisjZGVmaW5lCVBJV0FSX1JUVF9OT19TTk9PUAkweDAwMDQwMDAwCisjZGVmaW5lIFBJV0FSX1JUVF9TTk9PUAkJMHgwMDA1MDAwMAorI2RlZmluZQlQSVdBUl9XVFRfTUFTSwkJMHgwMDAwZjAwMAorI2RlZmluZQlQSVdBUl9XVFRfTk9fU05PT1AJMHgwMDAwNDAwMAorI2RlZmluZSBQSVdBUl9XVFRfU05PT1AJCTB4MDAwMDUwMDAJCisjZGVmaW5lCVBJV0FSX0lXU19NQVNLCTB4MDAwMDAwM0YKKyNkZWZpbmUJUElXQVJfSVdTXzRLCTB4MDAwMDAwMEIKKyNkZWZpbmUJUElXQVJfSVdTXzhLCTB4MDAwMDAwMEMKKyNkZWZpbmUJUElXQVJfSVdTXzE2SwkweDAwMDAwMDBECisjZGVmaW5lCVBJV0FSX0lXU18zMksJMHgwMDAwMDAwRQorI2RlZmluZQlQSVdBUl9JV1NfNjRLCTB4MDAwMDAwMEYKKyNkZWZpbmUJUElXQVJfSVdTXzEyOEsJMHgwMDAwMDAxMAorI2RlZmluZQlQSVdBUl9JV1NfMjU2SwkweDAwMDAwMDExCisjZGVmaW5lCVBJV0FSX0lXU181MTJLCTB4MDAwMDAwMTIKKyNkZWZpbmUJUElXQVJfSVdTXzFNCTB4MDAwMDAwMTMKKyNkZWZpbmUJUElXQVJfSVdTXzJNCTB4MDAwMDAwMTQKKyNkZWZpbmUJUElXQVJfSVdTXzRNCTB4MDAwMDAwMTUKKyNkZWZpbmUJUElXQVJfSVdTXzhNCTB4MDAwMDAwMTYKKyNkZWZpbmUJUElXQVJfSVdTXzE2TQkweDAwMDAwMDE3CisjZGVmaW5lCVBJV0FSX0lXU18zMk0JMHgwMDAwMDAxOAorI2RlZmluZQlQSVdBUl9JV1NfNjRNCTB4MDAwMDAwMTkKKyNkZWZpbmUJUElXQVJfSVdTXzEyOE0JMHgwMDAwMDAxQQorI2RlZmluZQlQSVdBUl9JV1NfMjU2TQkweDAwMDAwMDFCCisjZGVmaW5lCVBJV0FSX0lXU181MTJNCTB4MDAwMDAwMUMKKyNkZWZpbmUJUElXQVJfSVdTXzFHCTB4MDAwMDAwMUQKKyNkZWZpbmUJUElXQVJfSVdTXzJHCTB4MDAwMDAwMUUKK30gcGNpY3RybDgzNDlfdDsKKworLyoKKyAqIFVTQiAKKyAqLwordHlwZWRlZiBzdHJ1Y3QgdXNiODM0OSB7CisJdTggZml4bWVbMHgyMDAwXTsKK30gdXNiODM0OV90OworCisvKgorICogVFNFQworICovCit0eXBlZGVmIHN0cnVjdCB0c2VjODM0OSB7CisJdTggZml4bWVbMHgxMDAwXTsKK30gdHNlYzgzNDlfdDsKKworLyoKKyAqIFNlY3VyaXR5CisgKi8KK3R5cGVkZWYgc3RydWN0IHNlY3VyaXR5ODM0OSB7CisJdTggZml4bWVbMHgxMDAwMF07Cit9IHNlY3VyaXR5ODM0OV90OworCit0eXBlZGVmIHN0cnVjdCBpbW1hcCB7CisJc3lzY29uZjgzNDlfdCBzeXNjb25mOyAvKiBTeXN0ZW0gY29uZmlndXJhdGlvbiAqLworCXdkdDgzNDlfdCAgICAgd2R0OyAgICAgLyogV2F0Y2ggRG9nIFRpbWVyIChXRFQpIFJlZ2lzdGVycyAqLworCXJ0Y2xrODM0OV90ICAgcnRjOyAgICAgLyogUmVhbCBUaW1lIENsb2NrIE1vZHVsZSBSZWdpc3RlcnMgKi8KKwlydGNsazgzNDlfdCAgIHBpdDsgICAgIC8qIFBlcmlvZGljIEludGVydmFsIFRpbWVyICovCisJZ3RtODM0OV90ICAgICBndG1bMl07ICAvKiBHbG9iYWwgVGltZXJzIE1vZHVsZSAqLworCWlwaWM4MzQ5X3QgICAgaXBpYzsgICAgLyogSW50ZWdyYXRlZCBQcm9ncmFtbWFibGUgSW50ZXJydXB0IENvbnRyb2xsZXIgKi8KKwlhcmJpdGVyODM0OV90IGFyYml0ZXI7IC8qIFN5c3RlbSBBcmJpdGVyIFJlZ2lzdGVycyAqLyAKKwlyZXNldDgzNDlfdCAgIHJlc2V0OyAgIC8qIFJlc2V0IE1vZHVsZSAqLworCWNsazgzNDlfdCAgICAgY2xrOyAgICAgLyogU3lzdGVtIENsb2NrIE1vZHVsZSAqLyAKKwlwbWM4MzQ5X3QgICAgIHBtYzsgICAgIC8qIFBvd2VyIE1hbmFnZW1lbnQgQ29udHJvbCBNb2R1bGUgKi8KKwlncGlvODM0OV90ICAgIHBnaW9bMl07IC8qIGdlbmVyYWwgcHVycG9zZSBJL08gbW9kdWxlICovCisJdTggcmVzMFsweDIwMF07CisJdTggRERMX0REUlsweDEwMF07CisJdTggRERMX0xCSVVbMHgxMDBdOworCXU4IHJlczFbMHhFMDBdOworCWRkcjgzNDlfdCAgICAgZGRyOyAgICAgLyogRERSIE1lbW9yeSBDb250cm9sbGVyIE1lbW9yeSAqLworCWkyY190ICAgICBpMmNbMl07ICAgICAgLyogSTJDMSBDb250cm9sbGVyICovCisJdTggcmVzMlsweDEzMDBdOworCWR1YXJ0ODM0OV90ICAgZHVhcnRbMl07LyogRFVBUlQgKi8KKwl1OCByZXMzWzB4OTAwXTsKKwlsYnVzODM0OV90ICAgIGxidXM7ICAgIC8qIExvY2FsIEJ1cyBDb250cm9sbGVyIFJlZ2lzdGVycyAqLworCXU4IHJlczRbMHgxMDAwXTsKKwlzcGk4MzQ5X3QgICAgIHNwaTsgICAgIC8qIFNlcmlhbCBQZXJpcGhlcmFsIEludGVyZmFjZSAqLworCXU4IHJlczVbMHhGMDBdOworCWRtYTgzNDlfdCAgICAgZG1hOyAgICAgLyogRE1BICovCisJcGNpY29uZjgzNDlfdCBwY2lfY29uZlsyXTsgIC8qIFBDSSBTb2Z0d2FyZSBDb25maWd1cmF0aW9uIFJlZ2lzdGVycyAqLworCWlvczgzNDlfdCAgICAgaW9zOyAgICAgLyogU2VxdWVuY2VyICovCisJcGNpY3RybDgzNDlfdCBwY2lfY3RybFsyXTsgIC8qIFBDSSBDb250cm9sbGVyIENvbnRyb2wgYW5kIFN0YXR1cyBSZWdpc3RlcnMgKi8KKwl1OCByZXM2WzB4MTk5MDBdOworCXVzYjgzNDlfdCAgICAgdXNiOworCXRzZWM4MzQ5X3QgICAgdHNlY1syXTsKKwl1OCByZXM3WzB4QTAwMF07CisJc2VjdXJpdHk4MzQ5X3Qgc2VjdXJpdHk7IAorfSBpbW1hcF90OworCisjZW5kaWYgLyogX19JTU1BUF84MzQ5X18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXBwYy9tcGM4MzQ5X3BjaS5oIGIvaW5jbHVkZS9hc20tcHBjL21wYzgzNDlfcGNpLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDgyNTVhMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXBwYy9tcGM4MzQ5X3BjaS5oCkBAIC0wLDAgKzEsMTY3IEBACisjaWZuZGVmIF9QUENfS0VSTkVMX01QQzgzNDlfUENJX0gKKyNkZWZpbmUgX1BQQ19LRVJORUxfTVBDODM0OV9QQ0lfSAorCisKKyNkZWZpbmUgTTgyNjVfUENJQlIwCTB4MTAxYWMKKyNkZWZpbmUgTTgyNjVfUENJQlIxCTB4MTAxYjAKKyNkZWZpbmUgTTgyNjVfUENJTVNLMAkweDEwMWM0CisjZGVmaW5lIE04MjY1X1BDSU1TSzEJMHgxMDFjOAorCisvKiBCaXQgZGVmaW5pdGlvbnMgZm9yIFBDSUJSIHJlZ2lzdGVycyAqLworCisjZGVmaW5lIFBDSUJSX0VOQUJMRSAgICAgICAgMHgwMDAwMDAwMQorCisvKiBCaXQgZGVmaW5pdGlvbnMgZm9yIFBDSU1TSyByZWdpc3RlcnMgKi8KKworI2RlZmluZSBQQ0lNU0tfMzJLQiAgICAgICAgIDB4RkZGRjgwMDAgIC8qIFNpemUgb2Ygd2luZG93LCBzbWFsbGVzdCAqLworI2RlZmluZSBQQ0lNU0tfNjRLQiAgICAgICAgIDB4RkZGRjAwMDAKKyNkZWZpbmUgUENJTVNLXzEyOEtCICAgICAgICAweEZGRkUwMDAwCisjZGVmaW5lIFBDSU1TS18yNTZLQiAgICAgICAgMHhGRkZDMDAwMAorI2RlZmluZSBQQ0lNU0tfNTEyS0IgICAgICAgIDB4RkZGODAwMDAKKyNkZWZpbmUgUENJTVNLXzFNQiAgICAgICAgICAweEZGRjAwMDAwCisjZGVmaW5lIFBDSU1TS18yTUIgICAgICAgICAgMHhGRkUwMDAwMAorI2RlZmluZSBQQ0lNU0tfNE1CICAgICAgICAgIDB4RkZDMDAwMDAKKyNkZWZpbmUgUENJTVNLXzhNQiAgICAgICAgICAweEZGODAwMDAwCisjZGVmaW5lIFBDSU1TS18xNk1CICAgICAgICAgMHhGRjAwMDAwMAorI2RlZmluZSBQQ0lNU0tfMzJNQiAgICAgICAgIDB4RkUwMDAwMDAKKyNkZWZpbmUgUENJTVNLXzY0TUIgICAgICAgICAweEZDMDAwMDAwCisjZGVmaW5lIFBDSU1TS18xMjhNQiAgICAgICAgMHhGODAwMDAwMAorI2RlZmluZSBQQ0lNU0tfMjU2TUIgICAgICAgIDB4RjAwMDAwMDAKKyNkZWZpbmUgUENJTVNLXzUxMk1CICAgICAgICAweEUwMDAwMDAwCisjZGVmaW5lIFBDSU1TS18xR0IgICAgICAgICAgMHhDMDAwMDAwMCAgLyogU2l6ZSBvZiB3aW5kb3csIGxhcmdlc3QgKi8KKworCisjZGVmaW5lIE04MjZYX1NDQ1JfUENJX01PREVfRU4gMHgxMDAKKworCisvKgorICogT3V0Ym91bmQgQVRVIHJlZ2lzdGVycyAoMyBzZXRzKS4gVGhlc2UgcmVnaXN0ZXJzIGNvbnRyb2wgaG93IDYweCBidXMKKyAqIChsb2NhbCkgYWRkcmVzc2VzIGFyZSB0cmFuc2xhdGVkIHRvIFBDSSBhZGRyZXNzZXMgd2hlbiB0aGUgTVBDODI2eCBpcworICogYSBQQ0kgYnVzIG1hc3RlciAoaW5pdGlhdG9yKS4KKyAqLworCisjZGVmaW5lIFBPVEFSX1JFRzAgICAgICAgICAgMHgxMDgwMCAgICAgLyogUENJIE91dGJvdW5kIFRyYW5zbGF0aW9uIEFkZHIgcmVnaXN0ZXJzICovCisjZGVmaW5lIFBPVEFSX1JFRzEgICAgICAgICAgMHgxMDgxOAorI2RlZmluZSBQT1RBUl9SRUcyICAgICAgICAgIDB4MTA4MzAKKworI2RlZmluZSBQT0JBUl9SRUcwICAgICAgICAgIDB4MTA4MDggICAgIC8qIFBDSSBPdXRib3VuZCBCYXNlIEFkZHIgcmVnaXN0ZXJzICovCisjZGVmaW5lIFBPQkFSX1JFRzEgICAgICAgICAgMHgxMDgyMAorI2RlZmluZSBQT0JBUl9SRUcyICAgICAgICAgIDB4MTA4MzgKKworI2RlZmluZSBQT0NNUl9SRUcwICAgICAgICAgIDB4MTA4MTAgICAgIC8qIFBDSSBPdXRib3VuZCBDb21wYXJpc29uIE1hc2sgcmVnaXN0ZXJzICovCisjZGVmaW5lIFBPQ01SX1JFRzEgICAgICAgICAgMHgxMDgyOAorI2RlZmluZSBQT0NNUl9SRUcyICAgICAgICAgIDB4MTA4NDAKKworLyogQml0IGRlZmluaXRpb25zIGZvciBQT01DUiByZWdpc3RlcnMgKi8KKworI2RlZmluZSBQT0NNUl9NQVNLXzRLQiAgICAgIDB4MDAwRkZGRkYKKyNkZWZpbmUgUE9DTVJfTUFTS184S0IgICAgICAweDAwMEZGRkZFCisjZGVmaW5lIFBPQ01SX01BU0tfMTZLQiAgICAgMHgwMDBGRkZGQworI2RlZmluZSBQT0NNUl9NQVNLXzMyS0IgICAgIDB4MDAwRkZGRjgKKyNkZWZpbmUgUE9DTVJfTUFTS182NEtCICAgICAweDAwMEZGRkYwCisjZGVmaW5lIFBPQ01SX01BU0tfMTI4S0IgICAgMHgwMDBGRkZFMAorI2RlZmluZSBQT0NNUl9NQVNLXzI1NktCICAgIDB4MDAwRkZGQzAKKyNkZWZpbmUgUE9DTVJfTUFTS181MTJLQiAgICAweDAwMEZGRjgwCisjZGVmaW5lIFBPQ01SX01BU0tfMU1CICAgICAgMHgwMDBGRkYwMAorI2RlZmluZSBQT0NNUl9NQVNLXzJNQiAgICAgIDB4MDAwRkZFMDAKKyNkZWZpbmUgUE9DTVJfTUFTS180TUIgICAgICAweDAwMEZGQzAwCisjZGVmaW5lIFBPQ01SX01BU0tfOE1CICAgICAgMHgwMDBGRjgwMAorI2RlZmluZSBQT0NNUl9NQVNLXzE2TUIgICAgIDB4MDAwRkYwMDAKKyNkZWZpbmUgUE9DTVJfTUFTS18zMk1CICAgICAweDAwMEZFMDAwCisjZGVmaW5lIFBPQ01SX01BU0tfNjRNQiAgICAgMHgwMDBGQzAwMAorI2RlZmluZSBQT0NNUl9NQVNLXzEyOE1CICAgIDB4MDAwRjgwMDAKKyNkZWZpbmUgUE9DTVJfTUFTS18yNTZNQiAgICAweDAwMEYwMDAwCisjZGVmaW5lIFBPQ01SX01BU0tfNTEyTUIgICAgMHgwMDBFMDAwMAorI2RlZmluZSBQT0NNUl9NQVNLXzFHQiAgICAgIDB4MDAwQzAwMDAKKworI2RlZmluZSBQT0NNUl9FTkFCTEUgICAgICAgIDB4ODAwMDAwMDAKKyNkZWZpbmUgUE9DTVJfUENJX0lPICAgICAgICAweDQwMDAwMDAwCisjZGVmaW5lIFBPQ01SX1BSRUZFVENIX0VOICAgMHgyMDAwMDAwMAorCisvKiBTb2Z0IFBDSSByZXNldCAqLworCisjZGVmaW5lIFBDSV9HQ1JfUkVHICAgICAgICAgMHgxMDg4MAorCisvKiBCaXQgZGVmaW5pdGlvbnMgZm9yIFBDSV9HQ1IgcmVnaXN0ZXJzICovCisKKyNkZWZpbmUgUENJR0NSX1BDSV9CVVNfRU4gICAweDEKKworLyoKKyAqIEluYm91bmQgQVRVIHJlZ2lzdGVycyAoMiBzZXRzKS4gVGhlc2UgcmVnaXN0ZXJzIGNvbnRyb2wgaG93IFBDSQorICogYWRkcmVzc2VzIGFyZSB0cmFuc2xhdGVkIHRvIDYweCBidXMgKGxvY2FsKSBhZGRyZXNzZXMgd2hlbiB0aGUKKyAqIE1QQzgyNnggaXMgYSBQQ0kgYnVzIHRhcmdldC4KKyAqLworCisjZGVmaW5lIFBJVEFSX1JFRzEgICAgICAgICAgMHgxMDhEMAorI2RlZmluZSBQSUJBUl9SRUcxICAgICAgICAgIDB4MTA4RDgKKyNkZWZpbmUgUElDTVJfUkVHMSAgICAgICAgICAweDEwOEUwCisjZGVmaW5lIFBJVEFSX1JFRzAgICAgICAgICAgMHgxMDhFOAorI2RlZmluZSBQSUJBUl9SRUcwICAgICAgICAgIDB4MTA4RjAKKyNkZWZpbmUgUElDTVJfUkVHMCAgICAgICAgICAweDEwOEY4CisKKy8qIEJpdCBkZWZpbml0aW9ucyBmb3IgUENJIEluYm91bmQgQ29tcGFyaXNvbiBNYXNrIHJlZ2lzdGVycyAqLworCisjZGVmaW5lIFBJQ01SX01BU0tfNEtCICAgICAgIDB4MDAwRkZGRkYKKyNkZWZpbmUgUElDTVJfTUFTS184S0IgICAgICAgMHgwMDBGRkZGRQorI2RlZmluZSBQSUNNUl9NQVNLXzE2S0IgICAgICAweDAwMEZGRkZDCisjZGVmaW5lIFBJQ01SX01BU0tfMzJLQiAgICAgIDB4MDAwRkZGRjgKKyNkZWZpbmUgUElDTVJfTUFTS182NEtCICAgICAgMHgwMDBGRkZGMAorI2RlZmluZSBQSUNNUl9NQVNLXzEyOEtCICAgICAweDAwMEZGRkUwCisjZGVmaW5lIFBJQ01SX01BU0tfMjU2S0IgICAgIDB4MDAwRkZGQzAKKyNkZWZpbmUgUElDTVJfTUFTS181MTJLQiAgICAgMHgwMDBGRkY4MAorI2RlZmluZSBQSUNNUl9NQVNLXzFNQiAgICAgICAweDAwMEZGRjAwCisjZGVmaW5lIFBJQ01SX01BU0tfMk1CICAgICAgIDB4MDAwRkZFMDAKKyNkZWZpbmUgUElDTVJfTUFTS180TUIgICAgICAgMHgwMDBGRkMwMAorI2RlZmluZSBQSUNNUl9NQVNLXzhNQiAgICAgICAweDAwMEZGODAwCisjZGVmaW5lIFBJQ01SX01BU0tfMTZNQiAgICAgIDB4MDAwRkYwMDAKKyNkZWZpbmUgUElDTVJfTUFTS18zMk1CICAgICAgMHgwMDBGRTAwMAorI2RlZmluZSBQSUNNUl9NQVNLXzY0TUIgICAgICAweDAwMEZDMDAwCisjZGVmaW5lIFBJQ01SX01BU0tfMTI4TUIgICAgIDB4MDAwRjgwMDAKKyNkZWZpbmUgUElDTVJfTUFTS18yNTZNQiAgICAgMHgwMDBGMDAwMAorI2RlZmluZSBQSUNNUl9NQVNLXzUxMk1CICAgICAweDAwMEUwMDAwCisjZGVmaW5lIFBJQ01SX01BU0tfMUdCICAgICAgIDB4MDAwQzAwMDAKKworI2RlZmluZSBQSUNNUl9FTkFCTEUgICAgICAgICAweDgwMDAwMDAwCisjZGVmaW5lIFBJQ01SX05PX1NOT09QX0VOICAgIDB4NDAwMDAwMDAKKyNkZWZpbmUgUElDTVJfUFJFRkVUQ0hfRU4gICAgMHgyMDAwMDAwMAorCisvKiBQQ0kgZXJyb3IgUmVnaXN0ZXJzICovCisKKyNkZWZpbmUJUENJX0VSUk9SX1NUQVRVU19SRUcJCTB4MTA4ODQKKyNkZWZpbmUJUENJX0VSUk9SX01BU0tfUkVHCQkweDEwODg4CisjZGVmaW5lCVBDSV9FUlJPUl9DT05UUk9MX1JFRwkJMHgxMDg4QworI2RlZmluZSBQQ0lfRVJST1JfQURSU19DQVBUVVJFX1JFRyAgICAgIDB4MTA4OTAKKyNkZWZpbmUgUENJX0VSUk9SX0RBVEFfQ0FQVFVSRV9SRUcgICAgICAweDEwODk4CisjZGVmaW5lIFBDSV9FUlJPUl9DVFJMX0NBUFRVUkVfUkVHICAgICAgMHgxMDhBMAorCisvKiBQQ0kgZXJyb3IgUmVnaXN0ZXIgYml0IGRlZmluZXMgKi8KKworI2RlZmluZQlQQ0lfRVJST1JfUENJX0FERFJfUEFSCQkJMHgwMDAwMDAwMQorI2RlZmluZQlQQ0lfRVJST1JfUENJX0RBVEFfUEFSX1dSCQkweDAwMDAwMDAyCisjZGVmaW5lCVBDSV9FUlJPUl9QQ0lfREFUQV9QQVJfUkQJCTB4MDAwMDAwMDQKKyNkZWZpbmUJUENJX0VSUk9SX1BDSV9OT19SU1AJCQkweDAwMDAwMDA4CisjZGVmaW5lCVBDSV9FUlJPUl9QQ0lfVEFSX0FCVAkJCTB4MDAwMDAwMTAKKyNkZWZpbmUJUENJX0VSUk9SX1BDSV9TRVJSCQkJMHgwMDAwMDAyMAorI2RlZmluZQlQQ0lfRVJST1JfUENJX1BFUlJfUkQJCQkweDAwMDAwMDQwCisjZGVmaW5lCVBDSV9FUlJPUl9QQ0lfUEVSUl9XUgkJCTB4MDAwMDAwODAKKyNkZWZpbmUJUENJX0VSUk9SX0kyT19PRlFPCQkJMHgwMDAwMDEwMAorI2RlZmluZQlQQ0lfRVJST1JfSTJPX0lQUU8JCQkweDAwMDAwMjAwCisjZGVmaW5lCVBDSV9FUlJPUl9JUkEJCQkJMHgwMDAwMDQwMAorI2RlZmluZQlQQ0lfRVJST1JfTk1JCQkJCTB4MDAwMDA4MDAKKyNkZWZpbmUJUENJX0VSUk9SX0kyT19EQk1DCQkJMHgwMDAwMTAwMAorCisvKgorICogUmVnaXN0ZXIgcGFpciB1c2VkIHRvIGdlbmVyYXRlIGNvbmZpZ3VyYXRpb24gY3ljbGVzIG9uIHRoZSBQQ0kgYnVzCisgKiBhbmQgYWNjZXNzIHRoZSBNUEM4MjZ4J3Mgb3duIFBDSSBjb25maWd1cmF0aW9uIHJlZ2lzdGVycy4KKyAqLworCisjZGVmaW5lIFBDSV9DRkdfQUREUl9SRUcgICAgIDB4MTA5MDAKKyNkZWZpbmUgUENJX0NGR19EQVRBX1JFRyAgICAgMHgxMDkwNAorCisvKiBCdXMgcGFya2luZyBkZWNpZGVzIHdoZXJlIHRoZSBidXMgY29udHJvbCBzaXRzIHdoZW4gaWRsZSAqLworLyogSWYgbW9kaWZ5aW5nIG1lbW9yeSBjb250cm9sbGVycyBmb3IgUENJIHBhcmsgb24gdGhlIGNvcmUgKi8KKworI2RlZmluZSBQUENfQUNSX0JVU19QQVJLX0NPUkUgMHg2CisjZGVmaW5lIFBQQ19BQ1JfQlVTX1BBUktfUENJICAweDMKKworI2VuZGlmIC8qIF9QUENfS0VSTkVMX004MjYwX1BDSV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1wcGMvcHJvY2Vzc29yLmggYi9pbmNsdWRlL2FzbS1wcGMvcHJvY2Vzc29yLmgKaW5kZXggMjA5NDlkYy4uZDQ0MDRjMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcHBjL3Byb2Nlc3Nvci5oCisrKyBiL2luY2x1ZGUvYXNtLXBwYy9wcm9jZXNzb3IuaApAQCAtMjAwLDYgKzIwMCwxMSBAQAogI2RlZmluZSBTUFJOX0hBU0gxCTB4M0QyCS8qIFByaW1hcnkgSGFzaCBBZGRyZXNzIFJlZ2lzdGVyICovCiAjZGVmaW5lIFNQUk5fSEFTSDIJMHgzRDMJLyogU2Vjb25kYXJ5IEhhc2ggQWRkcmVzcyBSZXNnaXN0ZXIgKi8KICNkZWZpbmUgU1BSTl9ISUQwCTB4M0YwCS8qIEhhcmR3YXJlIEltcGxlbWVudGF0aW9uIFJlZ2lzdGVyIDAgKi8KKworI2RlZmluZSBISUQwX0lDRV9TSElGVAkJMTUKKyNkZWZpbmUgSElEMF9EQ0VfU0hJRlQJCTE0CisjZGVmaW5lIEhJRDBfRExPQ0tfU0hJRlQJMTIKKwogI2RlZmluZSAgIEhJRDBfRU1DUAkoMTw8MzEpCQkvKiBFbmFibGUgTWFjaGluZSBDaGVjayBwaW4gKi8KICNkZWZpbmUgICBISUQwX0VCQQkoMTw8MjkpCQkvKiBFbmFibGUgQnVzIEFkZHJlc3MgUGFyaXR5ICovCiAjZGVmaW5lICAgSElEMF9FQkQJKDE8PDI4KQkJLyogRW5hYmxlIEJ1cyBEYXRhIFBhcml0eSAqLwpAQCAtMjExLDEwICsyMTYsMTAgQEAKICNkZWZpbmUgICBISUQwX05BUAkoMTw8MjIpCiAjZGVmaW5lICAgSElEMF9TTEVFUAkoMTw8MjEpCiAjZGVmaW5lICAgSElEMF9EUE0JKDE8PDIwKQotI2RlZmluZSAgIEhJRDBfSUNFCSgxPDwxNSkJCS8qIEluc3RydWN0aW9uIENhY2hlIEVuYWJsZSAqLwotI2RlZmluZSAgIEhJRDBfRENFCSgxPDwxNCkJCS8qIERhdGEgQ2FjaGUgRW5hYmxlICovCisjZGVmaW5lICAgSElEMF9JQ0UJKDE8PEhJRDBfSUNFX1NISUZUKQkvKiBJbnN0cnVjdGlvbiBDYWNoZSBFbmFibGUgKi8KKyNkZWZpbmUgICBISUQwX0RDRQkoMTw8SElEMF9EQ0VfU0hJRlQpCS8qIERhdGEgQ2FjaGUgRW5hYmxlICovCiAjZGVmaW5lICAgSElEMF9JTE9DSwkoMTw8MTMpCQkvKiBJbnN0cnVjdGlvbiBDYWNoZSBMb2NrICovCi0jZGVmaW5lICAgSElEMF9ETE9DSwkoMTw8MTIpCQkvKiBEYXRhIENhY2hlIExvY2sgKi8KKyNkZWZpbmUgICBISUQwX0RMT0NLCSgxPDxISUQwX0RMT0NLX1NISUZUKQkvKiBEYXRhIENhY2hlIExvY2sgKi8KICNkZWZpbmUgICBISUQwX0lDRkkJKDE8PDExKQkJLyogSW5zdHIuIENhY2hlIEZsYXNoIEludmFsaWRhdGUgKi8KICNkZWZpbmUgICBISUQwX0RDRkkJKDE8PDEwKQkJLyogRGF0YSBDYWNoZSBGbGFzaCBJbnZhbGlkYXRlICovCiAjZGVmaW5lICAgSElEMF9EQ0kJSElEMF9EQ0ZJCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1wcGMvdS1ib290LmggYi9pbmNsdWRlL2FzbS1wcGMvdS1ib290LmgKaW5kZXggNWRhMGU2OC4uZTgyMWU5MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcHBjL3UtYm9vdC5oCisrKyBiL2luY2x1ZGUvYXNtLXBwYy91LWJvb3QuaApAQCAtNDUsNiArNDUsOSBAQAogI2lmIGRlZmluZWQoQ09ORklHX01QQzV4eHgpCiAJdW5zaWduZWQgbG9uZwliaV9tYmFyX2Jhc2U7CS8qIGJhc2Ugb2YgaW50ZXJuYWwgcmVnaXN0ZXJzICovCiAjZW5kaWYKKyNpZiBkZWZpbmVkKENPTkZJR19NUEM4M1hYKQorCXVuc2lnbmVkIGxvbmcJYmlfaW1tcmJhcjsKKyNlbmRpZgogI2lmIGRlZmluZWQoQ09ORklHX01QQzgyMjApCiAJdW5zaWduZWQgbG9uZwliaV9tYmFyX2Jhc2U7CS8qIGJhc2Ugb2YgaW50ZXJuYWwgcmVnaXN0ZXJzICovCiAJdW5zaWduZWQgbG9uZyAgIGJpX2lucGZyZXE7ICAgICAvKiBJbnB1dCBGcmVxLCBJbiBNSHogKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29tbW9uLmggYi9pbmNsdWRlL2NvbW1vbi5oCmluZGV4IDYyNWMzODkuLmVmYzYzOGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29tbW9uLmgKKysrIGIvaW5jbHVkZS9jb21tb24uaApAQCAtODMsNiArODMsMTAgQEAKICNpbmNsdWRlIDxtcGM4NXh4Lmg+CiAjaW5jbHVkZSA8YXNtL2ltbWFwXzg1eHguaD4KICNlbmRpZgorI2lmZGVmIENPTkZJR19NUEM4M1hYCisjaW5jbHVkZSA8bXBjODN4eC5oPgorI2luY2x1ZGUgPGFzbS9pbW1hcF84M3h4Lmg+CisjZW5kaWYKICNpZmRlZglDT05GSUdfNHh4CiAjaW5jbHVkZSA8cHBjNHh4Lmg+CiAjZW5kaWYKQEAgLTQwOSw4ICs0MTMsOSBAQAogaW50CWFkanVzdF9zZHJhbV90YnNfOHh4ICh2b2lkKTsKICNpZiBkZWZpbmVkKENPTkZJR184MjYwKQogaW50CXBydF84MjYwX2Nsa3MgKHZvaWQpOwotI2VuZGlmCi0jaWYgZGVmaW5lZChDT05GSUdfTVBDNXh4eCkKKyNlbGlmIGRlZmluZWQoQ09ORklHX01QQzgzWFgpCitpbnQgcHJpbnRfY2xvY2tfY29uZih2b2lkKTsKKyNlbGlmIGRlZmluZWQoQ09ORklHX01QQzV4eHgpCiBpbnQJcHJ0X21wYzV4eHhfY2xrcyAodm9pZCk7CiAjZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJR19NUEM4MjIwKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzgzNDlBRFMuaCBiL2luY2x1ZGUvY29uZmlncy9NUEM4MzQ5QURTLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGY0YTk5YgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvY29uZmlncy9NUEM4MzQ5QURTLmgKQEAgLTAsMCArMSw2MDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNCBGcmVlc2NhbGUgU2VtaWNvbmR1Y3Rvci4KKyAqCisgKiBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcworICogcHJvamVjdC4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKKyAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4JIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAorICogTUEgMDIxMTEtMTMwNyBVU0EKKyAqLworCisvKgorICogbXBjODM0OWFkcyBib2FyZCBjb25maWd1cmF0aW9uIGZpbGUKKyAqCisgKiBQbGVhc2UgcmVmZXIgdG8gZG9jL1JFQURNRS5tcGM4M3h4YWRzIGZvciBtb3JlIGluZm8uCisgKi8KKworI2lmbmRlZiBfX0NPTkZJR19ICisjZGVmaW5lIF9fQ09ORklHX0gKKworI3VuZGVmIERFQlVHCisKKyNkZWZpbmUgQ09ORklHX01JSQorCisvKgorICogSGlnaCBMZXZlbCBDb25maWd1cmF0aW9uIE9wdGlvbnMKKyAqLworI2RlZmluZSBDT05GSUdfRTMwMAkJMQkvKiBFMzAwIEZhbWlseSAqLworI2RlZmluZSBDT05GSUdfTVBDODNYWAkJMQkvKiBNUEM4M1hYIGZhbWlseSAqLworI2RlZmluZSBDT05GSUdfTVBDODM0OQkJMQkvKiBNUEM4MzQ5IHNwZWNpZmljICovCisjZGVmaW5lIENPTkZJR19NUEM4MzQ5QURTCTEJLyogTVBDODM0OUFEUyBib2FyZCBzcGVjaWZpYyAqLworCisjZGVmaW5lIENPTkZJR19QQ0kKKworI2RlZmluZSBDT05GSUdfVFNFQ19FTkVUIAkJLyogdHNlYyBldGhlcm5ldCBzdXBwb3J0ICovCisjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCisKKyNkZWZpbmUgQ09ORklHX1NQRF9FRVBST00JCS8qIFVzZSBTUEQgRUVQUk9NIGZvciBERFIgc2V0dXAqLworCisjdW5kZWYgQ09ORklHX0REUl9FQ0MJCQkvKiBvbmx5IGZvciBFQ0MgRERSIG1vZHVsZSAqLworCisjZGVmaW5lIFBDSV82Nk0KKyNpZmRlZiBQQ0lfNjZNCisjZGVmaW5lIENPTkZJR184M1hYX0NMS0lOCTY2MDAwMDAwCS8qIGluIEh6ICovCisjZWxzZQorI2RlZmluZSBDT05GSUdfODNYWF9DTEtJTgkzMzAwMDAwMAkvKiBpbiBIeiAqLworI2VuZGlmCisKKyNpZm5kZWYgQ09ORklHX1NZU19DTEtfRlJFUQorI2lmZGVmIFBDSV82Nk0KKyNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQk2NjAwMDAwMAorI2Vsc2UKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkzMzAwMDAwMAorI2VuZGlmCisjZW5kaWYKKworI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GCS8qIGNhbGwgYm9hcmRfcHJlX2luaXQgKi8KKworI2RlZmluZSBDRkdfSU1NUkJBUgkJMHhFMDAwMDAwMAorCisjdW5kZWYgQ0ZHX0RSQU1fVEVTVCAgICAgICAgICAgICAgICAgICAvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZSAqLworI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVCAgICAgICAweDAwMDAwMDAwICAgICAgLyogbWVtdGVzdCByZWdpb24gKi8KKyNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5EICAgICAgICAgMHgwMDEwMDAwMAorCisKKworLyoKKyAqIEREUiBTZXR1cAorICovCisKKyNkZWZpbmUgQ0ZHX0REUl9CQVNFCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLworI2RlZmluZSBDRkdfU0RSQU1fQkFTRSBDRkdfRERSX0JBU0UKKyN1bmRlZiAgQ09ORklHX0REUl8yVF9USU1JTkcKKyNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFIENGR19ERFJfQkFTRQorCisjaWYgZGVmaW5lZChDT05GSUdfU1BEX0VFUFJPTSkKKyAgICAvKgorICAgICAqIERldGVybWluZSBERFIgY29uZmlndXJhdGlvbiBmcm9tIEkyQyBpbnRlcmZhY2UuCisgICAgICovCisgICAgI2RlZmluZSBTUERfRUVQUk9NX0FERFJFU1MJMHg1MQkJLyogRERSIERJTU0gKi8KKworI2Vsc2UKKyAgICAvKgorICAgICAqIE1hbnVhbGx5IHNldCB1cCBERFIgcGFyYW1ldGVycworICAgICAqLworICAgICNkZWZpbmUgQ0ZHX0REUl9TSVpFCSAgICAyNTYJCS8qIE1iICovCisgICAgI2RlZmluZSBDRkdfRERSX0NPTkZJRwkoQ1NDT05GSUdfRU4gfCBDU0NPTkZJR19ST1dfQklUXzEzIHwgQ1NDT05GSUdfQ09MX0JJVF85KQorICAgICNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMQkweDM3MzQ0MzIxCisgICAgI2RlZmluZSBDRkdfRERSX1RJTUlOR18yCTB4MDAwMDA4MDAgIC8qIFA5LTQ1LG1heSBuZWVkIHR1bmluZyAqLworICAgICNkZWZpbmUgQ0ZHX0REUl9DT05UUk9MIAkweGMyMDAwMDAwICAvKiB1bmJ1ZmZlcmVkLG5vIERZTl9QV1IgKi8KKyAgICAjZGVmaW5lIENGR19ERFJfTU9ERSAgICAJMHgwMDAwMDA2MiAgLyogRExMLG5vcm1hbCxzZXEsNC8yLjUgKi8KKyAgICAjZGVmaW5lIENGR19ERFJfSU5URVJWQUwJMHgwNTIwMDEwMCAgLyogYXV0b2NoYXJnZSxubyBvcGVuIHBhZ2UgKi8KKyNlbmRpZgorCisKKy8qCisgKiBTRFJBTSBvbiB0aGUgTG9jYWwgQnVzCisgKi8KKyNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KKyNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9TSVpFCTY0CQkvKiBMQkMgU0RSQU0gaXMgNjRNQiAqLworCisvKgorICogRkxBU0ggb24gdGhlIExvY2FsIEJ1cworICovCisjZGVmaW5lIENGR19GTEFTSF9DRkkJCQkvKiB1c2UgdGhlIENvbW1vbiBGbGFzaCBJbnRlcmZhY2UgKi8KKyNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9EUklWRVIJCQkvKiB1c2UgdGhlIENGSSBkcml2ZXIgKi8KKyNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggICAqLworI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJOAkJLyogRkxBU0ggc2l6ZSBpbiBNQiAqLworLyogI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAqLworCisjZGVmaW5lIENGR19CUjBfUFJFTElNCShDRkdfRkxBU0hfQkFTRSB8CS8qIEZsYXNoIEJhc2UgYWRkcmVzcyAqLyBcCisJCQkoMiA8PCBCUl9QU19TSElGVCkgfAkvKiAzMiBiaXQgcG9ydCBzaXplICovCSBcCisJCQlCUl9WKQkJCS8qIHZhbGlkICovCisjZGVmaW5lIENGR19PUjBfUFJFTElNCQkweGZmODA2ZmY3CS8qIDE2TWIgRmxhc2ggc2l6ZSovCisjZGVmaW5lIENGR19MQkxBV0JBUjBfUFJFTElNIENGR19GTEFTSF9CQVNFCS8qIFdpbmRvdyBiYXNlIGF0IGZsYXNoIGJhc2UgKi8KKyNkZWZpbmUgQ0ZHX0xCTEFXQVIwX1BSRUxJTSAgMHg4MDAwMDAxNgkJLyogMTZNYiB3aW5kb3cgc2l6ZSAqLworCisKKyNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KKyNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKworI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLworCisjZGVmaW5lIENGR19NSURfRkxBU0hfSlVNUCAgICAgIDB4N0YwMDAwMDAKKyNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICAJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KKworCisjaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNlbHNlCisjdW5kZWYgIENGR19SQU1CT09UCisjZW5kaWYKKworLyoKKyAqIEJDU1IgcmVnaXN0ZXIgb24gbG9jYWwgYnVzIDMyS0IsIDgtYml0IHdpZGUgZm9yIEFEUyBjb25maWcgcmVnCisgKi8KKyNkZWZpbmUgQ0ZHX0JDU1IgICAgICAgICAgICAgMHhGODAwMDAwMAorI2RlZmluZSBDRkdfTEJMQVdCQVIxX1BSRUxJTSBDRkdfQkNTUgkvKiBBY2Nlc3Mgd2luZG93IGJhc2UgYXQgQkNTUiBiYXNlICovCisjZGVmaW5lIENGR19MQkxBV0FSMV9QUkVMSU0gIDB4ODAwMDAwMEUJCS8qIEFjY2VzcyB3aW5kb3cgc2l6ZSAzMksgKi8KKyNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JICAoQ0ZHX0JDU1J8MHgwMDAwMDgwMSkJLyogUG9ydC1zaXplPThiaXQsIE1TRUw9R1BDTSAqLworI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkJMHhGRkZGRThmMAkvKiBsZW5ndGggMzJLICovCisKKworI2RlZmluZSBDT05GSUdfTDFfSU5JVF9SQU0KKyNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sgCTEKKyNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHhlNDAxMDAwMCAgIC8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORCAgICAJMHgxMDAwCSAgICAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0qLworCisjZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAJMHgxMDAgICAgIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorCisjZGVmaW5lIENGR19NT05JVE9SX0xFTgkgICAgCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCisjZGVmaW5lIENGR19NQUxMT0NfTEVOCSAgICAJKDEyOCAqIDEwMjQpIC8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KKworLyoKKyAqIExvY2FsIEJ1cyBMQ1JSIGFuZCBMQkNSIHJlZ3MKKyAqICAgIExDUlI6ICBETEwgYnlwYXNzLCBDbG9jayBkaXZpZGVyIGlzIDQKKyAqIEV4dGVybmFsIExvY2FsIEJ1cyByYXRlIGlzCisgKiAgICBDTEtJTiAqIEhSQ1dMX0NTQl9UT19DTEtJTiAvIEhSQ1dMX0xDTF9CVVNfVE9fU0NCX0NMSyAvIExDUlJfQ0xLRElWCisgKi8KKyNkZWZpbmUgQ0ZHX0xDUlIJKExDUlJfREJZUCB8IExDUlJfQ0xLRElWXzQpCisjZGVmaW5lIENGR19MQkNfTEJDUgkweDAwMDAwMDAwCisKKyNkZWZpbmUgQ0ZHX0xCX1NEUkFNCS8qIGlmIGJvYXJkIGhhcyBTUkRBTSBvbiBsb2NhbCBidXMgKi8KKworI2lmZGVmIENGR19MQl9TRFJBTQorLypsb2NhbCBidXMgQlIyLCBPUjIgZGVmaW5pdGlvbiBmb3IgU0RSQU0gaWYgc29sZGVyZWQgb24gdGhlIEFEUyBib2FyZCovCisvKgorICogQmFzZSBSZWdpc3RlciAyIGFuZCBPcHRpb24gUmVnaXN0ZXIgMiBjb25maWd1cmUgU0RSQU0uCisgKiBUaGUgU0RSQU0gYmFzZSBhZGRyZXNzLCBDRkdfTEJDX1NEUkFNX0JBU0UsIGlzIDB4ZjAwMDAwMDAuCisgKgorICogRm9yIEJSMiwgbmVlZDoKKyAqICAgIEJhc2UgYWRkcmVzcyBvZiAweGYwMDAwMDAwID0gQlJbMDoxNl0gPSAxMTExIDAwMDAgMDAwMCAwMDAwIDAKKyAqICAgIHBvcnQtc2l6ZSA9IDMyLWJpdHMgPSBCUjJbMTk6MjBdID0gMTEKKyAqICAgIG5vIHBhcml0eSBjaGVja2luZyA9IEJSMlsyMToyMl0gPSAwMAorICogICAgU0RSQU0gZm9yIE1TRUwgPSBCUjJbMjQ6MjZdID0gMDExCisgKiAgICBWYWxpZCA9IEJSWzMxXSA9IDEKKyAqCisgKiAwICAgIDQgICAgOCAgICAxMiAgIDE2ICAgMjAgICAyNCAgIDI4CisgKiAxMTExIDAwMDAgMDAwMCAwMDAwIDAwMDEgMTAwMCAwMTEwIDAwMDEgPSBmMDAwMTg2MQorICoKKyAqIEZJWE1FOiBDRkdfTEJDX1NEUkFNX0JBU0Ugc2hvdWxkIGJlIG1hc2tlZCBhbmQgT1InZWQgaW50bworICogRklYTUU6IHRoZSB0b3AgMTcgYml0cyBvZiBCUjIuCisgKi8KKworI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJMHhmMDAwMTg2MSAvKlBvcnQtc2l6ZT0zMmJpdCwgTVNFTD1TRFJBTSovCisKKyNkZWZpbmUgQ0ZHX0xCTEFXQkFSMl9QUkVMSU0gMHhGMDAwMDAwMAorCisjZGVmaW5lIENGR19MQkxBV0FSMl9QUkVMSU0gMHg4MDAwMDAxOSAvKjY0TSovCisKKworLyoKKyAqIFRoZSBTRFJBTSBzaXplIGluIE1CLCBDRkdfTEJDX1NEUkFNX1NJWkUsIGlzIDY0LgorICoKKyAqIEZvciBPUjIsIG5lZWQ6CisgKiAgICA2NE1CIG1hc2sgZm9yIEFNLCBPUjJbMDo3XSA9IDExMTEgMTEwMAorICoJCSAgIFhBTSwgT1IyWzE3OjE4XSA9IDExCisgKiAgICA5IGNvbHVtbnMgT1IyWzE5LTIxXSA9IDAxMAorICogICAgMTMgcm93cyAgIE9SMlsyMy0yNV0gPSAxMDAKKyAqICAgIEVBRCBzZXQgZm9yIGV4dHJhIHRpbWUgT1JbMzFdID0gMQorICoKKyAqIDAgICAgNCAgICA4ICAgIDEyICAgMTYgICAyMCAgIDI0ICAgMjgKKyAqIDExMTEgMTEwMCAwMDAwIDAwMDAgMDExMCAxMDAxIDAwMDAgMDAwMSA9IGZjMDA2OTAxCisgKi8KKworI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkweGZjMDA2OTAxCisKKyNkZWZpbmUgQ0ZHX0xCQ19MU1JUCTB4MzIwMDAwMDAgICAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciwgYWJvdXQgNnVzICovCisjZGVmaW5lIENGR19MQkNfTVJUUFIJMHgyMDAwMDAwMCAgICAvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwsIDI2Nk1Iei8zMiovCisKKy8qCisgKiBMU0RNUiBtYXNrcworICovCisjZGVmaW5lIENGR19MQkNfTFNETVJfUkZFTgkoMSA8PCAoMzEgLSAgMSkpCisjZGVmaW5lIENGR19MQkNfTFNETVJfQlNNQTE1MTYJKDMgPDwgKDMxIC0gMTApKQorI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JTTUExNjE3CSg0IDw8ICgzMSAtIDEwKSkKKyNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9SRkNSNQkoMyA8PCAoMzEgLSAxNikpCisjZGVmaW5lIENGR19MQkNfTFNETVJfUkZDUjgJKDUgPDwgKDMxIC0gMTYpKQorI2RlZmluZSBDRkdfTEJDX0xTRE1SX1JGQ1IxNgkoNyA8PCAoMzEgLSAxNikpCisjZGVmaW5lIENGR19MQkNfTFNETVJfUFJFVE9BQ1QzCSgzIDw8ICgzMSAtIDE5KSkKKyNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9QUkVUT0FDVDYJKDUgPDwgKDMxIC0gMTkpKQorI2RlZmluZSBDRkdfTEJDX0xTRE1SX1BSRVRPQUNUNwkoNyA8PCAoMzEgLSAxOSkpCisjZGVmaW5lIENGR19MQkNfTFNETVJfQUNUVE9SVzMJKDMgPDwgKDMxIC0gMjIpKQorI2RlZmluZSBDRkdfTEJDX0xTRE1SX0FDVFRPUlc3CSg3IDw8ICgzMSAtIDIyKSkKKyNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXNgkoNiA8PCAoMzEgLSAyMikpCisjZGVmaW5lIENGR19MQkNfTFNETVJfQkw4CSgxIDw8ICgzMSAtIDIzKSkKKyNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9XUkMyCSgyIDw8ICgzMSAtIDI3KSkKKyNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9XUkMzCSgzIDw8ICgzMSAtIDI3KSkKKyNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9XUkM0CSgwIDw8ICgzMSAtIDI3KSkKKyNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CVUZDTUQJKDEgPDwgKDMxIC0gMjkpKQorI2RlZmluZSBDRkdfTEJDX0xTRE1SX0NMMwkoMyA8PCAoMzEgLSAzMSkpCisKKyNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9OT1JNQUwJKDAgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENGR19MQkNfTFNETVJfT1BfQVJGUlNICSgxIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1NSRlJTSAkoMiA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9NUlcJKDMgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUFJFQ0gJKDQgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUENIQUxMCSg1IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX0FDVEJOSwkoNiA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9SV0lOVgkoNyA8PCAoMzEgLSA0KSkKKworI2RlZmluZSBDRkdfTEJDX0xTRE1SX0NPTU1PTiAgICAoIENGR19MQkNfTFNETVJfUkZFTiAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDRkdfTEJDX0xTRE1SX0JTTUExNTE2CVwKKwkJCQl8IENGR19MQkNfTFNETVJfUkZDUjgJCVwKKwkJCQl8IENGR19MQkNfTFNETVJfUFJFVE9BQ1Q2CVwKKwkJCQl8IENGR19MQkNfTFNETVJfQUNUVE9SVzMJXAorCQkJCXwgQ0ZHX0xCQ19MU0RNUl9CTDgJCVwKKwkJCQl8IENGR19MQkNfTFNETVJfV1JDMwkJXAorCQkJCXwgQ0ZHX0xCQ19MU0RNUl9DTDMJCVwKKwkJCQkpCisKKworLyoKKyAqIFNEUkFNIENvbnRyb2xsZXIgY29uZmlndXJhdGlvbiBzZXF1ZW5jZS4KKyAqLworI2RlZmluZSBDRkdfTEJDX0xTRE1SXzEJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9QQ0hBTEwpCisjZGVmaW5lIENGR19MQkNfTFNETVJfMgkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSCkKKyNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8zCQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENGR19MQkNfTFNETVJfT1BfQVJGUlNIKQorI2RlZmluZSBDRkdfTEJDX0xTRE1SXzQJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9NUlcpCisjZGVmaW5lIENGR19MQkNfTFNETVJfNQkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDRkdfTEJDX0xTRE1SX09QX05PUk1BTCkKKworI2VuZGlmCisKKworCisKKworLyoKKyAqIFNlcmlhbCBQb3J0CisgKi8KKyNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVggICAgIDEKKyN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KKyNkZWZpbmUgQ0ZHX05TMTY1NTAKKyNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFICAgIDEKKyNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKworI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKwl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwxMTUyMDB9CisKKyNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMSAgICAgICAgKENGR19JTU1SQkFSKzB4NDUwMCkKKyNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMiAgICAgICAgKENGR19JTU1SQkFSKzB4NDYwMCkKKworLyogVXNlIHRoZSBIVVNIIHBhcnNlciAqLworI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKKyNpZmRlZiAgQ0ZHX0hVU0hfUEFSU0VSCisjZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2VuZGlmCisKKy8qIEkyQyAqLworI2RlZmluZSAgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0Ki8KKyN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkvKiBJMkMgYml0LWJhbmdlZCAqLworI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUyAgICAgICAgezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENGR19JMkNfT0ZGU0VUICAgICAgMHgzMDAwCisjZGVmaW5lIENGR19JMkMyX09GRlNFVCAgICAgIDB4MzEwMAorCisvKiBUU0VDICovCisjZGVmaW5lIENGR19UU0VDMV9PRkZTRVQgMHgyNDAwMAorI2RlZmluZSBDRkdfVFNFQzEgKENGR19JTU1SQkFSK0NGR19UU0VDMV9PRkZTRVQpCisjZGVmaW5lIENGR19UU0VDMl9PRkZTRVQgMHgyNTAwMAorI2RlZmluZSBDRkdfVFNFQzIgKENGR19JTU1SQkFSK0NGR19UU0VDMl9PRkZTRVQpCisKKworLyogSU8gQ29uZmlndXJhdGlvbiAqLworI2RlZmluZSBDRkdfSU9fQ09ORiAoXAorCUlPX0NPTkZfVUFSVCB8XAorCUlPX0NPTkZfVFNFQzEgfFwKKwlJT19DT05GX0lSUTAgfFwKKwlJT19DT05GX0lSUTEgfFwKKwlJT19DT05GX0lSUTIgfFwKKwlJT19DT05GX0lSUTMgfFwKKwlJT19DT05GX0lSUTQgfFwKKwlJT19DT05GX0lSUTUgfFwKKwlJT19DT05GX0lSUTYgfFwKKwlJT19DT05GX0lSUTcgKQorCisvKgorICogR2VuZXJhbCBQQ0kKKyAqIEFkZHJlc3NlcyBhcmUgbWFwcGVkIDEtMS4KKyAqLworI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ0ZHX1BDSTFfSU9fUEhZUwkweGUyMDAwMDAwCisjZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJMHgxMDAwMDAwCS8qIDE2TSAqLworCisKKyNkZWZpbmUgQ0ZHX1BDSTJfTUVNX0JBU0UJMHhBMDAwMDAwMAorI2RlZmluZSBDRkdfUENJMl9NRU1fUEhZUwlDRkdfUENJMl9NRU1fQkFTRQorI2RlZmluZSBDRkdfUENJMl9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ0ZHX1BDSTJfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENGR19QQ0kyX0lPX1BIWVMJMHhlMzAwMDAwMAorI2RlZmluZSBDRkdfUENJMl9JT19TSVpFCTB4MTAwMDAwMAkvKiAxNk0gKi8KKyNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCisKKy8vI2RlZmluZSBQQ0lfNjRCSVQKKyNkZWZpbmUgUENJX0FMTF9QQ0kxCisvLyNkZWZpbmUgUENJX09ORV9QQ0kxCisvLyNkZWZpbmUgUENJX1RXT19QQ0kxCisjaWYgZGVmaW5lZChQQ0lfNjRCSVQpCisjdW5kZWYgUENJX0FMTF9QQ0kxCisjdW5kZWYgUENJX1RXT19QQ0kxCisjdW5kZWYgUENJX09ORV9QQ0kxCisjZW5kaWYKKworI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCisjZGVmaW5lIENPTkZJR19QQ0lfUE5QCSAgICAgICAgICAgICAgIAkvKiBkbyBwY2kgcGx1Zy1hbmQtcGxheSAqLworCisjdW5kZWYgQ09ORklHX0VFUFJPMTAwCisjdW5kZWYgQ09ORklHX1RVTElQCisKKyNpZiAhZGVmaW5lZChDT05GSUdfUENJX1BOUCkKKyAgICAjZGVmaW5lIFBDSV9FTkVUMF9JT0FERFIJMHhGSVhNRQorICAgICNkZWZpbmUgUENJX0VORVQwX01FTUFERFIJMHhGSVhNRQorICAgICNkZWZpbmUgUENJX0lEU0VMX05VTUJFUgkweDBjIAkvKiBzbG90MC0+MyhJRFNFTCk9MTItPjE1ICovCisjZW5kaWYKKworI3VuZGVmIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgKi8KKyNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDU3ICAvKiBNb3Rvcm9sYSAqLworCisjZW5kaWYJLyogQ09ORklHX1BDSSAqLworCisKKyNpZiBkZWZpbmVkKENPTkZJR19UU0VDX0VORVQpCisKKyNpZm5kZWYgQ09ORklHX05FVF9NVUxUSQorI2RlZmluZSBDT05GSUdfTkVUX01VTFRJIAkxCisjZW5kaWYKKworI2RlZmluZSBDT05GSUdfR01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQgKi8KKyNkZWZpbmUgQ09ORklHX01QQzgzWFhfVFNFQzEJMQorI2RlZmluZSBDT05GSUdfTVBDODNYWF9UU0VDMV9OQU1FCSJUU0VDMCIKKyNkZWZpbmUgQ09ORklHX01QQzgzWFhfVFNFQzIJMQorI2RlZmluZSBDT05GSUdfTVBDODNYWF9UU0VDMl9OQU1FCSJUU0VDMSIKKyNkZWZpbmUgVFNFQzFfUEhZX0FERFIJCTAKKyNkZWZpbmUgVFNFQzJfUEhZX0FERFIJCTEKKyNkZWZpbmUgVFNFQzFfUEhZSURYCQkwCisjZGVmaW5lIFRTRUMyX1BIWUlEWAkJMAorCisvKiBPcHRpb25zIGFyZTogVFNFQ1swLTFdICovCisjZGVmaW5lIENPTkZJR19FVEhQUklNRQkJIlRTRUMwIgorCisjZW5kaWYJLyogQ09ORklHX1RTRUNfRU5FVCAqLworCisKKy8qCisgKiBFbnZpcm9ubWVudAorICovCisjaWZuZGVmIENGR19SQU1CT09UCisgICNkZWZpbmUgQ0ZHX0VOVl9JU19JTl9GTEFTSAkxCisgICNkZWZpbmUgQ0ZHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIDB4NDAwMDApCisgICNkZWZpbmUgQ0ZHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAkvKiAyNTZLKG9uZSBzZWN0b3IpIGZvciBlbnYgKi8KKyAgI2RlZmluZSBDRkdfRU5WX1NJWkUJCTB4MjAwMAorI2Vsc2UKKyAgI2RlZmluZSBDRkdfTk9fRkxBU0gJCTEJLyogRmxhc2ggaXMgbm90IHVzYWJsZSBub3cgKi8KKyAgI2RlZmluZSBDRkdfRU5WX0lTX05PV0hFUkUJMQkvKiBTdG9yZSBFTlYgaW4gbWVtb3J5IG9ubHkgKi8KKyAgI2RlZmluZSBDRkdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQorICAjZGVmaW5lIENGR19FTlZfU0laRQkJMHgyMDAwCisjZW5kaWYKKworI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLworI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKworI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisgICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCisgICAgI2RlZmluZSAgQ09ORklHX0NPTU1BTkRTCSgoQ09ORklHX0NNRF9ERkwJXAorCQkJCSB8IENGR19DTURfUElORwkJXAorCQkJCSB8IENGR19DTURfUENJCQlcCisJCQkJIHwgQ0ZHX0NNRF9JMkMpCQlcCisJCQkJJgkJCVwKKwkJCQkgfihDRkdfQ01EX0VOVgkJXAorCQkJCSAgfCBDRkdfQ01EX0xPQURTKSkKKyAgI2Vsc2UKKyAgICAjZGVmaW5lICBDT05GSUdfQ09NTUFORFMJKChDT05GSUdfQ01EX0RGTAlcCisJCQkJIHwgQ0ZHX0NNRF9QSU5HCQlcCisJCQkJIHwgQ0ZHX0NNRF9JMkMpCQlcCisJCQkJJgkJCVwKKwkJCQkgfihDRkdfQ01EX0VOVgkJXAorCQkJCSAgfCBDRkdfQ01EX0xPQURTKSkKKyAgI2VuZGlmCisjZWxzZQorICAjaWYgZGVmaW5lZChDT05GSUdfUENJKQorICAgICNkZWZpbmUgIENPTkZJR19DT01NQU5EUwkoQ09ORklHX0NNRF9ERkwJCVwKKwkJCQl8IENGR19DTURfUENJCQlcCisJCQkJfCBDRkdfQ01EX1BJTkcJCVwKKwkJCQl8IENGR19DTURfSTJDKQorICAjZWxzZQorICAgICNkZWZpbmUgIENPTkZJR19DT01NQU5EUwkoQ09ORklHX0NNRF9ERkwJCVwKKwkJCQl8IENGR19DTURfUElORwkJXAorCQkJCXwgQ0ZHX0NNRF9JMkMgICAgICAgXAorCQkJCXwgQ0ZHX0NNRF9NSUkgICAgICAgXAorCQkJCSkKKyAgI2VuZGlmCisjZW5kaWYKKworI2luY2x1ZGUgPGNtZF9jb25mZGVmcy5oPgorCisjdW5kZWYgQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQgKi8KKworLyoKKyAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKKyAqLworI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisKKyNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9LR0RCKQorICAgICNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2Vsc2UKKyAgICAjZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2VuZGlmCisKKyNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCisKKy8qCisgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCisgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcworICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgorICovCisjZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLworCisvKiBDYWNoZSBDb25maWd1cmF0aW9uICovCisjZGVmaW5lIENGR19EQ0FDSEVfU0laRQkJMzI3NjgKKyNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCisjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfS0dEQikKKyNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUqLworI2VuZGlmCisKKyNkZWZpbmUgQ0ZHX1JDV0hfUENJSE9TVCAweDgwMDAwMDAwIC8qIFBDSUhPU1QgICovCisKKyNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisJSFJDV0xfTENMX0JVU19UT19TQ0JfQ0xLXzFYMSB8XAorCUhSQ1dMX0REUl9UT19TQ0JfQ0xLXzFYMSB8XAorCUhSQ1dMX0NTQl9UT19DTEtJTl80WDEgfFwKKwlIUkNXTF9WQ09fMVgyIHxcCisJSFJDV0xfQ09SRV9UT19DU0JfMlgxKQorCisjaWYgZGVmaW5lZChQQ0lfNjRCSVQpCisjZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKwlIUkNXSF9QQ0lfSE9TVCB8XAorCUhSQ1dIXzY0X0JJVF9QQ0kgfFwKKwlIUkNXSF9QQ0kxX0FSQklURVJfRU5BQkxFIHxcCisJSFJDV0hfUENJMl9BUkJJVEVSX0RJU0FCTEUgfFwKKwlIUkNXSF9DT1JFX0VOQUJMRSB8XAorCUhSQ1dIX0ZST01fMFgwMDAwMDEwMCB8XAorCUhSQ1dIX0JPT1RTRVFfRElTQUJMRSB8XAorCUhSQ1dIX1NXX1dBVENIRE9HX0RJU0FCTEUgfFwKKwlIUkNXSF9ST01fTE9DX0xPQ0FMXzE2QklUIHxcCisJSFJDV0hfVFNFQzFNX0lOX0dNSUkgfFwKKwlIUkNXSF9UU0VDMk1fSU5fR01JSSApCisjZWxzZQorI2RlZmluZSBDRkdfSFJDV19ISUdIIChcCisJSFJDV0hfUENJX0hPU1QgfFwKKwlIUkNXSF8zMl9CSVRfUENJIHxcCisJSFJDV0hfUENJMV9BUkJJVEVSX0VOQUJMRSB8XAorCUhSQ1dIX1BDSTJfQVJCSVRFUl9FTkFCTEUgfFwKKwlIUkNXSF9DT1JFX0VOQUJMRSB8XAorCUhSQ1dIX0ZST01fMFgwMDAwMDEwMCB8XAorCUhSQ1dIX0JPT1RTRVFfRElTQUJMRSB8XAorCUhSQ1dIX1NXX1dBVENIRE9HX0RJU0FCTEUgfFwKKwlIUkNXSF9ST01fTE9DX0xPQ0FMXzE2QklUIHxcCisJSFJDV0hfVFNFQzFNX0lOX0dNSUkgfFwKKwlIUkNXSF9UU0VDMk1fSU5fR01JSSApCisjZW5kaWYKKworCisjZGVmaW5lIENGR19ISUQwX0lOSVQgMHgwMDAwMDAwMDAKKworI2RlZmluZSBDRkdfSElEMF9GSU5BTCBDRkdfSElEMF9JTklUCisKKy8qICNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCShcCisJSElEMF9FTkFCTEVfSU5TVFJVQ1RJT05fQ0FDSEUgfFwKKwlISUQwX0VOQUJMRV9NX0JJVCB8XAorCUhJRDBfRU5BQkxFX0FERFJFU1NfQlJPQURDQVNUICkgKi8KKworI2RlZmluZSBDRkdfSElEMiAweDAwMDAwMDAwMAorCisvKgorICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKKyAqCisgKiBCb290IEZsYWdzCisgKi8KKyNkZWZpbmUgQk9PVEZMQUdfQ09MRAkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICovCisjZGVmaW5lIEJPT1RGTEFHX1dBUk0JMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QgKi8KKworI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0tHREIpCisjZGVmaW5lIENPTkZJR19LR0RCX0JBVURSQVRFCTIzMDQwMAkvKiBzcGVlZCBvZiBrZ2RiIHNlcmlhbCBwb3J0ICovCisjZGVmaW5lIENPTkZJR19LR0RCX1NFUl9JTkRFWAkyCS8qIHdoaWNoIHNlcmlhbCBwb3J0IHRvIHVzZSAqLworI2VuZGlmCisKKworLyoKKyAqIEVudmlyb25tZW50IENvbmZpZ3VyYXRpb24KKyAqLworCisjaWYgZGVmaW5lZChDT05GSUdfVFNFQ19FTkVUKQorI2RlZmluZSBDT05GSUdfRVRIQUREUiAgIDAwOjA0OjlmOjExOjIyOjMzCisjZGVmaW5lIENPTkZJR19IQVNfRVRIMQorI2RlZmluZSBDT05GSUdfRVRIMUFERFIgIDAwOkUwOjBDOjAwOjdEOjAxCisjZW5kaWYKKworI2RlZmluZSBDT05GSUdfSVBBRERSICAgIDEwLjE5My4yMC4xNTAKKworI2RlZmluZSBDT05GSUdfSE9TVE5BTUUJIHVua25vd24KKyNkZWZpbmUgQ09ORklHX1JPT1RQQVRICSAvdGZ0cGJvb3QvMTAuMTkzLjIwLjE1MAorI2RlZmluZSBDT05GSUdfQk9PVEZJTEUJIC90ZnRwYm9vdC92bWxpbnV4LjE1MAorCisjZGVmaW5lIENPTkZJR19TRVJWRVJJUCAgMTAuMTkzLjIwLjU4CisjZGVmaW5lIENPTkZJR19HQVRFV0FZSVAgMTkyLjE2OC4xLjEKKyNkZWZpbmUgQ09ORklHX05FVE1BU0sgICAyNTUuMjU1LjI1NS4wCisKKyNkZWZpbmUgQ09ORklHX0xPQURBRERSICAyMDAwMDAJLyogZGVmYXVsdCBsb2NhdGlvbiBmb3IgdGZ0cCBhbmQgYm9vdG0gKi8KKworI2RlZmluZSBDT05GSUdfQk9PVERFTEFZIDYJLyogLTEgZGlzYWJsZXMgYXV0by1ib290ICovCisjdW5kZWYgIENPTkZJR19CT09UQVJHUwkJLyogdGhlIGJvb3QgY29tbWFuZCB3aWxsIHNldCBib290YXJncyAqLworCisjZGVmaW5lIENPTkZJR19CQVVEUkFURQkgMTE1MjAwCisKKworI2RlZmluZQlDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTCQkgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAibmV0ZGV2PWV0aDBcMCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAiY29uc29sZWRldj10dHlTMFwwIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAicmFtZGlza2FkZHI9NDAwMDAwXDAiCQkJICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgInJhbWRpc2tmaWxlPXJhbWZzLjgzeHhcMCIJCQkJCQlcCisKKyNkZWZpbmUgQ09ORklHX05GU0JPT1RDT01NQU5ECSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAic2V0ZW52IGJvb3RhcmdzIHJvb3Q9L2Rldi9uZnMgcncgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAibmZzcm9vdD0kc2VydmVyaXA6JHJvb3RwYXRoICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAiaXA9JGlwYWRkcjokc2VydmVyaXA6JGdhdGV3YXlpcDokbmV0bWFzazokaG9zdG5hbWU6JG5ldGRldjpvZmYgIiAgICBcCisgICAiY29uc29sZT0kY29uc29sZWRldiwkYmF1ZHJhdGUgJG90aGJvb3RhcmdzOyIgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAidGZ0cCAkbG9hZGFkZHIgJGJvb3RmaWxlOyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAiYm9vdG0gJGxvYWRhZGRyIgorCisjZGVmaW5lIENPTkZJR19SQU1CT09UQ09NTUFORCBcCisgICAic2V0ZW52IGJvb3RhcmdzIHJvb3Q9L2Rldi9yYW0gcncgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAiY29uc29sZT0kY29uc29sZWRldiwkYmF1ZHJhdGUgJG90aGJvb3RhcmdzOyIgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAidGZ0cCAkcmFtZGlza2FkZHIgJHJhbWRpc2tmaWxlOyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAidGZ0cCAkbG9hZGFkZHIgJGJvb3RmaWxlOyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAiYm9vdG0gJGxvYWRhZGRyICRyYW1kaXNrYWRkciIKKworI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQgQ09ORklHX05GU0JPT1RDT01NQU5ECisKKyNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL21wYzgzeHguaCBiL2luY2x1ZGUvbXBjODN4eC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxNjFkZjgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL21wYzgzeHguaApAQCAtMCwwICsxLDI4OSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuCisgKgorICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKyAqIHByb2plY3QuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKKyAqIE1BIDAyMTExLTEzMDcgVVNBCisgKi8KKworLyoKKyAqIG1wYzgzeHguaAorICoKKyAqIE1QQzgzeHggc3BlY2lmaWMgZGVmaW5pdGlvbnMKKyAqLworCisjaWZuZGVmIF9fTVBDODNYWF9IX18KKyNkZWZpbmUgX19NUEM4M1hYX0hfXworCisjaWYgZGVmaW5lZChDT05GSUdfRTMwMCkKKyNpbmNsdWRlIDxhc20vZTMwMC5oPgorI2VuZGlmCisKKy8qCisgKiBNUEM4M3h4IGNwdSBwcm92aWRlIFJDUiByZWdpc3RlciB0byBkbyByZXNldCB0aGluZyBzcGVjaWFsbHkuIGVhc2llcgorICogdG8gaW1wbGVtZW50CisgKi8KKworI2RlZmluZSBNUEM4M3h4X1JFU0VUCisKKy8qCisgKiBTeXN0ZW0gcmVzZXQgb2Zmc2V0IChQb3dlclBDIHN0YW5kYXJkKQorICovCisjZGVmaW5lIEVYQ19PRkZfU1lTX1JFU0VUCTB4MDEwMAorCisvKgorICogRGVmYXVsdCBJbnRlcm5hbCBNZW1vcnkgUmVnaXN0ZXIgU3BhY2UgKEZyZWVzY2FsZSByZWNvbWFuZGF0aW9uKQorICovCisjZGVmaW5lIENPTkZJR19ERUZBVUxUX0lNTVIgMHhGRjQwMDAwMAorCisvKgorICogV2F0Y2hkb2cKKyAqLworI2RlZmluZSBTV0NSUiAgICAgIDB4MDIwNCAKKyNkZWZpbmUgU1dDUlJfU1dUQyAweEZGRkYwMDAwIC8qIFNvZnR3YXJlIFdhdGNoZG9nIFRpbWUgQ291bnQuICovCisjZGVmaW5lIFNXQ1JSX1NXRU4gMHgwMDAwMDAwNCAvKiBXYXRjaGRvZyBFbmFibGUgYml0LiAqLworI2RlZmluZSBTV0NSUl9TV1JJIDB4MDAwMDAwMDIgLyogU29mdHdhcmUgV2F0Y2hkb2cgUmVzZXQvSW50ZXJydXB0IFNlbGVjdCBiaXQuICovIAorI2RlZmluZSBTV0NSUl9TV1BSIDB4MDAwMDAwMDEgLyogU29mdHdhcmUgV2F0Y2hkb2cgQ291bnRlciBQcmVzY2FsZSBiaXQuICovCisjZGVmaW5lIFNXQ1JSX1JFUyAgfihTV0NSUl9TV1RDIHwgU1dDUlJfU1dFTiB8IFNXQ1JSX1NXUkkgfCBTV0NSUl9TV1BSKQorCisjZGVmaW5lIFNXQ05SICAgICAgMHgwMjA4CisjZGVmaW5lIFNXQ05SX1NXQ04gMHgwMDAwRkZGRiBTb2Z0d2FyZSBXYXRjaGRvZyBDb3VudCBGaWVsZC4KKyNkZWZpbmUgU1dDTlJfUkVTICB+KFNXQ05SX1NXQ04pCisKKyNkZWZpbmUgU1dTUlIgICAgICAweDAyMEUKKworLyoKKyAqIERlZmF1bHQgSW50ZXJuYWwgTWVtb3J5IFJlZ2lzdGVyIFNwYWNlIChGcmVlc2NhbGUgcmVjb21hbmRhdGlvbikKKyAqLworI2RlZmluZSBJTU1SQkFSIDB4MDAwMAorI2RlZmluZSBJTU1SQkFSX0JBU0VfQUREUiAgICAgMHhGRkYwMDAwMCAvKiBJZGVudGlmaWVzIHRoZSAxMiBtb3N0LXNpZ25pZmljYW50IGFkZHJlc3MgYml0cyBvZiB0aGUgYmFzZSBvZiB0aGUgMSBNQnl0ZSBpbnRlcm5hbCBtZW1vcnkgd2luZG93LiAqLworI2RlZmluZSBJTU1SQkFSX1JFUyAgICAgICAgICAgfihJTU1SQkFSX0JBU0VfQUREUikKKworLyoKKyAqIERlZmF1bHQgSW50ZXJuYWwgTWVtb3J5IFJlZ2lzdGVyIFNwYWNlIChGcmVlc2NhbGUgcmVjb21hbmRhdGlvbikKKyAqLworI2RlZmluZSBMQkxBV0JBUjAgMHgwMDIwCisjZGVmaW5lIExCTEFXQVIwICAweDAwMjQKKyNkZWZpbmUgTEJMQVdCQVIxIDB4MDAyOAorI2RlZmluZSBMQkxBV0FSMSAgMHgwMDJDCisjZGVmaW5lIExCTEFXQkFSMiAweDAwMzAKKyNkZWZpbmUgTEJMQVdBUjIgIDB4MDAzNAorI2RlZmluZSBMQkxBV0JBUjMgMHgwMDM4CisjZGVmaW5lIExCTEFXQVIzICAweDAwM0MKKworCisvKgorICogQmFzZSBSZWdpc3RlcnMgJiBPcHRpb24gUmVnaXN0ZXJzCisgKi8KKyNkZWZpbmUgQlIwIDB4NTAwMAorI2RlZmluZSBCUjEgMHg1MDA4CisjZGVmaW5lIEJSMiAweDUwMTAKKyNkZWZpbmUgQlIzIDB4NTAxOAorI2RlZmluZSBCUjQgMHg1MDIwCisjZGVmaW5lIEJSNSAweDUwMjgKKyNkZWZpbmUgQlI2IDB4NTAzMAorI2RlZmluZSBCUjcgMHg1MDM4CisKKyNkZWZpbmUgQlJfQkEgICAweEZGRkY4MDAwCisjZGVmaW5lIEJSX0JBX1NISUZUICAgICAxNQorI2RlZmluZSBCUl9QUyAgIDB4MDAwMDE4MDAKKyNkZWZpbmUgQlJfUFNfU0hJRlQgICAgIDExCisjZGVmaW5lIEJSX0RFQ0MgMHgwMDAwMDYwMAorI2RlZmluZSBCUl9ERUNDX1NISUZUICAgIDkKKyNkZWZpbmUgQlJfV1AgICAweDAwMDAwMTAwCisjZGVmaW5lIEJSX1dQX1NISUZUICAgICAgOAorI2RlZmluZSBCUl9NU0VMIDB4MDAwMDAwRTAKKyNkZWZpbmUgQlJfTVNFTF9TSElGVCAgICA1CisjZGVmaW5lIEJSX1YgICAgMHgwMDAwMDAwMQorI2RlZmluZSBCUl9WX1NISUZUICAgICAgIDAKKyNkZWZpbmUgQlJfUkVTICB+KEJSX0JBfEJSX1BTfEJSX0RFQ0N8QlJfV1B8QlJfTVNFTHxCUl9WKQorCisjZGVmaW5lIE9SMCAweDUwMDQKKyNkZWZpbmUgT1IxIDB4NTAwQworI2RlZmluZSBPUjIgMHg1MDE0CisjZGVmaW5lIE9SMyAweDUwMUMKKyNkZWZpbmUgT1I0IDB4NTAyNAorI2RlZmluZSBPUjUgMHg1MDJDCisjZGVmaW5lIE9SNiAweDUwMzQKKyNkZWZpbmUgT1I3IDB4NTAzQworCisjZGVmaW5lIE9SX0dQQ01fQU0gICAgMHhGRkZGODAwMAorI2RlZmluZSBPUl9HUENNX0FNX1NISUZUICAgICAgMTUKKyNkZWZpbmUgT1JfR1BDTV9CQ1RMRCAweDAwMDAxMDAwCisjZGVmaW5lIE9SX0dQQ01fQkNUTERfU0hJRlQgICAxMgorI2RlZmluZSBPUl9HUENNX0NTTlQgIDB4MDAwMDA4MDAKKyNkZWZpbmUgT1JfR1BDTV9DU05UX1NISUZUICAgIDExCisjZGVmaW5lIE9SX0dQQ01fQUNTICAgMHgwMDAwMDYwMAorI2RlZmluZSBPUl9HUENNX0FDU19TSElGVCAgICAgIDkKKyNkZWZpbmUgT1JfR1BDTV9YQUNTICAweDAwMDAwMTAwCisjZGVmaW5lIE9SX0dQQ01fWEFDU19TSElGVCAgICAgOAorI2RlZmluZSBPUl9HUENNX1NDWSAgIDB4MDAwMDAwRjAKKyNkZWZpbmUgT1JfR1BDTV9TQ1lfU0hJRlQgICAgICA0CisjZGVmaW5lIE9SX0dQQ01fU0VUQSAgMHgwMDAwMDAwOAorI2RlZmluZSBPUl9HUENNX1NFVEFfU0hJRlQgICAgIDMKKyNkZWZpbmUgT1JfR1BDTV9UUkxYICAweDAwMDAwMDA0CisjZGVmaW5lIE9SX0dQQ01fVFJMWF9TSElGVCAgICAgMgorI2RlZmluZSBPUl9HUENNX0VIVFIgIDB4MDAwMDAwMDIKKyNkZWZpbmUgT1JfR1BDTV9FSFRSX1NISUZUICAgICAxCisjZGVmaW5lIE9SX0dQQ01fRUFEICAgMHgwMDAwMDAwMQorI2RlZmluZSBPUl9HUENNX0VBRF9TSElGVCAgICAgIDAKKworI2RlZmluZSBPUl9VUE1fQU0gICAgMHhGRkZGODAwMAorI2RlZmluZSBPUl9VUE1fQU1fU0hJRlQgICAgICAxNQorI2RlZmluZSBPUl9VUE1fWEFNICAgMHgwMDAwNjAwMAorI2RlZmluZSBPUl9VUE1fWEFNX1NISUZUICAgICAxMworI2RlZmluZSBPUl9VUE1fQkNUTEQgMHgwMDAwMTAwMAorI2RlZmluZSBPUl9VUE1fQkNUTERfU0hJRlQgICAxMgorI2RlZmluZSBPUl9VUE1fQkkgICAgMHgwMDAwMDEwMAorI2RlZmluZSBPUl9VUE1fQklfU0hJRlQgICAgICAgOAorI2RlZmluZSBPUl9VUE1fVFJMWCAgMHgwMDAwMDAwNAorI2RlZmluZSBPUl9VUE1fVFJMWF9TSElGVCAgICAgMgorI2RlZmluZSBPUl9VUE1fRUhUUiAgMHgwMDAwMDAwMgorI2RlZmluZSBPUl9VUE1fRUhUUl9TSElGVCAgICAgMQorI2RlZmluZSBPUl9VUE1fRUFEICAgMHgwMDAwMDAwMQorI2RlZmluZSBPUl9VUE1fRUFEX1NISUZUICAgICAgMAorCisjZGVmaW5lIE9SX1NEUkFNX0FNICAgIDB4RkZGRjgwMDAKKyNkZWZpbmUgT1JfU0RSQU1fQU1fU0hJRlQgICAgICAxNQorI2RlZmluZSBPUl9TRFJBTV9YQU0gICAweDAwMDA2MDAwCisjZGVmaW5lIE9SX1NEUkFNX1hBTV9TSElGVCAgICAgMTMKKyNkZWZpbmUgT1JfU0RSQU1fQ09MUyAgMHgwMDAwMUMwMAorI2RlZmluZSBPUl9TRFJBTV9DT0xTX1NISUZUICAgIDEwCisjZGVmaW5lIE9SX1NEUkFNX1JPV1MgIDB4MDAwMDAxQzAKKyNkZWZpbmUgT1JfU0RSQU1fUk9XU19TSElGVCAgICAgNgorI2RlZmluZSBPUl9TRFJBTV9QTVNFTCAweDAwMDAwMDIwCisjZGVmaW5lIE9SX1NEUkFNX1BNU0VMX1NISUZUICAgIDUKKyNkZWZpbmUgT1JfU0RSQU1fRUFEICAgMHgwMDAwMDAwMQorI2RlZmluZSBPUl9TRFJBTV9FQURfU0hJRlQgICAgICAwCisKKy8qCisgKiBIYXJkIFJlc2V0IENvbmZpZ3JhdGlvbiBXb3JkIC0gSGlnaAorICovCQorI2RlZmluZSBIUkNXSF9QQ0lfQUdFTlQgICAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgSFJDV0hfUENJX0hPU1QgICAgICAgICAgICAgICAweDgwMDAwMDAwCisKKyNkZWZpbmUgSFJDV0hfMzJfQklUX1BDSSAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIEhSQ1dIXzY0X0JJVF9QQ0kgICAgICAgICAgICAgMHg0MDAwMDAwMAorCisjZGVmaW5lIEhSQ1dIX1BDSTFfQVJCSVRFUl9ESVNBQkxFICAgMHgwMDAwMDAwMAorI2RlZmluZSBIUkNXSF9QQ0kxX0FSQklURVJfRU5BQkxFICAgIDB4MjAwMDAwMDAKKworI2RlZmluZSBIUkNXSF9QQ0kyX0FSQklURVJfRElTQUJMRSAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgSFJDV0hfUENJMl9BUkJJVEVSX0VOQUJMRSAgICAweDEwMDAwMDAwCisKKyNkZWZpbmUgSFJDV0hfQ09SRV9ESVNBQkxFICAgICAgICAgICAweDA4MDAwMDAwCisjZGVmaW5lIEhSQ1dIX0NPUkVfRU5BQkxFICAgICAgICAgICAgMHgwMDAwMDAwMAorCisjZGVmaW5lIEhSQ1dIX0ZST01fMFgwMDAwMDEwMCAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBIUkNXSF9GUk9NXzBYRkZGMDAxMDAgICAgICAgIDB4MDQwMDAwMDAKKworI2RlZmluZSBIUkNXSF9CT09UU0VRX0RJU0FCTEUgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgSFJDV0hfQk9PVFNFUV9OT1JNQUwgICAgICAgICAweDAxMDAwMDAwCisjZGVmaW5lIEhSQ1dIX0JPT1RTRVFfRVhURU5ERUQgICAgICAgMHgwMjAwMDAwMAorCisjZGVmaW5lIEhSQ1dIX1NXX1dBVENIRE9HX0RJU0FCTEUgICAgMHgwMDAwMDAwMCAKKyNkZWZpbmUgSFJDV0hfU1dfV0FUQ0hET0dfRU5BQkxFICAgICAweDAwODAwMDAwIAorCisjZGVmaW5lIEhSQ1dIX1JPTV9MT0NfRERSX1NEUkFNICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBIUkNXSF9ST01fTE9DX1BDSTEgICAgICAgICAgIDB4MDAxMDAwMDAKKyNkZWZpbmUgSFJDV0hfUk9NX0xPQ19QQ0kyICAgICAgICAgICAweDAwMjAwMDAwCisjZGVmaW5lIEhSQ1dIX1JPTV9MT0NfTE9DQUxfOEJJVCAgICAgMHgwMDUwMDAwMAorI2RlZmluZSBIUkNXSF9ST01fTE9DX0xPQ0FMXzE2QklUICAgIDB4MDA2MDAwMDAKKyNkZWZpbmUgSFJDV0hfUk9NX0xPQ19MT0NBTF8zMkJJVCAgICAweDAwNzAwMDAwCisKKyNkZWZpbmUgSFJDV0hfVFNFQzFNX0lOX1JHTUlJICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIEhSQ1dIX1RTRUMxTV9JTl9SVEJJICAgICAgICAgMHgwMDAwNDAwMAorI2RlZmluZSBIUkNXSF9UU0VDMU1fSU5fR01JSSAgICAgICAgIDB4MDAwMDgwMDAKKyNkZWZpbmUgSFJDV0hfVFNFQzFNX0lOX1RCSSAgICAgICAgICAweDAwMDBDMDAwCisKKyNkZWZpbmUgSFJDV0hfVFNFQzJNX0lOX1JHTUlJICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIEhSQ1dIX1RTRUMyTV9JTl9SVEJJICAgICAgICAgMHgwMDAwMTAwMAorI2RlZmluZSBIUkNXSF9UU0VDMk1fSU5fR01JSSAgICAgICAgIDB4MDAwMDIwMDAKKyNkZWZpbmUgSFJDV0hfVFNFQzJNX0lOX1RCSSAgICAgICAgICAweDAwMDAzMDAwCisKKyNkZWZpbmUgSFJDV0hfQklHX0VORElBTiAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIEhSQ1dIX0xJVFRMRV9FTkRJQU4gICAgICAgICAgMHgwMDAwMDAwOAorCisvKgorICogSGFyZCBSZXNldCBDb25maWdyYXRpb24gV29yZCAtIExvdworICovCisjZGVmaW5lIEhSQ1dMX0xDTF9CVVNfVE9fU0NCX0NMS18xWDEgMHgwMDAwMDAwMAorI2RlZmluZSBIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEtfMlgxIDB4ODAwMDAwMDAKKworI2RlZmluZSBIUkNXTF9ERFJfVE9fU0NCX0NMS18xWDEgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgSFJDV0xfRERSX1RPX1NDQl9DTEtfMlgxICAgICAweDQwMDAwMDAwCisKKyNkZWZpbmUgSFJDV0xfQ1NCX1RPX0NMS0lOXzE2WDEgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIEhSQ1dMX0NTQl9UT19DTEtJTl8xWDEgICAgICAgMHgwMTAwMDAwMAorI2RlZmluZSBIUkNXTF9DU0JfVE9fQ0xLSU5fMlgxICAgICAgIDB4MDIwMDAwMDAKKyNkZWZpbmUgSFJDV0xfQ1NCX1RPX0NMS0lOXzNYMSAgICAgICAweDAzMDAwMDAwCisjZGVmaW5lIEhSQ1dMX0NTQl9UT19DTEtJTl80WDEgICAgICAgMHgwNDAwMDAwMAorI2RlZmluZSBIUkNXTF9DU0JfVE9fQ0xLSU5fNVgxICAgICAgIDB4MDUwMDAwMDAKKyNkZWZpbmUgSFJDV0xfQ1NCX1RPX0NMS0lOXzZYMSAgICAgICAweDA2MDAwMDAwCisjZGVmaW5lIEhSQ1dMX0NTQl9UT19DTEtJTl83WDEgICAgICAgMHgwNzAwMDAwMAorI2RlZmluZSBIUkNXTF9DU0JfVE9fQ0xLSU5fOFgxICAgICAgIDB4MDgwMDAwMDAKKyNkZWZpbmUgSFJDV0xfQ1NCX1RPX0NMS0lOXzlYMSAgICAgICAweDA5MDAwMDAwCisjZGVmaW5lIEhSQ1dMX0NTQl9UT19DTEtJTl8xMFgxICAgICAgMHgwQTAwMDAwMAorI2RlZmluZSBIUkNXTF9DU0JfVE9fQ0xLSU5fMTFYMSAgICAgIDB4MEIwMDAwMDAKKyNkZWZpbmUgSFJDV0xfQ1NCX1RPX0NMS0lOXzEyWDEgICAgICAweDBDMDAwMDAwCisjZGVmaW5lIEhSQ1dMX0NTQl9UT19DTEtJTl8xM1gxICAgICAgMHgwRDAwMDAwMAorI2RlZmluZSBIUkNXTF9DU0JfVE9fQ0xLSU5fMTRYMSAgICAgIDB4MEUwMDAwMDAKKyNkZWZpbmUgSFJDV0xfQ1NCX1RPX0NMS0lOXzE1WDEgICAgICAweDBGMDAwMDAwCisKKyNkZWZpbmUgSFJDV0xfVkNPX0JZUEFTUyAgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIEhSQ1dMX1ZDT18xWDIgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBIUkNXTF9WQ09fMVg0ICAgICAgICAgICAgICAgIDB4MDAyMDAwMDAKKyNkZWZpbmUgSFJDV0xfVkNPXzFYOCAgICAgICAgICAgICAgICAweDAwNDAwMDAwCisKKyNkZWZpbmUgSFJDV0xfQ09SRV9UT19DU0JfQllQQVNTICAgICAweDAwMDAwMDAwCisjZGVmaW5lIEhSQ1dMX0NPUkVfVE9fQ1NCXzFYMSAgICAgICAgMHgwMDAyMDAwMAorI2RlZmluZSBIUkNXTF9DT1JFX1RPX0NTQl8xXzVYMSAgICAgIDB4MDAwMzAwMDAKKyNkZWZpbmUgSFJDV0xfQ09SRV9UT19DU0JfMlgxICAgICAgICAweDAwMDQwMDAwCisjZGVmaW5lIEhSQ1dMX0NPUkVfVE9fQ1NCXzJfNVgxICAgICAgMHgwMDA1MDAwMAorI2RlZmluZSBIUkNXTF9DT1JFX1RPX0NTQl8zWDEgICAgICAgIDB4MDAwNjAwMDAKKworLyoKKyAqIExDUlIgLSBDbG9jayBSYXRpbyBSZWdpc3RlciAoMTAuMy4xLjE2KSAKKyAqLworI2RlZmluZSBMQ1JSX0RCWVAgICAgICAweDgwMDAwMDAwCisjZGVmaW5lIExDUlJfREJZUF9TSElGVCAgICAgICAgMzEKKyNkZWZpbmUgTENSUl9CVUZDTURDICAgMHgzMDAwMDAwMAorI2RlZmluZSBMQ1JSX0JVRkNNRENfMSAweDEwMDAwMDAwCisjZGVmaW5lIExDUlJfQlVGQ01EQ18yIDB4MjAwMDAwMDAKKyNkZWZpbmUgTENSUl9CVUZDTURDXzMgMHgzMDAwMDAwMAorI2RlZmluZSBMQ1JSX0JVRkNNRENfNCAweDAwMDAwMDAwCisjZGVmaW5lIExDUlJfQlVGQ01EQ19TSElGVCAgICAgMjgKKyNkZWZpbmUgTENSUl9FQ0wgICAgICAgMHgwMzAwMDAwMAorI2RlZmluZSBMQ1JSX0VDTF80ICAgICAweDAwMDAwMDAwCisjZGVmaW5lIExDUlJfRUNMXzUgICAgIDB4MDEwMDAwMDAKKyNkZWZpbmUgTENSUl9FQ0xfNiAgICAgMHgwMjAwMDAwMAorI2RlZmluZSBMQ1JSX0VDTF83ICAgICAweDAzMDAwMDAwCisjZGVmaW5lIExDUlJfRUNMX1NISUZUICAgICAgICAgMjQKKyNkZWZpbmUgTENSUl9FQURDICAgICAgMHgwMDAzMDAwMAorI2RlZmluZSBMQ1JSX0VBRENfMSAgICAweDAwMDEwMDAwCisjZGVmaW5lIExDUlJfRUFEQ18yICAgIDB4MDAwMjAwMDAKKyNkZWZpbmUgTENSUl9FQURDXzMgICAgMHgwMDAzMDAwMAorI2RlZmluZSBMQ1JSX0VBRENfNCAgICAweDAwMDAwMDAwCisjZGVmaW5lIExDUlJfRUFEQ19TSElGVCAgICAgICAgMTYKKyNkZWZpbmUgTENSUl9DTEtESVYgICAgMHgwMDAwMDAwRgorI2RlZmluZSBMQ1JSX0NMS0RJVl8yICAweDAwMDAwMDAyCisjZGVmaW5lIExDUlJfQ0xLRElWXzQgIDB4MDAwMDAwMDQKKyNkZWZpbmUgTENSUl9DTEtESVZfOCAgMHgwMDAwMDAwOAorI2RlZmluZSBMQ1JSX0NMS0RJVl9TSElGVCAgICAgICAwCisgCisKKyNlbmRpZgkvKiBfX01QQzgzWFhfSF9fICovCg==