LyoKICogQ29weXJpZ2h0IDE5OTggSnVlcmdlbiBTY2htaWVkCiAqIENvcHlyaWdodCAyMDA0IFBpb3RyIENhYmFuCiAqIENvcHlyaWdodCAyMDEwIKN1a2FzeiBXb2puabNvd2ljegogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgojaW5jbHVkZSAic2hyZXNkZWYuaCIKCkxBTkdVQUdFIExBTkdfUE9MSVNILCBTVUJMQU5HX0RFRkFVTFQKCk1FTlVfMDAxIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KCU1FTlVJVEVNICImRHW/ZSBJa29ueSIsCUZDSURNX1NIVklFV19CSUdJQ09OCglNRU5VSVRFTSAiJk1hs2UgSWtvbnkiLAlGQ0lETV9TSFZJRVdfU01BTExJQ09OCglNRU5VSVRFTSAiJkxpc3RhIiwJCUZDSURNX1NIVklFV19MSVNUVklFVwoJTUVOVUlURU0gIiZTemN6ZWfzs3kiLAkJRkNJRE1fU0hWSUVXX1JFUE9SVFZJRVcKRU5ECgovKgogc2hlbGx2aWV3IGJhY2tncm91bmQgbWVudQoqLwpNRU5VXzAwMiBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCglQT1BVUCAiIgoJQkVHSU4KCSAgUE9QVVAgIiZXaWRvayIKCSAgQkVHSU4KCSAgICBNRU5VSVRFTSAiJkR1v2UgSWtvbnkiLAlGQ0lETV9TSFZJRVdfQklHSUNPTgoJICAgIE1FTlVJVEVNICImTWGzZSBJa29ueSIsCUZDSURNX1NIVklFV19TTUFMTElDT04KCSAgICBNRU5VSVRFTSAiJkxpc3RhIiwJCUZDSURNX1NIVklFV19MSVNUVklFVwoJICAgIE1FTlVJVEVNICImU3pjemVn87N5IiwJRkNJRE1fU0hWSUVXX1JFUE9SVFZJRVcKCSAgRU5ECgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBQT1BVUCAiUm96bWllnOYgJmlrb255IHdlZLN1ZyIKCSAgQkVHSU4KCSAgICBNRU5VSVRFTSAiJk5hend5IiwJMHgzMAkvKiBjb2x1bW4gMCAqLwoJICAgIE1FTlVJVEVNICImVHlwdSIsCTB4MzIJLyogY29sdW1uIDIgKi8KCSAgICBNRU5VSVRFTSAiJldpZWxrb5xjaSIsCTB4MzEJLyogLi4uICovCgkgICAgTUVOVUlURU0gIiZEYXR5IiwJMHgzMwoJICAgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICAgIE1FTlVJVEVNICImQXV0b3Jvem1pZXN6Y3phbmllIiwJRkNJRE1fU0hWSUVXX0FVVE9BUlJBTkdFCgkgIEVORAoJICBNRU5VSVRFTSAiJld5cvN3bmFqIGlrb255IiwJRkNJRE1fU0hWSUVXX1NOQVBUT0dSSUQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICImT2Scd2llvyIsCQlGQ0lETV9TSFZJRVdfUkVGUkVTSAoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIlcma2xlaiIsCQlGQ0lETV9TSFZJRVdfSU5TRVJUCgkgIE1FTlVJVEVNICJXa2xlaiBzJmty83QiLAlGQ0lETV9TSFZJRVdfSU5TRVJUTElOSwoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgUE9QVVAgIiZOb3d5IgoJICBCRUdJTgoJICAgIE1FTlVJVEVNICImRm9sZGVyIiwJRkNJRE1fU0hWSUVXX05FV0ZPTERFUgoJICAgIE1FTlVJVEVNICImU2ty83QiLAlGQ0lETV9TSFZJRVdfTkVXTElOSwoJICAgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBFTkQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJXs2GcY2l3b5xjaSIsCUZDSURNX1NIVklFV19QUk9QRVJUSUVTCglFTkQKRU5ECgovKgogc2hlbGx2aWV3IGl0ZW0gbWVudQoqLwpNRU5VX1NIVl9GSUxFIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KCVBPUFVQICIiCglCRUdJTgoJICBNRU5VSVRFTSAiJld5YmllcnoiCQlGQ0lETV9TSFZJRVdfT1BFTgoJICBNRU5VSVRFTSAiJkVrc3Bsb3J1aiIsCQlGQ0lETV9TSFZJRVdfRVhQTE9SRQoJICBNRU5VSVRFTSAiJk90d/NyeiIsCQlGQ0lETV9TSFZJRVdfT1BFTgoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIiZXeXRuaWoiLAkJRkNJRE1fU0hWSUVXX0NVVAoJICBNRU5VSVRFTSAiJktvcGl1aiIsCQlGQ0lETV9TSFZJRVdfQ09QWQoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIlV0d/NyeiAmc2ty83QiLAlGQ0lETV9TSFZJRVdfQ1JFQVRFTElOSwoJICBNRU5VSVRFTSAiJlVzdfEiLAkJRkNJRE1fU0hWSUVXX0RFTEVURQoJICBNRU5VSVRFTSAiJlptaWXxIG5henfqIiwJCUZDSURNX1NIVklFV19SRU5BTUUKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJXsyZhnGNpd2+cY2kiLAlGQ0lETV9TSFZJRVdfUFJPUEVSVElFUwoJRU5ECkVORAoKTUVOVV9DUEFORUwgTUVOVQpCRUdJTgogICAgUE9QVVAgIiZQbGlrIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiVyZ5apxjaWUiLCBJRE1fQ1BBTkVMX0VYSVQKICAgIEVORAoKICAgIFBPUFVQICImVmlldyIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZEdb9lIElrb255IiwgRkNJRE1fU0hWSUVXX0JJR0lDT04KICAgICAgICBNRU5VSVRFTSAiJk1hs2UgSWtvbnkiLCBGQ0lETV9TSFZJRVdfU01BTExJQ09OCiAgICAgICAgTUVOVUlURU0gIiZMaXN0YSIsIEZDSURNX1NIVklFV19MSVNUVklFVwogICAgICAgIE1FTlVJVEVNICImU3pjemVn87N5IiwgRkNJRE1fU0hWSUVXX1JFUE9SVFZJRVcKICAgIEVORAoKICAgIFBPUFVQICImUG9tb2MiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImTyBwYW5lbHUgc3Rlcm93YW5pYS4uLiIsIElETV9DUEFORUxfQUJPVVQKICAgIEVORApFTkQKClNIQlJTRk9SRk9MREVSX01TR0JPWCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAxNSwgNDAsIDE4OCwgMTkyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVSB8IERTX01PREFMRlJBTUUgfCBEU19TRVRGT05UIHwgRFNfM0RMT09LCkNBUFRJT04gIld5YmllcnogZm9sZGVyIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIERFRlBVU0hCVVRUT04gIk9LIiwgMSwgODAsIDE3NiwgNTAsIDEyLCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJBbnVsdWoiLCAyLCAxMzQsIDE3NiwgNTAsIDEyLCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICIiLCBJRERfVElUTEUsIDQsIDQsIDE4MCwgMTIKIExURVhUICIiLCBJRERfU1RBVFVTLCA0LCAyNSwgMTgwLCAxMgogQ09OVFJPTCAiIiwgSUREX1RSRUVWSUVXLCAiU3lzVHJlZVZpZXczMiIsCiAJVFZTX0hBU0JVVFRPTlMgfCBUVlNfSEFTTElORVMgfCBUVlNfTElORVNBVFJPT1QgfAoJV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwKCTQsIDQwLCAxODAsIDEyMAp9CgpTSE5FV0JSU0ZPUkZPTERFUl9NU0dCT1ggRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMTUsIDQwLCAyMTgsIDE5NgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUgfCBXU19TSVpFQk9YIHwgRFNfTU9EQUxGUkFNRSB8IERTX1NFVEZPTlQgfCBEU18zRExPT0sKQ0FQVElPTiAiV3liaWVyeiBmb2xkZXIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogTFRFWFQgIiIsIElERF9USVRMRSwgMTAsIDgsIDE5OCwgMjQKIExURVhUICIiLCBJRERfU1RBVFVTLCAxMCwgMjUsIDE5OCwgMTIKIExURVhUICJGb2xkZXI6IiwgSUREX0ZPTERFUiwgMTAsIDE1NiwgNDAsIDEyCiBDT05UUk9MICIiLCBJRERfVFJFRVZJRVcsICJTeXNUcmVlVmlldzMyIiwKCVRWU19IQVNCVVRUT05TIHwgVFZTX0hBU0xJTkVTIHwgVFZTX0xJTkVTQVRST09UIHwKCVdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsCgkxMiwgMzgsIDE5NCwgMTA1CiBFRElUVEVYVCBJRERfRk9MREVSVEVYVCwgNDYsIDE1MCwgMTYwLCAxNCwgV1NfQk9SREVSIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICImVXR383J6IG5vd3kgZm9sZGVyIiwgSUREX01BS0VORVdGT0xERVIsIDEyLCAxNzQsIDcwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDEwMiwgMTc0LCA1MCwgMTQsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkFudWx1aiIsIElEQ0FOQ0VMLCAxNTYsIDE3NCwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKfQoKU0hFTExfWUVTVE9BTExfTVNHQk9YIERJQUxPRyAyMDAsIDEwMCwgMjgwLCA5MApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiS29tdW5pa2F0IgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIERFRlBVU0hCVVRUT04gIiZUYWsiLCBJRFlFUywgMzQsIDY5LCA1MywgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAiVGFrIG5hICZ3c3p5c3RraWUiLCBJRERfWUVTVE9BTEwsIDkyLCA2OSwgNjUsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gIiZOaWUiLCBJRE5PLCAxNjIsIDY5LCA1MywgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAiJkFudWx1aiIsIElEQ0FOQ0VMLCAyMjAsIDY5LCA1MywgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgSUNPTiAiIiwgSUREX0lDT04sIDEwLCAxMCwgMTYsIDE2CiAgICBMVEVYVCAiIiwgSUREX01FU1NBR0UsIDQwLCAxMCwgMjM4LCA1MiwgMAp9CgpTSEVMTF9BQk9VVF9NU0dCT1ggRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMTUsIDQwLCAyMjAsIDE1MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiTyAlcyIKRk9OVCAxMCwgIk1TIFNoZWxsIERsZyIKewogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCAxNTMsIDEzMywgNjAsIDEyLCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICImTGljZW5jamEgV2luZSIsIElEQ19BQk9VVF9MSUNFTlNFLCAxNTMsIDExMywgNjAsIDEyLCBXU19UQUJTVE9QCiBMSVNUQk9YIElEQ19BQk9VVF9MSVNUQk9YLCA4LCA2NSwgMTM3LCA4MiwgTEJTX05PVElGWSB8IFdTX1ZTQ1JPTEwgfCBXU19CT1JERVIKIElDT04gIiIsIHN0YzEsIDEwLCAxMCwgMzAsIDMwCiBMVEVYVCAiIiwgSURDX0FCT1VUX1NUQVRJQ19URVhUMSwgNDIsIDEwLCAxNzAsIDEwCiBMVEVYVCAiIiwgSURDX0FCT1VUX1NUQVRJQ19URVhUMiwgNDIsIDIyLCAxNzAsIDEwCiBMVEVYVCAiVXJ1Y2hvbWlvbnkgbmEgJXMiLCBJRENfQUJPVVRfU1RBVElDX1RFWFQzLCA0MiwgMzQsIDE3MCwgMTAKIExURVhUICJNb79lc3oga29yenlzdGHmIHogV2luZSdhIGR6aepraToiLCBJRENfQUJPVVRfV0lORV9URVhULCA4LCA1NSwgMTM3LCAxMAp9CgpTSEVMTF9SVU5fRExHIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDAsIDAsIDIyNywgOTUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBJQ09OICIiLCAxMjI5NywgNywgMTEsIDE4LCAyMCwgV1NfVklTSUJMRQogTFRFWFQgIldwaXN6IG5henfqIHByb2dyYW11LCBrYXRhbG9ndSBsdWIgZG9rdW1lbnR1LCBhIFdpbmUgb3R3b3J6eSBnbyBkbGEgY2llYmllLiIsIDEyMjg5LCAzNiwgMTEsIDE4MiwgMTgKIExURVhUICImT3R383J6OiIsIDEyMzA1LCA3LCAzOSwgMjQsIDEwCiBDT05UUk9MICIiLCAxMjI5OCwgIkNPTUJPQk9YIiwgV1NfVEFCU1RPUCB8IFdTX0dST1VQIHwgV1NfVlNDUk9MTCB8IFdTX1ZJU0lCTEUgfCBDQlNfRElTQUJMRU5PU0NST0xMIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX0RST1BET1dOLCAzNiwgMzcsIDE4MywgMTAwCiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDYyLCA2MywgNTAsIDE0LCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJBbnVsdWoiLCBJRENBTkNFTCwgMTE2LCA2MywgNTAsIDE0LCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICImUHJ6ZWdsuWRhai4uLiIsIDEyMjg4LCAxNzAsIDYzLCA1MCwgMTQsIFdTX1RBQlNUT1AKfQoKU1RSSU5HVEFCTEUKewogICAgICAgIC8qIGNvbHVtbnMgaW4gdGhlIHNoZWxsdmlldyAqLwoJSURTX1NIVl9DT0xVTU4xCQkiUGxpayIKCUlEU19TSFZfQ09MVU1OMgkJIldpZWxrb5zmIgoJSURTX1NIVl9DT0xVTU4zCQkiVHlwIgoJSURTX1NIVl9DT0xVTU40CQkiTW9keWZpa2FjamEiCglJRFNfU0hWX0NPTFVNTjUJCSJBdHJ5YnV0eSIKCUlEU19TSFZfQ09MVU1ONgkJIldpZWxrb5zmIgoJSURTX1NIVl9DT0xVTU43CQkiRG9zdOpwbmEgd2llbGtvnOYiCglJRFNfU0hWX0NPTFVNTjgJCSJOYXp3YSIKCUlEU19TSFZfQ09MVU1OOQkJIktvbWVudGFyeiIKCUlEU19TSFZfQ09MVU1OMTAgICAgICAgICJXs2GcY2ljaWVsIgoJSURTX1NIVl9DT0xVTU4xMSAgICAgICAgIkdydXBhIgoJSURTX1NIVl9DT0xVTU5fREVMRlJPTQkiT3J5Z2luYWxuZSBwb7Nvv2VuaWUiCglJRFNfU0hWX0NPTFVNTl9ERUxEQVRFCSJEYXRhIHVzdW5p6mNpYSIKCUlEU19TSFZfQ09MX0RPQ1MJIkRva3VtZW50eSIKCUlEU19TSFZfQ09MX1NUQVRVUwkiU3RhdHVzIgoJSURTX1NIVl9DT0xfTE9DQVRJT04JIlBvs2+/ZW5pZSIKCUlEU19TSFZfQ09MX01PREVMCSJNb2RlbCIKCiAgICAgICAgLyogc3BlY2lhbCBmb2xkZXJzICovCglJRFNfREVTS1RPUAkJIlB1bHBpdCIKCUlEU19NWUNPTVBVVEVSCQkiTfNqIGtvbXB1dGVyIgoJSURTX1JFQ1lDTEVCSU5fRk9MREVSX05BTUUJIktvc3oiCglJRFNfQ09OVFJPTFBBTkVMCSJQYW5lbCBzdGVyb3dhbmlhIgoKCS8qIGNvbnRleHQgbWVudXMgKi8KCUlEU19WSUVXX0xBUkdFCQkiJkR1v2UgSWtvbnkiCglJRFNfVklFV19TTUFMTAkJIiZNYbNlIElrb255IgoJSURTX1ZJRVdfTElTVAkJIiZMaXN0YSIKCUlEU19WSUVXX0RFVEFJTFMJIiZTemN6ZWfzs3kiCglJRFNfU0VMRUNUCQkiWmF6bmFjeiIKCUlEU19PUEVOCQkiT3R383J6IgoKCUlEU19DUkVBVEVGT0xERVJfREVOSUVEICJOaWUgbW9n6iB1dHdvcnp55iBub3dlZ28ga2F0YWxvZ3U6IEJyYWsgZG9zdOpwdS4iCglJRFNfQ1JFQVRFRk9MREVSX0NBUFRJT04gIkKzuWQgcHJ6eSB0d29yemVuaXUgbm93ZWdvIGthdGFsb2d1LiIKCUlEU19ERUxFVEVJVEVNX0NBUFRJT04gIlBvdHdpZXJknyB1c3VuaepjaWUgcGxpa3UiCglJRFNfREVMRVRFRk9MREVSX0NBUFRJT04gIlBvdHdpZXJknyB1c3VuaepjaWUga2F0YWxvZ3UiCglJRFNfREVMRVRFSVRFTV9URVhUICJDenkgamVzdGWcIHBld2llbiwgv2UgY2hjZXN6IHVzdW655iAnJTEnPyIKCUlEU19ERUxFVEVNVUxUSVBMRV9URVhUICJDenkgamVzdGWcIHBld2llbiwgv2UgY2hjZXN6IHVzdW655iB0ZSAlMSBwbGlraT8iCglJRFNfREVMRVRFU0VMRUNURURfVEVYVCAiQ3p5IGplc3RlnCBwZXdpZW4sIL9lIGNoY2VzeiB1c3VuueYgd3licmFuZSBlbGVtZW50eT8iCglJRFNfVFJBU0hJVEVNX1RFWFQgIkN6eSBqZXN0ZZwgcGV3aWVuLCC/ZSBjaGNlc3ogdW1pZZxjaeYgcGxpayAnJTEnIHcgS29zenU/IgoJSURTX1RSQVNIRk9MREVSX1RFWFQgIkN6eSBqZXN0ZZwgcGV3aWVuLCC/ZSBjaGNlc3ogdW1pZZxjaeYgZm9sZGVyICclMScgaSBjYbO5IGplZ28gemF3YXJ0b5zmIHcga29zenUiCglJRFNfVFJBU0hNVUxUSVBMRV9URVhUICJFbGVtZW5083c6ICUxIC0gY3p5IG5hIHBld25vIGNoY2VzeiBqZSB1bWllnGNp5iB3IEtvc3p1PyIKCUlEU19DQU5UVFJBU0hfVEVYVCAiTmllIG1vZ+ogcHJ6ZW5pZZzmIGVsZW1lbnR1ICclMScgZG8gS29zemEuIEN6eSBjaGNlc3ogZ28gemFtaWFzdCB0ZWdvIHVzdW655j8iCglJRFNfT1ZFUldSSVRFRklMRV9URVhUICJUZW4gZm9sZGVyIGp1vyB6YXdpZXJhIHBsaWsgbyBuYXp3aWUgJyUxJy5cblxuQ3p5IGNoY2VzeiBnbyB6YXN0uXBp5j8iCglJRFNfT1ZFUldSSVRFRklMRV9DQVBUSU9OICJQb3R3aWVyZJ8gemFzdLlwaWVuaWUgcGxpa3UiCglJRFNfT1ZFUldSSVRFRk9MREVSX1RFWFQgIlRlbiBmb2xkZXIganW/IHphd2llcmEgZm9sZGVyIG8gbmF6d2llICclMScuXG5cbiJcCgkgICAgIkplv2VsaSB3IGRvY2Vsb3d5bSBmb2xkZXJ6ZSB3eXN0uXBpuSBwbGlraSBvIHRha2ljaCBzYW15Y2ggbmF6d2FjaCBqYWtcbiJcCgkgICAgIncgd3licmFueW0gZm9sZGVyemUsIHRvIHpvc3Rhbrkgb25lIHphc3S5cGlvbmUuIEN6eSBjaGNlc3ogbWltbyB0byBwcnplbmllnOZcbiJcCgkgICAgImx1YiBza29waW93YeYgZm9sZGVyPyIKCiAgICAgICAgLyogbWVzc2FnZSBib3ggc3RyaW5ncyAqLwogICAgICAgIElEU19SRVNUQVJUX1RJVExFICAgICAgICJVcnVjaG9tIHBvbm93bmllIgogICAgICAgIElEU19SRVNUQVJUX1BST01QVCAgICAgICJDenkgY2hjZXN6IHphc3ltdWxvd2HmIHpyZXN0YXJ0b3dhbmllIFdpbmRvd3M/IgogICAgICAgIElEU19TSFVURE9XTl9USVRMRSAgICAgICJXebO5Y3oiCiAgICAgICAgSURTX1NIVVRET1dOX1BST01QVCAgICAgIkN6eSBjaGNlc3ogd3mzuWN6eeYgc2VzauogV2luZSdhPyIKCiAgICAgICAgLyogUnVuIEZpbGUgZGlhbG9nICovCiAgICAgICAgSURTX1JVTkRMR19FUlJPUiAgICAgICAgICAgIk5pZSBtb79uYSB3eZx3aWV0bGnmIG9rbmEgZGlhbG9nb3dlZ28gVXJ1Y2hvbSAoYrO5ZCB3ZXdu6nRyem55KSIKICAgICAgICBJRFNfUlVORExHX0JST1dTRV9FUlJPUiAgICAiTmllIG1vv25hIHd5nHdpZXRsaeYgb2tuYSBkaWFsb2dvd2VnbyBQcnplZ2y5ZGFqIChis7lkIHdld27qdHJ6bnkpIgogICAgICAgIElEU19SVU5ETEdfQlJPV1NFX0NBUFRJT04gICJQcnplZ2y5ZGFqIgogICAgICAgIElEU19SVU5ETEdfQlJPV1NFX0ZJTFRFUiAgICJQbGlraSB3eWtvbnl3YWxuZVwwKi5leGVcMFdzenlzdGtpZSBwbGlraVwwKi4qXDBcMCIKCiAgICAgICAgLyogc2hlbGwgZm9sZGVyIHBhdGggZGVmYXVsdCB2YWx1ZXMgKi8KCUlEU19QUk9HUkFNUyAgICAgICAgICAgICAgICAiTWVudSBTdGFydFxcUHJvZ3JhbXkiCglJRFNfUEVSU09OQUwgICAgICAgICAgICAgICAgIk1vamUgZG9rdW1lbnR5IgoJSURTX0ZBVk9SSVRFUyAgICAgICAgICAgICAgICJVbHViaW9uZSIKCUlEU19TVEFSVFVQICAgICAgICAgICAgICAgICAiTWVudSBTdGFydFxcUHJvZ3JhbXlcXEF1dG9TdGFydCIKCUlEU19SRUNFTlQgICAgICAgICAgICAgICAgICAiUmVjZW50IgoJSURTX1NFTkRUTyAgICAgICAgICAgICAgICAgICJTZW5kVG8iCglJRFNfU1RBUlRNRU5VICAgICAgICAgICAgICAgIk1lbnUgU3RhcnQiCglJRFNfTVlNVVNJQyAgICAgICAgICAgICAgICAgIk1vamEgbXV6eWthIgoJSURTX01ZVklERU8gICAgICAgICAgICAgICAgICJNb2plIHdpZGVvIgoJSURTX0RFU0tUT1BESVJFQ1RPUlkgICAgICAgICJQdWxwaXQiCglJRFNfTkVUSE9PRCAgICAgICAgICAgICAgICAgIk5ldEhvb2QiCglJRFNfVEVNUExBVEVTICAgICAgICAgICAgICAgIlN6YWJsb255IgoJSURTX0FQUERBVEEgICAgICAgICAgICAgICAgICJEYW5lIGFwbGlrYWNqaSIKCUlEU19QUklOVEhPT0QgICAgICAgICAgICAgICAiUHJpbnRIb29kIgoJSURTX0xPQ0FMX0FQUERBVEEgICAgICAgICAgICJVc3Rhd2llbmlhIGxva2FsbmVcXERhbmUgYXBsaWthY2ppIgoJSURTX0lOVEVSTkVUX0NBQ0hFICAgICAgICAgICJVc3Rhd2llbmlhIGxva2FsbmVcXFRlbXBvcmFyeSBJbnRlcm5ldCBGaWxlcyIKCUlEU19DT09LSUVTICAgICAgICAgICAgICAgICAiQ29va2llcyIKCUlEU19ISVNUT1JZICAgICAgICAgICAgICAgICAiVXN0YXdpZW5pYSBMb2thbG5lXFxIaXN0b3JpYSIKCUlEU19QUk9HUkFNX0ZJTEVTICAgICAgICAgICAiUHJvZ3JhbSBGaWxlcyIKCUlEU19NWVBJQ1RVUkVTICAgICAgICAgICAgICAiTW9qZSBvYnJhenkiCglJRFNfUFJPR1JBTV9GSUxFU19DT01NT04gICAgIlByb2dyYW0gRmlsZXNcXENvbW1vbiBGaWxlcyIKCUlEU19DT01NT05fRE9DVU1FTlRTICAgICAgICAiRG9rdW1lbnR5IgoJSURTX0FETUlOVE9PTFMgICAgICAgICAgICAgICJNZW51IFN0YXJ0XFxQcm9ncmFteVxcTmFyeupkemlhIGFkbWluaXN0cmFjeWpuZSIKCUlEU19DT01NT05fTVVTSUMgICAgICAgICAgICAiRG9jdW1lbnR5XFxNb2phIG11enlrYSIKCUlEU19DT01NT05fUElDVFVSRVMgICAgICAgICAiRG9jdW1lbnR5XFxNb2plIG9icmF6eSIKCUlEU19DT01NT05fVklERU8gICAgICAgICAgICAiRG9jdW1lbnR5XFxNb2plIHdpZGVvIgoJSURTX0NEQlVSTl9BUkVBICAgICAgICAgICAgICJVc3Rhd2llbmlhIGxva2FsbmVcXERhbmUgYXBsaWthY2ppXFxNaWNyb3NvZnRcXE5hZ3J5d2FuaWUgZHlza/N3IENEIgoKCUlEU19ORVdGT0xERVIJCSJOb3d5IEZvbGRlciIKCglJRFNfQ1BBTkVMX1RJVExFICAgICAgICAgICAgIlBhbmVsIHN0ZXJvd2FuaWEgV2luZSIKCUlEU19DUEFORUxfTkFNRSAgICAgICAgICAgICAiTmF6d2EiCglJRFNfQ1BBTkVMX0RFU0NSSVBUSU9OICAgICAgIk9waXMiCgogICAgICAgIElEU19TSExFWEVDX05PQVNTT0MgICAgICAgICAiTmllIG1hIHByenlwaXNhbmVnbyBwcm9ncmFtdSBXaW5kb3dzb3dlZ28gZG8gb3R3aWVyYW5pYSB0ZWdvIHR5cHUgcGxpa/N3LiIKfQoKU1RSSU5HVEFCTEUKewpJRFNfTElDRU5TRV9DQVBUSU9OLCAgICAgICAgICAgICJMaWNlbmNqYSBXaW5lIgpJRFNfTElDRU5TRSwKIldpbmUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIFwKbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBcCkxpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciBcCnZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuXG5cCldpbmUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgXApidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBcCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIFwKTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cblxuXApZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIFwKTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBcCkZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuIgp9Cg==