LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogc21jOTAwMC5oCiAqCiAqIENvcHlyaWdodCAoQykgMTk5OCBieSBEYW5pZWwgRW5nc3Ry9m0KICogQ29weXJpZ2h0IChDKSAxOTk2IGJ5IEVyaWsgU3RhaGxtYW4KICoKICogVGhpcyBzb2Z0d2FyZSBtYXkgYmUgdXNlZCBhbmQgZGlzdHJpYnV0ZWQgYWNjb3JkaW5nIHRvIHRoZSB0ZXJtcwogKiBvZiB0aGUgR05VIFB1YmxpYyBMaWNlbnNlLCBpbmNvcnBvcmF0ZWQgaGVyZWluIGJ5IHJlZmVyZW5jZS4KICoKICogVGhpcyBmaWxlIGNvbnRhaW5zIHJlZ2lzdGVyIGluZm9ybWF0aW9uIGFuZCBhY2Nlc3MgbWFjcm9zIGZvcgogKiB0aGUgU01DOTF4eHggY2hpcHNldC4KICoKICogSW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRoaXMgZmlsZSB3YXMgb2J0YWluZWQgZnJvbSB0aGUgU01DOTFDOTQKICogbWFudWFsIGZyb20gU01DLiAgVG8gZ2V0IGEgY29weSwgaWYgeW91IHJlYWxseSB3YW50IG9uZSwgeW91IGNhbiBmaW5kCiAqIGluZm9ybWF0aW9uIHVuZGVyIHd3dy5zbXNjLmNvbSBpbiB0aGUgY29tcG9uZW50cyBkaXZpc2lvbi4KICogKCB0aGlzIHRoYW5rcyB0byBhZHZpY2UgZnJvbSBEb25hbGQgQmVja2VyICkuCiAqCiAqIEF1dGhvcnMKICogICAgICBEYW5pZWwgRW5nc3Ry9m0gICAgICAgICAgICAgICAgICAgICAgICAgPGRhbmllbC5lbmdzdHJvbUByaWtzbmV0dC5ubz4KICoJRXJpayBTdGFobG1hbgkJCQk8ZXJpa0B2dC5lZHU+CiAqCiAqIEhpc3RvcnkKICogOTYtMDEtMDYJCSBFcmlrIFN0YWhsbWFuICAgbW92ZWQgZGVmaW5pdGlvbnMgaGVyZSBmcm9tIG1haW4gLmMKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlCiAqIDk2LTAxLTE5CQkgRXJpayBTdGFobG1hbgkgcG9saXNoZWQgdGhpcyB1cCBzb21lLCBhbmQgYWRkZWQKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXR0ZXIgZXJyb3IgaGFuZGxpbmcKICogOTgtMDktMjUgICAgICAgICAgICAgIERhbmllbCBFbmdzdHL2bSBhZGp1c3RlZCBmb3IgRXRoZXJib290CiAqIDk4LTA5LTI3ICAgICAgICAgICAgICBEYW5pZWwgRW5nc3Ry9m0gbW92ZWQgc29tZSBzdGF0aWMgc3RyaW5ncyBiYWNrIHRvIHRoZQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1haW4gLmMgZmlsZQogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpGSUxFX0xJQ0VOQ0UgKCBHUExfQU5ZICk7CgojaWZuZGVmCV9TTUM5MDAwX0hfCiMgZGVmaW5lIF9TTUM5MDAwX0hfCgovKiBJIHdhbnQgc29tZSBzaW1wbGUgdHlwZXMgKi8KdHlwZWRlZiB1bnNpZ25lZCBjaGFyCQkJYnl0ZTsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydAkJCXdvcmQ7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBpbnQJCWR3b3JkOwoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICoKICogQSBkZXNjcmlwdGlvbiBvZiB0aGUgU01DIHJlZ2lzdGVycyBpcyBwcm9iYWJseSBpbiBvcmRlciBoZXJlLAogKiBhbHRob3VnaCBmb3IgZGV0YWlscywgdGhlIFNNQyBkYXRhc2hlZXQgaXMgaW52YWx1YWJsZS4KICoKICogQmFzaWNhbGx5LCB0aGUgY2hpcCBoYXMgNCBiYW5rcyBvZiByZWdpc3RlcnMgKCAwIHRvIDMgKSwgd2hpY2gKICogYXJlIGFjY2Vzc2VkIGJ5IHdyaXRpbmcgYSBudW1iZXIgaW50byB0aGUgQkFOS19TRUxFQ1QgcmVnaXN0ZXIKICogKCBJIGFsc28gdXNlIGEgU01DX1NFTEVDVF9CQU5LIG1hY3JvIGZvciB0aGlzICkuCiAqCiAqIFRoZSBiYW5rcyBhcmUgY29uZmlndXJlZCBzbyB0aGF0IGZvciBtb3N0IHB1cnBvc2VzLCBiYW5rIDIgaXMgYWxsCiAqIHRoYXQgaXMgbmVlZGVkIGZvciBzaW1wbGUgcnVuIHRpbWUgdGFza3MuCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLyoKICogQmFuayBTZWxlY3QgUmVnaXN0ZXI6CiAqCiAqCQl5eXl5IHl5eXkgMDAwMCAwMHh4CiAqCQl4eAkJPSBiYW5rIG51bWJlcgogKgkJeXl5eSB5eXl5CT0gMHgzMywgZm9yIGlkZW50aWZpY2F0aW9uIHB1cnBvc2VzLgogKi8KI2RlZmluZQlCQU5LX1NFTEVDVAkJMTQKCi8qIEJBTksgMCAgKi8KCiNkZWZpbmUJVENSCQkwCS8qIHRyYW5zbWl0IGNvbnRyb2wgcmVnaXN0ZXIgKi8KI2RlZmluZSBUQ1JfRU5BQkxFCTB4MDAwMQkvKiBpZiB0aGlzIGlzIDEsIHdlIGNhbiB0cmFuc21pdCAqLwojZGVmaW5lIFRDUl9GRFVQTFgJMHgwODAwCS8qIHJlY2VpdmUgcGFja2V0cyBzZW50IG91dCAqLwojZGVmaW5lIFRDUl9TVFBfU1FFVAkweDEwMDAJLyogc3RvcCB0cmFuc21pdHRpbmcgaWYgU2lnbmFsIHF1YWxpdHkgZXJyb3IgKi8KI2RlZmluZQlUQ1JfTU9OX0NOUwkweDA0MDAJLyogbW9uaXRvcnMgdGhlIGNhcnJpZXIgc3RhdHVzICovCiNkZWZpbmUJVENSX1BBRF9FTkFCTEUJMHgwMDgwCS8qIHBhZHMgc2hvcnQgcGFja2V0cyB0byA2NCBieXRlcyAqLwoKI2RlZmluZQlUQ1JfQ0xFQVIJMAkvKiBkbyBOT1RISU5HICovCi8qIHRoZSBub3JtYWwgc2V0dGluZ3MgZm9yIHRoZSBUQ1IgcmVnaXN0ZXIgOiAqLwojZGVmaW5lCVRDUl9OT1JNQUwJKFRDUl9FTkFCTEUgfCBUQ1JfUEFEX0VOQUJMRSkKCgojZGVmaW5lIEVQSF9TVEFUVVMJMgojZGVmaW5lIEVTX0xJTktfT0sJMHg0MDAwCS8qIGlzIHRoZSBsaW5rIGludGVncml0eSBvayA/ICovCgojZGVmaW5lCVJDUgkJNAojZGVmaW5lIFJDUl9TT0ZUUkVTRVQJMHg4MDAwCS8qIHJlc2V0cyB0aGUgY2hpcCAqLwojZGVmaW5lCVJDUl9TVFJJUF9DUkMJMHgyMDAJLyogc3RyaXBzIENSQyAqLwojZGVmaW5lIFJDUl9FTkFCTEUJMHgxMDAJLyogSUZGIHRoaXMgaXMgc2V0LCB3ZSBjYW4gcmVjZWl2ZSBwYWNrZXRzICovCiNkZWZpbmUgUkNSX0FMTVVMCTB4NAkvKiByZWNlaXZlIGFsbCBtdWx0aWNhc3QgcGFja2V0cyAqLwojZGVmaW5lCVJDUl9QUk9NSVNDCTB4MgkvKiBlbmFibGUgcHJvbWlzY3VvdXMgbW9kZSAqLwoKLyogdGhlIG5vcm1hbCBzZXR0aW5ncyBmb3IgdGhlIFJDUiByZWdpc3RlciA6ICovCiNkZWZpbmUJUkNSX05PUk1BTAkoUkNSX1NUUklQX0NSQyB8IFJDUl9FTkFCTEUpCiNkZWZpbmUgUkNSX0NMRUFSCTB4MAkJLyogc2V0IGl0IHRvIGEgYmFzZSBzdGF0ZSAqLwoKI2RlZmluZQlDT1VOVEVSCQk2CiNkZWZpbmUJTUlSCQk4CiNkZWZpbmUJTUNSCQkxMAovKiAxMiBpcyByZXNlcnZlZCAqLwoKLy8gUmVjZWl2ZS9QaHkgQ29udHJvbCBSZWdpc3RlcgovKiBCQU5LIDAgICovCiNkZWZpbmUgUlBDX1JFRyAgICAgICAgIDB4MDAwQQojZGVmaW5lIFJQQ19TUEVFRCAgICAgICAweDIwMDAgIC8vIFdoZW4gMSBQSFkgaXMgaW4gMTAwTWJwcyBtb2RlLgojZGVmaW5lIFJQQ19EUExYICAgICAgICAweDEwMDAgIC8vIFdoZW4gMSBQSFkgaXMgaW4gRnVsbC1EdXBsZXggTW9kZQojZGVmaW5lIFJQQ19BTkVHICAgICAgICAweDA4MDAgIC8vIFdoZW4gMSBQSFkgaXMgaW4gQXV0by1OZWdvdGlhdGUgTW9kZQojZGVmaW5lIFJQQ19MU1hBX1NIRlQgICA1ICAgICAgIC8vIEJpdHMgdG8gc2hpZnQgTFMyQSxMUzFBLExTMEEgdG8gbHNiCiNkZWZpbmUgUlBDX0xTWEJfU0hGVCAgIDIgICAgICAgLy8gQml0cyB0byBnZXQgTFMyQixMUzFCLExTMEIgdG8gbHNiCiNkZWZpbmUgUlBDX0xFRF8xMDBfMTAgICgweDAwKSAgLy8gTEVEID0gMTAwTWJwcyBPUidzIHdpdGggMTBNYnBzIGxpbmsgZGV0ZWN0CiNkZWZpbmUgUlBDX0xFRF9SRVMgICAgICgweDAxKSAgLy8gTEVEID0gUmVzZXJ2ZWQKI2RlZmluZSBSUENfTEVEXzEwICAgICAgKDB4MDIpICAvLyBMRUQgPSAxME1icHMgbGluayBkZXRlY3QKI2RlZmluZSBSUENfTEVEX0ZEICAgICAgKDB4MDMpICAvLyBMRUQgPSBGdWxsIER1cGxleCBNb2RlCiNkZWZpbmUgUlBDX0xFRF9UWF9SWCAgICgweDA0KSAgLy8gTEVEID0gVFggb3IgUlggcGFja2V0IG9jY3VycmVkCiNkZWZpbmUgUlBDX0xFRF8xMDAgICAgICgweDA1KSAgLy8gTEVEID0gMTAwTWJwcyBsaW5rIGRlY3RlY3QKI2RlZmluZSBSUENfTEVEX1RYICAgICAgKDB4MDYpICAvLyBMRUQgPSBUWCBwYWNrZXQgb2NjdXJyZWQKI2RlZmluZSBSUENfTEVEX1JYICAgICAgKDB4MDcpICAvLyBMRUQgPSBSWCBwYWNrZXQgb2NjdXJyZWQKI2RlZmluZSBSUENfREVGQVVMVCAoUlBDX0FORUcgfCAoUlBDX0xFRF8xMDAgPDwgUlBDX0xTWEFfU0hGVCkgfCAoUlBDX0xFRF9GRCA8PCBSUENfTFNYQl9TSEZUKSB8IFJQQ19TUEVFRCB8IFJQQ19EUExYKQoKLy8gUmVjZWl2ZS9QaHkgQ29udHJvbCBSZWdpc3RlcgovKiBCQU5LIDAgICovCiNkZWZpbmUgUlBDX1JFRyAgICAgICAgIDB4MDAwQQojZGVmaW5lIFJQQ19TUEVFRCAgICAgICAweDIwMDAgIC8vIFdoZW4gMSBQSFkgaXMgaW4gMTAwTWJwcyBtb2RlLgojZGVmaW5lIFJQQ19EUExYICAgICAgICAweDEwMDAgIC8vIFdoZW4gMSBQSFkgaXMgaW4gRnVsbC1EdXBsZXggTW9kZQojZGVmaW5lIFJQQ19BTkVHICAgICAgICAweDA4MDAgIC8vIFdoZW4gMSBQSFkgaXMgaW4gQXV0by1OZWdvdGlhdGUgTW9kZQojZGVmaW5lIFJQQ19MU1hBX1NIRlQgICA1ICAgICAgIC8vIEJpdHMgdG8gc2hpZnQgTFMyQSxMUzFBLExTMEEgdG8gbHNiCiNkZWZpbmUgUlBDX0xTWEJfU0hGVCAgIDIgICAgICAgLy8gQml0cyB0byBnZXQgTFMyQixMUzFCLExTMEIgdG8gbHNiCiNkZWZpbmUgUlBDX0xFRF8xMDBfMTAgICgweDAwKSAgLy8gTEVEID0gMTAwTWJwcyBPUidzIHdpdGggMTBNYnBzIGxpbmsgZGV0ZWN0CiNkZWZpbmUgUlBDX0xFRF9SRVMgICAgICgweDAxKSAgLy8gTEVEID0gUmVzZXJ2ZWQKI2RlZmluZSBSUENfTEVEXzEwICAgICAgKDB4MDIpICAvLyBMRUQgPSAxME1icHMgbGluayBkZXRlY3QKI2RlZmluZSBSUENfTEVEX0ZEICAgICAgKDB4MDMpICAvLyBMRUQgPSBGdWxsIER1cGxleCBNb2RlCiNkZWZpbmUgUlBDX0xFRF9UWF9SWCAgICgweDA0KSAgLy8gTEVEID0gVFggb3IgUlggcGFja2V0IG9jY3VycmVkCiNkZWZpbmUgUlBDX0xFRF8xMDAgICAgICgweDA1KSAgLy8gTEVEID0gMTAwTWJwcyBsaW5rIGRlY3RlY3QKI2RlZmluZSBSUENfTEVEX1RYICAgICAgKDB4MDYpICAvLyBMRUQgPSBUWCBwYWNrZXQgb2NjdXJyZWQKI2RlZmluZSBSUENfTEVEX1JYICAgICAgKDB4MDcpICAvLyBMRUQgPSBSWCBwYWNrZXQgb2NjdXJyZWQKI2RlZmluZSBSUENfREVGQVVMVCAoUlBDX0FORUcgfCAoUlBDX0xFRF8xMDAgPDwgUlBDX0xTWEFfU0hGVCkgfCAoUlBDX0xFRF9GRCA8PCBSUENfTFNYQl9TSEZUKSB8IFJQQ19TUEVFRCB8IFJQQ19EUExYKQoKLyogQkFOSyAxICovCiNkZWZpbmUgQ09ORklHCQkJMAojZGVmaW5lIENGR19BVUlfU0VMRUNUCQkweDEwMAojZGVmaW5lCUJBU0UJCQkyCiNkZWZpbmUJQUREUjAJCQk0CiNkZWZpbmUJQUREUjEJCQk2CiNkZWZpbmUJQUREUjIJCQk4CiNkZWZpbmUJR0VORVJBTAkJCTEwCiNkZWZpbmUJQ09OVFJPTAkJCTEyCiNkZWZpbmUJQ1RMX1BPV0VSRE9XTgkJMHgyMDAwCiNkZWZpbmUJQ1RMX0xFX0VOQUJMRQkJMHg4MAojZGVmaW5lCUNUTF9DUl9FTkFCTEUJCTB4NDAKI2RlZmluZQlDVExfVEVfRU5BQkxFCQkweDAwMjAKI2RlZmluZSBDVExfQVVUT19SRUxFQVNFCTB4MDgwMAojZGVmaW5lCUNUTF9FUFJPTV9BQ0NFU1MJMHgwMDAzIC8qIGhpZ2ggaWYgRXByb20gaXMgYmVpbmcgcmVhZCAqLwoKLyogQkFOSyAyICovCiNkZWZpbmUgTU1VX0NNRAkJMAojZGVmaW5lIE1DX0JVU1kJCTEJLyogb25seSByZWFkYWJsZSBiaXQgaW4gdGhlIHJlZ2lzdGVyICovCiNkZWZpbmUgTUNfTk9QCQkwCiNkZWZpbmUJTUNfQUxMT0MJMHgyMAkvKiBvciB3aXRoIG51bWJlciBvZiAyNTYgYnl0ZSBwYWNrZXRzICovCiNkZWZpbmUJTUNfUkVTRVQJMHg0MAojZGVmaW5lCU1DX1JFTU9WRQkweDYwCS8qIHJlbW92ZSB0aGUgY3VycmVudCByeCBwYWNrZXQgKi8KI2RlZmluZSBNQ19SRUxFQVNFCTB4ODAJLyogcmVtb3ZlIGFuZCByZWxlYXNlIHRoZSBjdXJyZW50IHJ4IHBhY2tldCAqLwojZGVmaW5lIE1DX0ZSRUVQS1QJMHhBMAkvKiBSZWxlYXNlIHBhY2tldCBpbiBQTlIgcmVnaXN0ZXIgKi8KI2RlZmluZSBNQ19FTlFVRVVFCTB4QzAJLyogRW5xdWV1ZSB0aGUgcGFja2V0IGZvciB0cmFuc21pdCAqLwoKI2RlZmluZQlQTlJfQVJSCQkyCiNkZWZpbmUgRklGT19QT1JUUwk0CgojZGVmaW5lIEZQX1JYRU1QVFkJMHg4MDAwCiNkZWZpbmUgRlBfVFhFTVBUWQkweDgwCgojZGVmaW5lCVBPSU5URVIJCTYKI2RlZmluZSBQVFJfUkVBRAkweDIwMDAKI2RlZmluZQlQVFJfUkNWCQkweDgwMDAKI2RlZmluZQlQVFJfQVVUT0lOQwkweDQwMDAKI2RlZmluZSBQVFJfQVVUT19JTkMJMHgwMDQwCgojZGVmaW5lCURBVEFfMQkJOAojZGVmaW5lCURBVEFfMgkJMTAKI2RlZmluZQlJTlRFUlJVUFQJMTIKCiNkZWZpbmUgSU5UX01BU0sJMTMKI2RlZmluZSBJTV9SQ1ZfSU5UCTB4MQojZGVmaW5lCUlNX1RYX0lOVAkweDIKI2RlZmluZQlJTV9UWF9FTVBUWV9JTlQJMHg0CiNkZWZpbmUJSU1fQUxMT0NfSU5UCTB4OAojZGVmaW5lCUlNX1JYX09WUk5fSU5UCTB4MTAKI2RlZmluZQlJTV9FUEhfSU5UCTB4MjAKI2RlZmluZQlJTV9FUkNWX0lOVAkweDQwIC8qIG5vdCBvbiBTTUM5MTkyICovCgovKiBCQU5LIDMgKi8KI2RlZmluZQlNVUxUSUNBU1QxCTAKI2RlZmluZQlNVUxUSUNBU1QyCTIKI2RlZmluZQlNVUxUSUNBU1QzCTQKI2RlZmluZQlNVUxUSUNBU1Q0CTYKI2RlZmluZQlNR01UCQk4CiNkZWZpbmUJUkVWSVNJT04JMTAgLyogKCBoaTogY2hpcCBpZCAgIGxvdzogcmV2ICMgKSAqLwoKLy8gTWFuYWdlbWVudCBJbnRlcmZhY2UgUmVnaXN0ZXIgKE1JSSkKI2RlZmluZSBNSUlfUkVHICAgICAgICAgMHgwMDA4CiNkZWZpbmUgTUlJX01TS19DUlMxMDAgIDB4NDAwMCAvLyBEaXNhYmxlcyBDUlMxMDAgZGV0ZWN0aW9uIGR1cmluZyB0eCBoYWxmIGR1cAojZGVmaW5lIE1JSV9NRE9FICAgICAgICAweDAwMDggLy8gTUlJIE91dHB1dCBFbmFibGUKI2RlZmluZSBNSUlfTUNMSyAgICAgICAgMHgwMDA0IC8vIE1JSSBDbG9jaywgcGluIE1EQ0xLCiNkZWZpbmUgTUlJX01ESSAgICAgICAgIDB4MDAwMiAvLyBNSUkgSW5wdXQsIHBpbiBNREkKI2RlZmluZSBNSUlfTURPICAgICAgICAgMHgwMDAxIC8vIE1JSSBPdXRwdXQsIHBpbiBNRE8KCi8qIHRoaXMgaXMgTk9UIG9uIFNNQzkxOTIgKi8KI2RlZmluZQlFUkNWCQkxMgoKLyogTm90ZSB0aGF0IDkxOTQgYW5kIDkxOTYgaGF2ZSB0aGUgc21hbWUgY2hpcCBpZCwKICogdGhlIDkxOTYgd2lsbCBoYXZlIHJldmlzaW9ucyBzdGFydGluZyBhdCA2ICovCiNkZWZpbmUgQ0hJUF85MTkwCTMKI2RlZmluZSBDSElQXzkxOTQJNAojZGVmaW5lIENISVBfOTE5NQk1CiNkZWZpbmUgQ0hJUF85MTk2CTQKI2RlZmluZSBDSElQXzkxMTAwCTcKI2RlZmluZSBDSElQXzkxMTAwRkQJOAoKI2RlZmluZSBSRVZfOTE5Ngk2CgovKgogKiBUcmFuc21pdCBzdGF0dXMgYml0cwogKi8KI2RlZmluZSBUU19TVUNDRVNTCTB4MDAwMQojZGVmaW5lIFRTX0xPU1RDQVIJMHgwNDAwCiNkZWZpbmUgVFNfTEFUQ09MCTB4MDIwMAojZGVmaW5lIFRTXzE2Q09MCTB4MDAxMAoKLyoKICogUmVjZWl2ZSBzdGF0dXMgYml0cwogKi8KI2RlZmluZSBSU19BTEdORVJSCTB4ODAwMAojZGVmaW5lIFJTX0JBRENSQwkweDIwMDAKI2RlZmluZSBSU19PRERGUkFNRQkweDEwMDAKI2RlZmluZSBSU19UT09MT05HCTB4MDgwMAojZGVmaW5lIFJTX1RPT1NIT1JUCTB4MDQwMAojZGVmaW5lIFJTX01VTFRJQ0FTVAkweDAwMDEKI2RlZmluZSBSU19FUlJPUlMJKFJTX0FMR05FUlIgfCBSU19CQURDUkMgfCBSU19UT09MT05HIHwgUlNfVE9PU0hPUlQpCgovLyBNYW5hZ2VtZW50IEludGVyZmFjZSBSZWdpc3RlciAoTUlJKQojZGVmaW5lIE1JSV9SRUcgICAgICAgICAweDAwMDgKI2RlZmluZSBNSUlfTVNLX0NSUzEwMCAgMHg0MDAwIC8vIERpc2FibGVzIENSUzEwMCBkZXRlY3Rpb24gZHVyaW5nIHR4IGhhbGYgZHVwCiNkZWZpbmUgTUlJX01ET0UgICAgICAgIDB4MDAwOCAvLyBNSUkgT3V0cHV0IEVuYWJsZQojZGVmaW5lIE1JSV9NQ0xLICAgICAgICAweDAwMDQgLy8gTUlJIENsb2NrLCBwaW4gTURDTEsKI2RlZmluZSBNSUlfTURJICAgICAgICAgMHgwMDAyIC8vIE1JSSBJbnB1dCwgcGluIE1ESQojZGVmaW5lIE1JSV9NRE8gICAgICAgICAweDAwMDEgLy8gTUlJIE91dHB1dCwgcGluIE1ETwoKLy8gUEhZIFJlZ2lzdGVyIEFkZHJlc3NlcyAoTEFOOTFDMTExIEludGVybmFsIFBIWSkKCi8vIFBIWSBDb250cm9sIFJlZ2lzdGVyCiNkZWZpbmUgUEhZX0NOVExfUkVHICAgICAgICAgICAgMHgwMAojZGVmaW5lIFBIWV9DTlRMX1JTVCAgICAgICAgICAgIDB4ODAwMCAgLy8gMT1QSFkgUmVzZXQKI2RlZmluZSBQSFlfQ05UTF9MUEJLICAgICAgICAgICAweDQwMDAgIC8vIDE9UEhZIExvb3BiYWNrCiNkZWZpbmUgUEhZX0NOVExfU1BFRUQgICAgICAgICAgMHgyMDAwICAvLyAxPTEwME1icHMsIDA9MTBNcGJzCiNkZWZpbmUgUEhZX0NOVExfQU5FR19FTiAgICAgICAgMHgxMDAwIC8vIDE9RW5hYmxlIEF1dG8gbmVnb3RpYXRpb24KI2RlZmluZSBQSFlfQ05UTF9QRE4gICAgICAgICAgICAweDA4MDAgIC8vIDE9UEhZIFBvd2VyIERvd24gbW9kZQojZGVmaW5lIFBIWV9DTlRMX01JSV9ESVMgICAgICAgIDB4MDQwMCAgLy8gMT1NSUkgNCBiaXQgaW50ZXJmYWNlIGRpc2FibGVkCiNkZWZpbmUgUEhZX0NOVExfQU5FR19SU1QgICAgICAgMHgwMjAwIC8vIDE9UmVzZXQgQXV0byBuZWdvdGlhdGUKI2RlZmluZSBQSFlfQ05UTF9EUExYICAgICAgICAgICAweDAxMDAgIC8vIDE9RnVsbCBEdXBsZXgsIDA9SGFsZiBEdXBsZXgKI2RlZmluZSBQSFlfQ05UTF9DT0xUU1QgICAgICAgICAweDAwODAgIC8vIDE9IE1JSSBDb2xpc2lvbiBUZXN0CgovLyBQSFkgU3RhdHVzIFJlZ2lzdGVyCiNkZWZpbmUgUEhZX1NUQVRfUkVHICAgICAgICAgICAgMHgwMQojZGVmaW5lIFBIWV9TVEFUX0NBUF9UNCAgICAgICAgIDB4ODAwMCAgLy8gMT0xMDBCYXNlLVQ0IGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9DQVBfVFhGICAgICAgICAweDQwMDAgIC8vIDE9MTAwQmFzZS1YIGZ1bGwgZHVwbGV4IGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9DQVBfVFhIICAgICAgICAweDIwMDAgIC8vIDE9MTAwQmFzZS1YIGhhbGYgZHVwbGV4IGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9DQVBfVEYgICAgICAgICAweDEwMDAgIC8vIDE9MTBNYnBzIGZ1bGwgZHVwbGV4IGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9DQVBfVEggICAgICAgICAweDA4MDAgIC8vIDE9MTBNYnBzIGhhbGYgZHVwbGV4IGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9DQVBfU1VQUiAgICAgICAweDAwNDAgIC8vIDE9cmVjdiBtZ210IGZyYW1lcyB3aXRoIG5vdCBwcmVhbWJsZQojZGVmaW5lIFBIWV9TVEFUX0FORUdfQUNLICAgICAgIDB4MDAyMCAgLy8gMT1BTkVHIGhhcyBjb21wbGV0ZWQKI2RlZmluZSBQSFlfU1RBVF9SRU1fRkxUICAgICAgICAweDAwMTAgIC8vIDE9UmVtb3RlIEZhdWx0IGRldGVjdGVkCiNkZWZpbmUgUEhZX1NUQVRfQ0FQX0FORUcgICAgICAgMHgwMDA4ICAvLyAxPUF1dG8gbmVnb3RpYXRlIGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9MSU5LICAgICAgICAgICAweDAwMDQgIC8vIDE9dmFsaWQgbGluawojZGVmaW5lIFBIWV9TVEFUX0pBQiAgICAgICAgICAgIDB4MDAwMiAgLy8gMT0xME1icHMgamFiYmVyIGNvbmRpdGlvbgojZGVmaW5lIFBIWV9TVEFUX0VYUkVHICAgICAgICAgIDB4MDAwMSAgLy8gMT1leHRlbmRlZCByZWdpc3RlcnMgaW1wbGVtZW50ZWQKCi8vIFBIWSBJZGVudGlmaWVyIFJlZ2lzdGVycwojZGVmaW5lIFBIWV9JRDFfUkVHICAgICAgICAgICAgIDB4MDIgICAgLy8gUEhZIElkZW50aWZpZXIgMQojZGVmaW5lIFBIWV9JRDJfUkVHICAgICAgICAgICAgIDB4MDMgICAgLy8gUEhZIElkZW50aWZpZXIgMgoKLy8gUEhZIEF1dG8tTmVnb3RpYXRpb24gQWR2ZXJ0aXNlbWVudCBSZWdpc3RlcgojZGVmaW5lIFBIWV9BRF9SRUcgICAgICAgICAgICAgIDB4MDQKI2RlZmluZSBQSFlfQURfTlAgICAgICAgICAgICAgICAweDgwMDAgIC8vIDE9UEhZIHJlcXVlc3RzIGV4Y2hhbmdlIG9mIE5leHQgUGFnZQojZGVmaW5lIFBIWV9BRF9BQ0sgICAgICAgICAgICAgIDB4NDAwMCAgLy8gMT1nb3QgbGluayBjb2RlIHdvcmQgZnJvbSByZW1vdGUKI2RlZmluZSBQSFlfQURfUkYgICAgICAgICAgICAgICAweDIwMDAgIC8vIDE9YWR2ZXJ0aXNlIHJlbW90ZSBmYXVsdAojZGVmaW5lIFBIWV9BRF9UNCAgICAgICAgICAgICAgIDB4MDIwMCAgLy8gMT1QSFkgaXMgY2FwYWJsZSBvZiAxMDBCYXNlLVQ0CiNkZWZpbmUgUEhZX0FEX1RYX0ZEWCAgICAgICAgICAgMHgwMTAwICAvLyAxPVBIWSBpcyBjYXBhYmxlIG9mIDEwMEJhc2UtVFggRkRQTFgKI2RlZmluZSBQSFlfQURfVFhfSERYICAgICAgICAgICAweDAwODAgIC8vIDE9UEhZIGlzIGNhcGFibGUgb2YgMTAwQmFzZS1UWCBIRFBMWAojZGVmaW5lIFBIWV9BRF8xMF9GRFggICAgICAgICAgIDB4MDA0MCAgLy8gMT1QSFkgaXMgY2FwYWJsZSBvZiAxMEJhc2UtVCBGRFBMWAojZGVmaW5lIFBIWV9BRF8xMF9IRFggICAgICAgICAgIDB4MDAyMCAgLy8gMT1QSFkgaXMgY2FwYWJsZSBvZiAxMEJhc2UtVCBIRFBMWAojZGVmaW5lIFBIWV9BRF9DU01BICAgICAgICAgICAgIDB4MDAwMSAgLy8gMT1QSFkgaXMgY2FwYWJsZSBvZiA4MDIuMyBDTVNBCgovLyBQSFkgQXV0by1uZWdvdGlhdGlvbiBSZW1vdGUgRW5kIENhcGFiaWxpdHkgUmVnaXN0ZXIKI2RlZmluZSBQSFlfUk1UX1JFRyAgICAgICAgICAgICAweDA1Ci8vIFVzZXMgc2FtZSBiaXQgZGVmaW5pdGlvbnMgYXMgUEhZX0FEX1JFRwoKLy8gUEhZIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgMQojZGVmaW5lIFBIWV9DRkcxX1JFRyAgICAgICAgICAgIDB4MTAKI2RlZmluZSBQSFlfQ0ZHMV9MTktESVMgICAgICAgICAweDgwMDAgIC8vIDE9UnggTGluayBEZXRlY3QgRnVuY3Rpb24gZGlzYWJsZWQKI2RlZmluZSBQSFlfQ0ZHMV9YTVRESVMgICAgICAgICAweDQwMDAgIC8vIDE9VFAgVHJhbnNtaXR0ZXIgRGlzYWJsZWQKI2RlZmluZSBQSFlfQ0ZHMV9YTVRQRE4gICAgICAgICAweDIwMDAgIC8vIDE9VFAgVHJhbnNtaXR0ZXIgUG93ZXJlZCBEb3duCiNkZWZpbmUgUEhZX0NGRzFfQllQU0NSICAgICAgICAgMHgwNDAwICAvLyAxPUJ5cGFzcyBzY3JhbWJsZXIvZGVzY3JhbWJsZXIKI2RlZmluZSBQSFlfQ0ZHMV9VTlNDRFMgICAgICAgICAweDAyMDAgIC8vIDE9VW5zY3JhbWJsZSBJZGxlIFJlY2VwdGlvbiBEaXNhYmxlCiNkZWZpbmUgUEhZX0NGRzFfRVFMWlIgICAgICAgICAgMHgwMTAwICAvLyAxPVJ4IEVxdWFsaXplciBEaXNhYmxlZAojZGVmaW5lIFBIWV9DRkcxX0NBQkxFICAgICAgICAgIDB4MDA4MCAgLy8gMT1TVFAoMTUwb2htKSwgMD1VVFAoMTAwb2htKQojZGVmaW5lIFBIWV9DRkcxX1JMVkwwICAgICAgICAgIDB4MDA0MCAgLy8gMT1SeCBTcXVlbGNoIGxldmVsIHJlZHVjZWQgYnkgNC41ZGIKI2RlZmluZSBQSFlfQ0ZHMV9UTFZMX1NISUZUICAgICAyICAgICAgIC8vIFRyYW5zbWl0IE91dHB1dCBMZXZlbCBBZGp1c3QKI2RlZmluZSBQSFlfQ0ZHMV9UTFZMX01BU0sgICAgICAweDAwM0MKI2RlZmluZSBQSFlfQ0ZHMV9UUkZfTUFTSyAgICAgICAweDAwMDMgIC8vIFRyYW5zbWl0dGVyIFJpc2UvRmFsbCB0aW1lCgoKLy8gUEhZIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgMgojZGVmaW5lIFBIWV9DRkcyX1JFRyAgICAgICAgICAgIDB4MTEKI2RlZmluZSBQSFlfQ0ZHMl9BUE9MRElTICAgICAgICAweDAwMjAgIC8vIDE9QXV0byBQb2xhcml0eSBDb3JyZWN0aW9uIGRpc2FibGVkCiNkZWZpbmUgUEhZX0NGRzJfSkFCRElTICAgICAgICAgMHgwMDEwICAvLyAxPUphYmJlciBkaXNhYmxlZAojZGVmaW5lIFBIWV9DRkcyX01SRUcgICAgICAgICAgIDB4MDAwOCAgLy8gMT1NdWx0aXBsZSByZWdpc3RlciBhY2Nlc3MgKE1JSSBtZ3QpCiNkZWZpbmUgUEhZX0NGRzJfSU5UTURJTyAgICAgICAgMHgwMDA0ICAvLyAxPUludGVycnVwdCBzaWduYWxlZCB3aXRoIE1ESU8gcHVsc2VvCgovLyBQSFkgU3RhdHVzIE91dHB1dCAoYW5kIEludGVycnVwdCBzdGF0dXMpIFJlZ2lzdGVyCiNkZWZpbmUgUEhZX0lOVF9SRUcgICAgICAgICAgICAgMHgxMiAgICAvLyBTdGF0dXMgT3V0cHV0IChJbnRlcnJ1cHQgU3RhdHVzKQojZGVmaW5lIFBIWV9JTlRfSU5UICAgICAgICAgICAgIDB4ODAwMCAgLy8gMT1iaXRzIGhhdmUgY2hhbmdlZCBzaW5jZSBsYXN0IHJlYWQKI2RlZmluZSBQSFlfSU5UX0xOS0ZBSUwgICAgICAgICAweDQwMDAgIC8vIDE9TGluayBOb3QgZGV0ZWN0ZWQKI2RlZmluZSBQSFlfSU5UX0xPU1NTWU5DICAgICAgICAweDIwMDAgIC8vIDE9RGVzY3JhbWJsZXIgaGFzIGxvc3Qgc3luYwojZGVmaW5lIFBIWV9JTlRfQ1dSRCAgICAgICAgICAgIDB4MTAwMCAgLy8gMT1JbnZhbGlkIDRCNUIgY29kZSBkZXRlY3RlZCBvbiByeAojZGVmaW5lIFBIWV9JTlRfU1NEICAgICAgICAgICAgIDB4MDgwMCAgLy8gMT1ObyBTdGFydCBPZiBTdHJlYW0gZGV0ZWN0ZWQgb24gcngKI2RlZmluZSBQSFlfSU5UX0VTRCAgICAgICAgICAgICAweDA0MDAgIC8vIDE9Tm8gRW5kIE9mIFN0cmVhbSBkZXRlY3RlZCBvbiByeAojZGVmaW5lIFBIWV9JTlRfUlBPTCAgICAgICAgICAgIDB4MDIwMCAgLy8gMT1SZXZlcnNlIFBvbGFyaXR5IGRldGVjdGVkCiNkZWZpbmUgUEhZX0lOVF9KQUIgICAgICAgICAgICAgMHgwMTAwICAvLyAxPUphYmJlciBkZXRlY3RlZAojZGVmaW5lIFBIWV9JTlRfU1BEREVUICAgICAgICAgIDB4MDA4MCAgLy8gMT0xMDBCYXNlLVRYIG1vZGUsIDA9MTBCYXNlLVQgbW9kZQojZGVmaW5lIFBIWV9JTlRfRFBMWERFVCAgICAgICAgIDB4MDA0MCAgLy8gMT1EZXZpY2UgaW4gRnVsbCBEdXBsZXgKCi8vIFBIWSBJbnRlcnJ1cHQvU3RhdHVzIE1hc2sgUmVnaXN0ZXIKI2RlZmluZSBQSFlfTUFTS19SRUcgICAgICAgICAgICAweDEzICAgIC8vIEludGVycnVwdCBNYXNrCi8vIFVzZXMgdGhlIHNhbWUgYml0IGRlZmluaXRpb25zIGFzIFBIWV9JTlRfUkVHCgoKLy8gUEhZIFJlZ2lzdGVyIEFkZHJlc3NlcyAoTEFOOTFDMTExIEludGVybmFsIFBIWSkKCi8vIFBIWSBDb250cm9sIFJlZ2lzdGVyCiNkZWZpbmUgUEhZX0NOVExfUkVHICAgICAgICAgICAgMHgwMAojZGVmaW5lIFBIWV9DTlRMX1JTVCAgICAgICAgICAgIDB4ODAwMCAgLy8gMT1QSFkgUmVzZXQKI2RlZmluZSBQSFlfQ05UTF9MUEJLICAgICAgICAgICAweDQwMDAgIC8vIDE9UEhZIExvb3BiYWNrCiNkZWZpbmUgUEhZX0NOVExfU1BFRUQgICAgICAgICAgMHgyMDAwICAvLyAxPTEwME1icHMsIDA9MTBNcGJzCiNkZWZpbmUgUEhZX0NOVExfQU5FR19FTiAgICAgICAgMHgxMDAwIC8vIDE9RW5hYmxlIEF1dG8gbmVnb3RpYXRpb24KI2RlZmluZSBQSFlfQ05UTF9QRE4gICAgICAgICAgICAweDA4MDAgIC8vIDE9UEhZIFBvd2VyIERvd24gbW9kZQojZGVmaW5lIFBIWV9DTlRMX01JSV9ESVMgICAgICAgIDB4MDQwMCAgLy8gMT1NSUkgNCBiaXQgaW50ZXJmYWNlIGRpc2FibGVkCiNkZWZpbmUgUEhZX0NOVExfQU5FR19SU1QgICAgICAgMHgwMjAwIC8vIDE9UmVzZXQgQXV0byBuZWdvdGlhdGUKI2RlZmluZSBQSFlfQ05UTF9EUExYICAgICAgICAgICAweDAxMDAgIC8vIDE9RnVsbCBEdXBsZXgsIDA9SGFsZiBEdXBsZXgKI2RlZmluZSBQSFlfQ05UTF9DT0xUU1QgICAgICAgICAweDAwODAgIC8vIDE9IE1JSSBDb2xpc2lvbiBUZXN0CgovLyBQSFkgU3RhdHVzIFJlZ2lzdGVyCiNkZWZpbmUgUEhZX1NUQVRfUkVHICAgICAgICAgICAgMHgwMQojZGVmaW5lIFBIWV9TVEFUX0NBUF9UNCAgICAgICAgIDB4ODAwMCAgLy8gMT0xMDBCYXNlLVQ0IGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9DQVBfVFhGICAgICAgICAweDQwMDAgIC8vIDE9MTAwQmFzZS1YIGZ1bGwgZHVwbGV4IGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9DQVBfVFhIICAgICAgICAweDIwMDAgIC8vIDE9MTAwQmFzZS1YIGhhbGYgZHVwbGV4IGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9DQVBfVEYgICAgICAgICAweDEwMDAgIC8vIDE9MTBNYnBzIGZ1bGwgZHVwbGV4IGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9DQVBfVEggICAgICAgICAweDA4MDAgIC8vIDE9MTBNYnBzIGhhbGYgZHVwbGV4IGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9DQVBfU1VQUiAgICAgICAweDAwNDAgIC8vIDE9cmVjdiBtZ210IGZyYW1lcyB3aXRoIG5vdCBwcmVhbWJsZQojZGVmaW5lIFBIWV9TVEFUX0FORUdfQUNLICAgICAgIDB4MDAyMCAgLy8gMT1BTkVHIGhhcyBjb21wbGV0ZWQKI2RlZmluZSBQSFlfU1RBVF9SRU1fRkxUICAgICAgICAweDAwMTAgIC8vIDE9UmVtb3RlIEZhdWx0IGRldGVjdGVkCiNkZWZpbmUgUEhZX1NUQVRfQ0FQX0FORUcgICAgICAgMHgwMDA4ICAvLyAxPUF1dG8gbmVnb3RpYXRlIGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9MSU5LICAgICAgICAgICAweDAwMDQgIC8vIDE9dmFsaWQgbGluawojZGVmaW5lIFBIWV9TVEFUX0pBQiAgICAgICAgICAgIDB4MDAwMiAgLy8gMT0xME1icHMgamFiYmVyIGNvbmRpdGlvbgojZGVmaW5lIFBIWV9TVEFUX0VYUkVHICAgICAgICAgIDB4MDAwMSAgLy8gMT1leHRlbmRlZCByZWdpc3RlcnMgaW1wbGVtZW50ZWQKCi8vIFBIWSBJZGVudGlmaWVyIFJlZ2lzdGVycwojZGVmaW5lIFBIWV9JRDFfUkVHICAgICAgICAgICAgIDB4MDIgICAgLy8gUEhZIElkZW50aWZpZXIgMQojZGVmaW5lIFBIWV9JRDJfUkVHICAgICAgICAgICAgIDB4MDMgICAgLy8gUEhZIElkZW50aWZpZXIgMgoKLy8gUEhZIEF1dG8tTmVnb3RpYXRpb24gQWR2ZXJ0aXNlbWVudCBSZWdpc3RlcgojZGVmaW5lIFBIWV9BRF9SRUcgICAgICAgICAgICAgIDB4MDQKI2RlZmluZSBQSFlfQURfTlAgICAgICAgICAgICAgICAweDgwMDAgIC8vIDE9UEhZIHJlcXVlc3RzIGV4Y2hhbmdlIG9mIE5leHQgUGFnZQojZGVmaW5lIFBIWV9BRF9BQ0sgICAgICAgICAgICAgIDB4NDAwMCAgLy8gMT1nb3QgbGluayBjb2RlIHdvcmQgZnJvbSByZW1vdGUKI2RlZmluZSBQSFlfQURfUkYgICAgICAgICAgICAgICAweDIwMDAgIC8vIDE9YWR2ZXJ0aXNlIHJlbW90ZSBmYXVsdAojZGVmaW5lIFBIWV9BRF9UNCAgICAgICAgICAgICAgIDB4MDIwMCAgLy8gMT1QSFkgaXMgY2FwYWJsZSBvZiAxMDBCYXNlLVQ0CiNkZWZpbmUgUEhZX0FEX1RYX0ZEWCAgICAgICAgICAgMHgwMTAwICAvLyAxPVBIWSBpcyBjYXBhYmxlIG9mIDEwMEJhc2UtVFggRkRQTFgKI2RlZmluZSBQSFlfQURfVFhfSERYICAgICAgICAgICAweDAwODAgIC8vIDE9UEhZIGlzIGNhcGFibGUgb2YgMTAwQmFzZS1UWCBIRFBMWAojZGVmaW5lIFBIWV9BRF8xMF9GRFggICAgICAgICAgIDB4MDA0MCAgLy8gMT1QSFkgaXMgY2FwYWJsZSBvZiAxMEJhc2UtVCBGRFBMWAojZGVmaW5lIFBIWV9BRF8xMF9IRFggICAgICAgICAgIDB4MDAyMCAgLy8gMT1QSFkgaXMgY2FwYWJsZSBvZiAxMEJhc2UtVCBIRFBMWAojZGVmaW5lIFBIWV9BRF9DU01BICAgICAgICAgICAgIDB4MDAwMSAgLy8gMT1QSFkgaXMgY2FwYWJsZSBvZiA4MDIuMyBDTVNBCgovLyBQSFkgQXV0by1uZWdvdGlhdGlvbiBSZW1vdGUgRW5kIENhcGFiaWxpdHkgUmVnaXN0ZXIKI2RlZmluZSBQSFlfUk1UX1JFRyAgICAgICAgICAgICAweDA1Ci8vIFVzZXMgc2FtZSBiaXQgZGVmaW5pdGlvbnMgYXMgUEhZX0FEX1JFRwoKLy8gUEhZIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgMQojZGVmaW5lIFBIWV9DRkcxX1JFRyAgICAgICAgICAgIDB4MTAKI2RlZmluZSBQSFlfQ0ZHMV9MTktESVMgICAgICAgICAweDgwMDAgIC8vIDE9UnggTGluayBEZXRlY3QgRnVuY3Rpb24gZGlzYWJsZWQKI2RlZmluZSBQSFlfQ0ZHMV9YTVRESVMgICAgICAgICAweDQwMDAgIC8vIDE9VFAgVHJhbnNtaXR0ZXIgRGlzYWJsZWQKI2RlZmluZSBQSFlfQ0ZHMV9YTVRQRE4gICAgICAgICAweDIwMDAgIC8vIDE9VFAgVHJhbnNtaXR0ZXIgUG93ZXJlZCBEb3duCiNkZWZpbmUgUEhZX0NGRzFfQllQU0NSICAgICAgICAgMHgwNDAwICAvLyAxPUJ5cGFzcyBzY3JhbWJsZXIvZGVzY3JhbWJsZXIKI2RlZmluZSBQSFlfQ0ZHMV9VTlNDRFMgICAgICAgICAweDAyMDAgIC8vIDE9VW5zY3JhbWJsZSBJZGxlIFJlY2VwdGlvbiBEaXNhYmxlCiNkZWZpbmUgUEhZX0NGRzFfRVFMWlIgICAgICAgICAgMHgwMTAwICAvLyAxPVJ4IEVxdWFsaXplciBEaXNhYmxlZAojZGVmaW5lIFBIWV9DRkcxX0NBQkxFICAgICAgICAgIDB4MDA4MCAgLy8gMT1TVFAoMTUwb2htKSwgMD1VVFAoMTAwb2htKQojZGVmaW5lIFBIWV9DRkcxX1JMVkwwICAgICAgICAgIDB4MDA0MCAgLy8gMT1SeCBTcXVlbGNoIGxldmVsIHJlZHVjZWQgYnkgNC41ZGIKI2RlZmluZSBQSFlfQ0ZHMV9UTFZMX1NISUZUICAgICAyICAgICAgIC8vIFRyYW5zbWl0IE91dHB1dCBMZXZlbCBBZGp1c3QKI2RlZmluZSBQSFlfQ0ZHMV9UTFZMX01BU0sgICAgICAweDAwM0MKI2RlZmluZSBQSFlfQ0ZHMV9UUkZfTUFTSyAgICAgICAweDAwMDMgIC8vIFRyYW5zbWl0dGVyIFJpc2UvRmFsbCB0aW1lCgoKLy8gUEhZIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgMgojZGVmaW5lIFBIWV9DRkcyX1JFRyAgICAgICAgICAgIDB4MTEKI2RlZmluZSBQSFlfQ0ZHMl9BUE9MRElTICAgICAgICAweDAwMjAgIC8vIDE9QXV0byBQb2xhcml0eSBDb3JyZWN0aW9uIGRpc2FibGVkCiNkZWZpbmUgUEhZX0NGRzJfSkFCRElTICAgICAgICAgMHgwMDEwICAvLyAxPUphYmJlciBkaXNhYmxlZAojZGVmaW5lIFBIWV9DRkcyX01SRUcgICAgICAgICAgIDB4MDAwOCAgLy8gMT1NdWx0aXBsZSByZWdpc3RlciBhY2Nlc3MgKE1JSSBtZ3QpCiNkZWZpbmUgUEhZX0NGRzJfSU5UTURJTyAgICAgICAgMHgwMDA0ICAvLyAxPUludGVycnVwdCBzaWduYWxlZCB3aXRoIE1ESU8gcHVsc2VvCgovLyBQSFkgU3RhdHVzIE91dHB1dCAoYW5kIEludGVycnVwdCBzdGF0dXMpIFJlZ2lzdGVyCiNkZWZpbmUgUEhZX0lOVF9SRUcgICAgICAgICAgICAgMHgxMiAgICAvLyBTdGF0dXMgT3V0cHV0IChJbnRlcnJ1cHQgU3RhdHVzKQojZGVmaW5lIFBIWV9JTlRfSU5UICAgICAgICAgICAgIDB4ODAwMCAgLy8gMT1iaXRzIGhhdmUgY2hhbmdlZCBzaW5jZSBsYXN0IHJlYWQKI2RlZmluZSBQSFlfSU5UX0xOS0ZBSUwgICAgICAgICAweDQwMDAgIC8vIDE9TGluayBOb3QgZGV0ZWN0ZWQKI2RlZmluZSBQSFlfSU5UX0xPU1NTWU5DICAgICAgICAweDIwMDAgIC8vIDE9RGVzY3JhbWJsZXIgaGFzIGxvc3Qgc3luYwojZGVmaW5lIFBIWV9JTlRfQ1dSRCAgICAgICAgICAgIDB4MTAwMCAgLy8gMT1JbnZhbGlkIDRCNUIgY29kZSBkZXRlY3RlZCBvbiByeAojZGVmaW5lIFBIWV9JTlRfU1NEICAgICAgICAgICAgIDB4MDgwMCAgLy8gMT1ObyBTdGFydCBPZiBTdHJlYW0gZGV0ZWN0ZWQgb24gcngKI2RlZmluZSBQSFlfSU5UX0VTRCAgICAgICAgICAgICAweDA0MDAgIC8vIDE9Tm8gRW5kIE9mIFN0cmVhbSBkZXRlY3RlZCBvbiByeAojZGVmaW5lIFBIWV9JTlRfUlBPTCAgICAgICAgICAgIDB4MDIwMCAgLy8gMT1SZXZlcnNlIFBvbGFyaXR5IGRldGVjdGVkCiNkZWZpbmUgUEhZX0lOVF9KQUIgICAgICAgICAgICAgMHgwMTAwICAvLyAxPUphYmJlciBkZXRlY3RlZAojZGVmaW5lIFBIWV9JTlRfU1BEREVUICAgICAgICAgIDB4MDA4MCAgLy8gMT0xMDBCYXNlLVRYIG1vZGUsIDA9MTBCYXNlLVQgbW9kZQojZGVmaW5lIFBIWV9JTlRfRFBMWERFVCAgICAgICAgIDB4MDA0MCAgLy8gMT1EZXZpY2UgaW4gRnVsbCBEdXBsZXgKCi8vIFBIWSBJbnRlcnJ1cHQvU3RhdHVzIE1hc2sgUmVnaXN0ZXIKI2RlZmluZSBQSFlfTUFTS19SRUcgICAgICAgICAgICAweDEzICAgIC8vIEludGVycnVwdCBNYXNrCi8vIFVzZXMgdGhlIHNhbWUgYml0IGRlZmluaXRpb25zIGFzIFBIWV9JTlRfUkVHCgoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqICBJIGRlZmluZSBzb21lIG1hY3JvcyB0byBtYWtlIGl0IGVhc2llciB0byBkbyBzb21ld2hhdCBjb21tb24KICogb3Igc2xpZ2h0bHkgY29tcGxpY2F0ZWQsIHJlcGVhdGVkIHRhc2tzLgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLyogc2VsZWN0IGEgcmVnaXN0ZXIgYmFuaywgMCB0byAzICAqLwoKI2RlZmluZSBTTUNfU0VMRUNUX0JBTksoeCwgeSkgeyBfb3V0dyggeSwgeCArIEJBTktfU0VMRUNUICk7IH0KCi8qIGRlZmluZSBhIHNtYWxsIGRlbGF5IGZvciB0aGUgcmVzZXQgKi8KI2RlZmluZSBTTUNfREVMQVkoeCkgeyBpbncoIHggKyBSQ1IgKTtcCgkJCWludyggeCArIFJDUiApO1wKCQkJaW53KCB4ICsgUkNSICk7IH0KCgojZW5kaWYJLyogX1NNQ185MDAwX0hfICovCgo=