LyoKICogUHJvZ3JhbSBNYW5hZ2VyCiAqCiAqIENvcHlyaWdodCAxOTk3IEhlbnJpayBPbHNlbiA8aGVucmlrQGlhZXN0ZS5kaz4KICovCgojZGVmaW5lIExBTkdVQUdFX0lEICAgICAgICAgICAgICAgICAgRGEKI2RlZmluZSBMQU5HVUFHRV9OVU1CRVIgICAgICAgICAgICAgIDYKI2RlZmluZSBMQU5HVUFHRV9NRU5VX0lURU0gICAgICAgICAgICImRGFuc2siCgovKiBNZW51ICovCgojZGVmaW5lIE1FTlVfRklMRSAgICAgICAgICAgICAgICAgICAgIiZGaWxlciIKI2RlZmluZSBNRU5VX0ZJTEVfTkVXICAgICAgICAgICAgICAgICImTnl0IHByb2dyYW1vYmpla3QuLi4iCiNkZWZpbmUgTUVOVV9GSUxFX09QRU4gICAgICAgICAgICAgICAixSZiblx0RW50ZXIiCiNkZWZpbmUgTUVOVV9GSUxFX01PVkUgICAgICAgICAgICAgICAiJkZseXQuLi5cdEY3IgojZGVmaW5lIE1FTlVfRklMRV9DT1BZICAgICAgICAgICAgICAgIksmb3BpZXIuLi5cdEY4IgojZGVmaW5lIE1FTlVfRklMRV9ERUxFVEUgICAgICAgICAgICAgIiZTbGV0XHREZWwiCiNkZWZpbmUgTUVOVV9GSUxFX0FUVFJJQlVURVMgICAgICAgICAiJlByb2dyYW1wYXJhbWV0cmUuLi5eSUFsdCtFbnRlciIKI2RlZmluZSBNRU5VX0ZJTEVfRVhFQ1VURSAgICAgICAgICAgICImS/hyLi4uIgojZGVmaW5lIE1FTlVfRklMRV9FWElUICAgICAgICAgICAgICAgIiZBZnNsdXQgV2luZG93cy4uLiIKCiNkZWZpbmUgTUVOVV9PUFRJT05TICAgICAgICAgICAgICAgICAiJkluZHN0aWxsaW5nZXIiCiNkZWZpbmUgTUVOVV9PUFRJT05TX0FVVE9fQVJSQU5HRSAgICAiJkFycmFuZ2VyIGF1dG9tYXRpc2siCiNkZWZpbmUgTUVOVV9PUFRJT05TX01JTl9PTl9SVU4gICAgICAiJk1pbmltZXIgdmVkIGJydWciCiNkZWZpbmUgTUVOVV9PUFRJT05TX1NBVkVfU0VUVElOR1MgICAiJkdlbSBpbmRzdGlsbGluZ2VyIHZlZCBhZnNsdXRuaW5nIgoKI2RlZmluZSBNRU5VX1dJTkRPV1MgICAgICAgICAgICAgICAgICImVmluZHVlIgojZGVmaW5lIE1FTlVfV0lORE9XU19PVkVSTEFQICAgICAgICAgIiZPdmVybGFwcGV0XHRTa2lmdCtGNSIKI2RlZmluZSBNRU5VX1dJTkRPV1NfU0lERV9CWV9TSURFICAgICImU2lkZSBvbSBzaWRlXHRTa2lmdCtGNCIKI2RlZmluZSBNRU5VX1dJTkRPV1NfQVJSQU5HRSAgICAgICAgICImQXJyYW5nZXIgaWtvbmVyIgoKI2RlZmluZSBNRU5VX0xBTkdVQUdFICAgICAgICAgICAgICAgICImU3Byb2ciCgojZGVmaW5lIE1FTlVfSEVMUCAgICAgICAgICAgICAgICAgICAgIiZIauZscCIKI2RlZmluZSBNRU5VX0hFTFBfQ09OVEVOVFMgICAgICAgICAgICImSW5kaG9sZCIKI2RlZmluZSBNRU5VX0hFTFBfU0VBUkNIICAgICAgICAgICAgICImU/hnIGVmdGVyIGhq5mxwIG9tLi4uIgojZGVmaW5lIE1FTlVfSEVMUF9IRUxQX09OX0hFTFAgICAgICAgIiZCcnVnIGFmIEhq5mxwIgojZGVmaW5lIE1FTlVfSEVMUF9UVVRPUklBTCAgICAgICAgICAgIiZXaW5kb3dzIFNlbHZzdHVkaXVtIgoKI2RlZmluZSBNRU5VX0lORk8gICAgICAgICAgICAgICAgICAgICImT20gUHJvZ3JhbXN0eXJpbmcuLi4iCiNkZWZpbmUgTUVOVV9JTkZPX0xJQ0VOU0UgICAgICAgICAgICAiJkxpY2VucyIKI2RlZmluZSBNRU5VX0lORk9fTk9fV0FSUkFOVFkgICAgICAgICImTk8gV0FSUkFOVFkiCiNkZWZpbmUgTUVOVV9JTkZPX0FCT1VUX1dJTkUgICAgICAgICAiJk9tIFdJTkUiCgovKiBEaWFsb2dzICovCgojZGVmaW5lIERJQUxPR19PSyAgICAgICAgICAgICAgICAgICAgIk9LIgojZGVmaW5lIERJQUxPR19DQU5DRUwgICAgICAgICAgICAgICAgIkFubnVsbGVyIgojZGVmaW5lIERJQUxPR19CUk9XU0UgICAgICAgICAgICAgICAgIiZHZW5uZW1zZS4uLiIKI2RlZmluZSBESUFMT0dfSEVMUCAgICAgICAgICAgICAgICAgICImSGrmbHAiCgojZGVmaW5lIERJQUxPR19ORVdfQ0FQVElPTiAgICAgICAgICAgIk55dCBwcm9ncmFtb2JqZWN0IgojZGVmaW5lIERJQUxPR19ORVdfTkVXICAgICAgICAgICAgICAgIk55dCIKI2RlZmluZSBESUFMT0dfTkVXX0dST1VQICAgICAgICAgICAgICJQcm9ncmFtICZncnVwcGUiCiNkZWZpbmUgRElBTE9HX05FV19QUk9HUkFNICAgICAgICAgICAiJlByb2dyYW0iCgojZGVmaW5lIERJQUxPR19NT1ZFX0NBUFRJT04gICAgICAgICAgIkZseXQgcHJvZ3JhbWVsZW1lbnQiCiNkZWZpbmUgRElBTE9HX01PVkVfUFJPR1JBTSAgICAgICAgICAiRmx5dCBlbGVtZW50ZXQ6IgojZGVmaW5lIERJQUxPR19NT1ZFX0ZST01fR1JPVVAgICAgICAgIkZyYSBncnVwcGVuOiIKI2RlZmluZSBESUFMT0dfTU9WRV9UT19HUk9VUCAgICAgICAgICImVGlsIGdydXBwZW46IgoKI2RlZmluZSBESUFMT0dfQ09QWV9DQVBUSU9OICAgICAgICAgICJLb3BpZXIgcHJvZ3JhbWVsZW1lbnQiCiNkZWZpbmUgRElBTE9HX0NPUFlfUFJPR1JBTSAgICAgICAgICAiS29waWVyIGVsZW1lbnRldDoiCiNkZWZpbmUgRElBTE9HX0NPUFlfRlJPTV9HUk9VUCAgICAgICBESUFMT0dfTU9WRV9GUk9NX0dST1VQCiNkZWZpbmUgRElBTE9HX0NPUFlfVE9fR1JPVVAgICAgICAgICBESUFMT0dfTU9WRV9UT19HUk9VUAoKI2RlZmluZSBESUFMT0dfR1JPVVBfQ0FQVElPTiAgICAgICAgICJHcnVwcGVwYXJhbWV0cmUiCiNkZWZpbmUgRElBTE9HX0dST1VQX0RFU0NSSVBUSU9OICAgICAiJkJlc2tyaXZlbHNlOiIKI2RlZmluZSBESUFMT0dfR1JPVVBfRklMRSAgICAgICAgICAgICImR3J1cHBlZmlsOiIKCiNkZWZpbmUgRElBTE9HX1BST0dSQU1fQ0FQVElPTiAgICAgICAiUHJvZ3JhbXBhcmFtZXRyZSIKI2RlZmluZSBESUFMT0dfUFJPR1JBTV9ERVNDUklQVElPTiAgIERJQUxPR19HUk9VUF9ERVNDUklQVElPTgojZGVmaW5lIERJQUxPR19QUk9HUkFNX0NPTU1BTkRfTElORSAgIiZLb21tYW5kb2xpbmplOiIKI2RlZmluZSBESUFMT0dfUFJPR1JBTV9ESVJFQ1RPUlkgICAgICImQXJiZWpkc2JpYmxpb3RlazoiCiNkZWZpbmUgRElBTE9HX1BST0dSQU1fSE9UX0tFWSAgICAgICAiR2VudmVqcyZ0YXN0OiIKI2RlZmluZSBESUFMT0dfUFJPR1JBTV9TWU1CT0wgICAgICAgICJL+HIgJm1pbmltZXJldCIKI2RlZmluZSBESUFMT0dfUFJPR1JBTV9PVEhFUl9TWU1CT0wgICJTa2lmdCAmaWtvbi4uLiIKCiNkZWZpbmUgRElBTE9HX1NZTUJPTF9DQVBUSU9OICAgICAgICAiU2tpZnQgaWtvbiIKI2RlZmluZSBESUFMT0dfU1lNQk9MX0ZJTEUgICAgICAgICAgICImRmlsbmF2bjoiCiNkZWZpbmUgRElBTE9HX1NZTUJPTF9DVVJSRU5UICAgICAgICAiJk51duZyZW5kZSBpa29uOiIKCiNkZWZpbmUgRElBTE9HX0VYRUNVVEVfQ0FQVElPTiAgICAgICAiS/hyIgojZGVmaW5lIERJQUxPR19FWEVDVVRFX0NPTU1BTkRfTElORSAgRElBTE9HX1BST0dSQU1fQ09NTUFORF9MSU5FCiNkZWZpbmUgRElBTE9HX0VYRUNVVEVfU1lNQk9MICAgICAgICBESUFMT0dfUFJPR1JBTV9TWU1CT0wKCi8qIFN0cmluZ3MgKi8KCiNkZWZpbmUgU1RSSU5HX1BST0dSQU1fTUFOQUdFUiAgICAgICAgICAgICJQcm9ncmFtc3R5cmluZyIKI2RlZmluZSBTVFJJTkdfRVJST1IgICAgICAgICAgICAgICAgICAgICAgIkZFSkwiCiNkZWZpbmUgU1RSSU5HX1dBUk5JTkcgICAgICAgICAgICAgICAgICAgICJBRFZBUlNFTCIKI2RlZmluZSBTVFJJTkdfSU5GTyAgICAgICAgICAgICAgICAgICAgICAgIkluZm9ybWF0aW9uIgojZGVmaW5lIFNUUklOR19ERUxFVEUgICAgICAgICAgICAgICAgICAgICAiU2xldCIKI2RlZmluZSBTVFJJTkdfREVMRVRFX0dST1VQX3MgICAgICAgICAgICAgIlNsZXQgZ3J1cHBlIGAlcycgPyIKI2RlZmluZSBTVFJJTkdfREVMRVRFX1BST0dSQU1fcyAgICAgICAgICAgIlNsZXQgcHJvZ3JhbSBgJXMnID8iCiNkZWZpbmUgU1RSSU5HX05PVF9JTVBMRU1FTlRFRCAgICAgICAgICAgICJJa2tlIGltcGxlbWVudGVyZXQuIgojZGVmaW5lIFNUUklOR19GSUxFX1JFQURfRVJST1JfcyAgICAgICAgICAiS2FuIGlra2UgbOZzZSBmaWxlbiBgJXMnIgojZGVmaW5lIFNUUklOR19GSUxFX1dSSVRFX0VSUk9SX3MgICAgICAgICAiS2FuIGlra2Ugc2tyaXZlIGZpbGVuIGAlcyciCgojZGVmaW5lIFNUUklOR19HUlBGSUxFX1JFQURfRVJST1JfcyAgICAgICAiXApLYW4gaWtrZSDlYm5lIGdydXBwZWZpbGVuICclcycuXG5cCthuc2tlciBkdSwgYXQgUHJvZ3JhbXN0eXJpbmcgaSBmcmVtdGlkZW4gc3RhZGlnIHNrYWwgcHL4dmUgYXQgaW5kbOZzZSBkZW4/IgoKI2RlZmluZSBTVFJJTkdfT1VUX09GX01FTU9SWSAgICAgICAgICAgICAgIlwKRGVyIGVyIGlra2Ugbm9rIGh1a29tbWVsc2UgdGlsIGF0IHVkZvhyZSBkZW5uZSBvcGVyYXRpb24uXG5cCkFmc2x1dCBldCBlbGxlciBmbGVyZSBha3RpdmUgcHJvZ3JhbW1lciBmb3IgYXQgZnJpZ/hyZSBodWtvbW1lbHNlLCBcCm9nIHBy+HYgc+UgaWdlbi4iCgojZGVmaW5lIFNUUklOR19XSU5IRUxQX0VSUk9SICAgICAgICAgICAgICAiXApLYW4gaWtrZSB2aXNlIGluZm9ybWF0aW9uIGZyYSBIauZscC4iCgojZGVmaW5lIFNUUklOR19VTktOT1dOX0ZFQVRVUkVfcyAgICAgICAgICAiVWtlbmR0IGluZGhvbGQgaSAlcyIKI2RlZmluZSBTVFJJTkdfRklMRV9OT1RfT1ZFUldSSVRURU5fcyAgICAgIlwKRmlsZW4gYCVzJyBmaW5kZXMuIElra2Ugb3ZlcnNrcmV2ZXQuIgoKI2RlZmluZSBTVFJJTkdfU0FWRV9HUk9VUF9BU19zICAgICAgICAgICAgIlwKR2VtIGdydXBwZW4gc29tIGAlcycgZm9yIGF0IHVuZGflIGF0IG92ZXJza3JpdmUgb3JpZ2luYWxlIGZpbGVyIgoKI2RlZmluZSBTVFJJTkdfTk9fSE9UX0tFWSAgICAgICAgICAgICAgICAgIkluZ2VuIgoKI2RlZmluZSBTVFJJTkdfQUxMX0ZJTEVTICAgICAgICAgICAgICAgICAgIkFsbGUgZmlsZXIgKCouKikiCiNkZWZpbmUgU1RSSU5HX1BST0dSQU1TICAgICAgICAgICAgICAgICAgICJQcm9ncmFtbWVyIgojZGVmaW5lIFNUUklOR19MSUJSQVJJRVNfRExMICAgICAgICAgICAgICAiQmlibGlvdGVrc2ZpbGVyICgqLmRsbCkiCiNkZWZpbmUgU1RSSU5HX1NZTUJPTF9GSUxFUyAgICAgICAgICAgICAgICJJa29uZmlsZXIiCiNkZWZpbmUgU1RSSU5HX1NZTUJPTFNfSUNPICAgICAgICAgICAgICAgICJJa29uZXIgKCouaWNvKSIKCiNpbmNsdWRlICJYeC5yYyIK