LyoKICogQ29weXJpZ2h0IDE5OTggSnVlcmdlbiBTY2htaWVkCiAqIENvcHlyaWdodCAyMDA0IEhlbm5pbmcgR2VyaGFyZHQKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19HRVJNQU4sIFNVQkxBTkdfTkVVVFJBTAoKTUVOVV8wMDEgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgoJTUVOVUlURU0gIiZHcm/fZSBTeW1ib2xlIiwJRkNJRE1fU0hWSUVXX0JJR0lDT04KCU1FTlVJVEVNICImS2xlaW5lIFN5bWJvbGUiLAlGQ0lETV9TSFZJRVdfU01BTExJQ09OCglNRU5VSVRFTSAiJkxpc3RlIiwJCUZDSURNX1NIVklFV19MSVNUVklFVwoJTUVOVUlURU0gIiZEZXRhaWxzIiwJCUZDSURNX1NIVklFV19SRVBPUlRWSUVXCkVORAoKLyoKIHNoZWxsdmlldyBiYWNrZ3JvdW5kIG1lbnUKKi8KTUVOVV8wMDIgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgoJUE9QVVAgIiIKCUJFR0lOCgkgIFBPUFVQICImQW5zaWNodCIKCSAgQkVHSU4KCSAgICBNRU5VSVRFTSAiJkdyb99lIFN5bWJvbGUiLAlGQ0lETV9TSFZJRVdfQklHSUNPTgoJICAgIE1FTlVJVEVNICImS2xlaW5lIFN5bWJvbGUiLAlGQ0lETV9TSFZJRVdfU01BTExJQ09OCgkgICAgTUVOVUlURU0gIiZMaXN0ZSIsCQlGQ0lETV9TSFZJRVdfTElTVFZJRVcKCSAgICBNRU5VSVRFTSAiJkRldGFpbHMiLAlGQ0lETV9TSFZJRVdfUkVQT1JUVklFVwoJICBFTkQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIFBPUFVQICJTeW1ib2xlIGFub3JkbmVuIgoJICBCRUdJTgoJICAgIE1FTlVJVEVNICJOYWNoICZOYW1lIiwJMHgzMAkvKiBjb2x1bW4gMCAqLwoJICAgIE1FTlVJVEVNICJOYWNoICZUeXAiLAkweDMyCS8qIGNvbHVtbiAyICovCgkgICAgTUVOVUlURU0gIk5hY2ggJkdy9t9lIiwJMHgzMQkvKiAuLi4gKi8KCSAgICBNRU5VSVRFTSAiTmFjaCAmRGF0dW0iLAkweDMzCgkgICAgTUVOVUlURU0gU0VQQVJBVE9SCgkgICAgTUVOVUlURU0gIiZBdXRvbWF0aXNjaCBhbm9yZG5lbiIsCUZDSURNX1NIVklFV19BVVRPQVJSQU5HRQoJICBFTkQKCSAgTUVOVUlURU0gIkljb25zIGFub3JkbmVuIiwJRkNJRE1fU0hWSUVXX1NOQVBUT0dSSUQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJBa3R1YWxpc2llcmVuIiwJCUZDSURNX1NIVklFV19SRUZSRVNICgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBNRU5VSVRFTSAiRWluZvxnZW4iLAkJRkNJRE1fU0hWSUVXX0lOU0VSVAoJICBNRU5VSVRFTSAiRWluZvxnZW4gYWxzIFZlcmtu/HBmdW5nIiwJRkNJRE1fU0hWSUVXX0lOU0VSVExJTksKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIFBPUFVQICJOZXUiCgkgIEJFR0lOCgkgICAgTUVOVUlURU0gIk5ldWVzIFZlciZ6ZWljaG5pcyIsCUZDSURNX1NIVklFV19ORVdGT0xERVIKCSAgICBNRU5VSVRFTSAiTmV1ZSBWZXIma278cGZ1bmciLAlGQ0lETV9TSFZJRVdfTkVXTElOSwoJICAgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBFTkQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICImRWlnZW5zY2hhZnRlbiIsCUZDSURNX1NIVklFV19QUk9QRVJUSUVTCglFTkQKRU5ECgovKgogc2hlbGx2aWV3IGl0ZW0gbWVudQoqLwpNRU5VX1NIVl9GSUxFIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KCVBPUFVQICIiCglCRUdJTgoJICBNRU5VSVRFTSAiQXVzJnfkaGxlbiIJCUZDSURNX1NIVklFV19PUEVOCgkgIE1FTlVJVEVNICJFJnJrdW5kZW4iLAkJRkNJRE1fU0hWSUVXX0VYUExPUkUKCSAgTUVOVUlURU0gIibWZmZuZW4iCQlGQ0lETV9TSFZJRVdfT1BFTgoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIiZBdXNzY2huZWlkZW4iLAkJRkNJRE1fU0hWSUVXX0NVVAoJICBNRU5VSVRFTSAiJktvcGllcmVuIiwJCUZDSURNX1NIVklFV19DT1BZCgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBNRU5VSVRFTSAiJlZlcmtu/HBmdW5nIGVyemV1Z2VuIiwJRkNJRE1fU0hWSUVXX0NSRUFURUxJTksKCSAgTUVOVUlURU0gIiZM9nNjaGVuIiwJCUZDSURNX1NIVklFV19ERUxFVEUKCSAgTUVOVUlURU0gIiZVbWJlbmVubmVuIiwJCUZDSURNX1NIVklFV19SRU5BTUUKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICImRWlnZW5zY2hhZnRlbiIsCUZDSURNX1NIVklFV19QUk9QRVJUSUVTCglFTkQKRU5ECgpNRU5VX0NQQU5FTCBNRU5VCkJFR0lOCiAgICBQT1BVUCAiJkZpbGUiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJFJnhpdCIsIElETV9DUEFORUxfRVhJVAogICAgRU5ECgogICAgUE9QVVAgIiZWaWV3IgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJkdyb99lIFN5bWJvbGUiLCBGQ0lETV9TSFZJRVdfQklHSUNPTgogICAgICAgIE1FTlVJVEVNICImS2xlaW5lIFN5bWJvbGUiLCBGQ0lETV9TSFZJRVdfU01BTExJQ09OCiAgICAgICAgTUVOVUlURU0gIiZMaXN0ZSIsIEZDSURNX1NIVklFV19MSVNUVklFVwogICAgICAgIE1FTlVJVEVNICImRGV0YWlscyIsIEZDSURNX1NIVklFV19SRVBPUlRWSUVXCiAgICBFTkQKCiAgICBQT1BVUCAiJkhlbHAiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImQWJvdXQgQ29udHJvbCBQYW5lbC4uLiIsIElETV9DUEFORUxfQUJPVVQKICAgIEVORApFTkQKClNIQlJTRk9SRk9MREVSX01TR0JPWCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAxNSwgNDAsIDE4OCwgMTkyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVSB8IERTX01PREFMRlJBTUUgfCBEU19TRVRGT05UIHwgRFNfM0RMT09LCkNBUFRJT04gIlZlcnplaWNobmlzIGF1c3fkaGxlbiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBERUZQVVNIQlVUVE9OICJPSyIsIDEsIDgwLCAxNzYsIDUwLCAxMiwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQWJicmVjaGVuIiwgMiwgMTM0LCAxNzYsIDUwLCAxMiwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBMVEVYVCAiIiwgSUREX1RJVExFLCA0LCA0LCAxODAsIDEyCiBMVEVYVCAiIiwgSUREX1NUQVRVUywgNCwgMjUsIDE4MCwgMTIKIENPTlRST0wgIiIsIElERF9UUkVFVklFVywgIlN5c1RyZWVWaWV3MzIiLAogCVRWU19IQVNCVVRUT05TIHwgVFZTX0hBU0xJTkVTIHwgVFZTX0xJTkVTQVRST09UIHwKCVdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsCgk0LCA0MCwgMTgwLCAxMjAKfQoKU0hORVdCUlNGT1JGT0xERVJfTVNHQk9YIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDE1LCA0MCwgMjE4LCAxOTYKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VIHwgV1NfU0laRUJPWCB8IERTX01PREFMRlJBTUUgfCBEU19TRVRGT05UIHwgRFNfM0RMT09LCkNBUFRJT04gIlZlcnplaWNobmlzIGF1c3fkaGxlbiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBMVEVYVCAiIiwgSUREX1RJVExFLCAxMCwgOCwgMTk4LCAyNAogTFRFWFQgIiIsIElERF9TVEFUVVMsIDEwLCAyNSwgMTk4LCAxMgogTFRFWFQgIlZlcnplaWNobmlzOiIsIElERF9GT0xERVIsIDEwLCAxNTYsIDQwLCAxMgogQ09OVFJPTCAiIiwgSUREX1RSRUVWSUVXLCAiU3lzVHJlZVZpZXczMiIsCiAgICAgICAgVFZTX0hBU0JVVFRPTlMgfCBUVlNfSEFTTElORVMgfCBUVlNfTElORVNBVFJPT1QgfAogICAgICAgIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsCiAgICAgICAgMTIsIDM4LCAxOTQsIDEwNQogRURJVFRFWFQgSUREX0ZPTERFUlRFWFQsIDQ2LCAxNTAsIDE2MCwgMTQsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJk5ldWVzIFZlcnplaWNobmlzIGVyc3RlbGxlbiIsIElERF9NQUtFTkVXRk9MREVSLCAxMiwgMTc0LCA5NSwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCAxMTIsIDE3NCwgNDUsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJBYmJyZWNoZW4iLCBJRENBTkNFTCwgMTYxLCAxNzQsIDQ1LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCn0KClNIRUxMX1lFU1RPQUxMX01TR0JPWCBESUFMT0cgMjAwLCAxMDAsIDI4MCwgOTAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIk1lbGR1bmciCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgREVGUFVTSEJVVFRPTiAiJkphIiwgSURZRVMsIDM0LCA2OSwgNTMsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gIkphIHp1ICZhbGxlbiIsIElERF9ZRVNUT0FMTCwgOTIsIDY5LCA2NSwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAiJk5laW4iLCBJRE5PLCAxNjIsIDY5LCA1MywgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAiQWJicmVjaGVuIiwgSURDQU5DRUwsIDIyMCwgNjksIDUzLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBJQ09OICIiLCBJRERfSUNPTiwgMTAsIDEwLCAxNiwgMTYKICAgIExURVhUICIiLCBJRERfTUVTU0FHRSwgNDAsIDEwLCAyMzgsIDUyLCAwCn0KClNIRUxMX0FCT1VUX01TR0JPWCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAxNSwgNDAsIDIxMCwgMTUyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJJbmZvcm1hdGlvbmVuIPxiZXIgJXMiCkZPTlQgMTAsICJNUyBTaGVsbCBEbGciCnsKIERFRlBVU0hCVVRUT04gIk9LIiwgSURPSywgMTUzLCAxMzMsIDUwLCAxMiwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJkxpemVuei4uLiIsIElEQ19BQk9VVF9MSUNFTlNFLCAxNTMsIDExMywgNTAsIDEyLCBXU19UQUJTVE9QCiBMSVNUQk9YIElEQ19BQk9VVF9MSVNUQk9YLCA4LCA2NSwgMTM3LCA4MiwgTEJTX05PVElGWSB8IFdTX1ZTQ1JPTEwgfCBXU19CT1JERVIKIElDT04gIiIsIHN0YzEsIDEwLCAxMCwgMzAsIDMwCiBMVEVYVCAiIiwgSURDX0FCT1VUX1NUQVRJQ19URVhUMSwgNDAsIDEwLCAxMzcsIDEwCiBMVEVYVCAiIiwgSURDX0FCT1VUX1NUQVRJQ19URVhUMiwgNDAsIDIyLCAxMzcsIDEwCiBMVEVYVCAiV2luZSBWZXJzaW9uICVzIiwgSURDX0FCT1VUX1NUQVRJQ19URVhUMywgNDAsIDM0LCAxNzAsIDEwCiBMVEVYVCAiV2luZSB3dXJkZSBm/HIgU2llIGdla2VsdGVydCB2b246IiwgSURDX0FCT1VUX1dJTkVfVEVYVCwgOCwgNTUsIDEzNywgMTAKfQoKU0hFTExfUlVOX0RMRyBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAwLCAwLCAyMjcsIDk1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogSUNPTiAiIiwgMTIyOTcsIDcsIDExLCAxOCwgMjAsIFdTX1ZJU0lCTEUKIExURVhUICJHZWJlbiBzaWUgZGVuIE5hbWVuIGVpbmVzIFByb2dyYW1tZXMsIGVpbmVzIE9yZG5lcnMsIGVpbmVzIERva3VtZW50ZXMgb2RlciBlaW5lciBJbnRlcm5ldC1SZXNzb3VyY2UgZWluLCBkaWUgZ2X2ZmZuZXQgd2VyZGVuIHNvbGwiLCAxMjI4OSwgMzYsIDExLCAxODIsIDE4CiBMVEVYVCAi1iZmZm5lbjoiLCAxMjMwNSwgNywgMzksIDI0LCAxMAogQ09OVFJPTCAiIiwgMTIyOTgsICJDT01CT0JPWCIsIFdTX1RBQlNUT1AgfCBXU19HUk9VUCB8IFdTX1ZTQ1JPTEwgfCBXU19WSVNJQkxFIHwgQ0JTX0RJU0FCTEVOT1NDUk9MTCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19EUk9QRE9XTiwgMzYsIDM3LCAxODMsIDEwMAogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCA2MiwgNjMsIDUwLCAxNCwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQWJicmVjaGVuIiwgSURDQU5DRUwsIDExNiwgNjMsIDUwLCAxNCwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJkR1cmNoc3VjaGVuLi4uIiwgMTIyODgsIDE3MCwgNjMsIDUwLCAxNCwgV1NfVEFCU1RPUAp9CgpTVFJJTkdUQUJMRQp7CiAgICAgICAgLyogY29sdW1ucyBpbiB0aGUgc2hlbGx2aWV3ICovCglJRFNfU0hWX0NPTFVNTjEJCSJEYXRlaSIKCUlEU19TSFZfQ09MVU1OMgkJIkdy9t9lIgoJSURTX1NIVl9DT0xVTU4zCQkiVHlwIgoJSURTX1NIVl9DT0xVTU40CQkiR2XkbmRlcnQiCglJRFNfU0hWX0NPTFVNTjUJCSJBdHRyaWJ1dGUiCglJRFNfU0hWX0NPTFVNTjYJCSJHZXNhbXRncvbfZSIKCUlEU19TSFZfQ09MVU1ONwkJIkZyZWllciBTcGVpY2hlciIKCUlEU19TSFZfQ09MVU1OOAkJIk5hbWUiCglJRFNfU0hWX0NPTFVNTjkJCSJLb21tZW50YXIiCglJRFNfU0hWX0NPTFVNTjEwCSJCZXNpdHplciIKCUlEU19TSFZfQ09MVU1OMTEJIkdydXBwZSIKCUlEU19TSFZfQ09MVU1OX0RFTEZST00JIlVyc3BydW5nIgoJSURTX1NIVl9DT0xVTU5fREVMREFURQkiR2Vs9nNjaHQgYW0iCgogICAgICAgIC8qIHNwZWNpYWwgZm9sZGVycyAqLwoJSURTX0RFU0tUT1AJCSJEZXNrdG9wIgoJSURTX01ZQ09NUFVURVIJCSJBcmJlaXRzcGxhdHoiCglJRFNfUkVDWUNMRUJJTl9GT0xERVJfTkFNRSAgICAgICJQYXBpZXJrb3JiIgoJSURTX0NPTlRST0xQQU5FTAkiQ29udHJvbCBQYW5lbCIKCiAgICAgICAgLyogY29udGV4dCBtZW51cyAqLwoJSURTX1ZJRVdfTEFSR0UJCSImR3Jv32UgU3ltYm9sZSIKCUlEU19WSUVXX1NNQUxMCQkiJktsZWluZSBTeW1ib2xlIgoJSURTX1ZJRVdfTElTVAkJIiZMaXN0ZSIKCUlEU19WSUVXX0RFVEFJTFMJIiZEZXRhaWxzIgoJSURTX1NFTEVDVAkJIkF1c3fkaGxlbiIKCUlEU19PUEVOCQki1mZmbmVuIgoKCUlEU19DUkVBVEVGT0xERVJfREVOSUVEICJFcyBrb25udGUga2VpbiBuZXVlcyBWZXJ6ZWljaG5pcyBlcnN0ZWxsdCB3ZXJkZW46IFp1Z3JpZmYgdmVyd2VpZ2VydC4iCglJRFNfQ1JFQVRFRk9MREVSX0NBUFRJT04gIkVzIHRyYXQgZWluIEZlaGxlciBiZWltIEVyc3RlbGxlbiBlaW5lcyBuZXVlbiBWZXJ6ZWljaG5pc3NlcyBhdWYiCglJRFNfREVMRVRFSVRFTV9DQVBUSU9OICJCZXN05HRpZ3VuZzogT2JqZWt0IGz2c2NoZW4iCglJRFNfREVMRVRFRk9MREVSX0NBUFRJT04gIkJlc3TkdGlndW5nOiBWZXJ6ZWljaG5pcyBs9nNjaGVuIgoJSURTX0RFTEVURUlURU1fVEVYVCAiU2luZCBTaWUgc2ljaCBzaWNoZXIsIGRhc3MgU2llICclMScgbPZzY2hlbiBt9mNodGVuPyIKCUlEU19ERUxFVEVNVUxUSVBMRV9URVhUICJTaW5kIFNpZSBzaWNoIHNpY2hlciwgZGFzcyBTaWUgZGllc2UgJTEgT2JqZWt0ZSBs9nNjaGVuIG32Y2h0ZW4/IgoJSURTX0RFTEVURVNFTEVDVEVEX1RFWFQgIlNpbmQgU2llIHNpY2ggc2ljaGVyLCBkYXNzIFNpZSBkaWUgYXVzZ2V35GhsdGVuIE9iamVrdGUgbPZzY2hlbiBt9mNodGVuPyIKCUlEU19UUkFTSElURU1fVEVYVCAiU2luZCBTaWUgc2ljaCBzaWNoZXIsIGRhc3MgU2llICclMScgaW4gZGVuIFBhcGllcmtvcmIgdmVyc2NoaWViZW4gbfZjaHRlbj8iCglJRFNfVFJBU0hGT0xERVJfVEVYVCAiU2luZCBTaWUgc2ljaCBzaWNoZXIsIGRhc3MgU2llICclMScgdW5kIHNlaW5lbiBJbmhhbHQgaW4gZGVuIFBhcGllcmtvcmIgdmVyc2NoaWViZW4gbfZjaHRlbj8iCglJRFNfVFJBU0hNVUxUSVBMRV9URVhUICJTaW5kIFNpZSBzaWNoIHNpY2hlciwgZGFzcyBTaWUgZGllc2UgJTEgRGF0ZWllbiBpbiBkZW4gUGFwaWVya29yYiB2ZXJzY2hpZWJlbiBt9mNodGVuPyIKCUlEU19DQU5UVFJBU0hfVEVYVCAiRGFzIE9iamVrdCAnJTEnIGthbm4gbmljaHQgaW4gZGVuIFBhcGllcmtvcmIgdmVyc2Nob2JlbiB3ZXJkZW4uXG5cbiBN9mNodGVuIFNpZSBlcyBzdGF0dGRlc3NlbiBs9nNjaGVuPyIKCUlEU19PVkVSV1JJVEVGSUxFX1RFWFQgIkRlciBPcmRuZXIgZW50aORsdCBiZXJlaXRzIGVpbmUgRGF0ZWkgbmFtZW5zICclMScuXG5cbiBXb2xsZW4gU2llIGRpZSBEYXRlaSBlcnNldHplbj8iCglJRFNfT1ZFUldSSVRFRklMRV9DQVBUSU9OICJCZXN05HRpZ3VuZzogRGF0ZWkg/GJlcnNjaHJlaWJlbiIKCUlEU19PVkVSV1JJVEVGT0xERVJfVEVYVCAiSW0gVmVyemVpY2huaXMgYmVmaW5kZXQgc2ljaCBiZXJlaXRzIGVpbiBPcmRuZXIgbmFtZW5zICclMScuXG5cbiJcCgkiV2VubiBkaWUgRGF0ZWllbiBpbSBaaWVsb3JkbmVyIGRpZSBnbGVpY2hlbiBOYW1lbiBoYWJlbiwgd2llIGRpZSBpbSBhdXNnZXfkaGx0ZW4gT3JkbmVyLCB3ZXJkZW4gc2llIGVyc2V0enQuXG5cblwKCU32Y2h0ZW4gc2llIHRyb3R6ZGVtIGZvcnRmYWhyZW4/IgoKICAgICAgICAvKiBtZXNzYWdlIGJveCBzdHJpbmdzICovCiAgICAgICAgSURTX1JFU1RBUlRfVElUTEUgICAgICAgIk5ldXN0YXJ0ZW4iCiAgICAgICAgSURTX1JFU1RBUlRfUFJPTVBUICAgICAgIk32Y2h0ZW4gU2llLCBkYXNzIGVpbiBzaW11bGllcnRlciBXaW5kb3dzIE5ldXN0YXJ0IGR1cmNoZ2Vm/GhydCB3aXJkPyIKICAgICAgICBJRFNfU0hVVERPV05fVElUTEUgICAgICAiQmVlbmRlbiIKICAgICAgICBJRFNfU0hVVERPV05fUFJPTVBUICAgICAiTfZjaHRlbiBTaWUgZGllIGFrdHVlbGxlIFdpbmUgU2l0enVuZyBiZWVuZGVuPyIKCiAgICAgICAgLyogc2hlbGwgZm9sZGVyIHBhdGggZGVmYXVsdCB2YWx1ZXMgKi8KCUlEU19QUk9HUkFNUwkJIlN0YXJ0bWVu/FxcUHJvZ3JhbW1lIgoJSURTX1BFUlNPTkFMCQkiRWlnZW5lIERhdGVpZW4iCglJRFNfRkFWT1JJVEVTCQkiRmF2b3JpdGVuIgoJSURTX1NUQVJUVVAJCSJTdGFydG1lbvxcXFByb2dyYW1tZVxcQXV0b3N0YXJ0IgoJSURTX1JFQ0VOVAkJIlJlY2VudCIKCUlEU19TRU5EVE8JCSJTZW5kVG8iCglJRFNfU1RBUlRNRU5VCQkiU3RhcnRtZW78IgoJSURTX01ZTVVTSUMJCSJNZWluZSBNdXNpayIKCUlEU19NWVZJREVPCQkiTWVpbmUgVmlkZW9zIgoJSURTX0RFU0tUT1BESVJFQ1RPUlkJIkRlc2t0b3AiCglJRFNfTkVUSE9PRAkJIk5ldHp3ZXJrdW1nZWJ1bmciCglJRFNfVEVNUExBVEVTCQkiVm9ybGFnZW4iCglJRFNfQVBQREFUQQkJIkFud2VuZHVuZ3NkYXRlbiIKCUlEU19QUklOVEhPT0QJCSJEcnVja3VtZ2VidW5nIgoJSURTX0xPQ0FMX0FQUERBVEEJIkxva2FsZSBFaW5zdGVsbHVuZ2VuXFxBbndlbmR1bmdzZGF0ZW4iCglJRFNfSU5URVJORVRfQ0FDSEUJIkxva2FsZSBFaW5zdGVsbHVuZ2VuXFxUZW1wb3JhcnkgSW50ZXJuZXQgRmlsZXMiCglJRFNfQ09PS0lFUwkJIkNvb2tpZXMiCglJRFNfSElTVE9SWQkJIkxva2FsZSBFaW5zdGVsbHVuZ2VuXFxWZXJsYXVmIgoJSURTX1BST0dSQU1fRklMRVMJIlByb2dyYW1tZSIKCUlEU19NWVBJQ1RVUkVTCQkiRWlnZW5lIEJpbGRlciIKCUlEU19QUk9HUkFNX0ZJTEVTX0NPTU1PTiAiUHJvZ3JhbW1lXFxHZW1laW5zYW1lIERhdGVpZW4iCglJRFNfQ09NTU9OX0RPQ1VNRU5UUwkiRG9rdW1lbnRlIgoJSURTX0FETUlOVE9PTFMJCSJTdGFydG1lbvxcXFByb2dyYW1tZVxcVmVyd2FsdHVuZyIKCUlEU19DT01NT05fTVVTSUMJIkRva3VtZW50ZVxcRWlnZW5lIE11c2lrIgoJSURTX0NPTU1PTl9QSUNUVVJFUwkiRG9rdW1lbnRlXFxFaWdlbmUgQmlsZGVyIgoJSURTX0NPTU1PTl9WSURFTwkiRG9rdW1lbnRlXFxFaWdlbmUgVmlkZW9zIgoJSURTX0NEQlVSTl9BUkVBCQkiTG9rYWxlIEVpbnN0ZWxsdW5nZW5cXEFud2VuZHVuZ3NkYXRlblxcTWljcm9zb2Z0XFxDRCBCdXJuaW5nIgoKCUlEU19ORVdGT0xERVIJCSJOZXVlciBPcmRuZXIiCgoJSURTX0NQQU5FTF9USVRMRQkiV2luZSBDb250cm9sIFBhbmVsIgoJSURTX0NQQU5FTF9OQU1FCQkiTmFtZSIKCUlEU19DUEFORUxfREVTQ1JJUFRJT04JIkRlc2NyaXB0aW9uIgp9CgpTVFJJTkdUQUJMRQp7CklEU19MSUNFTlNFX0NBUFRJT04sICAgICAgICAgICAgIldpbmUgTGljZW5zZSIKSURTX0xJQ0VOU0UsCiJXaW5lIGlzdCBmcmVpZSBTb2Z0d2FyZTsgU2llIGT8cmZlbiBzaWUgdW50ZXIgZGVuIEJlZGluZ3VuZ2VuIFwKZGVyIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgd2VsY2hlIHZvbiBkZXIgXApGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gdmVy9mZmZW50bGljaHQgd3VyZGU7IHdlaXRlciB2ZXJ0ZWlsZW4gXAp1bmQvb2RlciBtb2RpZml6aWVyZW4gZ2Vt5N8gVmVyc2lvbiAyLjEgZGVyIExpemVueiwgb2RlciBcCihuYWNoIGlocmVuIEVybWVzc2VuKSBqZWRlciBzcOR0ZXJlbiBWZXJzaW9uLlxuXG5cCldpbmUgd2lyZCBtaXQgZGVyIEhvZmZudW5nIHZlcnRlaWx0IGRhcyBlcyBzaWNoIGFscyBu/HR6bGljaCBlcndlaXN0LiBcCldpbmUga29tbXQgYWJlciBPSE5FIEpFR0xJQ0hFIEdBUkFOVElFIGRhaGVyOyBzb2dhciBvaG5lIGVpbmVyIFwKYW5nZWRldXRldGVuIEdhcmFudGllIGRlciBNQVJLVEfETkdJR0tFSVQgb2RlciBkZXIgRUlHTlVORyBG3FIgRUlORU4gXApCRVNUSU1NVEVOIE5VVFpFTi4gU2VoZW4gU2llIHNpY2ggZGllIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBcCmFuIGb8ciBtZWhyIERldGFpbHMuXG5cblwKU2llIHNvbGx0ZW4gbWl0IGRpZXNlciBCaWJsaW90aGVrIGF1Y2ggZWluZSBLb3BpZSBkZXIgXApHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZXJoYWx0ZW4gaGFiZW47IHdlbm4gbmljaHQgc2NocmVpYmVuIFwKU2llIGRlciBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIFwKSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4iCn0K