A/MNCmL5IVRjAAAAAAAAAAAYAAAAQAAAAHM3AwAAZAAAWgAAZAEAZAIAbAEAWgEAZAEAZAIAbAIAWgIAeQ4AZAEAZAMAbAMAVFduIwAEZQQAawoAclEAAVoFAAFlBgBkBABlBQAWgwEAggEAbgEAWGQFAGQGAGQHAGQIAGQJAGQKAGQLAGQMAGQNAGQOAGQPAGQQAGQRAGQSAGQTAGQUAGQVAGQWAGQXAGQYAGQZAGQaAGQbAGQcAGcYAFoHAGQdAFoIAGQeAARaCQBaCgBkHwAEWgsAWgwAZCAAWg0AZCEAWg4AZQIAag8AZCIAawIAcugAZQoABFoQAFoRAGUNAFoSAG4QAGUMAARaEABaEQBlDgBaEgBlCgBaEwBlDABaFABlDQBaFQBlDgBaFgBkIwBlFwBmAQBkJACEAACDAABZWhgAZCUAZE4AZCYAhAAAgwAAWVoZAGQnAGUaAGYBAGQoAIQAAIMAAFlaGwBkKQBlGwBmAQBkKgCEAACDAABZWhwAZCsAZRoAZgEAZCwAhAAAgwAAWVodAGQtAGUdAGYBAGQuAIQAAIMAAFlaHgBkLwBlGQBmAQBkMACEAACDAABZWh8AZDEAZRkAZgEAZDIAhAAAgwAAWVogAGQzAGRPAGQ0AIQAAIMAAFlaIQBkNQBkUABkNgCEAACDAABZWiIAZDcAZAIAZDgAZDkAZDoAhAQAWiQAZAIAZDgAZDsAhAIAWiUAZDwAhAAAWiYAZD0AhAAAWicAZD4AhAAAWigAZD8AhAAAWikAZEAAhAAAWioAZEEAhAAAWisAZDgAZEIAhAEAWiwAZDgAZEMAhAEAWi0AZEQAhAAAWi4AZEUAhAAAWi8AeUAAZTAAZDgAgwEAWjEAZTAAZEYAgwEAWjIAZTAAZEcAgwEAWjMAZTAAZEgAgwEAWjQAZTAAZEkAgwEAWjUAV24vAARlNgBrCgBy2AIBAQFkAgBaMQBkAgBaMgBkAgBaMwBkAgBaNABkAgBaNQBuAQBYZEoAWjcAZTcAcvQCZAEAZAIAbDgAWjgAbgAAZTkAZEsAawIAcjMDZSUAZQIAajoAZEwAZE0AgwMAZQIAXzoAZSUAZQIAajsAZE0AZEwAgwMAZQIAXzsAbgAAZAIAUyhRAAAAc54AAAAgY29kZWNzIC0tIFB5dGhvbiBDb2RlYyBSZWdpc3RyeSwgQVBJIGFuZCBoZWxwZXJzLgoKCldyaXR0ZW4gYnkgTWFyYy1BbmRyZSBMZW1idXJnIChtYWxAbGVtYnVyZy5jb20pLgoKKGMpIENvcHlyaWdodCBDTlJJLCBBbGwgUmlnaHRzIFJlc2VydmVkLiBOTyBXQVJSQU5UWS4KCmn/////TigBAAAAdAEAAAAqcyUAAABGYWlsZWQgdG8gbG9hZCB0aGUgYnVpbHRpbiBjb2RlY3M6ICVzdAgAAAByZWdpc3RlcnQGAAAAbG9va3VwdAQAAABvcGVudAsAAABFbmNvZGVkRmlsZXQDAAAAQk9NdAYAAABCT01fQkV0BgAAAEJPTV9MRXQIAAAAQk9NMzJfQkV0CAAAAEJPTTMyX0xFdAgAAABCT002NF9CRXQIAAAAQk9NNjRfTEV0CAAAAEJPTV9VVEY4dAkAAABCT01fVVRGMTZ0DAAAAEJPTV9VVEYxNl9MRXQMAAAAQk9NX1VURjE2X0JFdAkAAABCT01fVVRGMzJ0DAAAAEJPTV9VVEYzMl9MRXQMAAAAQk9NX1VURjMyX0JFdA0AAABzdHJpY3RfZXJyb3JzdA0AAABpZ25vcmVfZXJyb3JzdA4AAAByZXBsYWNlX2Vycm9yc3QYAAAAeG1sY2hhcnJlZnJlcGxhY2VfZXJyb3JzdA4AAAByZWdpc3Rlcl9lcnJvcnQMAAAAbG9va3VwX2Vycm9ycwMAAADvu79zAgAAAP/+cwIAAAD+/3MEAAAA//4AAHQEAAAAAAD+/3QGAAAAbGl0dGxldAkAAABDb2RlY0luZm9jAAAAAAAAAAAGAAAAQgAAAHMpAAAAZQAAWgEAZAIAZAIAZAIAZAIAZAIAZAAAhAUAWgMAZAEAhAAAWgQAUlMoAwAAAGMIAAAACQAAAAYAAABDAAAAc2EAAAB0AABqAQB8AAB8AQB8AgB8AwB8BABmBACDAgB9CAB8BwB8CABfAgB8AQB8CABfAwB8AgB8CABfBAB8BQB8CABfBQB8BgB8CABfBgB8BAB8CABfBwB8AwB8CABfCAB8CABTKAEAAABOKAkAAAB0BQAAAHR1cGxldAcAAABfX25ld19fdAQAAABuYW1ldAYAAABlbmNvZGV0BgAAAGRlY29kZXQSAAAAaW5jcmVtZW50YWxlbmNvZGVydBIAAABpbmNyZW1lbnRhbGRlY29kZXJ0DAAAAHN0cmVhbXdyaXRlcnQMAAAAc3RyZWFtcmVhZGVyKAkAAAB0AwAAAGNsc1IfAAAAUiAAAABSJAAAAFIjAAAAUiEAAABSIgAAAFIeAAAAdAQAAABzZWxmKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHlSHQAAAE0AAABzEgAAAAACHgEJAQkBCQEJAQkBCQEJAWMBAAAAAQAAAAYAAABDAAAAcykAAABkAQB8AABqAABqAQB8AABqAABqAgB8AABqAwB0BAB8AACDAQBmBAAWUygCAAAATnMmAAAAPCVzLiVzIG9iamVjdCBmb3IgZW5jb2RpbmcgJXMgYXQgMHgleD4oBQAAAHQJAAAAX19jbGFzc19fdAoAAABfX21vZHVsZV9fdAgAAABfX25hbWVfX1IeAAAAdAIAAABpZCgBAAAAUiYAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weXQIAAAAX19yZXByX19ZAAAAcwIAAAAAAU4oBQAAAFIpAAAAUigAAAB0BAAAAE5vbmVSHQAAAFIrAAAAKAAAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weVIbAAAASwAAAHMGAAAABgIGARILdAUAAABDb2RlY2MAAAAAAAAAAAIAAABCAAAAcyYAAABlAABaAQBkAABaAgBkAQBkAgCEAQBaAwBkAQBkAwCEAQBaBABSUygEAAAAc60DAAAgRGVmaW5lcyB0aGUgaW50ZXJmYWNlIGZvciBzdGF0ZWxlc3MgZW5jb2RlcnMvZGVjb2RlcnMuCgogICAgICAgIFRoZSAuZW5jb2RlKCkvLmRlY29kZSgpIG1ldGhvZHMgbWF5IHVzZSBkaWZmZXJlbnQgZXJyb3IKICAgICAgICBoYW5kbGluZyBzY2hlbWVzIGJ5IHByb3ZpZGluZyB0aGUgZXJyb3JzIGFyZ3VtZW50LiBUaGVzZQogICAgICAgIHN0cmluZyB2YWx1ZXMgYXJlIHByZWRlZmluZWQ6CgogICAgICAgICAnc3RyaWN0JyAtIHJhaXNlIGEgVmFsdWVFcnJvciBlcnJvciAob3IgYSBzdWJjbGFzcykKICAgICAgICAgJ2lnbm9yZScgLSBpZ25vcmUgdGhlIGNoYXJhY3RlciBhbmQgY29udGludWUgd2l0aCB0aGUgbmV4dAogICAgICAgICAncmVwbGFjZScgLSByZXBsYWNlIHdpdGggYSBzdWl0YWJsZSByZXBsYWNlbWVudCBjaGFyYWN0ZXI7CiAgICAgICAgICAgICAgICAgICAgUHl0aG9uIHdpbGwgdXNlIHRoZSBvZmZpY2lhbCBVK0ZGRkQgUkVQTEFDRU1FTlQKICAgICAgICAgICAgICAgICAgICBDSEFSQUNURVIgZm9yIHRoZSBidWlsdGluIFVuaWNvZGUgY29kZWNzIG9uCiAgICAgICAgICAgICAgICAgICAgZGVjb2RpbmcgYW5kICc/JyBvbiBlbmNvZGluZy4KICAgICAgICAgJ3htbGNoYXJyZWZyZXBsYWNlJyAtIFJlcGxhY2Ugd2l0aCB0aGUgYXBwcm9wcmlhdGUgWE1MCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIgcmVmZXJlbmNlIChvbmx5IGZvciBlbmNvZGluZykuCiAgICAgICAgICdiYWNrc2xhc2hyZXBsYWNlJyAgLSBSZXBsYWNlIHdpdGggYmFja3NsYXNoZWQgZXNjYXBlIHNlcXVlbmNlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9ubHkgZm9yIGVuY29kaW5nKS4KCiAgICAgICAgVGhlIHNldCBvZiBhbGxvd2VkIHZhbHVlcyBjYW4gYmUgZXh0ZW5kZWQgdmlhIHJlZ2lzdGVyX2Vycm9yLgoKICAgIHQGAAAAc3RyaWN0YwMAAAADAAAAAQAAAEMAAABzCgAAAHQAAIIBAGQBAFMoAgAAAHMrAgAAIEVuY29kZXMgdGhlIG9iamVjdCBpbnB1dCBhbmQgcmV0dXJucyBhIHR1cGxlIChvdXRwdXQKICAgICAgICAgICAgb2JqZWN0LCBsZW5ndGggY29uc3VtZWQpLgoKICAgICAgICAgICAgZXJyb3JzIGRlZmluZXMgdGhlIGVycm9yIGhhbmRsaW5nIHRvIGFwcGx5LiBJdCBkZWZhdWx0cyB0bwogICAgICAgICAgICAnc3RyaWN0JyBoYW5kbGluZy4KCiAgICAgICAgICAgIFRoZSBtZXRob2QgbWF5IG5vdCBzdG9yZSBzdGF0ZSBpbiB0aGUgQ29kZWMgaW5zdGFuY2UuIFVzZQogICAgICAgICAgICBTdHJlYW1Db2RlYyBmb3IgY29kZWNzIHdoaWNoIGhhdmUgdG8ga2VlcCBzdGF0ZSBpbiBvcmRlciB0bwogICAgICAgICAgICBtYWtlIGVuY29kaW5nL2RlY29kaW5nIGVmZmljaWVudC4KCiAgICAgICAgICAgIFRoZSBlbmNvZGVyIG11c3QgYmUgYWJsZSB0byBoYW5kbGUgemVybyBsZW5ndGggaW5wdXQgYW5kCiAgICAgICAgICAgIHJldHVybiBhbiBlbXB0eSBvYmplY3Qgb2YgdGhlIG91dHB1dCBvYmplY3QgdHlwZSBpbiB0aGlzCiAgICAgICAgICAgIHNpdHVhdGlvbi4KCiAgICAgICAgTigBAAAAdBMAAABOb3RJbXBsZW1lbnRlZEVycm9yKAMAAABSJgAAAHQFAAAAaW5wdXR0BgAAAGVycm9ycygAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5Uh8AAAByAAAAcwIAAAAAEWMDAAAAAwAAAAEAAABDAAAAcwoAAAB0AACCAQBkAQBTKAIAAABz+gIAACBEZWNvZGVzIHRoZSBvYmplY3QgaW5wdXQgYW5kIHJldHVybnMgYSB0dXBsZSAob3V0cHV0CiAgICAgICAgICAgIG9iamVjdCwgbGVuZ3RoIGNvbnN1bWVkKS4KCiAgICAgICAgICAgIGlucHV0IG11c3QgYmUgYW4gb2JqZWN0IHdoaWNoIHByb3ZpZGVzIHRoZSBiZl9nZXRyZWFkYnVmCiAgICAgICAgICAgIGJ1ZmZlciBzbG90LiBQeXRob24gc3RyaW5ncywgYnVmZmVyIG9iamVjdHMgYW5kIG1lbW9yeQogICAgICAgICAgICBtYXBwZWQgZmlsZXMgYXJlIGV4YW1wbGVzIG9mIG9iamVjdHMgcHJvdmlkaW5nIHRoaXMgc2xvdC4KCiAgICAgICAgICAgIGVycm9ycyBkZWZpbmVzIHRoZSBlcnJvciBoYW5kbGluZyB0byBhcHBseS4gSXQgZGVmYXVsdHMgdG8KICAgICAgICAgICAgJ3N0cmljdCcgaGFuZGxpbmcuCgogICAgICAgICAgICBUaGUgbWV0aG9kIG1heSBub3Qgc3RvcmUgc3RhdGUgaW4gdGhlIENvZGVjIGluc3RhbmNlLiBVc2UKICAgICAgICAgICAgU3RyZWFtQ29kZWMgZm9yIGNvZGVjcyB3aGljaCBoYXZlIHRvIGtlZXAgc3RhdGUgaW4gb3JkZXIgdG8KICAgICAgICAgICAgbWFrZSBlbmNvZGluZy9kZWNvZGluZyBlZmZpY2llbnQuCgogICAgICAgICAgICBUaGUgZGVjb2RlciBtdXN0IGJlIGFibGUgdG8gaGFuZGxlIHplcm8gbGVuZ3RoIGlucHV0IGFuZAogICAgICAgICAgICByZXR1cm4gYW4gZW1wdHkgb2JqZWN0IG9mIHRoZSBvdXRwdXQgb2JqZWN0IHR5cGUgaW4gdGhpcwogICAgICAgICAgICBzaXR1YXRpb24uCgogICAgICAgIE4oAQAAAFIvAAAAKAMAAABSJgAAAFIwAAAAUjEAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weVIgAAAAhQAAAHMCAAAAABUoBQAAAFIpAAAAUigAAAB0BwAAAF9fZG9jX19SHwAAAFIgAAAAKAAAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weVItAAAAXAAAAHMGAAAABhUGAQwTdBIAAABJbmNyZW1lbnRhbEVuY29kZXJjAAAAAAAAAAACAAAAQgAAAHNBAAAAZQAAWgEAZAAAWgIAZAEAZAIAhAEAWgMAZQQAZAMAhAEAWgUAZAQAhAAAWgYAZAUAhAAAWgcAZAYAhAAAWggAUlMoBwAAAHPoAAAACiAgICBBbiBJbmNyZW1lbnRhbEVuY29kZXIgZW5jb2RlcyBhbiBpbnB1dCBpbiBtdWx0aXBsZSBzdGVwcy4gVGhlIGlucHV0IGNhbiBiZQogICAgcGFzc2VkIHBpZWNlIGJ5IHBpZWNlIHRvIHRoZSBlbmNvZGUoKSBtZXRob2QuIFRoZSBJbmNyZW1lbnRhbEVuY29kZXIgcmVtZW1iZXJzCiAgICB0aGUgc3RhdGUgb2YgdGhlIEVuY29kaW5nIHByb2Nlc3MgYmV0d2VlbiBjYWxscyB0byBlbmNvZGUoKS4KICAgIFIuAAAAYwIAAAACAAAAAgAAAEMAAABzFgAAAHwBAHwAAF8AAGQBAHwAAF8BAGQCAFMoAwAAAHP0AAAACiAgICAgICAgQ3JlYXRlcyBhbiBJbmNyZW1lbnRhbEVuY29kZXIgaW5zdGFuY2UuCgogICAgICAgIFRoZSBJbmNyZW1lbnRhbEVuY29kZXIgbWF5IHVzZSBkaWZmZXJlbnQgZXJyb3IgaGFuZGxpbmcgc2NoZW1lcyBieQogICAgICAgIHByb3ZpZGluZyB0aGUgZXJyb3JzIGtleXdvcmQgYXJndW1lbnQuIFNlZSB0aGUgbW9kdWxlIGRvY3N0cmluZwogICAgICAgIGZvciBhIGxpc3Qgb2YgcG9zc2libGUgdmFsdWVzLgogICAgICAgIHQAAAAATigCAAAAUjEAAAB0BgAAAGJ1ZmZlcigCAAAAUiYAAABSMQAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5dAgAAABfX2luaXRfX6IAAABzBAAAAAAICQFjAwAAAAMAAAABAAAAQwAAAHMKAAAAdAAAggEAZAEAUygCAAAAc0EAAAAKICAgICAgICBFbmNvZGVzIGlucHV0IGFuZCByZXR1cm5zIHRoZSByZXN1bHRpbmcgb2JqZWN0LgogICAgICAgIE4oAQAAAFIvAAAAKAMAAABSJgAAAFIwAAAAdAUAAABmaW5hbCgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5Uh8AAACtAAAAcwIAAAAABGMBAAAAAQAAAAEAAABDAAAAcwQAAABkAQBTKAIAAABzOgAAAAogICAgICAgIFJlc2V0cyB0aGUgZW5jb2RlciB0byB0aGUgaW5pdGlhbCBzdGF0ZS4KICAgICAgICBOKAAAAAAoAQAAAFImAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHl0BQAAAHJlc2V0swAAAHMAAAAAYwEAAAABAAAAAQAAAEMAAABzBAAAAGQBAFMoAgAAAHM6AAAACiAgICAgICAgUmV0dXJuIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBlbmNvZGVyLgogICAgICAgIGkAAAAAKAAAAAAoAQAAAFImAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHl0CAAAAGdldHN0YXRluAAAAHMCAAAAAARjAgAAAAIAAAABAAAAQwAAAHMEAAAAZAEAUygCAAAAc2wAAAAKICAgICAgICBTZXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGVuY29kZXIuIHN0YXRlIG11c3QgaGF2ZSBiZWVuCiAgICAgICAgcmV0dXJuZWQgYnkgZ2V0c3RhdGUoKS4KICAgICAgICBOKAAAAAAoAgAAAFImAAAAdAUAAABzdGF0ZSgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5dAgAAABzZXRzdGF0Zb4AAABzAAAAACgJAAAAUikAAABSKAAAAFIyAAAAUjYAAAB0BQAAAEZhbHNlUh8AAABSOAAAAFI5AAAAUjsAAAAoAAAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5UjMAAACcAAAAcwwAAAAGBQYBDAsMBgkFCQZ0GgAAAEJ1ZmZlcmVkSW5jcmVtZW50YWxFbmNvZGVyYwAAAAAAAAAAAgAAAEIAAABzSgAAAGUAAFoBAGQAAFoCAGQBAGQCAIQBAFoDAGQDAIQAAFoEAGUFAGQEAIQBAFoGAGQFAIQAAFoHAGQGAIQAAFoIAGQHAIQAAFoJAFJTKAgAAABzwAAAAAogICAgVGhpcyBzdWJjbGFzcyBvZiBJbmNyZW1lbnRhbEVuY29kZXIgY2FuIGJlIHVzZWQgYXMgdGhlIGJhc2VjbGFzcyBmb3IgYW4KICAgIGluY3JlbWVudGFsIGVuY29kZXIgaWYgdGhlIGVuY29kZXIgbXVzdCBrZWVwIHNvbWUgb2YgdGhlIG91dHB1dCBpbiBhCiAgICBidWZmZXIgYmV0d2VlbiBjYWxscyB0byBlbmNvZGUoKS4KICAgIFIuAAAAYwIAAAACAAAAAwAAAEMAAABzHQAAAHQAAGoBAHwAAHwBAIMCAAFkAQB8AABfAgBkAABTKAIAAABOUjQAAAAoAwAAAFIzAAAAUjYAAABSNQAAACgCAAAAUiYAAABSMQAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5UjYAAADKAAAAcwQAAAAAARABYwQAAAAEAAAAAQAAAEMAAABzCgAAAHQAAIIBAGQAAFMoAQAAAE4oAQAAAFIvAAAAKAQAAABSJgAAAFIwAAAAUjEAAABSNwAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5dA4AAABfYnVmZmVyX2VuY29kZc4AAABzAgAAAAADYwMAAAAGAAAABAAAAEMAAABzPAAAAHwAAGoAAHwBABd9AwB8AABqAQB8AwB8AABqAgB8AgCDAwBcAgB9BAB9BQB8AwB8BQAffAAAXwAAfAQAUygBAAAATigDAAAAUjUAAABSPgAAAFIxAAAAKAYAAABSJgAAAFIwAAAAUjcAAAB0BAAAAGRhdGF0BgAAAHJlc3VsdHQIAAAAY29uc3VtZWQoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weVIfAAAA0wAAAHMIAAAAAAINAR4CDQFjAQAAAAEAAAACAAAAQwAAAHMaAAAAdAAAagEAfAAAgwEAAWQBAHwAAF8CAGQAAFMoAgAAAE5SNAAAACgDAAAAUjMAAABSOAAAAFI1AAAAKAEAAABSJgAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5UjgAAADbAAAAcwQAAAAAAQ0BYwEAAAABAAAAAgAAAEMAAABzDQAAAHwAAGoAAHAMAGQBAFMoAgAAAE5pAAAAACgBAAAAUjUAAAAoAQAAAFImAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHlSOQAAAN8AAABzAgAAAAABYwIAAAACAAAAAwAAAEMAAABzEwAAAHwBAHAJAGQBAHwAAF8AAGQAAFMoAgAAAE5SNAAAACgBAAAAUjUAAAAoAgAAAFImAAAAUjoAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weVI7AAAA4gAAAHMCAAAAAAEoCgAAAFIpAAAAUigAAABSMgAAAFI2AAAAUj4AAABSPAAAAFIfAAAAUjgAAABSOQAAAFI7AAAAKAAAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weVI9AAAAxAAAAHMOAAAABgUGAQwECQUMCAkECQN0EgAAAEluY3JlbWVudGFsRGVjb2RlcmMAAAAAAAAAAAIAAABCAAAAc0EAAABlAABaAQBkAABaAgBkAQBkAgCEAQBaAwBlBABkAwCEAQBaBQBkBACEAABaBgBkBQCEAABaBwBkBgCEAABaCABSUygHAAAAc+gAAAAKICAgIEFuIEluY3JlbWVudGFsRGVjb2RlciBkZWNvZGVzIGFuIGlucHV0IGluIG11bHRpcGxlIHN0ZXBzLiBUaGUgaW5wdXQgY2FuIGJlCiAgICBwYXNzZWQgcGllY2UgYnkgcGllY2UgdG8gdGhlIGRlY29kZSgpIG1ldGhvZC4gVGhlIEluY3JlbWVudGFsRGVjb2RlcgogICAgcmVtZW1iZXJzIHRoZSBzdGF0ZSBvZiB0aGUgZGVjb2RpbmcgcHJvY2VzcyBiZXR3ZWVuIGNhbGxzIHRvIGRlY29kZSgpLgogICAgUi4AAABjAgAAAAIAAAACAAAAQwAAAHMNAAAAfAEAfAAAXwAAZAEAUygCAAAAc/MAAAAKICAgICAgICBDcmVhdGVzIGEgSW5jcmVtZW50YWxEZWNvZGVyIGluc3RhbmNlLgoKICAgICAgICBUaGUgSW5jcmVtZW50YWxEZWNvZGVyIG1heSB1c2UgZGlmZmVyZW50IGVycm9yIGhhbmRsaW5nIHNjaGVtZXMgYnkKICAgICAgICBwcm92aWRpbmcgdGhlIGVycm9ycyBrZXl3b3JkIGFyZ3VtZW50LiBTZWUgdGhlIG1vZHVsZSBkb2NzdHJpbmcKICAgICAgICBmb3IgYSBsaXN0IG9mIHBvc3NpYmxlIHZhbHVlcy4KICAgICAgICBOKAEAAABSMQAAACgCAAAAUiYAAABSMQAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5UjYAAADrAAAAcwIAAAAACGMDAAAAAwAAAAEAAABDAAAAcwoAAAB0AACCAQBkAQBTKAIAAABzQQAAAAogICAgICAgIERlY29kZXMgaW5wdXQgYW5kIHJldHVybnMgdGhlIHJlc3VsdGluZyBvYmplY3QuCiAgICAgICAgTigBAAAAUi8AAAAoAwAAAFImAAAAUjAAAABSNwAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5UiAAAAD1AAAAcwIAAAAABGMBAAAAAQAAAAEAAABDAAAAcwQAAABkAQBTKAIAAABzOgAAAAogICAgICAgIFJlc2V0cyB0aGUgZGVjb2RlciB0byB0aGUgaW5pdGlhbCBzdGF0ZS4KICAgICAgICBOKAAAAAAoAQAAAFImAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHlSOAAAAPsAAABzAAAAAGMBAAAAAQAAAAIAAABDAAAAcwQAAABkAwBTKAQAAABzCQIAAAogICAgICAgIFJldHVybiB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgZGVjb2Rlci4KCiAgICAgICAgVGhpcyBtdXN0IGJlIGEgKGJ1ZmZlcmVkX2lucHV0LCBhZGRpdGlvbmFsX3N0YXRlX2luZm8pIHR1cGxlLgogICAgICAgIGJ1ZmZlcmVkX2lucHV0IG11c3QgYmUgYSBieXRlcyBvYmplY3QgY29udGFpbmluZyBieXRlcyB0aGF0CiAgICAgICAgd2VyZSBwYXNzZWQgdG8gZGVjb2RlKCkgdGhhdCBoYXZlIG5vdCB5ZXQgYmVlbiBjb252ZXJ0ZWQuCiAgICAgICAgYWRkaXRpb25hbF9zdGF0ZV9pbmZvIG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlcgogICAgICAgIHJlcHJlc2VudGluZyB0aGUgc3RhdGUgb2YgdGhlIGRlY29kZXIgV0lUSE9VVCB5ZXQgaGF2aW5nCiAgICAgICAgcHJvY2Vzc2VkIHRoZSBjb250ZW50cyBvZiBidWZmZXJlZF9pbnB1dC4gIEluIHRoZSBpbml0aWFsIHN0YXRlCiAgICAgICAgYW5kIGFmdGVyIHJlc2V0KCksIGdldHN0YXRlKCkgbXVzdCByZXR1cm4gKGIiIiwgMCkuCiAgICAgICAgUjQAAABpAAAAACgCAAAAUjQAAABpAAAAACgAAAAAKAEAAABSJgAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5UjkAAAAAAQAAcwIAAAAADGMCAAAAAgAAAAEAAABDAAAAcwQAAABkAQBTKAIAAABztgAAAAogICAgICAgIFNldCB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgZGVjb2Rlci4KCiAgICAgICAgc3RhdGUgbXVzdCBoYXZlIGJlZW4gcmV0dXJuZWQgYnkgZ2V0c3RhdGUoKS4gIFRoZSBlZmZlY3Qgb2YKICAgICAgICBzZXRzdGF0ZSgoYiIiLCAwKSkgbXVzdCBiZSBlcXVpdmFsZW50IHRvIHJlc2V0KCkuCiAgICAgICAgTigAAAAAKAIAAABSJgAAAFI6AAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHlSOwAAAA4BAABzAAAAACgJAAAAUikAAABSKAAAAFIyAAAAUjYAAABSPAAAAFIgAAAAUjgAAABSOQAAAFI7AAAAKAAAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weVJCAAAA5QAAAHMMAAAABgUGAQwKDAYJBQkOdBoAAABCdWZmZXJlZEluY3JlbWVudGFsRGVjb2RlcmMAAAAAAAAAAAIAAABCAAAAc0oAAABlAABaAQBkAABaAgBkAQBkAgCEAQBaAwBkAwCEAABaBABlBQBkBACEAQBaBgBkBQCEAABaBwBkBgCEAABaCABkBwCEAABaCQBSUygIAAAAc64AAAAKICAgIFRoaXMgc3ViY2xhc3Mgb2YgSW5jcmVtZW50YWxEZWNvZGVyIGNhbiBiZSB1c2VkIGFzIHRoZSBiYXNlY2xhc3MgZm9yIGFuCiAgICBpbmNyZW1lbnRhbCBkZWNvZGVyIGlmIHRoZSBkZWNvZGVyIG11c3QgYmUgYWJsZSB0byBoYW5kbGUgaW5jb21wbGV0ZSBieXRlCiAgICBzZXF1ZW5jZXMuCiAgICBSLgAAAGMCAAAAAgAAAAMAAABDAAAAcx0AAAB0AABqAQB8AAB8AQCDAgABZAEAfAAAXwIAZAAAUygCAAAATlI0AAAAKAMAAABSQgAAAFI2AAAAUjUAAAAoAgAAAFImAAAAUjEAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weVI2AAAAHAEAAHMEAAAAAAEQAWMEAAAABAAAAAEAAABDAAAAcwoAAAB0AACCAQBkAABTKAEAAABOKAEAAABSLwAAACgEAAAAUiYAAABSMAAAAFIxAAAAUjcAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weXQOAAAAX2J1ZmZlcl9kZWNvZGUgAQAAcwIAAAAAA2MDAAAABgAAAAQAAABDAAAAczwAAAB8AABqAAB8AQAXfQMAfAAAagEAfAMAfAAAagIAfAIAgwMAXAIAfQQAfQUAfAMAfAUAH3wAAF8AAHwEAFMoAQAAAE4oAwAAAFI1AAAAUkQAAABSMQAAACgGAAAAUiYAAABSMAAAAFI3AAAAUj8AAABSQAAAAFJBAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHlSIAAAACUBAABzCAAAAAACDQEeAg0BYwEAAAABAAAAAgAAAEMAAABzGgAAAHQAAGoBAHwAAIMBAAFkAQB8AABfAgBkAABTKAIAAABOUjQAAAAoAwAAAFJCAAAAUjgAAABSNQAAACgBAAAAUiYAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weVI4AAAALQEAAHMEAAAAAAENAWMBAAAAAQAAAAIAAABDAAAAcw0AAAB8AABqAABkAQBmAgBTKAIAAABOaQAAAAAoAQAAAFI1AAAAKAEAAABSJgAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5UjkAAAAxAQAAcwIAAAAAAmMCAAAAAgAAAAIAAABDAAAAcxEAAAB8AQBkAQAZfAAAXwAAZAAAUygCAAAATmkAAAAAKAEAAABSNQAAACgCAAAAUiYAAABSOgAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5UjsAAAA1AQAAcwIAAAAAAigKAAAAUikAAABSKAAAAFIyAAAAUjYAAABSRAAAAFI8AAAAUiAAAABSOAAAAFI5AAAAUjsAAAAoAAAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5UkMAAAAWAQAAcw4A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AAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHl0CgAAAHdyaXRlbGluZXNiAQAAcwIAAAAABWMBAAAAAQAAAAEAAABDAAAAcwQAAABkAQBTKAIAAABzNQEAACBGbHVzaGVzIGFuZCByZXNldHMgdGhlIGNvZGVjIGJ1ZmZlcnMgdXNlZCBmb3Iga2VlcGluZyBzdGF0ZS4KCiAgICAgICAgICAgIENhbGxpbmcgdGhpcyBtZXRob2Qgc2hvdWxkIGVuc3VyZSB0aGF0IHRoZSBkYXRhIG9uIHRoZQogICAgICAgICAgICBvdXRwdXQgaXMgcHV0IGludG8gYSBjbGVhbiBzdGF0ZSwgdGhhdCBhbGxvd3MgYXBwZW5kaW5nCiAgICAgICAgICAgIG9mIG5ldyBmcmVzaCBkYXRhIHdpdGhvdXQgaGF2aW5nIHRvIHJlc2NhbiB0aGUgd2hvbGUKICAgICAgICAgICAgc3RyZWFtIHRvIHJlY292ZXIgc3RhdGUuCgogICAgICAgIE4oAAAAACgBAAAAUiYAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weVI4AAAAaQEAAHMCAAAAAAppAAAAAGMDAAAAAwAAAAMAAABDAAAAczwAAAB8AABqAABqAQB8AQB8AgCDAgABfAIAZAEAawIAcjgAfAEAZAEAawIAcjgAfAAAagIAgwAAAW4AAGQAAFMoAgAAAE5pAAAAACgDAAAAUkYAAAB0BAAAAHNlZWtSOAAAACgDAAAAUiYAAAB0BgAAAG9mZnNldHQGAAAAd2hlbmNlKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHlSTAAAAHUBAABzBgAAAAABEwEYAWMDAAAAAwAAAAMAAABDAAAAcxAAAAB8AgB8AABqAAB8AQCDAgBTKAEAAABzPwAAACBJbmhlcml0IGFsbCBvdGhlciBtZXRob2RzIGZyb20gdGhlIHVuZGVybHlpbmcgc3RyZWFtLgogICAgICAgICgBAAAAUkYAAAAoAwAAAFImAAAAUh4AAAB0BwAAAGdldGF0dHIoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weXQLAAAAX19nZXRhdHRyX196AQAAcwIAAAAABWMBAAAAAQAAAAEAAABDAAAAcwQAAAB8AABTKAEAAABOKAAAAAAoAQAAAFImAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHl0CQAAAF9fZW50ZXJfX4EBAABzAgAAAAABYwQAAAAEAAAAAQAAAEMAAABzEQAAAHwAAGoAAGoBAIMAAAFkAABTKAEAAABOKAIAAABSRgAAAHQFAAAAY2xvc2UoBAAAAFImAAAAdAQAAAB0eXBldAUAAAB2YWx1ZXQCAAAAdGIoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weXQIAAAAX19leGl0X1+EAQAAcwIAAAAAASgLAAAAUikAAABSKAAAAFI2AAAAUkcAAABSSwAAAFI4AAAAUkwAAABSTwAAAFJQAAAAUlEAAABSVgAAACgAAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUv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AHQEAIMBAH0JAHQFAHwJAIMBAGQDAGsBAHJTAYIAAHFTAXFXAYIAAG4BAFh8BQB8BwAffAAAXwgAfAAABGoCAHwGADcCXwIAfAQAcy0AUHEtAHEtAFd8AgBkAgBrAAByogF8AABqAgB9CgBkAQB8AABfAgBuHQB8AABqAgB8AgAgfQoAfAAAagIAfAIAH3wAAF8CAHwKAFMoBQAAAHMDBQAAIERlY29kZXMgZGF0YSBmcm9tIHRoZSBzdHJlYW0gc2VsZi5zdHJlYW0gYW5kIHJldHVybnMgdGhlCiAgICAgICAgICAgIHJlc3VsdGluZyBvYmplY3QuCgogICAgICAgICAgICBjaGFycyBpbmRpY2F0ZXMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIHJlYWQgZnJvbSB0aGUKICAgICAgICAgICAgc3RyZWFtLiByZWFkKCkgd2lsbCBuZXZlciByZXR1cm4gbW9yZSB0aGFuIGNoYXJzCiAgICAgICAgICAgIGNoYXJhY3RlcnMsIGJ1dCBpdCBtaWdodCByZXR1cm4gbGVzcywgaWYgdGhlcmUgYXJlIG5vdCBlbm91Z2gKICAgICAgICAgICAgY2hhcmFjdGVycyBhdmFpbGFibGUuCgogICAgICAgICAgICBzaXplIGluZGljYXRlcyB0aGUgYXBwcm94aW1hdGUgbWF4aW11bSBudW1iZXIgb2YgYnl0ZXMgdG8KICAgICAgICAgICAgcmVhZCBmcm9tIHRoZSBzdHJlYW0gZm9yIGRlY29kaW5nIHB1cnBvc2VzLiBUaGUgZGVjb2RlcgogICAgICAgICAgICBjYW4gbW9kaWZ5IHRoaXMgc2V0dGluZyBhcyBhcHByb3ByaWF0ZS4gVGhlIGRlZmF1bHQgdmFsdWUKICAgICAgICAgICAgLTEgaW5kaWNhdGVzIHRvIHJlYWQgYW5kIGRlY29kZSBhcyBtdWNoIGFzIHBvc3NpYmxlLiAgc2l6ZQogICAgICAgICAgICBpcyBpbnRlbmRlZCB0byBwcmV2ZW50IGhhdmluZyB0byBkZWNvZGUgaHVnZSBmaWxlcyBpbiBvbmUKICAgICAgICAgICAgc3RlcC4KCiAgICAgICAgICAgIElmIGZpcnN0bGluZSBpcyB0cnVlLCBhbmQgYSBVbmljb2RlRGVjb2RlRXJyb3IgaGFwcGVucwogICAgICAgICAgICBhZnRlciB0aGUgZmlyc3QgbGluZSB0ZXJtaW5hdG9yIGluIHRoZSBpbnB1dCBvbmx5IHRoZSBmaXJzdCBsaW5lCiAgICAgICAgICAgIHdpbGwgYmUgcmV0dXJuZWQsIHRoZSByZXN0IG9mIHRoZSBpbnB1dCB3aWxsIGJlIGtlcHQgdW50aWwgdGhlCiAgICAgICAgICAgIG5leHQgY2FsbCB0byByZWFkKCkuCgogICAgICAgICAgICBUaGUgbWV0aG9kIHNob3VsZCB1c2UgYSBncmVlZHkgcmVhZCBzdHJhdGVneSBtZWFuaW5nIHRoYXQKICAgICAgICAgICAgaXQgc2hvdWxkIHJlYWQgYXMgbXVjaCBkYXRhIGFzIGlzIGFsbG93ZWQgd2l0aGluIHRoZQogICAgICAgICAgICBkZWZpbml0aW9uIG9mIHRoZSBlbmNvZGluZyBhbmQgdGhlIGdpdmVuIHNpemUsIGUuZy4gIGlmCiAgICAgICAgICAgIG9wdGlvbmFsIGVuY29kaW5nIGVuZGluZ3Mgb3Igc3RhdGUgbWFya2VycyBhcmUgYXZhaWxhYmxlCiAgICAgICAgICAgIG9uIHRoZSBzdHJlYW0sIHRoZXNlIHNob3VsZCBiZSByZWFkIHRvby4KICAgICAgICBSNAAAAGkAAAAAaQEAAABOKA4AAABSWgAAAFJJAAAAUlkAAABSLAAAAHQEAAAAVHJ1ZXQDAAAAbGVuUkYAAAB0BAAAAHJlYWRSWAAAAFIgAAAAUjEAAAB0EgAAAFVuaWNvZGVEZWNvZGVFcnJvcnQFAAAAc3RhcnR0CgAAAHNwbGl0bGluZXMoCwAAAFImAAAAdAQAAABzaXpldAUAAABjaGFyc3QJAAAAZmlyc3RsaW5ldAcAAABuZXdkYXRhUj8AAAB0CAAAAG5ld2NoYXJzdAwAAABkZWNvZGVkYnl0ZXN0AwAAAGV4Y3QFAAAAbGluZXNSQAAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xp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bWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weVJMAAAAXAIAAHMEAAAAAAUTAWMBAAAAAgAAAAEAAABDAAAAcyAAAAB8AABqAACDAAB9AQB8AQByFgB8AQBTdAEAggEAZAEAUygCAAAAczQAAAAgUmV0dXJuIHRoZSBuZXh0IGRlY29kZWQgbGluZSBmcm9tIHRoZSBpbnB1dCBzdHJlYW0uTigCAAAAUm8AAAB0DQAAAFN0b3BJdGVyYXRpb24oAgAAAFImAAAAUmsAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weXQEAAAAbmV4dGQCAABzCAAAAAADDAEGAQQBYwEAAAABAAAAAQAAAEMAAABzBAAAAHwAAFMoAQAAAE4oAAAAACgBAAAAUiYAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weXQIAAAAX19pdGVyX19sAgAAcwIAAAAAAWMDAAAAAwAAAAMAAABDAAAAcxAAAAB8AgB8AABqAAB8AQCDAgBTKAEAAABzPwAAACBJbmhlcml0IGFsbCBvdGhlciBtZXRob2RzIGZyb20gdGhlIHVuZGVybHlpbmcgc3RyZWFtLgogICAgICAgICgBAAAAUkYAAAAoAwAAAFImAAAAUh4AAABSTwAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5UlAAAABvAgAAcwIAAAAABWMBAAAAAQAAAAEAAABDAAAAcwQAAAB8AABTKAEAAABOKAAAAAAoAQAAAFImAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHlSUQAAAHYCAABzAgAAAAABYwQAAAAEAAAAAQAAAEMAAABzEQAAAHwAAGoAAGoBAIMAAAFkAABTKAEAAABOKAIAAABSRgAAAFJSAAAAKAQAAABSJgAAAFJTAAAAUlQAAABSVQAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5UlYAAAB5AgAAcwIAAAAAAU4oEgAAAFIpAAAAUigAAABSNgAAAFIgAAAAUjwAAABSXQAAAFIsAAAAUlsAAABSbwAAAFJxAAAAUjgAAABSTAAAAFJzAAAAUnQAAABSTwAAAFJQAAAAUlEAAABSVgAAACgAAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHlSVwAAAIkBAABzGAAAAAYCDBoMAxJPD0kPDwkNDAgJCAkEDAYJA3QSAAAAU3RyZWFtUmVhZGVyV3JpdGVyYwAAAAAAAAAAAgAAAEIAAABzmwAAAGUAAFoBAGQAAFoCAGQBAFoDAGQCAGQDAIQBAFoEAGQEAGQFAIQBAFoFAGQSAGQGAIQBAFoHAGQSAGQHAIQBAFoIAGQIAIQAAFoJAGQJAIQAAFoKAGQKAIQAAFoLAGQLAIQAAFoMAGQMAIQAAFoNAGQNAGQOAIQBAFoOAGUPAGQPAIQBAFoQAGQQAIQAAFoRAGQRAIQAAFoSAFJTKBMAAABzAQEAACBTdHJlYW1SZWFkZXJXcml0ZXIgaW5zdGFuY2VzIGFsbG93IHdyYXBwaW5nIHN0cmVhbXMgd2hpY2gKICAgICAgICB3b3JrIGluIGJvdGggcmVhZCBhbmQgd3JpdGUgbW9kZXMuCgogICAgICAgIFRoZSBkZXNpZ24gaXMgc3VjaCB0aGF0IG9uZSBjYW4gdXNlIHRoZSBmYWN0b3J5IGZ1bmN0aW9ucwogICAgICAgIHJldHVybmVkIGJ5IHRoZSBjb2RlYy5sb29rdXAoKSBmdW5jdGlvbiB0byBjb25zdHJ1Y3QgdGhlCiAgICAgICAgaW5zdGFuY2UuCgogICAgdAcAAAB1bmtub3duUi4AAABjBQAAAAUAAAADAAAAQwAAAHM6AAAAfAEAfAAAXwAAfAIAfAEAfAQAgwIAfAAAXwEAfAMAfAEAfAQAgwIAfAAAXwIAfAQAfAAAXwMAZAEAUygCAAAAc1IBAAAgQ3JlYXRlcyBhIFN0cmVhbVJlYWRlcldyaXRlciBpbnN0YW5jZS4KCiAgICAgICAgICAgIHN0cmVhbSBtdXN0IGJlIGEgU3RyZWFtLWxpa2Ugb2JqZWN0LgoKICAgICAgICAgICAgUmVhZGVyLCBXcml0ZXIgbXVzdCBiZSBmYWN0b3J5IGZ1bmN0aW9ucyBvciBjbGFzc2VzCiAgICAgICAgICAgIHByb3ZpZGluZyB0aGUgU3RyZWFtUmVhZGVyLCBTdHJlYW1Xcml0ZXIgaW50ZXJmYWNlIHJlc3AuCgogICAgICAgICAgICBFcnJvciBoYW5kbGluZyBpcyBkb25lIGluIHRoZSBzYW1lIHdheSBhcyBkZWZpbmVkIGZvciB0aGUKICAgICAgICAgICAgU3RyZWFtV3JpdGVyL1JlYWRlcnMuCgogICAgICAgIE4oBAAAAFJGAAAAdAYAAAByZWFkZXJ0BgAAAHdyaXRlclIxAAAAKAUAAABSJgAAAFJGAAAAdAYAAABSZWFkZXJ0BgAAAFdyaXRlclIxAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHlSNgAAAIsCAABzCAAAAAANCQESARIBaf////9jAgAAAAIAAAACAAAAQwAAAHMQAAAAfAAAagAAagEAfAEAgwEAUygBAAAATigCAAAAUncAAABSXQAAACgCAAAAUiYAAABSYQAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5Ul0AAACdAgAAcwIAAAAAAmMCAAAAAgAAAAIAAABDAAAAcxAAAAB8AABqAABqAQB8AQCDAQBTKAEAAABOKAIAAABSdwAAAFJvAAAAKAIAAABSJgAAAFJhAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHlSbwAAAKECAABzAgAAAAACYwIAAAACAAAAAgAAAEMAAABzEAAAAHwAAGoAAGoBAHwBAIMBAFMoAQAAAE4oAgAAAFJ3AAAAUnEAAAAoAgAAAFImAAAAUnAAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weVJxAAAApQIAAHMCAAAAAAJjAQAAAAEAAAABAAAAQwAAAHMNAAAAfAAAagAAagEAgwAAUygBAAAAczQAAAAgUmV0dXJuIHRoZSBuZXh0IGRlY29kZWQgbGluZSBmcm9tIHRoZSBpbnB1dCBzdHJlYW0uKAIAAABSdwAAAFJzAAAAKAEAAABSJgAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5UnMAAACpAgAAcwIAAAAAA2MBAAAAAQAAAAEAAABDAAAAcwQAAAB8AABTKAEAAABOKAAAAAAoAQAAAFImAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHlSdAAAAK4CAABzAgAAAAABYwIAAAACAAAAAgAAAEMAAABzEAAAAHwAAGoAAGoBAHwBAIMBAFMoAQAAAE4oAgAAAFJ4AAAAUkcAAAAoAgAAAFImAAAAUj8AAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weVJHAAAAsQIAAHMCAAAAAAJjAgAAAAIAAAACAAAAQwAAAHMQAAAAfAAAagAAagEAfAEAgwEAUygBAAAATigCAAAAUngAAABSSwAAACgCAAAAUiYAAABSSgAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5UksAAAC1AgAAcwIAAAAAAmMBAAAAAQAAAAEAAABDAAAAcx4AAAB8AABqAABqAQCDAAABfAAAagIAagEAgwAAAWQAAFMoAQAAAE4oAwAAAFJ3AAAAUjgAAABSeAAAACgBAAAAUiYAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weVI4AAAAuQIAAHMEAAAAAAINAWkAAAAAYwMAAAADAAAAAwAAAEMAAABzTAAAAHwAAGoAAGoBAHwBAHwCAIMCAAF8AABqAgBqAwCDAAABfAIAZAEAawIAckgAfAEAZAEAawIAckgAfAAAagQAagMAgwAAAW4AAGQAAFMoAgAAAE5pAAAAACgFAAAAUkYAAABSTAAAAFJ3AAAAUjgAAABSeAAAACgDAAAAUiYAAABSTQAAAFJOAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHlSTAAAAL4CAABzCAAAAAABEwENARgBYwMAAAADAAAAAwAAAEMAAABzEAAAAHwCAHwAAGoAAHwBAIMCAFMoAQAAAHM/AAAAIEluaGVyaXQgYWxsIG90aGVyIG1ldGhvZHMgZnJvbSB0aGUgdW5kZXJseWluZyBzdHJlYW0uCiAgICAgICAgKAEAAABSRgAAACgDAAAAUiYAAABSHgAAAFJPAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHlSUAAAAMQCAABzAgAAAAAFYwEAAAABAAAAAQAAAEMAAABzBAAAAHwAAFMoAQAAAE4oAAAAACgBAAAAUiYAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weVJRAAAAzQIAAHMCAAAAAAFjBAAAAAQAAAABAAAAQwAAAHMRAAAAfAAAagAAagEAgwAAAWQAAFMoAQAAAE4oAgAAAFJGAAAAUlIAAAAoBAAAAFImAAAAUlMAAABSVAAAAFJVAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHlSVgAAANACAABzAgAAAAABTigTAAAAUikAAABSKAAAAFIyAAAAdAgAAABlbmNvZGluZ1I2AAAAUl0AAABSLAAAAFJvAAAAUnEAAABScwAAAFJ0AAAAUkcAAABSSwAAAFI4AAAAUkwAAABSTwAAAFJQAAAAUlEAAABSVgAAACgAAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHlSdQAAAH4CAABzHgAAAAYJBgIGAgwSDAQMBAwECQUJAwkECQQJBQwHDAgJA3QNAAAAU3RyZWFtUmVjb2RlcmMAAAAAAAAAAAIAAABCAAAAc5UAAABlAABaAQBkAABaAgBkAQBaAwBkAQBaBABkAgBkAwCEAQBaBQBkBABkBQCEAQBaBgBkEABkBgCEAQBaCABkEABkBwCEAQBaCQBkCACEAABaCgBkCQCEAABaCwBkCgCEAABaDABkCwCEAABaDQBkDACEAABaDgBlDwBkDQCEAQBaEABkDgCEAABaEQBkDwCEAABaEgBSUygRAAAAc0UCAAAgU3RyZWFtUmVjb2RlciBpbnN0YW5jZXMgcHJvdmlkZSBhIGZyb250ZW5kIC0gYmFja2VuZAogICAgICAgIHZpZXcgb2YgZW5jb2RpbmcgZGF0YS4KCiAgICAgICAgVGhleSB1c2UgdGhlIGNvbXBsZXRlIHNldCBvZiBBUElzIHJldHVybmVkIGJ5IHRoZQogICAgICAgIGNvZGVjcy5sb29rdXAoKSBmdW5jdGlvbiB0byBpbXBsZW1lbnQgdGhlaXIgdGFzay4KCiAgICAgICAgRGF0YSB3cml0dGVuIHRvIHRoZSBzdHJlYW0gaXMgZmlyc3QgZGVjb2RlZCBpbnRvIGFuCiAgICAgICAgaW50ZXJtZWRpYXRlIGZvcm1hdCAod2hpY2ggaXMgZGVwZW5kZW50IG9uIHRoZSBnaXZlbiBjb2RlYwogICAgICAgIGNvbWJpbmF0aW9uKSBhbmQgdGhlbiB3cml0dGVuIHRvIHRoZSBzdHJlYW0gdXNpbmcgYW4gaW5zdGFuY2UKICAgICAgICBvZiB0aGUgcHJvdmlkZWQgV3JpdGVyIGNsYXNzLgoKICAgICAgICBJbiB0aGUgb3RoZXIgZGlyZWN0aW9uLCBkYXRhIGlzIHJlYWQgZnJvbSB0aGUgc3RyZWFtIHVzaW5nIGEKICAgICAgICBSZWFkZXIgaW5zdGFuY2UgYW5kIHRoZW4gcmV0dXJuIGVuY29kZWQgZGF0YSB0byB0aGUgY2FsbGVyLgoKICAgIFJ2AAAAUi4AAABjBwAAAAcAAAADAAAAQwAAAHNMAAAAfAEAfAAAXwAAfAIAfAAAXwEAfAMAfAAAXwIAfAQAfAEAfAYAgwIAfAAAXwMAfAUAfAEAfAYAgwIAfAAAXwQAfAYAfAAAXwUAZAEAUygCAAAAc7oDAAAgQ3JlYXRlcyBhIFN0cmVhbVJlY29kZXIgaW5zdGFuY2Ugd2hpY2ggaW1wbGVtZW50cyBhIHR3by13YXkKICAgICAgICAgICAgY29udmVyc2lvbjogZW5jb2RlIGFuZCBkZWNvZGUgd29yayBvbiB0aGUgZnJvbnRlbmQgKHRoZQogICAgICAgICAgICBpbnB1dCB0byAucmVhZCgpIGFuZCBvdXRwdXQgb2YgLndyaXRlKCkpIHdoaWxlCiAgICAgICAgICAgIFJlYWRlciBhbmQgV3JpdGVyIHdvcmsgb24gdGhlIGJhY2tlbmQgKHJlYWRpbmcgYW5kCiAgICAgICAgICAgIHdyaXRpbmcgdG8gdGhlIHN0cmVhbSkuCgogICAgICAgICAgICBZb3UgY2FuIHVzZSB0aGVzZSBvYmplY3RzIHRvIGRvIHRyYW5zcGFyZW50IGRpcmVjdAogICAgICAgICAgICByZWNvZGluZ3MgZnJvbSBlLmcuIGxhdGluLTEgdG8gdXRmLTggYW5kIGJhY2suCgogICAgICAgICAgICBzdHJlYW0gbXVzdCBiZSBhIGZpbGUtbGlrZSBvYmplY3QuCgogICAgICAgICAg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AAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weVJzAAAAIAMAAHMGAAAAAAMPARsBYwEAAAABAAAAAQAAAEMAAABzBAAAAHwAAFMoAQAAAE4oAAAAACgBAAAAUiYAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weVJ0AAAAJwMAAHMCAAAAAAFjAgAAAAMAAAADAAAAQwAAAHMrAAAAfAAAagAAfAEAfAAAagEAgwIAXAIAfQEAfQIAfAAAagIAagMAfAEAgwEAUygBAAAATigEAAAAUiAAAABSMQAAAFJ4AAAAUkcAAAAoAwAAAFImAAAAUj8AAAB0DAAAAGJ5dGVzZGVjb2RlZCgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5UkcAAAAqAwAAcwQAAAAAAhsBYwIAAAAEAAAAAwAAAEMAAABzOgAAAGQBAGoAAHwBAIMBAH0CAHwAAGoBAHwCAHwAAGoCAIMCAFwCAH0CAH0DAHwAAGoDAGoEAHwCAIMBAFMoAgAAAE5SNAAAACgFAAAAUkkAAABSIAAAAFIxAAAAUngAAABSRwAAACgEAAAAUiYAAABSSgAAAFI/AAAAUn4AAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weVJLAAAALwMAAHMGAAAAAAIPARsBYwEAAAABAAAAAQAAAEMAAABzHgAAAHwAAGoAAGoBAIMAAAF8AABqAgBqAQCDAAABZAAAUygBAAAATigDAAAAUncAAABSOAAAAFJ4AAAAKAEAAABSJgAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5UjgAAAA1AwAAcwQAAAAAAg0BYwMAAAADAAAAAwAAAEMAAABzEAAAAHwCAHwAAGoAAHwBAIMCAFMoAQAAAHM/AAAAIEluaGVyaXQgYWxsIG90aGVyIG1ldGhvZHMgZnJvbSB0aGUgdW5kZXJseWluZyBzdHJlYW0uCiAgICAgICAgKAEAAABSRgAAACgDAAAAUiYAAABSHgAAAFJPAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHlSUAAAADoDAABzAgAAAAAFYwEAAAABAAAAAQAAAEMAAABzBAAAAHwAAFMoAQAAAE4oAAAAACgBAAAAUiYAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weVJRAAAAQQMAAHMCAAAAAAFjBAAAAAQAAAABAAAAQwAAAHMRAAAAfAAAagAAagEAgwAAAWQAAFMoAQAAAE4oAgAAAFJGAAAAUlIAAAAoBAAAAFImAAAAUlMAAABSVAAAAFJVAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHlSVgAAAEQDAABzAgAAAAABTigTAAAAUikAAABSKAAAAFIyAAAAdA0AAABkYXRhX2VuY29kaW5ndA0AAABmaWxlX2VuY29kaW5nUjYAAABSXQAAAFIsAAAAUm8AAABScQAAAFJzAAAAUnQAAABSRwAAAFJLAAAAUjgAAABSTwAAAFJQAAAAUlEAAABSVgAAACgAAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHlSfAAAANUCAABzHgAAAAYQBgIGAQYDDCAMBgwJDAYJBwkDCQUJBgkGDAYJA3QCAAAAcmJSLgAAAGkBAAAAYwUAAAAIAAAABQAAAEMAAABzywAAAHwCAGQHAGsJAHJyAGQBAHwBAGsGAHJWAHwBAGoBAIMAAGoCAGQBAGQCAIMCAH0BAHwBAGQDACB0AwBkBACDAQBrBwByVgBkBQB8AQAXfQEAcVYAbgAAZAYAfAEAawcAcnIAfAEAZAYAF30BAHFyAG4AAHQEAGoFAHwAAHwBAHwEAIMDAH0FAHwCAGQHAGsIAHKXAHwFAFN0BgB8AgCDAQB9BgB0BwB8BQB8BgBqCAB8BgBqCQB8AwCDBAB9BwB8AgB8BwBfCgB8BwBTKAgAAABzrQQAACBPcGVuIGFuIGVuY29kZWQgZmlsZSB1c2luZyB0aGUgZ2l2ZW4gbW9kZSBhbmQgcmV0dXJuCiAgICAgICAgYSB3cmFwcGVkIHZlcnNpb24gcHJvdmlkaW5nIHRyYW5zcGFyZW50IGVuY29kaW5nL2RlY29kaW5nLgoKICAgICAgICBOb3RlOiBUaGUgd3JhcHBlZCB2ZXJzaW9uIHdpbGwgb25seSBhY2NlcHQgdGhlIG9iamVjdCBmb3JtYXQKICAgICAgICBkZWZpbmVkIGJ5IHRoZSBjb2RlY3MsIGkuZS4gVW5pY29kZSBvYmplY3RzIGZvciBtb3N0IGJ1aWx0aW4KICAgICAgICBjb2RlY3MuIE91dHB1dCBpcyBhbHNvIGNvZGVjIGRlcGVuZGVudCBhbmQgd2lsbCB1c3VhbGx5IGJlCiAgICAgICAgVW5pY29kZSBhcyB3ZWxsLgoKICAgICAgICBGaWxlcyBhcmUgYWx3YXlzIG9wZW5lZCBpbiBiaW5hcnkgbW9kZSwgZXZlbiBpZiBubyBiaW5hcnkgbW9kZQogICAgICAgIHdhcyBzcGVjaWZpZWQuIFRoaXMgaXMgZG9uZSB0byBhdm9pZCBkYXRhIGxvc3MgZHVlIHRvIGVuY29kaW5ncwogICAgICAgIHVzaW5nIDgtYml0IHZhbHVlcy4gVGhlIGRlZmF1bHQgZmlsZSBtb2RlIGlzICdyYicgbWVhbmluZyB0bwogICAgICAgIG9wZW4gdGhlIGZpbGUgaW4gYmluYXJ5IHJlYWQgbW9kZS4KCiAgICAgICAgZW5jb2Rpbmcgc3BlY2lmaWVzIHRoZSBlbmNvZGluZyB3aGljaCBpcyB0byBiZSB1c2VkIGZvciB0aGUKICAgICAgICBmaWxlLgoKICAgICAgICBlcnJvcnMgbWF5IGJlIGdpdmVuIHRvIGRlZmluZSB0aGUgZXJyb3IgaGFuZGxpbmcuIEl0IGRlZmF1bHRzCiAgICAgICAgdG8gJ3N0cmljdCcgd2hpY2ggY2F1c2VzIFZhbHVlRXJyb3JzIHRvIGJlIHJhaXNlZCBpbiBjYXNlIGFuCiAgICAgICAgZW5jb2RpbmcgZXJyb3Igb2NjdXJzLgoKICAgICAgICBidWZmZXJpbmcgaGFzIHRoZSBzYW1lIG1lYW5pbmcgYXMgZm9yIHRoZSBidWlsdGluIG9wZW4oKSBBUEkuCiAgICAgICAgSXQgZGVmYXVsdHMgdG8gbGluZSBidWZmZXJlZC4KCiAgICAgICAgVGhlIHJldHVybmVkIHdyYXBwZWQgZmlsZSBvYmplY3QgcHJvdmlkZXMgYW4gZXh0cmEgYXR0cmlidXRlCiAgICAgICAgLmVuY29kaW5nIHdoaWNoIGFsbG93cyBxdWVyeWluZyB0aGUgdXNlZCBlbmNvZGluZy4gVGhpcwogICAgICAgIGF0dHJpYnV0ZSBpcyBvbmx5IGF2YWlsYWJsZSBpZiBhbiBlbmNvZGluZyB3YXMgc3BlY2lmaWVkIGFzCiAgICAgICAgcGFyYW1ldGVyLgoKICAgIHQBAAAAVVI0AAAAaQEAAAB0AwAAAHJ3YXQBAAAAcnQBAAAAYk4oCwAAAFIsAAAAdAUAAABzdHJpcHQHAAAAcmVwbGFjZXQDAAAAc2V0dAsAAABfX2J1aWx0aW5fX1IDAAAAUgIAAABSdQAAAFIkAAAAUiMAAABSewAAACgIAAAAdAgAAABmaWxlbmFtZXQEAAAAbW9kZVJ7AAAAUjEAAAB0CQAAAGJ1ZmZlcmluZ3QEAAAAZmlsZXQEAAAAaW5mb3QDAAAAc3J3KAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHlSAwAAAEkDAABzHAAAAAAfDAEMAhgBFgEQAQwCEAEVAQwBBAEMARsCCQFjBAAAAAcAAAAHAAAAQwAAAHNqAAAAfAIAZAEAawgAchUAfAEAfQIAbgAAdAEAfAEAgwEAfQQAdAEAfAIAgwEAfQUAdAIAfAAAfAQAagMAfAQAagQAfAUAagUAfAUAagYAfAMAgwYAfQYAfAEAfAYAXwcAfAIAfAYAXwgAfAYAUygCAAAAc+UDAAAgUmV0dXJuIGEgd3JhcHBlZCB2ZXJzaW9uIG9mIGZpbGUgd2hpY2ggcHJvdmlkZXMgdHJhbnNwYXJlbnQKICAgICAgICBlbmNvZGluZyB0cmFuc2xhdGlvbi4KCiAgICAgICAgU3RyaW5ncyB3cml0dGVuIHRvIHRoZSB3cmFwcGVkIGZpbGUgYXJlIGludGVycHJldGVkIGFjY29yZGluZwogICAgICAgIHRvIHRoZSBnaXZlbiBkYXRhX2VuY29kaW5nIGFuZCB0aGVuIHdyaXR0ZW4gdG8gdGhlIG9yaWdpbmFsCiAgICAgICAgZmlsZSBhcyBzdHJpbmcgdXNpbmcgZmlsZV9lbmNvZGluZy4gVGhlIGludGVybWVkaWF0ZSBlbmNvZGluZwogICAgICAgIHdpbGwgdXN1YWxseSBiZSBVbmljb2RlIGJ1dCBkZXBlbmRzIG9uIHRoZSBzcGVjaWZpZWQgY29kZWNzLgoKICAgICAgICBTdHJpbmdzIGFyZSByZWFkIGZyb20gdGhlIGZpbGUgdXNpbmcgZmlsZV9lbmNvZGluZyBhbmQgdGhlbgogICAgICAgIHBhc3NlZCBiYWNrIHRvIHRoZSBjYWxsZXIgYXMgc3RyaW5nIHVzaW5nIGRhdGFfZW5jb2RpbmcuCgogICAgICAgIElmIGZpbGVfZW5jb2RpbmcgaXMgbm90IGdpdmVuLCBpdCBkZWZhdWx0cyB0byBkYXRhX2VuY29kaW5nLgoKICAgICAgICBlcnJvcnMgbWF5IGJlIGdpdmVuIHRvIGRlZmluZSB0aGUgZXJyb3IgaGFuZGxpbmcuIEl0IGRlZmF1bHRzCiAgICAgICAgdG8gJ3N0cmljdCcgd2hpY2ggY2F1c2VzIFZhbHVlRXJyb3JzIHRvIGJlIHJhaXNlZCBpbiBjYXNlIGFuCiAgICAgICAgZW5jb2RpbmcgZXJyb3Igb2NjdXJzLgoKICAgICAgICBUaGUgcmV0dXJuZWQgd3JhcHBlZCBmaWxlIG9iamVjdCBwcm92aWRlcyB0d28gZXh0cmEgYXR0cmlidXRlcwogICAgICAgIC5kYXRhX2VuY29kaW5nIGFuZCAuZmlsZV9lbmNvZGluZyB3aGljaCByZWZsZWN0IHRoZSBnaXZlbgogICAgICAgIHBhcmFtZXRlcnMgb2YgdGhlIHNhbWUgbmFtZS4gVGhlIGF0dHJpYnV0ZXMgY2FuIGJlIHVzZWQgZm9yCiAgICAgICAgaW50cm9zcGVjdGlvbiBieSBQeXRob24gcHJvZ3JhbXMuCgogICAgTigJAAAAUiwAAABSAgAAAFJ8AAAAUh8AAABSIAAAAFIkAAAAUiMAAABSfwAAAFKAAAAAKAcAAABSjQAAAFJ/AAAAUoAAAABSMQAAAHQJAAAAZGF0YV9pbmZvdAkAAABmaWxlX2luZm90AgAAAHNyKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHlSBAAAAHoDAABzEgAAAAAZDAEJAQwBDAESARUCCQEJAWMBAAAAAQAAAAIAAABDAAAAcw0AAAB0AAB8AACDAQBqAQBTKAEAAABzngAAACBMb29rdXAgdXAgdGhlIGNvZGVjIGZvciB0aGUgZ2l2ZW4gZW5jb2RpbmcgYW5kIHJldHVybgogICAgICAgIGl0cyBlbmNvZGVyIGZ1bmN0aW9uLgoKICAgICAgICBSYWlzZXMgYSBMb29rdXBFcnJvciBpbiBjYXNlIHRoZSBlbmNvZGluZyBjYW5ub3QgYmUgZm91bmQuCgogICAgKAIAAABSAgAAAFIfAAAAKAEAAABSewAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5dAoAAABnZXRlbmNvZGVyoAMAAHMCAAAAAAhjAQAAAAEAAAACAAAAQwAAAHMNAAAAdAAAfAAAgwEAagEAUygBAAAAc54AAAAgTG9va3VwIHVwIHRoZSBjb2RlYyBmb3IgdGhlIGdpdmVuIGVuY29kaW5nIGFuZCByZXR1cm4KICAgICAgICBpdHMgZGVjb2RlciBmdW5jdGlvbi4KCiAgICAgICAgUmFpc2VzIGEgTG9va3VwRXJyb3IgaW4gY2FzZSB0aGUgZW5jb2RpbmcgY2Fubm90IGJlIGZvdW5kLgoKICAgICgCAAAAUgIAAABSIAAAACgBAAAAUnsAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weXQKAAAAZ2V0ZGVjb2RlcqoDAABzAgAAAAAIYwEAAAACAAAAAgAAAEMAAABzLgAAAHQAAHwAAIMBAGoBAH0BAHwBAGQBAGsIAHIqAHQDAHwAAIMBAIIBAG4AAHwBAFMoAgAAAHP3AAAAIExvb2t1cCB1cCB0aGUgY29kZWMgZm9yIHRoZSBnaXZlbiBlbmNvZGluZyBhbmQgcmV0dXJuCiAgICAgICAgaXRzIEluY3JlbWVudGFsRW5jb2RlciBjbGFzcyBvciBmYWN0b3J5IGZ1bmN0aW9uLgoKICAgICAgICBSYWlzZXMgYSBMb29rdXBFcnJvciBpbiBjYXNlIHRoZSBlbmNvZGluZyBjYW5ub3QgYmUgZm91bmQKICAgICAgICBvciB0aGUgY29kZWNzIGRvZXNuJ3QgcHJvdmlkZSBhbiBpbmNyZW1lbnRhbCBlbmNvZGVyLgoKICAgIE4oBAAAAFICAAAAUiEAAABSLAAAAHQLAAAATG9va3VwRXJyb3IoAgAAAFJ7AAAAdAcAAABlbmNvZGVyKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHl0FQAAAGdldGluY3JlbWVudGFsZW5jb2RlcrQDAABzCAAAAAAJDwEMAQ8BYwEAAAACAAAAAgAAAEMAAABzLgAAAHQAAHwAAIMBAGoBAH0BAHwBAGQBAGsIAHIqAHQDAHwAAIMBAIIBAG4AAHwBAFMoAgAAAHP3AAAAIExvb2t1cCB1cCB0aGUgY29kZWMgZm9yIHRoZSBnaXZlbiBlbmNvZGluZyBhbmQgcmV0dXJuCiAgICAgICAgaXRzIEluY3JlbWVudGFsRGVjb2RlciBjbGFzcyBvciBmYWN0b3J5IGZ1bmN0aW9uLgoKICAgICAgICBSYWlzZXMgYSBMb29rdXBFcnJvciBpbiBjYXNlIHRoZSBlbmNvZGluZyBjYW5ub3QgYmUgZm91bmQKICAgICAgICBvciB0aGUgY29kZWNzIGRvZXNuJ3QgcHJvdmlkZSBhbiBpbmNyZW1lbnRhbCBkZWNvZGVyLgoKICAgIE4oBAAAAFICAAAAUiIAAABSLAAAAFKVAAAAKAIAAABSewAAAHQHAAAAZGVjb2RlcigAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5dBUAAABnZXRpbmNyZW1lbnRhbGRlY29kZXLCAwAAcwgAAAAACQ8BDAEPAWMBAAAAAQAAAAIAAABDAAAAcw0AAAB0AAB8AACDAQBqAQBTKAEAAABztAAAACBMb29rdXAgdXAgdGhlIGNvZGVjIGZvciB0aGUgZ2l2ZW4gZW5jb2RpbmcgYW5kIHJldHVybgogICAgICAgIGl0cyBTdHJlYW1SZWFkZXIgY2xhc3Mgb3IgZmFjdG9yeSBmdW5jdGlvbi4KCiAgICAgICAgUmFpc2VzIGEgTG9va3VwRXJyb3IgaW4gY2FzZSB0aGUgZW5jb2RpbmcgY2Fubm90IGJlIGZvdW5kLgoKICAgICgCAAAAUgIAAABSJAAAACgBAAAAUnsAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weXQJAAAAZ2V0cmVhZGVy0AMAAHMCAAAAAAhjAQAAAAEAAAACAAAAQwAAAHMNAAAAdAAAfAAAgwEAagEAUygBAAAAc7QAAAAgTG9va3VwIHVwIHRoZSBjb2RlYyBmb3IgdGhlIGdpdmVuIGVuY29kaW5nIGFuZCByZXR1cm4KICAgICAgICBpdHMgU3RyZWFtV3JpdGVyIGNsYXNzIG9yIGZhY3RvcnkgZnVuY3Rpb24uCgogICAgICAgIFJhaXNlcyBhIExvb2t1cEVycm9yIGluIGNhc2UgdGhlIGVuY29kaW5nIGNhbm5vdCBiZSBmb3VuZC4KCiAgICAoAgAAAFICAAAAUiMAAAAoAQAAAFJ7AAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHl0CQAAAGdldHdyaXRlctoDAABzAgAAAAAIYwMAAAAHAAAAAwAAAGsAAABzZwAAAHQAAHwBAIMBAHwCAHwDAI0BAH0EAHgrAHwAAERdIwB9BQB8BABqAQB8BQCDAQB9BgB8BgByHAB8BgBWAXEcAHEcAFd8BABqAQBkAQB0AgCDAgB9BgB8BgByYwB8BgBWAW4AAGQCAFMoAwAAAHO+AAAACiAgICBFbmNvZGluZyBpdGVyYXRvci4KCiAgICBFbmNvZGVzIHRoZSBpbnB1dCBzdHJpbmdzIGZyb20gdGhlIGl0ZXJhdG9yIHVzaW5nIGEgSW5jcmVtZW50YWxFbmNvZGVyLgoKICAgIGVycm9ycyBhbmQga3dhcmdzIGFyZSBwYXNzZWQgdGhyb3VnaCB0byB0aGUgSW5jcmVtZW50YWxFbmNvZGVyCiAgICBjb25zdHJ1Y3Rvci4KICAgIFI0AAAATigDAAAAUpcAAABSHwAAAFJbAAAAKAcAAAB0CAAAAGl0ZXJhdG9yUnsAAABSMQAAAHQGAAAAa3dhcmdzUpYAAABSMAAAAHQGAAAAb3V0cHV0KAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2RlY3MucHl0CgAAAGl0ZXJlbmNvZGXkAwAAcxAAAAAACRUBDQEPAQYBDAESAQYBYwMAAAAHAAAAAwAAAGsAAABzZwAAAHQAAHwBAIMBAHwCAHwDAI0BAH0EAHgrAHwAAERdIwB9BQB8BABqAQB8BQCDAQB9BgB8BgByHAB8BgBWAXEcAHEcAFd8BABqAQBkAQB0AgCDAgB9BgB8BgByYwB8BgBWAW4AAGQCAFMoAwAAAHO+AAAACiAgICBEZWNvZGluZyBpdGVyYXRvci4KCiAgICBEZWNvZGVzIHRoZSBpbnB1dCBzdHJpbmdzIGZyb20gdGhlIGl0ZXJhdG9yIHVzaW5nIGEgSW5jcmVtZW50YWxEZWNvZGVyLgoKICAgIGVycm9ycyBhbmQga3dhcmdzIGFyZSBwYXNzZWQgdGhyb3VnaCB0byB0aGUgSW5jcmVtZW50YWxEZWNvZGVyCiAgICBjb25zdHJ1Y3Rvci4KICAgIFI0AAAATigDAAAAUpkAAABSIAAAAFJbAAAAKAcAAABSnAAAAFJ7AAAAUjEAAABSnQAAAFKYAAAAUjAAAABSngAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5dAoAAABpdGVyZGVjb2Rl9gMAAHMQAAAAAAkVAQ0BDwEGAQwBEgEGAWMBAAAAAwAAAAQAAABDAAAAcyUAAABpAAB9AQB4GAB8AABEXRAAfQIAfAIAfAEAfAIAPHENAFd8AQBTKAEAAABziAAAACBtYWtlX2lkZW50aXR5X2RpY3Qocm5nKSAtPiBkaWN0CgogICAgICAgIFJldHVybiBhIGRpY3Rpb25hcnkgd2hlcmUgZWxlbWVudHMgb2YgdGhlIHJuZyBzZXF1ZW5jZSBhcmUKICAgICAgICBtYXBwZWQgdG8gdGhlbXNlbHZlcy4KCiAgICAoAAAAACgDAAAAdAMAAABybmd0AwAAAHJlc3QBAAAAaSgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5dBIAAABtYWtlX2lkZW50aXR5X2RpY3QKBAAAcwgAAAAACAYBDQEOAWMBAAAABAAAAAQAAABDAAAAc0oAAABpAAB9AQB4PQB8AABqAACDAABEXS8AXAIAfQIAfQMAfAMAfAEAawcAcjgAfAIAfAEAfAMAPHETAGQBAHwBAHwDADxxEwBXfAEAUygCAAAAc4IBAAAgQ3JlYXRlcyBhbiBlbmNvZGluZyBtYXAgZnJvbSBhIGRlY29kaW5nIG1hcC4KCiAgICAgICAgSWYgYSB0YXJnZXQgbWFwcGluZyBpbiB0aGUgZGVjb2RpbmcgbWFwIG9jY3VycyBtdWx0aXBsZQogICAgICAgIHRpbWVzLCB0aGVuIHRoYXQgdGFyZ2V0IGlzIG1hcHBlZCB0byBOb25lICh1bmRlZmluZWQgbWFwcGluZyksCiAgICAgICAgY2F1c2luZyBhbiBleGNlcHRpb24gd2hlbiBlbmNvdW50ZXJlZCBieSB0aGUgY2hhcm1hcCBjb2RlYwogICAgICAgIGR1cmluZyB0cmFuc2xhdGlvbi4KCiAgICAgICAgT25lIGV4YW1wbGUgd2hlcmUgdGhpcyBoYXBwZW5zIGlzIGNwODc1LnB5IHdoaWNoIGRlY29kZXMKICAgICAgICBtdWx0aXBsZSBjaGFyYWN0ZXIgdG8gXHUwMDFhLgoKICAgIE4oAgAAAHQFAAAAaXRlbXNSLAAAACgEAAAAdAwAAABkZWNvZGluZ19tYXB0AQAAAG10AQAAAGt0AQAAAHYoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVjcy5weXQRAAAAbWFrZV9lbmNvZGluZ19tYXAXBAAAcwwAAAAADQYBGQEMAQ0CDgF0BgAAAGlnbm9yZVKHAAAAdBEAAAB4bWxjaGFycmVmcmVwbGFjZXQQAAAAYmFja3NsYXNocmVwbGFjZWkAAAAAdAgAAABfX21haW5fX3MHAAAAbGF0aW4tMXMFAAAAdXRmLTgoAAAAACgAAAAAKAAAAAAoPAAAAFIyAAAAUokAAAB0AwAAAHN5c3QHAAAAX2NvZGVjc3QLAAAASW1wb3J0RXJyb3J0AwAAAHdoeXQLAAAAU3lzdGVtRXJyb3J0BwAAAF9fYWxsX19SDAAAAFIHAAAAUg4AAABSBgAAAFIPAAAAUhEAAABSEgAAAHQJAAAAYnl0ZW9yZGVyUgUAAABSDQAAAFIQAAAAUgkAAABSCAAAAFILAAAAUgoAAABSHAAAAFIbAAAAUi0AAABSSAAAAFIzAAAAUj0AAABSQgAAAFJDAAAAUkUAAABSVwAAAFJ1AAAAUnwAAABSLAAAAFIDAAAAUgQAAABSkwAAAFKUAAAAUpcAAABSmQAAAFKaAAAAUpsAAABSnwAAAFKgAAAAUqQAAABSqgAAAFIYAAAAUhMAAABSFAAAAFIVAAAAUhYAAAB0FwAAAGJhY2tzbGFzaHJlcGxhY2VfZXJyb3JzUpUAAAB0BgAAAF9mYWxzZXQJAAAAZW5jb2RpbmdzUikAAAB0BgAAAHN0ZG91dHQFAAAAc3RkaW4oAAAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZWNzLnB5dAgAAAA8bW9kdWxlPggAAABzhAAAAAYCGAQDAQ4BDwEUAhIBDwEMAQkBCQEDAQwLBgMKAwoDBgMGAg8DCgMJBQoDBgMGAQYBBgEGBRYRE0AWKBYhFjEWKhZJFvUTVxN0FTEPJgkKCQoJDgkOCQoJCgwSDBQJDQkXAwEMAQwBDAEMARABDQIGAQYBBgEGAQoEBgEGAQ8EDAMYAw==