bw0NCgAAAACiNI1jn0YAAOMAAAAAAAAAAAAAAAAAAAAAAwAAAEAAAABzYgAAAGQAWgBkAWQCbAFaAWQBZAJsAloCZAFkAmwDWgNkAWQDbARtBVoFAQBkAWQEbAZtB1oHbQhaCG0JWgltCloKbQtaCwEAZAFkBWwGbQxaDAEARwBkBmQHhABkB4MCWg1kAlMAKQh6dGRpc3R1dGlscy5jbWQKClByb3ZpZGVzIHRoZSBDb21tYW5kIGNsYXNzLCB0aGUgYmFzZSBjbGFzcyBmb3IgdGhlIGNvbW1hbmQgY2xhc3NlcwppbiB0aGUgZGlzdHV0aWxzLmNvbW1hbmQgcGFja2FnZS4K6QAAAABOKQHaFERpc3R1dGlsc09wdGlvbkVycm9yKQXaBHV0aWzaCGRpcl91dGls2glmaWxlX3V0aWzaDGFyY2hpdmVfdXRpbNoIZGVwX3V0aWypAdoDbG9nYwAAAAAAAAAAAAAAAAAAAAADAAAAQAAAAHMyAQAAZQBaAWQAWgJkAVoDZwBaBGQCZAOEAFoFZARkBYQAWgZkBmQHhABaB2QIZAmEAFoIZApkC4QAWglkQ2QOZA+EAVoKZBBkEYQAWgtkRGQTZBSEAVoMZBVkFoQAWg1kRWQXZBiEAVoOZEVkGWQahAFaD2QbZByEAFoQCQxkRWQdZB6EAVoRZB9kIIQAWhJkIWQihABaE2QjZCSEAFoUZCVkJoQAWhVkRGQnZCiEAVoWZEZkKmQrhAFaF2QsZC2EAFoYZC5kL4QAWhlkMGQxhABaGmRHZDJkM4QBWhtkSGQ1ZDaEAVocCRIJEmRJZDdkOIQBWh0JEgkSZEpkOWQ6hAFaHmREZDtkPIQBWh9kS2Q9ZD6EAVogCQwJDGRMZD9kQIQBWiEJEmRNZEFkQoQBWiJkDFMAKU7aB0NvbW1hbmRhfQMAAEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGRlZmluaW5nIGNvbW1hbmQgY2xhc3NlcywgdGhlICJ3b3JrZXIgYmVlcyIKICAgIG9mIHRoZSBEaXN0dXRpbHMuICBBIHVzZWZ1bCBhbmFsb2d5IGZvciBjb21tYW5kIGNsYXNzZXMgaXMgdG8gdGhpbmsgb2YKICAgIHRoZW0gYXMgc3Vicm91dGluZXMgd2l0aCBsb2NhbCB2YXJpYWJsZXMgY2FsbGVkICJvcHRpb25zIi4gIFRoZSBvcHRpb25zCiAgICBhcmUgImRlY2xhcmVkIiBpbiAnaW5pdGlhbGl6ZV9vcHRpb25zKCknIGFuZCAiZGVmaW5lZCIgKGdpdmVuIHRoZWlyCiAgICBmaW5hbCB2YWx1ZXMsIGFrYSAiZmluYWxpemVkIikgaW4gJ2ZpbmFsaXplX29wdGlvbnMoKScsIGJvdGggb2Ygd2hpY2gKICAgIG11c3QgYmUgZGVmaW5lZCBieSBldmVyeSBjb21tYW5kIGNsYXNzLiAgVGhlIGRpc3RpbmN0aW9uIGJldHdlZW4gdGhlCiAgICB0d28gaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugb3B0aW9uIHZhbHVlcyBtaWdodCBjb21lIGZyb20gdGhlIG91dHNpZGUKICAgIHdvcmxkIChjb21tYW5kIGxpbmUsIGNvbmZpZyBmaWxlLCAuLi4pLCBhbmQgYW55IG9wdGlvbnMgZGVwZW5kZW50IG9uCiAgICBvdGhlciBvcHRpb25zIG11c3QgYmUgY29tcHV0ZWQgKmFmdGVyKiB0aGVzZSBvdXRzaWRlIGluZmx1ZW5jZXMgaGF2ZQogICAgYmVlbiBwcm9jZXNzZWQgLS0gaGVuY2UgJ2ZpbmFsaXplX29wdGlvbnMoKScuICBUaGUgImJvZHkiIG9mIHRoZQogICAgc3Vicm91dGluZSwgd2hlcmUgaXQgZG9lcyBhbGwgaXRzIHdvcmsgYmFzZWQgb24gdGhlIHZhbHVlcyBvZiBpdHMKICAgIG9wdGlvbnMsIGlzIHRoZSAncnVuKCknIG1ldGhvZCwgd2hpY2ggbXVzdCBhbHNvIGJlIGltcGxlbWVudGVkIGJ5IGV2ZXJ5CiAgICBjb21tYW5kIGNsYXNzLgogICAgYwIAAAAAAAAAAAAAAAMAAAADAAAAQwAAAHNiAAAAZAFkAmwAbQF9AgEAdAJ8AXwCgwJzD3QDZAODAYIBfABqBHQFdQByGHQGZASDAYIBfAF8AF8HfACgCKEAAQBkBXwAXwl8AWoKfABfCmQFfABfC2QBfABfDGQBfABfDWQFUwApBnreQ3JlYXRlIGFuZCBpbml0aWFsaXplIGEgbmV3IENvbW1hbmQgb2JqZWN0LiAgTW9zdCBpbXBvcnRhbnRseSwKICAgICAgICBpbnZva2VzIHRoZSAnaW5pdGlhbGl6ZV9vcHRpb25zKCknIG1ldGhvZCwgd2hpY2ggaXMgdGhlIHJlYWwKICAgICAgICBpbml0aWFsaXplciBhbmQgZGVwZW5kcyBvbiB0aGUgYWN0dWFsIGNvbW1hbmQgYmVpbmcKICAgICAgICBpbnN0YW50aWF0ZWQuCiAgICAgICAgcgEAAAApAdoMRGlzdHJpYnV0aW9ueiRkaXN0IG11c3QgYmUgYSBEaXN0cmlidXRpb24gaW5zdGFuY2V6HENvbW1hbmQgaXMgYW4gYWJzdHJhY3QgY2xhc3NOKQ7aDmRpc3R1dGlscy5kaXN0cgsAAADaCmlzaW5zdGFuY2XaCVR5cGVFcnJvctoJX19jbGFzc19fcgoAAADaDFJ1bnRpbWVFcnJvctoMZGlzdHJpYnV0aW9u2hJpbml0aWFsaXplX29wdGlvbnPaCF9kcnlfcnVu2gd2ZXJib3Nl2gVmb3JjZdoEaGVscNoJZmluYWxpemVkKQPaBHNlbGbaBGRpc3RyCwAAAKkAchoAAAD6ZC9yb290L2dmMTgwLWRlbW8vY2FyYXZlbF91c2VyX3Byb2plY3QvdmVudi9saWIvcHl0aG9uMy4xMC9zaXRlLXBhY2thZ2VzL3NldHVwdG9vbHMvX2Rpc3R1dGlscy9jbWQucHnaCF9faW5pdF9fLwAAAHMYAAAADAcKAggBCgEIAQYCCAEGCggEBgYGBAoGehBDb21tYW5kLl9faW5pdF9fYwIAAAAAAAAAAAAAAAMAAAAEAAAAQwAAAHM2AAAAfAFkAWsCchd0AHwAZAJ8ARcAgwJ9AnwCZAB1AHIVdAB8AGoBfAGDAlMAfAJTAHQCfAGDAYIBKQNO2gdkcnlfcnVu2gFfKQPaB2dldGF0dHJyEQAAANoOQXR0cmlidXRlRXJyb3IpA3IYAAAA2gRhdHRy2gVteXZhbHIaAAAAchoAAAByGwAAANoLX19nZXRhdHRyX19fAAAAcwwAAAAIAQ4BCAEMAQQCCAJ6E0NvbW1hbmQuX19nZXRhdHRyX19jAQAAAAAAAAAAAAAAAQAAAAIAAABDAAAAcxgAAAB8AGoAcwd8AKABoQABAGQBfABfAGQAUwCpAk7pAQAAACkCchcAAADaEGZpbmFsaXplX29wdGlvbnOpAXIYAAAAchoAAAByGgAAAHIbAAAA2hBlbnN1cmVfZmluYWxpemVkaQAAAHMGAAAABgEIAQoBehhDb21tYW5kLmVuc3VyZV9maW5hbGl6ZWRjAQAAAAAAAAAAAAAAAQAAAAMAAABDAAAA8w4AAAB0AGQBfABqARYAgwGCASkCYdkBAABTZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIGFsbCB0aGUgb3B0aW9ucyB0aGF0IHRoaXMgY29tbWFuZAogICAgICAgIHN1cHBvcnRzLiAgTm90ZSB0aGF0IHRoZXNlIGRlZmF1bHRzIG1heSBiZSBvdmVycmlkZGVuIGJ5IG90aGVyCiAgICAgICAgY29tbWFuZHMsIGJ5IHRoZSBzZXR1cCBzY3JpcHQsIGJ5IGNvbmZpZyBmaWxlcywgb3IgYnkgdGhlCiAgICAgICAgY29tbWFuZC1saW5lLiAgVGh1cywgdGhpcyBpcyBub3QgdGhlIHBsYWNlIHRvIGNvZGUgZGVwZW5kZW5jaWVzCiAgICAgICAgYmV0d2VlbiBvcHRpb25zOyBnZW5lcmFsbHksICdpbml0aWFsaXplX29wdGlvbnMoKScgaW1wbGVtZW50YXRpb25zCiAgICAgICAgYXJlIGp1c3QgYSBidW5jaCBvZiAic2VsZi5mb28gPSBOb25lIiBhc3NpZ25tZW50cy4KCiAgICAgICAgVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBhbGwgY29tbWFuZCBjbGFzc2VzLgogICAgICAgIPosYWJzdHJhY3QgbWV0aG9kIC0tIHN1YmNsYXNzICVzIG11c3Qgb3ZlcnJpZGWpAnIQAAAAcg8AAAByJwAAAHIaAAAAchoAAAByGwAAAHISAAAAewAAAPMGAAAABAoEAQb/ehpDb21tYW5kLmluaXRpYWxpemVfb3B0aW9uc2MBAAAAAAAAAAAAAAABAAAAAwAAAEMAAAByKQAAACkCYRICAABTZXQgZmluYWwgdmFsdWVzIGZvciBhbGwgdGhlIG9wdGlvbnMgdGhhdCB0aGlzIGNvbW1hbmQgc3VwcG9ydHMuCiAgICAgICAgVGhpcyBpcyBhbHdheXMgY2FsbGVkIGFzIGxhdGUgYXMgcG9zc2libGUsIGllLiAgYWZ0ZXIgYW55IG9wdGlvbgog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bHVlcyBpbiBzb21lIG90aGVyIGNvbW1hbmQgb2JqZWN0LiAgIlVuZGVmaW5lZCIgaGVyZSBtZWFucwogICAgICAgICJpcyBOb25lIiwgd2hpY2ggaXMgdGhlIGNvbnZlbnRpb24gdXNlZCB0byBpbmRpY2F0ZSB0aGF0IGFuIG9wdGlvbgogICAgICAgIGhhcyBub3QgYmVlbiBjaGFuZ2VkIGJldHdlZW4gJ2luaXRpYWxpemVfb3B0aW9ucygpJyBhbmQKICAgICAgICAnZmluYWxpemVfb3B0aW9ucygpJy4gIFVzdWFsbHkgY2FsbGVkIGZyb20gJ2ZpbmFsaXplX29wdGlvbnMoKScgZm9yCiAgICAgICAgb3B0aW9ucyB0aGF0IGRlcGVuZCBvbiBzb21lIG90aGVyIGNvbW1hbmQgcmF0aGVyIHRoYW4gYW5vdGhlcgogICAgICAgIG9wdGlvbiBvZiB0aGUgc2FtZSBjb21tYW5kLiAgJ3NyY19jbWQnIGlzIHRoZSBvdGhlciBjb21tYW5kIGZyb20KICAgICAgICB3aGljaCBvcHRpb24gdmFsdWVzIHdpbGwgYmUgdGFrZW4gKGEgY29tbWFuZCBvYmplY3Qgd2lsbCBiZSBjcmVhdGVkCiAgICAgICAgZm9yIGl0IGlmIG5lY2Vzc2FyeSk7IHRoZSByZW1haW5pbmcgYXJndW1lbnRzIGFyZQogICAgICAgICcoc3JjX29wdGlvbixkc3Rfb3B0aW9uKScgdHVwbGVzIHdoaWNoIG1lYW4gInRha2UgdGhlIHZhbHVlIG9mCiAgICAgICAgJ3NyY19vcHRpb24nIGluIHRoZSAnc3JjX2NtZCcgY29tbWFuZCBvYmplY3QsIGFuZCBjb3B5IGl0IHRvCiAgICAgICAgJ2RzdF9vcHRpb24nIGluIHRoZSBjdXJyZW50IGNvbW1hbmQgb2JqZWN0Ii4KICAgICAgICBOKQVyEQAAANoPZ2V0X2NvbW1hbmRfb2JqcigAAAByHwAAAHJGAAAAKQZyGAAAANoHc3JjX2NtZNoMb3B0aW9uX3BhaXJz2gtzcmNfY21kX29iatoKc3JjX29wdGlvbtoKZHN0X29wdGlvbnIaAAAAchoAAAByGwAAANoVc2V0X3VuZGVmaW5lZF9vcHRpb25zDwEA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