LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcCgogIENvcHlyaWdodCAoQykgMTk5MSwgMTk5MiBUV0FJTiBXb3JraW5nIEdyb3VwOiBBbGR1cywgQ2FlcmUsIEVhc3RtYW4tS29kYWssCiAgSGV3bGV0dC1QYWNrYXJkIGFuZCBMb2dpdGVjaCBDb3Jwb3JhdGlvbnMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgoKICBDb3B5cmlnaHQgKEMpIDE5OTcgVFdBSU4gV29ya2luZyBHcm91cDogQmVsbCtIb3dlbGwsIENhbm9uLCBEb2N1TWFnaXgsIAogIEZ1aml0c3UsIEdlbm9hIFRlY2hub2xvZ3ksIEhld2xldHQtUGFja2FyZCwgS29mYXggSW1hZ2luZyBQcm9kdWN0cywgYW5kCiAgUmljb2ggQ29ycG9yYXRpb24uICBBbGwgcmlnaHRzIHJlc2VydmVkLgogCiAgQ29weXJpZ2h0IKkgMTk5OCBUV0FJTiBXb3JraW5nIEdyb3VwOiBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZCwgCiAgQ2Fub24gSW5mb3JtYXRpb24gU3lzdGVtcywgRWFzdG1hbiBLb2RhayBDb21wYW55LCAKICBGdWppdHN1IENvbXB1dGVyIFByb2R1Y3RzIG9mIEFtZXJpY2EsIEdlbm9hIFRlY2hub2xvZ3ksIAogIEhld2xldHQtUGFja2FyZCBDb21wYW55LCBJbnRlbCBDb3Jwb3JhdGlvbiwgS29mYXggSW1hZ2UgUHJvZHVjdHMsIAogIEpGTCBQZXJpcGhlcmFsIFNvbHV0aW9ucyBJbmMuLCBSaWNvaCBDb3Jwb3JhdGlvbiwgYW5kIFhlcm94IENvcnBvcmF0aW9uLiAgCiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KCiAgVFdBSU4uaCAtICBUaGlzIGlzIHRoZSBkZWZpbml0aXZlIGluY2x1ZGUgZmlsZSBmb3IgYXBwbGljYXRpb25zIGFuZAogICAgICAgICAgZGF0YSBzb3VyY2VzIHdyaXR0ZW4gdG8gdGhlIFRXQUlOIHNwZWNpZmljYXRpb24uCiAgICAgICAgICBJdCBkZWZpbmVzIGNvbnN0YW50cywgZGF0YSBzdHJ1Y3R1cmVzLCBtZXNzYWdlcyBldGMuCiAgICAgICAgICBmb3IgdGhlIHB1YmxpYyBpbnRlcmZhY2UgdG8gVFdBSU4uCiAKICBSZXZpc2lvbiBIaXN0b3J5OgogICAgdmVyc2lvbiAxLjAsIE1hcmNoIDYsIDE5OTIuICBUV0FJTiAxLjAuCiAgICB2ZXJzaW9uIDEuMSwgSmFudWFyeSAxOTkzLiAgIFRlY2ggTm90ZXMgMS4xCiAgICB2ZXJzaW9uIDEuNSwgSnVuZSAxOTkzLiAgICAgIFNwZWNpZmljYXRpb24gVXBkYXRlIDEuNQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFuZ2UgREMgdG8gVFcgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYW5nZSBmaWxlbmFtZSBmcm9tIERDLkggdG8gVFdBSU4uSAogICAgdmVyc2lvbiAxLjUsIEp1bHkgMTk5My4gICAgICBSZW1vdmUgc3BhY2VzIGZyb20gY291bnRyeSBpZGVudGlmaWVycwogCiAgICB2ZXJzaW9uIDEuNywgSnVseSAxOTk3ICAgICAgIEFkZGVkIENhcGFiaWxpdGllcyBhbmQgZGF0YSBzdHJ1Y3R1cmUgZm9yIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCBpbWFnaW5nIGFuZCBkaWdpdGFsIGNhbWVyYXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtITC4KICAgIHZlcnNpb24gMS43LCBKdWx5IDE5OTcgICAgICAgSW5zZXJ0ZWQgQm9ybGFuZCBjb21wYXRpYmlsZSBzdHJ1Y3R1cmUgcGFja2luZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RpdmVzIHByb3ZpZGVkIGJ5IE1lbnRvci4gIEpNSAogICAgdmVyc2lvbiAxLjcsIEF1ZyAxOTk3ICAgICAgICBFeHBhbmRlZCBmaWxlIHRhYnMgdG8gc3BhY2VzLiAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5PVEU6IGZ1dHVyZSBhdXRob3JzIHNob3VsZCBiZSBzdXJlIHRvIGhhdmUgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZWlyIGVkaXRvcnMgc2V0IHRvIGF1dG9tYXRpY2FsbHkgZXhwYW5kIHRhYnMgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHNwYWNlcyAob3JpZ2luYWwgdGFiIHNldHRpbmcgd2FzIDQgc3BhY2VzKS4KICAgIHZlcnNpb24gMS43LCBTZXB0IDE5OTcgICAgICAgQWRkZWQgam9iIGNvbnRyb2wgdmFsdWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIHJldHVybiBjb2RlcwogICAgdmVyc2lvbiAxLjcsIFNlcHQgMTk5NyAgICAgICBjaGFuZ2VkIGRlZmluaXRpb24gb2YgcFJHQlJFU1BPTlNFIHRvIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwVFdfUkdCUkVTUE9OU0UKICAgIHZlcnNpb24gMS43ICBBdWcgMTk5OCAgICAgICAgQWRkZWQgbWlzc2luZyBUV0VJX0JBUkNPREVST1RBVElPTiB2YWx1ZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdCQ09SXyB0eXBlcyBKTUgKICAgIHZlcnNpb24gMS44ICBBdWd1c3QgMTk5OCAgICAgQWRkZWQgbmV3IHR5cGVzIGFuZCBkZWZpbml0aW9ucyByZXF1aXJlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgMS44IFNwZWNpZmljYXRpb24gSk1ICiAgICB2ZXJzaW9uIDEuOCAgSmFudWFyeSAxOTk5ICAgIENoYW5nZWQgc2VhcmNoIG1vZGUgZnJvbSBTUkNIXyB0byBUV0JEXyBhcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiAxLjggU3BlY2lmaWNhdGlvbiwgYWRkZWQgVFdCVF9NQVhJQ09ERQlKTUgKICAgIHZlcnNpb24gMS44ICBKYW51YXJ5IDE5OTkgICAgUmVtb3ZlZCB1bmRvY3VtZW50ZWQgZHVwbGljYXRlIEFVVE88Y2FwPiBKTUgKXCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojaWZuZGVmIFRXQUlOCiNkZWZpbmUgVFdBSU4KCi8qICBTREggLSAwMi8wOC85NSAtIFRXVU5LICovCi8qICBGb3JjZSAzMi1iaXQgdHdhaW4gdG8gdXNlIHNhbWUgcGFja2luZyBvZiB0d2FpbiBzdHJ1Y3R1cmVzIGFzIGV4aXN0aW5nICovCi8qICAxNi1iaXQgdHdhaW4uICBUaGlzIGFsbG93cyAxNi8zMi1iaXQgdGh1bmtpbmcuICAgICAgICAgICAgICAgICAgICAgICAgICovCiNpZmRlZiAgV0lOMzIKICAgICNpZmRlZiBfX0JPUkxBTkRDX18gLy8oTWVudG9yIEp1bmUgMTMsIDE5OTYpIGlmIHVzaW5nIGEgQm9ybGFuZCBjb21waWxlcgogICAgICAgICNwcmFnbWEgb3B0aW9uIC1hMiAgLy8oTWVudG9yIEp1bmUgMTMsIDE5OTYpIHN3aXRjaCB0byB3b3JkIGFsaWdubWVudAogICAgI2Vsc2UgICAvLyhNZW50b3IgSnVuZSAxMywgMTk5NikgaWYgd2UncmUgdXNpbmcgc29tZSBvdGhlciBjb21waWxlcgogICAgICAgICNwcmFnbWEgcGFjayAocHVzaCwgYmVmb3JlX3R3YWluKQogICAgICAgICNwcmFnbWEgcGFjayAoMikKICAgICNlbmRpZiAgLy8oTWVudG9yIEp1bmUgMTMsIDE5OTYpCiNlbHNlICAgLyogV0lOMzIgKi8KI2VuZGlmICAvKiBXSU4zMiAqLwoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogVFdBSU4gVmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiNkZWZpbmUgVFdPTl9QUk9UT0NPTE1JTk9SICAgOCAgICAgICAgLyogQ2hhbmdlZCBmb3IgVmVyc2lvbiAxLjggICAgICAgICAgICAqLwojZGVmaW5lIFRXT05fUFJPVE9DT0xNQUpPUiAgIDEKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIFBsYXRmb3JtIERlcGVuZGVudCBEZWZpbml0aW9ucyBhbmQgVHlwZWRlZnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKLyogRGVmaW5lIG9uZSBvZiB0aGUgZm9sbG93aW5nLCBkZXBlbmRpbmcgb24gdGhlIHBsYXRmb3JtICovCi8qICNkZWZpbmUgX01BQ18gICAqLwojZGVmaW5lIF9VTklYXwovKiNkZWZpbmUgX01TV0lOXyAgKi8KCiNpZmRlZiAgX01TV0lOXwogICAgdHlwZWRlZiBIQU5ETEUgICAgICAgICBUV19IQU5ETEU7CiAgICB0eXBlZGVmIExQVk9JRCAgICAgICAgIFRXX01FTVJFRjsKCiAgICAvKiAgU0RIIC0gMDUvMDUvOTUgLSBUV1VOSyAqLwogICAgLyogIEZvciBjb21tb24gY29kZSBiZXR3ZWVuIDE2IGFuZCAzMiBiaXRzLiAgKi8KICAgICNpZmRlZiAgV0lOMzIKICAgICAgICAjZGVmaW5lIFRXX0hVR0UKICAgICNlbHNlICAgLyogV0lOMzIgKi8KICAgICAgICAjZGVmaW5lIFRXX0hVR0UgICAgaHVnZQogICAgI2VuZGlmICAvKiBXSU4zMiAqLwogICAgdHlwZWRlZiBCWVRFIFRXX0hVR0UgKiBIUEJZVEU7CiAgICB0eXBlZGVmIHZvaWQgVFdfSFVHRSAqIEhQVk9JRDsKI2VuZGlmICAvKiBfTVNXSU5fICovCgojaWZkZWYgIF9NQUNfCiAgICAjZGVmaW5lIFBBU0NBTCAgICAgICAgIHBhc2NhbAogICAgI2RlZmluZSBGQVIKICAgIHR5cGVkZWYgSGFuZGxlICAgICAgICAgVFdfSEFORExFOwogICAgdHlwZWRlZiBjaGFyICAgICAgICAgICpUV19NRU1SRUY7CiNlbmRpZiAgLyogX01BQ18gKi8KCiNpZmRlZiAgX1VOSVhfCi8qICAgICNkZWZpbmUgUEFTQ0FMICAgICAgICAgcGFzY2FsICovCiAgICAjZGVmaW5lIEZBUgogICAgdHlwZWRlZiB1bnNpZ25lZCBjaGFyICpUV19IQU5ETEU7CiAgICB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgKlRXX01FTVJFRjsKI2VuZGlmICAvKiBfVU5JWF8gKi8KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIFR5cGUgRGVmaW5pdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKLyogU3RyaW5nIHR5cGVzLiBUaGVzZSBpbmNsdWRlIHJvb20gZm9yIHRoZSBzdHJpbmdzIGFuZCBhIE5VTEwgY2hhciwgICAgICoKICogb3IsIG9uIHRoZSBNYWMsIGEgbGVuZ3RoIGJ5dGUgZm9sbG93ZWQgYnkgdGhlIHN0cmluZy4gICAgICAgICAgICAgICAgICoKICogVFdfU1RSMjU1IG11c3QgaG9sZCBsZXNzIHRoYW4gMjU2IGNoYXJzIHNvIGxlbmd0aCBmaXRzIGluIGZpcnN0IGJ5dGUuICovCnR5cGVkZWYgY2hhciAgICBUV19TVFIzMlszNF0sICAgICBGQVIgKnBUV19TVFIzMjsKdHlwZWRlZiBjaGFyICAgIFRXX1NUUjY0WzY2XSwgICAgIEZBUiAqcFRXX1NUUjY0Owp0eXBlZGVmIGNoYXIgICAgVFdfU1RSMTI4WzEzMF0sICAgRkFSICpwVFdfU1RSMTI4Owp0eXBlZGVmIGNoYXIgICAgVFdfU1RSMjU1WzI1Nl0sICAgRkFSICpwVFdfU1RSMjU1OwoKLyogTnVtZXJpYyB0eXBlcy4gKi8KdHlwZWRlZiBjaGFyICAgICAgICAgICBUV19JTlQ4LCAgIEZBUiAqcFRXX0lOVDg7CnR5cGVkZWYgc2hvcnQgICAgICAgICAgVFdfSU5UMTYsICBGQVIgKnBUV19JTlQxNjsgCnR5cGVkZWYgbG9uZyAgICAgICAgICAgVFdfSU5UMzIsICBGQVIgKnBUV19JTlQzMjsKdHlwZWRlZiB1bnNpZ25lZCBjaGFyICBUV19VSU5UOCwgIEZBUiAqcFRXX1VJTlQ4Owp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IFRXX1VJTlQxNiwgRkFSICpwVFdfVUlOVDE2Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgIFRXX1VJTlQzMiwgRkFSICpwVFdfVUlOVDMyOwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IFRXX0JPT0wsICAgRkFSICpwVFdfQk9PTDsgCgovKiBGaXhlZCBwb2ludCBzdHJ1Y3R1cmUgdHlwZS4gKi8KdHlwZWRlZiBzdHJ1Y3QgewogICAgVFdfSU5UMTYgICAgIFdob2xlOyAgICAgICAgLyogbWFpbnRhaW5zIHRoZSBzaWduICovCiAgICBUV19VSU5UMTYgICAgRnJhYzsKfSBUV19GSVgzMiwgIEZBUiAqcFRXX0ZJWDMyOwoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogU3RydWN0dXJlIERlZmluaXRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgovKiBObyBEQVQgbmVlZGVkLiAqLwp0eXBlZGVmIHN0cnVjdCB7CiAgIFRXX0ZJWDMyICAgWDsKICAgVFdfRklYMzIgICBZOwogICBUV19GSVgzMiAgIFo7Cn0gVFdfQ0lFUE9JTlQsIEZBUiAqIHBUV19DSUVQT0lOVDsKCi8qIE5vIERBVCBuZWVkZWQuICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfRklYMzIgICBTdGFydEluOwogICBUV19GSVgzMiAgIEJyZWFrSW47CiAgIFRXX0ZJWDMyICAgRW5kSW47CiAgIFRXX0ZJWDMyICAgU3RhcnRPdXQ7CiAgIFRXX0ZJWDMyICAgQnJlYWtPdXQ7CiAgIFRXX0ZJWDMyICAgRW5kT3V0OwogICBUV19GSVgzMiAgIEdhbW1hOwogICBUV19GSVgzMiAgIFNhbXBsZUNvdW50OyAgLyogaWYgPTAgdXNlIHRoZSBnYW1tYSAqLwp9IFRXX0RFQ09ERUZVTkNUSU9OLCBGQVIgKiBwVFdfREVDT0RFRlVOQ1RJT047CgovKiBObyBEQVQgbmVlZGVkLiAqLwp0eXBlZGVmIHN0cnVjdCB7CiAgIFRXX1VJTlQ4ICAgIEluZGV4OyAgICAvKiBWYWx1ZSB1c2VkIHRvIGluZGV4IGludG8gdGhlIGNvbG9yIHRhYmxlLiAqLwogICBUV19VSU5UOCAgICBDaGFubmVsMTsgLyogRmlyc3QgIHRyaS1zdGltdWx1cyB2YWx1ZSAoZS5nIFJlZCkgICAgICAgKi8KICAgVFdfVUlOVDggICAgQ2hhbm5lbDI7IC8qIFNlY29uZCB0cmktc3RpbXVsdXMgdmFsdWUgKGUuZyBHcmVlbikgICAgICovCiAgIFRXX1VJTlQ4ICAgIENoYW5uZWwzOyAvKiBUaGlyZCAgdHJpLXN0aW11bHVzIHZhbHVlIChlLmcgQmx1ZSkgICAgICAqLwp9IFRXX0VMRU1FTlQ4LCBGQVIgKiBwVFdfRUxFTUVOVDg7CgovKiBObyBEQVQuICBEZWZpbmVzIGEgZnJhbWUgcmVjdGFuZ2xlIGluIElDQVBfVU5JVFMgY29vcmRpbmF0ZXMuICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfRklYMzIgICBMZWZ0OwogICBUV19GSVgzMiAgIFRvcDsKICAgVFdfRklYMzIgICBSaWdodDsKICAgVFdfRklYMzIgICBCb3R0b207Cn0gVFdfRlJBTUUsIEZBUiAqIHBUV19GUkFNRTsKCi8qIE5vIERBVCBuZWVkZWQuICBVc2VkIHRvIG1hbmFnZSBtZW1vcnkgYnVmZmVycy4gKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19VSU5UMzIgIEZsYWdzOyAgLyogQW55IGNvbWJpbmF0aW9uIG9mIHRoZSBUV01GXyBjb25zdGFudHMuICAgICAgICAgICAqLwogICBUV19VSU5UMzIgIExlbmd0aDsgLyogTnVtYmVyIG9mIGJ5dGVzIHN0b3JlZCBpbiBidWZmZXIgVGhlTWVtLiAgICAgICAgICAqLwogICBUV19NRU1SRUYgIFRoZU1lbTsgLyogUG9pbnRlciBvciBoYW5kbGUgdG8gdGhlIGFsbG9jYXRlZCBtZW1vcnkgYnVmZmVyLiAqLwp9IFRXX01FTU9SWSwgRkFSICogcFRXX01FTU9SWTsKCi8qIE5vIERBVCBuZWVkZWQuICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfREVDT0RFRlVOQ1RJT04gICBEZWNvZGVbM107CiAgIFRXX0ZJWDMyICAgICAgICAgICAgTWl4WzNdWzNdOwp9IFRXX1RSQU5TRk9STVNUQUdFLCBGQVIgKiBwVFdfVFJBTlNGT1JNU1RBR0U7CgovKiBObyBEQVQgbmVlZGVkLiAgRGVzY3JpYmVzIHZlcnNpb24gb2Ygc29mdHdhcmUgY3VycmVudGx5IHJ1bm5pbmcuICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfVUlOVDE2ICBNYWpvck51bTsgIC8qIE1ham9yIHJldmlzaW9uIG51bWJlciBvZiB0aGUgc29mdHdhcmUuICovCiAgIFRXX1VJTlQxNiAgTWlub3JOdW07ICAvKiBJbmNyZW1lbnRhbCByZXZpc2lvbiBudW1iZXIgb2YgdGhlIHNvZnR3YXJlLiAqLwogICBUV19VSU5UMTYgIExhbmd1YWdlOyAgLyogZS5nLiBUV0xHX1NXSVNTRlJFTkNIICovCiAgIFRXX1VJTlQxNiAgQ291bnRyeTsgICAvKiBlLmcuIFRXQ1lfU1dJVFpFUkxBTkQgKi8KICAgVFdfU1RSMzIgICBJbmZvOyAgICAgIC8qIGUuZy4gIjEuMGIzIEJldGEgcmVsZWFzZSIgKi8KfSBUV19WRVJTSU9OLCBGQVIgKiBwVFdfVkVSU0lPTjsKCi8qIFRXT05fQVJSQVkuIENvbnRhaW5lciBmb3IgYXJyYXkgb2YgdmFsdWVzIChhIHNpbXBsaWZpZWQgVFdfRU5VTUVSQVRJT04pICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfVUlOVDE2ICBJdGVtVHlwZTsKICAgVFdfVUlOVDMyICBOdW1JdGVtczsgICAgLyogSG93IG1hbnkgaXRlbXMgaW4gSXRlbUxpc3QgICAgICAgICAgICovCiAgIFRXX1VJTlQ4ICAgSXRlbUxpc3RbMV07IC8qIEFycmF5IG9mIEl0ZW1UeXBlIHZhbHVlcyBzdGFydHMgaGVyZSAqLwp9IFRXX0FSUkFZLCBGQVIgKiBwVFdfQVJSQVk7CgovKiBUV09OX0VOVU1FUkFUSU9OLiBDb250YWluZXIgZm9yIGEgY29sbGVjdGlvbiBvZiB2YWx1ZXMuICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfVUlOVDE2ICBJdGVtVHlwZTsKICAgVFdfVUlOVDMyICBOdW1JdGVtczsgICAgIC8qIEhvdyBtYW55IGl0ZW1zIGluIEl0ZW1MaXN0ICAgICAgICAgICAgICAgICAqLwogICBUV19VSU5UMzIgIEN1cnJlbnRJbmRleDsgLyogQ3VycmVudCB2YWx1ZSBpcyBpbiBJdGVtTGlzdFtDdXJyZW50SW5kZXhdICovCiAgIFRXX1VJTlQzMiAgRGVmYXVsdEluZGV4OyAvKiBQb3dlcnVwIHZhbHVlIGlzIGluIEl0ZW1MaXN0W0RlZmF1bHRJbmRleF0gKi8KICAgVFdfVUlOVDggICBJdGVtTGlzdFsxXTsgIC8qIEFycmF5IG9mIEl0ZW1UeXBlIHZhbHVlcyBzdGFydHMgaGVyZSAgICAgICAqLwp9IFRXX0VOVU1FUkFUSU9OLCBGQVIgKiBwVFdfRU5VTUVSQVRJT047CgovKiBUV09OX09ORVZBTFVFLiBDb250YWluZXIgZm9yIG9uZSB2YWx1ZS4gKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19VSU5UMTYgIEl0ZW1UeXBlOwogICBUV19VSU5UMzIgIEl0ZW07Cn0gVFdfT05FVkFMVUUsIEZBUiAqIHBUV19PTkVWQUxVRTsKCi8qIFRXT05fUkFOR0UuIENvbnRhaW5lciBmb3IgYSByYW5nZSBvZiB2YWx1ZXMuICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfVUlOVDE2ICBJdGVtVHlwZTsKICAgVFdfVUlOVDMyICBNaW5WYWx1ZTsgICAgIC8qIFN0YXJ0aW5nIHZhbHVlIGluIHRoZSByYW5nZS4gICAgICAgICAgICovCiAgIFRXX1VJTlQzMiAgTWF4VmFsdWU7ICAgICAvKiBGaW5hbCB2YWx1ZSBpbiB0aGUgcmFuZ2UuICAgICAgICAgICAgICAqLwogICBUV19VSU5UMzIgIFN0ZXBTaXplOyAgICAgLyogSW5jcmVtZW50IGZyb20gTWluVmFsdWUgdG8gTWF4VmFsdWUuICAgKi8KICAgVFdfVUlOVDMyICBEZWZhdWx0VmFsdWU7IC8qIFBvd2VyLXVwIHZhbHVlLiAgICAgICAgICAgICAgICAgICAgICAgICovCiAgIFRXX1VJTlQzMiAgQ3VycmVudFZhbHVlOyAvKiBUaGUgdmFsdWUgdGhhdCBpcyBjdXJyZW50bHkgaW4gZWZmZWN0LiAqLwp9IFRXX1JBTkdFLCBGQVIgKiBwVFdfUkFOR0U7CgovKiBEQVRfQ0FQQUJJTElUWS4gVXNlZCBieSBhcHBsaWNhdGlvbiB0byBnZXQvc2V0IGNhcGFiaWxpdHkgZnJvbS9pbiBhIGRhdGEgc291cmNlLiAqLwp0eXBlZGVmIHN0cnVjdCB7CiAgIFRXX1VJTlQxNiAgQ2FwOyAvKiBpZCBvZiBjYXBhYmlsaXR5IHRvIHNldCBvciBnZXQsIGUuZy4gQ0FQX0JSSUdIVE5FU1MgKi8KICAgVFdfVUlOVDE2ICBDb25UeXBlOyAvKiBUV09OX09ORVZBTFVFLCBfUkFOR0UsIF9FTlVNRVJBVElPTiBvciBfQVJSQVkgICAqLwogICBUV19IQU5ETEUgIGhDb250YWluZXI7IC8qIEhhbmRsZSB0byBjb250YWluZXIgb2YgdHlwZSBEYXQgICAgICAgICAgICAgICovCn0gVFdfQ0FQQUJJTElUWSwgRkFSICogcFRXX0NBUEFCSUxJVFk7CgovKiBEQVRfQ0lFQ09MT1IuICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfVUlOVDE2ICAgICAgICAgICBDb2xvclNwYWNlOwogICBUV19JTlQxNiAgICAgICAgICAgIExvd0VuZGlhbjsKICAgVFdfSU5UMTYgICAgICAgICAgICBEZXZpY2VEZXBlbmRlbnQ7CiAgIFRXX0lOVDMyICAgICAgICAgICAgVmVyc2lvbk51bWJlcjsKICAgVFdfVFJBTlNGT1JNU1RBR0UgICBTdGFnZUFCQzsKICAgVFdfVFJBTlNGT1JNU1RBR0UgICBTdGFnZUxNTjsKICAgVFdfQ0lFUE9JTlQgICAgICAgICBXaGl0ZVBvaW50OwogICBUV19DSUVQT0lOVCAgICAgICAgIEJsYWNrUG9pbnQ7CiAgIFRXX0NJRVBPSU5UICAgICAgICAgV2hpdGVQYXBlcjsKICAgVFdfQ0lFUE9JTlQgICAgICAgICBCbGFja0luazsKICAgVFdfRklYMzIgICAgICAgICAgICBTYW1wbGVzWzFdOwp9IFRXX0NJRUNPTE9SLCBGQVIgKiBwVFdfQ0lFQ09MT1I7CgovKiBEQVRfRVZFTlQuIEZvciBwYXNzaW5nIGV2ZW50cyBkb3duIGZyb20gdGhlIGFwcGxpY2F0aW9uIHRvIHRoZSBEUy4gKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19NRU1SRUYgIHBFdmVudDsgICAgLyogV2luZG93cyBwTVNHIG9yIE1hYyBwRXZlbnQuICAgICAgICAgICAgICAgICAqLwogICBUV19VSU5UMTYgIFRXTWVzc2FnZTsgLyogVFcgbXNnIGZyb20gZGF0YSBzb3VyY2UsIGUuZy4gTVNHX1hGRVJSRUFEWSAqLwp9IFRXX0VWRU5ULCBGQVIgKiBwVFdfRVZFTlQ7CgovKiBEQVRfR1JBWVJFU1BPTlNFICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfRUxFTUVOVDggICAgICAgICBSZXNwb25zZVsxXTsKfSBUV19HUkFZUkVTUE9OU0UsIEZBUiAqIHBUV19HUkFZUkVTUE9OU0U7CgovKiBEQVRfSURFTlRJVFkuIElkZW50aWZpZXMgdGhlIHByb2dyYW0vbGlicmFyeS9jb2RlIHJlc291cmNlLiAqLwp0eXBlZGVmIHN0cnVjdCB7CiAgIFRXX1VJTlQzMiAgSWQ7ICAgICAgICAgICAgICAvKiBVbmlxdWUgbnVtYmVyLiAgSW4gV2luZG93cywgYXBwbGljYXRpb24gaFduZCAgICAgICovCiAgIFRXX1ZFUlNJT04gVmVyc2lvbjsgICAgICAgICAvKiBJZGVudGlmaWVzIHRoZSBwaWVjZSBvZiBjb2RlICAgICAgICAgICAgICAqLwogICBUV19VSU5UMTYgIFByb3RvY29sTWFqb3I7ICAgLyogQXBwbGljYXRpb24gYW5kIERTIG11c3Qgc2V0IHRvIFRXT05fUFJPVE9DT0xNQUpPUiAqLwogICBUV19VSU5UMTYgIFByb3RvY29sTWlub3I7ICAgLyogQXBwbGljYXRpb24gYW5kIERTIG11c3Qgc2V0IHRvIFRXT05fUFJPVE9DT0xNSU5PUiAqLwogICBUV19VSU5UMzIgIFN1cHBvcnRlZEdyb3VwczsgLyogQml0IGZpZWxkIE9SIGNvbWJpbmF0aW9uIG9mIERHXyBjb25zdGFudHMgKi8KICAgVFdfU1RSMzIgICBNYW51ZmFjdHVyZXI7ICAgIC8qIE1hbnVmYWN0dXJlciBuYW1lLCBlLmcuICJIZXdsZXR0LVBhY2thcmQiICovCiAgIFRXX1NUUjMyICAgUHJvZHVjdEZhbWlseTsgICAvKiBQcm9kdWN0IGZhbWlseSBuYW1lLCBlLmcuICJTY2FuSmV0IiAgICAgICAqLwogICBUV19TVFIzMiAgIFByb2R1Y3ROYW1lOyAgICAgLyogUHJvZHVjdCBuYW1lLCBlLmcuICJTY2FuSmV0IFBsdXMiICAgICAgICAgKi8KfSBUV19JREVOVElUWSwgRkFSICogcFRXX0lERU5USVRZOwoKLyogREFUX0lNQUdFSU5GTy4gQXBwbGljYXRpb24gZ2V0cyBkZXRhaWxlZCBpbWFnZSBpbmZvIGZyb20gRFMgd2l0aCB0aGlzLiAqLwp0eXBlZGVmIHN0cnVjdCB7CiAgIFRXX0ZJWDMyICAgWFJlc29sdXRpb247ICAgICAgLyogUmVzb2x1dGlvbiBpbiB0aGUgaG9yaXpvbnRhbCAgICAgICAgICAgICAqLwogICBUV19GSVgzMiAgIFlSZXNvbHV0aW9uOyAgICAgIC8qIFJlc29sdXRpb24gaW4gdGhlIHZlcnRpY2FsICAgICAgICAgICAgICAgKi8KICAgVFdfSU5UMzIgICBJbWFnZVdpZHRoOyAgICAgICAvKiBDb2x1bW5zIGluIHRoZSBpbWFnZSwgLTEgaWYgdW5rbm93biBieSBEUyovCiAgIFRXX0lOVDMyICAgSW1hZ2VMZW5ndGg7ICAgICAgLyogUm93cyBpbiB0aGUgaW1hZ2UsIC0xIGlmIHVua25vd24gYnkgRFMgICAqLwogICBUV19JTlQxNiAgIFNhbXBsZXNQZXJQaXhlbDsgIC8qIE51bWJlciBvZiBzYW1wbGVzIHBlciBwaXhlbCwgMyBmb3IgUkdCICAgKi8KICAgVFdfSU5UMTYgICBCaXRzUGVyU2FtcGxlWzhdOyAvKiBOdW1iZXIgb2YgYml0cyBmb3IgZWFjaCBzYW1wbGUgICAgICAgICAgICovCiAgIFRXX0lOVDE2ICAgQml0c1BlclBpeGVsOyAgICAgLyogTnVtYmVyIG9mIGJpdHMgZm9yIGVhY2ggcGFkZGVkIHBpeGVsICAgICAqLwogICBUV19CT09MICAgIFBsYW5hcjsgICAgICAgICAgIC8qIFRydWUgaWYgUGxhbmFyLCBGYWxzZSBpZiBjaHVua3kgICAgICAgICAgKi8KICAgVFdfSU5UMTYgICBQaXhlbFR5cGU7ICAgICAgICAvKiBIb3cgdG8gaW50ZXJwIGRhdGE7IHBob3RvIGludGVycCAoVFdQVF8pICovCiAgIFRXX1VJTlQxNiAgQ29tcHJlc3Npb247ICAgICAgLyogSG93IHRoZSBkYXRhIGlzIGNvbXByZXNzZWQgKFRXQ1BfeHh4eCkgICAqLwp9IFRXX0lNQUdFSU5GTywgRkFSICogcFRXX0lNQUdFSU5GTzsKCi8qIERBVF9JTUFHRUxBWU9VVC4gUHJvdmlkZXMgaW1hZ2UgbGF5b3V0IGluZm9ybWF0aW9uIGluIGN1cnJlbnQgdW5pdHMuICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfRlJBTUUgICBGcmFtZTsgICAgICAgICAgLyogRnJhbWUgY29vcmRzIHdpdGhpbiBsYXJnZXIgZG9jdW1lbnQgKi8KICAgVFdfVUlOVDMyICBEb2N1bWVudE51bWJlcjsKICAgVFdfVUlOVDMyICBQYWdlTnVtYmVyOyAgICAgLyogUmVzZXQgd2hlbiB5b3UgZ28gdG8gbmV4dCBkb2N1bWVudCAgKi8KICAgVFdfVUlOVDMyICBGcmFtZU51bWJlcjsgICAgLyogUmVzZXQgd2hlbiB5b3UgZ28gdG8gbmV4dCBwYWdlICAgICAgKi8KfSBUV19JTUFHRUxBWU9VVCwgRkFSICogcFRXX0lNQUdFTEFZT1VUOwoKLyogREFUX0lNQUdFTUVNWEZFUi4gVXNlZCB0byBwYXNzIGltYWdlIGRhdGEgKGUuZy4gaW4gc3RyaXBzKSBmcm9tIERTIHRvIGFwcGxpY2F0aW9uLiovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfVUlOVDE2ICBDb21wcmVzc2lvbjsgIC8qIEhvdyB0aGUgZGF0YSBpcyBjb21wcmVzc2VkICAgICAgICAgICAgICAgICovCiAgIFRXX1VJTlQzMiAgQnl0ZXNQZXJSb3c7ICAvKiBOdW1iZXIgb2YgYnl0ZXMgaW4gYSByb3cgb2YgZGF0YSAgICAgICAgICAqLwogICBUV19VSU5UMzIgIENvbHVtbnM7ICAgICAgLyogSG93IG1hbnkgY29sdW1ucyAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KICAgVFdfVUlOVDMyICBSb3dzOyAgICAgICAgIC8qIEhvdyBtYW55IHJvd3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAgIFRXX1VJTlQzMiAgWE9mZnNldDsgICAgICAvKiBIb3cgZmFyIGZyb20gdGhlIHNpZGUgb2YgdGhlIGltYWdlICAgICAgICAqLwogICBUV19VSU5UMzIgIFlPZmZzZXQ7ICAgICAgLyogSG93IGZhciBmcm9tIHRoZSB0b3Agb2YgdGhlIGltYWdlICAgICAgICAgKi8KICAgVFdfVUlOVDMyICBCeXRlc1dyaXR0ZW47IC8qIEhvdyBtYW55IGJ5dGVzIHdyaXR0ZW4gaW4gTWVtb3J5ICAgICAgICAgICovCiAgIFRXX01FTU9SWSAgTWVtb3J5OyAgICAgICAvKiBNZW0gc3RydWN0IHVzZWQgdG8gcGFzcyBhY3R1YWwgaW1hZ2UgZGF0YSAqLwp9IFRXX0lNQUdFTUVNWEZFUiwgRkFSICogcFRXX0lNQUdFTUVNWEZFUjsKCi8qIENoYW5nZWQgaW4gMS4xOiBRdWFudFRhYmxlLCBIdWZmbWFuREMsIEh1ZmZtYW5BQyBUV19NRU1SRUYgLT4gVFdfTUVNT1JZICAqLwovKiBEQVRfSlBFR0NPTVBSRVNTSU9OLiBCYXNlZCBvbiBKUEVHIERyYWZ0IEludGVybmF0aW9uYWwgU3RkLCB2ZXIgMTA5MTgtMS4gKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19VSU5UMTYgICBDb2xvclNwYWNlOyAgICAgICAvKiBPbmUgb2YgdGhlIFRXUFRfeHh4eCB2YWx1ZXMgICAgICAgICAgICAgICAgKi8KICAgVFdfVUlOVDMyICAgU3ViU2FtcGxpbmc7ICAgICAgLyogVHdvIHdvcmQgImFycmF5IiBmb3Igc3Vic2FtcGxpbmcgdmFsdWVzICAgICovCiAgIFRXX1VJTlQxNiAgIE51bUNvbXBvbmVudHM7ICAgIC8qIE51bWJlciBvZiBjb2xvciBjb21wb25lbnRzIGluIGltYWdlICAgICAgICAqLwogICBUV19VSU5UMTYgICBSZXN0YXJ0RnJlcXVlbmN5OyAvKiBGcmVxdWVuY3kgb2YgcmVzdGFydCBtYXJrZXIgY29kZXMgaW4gTURVJ3MgKi8KICAgVFdfVUlOVDE2ICAgUXVhbnRNYXBbNF07ICAgICAgLyogTWFwcGluZyBvZiBjb21wb25lbnRzIHRvIFF1YW50VGFibGVzICAgICAgICovCiAgIFRXX01FTU9SWSAgIFF1YW50VGFibGVbNF07ICAgIC8qIFF1YW50aXphdGlvbiB0YWJsZXMgICAgICAgICAgICAgICAgICAgICAgICAqLwogICBUV19VSU5UMTYgICBIdWZmbWFuTWFwWzRdOyAgICAvKiBNYXBwaW5nIG9mIGNvbXBvbmVudHMgdG8gSHVmZm1hbiB0YWJsZXMgICAgKi8KICAgVFdfTUVNT1JZICAgSHVmZm1hbkRDWzJdOyAgICAgLyogREMgSHVmZm1hbiB0YWJsZXMgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAgIFRXX01FTU9SWSAgIEh1ZmZtYW5BQ1syXTsgICAgIC8qIEFDIEh1ZmZtYW4gdGFibGVzICAgICAgICAgICAgICAgICAgICAgICAgICAqLwp9IFRXX0pQRUdDT01QUkVTU0lPTiwgRkFSICogcFRXX0pQRUdDT01QUkVTU0lPTjsKCi8qIERBVF9QQUxFVFRFOC4gQ29sb3IgcGFsZXR0ZSB3aGVuIFRXUFRfUEFMRVRURSBwaXhlbHMgeGZlcidkIGluIG1lbSBidWYuICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfVUlOVDE2ICAgIE51bUNvbG9yczsgICAvKiBOdW1iZXIgb2YgY29sb3JzIGluIHRoZSBjb2xvciB0YWJsZS4gICovCiAgIFRXX1VJTlQxNiAgICBQYWxldHRlVHlwZTsgLyogVFdQQV94eHh4LCBzcGVjaWZpZXMgdHlwZSBvZiBwYWxldHRlLiAqLwogICBUV19FTEVNRU5UOCAgQ29sb3JzWzI1Nl07IC8qIEFycmF5IG9mIHBhbGV0dGUgdmFsdWVzIHN0YXJ0cyBoZXJlLiAgKi8KfSBUV19QQUxFVFRFOCwgRkFSICogcFRXX1BBTEVUVEU4OwoKLyogREFUX1BFTkRJTkdYRkVSUy4gVXNlZCB3aXRoIE1TR19FTkRYRkVSIHRvIGluZGljYXRlIGFkZGl0aW9uYWwgZGF0YS4gKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19VSU5UMTYgQ291bnQ7CiAgIHVuaW9uIHsKICAgICAgVFdfVUlOVDMyIEVPSjsKICAgICAgVFdfVUlOVDMyIFJlc2VydmVkOwogICB9IERVTU1ZVU5JT05OQU1FOwp9IFRXX1BFTkRJTkdYRkVSUywgRkFSICpwVFdfUEVORElOR1hGRVJTOwoKLyogREFUX1JHQlJFU1BPTlNFICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfRUxFTUVOVDggICAgICAgICBSZXNwb25zZVsxXTsKfSBUV19SR0JSRVNQT05TRSwgRkFSICogcFRXX1JHQlJFU1BPTlNFOwoKLyogREFUX1NFVFVQRklMRVhGRVIuIFNldHMgdXAgRFMgdG8gYXBwbGljYXRpb24gZGF0YSB0cmFuc2ZlciB2aWEgYSBmaWxlLiAqLwp0eXBlZGVmIHN0cnVjdCB7CiAgIFRXX1NUUjI1NSBGaWxlTmFtZTsKICAgVFdfVUlOVDE2IEZvcm1hdDsgICAvKiBBbnkgVFdGRl8gY29uc3RhbnQgKi8KICAgVFdfSU5UMTYgIFZSZWZOdW07ICAvKiBVc2VkIGZvciBNYWMgb25seSAgKi8KfSBUV19TRVRVUEZJTEVYRkVSLCBGQVIgKiBwVFdfU0VUVVBGSUxFWEZFUjsKCi8qIERBVF9TRVRVUE1FTVhGRVIuIFNldHMgdXAgRFMgdG8gYXBwbGljYXRpb24gZGF0YSB0cmFuc2ZlciB2aWEgYSBtZW1vcnkgYnVmZmVyLiAqLwp0eXBlZGVmIHN0cnVjdCB7CiAgIFRXX1VJTlQzMiBNaW5CdWZTaXplOwogICBUV19VSU5UMzIgTWF4QnVmU2l6ZTsKICAgVFdfVUlOVDMyIFByZWZlcnJlZDsKfSBUV19TRVRVUE1FTVhGRVIsIEZBUiAqIHBUV19TRVRVUE1FTVhGRVI7CgovKiBEQVRfU1RBVFVTLiBBcHBsaWNhdGlvbiBnZXRzIGRldGFpbGVkIHN0YXR1cyBpbmZvIGZyb20gYSBkYXRhIHNvdXJjZSB3aXRoIHRoaXMuICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfVUlOVDE2ICBDb25kaXRpb25Db2RlOyAvKiBBbnkgVFdDQ18gY29uc3RhbnQgICAgICovCiAgIFRXX1VJTlQxNiAgUmVzZXJ2ZWQ7ICAgICAgLyogRnV0dXJlIGV4cGFuc2lvbiBzcGFjZSAqLwp9IFRXX1NUQVRVUywgRkFSICogcFRXX1NUQVRVUzsKCi8qIERBVF9VU0VSSU5URVJGQUNFLiBDb29yZGluYXRlcyBVSSBiZXR3ZWVuIGFwcGxpY2F0aW9uIGFuZCBkYXRhIHNvdXJjZS4gKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19CT09MICAgIFNob3dVSTsgIC8qIFRSVUUgaWYgRFMgc2hvdWxkIGJyaW5nIHVwIGl0cyBVSSAgICAgICAgICAgKi8KICAgVFdfQk9PTCAgICBNb2RhbFVJOyAvKiBGb3IgTWFjIG9ubHkgLSB0cnVlIGlmIHRoZSBEUydzIFVJIGlzIG1vZGFsICovCiAgIFRXX0hBTkRMRSAgaFBhcmVudDsgLyogRm9yIHdpbmRvd3Mgb25seSAtIEFwcGxpY2F0aW9uIHdpbmRvdyBoYW5kbGUgICAgICAgICovCn0gVFdfVVNFUklOVEVSRkFDRSwgRkFSICogcFRXX1VTRVJJTlRFUkZBQ0U7CgovKiBTREggLSAwMy8yMS85NSAtIFRXVU5LICovCi8qIERBVF9UV1VOS0lERU5USVRZLiBQcm92aWRlcyBEUyBpZGVudGl0eSBhbmQgJ290aGVyJyBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgKi8KLyogICAgICAgICAgICAgICAgICAgIGFjcm9zcyB0aHVuayBsaW5rLiAqLwp0eXBlZGVmIHN0cnVjdCB7CiAgIFRXX0lERU5USVRZIGlkZW50aXR5OyAgICAgICAgLyogSWRlbnRpdHkgb2YgZGF0YSBzb3VyY2UuICAgICAgICAgICAgICAgICAqLwogICBUV19TVFIyNTUgICBkc1BhdGg7ICAgICAgICAgIC8qIEZ1bGwgcGF0aCBhbmQgZmlsZSBuYW1lIG9mIGRhdGEgc291cmNlLiAgKi8KfSBUV19UV1VOS0lERU5USVRZLCBGQVIgKiBwVFdfVFdVTktJREVOVElUWTsKCi8qIFNESCAtIDAzLzIxLzk1IC0gVFdVTksgKi8KLyogUHJvdmlkZXMgRFNfRW50cnkgcGFyYW1ldGVycyBvdmVyIHRodW5rIGxpbmsuICovCnR5cGVkZWYgc3RydWN0CnsKICAgIFRXX0lOVDggICAgIGRlc3RGbGFnOyAgICAgICAvKiBUUlVFIGlmIGRlc3QgaXMgbm90IE5VTEwgICAgICAgICAgICAgICAgICovCiAgICBUV19JREVOVElUWSBkZXN0OyAgICAgICAgICAgLyogSWRlbnRpdHkgb2YgZGF0YSBzb3VyY2UgKGlmIHVzZWQpICAgICAgICAqLwogICAgVFdfSU5UMzIgICAgZGF0YUdyb3VwOyAgICAgIC8qIERTTV9FbnRyeSBkYXRhR3JvdXAgcGFyYW1ldGVyICAgICAgICAgICAgKi8KICAgIFRXX0lOVDE2ICAgIGRhdGFBcmdUeXBlOyAgICAvKiBEU01fRW50cnkgZGF0YUFyZ1R5cGUgcGFyYW1ldGVyICAgICAgICAgICovCiAgICBUV19JTlQxNiAgICBtZXNzYWdlOyAgICAgICAgLyogRFNNX0VudHJ5IG1lc3NhZ2UgcGFyYW1ldGVyICAgICAgICAgICAgICAqLwogICAgVFdfSU5UMzIgICAgcERhdGFTaXplOyAgICAgIC8qIFNpemUgb2YgcERhdGEgKDAgaWYgTlVMTCkgICAgICAgICAgICAgICAgKi8KICAgIC8vICBUV19NRU1SRUYgICBwRGF0YTsgICAgICAvKiBCYXNlZCBvbiBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpY3MsIGEgICAgICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcERhdGEgcGFyYW1ldGVyIG1ha2VzIG5vIHNlbnNlIGluIHRoaXMgICAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN0cnVjdHVyZSwgYnV0IGRhdGEgKGlmIHByb3ZpZGVkKSB3aWxsIGJlKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBhcHBlbmRlZCBpbiB0aGUgZGF0YSBibG9jay4gICAgICAgICAgICAgICovCiAgIH0gVFdfVFdVTktEU0VOVFJZUEFSQU1TLCBGQVIgKiBwVFdfVFdVTktEU0VOVFJZUEFSQU1TOwoKLyogU0RIIC0gMDMvMjEvOTUgLSBUV1VOSyAqLwovKiBQcm92aWRlcyBEU19FbnRyeSByZXN1bHRzIG92ZXIgdGh1bmsgbGluay4gKi8KdHlwZWRlZiBzdHJ1Y3QKewogICAgVFdfVUlOVDE2ICAgcmV0dXJuQ29kZTsgICAgIC8qIFRodW5rZXIgRHNFbnRyeSByZXR1cm4gY29kZS4gICAgICAgICAgICAgKi8KICAgIFRXX1VJTlQxNiAgIGNvbmRpdGlvbkNvZGU7ICAvKiBUaHVua2VyIERzRW50cnkgY29uZGl0aW9uIGNvZGUuICAgICAgICAgICovCiAgICBUV19JTlQzMiAgICBwRGF0YVNpemU7ICAgICAgLyogU2l6ZSBvZiBwRGF0YSAoMCBpZiBOVUxMKSAgICAgICAgICAgICAgICAqLwogICAgLy8gIFRXX01FTVJFRiAgIHBEYXRhOyAgICAgIC8qIEJhc2VkIG9uIGltcGxlbWVudGF0aW9uIHNwZWNpZmljcywgYSAgICAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBwRGF0YSBwYXJhbWV0ZXIgbWFrZXMgbm8gc2Vuc2UgaW4gdGhpcyAgICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc3RydWN0dXJlLCBidXQgZGF0YSAoaWYgcHJvdmlkZWQpIHdpbGwgYmUqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGFwcGVuZGVkIGluIHRoZSBkYXRhIGJsb2NrLiAgICAgICAgICAgICAgKi8KfSBUV19UV1VOS0RTRU5UUllSRVRVUk4sIEZBUiAqIHBUV19UV1VOS0RTRU5UUllSRVRVUk47CgovKiBXSkQgLSA5NTA4MTggKi8KLyogQWRkZWQgZm9yIDEuNiBTcGVjaWZpY2F0aW9uICovCi8qIFRXQUlOIDEuNiBDQVBfU1VQUE9SVEVEQ0FQU0VYVCBzdHJ1Y3R1cmUgKi8KdHlwZWRlZiBzdHJ1Y3QKewogICAgVFdfVUlOVDE2IENhcDsgICAvKiBXaGljaCBDQVAvSUNBUCBpbmZvIGlzIHJlbGV2YW50IHRvICovCiAgICBUV19VSU5UMTYgUHJvcGVydGllczsgIC8qIE1lc3NhZ2VzIHRoaXMgQ0FQL0lDQVAgc3VwcG9ydHMgKi8KfSBUV19DQVBFWFQsIEZBUiAqIHBUV19DQVBFWFQ7CgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXAoKICBWZXJzaW9uIDEuNzogICAgICBBZGRlZCBGb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmUgZm9yIERvY3VtZW50IEltYWdpbmcgCiAgSnVseSAxOTk3ICAgICAgICAgRW5oYW5jZW1lbnQuCiAgS0hMICAgICAgICAgICAgICAgVFdfQ1VTVE9NRFNEQVRBIC0tICBGb3IgU2F2aW5nIGFuZCBSZXN0b3JpbmcgU291cmNlJ3MgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS4KICAgICAgICAgICAgICAgICAgICBUV19JTkZPICAgICAgICAgLS0gIEVhY2ggYXR0cmlidXRlIGZvciBleHRlbmRlZCBpbWFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb24uCiAgICAgICAgICAgICAgICAgICAgVFdfRVhUSU1BR0VJTkZPIC0tICBFeHRlbmRlZCBpbWFnZSBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUuCgpcKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgVFdfVUlOVDMyICBJbmZvTGVuZ3RoOyAgICAgLyogTGVuZ3RoIG9mIEluZm9ybWF0aW9uIGluIGJ5dGVzLiAgKi8KICAgIFRXX0hBTkRMRSAgaERhdGE7ICAgICAgICAgIC8qIFBsYWNlIGhvbGRlciBmb3IgZGF0YSwgRFMgQWxsb2NhdGVzICovCn1UV19DVVNUT01EU0RBVEEsIEZBUiAqcFRXX0NVU1RPTURTREFUQTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIFRXX1VJTlQxNiAgIEluZm9JRDsKICAgIFRXX1VJTlQxNiAgIEl0ZW1UeXBlOwogICAgVFdfVUlOVDE2ICAgTnVtSXRlbXM7CiAgICBUV19VSU5UMTYgICBDb25kQ29kZTsKICAgIFRXX1VJTlQzMiAgIEl0ZW07Cn1UV19JTkZPLCBGQVIqIHBUV19JTkZPOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgVFdfVUlOVDMyICAgTnVtSW5mb3M7CiAgICBUV19JTkZPICAgICBJbmZvWzFdOwp9VFdfRVhUSU1BR0VJTkZPLCBGQVIqIHBUV19FWFRJTUFHRUlORk87CgovKiBBZGRlZCAxLjggKi8KCi8qIERBVF9BVURJT0lORk8sIGluZm9ybWF0aW9uIGFib3V0IGF1ZGlvIGRhdGEgKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19TVFIyNTUgIE5hbWU7ICAgICAgIC8qIG5hbWUgb2YgYXVkaW8gZGF0YSAqLwogICBUV19VSU5UMzIgIFJlc2VydmVkOyAgIC8qIHJlc2VydmVkIHNwYWNlICovCn0gVFdfQVVESU9JTkZPLCBGQVIgKiBwVFdfQVVESU9JTkZPOwoKLyogREFUX0RFVklDRUVWRU5ULCBpbmZvcm1hdGlvbiBhYm91dCBldmVudHMgKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19VSU5UMzIgIEV2ZW50OyAgICAgICAgICAgICAgICAgIC8qIE9uZSBvZiB0aGUgVFdERV94eHh4IHZhbHVlcy4gKi8KICAgVFdfU1RSMjU1ICBEZXZpY2VOYW1lOyAgICAgICAgICAgICAvKiBUaGUgbmFtZSBvZiB0aGUgZGV2aWNlIHRoYXQgZ2VuZXJhdGVkIHRoZSBldmVudCAqLwogICBUV19VSU5UMzIgIEJhdHRlcnlNaW51dGVzOyAgICAgICAgIC8qIEJhdHRlcnkgTWludXRlcyBSZW1haW5pbmcgICAgKi8KICAgVFdfSU5UMTYgICBCYXR0ZXJ5UGVyY2VudGFnZTsgICAgICAvKiBCYXR0ZXJ5IFBlcmNlbnRhZ2UgUmVtYWluaW5nICovCiAgIFRXX0lOVDMyICAgUG93ZXJTdXBwbHk7ICAgICAgICAgICAgLyogUG93ZXIgU3VwcGx5ICAgICAgICAgICAgICAgICAqLwogICBUV19GSVgzMiAgIFhSZXNvbHV0aW9uOyAgICAgICAgICAgIC8qIFJlc29sdXRpb24gICAgICAgICAgICAgICAgICAgKi8KICAgVFdfRklYMzIgICBZUmVzb2x1dGlvbjsgICAgICAgICAgICAvKiBSZXNvbHV0aW9uICAgICAgICAgICAgICAgICAgICovCiAgIFRXX1VJTlQzMiAgRmxhc2hVc2VkMjsgICAgICAgICAgICAgLyogRmxhc2ggVXNlZDIgICAgICAgICAgICAgICAgICAqLwogICBUV19VSU5UMzIgIEF1dG9tYXRpY0NhcHR1cmU7ICAgICAgIC8qIEF1dG9tYXRpYyBDYXB0dXJlICAgICAgICAgICAgKi8KICAgVFdfVUlOVDMyICBUaW1lQmVmb3JlRmlyc3RDYXB0dXJlOyAvKiBBdXRvbWF0aWMgQ2FwdHVyZSAgICAgICAgICAgICovCiAgIFRXX1VJTlQzMiAgVGltZUJldHdlZW5DYXB0dXJlczsgICAgLyogQXV0b21hdGljIENhcHR1cmUgICAgICAgICAgICAqLwp9IFRXX0RFVklDRUVWRU5ULCBGQVIgKiBwVFdfREVWSUNFRVZFTlQ7CgovKiBEQVRfRklMRVNZU1RFTSwgaW5mb3JtYXRpb24gYWJvdXQgVFdBSU4gZmlsZSBzeXN0ZW0gKi8KdHlwZWRlZiBzdHJ1Y3QgewogICAvKiBER19DT05UUk9MIC8gREFUX0ZJTEVTWVNURU0gLyBNU0dfeHh4eCBmaWVsZHMgICAgICovCiAgIFRXX1NUUjI1NSAgSW5wdXROYW1lOyAvKiBUaGUgbmFtZSBvZiB0aGUgaW5wdXQgb3Igc291cmNlIGZpbGUgKi8KICAgVFdfU1RSMjU1ICBPdXRwdXROYW1lOyAvKiBUaGUgcmVzdWx0IG9mIGFuIG9wZXJhdGlvbiBvciB0aGUgbmFtZSBvZiBhIGRlc3RpbmF0aW9uIGZpbGUgKi8KICAgVFdfTUVNUkVGICBDb250ZXh0OyAvKiBTb3VyY2Ugc3BlY2lmaWMgZGF0YSB1c2VkIHRvIHJlbWVtYmVyIHN0YXRlIGluZm9ybWF0aW9uICovCiAgIC8qIERHX0NPTlRST0wgLyBEQVRfRklMRVNZU1RFTSAvIE1TR19ERUxFVEUgZmllbGQgICAgKi8KICAgaW50ICAgICAgICBSZWN1cnNpdmU7IC8qIHJlY3Vyc2l2ZWx5IGRlbGV0ZSBhbGwgc3ViLWRpcmVjdG9yaWVzICovCiAgIC8qIERHX0NPTlRST0wgLyBEQVRfRklMRVNZU1RFTSAvIE1TR19HRVRJTkZPIGZpZWxkcyAgKi8KICAgVFdfSU5UMzIgICBGaWxlVHlwZTsgLyogT25lIG9mIHRoZSBUV0ZUX3h4eHggdmFsdWVzICovCiAgIFRXX1VJTlQzMiAgU2l6ZTsgLyogU2l6ZSBvZiBjdXJyZW50IEZpbGVUeXBlICovCiAgIFRXX1NUUjMyICAgQ3JlYXRlVGltZURhdGU7IC8qIGNyZWF0aW9uIGRhdGUgb2YgdGhlIGZpbGUgKi8KICAgVFdfU1RSMzIgICBNb2RpZmllZFRpbWVEYXRlOyAvKiBsYXN0IGRhdGUgdGhlIGZpbGUgd2FzIG1vZGlmaWVkICovCiAgIFRXX1VJTlQzMiAgRnJlZVNwYWNlOyAvKiBieXRlcyBvZiBmcmVlIHNwYWNlIG9uIHRoZSBjdXJyZW50IGRldmljZSAqLwogICBUV19JTlQzMiAgIE5ld0ltYWdlU2l6ZTsgLyogZXN0aW1hdGUgb2YgdGhlIGFtb3VudCBvZiBzcGFjZSBhIG5ldyBpbWFnZSB3b3VsZCB0YWtlIHVwICovCiAgIFRXX1VJTlQzMiAgTnVtYmVyT2ZGaWxlczsgLyogbnVtYmVyIG9mIGZpbGVzLCBkZXBlbmRzIG9uIEZpbGVUeXBlICovCiAgIFRXX1VJTlQzMiAgTnVtYmVyT2ZTbmlwcGV0czsgLyoqLwogICBjaGFyICAgICAgIFJlc2VydmVkWzUxMl07IC8qKi8KfSBUV19GSUxFU1lTVEVNLCBGQVIgKiBwVFdfRklMRVNZU1RFTTsKCi8qIERBVF9QQVNTVEhSVSwgZGV2aWNlIGRlcGVuZGFudCBkYXRhIHRvIHBhc3MgdGhyb3VnaCBEYXRhIFNvdXJjZSAqLwp0eXBlZGVmIHN0cnVjdCB7CiAgIFRXX01FTVJFRiAgcENvbW1hbmQ7ICAgICAgICAvKiBQb2ludGVyIHRvIENvbW1hbmQgYnVmZmVyICovCiAgIFRXX1VJTlQzMiAgQ29tbWFuZEJ5dGVzOyAgICAvKiBOdW1iZXIgb2YgYnl0ZXMgaW4gQ29tbWFuZCBidWZmZXIgKi8KICAgVFdfSU5UMzIgICBEaXJlY3Rpb247ICAgICAgIC8qIE9uZSBvZiB0aGUgVFdEUl94eHh4IHZhbHVlcy4gIERlZmluZXMgdGhlIGRpcmVjdGlvbiBvZiBkYXRhIGZsb3cgKi8KICAgVFdfTUVNUkVGICBwRGF0YTsgICAgICAgICAgIC8qIFBvaW50ZXIgdG8gRGF0YSBidWZmZXIgKi8KICAgVFdfVUlOVDMyICBEYXRhQnl0ZXM7ICAgICAgIC8qIE51bWJlciBvZiBieXRlcyBpbiBEYXRhIGJ1ZmZlciAqLwogICBUV19VSU5UMzIgIERhdGFCeXRlc1hmZXJlZDsgLyogTnVtYmVyIG9mIGJ5dGVzIHN1Y2Nlc3NmdWxseSB0cmFuc2ZlcnJlZCAqLwp9IFRXX1BBU1NUSFJVLCBGQVIgKiBwVFdfUEFTU1RIUlU7CgovKiBEQVRfU0VUVVBBVURJT0ZJTEVYRkVSLCBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byBzZXR1cCBhbiBhdWRpbyBmaWxlIHRyYW5zZmVyICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfU1RSMjU1ICBGaWxlTmFtZTsgLyogZnVsbCBwYXRoIHRhcmdldCBmaWxlICovCiAgIFRXX1VJTlQxNiAgRm9ybWF0OyAgIC8qIG9uZSBvZiBUV0FGX3h4eHggKi8KICAgVFdfSU5UMTYgVlJlZk51bTsKfSBUV19TRVRVUEFVRElPRklMRVhGRVIsIEZBUiAqIHBUV19TRVRVUEFVRElPRklMRVhGRVI7CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBHZW5lcmljIENvbnN0YW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNkZWZpbmUgVFdPTl9BUlJBWSAgICAgICAgICAgMyAvKiBpbmRpY2F0ZXMgVFdfQVJSQVkgY29udGFpbmVyICAgICAgICovCiNkZWZpbmUgVFdPTl9FTlVNRVJBVElPTiAgICAgNCAvKiBpbmRpY2F0ZXMgVFdfRU5VTUVSQVRJT04gY29udGFpbmVyICovCiNkZWZpbmUgVFdPTl9PTkVWQUxVRSAgICAgICAgNSAvKiBpbmRpY2F0ZXMgVFdfT05FVkFMVUUgY29udGFpbmVyICAgICovCiNkZWZpbmUgVFdPTl9SQU5HRSAgICAgICAgICAgNiAvKiBpbmRpY2F0ZXMgVFdfUkFOR0UgY29udGFpbmVyICAgICAgICovCgojZGVmaW5lIFRXT05fSUNPTklEICAgICAgICAgIDk2MiAvKiByZXMgSWQgb2YgaWNvbiB1c2VkIGluIFVTRVJTRUxFQ1QgbGJveCAqLwojZGVmaW5lIFRXT05fRFNNSUQgICAgICAgICAgIDQ2MSAvKiByZXMgSWQgb2YgdGhlIERTTSB2ZXJzaW9uIG51bSByZXNvdXJjZSAqLwojZGVmaW5lIFRXT05fRFNNQ09ERUlEICAgICAgIDYzICAvKiByZXMgSWQgb2YgdGhlIE1hYyBTTSBDb2RlIHJlc291cmNlICAgICAqLwoKI2RlZmluZSBUV09OX0RPTlRDQVJFOCAgICAgICAweGZmCiNkZWZpbmUgVFdPTl9ET05UQ0FSRTE2ICAgICAgMHhmZmZmCiNkZWZpbmUgVFdPTl9ET05UQ0FSRTMyICAgICAgMHhmZmZmZmZmZgoKLyogRmxhZ3MgdXNlZCBpbiBUV19NRU1PUlkgc3RydWN0dXJlLiAqLwojZGVmaW5lIFRXTUZfQVBQT1dOUyAgICAgMHgxCiNkZWZpbmUgVFdNRl9EU01PV05TICAgICAweDIKI2RlZmluZSBUV01GX0RTT1dOUyAgICAgIDB4NAojZGVmaW5lIFRXTUZfUE9JTlRFUiAgICAgMHg4CiNkZWZpbmUgVFdNRl9IQU5ETEUgICAgICAweDEwCgovKiBQYWxldHRlIHR5cGVzIGZvciBUV19QQUxFVFRFOCAqLwojZGVmaW5lIFRXUEFfUkdCICAgICAgICAgMAojZGVmaW5lIFRXUEFfR1JBWSAgICAgICAgMQojZGVmaW5lIFRXUEFfQ01ZICAgICAgICAgMgoKLyogVGhlcmUgYXJlIGZvdXIgY29udGFpbmVycyB1c2VkIGZvciBjYXBhYmlsaXRpZXMgbmVnb3RpYXRpb246CiAqICAgIFRXT05fT05FVkFMVUUsIFRXT05fUkFOR0UsIFRXT05fRU5VTUVSQVRJT04sIFRXT05fQVJSQVkKICogSW4gZWFjaCBjb250YWluZXIgc3RydWN0dXJlIEl0ZW1UeXBlIGNhbiBiZSBUV1RZX0lOVDgsIFRXVFlfSU5UMTYsIGV0Yy4KICogVGhlIGtpbmQgb2YgZGF0YSBzdG9yZWQgaW4gdGhlIGNvbnRhaW5lciBjYW4gYmUgZGV0ZXJtaW5lZCBieSBkb2luZwogKiBEQ0l0ZW1TaXplW0l0ZW1UeXBlXSB3aGVyZSB0aGUgZm9sbG93aW5nIGlzIGRlZmluZWQgaW4gVFdBSU4gZ2x1ZSBjb2RlOgogKiAgICAgICAgICBEQ0l0ZW1TaXplW109IHsgc2l6ZW9mKFRXX0lOVDgpLAogKiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKFRXX0lOVDE2KSwKICogICAgICAgICAgICAgICAgICAgICAgICAgIGV0Yy4KICogICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihUV19VSU5UMzIpIH07CiAqCiAqLwoKI2RlZmluZSBUV1RZX0lOVDggICAgICAgIDB4MDAwMCAgICAvKiBNZWFucyBJdGVtIGlzIGEgVFdfSU5UOCAgICovCiNkZWZpbmUgVFdUWV9JTlQxNiAgICAgICAweDAwMDEgICAgLyogTWVhbnMgSXRlbSBpcyBhIFRXX0lOVDE2ICAqLwojZGVmaW5lIFRXVFlfSU5UMzIgICAgICAgMHgwMDAyICAgIC8qIE1lYW5zIEl0ZW0gaXMgYSBUV19JTlQzMiAgKi8KCiNkZWZpbmUgVFdUWV9VSU5UOCAgICAgICAweDAwMDMgICAgLyogTWVhbnMgSXRlbSBpcyBhIFRXX1VJTlQ4ICAqLwojZGVmaW5lIFRXVFlfVUlOVDE2ICAgICAgMHgwMDA0ICAgIC8qIE1lYW5zIEl0ZW0gaXMgYSBUV19VSU5UMTYgKi8KI2RlZmluZSBUV1RZX1VJTlQzMiAgICAgIDB4MDAwNSAgICAvKiBNZWFucyBJdGVtIGlzIGEgVFdfVUlOVDMyICovCgojZGVmaW5lIFRXVFlfQk9PTCAgICAgICAgMHgwMDA2ICAgIC8qIE1lYW5zIEl0ZW0gaXMgYSBUV19CT09MICAgKi8KCiNkZWZpbmUgVFdUWV9GSVgzMiAgICAgICAweDAwMDcgICAgLyogTWVhbnMgSXRlbSBpcyBhIFRXX0ZJWDMyICAqLwoKI2RlZmluZSBUV1RZX0ZSQU1FICAgICAgIDB4MDAwOCAgICAvKiBNZWFucyBJdGVtIGlzIGEgVFdfRlJBTUUgICovCgojZGVmaW5lIFRXVFlfU1RSMzIgICAgICAgMHgwMDA5ICAgIC8qIE1lYW5zIEl0ZW0gaXMgYSBUV19TVFIzMiAgKi8KI2RlZmluZSBUV1RZX1NUUjY0ICAgICAgIDB4MDAwYSAgICAvKiBNZWFucyBJdGVtIGlzIGEgVFdfU1RSNjQgICovCiNkZWZpbmUgVFdUWV9TVFIxMjggICAgICAweDAwMGIgICAgLyogTWVhbnMgSXRlbSBpcyBhIFRXX1NUUjEyOCAqLwojZGVmaW5lIFRXVFlfU1RSMjU1ICAgICAgMHgwMDBjICAgIC8qIE1lYW5zIEl0ZW0gaXMgYSBUV19TVFIyNTUgKi8KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIENhcGFiaWxpdHkgQ29uc3RhbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKLyogSUNBUF9CSVRPUkRFUiB2YWx1ZXMgKEJPXyBtZWFucyBCaXQgT3JkZXIpICovCiNkZWZpbmUgVFdCT19MU0JGSVJTVCAgICAwCiNkZWZpbmUgVFdCT19NU0JGSVJTVCAgICAxCgovKiBJQ0FQX0NPTVBSRVNTSU9OIHZhbHVlcyAoQ1BfIG1lYW5zIENvbVByZXNzaW9uICkgKi8KI2RlZmluZSBUV0NQX05PTkUgICAgICAgIDAKI2RlZmluZSBUV0NQX1BBQ0tCSVRTICAgIDEKI2RlZmluZSBUV0NQX0dST1VQMzFEICAgIDIgLyogRm9sbG93cyBDQ0lUVCBzcGVjIChubyBFbmQgT2YgTGluZSkgICAgICAgICAgKi8KI2RlZmluZSBUV0NQX0dST1VQMzFERU9MIDMgLyogRm9sbG93cyBDQ0lUVCBzcGVjIChoYXMgRW5kIE9mIExpbmUpICAgICAgICAgKi8KI2RlZmluZSBUV0NQX0dST1VQMzJEICAgIDQgLyogRm9sbG93cyBDQ0lUVCBzcGVjICh1c2UgY2FwIGZvciBLIEZhY3RvcikgICAgKi8KI2RlZmluZSBUV0NQX0dST1VQNCAgICAgIDUgLyogRm9sbG93cyBDQ0lUVCBzcGVjICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBUV0NQX0pQRUcgICAgICAgIDYgLyogVXNlIGNhcGFiaWxpdHkgZm9yIG1vcmUgaW5mbyAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBUV0NQX0xaVyAgICAgICAgIDcgLyogTXVzdCBsaWNlbnNlIGZyb20gVW5pc3lzIGFuZCBJQk0gdG8gdXNlICAgICAgKi8KI2RlZmluZSBUV0NQX0pCSUcgICAgICAgIDggLyogRm9yIEJpdG9uYWwgaW1hZ2VzICAtLSBBZGRlZCAxLjcgS0hMICAgICAgICAgKi8KLyogQWRkZWQgMS44ICovCiNkZWZpbmUgVFdDUF9QTkcgICAgICAgICA5CiNkZWZpbmUgVFdDUF9STEU0ICAgICAgICAxMAojZGVmaW5lIFRXQ1BfUkxFOCAgICAgICAgMTEKI2RlZmluZSBUV0NQX0JJVEZJRUxEUyAgIDEyCgoKLyogSUNBUF9JTUFHRUZJTEVGT1JNQVQgdmFsdWVzIChGRl9tZWFucyBGaWxlIEZvcm1hdCkgICAqLwojZGVmaW5lIFRXRkZfVElGRiAgICAgICAgMCAgICAvKiBUYWdnZWQgSW1hZ2UgRmlsZSBGb3JtYXQgICAgICovCiNkZWZpbmUgVFdGRl9QSUNUICAgICAgICAxICAgIC8qIE1hY2ludG9zaCBQSUNUICAgICAgICAgICAgICAgKi8KI2RlZmluZSBUV0ZGX0JNUCAgICAgICAgIDIgICAgLyogV2luZG93cyBCaXRtYXAgICAgICAgICAgICAgICAqLwojZGVmaW5lIFRXRkZfWEJNICAgICAgICAgMyAgICAvKiBYLVdpbmRvd3MgQml0bWFwICAgICAgICAgICAgICovCiNkZWZpbmUgVFdGRl9KRklGICAgICAgICA0ICAgIC8qIEpQRUcgRmlsZSBJbnRlcmNoYW5nZSBGb3JtYXQgKi8KI2RlZmluZSBUV0ZGX0ZQWCAgICAgICAgIDUgICAgLyogRmxhc2ggUGl4ICAgICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIFRXRkZfVElGRk1VTFRJICAgNiAgICAvKiBNdWx0aS1wYWdlIHRpZmYgZmlsZSAgICAgICAgICovCiNkZWZpbmUgVFdGRl9QTkcgICAgICAgICA3CiNkZWZpbmUgVFdGRl9TUElGRiAgICAgICA4CiNkZWZpbmUgVFdGRl9FWElGICAgICAgICA5CgoKLyogSUNBUF9GSUxURVIgdmFsdWVzIChGVF8gbWVhbnMgRmlsdGVyIFR5cGUpICovCiNkZWZpbmUgVFdGVF9SRUQgICAgICAgICAwCiNkZWZpbmUgVFdGVF9HUkVFTiAgICAgICAxCiNkZWZpbmUgVFdGVF9CTFVFICAgICAgICAyCiNkZWZpbmUgVFdGVF9OT05FICAgICAgICAzCiNkZWZpbmUgVFdGVF9XSElURSAgICAgICA0CiNkZWZpbmUgVFdGVF9DWUFOICAgICAgICA1CiNkZWZpbmUgVFdGVF9NQUdFTlRBICAgICA2CiNkZWZpbmUgVFdGVF9ZRUxMT1cgICAgICA3CiNkZWZpbmUgVFdGVF9CTEFDSyAgICAgICA4CgovKiBJQ0FQX0xJR0hUUEFUSCB2YWx1ZXMgKExQXyBtZWFucyBMaWdodCBQYXRoKSAqLwojZGVmaW5lIFRXTFBfUkVGTEVDVElWRSAgIDAKI2RlZmluZSBUV0xQX1RSQU5TTUlTU0lWRSAxCgovKiBJQ0FQX0xJR0hUU09VUkNFIHZhbHVlcyAoTFNfIG1lYW5zIExpZ2h0IFNvdXJjZSkgKi8KI2RlZmluZSBUV0xTX1JFRCAgICAgICAgIDAKI2RlZmluZSBUV0xTX0dSRUVOICAgICAgIDEKI2RlZmluZSBUV0xTX0JMVUUgICAgICAgIDIKI2RlZmluZSBUV0xTX05PTkUgICAgICAgIDMKI2RlZmluZSBUV0xTX1dISVRFICAgICAgIDQKI2RlZmluZSBUV0xTX1VWICAgICAgICAgIDUKI2RlZmluZSBUV0xTX0lSICAgICAgICAgIDYKCi8qIElDQVBfT1JJRU5UQVRJT04gdmFsdWVzIChPUl8gbWVhbnMgT1JpZW50YXRpb24pICovCiNkZWZpbmUgVFdPUl9ST1QwICAgICAgICAwCiNkZWZpbmUgVFdPUl9ST1Q5MCAgICAgICAxCiNkZWZpbmUgVFdPUl9ST1QxODAgICAgICAyCiNkZWZpbmUgVFdPUl9ST1QyNzAgICAgICAzCiNkZWZpbmUgVFdPUl9QT1JUUkFJVCAgICBUV09SX1JPVDAKI2RlZmluZSBUV09SX0xBTkRTQ0FQRSAgIFRXT1JfUk9UMjcwCgovKiBJQ0FQX1BMQU5BUkNIVU5LWSB2YWx1ZXMgKFBDXyBtZWFucyBQbGFuYXIvQ2h1bmt5ICkgKi8KI2RlZmluZSBUV1BDX0NIVU5LWSAgICAgIDAKI2RlZmluZSBUV1BDX1BMQU5BUiAgICAgIDEKCi8qIElDQVBfUElYRUxGTEFWT1IgdmFsdWVzIChQRl8gbWVhbnMgUGl4ZWwgRmxhdm9yKSAqLwojZGVmaW5lIFRXUEZfQ0hPQ09MQVRFICAgMCAgLyogemVybyBwaXhlbCByZXByZXNlbnRzIGRhcmtlc3Qgc2hhZGUgICovCiNkZWZpbmUgVFdQRl9WQU5JTExBICAgICAxICAvKiB6ZXJvIHBpeGVsIHJlcHJlc2VudHMgbGlnaHRlc3Qgc2hhZGUgKi8KCi8qIElDQVBfUElYRUxUWVBFIHZhbHVlcyAoUFRfIG1lYW5zIFBpeGVsIFR5cGUpICovCiNkZWZpbmUgVFdQVF9CVyAgICAgICAgICAwIC8qIEJsYWNrIGFuZCBXaGl0ZSAqLwojZGVmaW5lIFRXUFRfR1JBWSAgICAgICAgMQojZGVmaW5lIFRXUFRfUkdCICAgICAgICAgMgojZGVmaW5lIFRXUFRfUEFMRVRURSAgICAgMwojZGVmaW5lIFRXUFRfQ01ZICAgICAgICAgNAojZGVmaW5lIFRXUFRfQ01ZSyAgICAgICAgNQojZGVmaW5lIFRXUFRfWVVWICAgICAgICAgNgojZGVmaW5lIFRXUFRfWVVWSyAgICAgICAgNwojZGVmaW5lIFRXUFRfQ0lFWFlaICAgICAgOAoKLyogSUNBUF9TVVBQT1JURURTSVpFUyB2YWx1ZXMgKFNTXyBtZWFucyBTdXBwb3J0ZWQgU2l6ZXMpICovCiNkZWZpbmUgVFdTU19OT05FICAgICAgICAwCiNkZWZpbmUgVFdTU19BNExFVFRFUiAgICAxCiNkZWZpbmUgVFdTU19CNUxFVFRFUiAgICAyCiNkZWZpbmUgVFdTU19VU0xFVFRFUiAgICAzCiNkZWZpbmUgVFdTU19VU0xFR0FMICAgICA0Ci8qIEFkZGVkIDEuNSAqLwojZGVmaW5lIFRXU1NfQTUgICAgICAgICAgNQojZGVmaW5lIFRXU1NfQjQgICAgICAgICAgNgojZGVmaW5lIFRXU1NfQjYgICAgICAgICAgNwovLyNkZWZpbmUgVFdTU19CICAgICAgICAgIDgKLyogQWRkZWQgMS43ICovCiNkZWZpbmUgVFdTU19VU0xFREdFUiAgICA5CiNkZWZpbmUgVFdTU19VU0VYRUNVVElWRSAxMAojZGVmaW5lIFRXU1NfQTMgICAgICAgICAgMTEKI2RlZmluZSBUV1NTX0IzICAgICAgICAgIDEyCiNkZWZpbmUgVFdTU19BNiAgICAgICAgICAxMwojZGVmaW5lIFRXU1NfQzQgICAgICAgICAgMTQKI2RlZmluZSBUV1NTX0M1ICAgICAgICAgIDE1CiNkZWZpbmUgVFdTU19DNiAgICAgICAgICAxNgovKiBBZGRlZCAxLjggKi8KI2RlZmluZSBUV1NTXzRBMCAgICAgICAgICAxNwojZGVmaW5lIFRXU1NfMkEwICAgICAgICAgIDE4CiNkZWZpbmUgVFdTU19BMCAgICAgICAgICAgMTkKI2RlZmluZSBUV1NTX0ExICAgICAgICAgICAyMAojZGVmaW5lIFRXU1NfQTIgICAgICAgICAgIDIxCiNkZWZpbmUgVFdTU19BNCAgICAgICAgICAgVFdTU19BNExFVFRFUgojZGVmaW5lIFRXU1NfQTcgICAgICAgICAgIDIyCiNkZWZpbmUgVFdTU19BOCAgICAgICAgICAgMjMKI2RlZmluZSBUV1NTX0E5ICAgICAgICAgICAyNAojZGVmaW5lIFRXU1NfQTEwICAgICAgICAgIDI1CiNkZWZpbmUgVFdTU19JU09CMCAgICAgICAgMjYKI2RlZmluZSBUV1NTX0lTT0IxICAgICAgICAyNwojZGVmaW5lIFRXU1NfSVNPQjIgICAgICAgIDI4CiNkZWZpbmUgVFdTU19JU09CMyAgICAgICAgVFdTU19CMwojZGVmaW5lIFRXU1NfSVNPQjQgICAgICAgIFRXU1NfQjQKI2RlZmluZSBUV1NTX0lTT0I1ICAgICAgICAyOQojZGVmaW5lIFRXU1NfSVNPQjYgICAgICAgIFRXU1NfQjYKI2RlZmluZSBUV1NTX0lTT0I3ICAgICAgICAzMAojZGVmaW5lIFRXU1NfSVNPQjggICAgICAgIDMxCiNkZWZpbmUgVFdTU19JU09COSAgICAgICAgMzIKI2RlZmluZSBUV1NTX0lTT0IxMCAgICAgICAzMwojZGVmaW5lIFRXU1NfSklTQjAgICAgICAgIDM0CiNkZWZpbmUgVFdTU19KSVNCMSAgICAgICAgMzUKI2RlZmluZSBUV1NTX0pJU0IyICAgICAgICAzNgojZGVmaW5lIFRXU1NfSklTQjMgICAgICAgIDM3CiNkZWZpbmUgVFdTU19KSVNCNCAgICAgICAgMzgKI2RlZmluZSBUV1NTX0pJU0I1ICAgICAgICBUV1NTX0I1TEVUVEVSCiNkZWZpbmUgVFdTU19KSVNCNiAgICAgICAgMzkKI2RlZmluZSBUV1NTX0pJU0I3ICAgICAgICA0MAojZGVmaW5lIFRXU1NfSklTQjggICAgICAgIDQxCiNkZWZpbmUgVFdTU19KSVNCOSAgICAgICAgNDIKI2RlZmluZSBUV1NTX0pJU0IxMCAgICAgICA0MwojZGVmaW5lIFRXU1NfQzAgICAgICAgICAgIDQ0CiNkZWZpbmUgVFdTU19DMSAgICAgICAgICAgNDUKI2RlZmluZSBUV1NTX0MyICAgICAgICAgICA0NgojZGVmaW5lIFRXU1NfQzMgICAgICAgICAgIDQ3CiNkZWZpbmUgVFdTU19DNyAgICAgICAgICAgNDgKI2RlZmluZSBUV1NTX0M4ICAgICAgICAgICA0OQojZGVmaW5lIFRXU1NfQzkgICAgICAgICAgIDUwCiNkZWZpbmUgVFdTU19DMTAgICAgICAgICAgNTEKI2RlZmluZSBUV1NTX1VTU1RBVEVNRU5UICA1MgojZGVmaW5lIFRXU1NfQlVTSU5FU1NDQVJEIDUzCgovKiBJQ0FQX1hGRVJNRUNIIHZhbHVlcyAoU1hfIG1lYW5zIFNldHVwIFhGZXIpICovCiNkZWZpbmUgVFdTWF9OQVRJVkUgICAgICAwCiNkZWZpbmUgVFdTWF9GSUxFICAgICAgICAxCiNkZWZpbmUgVFdTWF9NRU1PUlkgICAgICAyCgovKiBJQ0FQX1VOSVRTIHZhbHVlcyAoVU5fIG1lYW5zIFVOaXRzKSAqLwojZGVmaW5lIFRXVU5fSU5DSEVTICAgICAgMAojZGVmaW5lIFRXVU5fQ0VOVElNRVRFUlMgMQojZGVmaW5lIFRXVU5fUElDQVMgICAgICAgMgojZGVmaW5lIFRXVU5fUE9JTlRTICAgICAgMwojZGVmaW5lIFRXVU5fVFdJUFMgICAgICAgNAojZGVmaW5lIFRXVU5fUElYRUxTICAgICAgNQoKLyogQWRkZWQgMS41ICovCi8qIElDQVBfQklUREVQVEhSRURVQ1RJT04gdmFsdWVzIChCUl8gbWVhbnMgQml0ZGVwdGggUmVkdWN0aW9uKSAqLwojZGVmaW5lIFRXQlJfVEhSRVNIT0xEICAgICAwCiNkZWZpbmUgVFdCUl9IQUxGVE9ORSAgICAgIDEKI2RlZmluZSBUV0JSX0NVU1RIQUxGVE9ORSAgMgojZGVmaW5lIFRXQlJfRElGRlVTSU9OICAgICAzCgovKiBBZGRlZCAxLjcgKi8KLyogSUNBUF9EVVBMRVggdmFsdWVzICovCiNkZWZpbmUgVFdEWF9OT05FICAgICAgICAgMAojZGVmaW5lIFRXRFhfMVBBU1NEVVBMRVggIDEKI2RlZmluZSBUV0RYXzJQQVNTRFVQTEVYICAyCgovKiBBZGRlZCAxLjcgKi8KLyogVFdFSV9CQVJDT0RFVFlQRSB2YWx1ZXMgKi8KI2RlZmluZSBUV0JUXzNPRjkgICAgICAgICAgICAgICAgIDAKI2RlZmluZSBUV0JUXzJPRjVJTlRFUkxFQVZFRCAgICAgIDEKI2RlZmluZSBUV0JUXzJPRjVOT05JTlRFUkxFQVZFRCAgIDIKI2RlZmluZSBUV0JUX0NPREU5MyAgICAgICAgICAgICAgIDMKI2RlZmluZSBUV0JUX0NPREUxMjggICAgICAgICAgICAgIDQKI2RlZmluZSBUV0JUX1VDQzEyOCAgICAgICAgICAgICAgIDUKI2RlZmluZSBUV0JUX0NPREFCQVIgICAgICAgICAgICAgIDYKI2RlZmluZSBUV0JUX1VQQ0EgICAgICAgICAgICAgICAgIDcKI2RlZmluZSBUV0JUX1VQQ0UgICAgICAgICAgICAgICAgIDgKI2RlZmluZSBUV0JUX0VBTjggICAgICAgICAgICAgICAgIDkKI2RlZmluZSBUV0JUX0VBTjEzICAgICAgICAgICAgICAgIDEwCiNkZWZpbmUgVFdCVF9QT1NUTkVUICAgICAgICAgICAgICAxMQojZGVmaW5lIFRXQlRfUERGNDE3ICAgICAgICAgICAgICAgMTIKLyogQWRkZWQgMS44ICovCiNkZWZpbmUgVFdCVF8yT0Y1SU5EVVNUUklBTCAgICAgICAxMwojZGVmaW5lIFRXQlRfMk9GNU1BVFJJWCAgICAgICAgICAgMTQKI2RlZmluZSBUV0JUXzJPRjVEQVRBTE9HSUMgICAgICAgIDE1CiNkZWZpbmUgVFdCVF8yT0Y1SUFUQSAgICAgICAgICAgICAxNgojZGVmaW5lIFRXQlRfM09GOUZVTExBU0NJSSAgICAgICAgMTcKI2RlZmluZSBUV0JUX0NPREFCQVJXSVRIU1RBUlRTVE9QIDE4CiNkZWZpbmUgVFdCVF9NQVhJQ09ERSAgICAgICAgICAgICAxOQoKLyogQWRkZWQgMS43ICovCi8qIFRXRUlfREVTS0VXU1RBVFVTIHZhbHVlcyAqLwojZGVmaW5lIFRXRFNLX1NVQ0NFU1MgICAgIDAKI2RlZmluZSBUV0RTS19SRVBPUlRPTkxZICAxCiNkZWZpbmUgVFdEU0tfRkFJTCAgICAgICAgMgojZGVmaW5lIFRXRFNLX0RJU0FCTEVEICAgIDMKCi8qIEFkZGVkIDEuNyAqLwovKiBUV0VJX1BBVENIQ09ERSB2YWx1ZXMgKi8KI2RlZmluZSBUV1BDSF9QQVRDSDEgICAgICAwCiNkZWZpbmUgVFdQQ0hfUEFUQ0gyICAgICAgMQojZGVmaW5lIFRXUENIX1BBVENIMyAgICAgIDIKI2RlZmluZSBUV1BDSF9QQVRDSDQgICAgICAzCiNkZWZpbmUgVFdQQ0hfUEFUQ0g2ICAgICAgNAojZGVmaW5lIFRXUENIX1BBVENIVCAgICAgIDUKCi8qIEFkZGVkIDEuNyAqLwovKiBDQVBfSk9CQ09OVFJPTCB2YWx1ZXMgKi8KI2RlZmluZSBUV0pDX05PTkUgICAwCiNkZWZpbmUgVFdKQ19KU0lDICAgMQojZGVmaW5lIFRXSkNfSlNJUyAgIDIKI2RlZmluZSBUV0pDX0pTWEMgICAzCiNkZWZpbmUgVFdKQ19KU1hTICAgNAogICAgICAgICAgICAgICAgICAKLyogQWRkZWQgMS43ICovCi8qIFRXRUlfQkFSQ09ERVJPVEFUSU9OIHZhbHVlcyAoQkNPUl8gbWVhbnMgYmFyY29kZSByb3RhdGlvbikgKi8KI2RlZmluZSBUV0JDT1JfUk9UMCAgIDAKI2RlZmluZSBUV0JDT1JfUk9UOTAgIDEKI2RlZmluZSBUV0JDT1JfUk9UMTgwIDIKI2RlZmluZSBUV0JDT1JfUk9UMjcwIDMKI2RlZmluZSBUV0JDT1JfUk9UWCAgIDQKCi8qIEFkZGVkIDEuOCAqLwovKiBBQ0FQX0FVRElPRklMRUZPUk1BVCB2YWx1ZXMgKEFGXyBtZWFucyBhdWRpbyBmb3JtYXQpICovCiNkZWZpbmUgVFdBRl9XQVYgICAgICAwCiNkZWZpbmUgVFdBRl9BSUZGICAgICAxCiNkZWZpbmUgVFdBRl9BVSAgICAgICAzCiNkZWZpbmUgVFdBRl9TTkQgICAgICA0CgovKiBDQVBfQUxBUk1TIHZhbHVlcyAoQUxfIG1lYW5zIGFsYXJtcykgKi8KI2RlZmluZSBUV0FMX0FMQVJNICAgICAgICAgIDAKI2RlZmluZSBUV0FMX0ZFRURFUkVSUk9SICAgIDEKI2RlZmluZSBUV0FMX0ZFRURFUldBUk5JTkcgIDIKI2RlZmluZSBUV0FMX0JBUkNPREUgICAgICAgIDMKI2RlZmluZSBUV0FMX0RPVUJMRUZFRUQgICAgIDQKI2RlZmluZSBUV0FMX0pBTSAgICAgICAgICAgIDUKI2RlZmluZSBUV0FMX1BBVENIQ09ERSAgICAgIDYKI2RlZmluZSBUV0FMX1BPV0VSICAgICAgICAgIDcKI2RlZmluZSBUV0FMX1NLRVcgICAgICAgICAgIDgKCi8qIENBUF9DTEVBUkJVRkZFUlMgdmFsdWVzIChDQl8gbWVhbnMgY2xlYXIgYnVmZmVycykgKi8KI2RlZmluZSBUV0NCX0FVVE8gICAgICAgICAgIDAKI2RlZmluZSBUV0NCX0NMRUFSICAgICAgICAgIDEKI2RlZmluZSBUV0NCX05PQ0xFQVIgICAgICAgIDIKCi8qIENBUF9ERVZJQ0VFVkVOVCB2YWx1ZXMgKERFXyBtZWFucyBkZXZpY2UgZXZlbnQpICovCiNkZWZpbmUgVFdERV9DVVNUT01FVkVOVFMgICAgICAgICAgIDB4ODAwMCAgICAgIAojZGVmaW5lIFRXREVfQ0hFQ0tBVVRPTUFUSUNDQVBUVVJFICAwCiNkZWZpbmUgVFdERV9DSEVDS0JBVFRFUlkgICAgICAgICAgIDEKI2RlZmluZSBUV0RFX0NIRUNLREVWSUNFT05MSU5FICAgICAgMgojZGVmaW5lIFRXREVfQ0hFQ0tGTEFTSCAgICAgICAgICAgICAzCiNkZWZpbmUgVFdERV9DSEVDS1BPV0VSU1VQUExZICAgICAgIDQKI2RlZmluZSBUV0RFX0NIRUNLUkVTT0xVVElPTiAgICAgICAgNQojZGVmaW5lIFRXREVfREVWSUNFQURERUQgICAgICAgICAgICA2CiNkZWZpbmUgVFdERV9ERVZJQ0VPRkZMSU5FICAgICAgICAgIDcKI2RlZmluZSBUV0RFX0RFVklDRVJFQURZICAgICAgICAgICAgOAojZGVmaW5lIFRXREVfREVWSUNFUkVNT1ZFRCAgICAgICAgICA5CiNkZWZpbmUgVFdERV9JTUFHRUNBUFRVUkVEICAgICAgICAgIDEwCiNkZWZpbmUgVFdERV9JTUFHRURFTEVURUQgICAgICAgICAgIDExCiNkZWZpbmUgVFdERV9QQVBFUkRPVUJMRUZFRUQgICAgICAgIDEyCiNkZWZpbmUgVFdERV9QQVBFUkpBTSAgICAgICAgICAgICAgIDEzCiNkZWZpbmUgVFdERV9MQU1QRkFJTFVSRSAgICAgICAgICAgIDE0CiNkZWZpbmUgVFdERV9QT1dFUlNBVkUgICAgICAgICAgICAgIDE1CiNkZWZpbmUgVFdERV9QT1dFUlNBVkVOT1RJRlkgICAgICAgIDE2CgovKiBDQVBfRkVFREVSQUxJR05NRU5UIHZhbHVlcyAoRkFfIG1lYW5zIGZlZWRlciBhbGlnbm1lbnQpICovCiNkZWZpbmUgVFdGQV9OT05FICAgMAojZGVmaW5lIFRXRkFfTEVGVCAgIDEKI2RlZmluZSBUV0ZBX0NFTlRFUiAyCiNkZWZpbmUgVFdGQV9SSUdIVCAgMwoKLyogQ0FQX0ZFRURFUk9SREVSIHZhbHVlcyAoRk9fIG1lYW5zIGZlZWRlciBvcmRlcikgKi8KI2RlZmluZSBUV0ZPX0ZJUlNUUEFHRUZJUlNUIDAKI2RlZmluZSBUV0ZPX0xBU1RQQUdFRklSU1QgIDEKCi8qIENBUF9GSUxFU1lTVEVNIHZhbHVlcyAoRlNfIG1lYW5zIGZpbGUgc3lzdGVtKSAqLwojZGVmaW5lIFRXRlNfRklMRVNZU1RFTSAgICAgICAwCiNkZWZpbmUgVFdGU19SRUNVUlNJVkVERUxFVEUgIDEKCi8qIENBUF9QT1dFUlNVUFBMWSB2YWx1ZXMgKFBTXyBtZWFucyBwb3dlciBzdXBwbHkpICovCiNkZWZpbmUgVFdQU19FWFRFUk5BTCAwCiNkZWZpbmUgVFdQU19CQVRURVJZICAxCgovKiBDQVBfUFJJTlRFUiB2YWx1ZXMgKFBSXyBtZWFucyBwcmludGVyKSAqLwojZGVmaW5lIFRXUFJfSU1QUklOVEVSVE9QQkVGT1JFICAgICAwCiNkZWZpbmUgVFdQUl9JTVBSSU5URVJUT1BBRlRFUiAgICAgIDEKI2RlZmluZSBUV1BSX0lNUFJJTlRFUkJPVFRPTUJFRk9SRSAgMgojZGVmaW5lIFRXUFJfSU1QUklOVEVSQk9UVE9NQUZURVIgICAzCiNkZWZpbmUgVFdQUl9FTkRPUlNFUlRPUEJFRk9SRSAgICAgIDQKI2RlZmluZSBUV1BSX0VORE9SU0VSVE9QQUZURVIgICAgICAgNQojZGVmaW5lIFRXUFJfRU5ET1JTRVJCT1RUT01CRUZPUkUgICA2CiNkZWZpbmUgVFdQUl9FTkRPUlNFUkJPVFRPTUFGVEVSICAgIDcKCi8qIENBUF9QUklOVEVSTU9ERSB2YWx1ZXMgKFBNXyBtZWFucyBwcmludGVyIG1vZGUpICovCiNkZWZpbmUgVFdQTV9TSU5HTEVTVFJJTkcgICAgIDAKI2RlZmluZSBUV1BNX01VTFRJU1RSSU5HICAgICAgMQojZGVmaW5lIFRXUE1fQ09NUE9VTkRTVFJJTkcgICAyCgovKiBJQ0FQX0JBUkNPREVTRUFSQ0hNT0RFIHZhbHVlcyAoVFdCRF8gbWVhbnMgc2VhcmNoKSAqLwojZGVmaW5lIFRXQkRfSE9SWiAgICAgMAojZGVmaW5lIFRXQkRfVkVSVCAgICAgMQojZGVmaW5lIFRXQkRfSE9SWlZFUlQgMgojZGVmaW5lIFRXQkRfVkVSVEhPUlogMwoKLyogSUNBUF9GTEFTSFVTRUQyIHZhbHVlcyAoRkxfIG1lYW5zIGZsYXNoKSAqLwojZGVmaW5lIFRXRkxfTk9ORSAgICAgMAojZGVmaW5lIFRXRkxfT0ZGICAgICAgMQojZGVmaW5lIFRXRkxfT04gICAgICAgMgojZGVmaW5lIFRXRkxfQVVUTyAgICAgMwojZGVmaW5lIFRXRkxfUkVERVlFICAgNAoKLyogSUNBUF9GTElQUk9UQVRJT04gdmFsdWVzIChGUl8gbWVhbnMgZmxpcCByb3RhdGlvbikgKi8KI2RlZmluZSBUV0ZSX0JPT0sgICAgIDAKI2RlZmluZSBUV0ZSX0ZBTkZPTEQgIDEKCi8qIElDQVBfSU1BR0VGSUxURVIgdmFsdWVzIChJRl8gbWVhbnMgaW1hZ2UgZmlsdGVyKSAqLwojZGVmaW5lIFRXSUZfTk9ORSAgICAgMAojZGVmaW5lIFRXSUZfQVVUTyAgICAgMQojZGVmaW5lIFRXSUZfTE9XUEFTUyAgMgojZGVmaW5lIFRXSUZfQkFORFBBU1MgMwojZGVmaW5lIFRXSUZfSElHSFBBU1MgNAojZGVmaW5lIFRXSUZfVEVYVCAgICAgVFdJRl9CQU5EUEFTUwojZGVmaW5lIFRXSUZfRklORUxJTkUgVFdJRl9ISUdIUEFTUwoKLyogSUNBUF9OT0lTRUZJTFRFUiB2YWx1ZXMgKE5GXyBtZWFucyBub2lzZSBmaWx0ZXIpICovCiNkZWZpbmUgVFdORl9OT05FICAgICAgICAgMAojZGVmaW5lIFRXTkZfQVVUTyAgICAgICAgIDEKI2RlZmluZSBUV05GX0xPTkVQSVhFTCAgICAyCiNkZWZpbmUgVFdORl9NQUpPUklUWVJVTEUgMwoKLyogSUNBUF9PVkVSU0NBTiB2YWx1ZXMgKE9WXyBtZWFucyBvdmVyc2NhbikgKi8KI2RlZmluZSBUV09WX05PTkUgICAgICAgMAojZGVmaW5lIFRXT1ZfQVVUTyAgICAgICAxCiNkZWZpbmUgVFdPVl9UT1BCT1RUT00gIDIKI2RlZmluZSBUV09WX0xFRlRSSUdIVCAgMwojZGVmaW5lIFRXT1ZfQUxMICAgICAgICA0CgovKiBUV19GSUxFU1lTVEVNLkZpbGVUeXBlIHZhbHVlcyAoRlRfIG1lYW5zIGZpbGUgdHlwZSkgKi8KI2RlZmluZSBUV0ZZX0NBTUVSQSAgICAgICAgIDAKI2RlZmluZSBUV0ZZX0NBTUVSQVRPUCAgICAgIDEKI2RlZmluZSBUV0ZZX0NBTUVSQUJPVFRPTSAgIDIKI2RlZmluZSBUV0ZZX0NBTUVSQVBSRVZJRVcgIDMKI2RlZmluZSBUV0ZZX0RPTUFJTiAgICAgICAgIDQKI2RlZmluZSBUV0ZZX0hPU1QgICAgICAgICAgIDUKI2RlZmluZSBUV0ZZX0RJUkVDVE9SWSAgICAgIDYKI2RlZmluZSBUV0ZZX0lNQUdFICAgICAgICAgIDcKI2RlZmluZSBUV0ZZX1VOS05PV04gICAgICAgIDgKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIENvdW50cnkgQ29uc3RhbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2RlZmluZSBUV0NZX0FGR0hBTklTVEFOICAgMTAwMQojZGVmaW5lIFRXQ1lfQUxHRVJJQSAgICAgICAgMjEzCiNkZWZpbmUgVFdDWV9BTUVSSUNBTlNBTU9BICA2ODQKI2RlZmluZSBUV0NZX0FORE9SUkEgICAgICAgIDAzMwojZGVmaW5lIFRXQ1lfQU5HT0xBICAgICAgICAxMDAyCiNkZWZpbmUgVFdDWV9BTkdVSUxMQSAgICAgIDgwOTAKI2RlZmluZSBUV0NZX0FOVElHVUEgICAgICAgODA5MQojZGVmaW5lIFRXQ1lfQVJHRU5USU5BICAgICAgIDU0CiNkZWZpbmUgVFdDWV9BUlVCQSAgICAgICAgICAyOTcKI2RlZmluZSBUV0NZX0FTQ0VOU0lPTkkgICAgIDI0NwojZGVmaW5lIFRXQ1lfQVVTVFJBTElBICAgICAgIDYxCiNkZWZpbmUgVFdDWV9BVVNUUklBICAgICAgICAgNDMKI2RlZmluZSBUV0NZX0JBSEFNQVMgICAgICAgODA5MgojZGVmaW5lIFRXQ1lfQkFIUkFJTiAgICAgICAgOTczCiNkZWZpbmUgVFdDWV9CQU5HTEFERVNIICAgICA4ODAKI2RlZmluZSBUV0NZX0JBUkJBRE9TICAgICAgODA5MwojZGVmaW5lIFRXQ1lfQkVMR0lVTSAgICAgICAgIDMyCiNkZWZpbmUgVFdDWV9CRUxJWkUgICAgICAgICA1MDEKI2RlZmluZSBUV0NZX0JFTklOICAgICAgICAgIDIyOQojZGVmaW5lIFRXQ1lfQkVSTVVEQSAgICAgICA4MDk0CiNkZWZpbmUgVFdDWV9CSFVUQU4gICAgICAgIDEwMDMKI2RlZmluZSBUV0NZX0JPTElWSUEgICAgICAgIDU5MQojZGVmaW5lIFRXQ1lfQk9UU1dBTkEgICAgICAgMjY3CiNkZWZpbmUgVFdDWV9CUklUQUlOICAgICAgICAgIDYKI2RlZmluZSBUV0NZX0JSSVRWSVJHSU5JUyAgODA5NQojZGVmaW5lIFRXQ1lfQlJBWklMICAgICAgICAgIDU1CiNkZWZpbmUgVFdDWV9CUlVORUkgICAgICAgICA2NzMKI2RlZmluZSBUV0NZX0JVTEdBUklBICAgICAgIDM1OQojZGVmaW5lIFRXQ1lfQlVSS0lOQUZBU08gICAxMDA0CiNkZWZpbmUgVFdDWV9CVVJNQSAgICAgICAgIDEwMDUKI2RlZmluZSBUV0NZX0JVUlVOREkgICAgICAgMTAwNgojZGVmaW5lIFRXQ1lfQ0FNQVJPT04gICAgICAgMjM3CiNkZWZpbmUgVFdDWV9DQU5BREEgICAgICAgICAgIDIKI2RlZmluZSBUV0NZX0NBUEVWRVJERUlTICAgIDIzOAojZGVmaW5lIFRXQ1lfQ0FZTUFOSVMgICAgICA4MDk2CiNkZWZpbmUgVFdDWV9DRU5UUkFMQUZSRVAgIDEwMDcKI2RlZmluZSBUV0NZX0NIQUQgICAgICAgICAgMTAwOAojZGVmaW5lIFRXQ1lfQ0hJTEUgICAgICAgICAgIDU2CiNkZWZpbmUgVFdDWV9DSElOQSAgICAgICAgICAgODYKI2RlZmluZSBUV0NZX0NIUklTVE1BU0lTICAgMTAwOQojZGVmaW5lIFRXQ1lfQ09DT1NJUyAgICAgICAxMDA5CiNkZWZpbmUgVFdDWV9DT0xPTUJJQSAgICAgICAgNTcKI2RlZmluZSBUV0NZX0NPTU9ST1MgICAgICAgMTAxMAojZGVmaW5lIFRXQ1lfQ09OR08gICAgICAgICAxMDExCiNkZWZpbmUgVFdDWV9DT09LSVMgICAgICAgIDEwMTIKI2RlZmluZSBUV0NZX0NPU1RBUklDQSAgICAgNTA2CiNkZWZpbmUgVFdDWV9DVUJBICAgICAgICAgICAwMDUKI2RlZmluZSBUV0NZX0NZUFJVUyAgICAgICAgIDM1NwojZGVmaW5lIFRXQ1lfQ1pFQ0hPU0xPVkFLSUEgIDQyCiNkZWZpbmUgVFdDWV9ERU5NQVJLICAgICAgICAgNDUKI2RlZmluZSBUV0NZX0RKSUJPVVRJICAgICAgMTAxMwojZGVmaW5lIFRXQ1lfRE9NSU5JQ0EgICAgICA4MDk3CiNkZWZpbmUgVFdDWV9ET01JTkNBTlJFUCAgIDgwOTgKI2RlZmluZSBUV0NZX0VBU1RFUklTICAgICAgMTAxNAojZGVmaW5lIFRXQ1lfRUNVQURPUiAgICAgICAgNTkzCiNkZWZpbmUgVFdDWV9FR1lQVCAgICAgICAgICAgMjAKI2RlZmluZSBUV0NZX0VMU0FMVkFET1IgICAgIDUwMwojZGVmaW5lIFRXQ1lfRVFHVUlORUEgICAgICAxMDE1CiNkZWZpbmUgVFdDWV9FVEhJT1BJQSAgICAgICAyNTEKI2RlZmluZSBUV0NZX0ZBTEtMQU5ESVMgICAgMTAxNgojZGVmaW5lIFRXQ1lfRkFFUk9FSVMgICAgICAgMjk4CiNkZWZpbmUgVFdDWV9GSUpJSVNMQU5EUyAgICA2NzkKI2RlZmluZSBUV0NZX0ZJTkxBTkQgICAgICAgIDM1OAojZGVmaW5lIFRXQ1lfRlJBTkNFICAgICAgICAgIDMzCiNkZWZpbmUgVFdDWV9GUkFOVElMTEVTICAgICA1OTYKI2RlZmluZSBUV0NZX0ZSR1VJQU5BICAgICAgIDU5NAojZGVmaW5lIFRXQ1lfRlJQT0xZTkVJU0EgICAgNjg5CiNkZWZpbmUgVFdDWV9GVVRBTkFJUyAgICAgIDEwNDMKI2RlZmluZSBUV0NZX0dBQk9OICAgICAgICAgIDI0MQojZGVmaW5lIFRXQ1lfR0FNQklBICAgICAgICAgMjIwCiNkZWZpbmUgVFdDWV9HRVJNQU5ZICAgICAgICAgNDkKI2RlZmluZSBUV0NZX0dIQU5BICAgICAgICAgIDIzMwojZGVmaW5lIFRXQ1lfR0lCUkFMVEVSICAgICAgMzUwCiNkZWZpbmUgVFdDWV9HUkVFQ0UgICAgICAgICAgMzAKI2RlZmluZSBUV0NZX0dSRUVOTEFORCAgICAgIDI5OQojZGVmaW5lIFRXQ1lfR1JFTkFEQSAgICAgICA4MDk5CiNkZWZpbmUgVFdDWV9HUkVORURJTkVTICAgIDgwMTUKI2RlZmluZSBUV0NZX0dVQURFTE9VUEUgICAgIDU5MAojZGVmaW5lIFRXQ1lfR1VBTSAgICAgICAgICAgNjcxCiNkZWZpbmUgVFdDWV9HVUFOVEFOQU1PQkFZIDUzOTkKI2RlZmluZSBUV0NZX0dVQVRFTUFMQSAgICAgIDUwMgojZGVmaW5lIFRXQ1lfR1VJTkVBICAgICAgICAgMjI0CiNkZWZpbmUgVFdDWV9HVUlORUFCSVNTQVUgIDEwMTcKI2RlZmluZSBUV0NZX0dVWUFOQSAgICAgICAgIDU5MgojZGVmaW5lIFRXQ1lfSEFJVEkgICAgICAgICAgNTA5CiNkZWZpbmUgVFdDWV9IT05EVVJBUyAgICAgICA1MDQKI2RlZmluZSBUV0NZX0hPTkdLT05HICAgICAgODUyCiNkZWZpbmUgVFdDWV9IVU5HQVJZICAgICAgICAgMzYKI2RlZmluZSBUV0NZX0lDRUxBTkQgICAgICAgIDM1NAojZGVmaW5lIFRXQ1lfSU5ESUEgICAgICAgICAgIDkxCiNkZWZpbmUgVFdDWV9JTkRPTkVTSUEgICAgICAgNjIKI2RlZmluZSBUV0NZX0lSQU4gICAgICAgICAgICA5OAojZGVmaW5lIFRXQ1lfSVJBUSAgICAgICAgICAgOTY0CiNkZWZpbmUgVFdDWV9JUkVMQU5EICAgICAgICAzNTMKI2RlZmluZSBUV0NZX0lTUkFFTCAgICAgICAgIDk3MgojZGVmaW5lIFRXQ1lfSVRBTFkgICAgICAgICAgIDM5CiNkZWZpbmUgVFdDWV9JVk9SWUNPQVNUICAgIDIyNQojZGVmaW5lIFRXQ1lfSkFNQUlDQSAgICAgICA4MDEwCiNkZWZpbmUgVFdDWV9KQVBBTiAgICAgICAgICAgODEKI2RlZmluZSBUV0NZX0pPUkRBTiAgICAgICAgIDk2MgojZGVmaW5lIFRXQ1lfS0VOWUEgICAgICAgICAgMjU0CiNkZWZpbmUgVFdDWV9LSVJJQkFUSSAgICAgIDEwMTgKI2RlZmluZSBUV0NZX0tPUkVBICAgICAgICAgICA4MgojZGVmaW5lIFRXQ1lfS1VXQUlUICAgICAgICAgOTY1CiNkZWZpbmUgVFdDWV9MQU9TICAgICAgICAgIDEwMTkKI2RlZmluZSBUV0NZX0xFQkFOT04gICAgICAgMTAyMAojZGVmaW5lIFRXQ1lfTElCRVJJQSAgICAgICAgMjMxCiNkZWZpbmUgVFdDWV9MSUJZQSAgICAgICAgICAyMTgKI2RlZmluZSBUV0NZX0xJRUNIVEVOU1RFSU4gICA0MQojZGVmaW5lIFRXQ1lfTFVYRU5CT1VSRyAgICAgMzUyCiNkZWZpbmUgVFdDWV9NQUNBTyAgICAgICAgICA4NTMKI2RlZmluZSBUV0NZX01BREFHQVNDQVIgICAgMTAyMQojZGVmaW5lIFRXQ1lfTUFMQVdJICAgICAgICAgMjY1CiNkZWZpbmUgVFdDWV9NQUxBWVNJQSAgICAgICAgNjAKI2RlZmluZSBUV0NZX01BTERJVkVTICAgICAgIDk2MAojZGVmaW5lIFRXQ1lfTUFMSSAgICAgICAgICAxMDIyCiNkZWZpbmUgVFdDWV9NQUxUQSAgICAgICAgICAzNTYKI2RlZmluZSBUV0NZX01BUlNIQUxMSVMgICAgIDY5MgojZGVmaW5lIFRXQ1lfTUFVUklUQU5JQSAgICAxMDIzCiNkZWZpbmUgVFdDWV9NQVVSSVRJVVMgICAgICAyMzAKI2RlZmluZSBUV0NZX01FWElDTyAgICAgICAgICAgMwojZGVmaW5lIFRXQ1lfTUlDUk9ORVNJQSAgICAgNjkxCiNkZWZpbmUgVFdDWV9NSVFVRUxPTiAgICAgICA1MDgKI2RlZmluZSBUV0NZX01PTkFDTyAgICAgICAgICAzMwojZGVmaW5lIFRXQ1lfTU9OR09MSUEgICAgICAxMDI0CiNkZWZpbmUgVFdDWV9NT05UU0VSUkFUICAgIDgwMTEKI2RlZmluZSBUV0NZX01PUk9DQ08gICAgICAgIDIxMgojZGVmaW5lIFRXQ1lfTU9aQU1CSVFVRSAgICAxMDI1CiNkZWZpbmUgVFdDWV9OQU1JQklBICAgICAgICAyNjQKI2RlZmluZSBUV0NZX05BVVJVICAgICAgICAgMTAyNgojZGVmaW5lIFRXQ1lfTkVQQUwgICAgICAgICAgOTc3CiNkZWZpbmUgVFdDWV9ORVRIRVJMQU5EUyAgICAgMzEKI2RlZmluZSBUV0NZX05FVEhBTlRJTExFUyAgIDU5OQojZGVmaW5lIFRXQ1lfTkVWSVMgICAgICAgICA4MDEyCiNkZWZpbmUgVFdDWV9ORVdDQUxFRE9OSUEgICA2ODcKI2RlZmluZSBUV0NZX05FV1pFQUxBTkQgICAgICA2NAojZGVmaW5lIFRXQ1lfTklDQVJBR1VBICAgICAgNTA1CiNkZWZpbmUgVFdDWV9OSUdFUiAgICAgICAgICAyMjcKI2RlZmluZSBUV0NZX05JR0VSSUEgICAgICAgIDIzNAojZGVmaW5lIFRXQ1lfTklVRSAgICAgICAgICAxMDI3CiNkZWZpbmUgVFdDWV9OT1JGT0xLSSAgICAgIDEwMjgKI2RlZmluZSBUV0NZX05PUldBWSAgICAgICAgICA0NwojZGVmaW5lIFRXQ1lfT01BTiAgICAgICAgICAgOTY4CiNkZWZpbmUgVFdDWV9QQUtJU1RBTiAgICAgICAgOTIKI2RlZmluZSBUV0NZX1BBTEFVICAgICAgICAgMTAyOQojZGVmaW5lIFRXQ1lfUEFOQU1BICAgICAgICAgNTA3CiNkZWZpbmUgVFdDWV9QQVJBR1VBWSAgICAgICA1OTUKI2RlZmluZSBUV0NZX1BFUlUgICAgICAgICAgICA1MQojZGVmaW5lIFRXQ1lfUEhJTExJUFBJTkVTICAgIDYzCiNkZWZpbmUgVFdDWV9QSVRDQUlSTklTICAgIDEwMzAKI2RlZmluZSBUV0NZX1BORVdHVUlORUEgICAgIDY3NQojZGVmaW5lIFRXQ1lfUE9MQU5EICAgICAgICAgIDQ4CiNkZWZpbmUgVFdDWV9QT1JUVUdBTCAgICAgICAzNTEKI2RlZmluZSBUV0NZX1FBVEFSICAgICAgICAgIDk3NAojZGVmaW5lIFRXQ1lfUkVVTklPTkkgICAgICAxMDMxCiNkZWZpbmUgVFdDWV9ST01BTklBICAgICAgICAgNDAKI2RlZmluZSBUV0NZX1JXQU5EQSAgICAgICAgIDI1MAojZGVmaW5lIFRXQ1lfU0FJUEFOICAgICAgICAgNjcwCiNkZWZpbmUgVFdDWV9TQU5NQVJJTk8gICAgICAgMzkKI2RlZmluZSBUV0NZX1NBT1RPTUUgICAgICAgMTAzMwojZGVmaW5lIFRXQ1lfU0FVRElBUkFCSUEgICAgOTY2CiNkZWZpbmUgVFdDWV9TRU5FR0FMICAgICAgICAyMjEKI2RlZmluZSBUV0NZX1NFWUNIRUxMRVNJUyAgMTAzNAojZGVmaW5lIFRXQ1lfU0lFUlJBTEVPTkUgICAxMDM1CiNkZWZpbmUgVFdDWV9TSU5HQVBPUkUgICAgICAgNjUKI2RlZmluZSBUV0NZX1NPTE9NT05JUyAgICAgMTAzNgojZGVmaW5lIFRXQ1lfU09NQUxJICAgICAgICAxMDM3CiNkZWZpbmUgVFdDWV9TT1VUSEFGUklDQSAgICAyNwojZGVmaW5lIFRXQ1lfU1BBSU4gICAgICAgICAgIDM0CiNkZWZpbmUgVFdDWV9TUklMQU5LQSAgICAgICAgOTQKI2RlZmluZSBUV0NZX1NUSEVMRU5BICAgICAgMTAzMgojZGVmaW5lIFRXQ1lfU1RLSVRUUyAgICAgICA4MDEzCiNkZWZpbmUgVFdDWV9TVExVQ0lBICAgICAgIDgwMTQKI2RlZmluZSBUV0NZX1NUUElFUlJFICAgICAgIDUwOAojZGVmaW5lIFRXQ1lfU1RWSU5DRU5UICAgICA4MDE1CiNkZWZpbmUgVFdDWV9TVURBTiAgICAgICAgIDEwMzgKI2RlZmluZSBUV0NZX1NVUklOQU1FICAgICAgIDU5NwojZGVmaW5lIFRXQ1lfU1dBWklMQU5EICAgICAgMjY4CiNkZWZpbmUgVFdDWV9TV0VERU4gICAgICAgICAgNDYKI2RlZmluZSBUV0NZX1NXSVRaRVJMQU5EICAgICA0MQojZGVmaW5lIFRXQ1lfU1lSSUEgICAgICAgICAxMDM5CiNkZWZpbmUgVFdDWV9UQUlXQU4gICAgICAgICA4ODYKI2RlZmluZSBUV0NZX1RBTlpBTklBICAgICAgIDI1NQojZGVmaW5lIFRXQ1lfVEhBSUxBTkQgICAgICAgIDY2CiNkZWZpbmUgVFdDWV9UT0JBR08gICAgICAgIDgwMTYKI2RlZmluZSBUV0NZX1RPR08gICAgICAgICAgIDIyOAojZGVmaW5lIFRXQ1lfVE9OR0FJUyAgICAgICAgNjc2CiNkZWZpbmUgVFdDWV9UUklOSURBRCAgICAgIDgwMTYKI2RlZmluZSBUV0NZX1RVTklTSUEgICAgICAgIDIxNgojZGVmaW5lIFRXQ1lfVFVSS0VZICAgICAgICAgIDkwCiNkZWZpbmUgVFdDWV9UVVJLU0NBSUNPUyAgIDgwMTcKI2RlZmluZSBUV0NZX1RVVkFMVSAgICAgICAgMTA0MAojZGVmaW5lIFRXQ1lfVUdBTkRBICAgICAgICAgMjU2CiNkZWZpbmUgVFdDWV9VU1NSICAgICAgICAgICAgIDcKI2RlZmluZSBUV0NZX1VBRU1JUkFURVMgICAgIDk3MQojZGVmaW5lIFRXQ1lfVU5JVEVES0lOR0RPTSAgIDQ0CiNkZWZpbmUgVFdDWV9VU0EgICAgICAgICAgICAgIDEKI2RlZmluZSBUV0NZX1VSVUdVQVkgICAgICAgIDU5OAojZGVmaW5lIFRXQ1lfVkFOVUFUVSAgICAgICAxMDQxCiNkZWZpbmUgVFdDWV9WQVRJQ0FOQ0lUWSAgICAgMzkKI2RlZmluZSBUV0NZX1ZFTkVaVUVMQSAgICAgICA1OAojZGVmaW5lIFRXQ1lfV0FLRSAgICAgICAgICAxMDQyCiNkZWZpbmUgVFdDWV9XQUxMSVNJUyAgICAgIDEwNDMKI2RlZmluZSBUV0NZX1dFU1RFUk5TQUhBUkEgMTA0NAojZGVmaW5lIFRXQ1lfV0VTVEVSTlNBTU9BICAxMDQ1CiNkZWZpbmUgVFdDWV9ZRU1FTiAgICAgICAgIDEwNDYKI2RlZmluZSBUV0NZX1lVR09TTEFWSUEgICAgICAzOAojZGVmaW5lIFRXQ1lfWkFJUkUgICAgICAgICAgMjQzCiNkZWZpbmUgVFdDWV9aQU1CSUEgICAgICAgICAyNjAKI2RlZmluZSBUV0NZX1pJTUJBQldFICAgICAgIDI2MwovKiBBZGRlZCBmb3IgMS44ICovCiNkZWZpbmUgVFdDWV9BTEJBTklBICAgICAgICAzNTUKI2RlZmluZSBUV0NZX0FSTUVOSUEgICAgICAgIDM3NAojZGVmaW5lIFRXQ1lfQVpFUkJBSUpBTiAgICAgOTk0CiNkZWZpbmUgVFdDWV9CRUxBUlVTICAgICAgICAzNzUKI2RlZmluZSBUV0NZX0JPU05JQUhFUlpHTyAgIDM4NwojZGVmaW5lIFRXQ1lfQ0FNQk9ESUEgICAgICAgODU1CiNkZWZpbmUgVFdDWV9DUk9BVElBICAgICAgICAzODUKI2RlZmluZSBUV0NZX0NaRUNIUkVQVUJMSUMgIDQyMAojZGVmaW5lIFRXQ1lfRElFR09HQVJDSUEgICAgMjQ2CiNkZWZpbmUgVFdDWV9FUklUUkVBICAgICAgICAyOTEKI2RlZmluZSBUV0NZX0VTVE9OSUEgICAgICAgIDM3MgojZGVmaW5lIFRXQ1lfR0VPUkdJQSAgICAgICAgOTk1CiNkZWZpbmUgVFdDWV9MQVRWSUEgICAgICAgICAzNzEKI2RlZmluZSBUV0NZX0xFU09USE8gICAgICAgIDI2NgojZGVmaW5lIFRXQ1lfTElUSFVBTklBICAgICAgMzcwCiNkZWZpbmUgVFdDWV9NQUNFRE9OSUEgICAgICAzODkKI2RlZmluZSBUV0NZX01BWU9UVEVJUyAgICAgIDI2OQojZGVmaW5lIFRXQ1lfTU9MRE9WQSAgICAgICAgMzczCiNkZWZpbmUgVFdDWV9NWUFOTUFSICAgICAgICA5NQojZGVmaW5lIFRXQ1lfTk9SVEhLT1JFQSAgICAgODUwCiNkZWZpbmUgVFdDWV9QVUVSVE9SSUNPICAgICA3ODcKI2RlZmluZSBUV0NZX1JVU1NJQSAgICAgICAgIDcKI2RlZmluZSBUV0NZX1NFUkJJQSAgICAgICAgIDM4MQojZGVmaW5lIFRXQ1lfU0xPVkFLSUEgICAgICAgNDIxCiNkZWZpbmUgVFdDWV9TTE9WRU5JQSAgICAgICAzODYKI2RlZmluZSBUV0NZX1NPVVRIS09SRUEgICAgIDgyCiNkZWZpbmUgVFdDWV9VS1JBSU5FICAgICAgICAzODAKI2RlZmluZSBUV0NZX1VTVklSR0lOSVMgICAgIDM0MAojZGVmaW5lIFRXQ1lfVklFVE5BTSAgICAgICAgODQKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIExhbmd1YWdlIENvbnN0YW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2RlZmluZSBUV0xHX0RBTiAgICAgICAgICAgICAgMCAvKiBEYW5pc2ggICAgICAgICAgICAgICAgICovCiNkZWZpbmUgVFdMR19EVVQgICAgICAgICAgICAgIDEgLyogRHV0Y2ggICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIFRXTEdfRU5HICAgICAgICAgICAgICAyIC8qIEludGVybmF0aW9uYWwgRW5nbGlzaCAgKi8KI2RlZmluZSBUV0xHX0ZDRiAgICAgICAgICAgICAgMyAvKiBGcmVuY2ggQ2FuYWRpYW4gICAgICAgICovCiNkZWZpbmUgVFdMR19GSU4gICAgICAgICAgICAgIDQgLyogRmlubmlzaCAgICAgICAgICAgICAgICAqLwojZGVmaW5lIFRXTEdfRlJOICAgICAgICAgICAgICA1IC8qIEZyZW5jaCAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBUV0xHX0dFUiAgICAgICAgICAgICAgNiAvKiBHZXJtYW4gICAgICAgICAgICAgICAgICovCiNkZWZpbmUgVFdMR19JQ0UgICAgICAgICAgICAgIDcgLyogSWNlbGFuZGljICAgICAgICAgICAgICAqLwojZGVmaW5lIFRXTEdfSVROICAgICAgICAgICAgICA4IC8qIEl0YWxpYW4gICAgICAgICAgICAgICAgKi8KI2RlZmluZSBUV0xHX05PUiAgICAgICAgICAgICAgOSAvKiBOb3J3ZWdpYW4gICAgICAgICAgICAgICovCiNkZWZpbmUgVFdMR19QT1IgICAgICAgICAgICAgMTAgLyogUG9ydHVndWVzZSAgICAgICAgICAgICAqLwojZGVmaW5lIFRXTEdfU1BBICAgICAgICAgICAgIDExIC8qIFNwYW5pc2ggICAgICAgICAgICAgICAgKi8KI2RlZmluZSBUV0xHX1NXRSAgICAgICAgICAgICAxMiAvKiBTd2VkaXNoICAgICAgICAgICAgICAgICovCiNkZWZpbmUgVFdMR19VU0EgICAgICAgICAgICAgMTMgLyogVS5TLiBFbmdsaXNoICAgICAgICAgICAqLwovKiBBZGRlZCBmb3IgMS44ICovCiNkZWZpbmUgVFdMR19VU0VSTE9DQUxFICAgICAgICAgICAtMQojZGVmaW5lIFRXTEdfQUZSSUtBQU5TICAgICAgICAgICAgMTQgIAojZGVmaW5lIFRXTEdfQUxCQU5JQSAgICAgICAgICAgICAgMTUKI2RlZmluZSBUV0xHX0FSQUJJQyAgICAgICAgICAgICAgIDE2CiNkZWZpbmUgVFdMR19BUkFCSUNfQUxHRVJJQSAgICAgICAxNwojZGVmaW5lIFRXTEdfQVJBQklDX0JBSFJBSU4gICAgICAgMTgKI2RlZmluZSBUV0xHX0FSQUJJQ19FR1lQVCAgICAgICAgIDE5CiNkZWZpbmUgVFdMR19BUkFCSUNfSVJBUSAgICAgICAgICAyMAojZGVmaW5lIFRXTEdfQVJBQklDX0pPUkRBTiAgICAgICAgMjEKI2RlZmluZSBUV0xHX0FSQUJJQ19LVVdBSVQgICAgICAgIDIyCiNkZWZpbmUgVFdMR19BUkFCSUNfTEVCQU5PTiAgICAgICAyMwojZGVmaW5lIFRXTEdfQVJBQklDX0xJQllBICAgICAgICAgMjQKI2RlZmluZSBUV0xHX0FSQUJJQ19NT1JPQ0NPICAgICAgIDI1CiNkZWZpbmUgVFdMR19BUkFCSUNfT01BTiAgICAgICAgICAyNgojZGVmaW5lIFRXTEdfQVJBQklDX1FBVEFSICAgICAgICAgMjcKI2RlZmluZSBUV0xHX0FSQUJJQ19TQVVESUFSQUJJQSAgIDI4CiNkZWZpbmUgVFdMR19BUkFCSUNfU1lSSUEgICAgICAgICAyOQojZGVmaW5lIFRXTEdfQVJBQklDX1RVTklTSUEgICAgICAgMzAKI2RlZmluZSBUV0xHX0FSQUJJQ19VQUUgICAgICAgICAgIDMxIC8qIFVuaXRlZCBBcmFiaWMgRW1pcmF0ZXMgKi8KI2RlZmluZSBUV0xHX0FSQUJJQ19ZRU1FTiAgICAgICAgIDMyCiNkZWZpbmUgVFdMR19CQVNRVUUgICAgICAgICAgICAgICAzMwojZGVmaW5lIFRXTEdfQllFTE9SVVNTSUFOICAgICAgICAgMzQKI2RlZmluZSBUV0xHX0JVTEdBUklBTiAgICAgICAgICAgIDM1CiNkZWZpbmUgVFdMR19DQVRBTEFOICAgICAgICAgICAgICAzNgojZGVmaW5lIFRXTEdfQ0hJTkVTRSAgICAgICAgICAgICAgMzcKI2RlZmluZSBUV0xHX0NISU5FU0VfSE9OR0tPTkcgICAgIDM4CiNkZWZpbmUgVFdMR19DSElORVNFX1BSQyAgICAgICAgICAzOSAvKiBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSAqLwojZGVmaW5lIFRXTEdfQ0hJTkVTRV9TSU5HQVBPUkUgICAgNDAKI2RlZmluZSBUV0xHX0NISU5FU0VfU0lNUExJRklFRCAgIDQxCiNkZWZpbmUgVFdMR19DSElORVNFX1RBSVdBTiAgICAgICA0MgojZGVmaW5lIFRXTEdfQ0hJTkVTRV9UUkFESVRJT05BTCAgNDMKI2RlZmluZSBUV0xHX0NST0FUSUEgICAgICAgICAgICAgIDQ0CiNkZWZpbmUgVFdMR19DWkVDSCAgICAgICAgICAgICAgICA0NQojZGVmaW5lIFRXTEdfREFOSVNIICAgICAgICAgICAgICAgVFdMR19EQU4KI2RlZmluZSBUV0xHX0RVVENIICAgICAgICAgICAgICAgIFRXTEdfRFVUCiNkZWZpbmUgVFdMR19EVVRDSF9CRUxHSUFOICAgICAgICA0NgojZGVmaW5lIFRXTEdfRU5HTElTSCAgICAgICAgICAgICAgVFdMR19FTkcKI2RlZmluZSBUV0xHX0VOR0xJU0hfQVVTVFJBTElBTiAgIDQ3CiNkZWZpbmUgVFdMR19FTkdMSVNIX0NBTkFESUFOICAgICA0OAojZGVmaW5lIFRXTEdfRU5HTElTSF9JUkVMQU5EICAgICAgNDkKI2RlZmluZSBUV0xHX0VOR0xJU0hfTkVXWkVBTEFORCAgIDUwCiNkZWZpbmUgVFdMR19FTkdMSVNIX1NPVVRIQUZSSUNBICA1MQojZGVmaW5lIFRXTEdfRU5HTElTSF9VSyAgICAgICAgICAgNTIKI2RlZmluZSBUV0xHX0VOR0xJU0hfVVNBICAgICAgICAgIFRXTEdfVVNBCiNkZWZpbmUgVFdMR19FU1RPTklBTiAgICAgICAgICAgICA1MwojZGVmaW5lIFRXTEdfRkFFUk9FU0UgICAgICAgICAgICAgNTQKI2RlZmluZSBUV0xHX0ZBUlNJICAgICAgICAgICAgICAgIDU1CiNkZWZpbmUgVFdMR19GSU5OSVNIICAgICAgICAgICAgICBUV0xHX0ZJTgojZGVmaW5lIFRXTEdfRlJFTkNIICAgICAgICAgICAgICAgVFdMR19GUk4KI2RlZmluZSBUV0xHX0ZSRU5DSF9CRUxHSUFOICAgICAgIDU2CiNkZWZpbmUgVFdMR19GUkVOQ0hfQ0FOQURJQU4gICAgICBUV0xHX0ZDRgojZGVmaW5lIFRXTEdfRlJFTkNIX0xVWEVNQk9VUkcgICAgNTcKI2RlZmluZSBUV0xHX0ZSRU5DSF9TV0lTUyAgICAgICAgIDU4CiNkZWZpbmUgVFdMR19HRVJNQU4gICAgICAgICAgICAgICBUV0xHX0dFUgojZGVmaW5lIFRXTEdfR0VSTUFOX0FVU1RSSUFOICAgICAgNTkKI2RlZmluZSBUV0xHX0dFUk1BTl9MVVhFTUJPVVJHICAgIDYwCiNkZWZpbmUgVFdMR19HRVJNQU5fTElFQ0hURU5TVEVJTiA2MQojZGVmaW5lIFRXTEdfR0VSTUFOX1NXSVNTICAgICAgICAgNjIKI2RlZmluZSBUV0xHX0dSRUVLICAgICAgICAgICAgICAgIDYzCiNkZWZpbmUgVFdMR19IRUJSRVcgICAgICAgICAgICAgICA2NAojZGVmaW5lIFRXTEdfSFVOR0FSSUFOICAgICAgICAgICAgNjUKI2RlZmluZSBUV0xHX0lDRUxBTkRJQyAgICAgICAgICAgIFRXTEdfSUNFCiNkZWZpbmUgVFdMR19JTkRPTkVTSUFOICAgICAgICAgICA2NgojZGVmaW5lIFRXTEdfSVRBTElBTiAgICAgICAgICAgICAgVFdMR19JVE4KI2RlZmluZSBUV0xHX0lUQUxJQU5fU1dJU1MgICAgICAgIDY3CiNkZWZpbmUgVFdMR19KQVBBTkVTRSAgICAgICAgICAgICA2OAojZGVmaW5lIFRXTEdfS09SRUFOICAgICAgICAgICAgICAgNjkKI2RlZmluZSBUV0xHX0tPUkVBTl9KT0hBQiAgICAgICAgIDcwCiNkZWZpbmUgVFdMR19MQVRWSUFOICAgICAgICAgICAgICA3MQojZGVmaW5lIFRXTEdfTElUSFVBTklBTiAgICAgICAgICAgNzIKI2RlZmluZSBUV0xHX05PUldFR0lBTiAgICAgICAgICAgIFRXTEdfTk9SCiNkZWZpbmUgVFdMR19OT1JXRUdJQU5fQk9LTUFMICAgICA3MwojZGVmaW5lIFRXTEdfTk9SV0VHSUFOX05ZTk9SU0sgICAgNzQKI2RlZmluZSBUV0xHX1BPTElTSCAgICAgICAgICAgICAgIDc1CiNkZWZpbmUgVFdMR19QT1JUVUdVRVNFICAgICAgICAgICBUV0xHX1BPUgojZGVmaW5lIFRXTEdfUE9SVFVHVUVTRV9CUkFaSUwgICAgNzYKI2RlZmluZSBUV0xHX1JPTUFOSUFOICAgICAgICAgICAgIDc3CiNkZWZpbmUgVFdMR19SVVNTSUFOICAgICAgICAgICAgICA3OAojZGVmaW5lIFRXTEdfU0VSQklBTl9MQVRJTiAgICAgICAgNzkKI2RlZmluZSBUV0xHX1NMT1ZBSyAgICAgICAgICAgICAgIDgwCiNkZWZpbmUgVFdMR19TTE9WRU5JQU4gICAgICAgICAgICA4MQojZGVmaW5lIFRXTEdfU1BBTklTSCAgICAgICAgICAgICAgVFdMR19TUEEKI2RlZmluZSBUV0xHX1NQQU5JU0hfTUVYSUNBTiAgICAgIDgyCiNkZWZpbmUgVFdMR19TUEFOSVNIX01PREVSTiAgICAgICA4MwojZGVmaW5lIFRXTEdfU1dFRElTSCAgICAgICAgICAgICAgVFdMR19TV0UKI2RlZmluZSBUV0xHX1RIQUkgICAgICAgICAgICAgICAgIDg0CiNkZWZpbmUgVFdMR19UVVJLSVNIICAgICAgICAgICAgICA4NQojZGVmaW5lIFRXTEdfVUtSQU5JQU4gICAgICAgICAgICAgODYKLyogTW9yZSBzdHVmZiBhZGRlZCBmb3IgMS44ICovCiNkZWZpbmUgVFdMR19BU1NBTUVTRSAgICAgICAgICAgICA4NwojZGVmaW5lIFRXTEdfQkVOR0FMSSAgICAgICAgICAgICAgODgKI2RlZmluZSBUV0xHX0JJSEFSSSAgICAgICAgICAgICAgIDg5CiNkZWZpbmUgVFdMR19CT0RPICAgICAgICAgICAgICAgICA5MAojZGVmaW5lIFRXTEdfRE9HUkkgICAgICAgICAgICAgICAgOTEKI2RlZmluZSBUV0xHX0dVSkFSQVRJICAgICAgICAgICAgIDkyCiNkZWZpbmUgVFdMR19IQVJZQU5WSSAgICAgICAgICAgICA5MwojZGVmaW5lIFRXTEdfSElOREkgICAgICAgICAgICAgICAgOTQKI2RlZmluZSBUV0xHX0tBTk5BREEgICAgICAgICAgICAgIDk1CiNkZWZpbmUgVFdMR19LQVNITUlSSSAgICAgICAgICAgICA5NgojZGVmaW5lIFRXTEdfTUFMQVlBTEFNICAgICAgICAgICAgOTcKI2RlZmluZSBUV0xHX01BUkFUSEkgICAgICAgICAgICAgIDk4CiNkZWZpbmUgVFdMR19NQVJXQVJJICAgICAgICAgICAgICA5OQojZGVmaW5lIFRXTEdfTUVHSEFMQVlBTiAgICAgICAgICAxMDAKI2RlZmluZSBUV0xHX01JWk8gICAgICAgICAgICAgICAgMTAxCiNkZWZpbmUgVFdMR19OQUdBICAgICAgICAgICAgICAgIDEwMgojZGVmaW5lIFRXTEdfT1JJU1NJICAgICAgICAgICAgICAxMDMKI2RlZmluZSBUV0xHX1BVTkpBQkkgICAgICAgICAgICAgMTA0CiNkZWZpbmUgVFdMR19QVVNIVFUgICAgICAgICAgICAgIDEwNQojZGVmaW5lIFRXTEdfU0VSQklBTl9DWVJJTExJQyAgICAxMDYKI2RlZmluZSBUV0xHX1NJS0tJTUkgICAgICAgICAgICAgMTA3CiNkZWZpbmUgVFdMR19TV0VESVNIX0ZJTkxBTkQgICAgIDEwOAojZGVmaW5lIFRXTEdfVEFNSUwgICAgICAgICAgICAgICAxMDkKI2RlZmluZSBUV0xHX1RFTFVHVSAgICAgICAgICAgICAgMTEwCiNkZWZpbmUgVFdMR19UUklQVVJJICAgICAgICAgICAgIDExMQojZGVmaW5lIFRXTEdfVVJEVSAgICAgICAgICAgICAgICAxMTIKI2RlZmluZSBUV0xHX1ZJRVROQU1FU0UgICAgICAgICAgMTEzCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBEYXRhIEdyb3VwcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qIE1vcmUgRGF0YSBHcm91cHMgbWF5IGJlIGFkZGVkIGluIHRoZSBmdXR1cmUuCiAqIFBvc3NpYmxlIGNhbmRpZGF0ZXMgaW5jbHVkZSB0ZXh0LCB2ZWN0b3IgZ3JhcGhpY3MsIHNvdW5kLCBldGMuCiAqIE5PVEU6IERhdGEgR3JvdXAgY29uc3RhbnRzIG11c3QgYmUgcG93ZXJzIG9mIDIgYXMgdGhleSBhcmUgdXNlZAogKiAgICAgICBhcyBiaXRmbGFncyB3aGVuIEFwcGxpY2F0aW9uIGFza3MgRFNNIHRvIHByZXNlbnQgYSBsaXN0IG9mIERTcy4KICovCgojZGVmaW5lIERHX0NPTlRST0wgICAgICAgICAgMHgwMDAxTCAvKiBkYXRhIHBlcnRhaW5pbmcgdG8gY29udHJvbCAgICAgICAqLwojZGVmaW5lIERHX0lNQUdFICAgICAgICAgICAgMHgwMDAyTCAvKiBkYXRhIHBlcnRhaW5pbmcgdG8gcmFzdGVyIGltYWdlcyAqLwovKiBBZGRlZCAxLjggKi8KI2RlZmluZSBER19BVURJTyAgICAgICAgICAgIDB4MDAwNEwgLyogZGF0YSBwZXJ0YWluaW5nIHRvIGF1ZGlvICovCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBEYXRhIEFyZ3VtZW50IFR5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qICBTREggLSAwMy8yMy85NSAtIFdBVENIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKiAgVGhlIHRodW5rZXIgcmVxdWlyZXMga25vd2xlZGdlIGFib3V0IHNpemUgb2YgZGF0YSBiZWluZyBwYXNzZWQgaW4gdGhlICAgKi8KLyogIGxwRGF0YSBwYXJhbWV0ZXIgdG8gRFNfRW50cnkgKHdoaWNoIGlzIG5vdCByZWFkaWx5IGF2YWlsYWJsZSBkdWUgdG8gICAgICovCi8qICB0eXBlIExQVk9JRC4gIFRodXMsIHdlIGtleSBvZmYgdGhlIERBVF8gYXJndW1lbnQgdG8gZGV0ZXJtaW5lIHRoZSBzaXplLiAqLwovKiAgVGhpcyBoYXMgYSBjb3VwbGUgaW1wbGljYXRpb25zOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyogIDEpIEFueSBhZGRpdGlvbmFsIERBVF8gZmVhdHVyZXMgcmVxdWlyZSBtb2RpZmljYXRpb25zIHRvIHRoZSB0aHVuayBjb2RlICovCi8qICAgICBmb3IgdGh1bmtlciBzdXBwb3J0LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKiAgMikgQW55IGFwcGxpY2F0aW9ucyB3aGljaCB1c2UgdGhlIGN1c3RvbSBjYXBhYmFpbGl0ZXMgYXJlIG5vdCBzdXBwb3J0ZWQgKi8KLyogICAgIHVuZGVyIHRodW5raW5nIHNpbmNlIHdlIGhhdmUgbm8gd2F5IG9mIGtub3dpbmcgd2hhdCBzaXplIGRhdGEgKGlmICAgICovCi8qICAgICBhbnkpIGlzIGJlaW5nIHBhc3NlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwoKI2RlZmluZSBEQVRfTlVMTCAgICAgICAgICAgIDB4MDAwMCAvKiBObyBkYXRhIG9yIHN0cnVjdHVyZS4gKi8KI2RlZmluZSBEQVRfQ1VTVE9NQkFTRSAgICAgIDB4ODAwMCAvKiBCYXNlIG9mIGN1c3RvbSBEQVRzLiAgKi8KCi8qIERhdGEgQXJndW1lbnQgVHlwZXMgZm9yIHRoZSBER19DT05UUk9MIERhdGEgR3JvdXAuICovCiNkZWZpbmUgREFUX0NBUEFCSUxJVFkgICAgICAweDAwMDEgLyogVFdfQ0FQQUJJTElUWSAgICAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgREFUX0VWRU5UICAgICAgICAgICAweDAwMDIgLyogVFdfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgREFUX0lERU5USVRZICAgICAgICAweDAwMDMgLyogVFdfSURFTlRJVFkgICAgICAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgREFUX1BBUkVOVCAgICAgICAgICAweDAwMDQgLyogVFdfSEFORExFLCBhcHBsaWNhdGlvbiB3aW4gaGFuZGxlIGluIFdpbmRvd3MgKi8KI2RlZmluZSBEQVRfUEVORElOR1hGRVJTICAgIDB4MDAwNSAvKiBUV19QRU5ESU5HWEZFUlMgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfU0VUVVBNRU1YRkVSICAgIDB4MDAwNiAvKiBUV19TRVRVUE1FTVhGRVIgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfU0VUVVBGSUxFWEZFUiAgIDB4MDAwNyAvKiBUV19TRVRVUEZJTEVYRkVSICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfU1RBVFVTICAgICAgICAgIDB4MDAwOCAvKiBUV19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfVVNFUklOVEVSRkFDRSAgIDB4MDAwOSAvKiBUV19VU0VSSU5URVJGQUNFICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfWEZFUkdST1VQICAgICAgIDB4MDAwYSAvKiBUV19VSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyogIFNESCAtIDAzLzIxLzk1IC0gVFdVTksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qICBBZGRpdGlvbmFsIG1lc3NhZ2UgcmVxdWlyZWQgZm9yIHRodW5rZXIgdG8gcmVxdWVzdCB0aGUgc3BlY2lhbCAqLwovKiAgaWRlbnRpdHkgaW5mb3JtYXRpb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfVFdVTktJREVOVElUWSAgIDB4MDAwYiAvKiBUV19UV1VOS0lERU5USVRZICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfQ1VTVE9NRFNEQVRBICAgIDB4MDAwYyAvKiBUV19DVVNUT01EU0RBVEEuICAgICAgICAgICAgICAgICAgICAgKi8KLyogQWRkZWQgMS44ICovCiNkZWZpbmUgREFUX0RFVklDRUVWRU5UICAgICAweDAwMGQgLyogVFdfREVWSUNFRVZFTlQgICAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgREFUX0ZJTEVTWVNURU0gICAgICAweDAwMGUgLyogVFdfRklMRVNZU1RFTSAgICAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgREFUX1BBU1NUSFJVICAgICAgICAweDAwMGYgLyogVFdfUEFTU1RIUlUgICAgICAgICAgICAgICAgICAgICAgICAgICovCgovKiBEYXRhIEFyZ3VtZW50IFR5cGVzIGZvciB0aGUgREdfSU1BR0UgRGF0YSBHcm91cC4gKi8KI2RlZmluZSBEQVRfSU1BR0VJTkZPICAgICAgIDB4MDEwMSAvKiBUV19JTUFHRUlORk8gICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfSU1BR0VMQVlPVVQgICAgIDB4MDEwMiAvKiBUV19JTUFHRUxBWU9VVCAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfSU1BR0VNRU1YRkVSICAgIDB4MDEwMyAvKiBUV19JTUFHRU1FTVhGRVIgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfSU1BR0VOQVRJVkVYRkVSIDB4MDEwNCAvKiBUV19VSU5UMzIgbG93b3JkIGlzIGhESUIsIFBJQ0hhbmRsZSAgKi8KI2RlZmluZSBEQVRfSU1BR0VGSUxFWEZFUiAgIDB4MDEwNSAvKiBOdWxsIGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfQ0lFQ09MT1IgICAgICAgIDB4MDEwNiAvKiBUV19DSUVDT0xPUiAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfR1JBWVJFU1BPTlNFICAgIDB4MDEwNyAvKiBUV19HUkFZUkVTUE9OU0UgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfUkdCUkVTUE9OU0UgICAgIDB4MDEwOCAvKiBUV19SR0JSRVNQT05TRSAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfSlBFR0NPTVBSRVNTSU9OIDB4MDEwOSAvKiBUV19KUEVHQ09NUFJFU1NJT04gICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfUEFMRVRURTggICAgICAgIDB4MDEwYSAvKiBUV19QQUxFVFRFOCAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfRVhUSU1BR0VJTkZPICAgIDB4MDEwYiAvKiBUV19FWFRJTUFHRUlORk8gLS0gZm9yIDEuNyBTcGVjLiAgICAgKi8KCi8qIEFkZGVkIDEuOCAqLwovKiBEYXRhIEFyZ3VtZW50IFR5cGVzIGZvciB0aGUgREdfQVVESU8gRGF0YSBHcm91cC4gKi8KI2RlZmluZSBEQVRfQVVESU9GSUxFWEZFUiAgIDB4MDIwMSAvKiBOdWxsIGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfQVVESU9JTkZPICAgICAgIDB4MDIwMiAvKiBUV19BVURJT0lORk8gICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfQVVESU9OQVRJVkVYRkVSIDB4MDIwMyAvKiBUV19VSU5UMzIgaGFuZGxlIHRvIFdBViwgKEFJRkYgTWFjKSAgKi8KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIE1lc3NhZ2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKLyogQWxsIG1lc3NhZ2UgY29uc3RhbnRzIGFyZSB1bmlxdWUuCiAqIE1lc3NhZ2VzIGFyZSBncm91cGVkIGFjY29yZGluZyB0byB3aGljaCBEQVRzIHRoZXkgYXJlIHVzZWQgd2l0aC4qLwoKI2RlZmluZSBNU0dfTlVMTCAgICAgICAgIDB4MDAwMCAvKiBVc2VkIGluIFRXX0VWRU5UIHN0cnVjdHVyZSAgICAgICAgICAgICAgICovCiNkZWZpbmUgTVNHX0NVU1RPTUJBU0UgICAweDgwMDAgLyogQmFzZSBvZiBjdXN0b20gbWVzc2FnZXMgICAgICAgICAgICAgICAgICAqLwoKLyogR2VuZXJpYyBtZXNzYWdlcyBtYXkgYmUgdXNlZCB3aXRoIGFueSBvZiBzZXZlcmFsIERBVHMuICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgTVNHX0dFVCAgICAgICAgICAweDAwMDEgLyogR2V0IG9uZSBvciBtb3JlIHZhbHVlcyAgICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIE1TR19HRVRDVVJSRU5UICAgMHgwMDAyIC8qIEdldCBjdXJyZW50IHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBNU0dfR0VUREVGQVVMVCAgIDB4MDAwMyAvKiBHZXQgZGVmYXVsdCAoZS5nLiBwb3dlciB1cCkgdmFsdWUgICAgICAgICovCiNkZWZpbmUgTVNHX0dFVEZJUlNUICAgICAweDAwMDQgLyogR2V0IGZpcnN0IG9mIGEgc2VyaWVzIG9mIGl0ZW1zLCBlLmcuIERTcyAqLwojZGVmaW5lIE1TR19HRVRORVhUICAgICAgMHgwMDA1IC8qIEl0ZXJhdGUgdGhyb3VnaCBhIHNlcmllcyBvZiBpdGVtcy4gICAgICAgKi8KI2RlZmluZSBNU0dfU0VUICAgICAgICAgIDB4MDAwNiAvKiBTZXQgb25lIG9yIG1vcmUgdmFsdWVzICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgTVNHX1JFU0VUICAgICAgICAweDAwMDcgLyogU2V0IGN1cnJlbnQgdmFsdWUgdG8gZGVmYXVsdCB2YWx1ZSAgICAgICAqLwojZGVmaW5lIE1TR19RVUVSWVNVUFBPUlQgMHgwMDA4IC8qIEdldCBzdXBwb3J0ZWQgb3BlcmF0aW9ucyBvbiB0aGUgY2FwLiAgICAgKi8KCi8qIE1lc3NhZ2VzIHVzZWQgd2l0aCBEQVRfTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIE1TR19YRkVSUkVBRFkgICAgMHgwMTAxIC8qIFRoZSBkYXRhIHNvdXJjZSBoYXMgZGF0YSByZWFkeSAgICAgICAgICAgKi8KI2RlZmluZSBNU0dfQ0xPU0VEU1JFUSAgIDB4MDEwMiAvKiBSZXF1ZXN0IGZvciBBcHBsaWNhdGlvbi4gdG8gY2xvc2UgRFMgICAgICAgICAgICAgKi8KI2RlZmluZSBNU0dfQ0xPU0VEU09LICAgIDB4MDEwMyAvKiBUZWxsIHRoZSBBcHBsaWNhdGlvbi4gdG8gc2F2ZSB0aGUgc3RhdGUuICAgICAgICAgKi8KLyogQWRkZWQgMS44ICovCiNkZWZpbmUgTVNHX0RFVklDRUVWRU5UICAwWDAxMDQgLyogU29tZSBldmVudCBoYXMgdGFrZW4gcGxhY2UgICAgICAgICAgICAgICAqLwoKLyogTWVzc2FnZXMgdXNlZCB3aXRoIGEgcG9pbnRlciB0byBhIERBVF9TVEFUVVMgc3RydWN0dXJlICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgTVNHX0NIRUNLU1RBVFVTICAweDAyMDEgLyogR2V0IHN0YXR1cyBpbmZvcm1hdGlvbiAgICAgICAgICAgICAgICAgICAqLwoKLyogTWVzc2FnZXMgdXNlZCB3aXRoIGEgcG9pbnRlciB0byBEQVRfUEFSRU5UIGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgTVNHX09QRU5EU00gICAgICAweDAzMDEgLyogT3BlbiB0aGUgRFNNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIE1TR19DTE9TRURTTSAgICAgMHgwMzAyIC8qIENsb3NlIHRoZSBEU00gICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KCi8qIE1lc3NhZ2VzIHVzZWQgd2l0aCBhIHBvaW50ZXIgdG8gYSBEQVRfSURFTlRJVFkgc3RydWN0dXJlICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIE1TR19PUEVORFMgICAgICAgMHgwNDAxIC8qIE9wZW4gYSBkYXRhIHNvdXJjZSAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBNU0dfQ0xPU0VEUyAgICAgIDB4MDQwMiAvKiBDbG9zZSBhIGRhdGEgc291cmNlICAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgTVNHX1VTRVJTRUxFQ1QgICAweDA0MDMgLyogUHV0IHVwIGEgZGlhbG9nIG9mIGFsbCBEUyAgICAgICAgICAgICAgICAqLwoKLyogTWVzc2FnZXMgdXNlZCB3aXRoIGEgcG9pbnRlciB0byBhIERBVF9VU0VSSU5URVJGQUNFIHN0cnVjdHVyZSAgICAgICAgICAgICovCiNkZWZpbmUgTVNHX0RJU0FCTEVEUyAgICAweDA1MDEgLyogRGlzYWJsZSBkYXRhIHRyYW5zZmVyIGluIHRoZSBEUyAgICAgICAgICAqLwojZGVmaW5lIE1TR19FTkFCTEVEUyAgICAgMHgwNTAyIC8qIEVuYWJsZSBkYXRhIHRyYW5zZmVyIGluIHRoZSBEUyAgICAgICAgICAgKi8KI2RlZmluZSBNU0dfRU5BQkxFRFNVSU9OTFkgIDB4MDUwMyAgLyogRW5hYmxlIGZvciBzYXZpbmcgRFMgc3RhdGUgb25seS4gICAgICovCgovKiBNZXNzYWdlcyB1c2VkIHdpdGggYSBwb2ludGVyIHRvIGEgREFUX0VWRU5UIHN0cnVjdHVyZSAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBNU0dfUFJPQ0VTU0VWRU5UIDB4MDYwMQoKLyogTWVzc2FnZXMgdXNlZCB3aXRoIGEgcG9pbnRlciB0byBhIERBVF9QRU5ESU5HWEZFUlMgc3RydWN0dXJlICAgICAgICAgICAgICovCiNkZWZpbmUgTVNHX0VORFhGRVIgICAgICAweDA3MDEKCi8qIEFkZGVkIDEuOCAqLwovKiBNZXNzYWdlcyB1c2VkIHdpdGggYSBwb2ludGVyIHRvIGEgREFUX0ZJTEVTWVNURU0gc3RydWN0dXJlICAgICAgICAgICAgICAgKi8KI2RlZmluZSBNU0dfQ0hBTkdFRElSRUNUT1JZICAgMHgwODAxCiNkZWZpbmUgTVNHX0NSRUFURURJUkVDVE9SWSAgIDB4MDgwMgojZGVmaW5lIE1TR19ERUxFVEUgICAgICAgICAgICAweDA4MDMKI2RlZmluZSBNU0dfRk9STUFUTUVESUEgICAgICAgMHgwODA0IAojZGVmaW5lIE1TR19HRVRDTE9TRSAgICAgICAgICAweDA4MDUKI2RlZmluZSBNU0dfR0VURklSU1RGSUxFICAgICAgMHgwODA2CiNkZWZpbmUgTVNHX0dFVElORk8gICAgICAgICAgIDB4MDgwNwojZGVmaW5lIE1TR19HRVRORVhURklMRSAgICAgICAweDA4MDgKI2RlZmluZSBNU0dfUkVOQU1FICAgICAgICAgICAgMHgwODA5CgovKiBNZXNzYWdlcyB1c2VkIHdpdGggYSBwb2ludGVyIHRvIGEgREFUX1BBU1NUSFJVIHN0cnVjdHVyZSAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBNU0dfUEFTU1RIUlUgICAgICAgICAgMHgwOTAxCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBDYXBhYmlsaXRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNkZWZpbmUgQ0FQX0NVU1RPTUJBU0UgICAgICAgICAgMHg4MDAwIC8qIEJhc2Ugb2YgY3VzdG9tIGNhcGFiaWxpdGllcyAqLwoKLyogYWxsIGRhdGEgc291cmNlcyBhcmUgUkVRVUlSRUQgdG8gc3VwcG9ydCB0aGVzZSBjYXBzICovCiNkZWZpbmUgQ0FQX1hGRVJDT1VOVCAgICAgICAgICAgMHgwMDAxCgovKiBpbWFnZSBkYXRhIHNvdXJjZXMgYXJlIFJFUVVJUkVEIHRvIHN1cHBvcnQgdGhlc2UgY2FwcyAqLwojZGVmaW5lIElDQVBfQ09NUFJFU1NJT04gICAgICAgIDB4MDEwMAojZGVmaW5lIElDQVBfUElYRUxUWVBFICAgICAgICAgIDB4MDEwMQojZGVmaW5lIElDQVBfVU5JVFMgICAgICAgICAgICAgIDB4MDEwMiAvKiBkZWZhdWx0IGlzIFRXVU5fSU5DSEVTICovCiNkZWZpbmUgSUNBUF9YRkVSTUVDSCAgICAgICAgICAgMHgwMTAzCgovKiBhbGwgZGF0YSBzb3VyY2VzIE1BWSBzdXBwb3J0IHRoZXNlIGNhcHMgKi8KI2RlZmluZSBDQVBfQVVUSE9SICAgICAgICAgICAgICAgICAgMHgxMDAwCiNkZWZpbmUgQ0FQX0NBUFRJT04gICAgICAgICAgICAgICAgIDB4MTAwMQojZGVmaW5lIENBUF9GRUVERVJFTkFCTEVEICAgICAgICAgICAweDEwMDIKI2RlZmluZSBDQVBfRkVFREVSTE9BREVEICAgICAgICAgICAgMHgxMDAzCiNkZWZpbmUgQ0FQX1RJTUVEQVRFICAgICAgICAgICAgICAgIDB4MTAwNAojZGVmaW5lIENBUF9TVVBQT1JURURDQVBTICAgICAgICAgICAweDEwMDUKI2RlZmluZSBDQVBfRVhURU5ERURDQVBTICAgICAgICAgICAgMHgxMDA2CiNkZWZpbmUgQ0FQX0FVVE9GRUVEICAgICAgICAgICAgICAgIDB4MTAwNwojZGVmaW5lIENBUF9DTEVBUlBBR0UgICAgICAgICAgICAgICAweDEwMDgKI2RlZmluZSBDQVBfRkVFRFBBR0UgICAgICAgICAgICAgICAgMHgxMDA5CiNkZWZpbmUgQ0FQX1JFV0lORFBBR0UgICAgICAgICAgICAgIDB4MTAwYQojZGVmaW5lIENBUF9JTkRJQ0FUT1JTICAgICAgICAgICAgICAweDEwMGIgICAvKiBBZGRlZCAxLjEgKi8KI2RlZmluZSBDQVBfU1VQUE9SVEVEQ0FQU0VYVCAgICAgICAgMHgxMDBjICAgLyogQWRkZWQgMS42ICovCiNkZWZpbmUgQ0FQX1BBUEVSREVURUNUQUJMRSAgICAgICAgIDB4MTAwZCAgIC8qIEFkZGVkIDEuNiAqLwojZGVmaW5lIENBUF9VSUNPTlRST0xMQUJMRSAgICAgICAgICAweDEwMGUgICAvKiBBZGRlZCAxLjYgKi8KI2RlZmluZSBDQVBfREVWSUNFT05MSU5FICAgICAgICAgICAgMHgxMDBmICAgLyogQWRkZWQgMS42ICovCiNkZWZpbmUgQ0FQX0FVVE9TQ0FOICAgICAgICAgICAgICAgIDB4MTAxMCAgIC8qIEFkZGVkIDEuNiAqLwojZGVmaW5lIENBUF9USFVNQk5BSUxTRU5BQkxFRCAgICAgICAweDEwMTEgICAvKiBBZGRlZCAxLjcgKi8KI2RlZmluZSBDQVBfRFVQTEVYICAgICAgICAgICAgICAgICAgMHgxMDEyICAgLyogQWRkZWQgMS43ICovCiNkZWZpbmUgQ0FQX0RVUExFWEVOQUJMRUQgICAgICAgICAgIDB4MTAxMyAgIC8qIEFkZGVkIDEuNyAqLwojZGVmaW5lIENBUF9FTkFCTEVEU1VJT05MWSAgICAgICAgICAweDEwMTQgICAvKiBBZGRlZCAxLjcgKi8KI2RlZmluZSBDQVBfQ1VTVE9NRFNEQVRBICAgICAgICAgICAgMHgxMDE1ICAgLyogQWRkZWQgMS43ICovCiNkZWZpbmUgQ0FQX0VORE9SU0VSICAgICAgICAgICAgICAgIDB4MTAxNiAgIC8qIEFkZGVkIDEuNyAqLwojZGVmaW5lIENBUF9KT0JDT05UUk9MICAgICAgICAgICAgICAweDEwMTcgICAvKiBBZGRlZCAxLjcgKi8KI2RlZmluZSBDQVBfQUxBUk1TICAgICAgICAgICAgICAgICAgMHgxMDE4ICAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgQ0FQX0FMQVJNVk9MVU1FICAgICAgICAgICAgIDB4MTAxOSAgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIENBUF9BVVRPTUFUSUNDQVBUVVJFICAgICAgICAweDEwMWEgICAvKiBBZGRlZCAxLjggKi8KI2RlZmluZSBDQVBfVElNRUJFRk9SRUZJUlNUQ0FQVFVSRSAgMHgxMDFiICAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgQ0FQX1RJTUVCRVRXRUVOQ0FQVFVSRVMgICAgIDB4MTAxYyAgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIENBUF9DTEVBUkJVRkZFUlMgICAgICAgICAgICAweDEwMWQgICAvKiBBZGRlZCAxLjggKi8KI2RlZmluZSBDQVBfTUFYQkFUQ0hCVUZGRVJTICAgICAgICAgMHgxMDFlICAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgQ0FQX0RFVklDRVRJTUVEQVRFICAgICAgICAgIDB4MTAxZiAgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIENBUF9QT1dFUlNVUFBMWSAgICAgICAgICAgICAweDEwMjAgICAvKiBBZGRlZCAxLjggKi8KI2RlZmluZSBDQVBfQ0FNRVJBUFJFVklFV1VJICAgICAgICAgMHgxMDIxICAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgQ0FQX0RFVklDRUVWRU5UICAgICAgICAgICAgIDB4MTAyMiAgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIENBUF9QQUdFTVVMVElQTEVBQ1FVSVJFICAgICAweDEwMjMgICAvKiBBZGRlZCAxLjggKi8KI2RlZmluZSBDQVBfU0VSSUFMTlVNQkVSICAgICAgICAgICAgMHgxMDI0ICAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgQ0FQX0ZJTEVTWVNURU0gICAgICAgICAgICAgIDB4MTAyNSAgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIENBUF9QUklOVEVSICAgICAgICAgICAgICAgICAweDEwMjYgICAvKiBBZGRlZCAxLjggKi8KI2RlZmluZSBDQVBfUFJJTlRFUkVOQUJMRUQgICAgICAgICAgMHgxMDI3ICAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgQ0FQX1BSSU5URVJJTkRFWCAgICAgICAgICAgIDB4MTAyOCAgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIENBUF9QUklOVEVSTU9ERSAgICAgICAgICAgICAweDEwMjkgICAvKiBBZGRlZCAxLjggKi8KI2RlZmluZSBDQVBfUFJJTlRFUlNUUklORyAgICAgICAgICAgMHgxMDJhICAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgQ0FQX1BSSU5URVJTVUZGSVggICAgICAgICAgIDB4MTAyYiAgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIENBUF9MQU5HVUFHRSAgICAgICAgICAgICAgICAweDEwMmMgICAvKiBBZGRlZCAxLjggKi8KI2RlZmluZSBDQVBfRkVFREVSQUxJR05NRU5UICAgICAgICAgMHgxMDJkICAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgQ0FQX0ZFRURFUk9SREVSICAgICAgICAgICAgIDB4MTAyZSAgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIENBUF9QQVBFUkJJTkRJTkcgICAgICAgICAgICAweDEwMmYgICAvKiBBZGRlZCAxLjggKi8KI2RlZmluZSBDQVBfUkVBQ1FVSVJFQUxMT1dFRCAgICAgICAgMHgxMDMwICAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgQ0FQX1BBU1NUSFJVICAgICAgICAgICAgICAgIDB4MTAzMSAgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIENBUF9CQVRURVJZTUlOVVRFUyAgICAgICAgICAweDEwMzIgICAvKiBBZGRlZCAxLjggKi8KI2RlZmluZSBDQVBfQkFUVEVSWVBFUkNFTlRBR0UgICAgICAgMHgxMDMzICAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgQ0FQX1BPV0VSRE9XTlRJTUUgICAgICAgICAgIDB4MTAzNCAgIC8qIEFkZGVkIDEuOCAqLwogCi8qIGltYWdlIGRhdGEgc291cmNlcyBNQVkgc3VwcG9ydCB0aGVzZSBjYXBzICovCiNkZWZpbmUgSUNBUF9BVVRPQlJJR0hUICAgICAgICAgICAgICAgICAgIDB4MTEwMAojZGVmaW5lIElDQVBfQlJJR0hUTkVTUyAgICAgICAgICAgICAgICAgICAweDExMDEKI2RlZmluZSBJQ0FQX0NPTlRSQVNUICAgICAgICAgICAgICAgICAgICAgMHgxMTAzCiNkZWZpbmUgSUNBUF9DVVNUSEFMRlRPTkUgICAgICAgICAgICAgICAgIDB4MTEwNAojZGVmaW5lIElDQVBfRVhQT1NVUkVUSU1FICAgICAgICAgICAgICAgICAweDExMDUKI2RlZmluZSBJQ0FQX0ZJTFRFUiAgICAgICAgICAgICAgICAgICAgICAgMHgxMTA2CiNkZWZpbmUgSUNBUF9GTEFTSFVTRUQgICAgICAgICAgICAgICAgICAgIDB4MTEwNwojZGVmaW5lIElDQVBfR0FNTUEgICAgICAgICAgICAgICAgICAgICAgICAweDExMDgKI2RlZmluZSBJQ0FQX0hBTEZUT05FUyAgICAgICAgICAgICAgICAgICAgMHgxMTA5CiNkZWZpbmUgSUNBUF9ISUdITElHSFQgICAgICAgICAgICAgICAgICAgIDB4MTEwYQojZGVmaW5lIElDQVBfSU1BR0VGSUxFRk9STUFUICAgICAgICAgICAgICAweDExMGMKI2RlZmluZSBJQ0FQX0xBTVBTVEFURSAgICAgICAgICAgICAgICAgICAgMHgxMTBkCiNkZWZpbmUgSUNBUF9MSUdIVFNPVVJDRSAgICAgICAgICAgICAgICAgIDB4MTEwZQojZGVmaW5lIElDQVBfT1JJRU5UQVRJT04gICAgICAgICAgICAgICAgICAweDExMTAKI2RlZmluZSBJQ0FQX1BIWVNJQ0FMV0lEVEggICAgICAgICAgICAgICAgMHgxMTExCiNkZWZpbmUgSUNBUF9QSFlTSUNBTEhFSUdIVCAgICAgICAgICAgICAgIDB4MTExMgojZGVmaW5lIElDQVBfU0hBRE9XICAgICAgICAgICAgICAgICAgICAgICAweDExMTMKI2RlZmluZSBJQ0FQX0ZSQU1FUyAgICAgICAgICAgICAgICAgICAgICAgMHgxMTE0CiNkZWZpbmUgSUNBUF9YTkFUSVZFUkVTT0xVVElPTiAgICAgICAgICAgIDB4MTExNgojZGVmaW5lIElDQVBfWU5BVElWRVJFU09MVVRJT04gICAgICAgICAgICAweDExMTcKI2RlZmluZSBJQ0FQX1hSRVNPTFVUSU9OICAgICAgICAgICAgICAgICAgMHgxMTE4CiNkZWZpbmUgSUNBUF9ZUkVTT0xVVElPTiAgICAgICAgICAgICAgICAgIDB4MTExOQojZGVmaW5lIElDQVBfTUFYRlJBTUVTICAgICAgICAgICAgICAgICAgICAweDExMWEKI2RlZmluZSBJQ0FQX1RJTEVTICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTFiCiNkZWZpbmUgSUNBUF9CSVRPUkRFUiAgICAgICAgICAgICAgICAgICAgIDB4MTExYwojZGVmaW5lIElDQVBfQ0NJVFRLRkFDVE9SICAgICAgICAgICAgICAgICAweDExMWQKI2RlZmluZSBJQ0FQX0xJR0hUUEFUSCAgICAgICAgICAgICAgICAgICAgMHgxMTFlCiNkZWZpbmUgSUNBUF9QSVhFTEZMQVZPUiAgICAgICAgICAgICAgICAgIDB4MTExZgojZGVmaW5lIElDQVBfUExBTkFSQ0hVTktZICAgICAgICAgICAgICAgICAweDExMjAKI2RlZmluZSBJQ0FQX1JPVEFUSU9OICAgICAgICAgICAgICAgICAgICAgMHgxMTIxCiNkZWZpbmUgSUNBUF9TVVBQT1JURURTSVpFUyAgICAgICAgICAgICAgIDB4MTEyMgojZGVmaW5lIElDQVBfVEhSRVNIT0xEICAgICAgICAgICAgICAgICAgICAweDExMjMKI2RlZmluZSBJQ0FQX1hTQ0FMSU5HICAgICAgICAgICAgICAgICAgICAgMHgxMTI0CiNkZWZpbmUgSUNBUF9ZU0NBTElORyAgICAgICAgICAgICAgICAgICAgIDB4MTEyNQojZGVmaW5lIElDQVBfQklUT1JERVJDT0RFUyAgICAgICAgICAgICAgICAweDExMjYKI2RlZmluZSBJQ0FQX1BJWEVMRkxBVk9SQ09ERVMgICAgICAgICAgICAgMHgxMTI3CiNkZWZpbmUgSUNBUF9KUEVHUElYRUxUWVBFICAgICAgICAgICAgICAgIDB4MTEyOAojZGVmaW5lIElDQVBfVElNRUZJTEwgICAgICAgICAgICAgICAgICAgICAweDExMmEKI2RlZmluZSBJQ0FQX0JJVERFUFRIICAgICAgICAgICAgICAgICAgICAgMHgxMTJiCiNkZWZpbmUgSUNBUF9CSVRERVBUSFJFRFVDVElPTiAgICAgICAgICAgIDB4MTEyYyAgLyogQWRkZWQgMS41ICovCiNkZWZpbmUgSUNBUF9VTkRFRklORURJTUFHRVNJWkUgICAgICAgICAgIDB4MTEyZCAgLyogQWRkZWQgMS42ICovCiNkZWZpbmUgSUNBUF9JTUFHRURBVEFTRVQgICAgICAgICAgICAgICAgIDB4MTEyZSAgLyogQWRkZWQgMS43ICovCiNkZWZpbmUgSUNBUF9FWFRJTUFHRUlORk8gICAgICAgICAgICAgICAgIDB4MTEyZiAgLyogQWRkZWQgMS43ICovCiNkZWZpbmUgSUNBUF9NSU5JTVVNSEVJR0hUICAgICAgICAgICAgICAgIDB4MTEzMCAgLyogQWRkZWQgMS43ICovCiNkZWZpbmUgSUNBUF9NSU5JTVVNV0lEVEggICAgICAgICAgICAgICAgIDB4MTEzMSAgLyogQWRkZWQgMS43ICovCiNkZWZpbmUgSUNBUF9BVVRPRElTQ0FSREJMQU5LUEFHRVMgICAgICAgIDB4MTEzNCAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9GTElQUk9UQVRJT04gICAgICAgICAgICAgICAgIDB4MTEzNiAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9CQVJDT0RFREVURUNUSU9ORU5BQkxFRCAgICAgIDB4MTEzNyAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9TVVBQT1JURURCQVJDT0RFVFlQRVMgICAgICAgIDB4MTEzOCAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9CQVJDT0RFTUFYU0VBUkNIUFJJT1JJVElFUyAgIDB4MTEzOSAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9CQVJDT0RFU0VBUkNIUFJJT1JJVElFUyAgICAgIDB4MTEzYSAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9CQVJDT0RFU0VBUkNITU9ERSAgICAgICAgICAgIDB4MTEzYiAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9CQVJDT0RFTUFYUkVUUklFUyAgICAgICAgICAgIDB4MTEzYyAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9CQVJDT0RFVElNRU9VVCAgICAgICAgICAgICAgIDB4MTEzZCAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9aT09NRkFDVE9SICAgICAgICAgICAgICAgICAgIDB4MTEzZSAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9QQVRDSENPREVERVRFQ1RJT05FTkFCTEVEICAgIDB4MTEzZiAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9TVVBQT1JURURQQVRDSENPREVUWVBFUyAgICAgIDB4MTE0MCAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9QQVRDSENPREVNQVhTRUFSQ0hQUklPUklUSUVTIDB4MTE0MSAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9QQVRDSENPREVTRUFSQ0hQUklPUklUSUVTICAgIDB4MTE0MiAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9QQVRDSENPREVTRUFSQ0hNT0RFICAgICAgICAgIDB4MTE0MyAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9QQVRDSENPREVNQVhSRVRSSUVTICAgICAgICAgIDB4MTE0NCAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9QQVRDSENPREVUSU1FT1VUICAgICAgICAgICAgIDB4MTE0NSAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9GTEFTSFVTRUQyICAgICAgICAgICAgICAgICAgIDB4MTE0NiAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9JTUFHRUZJTFRFUiAgICAgICAgICAgICAgICAgIDB4MTE0NyAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9OT0lTRUZJTFRFUiAgICAgICAgICAgICAgICAgIDB4MTE0OCAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9PVkVSU0NBTiAgICAgICAgICAgICAgICAgICAgIDB4MTE0OSAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9BVVRPTUFUSUNCT1JERVJERVRFQ1RJT04gICAgIDB4MTE1MCAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9BVVRPTUFUSUNERVNLRVcgICAgICAgICAgICAgIDB4MTE1MSAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgSUNBUF9BVVRPTUFUSUNST1RBVEUgICAgICAgICAgICAgIDB4MTE1MiAgLyogQWRkZWQgMS44ICovCgovKiBpbWFnZSBkYXRhIHNvdXJjZXMgTUFZIHN1cHBvcnQgdGhlc2UgYXVkaW8gY2FwcyAqLwojZGVmaW5lIEFDQVBfQVVESU9GSUxFRk9STUFUICAgIDB4MTIwMSAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgQUNBUF9YRkVSTUVDSCAgICAgICAgICAgMHgxMjAyICAvKiBBZGRlZCAxLjggKi8KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcCgogIFZlcnNpb24gMS43OiAgICAgIEZvbGxvd2luZyBpcyBFeHRlbmRlZCBJbWFnZSBJbmZvIEF0dHJpYnV0ZXMuCiAgSnVseSAxOTk3ICAgICAgICAgCiAgS0hMICAgICAgICAgICAgICAgCgpcKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKI2RlZmluZSBUV0VJX0JBUkNPREVYICAgICAgICAgICAgICAgMHgxMjAwCiNkZWZpbmUgVFdFSV9CQVJDT0RFWSAgICAgICAgICAgICAgIDB4MTIwMQojZGVmaW5lIFRXRUlfQkFSQ09ERVRFWFQgICAgICAgICAgICAweDEyMDIKI2RlZmluZSBUV0VJX0JBUkNPREVUWVBFICAgICAgICAgICAgMHgxMjAzCiNkZWZpbmUgVFdFSV9ERVNIQURFVE9QICAgICAgICAgICAgIDB4MTIwNAojZGVmaW5lIFRXRUlfREVTSEFERUxFRlQgICAgICAgICAgICAweDEyMDUKI2RlZmluZSBUV0VJX0RFU0hBREVIRUlHSFQgICAgICAgICAgMHgxMjA2CiNkZWZpbmUgVFdFSV9ERVNIQURFV0lEVEggICAgICAgICAgIDB4MTIwNwojZGVmaW5lIFRXRUlfREVTSEFERVNJWkUgICAgICAgICAgICAweDEyMDgKI2RlZmluZSBUV0VJX1NQRUNLTEVTUkVNT1ZFRCAgICAgICAgMHgxMjA5CiNkZWZpbmUgVFdFSV9IT1JaTElORVhDT09SRCAgICAgICAgIDB4MTIwQQojZGVmaW5lIFRXRUlfSE9SWkxJTkVZQ09PUkQgICAgICAgICAweDEyMEIKI2RlZmluZSBUV0VJX0hPUlpMSU5FTEVOR1RIICAgICAgICAgMHgxMjBDCiNkZWZpbmUgVFdFSV9IT1JaTElORVRISUNLTkVTUyAgICAgIDB4MTIwRAojZGVmaW5lIFRXRUlfVkVSVExJTkVYQ09PUkQgICAgICAgICAweDEyMEUKI2RlZmluZSBUV0VJX1ZFUlRMSU5FWUNPT1JEICAgICAgICAgMHgxMjBGCiNkZWZpbmUgVFdFSV9WRVJUTElORUxFTkdUSCAgICAgICAgIDB4MTIxMAojZGVmaW5lIFRXRUlfVkVSVExJTkVUSElDS05FU1MgICAgICAweDEyMTEKI2RlZmluZSBUV0VJX1BBVENIQ09ERSAgICAgICAgICAgICAgMHgxMjEyCiNkZWZpbmUgVFdFSV9FTkRPUlNFRFRFWFQgICAgICAgICAgIDB4MTIxMwojZGVmaW5lIFRXRUlfRk9STUNPTkZJREVOQ0UgICAgICAgICAweDEyMTQKI2RlZmluZSBUV0VJX0ZPUk1URU1QTEFURU1BVENIICAgICAgMHgxMjE1CiNkZWZpbmUgVFdFSV9GT1JNVEVNUExBVEVQQUdFTUFUQ0ggIDB4MTIxNgojZGVmaW5lIFRXRUlfRk9STUhPUlpET0NPRkZTRVQgICAgICAweDEyMTcKI2RlZmluZSBUV0VJX0ZPUk1WRVJURE9DT0ZGU0VUICAgICAgMHgxMjE4CiNkZWZpbmUgVFdFSV9CQVJDT0RFQ09VTlQgICAgICAgICAgIDB4MTIxOQojZGVmaW5lIFRXRUlfQkFSQ09ERUNPTkZJREVOQ0UgICAgICAweDEyMUEKI2RlZmluZSBUV0VJX0JBUkNPREVST1RBVElPTiAgICAgICAgMHgxMjFCCiNkZWZpbmUgVFdFSV9CQVJDT0RFVEVYVExFTkdUSCAgICAgIDB4MTIxQwojZGVmaW5lIFRXRUlfREVTSEFERUNPVU5UICAgICAgICAgICAweDEyMUQKI2RlZmluZSBUV0VJX0RFU0hBREVCTEFDS0NPVU5UT0xEICAgMHgxMjFFCiNkZWZpbmUgVFdFSV9ERVNIQURFQkxBQ0tDT1VOVE5FVyAgIDB4MTIxRgojZGVmaW5lIFRXRUlfREVTSEFERUJMQUNLUkxNSU4gICAgICAweDEyMjAKI2RlZmluZSBUV0VJX0RFU0hBREVCTEFDS1JMTUFYICAgICAgMHgxMjIxCiNkZWZpbmUgVFdFSV9ERVNIQURFV0hJVEVDT1VOVE9MRCAgIDB4MTIyMgojZGVmaW5lIFRXRUlfREVTSEFERVdISVRFQ09VTlRORVcgICAweDEyMjMKI2RlZmluZSBUV0VJX0RFU0hBREVXSElURVJMTUlOICAgICAgMHgxMjI0CiNkZWZpbmUgVFdFSV9ERVNIQURFV0hJVEVSTEFWRSAgICAgIDB4MTIyNQojZGVmaW5lIFRXRUlfREVTSEFERVdISVRFUkxNQVggICAgICAweDEyMjYKI2RlZmluZSBUV0VJX0JMQUNLU1BFQ0tMRVNSRU1PVkVEICAgMHgxMjI3CiNkZWZpbmUgVFdFSV9XSElURVNQRUNLTEVTUkVNT1ZFRCAgIDB4MTIyOAojZGVmaW5lIFRXRUlfSE9SWkxJTkVDT1VOVCAgICAgICAgICAweDEyMjkKI2RlZmluZSBUV0VJX1ZFUlRMSU5FQ09VTlQgICAgICAgICAgMHgxMjJBCiNkZWZpbmUgVFdFSV9ERVNLRVdTVEFUVVMgICAgICAgICAgIDB4MTIyQgojZGVmaW5lIFRXRUlfU0tFV09SSUdJTkFMQU5HTEUgICAgICAweDEyMkMKI2RlZmluZSBUV0VJX1NLRVdGSU5BTEFOR0xFICAgICAgICAgMHgxMjJECiNkZWZpbmUgVFdFSV9TS0VXQ09ORklERU5DRSAgICAgICAgIDB4MTIyRQojZGVmaW5lIFRXRUlfU0tFV1dJTkRPV1gxICAgICAgICAgICAweDEyMkYKI2RlZmluZSBUV0VJX1NLRVdXSU5ET1dZMSAgICAgICAgICAgMHgxMjMwCiNkZWZpbmUgVFdFSV9TS0VXV0lORE9XWDIgICAgICAgICAgIDB4MTIzMQojZGVmaW5lIFRXRUlfU0tFV1dJTkRPV1kyICAgICAgICAgICAweDEyMzIKI2RlZmluZSBUV0VJX1NLRVdXSU5ET1dYMyAgICAgICAgICAgMHgxMjMzCiNkZWZpbmUgVFdFSV9TS0VXV0lORE9XWTMgICAgICAgICAgIDB4MTIzNAojZGVmaW5lIFRXRUlfU0tFV1dJTkRPV1g0ICAgICAgICAgICAweDEyMzUKI2RlZmluZSBUV0VJX1NLRVdXSU5ET1dZNCAgICAgICAgICAgMHgxMjM2CgojZGVmaW5lIFRXRUpfTk9ORSAgICAgICAgICAgICAgICAgICAweDAwMDAKI2RlZmluZSBUV0VKX01JRFNFUEFSQVRPUiAgICAgICAgICAgMHgwMDAxCiNkZWZpbmUgVFdFSl9QQVRDSDEgICAgICAgICAgICAgICAgIDB4MDAwMgojZGVmaW5lIFRXRUpfUEFUQ0gyICAgICAgICAgICAgICAgICAweDAwMDMKI2RlZmluZSBUV0VKX1BBVENIMyAgICAgICAgICAgICAgICAgMHgwMDA0CiNkZWZpbmUgVFdFSl9QQVRDSDQgICAgICAgICAgICAgICAgIDB4MDAwNQojZGVmaW5lIFRXRUpfUEFUQ0g2ICAgICAgICAgICAgICAgICAweDAwMDYKI2RlZmluZSBUV0VKX1BBVENIVCAgICAgICAgICAgICAgICAgMHgwMDA3CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqICAgICAgICAgICAgUmV0dXJuIENvZGVzIGFuZCBDb25kaXRpb24gQ29kZXMgc2VjdGlvbiAgICAgICAgICAgICAgICAgICAgICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qIFJldHVybiBDb2RlczogRFNNX0VudHJ5IGFuZCBEU19FbnRyeSBtYXkgcmV0dXJuIGFueSBvbmUgb2YgdGhlc2UgdmFsdWVzLiAqLwojZGVmaW5lIFRXUkNfQ1VTVE9NQkFTRSAgICAgMHg4MDAwCgojZGVmaW5lIFRXUkNfU1VDQ0VTUyAgICAgICAgICAwCiNkZWZpbmUgVFdSQ19GQUlMVVJFICAgICAgICAgIDEgLyogQXBwbGljYXRpb24gbWF5IGdldCBUV19TVEFUVVMgZm9yIGluZm8gb24gZmFpbHVyZSAqLwojZGVmaW5lIFRXUkNfQ0hFQ0tTVEFUVVMgICAgICAyIC8qICJ0cmllZCBoYXJkIjsgZ2V0IHN0YXR1cyAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgVFdSQ19DQU5DRUwgICAgICAgICAgIDMKI2RlZmluZSBUV1JDX0RTRVZFTlQgICAgICAgICAgNAojZGVmaW5lIFRXUkNfTk9URFNFVkVOVCAgICAgICA1CiNkZWZpbmUgVFdSQ19YRkVSRE9ORSAgICAgICAgIDYKI2RlZmluZSBUV1JDX0VORE9GTElTVCAgICAgICAgNyAvKiBBZnRlciBNU0dfR0VUTkVYVCBpZiBub3RoaW5nIGxlZnQgICAgICAgICAqLwojZGVmaW5lIFRXUkNfSU5GT05PVFNVUFBPUlRFRCA4CiNkZWZpbmUgVFdSQ19EQVRBTk9UQVZBSUxBQkxFIDkKCi8qIENvbmRpdGlvbiBDb2RlczogQXBwbGljYXRpb24gZ2V0cyB0aGVzZSBieSBkb2luZyBER19DT05UUk9MIERBVF9TVEFUVVMgTVNHX0dFVC4gICovCiNkZWZpbmUgVFdDQ19DVVNUT01CQVNFICAgICAgICAgMHg4MDAwCgojZGVmaW5lIFRXQ0NfU1VDQ0VTUyAgICAgICAgICAgIDAgLyogSXQgd29ya2VkISAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBUV0NDX0JVTU1FUiAgICAgICAgICAgICAxIC8qIEZhaWx1cmUgZHVlIHRvIHVua25vd24gY2F1c2VzICAgICAgICAgICAgICovCiNkZWZpbmUgVFdDQ19MT1dNRU1PUlkgICAgICAgICAgMiAvKiBOb3QgZW5vdWdoIG1lbW9yeSB0byBwZXJmb3JtIG9wZXJhdGlvbiAgICAqLwojZGVmaW5lIFRXQ0NfTk9EUyAgICAgICAgICAgICAgIDMgLyogTm8gRGF0YSBTb3VyY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBUV0NDX01BWENPTk5FQ1RJT05TICAgICA0IC8qIERTIGlzIGNvbm5lY3RlZCB0byBtYXggcG9zc2libGUgYXBwbGljYXRpb25zICAgICAgKi8KI2RlZmluZSBUV0NDX09QRVJBVElPTkVSUk9SICAgICA1IC8qIERTIG9yIERTTSByZXBvcnRlZCBlcnJvciwgYXBwbGljYXRpb24gc2hvdWxkbid0ICAgKi8KI2RlZmluZSBUV0NDX0JBRENBUCAgICAgICAgICAgICA2IC8qIFVua25vd24gY2FwYWJpbGl0eSAgICAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgVFdDQ19CQURQUk9UT0NPTCAgICAgICAgOSAvKiBVbnJlY29nbml6ZWQgTVNHIERHIERBVCBjb21iaW5hdGlvbiAgICAgICAqLwojZGVmaW5lIFRXQ0NfQkFEVkFMVUUgICAgICAgICAgIDEwIC8qIERhdGEgcGFyYW1ldGVyIG91dCBvZiByYW5nZSAgICAgICAgICAgICAgKi8KI2RlZmluZSBUV0NDX1NFUUVSUk9SICAgICAgICAgICAxMSAvKiBERyBEQVQgTVNHIG91dCBvZiBleHBlY3RlZCBzZXF1ZW5jZSAgICAgICovCiNkZWZpbmUgVFdDQ19CQURERVNUICAgICAgICAgICAgMTIgLyogVW5rbm93biBkZXN0aW5hdGlvbiBBcHBsaWNhdGlvbi9Tb3VyY2UgaW4gRFNNX0VudHJ5ICovCiNkZWZpbmUgVFdDQ19DQVBVTlNVUFBPUlRFRCAgICAgMTMgLyogQ2FwYWJpbGl0eSBub3Qgc3VwcG9ydGVkIGJ5IHNvdXJjZSAgICAgICAgICAgICovCiNkZWZpbmUgVFdDQ19DQVBCQURPUEVSQVRJT04gICAgMTQgLyogT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgYnkgY2FwYWJpbGl0eSAgICAgICAgICovCiNkZWZpbmUgVFdDQ19DQVBTRVFFUlJPUiAgICAgICAgMTUgLyogQ2FwYWJpbGl0eSBoYXMgZGVwZW5kYW5jeSBvbiBvdGhlciBjYXBhYmlsaXR5ICovCi8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIFRXQ0NfREVOSUVEICAgICAgICAgICAgIDE2IC8qIEZpbGUgU3lzdGVtIG9wZXJhdGlvbiBpcyBkZW5pZWQgKGZpbGUgaXMgcHJvdGVjdGVkKSAqLwojZGVmaW5lIFRXQ0NfRklMRUVYSVNUUyAgICAgICAgIDE3IC8qIE9wZXJhdGlvbiBmYWlsZWQgYmVjYXVzZSBmaWxlIGFscmVhZHkgZXhpc3RzLiAqLwojZGVmaW5lIFRXQ0NfRklMRU5PVEZPVU5EICAgICAgIDE4IC8qIEZpbGUgbm90IGZvdW5kICovCiNkZWZpbmUgVFdDQ19OT1RFTVBUWSAgICAgICAgICAgMTkgLyogT3BlcmF0aW9uIGZhaWxlZCBiZWNhdXNlIGRpcmVjdG9yeSBpcyBub3QgZW1wdHkgKi8KI2RlZmluZSBUV0NDX1BBUEVSSkFNICAgICAgICAgICAyMCAgLyogVGhlIGZlZWRlciBpcyBqYW1tZWQgKi8KI2RlZmluZSBUV0NDX1BBUEVSRE9VQkxFRkVFRCAgICAyMSAgLyogVGhlIGZlZWRlciBkZXRlY3RlZCBtdWx0aXBsZSBwYWdlcyAqLwojZGVmaW5lIFRXQ0NfRklMRVdSSVRFRVJST1IgICAgIDIyICAvKiBFcnJvciB3cml0aW5nIHRoZSBmaWxlIChtZWFudCBmb3IgdGhpbmdzIGxpa2UgZGlzayBmdWxsIGNvbmRpdGlvbnMpICovCiNkZWZpbmUgVFdDQ19DSEVDS0RFVklDRU9OTElORSAgMjMgIC8qIFRoZSBkZXZpY2Ugd2VudCBvZmZsaW5lIHByaW9yIHRvIG9yIGR1cmluZyB0aGlzIG9wZXJhdGlvbiAqLwoKCi8qIGJpdCBwYXR0ZXJuczogZm9yIHF1ZXJ5IHRoZSBvcGVyYXRpb24gdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoZSBkYXRhIHNvdXJjZSBvbiBhIGNhcGFiaWxpdHkgKi8KLyogQXBwbGljYXRpb24gZ2V0cyB0aGVzZSB0aHJvdWdoIERHX0NPTlRST0wvREFUX0NBUEFCSUxJVFkvTVNHX1FVRVJZU1VQUE9SVCAqLwovKiBBZGRlZCAxLjYgKi8KI2RlZmluZSBUV1FDX0dFVCAgICAgICAgICAgMHgwMDAxIAojZGVmaW5lIFRXUUNfU0VUICAgICAgICAgICAweDAwMDIKI2RlZmluZSBUV1FDX0dFVERFRkFVTFQgICAgMHgwMDA0CiNkZWZpbmUgVFdRQ19HRVRDVVJSRU5UICAgIDB4MDAwOAojZGVmaW5lIFRXUUNfUkVTRVQgICAgICAgICAweDAwMTAKCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBFbnRyeSBQb2ludHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIEZ1bmN0aW9uOiBEU01fRW50cnksIHRoZSBvbmx5IGVudHJ5IHBvaW50IGludG8gdGhlIERhdGEgU291cmNlIE1hbmFnZXIuCiAqCiAqIFBhcmFtZXRlcnM6CiAqICBwT3JpZ2luIElkZW50aWZpZXMgdGhlIHNvdXJjZSBtb2R1bGUgb2YgdGhlIG1lc3NhZ2UuIFRoaXMgY291bGQKICogICAgICAgICAgaWRlbnRpZnkgYW4gQXBwbGljYXRpb24sIGEgU291cmNlLCBvciB0aGUgU291cmNlIE1hbmFnZXIuCiAqCiAqICBwRGVzdCAgIElkZW50aWZpZXMgdGhlIGRlc3RpbmF0aW9uIG1vZHVsZSBmb3IgdGhlIG1lc3NhZ2UuCiAqICAgICAgICAgIFRoaXMgY291bGQgaWRlbnRpZnkgYW4gYXBwbGljYXRpb24gb3IgYSBkYXRhIHNvdXJjZS4KICogICAgICAgICAgSWYgdGhpcyBpcyBOVUxMLCB0aGUgbWVzc2FnZSBnb2VzIHRvIHRoZSBTb3VyY2UgTWFuYWdlci4KICoKICogIERHICAgICAgVGhlIERhdGEgR3JvdXAuIAogKiAgICAgICAgICBFeGFtcGxlOiBER19JTUFHRS4KICoKICogIERBVCAgICAgVGhlIERhdGEgQXR0cmlidXRlIFR5cGUuCiAqICAgICAgICAgIEV4YW1wbGU6IERBVF9JTUFHRU1FTVhGRVIuCiAqICAgIAogKiAgTVNHICAgICBUaGUgbWVzc2FnZS4gIE1lc3NhZ2VzIGFyZSBpbnRlcnByZXRlZCBieSB0aGUgZGVzdGluYXRpb24gbW9kdWxlCiAqICAgICAgICAgIHdpdGggcmVzcGVjdCB0byB0aGUgRGF0YSBHcm91cCBhbmQgdGhlIERhdGEgQXR0cmlidXRlIFR5cGUuICAKICogICAgICAgICAgRXhhbXBsZTogTVNHX0dFVC4KICoKICogIHBEYXRhICAgQSBwb2ludGVyIHRvIHRoZSBkYXRhIHN0cnVjdHVyZSBvciB2YXJpYWJsZSBpZGVudGlmaWVkIAogKiAgICAgICAgICBieSB0aGUgRGF0YSBBdHRyaWJ1dGUgVHlwZS4KICogICAgICAgICAgRXhhbXBsZTogKFRXX01FTVJFRikmSW1hZ2VNZW1YZmVyCiAqICAgICAgICAgICAgICAgICAgIHdoZXJlIEltYWdlTWVtWGZlciBpcyBhIFRXX0lNQUdFTUVNWEZFUiBzdHJ1Y3R1cmUuCiAqICAgICAgICAgICAgICAgICAgICAKICogUmV0dXJuczoKICogIFJldHVybkNvZGUKICogICAgICAgICBFeGFtcGxlOiBUV1JDX1NVQ0NFU1MuCiAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qIERvbid0IG1hbmdsZSB0aGUgbmFtZSAiRFNNX0VudHJ5IiBpZiB3ZSdyZSBjb21waWxpbmcgaW4gQysrISAqLwojaWZkZWYgIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYgIC8qIF9fY3BsdXNwbHVzICovCgojaWZkZWYgIF9NU1dJTl8KVFdfVUlOVDE2IEZBUiBQQVNDQUwgRFNNX0VudHJ5KCBwVFdfSURFTlRJVFkgcE9yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwVFdfSURFTlRJVFkgcERlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdfVUlOVDMyICAgIERHLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRXX1VJTlQxNiAgICBEQVQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdfVUlOVDE2ICAgIE1TRywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19NRU1SRUYgICAgcERhdGEpOwoKdHlwZWRlZiBUV19VSU5UMTYgKEZBUiBQQVNDQUwgKkRTTUVOVFJZUFJPQykocFRXX0lERU5USVRZLCBwVFdfSURFTlRJVFksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRXX1VJTlQzMiwgICAgVFdfVUlOVDE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19VSU5UMTYsICAgIFRXX01FTVJFRik7CiNlbHNlICAgLyogX01TV0lOXyAqLwoKLypGQVIgUEFTQ0FMIFRXX1VJTlQxNiBEU01fRW50cnkoIHBUV19JREVOVElUWSBwT3JpZ2luLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBUV19JREVOVElUWSBwRGVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19VSU5UMzIgICAgREcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdfVUlOVDE2ICAgIERBVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19VSU5UMTYgICAgTVNHLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRXX01FTVJFRiAgICBwRGF0YSk7Ki8KCnR5cGVkZWYgVFdfVUlOVDE2ICgqRFNNRU5UUllQUk9DKShwVFdfSURFTlRJVFksIHBUV19JREVOVElUWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRXX1VJTlQzMiwgICAgVFdfVUlOVDE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdfVUlOVDE2LCAgICBUV19NRU1SRUYpOwojZW5kaWYgIC8qIF9NU1dJTl8gKi8KCiNpZmRlZiAgX19jcGx1c3BsdXMKfQojZW5kaWYgIC8qIGNwbHVzcGx1cyAqLwoKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIEZ1bmN0aW9uOiBEU19FbnRyeSwgdGhlIGVudHJ5IHBvaW50IHByb3ZpZGVkIGJ5IGEgRGF0YSBTb3VyY2UuCiAqCiAqIFBhcmFtZXRlcnM6CiAqICBwT3JpZ2luIElkZW50aWZpZXMgdGhlIHNvdXJjZSBtb2R1bGUgb2YgdGhlIG1lc3NhZ2UuIFRoaXMgY291bGQKICogICAgICAgICAgaWRlbnRpZnkgYW4gYXBwbGljYXRpb24gb3IgdGhlIERhdGEgU291cmNlIE1hbmFnZXIuCiAqCiAqICBERyAgICAgIFRoZSBEYXRhIEdyb3VwLiAKICogICAgICAgICAgRXhhbXBsZTogREdfSU1BR0UuCiAqICAgICAgICAgICAKICogIERBVCAgICAgVGhlIERhdGEgQXR0cmlidXRlIFR5cGUuCiAqICAgICAgICAgIEV4YW1wbGU6IERBVF9JTUFHRU1FTVhGRVIuCiAqICAgIAogKiAgTVNHICAgICBUaGUgbWVzc2FnZS4gIE1lc3NhZ2VzIGFyZSBpbnRlcnByZXRlZCBieSB0aGUgZGF0YSBzb3VyY2UKICogICAgICAgICAgd2l0aCByZXNwZWN0IHRvIHRoZSBEYXRhIEdyb3VwIGFuZCB0aGUgRGF0YSBBdHRyaWJ1dGUgVHlwZS4KICogICAgICAgICAgRXhhbXBsZTogTVNHX0dFVC4KICoKICogIHBEYXRhICAgQSBwb2ludGVyIHRvIHRoZSBkYXRhIHN0cnVjdHVyZSBvciB2YXJpYWJsZSBpZGVudGlmaWVkIAogKiAgICAgICAgICBieSB0aGUgRGF0YSBBdHRyaWJ1dGUgVHlwZS4KICogICAgICAgICAgRXhhbXBsZTogKFRXX01FTVJFRikmSW1hZ2VNZW1YZmVyCiAqICAgICAgICAgICAgICAgICAgIHdoZXJlIEltYWdlTWVtWGZlciBpcyBhIFRXX0lNQUdFTUVNWEZFUiBzdHJ1Y3R1cmUuCiAqICAgICAgICAgICAgICAgICAgICAKICogUmV0dXJuczoKICogIFJldHVybkNvZGUKICogICAgICAgICAgRXhhbXBsZTogVFdSQ19TVUNDRVNTLgogKgogKiBOb3RlOgogKiAgVGhlIERTUFJPQyB0eXBlIGlzIG9ubHkgdXNlZCBieSBhbiBhcHBsaWNhdGlvbiB3aGVuIGl0IGNhbGxzCiAqICBhIERhdGEgU291cmNlIGRpcmVjdGx5LCBieXBhc3NpbmcgdGhlIERhdGEgU291cmNlIE1hbmFnZXIuCiAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogRG9uJ3QgbWFuZ2xlIHRoZSBuYW1lICJEU19FbnRyeSIgaWYgd2UncmUgY29tcGlsaW5nIGluIEMrKyEgKi8KI2lmZGVmICBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmICAvKiBfX2NwbHVzcGx1cyAqLwojaWZkZWYgIF9NU1dJTl8KICAjaWZkZWYgX1dJTjMyCiAgICAgX19kZWNsc3BlYyhkbGxleHBvcnQpIFRXX1VJTlQxNiBGQVIgUEFTQ0FMIERTX0VudHJ5IChwVFdfSURFTlRJVFkgcE9yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRXX1VJTlQzMiAgICBERywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19VSU5UMTYgICAgREFULCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRXX1VJTlQxNiAgICBNU0csIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdfTUVNUkVGICAgIHBEYXRhKTsKICAjZWxzZSAgIC8qIF9XSU4zMiAqLwogICAgIFRXX1VJTlQxNiBGQVIgUEFTQ0FMIERTX0VudHJ5IChwVFdfSURFTlRJVFkgcE9yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdfVUlOVDMyICAgIERHLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdfVUlOVDE2ICAgIERBVCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRXX1VJTlQxNiAgICBNU0csIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19NRU1SRUYgICAgcERhdGEpOwogICNlbmRpZiAgLyogX1dJTjMyICovCiAgCiAgdHlwZWRlZiBUV19VSU5UMTYgKEZBUiBQQVNDQUwgKkRTRU5UUllQUk9DKSAocFRXX0lERU5USVRZIHBPcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdfVUlOVDMyICAgIERHLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19VSU5UMTYgICAgREFULCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19VSU5UMTYgICAgTVNHLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19NRU1SRUYgICAgcERhdGEpOwojZWxzZSAgIC8qIF9NU1dJTl8gKi8KLypGQVIgUEFTQ0FMIFRXX1VJTlQxNiBEU19FbnRyeSggcFRXX0lERU5USVRZIHBPcmlnaW4sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdfVUlOVDMyICAgIERHLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRXX1VJTlQxNiAgICBEQVQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdfVUlOVDE2ICAgIE1TRywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19NRU1SRUYgICAgcERhdGEpOyovCgp0eXBlZGVmIFRXX1VJTlQxNiAoKkRTRU5UUllQUk9DKShwVFdfSURFTlRJVFksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19VSU5UMzIsICAgIFRXX1VJTlQxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRXX1VJTlQxNiwgICAgVFdfTUVNUkVGKTsKI2VuZGlmICAvKiBfTVNXSU5fICovCiNpZmRlZiAgX19jcGx1c3BsdXMKfQojZW5kaWYgIC8qIGNwbHVzcGx1cyAqLwoKLyogIFNESCAtIDAyLzA4Lzk1IC0gVFdVTksgKi8KLyogIEZvcmNlIDMyLWJpdCB0d2FpbiB0byB1c2Ugc2FtZSBwYWNraW5nIG9mIHR3YWluIHN0cnVjdHVyZXMgYXMgZXhpc3RpbmcgKi8KLyogIDE2LWJpdCB0d2Fpbi4gIFRoaXMgYWxsb3dzIDE2LzMyLWJpdCB0aHVua2luZy4gKi8KI2lmZGVmICBXSU4zMgogICAgI2lmZGVmIF9fQk9STEFORENfXyAvLyhNZW50b3IgSnVuZSAxMywgMTk5NikgaWYgd2UncmUgdXNpbmcgYSBCb3JsYW5kIGNvbXBpbGVyCiAgICAgICAgI3ByYWdtYSBvcHRpb24gLWEuICAvLyhNZW50b3IgT2N0b2JlciAzMCwgMTk5Nikgc3dpdGNoIGJhY2sgdG8gb3JpZ2luYWwgYWxpZ25tZW50CiAgICAjZWxzZSAgIC8vKE1lbnRvciBKdW5lIDEzLCAxOTk2KSBpZiBOT1QgdXNpbmcgYSBCb3JsYW5kIGNvbXBpbGVyCiAgICAgICAgI3ByYWdtYSBwYWNrIChwb3AsIGJlZm9yZV90d2FpbikKICAgICNlbmRpZiAgLy8oTWVudG9yIEp1bmUgMTMsIDE5OTYpCiNlbHNlICAgLyogV0lOMzIgKi8KI2VuZGlmICAvKiBXSU4zMiAqLwoKI2VuZGlmICAvKiBUV0FJTiAqLwo=