A/MNCllcrFFjAAAAAAAAAAADAAAAQAAAAHNGAAAAZAAAWgAAZAEAZAIAbAEAbQIAWgIAAWQDAGUDAGYBAGQEAIQAAIMAAFlaBABkBQBlBQBmAQBkBgCEAACDAABZWgYAZAcAUygIAAAAc8gAAABQYXJzZXIgZW5naW5lIGZvciB0aGUgZ3JhbW1hciB0YWJsZXMgZ2VuZXJhdGVkIGJ5IHBnZW4uCgpUaGUgZ3JhbW1hciB0YWJsZSBtdXN0IGJlIGxvYWRlZCBmaXJzdC4KClNlZSBQYXJzZXIvcGFyc2VyLmMgaW4gdGhlIFB5dGhvbiBkaXN0cmlidXRpb24gZm9yIGFkZGl0aW9uYWwgaW5mbyBvbgpob3cgdGhpcyBwYXJzaW5nIGVuZ2luZSB3b3Jrcy4KCmkBAAAAKAEAAAB0BQAAAHRva2VudAoAAABQYXJzZUVycm9yYwAAAAAAAAAAAQAAAEIAAABzFwAAAGUAAFoBAGQAAFoCAGQBAIQAAFoDAFJTKAIAAABzKAAAAEV4Y2VwdGlvbiB0byBzaWduYWwgdGhlIHBhcnNlciBpcyBzdHVjay5jBQAAAAUAAAAHAAAAQwAAAHNIAAAAdAAAagEAfAAAZAEAfAEAfAIAfAMAfAQAZgQAFoMCAAF8AQB8AABfAgB8AgB8AABfAwB8AwB8AABfBAB8BAB8AABfBQBkAABTKAIAAABOcyEAAAAlczogdHlwZT0lciwgdmFsdWU9JXIsIGNvbnRleHQ9JXIoBgAAAHQJAAAARXhjZXB0aW9udAgAAABfX2luaXRfX3QDAAAAbXNndAQAAAB0eXBldAUAAAB2YWx1ZXQHAAAAY29udGV4dCgFAAAAdAQAAABzZWxmUgQAAABSBQAAAFIGAAAAUgcAAAAoAAAAACgAAAAAc1sAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9saWIydG8zL3BnZW4yL3BhcnNlLnB5UgMAAAATAAAAcwwAAAAAAQwBFAEJAQkBCQEoBAAAAHQIAAAAX19uYW1lX190CgAAAF9fbW9kdWxlX190BwAAAF9fZG9jX19SAwAAACgAAAAAKAAAAAAoAAAAAHNbAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvbGliMnRvMy9wZ2VuMi9wYXJzZS5weVIBAAAAEAAAAHMEAAAABgEGAnQGAAAAUGFyc2VyYwAAAAAAAAAAAgAAAEIAAABzUwAAAGUAAFoBAGQAAFoCAGQIAGQBAIQBAFoEAGQIAGQCAIQBAFoFAGQDAIQAAFoGAGQEAIQAAFoHAGQFAIQAAFoIAGQGAIQAAFoJAGQHAIQAAFoKAFJTKAkAAABzNQQAAFBhcnNlciBlbmdpbmUuCgogICAgVGhlIHByb3BlciB1c2FnZSBzZXF1ZW5jZSBpczoKCiAgICBwID0gUGFyc2VyKGdyYW1tYXIsIFtjb252ZXJ0ZXJdKSAgIyBjcmVhdGUgaW5zdGFuY2UKICAgIHAuc2V0dXAoW3N0YXJ0XSkgICAgICAgICAgICAgICAgICAjIHByZXBhcmUgZm9yIHBhcnNpbmcKICAgIDxmb3IgZWFjaCBpbnB1dCB0b2tlbj46CiAgICAgICAgaWYgcC5hZGR0b2tlbiguLi4pOiAgICAgICAgICAgIyBwYXJzZSBhIHRva2VuOyBtYXkgcmFpc2UgUGFyc2VFcnJvcgogICAgICAgICAgICBicmVhawogICAgcm9vdCA9IHAucm9vdG5vZGUgICAgICAgICAgICAgICAgICMgcm9vdCBvZiBhYnN0cmFjdCBzeW50YXggdHJlZQoKICAgIEEgUGFyc2VyIGluc3RhbmNlIG1heSBiZSByZXVzZWQgYnkgY2FsbGluZyBzZXR1cCgpIHJlcGVhdGVkbHkuCgogICAgQSBQYXJzZXIgaW5zdGFuY2UgY29udGFpbnMgc3RhdGUgcGVydGFpbmluZyB0byB0aGUgY3VycmVudCB0b2tlbgogICAgc2VxdWVuY2UsIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgY29uY3VycmVudGx5IGJ5IGRpZmZlcmVudCB0aHJlYWRzCiAgICB0byBwYXJzZSBzZXBhcmF0ZSB0b2tlbiBzZXF1ZW5jZXMuCgogICAgU2VlIGRyaXZlci5weSBmb3IgaG93IHRvIGdldCBpbnB1dCB0b2tlbnMgYnkgdG9rZW5pemluZyBhIGZpbGUgb3IKICAgIHN0cmluZy4KCiAgICBQYXJzaW5nIGlzIGNvbXBsZXRlIHdoZW4gYWRkdG9rZW4oKSByZXR1cm5zIFRydWU7IHRoZSByb290IG9mIHRoZQogICAgYWJzdHJhY3Qgc3ludGF4IHRyZWUgY2FuIHRoZW4gYmUgcmV0cmlldmVkIGZyb20gdGhlIHJvb3Rub2RlCiAgICBpbnN0YW5jZSB2YXJpYWJsZS4gIFdoZW4gYSBzeW50YXggZXJyb3Igb2NjdXJzLCBhZGR0b2tlbigpIHJhaXNlcwogICAgdGhlIFBhcnNlRXJyb3IgZXhjZXB0aW9uLiAgVGhlcmUgaXMgbm8gZXJyb3IgcmVjb3Zlcnk7IHRoZSBwYXJzZXIKICAgIGNhbm5vdCBiZSB1c2VkIGFmdGVyIGEgc3ludGF4IGVycm9yIHdhcyByZXBvcnRlZCAoYnV0IGl0IGNhbiBiZQogICAgcmVpbml0aWFsaXplZCBieSBjYWxsaW5nIHNldHVwKCkpLgoKICAgIGMDAAAAAwAAAAMAAABDAAAAcx8AAAB8AQB8AABfAAB8AgBwFQBkAQCEAAB8AABfAQBkAgBTKAMAAABz2gQAAENvbnN0cnVjdG9yLgoKICAgICAgICBUaGUgZ3JhbW1hciBhcmd1bWVudCBpcyBhIGdyYW1tYXIuR3JhbW1hciBpbnN0YW5jZTsgc2VlIHRoZQogICAgICAgIGdyYW1tYXIgbW9kdWxlIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKICAgICAgICBUaGUgcGFyc2VyIGlzIG5vdCByZWFkeSB5ZXQgZm9yIHBhcnNpbmc7IHlvdSBtdXN0IGNhbGwgdGhlCiAgICAgICAgc2V0dXAoKSBtZXRob2QgdG8gZ2V0IGl0IHN0YXJ0ZWQuCgogICAgICAgIFRoZSBvcHRpb25hbCBjb252ZXJ0IGFyZ3VtZW50IGlzIGEgZnVuY3Rpb24gbWFwcGluZyBjb25jcmV0ZQogICAgICAgIHN5bnRheCB0cmVlIG5vZGVzIHRvIGFic3RyYWN0IHN5bnRheCB0cmVlIG5vZGVzLiAgSWYgbm90CiAgICAgICAgZ2l2ZW4sIG5vIGNvbnZlcnNpb24gaXMgZG9uZSBhbmQgdGhlIHN5bnRheCB0cmVlIHByb2R1Y2VkIGlzCiAgICAgICAgdGhlIGNvbmNyZXRlIHN5bnRheCB0cmVlLiAgSWYgZ2l2ZW4sIGl0IG11c3QgYmUgYSBmdW5jdGlvbiBvZgogICAgICAgIHR3byBhcmd1bWVudHMsIHRoZSBmaXJzdCBiZWluZyB0aGUgZ3JhbW1hciAoYSBncmFtbWFyLkdyYW1tYXIKICAgICAgICBpbnN0YW5jZSksIGFuZCB0aGUgc2Vjb25kIGJlaW5nIHRoZSBjb25jcmV0ZSBzeW50YXggdHJlZSBub2RlCiAgICAgICAgdG8gYmUgY29udmVydGVkLiAgVGhlIHN5bnRheCB0cmVlIGlzIGNvbnZlcnRlZCBmcm9tIHRoZSBib3R0b20KICAgICAgICB1cC4KCiAgICAgICAgQSBjb25jcmV0ZSBzeW50YXggdHJlZSBub2RlIGlzIGEgKHR5cGUsIHZhbHVlLCBjb250ZXh0LCBub2RlcykKICAgICAgICB0dXBsZSwgd2hlcmUgdHlwZSBpcyB0aGUgbm9kZSB0eXBlIChhIHRva2VuIG9yIHN5bWJvbCBudW1iZXIpLAogICAgICAgIHZhbHVlIGlzIE5vbmUgZm9yIHN5bWJvbHMgYW5kIGEgc3RyaW5nIGZvciB0b2tlbnMsIGNvbnRleHQgaXMKICAgICAgICBOb25lIG9yIGFuIG9wYXF1ZSB2YWx1ZSB1c2VkIGZvciBlcnJvciByZXBvcnRpbmcgKHR5cGljYWxseSBhCiAgICAgICAgKGxpbmVubywgb2Zmc2V0KSBwYWlyKSwgYW5kIG5vZGVzIGlzIGEgbGlzdCBvZiBjaGlsZHJlbiBmb3IKICAgICAgICBzeW1ib2xzLCBhbmQgTm9uZSBmb3IgdG9rZW5zLgoKICAgICAgICBBbiBhYnN0cmFjdCBzeW50YXggdHJlZSBub2RlIG1heSBiZSBhbnl0aGluZzsgdGhpcyBpcyBlbnRpcmVseQogICAgICAgIHVwIHRvIHRoZSBjb252ZXJ0ZXIgZnVuY3Rpb24uCgogICAgICAgIGMCAAAAAgAAAAEAAABTAAAAcwQAAAB8AQBTKAEAAABOKAAAAAAoAgAAAHQHAAAAZ3JhbW1hcnQEAAAAbm9kZSgAAAAAKAAAAABzWwAAAC90bXAvbmRrLVVzZXIvYnVpbGRo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cGRmYXQIAAAAcG9wc3RhdGV0BwAAAHBvcG5vZGVSGAAAAFIjAAAAUiQAAABSDgAAACgAAAAAKAAAAABzWwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2xpYjJ0bzMvcGdlbjIvcGFyc2UucHlSHwAAAL8AAABzEAAAAAACGAEVAQwBCQEWARQCCQFOKAsAAABSCQAAAFIKAAAAUgsAAABSEQAAAFIDAAAAUhoAAABSLwAAAFIbAAAAUh4AAABSIQAAAFIfAAAAKAAAAAAoAAAAACgAAAAAc1sAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9saWIydG8zL3BnZW4yL3BhcnNlLnB5UgwAAAAbAAAAcxAAAAAGHAYCDCAMGAkwCQ4JCQkHTigHAAAAUgsAAAB0AAAAAFIAAAAAUgIAAABSAQAAAHQGAAAAb2JqZWN0UgwAAAAoAAAAACgAAAAAKAAAAABzWwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2xpYjJ0bzMvcGdlbjIvcGFyc2UucHl0CAAAADxtb2R1bGU+CwAAAHMGAAAABgMQAhYL