IC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KioqDQogKrDmsb7L+dPQIChDKTIwMTLW0NDLzajRtrnJt93T0M/euavLvg0KICogIMSjv+nD+yAgo7oNCiAqICDOxLz+w/sgIKO6cHN3cGh5aW50LmgNCiAqICDOxLz+serKtqO6DQogKiAgz+C52M7EvP6jug0KICogIMq1z9a5psTco7pXQ0RNQSBwc7rNV0NETUEgUEhZtcS907/atqjS5Q0KICogINf31d8gICAgo7oNCiAqICCw5rG+ICAgIKO6DQogKiAgzeqzycjVxtqjug0KICogIMbky/zLtcP3o7oNCiovIA0KDQojaWZuZGVmIFpfUFNfV1BIWV9JTlRFUkZBQ0VfSA0KI2RlZmluZSBaX1BTX1dQSFlfSU5URVJGQUNFX0gNCg0KDQojaWZuZGVmIFpfU0VORF9UT19TSU1QSFkNCiNpbmNsdWRlICJyYW1fY29uZmlnLmgiDQojZW5kaWYNCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKiAgICAgICAgICAgICAgICAgICAgICAgIM23zsS8/rD8uqwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQoNCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLyoJCQkJSUNQINbQts/XtMyszru2qNLlCQkJCQkJCQkJCQkqLw0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQojZGVmaW5lIENPTkZJR19PUFRfU0laRSAgICAgICAoMSkgICAgLypmb3Igc2l6ZSBvcHRpbWl6ZSwgaWYgZm91bmQgc29tZSBleGNlcHRpb24gcGxlYXNlIGRpc2FibGUgaXQqLw0KDQovKiBQSFlfQ1BVIC0+IFBTX0NQVSBJQ1AgU1RBVVRTKi8NCiNkZWZpbmUgUEhZX1BTX0ZSQU1FX0lDUF9NQVNLCQkgICAgICAgKERXT1JEKTB4MDAwMDAwMDENCiNkZWZpbmUgUEhZX1BTX1dBS0VVUF9JQ1BfTUFTSwkJKERXT1JEKTB4MDAwMDAwMDINCg0KLyogUFNfQ1BVIC0+IFBIWV9DUFUgSUNQIFNUQVVUUyovDQojZGVmaW5lIFBTX1BIWV9VUEFfREFUQV9JQ1BfTUFTSwkgICAgICAgKERXT1JEKTB4MDAwMDAwMDENCiNkZWZpbmUgUFNfUEhZX1dBS0VVUF9JQ1BfTUFTSwkJKERXT1JEKTB4MDAwMDAwMDINCg0KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoqICAgICAgICAgICAgICAgICAgICAgICAgIMirvta66rao0uUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCg0KDQovKnN0YXJ0OtChx/jL0cv3sr+31rrq1rW2qNLlKi8NCiNkZWZpbmUgWl9XX1BfTUFYX05PX09GX0ZSRVFTQ0FOX0ZSRVEgICAgICAgICAgICAgICAgKFdPUkQpNjQgICAvKtDo0qrJqMPotcTX7rTzxrW2zsr9xL8qLw0KI2RlZmluZSBaX1dfUF9NQVhfTk9fT0ZfUlNTSV9SRVNVTFRTICAgICAgICAgICAgICAgICAoV09SRCkzMiAgIC8qyajGtcnPsai1xNfutPPGtbXjyv3EvyovDQojZGVmaW5lIFpfV19QX01BWF9OT19PRl9TRUFSQ0hfUkVTVUxUUyAgICAgICAgICAgICAgIChXT1JEKTggICAgLyrQocf4y9HL98nPsai1xNfutPPQocf4yv3EvyovDQoNCiNkZWZpbmUgWl9XX1BfQ0VMTFNSSFRZUEVfU1RST05HRVNUICAgICAgICAgICAgICAgICAgKFdPUkQpMCAgICAvKre1u9jWuLaoxrW147XE1+7Hv9Chx/gqLw0KI2RlZmluZSBaX1dfUF9DRUxMU0VBUkNIVFlQRV9CTElORCAgICAgICAgICAgICAgICAgICAoV09SRCkxICAgIC8qt7W72Na4tqjGtbXjtcTQocf4wdCx7SovDQojZGVmaW5lIFpfV19QX0NFTExTRUFSQ0hUWVBFX1NQRUMgICAgICAgICAgICAgICAgICAgIChXT1JEKTIgICAgLyq3tbvY1ri2qFByaW1TcmO1xNChx/gqLw0KDQoNCi8qyejWw1fO78DtsuPKx7fx1vfEo8q9Ki8NCiNkZWZpbmUgWl9XX1BfSVJBVF9NT0RFX1NMQVZFICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMCAgICAvKsno1sPOqrioxKPKvSovDQojZGVmaW5lIFpfV19QX0lSQVRfTU9ERV9NQVNURVIgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTEgICAgLyrJ6NbDzqrW98Sjyr0qLw0KDQovKkZERMa1ts66xbao0uUqLw0KI2RlZmluZSBaX1dfUF9CQU5EX0ZEREkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxDQojZGVmaW5lIFpfV19QX0JBTkRfRkRESUkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTINCiNkZWZpbmUgWl9XX1BfQkFORF9GRERJSUkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMw0KI2RlZmluZSBaX1dfUF9CQU5EX0ZERElWICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk0DQojZGVmaW5lIFpfV19QX0JBTkRfRkREViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTUNCiNkZWZpbmUgWl9XX1BfQkFORF9GRERWSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNg0KI2RlZmluZSBaX1dfUF9CQU5EX0ZERFZJSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk3DQojZGVmaW5lIFpfV19QX0JBTkRfRkREVklJSSAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTgNCiNkZWZpbmUgWl9XX1BfQkFORF9GRERJWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpOQ0KI2RlZmluZSBaX1dfUF9CQU5EX0ZERFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxMA0KI2RlZmluZSBaX1dfUF9CQU5EX0ZERFhJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxMQ0KI2RlZmluZSBaX1dfUF9CQU5EX0ZERFhJSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxMg0KI2RlZmluZSBaX1dfUF9CQU5EX0ZERFhJSUkgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxMw0KI2RlZmluZSBaX1dfUF9CQU5EX0ZERFhJViAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxNA0KI2RlZmluZSBaX1dfUF9CQU5EX0ZERFhJWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxNQ0KI2RlZmluZSBaX1dfUF9CQU5EX0ZERFhYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxNg0KI2RlZmluZSBaX1dfUF9CQU5EX0ZERFhYSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxNw0KLyplbmQg0KHH+MvRy/eyv7fWuurWtbao0uUqLw0KDQovKnN0YXJ0Os+1zbPQxc+isr+31rrq1rW2qNLlKi8NCiNkZWZpbmUgWl9XX1BfTUFYX05VTV9PRl9CQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpOCAgICAgIA0KI2RlZmluZSBaX1dfUF9NQVhfTk9fT0ZfU0lCX09GRlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMTYgICAgIC8qz7XNs9DFz6LGq9LG1+6088r91+m49sr9Ki8NCiNkZWZpbmUgWl9XX1BfTUFYX05PX09GX1NJQl9TQ0hFRFVMRVMgICAgICAgICAgICAgICAgICAoV09SRCkzMCAgICAvKtfutPO197bI0MXPorj2yv0qLw0KLyrPtc2z0MXPor/pwODQzSovDQojZGVmaW5lIFpfV19QX1VSUkNfTUlCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTANCiNkZWZpbmUgWl9XX1BfVVJSQ19TSUIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMQ0KI2RlZmluZSBaX1dfUF9VUlJDX1NJQjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkyDQojZGVmaW5lIFpfV19QX1VSUkNfU0lCMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTMNCiNkZWZpbmUgWl9XX1BfVVJSQ19TSUI0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNA0KI2RlZmluZSBaX1dfUF9VUlJDX1NJQjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk1DQojZGVmaW5lIFpfV19QX1VSUkNfU0lCNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTYNCiNkZWZpbmUgWl9XX1BfVVJSQ19TSUI3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNw0KI2RlZmluZSBaX1dfUF9VUlJDX1NJQjExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxMQ0KI2RlZmluZSBaX1dfUF9VUlJDX1NJQjEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxMg0KI2RlZmluZSBaX1dfUF9VUlJDX1NJQjE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxOA0KI2RlZmluZSBaX1dfUF9VUlJDX1NJQjE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxOQ0KI2RlZmluZSBaX1dfUF9VUlJDX1NJQjE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkyMw0KI2RlZmluZSBaX1dfUF9VUlJDX1NJQjE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkyNg0KI2RlZmluZSBaX1dfUF9VUlJDX1NCMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkyNw0KI2RlZmluZSBaX1dfUF9VUlJDX1NCMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkyOA0KI2RlZmluZSBaX1dfUF9VUlJDX1NJQjVCSVMgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkzMA0KI2RlZmluZSBaX1dfUF9VUlJDX1NJQl9UWVBFX0VYVEVOU0lPTl9UWVBFICAgICAgICAgICAoV09SRCkzMQ0KI2RlZmluZSBaX1dfUF9VUlJDX1NJQjExQklTICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkzMg0KI2RlZmluZSBaX1dfUF9VUlJDX1NJQjE1QklTICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkzMw0KLypTSUItVHlwZUV4dDIqLw0KI2RlZmluZSBaX1dfUF9VUlJDX1NJQjE5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk0MA0KI2RlZmluZSBaX1dfUF9VUlJDX1NJQjIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk0Mg0KDQojZGVmaW5lIFpfV19QX0JDSF9SRVFfT05FICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTAgICAgLyrH68fzzu/A7bLj0tTWuLaot73KvbbBYmNoKi8NCiNkZWZpbmUgWl9XX1BfQkNIX1JFUV9BTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMSAgICAvKsfrx/PO78DtsuPBrND4tsFiY2gqLw0KDQojZGVmaW5lIFpfV19QX1NUVERfTk9UVVNFRCAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTAgICAgLyqyu8q508NTVFREKi8NCiNkZWZpbmUgWl9XX1BfU1RURF9VU0VEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMSAgICAvKsq508NTVFREKi8NCiNkZWZpbmUgWl9XX1BfU1RURF9VTk5PVElGWSAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMiAgICAvKs601qqjrLy0cHOyu8i3yM+1scew0KHH+MrHt/HKudPDU1RURCovDQovKmVuZDrPtc2z0MXPorK/t9a66ta1tqjS5SovDQoNCi8qc3RhcnQ618rUtLK/t9a66ta1tqjS5SovDQojZGVmaW5lIFpfV19QX01BWF9VTF9UUkNIX05VTSAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk4IA0KI2RlZmluZSBaX1dfUF9NQVhfRExfVFJDSF9OVU0gICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpOA0KI2RlZmluZSBaX1dfUF9NQVhfVUxfVEZfTlVNICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMzINCiNkZWZpbmUgWl9XX1BfTUFYX0RMX1RGX05VTSAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTY0DQojZGVmaW5lIFpfV19QX01BWF9VTF9URkNfTlVNICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk2NA0KI2RlZmluZSBaX1dfUF9NQVhfRExfVEZDX05VTSAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMTI4DQojZGVmaW5lIFpfV19QX01BWF9OT19PRl9STCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk4LyrX7rTzUkzK/cS/Ki8NCiNkZWZpbmUgWl9XX1BfTUFYX0VEQ0hfTk9fT0ZfUkwgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTQNCiNkZWZpbmUgWl9XX1BfTUFYX05PX09GX0RQQ0hTICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTgNCiNkZWZpbmUgWl9XX1BfTUFYX0hfUFJPQ0VTUyAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTgNCiNkZWZpbmUgWl9XX1BfTUFYX0hTX1NDQ0hfQ09ERVMgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTQNCiNkZWZpbmUgWl9XX1BfTUFYX1JFRl9FVEZDSSAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTgNCiNkZWZpbmUgWl9XX1BfTUFYX0hTQ0NITEVTU19URlNfTlVNICAgICAgICAgICAgICAgICAgIChXT1JEKTQNCg0KI2RlZmluZSBaX1dfUF9UVElfMk1TICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxDQojZGVmaW5lIFpfV19QX1RUSV8xME1TICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTINCiNkZWZpbmUgWl9XX1BfVFRJXzIwTVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMw0KI2RlZmluZSBaX1dfUF9UVElfNDBNUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk0DQojZGVmaW5lIFpfV19QX1RUSV84ME1TICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTUNCg0KI2RlZmluZSBaX1dfQUNUX1RJTUVfSU1NRURJQVRFTFkgICAgICAgICAgKFdPUkQpMjU2Lyq8pLvuyrG85MrHwaK8tLyku+4qLw0KLyplbmQg18rUtLK/t9a66ta1tqjS5SovDQoNCi8qc3RhcnSy4sG/z+C52LrqtqjS5SovDQojZGVmaW5lICBaX1dfUF9NQVhfQ0VMTF9OVU0gICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkzMiAgICAgICAgIC8qzazGtdLsxrXX7rTz1qez1tChx/jK/cS/Ki8NCiNkZWZpbmUgIFpfV19QX01BWF9JTlRSQUZSRVFfTlVNICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTEgICAgICAgICAgLyrNrMa1xrW148r9xL+jrLK7v7zCx7Xatv7Jz9DQxrW148qxuMPWtc6qMSovDQojZGVmaW5lICBaX1dfUF9NQVhfSU5URVJGUkVRX05VTSAgICAgICAgICAgICAgICAgICAgICAoV09SRCk4ICAgICAgICAgLyrS7Ma1xeTWw8a1tePK/cS/Ki8NCiNkZWZpbmUgIFpfV19QX01BWF9CTElORF9JTlRFUkZSRVFfTlVNICAgICAgICAgICAgICAgIChXT1JEKTE2ICAgICAgICAgIC8q0uzGtcOkxrW147XExrW148r9xL8qLw0KI2RlZmluZSAgWl9XX1BfTUFYX0JMSU5EX0lOVEVSRlJFUV9DRUxMX05VTSAgICAgICAgICAgKFdPUkQpMyAgICAgICAgICAvKsOkxrW148/C0KHH+Mr9xL8qLw0KI2RlZmluZSAgWl9XX1BfTUFYX0NNX05VTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNiAgICAgICAgICAvKtG5y/XEo8q9xeTWw8/uyv3EvyovDQojZGVmaW5lICBaX1dfUF9NQVhfRlJBTUVfR0FQX05VTSAgICAgICAgICAgICAgICAgICAgICAoV09SRCkyICAgICAgICAgIC8q0ru49tah1tDX7rTzR0FQyv3EvyovDQovKmVuZLLiwb/P4LnYuuq2qNLlKi8NCg0KLypzdGFydLLjtv7P4LnYuuq2qNLlKi8NCi8qzt7P39fK1LTF5NbDz+C52LrqtqjS5SovDQoNCiNkZWZpbmUgICAgIFpfV19QX01BWF9VTF9GUkVRVUVOQ1lfTlVNICAgICAgICAgICAgICAgIChXT1JEKTINCiNkZWZpbmUgICAgIFpfV19QX01BWF9ETF9GUkVRVUVOQ1lfTlVNICAgICAgICAgICAgICAgIChXT1JEKTINCg0KLyq0q8rk0MW1wMDg0M0svfbTw9Paus3O78DtsuO1xL3Tv9rW0CovDQojZGVmaW5lICAgICBaX1dfUF9QQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkwDQojZGVmaW5lICAgICBaX1dfUF9GQUNIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxDQojZGVmaW5lICAgICBaX1dfUF9ETF9EQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkyDQojZGVmaW5lICAgICBaX1dfUF9SQUNIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkzDQojZGVmaW5lICAgICBaX1dfUF9VTF9EQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk0DQoNCi8qVVBBz+C52LLOyv0qLw0KLy8jZGVmaW5lICAgICBaX1dfUF9NQVhfUkVGX0VURkNJX05VTSAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpOC8qWl9XX1BfTUFYX1JFRl9FVEZDSSovDQojZGVmaW5lICAgICBaX1dfUF9NQVhfUkdfTlVNICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk0DQoNCi8qyv2+3b3Tv9q089ChKi8NCiNkZWZpbmUgICAgIFpfV19QX01BWF9OT19PRl9VTF9CWVRFUyAgICAgICAgICAgICAgICAgIChXT1JEKTExNjgNCg0KI2RlZmluZSAgICAgWl9XX1BfTUFYX05PX09GX0RMX0JZVEVTICAgICAgICAgICAgICAgICAgKFdPUkQpMTE2OA0KI2RlZmluZSAgICAgWl9XX1BfTUFYX05PX09GX0hTRFBBX0JZVEVTICAgICAgICAgICAgICAgKFdPUkQpNTI3NA0KDQojZGVmaW5lICAgICBaX1dfUF9NQVhfTk9fT0ZfSFNVUEFfQllURVMgICAgICAgICAgICAgICAoV09SRCkyODc2DQoNCg0KI2RlZmluZSAgICAgWl9XX1BfTUFYX0VURkNJX05VTSAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMTI4DQojZGVmaW5lICAgICBaX1dfUF9NQVhfTlRSX05VTSAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpOA0KDQovKnJhY2jP4LnYKi8NCiNkZWZpbmUgICAgIFpfV19QX1JBQ0hfQUNDRVNTX0FDSyAgICAgICAgICAgICAgICAgICAgIChXT1JEKTANCiNkZWZpbmUgICAgIFpfV19QX1JBQ0hfQUNDRVNTX05BQ0sgICAgICAgICAgICAgICAgICAgIChXT1JEKTENCiNkZWZpbmUgICAgIFpfV19QX1JBQ0hfQUNDRVNTX05PX0FDSyAgICAgICAgICAgICAgICAgIChXT1JEKTINCg0KLyrPwtDQyv2+3cDg0M0qLw0KI2RlZmluZSAgICAgICAgWl9XX1BfUENIX0ZBQ0hfRENIX0RBVEEgICAgICAgICAgICAgICAgKFdPUkQpMA0KI2RlZmluZSAgICAgICAgWl9XX1BfRFBBX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMQ0KLyplbmSy47b+z+C52LrqtqjS5SovDQoNCg0KDQovKnfW98Sjway908ysKEZBQ0ggoaJEQ0gpzu/A7bLjyc+xqEdBUNDo0qq/27P9tcTJ5Ma1saO7pLzkuPS1pc67Q0hJUCwgNzUyMLDmsb7Nt86yt9ax8L/bs/0zMGNoaXBzKDcuODEyNXVzKSA2NjBjaGlwcygxNzEuODc1dXMpLiAqLw0KDQojZGVmaW5lICAgWl9XX1BfTUVBU19EQ0hHQVBfU1RBUlRfT0ZGICAgICAgICAgICAgICAgICAoV09SRCkzMA0KI2RlZmluZSAgIFpfV19QX01FQVNfRENIR0FQX1RBSUxfT0ZGICAgICAgICAgICAgICAgICAgKFdPUkQpNjYwDQoNCg0KI2RlZmluZSBaX1pXUENHX1ZBTEZHX05VTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpOA0KI2RlZmluZSBaX1pXUENHX1BBUkFNX05VTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMjUNCg0KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoqICAgICAgICAgICAgICAgICAgICAgICAgIMirvtbK/b7dwODQzbao0uUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQoNCg0KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogKiAgICAgICAgICAgICAgICAgICAgICAgICDQocf4y9HL98irvtbK/b7dwODQzbao0uUgc3RhcnQgICAgICAgICAgICAgICAgICAgICoNCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KDQovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KICAgIFJSQy0+UEhZDQogICAgysK8/qO6UF9XX0ZSRVFVRU5DWV9TQ0FOX1JFUQ0KICAgILmmxNw6DQogICAgICAgIL/JxNyz9s/WtcTU2rP1yrzXtMyso6xJRExFzKyjrENFTExfUENIzKyjrENFTExfVVJBzKyjrEwxuPm+3c/7z6LW0A0KICAgICAgICDQr7T4tcTGtbXju/LGtbbO0MXPor340NDJqMa1o6zK18/I1rTQ0Ma1ts7JqMa1o6zWrrrz1Nm9q8a1ts7JqMPoveENCiAgICAgICAgufvGtbXj0+vQrdLp1bvPwreitcTA68mixrW147fF1NrSu8bwvfjQ0MDryaLGtbXjyajGtQ0KICAgIL3hubk6DQogICAgICAgIFRfeldfUF9mcmVxdWVuY3lfc2Nhbl9yZXENCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQogdHlwZWRlZiBzdHJ1Y3R7ICAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RnJlcVN0YXJ0UmFuZ2U7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RnJlcUVuZFJhbmdlOyAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3QmFuZEluZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCn1UX3pXX1BfZnJlcXVlbmN5X3JhbmdlOw0KDQp0eXBlZGVmIHN0cnVjdA0KeyAgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxUmFuZ2VOdW07DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VxTnVtOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1dvbmx5RmxnOyAvKrWxx7DKx7fxysdXtaXEo6Osd1dvbmx5RmxnPTHOqrWlxKOjrLfx1PLOqrbgxKMqLw0KICAgIFRfeldfUF9mcmVxdWVuY3lfcmFuZ2UgICAgICAgICAgICAgICAgICAgICAgYXRGcmVxdWVuY3lSYW5nZVtaX1dfUF9NQVhfTk9fT0ZfRlJFUVNDQU5fRlJFUV07DQp9VF96V19QX2ZyZXF1ZW5jeV9zY2FuX3JlcTsNCg0KDQovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KICAgIFJSQy0+UEhZDQogICAgysK8/qO6UF9XX0FCT1JUX0ZSRVFfU0NBTl9SRVENCiAgICC5psTcOg0KICAgICAgICDNo9a5TDHGtcLKyajD6Mfrx/MNCiAgICC94bm5Og0KICAgICAgICBUX3pXX1BfYWJvcnRfZnJlcXVlbmN5X3NjYW5fcmVxLL/VveG5uQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCnR5cGVkZWYgICBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCn1UX3pXX1BfYWJvcnRfZnJlcXVlbmN5X3NjYW5fcmVxOw0KDQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogICAgUEhZLT5MMVcNCiAgICDKwrz+o7pQX0FCT1JUX0ZSRVFfU0NBTl9DTkYNCiAgICC5psTcOg0KICAgICAgICDNo9a5TDHGtcLKyajD6Mi3yM8NCiAgICC94bm5Og0KICAgICAgICBUX3pXX1BfYWJvcnRfZnJlcXVlbmN5X3NjYW5fY25mLL/VveG5uQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCnR5cGVkZWYgICBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCn1UX3pXX1BfYWJvcnRfZnJlcXVlbmN5X3NjYW5fY25mOw0KDQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogICAgUEhZLT5SUkMNCiAgICDKwrz+o7pQX0ZSRVFVRU5DWV9TQ0FOX0lORA0KICAgILmmxNw6DQogICAgICAgIEwxzeqzycmoxrW686Oszai5/c/7z6JQX0ZSRVFVRU5DWV9TQ0FOX0lORMnPsajJqMa1veG5+yzO78DtsuO4+b7dDQogICAgICAgIFJTU0my4sG/1rW8sFBTQ0jP4LnYxNzBv7bUxrXCyr340NDFxdDyo6zX7r/JxNzXpMH0tcTGtcLKt8XU2srXzrujrA0KICAgICAgICDSwLTOwODNxqOssrvE3NekwfS1xMa1wsqyu8nPsaihow0KICAgICAgICDI57n7yajGtb3hufuzrLn9MzKjrM7vwO2y472rx7AzMse/xrW149f3zqq94bn7yc+xqNCt0unVu6GjDQogICAgveG5uToNCiAgICAgICAgVF96V19QX2ZyZXF1ZW5jeV9zY2FuX2luZA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCiB0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxdWVuY3k7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCiB9VF96V19QX3NjYW5fcmVzdWx0Ow0KDQp0eXBlZGVmIHN0cnVjdA0KeyAgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTY2FuUmx0TnVtOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlcU51bTsgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsgICAgIA0KICAgIFRfeldfUF9zY2FuX3Jlc3VsdCAgICAgICAgICAgICAgICAgICAgICAgICAgYXRTY2FuUmVzdWx0W1pfV19QX01BWF9OT19PRl9SU1NJX1JFU1VMVFNdOyAvKs7vwO2y472ryajGtb3hufvHsDMyx7/Jz7GoKi8gDQp9VF96V19QX2ZyZXF1ZW5jeV9zY2FuX2luZDsgDQoNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICBSUkMtPlBIWQ0KICAgIMrCvP6julBfQ0VMTF9TRUFSQ0hfUkVRDQogICAguabE3DoNCiAgICAgICAgICAgINa4tqjGtbXjyc+y6dXS1ri2qMr9xL/Qocf4oaPI57n7tbHHsNLR09C3/s7x0KHH+KOsTDHQ6NKqzazKsbGjs9a3/s7x0KHH+M2ssr2jrA0KICAgICAgICDS1LywvdPK1dGwuvS1yKGjyOe5+8rVtb3RsLr0tcjH6b/20OjSqtbQts9MMdChx/jL0cv3o6zW0LbPuvNMMbK71NnP8tCt0unVu8nPsajS0Q0KICAgICAgICC3os/W0KHH+NDFz6Kho8jnuftudW1fb2ZfY2VsbF9pZMihMKOsx+vH80wx1NrWuLaoxrW148nPw6TL0dChx/ijrML61+OhsMPFz96hsbXEDQogICAgICAgIG51bV9vZl9yZXN1bHS49tChx/jJz7GooaPI57n7bnVtX29mX2NlbGxfaWTIobfHMNa1o6zH68fzTDHU2ta4tqhjZWxsX3BhcmFtZXRlcl9pZLXEDQogICAgICAgINChx/jB0LHt1tDL0cv3wvrX46Gww8XP3qGxtcTQocf4yc+xqKGjxuTW0LXEobAgw8XP3qGxINPJzu/A7bLjuPm+3dDUxNzIt7aoDQogICAgveG5uToNCiAgICAgICAgVF96V19QX2NlbGxfc2VhcmNoX3JlcQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCnR5cGVkZWYgc3RydWN0DQp7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHhEaXZlcnNpdHlJbmQ7IC8qss68+7rqtqjS5Sy99rWxd1NlYXJjaFR5cGXOqta4tqjL0cv3yrHT0NCnKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmltU3JjOw0KfVRfeldfUF9jZWxsc3JoX2luZm87IA0KDQp0eXBlZGVmIHN0cnVjdA0KeyAgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZXFOdW07DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RnJlcXVlbmN5Ow0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlYXJjaFR5cGU7ICAgLyqyzrz7uuq2qNLlKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZlJlc3VsdDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZkNlbGw7DQogICAgVF96V19QX2NlbGxzcmhfaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICBhdENlbGxTcmhJbmZvW1pfV19QX01BWF9OT19PRl9TRUFSQ0hfUkVTVUxUU107DQp9VF96V19QX2NlbGxfc2VhcmNoX3JlcTsgDQoNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICBQSFktPlJSQw0KICAgIMrCvP6julBfQUJPUlRfQ0VMTF9TRUFSQ0hfUkVRDQogICAguabE3DoNCiAgICAgICAgzaPWuc7vwO2y47XEY2VsbCBzZWFyY2ihow0KICAgIL3hubk6DQogICAgICAgIFRfeldfUF9hYm9ydF9jZWxsX3NlYXJjaF9yZXEsv9W94bm5DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiAgICBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCn1UX3pXX1BfYWJvcnRfY2VsbF9zZWFyY2hfcmVxOw0KDQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogICAgUEhZLT5MMVcNCiAgICDKwrz+o7pQX0FCT1JUX0NFTExfU0VBUkNIX0NORg0KICAgILmmxNw6DQogICAgICAgIM2j1rnO78DtsuO1xGNlbGwgc2VhcmNoyLfIz6GjDQogICAgveG5uToNCiAgICAgICAgVF96V19QX2Fib3J0X2NlbGxfc2VhcmNoX2NuZiy/1b3hubkNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmICAgIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KfVRfeldfUF9hYm9ydF9jZWxsX3NlYXJjaF9jbmY7DQoNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICBQSFktPlJSQw0KICAgIMrCvP6julBfQ0VMTF9TRUFSQ0hfSU5EDQogICAguabE3DoNCiAgICAgICAgyc+xqNa4tqjGtbXjyc/C+tfjzu/A7bLj1+61zcPFz97WtbXEo6jWuLaoo6nQocf4suLBv73hufuhow0KICAgIL3hubk6DQogICAgICAgIFRfeldfUF9jZWxsX3NlYXJjaF9pbmQNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdHsgICAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpbVNyYzsgICAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3BpY2hSc2NwOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NwaWNoRWNObzsgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQp9VF96V19QX2NlbGxfcGFyYW1zOw0KDQp0eXBlZGVmIHN0cnVjdA0Kew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlcU51bTsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxdWVuY3k7ICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZkZvdW5kQ2VsbHM7ICAgIA0KICAgIFRfeldfUF9jZWxsX3BhcmFtcyAgICAgICAgICAgICAgICAgICAgICAgICAgYXRDZWxsW1pfV19QX01BWF9OT19PRl9TRUFSQ0hfUkVTVUxUU107ICAgICAgICAgICAgICAgICAgIA0KfVRfeldfUF9jZWxsX3NlYXJjaF9pbmQ7IA0KDQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogICAgUlJDLT5QSFkNCiAgICDKwrz+o7pQX0JDSF9PUEVOX1JFUQ0KICAgILmmxNw6DQogICAgICAgILjDz/vPotTat8dEQ0jMrLvhz8K3oiy08r+qQkNItsHPtc2z0MXPoiy/1c/QzKwsUENIzKy/ydLUtsHIobf+zvHQocf4DQogICAgICAgILrNz+DB2tChx/jPtc2z0MXPoqOsRkFDSNa7xNy2wciht/7O8dChx/jPtc2z0MXPoqGjuMPP+8+izt7P7NOmz/vPoqGjDQogICAgveG5uToNCiAgICAgICAgVF96UF9URF9iY2hfb3Blbl9yZXENCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdA0KeyAgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NpYlR5cGU7ICAgLyqyzrz7uuq2qNLlKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWdDb3VudDsvKiBTSULP+8+itcS31rbOyv3Ev6Ost7bOpzEuLjE2Ki8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTaWJSZXA7IC8qIFNJQtbYuLTW3MbaKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTaWJQb3M7LyogU0lCtdrSu7j2t9a2zrXEzrvWwyovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2liT2ZmW1pfV19QX01BWF9OT19PRl9TSUJfT0ZGU107DQp9IFRfc2liX3NjaGVkdWxlX2luZm87DQoNCnR5cGVkZWYgc3RydWN0IHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUeXBlOyAgICAgIC8qss68+7rqtqjS5SovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHhEaXZNb2RlOyAvKrLOvPu66rao0uUqLyAgICAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RnJlcXVlbmN5Ow0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByaW1TcmM7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2VsbFJlc2VsZWN0RmxnOy8qd0NlbGxSZXNlbGVjdEZsZz0xse3KvrTLtM62wVNJQsrH0vLW2NGht6LG8KGjzqowse3KvrfH0KHH+NbY0aHS/cbwKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZlNjaGVkdWxlOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQogICAgVF9zaWJfc2NoZWR1bGVfaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICB0U2liU2NoZWR1bGVJbmZvW1pfV19QX01BWF9OT19PRl9TSUJfU0NIRURVTEVTXTsNCn1UX3pXX1BfYmNoX29wZW5fcmVxOw0KDQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogICAgUEhZLT5SUkMNCiAgICDKwrz+o7pQX0JDSF9JTkQNCiAgICC5psTcOg0KICAgICAgICC08r+qQkNIuvNMMdbwv+nJz7Goz7XNs9DFz6LWuMq+LCC/1c/7z6KjrNCt0unVu8rVtb20y9a4yr6688ilDQogICAgICAgILnMtqhCdWZmZXK2wc+1zbPQxc+iyv2+3Q0KICAgIL3hubk6DQogICAgICAgIFRfeldfUF9CY2hfQnVmZmVyDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3QNCnsgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NmbjsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDcmNDaGVjazsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxdWVuY3k7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpbVNyYzsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZm5EZWNvZGVSbHQ7IC8qMDrKp7Dco6wxs8m5piovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdEYXRhQXJlYVtaX1dfUF9NQVhfTlVNX09GX0JDSCoyXTsNCn1UX3pXX1BfQmNoX0luZDsgDQoNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICBSUkMtPlBIWQ0KICAgIMrCvP6julBfQkNIX1JFTEVBU0VfUkVRDQogICAguabE3DoNCiAgICAgICAg0K3S6dW7x+vH80wxzaPWub3TytXPtc2z0MXPoqOsys23xUJDSA0KICAgIL3hubk6DQogICAgICAgIFRfeldfUF9iY2hfcmVsZWFzZV9yZXENCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KfVRfeldfUF9iY2hfcmVsZWFzZV9yZXE7DQoNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICBQSFktPkwxVw0KICAgIMrCvP6julBfQkNIX1JFTEVBU0VfQ05GDQogICAguabE3DoNCiAgICAgICAgTDHIt8jP0K3S6dW7zaPWub3TytXPtc2z0MXPog0KICAgIL3hubk6DQogICAgICAgIFRfeldfUF9iY2hfcmVsZWFzZV9jbmYNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KfVRfeldfUF9iY2hfcmVsZWFzZV9jbmY7DQoNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICBSUkMtPlBIWQ0KICAgIMrCvP6julBfQ0FNUE9OX0FfQ0VMTF9SRVENCiAgICC5psTcOg0KICAgICAgICBSUkPU2s+1zbPQxc+itsHIoc3qs8m686OsyM/OqtChx/i/ydekwfSjrLeiy820y8/7z6LNqNaqDQogICAgICAgIM7vwO2y47TL0KHH+M6qt/7O8dChx/ihow0KICAgIL3hubk6DQogICAgICAgIFRfeldfUF9jYW1wX29uX2FfY2VsbF9yZXENCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdA0Kew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOyAgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVbEZyZXF1ZW5jeTsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEbEZyZXF1ZW5jeTsgICAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpbVNyYzsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmVEbEZyZXF1ZW5jeTsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KfVRfeldfUF9jYW1wX29uX2FfY2VsbF9yZXE7IA0KDQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogICAgUEhZLT5MMVcNCiAgICDKwrz+o7pQX0NBTVBPTl9BX0NFTExfQ05GDQogICAguabE3DoNCiAgICAgICAgtdey48i3yM/XpMH00KHH+KGjDQogICAgveG5uToNCiAgICAgICAgVF96V19QX2NhbXBfb25fYV9jZWxsX2NuZg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCnR5cGVkZWYgc3RydWN0DQp7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7ICAgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQp9VF96V19QX2NhbXBfb25fYV9jZWxsX2NuZjsgDQoNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICBSUkMtPlBIWQ0KICAgIMrCvP6julBfU0VUX0lSQVRfTU9ERV9SRVENCiAgICC5psTcOg0KICAgICAgICDQrdLp1bvNqNaqzu/A7bLjxKPKvcDg0M2jrMrHRkREIG1vZGW8tEZERM6q1vfEo8q9o6wNCiAgICAgICAgu/LV37K7ysdGREQgbW9kZby0RkREzqq4qKGjsruy2df3yeTGtaGjDQogICAgveG5uToNCiAgICAgICAgVF96V19QX3NldF9pcmF0X21vZGVfUmVxDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TW9kZVR5cGVzOyAvKjAtt8fW96OsMS3W98Sjo6yyzrz7uuq2qNLlKi8gICAgICAgDQp9VF96V19QX3NldF9pcmF0X21vZGVfUmVxOw0KDQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogICAgUlJDLT5QSFkNCiAgICDKwrz+o7pQX1JFU0VUX1JFUQ0KICAgILmmxNw6DQogICAgICAgINCt0unVu82o1qrO78DtsuO4tM67DQogICAgveG5uToNCiAgICAgICAgVF96V19QX1Jlc2V0X3JlcQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCnR5cGVkZWYgc3RydWN0ew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQp9IFRfeldfUF9SZXNldF9yZXE7DQoNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICBQSFktPlJSQw0KICAgIMrCvP6julBfUkVTRVRfQ05GDQogICAguabE3DoNCiAgICAgICAgzu/A7bLjzajWqtCt0unVu8rNt8XL+dPQ18rUtL3hyvgNCiAgICC94bm5Og0KICAgICAgICBUX3pXX1BfUmVzZXRfY25mDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCn1UX3pXX1BfcmVzZXRfY25mOw0KDQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogICAgUlJDLT5QSFkNCiAgICDKwrz+o7pQX1dfUkVMX1JFUQ0KICAgILmmxNw6DQogICAgICAgIM7vwO2y48rNt8XL+dPQ0K3S6dW7z8K3orXE0rXO8cfrx/O8sMnkxrWhow0KICAgIL3hubk6DQogICAgICAgIFRfeldfUF9yZWxlYXNlX3JlcQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCnR5cGVkZWYgc3RydWN0ew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQp9IFRfeldfUF9yZWxlYXNlX3JlcTsNCg0KDQovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KICAgIFBIWS0+UlJDDQogICAgysK8/qO6UF9XX1JFTF9DTkYNCiAgICC5psTcOg0KICAgICAgICDO78DtsuPNqNaq0K3S6dW7ys23xcv509DXytS0veHK+A0KICAgIL3hubk6DQogICAgICAgIFRfeldfUF9yZWxlYXNlX2NuZg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCnR5cGVkZWYgc3RydWN0ew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQp9IFRfeldfUF9yZWxlYXNlX2NuZjsNCg0KDQogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAqICAgICAgICAgICAgICAgICAgICAgICAgINChx/jL0cv3yKu+1sr9vt3A4NDNtqjS5SAtLS0tLS0tLWVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQoNCg0KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogKiAgICAgICAgICAgICAgICAgICAgICAgINfK1LTF5NbDyKu+1sr9vt3A4NDNtqjS5SAtLS0tLS0tLXN0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgICoNCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KDQoNCnR5cGVkZWYgc3RydWN0ew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICBhd0xpc3RbMjFdOw0KfVRfeldfUF9JbXNpOw0KDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NybmNJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQogICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIGR3U3JudGk7DQp9VF96V19QX1VybnRpOw0KDQp0eXBlZGVmIHN0cnVjdCB7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVZUlkVmFsaWRCaXRtYXA7LypiaXQwLi5iaXQz09DQp6Os0sC0zrfWsfDWuMq+0MXUqlRtc2lHc22holBUbXNpR3NtoaJJbXNpR3NtoaJVUm50acrHt/G05tTaoaNiaXTOu86qMbHtyr621NOm0MXUqrTm1NqjrLfx1PKyu7Tm1NoqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdUbXNpR3NtWzRdOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICBhd1BUbXNpR3NtWzRdOw0KICAgIFRfeldfUF9JbXNpICAgICAgICAgICAgICAgICAgICB0SW1zaUdzbTsNCiAgICBUX3pXX1BfVXJudGkgICAgICAgICAgICAgICAgICAgdFVybnRpOyAgLypQQ0jMrMq508MqLw0KfVRfeldfUF91ZV9pZDsNCg0KDQp0eXBlZGVmIHN0cnVjdA0Kew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGljaENoYW5Db2RlOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZQaVBlckZyYW1lOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGljaFN0dGRJbmQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEcnhDeWNsZUxlbmd0aENvZWZmOyAgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BpY2hQb3dlck9mZjsgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZlNjY3BjaDsgDQogICAgVF96V19QX3VlX2lkICAgICAgICAgICAgICAgICAgIHRVZUlkSW5mbzsNCn0gVF96V19QX3BpY2hfaW5mbzsNCg0KDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY1NjcmFtYkNvZGVGbGc7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNTY3JhbWJDb2RlOyAgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NoYW5Db2RlOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2NyYW1iQ29kZUNoYW5nZUZsZzsNCn0gVF96V19QX2RwY2hfQ2hhbm5lbENvZGU7DQoNCg0KdHlwZWRlZiBzdHJ1Y3R7ICAgIA0KICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICBkd0N0ZmM7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUZmNpOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGZjUG93ZXJQYXJhRmxnOy8quabCyr/Y1sayzsr9serKtqOsMbHtyr7Q6NKqss6/vM/Cyva5psLKss7K/dDFz6KjqFBvd2VyT2ZmUHBt0MXPoqOsz9TKvkJldGFDus1CZXRhRNDFz6KjrLLOv7xURkNJRNDFz6KjqaGjMLHtyr7O3rmmv9iyzsr9Ki8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Bvd2VyT2ZmUHBtRmxnOyANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Bvd2VyT2ZmUHBtOy8qTmVlZGVkIG9ubHkgZm9yIFBSQUNIKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0dhaW5GYWN0b3JJbmZvOy8qse3KvkJldGFDo6xCZXRhRNPDz9TKvrj4s/a1xLe9yr27ucrH08Oyzr+8VEZDvMbL47XEt73KvaGjDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDIoda1MLvyMaOsMDqx7cq+z9TKvs2o1qosIEJldGHWtbLJ08O907/a1tDF5NbDtcR3QmV0YUQsIHdCZXRhQw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE6se3KvrLOv7y3vcq9LLj5vt13UmVmVGZjSWTV0rW9ttTTprXEQmV0Yda1Ki8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0JldGFDOy8qc2lnbmFsbGVkR2FpbkZhY3RvcnPP1Mq+uPiz9rXEQmV0YUMgyKHWtTB+MTUqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3QmV0YUQ7ICAgICAgICAgICAgICAvKnNpZ25hbGxlZEdhaW5GYWN0b3Jzz9TKvrj4s/a1xEJldGFEIMih1rUwfjE1Ki8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JlZlRmY0lkRmxnOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UmVmVGZjSWQ7ICAgIC8qY29tcHV0ZWRHYWluRmFjdG9ycyAgUmVmIHRmY2mjrDB+MyCjrNDo0qq1vbLOv7xURkNJRM/C0bDV0rG+VEZDSUTQ6NKqtcRCZXRhQ6OsQmV0YUQqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCn1UX3pXX1BfdWxfY3RmY190ZmM7DQoNCnR5cGVkZWYgc3RydWN0ew0KICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICBkd0N0ZmM7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUZmNpOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCn1UX3pXX1BfZGxfY3RmY190ZmM7DQoNCg0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgLypVbml0IGlzIGJpdHM7VVVSUkMgc2hvdWxkIGNvbXB1dGUgdGhlICBUQiBzaXplIGJ5IHRoZSBybGMgc2l6ZSovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUcmFuc0Jsb2NrU2l6ZTsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mVHJhbnNCbG9ja3M7DQoNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RmaTsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQp9VF96V19QX2R5bmFtaWNfdGZzOw0KDQoNCnR5cGVkZWYgc3RydWN0ew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHJjaElkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHJjaFR5cGU7ICAvKteo08PQxbXAIE9SILmrubLQxbXAKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NvZGluZ1R5cGVPZkNoYW5uZWw7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUdGk7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDcmNMZW5ndGg7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSbUF0dHJpYnV0ZTsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mRHluYW1pY1RmczsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQp9VF96V19QX3N0YXRpY190ZnM7DQogICAgDQoNCnR5cGVkZWYgc3RydWN0ew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZUcmNoOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZUZmM7DQogICAgVF96V19QX3N0YXRpY190ZnMgICAgICAgICAgIGF0U3RhdGljVEZTW1pfV19QX01BWF9VTF9UUkNIX05VTV07DQogICAgVF96V19QX2R5bmFtaWNfdGZzICAgICAgIGF0RHluYW1pY1RGU1taX1dfUF9NQVhfVUxfVEZfTlVNXTsNCiAgICBUX3pXX1BfdWxfY3RmY190ZmMgICAgICAgICAgYXRDdGZjW1pfV19QX01BWF9VTF9URkNfTlVNXTsNCn1UX3pXX1BfdWxfZHBjaF90cmNoX3JlY29uZmlnOw0KDQp0eXBlZGVmIHN0cnVjdA0KeyAgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByaW1TcmM7IC8qIFByaW1hcnlDUElDSCAqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGNwaWNoVXNhZ2VGb3JDaGFubmVsRXN0OyAgIC8qU2Vjb25kYXJ5Q1BJQ0gtSW5mbyovDQoJDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEcGNoRnJhbWVPZmZzZXQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNDcFNjckNvZGVGbGc7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNDcGljaFNjcmFtYkNvZGU7IC8qICBTZWNvbmRhcnlDUElDSC1JbmZvKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY0NwQ2hhbkNvZGVGbGc7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNDcGljaENoYW5Db2RlOy8qICBTZWNvbmRhcnlDUElDSC1JbmZvKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RwY0NvbWJJbmRleDsgIC8qIFRQQy1Db21iaW5hdGlvbkluZGV4ICovDQoJDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDbG9zZWRMb29wVGltQWRqTW9kZTsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Bvd2VyT2ZmVHBjUGRwZGNoOyAvKiBQb3dlck9mZnNldFRQQy1wZHBkY2ggKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1R4RGl2TW9kZTsgIC8qIERMLUNvbW1vbkluZm9ybWF0aW9uLXI4Ki8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mRHBjaHM7DQoNCiAgICBUX3pXX1BfZHBjaF9DaGFubmVsQ29kZSAgYXREbERwY2hDaGFubmVsQ29kZVtaX1dfUF9NQVhfTk9fT0ZfRFBDSFNdOw0KfSBUX3pXX1BfZGVkaWNhdGVkX3JsX3BhcmFtczsNCg0KdHlwZWRlZiAgICBzdHJ1Y3R7DQoNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mVHJjaDsNCiAgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mVGZjOw0KICAgIC8qILTT09K1vdfzQklUzru21NOmtcS0q8rk0MW1wMuz0PLT62F0U3RhdGljVEZTz+DNrKO7Yml01rUwse3KvrK70OjSqr3izvajrDGx7cq+0OjSqr3izvYgKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VuYWJsZURlY29kZUJpdG1hcDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQogICAgDQogICAgLyoguMO4w8r91+nU2kRDSMysyrHT0NCno6zK/dfp1KrL2LbU06a1xLSryuTQxbXAy7PQ8tPrYXRTdGF0aWNURlPP4M2so7sNCiAgICAgICAgICAgICAgICAgIFRhcmdldF9CTEVSzqq/ydGhss7K/aOs1rW1xLe2zqfOqjDWwTYzo6wweGZmZmax7cq+ss7K/bK7tObU2qO7zu/A7bLjytW1vbrz0qoqo6gtMC4xo6m1w7W9yrW8yta1ICAgKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3VGFyZ2V0QmxlcltaX1dfUF9NQVhfRExfVFJDSF9OVU1dOw0KICAgIA0KICAgIFRfeldfUF9zdGF0aWNfdGZzICAgICAgICAgICAgYXRTdGF0aWNUZnNbWl9XX1BfTUFYX0RMX1RSQ0hfTlVNXTsNCiAgICANCiAgICBUX3pXX1BfZHluYW1pY190ZnMgICAgICAgIGF0RHluYW1pY1Rmc1taX1dfUF9NQVhfRExfVEZfTlVNXTsNCiAgICBUX3pXX1BfZGxfY3RmY190ZmMgICAgICAgICAgYXRDdGZjW1pfV19QX01BWF9ETF9URkNfTlVNXTsNCn1UX3pXX1BfZGxfdHJjaF9yZWNvbmZpZzsNCg0KdHlwZWRlZiBzdHJ1Y3QNCnsgICAgDQogICAgV09SRCAgICAgICAgICAgICAgd1ByaW1TcmM7IC8qKiBQcmltYXJ5Q1BJQ0ggKi8NCiAgICBXT1JEICAgICAgICAgICAgICB3UGNwaWNoVXNhZ2VGb3JDaGFubmVsRXN0OyAgIC8qU2Vjb25kYXJ5Q1BJQ0gtSW5mbyovDQogICAgV09SRCAgICAgICAgICAgICAgd0RwY2hGcmFtZU9mZnNldDsNCiAgICBXT1JEICAgICAgICAgICAgICB3RmRwY2hTbG90Rm9ybWF0Ow0KDQogICAgV09SRCAgICAgICAgICAgICAgd1NlY0NwU2NyQ29kZUZsZzsNCiAgICBXT1JEICAgICAgICAgICAgICB3U2VjQ3BpY2hTY3JhbWJDb2RlOyAvKiAgU2Vjb25kYXJ5Q1BJQ0gtSW5mbyovDQoNCiAgICBXT1JEICAgICAgICAgICAgICB3U2VjQ3BDaGFuQ29kZUZsZzsNCiAgICBXT1JEICAgICAgICAgICAgICB3U2VjQ3BpY2hDaGFuQ29kZTsNCg0KICAgIFdPUkQgICAgICAgICAgICAgIHdGZHBjaFNlY1NjcmFtYkNvZGVGbGc7DQogICAgV09SRCAgICAgICAgICAgICAgd0ZkcGNoU2VjU2NyYW1iQ29kZTsNCg0KICAgIFdPUkQgICAgICAgICAgICAgIHdUcGNDb21iSW5kZXg7ICAvKiBUUEMtQ29tYmluYXRpb25JbmRleCAqLw0KICAgIFdPUkQgICAgICAgICAgICAgIHdTdHRkSW5kaWNhdGlvbjsNCiAgICBXT1JEICAgICAgICAgICAgICB3RmRwY2hDaGFuQ29kZTsNCiAgICBXT1JEICAgICAgICAgICAgICB3UGFkZGluZzsNCn1UX3pXX1BfZmRwY2hfZGVkaWNhdGVkX3JsX3BhcmFtczsNCg0KDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZlRmYzsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KICAgIFRfeldfUF9zdGF0aWNfdGZzICAgICAgICAgICAgICAgICAgdFN0YXRpY1RGUzsNCiAgICBUX3pXX1BfZHluYW1pY190ZnMgICAgICAgICAgICAgIGF0RHluYW1pY1RGU1taX1dfUF9NQVhfVUxfVEZfTlVNXTsNCiAgICBUX3pXX1BfdWxfY3RmY190ZmMgICAgICAgICAgICAgICAgYXRDdGZjW1pfV19QX01BWF9VTF9URkNfTlVNXTsNCn0gVF96V19QX3JhY2hfdGZzX3RmY3NfY29uZmlnOw0KDQoNCnR5cGVkZWYgc3RydWN0ew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWF4VHhQb3dlcjsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByYWNoU2NyYW1iQ29kZTsgLyogUHJlYW1ibGUgc2NyYW1ibGluZyBjb2RlIG51bWJlcjAtMTUgKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01pblNwcmVhZGluZ0ZhY3RvcjsvKiBBdmFpbGFibGUgU0YgSW4gY2hpcHMgcGVyIHN5bWJvbA0KICAgIERlZmluZXMgdGhlIG1pbmltdW0gYWxsb3dlZCBTRiAqLw0KICAgIC8qIEVhY2ggYml0IGluZGljYXRlcyBhdmFpbGFiaWxpdHkgZm9yIGEgc2lnbmF0dXJlLCB3aGVyZSB0aGUgc2lnbmF0dXJlcyBhcmUgbnVtYmVyZWQgInNpZ25hdHVyZSAwIiB1cCB0byAic2lnbmF0dXJlIDE1Ii4gVGhlIHZhbHVlIDEgb2YgYSBiaXQgaW5kaWNhdGVzIHRoYXQgdGhlIGNvcnJlc3BvbmRpbmcgc2lnbmF0dXJlIGlzIGF2YWlsYWJsZSBhbmQgdGhlIHZhbHVlIDAgdGhhdCBpdCBpcyBub3QgYXZhaWxhYmxlKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1B1bmN0dXJpbmdMaW1pdDsNCiAgICANCiAgICAvKjEwLjMuNi41NSovDQogICAgLyogUHJlYW1ibGVfSW5pdGlhbF9Qb3dlciA9IFByaW1hcnkgQ1BJQ0ggVFggcG93ZXIgLSBDUElDSF9SU0NQICsgVUwgaW50ZXJmZXJlbmNlICsgQ29uc3RhbnQgVmFsdWUgKi8NCiAgICAvKiBQcmVhbWJsZV9Jbml0aWFsX1Bvd2VyPSB3SW5pdGlhbFBvd2VyT2Zmc2V0IC0gQ1BJQ0hfUlNDUCAqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3SW5pdGlhbFBvd2VyT2ZmOw0KICAgIC8qUHJhY2ggUG93ZXIgT2Zmc2V0Ki8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Bvd2VyUmFtcFN0ZXA7LypQUkFDSLmmwsrGq9LGIFBvd2VyIFJhbXAgU3RlcCAqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJlYW1ibGVNYXhSZXRyYW5zOw0KICAgIA0KICAgIA0KICAgIC8qMTAuMy42LjIqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWljaENoYW5Db2RlOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWljaFR4ZGl2TW9kZTsgIC8qt6LLzbfWvK/WuMq+Ki8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FpY2hUcmFuc1RpbWluZzsgLypBSUNItKvK5MqxvOQgKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FpY2hQb3dlck9mZjsNCiAgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JhY2hUZnNUZmNzQ2ZnRmxnOw0KDQogICAgVF96V19QX3JhY2hfdGZzX3RmY3NfY29uZmlnICAgIHRSYWNoVGZzQW5kVGZjc0NvbmZpZzsNCn0gVF96V19QX3ByYWNoX3N5c2luZm87IA0KDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Bvd2VyT2ZmSHNwZHNjaDsNCiAgICAgIC8qIENRSSBmZWVkYmFjayBjeWNsZSBjb3VudCAoMC4uMTYwIG1zKSAqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3FpRmVlZGJhY2tDeWNsZTsNCiAgICAgIC8qIENRSSByZXBldGl0aW9uIGZhY3RvciAoMS4uNCkgKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NxaVJlcEZhY3RvcjsNCiAgICAgIC8qIGRlbHRhIENRSSAoMC4uOCkgKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RlbHRhQ3FpOw0KfVRfeldfUF9NZWFzRmVlZEJhY2s7DQoNCg0KdHlwZWRlZiBzdHJ1Y3R7DQoNCiAgICBUX3pXX1BfTWVhc0ZlZWRCYWNrICAgICAgdE1lYXNGZWVkQmFjazsNCg0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEZWx0YUFjazsgLyogZGVsdGEgQUNLICgwLi44KSAqLw0KICAgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEZWx0YU5hY2s7IC8qIGRlbHRhIE5BQ0sgKDAuLjgpICovDQogICAgDQogICAgLyogQUNLLU5BQ0sgcmVwZXRpdGlvbiBmYWN0b3IgKDEuLjQpICAgVUwtRFBDSC1Qb3dlckNvbnRyb2xJbmZvLXI3ICovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0Fja05hY2tSZXBGYWN0b3I7ICAgICAgLypEUENIuabCyr/Y1sYqLw0KICAgIA0KICAgIC8qKDAsIDEpMSBpbmRpY2F0ZXMgdGhhdCBwcmVhbWJsZSBhbmQgcG9zdGFtYmxlIGFyZSB1c2VkIG9uIHRoZSBIUy1EUENDSCAtIHNlZSBbMjldKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIYXJxUHJlYW1ibGVNb2RlOyAvKiAoTVApKi8NCn1UX3pXX1BfaHNfZHBjY2g7DQoNCnR5cGVkZWYgIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1iT2ZQcm9jZXNzOw0KICAgIC8qbWVtb3J5IHBhcnRpdGlvbmluZyAwOmltcGxpY2l0IDE6ZXhwbGljaXQqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01lbW9yeVBhcnRpdGlvbjsNCg0KICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdQcm9jZXNzTWVtb3J5U2l6ZVsyKlpfV19QX01BWF9IX1BST0NFU1NdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCn1UX3pXX1BfaHNfaGFycV9pbmZvOw0KDQp0eXBlZGVmIHN0cnVjdCB7IA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3SHNzY2NoTGVzc1RmY2k7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoc3NjY2hMZXNzU2VjQ29kZVN1cDsgICAgICAgICAgICANCn0gVF96V19QX2hzc2NjaF9MZXNzVGZzTGlzdDsNCg0KdHlwZWRlZiBzdHJ1Y3QgeyANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hzcGRzY2hDb2RlSW5kZXg7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIc3NjY2hMZXNzVGZzTnVtOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3SHNzY2NoTGVzc0FjdGl2ZUZsZzsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQogICAgVF96V19QX2hzc2NjaF9MZXNzVGZzTGlzdCAgICAgIGF0SHNzY2NoTGVzc1Rmc0xpc3RbWl9XX1BfTUFYX0hTQ0NITEVTU19URlNfTlVNXTsNCn0gVF96V19QX2hzc2NjaF9sZXNzOw0KDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0R0eEN5Y2xlMTsgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0R0eEN5Y2xlMjsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0R0eExvbmdQcmVhbWJsZUxlbmd0aDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NxaUR0eFRpbWVyOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHBjY2hCdXJzdDE7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEcGNjaEJ1cnN0MjsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0N5Y2xlMkluYWN0aXZpdHlUaHJlZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0R0eEFjdGl2ZUZsZzsgIA0KDQp9IFRfeldfUF9kdHhfaW5mbzsNCg0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEcnhDeWNsZTsgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RyeEN5Y2xlSW5hY3RlVGhyZWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEcnhHcmFudE1vbml0b3I7ICAgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHJ4QWN0aXZlRmxnOw0KfSBUX3pXX1BfZHJ4X2luZm87DQoNCnR5cGVkZWYgc3RydWN0ew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RW5hYmxlRGVsYXk7ICAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEdHhEcnhPZmY7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVbERwY2NoU2xvdEZvcm1hdDsgICAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEcnhGbGc7DQogICAgDQogICAgVF96V19QX2R0eF9pbmZvICAgICAgICAgICAgdER0eEluZm87DQogICAgVF96V19QX2RyeF9pbmZvICAgICAgICAgICAgdERyeEluZm87DQp9IFRfeldfUF9kdHhfZHJ4X2NvbmZpZzsNCg0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgLyogaW5kaWNhdGUgaWYgc2Vjb25kYXJ5IHNjcmFtYmxpbmcgY29kZSBleGlzdHMgZm9yIEhTIFNDQ0ggY2hhbm5lbCAqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VjU2NyYW1iQ29kZUZsZzsNCiAgICAvKiBzZWNvbmRhcnkgc2NyYW1ibGluZyBjb2RlIHZhbHVlLg0KICAgIFZhbGlkIG9ubHkgaWYgc2VjX3Njcl9jb2RlX3ZhbGlkIGlzIHNldCB0byBUUlVFLg0KICAgIElmIG5vdCB2YWxpZCB0aGVuIHByaW1hcnkgQ1BJQ0ggc2NyYW1ibGluZyBjb2RlIGlzIHVzZWQgKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY1NjcmFtYkNvZGU7DQogICAgLyogbnVtYmVyIG9mIGNoYW5uZWxpc2F0aW9uIGNvZGVzIHRvIFNDQ0ggKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mQ2hhbm5lbENvZGU7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KICAgIC8qIFNDQ0ggY2hhbm5lbGlzYXRpb24gY29kZXMgKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdTY2NoQ2hhbm5lbENvZGUgW1pfV19QX01BWF9IU19TQ0NIX0NPREVTXTsNCn1UX3pXX1BfaHNfc2NjaDsNCg0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEbGZyZXE7ICAgIA0KICAgIC8qIHNlcnZpbmcgSFMtUERTQ0ggcmFkaW8gbGluayBwcmltYXJ5IHNjcmFtYmxpbmcgY29kZSAqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpbVNyYzsgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hybnRpOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGw2NFFBTUNvbmZpZ3VyZWQ7ICAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIc0RzY2hUYlNpemVUYWJsZTsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Jlc2V0RHBhRmxnOw0KICAgIA0KICAgIFRfeldfUF9oc19zY2NoICAgICAgICAgICAgdEhzc2NjaENvbmZpZ0luZm87DQp9VF96V19QX2hzZHBhX2luZm87DQoNCnR5cGVkZWYgc3RydWN0ew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGxmcmVxOyAgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TmV3SHJudGk7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmltU3JjOyAgIA0KICAgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWVhc1Bvd2VyT2ZmOyAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEbDY0UUFNQ29uZmlndXJlZDsgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RpZmZUeERpdmVyczsgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hzRHNjaFRiU2l6ZVRhYmxlOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VjSHNkcGFBY3RpdmVGbGc7DQogICAgDQogICAgVF96V19QX2hzX3NjY2ggICAgICAgICAgICAgdEhzc2NjaENvbmZpZ0luZm87DQp9VF96V19QX3NlY19oc2RwYV9pbmZvOw0KDQp0eXBlZGVmICAgIHN0cnVjdHsNCiAgICAvKjA6bm9ybWFscGF0dGVybizOqjDKscf40/JJRc7e0Kc7IDE6IGRpdmVyc2l0eVBhdHRlcm4gKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY29uZENwaWNoUGF0dGVybjsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NjcGljaFBvd2VyT2ZmRmxnOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2hhbkNvZGU7DQogICAgLyrIoda1t7bOp6O6OTQtMTAwILWlzrtkQizV5sq1yKHWtbe2zqejui02LTAqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2NwaWNoUG93ZXJPZmY7DQp9VF96V19QX21pbW9fcGlsb3RfaW5mbzsNCg0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgLyrTw9PatOa0om1pbW9OLU0tUmF0aW/W0MO2vtnWtbbU06a1xE61xNa1Ki8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01pbW9OUmF0aW87DQogICAgLyrTw9PatOa0om1pbW9OLU0tUmF0aW/W0MO2vtnWtbbU06a1xE21xNa1Ki8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01pbW9NUmF0aW87DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmVjb2RlV2VpZ1Jlc3RyOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCiAgICBUX3pXX1BfbWltb19waWxvdF9pbmZvICAgdE1pbW9QaWxvdENmZzsNCn0gVF96V19QX21pbW9faW5mbzsNCg0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgLyogMTAuMy42LjY5YSovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSZWZUZmNpOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGZjaVBvOw0KfSBUX3pXX1BfZWRjaF90ZmNpX3BvOw0KDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VkY2hSZWZFdGZjaU51bTsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQogICAgVF96V19QX2VkY2hfdGZjaV9wbyAgICAgIGF0RWRjaFRmY2lQb1taX1dfUF9NQVhfUkVGX0VURkNJXTsNCn0gVF96V19QX2VkY2hfZ3JhbnRfY29uZmlnX2luZm87DQoNCnR5cGVkZWYgc3RydWN0ew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWluUmVkdWNlZEVkcGRjaEdhaW5GYWN0b3I7IA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWluRXRmY1NldDsgLyowWEZGRkax7cq+w7vT0MXk1sPX7tChRVRGQ9fTvK8qLw0KICAgIFRfeldfUF9lZGNoX2dyYW50X2NvbmZpZ19pbmZvICB0RWRjaEdyYW50Q29uZmlnSW5mbzsNCn0gVF96V19QX2VkcGRjaF9pbmZvOw0KDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VkcGNjaFBvd2VyT2ZmRmxnOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHBjY2hQb3dlck9mZjsgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdFZHBkY2hQb3dlckludGVycG9sYXRpb247DQogICAgDQogICAgLyogRS1URkMgQm9vc3QgSW5mbyAqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RXRmY0Jvb3N0SW5mb0ZsZzsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0V0ZmNpQm9vc3Q7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEZWx0YVQyVFA7DQp9IFRfeldfUF9lZHBjY2hfaW5mbzsNCg0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdFZGNoVHRpOyANCg0KICAvKiAyNS4zMzEsIDEwLjMuNS43ZDoNCiAgICAgSWYgInJ2MCIgaXMgaW5kaWNhdGVkLCB0aGUgVUUgc2hhbGwgb25seSB1c2UgRV9EQ0ggUlYgaW5kZXggMC4gDQogICAgIERlZmF1bHQgdmFsdWUgaXMgInJ2dGFibGUiLCBpbiB3aGljaCBjYXNlIHRoZSBVRSBzaGFsbCB1c2UgYW4gUlNOIGJhc2VkDQogICAgIFJWIGluZGV4LiAqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3SGFycVJ2Q29uZmlnOy8qMLrNMaOst9ax8LHtyr5ydjC6zXJ2dGFibGUqLw0KDQogICAgVF96V19QX2VkcGRjaF9pbmZvICAgICAgIHRFZHBkY2hJbmZvOw0KICAgIFRfeldfUF9lZHBjY2hfaW5mbyAgICAgICB0RWRwY2NoSW5mbzsNCn0gVF96V19QX2VkY2hfdWxfaW5mbzsNCg0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RWFnY2hDaGFuQ29kZTsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KfSBUX3pXX1BfZWRjaF9hZ2NoX2luZm87DQoNCg0KdHlwZWRlZiBzdHJ1Y3QNCnsgICANCiAgICAvKiBFLUhJQ0gtUkdDSC1TaWduYXR1cmVTZXF1ZW5jZSBTaWduYXR1cmUgU2VxdWVuY2U7IFJlZjogMTAuMy42LjEyMiBpbiAyNS4zMzEqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2lnbmF0U2VxdWVuY2U7IC8qIDAuLjM5ICovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KfVRfeldfUF9jb21tX2VkY2hfcmdjaF9pbmZvOw0KDQp0eXBlZGVmIHN0cnVjdHsNCiAgICAvKiBSRyBjb21iaW5hdGlvbiBpbmRleDsgUmVmOiAxMC4zLjYuMTAwIGluIDI1LjMzMSovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSZ2NoQ29tYklkeDsgLyogMC4uNSAqLw0KICAgIC8qIEUtSElDSC1SR0NILVNpZ25hdHVyZVNlcXVlbmNlIFNpZ25hdHVyZSBTZXF1ZW5jZTsgUmVmOiAxMC4zLjYuMTAwIGluIDI1LjMzMSovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTaWduYXRTZXF1ZW5jZTsgLyogMC4uMzkgKi8NCn0gVF96V19QX2VkY2hfcmdjaF9pbmZvOw0KDQp0eXBlZGVmIHN0cnVjdHsNCiAgICAvKiBISUNIIGNoYW5uZWxpemF0aW9uIGNvZGU7IFJlZjogMTAuMy42LjEwMSBpbiAyNS4zMzEgIEUtSElDSC1DaGFubmVsaXNhdGlvbkNvZGUgKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VoaWNoQ2hhbm5sQ29kZTsgLyogMC4uMTI3ICAqLw0KICAgIC8qIEUtSElDSC1SR0NILVNpZ25hdHVyZVNlcXVlbmNlIFNpZ25hdHVyZSBTZXF1ZW5jZTsgUmVmOiAxMC4zLjYuMTAwIGluIDI1LjMzMSovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTaWduYXRTZXF1ZW5jZTsgLyogMC4uMzkgKi8NCn0gVF96V19QX2VkY2hfaGljaF9pbmZvOw0KDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VjaERsQ2hhbkJpdG1hcDsNCg0KICAgIC8qIHByaW1hcnkgc2NyYW1ibGluZyBjb2RlIG9mIHRoaXMgUkwgKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VkY2hSbFByaW1TcmM7DQogICAgDQogICAgVF96V19QX2VkY2hfcmdjaF9pbmZvICAgdEVkY2hFcmdjaEluZm87DQogICAgVF96V19QX2VkY2hfaGljaF9pbmZvICAgdEVkY2hFaGljaEluZm87DQp9IFRfeldfUF9lZGNoX2RsX3Blcl9ybF9pbmZvOw0KDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByaW1Fcm50aUZsZzsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY0VybnRpRmxnOyANCiAgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByaW1Fcm50aTsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY0VybnRpOw0KICAgIC8qIFNlcnZpbmcgUkwgaW5kZXggaW4gYXJyYXkgIGF0RWRjaERSbEFkZFJlY2ZnSW5mb1sgW01BWF9lZGNoX1JMXSAqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RWRjaFNlcnZSbElkeDsgICAgIC8qIDAuLihNQVhfZWRjaF9STC0xKSAqLw0KICAgIA0KICAgIC8qIG51bWJlciBvZiBlbnRlcmllcyB2YWxpZCBpbiBhcnJheSBlX3JsX2luZm9bTDFfTUFYX2VkY2hfUkxdICovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZkVkY2hSbDsNCiAgICBUX3pXX1BfZWRjaF9hZ2NoX2luZm8gICAgICAgICAgIHRFZGNoRWFnY2hJbmZvOw0KICAgIFRfeldfUF9lZGNoX2RsX3Blcl9ybF9pbmZvICAgICBhdEVkY2hEbFJsSW5mb1taX1dfUF9NQVhfRURDSF9OT19PRl9STF07DQp9IFRfeldfUF9lZGNoX2RsX2luZm87DQoNCg0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgICBUX3pXX1BfZWRjaF91bF9pbmZvICAgICAgICAgICAgICAgICAgdEVkY2hVbEluZm87DQogICAgICBUX3pXX1BfZWRjaF9kbF9pbmZvICAgICAgICAgICAgICAgICAgdEVkY2hEbEluZm87DQp9VF96V19QX2VkY2hfaW5mbzsNCg0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVbEZyZXE7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTY3JhbWJDb2RlVHlwZTsNCiAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd1NjcmFtYkNvZGVOdW07IA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UG93ZXJQcmVhbWJsZUxlbjsgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEcGNjaFBvd2VyT2ZmOw0KICAgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZSbDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY0VkY2hBY3RpdmVGbGc7DQogICAgVF96V19QX2ZkcGNoX2RlZGljYXRlZF9ybF9wYXJhbXMgICAgIGF0RmRwY2hEZWRpY2F0ZWRSbFBhcmFtc1taX1dfUF9NQVhfTk9fT0ZfUkxdOw0KICAgIA0KICAgIFRfeldfUF9lZGNoX3VsX2luZm8gICAgICAgICAgICAgICAgICAgICAgICAgdEVkY2hVbEluZm87DQogICAgVF96V19QX2VkY2hfZGxfaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICB0RWRjaERsSW5mbzsNCn0gVF96V19QX3NlY19lZGNoX2luZm87DQoNCnR5cGVkZWYgc3RydWN0DQp7ICAgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdUMzIxOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdEcng7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1J4QnVyc3Q7IA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdEcnhJbnRlcnJ1cEhzZHNjaDsNCn0gVF96V19QX2ZhY2hfZHBhX2RyeF9pbmZvOw0KDQp0eXBlZGVmIHN0cnVjdA0Kew0KICAgIC8qIEFDSy1OQUNLIHJlcGV0aXRpb24gZmFjdG9yICgxLi40KSAgIFVMLURQQ0gtUG93ZXJDb250cm9sSW5mby1yNyAqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBYWNrTmFja1JlcEZhY3RvcjsgICAgICAvKkRQQ0i5psLKv9jWxiovDQogICAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Bvd2VyQ29udHJvbEFsZ29yaXRoOyAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RwY1N0ZXBTaXplOw0KICAgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNZWFzRmVlZEJhY2tGbGc7DQogICAgVF96V19QX01lYXNGZWVkQmFjayAgICAgIHRNZWFzRmVlZEJhY2s7DQogICAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RlbHRhQWNrRmxnOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEZWx0YUFjazsgLyogZGVsdGEgQUNLICgwLi44KSAqLw0KICAgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEZWx0YU5BY2tGbGc7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RlbHRhTmFjazsgLyogZGVsdGEgTkFDSyAoMC4uOCkgKi8NCn0gVF96V19QX2ZhY2hfZHBjY2g7DQoNCnR5cGVkZWYgc3RydWN0DQp7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3SHJudGlUeXBlOyANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIcm50aTsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdCY2NoSHJudGk7IA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hzZHBhRHJ4RmxnOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hzZHBjY2hTdXBBY2s7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RmFjaERwY2NoRmxnOw0KICAgIFRfeldfUF9oc19zY2NoICAgICAgICAgICAgICAgICAgICAgdEhzc2NjaENvbmZpZzsNCiAgICBUX3pXX1BfaHNfaGFycV9pbmZvICAgICAgICAgICAgICAgIHRIc0hhcnFJbmZvOyAgICANCiAgICBUX3pXX1BfZmFjaF9kcGFfZHJ4X2luZm8gICAgICAgICAgIHRIc2RwYURyeEluZm87DQogICAgVF96V19QX2ZhY2hfZHBjY2ggICAgICAgICAgICAgICAgICB0RmFjaERwY2NoOw0KfSBUX3pXX1BfZmFjaF9kcGFfaW5mbzsNCg0KdHlwZWRlZiBzdHJ1Y3QNCnsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTeW1ib2xPZmY7IA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZkcGNoQ2hhbkNvZGU7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VWxEcGNjaFNjcmFtYkNvZGVUeXBlOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NvbW1FZGNoUmdjaEZsZzsNCiAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgZHdVbERwY2NoU2NyYW1iQ29kZTsNCiAgICBUX3pXX1BfY29tbV9lZGNoX3JnY2hfaW5mbyAgICAgICAgICAgICAgdENvbW1FZGNoUmdjaEluZm87DQogICAgVF96V19QX2VkY2hfaGljaF9pbmZvICAgICAgICAgICAgICAgICAgICAgICAgdEVkY2hFaGljaEluZm87DQp9VF96V19QX2NvbW1vbl9lZGNoX3Jlc291cmNlX2xpc3Q7DQoNCnR5cGVkZWYgc3RydWN0DQp7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmlFcm50aUZsZzsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByaUVybnRpOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Jlc2V0RmxnOyANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNYXhUeFBvd2VyOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZkcGNoVHBjQ29tbWFuZEVycm9yUmF0ZTsNCiAgICAvKiAyNS4zMzEsIDEwLjMuNS43ZDoNCiAgICBJZiAicnYwIiBpcyBpbmRpY2F0ZWQsIHRoZSBVRSBzaGFsbCBvbmx5IHVzZSBFX0RDSCBSViBpbmRleCAwLiANCiAgICBEZWZhdWx0IHZhbHVlIGlzICJydnRhYmxlIiwgaW4gd2hpY2ggY2FzZSB0aGUgVUUgc2hhbGwgdXNlIGFuIFJTTiBiYXNlZA0KICAgIFJWIGluZGV4LiAqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIYXJxUnZDb25maWc7DQoNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWRkRWRjaEJhY2tPZmY7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VkY2hUdGk7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0V0ZmNpVGFibGVJbmRleDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q29tbW9uRWRjaFJlc291cmNlTnVtOw0KDQogICAgVF96V19QX2VkY2hfYWdjaF9pbmZvICAgICAgICAgICAgICAgICAgICAgICB0RWRjaEVhZ2NoSW5mbzsNCiAgICBUX3pXX1BfZWRwZGNoX2luZm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgdEVkcGRjaEluZm87DQogICAgVF96V19QX2VkcGNjaF9pbmZvICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRFZHBjY2hJbmZvOw0KICAgIFRfeldfUF9jb21tb25fZWRjaF9yZXNvdXJjZV9saXN0ICAgICAgICBhdENvbW1vbkVkY2hSZXNvdXJjZWxpc3RbMzJdOw0KIH0gVF96V19QX2ZhY2hfdXBhX2luZm87DQoNCnR5cGVkZWYgc3RydWN0ew0KDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdFYWlJbmQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEcGNjaFBvd2VyT2ZmUGU7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdFYWlQb3dlck9mZjsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQogICAgVF96V19QX3ByYWNoX3N5c2luZm8gICAgICAgICAgIHRQcmFjaFN5c2luZm87Lyog1PbHv8/CUFJBQ0jWu9PQ0rvX6aGjKi8NCn1UX3pXX1BfaHNwYV9wbHVzX3ByYWNoX2luZm87DQoNCnR5cGVkZWYgc3RydWN0DQp7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIcm50aTsvKr3TytXPwtDQSFMtU0NDSMqx08O1vbXEVUUgserKtiovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdCY2NoSHJudGk7IC8q1NrPwtDQtdrSu8z1SFMtU0NDSMnPvdPK1UJDQ0jJz7XEz/vPosqx08O1vbXE16jTw1VFserKtiovDQogICAgDQogICAgVF96V19QX2hzX3NjY2ggICAgICAgICAgICAgdEhzc2NjaENvbmZpZzsNCiAgICBUX3pXX1BfaHNfaGFycV9pbmZvICAgICAgdEhzSGFycUluZm87ICAgIA0KfSBUX3pXX1BfZGNjaF9kdGNoX3JlbGF0ZV9pbmZvOw0KDQp0eXBlZGVmIHN0cnVjdA0Kew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VjU2NyYW1iQ29kZUZsZzsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY1NjcmFtYkNvZGU7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTdWJGcmFtZU51bU9mUGNjaDsvKm51bWJlciBvZiBzdWJmcmFtZXMgdXNlZCB0byB0cmFuc21pdCB0aGUgUEFHSU5HIFRZUEUgMSovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIc2RwYUNoYW5Db2RlOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGJzTnVtOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdUYnNMaXN0WzJdOw0KfVRfeldfUF9wY2NoX3JlbGF0ZV9pbmZvOw0KDQp0eXBlZGVmIHN0cnVjdA0KeyAgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEY2NoRHRjaFJlYzsvKrWxx7DKx7fx1qez1r3TytVEVENIus1EQ0NIo7swo7qyu9ans9ajuzGjutans9YqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQogICAgVF96V19QX2RjY2hfZHRjaF9yZWxhdGVfaW5mbyAgIHREY2NoRHRjaEluZm87IC8qRGNjaC9EdGNoyc+1xL3TytXF5NbD0MXPoqOsvfa1sXdEY2NoX2R0Y2hfcmVjX2ZnPTHKsdPQ0KcqLw0KICAgIFRfeldfUF9wY2NoX3JlbGF0ZV9pbmZvICAgICAgICAgICB0UGNjaF9pbmZvOyAvKlBjY2jJz7XEvdPK1cXk1sPQxc+io6y99rWxd0RjY2hfZHRjaF9yZWNfZmc9MMqx09DQpyovICAgIA0KfSBUX3pXX1BfcGNoX2RwYV9pbmZvOw0KDQoNCg0KDQovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KINSt0++julBfQUREX1BSQUNIX1JFUSggVVJSQy0+UEhZICkNCiDLtcP3OiBVUlJDxeTWw87vwO2y48vmu/q908jr0MW1wA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCnR5cGVkZWYgc3RydWN0ew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KICAgIFRfeldfUF9wcmFjaF9zeXNpbmZvICAgIHRQcmFjaFN5c2luZm87DQp9VF96V19QX2FkZF9wcmFjaF9yZXE7DQoNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiDUrdPvo7pQX1dfVUxfRFBDSF9TRVRVUF9NT0RJRllfUkVRKCBVUlJDLT5QSFkgKQ0KIMu1w/c6IFVSUkO9qMGiyc/Q0Neo08PO78Dt0MW1wCAg08PT2rfHRENIvajBorW9RENIvLBEQ0jI7dOyx9C7uywNCiAgICAgICAgICAgICAg0tS8sMihz/uw6cvmRFBDSKOsyc/Q0FVQQaOsz8LQ0EZEUENIttTTprXEyc/Q0ERQQ0NIxeTWw6GjDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOyANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3QWN0VGltZTsNCiAgICAvKtPQzazGtaOs0uzGtdOyx9CjrERDSMysv+fWxsq9x9C7u6OsQ0NPu9jNy8XkVUxEUENIyrEgd0hhbmRvdmVyQ29uZmlnUmV0dXJuRmxnPT0xLsbky/vH6b/2d0hhbmRvdmVyQ29uZmlnUmV0dXJuRmxnPT0wDQoqLw0KLy8gICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd0hhbmRvdmVyQ29uZmlnUmV0dXJuRmxnOw0KDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd0hhbmRvQ29uZlJldHVyQml0bWFwOy8q07LH0MqnsNy72M3L1rjKvkJJVE1BUC4gtNPT0s/y1/NCSVQw1sMxse3KvrWxx7DOqtbGyr3E2tOyx9DKp7Dcu9jNy6OsQklUMdbDMbHtyr6/59bGyr3H0Lu7yqew3LvYzcujrEJJVDLWwzGx7cq+v+fWxsq9Q0NPyqew3LvYzcsqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdVbEZyZXE7DQoJDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd0RsRnJlcTsgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1NwcmVhZGluZ0ZhY3RvcjsgDQogICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICBkd1VsU2NyYW1iQ29kZTsgDQoJDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1NjcmFtYkNvZGVUeXBlOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZkRQRENIOy8qMLHtyr7Du9PQxeTWw0RQRENILMjnufvIoTCjrLTLyrF0VWxUcmNoUmVjb25maWcg0rLKx87e0Ke1xKGjvfa99sXk1sNVTERQQ0NIKiovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1RmY2lGbGc7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd051bU9mRmJpQml0czsNCiAgICANCiAgICAvKrWxd1RmY2lFeGlzdDsgd051bUZiaUJpdHMgtryyu7Tm1NrKsaOsd051bVRQQ0JpdHO/ydGhtObU2iovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd051bU9mVFBDQml0czsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3UHVuY3RMaW1pdDsvKkRQRENIsrvOqjDKx7LF09DQpyovDQogICAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1Bvd2VyUHJlYW1ibGVMZW47DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd0RwY2NoUG93ZXJPZmY7DQoJDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd0RwY2NoUG93ZXJPZmZTdGVwOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdQb3dlckNvbnRyb2xBbGdvcml0aG07IA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdUcGNTdGVwU2l6ZTsgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd01heFR4UG93ZXI7DQogICAgDQoNClRfeldfUF91bF9kcGNoX3RyY2hfcmVjb25maWcgICAgdFVsVHJjaFJlY29uZmlnOw0KfVRfeldfUF91bF9kcGNoX3NldHVwX21vZGlmeV9yZXE7IA0KDQovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KINSt0++julBfV19ETCBfRFBDSF9TRVRVUF9NT0RJRllfUkVRKCBVUlJDLT5QSFkgKQ0KIMu1w/c6IFVSUkPH68fzzu/A7bLjvajBoteo08PO78Dt0MW1wKOo08PT2kRQRENIvLBEUENDSLXExeTWw6OpDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U29mdEhhbmRvdmVyRmxnOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FjdFRpbWU7DQogICAgLyrKsbzksaOz1ijQ6NKqzayyvbrNsrvQ6NKqzayyvSm7ucrHyrG85NbYvajTssfQ1rjKviDIoda1t7bOp6OoMC0zo6kgIDCx7cq+s/XKvLuvICAgMbHtyr6yu9Do0qrNrLK9tcTKsbzksaOz1tOyx9CjrDKx7cq+0OjSqs2ssr21xMqxvOSxo7PW07LH0KOsM7Htyr7Ksbzk1ti9qNOyx9ChoyovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGltaW5nSW5kaWNhdGlvbjsNCiAgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEcGNNb2Q7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UG93ZXJPZmZQaWxvdFBkcGRjaDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZjsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZlBpbG90Qml0czsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUZmNpRmxnOyAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHJDSEZpeGVkRmxnOyAgDQogICAgLypOMzEyLE4zMTMsTjMxNSovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TjMxMjsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOMzEzOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd04zMTU7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCiAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdEb2ZmOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Bvc3RWZXJpZnlQZXJpb2RGbGc7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZSbDsNCiAgICBUX3pXX1BfZGVkaWNhdGVkX3JsX3BhcmFtcyAgICAgICAgICAgICAgICBhdERlZFJsUGFyYW1zW1pfV19QX01BWF9OT19PRl9STF07DQogICAgVF96V19QX2RsX3RyY2hfcmVjb25maWcgICAgICAgICAgICAgICAgICAgICAgdERsVHJjaFJlY29uZmlnOw0KfVRfeldfUF9kbF9zZXR1cF9tb2RpZnlfcmVxOw0KDQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQog1K3T76O6UF9XX0RMIF9GRFBDSF9TRVRVUF9NT0RJRllfUkVRKCBVUlJDLT5QSFkgKQ0KIMu1w/c6IFVSUkPH68fzzu/A7bLjvajBorK/t9bXqNPDzu/A7dDFtcANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NvZnRIYW5kb3ZlckZsZzsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWN0VGltZTsNCiAgICAvKkVudW1lcmF0ZWQoSW5pdGlhbGlzZSxNYWludGFpbikgMDpJbml0aWFsaXNlLDE6TWFpbnRhaW4qLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUaW1pbmdJbmRpY2F0aW9uOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEcGNNb2Q7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZkcGNoVHBjRXJyb3JSYXRlOw0KICAgIA0KICAgIC8qTjMxMixOMzEzLE4zMTUqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOMzEyOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOMzEzOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOMzE1Ow0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdEb2ZmOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQb3N0VmVyaWZ5UGVyaW9kRmxnOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZlJsOw0KICAgIFRfeldfUF9mZHBjaF9kZWRpY2F0ZWRfcmxfcGFyYW1zICAgICAgICAgYXRGZHBjaERlZFJsUGFyYW1zW1pfV19QX01BWF9OT19PRl9STF07DQp9VF96V19QX2RsX2ZkcGNoX3NldHVwX21vZGlmeV9yZXE7DQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQog1K3T76O6UF9XX0RQQ0hfU0VUVVBfTU9ESUZZX0NORiggUEhZLT5VUlJDICkNCiDLtcP3OiDO78DtsuPNqNaqVVJSQ8Xk1sO8pLvuyrG85LW9LM7vwO2y49LRvq3G9NPD0MK1xMXk1sMsDQogICAgICAgICAgICAgtMvKsVVVUlJDxvS2r1QzMTK2qMqxxvcutMvP+8+i08PT2lBfREwgX0RQQ0hfU0VUVVBfTU9ESUZZX1JFUbrNDQogICAgICAgICAgICAgUF9kbF9GRFBDSF9TRVRVUF9NT0RJRllfUkVRtcS3tMChDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Umx0IDsNCn1UX3pXX1BfZGxfZHBjaF9zZXR1cF9tb2RpZnlfY25mOw0KDQovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KINSt0++julBfV19JTl9TWU5DX0lORCggUEhZLT5VUlJDICkNCiDLtcP3OiDO78DtsuPU2r2owaLXqNPDzu/A7dDFtcDKsSzNqNaqVVJSQ82ssr2zybmmo6zM2Na41vfGtbXjtcTNrLK9DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQp9VF96V19QX2luX3N5bmNfaW5kOw0KDQovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KINSt0++julBfV19PVVRfU1lOQ19JTkQoIFBIWS0+VVJSQyApDQogy7XD9zogzu/A7bLjzajWqlVSUkPKp7K9o6zM2Na41vfGtbXjtcTKp7K9DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQp9VF96V19QX291dF9zeW5jX2luZDsNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiDUrdPvo7pQX1dfVUxfRFBDSF9SRUxfUkVRKCBVUlJDLT5QSFkgKQ0KIMu1w/c6IFVSUkPTw9Pays23xcnP0NDXqNPDzu/A7dDFtcANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd0FjdFRpbWU7DQp9VF96V19QX3VsX2RwY2hfcmVsX3JlcTsNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiDUrdPvo7pQX1dfRExfRFBDSF9SRUxfUkVRKCBVUlJDLT5QSFkgKQ0KIMu1w/c6IFVSUkPTw9Pays23xc/C0NDXqNPDzu/A7dDFtcANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd0FjdFRpbWU7DQp9VF96V19QX2RsX2RwY2hfcmVsX3JlcTsNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiDUrdPvo7pQX1dfRFBDSF9SRUxfQ05GKCBQSFktPlVSUkMgKQ0KIMu1w/c6ILXXsuPIt8jPRFBDSNDFtcDKzbfFzeqxzygpoaMNCiAgICAgICAgICAgICDKx1BfdWxfRFBDSF9SRUxfUkVRu/JQX2RsX0RQQ0hfUkVMX1JFUbXEt7TAoc/7z6Khow0KICAgICAgICAgICAgILWxyc/PwtDQRFBDSNK7xvDJvrP9yrGjrM7vwO2y49a70OjSqrvYuLTSu8z1UF9EUENIX1JFTF9DTkYNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCn1UX3pXX1BfZHBjaF9yZWxfY25mOw0KDQovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KINSt0++julBfV19SRUxfU0NDUENIX1JFUSggVVJSQy0+UEhZICkNCiDLtcP3OiBVUlJDINPD09rKzbfFuKi5q7myzu/A7dDFtcANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWN0VGltZTsNCn1UX3pXX1BfcmVsX3NjY3BjaF9yZXE7DQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQog1K3T76O6UF9XX1JFTF9TQ0NQQ0hfQ05GKCBQSFktPlVSUkMgKQ0KIMu1w/c6ILXXsuPIt8jPU0NDUENI0MW1wMrNt8XN6rHPDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQp9VF96V19QX3JlbF9zY2NwY2hfY25mOw0KDQovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KINSt0++julBfV19BRERfTU9ESUZZX1NDQ1BDSF9SRVEoIFVSUkMtPlBIWSApDQogy7XD9zogVVJSQyDTw9PaxeTWw7iouau5ss7vwO3QxbXADQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY1NjcmFtYmxDb2RlRmxnOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VjU2NyYW1ibENvZGU7ICAvKlNlY29uZGFyeSBzY3JhbWJsaW5nIGNvZGUgKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1R4RGl2TW9kZTsgICAgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U3ByZWFkaW5nRmFjdG9yOyAgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2NjcGNoQ2hhbkNvZGU7ICAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTY2NwY2hDaGlwc09mZnNldDsgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BpbG90RXhpc3RlbmNlOyAgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGZjaUZsZzsgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RyQ0hGaXhlZEZsZzsNCiAgICBUX3pXX1BfZGxfdHJjaF9yZWNvbmZpZyAgICAgICAgdERsVHJjaFJlY29uZmlnOw0KfVRfeldfUF9hZGRfbW9kaWZ5X3NjY3BjaF9yZXE7DQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQog1K3T76O6UF9XX1BBR0lOR19SRVEoIFVSUkMtPlBIWSApDQogy7XD9zogVVJSQyDTw9PaxeTWw9GwuvTQxbXADQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KICAgIFRfeldfUF9hZGRfbW9kaWZ5X3NjY3BjaF9yZXEgICAgdEFkZE1vZGlmeVNjY3BjaFJlcTsNCiAgICBUX3pXX1BfcGljaF9pbmZvICAgICAgICAgICAgICAgICAgICAgICAgIHRQaWNoSW5mbzsNCn1UX3pXX1BfcGFnaW5nX3JlcTsNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiDUrdPvo7pQX1dfU1RPUF9QQUdJTkdfUkVRKCBVUlJDLT5QSFkgKQ0KIMu1w/c6IFVSUkMg08PT2s2j1rnRsLr0DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQp9VF96V19QX3N0b3BfcGFnaW5nX3JlcTsNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiDUrdPvo7pQX1dfU1RPUF9QQUdJTkdfQ05GKCBQSFktPlVSUkMgKQ0KIMu1w/c6ILXXsuPIt8jPys23xdGwuvTQxbXAzeqxzw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCnR5cGVkZWYgc3RydWN0ew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KfVRfeldfUF9zdG9wX3BhZ2luZ19jbmY7DQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQog1K3T76O6UF9XX0FERF9IU0RQQV9SRVEoIFVSUkMtPlBIWSApDQogy7XD9zogVVJSQyDTw9PaxeTWw0hTRFBBz+C52NDFtcCjqNDo0qrT60RQQ0i78kZEUENIxeTWw8Xkus/KudPDo6kNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWN0VGltZTsgLyowfjI1NTsgMjU2Os7e0KcqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHR4RHJ4Q29uZmlnRmxnOyAgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hzc2NjaExlc3NGbGc7IA0KICAgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VjSHNkcGFJbmZvRmxnOyAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNaW1vUGFyYW1GbGc7Lyq21NOmYXRNaW1vSW5mb1swXdbQtcSyzsr9Ki8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY0NlbGxNaW1vUGFyYUZsZzsgLyq21NOmYXRNaW1vSW5mb1sxXdbQtcSyzsr9Ki8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01hY0hkVHlwOw0KDQogICAgVF96V19QX2hzX2RwY2NoICAgICAgICAgICB0SHNkcGNjaENvbmZpZ0luZm87DQogICAgVF96V19QX2hzX2hhcnFfaW5mbyAgICAgIHRIc0hhcnFJbmZvOw0KICAgIFRfeldfUF9oc3NjY2hfbGVzcyAgICAgICAgdEhzc2NjaExlc3NJbmZvOyAgICANCiAgICBUX3pXX1BfZHR4X2RyeF9jb25maWcgICAgdER0eERyeENvbmZpZzsgDQogICAgVF96V19QX2hzZHBhX2luZm8gICAgICAgICB0SHNkcGFJbmZvOw0KICAgIFRfeldfUF9zZWNfaHNkcGFfaW5mbyAgIHRTZWNIc2RwYUluZm87DQogICAgVF96V19QX21pbW9faW5mbyAgICAgICAgICBhdE1pbW9JbmZvWzJdOw0KfVRfeldfUF9oc2RwYV9jb25maWdfcmVxOyANCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiDUrdPvo7pQX1dfUkVMX0hTRFBBX1JFUSggVVJSQy0+UEhZICkNCiDLtcP3OiBVUlJDys23xUhTRFBBxeTWw8frx/MNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWN0VGltZTsNCn1UX3pXX1BfaHNkcGFfcmVsX3JlcTsNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiDUrdPvo7pQX1dfUkVMX0hTRFBBX0NORiggUEhZLT5VUlJDICkNCiDLtcP3OiC117LjyLfIz8rNt8VIU0RQQdDFtcDN6rHPDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQp9VF96V19QX2hzZHBhX3JlbF9jbmY7DQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQog1K3T76O6UF9XX0FERF9IU1VQQV9SRVEoIFVSUkMtPlBIWSApDQogy7XD9zogVVJSQ8Xk1sNIU1VQQQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCnR5cGVkZWYgc3RydWN0ew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBY3RUaW1lOyAgICAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVbGZyZXE7ICAgICAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNYXhUeFBvd2VyOw0KDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVbDE2UUFNRmxnOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RXRmY2lUYWJsZUluZGV4Oy8qILfHMTZRQU3Kscih1rW3ts6nyscwtb0xLjE2UUFNyrHIoda1t7bOp8rHMrW9MyovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNFZGNoRmxnOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCiAgICBUX3pXX1BfZWRjaF9pbmZvICAgICAgICAgIHRFZGNoSW5mbzsNCiAgICBUX3pXX1Bfc2VjX2VkY2hfaW5mbyAgICB0U2VjRWRjaEluZm87DQp9VF96V19QX2hzdXBhX2NvbmZpZ19yZXE7DQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQog1K3T76O6UF9XX0hTVVBBX1JFTF9SRVEoIFVSUkMtPlBIWSApDQogy7XD9zogVVJSQ8m+s/1IU1VQQdfK1LQNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWN0VGltZTsNCn1UX3pXX1BfaHN1cGFfcmVsX3JlcTsNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiDUrdPvo7pQX1dfSFNVUEFfUkVMX0NORiggUEhZLT5VUlJDICkNCiDLtcP3OiC117LjyLfIz8m+s/1IU1VQQdfK1LTN6rHPDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQp9VF96V19QX2hzdXBhX3JlbF9jbmY7DQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQog1K3T76O6UF9XX0hTUEFfUExVU19GQUNIX1JFUSggVVJSQy0+UEhZICkNCiDLtcP3OiDF5NbDTDEgRkFDSLrNSURMRcysz8K1xM/gudjU9se/xeTWwy694brPUFJBQ0jF5NbD0rvG8Mq508MuDQogICAgICAgICAgICAg1PbHv0ZBQ0jMrLWxz8LQ0LLJ08NEUEHKx6OstMvKsXdQbHVzVXBhRmxn1sMwo6wNCiAgICAgICAgICAgICDJz9DQ0OjSqlBfV19BRERfUFJBQ0hfUkVRxtXNqFJBQ0jF5NbDDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RsRnJlcTsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BsdXNVcGFGbGc7IA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCiAgICBUX3pXX1BfZmFjaF9kcGFfaW5mbyAgICAgICAgICAgdEZhY2hEcGFJbmZvOw0KICAgIFRfeldfUF9mYWNoX3VwYV9pbmZvICAgICAgICAgICB0RmFjaFVwYUluZm87DQogICAgVF96V19QX2hzcGFfcGx1c19wcmFjaF9pbmZvICAgIHRQbHVzUHJhY2hJbmZvOw0KfSBUX3pXX1BfaHNwYV9wbHVzX2ZhY2hfcmVxOw0KDQovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KINSt0++julBfV19IU1BBX1BMVVNfUENIX1JFUSggVVJSQy0+UEhZICkNCiDLtcP3OiDF5NbDTDEgUENIzKzPwrXEz+C52NT2x7/F5NbDDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RsRnJlcTsgDQogICAgVF96V19QX3BjaF9kcGFfaW5mbyAgICAgdFBjaERwYUluZm87IA0KICAgIFRfeldfUF9waWNoX2luZm8gICAgICAgICAgIHRQaWNoSW5mbzsgICAgDQp9IFRfeldfUF9oc3BhX3BsdXNfcGNoX3JlcTsNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiDUrdPvo7pQX1dfSFNQQV9QTFVTX0ZBQ0hfUkVMX1JFUSggVVJSQy0+UEhZICkNCiDLtcP3OiDJvrP9TDEgIEZBQ0i6zUlETEXMrM/CtcTP4LnY1PbHv8Xk1sMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWN0VGltZTsgICAgICAgICAgLyowfjI1NTsgMjU2OsGivLTG8NCnKi8NCn0gVF96V19QX2hzcGFfcGx1c19mYWNoX3JlbF9yZXE7DQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQog1K3T76O6UF9XX0hTUEFfUExVU19QQ0hfUkVMX1JFUSggVVJSQy0+UEhZICkNCiDLtcP3OiDJvrP9TDEgIFBDSMysz8K1xM/gudjU9se/xeTWww0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCnR5cGVkZWYgc3RydWN0ew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOyAgICAgIA0KfSBUX3pXX1BfaHNwYV9wbHVzX3BjaF9yZWxfcmVxOw0KDQovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KINSt0++julBfV19IU1BBX1BMVVNfRkFDSF9SRUxfQ05GKCBQSFktPlVSUkMgKQ0KIMu1w/c6IM7vwO2y47vYuLS4+EwxVLXE1PbHv0ZBQ0jF5NbDyb6z/ci3yM/P+8+iDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7ICAgICANCn0gVF96V19QX2hzcGFfcGx1c19mYWNoX3JlbF9jbmY7DQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQog1K3T76O6UF9XX0hTUEFfUExVU19QQ0hfUkVMX0NORiggUEhZLT5VUlJDICkNCiDLtcP3OiDO78DtsuO72Li0uPhMMVS1xNT2x79QQ0jF5NbDyb6z/ci3yM/P+8+iDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7ICAgICAgDQp9IFRfeldfUF9oc3BhX3BsdXNfcGNoX3JlbF9jbmY7DQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQog1K3T76O6UF9XX0hTU0NDSF9PUkRFUl9JTkQoIFBIWS0+VVJSQyApDQogy7XD9zogzu/A7bLjytW1vUhTU0NDSCBPUkRFUrrzyc+xqFBTDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3R7IA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQoJV09SRCAgICAgICAgICAgICAgICAgICAgIHdIc3NjY2hPcmRlclR5cGVJbmQ7LyrNqLn9tMux6sq2o6xQSFnNqNaqUFOjrLjVuNXK1bW9tcRPUkRFUtbQ0K+0+LXEwODQzaOsuMPA4NDNtcS8pLvuyKW77tDo0qq4+b7dd0hzc2NjaE9yZGVyVHlwZc/g06bOu8XQts+hoyovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdIc3NjY2hPcmRlclR5cGU7DQoJV09SRCAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KfVRfeldfUF9Ic2NjaF9PcmRlcl9JbmQ7DQoNCi8qd0hzc2NjaE9yZGVyVHlwZUluZCAgse3KvrWxx7DK1bW9wcvExNCpT1JERVK1xMDg0M2ho9Prd0hzc2NjaE9yZGVyVHlwZdbQtcTA4NDN0rvSu7bU06ahow0KtNPT0s/y1/OjrMO/uPZCSVS31rHwse3KvkhTRFNDSLf+zvGx5Lj8o6xFUENIyrHU2khTX1NDQ0jJz8rVtb1IUk5USSxMRVNTo6y12rb+xrW140RQQaOstdq2/sa1teNVUEHH6b/2o6zP4NOmzrsg1sPSu7Htyr7K1bW9wcvP4NOmwODQzbXET1JERVIsoaMNCrXaMLHIzNijujGx7cq+uNXK1bW9SFNEU0NIt/7O8dChx/i4/LjEtcRPUkRFUiCjuw0KtdoxscjM2KO7MbHtyr641crVtb1FUENIyrHU2khTX1NDQ0jJz8rVtb1IUk5USbXET1JERVINCrXaMrHIzNijujGx7cq+uNXK1bW9RFRYz+C52E9SREVSDQq12jOxyMzYo7oxse3KvrjVytW1vbXEysdEUlggz+C52E9SREVSDQq12jSxyMzYo7oxse3KvrjVuNXK1bW9tcTKx0hTX1NDQ0hfTEVTU8/gudi1xE9SREVSDQq12jWxyMzYo7oxse3KvrjVuNXK1bW9tcTKx7XaMsa1tePPwtDQRFBBz+C52LXET1JERVINCrXaNrHIzNijujGx7cq+uNW41crVtb21xMrHtdoyxrW148nP0NBVUEHP4LnYtcRPUkRFUg0KKi8NCi8qDQp3SHNzY2NoT3JkZXJUeXBltNPT0s/y1/OjrMO/uPZCSVS31rHwse3KvkhTRFNDSLf+zvGx5Lj8o6xFUENIyrHU2khTX1NDQ0jJz8rVtb1IUk5USSxMRVNTtcS8pLvuyKW77qOstdq2/sa1teNEUEG8pLvuyKW77qOstdq2/sa1teNVUEG1xLyku+7Ipbvux+m/9g0KtdowscjM2KO6MLHtyr5IU0RTQ0i3/s7x0KHH+Lj8uMQsMbHtyr7OtMrVtb1IU0RTQ0i3/s7x0KHH+Lj8uMQuIKO7DQq12jGxyMzYo7sxse3KvkVQQ0jKsdTaSFNfU0NDSMnPytW1vUhSTlRJDQq12jKxyMzYo7owse3Kvsilu+5EVFijrDGx7cq+vKS77kRUWA0KtdozscjM2KO6MLHtyr7IpbvuRFJYo6wxse3Kvryku+5EUlgNCrXaNLHIzNijujCx7cq+yKW77khTX1NDQ0hfTEVTU6OsIDGx7cq+vKS77khTX1NDQ0hfTEVTUw0Ktdo1scjM2KO6MLHtyr7IpbvutdoyxrW148/C0NBEUEGjrDGx7cq+vKS77rXaMsa1tePPwtDQRFBBDQq12jaxyMzYo7owse3Kvsilu+612jLGtbXjyc/Q0FVQQaOsMbHtyr68pLvutdoyxrW148nP0NBVUEENCg0KKi8NCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQog1K3T76O6UF9XX05FUkJFUkNFTExfSFNTQ0NIX09SREVSX1JFUSggVVJSQy0+UEhZICkNCiDLtcP3OiDH68fzzu/A7bLjtsHIoda4tqjQocf4tcRIU1NDQ0ggT1JERVIuz+zTps/7z6LKx1BfSHNjY2hfT3JkZXJfSW5kLg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCnR5cGVkZWYgc3RydWN0ew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3UHJpU3JjOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdNb25pdG9yVGltZUxlbjsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCiAgICBUX3pXX1BfaHNfc2NjaCAgICAgICAgIHRIc3NjY2hDb25maWdJbmZvOw0KfVRfeldfUF9Ic2NjaF9PcmRlcl9SZXE7DQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQog1K3T76O6UF9XX05FUkJFUkNFTExfSFNTQ0NIX09SREVSX0FCT1JUX1JFUSggVVJSQy0+UEhZICkNCiDLtcP3OiDH68fzzu/A7bLjyKHP+7bByKHWuLao0KHH+LXESFNTQ0NIIE9SREVSLg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCnR5cGVkZWYgc3RydWN0ew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkbmc7DQp9VF96V19QX0hzY2NoX09yZGVyX0Fib3J0X1JlcTsNCg0KDQovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KINSt0++juldfUF9FRkFDSF9VUERBVEVfUk5USV9SRVEoIFVSUkMtPlBIWSApDQogy7XD9zogzajWqs7vwO2y47j80MLXqNPDtcRIUk5USbvyRVJOVEkNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdHsgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdBY3RUaW1lOy8qMH4yNTU7IDI1NjrBory0xvDQpyovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdVcGRhdGVUeXBlOy8qMaO61ru4/NDCSC1STlRJo7syo7rWu7j80MJFLVJOVEmjuzOjurj80MJILVJOVEm6zUUtUk5USTsqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3SHJudGk7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdQcmlFcm50aTsgLyrXqNPD1vdFUk5USSovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOyANCiB9VF96V19QX2VmYWNoX3VwZGF0ZV9ybnRpX3JlcTsNCg0KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogKiAgICAgICAgICAgICAgICAgICAgICAgICBSQkPIq77Wyv2+3cDg0M22qNLlIC0tLS0tLS1lbmQgICAgICAgICAgICAgICAgICAgICAgICAqDQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCiAgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAqICAgICAgICAgICAgICAgICAgICAgICAgIE1DUsirvtbK/b7dwODQzbao0uUgLS0tLS0tLS1zdGFydCAgICAgICAgICAgICAgICAgICAgICAgICAqDQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCg0KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogICAgICAgIFJSQzwtPlBIWQ0KICAgICAgICC5psTcOg0KICAgICAgICAgICAgICAgIFJSQ7rNUEhZsuO85LXEzazGtbLiwb/F5NbDvdO/2g0KICAgICAgICC94bm5OiAgICAgICAgDQogICAgICAgICAgICAgICAgzazGtbLiwb/F5NbDz/vPoiBXX1BfSU5UUkFfRlJFUV9NRUFTX1JFUQ0KICAgICAgICAgICAgICAgIM2sxrWy4sG/veG5+8/7z6IgV19QX0lOVFJBX0ZSRVFfTUVBU19JTkQNCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3Qgew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NlbGxJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmltU3JjOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NoaXBBY2N1cmFjeTsgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JlZlRpbWVEaWZmOyAgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUeERpdkluZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTeW5JbmZvck5lZWQ7ICAgICANCn1UX3pXX1BfY2VsbF9pbmZvOw0KDQp0eXBlZGVmIHN0cnVjdCB7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2VsbE51bTsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVYXJmY247DQogICAgVF96V19QX2NlbGxfaW5mbyAgICAgICAgICAgICBhdE1lYXNDZWxsSW5mb1taX1dfUF9NQVhfQ0VMTF9OVU1dOw0KfVRfeldfUF9mcmVxX21lYXNfaW5mbzsNCiANCnR5cGVkZWYgc3RydWN0IHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVYXJmY247DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2VsbE51bTsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3UHJpbVNyY1taX1dfUF9NQVhfQ0VMTF9OVU1dOw0KfVRfeldfUF9mcmVxX25vdF9tZWFzX2luZm87DQoNCnR5cGVkZWYgc3RydWN0IHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEZXRlY3RlZFNldFF1YW50aXR5Ow0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01lYXNGcmVxTnVtOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd05vdE1lYXNGcmVxTnVtOw0KICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICBkd01lYXNJZDsgICAgDQogICAgVF96V19QX2ZyZXFfbWVhc19pbmZvICAgICAgICAgICAgIGF0SW50cmFGcmVxTWVhc0luZm9bWl9XX1BfTUFYX0lOVFJBRlJFUV9OVU1dOw0KICAgIFRfeldfUF9mcmVxX25vdF9tZWFzX2luZm8gICAgICAgYXROb3RNZWFzRnJlcUluZm9bWl9XX1BfTUFYX0lOVFJBRlJFUV9OVU1dOw0KfVRfeldfUF9pbnRyYV9mcmVxX21lYXNfcmVxOw0KDQoNCnR5cGVkZWYgc3RydWN0IHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDZWxsSWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpbVNyYzsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZm5GbGFnOjE7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3BpY2hSc2NwOjg7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3BpY2hFY05vOjc7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2ZuOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd09mZjsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUbTsNCn0gVF96V19QX2NlbGxfbWVhc19ybHQ7IA0KDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVYXJmY247DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2VsbE51bTo4Ow0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Jzc2k6ODsNCiAgICBUX3pXX1BfY2VsbF9tZWFzX3JsdCAgICAgICAgICAgIGF0Q2VsbE1lYXNSbHRbWl9XX1BfTUFYX0NFTExfTlVNXTsNCn0gVF96V19QX2ZyZXFfbWVhc19ybHQ7DQoNCnR5cGVkZWYgc3RydWN0IHsNCiAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxTnVtOw0KICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICBkd01lYXNJZDsNCiAgIFRfeldfUF9mcmVxX21lYXNfcmx0ICAgICAgYXRJbnRyYUZyZXFNZWFzUmx0W1pfV19QX01BWF9JTlRSQUZSRVFfTlVNXTsNCn1UX3pXX1BfaW50cmFfZnJlcV9tZWFzX2luZDsNCg0KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogICAgICAgIFJSQzwtPlBIWQ0KICAgICAgICC5psTcOg0KICAgICAgICAgICAgICAgIFJSQ7rNUEhZsuO85LXE0uzGtbLiwb/F5NbDvdO/2g0KICAgICAgICC94bm5OiAgICAgICAgDQogICAgICAgICAgICAgICAg0uzGtbLiwb/F5NbDz/vPoiBXX1BfSU5URVJfRlJFUV9NRUFTX1JFUQ0KDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3R7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VWFyZmNuOyAgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDZWFyY2hDZWxsRmxnOyAvKjGx7cq+uMPGtbXjsru99rLiwb9SU1NJu7nQ6NKqvfjQ0NChx/jL0cv3o6yyor340NDQocf4suLBv73hufvJz7GooaMwse3KvrjDxrW14732suLBv1JTU0kqLw0KfVRfeldfUF9CbGluZF9mcmVxX21lYXNfcmVxOw0KDQoNCnR5cGVkZWYgc3RydWN0IHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsgICAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RnJlcU51bTsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdCbGluZEZyZXFOdW07DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TGJzRmxhZzsNCiAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgZHdUbWVhc0luaWFsOyANCiAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgZHdUbWVhczsNCiAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgZHdNZWFzSWQ7ICAgIA0KICAgIFRfeldfUF9mcmVxX21lYXNfaW5mbyAgICAgICAgICAgICAgYXRJbnRlckZyZXFNZWFzSW5mb1taX1dfUF9NQVhfSU5URVJGUkVRX05VTV07ICAgICAgLyp3RnJlcU51bcr9xL/WuMq+Ki8gICAgDQogICAgVF96V19QX0JsaW5kX2ZyZXFfbWVhc19yZXEgICAgICBhdEJsaW5kRnJlcVtaX1dfUF9NQVhfQkxJTkRfSU5URVJGUkVRX05VTV07ICAgICAgICAvKndCbGluZEZyZXFOdW3K/cS/1rjKviovICAgIA0KfVRfeldfUF9pbnRlcl9mcmVxX21lYXNfcmVxOw0KDQogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgUlJDPC0+UEhZDQogICAgICAgILmmxNw6DQogICAgICAgICAgICAgICAgUlJDus1QSFmy47zktcTS7Ma1suLBv8Xk1sO907/aDQogICAgICAgIL3hubk6ICAgICAgICANCiAgICAgICAgICAgICAgICDS7Ma1suLBv73hufvP+8+iIFdfUF9JTlRFUl9GUkVRX01FQVNfSU5EDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3QNCnsgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpbVNyYzsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDcGljaFJzY3A7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3BpY2hFY05vOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQp9VF96V19ibGluZF9jZWxsX3JsdDsNCg0KdHlwZWRlZiBzdHJ1Y3QNCnsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVYXJmY247DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UnNzaTsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDZWxsTnVtOyAvKiC4w8a1tePPwsOksuLBv7XE0KHH+Lj2yv0gKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOyANCiAgICBUX3pXX2JsaW5kX2NlbGxfcmx0ICAgICAgICAgIGF0QmxpbmRDZWxsUmx0W1pfV19QX01BWF9CTElORF9JTlRFUkZSRVFfQ0VMTF9OVU1dOw0KfVRfeldfYmxpbmRfdWFyZmNuX3JsdDsNCg0KDQp0eXBlZGVmIHN0cnVjdHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdJbnRlckZyZXFOdW07DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3QmxpbmRGcmVxTnVtOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JwdEZsZzsgLyowOtbcxtrJz7GoIDE6zOHHsMnPsagqLw0KICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICBkd01lYXNJZDsgDQogICAgVF96V19QX2ZyZXFfbWVhc19ybHQgICAgICAgICAgICBhdEludGVyRnJlcU1lYXNSbHRbWl9XX1BfTUFYX0lOVEVSRlJFUV9OVU1dOw0KICAgIFRfeldfYmxpbmRfdWFyZmNuX3JsdCAgICAgICAgICAgICBhdEJsaW5kRnJlcVJsdFtaX1dfUF9NQVhfQkxJTkRfSU5URVJGUkVRX05VTV07DQp9VF96V19QX2ludGVyX2ZyZXFfbWVhc19pbmQ7DQoNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgUEhZLT5SUkMNCiAgICAgICAguabE3DoNCiAgICAgICAgICAgICAgICBSSFnP8lJSQ7eiy823/s7x0KHH+LLiwb+94bn7yc+xqA0KICAgICAgICC94bm5OiAgICAgICAgDQogICAgICAgICAgICAgICAgt/7O8dChx/iy4sG/veG5+8nPsajP+8+iIFdfUF9TRVJWQ0VMTF9NRUFTX0lORA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCnR5cGVkZWYgc3RydWN0IHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmltU3JjOyANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDcGljaFJzY3A7ICAgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NwaWNoRWNObzsNCiAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgZHdNZWFzSWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UnNzaTsgLy+3/s7xxrW141JTU0nWtaOsyKHWtbe2zqc6MH43NqOsttTTpi0yNWRCbX4tMTAwZEJtDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCn1UX3pXX1Bfc2VydmNlbGxfbWVhc19pbmQ7DQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogICAgICAgIFJSQzwtPlBIWQ0KICAgICAgICC5psTcOg0KICAgICAgICAgICAgICAgIFJSQ7rNUEhZsuO85LXEVUXE2rK/suLBv8Xk1sO907/aDQogICAgICAgIL3hubk6ICAgIA0KICAgICAgICAgICAgICAgIFVFxNqyv7Liwb/H68fzz/vPoiBXX1BfVUVfSU5URVJOQUxfTUVBU19SRVENCiAgICAgICAgICAgICAgICBVRcTasr+y4sG/veG5+8nPsaggICAgIFdfUF9VRV9JTlRFUk5BTF9NRUFTX0lORCAgICAgICAgICAgIA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCg0KdHlwZWRlZiBzdHJ1Y3QgeyANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOyAgICAgICAgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JlcEludGVydmFsOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1R4UG93ZXJOZWVkOjE7ICAgICAgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSeFR4TmVlZDoxOyAgICAgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Jzc2lOZWVkOjE7ICAgICAgICAgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjEzOw0KICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdNZWFzSWQ7DQp9VF96V19QX3VlaW50ZXJuYWxfbWVhc19yZXE7IA0KDQoNCnR5cGVkZWYgc3RydWN0IHsgICAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpbVNyYzsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSeFR4VGltZURpZmY7DQp9VF96V19QX3J4dHhfdGltZV9kaWZmX3JsdDsNCg0KdHlwZWRlZiBzdHJ1Y3Qgew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHhQb3dlckZsYWc6MTsgICAgICAgICAgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSc3NpRmxhZzoxOyAgICAgICAgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoxNDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUeFBvd2VyOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Jzc2k7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZSeFR4UmVzdWx0czsNCiAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgZHdNZWFzSWQ7ICANCiAgICBUX3pXX1Bfcnh0eF90aW1lX2RpZmZfcmx0ICAgICAgIGF0UnhUeFRpbWVEaWZmUmx0W1pfV19QX01BWF9OT19PRl9STF07DQp9VF96V19QX3VlaW50ZXJuYWxfbWVhc19pbmQ7IA0KDQogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgIFJSQy0+UEhZDQogICAgICAgICC5psTcOg0KICAgICAgICAgICAgICAgUlJDz/JQSFm3osvNtcSy4sG/yb6z/da4yr4gIA0KICAgICAgICAgveG5uToNCiAgICAgICAgICAgICAgILLiwb/KzbfFz/vPoiBXX1BfTUVBU19SRUxfUkVRX0VWDQogICAgICAgICAgICAgICB3TWVhc1R5cGVzseDC66O6z+DTpmJpdM671sMxse3KvsrNt8W0y8Dg0M2y4sG/o7u38dTysrvKzbfFDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0MDogU2VydkNlbGxNZWFzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0MTogSW50cmFGcmVxDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0MjogSW50ZXJGcmVxDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0M6O6VWVJbnRlck1lYXMNCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3Qgew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNZWFzVHlwZXM7ICAgICAgICAgDQp9VF96V19QX21lYXNfcmVsX3JlcTsNCg0KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogICAgICAgIFJSQy0+UEhZDQogICAgICAgILmmxNw6DQogICAgICAgICAgICAgICAgRmFjaMysz8Ky4sG/yrG7+sXk1sMNCiAgICAgICAgveG5uTogICAgICAgIA0KICAgICAgICAgICAgICAgIEZNT9DFz6LF5NbDIFdfUF9GTU9fSU5GT19SRVENCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdCB7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZNT05lZWQ7ICAgICAgICAgICAvKta4yr7Kx7fxyrnTw0ZNT6GjMLHtyr7Ioc/7Rk1Po6y3xzDWtbHtyr7F5NbDRk1PKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1R0aVBlcmlvZDsgICAgICAgICAvKj1NX1JFUCwgbWVhc3VyZW1lbnQgb2NjYXNpb24gY3ljbGUgbGVuZ3RoICovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUdGlPZmZzZXQ7ICAgICAgICAgLyo9Q19ybnRpIFJOVEltb2QgTV9SRVAqLw0KfVRfeldfUF9mbW9fcmVxOw0KDQogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgUlJDLT5QSFkNCiAgICAgICAguabE3DoNCiAgICAgICAgICAgICAgICBEY2jMrM/C0bnL9cSjyr3Qxc+ixeTWww0KICAgICAgICC94bm5OiAgICAgICAgDQogICAgICAgICAgICAgICAg0bnL9cSjyr3Qxc+ixeTWwyBXX1BfQ09NUFJFU1NfTU9ERV9SRVENCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdCB7ICAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDb21wcmVzc2VkTW9kZVVzYWdlOyAgLyrTw9Payc/Q0KOsz8LQ0Lu5ysfJz8/C0NAqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGxDb21wTW9kZU1ldGhvZDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1VsQ29tcE1vZGVNZXRob2Q7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEbEZyYW1lVHlwZTsgICAgICAgICAgIC8q1qHA4NDNQSBPUiBCKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JwcDsgLyogUmVjb3ZlcnkgUGVyaW9kIFBvd2VyIGNvbnRyb2wgbW9kZSBkdXJpbmcgdGhlIGZyYW1lIGFmdGVyIHRoZSB0cmFuc21pc3Npb24gZ2FwIHdpdGhpbiB0aGUgY29tcHJlc3NlZCBmcmFtZSAgxKPKvTC7ucrHxKPKvTEqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3SXRwOy8qIG5pdGlhbCBUcmFuc21pdCBQb3dlciBpcyB0aGUgdXBsaW5rIHBvd2VyIGNvbnRyb2wgbWV0aG9kIHRvIGJlIHVzZWQgdG8gY29tcHV0ZSB0aGUgaW5pdGlhbCB0cmFuc21pdCBwb3dlciBhZnRlciB0aGUgY29tcHJlc3NlZCBtb2RlIGdhcMSjyr0wu7nKx8Sjyr0xKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RlbHRhU2lyMTsvKs/C0NBTSVK199X71rUqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFTaXJBZnRlcjE7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEZWx0YVNpcjI7ICAgICAgICAgICAgLypSZWFsKDAuLjMgYnkgc3RlcCBvZiAwLjEpLMCptPMxMLG2Ki8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RlbHRhU2lyQWZ0ZXIyOw0KfVRfeldfUF9zdGF0aWNfaW5mbzsNCg0KdHlwZWRlZiBzdHJ1Y3Qgew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGdwc2k7ICAgICAgICAgICAgICAvKmdhcCBJRCAxLTYgKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FjdGl2ZUZsZzsgICAgICAgICAgLyoxPbyku+6juzA9yKW77iovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNZWFzUHVycG9zZTsgICAgICAgIC8qMT3S7Ma1IKOsMj1SQVQqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGdzbjsgICAgICAgICAgICAgICAvKsbwyrzKsc+2usUqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGdwcmM7ICAgICAgICAgICAgICAvKrSryuS85Lj01ti4tLTOyv0sIDB4RkZGRrHtyr7O3s/etM7K/SovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUZ2NmbjsgICAgICAgICAgICAgIC8qtKvK5LzkuPTBrL3T1qG6xaOsyse12tK7xKPKvbXEtdrSu7j2zt7P39ahtcRDRk4qLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGdsMTsgICAgICAgICAgICAgICAvKrXa0ru49kdBULXEs6S2yKOsyrHPtsr9Ki8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RnbDI7ICAgICAgICAgICAgICAgLyq12rb+uPZHQVC1xLOktsgqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGdwbDsgICAgICAgICAgICAgICAvKrSryuS85Lj0s6S2yKOs1qHK/SovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUZ2Q7ICAgICAgICAgICAgICAgIC8qwb249kdBUMbwyry147XEvuDA66OsyrHPtsr9o6wweEZGRkax7cP3R2FwxKPQzdbQsru05tTatdq2/rj2R2FwKi8NCiAgICBUX3pXX1Bfc3RhdGljX2luZm8gICAgICAgICB0Q21TdGFpY0luZm87DQp9VF96V19QX2NvbXByZXNzX2dhcF9wYXR0ZXJuOw0KDQoNCnR5cGVkZWYgc3RydWN0IHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q21QYXR0ZXJuTnVtOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWN0VGltZTsgICAgICAgIC8qyKHWtbe2zqcwLTI1NaOsMjU2o6zG5NbQMjU2se3KvsGivLS8pLvuKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NtQ2VsbEluZm9GbGc7IC8qyKHWtTC78jGjrLHtyr7Kx7fx0K+0+MHL0KHH+NDFz6J3RGxVYXJmY266zXdQcmltU3JjLiDIoda1Mcqxd0RsVWFyZmNuus13UHJpbVNyY9PQ0KejrLfx1PLO3tCnKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RsVWFyZmNuOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpbVNyYzsNCiAgICBUX3pXX1BfY29tcHJlc3NfZ2FwX3BhdHRlcm4gICAgYXRDb3ByZXNzTW9kZVBhdHRlcm5bWl9XX1BfTUFYX0NNX05VTV07DQp9VF96V19QX2NvbXByZXNzX21vZGVfcmVxOw0KDQovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KICAgICAgICBMMVctPlBIWQ0KICAgICAgICC5psTcOg0KICAgICAgICAgICAgICAgIEZERM6quKjEo8q9z8KjrMrVtb21xEdBUMXk1sNXX1BfSVJBVEdBUENPTkZJR19SRVENCiAgICAgICAgveG5uTogICAgICAgIA0KICAgICAgICAgICAgICAgIEdBUMfrx/PQxc+iIFdfUF9JUkFUR0FQQ09ORklHX1JFUQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCg0KdHlwZWRlZiBzdHJ1Y3QNCnsNCiAgICBXT1JEICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICB3SWRsZU9yQ29ubmVjdEZsZzsvKkZERM6quKjWxsq9yrHW99bGyr21xNe0zKyjrMih1rXOqjCx7cq+v9XP0MysyKHWtc6qMbHtyr7BrL3TzKwqLw0KICAgIFdPUkQgICAgICAgICAgICAgICB3U3RhcnRTZm47LypHQVDG8Mq8tePWobrFLMih1rW3ts6nIDAtLTQwOTYqLw0KICAgIFdPUkQgICAgICAgICAgICAgICB3U3RhcnRPZmZDaGlwOyAgLypHQVDG8Mq8teMuQ0hJUMar0sajqGNoaXBzo6ks1ebV/bXER0FQxvDKvLXjysd3U3RhcnRTZm4rd1N0YXJ0T2ZmQ2hpcCovDQogICAgRFdPUkQgICAgICAgICAgICAgZHdMZW5ndGg7LyogR0FQxKPQzbPW0PjKsbzkLLWlzrvKx6OoY2hpcHOjqSovDQp9VF96V19QX2lyYXRfZ2FwX2NvbmZpZ19yZXE7DQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogICAgICAgIEwxVzwtPlBIWQ0KICAgICAgICC5psTcOg0KICAgICAgICAgICAgICAgIEwxV7rNUEhZsuO85LXEQUJPUlQgR0FQxeTWw73Tv9oNCiAgICAgICAgveG5uTogICAgICAgIA0KICAgICAgICAgICAgICAgIMfrx/PO78DtsuPNo9a5yrnTw0dBUM/7z6IgV19QX0FCT1JUX0lSQVRfR0FQX1JFUQ0KICAgICAgICAgICAgICAgIM7vwO2y47K71NrKudPDR0FQtcTIt8jPIFdfUF9BQk9SVF9JUkFUX0dBUF9DTkYNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdCB7IA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOyANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KfVRfeldfUF9hYm9ydF9pcmF0X2dhcF9yZXE7ICANCg0KdHlwZWRlZiBzdHJ1Y3QgeyANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCn1UX3pXX1BfYWJvcnRfaXJhdF9nYXBfY25mOw0KDQogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgUEhZLT5MMVcNCiAgICAgICAguabE3DoNCiAgICAgICAgICAgICAgICDO78DtsuPJz7GoZ2FwyrG85NDFz6INCiAgICAgICAgveG5uTogICAgICAgIA0KICAgICAgICAgICAgICAgIM7vwO2y48nPsahHQVDKsbzk0MXPos/7z6IgV19QX0lOQUNUSVZFX1RJTUVfSU5EDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3Qgew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1N0YXJ0UnRGcmFtZTsgICAvKkdBUMbwyry149ahusUsyKHWtbe2zqcwLTI1NaOs08nO78DtsuNSVMqxu/rEozI1NrXDtb0qLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTdGFydENoaXBPZmY7ICAgIC8qR0FQxvDKvLXjz+C21NPad1N0YXJ0Q2ZutcRDSElQxqvSxiovDQogICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICBkd0xlbmd0aENoaXA7ICAvKkdBULOktsgqLw0KDQp9VF96V19QX2dhcF9pbmZvOw0KDQp0eXBlZGVmIHN0cnVjdCB7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7ICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZXFOdW07DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3R2FwTnVtOyAgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgV3BhZGRpbmc7DQogICAgVF96V19QX2dhcF9pbmZvICAgICAgICAgICAgYXRHYXBJbmZvW1pfV19QX01BWF9GUkFNRV9HQVBfTlVNXTsgIA0KfVRfeldfUF9pbmFjdF90aW1lX2luZDsNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgTDFXLT5QSFkNCiAgICAgICAguabE3DoNCiAgICAgICAgICAgICAgICDF5NbDTDHKx7fxyc+xqMbkZ2FwyrG85KOs08PAtL340NAyRy9MVEXQocf4tcS5pNf3DQogICAgICAgIL3hubk6ICAgICAgICANCiAgICAgICAgICAgICAgICDF5NbDTDHKx7fxyc+xqMbkZ2FwyrG85M/7z6IgV19QX0lETEVfUEVSSU9EX1JFUE1PREVfUkVRDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KdHlwZWRlZiBzdHJ1Y3QgeyAgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7ICAgIA0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSZXBvcnRpbmdNb2RlOyAgICAgICAgICAvKjA6IG5vdCByZXByb3QgZ2FwLCAxOnJlcG9ydCBnYXAqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZXFOdW07DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQoNCn1UX3pXX1BfaWRsZV9wZXJpb2RfcmVwbW9kZV9yZXE7DQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogKiAgICAgICAgICAgICAgICAgICAgICAgICCy4sG/yKu+1sr9vt3A4NDNtqjS5SAtLS0tLS0tLWVuZCAgICAgICAgICAgICAgICAgICAgICAgICoNCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KDQogDQogIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogKiAgICAgICAgICAgICAgICAgICAgICAgICDK/b7dw+bIq77Wyv2+3cDg0M22qNLlIHN0YXJ0ICAgICAgICAgICAgICAgICAgICAqDQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIM/7z6KjulBfUkFDSF9QUk9DRURVUkVfUkVRX0VWKCBXTUFDLT5QSFkgKQ0KIMu1w/c6IE1BQ8/Ct6LL5rv6vdPI68frx/O4+M7vwO2y4w0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCnR5cGVkZWYgc3RydWN0IHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3U2lnbmF0dXJlQml0bWFwOyAgICAgICAvKr/J08PHqcP7Yml0bWFwKDE2zrspLCBCSVQw1rjKvrXa0ru49qOsQklUMTXWuMq+1+6689K7uPajrNPSsd/Kx9futc3OuyovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdTdWJjaGFubmVsQml0bWFwOyAgICAgIC8qv8nTw9fT0MW1wGJpdG1hcCgxMs67KSwgQklUMNa4yr612tK7uPajrEJJVDEx1rjKvtfuuvPSu7j2o6zT0rHfysfX7rXNzrsqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3TGFzdEZsYWc7ICAgICAgICAgICAgICAvKta4yr5NQUO1xFJBQ0i908jruf2zzNbQtMu0zsrHt/HS0c6qtdpNbWF4tM6jrLy01+6689K7tM6jqDB+MaOpKi8NCn1UX3pXX1BfcmFjaF9wcm9jZWR1cmVfcmVxOw0KDQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogz/vPoqO6UF9SQUNIX1BST0NFRFVSRV9JTkRfRVYoIFBIWS0+V01BQyApDQogy7XD9zogzu/A7bLju9i4tMvmu/q908jrs8m5pg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCnR5cGVkZWYgc3RydWN0IHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UmVzdWx0OyAgICAgICAgICAgICAgICAvKlJBQ0ggQUNDRVNTveG5+6OoMH4yo6mjuzCjukFDS6OsMaO6TkFDS6OsMqO6Tk8gQUNLKi8NCn1UX3pXX1BfcmFjaF9wcm9jZWR1cmVfaW5kOw0KDQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogz/vPoqO6UF9QT1NUX1ZFUkZZX0ZBSUxfSU5EX0VWKCBQSFktPldNQUMgKQ0KIMu1w/c6INTa07LH0EwxzayyvUG5/bPMyrGjrMjnufuyydPDUG9zdHZlcmZ5o6zH0tb3yc/Q0Ma1wsrJz7XEcG9zdCB2ZXJmecqnsNzKsc7vwO2y48nPsajKp7Dc1rjKvg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCnR5cGVkZWYgc3RydWN0IHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCn0gVF96V19QX3Bvc3RfdmVyZnlfZmFpbF9pbmQ7DQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogz/vPoqO6VF96V19QX3VwYV9ncmFudF9oYXJxX2luZm8oIFBIWS0+V01BQyApDQogy7XD9zog1qHW0LbP1tDO78DtsuPQr7T4tcTK2siovLBIQVJR0MXPog0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCnR5cGVkZWYgc3RydWN0IHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0hhcnFJZDsgICAgICAgICAgICAgICAgLyq21NOmvfizzElEo6gwfjejqSovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdTdGF0dXM7ICAgICAgICAgICAgICAgIC8qttTTpr34s8xIQVJRt7TAob3hufujrDCjukFDS6OsIDGjuk5BQ0sgKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1NlcnZDZWxsU3RhdHVzOyAgICAgICAgLyq3/s7x0KHH+MnP1rjKvrXESEFSUbe0wKG94bn7o6wwo7pBQ0ujrCAxo7pOQUNLKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQp9VF96V19QX2hhcnFfcHJvY2Vzc19zdGF0dXM7DQoNCg0KdHlwZWRlZiBzdHJ1Y3Qgew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3Q3ljbGUyRmxhZzsgICAgICAgICAgICAvKrjDserKttPD09rNqNaqUFPKx7fxIL+qyrzTyUN5Y2xlMb34yOtDeWNsZTIgIKO6MKO6w7vT0L34yOujrDGjutPJY3ljbGUxvfjI60N5Y2xlMiAuuMOx6rzH1rvT0LWxzu/A7bLjtNNjeWNsZTG9+MjrY3ljbGUyyrHWw867zqoxo6zNqNaqUFO9+MjrQ3ljbGUyo6zG5Mv7Q3ljbGUxvLBDeWNsZTLG2rzktcTJz7GotcS4w7HqvMe++c6qMC4qLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3QUdGbGFnOyAgICAgICAgICAgICAgICAvKsrHt/HQr7T4QUfQxc+io6gwfjGjqSovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdBR0luZGV4OyAgICAgICAgICAgICAgIC8qytrIqNa1y/fS/aOoMH4zMaOpo6y1sXdBR0ZsYWfOqjHKsdPQ0KcqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3QUdUeXBlQW5kU2NvcGU7ICAgICAgICAvKklEwODQzbrNt7bOp9DFz6KjqDB+MqOpo7swOlByaW1hcnkgSUQmUGVySEFSUSwgMTpQcmltYXJ5IElEJkFsbEhBUlEsIDI6U2Vjb25kYXJ5IElEo6y1sXdBR0ZsYWfOqjHKsdPQ0KcqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1JHTnVtOyAgICAgICAgICAgICAgICAgLyrWuMq+t/7O8VJHus23x7f+zvFSR7XEuPbK/aOoMH40o6mjuyovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIGF3UkdWYWx1ZVtaX1dfUF9NQVhfUkdfTlVNXTsgICAgLypSR8r91+mjqDB+M6Opo6wwse3Kvs7e0KejrDGx7cq+IlVQIqOsMrHtyr4iRE9XTiKjrDOx7cq+IkhPTEQio6zG5NbQtdrSu7j2xKzIz8zu0LS3/s7xUke1xNa1Ki8NCn1UX3pXX1BfaHN1cGFfZ3JhbnRfaW5mbzsNCg0KDQp0eXBlZGVmIHN0cnVjdCB7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdIYXJxQml0bWFwOyAgICAgICAgICAgICAgLyrWuMq+yse38dCvtPhIQVJRvfizzNDFz6KjqGJpdG1hcKOpo7tCSVQwo6hMU0KjqaO6ttTTptb3xrW146OsQklUMbbU06a4qMa1teMqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3R3JhbnRCaXRtYXA7ICAgICAgICAgICAgIC8q1rjKvsrHt/HQr7T4ytrIqNDFz6KjqGJpdG1hcKOpo7tCSVQwo6hMU0KjqaO6ttTTptb3xrW146OsQklUMbbU06a4qMa1teMqLw0KICAgIFRfeldfUF9oYXJxX3Byb2Nlc3Nfc3RhdHVzICB0SGFycVtaX1dfUF9NQVhfVUxfRlJFUVVFTkNZX05VTV07DQogICAgVF96V19QX2hzdXBhX2dyYW50X2luZm8gICAgIHRHcmFudFtaX1dfUF9NQVhfVUxfRlJFUVVFTkNZX05VTV07DQp9VF96V19QX3VwYV9ncmFudF9oYXJxX2luZm87DQoNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiDP+8+io7pUX3pXX1BfZ3JhbnRfbW9uaXRvcl9yZXEoIFdNQUMtPlBIWSApDQogy7XD9zog1rjKvrWxx7BUVEnKx7fxwvrX421vbml0b3LM9bz+LM7vwO2y47TTucy2qLu6tObE2rbByKENCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdCB7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxSWQ7ICAgICAgICAgICAgICAgIC8q1NiyqNDFz6KjrDCx7cq+tdrSu7j21NiyqKOsMbHtyr612rb+uPbU2LKoKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0FjdE1vbml0b3I7ICAgICAgICAgICAgLyrWuMq+yse38cL61+NNb25pdG9yzPW8/qOsMKO6srvC+tfjo6wxo7rC+tfjKi8NCn1UX3pXX1BfZ3JhbnRfbW9uaXRvcl9yZXE7DQoNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiDP+8+io7pQX0VGQUNIX05PX0RBVEFfUkVRX0VWKCBXTUFDLT5QSFkgKQ0KIMu1w/c6IEVGQUNIz8JtYWPO3sr9vt23osvNyrGjrM2o1qrO78DtsuPO3sr9vt2jrM7vwO2y48b0VDMyMbaoyrHG9w0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCnR5cGVkZWYgc3RydWN0IHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCn1UX3pXX1BfZWZhY2hfbm9fZGF0YV9yZXE7DQoNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiDP+8+io7pXX1BfIE1BQ19EVFhfQ1lDTEVfSU5GT19SRVFfRVYoIFdNQUMtPlBIWSApDQogy7XD9zogRENIzKxNQUO9+MjrTUFDX0RUWLrzzajWqs7vwO2y49bcxtrEo9DNo6zS1LHjzu/A7bLj1NpFRENIyv2+3cew1+624Mzhx7DSu9aht6JEUENDSCBwcmVhbWJsZQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCg0KdHlwZWRlZiBzdHJ1Y3Qgew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgd01hY0R0eEluZm9GbGc7LyrIoda1MLvyMaOsyKHWtc6qMcqxo6yx7cq+TUFDX0RUWGN5Y2xlINPQ0KejrMih1rXOqjDKsc7e0KejrLy0zcuz9k1BQ19EVFgqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgd01hY0R0eFN0YXJ0Q2ZuOy8qTUFDX0RSWCBjeWNsZbXExvDKvNahusUqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgd01hY0R0eFN0YXJ0U3ViQ2ZuOy8qTUFDX0RSWCBjeWNsZbXExvDKvNfT1qG6xSovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICB3TWFjRHR4Q3ljbGU7LypNQUNfRFJYIGN5Y2xltcTW3Mbas6S2yCovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCn0gVF96V19QX21hY19kdHhfY3ljbGVfaW5mbzsNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiDP+8+io7pXX1BfVEZDSV9DTV9JTkZPX0lORF9FViggUEhZLT5XTUFDICkNCiDLtcP3OiDDv7TOyc/Q0ERQQ0jW2MXk1sPKsSzO78DtsuOxqLjmN9fpVEZDU9bQuPZURkNJtcTWp7PWx+m/9iBOdHI9WzgsMTRdyrENCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQoNCnR5cGVkZWYgc3RydWN0IHsNCglXT1JEICAgICAgICAgICAgICAgICAgICAgICAgYXdTdXBGbGFnW1pfV19QX01BWF9VTF9URkNfTlVNXTsgLy8gWl9XX1BfTUFYX1VMX1RGQ19OVU0gPSA2NCwgyv3X6c/Cseqx7cq+dGZjaaOs1KrL2MTayN2x7cq+uMNURkNJyse38dans9ajrDEt1qez1qOsMC2yu9ans9ahow0KfSBUX3pXX1BfdGZjaV9zdXBfSW5mbzsNCg0KdHlwZWRlZiBzdHJ1Y3Qgew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQogICAgVF96V19QX3RmY2lfc3VwX0luZm8gICBhdFRmY2lTdXBJbmZvW1pfV19QX01BWF9OVFJfTlVNXTsvLyBOdHItOLbU06bK/dfpz8Kx6g0KfSBUX3pXX1BfdGZjaV9jbV9JbmZvOw0KDQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogz/vPoqO6VF96V19QX3VsX2RhdGFfYnVmZmVyKCBXTUFDLT5QSFkgKQ0KIMu1w/c6IMnP0NDK/b7dvdO/2iggt8dVUEEgKQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCnR5cGVkZWYgc3RydWN0IHsNCiAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICBkd1RyY2hCdWZmT2ZmOyAgICAgICAgICAvKrj3tKvK5NDFtcDK/b7d1NrK/dfp1tC21NOmtcTGq9LGo6zS1FdPUkTOqrWlzrujqDB+NTgzo6kqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3VGJOdW1BbmRUcmNoSWQ7ICAgICAgICAvKrSryuTQxbXAaWS6zbbU06a1xHRiv+m49sr9o6y43zjOu7bU06ZUcmNoIElko6y1zTjOu7bU06ZUYiBudW0qLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3VGJTaXplOyAgICAgICAgICAgICAgICAvKlRCv+m089Cho6y1pc67Yml0Ki8NCn1UX3pXX1BfdWxfdHJjaF9oZWFkZXI7DQoNCg0KdHlwZWRlZiBzdHJ1Y3Qgew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3VG90YWxMZW5ndGg7ICAgICAgICAgICAvKsr9vt3X3Lmy1bzTw7XEV09SRMr9o6gwfjU4NKOpKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mVHJjaDsgICAgICAgICAgICAgLyq0q8rk0MW1wLj2yv2jqDF+OKOpKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1RmY2k7ICAgICAgICAgICAgICAgICAgLyrRodTxtcRUZmNpo6gwfjYzo6kqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCiAgICBUX3pXX1BfdWxfdHJjaF9oZWFkZXIgICAgICAgYXRVbFRyY2hIZWFkZXJbWl9XX1BfTUFYX1VMX1RSQ0hfTlVNXTsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgYXdVbERhdGFbWl9XX1BfTUFYX05PX09GX1VMX0JZVEVTLzJdOw0KfVRfeldfUF91bF9kYXRhX2J1ZmZlcjsNCg0KDQovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIM/7z6KjulRfeldfUF9kbF9kYXRhX2J1ZmZlciggUEhZLT5XTUFDICkNCiDLtcP3OiDPwtDQyv2+3b3Tv9ooILfHRFBBICkNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdCB7DQogICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgZHdUcmNoQnVmZk9mZjsgICAgICAgICAgLyq497SryuTQxbXAyv2+3dTayv3X6dbQttTTprXExqvSxqOs0tRXT1JEzqq1pc67o6gwfjU4M6OpKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1RyY2hJZDsgICAgICAgICAgICAgICAgLyq0q8rk0MW1wGlkIKOoMX44o6kqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3VHJjaFR5cGU7ICAgICAgICAgICAgICAvKrSryuTQxbXAwODQzaOoMH40o6ksvPu66rao0uUqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3Q2ZuQW5kVGJOdW07ICAgICAgICAgICAvKsr9vt23osvNyrG1xENmbrrNVGK/6bj2yv2jrLjfOM67zqpUYiBudW2jrLXNOM67zqpDZm4qLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3U2ZuOyAgICAgICAgICAgICAgICAgICAvKsr9vt23osvNyrG1xM+1zbPWobrFo6gwfjQwOTWjqSovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdUYlNpemU7ICAgICAgICAgICAgICAgIC8qVEK/6bTz0KGjrLWlzrtiaXQqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsgICANCiAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICBkd0NyY0NoZWNrOyAgICAgICAgICAgICAvKkNSQ73hufsgYml0bWFwKi8NCn1UX3pXX1BfZGxfdHJjaF9oZWFkZXI7DQoNCg0KdHlwZWRlZiBzdHJ1Y3Qgew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3VG90YWxMZW5ndGg7ICAgICAgICAgICAvKsr9vt3X3Lmy1bzTw7XEV09SRMr9o6gwfjU4NKOpKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mVHJjaDsgICAgICAgICAgICAgLyq0q8rk0MW1wLj2yv2jqDF+OKOpKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1RmY2k7ICAgICAgICAgICAgICAgICAgLyrRodTxtcRUZmNpo6gwfjEyN6OpKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQogICAgVF96V19QX2RsX3RyY2hfaGVhZGVyICAgICAgIGF0RGxUcmNoSGVhZGVyW1pfV19QX01BWF9ETF9UUkNIX05VTV07ICAgDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIGF3RGxEYXRhW1pfV19QX01BWF9OT19PRl9ETF9CWVRFUy8yXTsNCn1UX3pXX1BfZGxfZGF0YV9idWZmZXI7DQoNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiDP+8+io7pUX3pXX1BfaHN1cGFfYnVmZmVyKCBXTUFDLT5QSFkgKQ0KIMu1w/c6IMnP0NDK/b7dvdO/2iggVVBBICkNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdCB7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdMOyAgICAgICAgICAgICAgICAgICAgIC8qse3Kvsq508O4w0UtVEZDy/nT0LXERS1EUERDSHOjrMih1rW3ts6nKDF+NCkqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3QmV0YUVjOyAgICAgICAgICAgICAgICAvKsih1rW3ts6nNX4yMzmhoyovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIGF3QmV0YUVkWzRdOyAgICAgICAgICAgIC8qd0y49ta1o6zIoda1t7bOpzV+Mzc3Ki8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1NmOyAgICAgICAgICAgICAgICAgICAgICAgICAvKrXa0rvM9UUtZHBkY2i1xFNGLsih1rW3ts6nMC0tNTEyKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQp9VF96V19wX2V0ZmNfZ2Fpbl9mYWN0b3I7DQoNCg0KdHlwZWRlZiBzdHJ1Y3Qgew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3Q2ZuOyAgICAgICAgICAgICAgICAgICAvKsGsvdPWobrFMC0tMjU1Ki8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1N1YkZyYW1lTnVtOyAgICAgICAgICAgLyrX09ahusUwLS00Ki8NCn1UX3pXX1BfdXBhX3RyYW5zX2ZyYW1lX251bTsNCg0KdHlwZWRlZiBzdHJ1Y3Qgew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3TmVqOw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3TmRhdGFKOw0KfVRfeldfUF9ldGZjX3JtX2luZm87DQoNCnR5cGVkZWYgc3RydWN0IHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXFJZDsgICAgICAgICAgICAgICAgLyrWuMq+tbHHsMrHxMe49tTYsqi21NOmtcTJz9DQyv2+3aOsMLHtyr612tK7uPbU2LKoo6wxse3KvrXatv649tTYsqgqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3RXJudGk7ICAgICAgICAgICAgICAgICAvKrTLyv2+3bD8ttTTprXERVJOVEkqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3SGFycUlkOyAgICAgICAgICAgICAgICAvKkhBUlG9+LPMSUSjqDB+N6OpKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0V0ZmNpOyAgICAgICAgICAgICAgICAgLyrRodTxtcRFdGZjaaOoMH4xMjejqSovDQogICAgVF96V19wX2V0ZmNfZ2Fpbl9mYWN0b3IgICAgIHRFdGZjR2FpbkZhY3RvcjsNCiAgICBUX3pXX1BfZXRmY19ybV9pbmZvICAgICAgICAgdEV0ZmNSbUluZm87DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdUYlNpemU7ICAgICAgICAgICAgICAgIC8qttTTplRCv+m089ChYml0c6OoMTh+MjI5OTWjqSovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdSc247ICAgICAgICAgICAgICAgICAgIC8qVGK/6bbU06ZSU06jqDB+M6OpKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0hhcHB5Qml0OyAgICAgICAgICAgICAgLypIYXBweSBCaXTWuMq+o6gwfjGjqSovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdTY2hEYXRhRmc7ICAgICAgICAgICAgIC8q1rjKvrWxx7DKx7fxyse197bIyv2+3aOoMH4xo6kqLw0KICAgIFRfeldfUF91cGFfdHJhbnNfZnJhbWVfbnVtICB0VXBhVHJhbnNGcmFtZU51bTsNCi8vICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICBhd0hzdXBhRGF0YVtaX1dfUF9NQVhfTk9fT0ZfSFNVUEFfQllURVMvMl07ICAvKlVQQcr9vt3Nt9DFz6K3xcjrubLP7VJBTaOsVVBByv2+3dDFz6LWsb3TsOHWwc7vwO2y49OyvP6808vZxvdFLVVUUiBSQU0qLw0KfVRfeldfUF9oc3VwYV9idWZmZXI7DQoNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiDP+8+io7pUX3pXX1BfaHNkcGFfYnVmZmVyKCBQSFktPldNQUMgKQ0KIMu1w/c6IM/C0NDK/b7dvdO/2iggRFBBICkNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdCB7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdUYlNpemU7ICAgICAgICAgICAgICAgIC8qVGK/6bTz0KFiaXSjqDEyMH4yNzk1MqOpKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0RhdGFUeXBlOyAgICAgICAgICAgICAgLyrWuMq+vdPK1bXEyv2+3b/pwODQzaOsMKO6xuTL+yAgMaO6UENDSCAgMqO6QkNDSKO7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINTaRVBDSMysu/JFRkFDSMysyrnTw0JDQ0ggUk5USb3iwuvKsaOs1PK21NOmd0RhdGFUeXBlzO7QtEJDQ0ijuw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDU2kVQQ0jMrLK7yrnTw0JDQ0ggUk5USb3iwuvKsaOsttTTpndEYXRhVHlwZczu0LRQQ0NIo7sNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgxuTL+8fpv/bPwndEYXRhVHlwZczu0LTG5Mv7Ki8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgYXdIc2RwYURhdGFbWl9XX1BfTUFYX05PX09GX0hTRFBBX0JZVEVTLzJdOw0KfVRfeldfUF9oc2RwYV9idWZmZXI7DQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQrP+8+io7pQX1RGQ19FVEZDX1BBUkFNX0lORCggV1BIWS0+V01BQyApDQrLtcP3OiBMMb2rvMbL47rDtcRURkMgZ2FpbiBmYWN0b3LWtbj4TUFDo6zTw9PaRVRGQ8/e1sa5/bPMyrnTww0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCg0KdHlwZWRlZiBzdHJ1Y3Qgew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3VGZjaTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKlRmY2nWtSovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICBkd0FqTnVtZXJhdG9yTG93OyAgICAgICAgICAgICAgICAvKrzGy+NBasa9t73L+dPDtcS31tfTLLXNMzLOuyovDQogICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgIGR3QWpOdW1lcmF0b3JIaWdoOyAgICAgICAgICAgICAgIC8qvMbL40Fqxr23vcv508O1xLfW19MsuN8zMs67Ki8NCiAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgZHdBakRlbm9taW5hdG9yTG93OyAgICAgICAgICAgICAgLyq8xsvjQWrGvbe9y/nTw7XEt9bEuCy1zTMyzrsqLw0KICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICBkd0FqRGVub21pbmF0b3JIaWdoOyAgICAgICAgICAgICAvKrzGy+NBasa9t73L+dPDtcS31sS4LLjfMzLOuyovDQp9VF96V19QX3RmY19nYWluX2ZhY3RvcjsvKnNpZ25hbGxlZEdhaW5GYWN0b3JzICYgY29tcHV0ZWRHYWluRmFjdG9ycyovDQoNCnR5cGVkZWYgc3RydWN0DQp7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdpTWFudGlzc2E7ICAgICAgICAgICAgICAgICAgICAgIC8qzrLK/SovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdpRXhwOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8quLrK/bzTxqvSxqGj1rjK/SovDQp9VF96V19QX3BjX2Zsb3RfZGF0YTsNCg0KdHlwZWRlZiBzdHJ1Y3Qgew0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZlRmYzsgICAgICAgICAgICAgICAgICAgICAgIC8qVGZjIMr9Ki8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1VsRHBkY2hOdW07ICAgICAgICAgICAgICAgICAgICAgLyrT61RfeldfUF91bF9kcGNoX3NldHVwX21vZGlmeV9yZXHW0NDF1Kp3TnVtT2ZEUERDSM/gzawqLyAgICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQoNCiAgICBUX3pXX1BfdGZjX2dhaW5fZmFjdG9yICAgICAgYXRUZmNQYXJhbVtaX1dfUF9NQVhfVUxfVEZDX05VTV07LyrL+dPQVEZDtcRCZXRhQyxCZXRhRCovDQogICAgVF96V19QX3BjX2Zsb3RfZGF0YSAgICAgICAgIHRQTWF4Ow0KfVRfeldfUF90ZmNfZXRmY19wYXJhbV9pbmQ7DQoNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCs/7z6KjulRfeldfUF91bF9wb3dlcl9pbmZvKCBXUEhZLT5XTUFDICkNCsu1w/c6ICAgVEZDuabCyr/Y1sYNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdCB7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdUZmNQb3dlckZsYWc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qyse38dCvtPh0ZmMgcG93ZXIgaW5mb6OoMH4xo6kqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3Q29tcHJlc3NlZEZsZzsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgYXdFeGNlc3NQb3dlckZsYWdbWl9XX1BfTUFYX1VMX1RGQ19OVU1dOyAvKlRGQ0nKx7fxs6y5/dfutPO0q8rkuabCyrXE1rjKvqOsyv3X6c/CserOqlRGQ0mju8r91+nE2sjdzqrI/bj2yrHPtrXEsuLBv73hufujqGJpdG1hcKOpo6xCSVQwo6hMU0KjqaO6tdrSu7j2yrHPtrLiwb+94bn7o6xCSVQxo7q12rb+uPbKsc+2suLBv73hufujrEJJVDKjurXayP249sqxz7ay4sG/veG5+yovDQp9VF96V19QX3VsX3Bvd2VyX2luZm87DQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQrP+8+io7pUX3pXX1BfdXBhX2V0ZmNfcmVzdHJpY3RfaW5mbyggV1BIWS0+V01BQyApDQrLtcP3OiAgIEVURkPP3tbGuf2zzNDFz6INCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdCB7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdOcGlsb3RDOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyrRucv11qHW0KOsw7+49sqxz7bJz0RQQ0NItcRwaWxvdCBiaXTK/cG/oaPIoda1t7bOpzN+OGJpdCovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdOcGlsb3ROOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyq3x9G5y/XWodbQo6zDv7j2yrHPtsnPRFBDQ0i1xHBpbG90IGJpdMr9wb+ho8ih1rW3ts6nM344Yml0Ki8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd05TbG90QzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKtG5y/XEo8q91qHW0KOssru3osvNyv2+3bXEyrHPtsr9oaPIoda1t7bOpzF+MTUqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCn1UX3pXX1BfZHBjaF9jb21wcmVzc2VkX2luZm87DQoNCnR5cGVkZWYgc3RydWN0IHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0NvbXByZXNzZWRGbGc7ICAgICAgICAgICAgICAgICAgICAgICAvKjAtzt7Rucv1xKPKvdDFz6KjrDEttObU2tG5y/XEo8q90MXPoiovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdCZWx0YUhzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypIc2RwY2NotcTU9tLm0vLX06Ost7bOpzB+MzgqMTUqLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3RXN0aW1hdGVQZHBjY2hGaWx0ZXJTbG90TnVtOyAgICAgICAgIC8qwsuyqMqxz7a49sr9Ki8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQogICAgVF96V19QX2RwY2hfY29tcHJlc3NlZF9pbmZvIHREcGNoQ29tcHJlc3NlZEluZm87ICAgICAgICAgICAgICAgICAgLyrRucv1xKPKvdDFz6IqLw0KICAgIFRfeldfUF9wY19mbG90X2RhdGEgICAgICAgICB3RXN0aW1hdGVQZHBjY2hUYXJnW1pfV19QX01BWF9VTF9GUkVRVUVOQ1lfTlVNXTsgICAgICAgICAgICAgICAvKkRQQ0NIxsC5wLmmwsqjrMr91+nPwrHqMLHtyr7W98a1o6zK/dfpz8Kx6jGx7cq+uKjGtaOsMm1zVFRJyrHGwLnAM3Nsb3Rzo6wxMG1zVFRJyrHGwLnAMTVzbG90c6Gj08PWuMr90M7KvbHtyr6ho8jnufvKx9G5y/XEo8q9o6y4w7mmwsrKx9Xby+O687XEuabCyta1o6y8tFBEUENDSCx0YXJnZXQsaSA9IFBEUENDSCxmaWx0ZXJlZCxpocEgKE5waWxvdCxOLyBOcGlsb3QsQykqLw0KfVRfeldfUF91cGFfZXRmY19yZXN0cmljdF9pbmZvOw0KDQp0eXBlZGVmIHN0cnVjdCB7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICB3UHJpbUZyZXFUcmFuc0ZsZzsgICAgICAgICAgICAgICAgICAgICAgLyrW98a1LHBjIHByZWFtYmxlyse38b/Jt6LK/b7do6y78tG5y/XEo8q9Z2Fwyse38b/Jt6LK/b7doaMwo7qyu9TK0O23osvNyv2+3aOsMaO61MrQ7beiyv2+3SovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICB3U2VjRnJlcVRyYW5zRmxnOyAgDQogIH1UX3pXX1BfdXBhX3RyYW5zX2luZm87DQoNCnR5cGVkZWYgc3RydWN0IHsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdHJbIFpfV19QX01BWF9OVFJfTlVNXTsvKkNN1NpOKzItLU4rOdah1tCjrMO/1qHW0LXE1bzTw8qxz7bK/aOsd050clswXbbU06ZOKzLWoSzO78DtsuPU2srVtb1DTcXk1sPKsbywyrHJz7Goo6zWrrrztcTJz7GowvrX4yBDRk4lOD0wIMnPsaiho8nPsai1xMzhx7DBv86qMjBNUyovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnRyU3RhcnRDZm47Lyogyc+xqLXETnRyWzBdy/nU2tah1qG6xSovDQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCn1UX3pXX1BfY21fbnRyX2luZm87DQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogveG5uaO6VF96V19QX2RhdGFfZnJhbWVfaW5mbyggUEhZLT5XTUFDICkNCiDLtcP3OiDWodbQts/K/b7d0MXPosnPsagNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdCB7DQogICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1VwaDsNCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHR4QWN0aXZlOyAgICAgICAgIC8qxeTWw8HLRHR4RHJ4uvOjrNa4yr5EdHjKx7fxvKS77rvyyKW77qO7MKO6zt7Qp6OsMaO61rjKvryku+6jrDKjuta4yr7IpbvuKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHJ4QWN0aXZlOyAgICAgICAgIC8qxeTWw8HLRHR4RHJ4uvOjrNa4yr5EcnjKx7fxvKS77rvyyKW77qO7MKO6zt7Qp6OsMaO61rjKvryku+6jrDKjuta4yr7IpbvuKi8NCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VjQ2VsbEFjdGl2ZTsgICAgIC8qxeTWw7Xatv7GtbXjuvOjrNa4yr612rb+xrW148rHt/G8pLvuo7swo7rO3tCno6wxo7rWuMq+vKS77qOsMqO61rjKvsilu+4qLw0KICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSYWNoRGNoVHJhbnNGZzsgICAgICAgICAgICAgICAvKta4yr5SQUNILERDSLTL1qHKx7fxv8nS1Leiy83K/b7do6wwo7qyu9TK0O23osvNyv2+3aOsMaO61MrQ7beiyv2+3SovICANCiAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q21OdHJJbmZvRmxnOw0KICAgIFRfeldfUF9jbV9udHJfaW5mbyAgICAgICAgICAgICAgICAgIHRDbU50ckluZm87DQogICAgVF96V19QX3VwYV90cmFuc19pbmZvICAgICAgICAgICAgICB0VXBhVHJhbnNJbmZvOw0KICAgIFRfeldfUF91cGFfZ3JhbnRfaGFycV9pbmZvICAgICAgdEdyYW50SGFycUluZm87DQogICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd0NtUGF0dGVybjsgICAgICAgICAgICAgICAgICAgLyrJz7Go0bnL9cSjyr3NvNH5o6zDv7j219PWocnPsajSu7TOo6zJz7GotcTKxzO49tfT1qHWrrrztcTWtSovDQogICAgDQogICAgVF96V19QX3VsX3Bvd2VyX2luZm8gICAgICAgICAgICAgICB0VWxQb3dlckluZm87LyrV67bURFBDSCzO78DtsuPJz7GotcTM4cewwb/KxzLWoSovDQoNCiAgICBUX3pXX1BfdXBhX2V0ZmNfcmVzdHJpY3RfaW5mbyAgICB0RXRmY1Jlc3RyaWN0SW5mbzsvKtXrttRVUEGjrM7vwO2y48nPsai1xMzhx7DBv8rHMrj219PWoSovDQp9VF96V19QX2RhdGFfZnJhbWVfaW5mbzsgDQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogICAgTDFXLT5QSFkNCiAgICDKwrz+o7pXX1BfWldQQ0dfUkVRX0VWDQogICAguabE3DoNCiAgICAgICAg0N64xC+y6dGvV87vwO2y48Xk1sOyzsr9oaMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdCANCnsNCiAgICBXT1JEICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgIHdDbWQ7ICAgICAgLyogw/zB7rrFo6y21NOmsrvNrLXEzu/A7bLjuabE3CAqLw0KICAgIFdPUkQgICAgICAgYXdWYWxGZ1taX1pXUENHX1ZBTEZHX05VTV07ICAgLyogse3KvmFkd1ZhbMrHt/G05tTao6wwse3KvrK7tObU2qOsMbHtyr605tTaICovDQogICAgRFdPUkQgICAgICBhZHdWYWxbWl9aV1BDR19WQUxGR19OVU1dOyAgICAvKiCyzsr9wdCx7aOs0N64xC+2wcihtcTO78DtsuOyzsr9o6yyzsr9yrW8yrqs0uXTyc7vwO2y47j4s/YgKi8NCn1UX3pXX1BfWndwY2dfUmVxOyANCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICBQSFktPkwxVw0KICAgIMrCvP6juldfUF9aV1BDR19DTkZfRVYNCiAgICC5psTcOg0KICAgICAgICDQ3rjEL7Lp0a9Xzu/A7bLjxeTWw7LOyv21xM/s06bP+8+ioaMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdCANCnsNCiAgICBXT1JEICAgICAgIHdNc2dJZDsNCiAgICBXT1JEICAgICAgIHdDbWQ7ICAgICAgLyogw/zB7rrFo6y21NOmsrvNrLXEzu/A7bLjuabE3KOsYk1vZGU9MC8xtrzT0NCnICovDQogICAgV09SRCAgICAgICB3UnNsdDsgICAgIC8qILHtyr7J6NbDveG5+6OsWl9UUlVFyejWw7PJuaajrFpfRkFMU0XJ6NbDyqew3CAgd0NtZM6qyejWw8P8we7KsdPQ0KcgKi8NCiAgICBXT1JEICAgICAgIGF3VmFsRmdbWl9aV1BDR19QQVJBTV9OVU1dOyAvKrC01dXPwrHqus1kd1ZhbNbQ1rXSu9K7ttTTpqOsYlZhbDFGZ1swXbHtyr5kd1ZhbFswXcrHt/G05tTaLNLAtM7A4M3Go6wwse3KvrK7tObU2qOsMbHtyr605tTaKi8NCiAgICBMT05HICAgICAgIGFsVmFsW1pfWldQQ0dfUEFSQU1fTlVNXTsgICAvKrLOyv0xL7LOyv0yoa2jrNDeuMQvtsHIobXEzu/A7bLjss7K/aOsss7K/cq1vMq6rNLl08nO78DtsuO4+LP2Ki8NCn1UX3pXX1BfWndwY2dfQ25mOw0KDQoNCg0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICBMMVctPlBIWQ0KICAgIMrCvP6juldfUF9SUElfU0VUX1JFUV9FVg0KICAgILmmxNw6DQogICAgICAgIMno1sNXUEhZyrnTw7XE1+6087eiyeS5psLKtcRSUEkgVkFVTEUNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdCANCnsNCiAgICBXT1JEICAgIHdNc2dJZDsNCiAgICBXT1JEICAgIHdScGk7IC8qIFBVTUFYttTTprXEUlBJtbXOu6Ost7bOpzAvMS8yICovDQp9VF96V19QX3JwaV9zZXRfcmVxOyANCg0KDQojZGVmaW5lICAgWl9NQVhfUlBJX05SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChCWVRFKTMNCiNkZWZpbmUgICBaX1dfUlBJX1NVUFBPUlRfTUFYX0JBTkQgICAgICAgICAgKEJZVEUpOA0KDQoNCnR5cGVkZWYgc3RydWN0IA0Kew0KICAgIFdPUkQgICAgd0JhbmQ7ICAgICAgICAvKiC21NOmtcRCQU5EusUgKi8NCiAgICBXT1JEICAgIGJQdW1heFtaX01BWF9SUElfTlJdOyAgIC8qINLUcnBpzqppbmRleMi3yM/X7rTzt6LJ5LmmwspwdW1heCAqLw0KfVRfekJhbmRScGlDZmc7IA0KDQovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KICAgIEwxVy0+UEhZDQogICAgysK8/qO6V19QX1JQSV9DRkdfUkVRX0VWDQogICAguabE3DoNCiAgICAgICAgxeTWw1fPwji49kJBTkSjrMO/uPZCQU5Ez8JSUEm6zVBVTUFYtcTTs8nkudjPtaOsxuTW0FJQSbe2zqcwfjINCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQp0eXBlZGVmIHN0cnVjdCANCnsNCiAgICBXT1JEICAgIHdNc2dJZDsNCiAgICBUX3pCYW5kUnBpQ2ZnICAgIHRXQmFuZFJwaUNmZ1taX1dfUlBJX1NVUFBPUlRfTUFYX0JBTkRdOw0KfVRfeldfUF9ycGlfY2ZnX3JlcTsNCg0KDQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogKiAgICAgICAgICAgICAgICAgICAgICAgICDK/b7dw+bIq77Wyv2+3cDg0M22qNLlIGVuZCAgICAgICAgICAgICAgICAgICAqDQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCg0KDQoNCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICogICAgICAgIFBT0+tXUEhZILmyz+1ERFK1xDVNQiC/1bzkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQojaWYgMA0KI2lmIGRlZmluZWQgKF9DSElQX1pYMjk3NTUwKQ0KI2RlZmluZSBERFJfQkFTRV9BRERSX0ZPUl9XICAgICAgICAgICAgMHg1ODAwMDAwDQojZW5kaWYNCiNpZiBkZWZpbmVkIChfQ0hJUF9aWDI4MDQpDQojZGVmaW5lIEREUl9CQVNFX0FERFJfRk9SX1cgICAgICAgICAgIDB4MTU4MDAwMDANCiNlbmRpZg0KDQojZW5kaWYNCi8qUFPT63Boebmyz+1ERFK4+b7d0rXO8cfpv/a31rPJNbj2tci8tiovDQojZGVmaW5lIFBTX1dQSFlfRExfREFUQV9ERFJfR1JBREVfTlVNICAgICAgICAgICAoNSkNCiNkZWZpbmUgUFNfTUFDX0hFQURfSUZOT19TSVpFICAgICAgICAgICAgICAgICAgIDYyMC8vZWM2MTYwMDAyNTg0MDENCg0KI2RlZmluZSBQU19XUEhZX0RMX0RBVEFfVFlQRTBfR1JBREVfQlVGX1NJWkUgICAgMC8vKDg2ICsgUFNfTUFDX0hFQURfSUZOT19TSVpFKQ0KI2RlZmluZSBQU19XUEhZX0RMX0RBVEFfVFlQRTFfR1JBREVfQlVGX1NJWkUgICAgMC8vKDIzOCArIFBTX01BQ19IRUFEX0lGTk9fU0laRSkNCiNkZWZpbmUgUFNfV1BIWV9ETF9EQVRBX1RZUEUyX0dSQURFX0JVRl9TSVpFICAgIDAvLyg2ODIgKyBQU19NQUNfSEVBRF9JRk5PX1NJWkUpDQojZGVmaW5lIFBTX1dQSFlfRExfREFUQV9UWVBFM19HUkFERV9CVUZfU0laRSAgICAwLy8oMTk4MCArIFBTX01BQ19IRUFEX0lGTk9fU0laRSkNCiNkZWZpbmUgUFNfV1BIWV9ETF9EQVRBX1RZUEU0X0dSQURFX0JVRl9TSVpFICAgICg1MjgyICsgUFNfTUFDX0hFQURfSUZOT19TSVpFKQ0KDQoNCiNkZWZpbmUgUFNfV1BIWV9ETF9EQVRBX1RZUEUwX0dSQURFX0JVRl9OVU0gICAgIDAvLzUwNQ0KI2RlZmluZSBQU19XUEhZX0RMX0RBVEFfVFlQRTFfR1JBREVfQlVGX05VTSAgICAgMC8vNTA1DQojZGVmaW5lIFBTX1dQSFlfRExfREFUQV9UWVBFMl9HUkFERV9CVUZfTlVNICAgICAwLy80MDANCiNkZWZpbmUgUFNfV1BIWV9ETF9EQVRBX1RZUEUzX0dSQURFX0JVRl9OVU0gICAgIDAvLzMwMA0KI2RlZmluZSBQU19XUEhZX0RMX0RBVEFfVFlQRTRfR1JBREVfQlVGX05VTSAgICAgMTMxLy8yMDANCg0KI2RlZmluZSBQU19XUEhZX0RMX0RBVEFfVFlQRV9HUkFERV9CVUZfTlVNX0FMTCAgICAoUFNfV1BIWV9ETF9EQVRBX1RZUEUwX0dSQURFX0JVRl9OVU0gKyBQU19XUEhZX0RMX0RBVEFfVFlQRTFfR1JBREVfQlVGX05VTSArIFBTX1dQSFlfRExfREFUQV9UWVBFMl9HUkFERV9CVUZfTlVNXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArUFNfV1BIWV9ETF9EQVRBX1RZUEUzX0dSQURFX0JVRl9OVU0gKyBQU19XUEhZX0RMX0RBVEFfVFlQRTRfR1JBREVfQlVGX05VTSkvL2FkZCBieSBzaGlkZXlvdSANCg0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQogKiAgICAgICAgUFPT61dQSFkgubLP7VJBTbXENjBLIL/VvORQU19QSFlfQkFTRV9BRERSKzE0NEstLS1QU19QSFlfQkFTRV9BRERSKzIwOEsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCiNpZmRlZiBaX1NFTkRfVE9fU0lNUEhZDQojZGVmaW5lICAgIFBTX1BIWV9CQVNFX0FERFIgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0Ly+y+sa3z9/M4bmpDQojZGVmaW5lICAgIFBTX1dQSFlfQkFTRV9BRERSICAgICAgICAgICAgICAgICAgICAoUFNfUEhZX0JBU0VfQUREUiArMjQwMDApDQojZWxzZQ0KI2RlZmluZSAgICBQU19XUEhZX0JBU0VfQUREUiAgICAgICAgICAgICAgICAgICAgSVJBTV9CQVNFX0FERFJfRk9SX1cNCiNlbmRpZg0KDQojaWYgMA0KI2RlZmluZSAgICBQU19XUEhZX0VWRU5UX0FERFIgICAgICAgICAgICAgICAgICAgUFNfV1BIWV9CQVNFX0FERFINCg0KLypQUyC4+M7vwO2y47eiy83P+8+itcTG8Mq8tdjWtyovDQojZGVmaW5lICAgIFBTX1RPX1dQSFlfRVZFTlRfQUREUiAgICAgICAgICAgICAgICBQU19XUEhZX0JBU0VfQUREUg0KDQojZGVmaW5lICAgIFBTX1RPX1dQSFlfRU5FTlRfQlVGX1NJWkUgICAgICAgICAgICAoMFg2MUJDID4+IENQVV9TSElGVCkgICAgIC8vYWRkIGJ5IHNoaWRleW91ICAvKlBTLT5XUEhZICDP+8+isr+31tW808O1xFJBTb/VvOS089ChKi8NCg0KLyrO78DtsuO4+FBTt6LLzc/7z6K1xMbwyry12Na3Ki8NCiNkZWZpbmUgICAgV1BIWV9UT19QU19FVkVOVF9BRERSICAgICAgICAgICAgICAgIChQU19XUEhZX0JBU0VfQUREUiArIFBTX1RPX1dQSFlfRU5FTlRfQlVGX1NJWkUpDQoNCi8qUFPT61dQSFkgIM/7z6Kyv7fW1bzTw7XEUkFNv9W85LTz0KEqLw0KI2RlZmluZSAgICBQU19XUEhZX0VORU5UX0JVRl9TSVpFICAgICAgICAgICAgICAgKDBYODExMCA+PiBDUFVfU0hJRlQpDQojZW5kaWYNCg0KLyrK/b7dsaO7pMf4tPPQoSovDQojZGVmaW5lICAgIFBTX1dQSFlfU0FGRUdVQVJEX1NJWkUgICAgICAgICAgICAgICAoNCA+PiBDUFVfU0hJRlQpDQoNCiNpZiAwDQovKsbVzajJz9DQyv2+3bXExvDKvLXY1rcqLw0KI2RlZmluZSAgICBQU19XUEhZX1VMX0RBVEFfQUREUiAgICAgICAgICAgICAgICAgKFBTX1dQSFlfRVZFTlRfQUREUiArIFBTX1dQSFlfRU5FTlRfQlVGX1NJWkUgK1BTX1dQSFlfU0FGRUdVQVJEX1NJWkUpDQoNCiNkZWZpbmUgICBQU19XUEhZX1VMX1JBQ0hfRFBDSF9BRERSICAgICAgICAgICAgIFBTX1dQSFlfVUxfREFUQV9BRERSDQojZGVmaW5lICAgUFNfV19VTF9SQUNIX0RQQ0hfQlVGX1NJWkUgICAgICAgICAgICAoMiogc2l6ZW9mKFRfeldfUF91bF9kYXRhX2J1ZmZlcikpDQojZW5kaWYNCi8qVVBBv9jWxtDFz6Kyv7fWxvDKvLXY1rcqLw0KI2RlZmluZSAgUFNfV1BIWV9VUEFfQ1RSTF9JTkZPX0hBUlFfTlVNICAgICAgICAgOCAgIC8vYWRkIGJ5IHNoaWRleW91ICy688PmyOe5+9ans9ZNSU1PyrHQ6NKquMSzyTE2DQovLyNkZWZpbmUgIFBTX1dQSFlfVVBBX0NUUkxfSU5GT19BRERSICAgICAgICAgICAgIChQU19XX1VMX1JBQ0hfRFBDSF9CVUZfU0laRSArIFBTX1dQSFlfVUxfUkFDSF9EUENIX0FERFIrIDIqIFBTX1dQSFlfU0FGRUdVQVJEX1NJWkUpICAvL21vZGlmeSBieSBzaGlkZXlvdSwgIGFkZCA0IGJ5dGUgZm9yIHNoYXJlIGhhcnFpZA0KI2RlZmluZSAgUFNfV1BIWV9VUEFfQ1RSTF9JTkZPX0FERFIgICAgICAgICAgICAgKFBTX1dQSFlfQkFTRV9BRERSICsgMiogUFNfV1BIWV9TQUZFR1VBUkRfU0laRSkgIC8vbW9kaWZ5IGJ5IHNoaWRleW91LCAgYWRkIDQgYnl0ZSBmb3Igc2hhcmUgaGFycWlkDQojZGVmaW5lICBQU19XUEhZX1VQQV9PTkVfSEFSUV9DVFJMX0lORk9fQlVGX1NJWkUgICAgIChzaXplb2YoVF96V19QX2hzdXBhX2J1ZmZlcikpDQojZGVmaW5lICBQU19XUEhZX1VQQV9DVFJMX0lORk9fSEFSUTBfQUREUiAgICBQU19XUEhZX1VQQV9DVFJMX0lORk9fQUREUg0KI2RlZmluZSAgUFNfV1BIWV9VUEFfQ1RSTF9JTkZPX0hBUlExX0FERFIgICAgKFBTX1dQSFlfVVBBX0NUUkxfSU5GT19IQVJRMF9BRERSICsgUFNfV1BIWV9VUEFfT05FX0hBUlFfQ1RSTF9JTkZPX0JVRl9TSVpFKQ0KI2RlZmluZSAgUFNfV1BIWV9VUEFfQ1RSTF9JTkZPX0hBUlEyX0FERFIgICAgKFBTX1dQSFlfVVBBX0NUUkxfSU5GT19IQVJRMF9BRERSICsgKDIqUFNfV1BIWV9VUEFfT05FX0hBUlFfQ1RSTF9JTkZPX0JVRl9TSVpFKSkNCiNkZWZpbmUgIFBTX1dQSFlfVVBBX0NUUkxfSU5GT19IQVJRM19BRERSICAgIChQU19XUEhZX1VQQV9DVFJMX0lORk9fSEFSUTBfQUREUiArICgzKlBTX1dQSFlfVVBBX09ORV9IQVJRX0NUUkxfSU5GT19CVUZfU0laRSkpDQojZGVmaW5lICBQU19XUEhZX1VQQV9DVFJMX0lORk9fSEFSUTRfQUREUiAgICAoUFNfV1BIWV9VUEFfQ1RSTF9JTkZPX0hBUlEwX0FERFIgKyAoNCpQU19XUEhZX1VQQV9PTkVfSEFSUV9DVFJMX0lORk9fQlVGX1NJWkUpKQ0KI2RlZmluZSAgUFNfV1BIWV9VUEFfQ1RSTF9JTkZPX0hBUlE1X0FERFIgICAgKFBTX1dQSFlfVVBBX0NUUkxfSU5GT19IQVJRMF9BRERSICsgKDUqUFNfV1BIWV9VUEFfT05FX0hBUlFfQ1RSTF9JTkZPX0JVRl9TSVpFKSkNCiNkZWZpbmUgIFBTX1dQSFlfVVBBX0NUUkxfSU5GT19IQVJRNl9BRERSICAgIChQU19XUEhZX1VQQV9DVFJMX0lORk9fSEFSUTBfQUREUiArICg2KlBTX1dQSFlfVVBBX09ORV9IQVJRX0NUUkxfSU5GT19CVUZfU0laRSkpDQojZGVmaW5lICBQU19XUEhZX1VQQV9DVFJMX0lORk9fSEFSUTdfQUREUiAgICAoUFNfV1BIWV9VUEFfQ1RSTF9JTkZPX0hBUlEwX0FERFIgKyAoNypQU19XUEhZX1VQQV9PTkVfSEFSUV9DVFJMX0lORk9fQlVGX1NJWkUpKQ0KDQojZGVmaW5lICBQU19XUEhZX1VQQV9DVFJMX0lORk9fQlVGX1NJWkUgICAgICAgICgxNiogUFNfV1BIWV9VUEFfT05FX0hBUlFfQ1RSTF9JTkZPX0JVRl9TSVpFKS8qv7zCx7W91qez1k1JTU+1xMfpv/YqLw0KDQoNCi8qzu/A7bLj07K8/lctRVVUUrK/t9ZVUEG05rfFyv2+3bXY1rejuiovDQojaWYgZGVmaW5lZCAoX0NISVBfWlgyODA0KQ0KLyoyODA0xr3MqKO6IDB4NTA0MCAwMDAwOyB3cGh5zOG5qSovDQojZGVmaW5lICBXUEhZX1VQQV9EQVRBX0JBU0VfQUREUiAgICAgICAgICAgICAgICAgICAgICgwWDQwQjAwMDAwID4+IENQVV9TSElGVCkNCiNlbmRpZg0KI2lmIGRlZmluZWQoX0NISVBfWlgyOTc1MjApIHx8IGRlZmluZWQoX0NISVBfWlgyOTc1MjBWMikgIHx8IGRlZmluZWQoX0NISVBfWlgyOTc1MjBWMV8xKQ0KLyo3NTIwxr3MqKO6ICovDQojZGVmaW5lICBXUEhZX1VQQV9EQVRBX0JBU0VfQUREUiAgICAgICAgICAgICAgICAgICAgICgwWEE0MDAwMDAwID4+IENQVV9TSElGVCkNCiNlbmRpZg0KI2lmIGRlZmluZWQgKF9DSElQX1pYMjk3NTIwVjMpIA0KLyo3NTIwVjPGvcyoo7ogKi8NCiNkZWZpbmUgIFdQSFlfVVBBX0RBVEFfQkFTRV9BRERSICAgICAgICAgICAgICAgICAgICAgRERSX0JBU0VfQUREUl9XVVBBX0RBVEEvLygwWDI3NTlBQzAwID4+IENQVV9TSElGVCkNCiNlbmRpZg0KI2lmIGRlZmluZWQgKF9DSElQX1pYMjk3NTUwQSkNCi8qNzU1MEHGvcyoo7oweEEyODAgMDAwMDsqLw0KI2RlZmluZSAgV1BIWV9VUEFfREFUQV9CQVNFX0FERFIgICAgICAgICAgICAgICAgICAgICAoMFhBMjgwMDAwMCA+PiBDUFVfU0hJRlQpDQojZW5kaWYNCiNpZiBkZWZpbmVkIChfQ0hJUF9aWDI5NzUyMFYzKSANCi8qNzUyMFYzxr3MqKO6IFVQQcr9vt3U2kREUsnPKi8NCiNkZWZpbmUgIFdQSFlfVVBBX0RBVEFfSEFSUV9CQVNFX0FERFIgICAgICAgICAgICAgICAgMA0KI2RlZmluZSAgV1BIWV9VUEFfREFUQV9UVEkyX0hBUlExX0JVRl9TSVpFICAgICAgICAgICAoKDBYMTY4KjQpID4+IENQVV9TSElGVCkNCiNkZWZpbmUgIFdQSFlfVVBBX0RBVEFfVFRJMTBfSEFSUTFfQlVGX1NJWkUgICAgICAgICAgKCgwWDJkMCo0KSA+PiBDUFVfU0hJRlQpDQojZWxzZQ0KI2RlZmluZSAgV1BIWV9VUEFfREFUQV9IQVJRX0JBU0VfQUREUiAgICAgICAgICAgICAgICAoMFhiMDAwKjQpDQojZGVmaW5lICBXUEhZX1VQQV9EQVRBX1RUSTJfSEFSUTFfQlVGX1NJWkUgICAgICAgICAgICgwWDE2OCo0KQ0KI2RlZmluZSAgV1BIWV9VUEFfREFUQV9UVEkxMF9IQVJRMV9CVUZfU0laRSAgICAgICAgICAoMFgyZDAqNCkNCiNlbmRpZg0KDQojZGVmaW5lICBXUEhZX1VQQV9EQVRBX1RUSTJfSEFSUTBfQlVGX0FERFIgICAoV1BIWV9VUEFfREFUQV9CQVNFX0FERFIgKyBXUEhZX1VQQV9EQVRBX0hBUlFfQkFTRV9BRERSICkgDQojZGVmaW5lICBXUEhZX1VQQV9EQVRBX1RUSTJfSEFSUTFfQlVGX0FERFIgICAoV1BIWV9VUEFfREFUQV9CQVNFX0FERFIgKyBXUEhZX1VQQV9EQVRBX0hBUlFfQkFTRV9BRERSICsgV1BIWV9VUEFfREFUQV9UVEkyX0hBUlExX0JVRl9TSVpFKSANCiNkZWZpbmUgIFdQSFlfVVBBX0RBVEFfVFRJMl9IQVJRMl9CVUZfQUREUiAgIChXUEhZX1VQQV9EQVRBX0JBU0VfQUREUiArIFdQSFlfVVBBX0RBVEFfSEFSUV9CQVNFX0FERFIgKyAyKldQSFlfVVBBX0RBVEFfVFRJMl9IQVJRMV9CVUZfU0laRSkgDQojZGVmaW5lICBXUEhZX1VQQV9EQVRBX1RUSTJfSEFSUTNfQlVGX0FERFIgICAoV1BIWV9VUEFfREFUQV9CQVNFX0FERFIgKyBXUEhZX1VQQV9EQVRBX0hBUlFfQkFTRV9BRERSICsgMypXUEhZX1VQQV9EQVRBX1RUSTJfSEFSUTFfQlVGX1NJWkUpIA0KI2RlZmluZSAgV1BIWV9VUEFfREFUQV9UVEkyX0hBUlE0X0JVRl9BRERSICAgKFdQSFlfVVBBX0RBVEFfQkFTRV9BRERSICsgV1BIWV9VUEFfREFUQV9IQVJRX0JBU0VfQUREUiArIDQqV1BIWV9VUEFfREFUQV9UVEkyX0hBUlExX0JVRl9TSVpFKSANCiNkZWZpbmUgIFdQSFlfVVBBX0RBVEFfVFRJMl9IQVJRNV9CVUZfQUREUiAgIChXUEhZX1VQQV9EQVRBX0JBU0VfQUREUiArIFdQSFlfVVBBX0RBVEFfSEFSUV9CQVNFX0FERFIgKyA1KldQSFlfVVBBX0RBVEFfVFRJMl9IQVJRMV9CVUZfU0laRSkgDQojZGVmaW5lICBXUEhZX1VQQV9EQVRBX1RUSTJfSEFSUTZfQlVGX0FERFIgICAoV1BIWV9VUEFfREFUQV9CQVNFX0FERFIgKyBXUEhZX1VQQV9EQVRBX0hBUlFfQkFTRV9BRERSICsgNipXUEhZX1VQQV9EQVRBX1RUSTJfSEFSUTFfQlVGX1NJWkUpIA0KI2RlZmluZSAgV1BIWV9VUEFfREFUQV9UVEkyX0hBUlE3X0JVRl9BRERSICAgKFdQSFlfVVBBX0RBVEFfQkFTRV9BRERSICsgV1BIWV9VUEFfREFUQV9IQVJRX0JBU0VfQUREUiArIDcqV1BIWV9VUEFfREFUQV9UVEkyX0hBUlExX0JVRl9TSVpFKSANCg0KI2RlZmluZSAgV1BIWV9VUEFfREFUQV9UVEkxMF9IQVJRMF9CVUZfQUREUiAgIChXUEhZX1VQQV9EQVRBX0JBU0VfQUREUiArIFdQSFlfVVBBX0RBVEFfSEFSUV9CQVNFX0FERFIgKSANCiNkZWZpbmUgIFdQSFlfVVBBX0RBVEFfVFRJMTBfSEFSUTFfQlVGX0FERFIgICAoV1BIWV9VUEFfREFUQV9CQVNFX0FERFIgKyBXUEhZX1VQQV9EQVRBX0hBUlFfQkFTRV9BRERSICsgV1BIWV9VUEFfREFUQV9UVEkxMF9IQVJRMV9CVUZfU0laRSkgDQojZGVmaW5lICBXUEhZX1VQQV9EQVRBX1RUSTEwX0hBUlEyX0JVRl9BRERSICAgKFdQSFlfVVBBX0RBVEFfQkFTRV9BRERSICsgV1BIWV9VUEFfREFUQV9IQVJRX0JBU0VfQUREUiArIDIqV1BIWV9VUEFfREFUQV9UVEkxMF9IQVJRMV9CVUZfU0laRSkgDQojZGVmaW5lICBXUEhZX1VQQV9EQVRBX1RUSTEwX0hBUlEzX0JVRl9BRERSICAgKFdQSFlfVVBBX0RBVEFfQkFTRV9BRERSICsgV1BIWV9VUEFfREFUQV9IQVJRX0JBU0VfQUREUiArIDMqV1BIWV9VUEFfREFUQV9UVEkxMF9IQVJRMV9CVUZfU0laRSkgDQoNCg0KLyrWodbQts/Qxc+isPzAqMr9vt2yv7fWo6zS1Lyw1qG6xaOsUFPT687vwO2y47myz+21xMbky/vQxc+iyOdEUlggR1JBTlQgUkVR0MXPoiovDQojZGVmaW5lICBQU19XUEhZX0ZSQU1FX0RBVEFfSU5GT19BRERSICAgICAgICAgICAgICAoUFNfV1BIWV9VUEFfQ1RSTF9JTkZPX0FERFIgICsgUFNfV1BIWV9VUEFfQ1RSTF9JTkZPX0JVRl9TSVpFICsgUFNfV1BIWV9TQUZFR1VBUkRfU0laRSkNCiNkZWZpbmUgIFBTX1dQSFlfRlJBTUVfREFUQV9CVUZfU0laRSAgICAgICAgICAgICAgICAgKHNpemVvZihUX3pXX1BfZGF0YV9mcmFtZV9pbmZvKSkNCg0KDQovKtahusXP4LnY0MXPoiovDQojZGVmaW5lIFBTX1dQSFlfQ0ZOX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQU19XUEhZX0ZSQU1FX0RBVEFfQlVGX1NJWkUgKyBQU19XUEhZX0ZSQU1FX0RBVEFfSU5GT19BRERSICsgUFNfV1BIWV9TQUZFR1VBUkRfU0laRSkNCiNkZWZpbmUgUFNfV1BIWV9TVUJGUkFNRV9BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoND4+Q1BVX1NISUZUKSArIFBTX1dQSFlfQ0ZOX0FERFIpDQojZGVmaW5lIFBTX1dQSFlfU0ZOX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoND4+Q1BVX1NISUZUKSArIFBTX1dQSFlfU1VCRlJBTUVfQUREUikNCiNkZWZpbmUgUFNfV1BIWV9SVFNGTl9BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoND4+Q1BVX1NISUZUKSArIFBTX1dQSFlfU0ZOX0FERFIpDQojZGVmaW5lIFBTX1dQSFlfUlRDRk5fQUREUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDQ+PkNQVV9TSElGVCkgKyBQU19XUEhZX1JUU0ZOX0FERFIpLyrO78DtsuPDv7j21qHW0LbPyc+xqLXEUlQgz+C52ENGTqOsyKHWtbe2zqcwLTI1NS7Tyc7vwO2y41JUyrG7+sSjMjU2tcO1vSovDQoNCi8q08PT2sr9vt23osvNv9jWxrXEVHJhbnNGbGcuzu/A7bLj0LQsUFO2wSovDQojZGVmaW5lIFBTX1dQSFlfVFJBTlNGTEdfQUREUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDQ+PkNQVV9TSElGVCkgKyBQU19XUEhZX1JUQ0ZOX0FERFIpDQoNCi8q08PT2kRSWL/Y1sa1xEdSQU5UIE1PTklUT1IgUkVRLlBT0LTO78DtsuPWoc23tsEqLw0KI2RlZmluZSBQU19XUEhZX0dSQU5UX01PTklUT1JfUkVRX0FERFIgICAgICAgICgoND4+Q1BVX1NISUZUKSArIFBTX1dQSFlfVFJBTlNGTEdfQUREUiArIFBTX1dQSFlfU0FGRUdVQVJEX1NJWkUpDQojZGVmaW5lIFBTX1dQSFlfR1JBTlRfTU9OSVRPUl9SRVFfQlVGX1NJWkUgIChzaXplb2YoIFRfeldfUF9ncmFudF9tb25pdG9yX3JlcSkpDQoNCg0KLyrH/bavzqy7pLmyz+1ERFK1xFJJTkcgQlVGttPB0NDFz6KjutW808NCVUa6zb/Vz9BCVUYgYWRkIGJ5IHNoaWRleW91Ki8NCg0KLypJUkFNIERMIGZyZWUgYnVmIGFkZHIgIGFkZCBieSBzaGlkZXlvdSovDQojZGVmaW5lIFBTX1dQSFlfRlJFRV9CVUZfQUREUiAgICAoUFNfV1BIWV9HUkFOVF9NT05JVE9SX1JFUV9BRERSICsgUFNfV1BIWV9HUkFOVF9NT05JVE9SX1JFUV9CVUZfU0laRSkNCiNkZWZpbmUgUFNfV1BIWV9GUkVFX0JVRl9TSVpFICAgICgoMio0KlBTX1dQSFlfRExfREFUQV9ERFJfR1JBREVfTlVNICsgIDQqKFBTX1dQSFlfRExfREFUQV9UWVBFX0dSQURFX0JVRl9OVU1fQUxMICsgUFNfV1BIWV9ETF9EQVRBX0REUl9HUkFERV9OVU0pKT4+Q1BVX1NISUZUKQ0KDQojaWYgMA0KLypJUkFNIERMIHNlbmQgYnVmIGFkZHIgIGFkZCBieSBzaGlkZXlvdSovDQojZGVmaW5lIFBTX1dQSFlfU0VORF9CVUZfTlVNICAgIDE1ICAgICAgDQojZGVmaW5lIFBTX1dQSFlfU0VORF9CVUZfQUREUiAgICAoUFNfV1BIWV9GUkVFX0JVRl9BRERSICsgUFNfV1BIWV9GUkVFX0JVRl9TSVpFKQ0KI2RlZmluZSBQU19XUEhZX1NFTkRfQlVGX1NJWkUgICAgKCgyKjQgKyA0ICogKFBTX1dQSFlfU0VORF9CVUZfTlVNICsgMSkpPj5DUFVfU0hJRlQpDQojZW5kaWYNCg0KLypIRk4gYWRkcmVzcyAgYWRkIGJ5IHNoaWRleW91Lm91dHB1dGVkIGJ5IHdwaHkgYW5kIHVzZWQgZm9yIFRNVCAqLw0KI2RlZmluZSBXUEhZX0hGTl9BRERSRVNTICAoUFNfV1BIWV9GUkVFX0JVRl9BRERSICsgUFNfV1BIWV9GUkVFX0JVRl9TSVpFKQ0KI2RlZmluZSBXUEhZX0hGTl9TSVpFICAgICAgICAgKDB4NCA+PkNQVV9TSElGVCkNCiNlbmRpZiAgICAgICAgLy8gWl9QU19XUEhZX0lOVEVSRkFDRV9IDQoNCg0KDQo=