LyoKICogIEFtaWdhIExpbnV4L202OGsgQXJpYWRuZSBFdGhlcm5ldCBEcml2ZXIKICoKICogIKkgQ29weXJpZ2h0IDE5OTUgYnkgR2VlcnQgVXl0dGVyaG9ldmVuIChnZWVydEBsaW51eC1tNjhrLm9yZykKICoJCQlQZXRlciBEZSBTY2hyaWp2ZXIKICoJCSAgICAgICAoUGV0ZXIuRGVTY2hyaWp2ZXJAbGludXguY2Mua3VsZXV2ZW4uYWMuYmUpCiAqCiAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqCiAqICBUaGlzIHByb2dyYW0gaXMgYmFzZWQgb24KICoKICoJbGFuY2UuYzoJQW4gQU1EIExBTkNFIGV0aGVybmV0IGRyaXZlciBmb3IgbGludXguCiAqCQkJV3JpdHRlbiAxOTkzLTk0IGJ5IERvbmFsZCBCZWNrZXIuCiAqCiAqCUFtNzlDOTYwOglQQ25ldCh0bSktSVNBIFNpbmdsZS1DaGlwIEV0aGVybmV0IENvbnRyb2xsZXIKICoJCQlBZHZhbmNlZCBNaWNybyBEZXZpY2VzCiAqCQkJUHVibGljYXRpb24gIzE2OTA3LCBSZXYuIEIsIEFtZW5kbWVudC8wLCBNYXkgMTk5NAogKgogKglNQzY4MjMwOglQYXJhbGxlbCBJbnRlcmZhY2UvVGltZXIgKFBJL1QpCiAqCQkJTW90b3JvbGEgU2VtaWNvbmR1Y3RvcnMsIERlY2VtYmVyLCAxOTgzCiAqCiAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqCiAqICBUaGlzIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwogKiAgTGljZW5zZS4gIFNlZSB0aGUgZmlsZSBDT1BZSU5HIGluIHRoZSBtYWluIGRpcmVjdG9yeSBvZiB0aGUgTGludXgKICogIGRpc3RyaWJ1dGlvbiBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKgogKiAgVGhlIEFyaWFkbmUgaXMgYSBab3Jyby1JSSBib2FyZCBtYWRlIGJ5IFZpbGxhZ2UgVHJvbmljLiBJdCBjb250YWluczoKICoKICoJLSBhbiBBbTc5Qzk2MCBQQ25ldC1JU0EgU2luZ2xlLUNoaXAgRXRoZXJuZXQgQ29udHJvbGxlciB3aXRoIGJvdGgKICoJICAxMEJBU0UtMiAodGhpbiBjb2F4KSBhbmQgMTBCQVNFLVQgKFVUUCkgY29ubmVjdG9ycwogKgogKgktIGFuIE1DNjgyMzAgUGFyYWxsZWwgSW50ZXJmYWNlL1RpbWVyIGNvbmZpZ3VyZWQgYXMgMiBwYXJhbGxlbCBwb3J0cwogKi8KCgogICAgLyoKICAgICAqCUFtNzlDOTYwIFBDbmV0LUlTQQogICAgICovCgpzdHJ1Y3QgQW03OUM5NjAgewogICAgdm9sYXRpbGUgdV9zaG9ydCBBZGRyZXNzUFJPTVs4XTsKCQkJCS8qIElFRUUgQWRkcmVzcyBQUk9NIChVbnVzZWQgaW4gdGhlIEFyaWFkbmUpICovCiAgICB2b2xhdGlsZSB1X3Nob3J0IFJEUDsJLyogUmVnaXN0ZXIgRGF0YSBQb3J0ICovCiAgICB2b2xhdGlsZSB1X3Nob3J0IFJBUDsJLyogUmVnaXN0ZXIgQWRkcmVzcyBQb3J0ICovCiAgICB2b2xhdGlsZSB1X3Nob3J0IFJlc2V0OwkvKiBSZXNldCBDaGlwIG9uIFJlYWQgQWNjZXNzICovCiAgICB2b2xhdGlsZSB1X3Nob3J0IElEUDsJLyogSVNBQ1NSIERhdGEgUG9ydCAqLwp9OwoKCiAgICAvKgogICAgICoJQW03OUM5NjAgQ29udHJvbCBhbmQgU3RhdHVzIFJlZ2lzdGVycwogICAgICoKICAgICAqCVRoZXNlIHZhbHVlcyBhcmUgYWxyZWFkeSBzd2FwKCllZCEhCiAgICAgKgogICAgICoJT25seSByZWdpc3RlcnMgbWFya2VkIHdpdGggYSBgLScgYXJlIGludGVuZGVkIGZvciBuZXR3b3JrIHNvZnR3YXJlCiAgICAgKglhY2Nlc3MKICAgICAqLwoKI2RlZmluZSBDU1IwCQkweDAwMDAJLyogLSBQQ25ldC1JU0EgQ29udHJvbGxlciBTdGF0dXMgKi8KI2RlZmluZSBDU1IxCQkweDAxMDAJLyogLSBJQURSWzE1OjBdICovCiNkZWZpbmUgQ1NSMgkJMHgwMjAwCS8qIC0gSUFEUlsyMzoxNl0gKi8KI2RlZmluZSBDU1IzCQkweDAzMDAJLyogLSBJbnRlcnJ1cHQgTWFza3MgYW5kIERlZmVycmFsIENvbnRyb2wgKi8KI2RlZmluZSBDU1I0CQkweDA0MDAJLyogLSBUZXN0IGFuZCBGZWF0dXJlcyBDb250cm9sICovCiNkZWZpbmUgQ1NSNgkJMHgwNjAwCS8qICAgUkNWL1hNVCBEZXNjcmlwdG9yIFRhYmxlIExlbmd0aCAqLwojZGVmaW5lIENTUjgJCTB4MDgwMAkvKiAtIExvZ2ljYWwgQWRkcmVzcyBGaWx0ZXIsIExBRFJGWzE1OjBdICovCiNkZWZpbmUgQ1NSOQkJMHgwOTAwCS8qIC0gTG9naWNhbCBBZGRyZXNzIEZpbHRlciwgTEFEUkZbMzE6MTZdICovCiNkZWZpbmUgQ1NSMTAJCTB4MGEwMAkvKiAtIExvZ2ljYWwgQWRkcmVzcyBGaWx0ZXIsIExBRFJGWzQ3OjMyXSAqLwojZGVmaW5lIENTUjExCQkweDBiMDAJLyogLSBMb2dpY2FsIEFkZHJlc3MgRmlsdGVyLCBMQURSRls2Mzo0OF0gKi8KI2RlZmluZSBDU1IxMgkJMHgwYzAwCS8qIC0gUGh5c2ljYWwgQWRkcmVzcyBSZWdpc3RlciwgUEFEUlsxNTowXSAqLwojZGVmaW5lIENTUjEzCQkweDBkMDAJLyogLSBQaHlzaWNhbCBBZGRyZXNzIFJlZ2lzdGVyLCBQQURSWzMxOjE2XSAqLwojZGVmaW5lIENTUjE0CQkweDBlMDAJLyogLSBQaHlzaWNhbCBBZGRyZXNzIFJlZ2lzdGVyLCBQQURSWzQ3OjMyXSAqLwojZGVmaW5lIENTUjE1CQkweDBmMDAJLyogLSBNb2RlIFJlZ2lzdGVyICovCiNkZWZpbmUgQ1NSMTYJCTB4MTAwMAkvKiAgIEluaXRpYWxpemF0aW9uIEJsb2NrIEFkZHJlc3MgTG93ZXIgKi8KI2RlZmluZSBDU1IxNwkJMHgxMTAwCS8qICAgSW5pdGlhbGl6YXRpb24gQmxvY2sgQWRkcmVzcyBVcHBlciAqLwojZGVmaW5lIENTUjE4CQkweDEyMDAJLyogICBDdXJyZW50IFJlY2VpdmUgQnVmZmVyIEFkZHJlc3MgKi8KI2RlZmluZSBDU1IxOQkJMHgxMzAwCS8qICAgQ3VycmVudCBSZWNlaXZlIEJ1ZmZlciBBZGRyZXNzICovCiNkZWZpbmUgQ1NSMjAJCTB4MTQwMAkvKiAgIEN1cnJlbnQgVHJhbnNtaXQgQnVmZmVyIEFkZHJlc3MgKi8KI2RlZmluZSBDU1IyMQkJMHgxNTAwCS8qICAgQ3VycmVudCBUcmFuc21pdCBCdWZmZXIgQWRkcmVzcyAqLwojZGVmaW5lIENTUjIyCQkweDE2MDAJLyogICBOZXh0IFJlY2VpdmUgQnVmZmVyIEFkZHJlc3MgKi8KI2RlZmluZSBDU1IyMwkJMHgxNzAwCS8qICAgTmV4dCBSZWNlaXZlIEJ1ZmZlciBBZGRyZXNzICovCiNkZWZpbmUgQ1NSMjQJCTB4MTgwMAkvKiAtIEJhc2UgQWRkcmVzcyBvZiBSZWNlaXZlIFJpbmcgKi8KI2RlZmluZSBDU1IyNQkJMHgxOTAwCS8qIC0gQmFzZSBBZGRyZXNzIG9mIFJlY2VpdmUgUmluZyAqLwojZGVmaW5lIENTUjI2CQkweDFhMDAJLyogICBOZXh0IFJlY2VpdmUgRGVzY3JpcHRvciBBZGRyZXNzICovCiNkZWZpbmUgQ1NSMjcJCTB4MWIwMAkvKiAgIE5leHQgUmVjZWl2ZSBEZXNjcmlwdG9yIEFkZHJlc3MgKi8KI2RlZmluZSBDU1IyOAkJMHgxYzAwCS8qICAgQ3VycmVudCBSZWNlaXZlIERlc2NyaXB0b3IgQWRkcmVzcyAqLwojZGVmaW5lIENTUjI5CQkweDFkMDAJLyogICBDdXJyZW50IFJlY2VpdmUgRGVzY3JpcHRvciBBZGRyZXNzICovCiNkZWZpbmUgQ1NSMzAJCTB4MWUwMAkvKiAtIEJhc2UgQWRkcmVzcyBvZiBUcmFuc21pdCBSaW5nICovCiNkZWZpbmUgQ1NSMzEJCTB4MWYwMAkvKiAtIEJhc2UgQWRkcmVzcyBvZiB0cmFuc21pdCBSaW5nICovCiNkZWZpbmUgQ1NSMzIJCTB4MjAwMAkvKiAgIE5leHQgVHJhbnNtaXQgRGVzY3JpcHRvciBBZGRyZXNzICovCiNkZWZpbmUgQ1NSMzMJCTB4MjEwMAkvKiAgIE5leHQgVHJhbnNtaXQgRGVzY3JpcHRvciBBZGRyZXNzICovCiNkZWZpbmUgQ1NSMzQJCTB4MjIwMAkvKiAgIEN1cnJlbnQgVHJhbnNtaXQgRGVzY3JpcHRvciBBZGRyZXNzICovCiNkZWZpbmUgQ1NSMzUJCTB4MjMwMAkvKiAgIEN1cnJlbnQgVHJhbnNtaXQgRGVzY3JpcHRvciBBZGRyZXNzICovCiNkZWZpbmUgQ1NSMzYJCTB4MjQwMAkvKiAgIE5leHQgTmV4dCBSZWNlaXZlIERlc2NyaXB0b3IgQWRkcmVzcyAqLwojZGVmaW5lIENTUjM3CQkweDI1MDAJLyogICBOZXh0IE5leHQgUmVjZWl2ZSBEZXNjcmlwdG9yIEFkZHJlc3MgKi8KI2RlZmluZSBDU1IzOAkJMHgyNjAwCS8qICAgTmV4dCBOZXh0IFRyYW5zbWl0IERlc2NyaXB0b3IgQWRkcmVzcyAqLwojZGVmaW5lIENTUjM5CQkweDI3MDAJLyogICBOZXh0IE5leHQgVHJhbnNtaXQgRGVzY3JpcHRvciBBZGRyZXNzICovCiNkZWZpbmUgQ1NSNDAJCTB4MjgwMAkvKiAgIEN1cnJlbnQgUmVjZWl2ZSBTdGF0dXMgYW5kIEJ5dGUgQ291bnQgKi8KI2RlZmluZSBDU1I0MQkJMHgyOTAwCS8qICAgQ3VycmVudCBSZWNlaXZlIFN0YXR1cyBhbmQgQnl0ZSBDb3VudCAqLwojZGVmaW5lIENTUjQyCQkweDJhMDAJLyogICBDdXJyZW50IFRyYW5zbWl0IFN0YXR1cyBhbmQgQnl0ZSBDb3VudCAqLwojZGVmaW5lIENTUjQzCQkweDJiMDAJLyogICBDdXJyZW50IFRyYW5zbWl0IFN0YXR1cyBhbmQgQnl0ZSBDb3VudCAqLwojZGVmaW5lIENTUjQ0CQkweDJjMDAJLyogICBOZXh0IFJlY2VpdmUgU3RhdHVzIGFuZCBCeXRlIENvdW50ICovCiNkZWZpbmUgQ1NSNDUJCTB4MmQwMAkvKiAgIE5leHQgUmVjZWl2ZSBTdGF0dXMgYW5kIEJ5dGUgQ291bnQgKi8KI2RlZmluZSBDU1I0NgkJMHgyZTAwCS8qICAgUG9sbCBUaW1lIENvdW50ZXIgKi8KI2RlZmluZSBDU1I0NwkJMHgyZjAwCS8qICAgUG9sbGluZyBJbnRlcnZhbCAqLwojZGVmaW5lIENTUjQ4CQkweDMwMDAJLyogICBUZW1wb3JhcnkgU3RvcmFnZSAqLwojZGVmaW5lIENTUjQ5CQkweDMxMDAJLyogICBUZW1wb3JhcnkgU3RvcmFnZSAqLwojZGVmaW5lIENTUjUwCQkweDMyMDAJLyogICBUZW1wb3JhcnkgU3RvcmFnZSAqLwojZGVmaW5lIENTUjUxCQkweDMzMDAJLyogICBUZW1wb3JhcnkgU3RvcmFnZSAqLwojZGVmaW5lIENTUjUyCQkweDM0MDAJLyogICBUZW1wb3JhcnkgU3RvcmFnZSAqLwojZGVmaW5lIENTUjUzCQkweDM1MDAJLyogICBUZW1wb3JhcnkgU3RvcmFnZSAqLwojZGVmaW5lIENTUjU0CQkweDM2MDAJLyogICBUZW1wb3JhcnkgU3RvcmFnZSAqLwojZGVmaW5lIENTUjU1CQkweDM3MDAJLyogICBUZW1wb3JhcnkgU3RvcmFnZSAqLwojZGVmaW5lIENTUjU2CQkweDM4MDAJLyogICBUZW1wb3JhcnkgU3RvcmFnZSAqLwojZGVmaW5lIENTUjU3CQkweDM5MDAJLyogICBUZW1wb3JhcnkgU3RvcmFnZSAqLwojZGVmaW5lIENTUjU4CQkweDNhMDAJLyogICBUZW1wb3JhcnkgU3RvcmFnZSAqLwojZGVmaW5lIENTUjU5CQkweDNiMDAJLyogICBUZW1wb3JhcnkgU3RvcmFnZSAqLwojZGVmaW5lIENTUjYwCQkweDNjMDAJLyogICBQcmV2aW91cyBUcmFuc21pdCBEZXNjcmlwdG9yIEFkZHJlc3MgKi8KI2RlZmluZSBDU1I2MQkJMHgzZDAwCS8qICAgUHJldmlvdXMgVHJhbnNtaXQgRGVzY3JpcHRvciBBZGRyZXNzICovCiNkZWZpbmUgQ1NSNjIJCTB4M2UwMAkvKiAgIFByZXZpb3VzIFRyYW5zbWl0IFN0YXR1cyBhbmQgQnl0ZSBDb3VudCAqLwojZGVmaW5lIENTUjYzCQkweDNmMDAJLyogICBQcmV2aW91cyBUcmFuc21pdCBTdGF0dXMgYW5kIEJ5dGUgQ291bnQgKi8KI2RlZmluZSBDU1I2NAkJMHg0MDAwCS8qICAgTmV4dCBUcmFuc21pdCBCdWZmZXIgQWRkcmVzcyAqLwojZGVmaW5lIENTUjY1CQkweDQxMDAJLyogICBOZXh0IFRyYW5zbWl0IEJ1ZmZlciBBZGRyZXNzICovCiNkZWZpbmUgQ1NSNjYJCTB4NDIwMAkvKiAgIE5leHQgVHJhbnNtaXQgU3RhdHVzIGFuZCBCeXRlIENvdW50ICovCiNkZWZpbmUgQ1NSNjcJCTB4NDMwMAkvKiAgIE5leHQgVHJhbnNtaXQgU3RhdHVzIGFuZCBCeXRlIENvdW50ICovCiNkZWZpbmUgQ1NSNjgJCTB4NDQwMAkvKiAgIFRyYW5zbWl0IFN0YXR1cyBUZW1wb3JhcnkgU3RvcmFnZSAqLwojZGVmaW5lIENTUjY5CQkweDQ1MDAJLyogICBUcmFuc21pdCBTdGF0dXMgVGVtcG9yYXJ5IFN0b3JhZ2UgKi8KI2RlZmluZSBDU1I3MAkJMHg0NjAwCS8qICAgVGVtcG9yYXJ5IFN0b3JhZ2UgKi8KI2RlZmluZSBDU1I3MQkJMHg0NzAwCS8qICAgVGVtcG9yYXJ5IFN0b3JhZ2UgKi8KI2RlZmluZSBDU1I3MgkJMHg0ODAwCS8qICAgUmVjZWl2ZSBSaW5nIENvdW50ZXIgKi8KI2RlZmluZSBDU1I3NAkJMHg0YTAwCS8qICAgVHJhbnNtaXQgUmluZyBDb3VudGVyICovCiNkZWZpbmUgQ1NSNzYJCTB4NGMwMAkvKiAtIFJlY2VpdmUgUmluZyBMZW5ndGggKi8KI2RlZmluZSBDU1I3OAkJMHg0ZTAwCS8qIC0gVHJhbnNtaXQgUmluZyBMZW5ndGggKi8KI2RlZmluZSBDU1I4MAkJMHg1MDAwCS8qIC0gQnVyc3QgYW5kIEZJRk8gVGhyZXNob2xkIENvbnRyb2wgKi8KI2RlZmluZSBDU1I4MgkJMHg1MjAwCS8qIC0gQnVzIEFjdGl2aXR5IFRpbWVyICovCiNkZWZpbmUgQ1NSODQJCTB4NTQwMAkvKiAgIERNQSBBZGRyZXNzICovCiNkZWZpbmUgQ1NSODUJCTB4NTUwMAkvKiAgIERNQSBBZGRyZXNzICovCiNkZWZpbmUgQ1NSODYJCTB4NTYwMAkvKiAgIEJ1ZmZlciBCeXRlIENvdW50ZXIgKi8KI2RlZmluZSBDU1I4OAkJMHg1ODAwCS8qIC0gQ2hpcCBJRCAqLwojZGVmaW5lIENTUjg5CQkweDU5MDAJLyogLSBDaGlwIElEICovCiNkZWZpbmUgQ1NSOTIJCTB4NWMwMAkvKiAgIFJpbmcgTGVuZ3RoIENvbnZlcnNpb24gKi8KI2RlZmluZSBDU1I5NAkJMHg1ZTAwCS8qICAgVHJhbnNtaXQgVGltZSBEb21haW4gUmVmbGVjdG9tZXRyeSBDb3VudCAqLwojZGVmaW5lIENTUjk2CQkweDYwMDAJLyogICBCdXMgSW50ZXJmYWNlIFNjcmF0Y2ggUmVnaXN0ZXIgMCAqLwojZGVmaW5lIENTUjk3CQkweDYxMDAJLyogICBCdXMgSW50ZXJmYWNlIFNjcmF0Y2ggUmVnaXN0ZXIgMCAqLwojZGVmaW5lIENTUjk4CQkweDYyMDAJLyogICBCdXMgSW50ZXJmYWNlIFNjcmF0Y2ggUmVnaXN0ZXIgMSAqLwojZGVmaW5lIENTUjk5CQkweDYzMDAJLyogICBCdXMgSW50ZXJmYWNlIFNjcmF0Y2ggUmVnaXN0ZXIgMSAqLwojZGVmaW5lIENTUjEwNAkJMHg2ODAwCS8qICAgU1dBUCAqLwojZGVmaW5lIENTUjEwNQkJMHg2OTAwCS8qICAgU1dBUCAqLwojZGVmaW5lIENTUjEwOAkJMHg2YzAwCS8qICAgQnVmZmVyIE1hbmFnZW1lbnQgU2NyYXRjaCAqLwojZGVmaW5lIENTUjEwOQkJMHg2ZDAwCS8qICAgQnVmZmVyIE1hbmFnZW1lbnQgU2NyYXRjaCAqLwojZGVmaW5lIENTUjExMgkJMHg3MDAwCS8qIC0gTWlzc2VkIEZyYW1lIENvdW50ICovCiNkZWZpbmUgQ1NSMTE0CQkweDcyMDAJLyogLSBSZWNlaXZlIENvbGxpc2lvbiBDb3VudCAqLwojZGVmaW5lIENTUjEyNAkJMHg3YzAwCS8qIC0gQnVmZmVyIE1hbmFnZW1lbnQgVW5pdCBUZXN0ICovCgoKICAgIC8qCiAgICAgKglBbTc5Qzk2MCBJU0EgQ29udHJvbCBhbmQgU3RhdHVzIFJlZ2lzdGVycwogICAgICoKICAgICAqCVRoZXNlIHZhbHVlcyBhcmUgYWxyZWFkeSBzd2FwKCllZCEhCiAgICAgKi8KCiNkZWZpbmUgSVNBQ1NSMAkJMHgwMDAwCS8qIE1hc3RlciBNb2RlIFJlYWQgQWN0aXZlICovCiNkZWZpbmUgSVNBQ1NSMQkJMHgwMTAwCS8qIE1hc3RlciBNb2RlIFdyaXRlIEFjdGl2ZSAqLwojZGVmaW5lIElTQUNTUjIJCTB4MDIwMAkvKiBNaXNjZWxsYW5lb3VzIENvbmZpZ3VyYXRpb24gKi8KI2RlZmluZSBJU0FDU1I0CQkweDA0MDAJLyogTEVEMCBTdGF0dXMgKExpbmsgSW50ZWdyaXR5KSAqLwojZGVmaW5lIElTQUNTUjUJCTB4MDUwMAkvKiBMRUQxIFN0YXR1cyAqLwojZGVmaW5lIElTQUNTUjYJCTB4MDYwMAkvKiBMRUQyIFN0YXR1cyAqLwojZGVmaW5lIElTQUNTUjcJCTB4MDcwMAkvKiBMRUQzIFN0YXR1cyAqLwoKCiAgICAvKgogICAgICoJQml0IGRlZmluaXRpb25zIGZvciBDU1IwIChQQ25ldC1JU0EgQ29udHJvbGxlciBTdGF0dXMpCiAgICAgKgogICAgICoJVGhlc2UgdmFsdWVzIGFyZSBhbHJlYWR5IHN3YXAoKWVkISEKICAgICAqLwoKI2RlZmluZSBFUlIJCTB4MDA4MAkvKiBFcnJvciAqLwojZGVmaW5lIEJBQkwJCTB4MDA0MAkvKiBCYWJibGU6IFRyYW5zbWl0dGVkIHRvbyBtYW55IGJpdHMgKi8KI2RlZmluZSBDRVJSCQkweDAwMjAJLyogTm8gSGVhcnRiZWF0ICgxMEJBU0UtVCkgKi8KI2RlZmluZSBNSVNTCQkweDAwMTAJLyogTWlzc2VkIEZyYW1lICovCiNkZWZpbmUgTUVSUgkJMHgwMDA4CS8qIE1lbW9yeSBFcnJvciAqLwojZGVmaW5lIFJJTlQJCTB4MDAwNAkvKiBSZWNlaXZlIEludGVycnVwdCAqLwojZGVmaW5lIFRJTlQJCTB4MDAwMgkvKiBUcmFuc21pdCBJbnRlcnJ1cHQgKi8KI2RlZmluZSBJRE9OCQkweDAwMDEJLyogSW5pdGlhbGl6YXRpb24gRG9uZSAqLwojZGVmaW5lIElOVFIJCTB4ODAwMAkvKiBJbnRlcnJ1cHQgRmxhZyAqLwojZGVmaW5lIElORUEJCTB4NDAwMAkvKiBJbnRlcnJ1cHQgRW5hYmxlICovCiNkZWZpbmUgUlhPTgkJMHgyMDAwCS8qIFJlY2VpdmUgT24gKi8KI2RlZmluZSBUWE9OCQkweDEwMDAJLyogVHJhbnNtaXQgT24gKi8KI2RlZmluZSBURE1ECQkweDA4MDAJLyogVHJhbnNtaXQgRGVtYW5kICovCiNkZWZpbmUgU1RPUAkJMHgwNDAwCS8qIFN0b3AgKi8KI2RlZmluZSBTVFJUCQkweDAyMDAJLyogU3RhcnQgKi8KI2RlZmluZSBJTklUCQkweDAxMDAJLyogSW5pdGlhbGl6ZSAqLwoKCiAgICAvKgogICAgICoJQml0IGRlZmluaXRpb25zIGZvciBDU1IzIChJbnRlcnJ1cHQgTWFza3MgYW5kIERlZmVycmFsIENvbnRyb2wpCiAgICAgKgogICAgICoJVGhlc2UgdmFsdWVzIGFyZSBhbHJlYWR5IHN3YXAoKWVkISEKICAgICAqLwoKI2RlZmluZSBCQUJMTQkJMHgwMDQwCS8qIEJhYmJsZSBNYXNrICovCiNkZWZpbmUgTUlTU00JCTB4MDAxMAkvKiBNaXNzZWQgRnJhbWUgTWFzayAqLwojZGVmaW5lIE1FUlJNCQkweDAwMDgJLyogTWVtb3J5IEVycm9yIE1hc2sgKi8KI2RlZmluZSBSSU5UTQkJMHgwMDA0CS8qIFJlY2VpdmUgSW50ZXJydXB0IE1hc2sgKi8KI2RlZmluZSBUSU5UTQkJMHgwMDAyCS8qIFRyYW5zbWl0IEludGVycnVwdCBNYXNrICovCiNkZWZpbmUgSURPTk0JCTB4MDAwMQkvKiBJbml0aWFsaXphdGlvbiBEb25lIE1hc2sgKi8KI2RlZmluZSBEWE1UMlBECQkweDEwMDAJLyogRGlzYWJsZSBUcmFuc21pdCBUd28gUGFydCBEZWZlcnJhbCAqLwojZGVmaW5lIEVNQkEJCTB4MDgwMAkvKiBFbmFibGUgTW9kaWZpZWQgQmFjay1vZmYgQWxnb3JpdGhtICovCgoKICAgIC8qCiAgICAgKglCaXQgZGVmaW5pdGlvbnMgZm9yIENTUjQgKFRlc3QgYW5kIEZlYXR1cmVzIENvbnRyb2wpCiAgICAgKgogICAgICoJVGhlc2UgdmFsdWVzIGFyZSBhbHJlYWR5IHN3YXAoKWVkISEKICAgICAqLwoKI2RlZmluZSBFTlRTVAkJMHgwMDgwCS8qIEVuYWJsZSBUZXN0IE1vZGUgKi8KI2RlZmluZSBETUFQTFVTCQkweDAwNDAJLyogRGlzYWJsZSBCdXJzdCBUcmFuc2FjdGlvbiBDb3VudGVyICovCiNkZWZpbmUgVElNRVIJCTB4MDAyMAkvKiBUaW1lciBFbmFibGUgUmVnaXN0ZXIgKi8KI2RlZmluZSBEUE9MTAkJMHgwMDEwCS8qIERpc2FibGUgVHJhbnNtaXQgUG9sbGluZyAqLwojZGVmaW5lIEFQQURfWE1UCTB4MDAwOAkvKiBBdXRvIFBhZCBUcmFuc21pdCAqLwojZGVmaW5lIEFTVFJQX1JDVgkweDAwMDQJLyogQXV0byBQYWQgU3RyaXBwaW5nICovCiNkZWZpbmUgTUZDTwkJMHgwMDAyCS8qIE1pc3NlZCBGcmFtZSBDb3VudGVyIE92ZXJmbG93IEludGVycnVwdCAqLwojZGVmaW5lIE1GQ09NCQkweDAwMDEJLyogTWlzc2VkIEZyYW1lIENvdW50ZXIgT3ZlcmZsb3cgTWFzayAqLwojZGVmaW5lIFJDVkNDTwkJMHgyMDAwCS8qIFJlY2VpdmUgQ29sbGlzaW9uIENvdW50ZXIgT3ZlcmZsb3cgSW50ZXJydXB0ICovCiNkZWZpbmUgUkNWQ0NPTQkJMHgxMDAwCS8qIFJlY2VpdmUgQ29sbGlzaW9uIENvdW50ZXIgT3ZlcmZsb3cgTWFzayAqLwojZGVmaW5lIFRYU1RSVAkJMHgwODAwCS8qIFRyYW5zbWl0IFN0YXJ0IFN0YXR1cyAqLwojZGVmaW5lIFRYU1RSVE0JCTB4MDQwMAkvKiBUcmFuc21pdCBTdGFydCBNYXNrICovCiNkZWZpbmUgSkFCCQkweDAyMDAJLyogSmFiYmVyIEVycm9yICovCiNkZWZpbmUgSkFCTQkJMHgwMTAwCS8qIEphYmJlciBFcnJvciBNYXNrICovCgoKICAgIC8qCiAgICAgKglCaXQgZGVmaW5pdGlvbnMgZm9yIENTUjE1IChNb2RlIFJlZ2lzdGVyKQogICAgICoKICAgICAqCVRoZXNlIHZhbHVlcyBhcmUgYWxyZWFkeSBzd2FwKCllZCEhCiAgICAgKi8KCiNkZWZpbmUgUFJPTQkJMHgwMDgwCS8qIFByb21pc2N1b3VzIE1vZGUgKi8KI2RlZmluZSBEUkNWQkMJCTB4MDA0MAkvKiBEaXNhYmxlIFJlY2VpdmUgQnJvYWRjYXN0ICovCiNkZWZpbmUgRFJDVlBBCQkweDAwMjAJLyogRGlzYWJsZSBSZWNlaXZlIFBoeXNpY2FsIEFkZHJlc3MgKi8KI2RlZmluZSBETE5LVFNUCQkweDAwMTAJLyogRGlzYWJsZSBMaW5rIFN0YXR1cyAqLwojZGVmaW5lIERBUEMJCTB4MDAwOAkvKiBEaXNhYmxlIEF1dG9tYXRpYyBQb2xhcml0eSBDb3JyZWN0aW9uICovCiNkZWZpbmUgTUVOREVDTAkJMHgwMDA0CS8qIE1FTkRFQyBMb29wYmFjayBNb2RlICovCiNkZWZpbmUgTFJUVFNFTAkJMHgwMDAyCS8qIExvdyBSZWNlaXZlIFRyZXNob2xkL1RyYW5zbWl0IE1vZGUgU2VsZWN0ICovCiNkZWZpbmUgUE9SVFNFTDEJMHgwMDAxCS8qIFBvcnQgU2VsZWN0IEJpdHMgKi8KI2RlZmluZSBQT1JUU0VMMgkweDgwMDAJLyogUG9ydCBTZWxlY3QgQml0cyAqLwojZGVmaW5lIElOVEwJCTB4NDAwMAkvKiBJbnRlcm5hbCBMb29wYmFjayAqLwojZGVmaW5lIERSVFkJCTB4MjAwMAkvKiBEaXNhYmxlIFJldHJ5ICovCiNkZWZpbmUgRkNPTEwJCTB4MTAwMAkvKiBGb3JjZSBDb2xsaXNpb24gKi8KI2RlZmluZSBEWE1URkNTCQkweDA4MDAJLyogRGlzYWJsZSBUcmFuc21pdCBDUkMgKi8KI2RlZmluZSBMT09QCQkweDA0MDAJLyogTG9vcGJhY2sgRW5hYmxlICovCiNkZWZpbmUgRFRYCQkweDAyMDAJLyogRGlzYWJsZSBUcmFuc21pdHRlciAqLwojZGVmaW5lIERSWAkJMHgwMTAwCS8qIERpc2FibGUgUmVjZWl2ZXIgKi8KCgogICAgLyoKICAgICAqCUJpdCBkZWZpbml0aW9ucyBmb3IgSVNBQ1NSMiAoTWlzY2VsbGFuZW91cyBDb25maWd1cmF0aW9uKQogICAgICoKICAgICAqCVRoZXNlIHZhbHVlcyBhcmUgYWxyZWFkeSBzd2FwKCllZCEhCiAgICAgKi8KCiNkZWZpbmUgQVNFTAkJMHgwMjAwCS8qIE1lZGlhIEludGVyZmFjZSBQb3J0IEF1dG8gU2VsZWN0ICovCgoKICAgIC8qCiAgICAgKglCaXQgZGVmaW5pdGlvbnMgZm9yIElTQUNTUjUtNyAoTEVEMS0zIFN0YXR1cykKICAgICAqCiAgICAgKglUaGVzZSB2YWx1ZXMgYXJlIGFscmVhZHkgc3dhcCgpZWQhIQogICAgICovCgojZGVmaW5lIExFRE9VVAkJMHgwMDgwCS8qIEN1cnJlbnQgTEVEIFN0YXR1cyAqLwojZGVmaW5lIFBTRQkJMHg4MDAwCS8qIFB1bHNlIFN0cmV0Y2hlciBFbmFibGUgKi8KI2RlZmluZSBYTVRFCQkweDEwMDAJLyogRW5hYmxlIFRyYW5zbWl0IFN0YXR1cyBTaWduYWwgKi8KI2RlZmluZSBSVlBPTEUJCTB4MDgwMAkvKiBFbmFibGUgUmVjZWl2ZSBQb2xhcml0eSBTaWduYWwgKi8KI2RlZmluZSBSQ1ZFCQkweDA0MDAJLyogRW5hYmxlIFJlY2VpdmUgU3RhdHVzIFNpZ25hbCAqLwojZGVmaW5lIEpBQkUJCTB4MDIwMAkvKiBFbmFibGUgSmFiYmVyIFNpZ25hbCAqLwojZGVmaW5lIENPTEUJCTB4MDEwMAkvKiBFbmFibGUgQ29sbGlzaW9uIFNpZ25hbCAqLwoKCiAgICAvKgogICAgICoJUmVjZWl2ZSBEZXNjcmlwdG9yIFJpbmcgRW50cnkKICAgICAqLwoKc3RydWN0IFJEUkUgewogICAgdm9sYXRpbGUgdV9zaG9ydCBSTUQwOwkvKiBMQURSWzE1OjBdICovCiAgICB2b2xhdGlsZSB1X3Nob3J0IFJNRDE7CS8qIEhBRFJbMjM6MTZdIHwgUmVjZWl2ZSBGbGFncyAqLwogICAgdm9sYXRpbGUgdV9zaG9ydCBSTUQyOwkvKiBCdWZmZXIgQnl0ZSBDb3VudCAodHdvJ3MgY29tcGxlbWVudCkgKi8KICAgIHZvbGF0aWxlIHVfc2hvcnQgUk1EMzsJLyogTWVzc2FnZSBCeXRlIENvdW50ICovCn07CgoKICAgIC8qCiAgICAgKglUcmFuc21pdCBEZXNjcmlwdG9yIFJpbmcgRW50cnkKICAgICAqLwoKc3RydWN0IFREUkUgewogICAgdm9sYXRpbGUgdV9zaG9ydCBUTUQwOwkvKiBMQURSWzE1OjBdICovCiAgICB2b2xhdGlsZSB1X3Nob3J0IFRNRDE7CS8qIEhBRFJbMjM6MTZdIHwgVHJhbnNtaXQgRmxhZ3MgKi8KICAgIHZvbGF0aWxlIHVfc2hvcnQgVE1EMjsJLyogQnVmZmVyIEJ5dGUgQ291bnQgKHR3bydzIGNvbXBsZW1lbnQpICovCiAgICB2b2xhdGlsZSB1X3Nob3J0IFRNRDM7CS8qIEVycm9yIEZsYWdzICovCn07CgoKICAgIC8qCiAgICAgKglSZWNlaXZlIEZsYWdzCiAgICAgKi8KCiNkZWZpbmUgUkZfT1dOCQkweDAwODAJLyogUENuZXQtSVNBIGNvbnRyb2xsZXIgb3ducyB0aGUgZGVzY3JpcHRvciAqLwojZGVmaW5lIFJGX0VSUgkJMHgwMDQwCS8qIEVycm9yICovCiNkZWZpbmUgUkZfRlJBTQkJMHgwMDIwCS8qIEZyYW1pbmcgRXJyb3IgKi8KI2RlZmluZSBSRl9PRkxPCQkweDAwMTAJLyogT3ZlcmZsb3cgRXJyb3IgKi8KI2RlZmluZSBSRl9DUkMJCTB4MDAwOAkvKiBDUkMgRXJyb3IgKi8KI2RlZmluZSBSRl9CVUZGCQkweDAwMDQJLyogQnVmZmVyIEVycm9yICovCiNkZWZpbmUgUkZfU1RQCQkweDAwMDIJLyogU3RhcnQgb2YgUGFja2V0ICovCiNkZWZpbmUgUkZfRU5QCQkweDAwMDEJLyogRW5kIG9mIFBhY2tldCAqLwoKCiAgICAvKgogICAgICoJVHJhbnNtaXQgRmxhZ3MKICAgICAqLwoKI2RlZmluZSBURl9PV04JCTB4MDA4MAkvKiBQQ25ldC1JU0EgY29udHJvbGxlciBvd25zIHRoZSBkZXNjcmlwdG9yICovCiNkZWZpbmUgVEZfRVJSCQkweDAwNDAJLyogRXJyb3IgKi8KI2RlZmluZSBURl9BRERfRkNTCTB4MDAyMAkvKiBDb250cm9scyBGQ1MgR2VuZXJhdGlvbiAqLwojZGVmaW5lIFRGX01PUkUJCTB4MDAxMAkvKiBNb3JlIHRoYW4gb25lIHJldHJ5IG5lZWRlZCAqLwojZGVmaW5lIFRGX09ORQkJMHgwMDA4CS8qIE9uZSByZXRyeSBuZWVkZWQgKi8KI2RlZmluZSBURl9ERUYJCTB4MDAwNAkvKiBEZWZlcnJlZCAqLwojZGVmaW5lIFRGX1NUUAkJMHgwMDAyCS8qIFN0YXJ0IG9mIFBhY2tldCAqLwojZGVmaW5lIFRGX0VOUAkJMHgwMDAxCS8qIEVuZCBvZiBQYWNrZXQgKi8KCgogICAgLyoKICAgICAqCUVycm9yIEZsYWdzCiAgICAgKi8KCiNkZWZpbmUgRUZfQlVGRgkJMHgwMDgwCS8qIEJ1ZmZlciBFcnJvciAqLwojZGVmaW5lIEVGX1VGTE8JCTB4MDA0MAkvKiBVbmRlcmZsb3cgRXJyb3IgKi8KI2RlZmluZSBFRl9MQ09MCQkweDAwMTAJLyogTGF0ZSBDb2xsaXNpb24gKi8KI2RlZmluZSBFRl9MQ0FSCQkweDAwMDgJLyogTG9zcyBvZiBDYXJyaWVyICovCiNkZWZpbmUgRUZfUlRSWQkJMHgwMDA0CS8qIFJldHJ5IEVycm9yICovCiNkZWZpbmUgRUZfVERSCQkweGZmMDMJLyogVGltZSBEb21haW4gUmVmbGVjdG9tZXRyeSAqLwoKCgogICAgLyoKICAgICAqCU1DNjgyMzAgUGFyYWxsZWwgSW50ZXJmYWNlL1RpbWVyCiAgICAgKi8KCnN0cnVjdCBNQzY4MjMwIHsKICAgIHZvbGF0aWxlIHVfY2hhciBQR0NSOwkvKiBQb3J0IEdlbmVyYWwgQ29udHJvbCBSZWdpc3RlciAqLwogICAgdV9jaGFyIFBhZDFbMV07CiAgICB2b2xhdGlsZSB1X2NoYXIgUFNSUjsJLyogUG9ydCBTZXJ2aWNlIFJlcXVlc3QgUmVnaXN0ZXIgKi8KICAgIHVfY2hhciBQYWQyWzFdOwogICAgdm9sYXRpbGUgdV9jaGFyIFBBRERSOwkvKiBQb3J0IEEgRGF0YSBEaXJlY3Rpb24gUmVnaXN0ZXIgKi8KICAgIHVfY2hhciBQYWQzWzFdOwogICAgdm9sYXRpbGUgdV9jaGFyIFBCRERSOwkvKiBQb3J0IEIgRGF0YSBEaXJlY3Rpb24gUmVnaXN0ZXIgKi8KICAgIHVfY2hhciBQYWQ0WzFdOwogICAgdm9sYXRpbGUgdV9jaGFyIFBDRERSOwkvKiBQb3J0IEMgRGF0YSBEaXJlY3Rpb24gUmVnaXN0ZXIgKi8KICAgIHVfY2hhciBQYWQ1WzFdOwogICAgdm9sYXRpbGUgdV9jaGFyIFBJVlI7CS8qIFBvcnQgSW50ZXJydXB0IFZlY3RvciBSZWdpc3RlciAqLwogICAgdV9jaGFyIFBhZDZbMV07CiAgICB2b2xhdGlsZSB1X2NoYXIgUEFDUjsJLyogUG9ydCBBIENvbnRyb2wgUmVnaXN0ZXIgKi8KICAgIHVfY2hhciBQYWQ3WzFdOwogICAgdm9sYXRpbGUgdV9jaGFyIFBCQ1I7CS8qIFBvcnQgQiBDb250cm9sIFJlZ2lzdGVyICovCiAgICB1X2NoYXIgUGFkOFsxXTsKICAgIHZvbGF0aWxlIHVfY2hhciBQQURSOwkvKiBQb3J0IEEgRGF0YSBSZWdpc3RlciAqLwogICAgdV9jaGFyIFBhZDlbMV07CiAgICB2b2xhdGlsZSB1X2NoYXIgUEJEUjsJLyogUG9ydCBCIERhdGEgUmVnaXN0ZXIgKi8KICAgIHVfY2hhciBQYWQxMFsxXTsKICAgIHZvbGF0aWxlIHVfY2hhciBQQUFSOwkvKiBQb3J0IEEgQWx0ZXJuYXRlIFJlZ2lzdGVyICovCiAgICB1X2NoYXIgUGFkMTFbMV07CiAgICB2b2xhdGlsZSB1X2NoYXIgUEJBUjsJLyogUG9ydCBCIEFsdGVybmF0ZSBSZWdpc3RlciAqLwogICAgdV9jaGFyIFBhZDEyWzFdOwogICAgdm9sYXRpbGUgdV9jaGFyIFBDRFI7CS8qIFBvcnQgQyBEYXRhIFJlZ2lzdGVyICovCiAgICB1X2NoYXIgUGFkMTNbMV07CiAgICB2b2xhdGlsZSB1X2NoYXIgUFNSOwkvKiBQb3J0IFN0YXR1cyBSZWdpc3RlciAqLwogICAgdV9jaGFyIFBhZDE0WzVdOwogICAgdm9sYXRpbGUgdV9jaGFyIFRDUjsJLyogVGltZXIgQ29udHJvbCBSZWdpc3RlciAqLwogICAgdV9jaGFyIFBhZDE1WzFdOwogICAgdm9sYXRpbGUgdV9jaGFyIFRJVlI7CS8qIFRpbWVyIEludGVycnVwdCBWZWN0b3IgUmVnaXN0ZXIgKi8KICAgIHVfY2hhciBQYWQxNlszXTsKICAgIHZvbGF0aWxlIHVfY2hhciBDUFJIOwkvKiBDb3VudGVyIFByZWxvYWQgUmVnaXN0ZXIgKEhpZ2gpICovCiAgICB1X2NoYXIgUGFkMTdbMV07CiAgICB2b2xhdGlsZSB1X2NoYXIgQ1BSTTsJLyogQ291bnRlciBQcmVsb2FkIFJlZ2lzdGVyIChNaWQpICovCiAgICB1X2NoYXIgUGFkMThbMV07CiAgICB2b2xhdGlsZSB1X2NoYXIgQ1BSTDsJLyogQ291bnRlciBQcmVsb2FkIFJlZ2lzdGVyIChMb3cpICovCiAgICB1X2NoYXIgUGFkMTlbM107CiAgICB2b2xhdGlsZSB1X2NoYXIgQ05UUkg7CS8qIENvdW50IFJlZ2lzdGVyIChIaWdoKSAqLwogICAgdV9jaGFyIFBhZDIwWzFdOwogICAgdm9sYXRpbGUgdV9jaGFyIENOVFJNOwkvKiBDb3VudCBSZWdpc3RlciAoTWlkKSAqLwogICAgdV9jaGFyIFBhZDIxWzFdOwogICAgdm9sYXRpbGUgdV9jaGFyIENOVFJMOwkvKiBDb3VudCBSZWdpc3RlciAoTG93KSAqLwogICAgdV9jaGFyIFBhZDIyWzFdOwogICAgdm9sYXRpbGUgdV9jaGFyIFRTUjsJLyogVGltZXIgU3RhdHVzIFJlZ2lzdGVyICovCiAgICB1X2NoYXIgUGFkMjNbMTFdOwp9OwoKCiAgICAvKgogICAgICoJQXJpYWRuZSBFeHBhbnNpb24gQm9hcmQgU3RydWN0dXJlCiAgICAgKi8KCiNkZWZpbmUgQVJJQURORV9MQU5DRQkJMHgzNjAKCiNkZWZpbmUgQVJJQURORV9QSVQJCTB4MTAwMAoKI2RlZmluZSBBUklBRE5FX0JPT1RQUk9NCTB4NDAwMAkvKiBJIGd1ZXNzIGl0J3MgaGVyZSA6LSkgKi8KI2RlZmluZSBBUklBRE5FX0JPT1RQUk9NX1NJWkUJMHg0MDAwCgojZGVmaW5lIEFSSUFETkVfUkFNCQkweDgwMDAJLyogQWx3YXlzIGFjY2VzcyBXT1JEcyEhICovCiNkZWZpbmUgQVJJQURORV9SQU1fU0laRQkweDgwMDAKCg==