LyoKICogY3J5cHR1aSBkbGwgCWR1dGNoIHJlc291cmNlcwogKgogKiBDb3B5cmlnaHQgMjAwOSBGcmFucyBLb29sCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfRFVUQ0gsIFNVQkxBTkdfTkVVVFJBTAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKewogICAgSURTX0NFUlRJRklDQVRFICJDZXJ0aWZpY2FhdCIKICAgIElEU19DRVJUSUZJQ0FURUlORk9STUFUSU9OICJDZXJ0aWZpY2FhdCBpbmZvcm1hdGllIgogICAgSURTX0NFUlRfSU5GT19CQURfU0lHICJEaXQgY2VydGlmaWNhYXQgaGVlZnQgZWVuIGZvdXRpZXZlIGhhbmR0ZWtlbmluZy4gSGV0IGNlcnRpZmljYWF0IGthbiBnZXdpanppZ2Qgb2YgY29ycnVwdCB6aWpuLiIKICAgIElEU19DRVJUX0lORk9fVU5UUlVTVEVEX0NBICJEaXQgYmFzaXMgY2VydGlmaWNhYXQgd29yZHQgbmlldCB2ZXJ0cm91d2QuIE9tIGhldCB0ZSB2ZXJ0cm91d2VuLCB2b2VnIGhldCB0b2UgYWFuIHV3IHN5c3RlZW0ncyB2ZXJ0cm91d2RlIGJhc2lzIGNlcnRpZmljYXRlbm9wc2xhZy4iCiAgICBJRFNfQ0VSVF9JTkZPX1VOVFJVU1RFRF9ST09UICJEaXQgY2VydGlmaWNhYXQga29uIG5pZXQgd29yZGVuIGdldHJhY2VlcmQgbmFhciBlZW4gdmVydHJvdXdkIGJhc2lzIGNlcnRpZmljYWF0LiIKICAgIElEU19DRVJUX0lORk9fUEFSVElBTF9DSEFJTiAiRGUgdWl0Z2V2ZXIgdmFuIGRpdCBjZXJ0aWZpY2FhdCBrb24gbmlldCBnZXZvbmRlbiB3b3JkZW4uIgogICAgSURTX0NFUlRfSU5GT19CQURfUFVSUE9TRVMgIkRlIGRvZWxlaW5kZW4gdm9vciBkaXQgY2VydGlmaWNhYXQga29uZGVuIG5pZXQgZ2V2ZXJpZmllZXJkIHdvcmRlbi4iCiAgICBJRFNfQ0VSVF9JTkZPX1BVUlBPU0VTICJEaXQgY2VydGlmaWNhYXQgaXMgYmVkb2VsZCB2b29yIGRlIHZvbGdlbmRlIGRvZWxlaW5kZW46IgogICAgSURTX1NVQkpFQ1RfSEVBRElORyAiVmVyc3RyZWt0IGFhbjogIgogICAgSURTX0lTU1VFUl9IRUFESU5HICJVaXRnZWdldmVuIGRvb3I6ICIKICAgIElEU19WQUxJRF9GUk9NICJnZWxkaWcgdmFuYWYgIgogICAgSURTX1ZBTElEX1RPICIgdG90ICIKICAgIElEU19DRVJUSUZJQ0FURV9CQURfU0lHTkFUVVJFICJEaXQgY2VydGlmaWNhYXQgaGVlZnQgZWVuIGZvdXRpZXZlIGhhbmR0ZWtlbmluZy4iCiAgICBJRFNfQ0VSVElGSUNBVEVfQkFEX1RJTUUgIkRpdCBjZXJ0aWZpY2FhdCBpcyB2ZXJsb3BlbiBvZiBpcyBub2cgbmlldCBnZWxkaWcuIgogICAgSURTX0NFUlRJRklDQVRFX0JBRF9USU1FTkVTVCAiRGUgZ2VsZGlnaGVpZHNwZXJpb2RlIHZhbiBkaXQgY2VydGlmaWNhYXQgaXMgZ3JvdGVyIGRhbiBkaWUgdmFuIHppam4gdWl0Z2V2ZXIuIgogICAgSURTX0NFUlRJRklDQVRFX1JFVk9LRUQgIkRpdCBjZXJ0aWZpY2FhdCB3YXMgdGVydWdnZXJvZXBlbiBkb29yIGRlIHVpdGdldmVyLiIKICAgIElEU19DRVJUSUZJQ0FURV9WQUxJRCAiRGl0IGNlcnRpZmljYWF0IGlzIE9LLiIKICAgIElEU19GSUVMRCAiVmVsZCIKICAgIElEU19WQUxVRSAiV2FhcmRlIgogICAgSURTX0ZJRUxEU19BTEwgIjxBbGxlPiIKICAgIElEU19GSUVMRFNfVjEgIkFsbGVlbiB2ZXJzaWUgMSB2ZWxkZW4iCiAgICBJRFNfRklFTERTX0VYVEVOU0lPTlMgIkFsbGVlbiBleHRlbnNpZXMiCiAgICBJRFNfRklFTERTX0NSSVRJQ0FMX0VYVEVOU0lPTlMgIkFsbGVlbiBrcml0aWVrZSBleHRlbnNpZXMiCiAgICBJRFNfRklFTERTX1BST1BFUlRJRVMgIkFsbGVlbiBlaWdlbnNjaGFwcGVuIgogICAgSURTX0ZJRUxEX1ZFUlNJT04gIlZlcnNpZSIKICAgIElEU19GSUVMRF9TRVJJQUxfTlVNQkVSICJTZXJpZW51bW1lciIKICAgIElEU19GSUVMRF9JU1NVRVIgIlVpdGdldmVyIgogICAgSURTX0ZJRUxEX1ZBTElEX0ZST00gIkdlbGRpZyB2YW5hZiIKICAgIElEU19GSUVMRF9WQUxJRF9UTyAiR2VsZGlnIHRvdCIKICAgIElEU19GSUVMRF9TVUJKRUNUICJPbmRlcndlcnAiCiAgICBJRFNfRklFTERfUFVCTElDX0tFWSAiUHVibGlla2Ugc2xldXRlbCIKICAgIElEU19GSUVMRF9QVUJMSUNfS0VZX0ZPUk1BVCAiJXMgKCVkIGJpdHMpIgogICAgSURTX1BST1BfSEFTSCAiU0hBMSBoYXNoIgogICAgSURTX1BST1BfRU5IS0VZX1VTQUdFICJVaXRnZWJyZWlkIHNsZXV0ZWwgZ2VicnVpayAoZWlnZW5zY2hhcCkiCiAgICBJRFNfUFJPUF9GUklFTkRMWV9OQU1FICJOYWFtIGFsaWFzIgogICAgSURTX1BST1BfREVTQ1JJUFRJT04gIkJlc2NocmlqdmluZyIKICAgIElEU19DRVJUSUZJQ0FURV9QUk9QRVJUSUVTICJDZXJ0aWZpY2FhdCBlaWdlbnNjaGFwcGVuIgogICAgSURTX0NFUlRJRklDQVRFX1BVUlBPU0VfRVJST1IgIkdlZWYgYXViLiBlZW4gT0lEIGluIGluIGRlIHZvcm0gdmFuIDEuMi4zLjQiCiAgICBJRFNfQ0VSVElGSUNBVEVfUFVSUE9TRV9FWElTVFMgIkRlIGluZ2VnZXZlbiBPSUQgYmVzdGFhdCByZWVkcy4iCiAgICBJRFNfU0VMRUNUX1NUT1JFX1RJVExFICJTZWxlY3RlZXIgY2VydGlmaWNhdGVub3BzbGFnIgogICAgSURTX1NFTEVDVF9TVE9SRSAiU2VsZWN0ZWVyIGF1Yi4gZWVuIGNlcnRpZmljYXRlbm9wc2xhZy4iCiAgICBJRFNfSU1QT1JUX1dJWkFSRCAiQ2VydGlmaWNhYXQgaW1wb3J0ZWVyaHVscCIKICAgIElEU19JTVBPUlRfVFlQRV9NSVNNQVRDSCAiSGV0IGJlc3RhbmQgYmV2YXQgb2JqZWN0ZW4gZGllIG5pZXQgdm9sZG9lbiBhYW4gZGUgb3BnZWdldmVuIGNyaXRlcmlhLiBTZWxlY3RlZXIgYXViLiBlZW4gYW5kZXIgYmVzdGFuZC4iCiAgICBJRFNfSU1QT1JUX0ZJTEVfVElUTEUgIkJlc3RhbmQgb20gdGUgaW1wb3J0ZXJlbiIKICAgIElEU19JTVBPUlRfRklMRV9TVUJUSVRMRSAiU3BlY2lmaWNlZXIgaGV0IGJlc3RhbmQgZGF0IHUgd2lsdCBpbXBvcnRlcmVuLiIKICAgIElEU19JTVBPUlRfU1RPUkVfVElUTEUgIkNlcnRpZmljYXRlbm9wc2xhZyIKICAgIElEU19JTVBPUlRfU1RPUkVfU1VCVElUTEUgIkNlcnRpZmljYXRlbm9wc2xhZ2VuIHppam4gdmVyemFtZWxpbmdlbiB2YW4gY2VydGlmaWNhdGVuLCBjZXJ0aWZpY2FhdCB0ZXJ1Z3JvZXBsaWpzdGVuIGVuIGNlcnRpZmljYWF0IHZlcnRyb3V3ZW5zbGlqc3Rlbi4iCiAgICBJRFNfSU1QT1JUX0ZJTFRFUl9DRVJUICJYLjUwOSBDZXJ0aWZpY2FhdCAoKi5jZXI7ICouY3J0KSIKICAgIElEU19JTVBPUlRfRklMVEVSX1BGWCAiUGVyc29vbmxpamtlIGluZm9ybWF0aWUgdWl0d2lzc2VsaW5nICgqLnBmeDsgKi5wMTIpIgogICAgSURTX0lNUE9SVF9GSUxURVJfQ1JMICJDZXJ0aWZpY2FhdCB0ZXJ1Z3JvZXBsaWpzdCAoKi5jcmwpIgogICAgSURTX0lNUE9SVF9GSUxURVJfQ1RMICJDZXJ0aWZpY2FhdCB2ZXJ0cm91d2Vuc2xpanN0ICgqLnN0bCkiCiAgICBJRFNfSU1QT1JUX0ZJTFRFUl9TRVJJQUxJWkVEX1NUT1JFICJNaWNyb3NvZnQgc2VyaetsZSBjZXJ0aWZpY2F0ZW5vcHNsYWcgKCouc3N0KSIKICAgIElEU19JTVBPUlRfRklMVEVSX0NNUyAiQ01TL1BLQ1MgIzcgYmVyaWNodGVuICgqLnNwYzsgKi5wN2IpIgogICAgSURTX0lNUE9SVF9GSUxURVJfQUxMICJBbGxlIGJlc3RhbmRlbiAoKi4qKSIKICAgIElEU19JTVBPUlRfRU1QVFlfRklMRSAiU2VsZWN0ZWVyIGVlbiBiZXN0YW5kLiIKICAgIElEU19JTVBPUlRfQkFEX0ZPUk1BVCAiSGV0IGJlc3RhbmRzZm9ybWFhdCB3b3JkdCBuaWV0IGhlcmtlbmQuIFNlbGVjdGVlciBhdWIuIGVlbiBhbmRlciBiZXN0YW5kLiIKICAgIElEU19JTVBPUlRfT1BFTl9GQUlMRUQgIk9wZW5lbiBtaXNsdWt0IHZvb3IgIgogICAgSURTX0lNUE9SVF9ERVNUX0RFVEVSTUlORUQgIkJlcGFhbGQgZG9vciBoZXQgcHJvZ3JhbW1hIgogICAgSURTX0lNUE9SVF9TRUxFQ1RfU1RPUkUgIlNlbGVjdGVlciBlZW4gb3BzbGFnIgogICAgSURTX0lNUE9SVF9TVE9SRV9TRUxFQ1RJT04gIkdlc2VsZWN0ZWVyZGUgY2VydGlmaWNhdGVub3BzbGFnIgogICAgSURTX0lNUE9SVF9ERVNUX0FVVE9NQVRJQyAiQXV0b21hdGlzY2ggYmVwYWFsZCBkb29yIGhldCBwcm9ncmFtbWEiCiAgICBJRFNfSU1QT1JUX0ZJTEUgIkJlc3RhbmQiCiAgICBJRFNfSU1QT1JUX0NPTlRFTlQgIkluaG91ZCIKICAgIElEU19JTVBPUlRfQ09OVEVOVF9DRVJUICJDZXJ0aWZpY2FhdCIKICAgIElEU19JTVBPUlRfQ09OVEVOVF9DUkwgIkNlcnRpZmljYWF0IHRlcnVncm9lcGxpanN0IgogICAgSURTX0lNUE9SVF9DT05URU5UX0NUTCAiQ2VydGlmaWNhYXQgdmVydHJvdXdlbnNsaWpzdCIKICAgIElEU19JTVBPUlRfQ09OVEVOVF9DTVMgIkNNUy9QS0NTICM3IGJlcmljaHQiCiAgICBJRFNfSU1QT1JUX0NPTlRFTlRfUEZYICJQZXJzb29ubGlqa2UgaW5mb3JtYXRpZSB1aXR3aXNzZWxpbmciCiAgICBJRFNfSU1QT1JUX0NPTlRFTlRfU1RPUkUgIkNlcnRpZmljYXRlbm9wc2xhZyIKICAgIElEU19JTVBPUlRfU1VDQ0VFREVEICJIZXQgaW1wb3J0ZXJlbiB3YXMgc3VjY2Vzdm9sLiIKICAgIElEU19JTVBPUlRfRkFJTEVEICJIZXQgaW1wb3J0ZXJlbiBpcyBtaXNsdWt0LiIKICAgIElEU19XSVpBUkRfVElUTEVfRk9OVCAiQXJpYWwiCiAgICBJRFNfUFVSUE9TRV9BTEwgIjxBbGxlPiIKICAgIElEU19QVVJQT1NFX0FEVkFOQ0VEICI8R2VhZHZhbmNlZXJkZSBkb2VsZWluZGVuPiIKICAgIElEU19TVUJKRUNUX0NPTFVNTiAiVmVyc3RyZWt0IGFhbiIKICAgIElEU19JU1NVRVJfQ09MVU1OICJVaXRnZWdldmVuIGRvb3IiCiAgICBJRFNfRVhQSVJBVElPTl9DT0xVTU4gIlZlcmxvb3AgZGF0dW0iCiAgICBJRFNfRlJJRU5ETFlfTkFNRV9DT0xVTU4gIk5hYW0gYWxpYXMiCiAgICBJRFNfQUxMT1dFRF9QVVJQT1NFX0FMTCAiPEFsbGU+IgogICAgSURTX0FMTE9XRURfUFVSUE9TRV9OT05FICI8R2Vlbj4iCiAgICBJRFNfV0FSTl9SRU1PVkVfTVkgIlUga3VudCBuaWV0IGxhbmdlciBiZXJpY2h0ZW4gb250Y2lqZmVyZW4gb2Ygb25kZXJ0ZWtlbmVuIG1ldCBkaXQgY2VydGlmaWNhYXQuXG5XZWV0IHUgemVrZXIgZGF0IHUgZGl0IGNlcnRpZmljYWF0IHdpbHQgdmVyd2lqZGVyZW4/IgogICAgSURTX1dBUk5fUkVNT1ZFX1BMVVJBTF9NWSAiVSBrdW50IG5pZXQgbGFuZ2VyIGJlcmljaHRlbiBvbnRjaWpmZXJlbiBvZiBvbmRlcnRla2VuZW4gbWV0IGRlemUgY2VydGlmaWNhdGVuLlxuV2VldCB1IHpla2VyIGRhdCB1IGRlemUgY2VydGlmaWNhdGVuIHdpbHQgdmVyd2lqZGVyZW4/IgogICAgSURTX1dBUk5fUkVNT1ZFX0FERFJFU1NCT09LICJVIGt1bnQgbmlldCBsYW5nZXIgYmVyaWNodGVuIGNvZGVyZW4gb2YgdmVyaWZp63JlbiBtZXQgZGl0IGNlcnRpZmljYWF0LlxuV2VldCB1IHpla2VyIGRhdCB1IGRpdCBjZXJ0aWZpY2FhdCB3aWx0IHZlcndpamRlcmVuPyIKICAgIElEU19XQVJOX1JFTU9WRV9QTFVSQUxfQUREUkVTU0JPT0sgIlUga3VudCBuaWV0IGxhbmdlciBiZXJpY2h0ZW4gY29kZXJlbiBvZiB2ZXJpZmnrcmVuIG1ldCBkZXplIGNlcnRpZmljYXRlbi5cbldlZXQgdSB6ZWtlciBkYXQgdSBkZXplIGNlcnRpZmljYXRlbiB3aWx0IHZlcndpamRlcmVuPyIKICAgIElEU19XQVJOX1JFTU9WRV9DQSAiQ2VydGlmaWNhdGVuIHVpdGdlZ2V2ZW4gZG9vciBkZXplIGNlcnRpZmljYXRlbiBhdXRvcml0ZWl0IHp1bGxlbiBuaWV0IG1lZXIgdmVydHJvdXdkIHdvcmRlbi5cbldlZXQgdSB6ZWtlciBkYXQgdSBkaXQgY2VydGlmaWNhYXQgd2lsdCB2ZXJ3aWpkZXJlbj8iCiAgICBJRFNfV0FSTl9SRU1PVkVfUExVUkFMX0NBICJDZXJ0aWZpY2F0ZW4gdWl0Z2VnZXZlbiBkb29yIGRlemUgY2VydGlmaWNhdGVuIGF1dG9yaXRlaXRlbiB6dWxsZW4gbmlldCBtZWVyIHZlcnRyb3V3ZCB3b3JkZW4uXG5XZWV0IHUgemVrZXIgZGF0IHUgZGV6ZSBjZXJ0aWZpY2F0ZW4gd2lsdCB2ZXJ3aWpkZXJlbj8iCiAgICBJRFNfV0FSTl9SRU1PVkVfUk9PVCAiQ2VydGlmaWNhdGVuIHVpdGdlZ2V2ZW4gZG9vciBkZXplIGJhc2ljIGNlcnRpZmljYXRlbiBhdXRvcml0ZWl0LCBhbHNtZWRlIGVuaWdlIGNlcnRpZmljYXRpZSBhdXRvcml0ZWl0IGRpZSBoaWogdmVyc3RyZWt0LCB6dWxsZW4gbmlldCBtZWVyIHZlcnRyb3V3ZCB3b3JkZW4uXG5XZWV0IHUgemVrZXIgZGF0IHUgZGl0IHZlcnRyb3V3ZGUgYmFzaWMgY2VydGlmaWNhYXQgd2lsdCB2ZXJ3aWpkZXJlbj8iCiAgICBJRFNfV0FSTl9SRU1PVkVfUExVUkFMX1JPT1QgIkNlcnRpZmljYXRlbiB1aXRnZWdldmVuIGRvb3IgZGV6ZSBiYXNpYyBjZXJ0aWZpY2F0ZW4gYXV0b3JpdGVpdGVuLCBhbHNtZWRlIGVuaWdlIGNlcnRpZmljYXRpZSBhdXRvcml0ZWl0IGRpZSB6aWogdmVyc3RyZWtrZW4sIHp1bGxlbiBuaWV0IG1lZXIgdmVydHJvdXdkIHdvcmRlbi5cbldlZXQgdSB6ZWtlciBkYXQgdSBkZXplIHZlcnRyb3V3ZGUgYmFzaWMgY2VydGlmaWNhdGVuIHdpbHQgdmVyd2lqZGVyZW4/IgogICAgSURTX1dBUk5fUkVNT1ZFX1RSVVNURURQVUJMSVNIRVIgIlNvZnR3YXJlIG9uZGVydGVrZW5kIGRvb3IgZGV6ZSB1aXRnZXZlciB6YWwgbmlldCBtZWVyIHZlcnRyb3V3ZCB3b3JkZW4uXG5XZWV0IHUgemVrZXIgZGF0IHUgZGl0IGNlcnRpZmljYWF0IHdpbHQgdmVyd2lqZGVyZW4/IgogICAgSURTX1dBUk5fUkVNT1ZFX1BMVVJBTF9UUlVTVEVEUFVCTElTSEVSICJTb2Z0d2FyZSBvbmRlcnRla2VuZCBkb29yIGRlemUgdWl0Z2V2ZXJzIHphbCBuaWV0IG1lZXIgdmVydHJvdXdkIHdvcmRlbi5cbldlZXQgdSB6ZWtlciBkYXQgdSBkZXplIGNlcnRpZmljYXRlbiB3aWx0IHZlcndpamRlcmVuPyIKICAgIElEU19XQVJOX1JFTU9WRV9ERUZBVUxUICJXZWV0IHUgemVrZXIgZGF0IHUgZGl0IGNlcnRpZmljYWF0IHdpbHQgdmVyd2lqZGVyZW4/IgogICAgSURTX1dBUk5fUkVNT1ZFX1BMVVJBTF9ERUZBVUxUICJXZWV0IHUgemVrZXIgZGF0IHUgZGV6ZSBjZXJ0aWZpY2F0ZW4gd2lsdCB2ZXJ3aWpkZXJlbj8iCiAgICBJRFNfQ0VSVF9NR1IgIkNlcnRpZmljYXRlbiIKICAgIElEU19QVVJQT1NFX1NFUlZFUl9BVVRIICJCZXdpanN0IGRlIGlkZW50aXRlaXQgdmFuIGVlbiByZW1vdGUgY29tcHV0ZXIiCiAgICBJRFNfUFVSUE9TRV9DTElFTlRfQVVUSCAiQmV3aWpzdCB1dyBpZGVudGl0ZWl0IGFhbiBlZW4gcmVtb3RlIGNvbXB1dGVyIgogICAgSURTX1BVUlBPU0VfQ09ERV9TSUdOSU5HICJCZXdpanN0IGRhdCBkZSBzb2Z0d2FyZSBrd2FtIHZhbiBkZSBzb2Z0d2FyZSB1aXRnZXZlclxuQmVzY2hlcm10IHNvZnR3YXJlIHRlZ2VuIHdpanppZ2luZ2VuIG5hIHB1YmxpY2F0aWUiCiAgICBJRFNfUFVSUE9TRV9FTUFJTF9QUk9URUNUSU9OICJCZXNjaGVybXQgZS1tYWlsIGJlcmljaHRlbiIKICAgIElEU19QVVJQT1NFX0lQU0VDICJTdGFhdCBiZXZlaWxpZ2RlIGNvbW11bmljYXRpZSBvdmVyIGhldCBJbnRlcm5ldCB0b2UiCiAgICBJRFNfUFVSUE9TRV9USU1FU1RBTVBfU0lHTklORyAiTGFhdCBkYXRhIG9uZGVydGVrZW5kIHdvcmRlbiBtZXQgZGUgaHVpZGlnZSB0aWpkIgogICAgSURTX1BVUlBPU0VfQ1RMX1VTQUdFX1NJR05JTkcgIkxhYXQgdSBlZW4gY2VydGlmaWNhYXQgdmVydHJvdXdlbnNsaWpzdCBkaWdpdGFhbCBvbmRlcnRla2VuZW4iCiAgICBJRFNfUFVSUE9TRV9FRlMgIkxhYXQgZGF0YSBvcCBkZSBkaXNrIGdlY29kZWVyZCB3b3JkZW4iCiAgICBJRFNfUFVSUE9TRV9FRlNfUkVDT1ZFUlkgIkJlc3RhbmRzaGVyc3RlbCIKICAgIElEU19QVVJQT1NFX1dIUUwgIldpbmRvd3MgSGFyZHdhcmUgRHJpdmVyIFZlcmlmaWNhdGllIgogICAgSURTX1BVUlBPU0VfTlQ1ICJXaW5kb3dzIFN5c3RlbSBDb21wb25lbnQgVmVyaWZpY2F0aWUiCiAgICBJRFNfUFVSUE9TRV9PRU1fV0hRTCAiT0VNIFdpbmRvd3MgU3lzdGVlbSBDb21wb25lbnQgVmVyaWZpY2F0aWUiCiAgICBJRFNfUFVSUE9TRV9FTUJFRERFRF9OVCAiSW5nZWJlZCBXaW5kb3dzIFN5c3RlZW0gQ29tcG9uZW50IFZlcmlmaWNhdGllIgogICAgSURTX1BVUlBPU0VfUk9PVF9MSVNUX1NJR05FUiAiQmFzaXNsaWpzdCBPbmRlcnRla2VuYWFyIgogICAgSURTX1BVUlBPU0VfUVVBTElGSUVEX1NVQk9SRElOQVRJT04gIkdla3dhbGlmaWNlZXJkZSBvbmRlcmdlc2NoaWt0aGVpZCIKICAgIElEU19QVVJQT1NFX0tFWV9SRUNPVkVSWSAiU2xldXRlbCBoZXJzdGVsbGVuIgogICAgSURTX1BVUlBPU0VfRE9DVU1FTlRfU0lHTklORyAiRG9jdW1lbnQgb25kZXJ0ZWtlbmluZyIKICAgIElEU19QVVJQT1NFX0xJRkVUSU1FX1NJR05JTkcgIkxldmVuc2xhbmcgb25kZXJ0ZWtlbmVuIgogICAgSURTX1BVUlBPU0VfRFJNICJEaWdpdGFsZSByZWNodGVuIgogICAgSURTX1BVUlBPU0VfTElDRU5TRVMgIlNsZXV0ZWxib3MgbGljZW50aWVzIgogICAgSURTX1BVUlBPU0VfTElDRU5TRV9TRVJWRVIgIkxpY2VudGllc2VydmVyIHZlcmlmaWNhdGllIgogICAgSURTX1BVUlBPU0VfRU5ST0xMTUVOVF9BR0VOVCAiQ2VydGlmaWNhYXR2ZXJ6b2VrIGFnZW50IgogICAgSURTX1BVUlBPU0VfU01BUlRDQVJEX0xPR09OICJTbWFydGNhcmQgYWFubG9nZ2VuIgogICAgSURTX1BVUlBPU0VfQ0FfRVhDSEFOR0UgIlBlcnNvb25saWprZSBzbGV1dGVsIGFyY2hpZWZiZXNjaGVpZGVuIgogICAgSURTX1BVUlBPU0VfS0VZX1JFQ09WRVJZX0FHRU5UICJTbGV1dGVsIGhlcnN0ZWwgYWdlbnQiCiAgICBJRFNfUFVSUE9TRV9EU19FTUFJTF9SRVBMSUNBVElPTiAiRGlyZWN0b3J5IHNlcnZpY2UgZW1haWwgcmVwbGljYXRpZSIKICAgIElEU19FWFBPUlRfV0laQVJEICJDZXJ0aWZpY2FhdCBFeHBvcnRlZXJodWxwIgogICAgSURTX0VYUE9SVF9GT1JNQVRfVElUTEUgIkV4cG9ydCBmb3JtYWF0IgogICAgSURTX0VYUE9SVF9GT1JNQVRfU1VCVElUTEUgIlNlbGVjdGVlciBoZXQgZm9ybWFhdCB3YWFyaW4gZGUgaW5ob3VkIHphbCB3b3JkZW4gb3BnZXNsYWdlbi4iCiAgICBJRFNfRVhQT1JUX0ZJTEVfVElUTEUgIkV4cG9ydGVlciBiZXN0YW5kc25hYW0iCiAgICBJRFNfRVhQT1JUX0ZJTEVfU1VCVElUTEUgIkdlZWYgZGUgbmFhbSB2YW4gaGV0IGJlc3RhbmQgd2FhcmluIGRlIGluaG91ZCB6YWwgd29yZGVuIG9wZ2VzbGFnZW4uIgogICAgSURTX0VYUE9SVF9GSUxFX0VYSVNUUyAiSGV0IGdla296ZW4gYmVzdGFuZCBiZXN0YWF0IHJlZWRzLiBXaWx0IHUgaGV0IG92ZXJzY2hyaWp2ZW4/IgogICAgSURTX0VYUE9SVF9GSUxURVJfQ0VSVCAiREVSLUVuY29kZWQgQmluYXJ5IFguNTA5ICgqLmNlcikiCiAgICBJRFNfRVhQT1JUX0ZJTFRFUl9CQVNFNjRfQ0VSVCAiQmFzZTY0LWdl625jb2RlZXJkIFguNTA5ICgqLmNlcikiCiAgICBJRFNfRVhQT1JUX0ZJTFRFUl9DUkwgIkNlcnRpZmljYWF0IHRlcnVncm9lcGxpanN0ICgqLmNybCkiCiAgICBJRFNfRVhQT1JUX0ZJTFRFUl9DVEwgIkNlcnRpZmljYWF0IHZlcnRyb3V3ZW5zbGlqc3QgKCouc3RsKSIKICAgIElEU19FWFBPUlRfRklMVEVSX0NNUyAiQ01TL1BLQ1MgIzcgYmVyaWNodGVuICgqLnA3YikiCiAgICBJRFNfRVhQT1JUX0ZJTFRFUl9QRlggIlBlcnNvb25saWprZSBpbmZvcm1hdGllIHVpdHdpc3NlbGluZyAoKi5wZngpIgogICAgSURTX0VYUE9SVF9GSUxURVJfU0VSSUFMSVpFRF9DRVJUX1NUT1JFICJTZXJp62xlIGNlcnRpZmljYXRlbm9wc2xhZyAoKi5zc3QpIgogICAgSURTX0VYUE9SVF9GT1JNQVQgIkJlc3RhbmRzZm9ybWFhdCIKICAgIElEU19FWFBPUlRfSU5DTFVERV9DSEFJTiAiTmVlbSBhbGxlIGNlcnRpZmljYXRlbiBpbiBoZXQgY2VydGlmaWNhdGllcGFkIG9wIgogICAgSURTX0VYUE9SVF9LRVlTICJFeHBvcnRlZXIgc2xldXRlbHMiCiAgICBJRFNfWUVTICJKYSIKICAgIElEU19OTyAiTmVlIgogICAgSURTX0VYUE9SVF9TVUNDRUVERUQgIkhldCBleHBvcnRlcmVuIGlzIGdlbHVrdC4iCiAgICBJRFNfRVhQT1JUX0ZBSUxFRCAiSGV0IGV4cG9ydGVyZW4gaXMgbWlzbHVrdC4iCiAgICBJRFNfRVhQT1JUX1BSSVZBVEVfS0VZX1RJVExFICJFeHBvcnRlZXIgcGVyc29vbmxpamtlIHNsZXV0ZWwiCiAgICBJRFNfRVhQT1JUX1BSSVZBVEVfS0VZX1NVQlRJVExFICJIZXQgY2VydGlmaWNhYXQgYmV2YXQgZWVuIHBlcnNvb25saWprZSBzbGV1dGVsIGRpZSBtZWUga2FuIHdvcmRlbiBnZet4cG9ydGVlcmQgbWV0IGhldCBjZXJ0aWZpY2FhdC4iCiAgICBJRFNfRVhQT1JUX1BBU1NXT1JEX1RJVExFICJWb2VyIHdhY2h0d29vcmQgaW4iCiAgICBJRFNfRVhQT1JUX1BBU1NXT1JEX1NVQlRJVExFICJVIGt1bnQgZWVuIHBlcnNvb25saWprZSBzbGV1dGVsIGJldmVpbGlnZW4gbWV0IGVlbiB3YWNodHdvb3JkLiIKICAgIElEU19FWFBPUlRfUEFTU1dPUkRfTUlTTUFUQ0ggIkRlIHdhY2h0d29vcmRlbiB6aWpuIG5pZXQgZ2VsaWprLiIKICAgIElEU19FWFBPUlRfUFJJVkFURV9LRVlfVU5BVkFJTEFCTEUgIk5COiBEZSBwZXJzb29ubGlqa2Ugc2xldXRlbCB2b29yIGRpdCBjZXJ0aWZpY2FhdCBrb24gbmlldCBnZW9wZW5kIHdvcmRlbi4iCiAgICBJRFNfRVhQT1JUX1BSSVZBVEVfS0VZX05PTl9FWFBPUlRBQkxFICJOb3RlOiBEZSBwZXJzb29ubGlqa2Ugc2xldXRlbCB2b29yIGRpdCBjZXJ0aWZpY2FhdCBrYW4gbmlldCBnZet4cG9ydGVlcmQgd29yZGVuLiIKfQoKSUREX0dFTkVSQUwgRElBTE9HIERJU0NBUkRBQkxFIDAsIDAsIDI1NSwgMjM2CkNBUFRJT04gIkFsZ2VtZWVuIgpTVFlMRSBXU19WSVNJQkxFCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICBDT05UUk9MICIiLCAtMSwgIlN0YXRpYyIsIFdTX0JPUkRFUnxTU19XSElURVJFQ1QsIDYsMTAsMjQxLDIwMAogIENPTlRST0wgIiIsIElEQ19DRVJUSUZJQ0FURV9JQ09OLCJSaWNoRWRpdDIwVyIsCiAgICBFU19SRUFET05MWXxXU19ESVNBQkxFRCw4LDExLDI2LDI2CiAgQ09OVFJPTCAiIiwgSURDX0NFUlRJRklDQVRFX0lORk8sIlJpY2hFZGl0MjBXIiwKICAgIEVTX1JFQURPTkxZfFdTX0RJU0FCTEVELDM0LDExLDIxMiwyNgogIENPTlRST0wgIiIsIC0xLCAiU3RhdGljIiwgU1NfQkxBQ0tGUkFNRSwgMTYsMzcsMjIyLDEKICBDT05UUk9MICIiLCBJRENfQ0VSVElGSUNBVEVfU1RBVFVTLCJSaWNoRWRpdDIwVyIsCiAgICBFU19SRUFET05MWXxFU19NVUxUSUxJTkUsOCwzOCwyMzgsNzgKICBDT05UUk9MICIiLCAtMSwgIlN0YXRpYyIsIFNTX0JMQUNLRlJBTUUsIDE2LDExNiwyMjIsMQogIENPTlRST0wgIiIsIElEQ19DRVJUSUZJQ0FURV9OQU1FUywiUmljaEVkaXQyMFciLAogICAgRVNfUkVBRE9OTFl8RVNfTVVMVElMSU5FfFdTX0RJU0FCTEVELDgsMTE4LDIzOCw5MAogIFBVU0hCVVRUT04gIiZJbnN0YWxsZWVyIGNlcnRpZmljYWF0Li4uIiwgSURDX0FERFRPU1RPUkUsMTAzLDIxNiw3MCwxNAogIFBVU0hCVVRUT04gIlVpdGdldmVycyAmdmVya2xhcmluZyIsIElEQ19JU1NVRVJTVEFURU1FTlQsMTc3LDIxNiw3MCwxNApFTkQKCklERF9ERVRBSUwgRElBTE9HIERJU0NBUkRBQkxFIDAsIDAsIDI1NSwgMjM2CkNBUFRJT04gIkRldGFpbHMiClNUWUxFIFdTX1ZJU0lCTEUKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogIExURVhUICImVG9vbjoiLCAtMSwgNiwxMiw0MCwxNAogIENPTUJPQk9YIElEQ19ERVRBSUxfU0VMRUNULCAyOCwxMCwxMDAsMTQsCiAgICBDQlNfRFJPUERPV05MSVNUfFdTX0JPUkRFUnxXU19WU0NST0xMfFdTX1RBQlNUT1AKICBDT05UUk9MICIiLCBJRENfREVUQUlMX0xJU1QsICJTeXNMaXN0VmlldzMyIiwKICAgIExWU19SRVBPUlR8TFZTX1NJTkdMRVNFTHxXU19DSElMRHxXU19WSVNJQkxFfFdTX1RBQlNUT1B8V1NfQk9SREVSLAogICAgNiwyOCwyNDEsMTAwCiAgQ09OVFJPTCAiIiwgSURDX0RFVEFJTF9WQUxVRSwgIlJpY2hFZGl0MjBXIiwKICAgIEVTX1JFQURPTkxZfEVTX01VTFRJTElORXxXU19UQUJTVE9QLCA2LDEzNiwyNDEsNzAKICBQVVNIQlVUVE9OICImV2lqemlnIGVpZ2Vuc2NoYXBwZW4uLi4iLCBJRENfRURJVFBST1BFUlRJRVMsMTAzLDIxNiw3MCwxNAogIFBVU0hCVVRUT04gIiZLb3BpZWVyIG5hYXIgYmVzdGFuZC4uLiIsIElEQ19FWFBPUlQsMTc3LDIxNiw3MCwxNApFTkQKCklERF9ISUVSQVJDSFkgRElBTE9HIERJU0NBUkRBQkxFIDAsIDAsIDI1NSwgMjM2CkNBUFRJT04gIkNlcnRpZmljYXRpZSBwYWQiClNUWUxFIFdTX1ZJU0lCTEUKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogIEdST1VQQk9YICJDZXJ0aWZpY2F0aW9uICZwYWQiLCAtMSw2LDEwLDI0NSwxNjUsIEJTX0dST1VQQk9YCiAgQ09OVFJPTCAiIixJRENfQ0VSVFBBVEgsICJTeXNUcmVlVmlldzMyIiwgVFZTX0hBU0xJTkVTfFdTX0JPUkRFUiwKICAgIDEzLDIyLDIzMSwxMzAKICBQVVNIQlVUVE9OICImQmVraWprIGNlcnRpZmljYWF0IiwgSURDX1ZJRVdDRVJUSUZJQ0FURSwxNzUsMTU2LDcwLDE0CiAgTFRFWFQgIkNlcnRpZmljYWF0ICZzdGF0dXM6IiwgSURDX0NFUlRJRklDQVRFU1RBVFVTLDYsMTgzLDcwLDE0CiAgQ09OVFJPTCAiIiwgSURDX0NFUlRJRklDQVRFU1RBVFVTVEVYVCwiUmljaEVkaXQyMFciLAogICAgV1NfQk9SREVSfEVTX1JFQURPTkxZfEVTX01VTFRJTElORXxXU19ESVNBQkxFRCw2LDE5NSwyNDUsMzYKRU5ECgpJRERfVVNFUk5PVElDRSBESUFMT0cgRElTQ0FSREFCTEUgMCwgMCwgMjU1LCAyNTYKQ0FQVElPTiAiRGlzY2xhaW1lciIKU1RZTEUgV1NfVklTSUJMRQpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgQ09OVFJPTCAiIiwgSURDX1VTRVJOT1RJQ0UsIlJpY2hFZGl0MjBXIiwKICAgIFdTX0JPUkRFUnxFU19SRUFET05MWXxFU19NVUxUSUxJTkV8V1NfRElTQUJMRUQsNiwxMCwyNDEsMjAwCiAgUFVTSEJVVFRPTiAiJlNsdWl0ZW4iLCBJRE9LLDEwMywyMTYsNzAsMTQKICBQVVNIQlVUVE9OICJNZWVyICZpbmZvcm1hdGllIiwgSURDX0NQUywxNzcsMjE2LDcwLDE0CkVORAoKSUREX0NFUlRfUFJPUEVSVElFU19HRU5FUkFMIERJQUxPRyBESVNDQVJEQUJMRSAwLCAwLCAyNTUsIDIzNgpDQVBUSU9OICJBbGdlbWVlbiIKU1RZTEUgV1NfVklTSUJMRQpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgTFRFWFQgIiZOYWFtIGFsaWFzOiIsIC0xLCA2LDE0LDYwLDE0CiAgRURJVFRFWFQgSURDX0ZSSUVORExZX05BTUUsIDYwLDEyLDE5MSwxNCwgRVNfQVVUT0hTQ1JPTEx8V1NfVEFCU1RPUAogIExURVhUICImQmVzY2hyaWp2aW5nOiIsIC0xLCA2LDMyLDYwLDE0CiAgRURJVFRFWFQgSURDX0RFU0NSSVBUSU9OLCA2MCwzMCwxOTEsMTQsIEVTX0FVVE9WU0NST0xMfEVTX01VTFRJTElORXxXU19UQUJTVE9QfFdTX1ZTQ1JPTEwKICBHUk9VUEJPWCAiQ2VydGlmaWNhYXQgZG9lbGVpbmRlbiIsIC0xLDYsNDgsMjQ1LDE2NSwgQlNfR1JPVVBCT1gKICBBVVRPUkFESU9CVVRUT04gIlNjaGFrZWwgYWxsZSBkb2VsZWluZGVuIHZvb3IgZGl0IGNlcnRpZmljYWF0ICZpbiIsCiAgICBJRENfRU5BQkxFX0FMTF9QVVJQT1NFUywgMTIsNTgsMTgwLDE0LCBCU19BVVRPUkFESU9CVVRUT058V1NfVEFCU1RPUAogIEFVVE9SQURJT0JVVFRPTiAiU2NoYWtlbCBhbGxlIGRvZWxlaW5kZW4gdm9vciBkaXQgY2VydGlmaWNhYXQgJnVpdCIsCiAgICBJRENfRElTQUJMRV9BTExfUFVSUE9TRVMsIDEyLDcwLDE4MCwxNCwgQlNfQVVUT1JBRElPQlVUVE9OCiAgQVVUT1JBRElPQlVUVE9OICJTY2hha2VsICZhbGxlZW4gZGUgdm9sZ2VuZGUgZG9lbGVpbmRlbiB2b29yIGRpdCBjZXJ0aWZpY2FhdCBpbjoiLAogICAgSURDX0VOQUJMRV9TRUxFQ1RFRF9QVVJQT1NFUywgMTIsODIsMTgwLDE0LCBCU19BVVRPUkFESU9CVVRUT04KICBDT05UUk9MICIiLCBJRENfQ0VSVElGSUNBVEVfVVNBR0VTLCJTeXNMaXN0VmlldzMyIiwKICAgIExWU19SRVBPUlR8TFZTX05PQ09MVU1OSEVBREVSfExWU19TSU5HTEVTRUx8V1NfQ0hJTER8V1NfVklTSUJMRXxXU19UQUJTVE9QfFdTX0JPUkRFUiwKICAgIDI0LDEwMCwyMjAsOTAKICBQVVNIQlVUVE9OICJWb2VnICZkb2VsZWluZGUgdG9lLi4uIiwgSURDX0FERF9QVVJQT1NFLDE4NCwxOTQsNjAsMTQKRU5ECgpJRERfQUREX0NFUlRfUFVSUE9TRSBESUFMT0cgRElTQ0FSREFCTEUgMCwwLDIwMCw2OApDQVBUSU9OICJWb2VnIGRvZWxlaW5kZSB0b2UiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICBMVEVYVCAiVm9lciBoZXQgb2JqZWN0IGlkLiAoT0lEKSBpbiB2b29yIGhldCB0b2UgdGUgdm9lZ2VuIGNlcnRpZmljYWF0IGRvZWxlaW5kZToiLAogICAgLTEsIDYsNiwxOTAsMjgKICBFRElUVEVYVCBJRENfTkVXX1BVUlBPU0UsIDYsMjgsMTkwLDE0LCBFU19BVVRPVlNDUk9MTHxFU19NVUxUSUxJTkV8V1NfVEFCU1RPUHxXU19WU0NST0xMCiAgUFVTSEJVVFRPTiAiT0siLCBJRE9LLCAzMyw0OCw2MCwxNAogIFBVU0hCVVRUT04gIkFubnVsZXJlbiIsIElEQ0FOQ0VMLCAxMDAsNDgsNjAsMTQKRU5ECgpJRERfU0VMRUNUX1NUT1JFIERJQUxPRyBESVNDQVJEQUJMRSAwLDAsMjAwLDEzNgpDQVBUSU9OICJTZWxlY3RlZXIgY2VydGlmaWNhdGVub3BzbGFnIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgTFRFWFQgIlNlbGVjdGVlciBkZSBjZXJ0aWZpY2F0ZW5vcHNsYWcgZGllIHUgd2lsdCBnZWJydWlrZW46IiwgSURDX1NUT1JFX1RFWFQsIDYsNiwxOTAsMjgKICBDT05UUk9MICIiLElEQ19TVE9SRV9MSVNULCAiU3lzVHJlZVZpZXczMiIsIFRWU19IQVNMSU5FU3xXU19CT1JERVJ8V1NfVEFCU1RPUCwKICAgIDYsMjgsMTg4LDcwCiAgQ0hFQ0tCT1ggIiZUb29uIGZ5c2lla2Ugb3BzbGFnZW4iLCBJRENfU0hPV19QSFlTSUNBTF9TVE9SRVMsIDYsMTAyLDkwLDE0LAogICAgQlNfQVVUT0NIRUNLQk9YfFdTX1RBQlNUT1AKICBQVVNIQlVUVE9OICJPSyIsIElET0ssIDkwLDExOCw1MCwxNCwgQlNfREVGUFVTSEJVVFRPTgogIFBVU0hCVVRUT04gIkFubnVsZXJlbiIsIElEQ0FOQ0VMLCAxNDQsMTE4LDUwLDE0CkVORAoKSUREX0lNUE9SVF9XRUxDT01FIERJQUxPRyBESVNDQVJEQUJMRSAwLDAsMzE3LDE0MwpDQVBUSU9OICJDZXJ0aWZpY2FhdCBpbXBvcnRlZXJodWxwIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgTFRFWFQgIldlbGtvbSBiaWogZGUgY2VydGlmaWNhYXQgaW1wb3J0ZWVyaHVscCIsIElEQ19JTVBPUlRfVElUTEUsCiAgICAxMTUsMSwxOTUsNDAKICBMVEVYVCAiRGV6ZSBodWxwIGhlbHBzIHUgbWV0IGhldCBpbXBvcnRlcmVuIHZhbiBjZXJ0aWZpY2F0ZW4sIGNlcnRpZmljYWF0IHRlcnVncm9lcGxpanN0ZW4gZW4gY2VydGlmaWNhYXQgdmVydHJvdXdlbnNsaWpzdGVuIHVpdCBlZW4gYmVzdGFuZCBuYWFyIGVlbiBjZXJ0aWZpY2F0ZW5vcHNsYWcuIiwKICAgIC0xLCAxMTUsMzMsMTk1LDE2CiAgTFRFWFQgIkVlbiBjZXJ0aWZpY2FhdCBrYW4gZ2VicnVpa3Qgd29yZGVuIG9tIHUgb2YgZGUgY29tcHV0ZXIgd2Fhcm1lZSB1IHdlcmt0IHRlIGlkZW50aWZpY2VyZW4uIEhldCBrYW4gb29rIGdlYnJ1aWt0IHdvcmRlbiB2b29yIGF1dGhlbnRpY2F0aWUgZW4gb20gYmVyaWNodGVuIHRlIG9uZGVydGVrZW5lbi4gQ2VydGlmaWNhdGVub3BzbGFnZW4gemlqbiB2ZXJ6YW1lbGluZ2VuIHZhbiBjZXJ0aWZpY2F0ZW4sIGNlcnRpZmljYWF0IHRlcnVncm9lcGxpanN0ZW4gZW4gY2VydGlmaWNhYXQgdmVydHJvdXdlbnNsaWpzdGVuLiIsCiAgICAtMSwgMTE1LDU2LDE5NSw0MAogIExURVhUICJPbSB2ZXJkZXIgdGUgZ2FhbiwgY2xpY2sgb3AgVm9sZ2VuZGUuIiwKICAgIC0xLCAxMTUsMTAzLDE5NSw4CkVORAoKSUREX0lNUE9SVF9GSUxFIERJQUxPRyBESVNDQVJEQUJMRSAwLDAsMzE3LDE0MwpDQVBUSU9OICJDZXJ0aWZpY2FhdCBpbXBvcnRlZXJodWxwIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgTFRFWFQgIkJlc3RhbmRzJm5hYW06IiwgLTEsIDIxLDEsMTk1LDEwCiAgRURJVFRFWFQgSURDX0lNUE9SVF9GSUxFTkFNRSwgMjEsMTEsMjA4LDE0LCBFU19BVVRPSFNDUk9MTHxXU19UQUJTVE9QCiAgUFVTSEJVVFRPTiAiQiZsYWRlcmVuLi4uIiwgSURDX0lNUE9SVF9CUk9XU0VfRklMRSwgMjM2LDExLDYwLDE0CiAgTFRFWFQgIk5COiBEZSB2b2xnZW5kZSBiZXN0YW5kc2Zvcm1hdGVuIGt1bm5lbiBtZWVyIGRhbiDp6W4gY2VydGlmaWNhYXQsIGNlcnRpZmljYWF0IHRlcnVncm9lcGxpanN0IG9mIGNlcnRpZmljYWF0IHZlcnRyb3V3ZW5zbGlqc3QgYmV2YXR0ZW46IiwKICAgIC0xLCAyMSwyNiwyNjUsMTYKICBMVEVYVCAiQ3J5cHRvZ3JhcGhpc2NoIGJlcmljaHRzeW50YXhpcyBzdGFuZGFhcmQvUEtDUyAjNyBiZXJpY2h0ZW4gKC5wN2IpIiwKICAgIC0xLCAzMSw0OSwyNjUsMTAKICBMVEVYVCAiUGVyc29vbmxpamtlIGluZm9ybWF0aWUgdWl0d2lzc2VsaW5nL1BLQ1MgIzEyICgucGZ4LCAucDEyKSIsCiAgICAtMSwgMzEsNjQsMjY1LDEwCiAgTFRFWFQgIk1pY3Jvc29mdCBzZXJp62xlIGNlcnRpZmljYXRlbm9wc2xhZyAoLnNzdCkiLAogICAgLTEsIDMxLDc5LDI2NSwxMApFTkQKCklERF9JTVBPUlRfU1RPUkUgRElBTE9HIERJU0NBUkRBQkxFIDAsMCwzMTcsMTQzCkNBUFRJT04gIkNlcnRpZmljYWF0IGltcG9ydGVlcmh1bHAiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICBMVEVYVCAiV2luZSBrYW4gYXV0b21hdGlzY2ggZGUgY2VydGlmaWNhdGVub3BzbGFnIHNlbGVjdGVyZW4sIG9mIHUga3VudCBlZW4gbG9jYXRpZSBvcGdldmVuIHZvb3IgZGUgY2VydGlmaWNhdGVuLiIsCiAgICAtMSwgMjEsMSwxOTUsMjAKICBBVVRPUkFESU9CVVRUT04gIiZBdXRvbWF0aXNjaCBjZXJ0aWZpY2F0ZW5vcHNsYWcgc2VsZWN0ZXJlbiIsCiAgICBJRENfSU1QT1JUX0FVVE9fU1RPUkUsIDMxLDE4LDE4MCwxMiwgQlNfQVVUT1JBRElPQlVUVE9OfFdTX1RBQlNUT1AKICBBVVRPUkFESU9CVVRUT04gIiZQbGFhdHMgYWxsZSBjZXJ0aWZpY2F0ZW4gaW4gZGUgdm9sZ2VuZGUgb3BzbGFnOiIsCiAgICBJRENfSU1QT1JUX1NQRUNJRllfU1RPUkUsIDMxLDMwLDE4MCwxMiwgQlNfQVVUT1JBRElPQlVUVE9OCiAgRURJVFRFWFQgSURDX0lNUE9SVF9TVE9SRSwgNDQsNDksMTg1LDE0LCBFU19SRUFET05MWQogIFBVU0hCVVRUT04gIkImbGFkZXJlbi4uLiIsIElEQ19JTVBPUlRfQlJPV1NFX1NUT1JFLCAyMzYsNDksNjAsMTQKRU5ECgpJRERfSU1QT1JUX0ZJTklTSCBESUFMT0cgRElTQ0FSREFCTEUgMCwwLDMxNywxNDMKQ0FQVElPTiAiQ2VydGlmaWNhYXQgaW1wb3J0ZWVyaHVscCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogIExURVhUICJBZnJvbmRlbiB2YW4gZGUgY2VydGlmaWNhYXQgaW1wb3J0ZWVyaHVscCIsIElEQ19JTVBPUlRfVElUTEUsCiAgICAxMTUsMSwxOTUsNDAKICBMVEVYVCAiVSBoZWVmdCBkZSBjZXJ0aWZpY2FhdCBpbXBvcnRlZXJodWxwIHN1Y2Nlc3ZvbCBhZmdlcm9uZC4iLAogICAgLTEsIDExNSwzMywxOTUsMjQKICBMVEVYVCAiVSBoZWVmdCBkZSB2b2xnZW5kZSBpbnN0ZWxsaW5nZW4gaW5nZWdldmVuOiIsCiAgICAtMSwgMTE1LDU3LDE5NSwxMgogIENPTlRST0wgIiIsIElEQ19JTVBPUlRfU0VUVElOR1MsICJTeXNMaXN0VmlldzMyIiwKICAgIExWU19SRVBPUlR8TFZTX05PQ09MVU1OSEVBREVSfExWU19TSU5HTEVTRUx8V1NfQ0hJTER8V1NfVklTSUJMRXxXU19UQUJTVE9QfFdTX0JPUkRFUiwKICAgIDExNSw2NywxNzQsMTAwCkVORAoKSUREX0NFUlRfTUdSIERJQUxPRyBESVNDQVJEQUJMRSAwLDAsMzM1LDI3MApDQVBUSU9OICJDZXJ0aWZpY2F0ZW4iCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICBMVEVYVCAiJkRvZWxlaW5kZW46IiwgLTEsIDcsOSwxMDAsMTIKICBDT01CT0JPWCBJRENfTUdSX1BVUlBPU0VfU0VMRUNUSU9OLCA4Myw3LDI0NSwxNCwKICAgIENCU19EUk9QRE9XTkxJU1R8V1NfQk9SREVSfFdTX1ZTQ1JPTEx8V1NfVEFCU1RPUAogIENPTlRST0wgIiIsIElEQ19NR1JfU1RPUkVTLCAiU3lzVGFiQ29udHJvbDMyIiwKICAgIFdTX0NMSVBTSUJMSU5HU3xXU19UQUJTVE9QLCA3LDI1LDMyMSwxNDAKICBDT05UUk9MICIiLCBJRENfTUdSX0NFUlRTLCAiU3lzTGlzdFZpZXczMiIsCiAgICBMVlNfUkVQT1JUfFdTX0NISUxEfFdTX1ZJU0lCTEV8V1NfVEFCU1RPUHxXU19CT1JERVIsIDE1LDQ2LDMwNSwxMTEKICBQVVNIQlVUVE9OICImSW1wb3J0ZWVyLi4uIiwgSURDX01HUl9JTVBPUlQsIDcsMTcyLDUxLDE0CiAgUFVTSEJVVFRPTiAiJkV4cG9ydGVlci4uLiIsIElEQ19NR1JfRVhQT1JULCA2MiwxNzIsNTEsMTQsIFdTX0RJU0FCTEVECiAgUFVTSEJVVFRPTiAiJlZlcndpamRlciIsIElEQ19NR1JfUkVNT1ZFLCAxMTcsMTcyLDUxLDE0LCBXU19ESVNBQkxFRAogIFBVU0hCVVRUT04gIkdlJmF2YW5jZWVyZC4uLiIsIElEQ19NR1JfQURWQU5DRUQsIDI3NywxNzIsNTEsMTQKICBHUk9VUEJPWCAiQ2VydGlmaWNhYXQgZG9lbGVpbmRlbiIsIC0xLDcsMTk0LDMyMSw0NywgQlNfR1JPVVBCT1gKICBMVEVYVCAiIiwgSURDX01HUl9QVVJQT1NFUywgMTMsMjA4LDI1MiwzMAogIFBVU0hCVVRUT04gIiZCZWtpamtlbi4uLiIsIElEQ19NR1JfVklFVywgMjY5LDIxOCw1MSwxNCwgV1NfRElTQUJMRUQKICBQVVNIQlVUVE9OICImU2x1aXRlbiIsIElEQ0FOQ0VMLCAyNzcsMjQ5LDUxLDE0LCBCU19ERUZQVVNIQlVUVE9OCkVORAoKSUREX0NFUlRfTUdSX0FEVkFOQ0VEIERJQUxPRyBESVNDQVJEQUJMRSAwLDAsMjQ4LDE3NgpDQVBUSU9OICJHZWF2YW5jZWVyZGUgb3B0aWVzIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgR1JPVVBCT1ggIkNlcnRpZmljYWF0IGRvZWxlaW5kZSIsIC0xLCA3LDcsMjM0LDE0MSwgQlNfR1JPVVBCT1gKICBMVEVYVCAiU2VsZWN0ZWVyIGVlbiBvZiBtZWVyZGVyZSBkb2VsZW4gb20gdGUgdG9uZW4gYWxzIEdlYXZhbmNlZXJkZSBkb2VsZWluZGVuIHdvcmR0IGdlc2VsZWN0ZWVyZC4iLAogICAgLTEsIDE0LDE4LDIyMCwxNgogIExURVhUICImQ2VydGlmaWNhYXQgZG9lbGVpbmRlbjoiLCAtMSwgMTQsNDEsOTAsMTIsIFdTX1RBQlNUT1AKICBDT05UUk9MICIiLCBJRENfQ0VSVElGSUNBVEVfVVNBR0VTLCJTeXNMaXN0VmlldzMyIiwKICAgIExWU19SRVBPUlR8TFZTX05PQ09MVU1OSEVBREVSfExWU19TSU5HTEVTRUx8V1NfQ0hJTER8V1NfVklTSUJMRXxXU19UQUJTVE9QfFdTX0JPUkRFUiwKICAgIDE0LDUxLDIyMCw5MAogIFBVU0hCVVRUT04gIk9LIiwgSURPSywgMTMyLDE1NSw1MSwxNCwgQlNfREVGUFVTSEJVVFRPTgogIFBVU0hCVVRUT04gIkFubnVsZXJlbiIsIElEQ0FOQ0VMLCAxOTAsMTU1LDUxLDE0CkVORAoKSUREX0VYUE9SVF9XRUxDT01FIERJQUxPRyBESVNDQVJEQUJMRSAwLDAsMzE3LDE0MwpDQVBUSU9OICJDZXJ0aWZpY2FhdCBleHBvcnRlZXJodWxwIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgTFRFWFQgIldlbGtvbSBiaWogZGUgQ2VydGlmaWNhYXQgZXhwb3J0ZWVyaHVscCIsIElEQ19FWFBPUlRfVElUTEUsCiAgICAxMTUsMSwxOTUsNDAKICBMVEVYVCAiRGV6ZSBodWxwIGFzc2lzdGVlcmQgdSBiaWogaGV0IGV4cG9ydGVyZW4gdmFuIGNlcnRpZmljYXRlbiwgY2VydGlmaWNhYXQgdGVydWdyb2VwbGlqc3RlbiBlbiBjZXJ0aWZpY2FhdCB2ZXJ0cm91d2Vuc2xpanN0ZW4gdmFudWl0IGVlbiBjZXJ0aWZpY2F0ZW5vcHNsYWcgbmFhciBlZW4gYmVzdGFuZC4iLAogICAgLTEsIDExNSwzMywxOTUsMTYKICBMVEVYVCAiRWVuIGNlcnRpZmljYWF0IGthbiBnZWJydWlrdCB3b3JkZW4gb20gdSBvZiBkZSBjb21wdXRlciB3YWFybWVlIHUgd2Vya3QgdGUgaWRlbnRpZmljZXJlbi4gSGV0IGthbiBvb2sgZ2VicnVpa3Qgd29yZGVuIHZvb3IgYXV0aGVudGljYXRpZSBlbiBvbSBiZXJpY2h0ZW4gdGUgb25kZXJ0ZWtlbmVuLiBDZXJ0aWZpY2F0ZW5vcHNsYWdlbiB6aWpuIHZlcnphbWVsaW5nZW4gdmFuIGNlcnRpZmljYXRlbiwgY2VydGlmaWNhYXQgdGVydWdyb2VwbGlqc3RlbiBlbiBjZXJ0aWZpY2FhdCB2ZXJ0cm91d2Vuc2xpanN0ZW4uIiwKICAgIC0xLCAxMTUsNTYsMTk1LDQwCiAgTFRFWFQgIk9tIHZlcmRlciB0ZSBnYWFuLCBjbGljayBvcCBWb2xnZW5kZS4iLAogICAgLTEsIDExNSwxMDMsMTk1LDgKRU5ECgpJRERfRVhQT1JUX1BSSVZBVEVfS0VZIERJQUxPRyBESVNDQVJEQUJMRSAwLDAsMzE3LDE0MwpDQVBUSU9OICJDZXJ0aWZpY2FhdCBleHBvcnRlZXJodWxwIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgTFRFWFQgIkFscyB1IGRlIHBlcnNvb25saWprZSBzbGV1dGVsIHdpbHQgZXhwb3J0ZXJlbiB6dWx0IHUgbGF0ZXIgdmVyem9jaHQgd29yZGVuIGVlbiB3YWNodHdvb3JkIGluIHRlIGdldmVuIG9tIGRlIHNsZXV0ZWwgdGUgYmV2ZWlsaWdlbi4iLCAtMSwgMjEsMSwxOTUsMjMKICBMVEVYVCAiV2lsdCB1IGRlIHBlcnNvb25saWprZSBzbGV1dGVsIGV4cG9ydGVyZW4/IiwgLTEsIDIxLDI0LDE5NSwxNQogIEFVVE9SQURJT0JVVFRPTiAiJkphLCBleHBvcnRlZXIgZGUgcGVyc29vbmxpamtlIHNsZXV0ZWwiLAogICAgSURDX0VYUE9SVF9QUklWQVRFX0tFWV9ZRVMsIDMxLDM2LDIwMCwxMiwgQlNfQVVUT1JBRElPQlVUVE9OfFdTX1RBQlNUT1AKICBBVVRPUkFESU9CVVRUT04gIiZOZWUsIGV4cG9ydGVlciBkZSBwZXJzb29ubGlqa2Ugc2xldXRlbCBuaWV0IiwKICAgIElEQ19FWFBPUlRfUFJJVkFURV9LRVlfTk8sIDMxLDQ4LDIwMCwxMiwgQlNfQVVUT1JBRElPQlVUVE9OCiAgTFRFWFQgIiIsIElEQ19FWFBPUlRfUFJJVkFURV9LRVlfVU5BVkFJTEFCTEUsIDIxLDYwLDIwMCwyNApFTkQKCklERF9FWFBPUlRfUEFTU1dPUkQgRElBTE9HIERJU0NBUkRBQkxFIDAsMCwzMTcsMTQzCkNBUFRJT04gIkNlcnRpZmljYWF0IGV4cG9ydGVlcmh1bHAiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICBMVEVYVCAiJldhY2h0d29vcmQ6IiwgLTEsIDIxLDEsMTk1LDEwCiAgRURJVFRFWFQgSURDX0VYUE9SVF9QQVNTV09SRCwgMjEsMTEsMjA4LDE0LCBFU19BVVRPSFNDUk9MTHxXU19UQUJTVE9QCiAgTFRFWFQgIiZCZXZlc3RpZyB3YWNodHdvb3JkOiIsIC0xLCAyMSwzNSwxOTUsMTAKICBFRElUVEVYVCBJRENfRVhQT1JUX1BBU1NXT1JEX0NPTkZJUk0sIDIxLDQ1LDIwOCwxNCwgRVNfQVVUT0hTQ1JPTEx8V1NfVEFCU1RPUApFTkQKCklERF9FWFBPUlRfRk9STUFUIERJQUxPRyBESVNDQVJEQUJMRSAwLDAsMzE3LDE0MwpDQVBUSU9OICJDZXJ0aWZpY2FhdCBleHBvcnRlZXJodWxwIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgTFRFWFQgIlNlbGVjdGVlciBoZXQgZm9ybWFhdCBkYXQgdSB3aWx0IGdlYnJ1aWtlbjoiLCAtMSwgMjEsMSwxOTUsMTAKICBBVVRPUkFESU9CVVRUT04gIiZERVItZW5jb2RlZCBYLjUwOSAoLmNlcikiLAogICAgSURDX0VYUE9SVF9GT1JNQVRfREVSLCAzMSwxOCwyMDAsMTIsIEJTX0FVVE9SQURJT0JVVFRPTnxXU19UQUJTVE9QCiAgQVVUT1JBRElPQlVUVE9OICJCYSZzZTY0LWVuY29kZWQgWC41MDkgKC5jZXIpOiIsCiAgICBJRENfRVhQT1JUX0ZPUk1BVF9CQVNFNjQsIDMxLDMwLDIwMCwxMiwgQlNfQVVUT1JBRElPQlVUVE9OCiAgQVVUT1JBRElPQlVUVE9OICImQ3J5cHRvZ3JhcGhpc2NoIGJlcmljaHRzeW50YXhpcyBzdGFuZGFhcmQvUEtDUyAjNyBiZXJpY2h0ZW4gKC5wN2IpIiwKICAgIElEQ19FWFBPUlRfRk9STUFUX0NNUywgMzEsNDIsMjAwLDEyLCBCU19BVVRPUkFESU9CVVRUT04KICBDSEVDS0JPWCAiTmVlbSAmYWxsZSBjZXJ0aWZpY2F0ZW4gaW4gaGV0IGNlcnRpZmljYXRpZXBhZCBvcCBpbmRpZW4gbW9nZWxpamsiLAogICAgSURDX0VYUE9SVF9DTVNfSU5DTFVERV9DSEFJTiwgNDQsNTcsMjAwLDgsIEJTX0FVVE9DSEVDS0JPWHxXU19UQUJTVE9QfFdTX0RJU0FCTEVECiAgQVVUT1JBRElPQlVUVE9OICImUGVyc29vbmxpamtlIGluZm9ybWF0aWUgdWl0d2lzc2VsaW5nL1BLQ1MgIzEyICgucGZ4KSIsCiAgICBJRENfRVhQT1JUX0ZPUk1BVF9QRlgsIDMxLDcyLDIwMCwxMiwgQlNfQVVUT1JBRElPQlVUVE9OfFdTX0RJU0FCTEVECiAgQ0hFQ0tCT1ggIk5lZSZtIGFsbGUgY2VydGlmaWNhdGVuIGluIGhldCBjZXJ0aWZpY2F0aWVwYWQgb3AgaW5kaWVuIG1vZ2VsaWprIiwKICAgIElEQ19FWFBPUlRfUEZYX0lOQ0xVREVfQ0hBSU4sIDQ0LDg3LDIwMCw4LCBCU19BVVRPQ0hFQ0tCT1h8V1NfVEFCU1RPUHxXU19ESVNBQkxFRAogIENIRUNLQk9YICImR2VicnVpa3Qgc3RlcmtlIGVuY3J5cHRpZSIsCiAgICBJRENfRVhQT1JUX1BGWF9TVFJPTkdfRU5DUllQVElPTiwgNDQsMTAyLDIwMCw4LAogICAgQlNfQVVUT0NIRUNLQk9YfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQKICBDSEVDS0JPWCAiVmVyd2lqZGVyIGRlIHBlcnNvb25saWprZSBzJmxldXRlbCBhbHMgZGUgZXhwb3J0IHN1Y2Nlc3ZvbCBpcyIsCiAgICBJRENfRVhQT1JUX1BGWF9ERUxFVEVfUFJJVkFURV9LRVksIDQ0LDExNywyMDAsOCwKICAgIEJTX0FVVE9DSEVDS0JPWHxXU19UQUJTVE9QfFdTX0RJU0FCTEVECkVORAoKSUREX0VYUE9SVF9GSUxFIERJQUxPRyBESVNDQVJEQUJMRSAwLDAsMzE3LDE0MwpDQVBUSU9OICJDZXJ0aWZpY2FhdCBleHBvcnRlZXJodWxwIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgTFRFWFQgIkJlc3RhbmRzJm5hYW06IiwgLTEsIDIxLDEsMTk1LDEwCiAgRURJVFRFWFQgSURDX0VYUE9SVF9GSUxFTkFNRSwgMjEsMTEsMjA4LDE0LCBFU19BVVRPSFNDUk9MTHxXU19UQUJTVE9QCiAgUFVTSEJVVFRPTiAiJkJsYWRlcmVuLi4uIiwgSURDX0VYUE9SVF9CUk9XU0VfRklMRSwgMjM2LDExLDYwLDE0CkVORAoKSUREX0VYUE9SVF9GSU5JU0ggRElBTE9HIERJU0NBUkRBQkxFIDAsMCwzMTcsMTQzCkNBUFRJT04gIkNlcnRpZmljYWF0IGV4cG9ydGVlcmh1bHAiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICBMVEVYVCAiQWZyb25kZW4gdmFuIGRlIENlcnRpZmljYWF0IGV4cG9ydGVlcmh1bHAiLCBJRENfRVhQT1JUX1RJVExFLAogICAgMTE1LDEsMTk1LDQwCiAgTFRFWFQgIlUgaGVlZnQgZGUgQ2VydGlmaWNhYXQgZXhwb3J0ZWVyaHVscCBzdWNjZXN2b2wgYWZnZXJvbmQuIiwKICAgIC0xLCAxMTUsMzMsMTk1LDI0CiAgTFRFWFQgIlUgaGVlZnQgZGUgdm9sZ2VuZGUgaW5zdGVsbGluZ2VuIGdlc3BlY2lmaWNlZXJkOiIsCiAgICAtMSwgMTE1LDU3LDE5NSwxMgogIENPTlRST0wgIiIsIElEQ19FWFBPUlRfU0VUVElOR1MsICJTeXNMaXN0VmlldzMyIiwKICAgIExWU19SRVBPUlR8TFZTX05PQ09MVU1OSEVBREVSfExWU19TSU5HTEVTRUx8V1NfQ0hJTER8V1NfVklTSUJMRXxXU19UQUJTVE9QfFdTX0JPUkRFUiwKICAgIDExNSw2NywxNzQsMTAwCkVORAo=