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AAAAUhAAAABSEgAAAFITAAAAdAUAAABjbGVhcnQEAAAAZGljdCgCAAAAUhUAAABSGAAAACgAAAAAKAAAAABzdgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29sbGVjdGlvbnMucHlSKAAAAFsAAABzCAAAAAACCQEQAQ0BYwEAAAABAAAAAgAAAEMAAABzCgAAAHQAAHwAAIMBAFMoAQAAAHMfAAAAb2Qua2V5cygpIC0+IGxpc3Qgb2Yga2V5cyBpbiBvZCgBAAAAdAQAAABsaXN0KAEAAABSFQAAACgAAAAAKAAAAABzdgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29sbGVjdGlvbnMucHl0BAAAAGtleXNkAAAAcwIAAAAAAmMBAAAAAgAAAAQAAABDAAAAcxsAAABnAAB8AABEXRAAfQEAfAAAfAEAGV4CAHEHAFMoAQAAAHMjAAAAb2QudmFsdWVzKCkgLT4gbGlzdCBvZiB2YWx1ZXMgaW4gb2QoAAAAACgCAAAAUhUAAABSGgAAACgAAAAAKAAAAABzdgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29sbGVjdGlvbnMucHl0BgAAAHZhbHVlc2gAAABzAgAAAAACYwEAAAACAAAABQAAAEMAAABzIQAAAGcAAHwAAERdFgB9AQB8AQB8AAB8AQAZZgIAXgIAcQcAUygBAAAAcy4AAABvZC5pdGVtcygpIC0+IGxpc3Qgb2YgKGtleSwgdmFsdWUpIHBhaXJzIGluIG9kKAAAAAAoAgAAAFIVAAAAUhoAAAAoAAAAACgAAAAAc3YAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvbGxlY3Rpb25zLnB5dAUAAABpdGVtc2wAAABzAgAAAAACYwEAAAABAAAAAgAAAEMAAABzCgAAAHQAAHwAAIMBAFMoAQAAAHMwAAAAb2QuaXRlcmtleXMoKSAtPiBhbiBpdGVyYXRvciBvdmVyIHRoZSBrZXlzIGluIG9kKAEAAAB0BAAAAGl0ZXIoAQAAAFIVAAAAKAAAAAAoAAAAAHN2AAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2xsZWN0aW9ucy5weXQIAAAAaXRlcmtleXNwAAAAcwIAAAAAAmMBAAAAAgAAAAMAAABjAAAAcx4AAAB4FwB8AABEXQ8AfQEAfAAAfAEAGVYBcQcAV2QBAFMoAgAAAHMyAAAAb2QuaXRlcnZhbHVlcyAtPiBhbiBpdGVyYXRvciBvdmVyIHRoZSB2YWx1ZXMgaW4gb2ROKAAAAAAoAgAAAFIVAAAAdAEAAABrKAAAAAAoAAAAAHN2AAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2xsZWN0aW9ucy5weXQKAAAAaXRlcnZhbHVlc3QAAABzBAAAAAACDQFjAQAAAAIAAAAEAAAAYwAAAHMkAAAAeB0AfAAARF0VAH0BAHwBAHwAAHwBABlmAgBWAXEHAFdkAQBTKAIAAABzPQAAAG9kLml0ZXJpdGVtcyAtPiBhbiBpdGVyYXRvciBvdmVyIHRoZSAoa2V5LCB2YWx1ZSkgcGFpcnMgaW4gb2ROKAAAAAAoAgAAAFIVAAAAUjAAAAAoAAAAACgAAAAAc3YAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvbGxlY3Rpb25zLnB5dAkAAABpdGVyaXRlbXN5AAAAcwQAAAAAAg0BYwMAAAAEAAAAAgAAAEMAAABzQwAAAHwBAHwAAGsGAHIhAHwAAHwBABl9AwB8AAB8AQA9fAMAU3wCAHwAAGoAAGsIAHI/AHQBAHwBAIMBAIIBAG4AAHwCAFMoAQAAAHOyAAAAb2QucG9wKGtbLGRdKSAtPiB2LCByZW1vdmUgc3BlY2lmaWVkIGtleSBhbmQgcmV0dXJuIHRoZSBjb3JyZXNwb25kaW5nCiAgICAgICAgdmFsdWUuICBJZiBrZXkgaXMgbm90IGZvdW5kLCBkIGlzIHJldHVybmVkIGlmIGdpdmVuLCBvdGhlcndpc2UgS2V5RXJyb3IKICAgICAgICBpcyByYWlzZWQuCgogICAgICAgICgCAAAAdBQAAABfT3JkZXJlZERpY3RfX21hcmtlcnQIAAAAS2V5RXJyb3IoBAAAAFIVAAAAUhoAAAB0BwAAAGRlZmF1bHR0BgAAAHJlc3VsdCgAAAAAKAAAAABzdgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29sbGVjdGlvbnMucHlSHwAAAIQAAABzDgAAAAAGDAEKAQcBBAEPAQ8BYwMAAAADAAAAAwAAAEMAAABzIgAAAHwBAHwAAGsGAHIUAHwAAHwBABlTfAIAfAAAfAEAPHwCAFMoAQAAAHNEAAAAb2Quc2V0ZGVmYXVsdChrWyxkXSkgLT4gb2QuZ2V0KGssZCksIGFsc28gc2V0IG9kW2tdPWQgaWYgayBub3QgaW4gb2QoAAAAACgDAAAAUhUAAABSGgAAAFI1AAAAKAAAAAAoAAAAAHN2AAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2xsZWN0aW9ucy5weXQK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AHN/AAAAT0QuZnJvbWtleXMoU1ssIHZdKSAtPiBOZXcgb3JkZXJlZCBkaWN0aW9uYXJ5IHdpdGgga2V5cyBmcm9tIFMuCiAgICAgICAgSWYgbm90IHNwZWNpZmllZCwgdGhlIHZhbHVlIGRlZmF1bHRzIHRvIE5vbmUuCgogICAgICAgICgAAAAAKAUAAAB0AwAAAGNsc3QIAAAAaXRlcmFibGVSGwAAAFIVAAAAUhoAAAAoAAAAACgAAAAAc3YAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvbGxlY3Rpb25zLnB5dAgAAABmcm9ta2V5c78AAABzCAAAAAAGCQENAQ4BYwIAAAACAAAABgAAAEMAAABzRwAAAHQAAHwBAHQBAIMCAHI3AHQCAGoDAHwAAHwBAIMCAG82AHQEAHQFAHQGAHwAAHwBAIMDAIMBAFN0AgBqAwB8AAB8AQCDAgBTKAEAAABzkwAAAG9kLl9fZXFfXyh5KSA8PT0+IG9kPT15LiAgQ29tcGFyaXNvbiB0byBhbm90aGVyIE9EIGlzIG9yZGVyLXNlbnNpdGl2ZQogICAgICAgIHdoaWxlIGNvbXBhcmlzb24gdG8gYSByZWd1bGFyIG1hcHBpbmcgaXMgb3JkZXItaW5zZW5zaXRpdmUuCgogICAgICAgICgHAAAAdAoAAABpc2luc3RhbmNlUgQAAABSKQAAAHQGAAAAX19lcV9fdAMAAABhbGx0BQAAAF9pbWFwdAMAAABfZXEoAgAAAFIVAAAAdAUAAABvdGhlcigAAAAAKAAAAABzdgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29sbGVjdGlvbnMucHlSSgAAAMoAAABzBgAAAAAFDwEoAWMCAAAAAgAAAAIAAABDAAAAcwsAAAB8AAB8AQBrAgAMUygBAAAAcxcAAABvZC5fX25lX18oeSkgPD09PiBvZCE9eSgAAAAAKAIAAABSFQAAAFJOAAAAKAAAAAAoAAAAAHN2AAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2xsZWN0aW9ucy5weXQGAAAAX19uZV9f0wAAAHMCAAAAAAJjAQAAAAEAAAACAAAAQwAAAHMKAAAAdAAAfAAAgwEAUygBAAAAc0AAAABvZC52aWV3a2V5cygpIC0+IGEgc2V0LWxpa2Ugb2JqZWN0IHByb3ZpZGluZyBhIHZpZXcgb24gb2QncyBrZXlzKAEAAAB0CAAAAEtleXNWaWV3KAEAAABSFQAAACgAAAAAKAAAAABzdgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29sbGVjdGlvbnMucHl0CAAAAHZpZXdrZXlz2QAAAHMCAAAAAAJjAQAAAAEAAAACAAAAQwAAAHMKAAAAdAAAfAAAgwEAUygBAAAAczwAAABvZC52aWV3dmFsdWVzKCkgLT4gYW4gb2JqZWN0IHByb3ZpZGluZyBhIHZpZXcgb24gb2QncyB2YWx1ZXMoAQAAAHQKAAAAVmFsdWVzVmlldygBAAAAUhUAAAAoAAAAACgAAAAAc3YAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvbGxlY3Rpb25zLnB5dAoAAAB2aWV3dmFsdWVz3QAAAHMCAAAAAAJjAQAAAAEAAAACAAAAQwAAAHMKAAAAdAAAfAAAgwEAUygBAAAAc0IAAABvZC52aWV3aXRlbXMoKSAtPiBhIHNldC1saWtlIG9iamVjdCBwcm92aWRpbmcgYSB2aWV3IG9uIG9kJ3MgaXRlbXMoAQAAAHQJAAAASXRlbXNWaWV3KAEAAABSFQAAACgAAAAAKAAAAABzdgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29sbGVjdGlvbnMucHl0CQAAAHZpZXdpdGVtc+EAAABzAgAAAAACTigkAAAAUj4AAAB0CgAAAF9fbW9kdWxlX190BwAAAF9fZG9jX19SGQAAAFIpAAAAUh4AAABSJAAAAFImAAAAUicAAABSKAAAAFIrAAAAUiwAAABSLQAAAFIvAAAAUjEAAABSMgAAAHQOAAAATXV0YWJsZU1hcHBpbmd0BgAAAHVwZGF0ZVIUAAAAdAYAAABvYmplY3RSMwAAAFIfAAAAUhIAAABSNwAAAHQEAAAAVHJ1ZVI6AAAAUkEAAABSRQAAAFJDAAAAdAsAAABjbGFzc21ldGhvZFJIAAAAUkoAAABSTwAAAFJRAAAAUlMAAABSVQAAACgAAAAAKAAAAAAoAAAAAHN2AAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2xsZWN0aW9ucy5weVIEAAAAGgAAAHM6AAAABgEGCwkQDwoPCQkJCQkJCQkECQQJBAkECQUJBQkCBgIJAgwODAcMCwwNCQoJBAMBDwoJCQkGCQQJBHOOBQAAY2xhc3Mge3R5cGVuYW1lfSh0dXBsZSk6CiAgICAne3R5cGVuYW1lfSh7YXJnX2xpc3R9KScKCiAgICBfX3Nsb3RzX18gPSAoKQoKICAgIF9maWVsZHMgPSB7ZmllbGRfbmFtZXMhcn0KCiAgICBkZWYgX19uZXdfXyhfY2xzLCB7YXJnX2xpc3R9KToKICAgICAgICAnQ3JlYXRlIG5ldyBpbnN0YW5jZSBvZiB7dHlwZW5hbWV9KHthcmdfbGlzdH0pJwogICAgICAgIHJldHVybiBfdHVwbGUuX19uZXdfXyhfY2xzLCAoe2FyZ19saXN0fSkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgX21ha2UoY2xzLCBpdGVyYWJsZSwgbmV3PXR1cGxlLl9fbmV3X18sIGxlbj1sZW4pOgogICAgICAgICdNYWtlIGEgbmV3IHt0eXBlbmFtZX0gb2JqZWN0IGZyb20gYSBzZXF1ZW5jZSBvciBpdGVyYWJsZScKICAgICAgICByZXN1bHQgPSBuZXcoY2xzLCBpdGVyYWJsZSkKICAgICAgICBpZiBsZW4ocmVzdWx0KSAhPSB7bnVtX2ZpZWxkczpkfToKICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCdFeHBlY3RlZCB7bnVtX2ZpZWxkczpkfSBhcmd1bWVudHMsIGdvdCAlZCcgJSBsZW4ocmVzdWx0KSkKICAgICAgICByZXR1cm4gcmVzdWx0CgogICAgZGVmIF9fcmVwcl9fKHNlbGYpOgogICAgICAgICdSZXR1cm4gYSBuaWNlbHkgZm9ybWF0dGVkIHJlcHJlc2VudGF0aW9uIHN0cmluZycKICAgICAgICByZXR1cm4gJ3t0eXBlbmFtZX0oe3JlcHJfZm10fSknICUgc2VsZgoKICAgIGRlZiBfYXNkaWN0KHNlbGYpOgogICAgICAgICdSZXR1cm4gYSBuZXcgT3JkZXJlZERpY3Qgd2hpY2ggbWFwcyBmaWVsZCBuYW1lcyB0byB0aGVpciB2YWx1ZXMnCiAgICAgICAgcmV0dXJuIE9yZGVyZWREaWN0KHppcChzZWxmLl9maWVsZHMsIHNlbGYpKQoKICAgIGRlZiBfcmVwbGFjZShfc2VsZiwgKiprd2RzKToKICAgICAgICAnUmV0dXJuIGEgbmV3IHt0eXBlbmFtZX0gb2JqZWN0IHJlcGxhY2luZyBzcGVjaWZpZWQgZmllbGRzIHdpdGggbmV3IHZhbHVlcycKICAgICAgICByZXN1bHQgPSBfc2VsZi5fbWFrZShtYXAoa3dkcy5wb3AsIHtmaWVsZF9uYW1lcyFyfSwgX3NlbGYpKQogICAgICAgIGlmIGt3ZHM6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0dvdCB1bmV4cGVjdGVkIGZpZWxkIG5hbWVzOiAlcicgJSBrd2RzLmtleXMoKSkKICAgICAgICByZXR1cm4gcmVzdWx0CgogICAgZGVmIF9fZ2V0bmV3YXJnc19fKHNlbGYpOgog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bWVzIGFuZCBmaWVsZCBuYW1lcyBjYW5ub3Qgc3RhcnQgd2l0aCBhIG51bWJlcjogJXJzLwAAAEZpZWxkIG5hbWVzIGNhbm5vdCBzdGFydCB3aXRoIGFuIHVuZGVyc2NvcmU6ICVycyQAAABFbmNvdW50ZXJlZCBkdXBsaWNhdGUgZmllbGQgbmFtZTogJXJ0CAAAAHR5cGVuYW1ldAsAAABmaWVsZF9uYW1lc3QKAAAAbnVtX2ZpZWxkc3QIAAAAYXJnX2xpc3R0AQAAACd0AAAAAGkBAAAAaf////90CAAAAHJlcHJfZm10cwIAAAAsIGMBAAAAAgAAAAQAAABzAAAAcyEAAAB8AABdFwB9AQB0AABqAQBkAAB8AQCDAAFWAXEDAGQBAFMoAgAAAHQEAAAAbmFtZU4oAgAAAHQOAAAAX3JlcHJfdGVtcGxhdGV0BgAAAGZvcm1hdCgCAAAAUmAAAABSaQAAACgAAAAAKAAAAABzdgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29sbGVjdGlvbnMucHlzCQAAADxnZW5leHByPmEBAABzAgAAAAYBdAoAAABmaWVsZF9kZWZzcwEAAAAKYwEAAAADAAAABgAAAHMAAABzLQAAAHwAAF0jAFwCAH0BAH0CAHQAAGoBAGQAAHwBAGQBAHwCAIMAAlYBcQMAZAIAUygDAAAAdAUAAABpbmRleFJpAAAATigCAAAAdA8AAABfZmllbGRfdGVtcGxhdGVSawAAACgDAAAAUmAAAABSbQAAAFJpAAAAKAAAAAAoAAAAAHN2AAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2xsZWN0aW9ucy5weXMJAAAAPGdlbmV4cHI+YwEAAHMCAAAABgF0CwAAAF9pdGVtZ2V0dGVyUj4AAABzDQAAAG5hbWVkdHVwbGVfJXNSBAAAAHQJAAAAX3Byb3BlcnR5dAYAAABfdHVwbGVzAgAAADoKdAgAAABfX21haW5fXyggAAAAUkkAAAB0CgAAAGJhc2VzdHJpbmd0BwAAAHJlcGxhY2V0BQAAAHNwbGl0dAMAAABtYXB0AwAAAHN0cnQDAAAAc2V0dAkAAABlbnVtZXJhdGVSSwAAAHQKAAAAX2lza2V5d29yZHQHAAAAaXNkaWdpdHQKAAAAc3RhcnRzd2l0aHQDAAAAYWRkdAoAAABWYWx1ZUVycm9ydA8AAABfY2xhc3NfdGVtcGxhdGVSawAAAHQFAAAAdHVwbGVSDgAAAHQEAAAAcmVwcnQEAAAAam9pblIpAAAAUm8AAABSBAAAAHQIAAAAcHJvcGVydHl0CwAAAFN5bnRheEVycm9ydAcAAABtZXNzYWdldAQAAABfc3lzdAkAAABfZ2V0ZnJhbWV0CQAAAGZfZ2xvYmFsc3QDAAAAZ2V0UlYAAABSEQAAACgLAAAAUmIAAABSYwAAAHQHAAAAdmVyYm9zZXQGAAAAcmVuYW1ldAQAAABzZWVuUm0AAABSaQAAAHQQAAAAY2xhc3NfZGVmaW5pdGlvbnQJAAAAbmFtZXNwYWNldAEAAABlUjYAAAAoAAAAACgAAAAAc3YAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvbGxlY3Rpb25zLnB5UgMAAAAgAQAAc24AAAAAGg8BGwEPAQYBCQEZARcBDAEHARABDwEMAREBFAEUARYBBgENAQwBBgENARABBgERAQkBDQEWAQYBDQEMARMBEQMJAQYBDAEMASUBDAENAQwBFgIGAQgEFgEVAQMBDAEPARsBCgYDASUBEwEEAmMAAAAAAAAAAAMAAABCAAAAc6oAAABlAABaAQBkAABaAgBkEABkAQCEAQBaBABkAgCEAABaBQBkEABkAwCEAQBaBgBkBACEAABaBwBlCABkEABkBQCEAQCDAQBaCQBkEABkBgCEAQBaCgBkEABkBwCEAQBaCwBkCACEAABaDABkCQCEAABaDQBkCgCEAABaDgBkCwCEAABaDwBkDACEAABaEABkDQCEAABaEQBkDgCEAABaEgBkDwCEAABaEwBSUygRAAAAc58GAABEaWN0IHN1YmNsYXNzIGZvciBjb3VudGluZyBoYXNoYWJsZSBpdGVtcy4gIFNvbWV0aW1lcyBjYWxsZWQgYSBiYWcKICAgIG9yIG11bHRpc2V0LiAgRWxlbWVudHMgYXJlIHN0b3JlZCBhcyBkaWN0aW9uYXJ5IGtleXMgYW5kIHRoZWlyIGNvdW50cwogICAgYXJlIHN0b3JlZCBhcyBkaWN0aW9uYXJ5IHZhbHVlcy4KCiAgICA+Pj4gYyA9IENvdW50ZXIoJ2FiY2RlYWJjZGFiY2FiYScpICAjIGNvdW50IGVsZW1lbnRzIGZyb20gYSBzdHJpbmcKCiAgICA+Pj4gYy5tb3N0X2NvbW1vbigzKSAgICAgICAgICAgICAgICAjIHRocmVlIG1vc3QgY29tbW9uIGVsZW1lbnRzCiAgICBbKCdhJywgNSksICgnYicsIDQpLCAoJ2MnLCAzKV0KICAgID4+PiBzb3J0ZWQoYykgICAgICAgICAgICAgICAgICAgICAgICMgbGlzdCBhbGwgdW5pcXVlIGVsZW1lbnRzCiAgICBbJ2EnLCAnYicsICdjJywgJ2QnLCAnZSddCiAgICA+Pj4gJycuam9pbihzb3J0ZWQoYy5lbGVtZW50cygpKSkgICAjIGxpc3QgZWxlbWVudHMgd2l0aCByZXBldGl0aW9ucwogICAgJ2FhYWFhYmJiYmNjY2RkZScKICAgID4+PiBzdW0oYy52YWx1ZXMoKSkgICAgICAgICAgICAgICAgICMgdG90YWwgb2YgYWxsIGNvdW50cwogICAgMTUKCiAgICA+Pj4gY1snYSddICAgICAgICAgICAgICAgICAgICAgICAgICAjIGNvdW50IG9mIGxldHRlciAnYScKICAgIDUKICAgID4+PiBmb3IgZWxlbSBpbiAnc2hhemFtJzogICAgICAgICAgICMgdXBkYXRlIGNvdW50cyBmcm9tIGFuIGl0ZXJhYmxlCiAgICAuLi4gICAgIGNbZWxlbV0gKz0gMSAgICAgICAgICAgICAgICAjIGJ5IGFkZGluZyAxIHRvIGVhY2ggZWxlbWVudCdzIGNvdW50CiAgICA+Pj4gY1snYSddICAgICAgICAgICAgICAgICAgICAgICAgICAjIG5vdyB0aGVyZSBhcmUgc2V2ZW4gJ2EnCiAgICA3CiAgICA+Pj4gZGVsIGNbJ2InXSAgICAgICAgICAgICAgICAgICAgICAjIHJlbW92ZSBhbGwgJ2InCiAgICA+Pj4gY1snYiddICAgICAgICAgICAgICAgICAgICAgICAgICAjIG5vdyB0aGVyZSBhcmUgemVybyAnYicKICAgIDAKCiAgICA+Pj4gZCA9IENvdW50ZXIoJ3NpbXNhbGFiaW0nKSAgICAgICAjIG1ha2UgYW5vdGhlciBjb3VudGVyCiAgICA+Pj4gYy51cGRhdGUoZCkgICAgICAgICAgICAgICAgICAgICAjIGFkZCBpbiB0aGUgc2Vjb25kIGNvdW50ZXIKICAgID4+PiBjWydhJ10gICAgICAgICAgICAgICAgICAgICAgICAgICMgbm93IHRoZXJlIGFyZSBuaW5lICdhJwogICAgOQoKICAgID4+PiBjLmNsZWFyKCkgICAgICAgICAgICAgICAgICAgICAgICMgZW1wdHkgdGhlIGNvdW50ZXIKICAgID4+PiBjCiAgICBDb3VudGVyKCkKCiAgICBOb3RlOiAgSWYgYSBjb3VudCBpcyBzZXQgdG8gemVybyBvciByZWR1Y2VkIHRvIHplcm8sIGl0IHdpbGwgcmVtYWluCiAgICBpbiB0aGUgY291bnRlciB1bnRpbCB0aGUgZW50cnkgaXMgZGVsZXRlZCBvciB0aGUgY291bnRlciBpcyBjbGVhcmVkOgoKICAgID4+PiBjID0gQ291bnRlcignYWFhYmJjJykKICAgID4+PiBjWydiJ10gLT0gMiAgICAgICAgICAgICAgICAgICAgICMgcmVkdWNlIHRoZSBjb3VudCBvZiAnYicgYnkgdHdvCiAgICA+Pj4gYy5tb3N0X2NvbW1vbigpICAgICAgICAgICAgICAgICAjICdiJyBpcyBzdGlsbCBpbiwgYnV0IGl0cyBjb3VudCBpcyB6ZXJvCiAgICBbKCdhJywgMyksICgnYycsIDEpLCAoJ2InLCAwKV0KCiAgICBjAgAAAAMAAAADAAAASwAAAHMnAAAAdAAAdAEAfAAAgwIAagIAgwAAAXwAAGoDAHwBAHwCAI0BAAFkAQBTKAIAAABzCQIAAENyZWF0ZSBhIG5ldywgZW1wdHkgQ291bnRlciBvYmplY3QuICBBbmQgaWYgZ2l2ZW4sIGNvdW50IGVsZW1lbnRzCiAgICAgICAgZnJvbSBhbiBpbnB1dCBpdGVyYWJsZS4gIE9yLCBpbml0aWFsaXplIHRoZSBjb3VudCBmcm9tIGFub3RoZXIgbWFwcGluZwogICAgICAgIG9mIGVsZW1lbnRzIHRvIHRoZWlyIGNvdW50cy4KCiAgICAgICAgPj4+IGMgPSBDb3VudGVyKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGEgbmV3LCBlbXB0eSBjb3VudGVyCiAgICAgICAgPj4+IGMgPSBDb3VudGVyKCdnYWxsYWhhZCcpICAgICAgICAgICAgICAgICAjIGEgbmV3IGNvdW50ZXIgZnJvbSBhbiBpdGVyYWJsZQogICAgICAgID4+PiBjID0gQ291bnRlcih7J2EnOiA0LCAnYic6IDJ9KSAgICAgICAgICAgIyBhIG5ldyBjb3VudGVyIGZyb20gYSBtYXBwaW5nCiAgICAgICAgPj4+IGMgPSBDb3VudGVyKGE9NCwgYj0yKSAgICAgICAgICAgICAgICAgICAjIGEgbmV3IGNvdW50ZXIgZnJvbSBrZXl3b3JkIGFyZ3MKCiAgICAgICAgTigEAAAAdAUAAABzdXBlclIAAAAAUhkAAABSWQAAACgDAAAAUhUAAABSRwAAAFIXAAAAKAAAAAAoAAAAAHN2AAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2xsZWN0aW9ucy5weVIZAAAAtgEAAHMEAAAAAAsTAWMCAAAAAgAAAAEAAABDAAAAcwQAAABkAQBTKAIAAABzMQAAAFRoZSBjb3VudCBvZiBlbGVtZW50cyBub3QgaW4gdGhlIENvdW50ZXIgaXMgemVyby5pAAAAACgAAAAAKAIAAABSFQAAAFIaAAAAKAAAAAAoAAAAAHN2AAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2xsZWN0aW9ucy5weXQLAAAAX19taXNzaW5nX1/EAQAAcwIAAAAAA2MCAAAAAgAAAAYAAABDAAAAc1AAAAB8AQBkBABrCAByLgB0AQB8AABqAgCDAABkAQB0AwBkAgCDAQBkAwB0BACDAQJTdAUAagYAfAEAfAAAagIAgwAAZAEAdAMAZAIAgwEAgwIBUygFAAAAc/AAAABMaXN0IHRoZSBuIG1vc3QgY29tbW9uIGVsZW1lbnRzIGFuZCB0aGVpciBjb3VudHMgZnJvbSB0aGUgbW9zdAogICAgICAgIGNvbW1vbiB0byB0aGUgbGVhc3QuICBJZiBuIGlzIE5vbmUsIHRoZW4gbGlzdCBhbGwgZWxlbWVudCBjb3VudHMuCgogICAgICAgID4+PiBDb3VudGVyKCdhYmNkZWFiY2RhYmNhYmEnKS5tb3N0X2NvbW1vbigzKQogICAgICAgIFsoJ2EnLCA1KSwgKCdiJywgNCksICgnYycsIDMpXQoKICAgICAgICBSGgAAAGkBAAAAdAcAAAByZXZlcnNlTigHAAAAUhIAAAB0BgAAAHNvcnRlZFIyAAAAUm8AAABSWwAAAHQGAAAAX2hlYXBxdAgAAABubGFyZ2VzdCgCAAAAUhUAAAB0AQAAAG4oAAAAACgAAAAAc3YAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvbGxlY3Rpb25zLnB5dAsAAABtb3N0X2NvbW1vbskBAABzBgAAAAAJDAEiAWMBAAAAAQAAAAQAAABDAAAAcxwAAAB0AABqAQB0AgB0AwB8AABqBACDAACDAgCDAQBTKAEAAABzgQIAAEl0ZXJhdG9yIG92ZXIgZWxlbWVudHMgcmVwZWF0aW5nIGVhY2ggYXMgbWFueSB0aW1lcyBhcyBpdHMgY291bnQuCgogICAgICAgID4+PiBjID0gQ291bnRlcignQUJDQUJDJykKICAgICAgICA+Pj4gc29ydGVkKGMuZWxlbWVudHMoKSkKICAgICAgICBbJ0EnLCAnQScsICdCJywgJ0InLCAnQycsICdDJ10KCiAgICAgICAgIyBLbnV0aCdzIGV4YW1wbGUgZm9yIHByaW1lIGZhY3RvcnMgb2YgMTgzNjogIDIqKjIgKiAzKiozICogMTcqKjEKICAgICAgICA+Pj4gcHJpbWVfZmFjdG9ycyA9IENvdW50ZXIoezI6IDIsIDM6IDMsIDE3OiAxfSkKICAgICAgICA+Pj4gcHJvZHVjdCA9IDEKICAgICAgICA+Pj4gZm9yIGZhY3RvciBpbiBwcmltZV9mYWN0b3JzLmVsZW1lbnRzKCk6ICAgICAjIGxvb3Agb3ZlciBmYWN0b3JzCiAgICAgICAgLi4uICAgICBwcm9kdWN0ICo9IGZhY3RvciAgICAgICAgICAgICAgICAgICAgICAgIyBhbmQgbXVsdGlwbHkgdGhlbQogICAgICAgID4+PiBwcm9kdWN0CiAgICAgICAgMTgzNgoKICAgICAgICBOb3RlLCBpZiBhbiBlbGVtZW50J3MgY291bnQgaGFzIGJlZW4gc2V0IHRvIHplcm8gb3IgaXMgYSBuZWdhdGl2ZQogICAgICAgIG51bWJlciwgZWxlbWVudHMoKSB3aWxsIGlnbm9yZSBpdC4KCiAgICAgICAgKAUAAAB0BgAAAF9jaGFpbnQNAAAAZnJvbV9pdGVyYWJsZXQIAAAAX3N0YXJtYXB0BwAAAF9yZXBlYXRSMgAAACgBAAAAUhUAAAAoAAAAACgAAAAAc3YAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvbGxlY3Rpb25zLnB5dAgAAABlbGVtZW50c9YBAABzAgAAAAAUYwMAAAADAAAAAgAAAEMAAABzEAAAAHQAAGQBAIMBAIIBAGQAAFMoAgAAAE5zQAAAAENvdW50ZXIuZnJvbWtleXMoKSBpcyB1bmRlZmluZWQuICBVc2UgQ291bnRlcihpdGVyYWJsZSkgaW5zdGVhZC4oAQAAAHQTAAAATm90SW1wbGVtZW50ZWRFcnJvcigDAAAAUkYAAABSRwAAAHQBAAAAdigAAAAAKAAAAABzdgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29sbGVjdGlvbnMucHlSSAAAAO4BAABzBAAAAAAEAwFjAgAAAAYAAAAEAAAASwAAAHPIAAAAfAEAZAMAawkAcq4AdAEAfAEAdAIAgwIAcnoAfAAAcmEAfAAAagMAfQMAeEoAfAEAagQAgwAARF0jAFwCAH0EAH0FAHwDAHwEAGQBAIMCAHwFABd8AAB8BAA8cTcAV3GrAHQFAHQGAHwAAIMCAGoHAHwBAIMBAAFxrgB8AABqAwB9AwB4KAB8AQBEXR0AfQQAfAMAfAQAZAEAgwIAZAIAF3wAAHwEADxxigBXbgAAfAIAcsQAfAAAagcAfAIAgwEAAW4AAGQDAFMoBAAAAHPJAQAATGlrZSBkaWN0LnVwZGF0ZSgpIGJ1dCBhZGQgY291bnRzIGluc3RlYWQgb2YgcmVwbGFjaW5nIHRoZW0uCgogICAgICAgIFNvdXJjZSBjYW4gYmUgYW4gaXRlcmFibGUsIGEgZGljdGlvbmFyeSwgb3IgYW5vdGhlciBDb3VudGVyIGluc3RhbmNlLgoKICAgICAgICA+Pj4gYyA9IENvdW50ZXIoJ3doaWNoJykKICAgICAgICA+Pj4gYy51cGRhdGUoJ3dpdGNoJykgICAgICAgICAgICMgYWRkIGVsZW1lbnRzIGZyb20gYW5vdGhlciBpdGVyYWJsZQogICAgICAgID4+PiBkID0gQ291bnRlcignd2F0Y2gnKQogICAgICAgID4+PiBjLnVwZGF0ZShkKSAgICAgICAgICAgICAgICAgIyBhZGQgZWxlbWVudHMgZnJvbSBhbm90aGVyIGNvdW50ZXIKICAgICAgICA+Pj4gY1snaCddICAgICAgICAgICAgICAgICAgICAgICMgZm91ciAnaCcgaW4gd2hpY2gsIHdpdGNoLCBhbmQgd2F0Y2gKICAgICAgICA0CgogICAgICAgIGkAAAAAaQEAAABOKAgAAABSEgAAAFJJAAAAdAcAAABNYXBwaW5nUokAAABSMgAAAFKQAAAAUgAAAABSWQAAACgGAAAAUhUAAABSRwAAAFIXAAAAdAgAAABzZWxmX2dldHQEAAAAZWxlbXQFAAAAY291bnQoAAAAACgAAAAAc3YAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvbGxlY3Rpb25zLnB5UlkAAAD1AQAAcxgAAAAAFAwBDwEGAQkBGQEeAhkCCQENAR4BBgFjAgAAAAYAAAAEAAAASwAAAHOgAAAAfAEAZAMAawkAcoYAfAAAagEAfQMAdAIAfAEAdAMAgwIAclsAeFwAfAEAagQAgwAARF0jAFwCAH0EAH0FAHwDAHwEAGQBAIMCAHwFABh8AAB8BAA8cTEAV3GGAHgoAHwBAERdHQB9BAB8AwB8BABkAQCDAgBkAgAYfAAAfAQAPHFiAFduAAB8AgBynAB8AABqBQB8AgCDAQABbgAAZAMAUygEAAAAc7cCAABMaWtlIGRpY3QudXBkYXRlKCkgYnV0IHN1YnRyYWN0cyBjb3VudHMgaW5zdGVhZCBvZiByZXBsYWNpbmcgdGhlbS4KICAgICAgICBDb3VudHMgY2FuIGJlIHJlZHVjZWQgYmVsb3cgemVyby4gIEJvdGggdGhlIGlucHV0cyBhbmQgb3V0cHV0cyBhcmUKICAgICAgICBhbGxvd2VkIHRvIGNvbnRhaW4gemVybyBhbmQgbmVnYXRpdmUgY291bnRzLgoKICAgICAgICBTb3VyY2UgY2FuIGJlIGFuIGl0ZXJhYmxlLCBhIGRpY3Rpb25hcnksIG9yIGFub3RoZXIgQ291bnRlciBpbnN0YW5jZS4KCiAgICAgICAgPj4+IGMgPSBDb3VudGVyKCd3aGljaCcpCiAgICAgICAgPj4+IGMuc3VidHJhY3QoJ3dpdGNoJykgICAgICAgICAgICAgIyBzdWJ0cmFjdCBlbGVtZW50cyBmcm9tIGFub3RoZXIgaXRlcmFibGUKICAgICAgICA+Pj4gYy5zdWJ0cmFjdChDb3VudGVyKCd3YXRjaCcpKSAgICAjIHN1YnRyYWN0IGVsZW1lbnRzIGZyb20gYW5vdGhlciBjb3VudGVyCiAgICAgICAgPj4+IGNbJ2gnXSAgICAgICAgICAgICAgICAgICAgICAgICAgIyAyIGluIHdoaWNoLCBtaW51cyAxIGluIHdpdGNoLCBtaW51cyAxIGluIHdhdGNoCiAgICAgICAgMAogICAgICAgID4+PiBjWyd3J10gICAgICAgICAgICAgICAgICAgICAgICAgICMgMSBpbiB3aGljaCwgbWludXMgMSBpbiB3aXRjaCwgbWludXMgMSBpbiB3YXRjaAogICAgICAgIC0xCgogICAgICAgIGkAAAAAaQEAAABOKAYAAABSEgAAAFKJAAAAUkkAAABSnwAAAFItAAAAdAgAAABzdWJ0cmFjdCgGAAAAUhUAAABSRwAAAFIXAAAAUqAAAABSoQAAAFKiAAAAKAAAAAAoAAAAAHN2AAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2xsZWN0aW9ucy5weVKjAAAAGAIAAHMSAAAAABAMAQkBDwEZAR4CDQEeAQYBYwEAAAABAAAAAgAAAEMAAABzDQAAAHwAAGoAAHwAAIMBAFMoAQAAAHMWAAAAUmV0dXJuIGEgc2hhbGxvdyBjb3B5LigBAAAAUj0AAAAoAQAAAFIVAAAAKAAAAAAoAAAAAHN2AAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2xsZWN0aW9ucy5weVJDAAAAMwIAAHMCAAAAAAJjAQAAAAEAAAADAAAAQwAAAHMWAAAAfAAAagAAdAEAfAAAgwEAZgEAZgIAUygBAAAATigCAAAAUj0AAABSKQAAACgBAAAAUhUAAAAoAAAAACgAAAAAc3YAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvbGxlY3Rpb25zLnB5UkUAAAA3AgAAcwIAAAAAAWMCAAAAAgAAAAMAAABDAAAAcykAAAB8AQB8AABrBgByJQB0AAB0AQB8AACDAgBqAgB8AQCDAQABbgAAZAEAUygCAAAAc0cAAABMaWtlIGRpY3QuX19kZWxpdGVtX18oKSBidXQgZG9lcyBub3QgcmFpc2UgS2V5RXJyb3IgZm9yIG1pc3NpbmcgdmFsdWVzLk4oAwAAAFKQAAAAUgAAAABSJAAAACgCAAAAUhUAAABSoQAAACgAAAAAKAAAAABzdgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29sbGVjdGlvbnMucHlSJAAAADoCAABzBAAAAAACDAFjAQAAAAIAAAAEAAAAQwAAAHNJAAAAfAAAcxQAZAEAfAAAagAAagEAFlNkAgBqAgB0AwBkAwBqBAB8AABqBQCDAACDAgCDAQB9AQBkBAB8AABqAABqAQB8AQBmAgAWUygFAAAATnMEAAAAJXMoKXMCAAAALCBzBgAAACVyOiAlcnMIAAAAJXMoeyVzfSkoBgAAAFI9AAAAUj4AAABSggAAAFJ2AAAAdAcAAABfX21vZF9fUpcAAAAoAgAAAFIVAAAAUi0AAAAoAAAAACgAAAAAc3YAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvbGxlY3Rpb25zLnB5UkEAAAA/AgAAcwgAAAAAAQYBDgEhAWMCAAAABgAAAAUAAABDAAAAc6YAAAB0AAB8AQB0AQCDAgBzEwB0AgBTdAEAgwAAfQIAeEEAfAAAagMAgwAARF0zAFwCAH0DAH0EAHwEAHwBAHwDABkXfQUAfAUAZAEAawQAcikAfAUAfAIAfAMAPHEpAHEpAFd4PwB8AQBqAwCDAABEXTEAXAIAfQMAfQQAfAMAfAAAawcAcm0AfAQAZAEAawQAcm0AfAQAfAIAfAMAPHFtAHFtAFd8AgBTKAIAAABzfwAAAEFkZCBjb3VudHMgZnJvbSB0d28gY291bnRlcnMuCgogICAgICAgID4+PiBDb3VudGVyKCdhYmJiJykgKyBDb3VudGVyKCdiY2MnKQogICAgICAgIENvdW50ZXIoeydiJzogNCwgJ2MnOiAyLCAnYSc6IDF9KQoKICAgICAgICBpAAAAACgEAAAAUkkAAABSAAAAAHQOAAAATm90SW1wbGVtZW50ZWRSLQAAACgGAAAAUhUAAABSTgAAAFI2AAAAUqEAAABSogAAAHQIAAAAbmV3Y291bnQoAAAAACgAAAAAc3YAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvbGxlY3Rpb25zLnB5dAcAAABfX2FkZF9fTgIAAHMWAAAAAAcPAQQBCQEZAQ4BDAERARkBGAERAWMCAAAABgAAAAUAAABDAAAAc6oAAAB0AAB8AQB0AQCDAgBzEwB0AgBTdAEAgwAAfQIAeEEAfAAAagMAgwAARF0zAFwCAH0DAH0EAHwEAHwBAHwDABkYfQUAfAUAZAEAawQAcikAfAUAfAIAfAMAPHEpAHEpAFd4QwB8AQBqAwCDAABEXTUAXAIAfQMAfQQAfAMAfAAAawcAcm0AfAQAZAEAawAAcm0AZAEAfAQAGHwCAHwDADxxbQBxbQBXfAIAUygCAAAAc5gAAAAgU3VidHJhY3QgY291bnQsIGJ1dCBrZWVwIG9ubHkgcmVzdWx0cyB3aXRoIHBvc2l0aXZlIGNvdW50cy4KCiAgICAgICAgPj4+IENvdW50ZXIoJ2FiYmJjJykgLSBDb3VudGVyKCdiY2NkJykKICAgICAgICBDb3VudGVyKHsnYic6IDIsICdhJzogMX0pCgogICAgICAgIGkAAAAAKAQAAABSSQAAAFIAAAAAUqUAAABSLQAAACgGAAAAUhUAAABSTgAAAFI2AAAAUqEAAABSogAAAFKmAAAAKAAAAAAoAAAAAHN2AAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2xsZWN0aW9ucy5weXQHAAAAX19zdWJfX2ECAABzFgAAAAAHDwEEAQkBGQEOAQwBEQEZARgBFQFjAgAAAAcAAAAFAAAAQwAAAHO6AAAAdAAAfAEAdAEAgwIAcxMAdAIAU3QBAIMAAH0CAHhVAHwAAGoDAIMAAERdRwBcAgB9AwB9BAB8AQB8AwAZfQUAfAQAfAUAawAAclEAfAUAbgMAfAQAfQYAfAYAZAEAawQAcikAfAYAfAIAfAMAPHEpAHEpAFd4PwB8AQBqAwCDAABEXTEAXAIAfQMAfQQAfAMAfAAAawcAcoEAfAQAZAEAawQAcoEAfAQAfAIAfAMAPHGBAHGBAFd8AgBTKAIAAABzoAAAAFVuaW9uIGlzIHRoZSBtYXhpbXVtIG9mIHZhbHVlIGluIGVpdGhlciBvZiB0aGUgaW5wdXQgY291bnRlcnMuCgogICAgICAgID4+PiBDb3VudGVyKCdhYmJiJykgfCBDb3VudGVyKCdiY2MnKQogICAgICAgIENvdW50ZXIoeydiJzogMywgJ2MnOiAyLCAnYSc6IDF9KQoKICAgICAgICBpAAAAACgEAAAAUkkAAABSAAAAAFKlAAAAUi0AAAAoBwAAAFIVAAAAUk4AAABSNgAAAFKhAAAAUqIAAAB0CwAAAG90aGVyX2NvdW50UqYAAAAoAAAAACgAAAAAc3YAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvbGxlY3Rpb25zLnB5dAYAAABfX29yX190AgAAcxgAAAAABw8BBAEJARkBCgEYAQwBEQEZARgBEQFjAgAAAAcAAAAEAAAAQwAAAHN4AAAAdAAAfAEAdAEAgwIAcxMAdAIAU3QBAIMAAH0CAHhVAHwAAGoDAIMAAERdRwBcAgB9AwB9BAB8AQB8AwAZfQUAfAQAfAUAawAAclEAfAQAbgMAfAUAfQYAfAYAZAEAawQAcikAfAYAfAIAfAMAPHEpAHEpAFd8AgBTKAIAAABzhwAAACBJbnRlcnNlY3Rpb24gaXMgdGhlIG1pbmltdW0gb2YgY29ycmVzcG9uZGluZyBjb3VudHMuCgogICAgICAgID4+PiBDb3VudGVyKCdhYmJiJykgJiBDb3VudGVyKCdiY2MnKQogICAgICAgIENvdW50ZXIoeydiJzogMX0pCgogICAgICAgIGkAAAAAKAQAAABSSQAAAFIAAAAAUqUAAABSLQAAACgHAAAAUhUAAABSTgAAAFI2AAAAUqEAAABSogAAAFKpAAAAUqYAAAAoAAAAACgAAAAAc3YAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvbGxlY3Rpb25zLnB5dAcAAABfX2FuZF9fiAIAAHMSAAAAAAcPAQQBCQEZAQoBGAEMAREBTigUAAAAUj4AAABSVgAAAFJXAAAAUhIAAABSGQAAAFKRAAAAUpcAAABSnAAAAFJcAAAAUkgAAABSWQAAAFKjAAAAUkMAAABSRQAAAFIkAAAAUkEAAABSpwAAAFKoAAAAUqoAAABSqwAAACgAAAAAKAAAAAAoAAAAAHN2AAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2xsZWN0aW9ucy5weVIAAAAAgwEAAHMiAAAABisGCAwOCQUMDQkYAwEPBgwjDBsJBAkDCQUJDwkTCRMJFFJyAAAAKAIAAAB0BQAAAGxvYWRzdAUAAABkdW1wc3QFAAAAUG9pbnRzBAAAAHgsIHl0AQAAAHhpCgAAAHQBAAAAeWkUAAAAcwMAAAB4IHljAAAAAAAAAAACAAAAQgAAAHMmAAAAZQAAWgEAZAIAWgIAZQMAZAAAhAAAgwEAWgQAZAEAhAAAWgUAUlMoAwAAAGMBAAAAAQAAAAMAAABDAAAAcxoAAAB8AABqAABkAQATfAAAagEAZAEAExdkAgATUygDAAAATmkCAAAAZwAAAAAAAOA/KAIAAABSrwAAAFKwAAAAKAEAAABSFQAAACgAAAAAKAAAAABzdgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29sbGVjdGlvbnMucHl0BQAAAGh5cG90pAIAAHMCAAAAAAJjAQAAAAEAAAAEAAAAQwAAAHMaAAAAZAEAfAAAagAAfAAAagEAfAAAagIAZgMAFlMoAgAAAE5zJAAAAFBvaW50OiB4PSU2LjNmICB5PSU2LjNmICBoeXBvdD0lNi4zZigDAAAAUq8AAABSsAAAAFKxAAAAKAEAAABSFQAAACgAAAAAKAAAAABzdgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29sbGVjdGlvbnMucHl0BwAAAF9fc3RyX1+nAgAAcwIAAAAAASgAAAAAKAYAAABSPgAAAFJWAAAAdAkAAABfX3Nsb3RzX19SgwAAAFKxAAAAUrIAAAAoAAAAACgAAAAAKAAAAABzdgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29sbGVjdGlvbnMucHlSrgAAAKICAABzBgAAAAYBBgEPA2kDAAAAaQQAAABpDgAAAGkFAAAAZwAAAAAAABxAYwAAAAAAAAAAAgAAAEIAAABzLwAAAGUAAFoBAGQAAFoCAGQCAFoDAGUEAGUFAGoGAIMBAFoHAGUIAGQBAIQBAFoJAFJTKAMAAABzSAAAAFBvaW50IGNsYXNzIHdpdGggb3B0aW1pemVkIF9tYWtlKCkgYW5kIF9yZXBsYWNlKCkgd2l0aG91dCBlcnJvci1jaGVja2luZ2MCAAAAAwAAAAUAAABLAAAAcxwAAAB8AABqAAB8AQB8AgBqAQBkAwB8AACDAwCDAQBTKAQAAABOUq8AAABSsAAAACgCAAAAUq8AAABSsAAAACgCAAAAdAUAAABfbWFrZVKJAAAAKAMAAABSFQAAAHQEAAAAX21hcFIXAAAAKAAAAAAoAAAAAHN2AAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2xsZWN0aW9ucy5weXQIAAAAX3JlcGxhY2WxAgAAcwIAAAAAASgAAAAAKAoAAABSPgAAAFJWAAAAUlcAAABSswAAAFJcAAAAUoAAAAB0BwAAAF9fbmV3X19StAAAAFJ2AAAAUrYAAAAoAAAAACgAAAAAKAAAAABzdgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29sbGVjdGlvbnMucHlSrgAAAK0CAABzCAAAAAYBBgEGAQ8BaQsAAABpFgAAAGlkAAAAdAcAAABQb2ludDNEdAEAAAB6dAsAAABUZXN0UmVzdWx0c3MQAAAAZmFpbGVkIGF0dGVtcHRlZCg2AAAAdAcAAABfX2FsbF9fdAcAAABfYWJjb2xsdAwAAABfY29sbGVjdGlvbnNSAQAAAFICAAAAdAgAAABvcGVyYXRvclIGAAAAUm8AAABSBwAAAFJNAAAAdAcAAABrZXl3b3JkUggAAABSegAAAHQDAAAAc3lzUoYAAAB0BQAAAGhlYXBxUpQAAAB0CQAAAGl0ZXJ0b29sc1IJAAAAUpsAAABSCgAAAFKYAAAAUgsAAABSmgAAAFIMAAAAUkwAAAB0BgAAAHRocmVhZFINAAAAUjwAAAB0CwAAAEltcG9ydEVycm9ydAwAAABkdW1teV90aHJlYWRSKQAAAFIEAAAAUn8AAABSagAAAFJuAAAAdAUAAABGYWxzZVIDAAAAUgAAAABSPgAAAHQHAAAAY1BpY2tsZVKsAAAAUq0AAABSWwAAAFKuAAAAdAEAAABwdA4AAABBc3NlcnRpb25FcnJvclK2AAAAdAcAAABfZmllbGRzUrgAAABSVwAAAHQHAAAAZG9jdGVzdFK6AAAAdAcAAAB0ZXN0bW9kKAAAAAAoAAAAACgAAAAAc3YAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvbGxlY3Rpb25zLnB5dAgAAAA8bW9kdWxlPgEAAABzSAAAABUDCgEMAQ0CFgEWARABDAEMARwBEAIDARQBDQEUBxb+BgIGBAYCD2MW/wAYDAIWARIBFQEeAx8IKQEJAh8HGgIZAQgCDAEPAQ==