LyoKICogQ29weXJpZ2h0IDIwMDYtMjAwNyBieSBKb25hdGhhbiBFcm5zdAogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgpMQU5HVUFHRSBMQU5HX0ZSRU5DSCwgU1VCTEFOR19ORVVUUkFMCgpJRE1fTUFJTk1FTlUgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIiZGaWNoaWVyIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJk5vdXZlYXUuLi5cdEN0cmwrTiIsICAgICAgICBJRF9GSUxFX05FVwogICAgICAgIE1FTlVJVEVNICImT3V2cmlyLi4uXHRDdHJsK08iLCAgICAgIElEX0ZJTEVfT1BFTgogICAgICAgIE1FTlVJVEVNICImRW5yZWdpc3RyZXJcdEN0cmwrUyIsICAgIElEX0ZJTEVfU0FWRQogICAgICAgIE1FTlVJVEVNICJFbnJlZ2lzdHJlciAmc291cy4uLiIsICAgIElEX0ZJTEVfU0FWRUFTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZJbXByaW1lci4uLlx0Q3RybCtQIiwgICAgSURfUFJJTlQKICAgICAgICBNRU5VSVRFTSAiQSZwZXLndSBhdmFudCBpbXByZXNzaW9uLi4uIiwgICAgSURfUFJFVklFVwogICAgICAgIE1FTlVJVEVNICImTWlzZSBlbiBwYWdlLi4uIiwgICAgICAgIElEX1BSSU5UU0VUVVAKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlF1aXR0ZXIiLCAgICAgICAgSURfRklMRV9FWElUCiAgICBFTkQKICAgIFBPUFVQICLJJmRpdGlvbiIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZBbm51bGVyXHRDdHJsK1oiLCAgICAgICAgICAgICAgICBJRF9FRElUX1VORE8KICAgICAgICBNRU5VSVRFTSAiJlLpdGFibGlyXHRDdHJsK1kiLCAgICAgICAgICAgICAgICBJRF9FRElUX1JFRE8KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkNvdXBlclx0Q3RybCtYIiwgICAgICAgICAgICAgICAgIElEX0VESVRfQ1VUCiAgICAgICAgTUVOVUlURU0gIkNvJnBpZXJcdEN0cmwrQyIsICAgICAgICAgICAgICAgICBJRF9FRElUX0NPUFkKICAgICAgICBNRU5VSVRFTSAiQyZvbGxlclx0Q3RybCtWIiwgICAgICAgICAgICAgICAgIElEX0VESVRfUEFTVEUKICAgICAgICBNRU5VSVRFTSAiJkVmZmFjZXJcdERlbCIsICAgICAgICAgICAgICAgICAgIElEX0VESVRfQ0xFQVIKICAgICAgICBNRU5VSVRFTSAiJlPpbGVjdGlvbm5lciB0b3V0XHRDdHJsK0EiLCAgICAgIElEX0VESVRfU0VMRUNUQUxMCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZSZWNoZXJjaGVyLi4uXHRDcnRsK0YiLCAgICAgICAgICAgICBJRF9GSU5ECiAgICAgICAgTUVOVUlURU0gIlJlY2hlcmNoZXIgbGUgJnN1aXZhbnRcdEYzIiwgICAgICAgICAgICAgICAgICBJRF9GSU5EX05FWFQKICAgICAgICBNRU5VSVRFTSAiJlJlbXBsYWNlci4uLlx0Q3RybCtIIiwgICAgICAgICAgSURfUkVQTEFDRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJMZWN0dXJlLSZzZXVsZSIsICAgICAgICAgICAgICAgICAgSURfRURJVF9SRUFET05MWQogICAgICAgIE1FTlVJVEVNICImTW9kaWZp6SIsICAgICAgICAgICAgICAgICAgICAgICAgSURfRURJVF9NT0RJRklFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIFBPUFVQICImQXZhbmPpcyIKICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiJkluZm9ybWF0aW9uIHPpbGVjdGlvbiIsICAgICAgSURfRURJVF9TRUxFQ1RJT05JTkZPCiAgICAgICAgICAgIE1FTlVJVEVNICImRm9ybWF0IGNhcmFjdOhyZXMiLCAgICAgICAgICBJRF9FRElUX0NIQVJGT1JNQVQKICAgICAgICAgICAgTUVOVUlURU0gIiZE6WYuIGZvcm1hdCBjYXIuIiwgICAgICAgICAgIElEX0VESVRfREVGQ0hBUkZPUk1BVAogICAgICAgICAgICBNRU5VSVRFTSAiRm9ybWF0IHBhcmFncmFwJmhlIiwgICAgICAgICAgSURfRURJVF9QQVJBRk9STUFUCiAgICAgICAgICAgIE1FTlVJVEVNICImUmVjZXZvaXIgdGV4dGUiLCAgICAgICAgICAgICBJRF9FRElUX0dFVFRFWFQKICAgICAgICBFTkQKICAgIEVORAogICAgUE9QVVAgIiZBZmZpY2hhZ2UiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImQmFycmUgZCdvdXRpbHMiLCAgICAgICAgSURfVE9HR0xFX1RPT0xCQVIKICAgICAgICBNRU5VSVRFTSAiJkJhcnJlIGRlIGZvcm1hdCIsICAgICAgSURfVE9HR0xFX0ZPUk1BVEJBUgogICAgICAgIE1FTlVJVEVNICImUuhnbGUiLCAgICAgICAgICAgICBJRF9UT0dHTEVfUlVMRVIKICAgICAgICBNRU5VSVRFTSAiJkJhcnJlIGQn6XRhdCIsICAgICAgSURfVE9HR0xFX1NUQVRVU0JBUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImT3B0aW9ucy4uLiIsICBJRF9WSUVXUFJPUEVSVElFUwogICAgRU5ECiAgICBQT1BVUCAiJkluc2VydGlvbiIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZEYXRlIGV0IGhldXJlLi4uIiwgIElEX0RBVEVUSU1FCiAgICBFTkQKICAgIFBPUFVQICJGb3JtYSZ0IgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJlBvbGljZS4uLiIsICAgICAgICAgICAgICAgICAgSURfRk9OVFNFVFRJTkdTCiAgICAgICAgTUVOVUlURU0gIiZQdWNlcyIgICAgICAgICAgICAgICAgSURfQlVMTEVUCiAgICAgICAgTUVOVUlURU0gIiZQYXJhZ3JhcGhlLi4uIiAgICAgICAgICAgICAgSURfUEFSQUZPUk1BVAogICAgICAgIE1FTlVJVEVNICImVGFidWxhdGlvbnMuLi4iICAgICAgICAgICAgICAgICAgIElEX1RBQlNUT1BTCiAgICAgICAgUE9QVVAgIiZGb25kIgogICAgICAgIEJFR0lOCiAgICAgICAgICAgIE1FTlVJVEVNICImU3lzdOhtZVx0Q3RybCsxIiwgICAgICAgICBJRF9CQUNLXzEKICAgICAgICAgICAgTUVOVUlURU0gIiZKYXVuYXNzZVx0Q3RybCsyIiwgICAgICAgICAgIElEX0JBQ0tfMgogICAgICAgIEVORAogICAgRU5ECiAgICBQT1BVUCAiQWlkJmUiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICLAICZwcm9wb3MgZHUgV29yZHBhZCBkZSBXaW5lIiAgICAgICBJRF9BQk9VVAogICAgRU5ECkVORAoKSURNX1BPUFVQIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICIiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImQ291cGVyIiwgICAgICAgICAgICAgSURfRURJVF9DVVQKICAgICAgICBNRU5VSVRFTSAiQ28mcGllciIsICAgICAgICAgICAgIElEX0VESVRfQ09QWQogICAgICAgIE1FTlVJVEVNICJDJm9sbGVyIiwgICAgICAgICAgICAgSURfRURJVF9QQVNURQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImUHVjZXMiICAgICAgIElEX0JVTExFVAogICAgICAgIE1FTlVJVEVNICImUGFyYWdyYXBoZSIgICAgIElEX1BBUkFGT1JNQVQKICAgIEVORApFTkQKCklERF9EQVRFVElNRSBESUFMT0cgRElTQ0FSREFCTEUgMzAsIDIwLCAxMzAsIDgwClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJEYXRlIGV0IGhldXJlIgpGT05UIDEwLCAiTVMgU2FucyBTZXJpZiIKQkVHSU4KICAgIExURVhUICAgICAgICAiRm9ybWF0cyBkaXNwb25pYmxlcyIsLTEsMywyLDEwMCwxNQogICAgTElTVEJPWCAgICAgIElEQ19EQVRFVElNRSwzLDEyLDgwLDY1LExCU19OT0lOVEVHUkFMSEVJR0hUIHwgTEJTX05PVElGWQogICAgUFVTSEJVVFRPTiAgICImT0siLElET0ssODcsMTIsNDAsMTIKICAgIFBVU0hCVVRUT04gICAiJkFubnVsZXIiLElEQ0FOQ0VMLDg3LDI2LDQwLDEyCkVORAoKSUREX05FV0ZJTEUgRElBTE9HIERJU0NBUkRBQkxFIDMwLCAyMCwgMTQwLCA4MApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiTm91dmVhdSIKRk9OVCAxMCwgIk1TIFNhbnMgU2VyaWYiCkJFR0lOCiAgICBMVEVYVCAgICAgICAgIk5vdXZlYXUgdHlwZSBkZSBkb2N1bWVudCIsLTEsMywyLDEwMCwxNQogICAgTElTVEJPWCAgICAgIElEQ19ORVdGSUxFLDMsMTIsOTAsNjUsTEJTX05PSU5URUdSQUxIRUlHSFQKICAgIFBVU0hCVVRUT04gICAiJk9LIixJRE9LLDk3LDEyLDQwLDEyCiAgICBQVVNIQlVUVE9OICAgIiZBbm51bGVyIixJRENBTkNFTCw5NywyNiw0MCwxMgpFTkQKCklERF9QQVJBRk9STUFUIERJQUxPRyBESVNDQVJEQUJMRSAzMCwgMjAsIDIwMCwgMTEwClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDYXB0aW9uICJGb3JtYXQgZGUgcGFyYWdyYXBoZSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggIkluZGVudGF0aW9uIiwgLTEsIDEwLCAxMCwgMTIwLCA2OAogICAgTFRFWFQgIkdhdWNoZSIsIC0xLCAxNSwgMjIsIDQwLCAxMwogICAgRURJVFRFWFQgSURDX1BBUkFfTEVGVCwgNTUsIDIwLCA2MCwgMTMKICAgIExURVhUICJEcm9pdGUiLCAtMSwgMTUsIDQwLCA0MCwgMTMKICAgIEVESVRURVhUIElEQ19QQVJBX1JJR0hULCA1NSwgMzgsIDYwLCAxMwogICAgTFRFWFQgIlByZW1p6HJlIGxpZ25lIiwgLTEsIDE1LCA1OCwgNDAsIDE4CiAgICBFRElUVEVYVCBJRENfUEFSQV9GSVJTVCwgNTUsIDU2LCA2MCwgMTMKICAgIExURVhUICJBbGlnbmVtZW50IiwgLTEsIDE1LCA4NywgNDAsIDEzCiAgICBDT01CT0JPWCBJRENfUEFSQV9BTElHTiwgNTUsIDg1LCA2MCwgNjAsIENCU19EUk9QRE9XTkxJU1QKICAgIFBVU0hCVVRUT04gIiZPSyIsIElET0ssIDEzNywgMTUsIDUwLCAxNQogICAgUFVTSEJVVFRPTiAiJkFubnVsZXIiLCBJRENBTkNFTCwgMTM3LCAzMywgNTAsIDE1CkVORAoKSUREX1RBQlNUT1BTIERJQUxPRyBESVNDQVJEQUJMRSAzMCwgMjAsIDIwMCwgMTEwClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDYXB0aW9uICJUYWJ1bGF0aW9ucyIKRk9OVCA4LCAiTVMgU0hlbGwgRExnIgpCRUdJTgogICAgR1JPVVBCT1ggIkFycup0cyBkZSB0YWJ1bGF0aW9uIiwgLTEsIDEwLCAxMCwgMTIwLCA5MAogICAgQ09NQk9CT1ggSURDX1RBQlNUT1BTLCAyMCwgMjAsIDEwMCwgNjAsIENCU19TSU1QTEUKICAgIERFRlBVU0hCVVRUT04gIiZBam91dGVyIiwgSURfVEFCX0FERCwgMjAsIDgwLCA0NSwgMTUKICAgIFBVU0hCVVRUT04gIiZTdXBwcmltZXIiLCBJRF9UQUJfREVMLCA3MiwgODAsIDQ1LCAxNQogICAgUFVTSEJVVFRPTiAiJk9LIiwgSURPSywgMTM3LCAxNSwgNTAsIDE1CiAgICBQVVNIQlVUVE9OICImQW5udWxlciIsIElEQ0FOQ0VMLCAxMzcsIDMzLCA1MCwgMTUKICAgIFBVU0hCVVRUT04gIlN1cHByaW1lciAmdG91cyIsIElEX1RBQl9FTVBUWSwgMTM3LCA1MSwgNTAsIDE1CkVORAoKSUREX0ZPUk1BVE9QVFMgRElBTE9HIERJU0NBUkRBQkxFIDAsIDAsIDI4MCwgMTEwClNUWUxFIERTX1NZU01PREFMCkNhcHRpb24gIiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggIkVudmVsb3BwZW1lbnQgZGUgbGlnbmUiLCAtMSwgMTAsIDEwLCAxNzAsIDg1CiAgICBSQURJT0JVVFRPTiAiTm8gbGluZSB3cmFwcGluZyIsIElEQ19QQUdFRk1UX1dOLCAxOCwgMjUsIDE0NSwgMTUKICAgIFJBRElPQlVUVE9OICJFbnZlbG9wcGUgbGUgdGV4dGUg4CBwYXJ0aXIgZGUgbGEgYm9yZHVyZSBkZSBmZW7qdHJlIiwgSURDX1BBR0VGTVRfV1csIDE4LCA0NSwgMTQ1LCAxNQogICAgUkFESU9CVVRUT04gIkVudmVsb3BwZSBsZSB0ZXh0ZSDgIHBhcnRpciBkZSBsYSAmbWFyZ2UiLCBJRENfUEFHRUZNVF9XTSwgMTgsIDY1LCAxNDUsIDE1CiAgICBHUk9VUEJPWCAiQmFycmVzIGQnb3V0aWxzIiwgLTEsIDE3MCwgMTAsIDEyMCwgODUKICAgIENIRUNLQk9YICImQmFycmUgZCdvdXRpbHMiLCBJRENfUEFHRUZNVF9UQiwgMTgwLCAyMCwgODAsIDE1CiAgICBDSEVDS0JPWCAiQmFycmUgZGUgJmZvcm1hdCIsIElEQ19QQUdFRk1UX0ZCLCAxODAsIDM4LCA4MCwgMTUKICAgIENIRUNLQk9YICImUuhnbGUiLCBJRENfUEFHRUZNVF9SVSwgMTgwLCA1NiwgODAsIDE1CiAgICBDSEVDS0JPWCAiQmFycmUgZGUgJnN0YXR1dCIsIElEQ19QQUdFRk1UX1NCLCAxODAsIDc0LCA4MCwgMTUKICAgIExURVhUICIiLCBJRENfUEFHRUZNVF9JRCwgMCwwLDAsMApFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBTVFJJTkdfUklDSFRFWFRfRklMRVNfUlRGLCAgICAgIkRvY3VtZW50cyB0ZXh0ZSByaWNoZSAoKi5ydGYpIgogICAgU1RSSU5HX1RFWFRfRklMRVNfVFhULCAgICAgICAgICJEb2N1bWVudHMgdGV4dGUgKCoudHh0KSIKICAgIFNUUklOR19URVhUX0ZJTEVTX1VOSUNPREVfVFhULCAiRG9jdW1lbnRzIHRleHRlIHVuaWNvZGUgKCoudHh0KSIKICAgIFNUUklOR19BTExfRklMRVMsICAgICAgICAgICAgICAiVG91cyBsZXMgZG9jdW1lbnRzICgqLiopIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBTVFJJTkdfQUxJR05fTEVGVCwgICAgICAgICAgICAiR2F1Y2hlIgogICAgU1RSSU5HX0FMSUdOX1JJR0hULCAgICAgICAgICAgIkRyb2l0ZSIKICAgIFNUUklOR19BTElHTl9DRU5URVIsICAgICAgICAgICJDZW50cmVyIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBTVFJJTkdfTkVXRklMRV9SSUNIVEVYVCwgICAgICJEb2N1bWVudCB0ZXh0ZSByaWNoZSIKICAgIFNUUklOR19ORVdGSUxFX1RYVCwgICAgICAgICAgIkRvY3VtZW50IHRleHRlIgogICAgU1RSSU5HX05FV0ZJTEVfVFhUX1VOSUNPREUsICAiRG9jdW1lbnQgdGV4dGUgdW5pY29kZSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgU1RSSU5HX1BSSU5URVJfRklMRVNfUFJOLCAgICAgICAgIkZpY2hpZXJzIGQnaW1wcmVzc2lvbiAoKi5QUk4pIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBTVFJJTkdfVklFV1BST1BTX1RJVExFLCAgICAgICAgICAiT3B0aW9ucyIKICAgIFNUUklOR19WSUVXUFJPUFNfVEVYVCwgICAgICAgICAgICJUZXh0ZSIKICAgIFNUUklOR19WSUVXUFJPUFNfUklDSFRFWFQsICAgICAgICJUZXh0ZSByaWNoZSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgU1RSSU5HX1BSRVZJRVdfUFJJTlQsICAgICAgICAgICAgIkltcHJpbWVyIgogICAgU1RSSU5HX1BSRVZJRVdfTkVYVFBBR0UsICAgICAgICAgIlBhZ2Ugc3VpdmFudGUiCiAgICBTVFJJTkdfUFJFVklFV19QUkVWUEFHRSwgICAgICAgICAiUGFnZSBwculj6WRlbnRlIgogICAgU1RSSU5HX1BSRVZJRVdfVFdPUEFHRVMsICAgICAgICAgIkRldXggcGFnZXMiCiAgICBTVFJJTkdfUFJFVklFV19PTkVQQUdFLCAgICAgICAgICAiVW5lIHBhZ2UiCiAgICBTVFJJTkdfUFJFVklFV19DTE9TRSwgICAgICAgICAgICAiRmVybWVyIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBTVFJJTkdfVU5JVFNfQ00sICAgICAgICAgICAgICJjbSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgU1RSSU5HX0RFRkFVTFRfRklMRU5BTUUsICAgICAiRG9jdW1lbnQiCiAgICBTVFJJTkdfUFJPTVBUX1NBVkVfQ0hBTkdFUywgICJFbnJlZ2lzdHJlciBsZXMgbW9kaWZpY2F0aW9ucyBkZSCroCVzoLugPyIKICAgIFNUUklOR19TRUFSQ0hfRklOSVNIRUQsICAgICAgIlJlY2hlcmNoZSB0ZXJtaW7pZSBkYW5zIGxlIGRvY3VtZW50LiIKICAgIFNUUklOR19MT0FEX1JJQ0hFRF9GQUlMRUQsICAgIkltcG9zc2libGUgZGUgY2hhcmdlciBsYSBiaWJsaW90aOhxdWUgUmljaEVkaXQuIgogICAgU1RSSU5HX1NBVkVfTE9TRUZPUk1BVFRJTkcsICAiVm91cyBhdmV6IGNob2lzaSBkJ2VucmVnaXN0cmVyIGVuIHRleHRlIHNpbXBsZSwgIiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjZSBxdWkgY2F1c2VyYSBsYSBwZXJ0ZSBkZSB0b3V0IGZvcm1hdHRhZ2UuICIgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVm91bGV6LXZvdXMgdnJhaW1lbnQgY29udGludWVyoD8iCiAgICBTVFJJTkdfSU5WQUxJRF9OVU1CRVIsICAgICAgICJGb3JtYXQgZGUgbm9tYnJlIGludmFsaWRlIgogICAgU1RSSU5HX09MRV9TVE9SQUdFX05PVF9TVVBQT1JURUQsICJMZXMgZG9jdW1lbnRzIGNvbnRlbmV1ciBPTEUgbmUgc29udCBwYXMgc3VwcG9ydOlzIgogICAgU1RSSU5HX1dSSVRFX0ZBSUxFRCwgICAgICAgICAgICAgICJJbXBvc3NpYmxlIGQnZW5yZWdpc3RyZXIgbGUgZmljaGllci4iCiAgICBTVFJJTkdfV1JJVEVfQUNDRVNTX0RFTklFRCwgICAgICAgIlZvdXMgbmUgZGlzcG9zZXogcGFzIGRlcyBhY2PocyBu6WNlc3NhaXJlcyDgIGwnZW5yZWdpc3RyZW1lbnQgZHUgZmljaGllci4iCiAgICBTVFJJTkdfT1BFTl9GQUlMRUQsICAgICAgICAgICAgICAgIkltcG9zc2libGUgZCdvdXZyaXIgbGUgZmljaGllci4iCiAgICBTVFJJTkdfT1BFTl9BQ0NFU1NfREVOSUVELCAgICAgICAgIlZvdXMgbmUgZGlzcG9zZXogcGFzIGRlcyBhY2PocyBu6WNlc3NhaXJlcyDgIGwnb3V2ZXJ0dXJlIGR1IGZpY2hpZXIuIgogICAgU1RSSU5HX1BSSU5USU5HX05PVF9JTVBMRU1FTlRFRCwgIkwnaW1wcmVzc2lvbiBuJ2VzdCBwYXMgaW1wbOltZW506WUiCkVORAo=