Ly9NaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBnZW5lcmF0ZWQgcmVzb3VyY2Ugc2NyaXB0LgovLwojaW5jbHVkZSAicmVzb3VyY2UuaCIKCiNkZWZpbmUgQVBTVFVESU9fUkVBRE9OTFlfU1lNQk9MUwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLwovLyBHZW5lcmF0ZWQgZnJvbSB0aGUgVEVYVElOQ0xVREUgMiByZXNvdXJjZS4KLy8KI2luY2x1ZGUgImFmeHJlcy5oIgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KI3VuZGVmIEFQU1RVRElPX1JFQURPTkxZX1NZTUJPTFMKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIEZyZW5jaCAoRnJhbmNlKSByZXNvdXJjZXMKCiNpZiAhZGVmaW5lZChBRlhfUkVTT1VSQ0VfRExMKSB8fCBkZWZpbmVkKEFGWF9UQVJHX0ZSQSkKI2lmZGVmIF9XSU4zMgpMQU5HVUFHRSBMQU5HX0ZSRU5DSCwgU1VCTEFOR19GUkVOQ0gKI3ByYWdtYSBjb2RlX3BhZ2UoMTI1MikKI2VuZGlmIC8vX1dJTjMyCgojaWZkZWYgQVBTVFVESU9fSU5WT0tFRAovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLwovLyBURVhUSU5DTFVERQovLwoKMSBURVhUSU5DTFVERSBESVNDQVJEQUJMRSAKQkVHSU4KICAgICJyZXNvdXJjZS5oXDAiCkVORAoKMiBURVhUSU5DTFVERSBESVNDQVJEQUJMRSAKQkVHSU4KICAgICIjaW5jbHVkZSAiImFmeHJlcy5oIiJcclxuIgogICAgIlwwIgpFTkQKCjMgVEVYVElOQ0xVREUgRElTQ0FSREFCTEUgCkJFR0lOCiAgICAiI2RlZmluZSBfQUZYX05PX1NQTElUVEVSX1JFU09VUkNFU1xyXG4iCiAgICAiI2RlZmluZSBfQUZYX05PX09MRV9SRVNPVVJDRVNcclxuIgogICAgIiNkZWZpbmUgX0FGWF9OT19UUkFDS0VSX1JFU09VUkNFU1xyXG4iCiAgICAiI2RlZmluZSBfQUZYX05PX1BST1BFUlRZX1JFU09VUkNFU1xyXG4iCiAgICAiXHJcbiIKICAgICIjaWYgIWRlZmluZWQoQUZYX1JFU09VUkNFX0RMTCkgfHwgZGVmaW5lZChBRlhfVEFSR19GUkEpXHJcbiIKICAgICIjaWZkZWYgX1dJTjMyXHJcbiIKICAgICJMQU5HVUFHRSAxMiwgMVxyXG4iCiAgICAiI3ByYWdtYSBjb2RlX3BhZ2UoMTI1MilcclxuIgogICAgIiNlbmRpZiAvL19XSU4zMlxyXG4iCiAgICAiI2luY2x1ZGUgIiJyZXNcXERpYWdyYW1QcmludC5yYzIiIiAgLy8gbm9uLU1pY3Jvc29mdCBWaXN1YWwgQysrIGVkaXRlZCByZXNvdXJjZXNcclxuIgogICAgIiNpbmNsdWRlICIiYWZ4cmVzLnJjIiIgICAgICAgICAvLyBTdGFuZGFyZCBjb21wb25lbnRzXHJcbiIKICAgICIjZW5kaWZcclxuIgogICAgIlwwIgpFTkQKCiNlbmRpZiAgICAvLyBBUFNUVURJT19JTlZPS0VECgoKI2lmbmRlZiBfTUFDCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vCi8vIFZlcnNpb24KLy8KClZTX1ZFUlNJT05fSU5GTyBWRVJTSU9OSU5GTwogRklMRVZFUlNJT04gMSwwLDAsMQogUFJPRFVDVFZFUlNJT04gMSwwLDAsMQogRklMRUZMQUdTTUFTSyAweDNmTAojaWZkZWYgX0RFQlVHCiBGSUxFRkxBR1MgMHgxTAojZWxzZQogRklMRUZMQUdTIDB4MEwKI2VuZGlmCiBGSUxFT1MgMHg0TAogRklMRVRZUEUgMHgyTAogRklMRVNVQlRZUEUgMHgwTApCRUdJTgogICAgQkxPQ0sgIlN0cmluZ0ZpbGVJbmZvIgogICAgQkVHSU4KICAgICAgICBCTE9DSyAiMDQwOTA0YjAiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgVkFMVUUgIkNvbW1lbnRzIiwgIlwwIgogICAgICAgICAgICBWQUxVRSAiQ29tcGFueU5hbWUiLCAiSUJNIENvcnBvcmF0aW9uXDAiCiAgICAgICAgICAgIFZBTFVFICJGaWxlRGVzY3JpcHRpb24iLCAiRGlhZ3JhbVByaW50IERMTFwwIgogICAgICAgICAgICBWQUxVRSAiRmlsZVZlcnNpb24iLCAiMSwgMCwgMCwgMVwwIgogICAgICAgICAgICBWQUxVRSAiSW50ZXJuYWxOYW1lIiwgIkRpYWdyYW1QcmludFwwIgogICAgICAgICAgICBWQUxVRSAiTGVnYWxDb3B5cmlnaHQiLCAiTGljZW5zZWQgTWF0ZXJpYWxzIC0tIFByb3BlcnR5IG9mIElCTSAtIChDKSBDb3B5cmlnaHQgSUJNIENvcnBvcmF0aW9uLCAyMDAzLDIwMDggLSBVUyBHb3Zlcm5tZW50IFVzZXJzIFJlc3RyaWN0ZWQgUmlnaHRzIC0gVXNlLCBkdXBsaWNhdGlvbiBvciBkaXNjbG9zdXJlIHJlc3RyaWN0ZWQgYnkgR1NBIEFEUCBTY2hlZHVsZSBDb250cmFjdCB3aXRoIElCTSBDb3JwLlwwIgogICAgICAgICAgICBWQUxVRSAiTGVnYWxUcmFkZW1hcmtzIiwgIihSKSBJQk0gaXMgYSByZWdpc3RlcmVkIHRyYWRlbWFyayBvZiBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uLiAgV2luZG93cyhUTSkgaXMgYSB0cmFkZW1hcmsgb2YgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlwwIgogICAgICAgICAgICBWQUxVRSAiT3JpZ2luYWxGaWxlbmFtZSIsICJEaWFncmFtUHJpbnQuRExMXDAiCiAgICAgICAgICAgIFZBTFVFICJQcml2YXRlQnVpbGQiLCAiXDAiCiAgICAgICAgICAgIFZBTFVFICJQcm9kdWN0TmFtZSIsICJEaWFncmFtUHJpbnQgRHluYW1pYyBMaW5rIExpYnJhcnlcMCIKICAgICAgICAgICAgVkFMVUUgIlByb2R1Y3RWZXJzaW9uIiwgIjIsIDEsIDAsIDBcMCIKICAgICAgICAgICAgVkFMVUUgIlNwZWNpYWxCdWlsZCIsICJcMCIKICAgICAgICBFTkQKICAgIEVORAogICAgQkxPQ0sgIlZhckZpbGVJbmZvIgogICAgQkVHSU4KICAgICAgICBWQUxVRSAiVHJhbnNsYXRpb24iLCAweDQwOSwgMTIwMAogICAgRU5ECkVORAoKI2VuZGlmICAgIC8vICFfTUFDCgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8KLy8gRGlhbG9nCi8vCgoxNTM4IERJQUxPRyBESVNDQVJEQUJMRSAgMzIsIDMyLCAzMTIsIDM1NApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfM0RMT09LIHwgRFNfQ09OVEVYVEhFTFAgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCAKICAgIFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkltcHJpbWVyIgpGT05UIDgsICJNUyBTYW5zIFNlcmlmIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICJJbXByaW1hbnRlIiwxMDc1LDgsNCwyOTcsODQsV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiJk5vbSA6IiwxMDkzLDE2LDIxLDM2LDgKICAgIENPTUJPQk9YICAgICAgICAxMTM5LDUyLDE4LDE1MiwxNTIsQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVlNDUk9MTCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICImUHJvcHJp6XTpcy4uLiIsMTAyNSwyMTIsMTcsNjAsMTQsV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiRXRhdCA6IiwxMDk1LDE2LDM2LDI1LDEwLFNTX05PUFJFRklYCiAgICBDT05UUk9MICAgICAgICAgIiIsMTA5OSwiU3RhdGljIixTU19MRUZUTk9XT1JEV1JBUCB8IFNTX05PUFJFRklYIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfR1JPVVAsNTIsMzYsMjI0LDEwCiAgICBMVEVYVCAgICAgICAgICAgIlR5cGUgOiIsMTA5NCwxNiw0OCwyMywxMCxTU19OT1BSRUZJWAogICAgQ09OVFJPTCAgICAgICAgICIiLDEwOTgsIlN0YXRpYyIsU1NfTEVGVE5PV09SRFdSQVAgfCBTU19OT1BSRUZJWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQLDUyLDQ4LDIyNCwxMAogICAgTFRFWFQgICAgICAgICAgICJP+SA6IiwxMDk3LDE2LDYwLDIwLDEwLFNTX05PUFJFRklYCiAgICBDT05UUk9MICAgICAgICAgIiIsMTEwMSwiU3RhdGljIixTU19MRUZUTk9XT1JEV1JBUCB8IFNTX05PUFJFRklYIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfR1JPVVAsNTIsNjAsMjI0LDEwCiAgICBMVEVYVCAgICAgICAgICAgIkNvbW1lbnRhaXJlIDoiLDEwOTYsMTYsNzIsNDgsMTAsU1NfTk9QUkVGSVgKICAgIENPTlRST0wgICAgICAgICAiIiwxMTAwLCJTdGF0aWMiLFNTX0xFRlROT1dPUkRXUkFQIHwgU1NfTk9QUkVGSVggfCAKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUCw3Myw3MiwxNTIsMTAKICAgIENPTlRST0wgICAgICAgICAiSW1wcmltZXIgdmVycyB1biBmaWMmaGllciIsMTA0MCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsMjQwLDcxLDQzLDgKICAgIEdST1VQQk9YICAgICAgICAiUGxhZ2UgZCdpbXByZXNzaW9uIGR1IGRpYWdyYW1tZSIsMTA3Miw4LDkzLDI5NiwxMDYsCiAgICAgICAgICAgICAgICAgICAgV1NfR1JPVVAKICAgIENPTlRST0wgICAgICAgICAiRGlhZ3JhbW1lIGFjdCZ1ZWwiLElEQ19DVVJSRU5UX0RJQUdSQU0sIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLDE2LDEwNywyNTMsMTIKICAgIENPTlRST0wgICAgICAgICJUb3VzIGxlcyBkJmlhZ3JhbW1lcyBkZXMgbW9k6GxlcyBvdXZlcnRzIiwKICAgICAgICAgICAgICAgICAgICBJRENfQUxMX0RJQUdSQU1TLCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiwxNiwxMjEsMjUzLAogICAgICAgICAgICAgICAgICAgIDEyCiAgICBDT05UUk9MICAgICAgICAgIkRpYWdyYW1tZXMgc+lsJmVjdGlvbm7pcyA6IixJRENfU0VMRUNURURfRElBR1JBTVMsCiAgICAgICAgICAgICAgICAgICAgIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OLDE2LDEzNSwyNTMsMTIKICAgIExJU1RCT1ggICAgICAgICBJRENfRElBR1JBTVMsMjgsMTQ5LDI0Myw0MyxMQlNfTVVMVElQTEVTRUwgfCAKICAgICAgICAgICAgICAgICAgICBMQlNfTk9JTlRFR1JBTEhFSUdIVCB8IFdTX1ZTQ1JPTEwgfCBXU19IU0NST0xMIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICJNaXNlIOAgbCfpY2hlbGxlIixJRENfU1RBVElDLDgsMjAyLDI5NSw1MQogICAgQ09OVFJPTCAgICAgICAgIlAmb3VyY2VudGFnZSA6IixJRENfU0NBTEVfUEVSQ0VOVCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsMTYsMjE3LDY4LDEyCiAgICBDT05UUk9MICAgICAgICAgIkFkYXB0ZXIgJuAgOiIsSURDX1NDQUxFX0ZJVCwiQnV0dG9uIixCU19BVVRPUkFESU9CVVRUT04gfCAKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDE2LDIzMyw2MywxMgogICAgRURJVFRFWFQgICAgICAgIElEQ19QRVJDRU5ULDkzLDIxNywzMiwxMixFU19OVU1CRVIKICAgIFJURVhUICAgICAgICAgICAiJkxhcmdldXIgOiIsMTEwNSw4NCwyMzUsMzksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19QQUdFU00sMTI3LDIzMywzMiwxMixFU19OVU1CRVIKICAgIFJURVhUICAgICAgICAgICAiJkhhdXRldXIgOiIsSURDX1NUQVRJQywxOTcsMjM1LDQxLDEwCiAgICBFRElUVEVYVCAgICAgICAgSURDX1BBR0VTTiwyNDUsMjMzLDMyLDEyLEVTX05VTUJFUgogICAgTFRFWFQgICAgICAgICAgICIiLElEQ19TVEFUSUMsMjYwLDIzNSw4LDgsTk9UIFdTX1ZJU0lCTEUKICAgIEdST1VQQk9YICAgICAgICAiUGxhZ2UgZCdpbXByZXNzaW9uIiwxMDc0LDgsMjU3LDEzMiw2OCxXU19HUk9VUAogICAgQ09OVFJPTCAgICAgICAgICImVG91dCIsMTA1NiwiQnV0dG9uIixCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCB8IAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTYsMjcyLDcyLDEyCiAgICBDT05UUk9MICAgICAgICAgIlBhJmdlcyIsMTA1OCwiQnV0dG9uIixCU19BVVRPUkFESU9CVVRUT04sMTYsMjg2LDgxLDEyCiAgICBSVEVYVCAgICAgICAgICAgIiZEZSA6IiwxMDg5LDI0LDMwOCwyMCw4CiAgICBFRElUVEVYVCAgICAgICAgMTE1Miw0OCwzMDYsMjYsMTIsRVNfTlVNQkVSIHwgV1NfR1JPVVAKICAgIFJURVhUICAgICAgICAgICAiJkEgOiIsMTA5MCw3NiwzMDgsMjAsOAogICAgRURJVFRFWFQgICAgICAgIDExNTMsMTAwLDMwNiwyNywxMixFU19OVU1CRVIgfCBXU19HUk9VUAogICAgR1JPVVBCT1ggICAgICAgICJDb3BpZXMiLDEwNzMsMTQ3LDI1NywxNTYsNzAsV1NfR1JPVVAKICAgIFJURVhUICAgICAgICAgICAiTm9tYnJlIGRlICZjb3BpZXMgOiIsMTA5MiwxNjAsMjczLDY4LDgKICAgIEVESVRURVhUICAgICAgICAxMTU0LDIzNSwyNzEsMzIsMTIsRVNfTlVNQkVSIHwgV1NfR1JPVVAKICAgIENPTlRST0wgICAgICAgICJBJnNzZW1ibGVyIiwxMDQxLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwyMzUsMjk1LDYwLDEyCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDIwMywzMzIsNDgsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiQW5udWxlciIsSURDQU5DRUwsMjU1LDMzMiw0OCwxNAogICAgSUNPTiAgICAgICAgICAgICIiLDEwODYsMTU2LDI4OSw3MCwyNSxXU19HUk9VUApFTkQKCjE1MzkgRElBTE9HIERJU0NBUkRBQkxFICAzMiwgMzIsIDI4OCwgMTc4ClNUWUxFIERTX01PREFMRlJBTUUgfCBEU18zRExPT0sgfCBEU19DT05URVhUSEVMUCB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IAogICAgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiQ29uZmlndXJhdGlvbiBkZSBsJ2ltcHJlc3Npb24iCkZPTlQgOCwgIk1TIFNhbnMgU2VyaWYiCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIkltcHJpbWFudGUiLDEwNzUsOCw0LDI3Miw4NCxXU19HUk9VUAogICAgTFRFWFQgICAgICAgICAgICImTm9tIDoiLDEwOTMsMTYsMjAsMzYsOAogICAgQ09NQk9CT1ggICAgICAgIDExMzYsNTIsMTgsMTUyLDE1MixDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCAKICAgICAgICAgICAgICAgICAgICBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIiZQcm9wcmnpdOlzIiwxMDI1LDIxMiwxNyw2MCwxNCxXU19HUk9VUAogICAgTFRFWFQgICAgICAgICAgICJFdGF0IDoiLDEwOTUsMTYsMzYsMzYsMTAsU1NfTk9QUkVGSVgKICAgIENPTlRST0wgICAgICAgICAiIiwxMDk5LCJTdGF0aWMiLFNTX0xFRlROT1dPUkRXUkFQIHwgU1NfTk9QUkVGSVggfCAKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUCw1MiwzNiwyMjQsMTAKICAgIExURVhUICAgICAgICAgICAiVHlwZSA6IiwxMDk0LDE2LDQ4LDM2LDEwLFNTX05PUFJFRklYCiAgICBDT05UUk9MICAgICAgICAgIiIsMTA5OCwiU3RhdGljIixTU19MRUZUTk9XT1JEV1JBUCB8IFNTX05PUFJFRklYIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfR1JPVVAsNTIsNDgsMjI0LDEwCiAgICBMVEVYVCAgICAgICAgICAgIk/5IDoiLDEwOTcsMTYsNjAsMzYsMTAsU1NfTk9QUkVGSVgKICAgIENPTlRST0wgICAgICAgICAiIiwxMTAxLCJTdGF0aWMiLFNTX0xFRlROT1dPUkRXUkFQIHwgU1NfTk9QUkVGSVggfCAKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUCw1Miw2MCwyMjQsMTAKICAgIExURVhUICAgICAgICAgICAiQ29tbWVudGFpcmUgOiIsMTA5NiwxNiw3MiwzNiwxMCxTU19OT1BSRUZJWAogICAgQ09OVFJPTCAgICAgICAgICIiLDExMDAsIlN0YXRpYyIsU1NfTEVGVE5PV09SRFdSQVAgfCBTU19OT1BSRUZJWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQLDUyLDcyLDIyNCwxMAogICAgR1JPVVBCT1ggICAgICAgICJQYXBpZXIiLDEwNzMsOCw5MiwxNjQsNTYsV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiVGFpJmxsZSA6IiwxMDg5LDE2LDEwOCwzNiw4CiAgICBDT01CT0JPWCAgICAgICAgMTEzNyw1MiwxMDYsMTEyLDExMixDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCAKICAgICAgICAgICAgICAgICAgICBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIiZTb3VyY2UgOiIsMTA5MCwxNiwxMjgsMzYsOAogICAgQ09NQk9CT1ggICAgICAgIDExMzgsNTIsMTI2LDExMiwxMTIsQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVlNDUk9MTCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICJPcmllbnRhdGlvbiIsMTA3MiwxODAsOTIsMTAwLDU2LFdTX0dST1VQCiAgICBJQ09OICAgICAgICAgICAgIiIsMTA4NCwxOTUsMTEyLDE4LDIwLFdTX0dST1VQCiAgICBDT05UUk9MICAgICAgICAgIlAmb3J0cmFpdCIsMTA1NiwiQnV0dG9uIixCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCB8IAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMjI0LDEwNiw1MiwxMgogICAgQ09OVFJPTCAgICAgICAgICImUGF5c2FnZSIsMTA1NywiQnV0dG9uIixCU19BVVRPUkFESU9CVVRUT04sMjI0LDEyNiw1MiwKICAgICAgICAgICAgICAgICAgICAxMgogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxODAsMTU2LDQ4LDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIkFubnVsZXIiLElEQ0FOQ0VMLDIzMiwxNTYsNDgsMTQKRU5ECgoxNTQ2IERJQUxPRyBESVNDQVJEQUJMRSAgMzIsIDMyLCAyNDAsIDI0MApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfM0RMT09LIHwgRFNfQ09OVEVYVEhFTFAgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCAKICAgIFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIk1pc2UgZW4gcGFnZSIKRk9OVCA4LCAiTVMgU2FucyBTZXJpZiIKQkVHSU4KICAgIENPTlRST0wgICAgICAgICAiIiwxMDgwLCJTdGF0aWMiLFNTX1dISVRFUkVDVCB8IFdTX0dST1VQLDgwLDgsODAsODAKICAgIENPTlRST0wgICAgICAgICAiIiwxMDgxLCJTdGF0aWMiLFNTX0dSQVlSRUNUIHwgV1NfR1JPVVAsMTYwLDEyLDQsODAKICAgIENPTlRST0wgICAgICAgICAiIiwxMDgyLCJTdGF0aWMiLFNTX0dSQVlSRUNUIHwgV1NfR1JPVVAsODQsODgsODAsNAogICAgR1JPVVBCT1ggICAgICAgICJQYXBpZXIiLDEwNzMsOCw5NiwyMjQsNTYsV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiVGFpJmxsZSA6IiwxMDg5LDE2LDExMiwzNiw4CiAgICBDT01CT0JPWCAgICAgICAgMTEzNyw2NCwxMTAsMTYwLDE2MCxDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCAKICAgICAgICAgICAgICAgICAgICBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIiZTb3VyY2UgOiIsMTA5MCwxNiwxMzIsMzYsOAogICAgQ09NQk9CT1ggICAgICAgIDExMzgsNjQsMTMwLDE2MCwxNjAsQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVlNDUk9MTCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICJPcmllbnRhdGlvbiIsMTA3Miw4LDE1Niw2NCw1NixXU19HUk9VUAogICAgQ09OVFJPTCAgICAgICAgICJQJm9ydHJhaXQiLDEwNTYsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAgfCAKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDE2LDE3MCw1MiwxMgogICAgQ09OVFJPTCAgICAgICAgICImUGF5c2FnZSIsMTA1NywiQnV0dG9uIixCU19BVVRPUkFESU9CVVRUT04sMTYsMTkwLDUyLDEyCiAgICBHUk9VUEJPWCAgICAgICAgIk1hcmdlcyIsMTA3NSw4MCwxNTYsMTUyLDU2LFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIiZHYXVjaGUgOiIsMTEwMiw4OCwxNzIsMzIsOAogICAgRURJVFRFWFQgICAgICAgIDExNTUsMTIwLDE3MCwyOCwxMixXU19HUk9VUAogICAgTFRFWFQgICAgICAgICAgICImRHJvaXRlIDoiLDExMDMsMTY0LDE3MiwzMiw4CiAgICBFRElUVEVYVCAgICAgICAgMTE1NywxOTYsMTcwLDI4LDEyLFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIiZIYXV0IDoiLDExMDQsODgsMTkyLDMyLDgKICAgIEVESVRURVhUICAgICAgICAxMTU2LDEyMCwxOTAsMjgsMTIsV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiJkJhcyA6IiwxMTA1LDE2NCwxOTIsMzIsOAogICAgRURJVFRFWFQgICAgICAgIDExNTgsMTk2LDE5MCwyOCwxMixXU19HUk9VUAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSyw4MCwyMjAsNDgsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiQW5udWxlciIsSURDQU5DRUwsMTMyLDIyMCw0OCwxNAogICAgUFVTSEJVVFRPTiAgICAgICImSW1wcmltYW50ZS4uLiIsMTAyNiwxODQsMjIwLDQ4LDE0CkVORAoKMTIzNCBESUFMT0cgRElTQ0FSREFCTEUgIDMyLCAzMiwgMjg4LCAxODYKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IERTXzNETE9PSyB8IERTX0NPTlRFWFRIRUxQIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgCiAgICBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJJbXByaW1lciIKRk9OVCA4LCAiTVMgU2FucyBTZXJpZiIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiSW1wcmltYW50ZSIsMTA3NSw4LDQsMjcyLDg0LFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIiZOb20gOiIsMTA5MywxNiwyMCwzNiw4CiAgICBDT01CT0JPWCAgICAgICAgMTEzOSw1MiwxOCwxNTIsMTUyLENCU19EUk9QRE9XTkxJU1QgfCBDQlNfU09SVCB8IAogICAgICAgICAgICAgICAgICAgIFdTX1ZTQ1JPTEwgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiJlByb3Byael06XMiLDEwMjUsMjEyLDE3LDYwLDE0LFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIkV0YXQgOiIsMTA5NSwxNiwzNiwzNiwxMCxTU19OT1BSRUZJWAogICAgQ09OVFJPTCAgICAgICAgICIiLDEwOTksIlN0YXRpYyIsU1NfTEVGVE5PV09SRFdSQVAgfCBTU19OT1BSRUZJWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQLDUyLDM2LDIyNCwxMAogICAgTFRFWFQgICAgICAgICAgICJUeXBlIDoiLDEwOTQsMTYsNDgsMzYsMTAsU1NfTk9QUkVGSVgKICAgIENPTlRST0wgICAgICAgICAiIiwxMDk4LCJTdGF0aWMiLFNTX0xFRlROT1dPUkRXUkFQIHwgU1NfTk9QUkVGSVggfCAKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUCw1Miw0OCwyMjQsMTAKICAgIExURVhUICAgICAgICAgICAiT/kgOiIsMTA5NywxNiw2MCwzNiwxMCxTU19OT1BSRUZJWAogICAgQ09OVFJPTCAgICAgICAgICIiLDExMDEsIlN0YXRpYyIsU1NfTEVGVE5PV09SRFdSQVAgfCBTU19OT1BSRUZJWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQLDUyLDYwLDIyNCwxMAogICAgTFRFWFQgICAgICAgICAgICJDb21tZW50YWlyZSA6IiwxMDk2LDE2LDcyLDM2LDEwLFNTX05PUFJFRklYCiAgICBDT05UUk9MICAgICAgICAgIiIsMTEwMCwiU3RhdGljIixTU19MRUZUTk9XT1JEV1JBUCB8IFNTX05PUFJFRklYIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfR1JPVVAsNTIsNzIsMTUyLDEwCiAgICBDT05UUk9MICAgICAgICAgIkltcHJpbWVyIHZlcnMgdW4gZmljJmhpZXIiLDEwNDAsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLDIxMiw3MCw2NCwxMgogICAgR1JPVVBCT1ggICAgICAgICJQbGFnZSBkJ2ltcHJlc3Npb24iLDEwNzIsOCw5MiwxNDQsNjQsV1NfR1JPVVAKICAgIENPTlRST0wgICAgICAgICAiJlRvdXQiLDEwNTYsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAgfCAKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDE2LDEwNiw2NCwxMgogICAgQ09OVFJPTCAgICAgICAgICJQYSZnZXMiLDEwNTgsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OLDE2LDEyMiwzNiwxMgogICAgQ09OVFJPTCAgICAgICAgICImU+lsZWN0aW9uIiwxMDU3LCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiwxNiwxMzgsNjQsCiAgICAgICAgICAgICAgICAgICAgMTIKICAgIFJURVhUICAgICAgICAgICAiJkRlIDoiLDEwODksNTIsMTI0LDIwLDgKICAgIEVESVRURVhUICAgICAgICAxMTUyLDc0LDEyMiwyNiwxMixFU19OVU1CRVIgfCBXU19HUk9VUAogICAgUlRFWFQgICAgICAgICAgICImQSA6IiwxMDkwLDEwMCwxMjQsMTYsOAogICAgRURJVFRFWFQgICAgICAgIDExNTMsMTE4LDEyMiwyNiwxMixFU19OVU1CRVIgfCBXU19HUk9VUAogICAgR1JPVVBCT1ggICAgICAgICJDb3BpZXMiLDEwNzMsMTYwLDkyLDEyMCw2NCxXU19HUk9VUAogICAgTFRFWFQgICAgICAgICAgICJOb21icmUgZGUgJmNvcGllcyA6IiwxMDkyLDE2OCwxMDgsNjgsOAogICAgRURJVFRFWFQgICAgICAgIDExNTQsMjQwLDEwNiwzMiwxMixFU19OVU1CRVIgfCBXU19HUk9VUAogICAgSUNPTiAgICAgICAgICAgICIiLDEwODYsMTYyLDEyNCw3NiwyNCxTU19DRU5URVJJTUFHRSB8IFdTX0dST1VQCiAgICBDT05UUk9MICAgICAgICAgIkEmc3NlbWJsZXIiLDEwNDEsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCAKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDI0MCwxMzAsMzYsMTIKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTgwLDE2NCw0OCwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICJBbm51bGVyIixJRENBTkNFTCwyMzIsMTY0LDQ4LDE0CkVORAoKMTU0NyBESUFMT0dFWCAzMiwgMzIsIDI4OSwgMzU0ClNUWUxFIERTX01PREFMRlJBTUUgfCBEU18zRExPT0sgfCBEU19DT05URVhUSEVMUCB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IAogICAgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiSW1wcmltZXIiCkZPTlQgOCwgIk1TIFNhbnMgU2VyaWYiLCAwLCAwLCAweDEKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiSW1wcmltYW50ZSIsMTA3NSw4LDQsMjcyLDg0LFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIiZOb20gOiIsMTA5MywxNiwyMSwzNiw4CiAgICBDT01CT0JPWCAgICAgICAgMTEzOSw1MiwxOCwxNTIsMTUyLENCU19EUk9QRE9XTkxJU1QgfCBDQlNfU09SVCB8IAogICAgICAgICAgICAgICAgICAgIFdTX1ZTQ1JPTEwgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiJlByb3Byael06XMuLi4iLDEwMjUsMjEyLDE3LDYwLDE0LFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIkV0YXQgOiIsMTA5NSwxNiwzNiwzNiwxMCxTU19OT1BSRUZJWAogICAgQ09OVFJPTCAgICAgICAgICIiLDEwOTksIlN0YXRpYyIsU1NfTEVGVE5PV09SRFdSQVAgfCBTU19OT1BSRUZJWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQLDUyLDM2LDIyNCwxMAogICAgTFRFWFQgICAgICAgICAgICJUeXBlIDoiLDEwOTQsMTYsNDgsMzYsMTAsU1NfTk9QUkVGSVgKICAgIENPTlRST0wgICAgICAgICAiIiwxMDk4LCJTdGF0aWMiLFNTX0xFRlROT1dPUkRXUkFQIHwgU1NfTk9QUkVGSVggfCAKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUCw1Miw0OCwyMjQsMTAKICAgIExURVhUICAgICAgICAgICAiT/kgOiIsMTA5NywxNiw2MCwzNiwxMCxTU19OT1BSRUZJWAogICAgQ09OVFJPTCAgICAgICAgICIiLDExMDEsIlN0YXRpYyIsU1NfTEVGVE5PV09SRFdSQVAgfCBTU19OT1BSRUZJWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQLDUyLDYwLDIyNCwxMAogICAgTFRFWFQgICAgICAgICAgICJDb21tZW50YWlyZSA6IiwxMDk2LDE2LDcyLDM2LDEwLFNTX05PUFJFRklYCiAgICBDT05UUk9MICAgICAgICAgIiIsMTEwMCwiU3RhdGljIixTU19MRUZUTk9XT1JEV1JBUCB8IFNTX05PUFJFRklYIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfR1JPVVAsNTIsNzIsMTUyLDEwCiAgICBDT05UUk9MICAgICAgICAgIkltcHJpbWVyIHZlcnMgdW4gZmljJmhpZXIiLDEwNDAsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLDIxMiw3MCw2NCwxMgogICAgR1JPVVBCT1ggICAgICAgICJQbGFnZSBkJ2ltcHJlc3Npb24gZHUgZGlhZ3JhbW1lIiwxMDcyLDgsOTMsMjcyLDEwNiwKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUAogICAgQ09OVFJPTCAgICAgICAgICJEaWFncmFtbWUgYWN0JnVlbCIsSURDX0NVUlJFTlRfRElBR1JBTSwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsMTYsMTA3LDI1MywxMgogICAgQ09OVFJPTCAgICAgICAgICJUb3VzIGxlcyBkJmlhZ3JhbW1lcyBkZXMgbW9k6GxlcyBvdXZlcnRzIiwKICAgICAgICAgICAgICAgICAgICBJRENfQUxMX0RJQUdSQU1TLCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiwxNiwxMjEsMjUzLAogICAgICAgICAgICAgICAgICAgIDEyCiAgICBDT05UUk9MICAgICAgICAgIkRpYWdyYW1tZXMgc+lsJmVjdGlvbm7pcyA6IixJRENfU0VMRUNURURfRElBR1JBTVMsCiAgICAgICAgICAgICAgICAgICAgIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OLDE2LDEzNSwyNTMsMTIKICAgIExJU1RCT1ggICAgICAgICBJRENfRElBR1JBTVMsMjgsMTQ5LDI0Myw0MyxMQlNfTVVMVElQTEVTRUwgfCAKICAgICAgICAgICAgICAgICAgICBMQlNfTk9JTlRFR1JBTEhFSUdIVCB8IFdTX1ZTQ1JPTEwgfCBXU19IU0NST0xMIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICJNaXNlIOAgbCfpY2hlbGxlIixJRENfU1RBVElDLDgsMjAyLDI3Miw1MQogICAgQ09OVFJPTCAgICAgICAgIlAmb3VyY2VudGFnZSA6IixJRENfU0NBTEVfUEVSQ0VOVCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsMTYsMjE4LDEwNCwxMgogICAgQ09OVFJPTCAgICAgICAgICJBZGFwdGVyICbgIDoiLElEQ19TQ0FMRV9GSVQsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxNiwyMzMsMzQsMTIKICAgIExURVhUICAgICAgICAgICJQJm91cmNlbnRhZ2UgOiIsMTEwMiwzMCwyMTksODgsOCxOT1QgV1NfVklTSUJMRQogICAgRURJVFRFWFQgICAgICAgIElEQ19QRVJDRU5ULDEyMiwyMTcsMzIsMTIsRVNfTlVNQkVSCiAgICBMVEVYVCAgICAgICAgICAgIiZMYXJnZXVyIDoiLDExMDUsNzEsMjM1LDQzLDgKICAgIEVESVRURVhUICAgICAgICBJRENfUEFHRVNNLDEyMiwyMzMsMzIsMTIsRVNfTlVNQkVSCiAgICBSVEVYVCAgICAgICAgICAgIiZIYXV0ZXVyIDoiLElEQ19TVEFUSUMsMTc3LDIzNSw1NCwxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19QQUdFU04sMjM1LDIzMywzMiwxMixFU19OVU1CRVIKICAgIExURVhUICAgICAgICAgICAiIixJRENfU1RBVElDLDI2MCwyMzUsNyw4LE5PVCBXU19WSVNJQkxFCiAgICBHUk9VUEJPWCAgICAgICAgIlBsYWdlIGQnaW1wcmVzc2lvbiIsMTA3NCw4LDI1NywxMzIsNjQsV1NfR1JPVVAKICAgIENPTlRST0wgICAgICAgICAiJlRvdXQiLDEwNTYsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAgfCAKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDE2LDI3Miw0NywxMgogICAgQ09OVFJPTCAgICAgICAgICJQYSZnZXMiLDEwNTgsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OLDE2LDI4Niw0NiwxMgogICAgUlRFWFQgICAgICAgICAgICImRGUgOiIsMTA4OSwyNCwzMDIsMjAsOAogICAgRURJVFRFWFQgICAgICAgIDExNTIsNDgsMzAwLDI2LDEyLEVTX05VTUJFUiB8IFdTX0dST1VQCiAgICBSVEVYVCAgICAgICAgICAgIiZBIDoiLDEwOTAsNzYsMzAyLDIwLDgKICAgIEVESVRURVhUICAgICAgICAxMTUzLDEwMCwzMDAsMjcsMTIsRVNfTlVNQkVSIHwgV1NfR1JPVVAKICAgIEdST1VQQk9YICAgICAgICAiQ29waWVzIiwxMDczLDE0NywyNTcsMTMyLDY0LFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIk5vbWJyZSBkZSAmY29waWVzIDoiLDEwOTIsMTYzLDI3Myw2OCw4CiAgICBFRElUVEVYVCAgICAgICAgMTE1NCwyMzUsMjcxLDMyLDEyLEVTX05VTUJFUiB8IFdTX0dST1VQCiAgICBDT05UUk9MICAgICAgICAgICJBJnNzZW1ibGVyIiwxMDQxLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwyMzUsMjk1LDM2LDEyCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDE4MCwzMjgsNDgsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiQW5udWxlciIsSURDQU5DRUwsMjMyLDMyOCw0OCwxNAogICAgSUNPTiAgICAgICAgICAgICIiLDEwODYsMTU2LDI5MCw3MCwyNSxXU19HUk9VUApFTkQKCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLwovLyBERVNJR05JTkZPCi8vCgojaWZkZWYgQVBTVFVESU9fSU5WT0tFRApHVUlERUxJTkVTIERFU0lHTklORk8gRElTQ0FSREFCTEUgCkJFR0lOCiAgICAxNTM4LCBESUFMT0cKICAgIEJFR0lOCiAgICAgICAgUklHSFRNQVJHSU4sIDI4OQogICAgICAgIEJPVFRPTU1BUkdJTiwgMzQyCiAgICBFTkQKCiAgICAxNTQ3LCBESUFMT0cKICAgIEJFR0lOCiAgICAgICAgUklHSFRNQVJHSU4sIDI4NgogICAgICAgIEJPVFRPTU1BUkdJTiwgMzQyCiAgICBFTkQKRU5ECiNlbmRpZiAgICAvLyBBUFNUVURJT19JTlZPS0VECgojZW5kaWYgICAgLy8gRnJlbmNoIChGcmFuY2UpIHJlc291cmNlcwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCgojaWZuZGVmIEFQU1RVRElPX0lOVk9LRUQKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8KLy8gR2VuZXJhdGVkIGZyb20gdGhlIFRFWFRJTkNMVURFIDMgcmVzb3VyY2UuCi8vCiNkZWZpbmUgX0FGWF9OT19TUExJVFRFUl9SRVNPVVJDRVMKI2RlZmluZSBfQUZYX05PX09MRV9SRVNPVVJDRVMKI2RlZmluZSBfQUZYX05PX1RSQUNLRVJfUkVTT1VSQ0VTCiNkZWZpbmUgX0FGWF9OT19QUk9QRVJUWV9SRVNPVVJDRVMKCiNpZiAhZGVmaW5lZChBRlhfUkVTT1VSQ0VfRExMKSB8fCBkZWZpbmVkKEFGWF9UQVJHX0ZSQSkKI2lmZGVmIF9XSU4zMgpMQU5HVUFHRSAxMiwgMQojcHJhZ21hIGNvZGVfcGFnZSgxMjUyKQojZW5kaWYgLy9fV0lOMzIKI2luY2x1ZGUgInJlc1xEaWFncmFtUHJpbnQucmMyIiAgLy8gbm9uLU1pY3Jvc29mdCBWaXN1YWwgQysrIGVkaXRlZCByZXNvdXJjZXMKI2luY2x1ZGUgImFmeHJlcy5yYyIgICAgICAgICAvLyBTdGFuZGFyZCBjb21wb25lbnRzCiNlbmRpZgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KI2VuZGlmICAgIC8vIG5vdCBBUFNUVURJT19JTlZPS0VECgo=