A/MNCjFc/FVjAAAAAAAAAAAIAAAAQAAAAHOdAgAAZAAAWgAAZAEAWgEAZAIAZAMAbAIAWgIAZAIAZAMAbAMAWgMAZAIAZAMAbAQAWgQAZAIAZAMAbAUAWgUAZAIAZAQAbAYAbQcAWgcAAWUCAGoIAGoJAGUFAGoKAIMBAFoLAGUCAGoIAGoJAGUFAGoMAIMBAFoNAGUCAGoIAGoOAGUCAGoIAGoPAGUFAGoQAIMBAIMBAFoRAGUCAGoSAGQFAGsCAHLmAGQGAGURAGQHAB9qEwCDAABrBgBy5gBlAgBqCABqDwBlAgBqCABqFABlEQBlAgBqCABqFQCDAgCDAQBaEQBuAABlAgBqEgBkBQBrAgByPgFkCABlEQBkCQAfahMAgwAAawYAcj4BZQIAaggAag8AZQIAaggAahQAZREAZQIAaggAahUAZQIAaggAahUAgwMAgwEAWhEAbgAAZQIAahIAZAUAawIAcpYBZAoAZREAZAsAH2oTAIMAAGsGAHKWAWUCAGoIAGoPAGUCAGoIAGoUAGURAGUCAGoIAGoVAGUCAGoIAGoVAIMDAIMBAFoRAG4AAGQMAGUCAGoWAGsGAHLBAWUCAGoIAGoJAGUCAGoWAGQMABmDAQBaEQBuAABkDQCEAABaFwBlFwCDAABaGABkDgCEAABaGQBkDwBkAwBkEACEAgBaGwBkDwBkDwBkAwBkEQCEAwBaHABkEgCEAABaHQBkEwCEAABaHgBkFACEAABaHwBkAwBkFQCEAQBaIABlAwBqIQBkFgCDAQBaIgBlAwBqIQBkFwCDAQBaIwBlAwBqIQBkGACDAQBaJABkAwBkGQCEAQBaJQBkGgCEAABaJgBkAwBhJwBkGwCEAABaKABkHACEAABaKQBkHQCEAABaKgBkHgCEAABaKwBkHwCEAABaLABkAwBTKCAAAABzjQEAAFByb3ZpZGUgYWNjZXNzIHRvIFB5dGhvbidzIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24uICBUaGUgc3BlY2lmaWMKY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgYXZhaWxhYmxlIGRlcGVuZCBoZWF2aWx5IG9uIHRoZSBwbGF0Zm9ybSBhbmQKY29uZmlndXJhdGlvbi4gIFRoZSB2YWx1ZXMgbWF5IGJlIHJldHJpZXZlZCB1c2luZwpnZXRfY29uZmlnX3ZhcihuYW1lKSwgYW5kIHRoZSBsaXN0IG9mIHZhcmlhYmxlcyBpcyBhdmFpbGFibGUgdmlhCmdldF9jb25maWdfdmFycygpLmtleXMoKS4gIEFkZGl0aW9uYWwgY29udmVuaWVuY2UgZnVuY3Rpb25zIGFyZSBhbHNvCmF2YWlsYWJsZS4KCldyaXR0ZW4gYnk6ICAgRnJlZCBMLiBEcmFrZSwgSnIuCkVtYWlsOiAgICAgICAgPGZkcmFrZUBhY20ub3JnPgpzBAAAACRJZCRp/////04oAQAAAHQWAAAARGlzdHV0aWxzUGxhdGZvcm1FcnJvcnQCAAAAbnR0BwAAAHBjYnVpbGRp+P///3MFAAAAXHBjXHZp9v///3MOAAAAXHBjYnVpbGRcYW1kNjRp8v///3QUAAAAX1BZVEhPTl9QUk9KRUNUX0JBU0VjAAAAAAEAAAAGAAAAQwAAAHM9AAAAeDYAZAQARF0uAH0AAHQAAGoBAGoCAHQAAGoBAGoDAHQEAGQDAHwAAIMDAIMBAHIHAHQFAFNxBwBXdAYAUygFAAAATnMKAAAAU2V0dXAuZGlzdHMLAAAAU2V0dXAubG9jYWx0BwAAAE1vZHVsZXMoAgAAAHMKAAAAU2V0dXAuZGlzdHMLAAAAU2V0dXAubG9jYWwoBwAAAHQCAAAAb3N0BAAAAHBhdGh0BgAAAGlzZmlsZXQEAAAAam9pbnQMAAAAcHJvamVjdF9iYXNldAQAAABUcnVldAUAAABGYWxzZSgBAAAAdAIAAABmbigAAAAAKAAAAABzWgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL3N5c2NvbmZpZy5weXQNAAAAX3B5dGhvbl9idWlsZDIAAABzCAAAAAABDQEkAQgBYwAAAAAAAAAAAgAAAEMAAABzCwAAAHQAAGoBAGQBACBTKAIAAABzlgAAAFJldHVybiBhIHN0cmluZyBjb250YWluaW5nIHRoZSBtYWpvciBhbmQgbWlub3IgUHl0aG9uIHZlcnNpb24sCiAgICBsZWF2aW5nIG9mZiB0aGUgcGF0Y2hsZXZlbC4gIFNhbXBsZSByZXR1cm4gdmFsdWVzIGNv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AwBTbhMAdAsAZAsAdAMAagQAFoMBAIIBAGQMAFMoDQAAAHNJAgAAUmV0dXJuIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgUHl0aG9uIGxpYnJhcnkgKHN0YW5kYXJkIG9yCiAgICBzaXRlIGFkZGl0aW9ucykuCgogICAgSWYgJ3BsYXRfc3BlY2lmaWMnIGlzIHRydWUsIHJldHVybiB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcKICAgIHBsYXRmb3JtLXNwZWNpZmljIG1vZHVsZXMsIGkuZS4gYW55IG1vZHVsZSBmcm9tIGEgbm9uLXB1cmUtUHl0aG9uCiAgICBtb2R1bGUgZGlzdHJpYnV0aW9uOyBvdGhlcndpc2UsIHJldHVybiB0aGUgcGxhdGZvcm0tc2hhcmVkIGxpYnJhcnkKICAgIGRpcmVjdG9yeS4gIElmICdzdGFuZGFyZF9saWInIGlzIHRydWUsIHJldHVybiB0aGUgZGlyZWN0b3J5CiAgICBjb250YWluaW5nIHN0YW5kYXJkIFB5dGhvbiBsaWJyYXJ5IG1vZHVsZXM7IG90aGVyd2lzZSwgcmV0dXJuIHRoZQogICAgZGlyZWN0b3J5IGZvciBzaXRlLXNwZWNpZmljIG1vZHVsZXMuCgogICAgSWYgJ3ByZWZpeCcgaXMgc3VwcGxpZWQsIHVzZSBpdCBpbnN0ZWFkIG9mIHN5cy5wcmVmaXggb3IKICAgIHN5cy5leGVjX3ByZWZpeCAtLSBpLmUuLCBpZ25vcmUgJ3BsYXRfc3BlY2lmaWMnLgogICAgUhEAAABSEgAAAGkAAAAAdAMAAABsaWJSFgAAAHMNAAAAc2l0ZS1wYWNrYWdlc1IBAAAAdAMAAABMaWJzAwAAADIuMlIXAAAAcz8AAABJIGRvbid0IGtub3cgd2hlcmUgUHl0aG9uIGluc3RhbGxzIGl0cyBsaWJyYXJ5IG9uIHBsYXRmb3JtICclcydOKAwAAABSGAAAAFIZAAAAUhoAAABSBQAAAFIbAAAAUg4AAABSDwAAAFIcAAAAUgYAAABSCAAAAFIQAAAAUgAAAAAoBAAAAFIjAAAAdAwAAABzdGFuZGFyZF9saWJSJAAAAHQJAAAAbGlicHl0aG9uKAAAAAAoAAAAAHNaAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvc3lzY29uZmlnLnB5dA4AAABnZXRfcHl0aG9uX2xpYmoAAABzKgAAAAAODAEVAicBDAETAQYBBAIWAg8BBgETAg8BBAIZAg8BBgETAhkDAwEDAWMBAAAAEAAAAA8AAABDAAAAc9QCAABkCQB9AQB8AABqAQBkAQBrAgByHgB0AgB9AQBuMwB8AABqAQBkAgBrAgByUQB0AwBqBABqBQBkAwCDAQBkBABrBQByUQB0AgB9AQBxUQBuAAB8AQB0AgBrAgBy0AJ0AwBqBgBkBQBrAgBypwB0BwBqCABkBgBkBwCDAgBzpwBkCABkCQBsCQB9AgB8AgBqCgB0BwCDAQABZAoAdAcAZAYAPHGnAG4AAHQLAGQLAGQMAGQNAGQOAGQPAGQQAGQRAGQSAGQTAIMJAFwJAH0DAH0EAH0FAH0GAH0HAH0IAH0JAH0KAH0LAGQJAH0MAGQLAHQMAGoNAGsGAHILAXQMAGoNAGQLABl9AwBuAABkDAB0DABqDQBrBgByKgF0DABqDQBkDAAZfQQAbgAAZBAAdAwAag0AawYAckkBdAwAag0AZBAAGX0IAG4AAGQUAHQMAGoNAGsGAHJoAXQMAGoNAGQUABl9DQBuCgB8AwBkFQAXfQ0AZBYAdAwAag0AawYAcpkBfAgAZBcAF3QMAGoNAGQWABkXfQgAbgAAZA4AdAwAag0AawYActUBfAUAZBcAF3QMAGoNAGQOABkXfQYAfAgAZBcAF3QMAGoNAGQOABkXfQgAbgAAZBgAdAwAag0AawYAciYCfA0AZBcAF3QMAGoNAGQYABkXfQ0AfAYAZBcAF3QMAGoNAGQYABkXfQYAfAgAZBcAF3QMAGoNAGQYABkXfQgAbgAAZBIAdAwAag0AawYAckUCdAwAag0AZBIAGX0KAG4AAGQTAHQMAGoNAGsGAHJsAnwKAGQXABd0DABqDQBkEwAZF30OAG4OAHwKAGQXABd8CwAXfQ4AfAMAZBcAF3wGABd9DwB8AABqDgBkGQB8DQBkGgB8DwBkGwB8DwBkFwAXfAcAF2QcAHwEAGQdAHwIAGQeAHwDAGQfAHwOAIMABwF8CQB8AABfDwBuAABkCQBTKCAAAABzhAEAAERvIGFueSBwbGF0Zm9ybS1zcGVjaWZpYyBjdXN0b21pemF0aW9uIG9mIGEgQ0NvbXBpbGVyIGluc3RhbmNlLgoKICAgIE1haW5seSBuZWVkZWQgb24gVW5peCwgc28gd2UgY2FuIHBsdWcgaW4gdGhlIGluZm9ybWF0aW9uIHRoYXQKICAgIHZhcmllcyBhY3Jvc3MgVW5pY2VzIGFuZCBpcyBzdG9yZWQgaW4gUHl0aG9uJ3MgTWFrZWZpbGUuCgogICAgTk9URTogKGtub3duIGxpbWl0YXRpb24gb2YgcHl0aG9uIGJ1aWxkL2luc3RhbGwgc3lzdGVtKQogICAgSW4gY3Jvc3MtYnVpbGQgZW52aXJvbm1lbnQgbWFrZSBtYWNyb3MgbGlrZSBDQyBhbmQgTERTSEFSRUQKICAgIGNvbnRhaW4gY3Jvc3MtY29tcGlsZXIvbGlua2VyIGluc3RlYWQgb2YgaG9zdCBjb21waWxlci9saW5rZXIuCiAgICB0BAAAAHVuaXh0BwAAAG1pbmd3MzJSEgAAAGkAAAAAdAYAAABkYXJ3aW50FwAAAENVU1RPTUlaRURfT1NYX0NPTVBJTEVSdAAAAABp/////05SCgAAAHQCAAAAQ0N0AwAAAENYWHQDAAAAT1BUdAYAAABDRkxBR1N0CAAAAENDU0hBUkVEdAgAAABMRFNIQVJFRHQCAAAAU090AgAAAEFSdAcAAABBUkZMQUdTdAMAAABDUFBzAwAAACAtRXQHAAAATERGTEFHU3QBAAAAIHQIAAAAQ1BQRkxBR1N0DAAAAHByZXByb2Nlc3NvcnQIAAAAY29tcGlsZXJ0CwAAAGNvbXBpbGVyX3NvdAwAAABjb21waWxlcl9jeHh0CQAAAGxpbmtlcl9zb3QKAAAAbGlua2VyX2V4ZXQIAAAAYXJjaGl2ZXIoEAAAAFIYAAAAdA0AAABjb21waWxlcl90eXBlUgoAAABSDgAAAFIPAAAAUhwAAAB0CAAAAHBsYXRmb3JtdAwAAABfY29uZmlnX3ZhcnN0AwAAAGdldHQMAAAAX29zeF9zdXBwb3J0dBIAAABjdXN0b21pemVfY29tcGlsZXJ0DwAAAGdldF9jb25maWdfdmFyc1IFAAAAdAcAAABlbnZpcm9udA8AAABzZXRfZXhlY3V0YWJs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aQAAYQAAdAYAdAAAZAIAPHQHAHQAAGQDADx0CABqCQBkBABrAgByfQBkBQBkBgBsCgB9AgB8AgBqCwB0AACDAQABcX0AbgAAfAAAcrQAZwAAfQMAeCQAfAAARF0cAH0EAHwDAGoMAHQAAGoDAHwEAIMBAIMBAAFxkABXfAMAU3QAAFNkBgBTKAcAAABz6gEAAFdpdGggbm8gYXJndW1lbnRzLCByZXR1cm4gYSBkaWN0aW9uYXJ5IG9mIGFsbCBjb25maWd1cmF0aW9uCiAgICB2YXJpYWJsZXMgcmVsZXZhbnQgZm9yIHRoZSBjdXJyZW50IHBsYXRmb3JtLiAgR2VuZXJhbGx5IHRoaXMgaW5jbHVkZXMKICAgIGV2ZXJ5dGhpbmcgbmVlZGVkIHRvIGJ1aWxkIGV4dGVuc2lvbnMgYW5kIGluc3RhbGwgYm90aCBwdXJlIG1vZHVsZXMgYW5kCiAgICBleHRlbnNpb25zLiAgT24gVW5peCwgdGhpcyBtZWFucyBldmVyeSB2YXJpYWJsZSBkZWZpbmVkIGluIFB5dGhvbidzCiAgICBpbnN0YWxsZWQgTWFrZWZpbGU7IG9uIFdpbmRvd3MgYW5kIE1hYyBPUyBpdCdzIGEgbXVjaCBzbWFsbGVyIHNldC4KCiAgICBXaXRoIGFyZ3VtZW50cywgcmV0dXJuIGEgbGlzdCBvZiB2YWx1ZXMgdGhhdCByZXN1bHQgZnJvbSBsb29raW5nIHVwCiAgICBlYWNoIGFyZ3VtZW50IGluIHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlIGRpY3Rpb25hcnkuCiAgICB0BgAAAF9pbml0X1IkAAAAdAsAAABleGVjX3ByZWZpeFIvAAAAaf////9OKA0AAABSSAAAAFIYAAAAdAcAAABnbG9iYWxzUkkAAABSBQAAAFIbAAAAUhoAAABSGQAAAFIOAAAAUkcAAABSSgAAAHQVAAAAY3VzdG9taXplX2NvbmZpZ192YXJzdAYAAABhcHBlbmQoBQAAAHQEAAAAYXJnc3QEAAAAZnVuY1JKAAAAdAQAAAB2YWxzUhsAAAAoAAAAACgAAAAAc1oAAAAvYnVpbGRib3QvdG1wL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9saWIvcHl0aG9uMi43L2Rpc3R1dGlscy9zeXNjb25maWcucHlSTAAAAMMBAABzIAAAAAALDAEZAQYBCgIGBQoBCgQPAQwBEwIGAQYBDQEaAQQCYwEAAAABAAAAAgAAAEMAAABzEAAAAHQAAIMAAGoBAHwAAIMBAFMoAQAAAHOTAAAAUmV0dXJuIHRoZSB2YWx1ZSBvZiBhIHNpbmdsZSB2YXJpYWJsZSB1c2luZyB0aGUgZGljdGlvbmFyeQogICAgcmV0dXJuZWQgYnkgJ2dldF9jb25maWdfdmFycygpJy4gIEVxdWl2YWxlbnQgdG8KICAgIGdldF9jb25maWdfdmFycygpLmdldChuYW1lKQogICAgKAIAAABSTAAAAFJJAAAAKAEAAABSGwAAACgAAAAAKAAAAABzWgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL3N5c2NvbmZpZy5weVIhAAAA6QEAAHMCAAAAAAUoLQAAAHQHAAAAX19kb2NfX3QMAAAAX19yZXZpc2lvbl9fUgUAAABSZQAAAHQGAAAAc3RyaW5nUg4AAAB0EAAAAGRpc3R1dGlscy5lcnJvcnNSAAAAAFIGAAAAUiIAAABSJAAAAFIaAAAAUqQAAABSGQAAAFIeAAAAUh8AAABSIAAAAFIJAAAAUhsAAAB0BQAAAGxvd2VyUggAAAB0BgAAAHBhcmRpclJNAAAAUg0AAABSHQAAAFIQAAAAUhgAAABSJwAAAFIsAAAAUksAAABSYAAAAFJkAAAAUnQAAABSZgAAAFJ7AAAAUn8AAABSgQAAAFKRAAAAUpYAAABSSAAAAFKZAAAAUqEAAABSogAAAFJMAAAAUiEAAAAoAAAAACgAAAAAKAAAAABzWgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL3N5c2NvbmZpZy5weXQIAAAAPG1vZHVsZT4KAAAAc04AAAAGAgYCDAEMAQwBDAIQAxUBFQUhASUBKgIlAR4BFQIlAR4BFQMPAhwHCQUJAwkIDygSLwlNCRIJCAwfDwEPAQ8CDFMJGQYCCQkJGAkRCSY=