A/MNCkxcrFFjAAAAAAAAAAAJAAAAQAAAAHPOAwAAZAAAWgAAZAEAWgEAZAIAWgIAZAMAZAQAbAMAWgMAZAMAZAQAbAQAWgQAZAMAZAQAbAUAWgUAZAMAZAQAbAYAWgYAZAMAZAQAbAcAWgcAZAMAZAQAbAgAWggAZAMAZAQAbAkAWgkAZAMAZAQAbAoAWgoAZAMAZAQAbAsAWgsAZAMAZAUAbAwAbQ0AWg0AAWQDAGQGAGwOAG0PAFoPAAFkXgBcBABaEABaEQBaEgBaEwBkXwBcAwBaFABaFQBaFgBkYABaFwBkDwCEAABaGABkEACEAABaGQBkEQCEAABaGgBkEgCEAABaGwBkEwCEAABaHABlHQBlBQBkFACDAgByDQFkFQCEAABaHgBuCQBkFgCEAABaHgBlHQBlBQBkFwCDAgByMQFkGACEAABaHwBuCQBkGQCEAABaHwBkGgCEAABaIABkGwCEAABaIQBkHACEAABaIgBkHQCEAABaIwBkHgCEAABaJABkHwCEAABaJQBkIACEAABaJgBkIQCEAABaJwBkIgCEAABaKABkBABkIwCEAQBaKgBlDwBkJABkJQCDAgBaKwBkJgCEAABaLABkJwCEAABaLQBkKACEAABaLgBkKQCEAABaLwBkKgCEAABaMABkKwCEAABaMQBkLACEAABaMgBlDwBkLQBkLgCDAgBaMwBkLwCEAABaNABkMACEAABaNQBkMQCEAABaNgBkBABkMgCEAQBaNwBpAABaOABpAABaOQBkBABkMwCEAQBaOgBkNACEAABaOwBkNQCEAABaPABkNgBlPQBmAQBkNwCEAACDAABZWj4AZDgAZGEAZDkAhAAAgwAAWVo/AGQ6AIQAAFpAAGQ7AIQAAFpBAGQ8AIQAAFpCAGQ9AIQAAFpDAGQ+AGQ/AIQBAFpEAGUPAGRAAGRBAIMCAFpFAGRCAIQAAFpGAGUPAGRDAGREAIMCAFpHAGRFAIQAAFpIAGUPAGRGAGRHAIMCAFpJAGRIAIQAAFpKAGRJAIQAAFpLAGVLAGRKAIQBAFpMAGQEAGQEAGQEAGVNAGRLAIQAAGRMAIQAAGRNAIQAAGVLAGROAIQIAFpOAGVNAGRPAIQAAGRQAIQAAGRRAIQAAGVLAGRSAIQFAFpPAGRTAIQAAFpQAGUPAGRUAGRVAIMCAFpRAGQHAGRWAIQBAFpSAGRXAIQAAFpTAGQHAGRYAIQBAFpUAGQHAGRZAIQBAFpVAGUdAGUDAGRaAIMCAHKmA2UDAGpWAFpXAG4MAGQEAGRbAIQBAFpXAGQHAGRcAIQBAFpYAGQHAGRdAIQBAFpZAGQEAFMoYgAAAHOyBAAAR2V0IHVzZWZ1bCBpbmZvcm1hdGlvbiBmcm9tIGxpdmUgUHl0aG9uIG9iamVjdHMuCgpUaGlzIG1vZHVsZSBlbmNhcHN1bGF0ZXMgdGhlIGludGVyZmFjZSBwcm92aWRlZCBieSB0aGUgaW50ZXJuYWwgc3BlY2lhbAphdHRyaWJ1dGVzIChmdW5jXyosIGNvXyosIGltXyosIHRiXyosIGV0Yy4pIGluIGEgZnJpZW5kbGllciBmYXNoaW9uLgpJdCBhbHNvIHByb3ZpZGVzIHNvbWUgaGVscCBmb3IgZXhhbWluaW5nIHNvdXJjZSBjb2RlIGFuZCBjbGFzcyBsYXlvdXQuCgpIZXJlIGFyZSBzb21lIG9mIHRoZSB1c2VmdWwgZnVuY3Rpb25zIHByb3ZpZGVkIGJ5IHRoaXMgbW9kdWxlOgoKICAgIGlzbW9kdWxlKCksIGlzY2xhc3MoKSwgaXNtZXRob2QoKSwgaXNmdW5jdGlvbigpLCBpc2dlbmVyYXRvcmZ1bmN0aW9uKCksCiAgICAgICAgaXNnZW5lcmF0b3IoKSwgaXN0cmFjZWJhY2soKSwgaXNmcmFtZSgpLCBpc2NvZGUoKSwgaXNidWlsdGluKCksCiAgICAgICAgaXNyb3V0aW5lKCkgLSBjaGVjayBvYmplY3QgdHlwZXMKICAgIGdldG1lbWJlcnMoKSAtIGdldCBtZW1iZXJzIG9mIGFuIG9iamVjdCB0aGF0IHNhdGlzZnkgYSBnaXZlbiBjb25kaXRpb24KCiAgICBnZXRmaWxlKCksIGdldHNvdXJjZWZpbGUoKSwgZ2V0c291cmNlKCkgLSBmaW5kIGFuIG9iamVjdCdzIHNvdXJjZSBjb2RlCiAgICBnZXRkb2MoKSwgZ2V0Y29tbWVudHMoKSAtIGdldCBkb2N1bWVudGF0aW9uIG9uIGFuIG9iamVjdAogICAgZ2V0bW9kdWxlKCkgLSBkZXRlcm1pbmUgdGhlIG1vZHVsZSB0aGF0IGFuIG9iamVjdCBjYW1lIGZyb20KICAgIGdldGNsYXNzdHJlZSgpIC0gYXJyYW5nZSBjbGFzc2VzIHNvIGFzIHRvIHJlcHJlc2VudCB0aGVpciBoaWVyYXJjaHkKCiAgICBnZXRhcmdzcGVjKCksIGdldGFyZ3ZhbHVlcygpLCBnZXRjYWxsYXJncygpIC0gZ2V0IGluZm8gYWJvdXQgZnVuY3Rpb24gYXJndW1lbnRzCiAgICBmb3JtYXRhcmdzcGVjKCksIGZvcm1hdGFyZ3ZhbHVlcygpIC0gZm9ybWF0IGFuIGFyZ3VtZW50IHNwZWMKICAgIGdldG91dGVyZnJhbWVzKCksIGdldGlubmVyZnJhbWVzKCkgLSBnZXQgaW5mbyBhYm91dCBmcmFtZXMKICAgIGN1cnJlbnRmcmFtZSgpIC0gZ2V0IHRoZSBjdXJyZW50IHN0YWNrIGZyYW1lCiAgICBzdGFjaygpLCB0cmFjZSgpIC0gZ2V0IGluZm8gYWJvdXQgZnJhbWVzIG9uIHRoZSBzdGFjayBvciBpbiBhIHRyYWNlYmFjawpzGgAAAEthLVBpbmcgWWVlIDxwaW5nQGxmdy5vcmc+cwoAAAAxIEphbiAyMDAxaf////9OKAEAAAB0CgAAAGF0dHJnZXR0ZXIoAQAAAHQKAAAAbmFtZWR0dXBsZWkBAAAAaQIAAABpBAAAAGkIAAAAaRAAAABpIAAAAGlAAAAAaRQAAABjAQAAAAEAAAADAAAAQwAAAHMQAAAAdAAAfAAAdAEAagIAgwIAUygBAAAAc8EAAABSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGEgbW9kdWxlLgoKICAgIE1vZHVsZSBvYmplY3RzIHByb3ZpZGUgdGhlc2UgYXR0cmlidXRlczoKICAgICAgICBfX2RvY19fICAgICAgICAgZG9jdW1lbnRhdGlvbiBzdHJpbmcKICAgICAgICBfX2ZpbGVfXyAgICAgICAgZmlsZW5hbWUgKG1pc3NpbmcgZm9yIGJ1aWx0LWluIG1vZHVsZXMpKAMAAAB0CgAAAGlzaW5zdGFuY2V0BQAAAHR5cGVzdAoAAABNb2R1bGVUeXBlKAEAAAB0BgAAAG9iamVjdCgAAAAAKAAAAABzTwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2luc3BlY3QucHl0CAAAAGlzbW9kdWxlMwAAAHMCAAAAAAZjAQAAAAEAAAAEAAAAQwAAAHMWAAAAdAAAfAAAdAEAdAIAagMAZgIAgwIAUygBAAAAc8YAAABSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGEgY2xhc3MuCgogICAgQ2xhc3Mgb2JqZWN0cyBwcm92aWRlIHRoZXNlIGF0dHJpYnV0ZXM6CiAgICAgICAgX19kb2NfXyAgICAgICAgIGRvY3VtZW50YXRpb24gc3RyaW5nCiAgICAgICAgX19tb2R1bGVfXyAgICAgIG5hbWUgb2YgbW9kdWxlIGluIHdoaWNoIHRoaXMgY2xhc3Mgd2FzIGRlZmluZWQoBAAAAFICAAAAdAQAAAB0eXBlUgMAAAB0CQAAAENsYXNzVHlwZSgBAAAAUgUAAAAoAAAAACgAAAAAc08AAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9pbnNwZWN0LnB5dAcAAABpc2NsYXNzOwAAAHMCAAAAAAZjAQAAAAEAAAADAAAAQwAAAHMQAAAAdAAAfAAAdAEAagIAgwIAUygBAAAAc6oBAABSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGFuIGluc3RhbmNlIG1ldGhvZC4KCiAgICBJbnN0YW5jZSBtZXRob2Qgb2JqZWN0cyBwcm92aWRlIHRoZXNlIGF0dHJpYnV0ZXM6CiAgICAgICAgX19kb2NfXyAgICAgICAgIGRvY3VtZW50YXRpb24gc3RyaW5nCiAgICAgICAgX19uYW1lX18gICAgICAgIG5hbWUgd2l0aCB3aGljaCB0aGlzIG1ldGhvZCB3YXMgZGVmaW5lZAogICAgICAgIGltX2NsYXNzICAgICAgICBjbGFzcyBvYmplY3QgaW4gd2hpY2ggdGhpcyBtZXRob2QgYmVsb25ncwogICAgICAgIGltX2Z1bmMgICAgICAgICBmdW5jdGlvbiBvYmplY3QgY29udGFpbmluZyBpbXBsZW1lbnRhdGlvbiBvZiBtZXRob2QKICAgICAgICBpbV9zZWxmICAgICAgICAgaW5zdGFuY2UgdG8gd2hpY2ggdGhpcyBtZXRob2QgaXMgYm91bmQsIG9yIE5vbmUoAwAAAFICAAAAUgMAAAB0CgAAAE1ldGhvZFR5cGUoAQAAAFIFAAAAKAAAAAAoAAAAAHNPAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvaW5zcGVjdC5weXQIAAAAaXNtZXRob2RDAAAAcwIAAAAACWMBAAAAAQAAAAYAAABDAAAAc0QAAAB0AAB8AABkAQCDAgBvQwB0AAB8AABkAgCDAgAMb0MAdAEAfAAAgwEADG9DAHQCAHwAAIMBAAxvQwB0AwB8AACDAQAMUygDAAAAc5UCAABSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGEgbWV0aG9kIGRlc2NyaXB0b3IuCgogICAgQnV0IG5vdCBpZiBpc21ldGhvZCgpIG9yIGlzY2xhc3MoKSBvciBpc2Z1bmN0aW9uKCkgYXJlIHRydWUuCgogICAgVGhpcyBpcyBuZXcgaW4gUHl0aG9uIDIuMiwgYW5kLCBmb3IgZXhhbXBsZSwgaXMgdHJ1ZSBvZiBpbnQuX19hZGRfXy4KICAgIEFuIG9iamVjdCBwYXNzaW5nIHRoaXMgdGVzdCBoYXMgYSBfX2dldF9fIGF0dHJpYnV0ZSBidXQgbm90IGEgX19zZXRfXwogICAgYXR0cmlidXRlLCBidXQgYmV5b25kIHRoYXQgdGhlIHNldCBvZiBhdHRyaWJ1dGVzIHZhcmllcy4gIF9fbmFtZV9fIGlzCiAgICB1c3VhbGx5IHNlbnNpYmxlLCBhbmQgX19kb2NfXyBvZnRlbiBpcy4KCiAgICBNZXRob2RzIGltcGxlbWVudGVkIHZpYSBkZXNjcmlwdG9ycyB0aGF0IGFsc28gcGFzcyBvbmUgb2YgdGhlIG90aGVyCiAgICB0ZXN0cyByZXR1cm4gZmFsc2UgZnJvbSB0aGUgaXNtZXRob2RkZXNjcmlwdG9yKCkgdGVzdCwgc2ltcGx5IGJlY2F1c2UKICAgIHRoZSBvdGhlciB0ZXN0cyBwcm9taXNlIG1vcmUgLS0geW91IGNhbiwgZS5nLiwgY291bnQgb24gaGF2aW5nIHRoZQogICAgaW1fZnVuYyBhdHRyaWJ1dGUgKGV0Yykgd2hlbiBhbiBvYmplY3QgcGFzc2VzIGlzbWV0aG9kKCkudAcAAABfX2dldF9fdAcAAABfX3NldF9fKAQAAAB0BwAAAGhhc2F0dHJSCwAAAHQKAAAAaXNmdW5jdGlvblIJAAAAKAEAAABSBQAAACgAAAAAKAAAAABzTwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2luc3BlY3QucHl0EgAAAGlzbWV0aG9kZGVzY3JpcHRvck4AAABzCgAAAAAODwEQAQ0BDQFjAQAAAAEAAAAEAAAAQwAAAHMcAAAAdAAAfAAAZAEAgwIAbxsAdAAAfAAAZAIAgwIAUygDAAAAc4ABAABSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGEgZGF0YSBkZXNjcmlwdG9yLgoKICAgIERhdGEgZGVzY3JpcHRvcnMgaGF2ZSBib3RoIGEgX19nZXRfXyBhbmQgYSBfX3NldF9fIGF0dHJpYnV0ZS4gIEV4YW1wbGVzIGFyZQogICAgcHJvcGVydGllcyAoZGVmaW5lZCBpbiBQeXRob24pIGFuZCBnZXRzZXRzIGFuZCBtZW1iZXJzIChkZWZpbmVkIGluIEMpLgogICAgVHlwaWNhbGx5LCBkYXRhIGRlc2NyaXB0b3JzIHdpbGwgYWxzbyBoYXZlIF9fbmFtZV9fIGFuZCBfX2RvY19fIGF0dHJpYnV0ZXMKICAgIChwcm9wZXJ0aWVzLCBnZXRzZXRzLCBhbmQgbWVtYmVycyBoYXZlIGJvdGggb2YgdGhlc2UgYXR0cmlidXRlcyksIGJ1dCB0aGlzCiAgICBpcyBub3QgZ3VhcmFudGVlZC5SDQAAAFIMAAAAKAEAAABSDgAAACgBAAAAUgUAAAAoAAAAACgAAAAAc08AAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9pbnNwZWN0LnB5dBAAAABpc2RhdGFkZXNjcmlwdG9yYgAAAHMCAAAAAAh0FAAAAE1lbWJlckRlc2NyaXB0b3JUeXBlYwEAAAABAAAAAwAAAEMAAABzEAAAAHQAAHwAAHQBAGoCAIMCAFMoAQAAAHOPAAAAUmV0dXJuIHRydWUgaWYgdGhlIG9iamVjdCBpcyBhIG1lbWJlciBkZXNjcmlwdG9yLgoKICAgICAgICBNZW1iZXIgZGVzY3JpcHRvcnMgYXJlIHNwZWNpYWxpemVkIGRlc2NyaXB0b3JzIGRlZmluZWQgaW4gZXh0ZW5zaW9uCiAgICAgICAgbW9kdWxlcy4oAwAAAFICAAAAUgMAAABSEgAAACgBAAAAUgUAAAAoAAAAACgAAAAAc08AAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9pbnNwZWN0LnB5dBIAAABpc21lbWJlcmRlc2NyaXB0b3JuAAAAcwIAAAAABWMBAAAAAQAAAAEAAABDAAAAcwQAAAB0AABTKAEAAABzjwAAAFJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaXMgYSBtZW1iZXIgZGVzY3JpcHRvci4KCiAgICAgICAgTWVtYmVyIGRlc2NyaXB0b3JzIGFyZSBzcGVjaWFsaXplZCBkZXNjcmlwdG9ycyBkZWZpbmVkIGluIGV4dGVuc2lvbgogICAgICAgIG1vZHVsZXMuKAEAAAB0BQAAAEZhbHNlKAEAAABSBQAAACgAAAAAKAAAAABzTwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2luc3BlY3QucHlSEwAAAHYAAABzAgAAAAAFdBQAAABHZXRTZXREZXNjcmlwdG9yVHlwZWMBAAAAAQAAAAMAAABDAAAAcxAAAAB0AAB8AAB0AQBqAgCDAgBTKAEAAABzjwAAAFJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaXMgYSBnZXRzZXQgZGVzY3JpcHRvci4KCiAgICAgICAgZ2V0c2V0IGRlc2NyaXB0b3JzIGFyZSBzcGVjaWFsaXplZCBkZXNjcmlwdG9ycyBkZWZpbmVkIGluIGV4dGVuc2lvbgogICAgICAgIG1vZHVsZXMuKAMAAABSAgAAAFIDAAAAUhUAAAAoAQAAAFIFAAAAKAAAAAAoAAAAAHNPAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvaW5zcGVjdC5weXQSAAAAaXNnZXRzZXRkZXNjcmlwdG9yfwAAAHMCAAAAAAVjAQAAAAEAAAABAAAAQwAAAHMEAAAAdAAAUygBAAAAc48AAABSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGEgZ2V0c2V0IGRlc2NyaXB0b3IuCgogICAgICAgIGdldHNldCBkZXNjcmlwdG9ycyBhcmUgc3BlY2lhbGl6ZWQgZGVzY3JpcHRvcnMgZGVmaW5lZCBpbiBleHRlbnNpb24KICAgICAgICBtb2R1bGVzLigBAAAAUhQAAAAoAQAAAFIFAAAAKAAAAAAoAAAAAHNPAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvaW5zcGVjdC5weVIWAAAAhwAAAHMCAAAAAAVjAQAAAAEAAAADAAAAQwAAAHMQAAAAdAAAfAAAdAEAagIAgwIAUygBAAAAcwECAABSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGEgdXNlci1kZWZpbmVkIGZ1bmN0aW9uLgoKICAgIEZ1bmN0aW9uIG9iamVjdHMgcHJvdmlkZSB0aGVzZSBhdHRyaWJ1dGVzOgogICAgICAgIF9fZG9jX18gICAgICAgICBkb2N1bWVudGF0aW9uIHN0cmluZwogICAgICAgIF9fbmFtZV9fICAgICAgICBuYW1lIHdpdGggd2hpY2ggdGhpcyBmdW5jdGlvbiB3YXMgZGVmaW5lZAogICAgICAgIGZ1bmNfY29kZSAgICAgICBjb2RlIG9iamVjdCBjb250YWluaW5nIGNvbXBpbGVkIGZ1bmN0aW9uIGJ5dGVjb2RlCiAgICAgICAgZnVuY19kZWZhdWx0cyAgIHR1cGxlIG9mIGFueSBkZWZhdWx0IHZhbHVlcyBmb3IgYXJndW1lbnRzCiAgICAgICAgZnVuY19kb2MgICAgICAgIChzYW1lIGFzIF9fZG9jX18pCiAgICAgICAgZnVuY19nbG9iYWxzICAgIGdsb2JhbCBuYW1lc3BhY2UgaW4gd2hpY2ggdGhpcyBmdW5jdGlvbiB3YXMgZGVmaW5lZAogICAgICAgIGZ1bmNfbmFtZSAgICAgICAoc2FtZSBhcyBfX25hbWVfXykoAwAAAFICAAAAUgMAAAB0DAAAAEZ1bmN0aW9uVHlwZSgBAAAAUgUAAAAoAAAAACgAAAAAc08AAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9pbnNwZWN0LnB5Ug8AAACOAAAAcwIAAAAAC2MBAAAAAQAAAAUAAABDAAAAcywAAAB0AAB0AQB8AACDAQBzGwB0AgB8AACDAQBvKAB8AABqAwBqBAB0BQBAgwEAUygBAAAAc7gAAABSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGEgdXNlci1kZWZpbmVkIGdlbmVyYXRvciBmdW5jdGlvbi4KCiAgICBHZW5lcmF0b3IgZnVuY3Rpb24gb2JqZWN0cyBwcm92aWRlcyBzYW1lIGF0dHJpYnV0ZXMgYXMgZnVuY3Rpb25zLgoKICAgIFNlZSBoZWxwKGlzZnVuY3Rpb24pIGZvciBhdHRyaWJ1dGVzIGxpc3RpbmcuKAYAAAB0BAAAAGJvb2xSDwAAAFILAAAAdAkAAABmdW5jX2NvZGV0CAAAAGNvX2ZsYWdzdAwAAABDT19HRU5FUkFUT1IoAQAAAFIFAAAAKAAAAAAoAAAAAHNPAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvaW5zcGVjdC5weXQTAAAAaXNnZW5lcmF0b3JmdW5jdGlvbpsAAABzBAAAAAAGGwFjAQAAAAEAAAADAAAAQwAAAHMQAAAAdAAAfAAAdAEAagIAgwIAUygBAAAAcyADAABSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGEgZ2VuZXJhdG9yLgoKICAgIEdlbmVyYXRvciBvYmplY3RzIHByb3ZpZGUgdGhlc2UgYXR0cmlidXRlczoKICAgICAgICBfX2l0ZXJfXyAgICAgICAgZGVmaW5lZCB0byBzdXBwb3J0IGludGVyYXRpb24gb3ZlciBjb250YWluZXIKICAgICAgICBjbG9zZSAgICAgICAgICAgcmFpc2VzIGEgbmV3IEdlbmVyYXRvckV4aXQgZXhjZXB0aW9uIGluc2lkZSB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yIHRvIHRlcm1pbmF0ZSB0aGUgaXRlcmF0aW9uCiAgICAgICAgZ2lfY29kZSAgICAgICAgIGNvZGUgb2JqZWN0CiAgICAgICAgZ2lfZnJhbWUgICAgICAgIGZyYW1lIG9iamVjdCBvciBwb3NzaWJseSBOb25lIG9uY2UgdGhlIGdlbmVyYXRvciBoYXMKICAgICAgICAgICAgICAgICAgICAgICAgYmVlbiBleGhhdXN0ZWQKICAgICAgICBnaV9ydW5uaW5nICAgICAgc2V0IHRvIDEgd2hlbiBnZW5lcmF0b3IgaXMgZXhlY3V0aW5nLCAwIG90aGVyd2lzZQogICAgICAgIG5leHQgICAgICAgICAgICByZXR1cm4gdGhlIG5leHQgaXRlbSBmcm9tIHRoZSBjb250YWluZXIKICAgICAgICBzZW5kICAgICAgICAgICAgcmVzdW1lcyB0aGUgZ2VuZXJhdG9yIGFuZCAic2VuZHMiIGEgdmFsdWUgdGhhdCBiZWNvbWVzCiAgICAgICAgICAgICAgICAgICAgICAgIHRoZSByZXN1bHQgb2YgdGhlIGN1cnJlbnQgeWllbGQtZXhwcmVzc2lvbgogICAgICAgIHRocm93ICAgICAgICAgICB1c2VkIHRvIHJhaXNlIGFuIGV4Y2VwdGlvbiBpbnNpZGUgdGhlIGdlbmVyYXRvcigDAAAAUgIAAABSAwAAAHQNAAAAR2VuZXJhdG9yVHlwZSgBAAAAUgUAAAAoAAAAACgAAAAAc08AAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9pbnNwZWN0LnB5dAsAAABpc2dlbmVyYXRvcqQAAABzAgAAAAAPYwEAAAABAAAAAwAAAEMAAABzEAAAAHQAAHwAAHQBAGoCAIMCAFMoAQAAAHNiAQAAUmV0dXJuIHRydWUgaWYgdGhlIG9iamVjdCBpcyBhIHRyYWNlYmFjay4KCiAgICBUcmFjZWJhY2sgb2JqZWN0cyBwcm92aWRlIHRoZXNlIGF0dHJpYnV0ZXM6CiAgICAgICAgdGJfZnJhbWUgICAgICAgIGZyYW1lIG9iamVjdCBhdCB0aGlzIGxldmVsCiAgICAgICAgdGJfbGFzdGkgICAgICAgIGluZGV4IG9mIGxhc3QgYXR0ZW1wdGVkIGluc3RydWN0aW9uIGluIGJ5dGVjb2RlCiAgICAgICAgdGJfbGluZW5vICAgICAgIGN1cnJlbnQgbGluZSBudW1iZXIgaW4gUHl0aG9uIHNvdXJjZSBjb2RlCiAgICAgICAgdGJfbmV4dCAgICAgICAgIG5leHQgaW5uZXIgdHJhY2ViYWNrIG9iamVjdCAoY2FsbGVkIGJ5IHRoaXMgbGV2ZWwpKAMAAABSAgAAAFIDAAAAdA0AAABUcmFjZWJhY2tUeXBlKAEAAABSBQAAACgAAAAAKAAAAABzTwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2luc3BlY3QucHl0CwAAAGlzdHJhY2ViYWNrtQAAAHMCAAAAAAhjAQAAAAEAAAADAAAAQwAAAHMQAAAAdAAAfAAAdAEAagIAgwIAUygBAAAAc3wDAABSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGEgZnJhbWUgb2JqZWN0LgoKICAgIEZyYW1lIG9iamVjdHMgcHJvdmlkZSB0aGVzZSBhdHRyaWJ1dGVzOgogICAgICAgIGZfYmFjayAgICAgICAgICBuZXh0IG91dGVyIGZyYW1lIG9iamVjdCAodGhpcyBmcmFtZSdzIGNhbGxlcikKICAgICAgICBmX2J1aWx0aW5zICAgICAgYnVpbHQtaW4gbmFtZXNwYWNlIHNlZW4gYnkgdGhpcyBmcmFtZQogICAgICAgIGZfY29kZSAgICAgICAgICBjb2RlIG9iamVjdCBiZWluZyBleGVjdXRlZCBpbiB0aGlzIGZyYW1lCiAgICAgICAgZl9leGNfdHJhY2ViYWNrIHRyYWNlYmFjayBpZiByYWlzZWQgaW4gdGhpcyBmcmFtZSwgb3IgTm9uZQogICAgICAgIGZfZXhjX3R5cGUgICAgICBleGNlcHRpb24gdHlwZSBpZiByYWlzZWQgaW4gdGhpcyBmcmFtZSwgb3IgTm9uZQogICAgICAgIGZfZXhjX3ZhbHVlICAgICBleGNlcHRpb24gdmFsdWUgaWYgcmFpc2VkIGluIHRoaXMgZnJhbWUsIG9yIE5vbmUKICAgICAgICBmX2dsb2JhbHMgICAgICAgZ2xvYmFsIG5hbWVzcGFjZSBzZWVuIGJ5IHRoaXMgZnJhbWUKICAgICAgICBmX2xhc3RpICAgICAgICAgaW5kZXggb2YgbGFzdCBhdHRlbXB0ZWQgaW5zdHJ1Y3Rpb24gaW4gYnl0ZWNvZGUKICAgICAgICBmX2xpbmVubyAgICAgICAgY3VycmVudCBsaW5lIG51bWJlciBpbiBQeXRob24gc291cmNlIGNvZGUKICAgICAgICBmX2xvY2FscyAgICAgICAgbG9jYWwgbmFtZXNwYWNlIHNlZW4gYnkgdGhpcyBmcmFtZQogICAgICAgIGZfcmVzdHJpY3RlZCAgICAwIG9yIDEgaWYgZnJhbWUgaXMgaW4gcmVzdHJpY3RlZCBleGVjdXRpb24gbW9kZQogICAgICAgIGZfdHJhY2UgICAgICAgICB0cmFjaW5nIGZ1bmN0aW9uIGZvciB0aGlzIGZyYW1lLCBvciBOb25lKAMAAABSAgAAAFIDAAAAdAkAAABGcmFtZVR5cGUoAQAAAFIFAAAAKAAAAAAoAAAAAHNPAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvaW5zcGVjdC5weXQHAAAAaXNmcmFtZb8AAABzAgAAAAAQYwEAAAABAAAAAwAAAEMAAABzEAAAAHQAAHwAAHQBAGoCAIMCAFMoAQAAAHN1AwAAUmV0dXJuIHRydWUgaWYgdGhlIG9iamVjdCBpcyBhIGNvZGUgb2JqZWN0LgoKICAgIENvZGUgb2JqZWN0cyBwcm92aWRlIHRoZXNlIGF0dHJpYnV0ZXM6CiAgICAgICAgY29fYXJnY291bnQgICAgIG51bWJlciBvZiBhcmd1bWVudHMgKG5vdCBpbmNsdWRpbmcgKiBvciAqKiBhcmdzKQogICAgICAgIGNvX2NvZGUgICAgICAgICBzdHJpbmcgb2YgcmF3IGNvbXBpbGVkIGJ5dGVjb2RlCiAgICAgICAgY29fY29uc3RzICAgICAgIHR1cGxlIG9mIGNvbnN0YW50cyB1c2VkIGluIHRoZSBieXRlY29kZQogICAgICAgIGNvX2ZpbGVuYW1lICAgICBuYW1lIG9mIGZpbGUgaW4gd2hpY2ggdGhpcyBjb2RlIG9iamVjdCB3YXMgY3JlYXRlZAogICAgICAgIGNvX2ZpcnN0bGluZW5vICBudW1iZXIgb2YgZmlyc3QgbGluZSBpbiBQeXRob24gc291cmNlIGNvZGUKICAgICAgICBjb19mbGFncyAgICAgICAgYml0bWFwOiAxPW9wdGltaXplZCB8IDI9bmV3bG9jYWxzIHwgND0qYXJnIHwgOD0qKmFyZwogICAgICAgIGNvX2xub3RhYiAgICAgICBlbmNvZGVkIG1hcHBpbmcgb2YgbGluZSBudW1iZXJzIHRvIGJ5dGVjb2RlIGluZGljZXMKICAgICAgICBjb19uYW1lICAgICAgICAgbmFtZSB3aXRoIHdoaWNoIHRoaXMgY29kZSBvYmplY3Qgd2FzIGRlZmluZWQKICAgICAgICBjb19uYW1lcyAgICAgICAgdHVwbGUgb2YgbmFtZXMgb2YgbG9jYWwgdmFyaWFibGVzCiAgICAgICAgY29fbmxvY2FscyAgICAgIG51bWJlciBvZiBsb2NhbCB2YXJpYWJsZXMKICAgICAgICBjb19zdGFja3NpemUgICAgdmlydHVhbCBtYWNoaW5lIHN0YWNrIHNwYWNlIHJlcXVpcmVkCiAgICAgICAgY29fdmFybmFtZXMgICAgIHR1cGxlIG9mIG5hbWVzIG9mIGFyZ3VtZW50cyBhbmQgbG9jYWwgdmFyaWFibGVzKAMAAABSAgAAAFIDAAAAdAgAAABDb2RlVHlwZSgBAAAAUgUAAAAoAAAAACgAAAAAc08AAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9pbnNwZWN0LnB5dAYAAABpc2NvZGXRAAAAcwIA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AHhcAHwAAGYBAHwBABdEXSwAfQYAfAQAfAYAagMAawYAcj8AfAYAagMAfAQAGX0HAHwGAH0FAFBxPwBxPwBXdAQAfAAAfAQAgwIAfQcAdAQAfAcAZAEAfAUAgwMAfQUAdAUAfAcAdAYAgwIAcqgAZAIAfQgAbpYAdAUAfAcAdAcAgwIAcsAAZAMAfQgAbn4AdAUAfAcAdAgAgwIActgAZAQAfQgAbmYAdAkAfAcAgwEAcu0AZAUAfQgAblEAdAoAfAcAgwEAcgIBZAYAfQgAbjwAdAQAfAAAfAQAgwIAfQkAdAsAfAkAgwEAcykBdAkAfAkAgwEAcjIBZAUAfQgAbgYAZAYAfQgAfAkAfQcAfAMAagwAdA0AfAQAfAgAfAUAfAcAgwQAgwEAAXElAFd8AwBTKAgAAABzgQMAAFJldHVybiBsaXN0IG9mIGF0dHJpYnV0ZS1kZXNjcmlwdG9yIHR1cGxlcy4KCiAgICBGb3IgZWFjaCBuYW1lIGluIGRpcihjbHMpLCB0aGUgcmV0dXJuIGxpc3QgY29udGFpbnMgYSA0LXR1cGxlCiAgICB3aXRoIHRoZXNlIGVsZW1lbnRzOgoKICAgICAgICAwLiBUaGUgbmFtZSAoYSBzdHJpbmcpLgoKICAgICAgICAxLiBUaGUga2luZCBvZiBhdHRyaWJ1dGUgdGhpcyBpcywgb25lIG9mIHRoZXNlIHN0cmluZ3M6CiAgICAgICAgICAgICAgICdjbGFzcyBtZXRob2QnICAgIGNyZWF0ZWQgdmlhIGNsYXNzbWV0aG9kKCkKICAgICAgICAgICAgICAgJ3N0YXRpYyBtZXRob2QnICAgY3JlYXRlZCB2aWEgc3RhdGljbWV0aG9kKCkKICAgICAgICAgICAgICAgJ3Byb3BlcnR5JyAgICAgICAgY3JlYXRlZCB2aWEgcHJvcGVydHkoKQogICAgICAgICAgICAgICAnbWV0aG9kJyAgICAgICAgICBhbnkgb3RoZXIgZmxhdm9yIG9mIG1ldGhvZAogICAgICAgICAgICAgICAnZGF0YScgICAgICAgICAgICBub3QgYSBtZXRob2QKCiAgICAgICAgMi4gVGhlIGNsYXNzIHdoaWNoIGRlZmluZWQgdGhpcyBhdHRyaWJ1dGUgKGEgY2xhc3MpLgoKICAgICAg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b3RoZXIgZm91ciBhcmd1bWVudHMgYXJlIHRoZSBjb3JyZXNwb25kaW5nIG9wdGlvbmFsIGZvcm1hdHRpbmcgZnVuY3Rpb25zCiAgICB0aGF0IGFyZSBjYWxsZWQgdG8gdHVybiBuYW1lcyBhbmQgdmFsdWVzIGludG8gc3RyaW5ncy4gIFRoZSBuaW50aAogICAgYXJndW1lbnQgaXMgYW4gb3B0aW9uYWwgZnVuY3Rpb24gdG8gZm9ybWF0IHRoZSBzZXF1ZW5jZSBvZiBhcmd1bWVudHMuUv8AAABzAgAAACwgUgABAABOKAcAAABSUQAAAHQJAAAAZW51bWVyYXRlUgMBAABSLgAAAFI7AAAAUk8AAABSYgAAACgOAAAAUu0AAABS9AAAAFL1AAAAdAgAAABkZWZhdWx0c3QJAAAAZm9ybWF0YXJndA0AAABmb3JtYXR2YXJhcmdzdAsAAABmb3JtYXR2YXJrd3QLAAAAZm9ybWF0dmFsdWVSYgAAAHQFAAAAc3BlY3N0DAAAAGZpcnN0ZGVmYXVsdFJnAAAAdAMAAABhcmd0BAAAAHNwZWMoAAAAACgAAAAAc08AAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9pbnNwZWN0LnB5dA0AAABmb3JtYXRhcmdzcGVjTAMAAHMaAAAAAAwGAQYBGQEZARIBEgEbAREBDAEWAQwBFgFjAQAAAAEAAAACAAAAQwAAAHMIAAAAZAEAfAAAF1MoAgAAAE5SBwEAACgAAAAAKAEAAABSQwAAACgAAAAAKAAAAABzTwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2luc3BlY3QucHlSdQAAAGgDAABzAAAAAGMBAAAAAQAAAAIAAABDAAAAcwgAAABkAQB8AAAXUygCAAAATnMCAAAAKiooAAAAACgBAAAAUkMAAAAoAAAAACgAAAAAc08AAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9pbnNwZWN0LnB5UnUA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