LyoKICogQ29weXJpZ2h0IDIwMDUgS2ltbW8gTXlsbHl2aXJ0YQogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgojaW5jbHVkZSAic2hyZXNkZWYuaCIKCkxBTkdVQUdFIExBTkdfRklOTklTSCwgU1VCTEFOR19ERUZBVUxUCgpNRU5VXzAwMSBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCglNRU5VSVRFTSAiJlN1dXJldCBrdXZha2tlZXQiLAkJRkNJRE1fU0hWSUVXX0JJR0lDT04KCU1FTlVJVEVNICImUGllbmV0IGt1dmFra2VldCIsCQlGQ0lETV9TSFZJRVdfU01BTExJQ09OCglNRU5VSVRFTSAiJkxpc3RhIiwJCQlGQ0lETV9TSFZJRVdfTElTVFZJRVcKCU1FTlVJVEVNICImVGllZG90IiwJCQlGQ0lETV9TSFZJRVdfUkVQT1JUVklFVwpFTkQKCi8qCiBzaGVsbHZpZXcgYmFja2dyb3VuZCBtZW51CiovCk1FTlVfMDAyIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KCVBPUFVQICIiCglCRUdJTgoJICBQT1BVUCAiJk7ka3lt5CIKCSAgQkVHSU4KCSAgICBNRU5VSVRFTSAiJlBpZW5ldCBrdXZha2tlZXQiLAlGQ0lETV9TSFZJRVdfQklHSUNPTgoJICAgIE1FTlVJVEVNICImU3V1cmV0IGt1dmFra2VldCIsCUZDSURNX1NIVklFV19TTUFMTElDT04KCSAgICBNRU5VSVRFTSAiJkxpc3RhIiwJCQlGQ0lETV9TSFZJRVdfTElTVFZJRVcKCSAgICBNRU5VSVRFTSAiJlRpZWRvdCIsCQkJRkNJRE1fU0hWSUVXX1JFUE9SVFZJRVcKCSAgRU5ECgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBQT1BVUCAiJkrkcmplc3TkIGt1dmFra2VldCIKCSAgQkVHSU4KCSAgICBNRU5VSVRFTSAiJk5pbWVuIG11a2FhbiIsCQkweDMwCS8qIGNvbHVtbiAwICovCgkgICAgTUVOVUlURU0gIiZUeXlwaW4gbXVrYWFuIiwJCTB4MzIJLyogY29sdW1uIDIgKi8KCSAgICBNRU5VSVRFTSAiJktvb24gbXVrYWFuIiwJCTB4MzEJLyogLi4uICovCgkgICAgTUVOVUlURU0gIiZQ5Gl25G3k5HLkbiBtdWthYW4iLAkweDMzCgkgICAgTUVOVUlURU0gU0VQQVJBVE9SCgkgICAgTUVOVUlURU0gIkrkcmplc3TkICZhdXRvbWFhdHRpc2VzdGkiLCBGQ0lETV9TSFZJRVdfQVVUT0FSUkFOR0UKCSAgRU5ECgkgIE1FTlVJVEVNICJK5HJqZXN05CBrdXZha2tlZXQgcml2aWluIiwJRkNJRE1fU0hWSUVXX1NOQVBUT0dSSUQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJQ5Gl2aXTkIiwJCQlGQ0lETV9TSFZJRVdfUkVGUkVTSAoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIkxpaXTkIiwJCQlGQ0lETV9TSFZJRVdfSU5TRVJUCgkgIE1FTlVJVEVNICJMaWl05CBsaW5raWtzaSIsCQlGQ0lETV9TSFZJRVdfSU5TRVJUTElOSwoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgUE9QVVAgIlV1c2kiCgkgIEJFR0lOCgkgICAgTUVOVUlURU0gIlV1c2kgJmthbnNpbyIsCQlGQ0lETV9TSFZJRVdfTkVXRk9MREVSCgkgICAgTUVOVUlURU0gIlV1c2kgJmxpbmtraSIsCQlGQ0lETV9TSFZJRVdfTkVXTElOSwoJICAgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBFTkQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJPbWluYWlzdXVkZXQiLAkJRkNJRE1fU0hWSUVXX1BST1BFUlRJRVMKCUVORApFTkQKCi8qCiBzaGVsbHZpZXcgaXRlbSBtZW51CiovCk1FTlVfU0hWX0ZJTEUgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgoJUE9QVVAgIiIKCUJFR0lOCgkgIE1FTlVJVEVNICImU2VsZWN0IgkJCUZDSURNX1NIVklFV19PUEVOCgkgIE1FTlVJVEVNICImU2VsYWEiLAkJCUZDSURNX1NIVklFV19FWFBMT1JFCgkgIE1FTlVJVEVNICImQXZhYSIsCQkJRkNJRE1fU0hWSUVXX09QRU4KCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICImTGVpa2thYSIsCQkJRkNJRE1fU0hWSUVXX0NVVAoJICBNRU5VSVRFTSAiJktvcGlvaSIsCQkJRkNJRE1fU0hWSUVXX0NPUFkKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJMdSZvIGxpbmtraSIsCQlGQ0lETV9TSFZJRVdfQ1JFQVRFTElOSwoJICBNRU5VSVRFTSAiJlBvaXN0YSIsCQkJRkNJRE1fU0hWSUVXX0RFTEVURQoJICBNRU5VSVRFTSAiJk5pbWXkIHV1ZGVsbGVlbiIsCQlGQ0lETV9TSFZJRVdfUkVOQU1FCgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBNRU5VSVRFTSAiJk9taW5haXN1dWRldCIsCQlGQ0lETV9TSFZJRVdfUFJPUEVSVElFUwoJRU5ECkVORAoKTUVOVV9DUEFORUwgTUVOVQpCRUdJTgogICAgUE9QVVAgIiZGaWxlIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiRSZ4aXQiLCBJRE1fQ1BBTkVMX0VYSVQKICAgIEVORAoKICAgIFBPUFVQICImVmlldyIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZTdXVyZXQga3V2YWtrZWV0IiwgRkNJRE1fU0hWSUVXX0JJR0lDT04KICAgICAgICBNRU5VSVRFTSAiJlBpZW5ldCBrdXZha2tlZXQiLCBGQ0lETV9TSFZJRVdfU01BTExJQ09OCiAgICAgICAgTUVOVUlURU0gIiZMaXN0YSIsIEZDSURNX1NIVklFV19MSVNUVklFVwogICAgICAgIE1FTlVJVEVNICImVGllZG90IiwgRkNJRE1fU0hWSUVXX1JFUE9SVFZJRVcKICAgIEVORAoKICAgIFBPUFVQICImSGVscCIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZBYm91dCBDb250cm9sIFBhbmVsLi4uIiwgSURNX0NQQU5FTF9BQk9VVAogICAgRU5ECkVORAoKU0hCUlNGT1JGT0xERVJfTVNHQk9YIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDE1LCA0MCwgMTg4LCAxOTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VIHwgRFNfTU9EQUxGUkFNRSB8IERTX1NFVEZPTlQgfCBEU18zRExPT0sKQ0FQVElPTiAiVmFsaXRzZSBrYW5zaW8iCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogREVGUFVTSEJVVFRPTiAiT0siLCAxLCA4MCwgMTc2LCA1MCwgMTIsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIlBlcnV1dGEiLCAyLCAxMzQsIDE3NiwgNTAsIDEyLCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICIiLCBJRERfVElUTEUsIDQsIDQsIDE4MCwgMTIKIExURVhUICIiLCBJRERfU1RBVFVTLCA0LCAyNSwgMTgwLCAxMgogQ09OVFJPTCAiIiwgSUREX1RSRUVWSUVXLCAiU3lzVHJlZVZpZXczMiIsCiAJVFZTX0hBU0JVVFRPTlMgfCBUVlNfSEFTTElORVMgfCBUVlNfTElORVNBVFJPT1QgfAoJV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwKCTQsIDQwLCAxODAsIDEyMAp9CgpTSEVMTF9BQk9VVF9NU0dCT1ggRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMTUsIDQwLCAyMjAsIDE1MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiVGlldG9qYSAlcyIKRk9OVCAxMCwgIk1TIFNoZWxsIERsZyIKewogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCAxNTMsIDEzMywgNjAsIDEyLCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJXaW5lICZsaWNlbnNlLi4uIiwgSURDX0FCT1VUX0xJQ0VOU0UsIDE1MywgMTEzLCA2MCwgMTIsIFdTX1RBQlNUT1AKIExJU1RCT1ggSURDX0FCT1VUX0xJU1RCT1gsIDgsIDY1LCAxMzcsIDgyLCBMQlNfTk9USUZZIHwgV1NfVlNDUk9MTCB8IFdTX0JPUkRFUgogSUNPTiAiIiwgc3RjMSwgMTAsIDEwLCAzMCwgMzAKIExURVhUICIiLCBJRENfQUJPVVRfU1RBVElDX1RFWFQxLCA0MCwgMTAsIDE3MCwgMTAKIExURVhUICIiLCBJRENfQUJPVVRfU1RBVElDX1RFWFQyLCA0MCwgMjIsIDE3MCwgMTAKIExURVhUICJSdW5uaW5nIG9uICVzIiwgSURDX0FCT1VUX1NUQVRJQ19URVhUMywgNDIsIDM0LCAxNzAsIDEwCiBMVEVYVCAiV2luZTpuIHRvaSBTaW51bGxlOiIsIElEQ19BQk9VVF9XSU5FX1RFWFQsIDgsIDU0LCAyMDQsIDEwCn0KClNIRUxMX1JVTl9ETEcgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMCwgMCwgMjI3LCA5NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIElDT04gIiIsIDEyMjk3LCA3LCAxMSwgMTgsIDIwLCBXU19WSVNJQkxFCiBMVEVYVCAiQW5uYSBvaGplbG1hLCBkb2t1bWVudHRpLCB0YWkgSW50ZXJuZXQgLXJlc3Vyc3NpLCBqYSBXaW5lIGF2YWEgc2VuIFNpbnVsbGUuIiwgMTIyODksIDM2LCAxMSwgMTgyLCAxOAogTFRFWFQgIiZBdmFhOiIsIDEyMzA1LCA3LCAzOSwgMjQsIDEwCiBDT05UUk9MICIiLCAxMjI5OCwgIkNPTUJPQk9YIiwgV1NfVEFCU1RPUCB8IFdTX0dST1VQIHwgV1NfVlNDUk9MTCB8IFdTX1ZJU0lCTEUgfCBDQlNfRElTQUJMRU5PU0NST0xMIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX0RST1BET1dOLCAzNiwgMzcsIDE4MywgMTAwCiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDYyLCA2MywgNTAsIDE0LCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJQZXJ1dXRhIiwgSURDQU5DRUwsIDExNiwgNjMsIDUwLCAxNCwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJlNlbGFhLi4uIiwgMTIyODgsIDE3MCwgNjMsIDUwLCAxNCwgV1NfVEFCU1RPUAp9CgpTVFJJTkdUQUJMRQp7CiAgICAgICAgLyogY29sdW1ucyBpbiB0aGUgc2hlbGx2aWV3ICovCglJRFNfU0hWX0NPTFVNTjEJCSJUaWVkb3N0byIKCUlEU19TSFZfQ09MVU1OMgkJIktva28iCglJRFNfU0hWX0NPTFVNTjMJCSJUeXlwcGkiCglJRFNfU0hWX0NPTFVNTjQJCSJNdW9rYXR0dSIKCUlEU19TSFZfQ09MVU1ONQkJIk9taW5haXN1dWRldCIKCUlEU19TSFZfQ09MVU1ONgkJIktva28iCglJRFNfU0hWX0NPTFVNTjcJCSJUaWxhYSBq5GxqZWxs5CIKCUlEU19TSFZfQ09MVU1OOAkJIk5pbWkiCglJRFNfU0hWX0NPTFVNTjkJCSJLb21tZW50aXQiCglJRFNfU0hWX0NPTFVNTjEwCSJPbWlzdGFqYSIKCUlEU19TSFZfQ09MVU1OMTEJIlJ5aG3kIgoJSURTX1NIVl9DT0xVTU5fREVMRlJPTQkiT3JpZ2luYWwgbG9jYXRpb24iCglJRFNfU0hWX0NPTFVNTl9ERUxEQVRFCSJEYXRlIGRlbGV0ZWQiCgogICAgICAgIC8qIHNwZWNpYWwgZm9sZGVycyAqLwoJSURTX0RFU0tUT1AJCSJUefZw9nl05CIKCUlEU19NWUNPTVBVVEVSCQkiT21hIHRpZXRva29uZSIKCUlEU19DT05UUk9MUEFORUwJIkNvbnRyb2wgUGFuZWwiCgogICAgICAgIC8qIGNvbnRleHQgbWVudXMgKi8KCUlEU19WSUVXX0xBUkdFCQkiJlN1dXJldCBrdXZha2tlZXQiCglJRFNfVklFV19TTUFMTAkJIiZQaWVuZXQga3V2YWtrZWV0IgoJSURTX1ZJRVdfTElTVAkJIiZMaXN0YSIKCUlEU19WSUVXX0RFVEFJTFMJIiZUaWVkb3QiCglJRFNfU0VMRUNUCQkiVmFsaXRzZSIKCUlEU19PUEVOCQkiQXZhYSIKCglJRFNfQ1JFQVRFRk9MREVSX0RFTklFRCAiVXV0dGEga2Fuc2lvdGEgZWkgdm9pdHUgbHVvZGE6IE9pa2V1ZGV0IGVpduR0IHJpaXTkLiIKCUlEU19DUkVBVEVGT0xERVJfQ0FQVElPTiAiVmlyaGUgbHVvdGFlc3NhIHV1dHRhIGthbnNpb3RhIgoJSURTX0RFTEVURUlURU1fQ0FQVElPTiAiVmFodmlzdGEgdGllZG9zdG9uIHR1aG9hbWluZW4iCglJRFNfREVMRVRFRk9MREVSX0NBUFRJT04gIlZhaHZpc3RhIGthbnNpb24gdHVob2FtaW5lbiIKCUlEU19ERUxFVEVJVEVNX1RFWFQgIkhhbHVhdGtvIHZhcm1hc3RpIHR1aG90YSAnJTEnOm4/IgoJSURTX0RFTEVURU1VTFRJUExFX1RFWFQgIkhhbHVhdGtvIHZhcm1hc3RpIHR1aG90YSBu5G3kICUxPyIKCUlEU19ERUxFVEVTRUxFQ1RFRF9URVhUICJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBzZWxlY3RlZCBpdGVtKHMpPyIKCUlEU19UUkFTSElURU1fVEVYVCAiQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdhbnQgdG8gc2VuZCAnJTEnIHRvIHRoZSBUcmFzaD8iCglJRFNfVFJBU0hGT0xERVJfVEVYVCAiQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdhbnQgdG8gc2VuZCAnJTEnIGFuZCBhbGwgaXRzIGNvbnRlbnQgdG8gdGhlIFRyYXNoPyIKCUlEU19UUkFTSE1VTFRJUExFX1RFWFQgIkFyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3YW50IHRvIHNlbmQgdGhlc2UgJTEgaXRlbXMgdG8gdGhlIFRyYXNoPyIKCUlEU19DQU5UVFJBU0hfVEVYVCAiVGhlIGl0ZW0gJyUxJyBjYW4ndCBiZSBzZW50IHRvIFRyYXNoLiBEbyB5b3Ugd2FudCB0byBkZWxldGUgaXQgaW5zdGVhZD8iCglJRFNfT1ZFUldSSVRFRklMRV9URVhUICJUaGlzIGZvbGRlciBhbHJlYWR5IGNvbnRhaW5zIGEgZmlsZSBjYWxsZWQgJyUxJy5cblxuRG8geW91IHdhbnQgdG8gcmVwbGFjZSBpdD8iCglJRFNfT1ZFUldSSVRFRklMRV9DQVBUSU9OICJWYWh2aXN0YSB0aWVkb3N0b24geWxpa2lyam9pdHVzIgoJSURTX09WRVJXUklURUZPTERFUl9URVhUICJUaGlzIGZvbGRlciBhbHJlYWR5IGNvbnRhaW5zIGEgZm9sZGVyIG5hbWVkICclMScuXG5cbiJcCgkgICAgIklmIHRoZSBmaWxlcyBpbiB0aGUgZGVzdGluYXRpb24gZm9sZGVyIGhhdmUgdGhlIHNhbWUgbmFtZXMgYXMgZmlsZXMgaW4gdGhlXG4iXAoJICAgICJzZWxlY3RlZCBmb2xkZXIgdGhleSB3aWxsIGJlIHJlcGxhY2VkLiBEbyB5b3Ugc3RpbGwgd2FudCB0byBtb3ZlIG9yIGNvcHlcbiJcCgkgICAgInRoZSBmb2xkZXI/IgoKICAgICAgICAvKiBtZXNzYWdlIGJveCBzdHJpbmdzICovCiAgICAgICAgSURTX1JFU1RBUlRfVElUTEUgICAgICAgIkvkeW5uaXN05CB1dWRlbGxlZW4iCiAgICAgICAgSURTX1JFU1RBUlRfUFJPTVBUICAgICAgIkhhbHVhdGtvIHNpbXVsb2lkYSBXaW5kb3dzaW4gdXVkZWxsZWVua+R5bm5pc3TkbWlzdOQ/IgogICAgICAgIElEU19TSFVURE9XTl9USVRMRSAgICAgICJTYW1tdXRhIgogICAgICAgIElEU19TSFVURE9XTl9QUk9NUFQgICAgICJIYWx1YXRrbyBsb3BldHRhYSBXaW5lLWlzdHVubm9uPyIKCiAgICAgICAgLyogc2hlbGwgZm9sZGVyIHBhdGggZGVmYXVsdCB2YWx1ZXMgKi8KCUlEU19QUk9HUkFNUyAgICAgICAgICAgICAgICAiS+R5bm5pc3TkLXZhbGlra29cXE9oamVsbWF0IgoJSURTX1BFUlNPTkFMICAgICAgICAgICAgICAgICJPbWF0IHRpZWRvc3RvdCIKCUlEU19GQVZPUklURVMgICAgICAgICAgICAgICAiU3Vvc2lraXQiCglJRFNfU1RBUlRVUCAgICAgICAgICAgICAgICAgIkvkeW5uaXN05C12YWxpa2tvXFxPaGplbG1hdFxcS+R5bm5pc3R5cyIKCUlEU19SRUNFTlQgICAgICAgICAgICAgICAgICAixHNrZXR05GluIGvkeXRldHl0IgoJSURTX1NFTkRUTyAgICAgICAgICAgICAgICAgICJM5GhldOQiCglJRFNfU1RBUlRNRU5VICAgICAgICAgICAgICAgIkvkeW5uaXN05C12YWxpa2tvIgoJSURTX01ZTVVTSUMgICAgICAgICAgICAgICAgICJPbWF0IG11c2lpa2tpdGllZG9zdG90IgoJSURTX01ZVklERU8gICAgICAgICAgICAgICAgICJPbWF0IHZpZGVvdGllZG9zdG90IgoJSURTX0RFU0tUT1BESVJFQ1RPUlkgICAgICAgICJUefZw9nl05CIKCUlEU19ORVRIT09EICAgICAgICAgICAgICAgICAiVmVya2tveW1w5HJpc3T2IgoJSURTX1RFTVBMQVRFUyAgICAgICAgICAgICAgICJNYWxsaXQiCglJRFNfQVBQREFUQSAgICAgICAgICAgICAgICAgIk9oamVsbWllbiB0aWVkb3QiCglJRFNfUFJJTlRIT09EICAgICAgICAgICAgICAgIlR1bG9zdGlueW1w5HJpc3T2IgoJSURTX0xPQ0FMX0FQUERBVEEgICAgICAgICAgICJQYWlrYWxsaXNldCBhc2V0dWtzZXRcXE9oamVsbWllbiB0aWVkb3QiCglJRFNfSU5URVJORVRfQ0FDSEUgICAgICAgICAgIlBhaWthbGxpc2V0IGFzZXR1a3NldFxcVuRsaWFpa2Fpc2V0IEludGVybmV0LXRpZWRvc3RvdCIKCUlEU19DT09LSUVTICAgICAgICAgICAgICAgICAiRXbkc3RlZXQiCglJRFNfSElTVE9SWSAgICAgICAgICAgICAgICAgIlBhaWthbGxpc2V0IGFzZXR1a3NldFxcSGlzdG9yaWEiCglJRFNfUFJPR1JBTV9GSUxFUyAgICAgICAgICAgIk9oamVsbWF0aWVkb3N0b3QiCglJRFNfTVlQSUNUVVJFUyAgICAgICAgICAgICAgIk9tYXQga3V2YXRpZWRvc3RvdCIKCUlEU19QUk9HUkFNX0ZJTEVTX0NPTU1PTiAgICAiT2hqZWxtYXRpZWRvc3RvdFxcWWh0ZWlzZXQgdGllZG9zdG90IgoJSURTX0NPTU1PTl9ET0NVTUVOVFMgICAgICAgICJEb2t1bWVudGl0IgoJSURTX0FETUlOVE9PTFMgICAgICAgICAgICAgICJL5HlubmlzdOQtdmFsaWtrb1xcT2hqZWxtYXRcXEFkbWluaXN0cmF0aXZlIFRvb2xzIgoJSURTX0NPTU1PTl9NVVNJQyAgICAgICAgICAgICJEb2t1bWVudGl0XFxPbWF0IG11c2lpa2tpdGllZG9zdG90IgoJSURTX0NPTU1PTl9QSUNUVVJFUyAgICAgICAgICJEb2t1bWVudGl0XFxPbWF0IGt1dmF0aWVkb3N0b3QiCglJRFNfQ09NTU9OX1ZJREVPICAgICAgICAgICAgIkRva3VtZW50aXRcXE9tYXQgdmlkZW90aWVkb3N0b3QiCglJRFNfQ0RCVVJOX0FSRUEgICAgICAgICAgICAgIlBhaWthbGxpc2V0IGFzZXR1a3NldFxcT2hqZWxtaWVuIHRpZWRvdFxcTWljcm9zb2Z0XFxDRCBCdXJuaW5nIgoKCUlEU19ORVdGT0xERVIJCSJOZXcgRm9sZGVyIgoKCUlEU19DUEFORUxfVElUTEUgICAgICAgICAgICAiV2luZSBDb250cm9sIFBhbmVsIgoJSURTX0NQQU5FTF9OQU1FICAgICAgICAgICAgICJOYW1lIgoJSURTX0NQQU5FTF9ERVNDUklQVElPTiAgICAgICJEZXNjcmlwdGlvbiIKfQo=