LyoKICogQ29weXJpZ2h0IDE5OTggSnVlcmdlbiBTY2htaWVkCiAqIENvcHlyaWdodCAyMDA4IERhbmllbCBOeWxhbmRlciA8cG9AZGFuaWVsbnlsYW5kZXIuc2U+CiAqIENvcHlyaWdodCAyMDEwIEFuZGVycyBKb25zc29uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCiNpbmNsdWRlICJzaHJlc2RlZi5oIgoKTEFOR1VBR0UgTEFOR19TV0VESVNILCBTVUJMQU5HX05FVVRSQUwKCk1FTlVfMDAxIE1FTlUKQkVHSU4KCU1FTlVJVEVNICImU3RvcmEgaWtvbmVyIiwJRkNJRE1fU0hWSUVXX0JJR0lDT04KCU1FTlVJVEVNICJTJm3lIGlrb25lciIsCUZDSURNX1NIVklFV19TTUFMTElDT04KCU1FTlVJVEVNICImTGlzdGEiLAkJRkNJRE1fU0hWSUVXX0xJU1RWSUVXCglNRU5VSVRFTSAiJkRldGFsamVyIiwJCUZDSURNX1NIVklFV19SRVBPUlRWSUVXCkVORAoKLyoKIHNoZWxsdmlldyBiYWNrZ3JvdW5kIG1lbnUKKi8KTUVOVV8wMDIgTUVOVQpCRUdJTgoJUE9QVVAgIiIKCUJFR0lOCgkgIFBPUFVQICImVmlzYSIKCSAgQkVHSU4KCSAgICBNRU5VSVRFTSAiJlN0b3JhIGlrb25lciIsCUZDSURNX1NIVklFV19CSUdJQ09OCgkgICAgTUVOVUlURU0gIlMmbeUgaWtvbmVyIiwJRkNJRE1fU0hWSUVXX1NNQUxMSUNPTgoJICAgIE1FTlVJVEVNICImTGlzdGEiLAkJRkNJRE1fU0hWSUVXX0xJU1RWSUVXCgkgICAgTUVOVUlURU0gIiZEZXRhbGplciIsCUZDSURNX1NIVklFV19SRVBPUlRWSUVXCgkgIEVORAoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgUE9QVVAgIk9yZG5hICZpa29uZXIiCgkgIEJFR0lOCgkgICAgTUVOVUlURU0gIkVmdGVyICZuYW1uIiwJMHgzMAkvKiBjb2x1bW4gMCAqLwoJICAgIE1FTlVJVEVNICJFZnRlciAmdHlwIiwJMHgzMgkvKiBjb2x1bW4gMiAqLwoJICAgIE1FTlVJVEVNICJFZnRlciAmc3RvcmxlayIsCTB4MzEJLyogLi4uICovCgkgICAgTUVOVUlURU0gIkVmdGVyICZkYXR1bSIsCTB4MzMKCSAgICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgICBNRU5VSVRFTSAiT3JkbmEgJmF1dG9tYXRpc2t0IiwJRkNJRE1fU0hWSUVXX0FVVE9BUlJBTkdFCgkgIEVORAoJICBNRU5VSVRFTSAiUmFkYSB1cHAgaWtvbmVyIiwJRkNJRE1fU0hWSUVXX1NOQVBUT0dSSUQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJVcHBkYXRlcmEiLAkJRkNJRE1fU0hWSUVXX1JFRlJFU0gKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJLbGlzdHJhIGluIiwJCUZDSURNX1NIVklFV19JTlNFUlQKCSAgTUVOVUlURU0gIktsaXN0cmEgaW4gc29tIGdlbnbkZyIsCUZDSURNX1NIVklFV19JTlNFUlRMSU5LCgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBQT1BVUCAiTnkiCgkgIEJFR0lOCgkgICAgTUVOVUlURU0gIk55ICZtYXBwIiwJRkNJRE1fU0hWSUVXX05FV0ZPTERFUgoJICAgIE1FTlVJVEVNICJOeSAmZ2VuduRnIiwJRkNJRE1fU0hWSUVXX05FV0xJTksKCSAgICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgRU5ECgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBNRU5VSVRFTSAiRWdlbnNrYXBlciIsCUZDSURNX1NIVklFV19QUk9QRVJUSUVTCglFTkQKRU5ECgovKgogc2hlbGx2aWV3IGl0ZW0gbWVudQoqLwpNRU5VX1NIVl9GSUxFIE1FTlUKQkVHSU4KCVBPUFVQICIiCglCRUdJTgoJICBNRU5VSVRFTSAiJlbkbGoiCQlGQ0lETV9TSFZJRVdfT1BFTgoJICBNRU5VSVRFTSAiVXQmZm9yc2thIiwJCUZDSURNX1NIVklFV19FWFBMT1JFCgkgIE1FTlVJVEVNICIm1nBwbmEiLAkJRkNJRE1fU0hWSUVXX09QRU4KCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJLbGlwcCAmdXQiLAkJRkNJRE1fU0hWSUVXX0NVVAoJICBNRU5VSVRFTSAiJktvcGllcmEiLAkJRkNJRE1fU0hWSUVXX0NPUFkKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJTa2FwYSAmbORuayIsCUZDSURNX1NIVklFV19DUkVBVEVMSU5LCgkgIE1FTlVJVEVNICImVGEgYm9ydCIsCQlGQ0lETV9TSFZJRVdfREVMRVRFCgkgIE1FTlVJVEVNICImQnl0IG5hbW4iLAkJRkNJRE1fU0hWSUVXX1JFTkFNRQoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIiZFZ2Vuc2thcGVyIiwJRkNJRE1fU0hWSUVXX1BST1BFUlRJRVMKCUVORApFTkQKCk1FTlVfQ1BBTkVMIE1FTlUKQkVHSU4KICAgIFBPUFVQICImQXJraXYiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBJnZzbHV0YSIsIElETV9DUEFORUxfRVhJVAogICAgRU5ECgogICAgUE9QVVAgIiZWaXNhIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiU3Qmb3JhIGlrb25lciIsIEZDSURNX1NIVklFV19CSUdJQ09OCiAgICAgICAgTUVOVUlURU0gIlMmbeUgaWtvbmVyIiwgRkNJRE1fU0hWSUVXX1NNQUxMSUNPTgogICAgICAgIE1FTlVJVEVNICImTGlzdGEiLCBGQ0lETV9TSFZJRVdfTElTVFZJRVcKICAgICAgICBNRU5VSVRFTSAiJkRldGFsamVyIiwgRkNJRE1fU0hWSUVXX1JFUE9SVFZJRVcKICAgIEVORAoKICAgIFBPUFVQICImSGrkbHAiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImT20gS29udHJvbGxwYW5lbGVuLi4uIiwgSURNX0NQQU5FTF9BQk9VVAogICAgRU5ECkVORAoKU0hCUlNGT1JGT0xERVJfTVNHQk9YIERJQUxPRyAxNSwgNDAsIDE4OCwgMTkyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVSB8IERTX01PREFMRlJBTUUgfCBEU19TRVRGT05UIHwgRFNfM0RMT09LCkNBUFRJT04gIkJs5GRkcmEgZWZ0ZXIgbWFwcCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBERUZQVVNIQlVUVE9OICJPSyIsIDEsIDgwLCAxNzYsIDUwLCAxMiwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQXZicnl0IiwgMiwgMTM0LCAxNzYsIDUwLCAxMiwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBMVEVYVCAiIiwgSUREX1RJVExFLCA0LCA0LCAxODAsIDEyCiBMVEVYVCAiIiwgSUREX1NUQVRVUywgNCwgMjUsIDE4MCwgMTIKIENPTlRST0wgIiIsIElERF9UUkVFVklFVywgIlN5c1RyZWVWaWV3MzIiLAoJVFZTX0hBU0JVVFRPTlMgfCBUVlNfSEFTTElORVMgfCBUVlNfTElORVNBVFJPT1QgfAoJV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwKCTQsIDQwLCAxODAsIDEyMAp9CgpTSE5FV0JSU0ZPUkZPTERFUl9NU0dCT1ggRElBTE9HIDE1LCA0MCwgMjE4LCAxOTYKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VIHwgV1NfU0laRUJPWCB8IERTX01PREFMRlJBTUUgfCBEU19TRVRGT05UIHwgRFNfM0RMT09LCkNBUFRJT04gIkJs5GRkcmEgZWZ0ZXIgbWFwcCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBMVEVYVCAiIiwgSUREX1RJVExFLCAxMCwgOCwgMTk4LCAyNAogTFRFWFQgIiIsIElERF9TVEFUVVMsIDEwLCAyNSwgMTk4LCAxMgogTFRFWFQgIk1hcHA6IiwgSUREX0ZPTERFUiwgMTAsIDE1NiwgNDAsIDEyCiBDT05UUk9MICIiLCBJRERfVFJFRVZJRVcsICJTeXNUcmVlVmlldzMyIiwKCVRWU19IQVNCVVRUT05TIHwgVFZTX0hBU0xJTkVTIHwgVFZTX0xJTkVTQVRST09UIHwKCVdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsCgkxMiwgMzgsIDE5NCwgMTA1CiBFRElUVEVYVCBJRERfRk9MREVSVEVYVCwgNDYsIDE1MCwgMTYwLCAxNCwgV1NfQk9SREVSIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJOeSAmbWFwcCIsIElERF9NQUtFTkVXRk9MREVSLCAxMiwgMTc0LCA3MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCAxMDIsIDE3NCwgNTAsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJBdmJyeXQiLCBJRENBTkNFTCwgMTU2LCAxNzQsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCn0KClNIRUxMX1lFU1RPQUxMX01TR0JPWCBESUFMT0cgMjAwLCAxMDAsIDI4MCwgOTAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIk1lZGRlbGFuZGUiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgREVGUFVTSEJVVFRPTiAiJkphIiwgSURZRVMsIDM0LCA2OSwgNTMsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gIkphIHRpbGwgJmFsbHQiLCBJRERfWUVTVE9BTEwsIDkyLCA2OSwgNjUsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gIiZOZWoiLCBJRE5PLCAxNjIsIDY5LCA1MywgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAiQXZicnkmdCIsIElEQ0FOQ0VMLCAyMjAsIDY5LCA1MywgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgSUNPTiAiIiwgSUREX0lDT04sIDEwLCAxMCwgMTYsIDE2CiAgICBMVEVYVCAiIiwgSUREX01FU1NBR0UsIDQwLCAxMCwgMjM4LCA1MiwgMAp9CgpTSEVMTF9BQk9VVF9NU0dCT1ggRElBTE9HIDE1LCA0MCwgMjIwLCAxNTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIk9tICVzIgpGT05UIDEwLCAiTVMgU2hlbGwgRGxnIgp7CiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDE1MywgMTMzLCA2MCwgMTIsIFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIldpbmUtJmxpY2Vucy4uLiIsIElEQ19BQk9VVF9MSUNFTlNFLCAxNTMsIDExMywgNjAsIDEyLCBXU19UQUJTVE9QCiBMSVNUQk9YIElEQ19BQk9VVF9MSVNUQk9YLCA4LCA2NSwgMTM3LCA4MiwgTEJTX05PVElGWSB8IFdTX1ZTQ1JPTEwgfCBXU19CT1JERVIKIElDT04gIiIsIHN0YzEsIDEwLCAxMCwgMzAsIDMwCiBMVEVYVCAiIiwgSURDX0FCT1VUX1NUQVRJQ19URVhUMSwgNDAsIDEwLCAxNzAsIDEwCiBMVEVYVCAiIiwgSURDX0FCT1VUX1NUQVRJQ19URVhUMiwgNDAsIDIyLCAxNzAsIDEwCiBMVEVYVCAiS/ZyIHDlICVzIiwgSURDX0FCT1VUX1NUQVRJQ19URVhUMywgNDIsIDM0LCAxNzAsIDEwCiBMVEVYVCAiV2luZSBoYWRlIGludGUgdmFyaXQgbfZqbGlndCB1dGFuIGRlc3NhIHBlcnNvbmVyOiIsIElEQ19BQk9VVF9XSU5FX1RFWFQsIDgsIDU0LCAyMDQsIDEwCn0KClNIRUxMX1JVTl9ETEcgRElBTE9HIDAsIDAsIDIyNywgOTUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBJQ09OICIiLCAxMjI5NywgNywgMTEsIDE4LCAyMCwgV1NfVklTSUJMRQogTFRFWFQgIlNrcml2IG5hbW5ldCBw5SBldHQgcHJvZ3JhbSwgZW4gbWFwcCBlbGxlciBldHQgZG9rdW1lbnQgb2NoIFdpbmUga29tbWVyIGF0dCD2cHBuYSBkZXQg5XQgZGlnLiIsIDEyMjg5LCAzNiwgMTEsIDE4MiwgMTgKIExURVhUICIm1nBwbmE6IiwgMTIzMDUsIDcsIDM5LCAyNCwgMTAKIENPTlRST0wgIiIsIDEyMjk4LCAiQ09NQk9CT1giLCBXU19UQUJTVE9QIHwgV1NfR1JPVVAgfCBXU19WU0NST0xMIHwgV1NfVklTSUJMRSB8IENCU19ESVNBQkxFTk9TQ1JPTEwgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfRFJPUERPV04sIDM2LCAzNywgMTgzLCAxMDAKIERFRlBVU0hCVVRUT04gIk9LIiwgSURPSywgNjIsIDYzLCA1MCwgMTQsIFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkF2YnJ5dCIsIElEQ0FOQ0VMLCAxMTYsIDYzLCA1MCwgMTQsIFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIiZCbORkZHJhLi4uIiwgMTIyODgsIDE3MCwgNjMsIDUwLCAxNCwgV1NfVEFCU1RPUAp9CgpTVFJJTkdUQUJMRQp7CiAgICAgICAgLyogY29sdW1ucyBpbiB0aGUgc2hlbGx2aWV3ICovCglJRFNfU0hWX0NPTFVNTjEJCSJGaWwiCglJRFNfU0hWX0NPTFVNTjIJCSJTdG9ybGVrIgoJSURTX1NIVl9DT0xVTU4zCQkiVHlwIgoJSURTX1NIVl9DT0xVTU40CQkixG5kcmFkIgoJSURTX1NIVl9DT0xVTU41CQkiRWdlbnNrYXBlciIKCUlEU19TSFZfQ09MVU1ONgkJIlN0b3JsZWsiCglJRFNfU0hWX0NPTFVNTjcJCSJMZWRpZ3QgdXRyeW1tZSIKCUlEU19TSFZfQ09MVU1OOAkJIk5hbW4iCglJRFNfU0hWX0NPTFVNTjkJCSJLb21tZW50YXJlciIKCUlEU19TSFZfQ09MVU1OMTAJIsRnYXJlIgoJSURTX1NIVl9DT0xVTU4xMQkiR3J1cHAiCglJRFNfU0hWX0NPTFVNTl9ERUxGUk9NCSJVcnNwcnVuZ2xpZyBwbGF0cyIKCUlEU19TSFZfQ09MVU1OX0RFTERBVEUJIkJvcnR0YWduaW5nc2RhdHVtIgoJSURTX1NIVl9DT0xfRE9DUyAgICAgICAgIkRva3VtZW50IgoJSURTX1NIVl9DT0xfU1RBVFVTICAgICAgIlN0YXR1cyIKCUlEU19TSFZfQ09MX0xPQ0FUSU9OICAgICJQbGF0cyIKCUlEU19TSFZfQ09MX01PREVMICAgICAgICJNb2RlbGwiCgogICAgICAgIC8qIHNwZWNpYWwgZm9sZGVycyAqLwoJSURTX0RFU0tUT1AJCSJTa3JpdmJvcmQiCglJRFNfTVlDT01QVVRFUgkJIk1pbiBkYXRvciIKCUlEU19SRUNZQ0xFQklOX0ZPTERFUl9OQU1FICAgICAgIlBhcHBlcnNrb3JnIgoJSURTX0NPTlRST0xQQU5FTAkiS29udHJvbGxwYW5lbCIKCiAgICAgICAgLyogY29udGV4dCBtZW51cyAqLwoJSURTX1ZJRVdfTEFSR0UJCSImU3RvcmEgaWtvbmVyIgoJSURTX1ZJRVdfU01BTEwJCSJTJm3lIGlrb25lciIKCUlEU19WSUVXX0xJU1QJCSImTGlzdGEiCglJRFNfVklFV19ERVRBSUxTCSImRGV0YWxqZXIiCglJRFNfU0VMRUNUCQkiVuRsaiIKCUlEU19PUEVOCQki1nBwbmEiCgoJSURTX0NSRUFURUZPTERFUl9ERU5JRUQgIkt1bmRlIGludGUgc2thcGEgbnkgbWFwcDogdGlsbGflbmcgbmVrYWQuIgoJSURTX0NSRUFURUZPTERFUl9DQVBUSU9OICJFdHQgZmVsIHVwcHN0b2QgdW5kZXIgc2thcGFuZGUgYXYgbnkgbWFwcCIKCUlEU19ERUxFVEVJVEVNX0NBUFRJT04gIkJla3LkZnRhIGZpbGJvcnR0YWduaW5nIgoJSURTX0RFTEVURUZPTERFUl9DQVBUSU9OICJCZWty5GZ0YSBib3J0dGFnbmluZyBhdiBtYXBwIgoJSURTX0RFTEVURUlURU1fVEVYVCAixHIgZHUgc+RrZXIgZHUgdmlsbCB0YSBib3J0IKslMbs/IgoJSURTX0RFTEVURU1VTFRJUExFX1RFWFQgIsRyIGR1IHPka2VyIGR1IHZpbGwgdGEgYm9ydCBkZXNzYSAlMSBlbGVtZW50PyIKCUlEU19ERUxFVEVTRUxFQ1RFRF9URVhUICLEciBkdSBz5GtlciBkdSB2aWxsIHRhIGJvcnQgdmFsdCBlbGVtZW50PyIKCUlEU19UUkFTSElURU1fVEVYVCAixHIgZHUgc+RrZXIgZHUgdmlsbCBz5G5kYSCrJTG7IHRpbGwgcGFwcGVyc2tvcmdlbj8iCglJRFNfVFJBU0hGT0xERVJfVEVYVCAixHIgZHUgc+RrZXIgZHUgdmlsbCBz5G5kYSCrJTG7IG9jaCBhbGx0IGlubmVo5WxsIHRpbGwgcGFwcGVyc2tvcmdlbj8iCglJRFNfVFJBU0hNVUxUSVBMRV9URVhUICLEciBkdSBz5GtlciBkdSB2aWxsIHPkbmRhIGRlc3NhICUxIGVsZW1lbnRlbiB0aWxsIHBhcHBlcnNrb3JnZW4/IgoJSURTX0NBTlRUUkFTSF9URVhUICJFbGVtZW50ZXQgqyUxuyBrYW4gaW50ZSBz5G5kYXMgdGlsbCBwYXBwZXJza29yZ2VuLiBWaWxsIGR1IHRhIGJvcnQgZGV0IGkgc3TkbGxldD8iCglJRFNfT1ZFUldSSVRFRklMRV9URVhUICJEZW5uYSBtYXBwIGlubmVo5WxsZXIgcmVkYW4gZW4gZmlsIGthbGxhZCAnJTEnLlxuXG5WaWxsIGR1IHNrcml2YSD2dmVyIGRlbj8iCglJRFNfT1ZFUldSSVRFRklMRV9DQVBUSU9OICJCZWty5GZ0YSD2dmVyc2tyaXZuaW5nIGF2IGZpbCIKCUlEU19PVkVSV1JJVEVGT0xERVJfVEVYVCAiRGVubmEgbWFwcCBpbm5laOVsbGVyIHJlZGFuIGVuIG1hcHAga2FsbGFkICclMScuXG5cbiJcCgkgICAgIk9tIGZpbGVybmEgaSBt5WxtYXBwZW4gaGFyIHNhbW1hIG5hbW4gc29tIGZpbGVyIGkgZGVuIHZhbGRhXG4iXAoJICAgICJtYXBwZW4gc+Uga29tbWVyIGRlIGJsaSBlcnNhdHRhLiBWaWxsIGR1IORuZOUgZmx5dHRhIGVsbGVyIGtvcGllcmFcbiJcCgkgICAgIm1hcHBlbj8iCgogICAgICAgIC8qIG1lc3NhZ2UgYm94IHN0cmluZ3MgKi8KCUlEU19SRVNUQVJUX1RJVExFICAgICAgICJTdGFydGEgb20iCglJRFNfUkVTVEFSVF9QUk9NUFQgICAgICAiVmlsbCBkdSBzaW11bGVyYSBlbiBvbXN0YXJ0IGF2IFdpbmRvd3M/IgoJSURTX1NIVVRET1dOX1RJVExFICAgICAgIkF2c2x1dGEiCglJRFNfU0hVVERPV05fUFJPTVBUICAgICAiVmlsbCBkdSBhdnNsdXRhIFdpbmU/IgoKICAgICAgICAvKiBSdW4gRmlsZSBkaWFsb2cgKi8KCUlEU19SVU5ETEdfRVJST1IgICAgICAgICAgICJLdW5kZSBpbnRlIHZpc2EgS/ZyLWb2bnN0cmV0IChpbnRlcm50IGZlbCkiCglJRFNfUlVORExHX0JST1dTRV9FUlJPUiAgICAiS3VuZGUgaW50ZSB2aXNhIEJs5GRkcmEtZvZuc3RyZXQgKGludGVybnQgZmVsKSIKCUlEU19SVU5ETEdfQlJPV1NFX0NBUFRJT04gICJCbORkZHJhIgoJSURTX1JVTkRMR19CUk9XU0VfRklMVEVSICAgIlByb2dyYW1maWxlclwwKi5leGVcMEFsbGEgZmlsZXJcMCouKlwwXDAiCgogICAgICAgIC8qIHNoZWxsIGZvbGRlciBwYXRoIGRlZmF1bHQgdmFsdWVzICovCglJRFNfUFJPR1JBTVMgICAgICAgICAgICAgICAgIlN0YXJ0LW1lbnlcXFByb2dyYW0iCglJRFNfUEVSU09OQUwgICAgICAgICAgICAgICAgIk1pbmEgZG9rdW1lbnQiCglJRFNfRkFWT1JJVEVTICAgICAgICAgICAgICAgIkZhdm9yaXRlciIKCUlEU19TVEFSVFVQICAgICAgICAgICAgICAgICAiU3RhcnQtbWVueVxcUHJvZ3JhbVxcVXBwc3RhcnQiCglJRFNfUkVDRU5UICAgICAgICAgICAgICAgICAgIlNlbmFzdGUiCglJRFNfU0VORFRPICAgICAgICAgICAgICAgICAgIlNlbmRUbyIKCUlEU19TVEFSVE1FTlUgICAgICAgICAgICAgICAiU3RhcnQtbWVueSIKCUlEU19NWU1VU0lDICAgICAgICAgICAgICAgICAiTWluIG11c2lrIgoJSURTX01ZVklERU8gICAgICAgICAgICAgICAgICJNaW5hIHZpZGVva2xpcHAiCglJRFNfREVTS1RPUERJUkVDVE9SWSAgICAgICAgIlNrcml2Ym9yZCIKCUlEU19ORVRIT09EICAgICAgICAgICAgICAgICAiTuR0dmVya2V0IgoJSURTX1RFTVBMQVRFUyAgICAgICAgICAgICAgICJNYWxsYXIiCglJRFNfQVBQREFUQSAgICAgICAgICAgICAgICAgIlByb2dyYW1kYXRhIgoJSURTX1BSSU5USE9PRCAgICAgICAgICAgICAgICJTa3JpdmFyZSIKCUlEU19MT0NBTF9BUFBEQVRBICAgICAgICAgICAiTG9rYWxhIGluc3TkbGxuaW5nYXJcXFByb2dyYW1kYXRhIgoJSURTX0lOVEVSTkVUX0NBQ0hFICAgICAgICAgICJMb2thbGEgaW5zdORsbG5pbmdhclxcVGVtcG9yYXJ5IEludGVybmV0IEZpbGVzIgoJSURTX0NPT0tJRVMgICAgICAgICAgICAgICAgICJDb29raWVzIgoJSURTX0hJU1RPUlkgICAgICAgICAgICAgICAgICJMb2thbGEgaW5zdORsbG5pbmdhclxcVGlkaWdhcmUiCglJRFNfUFJPR1JBTV9GSUxFUyAgICAgICAgICAgIlByb2dyYW0iCglJRFNfUFJPR1JBTV9GSUxFU1g4NiAgICAgICAgIlByb2dyYW0gKHg4NikiCglJRFNfTVlQSUNUVVJFUyAgICAgICAgICAgICAgIk1pbmEgYmlsZGVyIgoJSURTX1BST0dSQU1fRklMRVNfQ09NTU9OICAgICJQcm9ncmFtXFxHZW1lbnNhbW1hIGZpbGVyIgoJSURTX1BST0dSQU1fRklMRVNfQ09NTU9OWDg2ICJQcm9ncmFtICh4ODYpXFxHZW1lbnNhbW1hIGZpbGVyIgoJSURTX0NPTU1PTl9ET0NVTUVOVFMgICAgICAgICJEb2t1bWVudCIKCUlEU19BRE1JTlRPT0xTICAgICAgICAgICAgICAiU3RhcnQtbWVueVxcUHJvZ3JhbVxcQWRtaW5pc3RyYXRpb25zdmVya3R5ZyIKCUlEU19DT01NT05fTVVTSUMgICAgICAgICAgICAiTXVzaWsiCglJRFNfQ09NTU9OX1BJQ1RVUkVTICAgICAgICAgIkJpbGRlciIKCUlEU19DT01NT05fVklERU8gICAgICAgICAgICAiVmlkZW9rbGlwcCIKCUlEU19DREJVUk5fQVJFQSAgICAgICAgICAgICAiTG9rYWxhIGluc3TkbGxuaW5nYXJcXFByb2dyYW1kYXRhXFxNaWNyb3NvZnRcXENELWJy5G5uaW5nIgoJSURTX0NPTlRBQ1RTICAgICAgICAgICAgICAgICJLb250YWt0ZXIiCglJRFNfTElOS1MgICAgICAgICAgICAgICAgICAgIkzkbmthciIKCUlEU19QSE9UT19BTEJVTVMgICAgICAgICAgICAiQmlsZGVyXFxTbGlkZSBTaG93cyIKCUlEU19QTEFZTElTVFMgICAgICAgICAgICAgICAiTXVzaWtcXFBsYXlsaXN0cyIKCUlEU19QVUJMSUNfRE9XTkxPQURTICAgICAgICAiTmVkbGFkZG5pbmdhciIKCUlEU19QVUJMSUNfR0FNRV9UQVNLUyAgICAgICAiTWljcm9zb2Z0XFxXaW5kb3dzXFxHYW1lRXhwbG9yZXIiCglJRFNfUFVCTElDX0xJQlJBUklFUyAgICAgICAgIk1pY3Jvc29mdFxcV2luZG93c1xcTGlicmFyaWVzIgoJSURTX1BVQkxJQ19SSU5HVE9ORVMgICAgICAgICJNaWNyb3NvZnRcXFdpbmRvd3NcXFJpbmdzaWduYWxlciIKCUlEU19TQU1QTEVfTVVTSUMgICAgICAgICAgICAiTXVzaWtcXFNhbXBsZSBNdXNpYyIKCUlEU19TQU1QTEVfUElDVFVSRVMgICAgICAgICAiQmlsZGVyXFxTYW1wbGUgUGljdHVyZXMiCglJRFNfU0FNUExFX1BMQVlMSVNUUyAgICAgICAgIk11c2lrXFxTYW1wbGUgUGxheWxpc3RzIgoJSURTX1NBTVBMRV9WSURFT1MgICAgICAgICAgICJWaWRlb2tsaXBwXFxTYW1wbGUgVmlkZW9zIgoJSURTX1NBVkVEX0dBTUVTICAgICAgICAgICAgICJTcGFyYWRlIHNwZWwiCglJRFNfU0FWRURfU0VBUkNIRVMgICAgICAgICAgIlP2a25pbmdhciIKCUlEU19VU0VSX1BST0ZJTEVTICAgICAgICAgICAiQW525G5kYXJlIgoJSURTX0NPTU1PTl9PRU1fTElOS1MgICAgICAgICJPRU0gTGlua3MiCglJRFNfRE9DVU1FTlRTICAgICAgICAgICAgICAgIkRva3VtZW50IgoJSURTX0RPV05MT0FEUyAgICAgICAgICAgICAgICJOZWRsYWRkbmluZ2FyIgoJSURTX0xPQ0FMX0FQUERBVEFfTE9XICAgICAgICJBcHBEYXRhXFxMb2NhbExvdyIKCglJRFNfTkVXRk9MREVSCQkiTnkgbWFwcCIKCglJRFNfQ1BBTkVMX1RJVExFICAgICAgICAgICAgIldpbmVzIGtvbnRyb2xscGFuZWwiCglJRFNfQ1BBTkVMX05BTUUgICAgICAgICAgICAgIk5hbW4iCglJRFNfQ1BBTkVMX0RFU0NSSVBUSU9OICAgICAgIkJlc2tyaXZuaW5nIgoKCUlEU19TSExFWEVDX05PQVNTT0MgICAgICAgICAiSW5nZXQgV2luZG93cy1wcm9ncmFtIORyIGluc3TkbGx0IGb2ciBhdHQg9nBwbmEgZGVubmEgZmlsdHlwLiIKfQoKU1RSSU5HVEFCTEUKewpJRFNfTElDRU5TRV9DQVBUSU9OLCAgICAgICAgICAgICJXaW5lLWxpY2VucyIKSURTX0xJQ0VOU0UsCiJXaW5lIORyIGZyaSBwcm9ncmFtdmFyYTsgZHUga2FuIGRpc3RyaWJ1ZXJhIGRldCBvY2gvZWxsZXIgXArkbmRyYSBkZXQgZW5saWd0IHZpbGxrb3JlbiBpIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgXApMaWNlbnNlIHNvbSBkZW4gcHVibGljZXJhdHMgYXYgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgYW50aW5nZW4gXAp2ZXJzaW9uIDIuMSBhdiBsaWNlbnNlbiwgZWxsZXIgKG9tIGR1IHPlIPZuc2thcikgbuVnb24gc2VuYXJlIHZlcnNpb24uXG5cblwKV2luZSB1dGdlcyBpIGb2cmhvcHBuaW5nZW4gYXR0IGRldCBza2Ega29tbWEgdGlsbCBueXR0YSwgXAptZW4gVVRBTiBOxUdPTiBTT00gSEVMU1QgR0FSQU5USTsg5HZlbiB1dGFuIHVuZGVyZvZyc3TlZGQgZ2FyYW50aSBvbSBcClPETEpCQVJIRVQgZWxsZXIgTMRNUExJR0hFVCBG1lIgTsVHT1QgU1BFQ0lFTExUIMROREFNxUwuICBTZSBHTlUgXApMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm9nIgZmxlciBkZXRhbGplci5cblxuXApEdSBi9nIgaGEgZuV0dCBldHQgZXhlbXBsYXIgYXYgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBcCkxpY2Vuc2UgdGlsbHNhbW1hbnMgbWVkIFdpbmU7IG9tIGludGUsIHNrcml2IHRpbGw6IHRoZSBGcmVlIFNvZnR3YXJlIFwKRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4iCn0K