Ly9NaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBnZW5lcmF0ZWQgcmVzb3VyY2Ugc2NyaXB0LgovLwojaW5jbHVkZSAicmVzb3VyY2UuaCIKCiNkZWZpbmUgQVBTVFVESU9fUkVBRE9OTFlfU1lNQk9MUwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLwovLyBHZW5lcmF0ZWQgZnJvbSB0aGUgVEVYVElOQ0xVREUgMiByZXNvdXJjZS4KLy8KI2luY2x1ZGUgImFmeHJlcy5oIgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KI3VuZGVmIEFQU1RVRElPX1JFQURPTkxZX1NZTUJPTFMKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIEh1bmdhcmlhbiByZXNvdXJjZXMKCiNpZiAhZGVmaW5lZChBRlhfUkVTT1VSQ0VfRExMKSB8fCBkZWZpbmVkKEFGWF9UQVJHX0hVTikKI2lmZGVmIF9XSU4zMgpMQU5HVUFHRSBMQU5HX0hVTkdBUklBTiwgU1VCTEFOR19ERUZBVUxUCiNwcmFnbWEgY29kZV9wYWdlKDEyNTApCiNlbmRpZiAvL19XSU4zMgoKI2lmbmRlZiBfTUFDCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vCi8vIFZlcnNpb24KLy8KClZTX1ZFUlNJT05fSU5GTyBWRVJTSU9OSU5GTwogRklMRVZFUlNJT04gMSwwLDAsMQogUFJPRFVDVFZFUlNJT04gMSwwLDAsMQogRklMRUZMQUdTTUFTSyAweDNmTAojaWZkZWYgX0RFQlVHCiBGSUxFRkxBR1MgMHgxTAojZWxzZQogRklMRUZMQUdTIDB4MEwKI2VuZGlmCiBGSUxFT1MgMHg0TAogRklMRVRZUEUgMHgyTAogRklMRVNVQlRZUEUgMHgwTApCRUdJTgogICAgQkxPQ0sgIlN0cmluZ0ZpbGVJbmZvIgogICAgQkVHSU4KICAgICAgICBCTE9DSyAiMDQwOTA0YjAiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgVkFMVUUgIkNvbW1lbnRzIiwgIlwwIgogICAgICAgICAgICBWQUxVRSAiQ29tcGFueU5hbWUiLCAiSUJNIENvcnBvcmF0aW9uXDAiCiAgICAgICAgICAgIFZBTFVFICJGaWxlRGVzY3JpcHRpb24iLCAiRGlhZ3JhbVByaW50IERMTFwwIgogICAgICAgICAgICBWQUxVRSAiRmlsZVZlcnNpb24iLCAiMSwgMCwgMCwgMVwwIgogICAgICAgICAgICBWQUxVRSAiSW50ZXJuYWxOYW1lIiwgIkRpYWdyYW1QcmludFwwIgogICAgICAgICAgICBWQUxVRSAiTGVnYWxDb3B5cmlnaHQiLCAiTGljZW5zZWQgTWF0ZXJpYWxzIC0tIFByb3BlcnR5IG9mIElCTSAtIChDKSBDb3B5cmlnaHQgSUJNIENvcnBvcmF0aW9uLCAyMDAzLDIwMDggLSBVUyBHb3Zlcm5tZW50IFVzZXJzIFJlc3RyaWN0ZWQgUmlnaHRzIC0gVXNlLCBkdXBsaWNhdGlvbiBvciBkaXNjbG9zdXJlIHJlc3RyaWN0ZWQgYnkgR1NBIEFEUCBTY2hlZHVsZSBDb250cmFjdCB3aXRoIElCTSBDb3JwLlwwIgogICAgICAgICAgICBWQUxVRSAiTGVnYWxUcmFkZW1hcmtzIiwgIihSKSBJQk0gaXMgYSByZWdpc3RlcmVkIHRyYWRlbWFyayBvZiBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uLiAgV2luZG93cyhUTSkgaXMgYSB0cmFkZW1hcmsgb2YgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlwwIgogICAgICAgICAgICBWQUxVRSAiT3JpZ2luYWxGaWxlbmFtZSIsICJEaWFncmFtUHJpbnQuRExMXDAiCiAgICAgICAgICAgIFZBTFVFICJQcml2YXRlQnVpbGQiLCAiXDAiCiAgICAgICAgICAgIFZBTFVFICJQcm9kdWN0TmFtZSIsICJEaWFncmFtUHJpbnQgRHluYW1pYyBMaW5rIExpYnJhcnlcMCIKICAgICAgICAgICAgVkFMVUUgIlByb2R1Y3RWZXJzaW9uIiwgIjIsIDEsIDAsIDBcMCIKICAgICAgICAgICAgVkFMVUUgIlNwZWNpYWxCdWlsZCIsICJcMCIKICAgICAgICBFTkQKICAgIEVORAogICAgQkxPQ0sgIlZhckZpbGVJbmZvIgogICAgQkVHSU4KICAgICAgICBWQUxVRSAiVHJhbnNsYXRpb24iLCAweDQwOSwgMTIwMAogICAgRU5ECkVORAoKI2VuZGlmICAgIC8vICFfTUFDCgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8KLy8gRGlhbG9nCi8vCgoxNTM4IERJQUxPRyBESVNDQVJEQUJMRSAgMzIsIDMyLCAzMDMsIDM1NApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfM0RMT09LIHwgRFNfQ09OVEVYVEhFTFAgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCAKICAgIFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIk55b210YXThcyIKRk9OVCA4LCAiTVMgU2FucyBTZXJpZiIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiTnlvbXRhdPMiLDEwNzUsOCw0LDI5Miw4NCxXU19HUk9VUAogICAgTFRFWFQgICAgICAgICAgICImTul2OiIsMTA5MywxNiwyMSwzNiw4CiAgICBDT01CT0JPWCAgICAgICAgMTEzOSw1MiwxOCwxNTIsMTUyLENCU19EUk9QRE9XTkxJU1QgfCBDQlNfU09SVCB8IAogICAgICAgICAgICAgICAgICAgIFdTX1ZTQ1JPTEwgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiJlR1bGFqZG9uc+Fnb2suLi4iLDEwMjUsMjEyLDE3LDY0LDE0LFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIsFsbGFwb3Q6IiwxMDk1LDE2LDM2LDM2LDEwLFNTX05PUFJFRklYCiAgICBDT05UUk9MICAgICAgICAgIiIsMTA5OSwiU3RhdGljIixTU19MRUZUTk9XT1JEV1JBUCB8IFNTX05PUFJFRklYIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfR1JPVVAsNTIsMzYsMjI0LDEwCiAgICBMVEVYVCAgICAgICAgICAgIlTtcHVzOiIsMTA5NCwxNiw0OCwzNiwxMCxTU19OT1BSRUZJWAogICAgQ09OVFJPTCAgICAgICAgICIiLDEwOTgsIlN0YXRpYyIsU1NfTEVGVE5PV09SRFdSQVAgfCBTU19OT1BSRUZJWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQLDUyLDQ4LDIyNCwxMAogICAgTFRFWFQgICAgICAgICAgICJIZWx5OiIsMTA5NywxNiw2MCwzNiwxMCxTU19OT1BSRUZJWAogICAgQ09OVFJPTCAgICAgICAgICIiLDExMDEsIlN0YXRpYyIsU1NfTEVGVE5PV09SRFdSQVAgfCBTU19OT1BSRUZJWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQLDUyLDYwLDIyNCwxMAogICAgTFRFWFQgICAgICAgICAgICJNZWdqZWd5eulzOiIsMTA5NiwxNiw3MiwzNiwxMCxTU19OT1BSRUZJWAogICAgQ09OVFJPTCAgICAgICAgICIiLDExMDAsIlN0YXRpYyIsU1NfTEVGVE5PV09SRFdSQVAgfCBTU19OT1BSRUZJWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQLDUyLDcyLDE1MiwxMAogICAgQ09OVFJPTCAgICAgICAgICJOeW9tdGF04XMgJmbhamxiYSIsMTA0MCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCAKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUCB8IFdTX1RBQlNUT1AsMjEyLDcwLDY0LDEyCiAgICBHUk9VUEJPWCAgICAgICAgIkRpYWdyYW0gbnlvbXRhdOFzaSB0YXJ0b23hbnlhIiwxMDcyLDgsOTMsMjkyLDEwNiwKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUAogICAgQ09OVFJPTCAgICAgICAgICImSmVsZW5sZWdpIGRpYWdyYW0iLElEQ19DVVJSRU5UX0RJQUdSQU0sIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLDE2LDEwNywyNTMsMTIKICAgIENPTlRST0wgICAgICAgICAi1nNzJnplcyBkaWFncmFtIGEgbWVnbnlpdG90dCBtb2RlbGxla2JvbCIsCiAgICAgICAgICAgICAgICAgICAgSURDX0FMTF9ESUFHUkFNUywiQnV0dG9uIixCU19BVVRPUkFESU9CVVRUT04sMTYsMTIxLDI1MywKICAgICAgICAgICAgICAgICAgICAxMgogICAgQ09OVFJPTCAgICAgICAgICImS2lqZWz2bHQgZGlhZ3JhbW9rOiIsSURDX1NFTEVDVEVEX0RJQUdSQU1TLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwxMzUsMjUzLDEyCiAgICBMSVNUQk9YICAgICAgICAgSURDX0RJQUdSQU1TLDI4LDE0OSwyNDMsNDMsTEJTX01VTFRJUExFU0VMIHwgCiAgICAgICAgICAgICAgICAgICAgTEJTX05PSU5URUdSQUxIRUlHSFQgfCBXU19WU0NST0xMIHwgV1NfSFNDUk9MTCB8IAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AKICAgIEdST1VQQk9YICAgICAgICAiTelyZXRleulzIixJRENfU1RBVElDLDgsMjAyLDI5Miw1MQogICAgQ09OVFJPTCAgICAgICAgICJOeW9tdGF04XNpIG3pcmV0ICglKToiLElEQ19TQ0FMRV9QRVJDRU5ULCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwxNiwyMTgsMTA0LDEyCiAgICBDT05UUk9MICAgICAgICAgIiZJbGxlc3prZWTpczoiLElEQ19TQ0FMRV9GSVQsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfVEFCU1RPUCwxNiwyMzMsNTgsMTIKICAgIExURVhUICAgICAgICAgICAiTnlvbXRhdOFzaSBt6XJldCAoJSk6IiwxMTAyLDMwLDIxOSw4OCw4LE5PVCBXU19WSVNJQkxFCiAgICBFRElUVEVYVCAgICAgICAgSURDX1BFUkNFTlQsMTM0LDIxNiwzMiwxMixFU19OVU1CRVIKICAgIExURVhUICAgICAgICAgICAib2xkYWwgJnN66WxlczoiLDExMDUsODMsMjM2LDQzLDgKICAgIEVESVRURVhUICAgICAgICBJRENfUEFHRVNNLDEzNSwyMzQsMzIsMTIsRVNfTlVNQkVSCiAgICBSVEVYVCAgICAgICAgICAgIm9sZGFsICZtYWdhczoiLElEQ19TVEFUSUMsMTc3LDIzNSw1NCwxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19QQUdFU04sMjM1LDIzMywzMiwxMixFU19OVU1CRVIKICAgIExURVhUICAgICAgICAgICAiIixJRENfU1RBVElDLDI2MCwyMzUsOCw4LE5PVCBXU19WSVNJQkxFCiAgICBHUk9VUEJPWCAgICAgICAgIk55b210YXThc2kgdGFydG9t4W55IiwxMDc0LDgsMjU3LDEzMiw2NCxXU19HUk9VUAogICAgQ09OVFJPTCAgICAgICAgICLWJnNzemVzIiwxMDU2LCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxNiwyNzIsNDcsMTIKICAgIENPTlRST0wgICAgICAgICAiJk9sZGFsYWsiLDEwNTgsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OLDE2LDI4Niw0OSwxMgogICAgUlRFWFQgICAgICAgICAgICIma2V6ZG86IiwxMDg5LDEyLDMwNiwyNCw4CiAgICBFRElUVEVYVCAgICAgICAgMTE1MiwzOCwzMDMsMjYsMTIsRVNfTlVNQkVSIHwgV1NfR1JPVVAKICAgIFJURVhUICAgICAgICAgICAiJmJlZmVqZXpvOiIsMTA5MCw2NiwzMDMsMzMsOAogICAgRURJVFRFWFQgICAgICAgIDExNTMsMTAzLDMwMiwyNywxMixFU19OVU1CRVIgfCBXU19HUk9VUAogICAgR1JPVVBCT1ggICAgICAgICJN4XNvbGF0b2siLDEwNzMsMTQ3LDI1NywxNTMsNjQsV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiJk3hc29sYXRvayBzeuFtYToiLDEwOTIsMTYzLDI3Myw2OCw4CiAgICBFRElUVEVYVCAgICAgICAgMTE1NCwyMzUsMjcxLDMyLDEyLEVTX05VTUJFUiB8IFdTX0dST1VQCiAgICBDT05UUk9MICAgICAgICAgIiZMZXbhbG9nYXThcyIsMTA0MSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMjM3LDMwMCw1NywxMgogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxOTUsMzI4LDQ4LDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIk3pZ3NlIixJRENBTkNFTCwyNTIsMzI4LDQ4LDE0CiAgICBJQ09OICAgICAgICAgICAgIiIsMTA4NiwxNTYsMjkwLDcwLDI1LFdTX0dST1VQCkVORAoKMTUzOSBESUFMT0cgRElTQ0FSREFCTEUgIDMyLCAzMiwgMjg4LCAxNzgKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IERTXzNETE9PSyB8IERTX0NPTlRFWFRIRUxQIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgCiAgICBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJOeW9tdGF04XNpIGJl4Wxs7XThcyIKRk9OVCA4LCAiTVMgU2FucyBTZXJpZiIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiTnlvbXRhdPMiLDEwNzUsOCw0LDI3Miw4NCxXU19HUk9VUAogICAgTFRFWFQgICAgICAgICAgICImTul2OiIsMTA5MywxNiwyMCwzNiw4CiAgICBDT01CT0JPWCAgICAgICAgMTEzNiw1MiwxOCwxNTIsMTUyLENCU19EUk9QRE9XTkxJU1QgfCBDQlNfU09SVCB8IAogICAgICAgICAgICAgICAgICAgIFdTX1ZTQ1JPTEwgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiJlR1bGFqZG9uc+Fnb2siLDEwMjUsMjEyLDE3LDYwLDE0LFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIsFsbGFwb3Q6IiwxMDk1LDE2LDM2LDM2LDEwLFNTX05PUFJFRklYCiAgICBDT05UUk9MICAgICAgICAgIiIsMTA5OSwiU3RhdGljIixTU19MRUZUTk9XT1JEV1JBUCB8IFNTX05PUFJFRklYIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfR1JPVVAsNTIsMzYsMjI0LDEwCiAgICBMVEVYVCAgICAgICAgICAgIlTtcHVzOiIsMTA5NCwxNiw0OCwzNiwxMCxTU19OT1BSRUZJWAogICAgQ09OVFJPTCAgICAgICAgICIiLDEwOTgsIlN0YXRpYyIsU1NfTEVGVE5PV09SRFdSQVAgfCBTU19OT1BSRUZJWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQLDUyLDQ4LDIyNCwxMAogICAgTFRFWFQgICAgICAgICAgICJIZWx5OiIsMTA5NywxNiw2MCwzNiwxMCxTU19OT1BSRUZJWAogICAgQ09OVFJPTCAgICAgICAgICIiLDExMDEsIlN0YXRpYyIsU1NfTEVGVE5PV09SRFdSQVAgfCBTU19OT1BSRUZJWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQLDUyLDYwLDIyNCwxMAogICAgTFRFWFQgICAgICAgICAgICJNZWdqZWd5eulzOiIsMTA5NiwxNiw3MiwzNiwxMCxTU19OT1BSRUZJWAogICAgQ09OVFJPTCAgICAgICAgICIiLDExMDAsIlN0YXRpYyIsU1NfTEVGVE5PV09SRFdSQVAgfCBTU19OT1BSRUZJWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQLDUyLDcyLDIyNCwxMAogICAgR1JPVVBCT1ggICAgICAgICJQYXDtciIsMTA3Myw4LDkyLDE2NCw1NixXU19HUk9VUAogICAgTFRFWFQgICAgICAgICAgICImTelyZXQ6IiwxMDg5LDE2LDEwOCwzNiw4CiAgICBDT01CT0JPWCAgICAgICAgMTEzNyw1MiwxMDYsMTEyLDExMixDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCAKICAgICAgICAgICAgICAgICAgICBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIiZGb3Jy4XM6IiwxMDkwLDE2LDEyOCwzNiw4CiAgICBDT01CT0JPWCAgICAgICAgMTEzOCw1MiwxMjYsMTEyLDExMixDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCAKICAgICAgICAgICAgICAgICAgICBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBHUk9VUEJPWCAgICAgICAgIlTham9s4XMiLDEwNzIsMTgwLDkyLDEwMCw1NixXU19HUk9VUAogICAgSUNPTiAgICAgICAgICAgICIiLDEwODQsMTk1LDExMiwxOCwyMCxXU19HUk9VUAogICAgQ09OVFJPTCAgICAgICAgICImwWxs8yIsMTA1NiwiQnV0dG9uIixCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCB8IAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMjI0LDEwNiw1MiwxMgogICAgQ09OVFJPTCAgICAgICAgICImRmVrdm8iLDEwNTcsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OLDIyNCwxMjYsNTIsMTIKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTgwLDE1Niw0OCwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICJN6WdzZSIsSURDQU5DRUwsMjMyLDE1Niw0OCwxNApFTkQKCjE1NDYgRElBTE9HIERJU0NBUkRBQkxFICAzMiwgMzIsIDI0MCwgMjQwClNUWUxFIERTX01PREFMRlJBTUUgfCBEU18zRExPT0sgfCBEU19DT05URVhUSEVMUCB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IAogICAgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiT2xkYWxiZeFsbO104XMiCkZPTlQgOCwgIk1TIFNhbnMgU2VyaWYiCkJFR0lOCiAgICBDT05UUk9MICAgICAgICAgIiIsMTA4MCwiU3RhdGljIixTU19XSElURVJFQ1QgfCBXU19HUk9VUCw4MCw4LDgwLDgwCiAgICBDT05UUk9MICAgICAgICAgIiIsMTA4MSwiU3RhdGljIixTU19HUkFZUkVDVCB8IFdTX0dST1VQLDE2MCwxMiw0LDgwCiAgICBDT05UUk9MICAgICAgICAgIiIsMTA4MiwiU3RhdGljIixTU19HUkFZUkVDVCB8IFdTX0dST1VQLDg0LDg4LDgwLDQKICAgIEdST1VQQk9YICAgICAgICAiUGFw7XIiLDEwNzMsOCw5NiwyMjQsNTYsV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiJk3pcmV0OiIsMTA4OSwxNiwxMTIsMzYsOAogICAgQ09NQk9CT1ggICAgICAgIDExMzcsNjQsMTEwLDE2MCwxNjAsQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVlNDUk9MTCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICImRm9ycuFzOiIsMTA5MCwxNiwxMzIsMzYsOAogICAgQ09NQk9CT1ggICAgICAgIDExMzgsNjQsMTMwLDE2MCwxNjAsQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVlNDUk9MTCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICJU4WpvbOFzIiwxMDcyLDgsMTU2LDY0LDU2LFdTX0dST1VQCiAgICBDT05UUk9MICAgICAgICAgIibBbGzzIiwxMDU2LCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxNiwxNzAsNTIsMTIKICAgIENPTlRST0wgICAgICAgICAiJkZla3ZvIiwxMDU3LCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiwxNiwxOTAsNTIsMTIKICAgIEdST1VQQk9YICAgICAgICAiTWFyZ/NrIiwxMDc1LDgwLDE1NiwxNTIsNTYsV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiJkJhbDoiLDExMDIsODgsMTcyLDMyLDgKICAgIEVESVRURVhUICAgICAgICAxMTU1LDEyMCwxNzAsMjgsMTIsV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiJkpvYmI6IiwxMTAzLDE2NCwxNzIsMzIsOAogICAgRURJVFRFWFQgICAgICAgIDExNTcsMTk2LDE3MCwyOCwxMixXU19HUk9VUAogICAgTFRFWFQgICAgICAgICAgICImRmVsc286IiwxMTA0LDg4LDE5MiwzMiw4CiAgICBFRElUVEVYVCAgICAgICAgMTE1NiwxMjAsMTkwLDI4LDEyLFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIiZBbHPzOiIsMTEwNSwxNjQsMTkyLDMyLDgKICAgIEVESVRURVhUICAgICAgICAxMTU4LDE5NiwxOTAsMjgsMTIsV1NfR1JPVVAKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssODAsMjIwLDQ4LDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIk3pZ3NlIixJRENBTkNFTCwxMzIsMjIwLDQ4LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIiZOeW9tdGF08y4uLiIsMTAyNiwxODQsMjIwLDQ4LDE0CkVORAoKMTIzNCBESUFMT0cgRElTQ0FSREFCTEUgIDMyLCAzMiwgMjg4LCAxODYKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IERTXzNETE9PSyB8IERTX0NPTlRFWFRIRUxQIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgCiAgICBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJOeW9tdGF04XMiCkZPTlQgOCwgIk1TIFNhbnMgU2VyaWYiCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIk55b210YXTzIiwxMDc1LDgsNCwyNzIsODQsV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiJk7pdjoiLDEwOTMsMTYsMjAsMzYsOAogICAgQ09NQk9CT1ggICAgICAgIDExMzksNTIsMTgsMTUyLDE1MixDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCAKICAgICAgICAgICAgICAgICAgICBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIiZUdWxhamRvbnPhZ29rIiwxMDI1LDIxMiwxNyw2MCwxNCxXU19HUk9VUAogICAgTFRFWFQgICAgICAgICAgICLBbGxhcG90OiIsMTA5NSwxNiwzNiwzNiwxMCxTU19OT1BSRUZJWAogICAgQ09OVFJPTCAgICAgICAgICIiLDEwOTksIlN0YXRpYyIsU1NfTEVGVE5PV09SRFdSQVAgfCBTU19OT1BSRUZJWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQLDUyLDM2LDIyNCwxMAogICAgTFRFWFQgICAgICAgICAgICJU7XB1czoiLDEwOTQsMTYsNDgsMzYsMTAsU1NfTk9QUkVGSVgKICAgIENPTlRST0wgICAgICAgICAiIiwxMDk4LCJTdGF0aWMiLFNTX0xFRlROT1dPUkRXUkFQIHwgU1NfTk9QUkVGSVggfCAKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUCw1Miw0OCwyMjQsMTAKICAgIExURVhUICAgICAgICAgICAiSGVseToiLDEwOTcsMTYsNjAsMzYsMTAsU1NfTk9QUkVGSVgKICAgIENPTlRST0wgICAgICAgICAiIiwxMTAxLCJTdGF0aWMiLFNTX0xFRlROT1dPUkRXUkFQIHwgU1NfTk9QUkVGSVggfCAKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUCw1Miw2MCwyMjQsMTAKICAgIExURVhUICAgICAgICAgICAiTWVnamVneXrpczoiLDEwOTYsMTYsNzIsMzYsMTAsU1NfTk9QUkVGSVgKICAgIENPTlRST0wgICAgICAgICAiIiwxMTAwLCJTdGF0aWMiLFNTX0xFRlROT1dPUkRXUkFQIHwgU1NfTk9QUkVGSVggfCAKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUCw1Miw3MiwxNTIsMTAKICAgIENPTlRST0wgICAgICAgICAiTnlvbXRhdOFzICZm4WpsYmEiLDEwNDAsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfR1JPVVAgfCBXU19UQUJTVE9QLDIxMiw3MCw2NCwxMgogICAgR1JPVVBCT1ggICAgICAgICJOeW9tdGF04XNpIHRhcnRvbeFueSIsMTA3Miw4LDkyLDE0NCw2NCxXU19HUk9VUAogICAgQ09OVFJPTCAgICAgICAgICLWJnNzemVzIiwxMDU2LCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxNiwxMDYsNjQsMTIKICAgIENPTlRST0wgICAgICAgICAiJk9sZGFsYWsiLDEwNTgsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OLDE2LDEyMiwzNiwxMgogICAgQ09OVFJPTCAgICAgICAgICImS2lqZWz2bOlzIiwxMDU3LCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiwxNiwxMzgsNjQsCiAgICAgICAgICAgICAgICAgICAgMTIKICAgIFJURVhUICAgICAgICAgICAiJmtlemRvOiIsMTA4OSw1MiwxMjQsMjAsOAogICAgRURJVFRFWFQgICAgICAgIDExNTIsNzQsMTIyLDI2LDEyLEVTX05VTUJFUiB8IFdTX0dST1VQCiAgICBSVEVYVCAgICAgICAgICAgIiZiZWZlamV6bzoiLDEwOTAsMTAwLDEyNCwxNiw4CiAgICBFRElUVEVYVCAgICAgICAgMTE1MywxMTgsMTIyLDI2LDEyLEVTX05VTUJFUiB8IFdTX0dST1VQCiAgICBHUk9VUEJPWCAgICAgICAgIk3hc29sYXRvayIsMTA3MywxNjAsOTIsMTIwLDY0LFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIiZN4XNvbGF0b2sgc3rhbWE6IiwxMDkyLDE2OCwxMDgsNjgsOAogICAgRURJVFRFWFQgICAgICAgIDExNTQsMjQwLDEwNiwzMiwxMixFU19OVU1CRVIgfCBXU19HUk9VUAogICAgSUNPTiAgICAgICAgICAgICIiLDEwODYsMTYyLDEyNCw3NiwyNCxTU19DRU5URVJJTUFHRSB8IFdTX0dST1VQCiAgICBDT05UUk9MICAgICAgICAgIiZMZXbhbG9nYXThcyIsMTA0MSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMjQwLDEzMCwzNiwxMgogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxODAsMTY0LDQ4LDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIk3pZ3NlIixJRENBTkNFTCwyMzIsMTY0LDQ4LDE0CkVORAoKMTU0NyBESUFMT0dFWCAzMiwgMzIsIDI4OSwgMzU0ClNUWUxFIERTX01PREFMRlJBTUUgfCBEU18zRExPT0sgfCBEU19DT05URVhUSEVMUCB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IAogICAgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiTnlvbXRhdOFzIgpGT05UIDgsICJNUyBTYW5zIFNlcmlmIiwgMCwgMCwgMHgxCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIk55b210YXTzIiwxMDc1LDgsNCwyNzIsODQsV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiJk7pdjoiLDEwOTMsMTYsMjEsMzYsOAogICAgQ09NQk9CT1ggICAgICAgIDExMzksNTIsMTgsMTUyLDE1MixDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCAKICAgICAgICAgICAgICAgICAgICBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIiZUdWxhamRvbnPhZ29rLi4uIiwxMDI1LDIxMiwxNyw2MCwxNCxXU19HUk9VUAogICAgTFRFWFQgICAgICAgICAgICLBbGxhcG90OiIsMTA5NSwxNiwzNiwzNiwxMCxTU19OT1BSRUZJWAogICAgQ09OVFJPTCAgICAgICAgICIiLDEwOTksIlN0YXRpYyIsU1NfTEVGVE5PV09SRFdSQVAgfCBTU19OT1BSRUZJWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQLDUyLDM2LDIyNCwxMAogICAgTFRFWFQgICAgICAgICAgICJU7XB1czoiLDEwOTQsMTYsNDgsMzYsMTAsU1NfTk9QUkVGSVgKICAgIENPTlRST0wgICAgICAgICAiIiwxMDk4LCJTdGF0aWMiLFNTX0xFRlROT1dPUkRXUkFQIHwgU1NfTk9QUkVGSVggfCAKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUCw1Miw0OCwyMjQsMTAKICAgIExURVhUICAgICAgICAgICAiSGVseToiLDEwOTcsMTYsNjAsMzYsMTAsU1NfTk9QUkVGSVgKICAgIENPTlRST0wgICAgICAgICAiIiwxMTAxLCJTdGF0aWMiLFNTX0xFRlROT1dPUkRXUkFQIHwgU1NfTk9QUkVGSVggfCAKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUCw1Miw2MCwyMjQsMTAKICAgIExURVhUICAgICAgICAgICAiTWVnamVneXrpczoiLDEwOTYsMTYsNzIsMzYsMTAsU1NfTk9QUkVGSVgKICAgIENPTlRST0wgICAgICAgICAiIiwxMTAwLCJTdGF0aWMiLFNTX0xFRlROT1dPUkRXUkFQIHwgU1NfTk9QUkVGSVggfCAKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUCw1Miw3MiwxNTIsMTAKICAgIENPTlRST0wgICAgICAgICAiTnlvbXRhdOFzICZm4WpsYmEiLDEwNDAsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfR1JPVVAgfCBXU19UQUJTVE9QLDIxMiw3MCw2NCwxMgogICAgR1JPVVBCT1ggICAgICAgICJEaWFncmFtIG55b210YXThc2kgdGFydG9t4W55YSIsMTA3Miw4LDkzLDI3MiwxMDYsCiAgICAgICAgICAgICAgICAgICAgV1NfR1JPVVAKICAgIENPTlRST0wgICAgICAgICAiJkplbGVubGVnaSBkaWFncmFtIixJRENfQ1VSUkVOVF9ESUFHUkFNLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwxNiwxMDcsMjUzLDEyCiAgICBDT05UUk9MICAgICAgICAgItZzcyZ6ZXMgZGlhZ3JhbSBhIG1lZ255aXRvdHQgbW9kZWxsZWtib2wiLAogICAgICAgICAgICAgICAgICAgIElEQ19BTExfRElBR1JBTVMsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OLDE2LDEyMSwyNTMsCiAgICAgICAgICAgICAgICAgICAgMTIKICAgIENPTlRST0wgICAgICAgICAiJktpamVs9mx0IGRpYWdyYW1vazoiLElEQ19TRUxFQ1RFRF9ESUFHUkFNUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMTYsMTM1LDI1MywxMgogICAgTElTVEJPWCAgICAgICAgIElEQ19ESUFHUkFNUywyOCwxNDksMjQzLDQzLExCU19NVUxUSVBMRVNFTCB8IAogICAgICAgICAgICAgICAgICAgIExCU19OT0lOVEVHUkFMSEVJR0hUIHwgV1NfVlNDUk9MTCB8IFdTX0hTQ1JPTEwgfCAKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QCiAgICBHUk9VUEJPWCAgICAgICAgIk3pcmV0ZXrpcyIsSURDX1NUQVRJQyw4LDIwMiwyNzIsNTEKICAgIENPTlRST0wgICAgICAgICAiTnlvbXRhdOFzaSBt6XJldCAoJSk6IixJRENfU0NBTEVfUEVSQ0VOVCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsMTYsMjE4LDEwNCwxMgogICAgQ09OVFJPTCAgICAgICAgICImSWxsZXN6a2Vk6XM6IixJRENfU0NBTEVfRklULCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX1RBQlNUT1AsMTYsMjMzLDM0LDEyCiAgICBMVEVYVCAgICAgICAgICAgIk55b210YXThc2kgbelyZXQgKCUpOiIsMTEwMiwzMCwyMTksODgsOCxOT1QgV1NfVklTSUJMRQogICAgRURJVFRFWFQgICAgICAgIElEQ19QRVJDRU5ULDEyMiwyMTcsMzIsMTIsRVNfTlVNQkVSCiAgICBMVEVYVCAgICAgICAgICAgIm9sZGFsICZzeulsZXM6IiwxMTA1LDcxLDIzNSw0Myw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1BBR0VTTSwxMjIsMjMzLDMyLDEyLEVTX05VTUJFUgogICAgUlRFWFQgICAgICAgICAgICJvbGRhbCAmbWFnYXM6IixJRENfU1RBVElDLDE3NywyMzUsNTQsMTAKICAgIEVESVRURVhUICAgICAgICBJRENfUEFHRVNOLDIzNSwyMzMsMzIsMTIsRVNfTlVNQkVSCiAgICBMVEVYVCAgICAgICAgICAgIiIsSURDX1NUQVRJQywyNjAsMjM1LDcsOCxOT1QgV1NfVklTSUJMRQogICAgR1JPVVBCT1ggICAgICAgICJOeW9tdGF04XNpIHRhcnRvbeFueSIsMTA3NCw4LDI1NywxMzIsNjQsV1NfR1JPVVAKICAgIENPTlRST0wgICAgICAgICAi1iZzc3plcyIsMTA1NiwiQnV0dG9uIixCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCB8IAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTYsMjcyLDQ3LDEyCiAgICBDT05UUk9MICAgICAgICAgIiZPbGRhbGFrIiwxMDU4LCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiwxNiwyODYsNDYsMTIKICAgIFJURVhUICAgICAgICAgICAiJmtlemRvOiIsMTA4OSwyNCwzMDIsMjAsOAogICAgRURJVFRFWFQgICAgICAgIDExNTIsNDgsMzAwLDI2LDEyLEVTX05VTUJFUiB8IFdTX0dST1VQCiAgICBSVEVYVCAgICAgICAgICAgIiZiZWZlamV6bzoiLDEwOTAsNzYsMzAyLDIwLDgKICAgIEVESVRURVhUICAgICAgICAxMTUzLDEwMCwzMDAsMjcsMTIsRVNfTlVNQkVSIHwgV1NfR1JPVVAKICAgIEdST1VQQk9YICAgICAgICAiTeFzb2xhdG9rIiwxMDczLDE0NywyNTcsMTMyLDY0LFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIiZN4XNvbGF0b2sgc3rhbWE6IiwxMDkyLDE2MywyNzMsNjgsOAogICAgRURJVFRFWFQgICAgICAgIDExNTQsMjM1LDI3MSwzMiwxMixFU19OVU1CRVIgfCBXU19HUk9VUAogICAgQ09OVFJPTCAgICAgICAgICImTGV24WxvZ2F04XMiLDEwNDEsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCAKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDIzNSwyOTUsMzYsMTIKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTgwLDMyOCw0OCwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICJN6WdzZSIsSURDQU5DRUwsMjMyLDMyOCw0OCwxNAogICAgSUNPTiAgICAgICAgICAgICIiLDEwODYsMTU2LDI5MCw3MCwyNSxXU19HUk9VUApFTkQKCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLwovLyBERVNJR05JTkZPCi8vCgojaWZkZWYgQVBTVFVESU9fSU5WT0tFRApHVUlERUxJTkVTIERFU0lHTklORk8gRElTQ0FSREFCTEUgCkJFR0lOCiAgICAxNTM4LCBESUFMT0cKICAgIEJFR0lOCiAgICAgICAgUklHSFRNQVJHSU4sIDMwMAogICAgICAgIEJPVFRPTU1BUkdJTiwgMzQyCiAgICBFTkQKCiAgICAxNTQ3LCBESUFMT0cKICAgIEJFR0lOCiAgICAgICAgUklHSFRNQVJHSU4sIDI4NgogICAgICAgIEJPVFRPTU1BUkdJTiwgMzQyCiAgICBFTkQKRU5ECiNlbmRpZiAgICAvLyBBUFNUVURJT19JTlZPS0VECgojZW5kaWYgICAgLy8gSHVuZ2FyaWFuIHJlc291cmNlcwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIEVuZ2xpc2ggKFUuUy4pIHJlc291cmNlcwoKI2lmICFkZWZpbmVkKEFGWF9SRVNPVVJDRV9ETEwpIHx8IGRlZmluZWQoQUZYX1RBUkdfRU5VKQojaWZkZWYgX1dJTjMyCkxBTkdVQUdFIExBTkdfRU5HTElTSCwgU1VCTEFOR19FTkdMSVNIX1VTCiNwcmFnbWEgY29kZV9wYWdlKDEyNTIpCiNlbmRpZiAvL19XSU4zMgoKI2lmZGVmIEFQU1RVRElPX0lOVk9LRUQKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8KLy8gVEVYVElOQ0xVREUKLy8KCjEgVEVYVElOQ0xVREUgRElTQ0FSREFCTEUgCkJFR0lOCiAgICAicmVzb3VyY2UuaFwwIgpFTkQKCjIgVEVYVElOQ0xVREUgRElTQ0FSREFCTEUgCkJFR0lOCiAgICAiI2luY2x1ZGUgIiJhZnhyZXMuaCIiXHJcbiIKICAgICJcMCIKRU5ECgozIFRFWFRJTkNMVURFIERJU0NBUkRBQkxFIApCRUdJTgogICAgIiNkZWZpbmUgX0FGWF9OT19TUExJVFRFUl9SRVNPVVJDRVNcclxuIgogICAgIiNkZWZpbmUgX0FGWF9OT19PTEVfUkVTT1VSQ0VTXHJcbiIKICAgICIjZGVmaW5lIF9BRlhfTk9fVFJBQ0tFUl9SRVNPVVJDRVNcclxuIgogICAgIiNkZWZpbmUgX0FGWF9OT19QUk9QRVJUWV9SRVNPVVJDRVNcclxuIgogICAgIlxyXG4iCiAgICAiI2lmICFkZWZpbmVkKEFGWF9SRVNPVVJDRV9ETEwpIHx8IGRlZmluZWQoQUZYX1RBUkdfRU5VKVxyXG4iCiAgICAiI2lmZGVmIF9XSU4zMlxyXG4iCiAgICAiTEFOR1VBR0UgOSwgMVxyXG4iCiAgICAiI3ByYWdtYSBjb2RlX3BhZ2UoMTI1MilcclxuIgogICAgIiNlbmRpZiAvL19XSU4zMlxyXG4iCiAgICAiI2luY2x1ZGUgIiJyZXNcXERpYWdyYW1QcmludC5yYzIiIiAgLy8gbm9uLU1pY3Jvc29mdCBWaXN1YWwgQysrIGVkaXRlZCByZXNvdXJjZXNcclxuIgogICAgIiNpbmNsdWRlICIiYWZ4cmVzLnJjIiIgICAgICAgICAvLyBTdGFuZGFyZCBjb21wb25lbnRzXHJcbiIKICAgICIjZW5kaWZcclxuIgogICAgIlwwIgpFTkQKCiNlbmRpZiAgICAvLyBBUFNUVURJT19JTlZPS0VECgojZW5kaWYgICAgLy8gRW5nbGlzaCAoVS5TLikgcmVzb3VyY2VzCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgoKCiNpZm5kZWYgQVBTVFVESU9fSU5WT0tFRAovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLwovLyBHZW5lcmF0ZWQgZnJvbSB0aGUgVEVYVElOQ0xVREUgMyByZXNvdXJjZS4KLy8KI2RlZmluZSBfQUZYX05PX1NQTElUVEVSX1JFU09VUkNFUwojZGVmaW5lIF9BRlhfTk9fT0xFX1JFU09VUkNFUwojZGVmaW5lIF9BRlhfTk9fVFJBQ0tFUl9SRVNPVVJDRVMKI2RlZmluZSBfQUZYX05PX1BST1BFUlRZX1JFU09VUkNFUwoKI2lmICFkZWZpbmVkKEFGWF9SRVNPVVJDRV9ETEwpIHx8IGRlZmluZWQoQUZYX1RBUkdfRU5VKQojaWZkZWYgX1dJTjMyCkxBTkdVQUdFIDksIDEKI3ByYWdtYSBjb2RlX3BhZ2UoMTI1MikKI2VuZGlmIC8vX1dJTjMyCiNpbmNsdWRlICJyZXNcRGlhZ3JhbVByaW50LnJjMiIgIC8vIG5vbi1NaWNyb3NvZnQgVmlzdWFsIEMrKyBlZGl0ZWQgcmVzb3VyY2VzCiNpbmNsdWRlICJhZnhyZXMucmMiICAgICAgICAgLy8gU3RhbmRhcmQgY29tcG9uZW50cwojZW5kaWYKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiNlbmRpZiAgICAvLyBub3QgQVBTVFVESU9fSU5WT0tFRAoK