REDROOM
PHP 8.5.2
Path:
Logout
Edit File
Size: 422.50 KB
Close
/usr/share/mysql/german/errmsg.sys
Text
Base64
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WykCADsqAgB6KgIAvCoCAL8qAgDiKgIAECsCAH4rAgC8KwIA7isCAB0sAgBGLAIArywCAOgsAgAfLQIASC0CAH4tAgDNLQIACy4CABYuAgA4LgIAXy4CAIYuAgCnLgIA0i4CAPsuAgAdLwIAWS8CAIgvAgCuLwIAETACAMcwAgAYMQIALjECAFoxAgB0MQIApjECALwxAgD8MQIAUDICAIkyAgDHMgIABzMCAGwzAgDAMwIA/zMCAGY0AgCJNAIAwzQCAOc0AgAeNQIATzUCAIo1AgC+NQIA4DUCAAI2AgBDNgIAhDYCAKk2AgDVNgIABzcCADE3AgBdNwIAdzcCAJE3AgCyNwIA8DcCABI4AgA9OAIAaDgCAI04AgDhOAIAIzkCADU5AgBcOQIAkjkCAL45AgD0OQIAOjoCAKQ6AgDCOgIA6ToCAH47AgCiOwIAzjsCADU8AgCOPAIAvDwCAOk8AgARPQIAOT0CAG49AgCYPQIA4T0CAB0+AgBdPgIAeT4CAJ4+AgCzPgIA5j4CABk/AgB4PwIAnD8CAME/AgACQAIAKkACAF5AAgCkQAIAxkACANRAAgDiQAIAGUECAElBAgBuQQIAikECAK5BAgDrQQIA8kECABVCAgBBQgIAmUICAKBCAgCnQgIAA0MCAIpDAgCfQwIA0kMCAENEAgC8RAIAKkUCAG1FAgCzRQIA5UUCAANGAgAGRgIAKkYCAJFGAgDGRgIABkcCAERHAgCLRwIA8kcCACVIAgBZSAIAyEgCAAtJAgBGSQIAe0kCAKtJAgDbSQIAIEoCAGlKAgCUSgIAG0sCADtLAgBeSwIAh0sCAKVLAgDgSwIAGkwCALVMAgBrTQIAIU4CAPlOAgD7TwIAZVECAPJRAgAXUgIAvlICAAJTAgA/UwIAr1MCAAFUAgA1VAIAc1QCALZUAgDtVAIAcFUCALJVAgDWVQIA+1UCADZWAgCvVgIAcFcCAOBXAgCVWAIA4VgCAF1ZAgCtWQIAHloCAFhaAgCOWgIAEVsCAE9bAgDsWwIANlwCAG5cAgCVXAIA3lwCAO1cAgAhXQIAVV0CAGRdAgB2XQIAxV0CAO5dAgAYXgIARF4CAIleAgDcXgIAKV8CAHNfAgCNXwIAIWACAGVgAgCNYAIA0mACAC9hAgBxYQIAmGECAM9hAgDtYQIACmICAFxiAgCEYgIA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RmYEAHtmBADGZgQAyWYEAN5mBAD1ZgQAI2cEAE1nBACIZwQAx2cEAPRnBACQaAQAvWgEAPNoBAAgaQQATWkEAJFpBADHaQQAAGoEAJdqBADtagQAHWsEAARsBAA3bAQAwWwEAH9tBACCbQQAhW0EAMxtBAAcbgQAhG4EALJuBAC1bgQAuG4EAM9uBADSbgQA1W4EANhuBADbbgQA3m4EAOFuBACQbwQA4m8EADpwBACWcAQA03AEAAVxBABzcQQAo3EEANpxBAD+cQQAF3IEAFRyBACXcgQAEXMEAClzBABUcwQAmnMEAG90BADodAQAJXUEAL91BAD5dQQAInYEAFh2BABbdgQAXnYEAGF2BABkdgQAZ3YEAGp2BABtdgQAcHYEAHN2BAB2dgQAeXYEAHx2BAB/dgQAgnYEAIV2BACIdgQAi3YEAI52BACRdgQAlHYEAJd2BACadgQAnXYEAKB2BACjdgQApnYEAKl2BACsdgQAr3YEALJ2BAC1dgQAuHYEALt2BAC+dgQAwXYEAMR2BADHdgQAynYEAM12BADQdgQA03YEANZ2BADZdgQA3HYEAN92BADidgQA5XYEAOh2BADrdgQA7nYEAPF2BAD0dgQA93YEAPp2BAD9dgQAAHcEAAN3BAAGdwQACXcEAAx3BAAPdwQAEncEABV3BAAYdwQAG3cEAB53BAAhdwQAJHcEACd3BAAqdwQALXcEADB3BAAzdwQANncEADl3BAA8dwQAP3cEAEJ3BABFdwQASHcEAEt3BABOdwQAUXcEAFR3BABXdwQAWncEAF13BABgdwQAY3cEAGZ3BABpdwQAbHcEAG93BABydwQAdXcEAHh3BAB7dwQAfncEAIF3BACEdwQAh3cEAIp3BACpdwQArHcEAK93BAATeAQAFngEABl4BAAceAQAH3gEACJ4BAAleAQAKHgEACt4BAAueAQAMXgEADR4BAA3eAQAOngEAD14BABAeAQAQ3gEAEZ4BABJeAQATHgEAE94BABSeAQAVXgEAFh4BABbeAQAXngEAGF4BABkeAQAZ3gEAGp4BABteAQAcHgEAHN4BAB2eAQAeXgEAHx4BAB/eAQAgngEAIV4BACIeAQAi3gEAI54BACReAQAlHgEAJd4BACaeAQAnXgEAKB4BACjeAQApngEAKl4BACseAQAr3gEALJ4BAC1eAQAuHgEALt4BAC+eAQAwXgEAMR4BADHeAQAyngEAM14BADQeAQA03gEANZ4BADZeAQA3HgEAN94BADieAQA5XgEAOh4BADreAQA7ngEAPF4BAD0eAQA93gEAPp4BAD9eAQAAHkEAAN5BAAGeQQACXkEAAx5BAAPeQQAEnkEABV5BAAYeQQAG3kEAB55BAAheQQAJHkEACd5BAAqeQQALXkEADB5BAAzeQQANnkEADl5BAA8eQQAP3kEAEx5BABPeQQAUnkEAFV5BABYeQQAW3kEAF55BABheQQAZHkEAGd5BABqeQQAbXkEAHB5BABzeQQAdnkEAHl5BAB8eQQAf3kEAIJ5BACFeQQAiHkEAIt5BACOeQQAkXkEAJR5BACXeQQAmnkEAJ15BACgeQQAo3kEAKZ5BACpeQQArHkEAK95BACyeQQAtXkEALh5BAC7eQQAvnkEAMF5BADEeQQAx3kEAMp5BADNeQQA0HkEANN5BADWeQQA2XkEANx5BADfeQQA4nkEAOV5BADoeQQA63kEAO55BADxeQQA9HkEAPd5BAD6eQQA/XkEAAB6BAADegQABnoEAAl6BAAMegQAD3oEABJ6BAAxegQANHoEADd6BAA6egQAPXoEAEB6BABDegQARnoEAEl6BABMegQAT3oEAFJ6BABVegQAWHoEAFt6BABeegQAYXoEAGR6BABnegQAanoEAG16BABwegQAc3oEAHZ6BAB5egQAfHoEAH96BACCegQAhXoEAIh6BACLegQAjnoEABJ7BAB9ewQApXsEAAR8BABUfAQAlHwEAMR8BAARfQQAT30EAH99BACwfQQA4H0EACd+BABGfgQAX34EAHB+BAChfgQA0H4EABV/BABUfwQAlX8EALB/BADVfwQA9n8EADmABABVgAQAdYAEAJaABADHgAQA8oAEABaBBABXgQQAlIEEAL+BBAAcggQAOoIEAFWCBAB1ggQAn4IEAMaCBAApgwQAiYMEALCDBADsgwQAC4QEAHeEBACthAQA8YQEAFGFBADNhQQAEoYEAC2GBABdhgQAgIYEAKCGBADAhgQACIcEAEGHBADAhwQA74cEAB2IBAA6iAQAW4gEAPmIBAA0iQQAe4kEAH6JBACBiQQAhIkEAIeJBACKiQQAjYkEAJCJBACTiQQAlokEAJmJBABFigQAY4oEAGaKBAANiwQAEIsEADWLBABgiwQAgYsEANOLBAD+iwQAJowEAJuMBABNjgQA0o4EAO+OBAA0jwQAio8EAEKQBABKkQQAzJEEAOeRBAAWkgQAPZIEAECSBABDkgQAnpIEAMSTBAAklAQAWpUEAH+VBACdlQQAw5UEAASWBAAxlgQATJYEAE+WBABSlgQAVZYEAFiWBABblgQAXpYEAGGWBABklgQAZ5YEALCWBADalgQA3ZYEAPuWBAD+lgQAM5cEADaXBABflwQAYpcEAIyXBACPlwQAkpcEAJWXBACYlwQAm5cEAJ6XBAChlwQApJcEAEqYBABNmAQAUJgEAFOYBABWmAQAWZgEAImYBACMmAQAj5gEAJKYBACVmAQAmJgEAJuYBACemAQAoZgEAKSYBACnmAQAqpgEAK2YBACwmAQAs5gEALaYBAC5mAQAvJgEAL+YBADCmAQAxZgEAEKZBABFmQQAX5kEAIKZBACFmQQATZoEAFCaBABTmgQAVpoEAFmaBABcmgQAX5oEAGKaBABlmgQAaJoEAGuaBABumgQAcZoEAHSaBAB3mgQAepoEAH2aBACAmgQA4poEAOWaBAComwQANpwEADmcBAA8nAQAP5wEAEKcBAB+nAQAqJwEANecBAD3nAQALZ0EAEKdBABanQQAn50EAMqdBAAGngQAQJ4EANyeBADfngQA4p4EAOWeBADongQA654EAO6eBADxngQA9J4EAPeeBAD6ngQAHJ8EAGyfBABvnwQAe6AEAH6gBACBoAQAsKAEAE6hBADqoQQAzaIEAAujBAArpAQAraQEAC2lBAAXpgQAZ6YEAHymBACkpgQAx6cEAEGoBADEqAQA6agEACKpBABLqQQADaoEAFmqBACkqgQAuKoEAMiqBADvqgQAI6sEAECrBABbqwQAd6sEAMarBAASrAQARqwEAHGsBAB/rAQAoKwEAEetBAC6rQQA+60EABiuBABTrgQAcq4EAJuuBADKrgQA+a4EADCvBABprwQAka8EAOevBAB1sAQAzbAEAM6wBAAbsQQAeLEEAMCxBAAesgQAgrIEAOKyBADysgQA9bIEACGzBABGswQAZ7MEAISzBACoswQA+LMEAA60BAAytAQA+rQEAD61BACttQQA17UEAO21BAAktgQASbYEAHe2BAC4tgQA7LYEAE+3BACTtwQAzrcEAP23BAB2uAQA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emVpY2huaXMgbmljaHQgZXJtaXR0ZWxuIChGZWhsZXI6ICVkIC0gJXMpAERhdGVpIGthbm4gbmljaHQgZ2VzcGVycnQgd2VyZGVuIChGZWhsZXI6ICVkIC0gJXMpAEthbm4gRGF0ZWkgJyUtLjIwMHMnIG5pY2h0IMO2ZmZuZW4gKEZlaGxlcjogJWQgLSAlcykAS2FubiBEYXRlaSAnJS0uMjAwcycgbmljaHQgZmluZGVuIChGZWhsZXI6ICVkIC0gJXMpAFZlcnplaWNobmlzIHZvbiAnJS0uMTkycycgbmljaHQgbGVzYmFyIChGZWhsZXI6ICVkIC0gJXMpAEthbm4gbmljaHQgaW4gZGFzIFZlcnplaWNobmlzICclLS4xOTJzJyB3ZWNoc2VsbiAoRmVobGVyOiAlZCAtICVzKQBEYXRlbnNhdHogaGF0IHNpY2ggc2VpdCBkZW0gbGV0enRlbiBadWdyaWZmIGF1ZiBUYWJlbGxlICclLS4xOTJzJyBnZcOkbmRlcnQARmVzdHBsYXR0ZSB2b2xsICglcykuIFdhcnRlLCBiaXMgamVtYW5kIFBsYXR6IHNjaGFmZnQgLi4uIChGZWhsZXI6ICVkIC0gJXMpAEthbm4gbmljaHQgc3BlaWNoZXJuLCBHcnVuZDogZG9wcGVsdGVyIFNjaGzDvHNzZWwgaW4gVGFiZWxsZSAnJS0uMTkycycARmVobGVyIGJlaW0gU2NobGllw59lbiB2b24gJyUtLjE5MnMnIChGZWhsZXI6ICVkIC0gJXMpAEZlaGxlciBiZWltIExlc2VuIGRlciBEYXRlaSAnJS0uMjAwcycgKEZlaGxlcjogJWQgLSAlcykARmVobGVyIGJlaW0gVW1iZW5lbm5lbiB2b24gJyUtLjIxMHMnIGluICclLS4yMTBzJyAoRmVobGVyOiAlZCAtICVzKQBGZWhsZXIgYmVpbSBTcGVpY2hlcm4gZGVyIERhdGVpICclLS4yMDBzJyAoRmVobGVyOiAlZCAtICVzKQAnJS0uMTkycycgaXN0IGbDvHIgw4RuZGVydW5nZW4gZ2VzcGVycnQAU29ydGllcnZvcmdhbmcgYWJnZWJyb2NoZW4AVmlldyAnJS0uMTkycycgZXhpc3RpZXJ0IGbDvHIgJyUtLjE5MnMnIG5pY2h0AEZlaGxlciAlZCAtICclLS4xOTJzJyAoU3BlaWNoZXItRW5naW5lKQBEaWVzZSBPcHRpb24gZ2lidCBlcyBuaWNodCAoU3BlaWNoZXItRW5naW5lIGbDvHIgJyUtLjE5MnMnKQBLYW5uIERhdGVuc2F0eiBpbiAnJS0uMTkycycgbmljaHQgZmluZGVuAEZhbHNjaGUgSW5mb3JtYXRpb24gaW4gRGF0ZWkgJyUtLjIwMHMnAEZlaGxlcmhhZnRlIEluZGV4LURhdGVpIGbDvHIgVGFiZWxsZSAnJS0uMjAwcyc7IHZlcnN1Y2hlIHp1IHJlcGFyaWVyZW4AQWx0ZSBJbmRleC1EYXRlaSBmw7xyIFRhYmVsbGUgJyUtLjE5MnMnLiBCaXR0ZSByZXBhcmllcmVuAFRhYmVsbGUgJyUtLjE5MnMnIGlzdCBudXIgbGVzYmFyAEtlaW4gU3BlaWNoZXIgdm9yaGFuZGVuICglZCBCeXRlcyBiZW7DtnRpZ3QpLiBCaXR0ZSBTZXJ2ZXIgbmV1IHN0YXJ0ZW4AS2VpbiBTcGVpY2hlciB6dW0gU29ydGllcmVuIHZvcmhhbmRlbi4gc29ydF9idWZmZXJfc2l6ZSBzb2xsdGUgaW0gU2VydmVyIGVyaMO2aHQgd2VyZGVuAFVuZXJ3YXJ0ZXRlcyBFbmRlIGJlaW0gTGVzZW4gZGVyIERhdGVpICclLS4xOTJzJyAoRmVobGVyOiAlZCAtICVzKQBadSB2aWVsZSBWZXJiaW5kdW5nZW4AS2VpbiBTcGVpY2hlciBtZWhyIHZvcmhhbmRlbi4gUHLDvGZlbiBTaWUsIG9iIG15c3FsZCBvZGVyIGVpbiBhbmRlcmVyIFByb3plc3MgZGVuIGdlc2FtdGVuIFNwZWljaGVyIHZlcmJyYXVjaHQuIFdlbm4gbmljaHQsIHNvbGx0ZW4gU2llIG1pdCAndWxpbWl0JyBkYWbDvHIgc29yZ2VuLCBkYXNzIG15c3FsZCBtZWhyIFNwZWljaGVyIGJlbnV0emVuIGRhcmYsIG9kZXIgbWVociBTd2FwLVNwZWljaGVyIGVpbnJpY2h0ZW4AS2FubiBIb3N0bmFtZW4gZsO8ciBkaWVzZSBBZHJlc3NlIG5pY2h0IGVyaGFsdGVuAFVuZ8O8bHRpZ2VyIEhhbmRzaGFrZQBCZW51dHplciAnJS0uNDhzJ0AnJS0uNjRzJyBoYXQga2VpbmUgWnVncmlmZnNiZXJlY2h0aWd1bmcgZsO8ciBEYXRlbmJhbmsgJyUtLjE5MnMnAEJlbnV0emVyICclLS40OHMnQCclLS42NHMnIGhhdCBrZWluZSBadWdyaWZmc2JlcmVjaHRpZ3VuZyAodmVyd2VuZGV0ZXMgUGFzc3dvcnQ6ICVzKQBLZWluZSBEYXRlbmJhbmsgYXVzZ2V3w6RobHQAVW5iZWthbm50ZXIgQmVmZWhsAEZlbGQgJyUtLjE5MnMnIGRhcmYgbmljaHQgTlVMTCBzZWluAFVuYmVrYW5udGUgRGF0ZW5iYW5rICclLS4xOTJzJwBUYWJlbGxlICclLS4xOTJzJyBiZXJlaXRzIHZvcmhhbmRlbgBVbmJla2FubnRlIFRhYmVsbGUgJyUtLjEyOXMnAEZlbGQgJyUtLjE5MnMnIGluICUtLjE5MnMgaXN0IG5pY2h0IGVpbmRldXRpZwBEZXIgU2VydmVyIHdpcmQgaGVydW50ZXJnZWZhaHJlbgBVbmJla2FubnRlcyBUYWJlbGxlbmZlbGQgJyUtLjE5MnMnIGluICUtLjE5MnMAJyUtLjE5MnMnIGlzdCBuaWNodCBpbiBHUk9VUCBCWSB2b3JoYW5kZW4AR3J1cHBpZXJ1bmcgw7xiZXIgJyUtLjE5MnMnIG5pY2h0IG3DtmdsaWNoAERpZSBWZXJ3ZW5kdW5nIHZvbiBTdW1taWVydW5nc2Z1bmt0aW9uZW4gdW5kIFNwYWx0ZW4gaW0gc2VsYmVuIEJlZmVobCBpc3QgbmljaHQgZXJsYXVidABEaWUgQW56YWhsIGRlciBTcGFsdGVuIGVudHNwcmljaHQgbmljaHQgZGVyIEFuemFobCBkZXIgV2VydGUATmFtZSBkZXMgQmV6ZWljaG5lcnMgJyUtLjEwMHMnIGlzdCB6dSBsYW5nAERvcHBlbHRlciBTcGFsdGVubmFtZTogJyUtLjE5MnMnAERvcHBlbHRlciBOYW1lIGbDvHIgU2NobMO8c3NlbCB2b3JoYW5kZW46ICclLS4xOTJzJwBEb3BwZWx0ZXIgRWludHJhZyAnJS0uMTkycycgZsO8ciBTY2hsw7xzc2VsICVkAEZhbHNjaGUgU3BlemlmaWthdGlvbiBmw7xyIEZlbGQgJyUtLjE5MnMnACVzIGJlaSAnJS0uODBzJyBpbiBaZWlsZSAlZABMZWVyZSBBYmZyYWdlAFRhYmVsbGVubmFtZS9BbGlhcyAnJS0uMTkycycgbmljaHQgZWluZGV1dGlnAEZlaGxlcmhhZnRlciBWb3JnYWJld2VydCAoREVGQVVMVCkgZsO8ciAnJS0uMTkycycATWVocmVyZSBQcmltw6Ryc2NobMO8c3NlbCAoUFJJTUFSWSBLRVkpIGRlZmluaWVydABadSB2aWVsZSBTY2hsw7xzc2VsIGRlZmluaWVydC4gTWF4aW1hbCAlZCBTY2hsw7xzc2VsIGVybGF1YnQAWnUgdmllbGUgVGVpbHNjaGzDvHNzZWwgZGVmaW5pZXJ0LiBNYXhpbWFsICVkIFRlaWxzY2hsw7xzc2VsIGVybGF1YnQAU2NobMO8c3NlbCBpc3QgenUgbGFuZy4gRGllIG1heGltYWxlIFNjaGzDvHNzZWxsw6RuZ2UgYmV0csOkZ3QgJWQASW4gZGVyIFRhYmVsbGUgZ2lidCBlcyBrZWluIFNjaGzDvHNzZWxmZWxkICclLS4xOTJzJwBCTE9CLUZlbGQgJyUtLjE5MnMnIGthbm4gYmVpbSB2ZXJ3ZW5kZXRlbiBUYWJlbGxlbnR5cCBuaWNodCBhbHMgU2NobMO8c3NlbCB2ZXJ3ZW5kZXQgd2VyZGVuAEZlbGRsw6RuZ2UgZsO8ciBGZWxkICclLS4xOTJzJyB6dSBncm/DnyAobWF4aW1hbCAlbHUpLiBCTE9CLSBvZGVyIFRFWFQtU3BhbHRlbnR5cCB2ZXJ3ZW5kZW4hAEZhbHNjaGUgVGFiZWxsZW5kZWZpbml0aW9uLiBFcyBkYXJmIG51ciBlaW5lIEFVVE9fSU5DUkVNRU5ULVNwYWx0ZSBnZWJlbiwgdW5kIGRpZXNlIG11c3MgYWxzIFNjaGzDvHNzZWwgZGVmaW5pZXJ0IHdlcmRlbgAlczogQmVyZWl0IGbDvHIgVmVyYmluZHVuZ2VuLgpWZXJzaW9uOiAnJXMnICBTb2NrZXQ6ICclcycgIFBvcnQ6ICVkACVzOiBOb3JtYWwgaGVydW50ZXJnZWZhaHJlbgoAJXM6IFNpZ25hbCAlZCBlcmhhbHRlbi4gQWJicnVjaCEKACVzOiBIZXJ1bnRlcmZhaHJlbiBiZWVuZGV0CgAlczogVGhyZWFkICVsZCB6d2FuZ3N3ZWlzZSBiZWVuZGV0LiBCZW51dHplcjogJyUtLjQ4cycKAEthbm4gSVAtU29ja2V0IG5pY2h0IGVyemV1Z2VuAFRhYmVsbGUgJyUtLjE5MnMnIGJlc2l0enQga2VpbmVuIHdpZSBkZW4gaW4gQ1JFQVRFIElOREVYIHZlcndlbmRldGVuIEluZGV4LiBUYWJlbGxlIG5ldSBhbmxlZ2VuAEZlbGRiZWdyZW56ZXItQXJndW1lbnQgaXN0IG5pY2h0IGluIGRlciBlcndhcnRldGVuIEZvcm0uIEJpdHRlIGltIEhhbmRidWNoIG5hY2hsZXNlbgBFaW5lIGZlc3RlIFplaWxlbmzDpG5nZSBrYW5uIGbDvHIgQkxPQi1GZWxkZXIgbmljaHQgdmVyd2VuZGV0IHdlcmRlbi4gQml0dGUgJ2ZpZWxkcyB0ZXJtaW5hdGVkIGJ5JyB2ZXJ3ZW5kZW4ARGF0ZWkgJyUtLjEyOHMnIG11c3MgaW0gRGF0ZW5iYW5rLVZlcnplaWNobmlzIHZvcmhhbmRlbiBvZGVyIGxlc2JhciBmw7xyIGFsbGUgc2VpbgBEYXRlaSAnJS0uMjAwcycgYmVyZWl0cyB2b3JoYW5kZW4ARGF0ZW5zw6R0emU6ICVsZCAgR2Vsw7ZzY2h0OiAlbGQgIEF1c2dlbGFzc2VuOiAlbGQgIFdhcm51bmdlbjogJWxkAERhdGVuc8OkdHplOiAlbGQgIER1cGxpa2F0ZTogJWxkAEZhbHNjaGVyIFVudGVydGVpbHNjaGzDvHNzZWwuIERlciB2ZXJ3ZW5kZXRlIFNjaGzDvHNzZWx0ZWlsIGlzdCBlbnR3ZWRlciBrZWluIFN0cmluZywgZGllIHZlcndlbmRldGUgTMOkbmdlIGlzdCBsw6RuZ2VyIGFscyBkZXIgVGVpbHNjaGzDvHNzZWwgb2RlciBkaWUgU3BlaWNoZXItRW5naW5lIHVudGVyc3TDvHR6dCBrZWluZSBVbnRlcnRlaWxzY2hsw7xzc2VsAE1pdCBBTFRFUiBUQUJMRSBrw7ZubmVuIG5pY2h0IGFsbGUgRmVsZGVyIGF1ZiBlaW5tYWwgZ2Vsw7ZzY2h0IHdlcmRlbi4gRGFmw7xyIERST1AgVEFCTEUgdmVyd2VuZGVuAEthbm4gJyUtLjE5MnMnIG5pY2h0IGzDtnNjaGVuLiBFeGlzdGllcnQgZGllIFNwYWx0ZSBvZGVyIGRlciBTY2hsw7xzc2VsPwBEYXRlbnPDpHR6ZTogJWxkICBEdXBsaWthdGU6ICVsZCAgV2FybnVuZ2VuOiAlbGQARGllIFZlcndlbmR1bmcgZGVyIHp1IGFrdHVhbGlzaWVyZW5kZW4gWmllbHRhYmVsbGUgJyUtLjE5MnMnIGlzdCBpbiBkZXIgRlJPTS1LbGF1c2VsIG5pY2h0IHp1bMOkc3NpZy4AVW5iZWthbm50ZSBUaHJlYWQtSUQ6ICVsdQBTaWUgc2luZCBuaWNodCBFaWdlbnTDvG1lciB2b24gVGhyZWFkICVsdQBLZWluZSBUYWJlbGxlbiB2ZXJ3ZW5kZXQAWnUgdmllbGUgU3RyaW5ncyBmw7xyIEZlbGQgJS0uMTkycyB1bmQgU0VUIGFuZ2VnZWJlbgBLYW5uIGtlaW5lbiBlaW5kZXV0aWdlbiBEYXRlaW5hbWVuIGbDvHIgZGllIExvZ2RhdGVpICUtLjIwMHMoMS05OTkpIGVyemV1Z2VuCgBUYWJlbGxlICclLS4xOTJzJyBpc3QgbWl0IExlc2VzcGVycmUgdmVyc2VoZW4gdW5kIGthbm4gbmljaHQgYWt0dWFsaXNpZXJ0IHdlcmRlbgBUYWJlbGxlICclLS4xOTJzJyB3dXJkZSBuaWNodCBtaXQgTE9DSyBUQUJMRVMgZ2VzcGVycnQAQkxPQi9URVhULUZlbGQgJyUtLjE5MnMnIGRhcmYga2VpbmVuIFZvcmdhYmV3ZXJ0IChERUZBVUxUKSBoYWJlbgBVbmVybGF1YnRlciBEYXRlbmJhbmtuYW1lICclLS4xMDBzJwBVbmVybGF1YnRlciBUYWJlbGxlbm5hbWUgJyUtLjEwMHMnAERpZSBBdXNmw7xocnVuZyBkZXMgU0VMRUNUIHfDvHJkZSB6dSB2aWVsZSBEYXRlbnPDpHR6ZSB1bnRlcnN1Y2hlbiB1bmQgd2FocnNjaGVpbmxpY2ggc2VociBsYW5nZSBkYXVlcm4uIEJpdHRlIFdIRVJFLUtsYXVzZWwgw7xiZXJwcsO8ZmVuIHVuZCBnZWdlYmVuZW5mYWxscyBTRVQgU1FMX0JJR19TRUxFQ1RTPTEgb2RlciBTRVQgTUFYX0pPSU5fU0laRT0jIHZlcndlbmRlbgBVbmJla2FubnRlciBGZWhsZXIAVW5iZWthbm50ZSBQcm96ZWR1ciAnJS0uMTkycycARmFsc2NoZSBQYXJhbWV0ZXJ6YWhsIGbDvHIgUHJvemVkdXIgJyUtLjE5MnMnAEZhbHNjaGUgUGFyYW1ldGVyIGbDvHIgUHJvemVkdXIgJyUtLjE5MnMnAFVuYmVrYW5udGUgVGFiZWxsZSAnJS0uMTkycycgaW4gJyUtLjMycycARmVsZCAnJS0uMTkycycgd3VyZGUgendlaW1hbCBhbmdlZ2ViZW4ARmFsc2NoZSBWZXJ3ZW5kdW5nIGVpbmVyIEdydXBwaWVydW5nc2Z1bmt0aW9uAFRhYmVsbGUgJyUtLjE5MnMnIHZlcndlbmRldCBlaW5lIEVyd2VpdGVydW5nLCBkaWUgaW4gZGllc2VyIE15U1FMLVZlcnNpb24gbmljaHQgdmVyZsO8Z2JhciBpc3QARWluZSBUYWJlbGxlIG11c3MgbWluZGVzdGVucyBlaW5lIFNwYWx0ZSBiZXNpdHplbgBUYWJlbGxlICclLS4xOTJzJyBpc3Qgdm9sbABVbmJla2FubnRlciBaZWljaGVuc2F0ejogJyUtLjY0cycAWnUgdmllbGUgVGFiZWxsZW4uIE15U1FMIGthbm4gaW4gZWluZW0gSm9pbiBtYXhpbWFsICVkIFRhYmVsbGVuIHZlcndlbmRlbgBadSB2aWVsZSBGZWxkZXIAWmVpbGVubMOkbmdlIHp1IGdyb8OfLiBEaWUgbWF4aW1hbGUgWmVpbGVubMOkbmdlIGbDvHIgZGVuIHZlcndlbmRldGVuIFRhYmVsbGVudHlwIChvaG5lIEJMT0ItRmVsZGVyKSBiZXRyw6RndCAlbGQuIEVpbmlnZSBGZWxkZXIgbcO8c3NlbiBpbiBCTE9CIG9kZXIgVEVYVCB1bWdld2FuZGVsdCB3ZXJkZW4AVGhyZWFkLVN0YWNrLcOcYmVybGF1Zi4gQmVudXR6dDogJWxkIHZvbiAlbGQgU3RhY2suICdteXNxbGQgLS10aHJlYWRfc3RhY2s9IycgdmVyd2VuZGVuLCB1bSBiZWkgQmVkYXJmIGVpbmVuIGdyw7bDn2VyZW4gU3RhY2sgYW56dWxlZ2VuAE9VVEVSIEpPSU4gZW50aMOkbHQgZmVobGVyaGFmdGUgQWJow6RuZ2lna2VpdGVuLiBJbiBPTiB2ZXJ3ZW5kZXRlIEJlZGluZ3VuZ2VuIMO8YmVycHLDvGZlbgBUYWJsZSBoYW5kbGVyIGRvZXNuJ3Qgc3VwcG9ydCBOVUxMIGluIGdpdmVuIGluZGV4LiBQbGVhc2UgY2hhbmdlIGNvbHVtbiAnJS0uMTkycycgdG8gYmUgTk9UIE5VTEwgb3IgdXNlIGFub3RoZXIgaGFuZGxlcgBLYW5uIEZ1bmt0aW9uICclLS4xOTJzJyBuaWNodCBsYWRlbgBLYW5uIEZ1bmt0aW9uICclLS4xOTJzJyBuaWNodCBpbml0aWFsaXNpZXJlbjogJS0uMTkycwBLZWluZSBQZmFkZSBnZXN0YXR0ZXQgZsO8ciBTaGFyZWQgTGlicmFyeQBGdW5rdGlvbiAnJS0uMTkycycgZXhpc3RpZXJ0IHNjaG9uAEthbm4gU2hhcmVkIExpYnJhcnkgJyUtLjE5MnMnIG5pY2h0IMO2ZmZuZW4gKEZlaGxlcjogJWQgJS0uMTkycykAS2FubiBGdW5rdGlvbiAnJS0uMTI4cycgaW4gZGVyIExpYnJhcnkgbmljaHQgZmluZGVuAEZ1bmt0aW9uICclLS4xOTJzJyBpc3QgbmljaHQgZGVmaW5pZXJ0AEhvc3QgJyUtLjI1NXMnIGJsb2NraWVydCB3ZWdlbiB6dSB2aWVsZXIgVmVyYmluZHVuZ3NmZWhsZXIuIEF1ZmhlYmVuIGRlciBCbG9ja2llcnVuZyBtaXQgJ215c3FsYWRtaW4gZmx1c2gtaG9zdHMnAEhvc3QgJyUtLjI1NXMnIGhhdCBrZWluZSBCZXJlY2h0aWd1bmcsIHNpY2ggbWl0IGRpZXNlbSBNeVNRTC1TZXJ2ZXIgenUgdmVyYmluZGVuAFNpZSBiZW51dHplbiBNeVNRTCBhbHMgYW5vbnltZXIgQmVudXR6ZXIgdW5kIGTDvHJmZW4gZGFoZXIga2VpbmUgUGFzc3fDtnJ0ZXIgw6RuZGVybgBTaWUgYmVuw7Z0aWdlbiBkaWUgQmVyZWNodGlndW5nIHp1bSBBa3R1YWxpc2llcmVuIHZvbiBUYWJlbGxlbiBpbiBkZXIgRGF0ZW5iYW5rICdteXNxbCcsIHVtIGRpZSBQYXNzd8O2cnRlciBhbmRlcmVyIEJlbnV0emVyIMOkbmRlcm4genUga8O2bm5lbgBLYW5uIGtlaW5lbiBwYXNzZW5kZW4gRGF0ZW5zYXR6IGluIFRhYmVsbGUgJ3VzZXInIGZpbmRlbgBEYXRlbnPDpHR6ZSBnZWZ1bmRlbjogJWxkICBHZcOkbmRlcnQ6ICVsZCAgV2FybnVuZ2VuOiAlbGQAS2FubiBrZWluZW4gbmV1ZW4gVGhyZWFkIGVyemV1Z2VuIChGZWhsZXI6ICVkKS4gU29sbHRlIG5vY2ggU3BlaWNoZXIgdmVyZsO8Z2JhciBzZWluLCBiaXR0ZSBpbSBIYW5kYnVjaCB3ZWdlbiBtw7ZnbGljaGVyIEZlaGxlciBpbSBCZXRyaWVic3N5c3RlbSBuYWNoc2NobGFnZW4AQW56YWhsIGRlciBGZWxkZXIgc3RpbW10IG5pY2h0IG1pdCBkZXIgQW56YWhsIGRlciBXZXJ0ZSBpbiBaZWlsZSAlbGQgw7xiZXJlaW4AS2FubiBUYWJlbGxlJyUtLjE5MnMnIG5pY2h0IGVybmV1dCDDtmZmbmVuAFVuZXJsYXVidGUgVmVyd2VuZHVuZyBlaW5lcyBOVUxMLVdlcnRzAHJlZ2V4cCBsaWVmZXJ0ZSBGZWhsZXIgJyUtLjY0cycARGFzIFZlcm1pc2NoZW4gdm9uIEdST1VQLUZlbGRlcm4gKE1JTigpLE1BWCgpLENPVU5UKCkuLi4pIG1pdCBOaWNodC1HUk9VUC1GZWxkZXJuIGlzdCBuaWNodCB6dWzDpHNzaWcsIHdlbm4ga2VpbmUgR1JPVVAtQlktS2xhdXNlbCB2b3JoYW5kZW4gaXN0AEbDvHIgQmVudXR6ZXIgJyUtLjQ4cycgYXVmIEhvc3QgJyUtLjI1NXMnIGdpYnQgZXMga2VpbmUgc29sY2hlIEJlcmVjaHRpZ3VuZwAlLS4xMjhzIEJlZmVobCBuaWNodCBlcmxhdWJ0IGbDvHIgQmVudXR6ZXIgJyUtLjQ4cydAJyUtLjY0cycgYXVmIFRhYmVsbGUgJyUtLjY0cycAJS0uMTZzIEJlZmVobCBuaWNodCBlcmxhdWJ0IGbDvHIgQmVudXR6ZXIgJyUtLjQ4cydAJyUtLjY0cycgdW5kIEZlbGQgJyUtLjE5MnMnIGluIFRhYmVsbGUgJyUtLjE5MnMnAFVuenVsw6Rzc2lnZXIgR1JBTlQtIG9kZXIgUkVWT0tFLUJlZmVobC4gVmVyZsO8Z2JhcmUgQmVyZWNodGlndW5nZW4gc2luZCBpbSBIYW5kYnVjaCBhdWZnZWbDvGhydABEYXMgSG9zdC0gb2RlciBVc2VyLUFyZ3VtZW50IGbDvHIgR1JBTlQgaXN0IHp1IGxhbmcAVGFiZWxsZSAnJS0uMTkycy4lLS4xOTJzJyBleGlzdGllcnQgbmljaHQARWluZSBzb2xjaGUgQmVyZWNodGlndW5nIGlzdCBmw7xyIFVzZXIgJyUtLjQ4cycgYXVmIEhvc3QgJyUtLjI1NXMnIGFuIFRhYmVsbGUgJyUtLjE5MnMnIG5pY2h0IGRlZmluaWVydABEZXIgdmVyd2VuZGV0ZSBCZWZlaGwgaXN0IGluIGRpZXNlciBNeVNRTC1WZXJzaW9uIG5pY2h0IHp1bMOkc3NpZwBGZWhsZXIgaW4gZGVyIFNRTC1TeW50YXguIEJpdHRlIGRpZSBrb3JyZWt0ZSBTeW50YXggaW0gSGFuZGJ1Y2ggbmFjaHNjaGxhZ2VuAERlbGF5ZWQgaW5zZXJ0IHRocmVhZCBjb3VsZG4ndCBnZXQgcmVxdWVzdGVkIGxvY2sgZm9yIHRhYmxlICUtLjE5MnMAVG9vIG1hbnkgZGVsYXllZCB0aHJlYWRzIGluIHVzZQBBYmJydWNoIGRlciBWZXJiaW5kdW5nICVsZCB6dXIgRGF0ZW5iYW5rICclLS4xOTJzJy4gQmVudXR6ZXI6ICclLS40OHMnICglLS42NHMpAEVtcGZhbmdlbmVzIFBha2V0IGlzdCBncsO2w59lciBhbHMgJ21heF9hbGxvd2VkX3BhY2tldCcgQnl0ZXMATGVzZS1GZWhsZXIgYmVpIGVpbmVyIFZlcmJpbmR1bmdzLVBpcGUAZmNudGwoKSBsaWVmZXJ0ZSBlaW5lbiBGZWhsZXIAUGFrZXRlIG5pY2h0IGluIGRlciByaWNodGlnZW4gUmVpaGVuZm9sZ2UgZW1wZmFuZ2VuAEtvbW11bmlrYXRpb25zcGFrZXQgbMOkc3N0IHNpY2ggbmljaHQgZW50cGFja2VuAEZlaGxlciBiZWltIExlc2VuIGVpbmVzIEtvbW11bmlrYXRpb25zcGFrZXRzAFplaXTDvGJlcnNjaHJlaXR1bmcgYmVpbSBMZXNlbiBlaW5lcyBLb21tdW5pa2F0aW9uc3Bha2V0cwBGZWhsZXIgYmVpbSBTY2hyZWliZW4gZWluZXMgS29tbXVuaWthdGlvbnNwYWtldHMAWmVpdMO8YmVyc2NocmVpdHVuZyBiZWltIFNjaHJlaWJlbiBlaW5lcyBLb21tdW5pa2F0aW9uc3Bha2V0cwBFcmdlYm5pcy1TdHJpbmcgaXN0IGzDpG5nZXIgYWxzICdtYXhfYWxsb3dlZF9wYWNrZXQnIEJ5dGVzAERlciB2ZXJ3ZW5kZXRlIFRhYmVsbGVudHlwIHVudGVyc3TDvHR6dCBrZWluZSBCTE9CLSB1bmQgVEVYVC1GZWxkZXIARGVyIHZlcndlbmRldGUgVGFiZWxsZW50eXAgdW50ZXJzdMO8dHp0IGtlaW5lIEFVVE9fSU5DUkVNRU5ULUZlbGRlcgBJTlNFUlQgREVMQVlFRCBjYW4ndCBiZSB1c2VkIHdpdGggdGFibGUgJyUtLjE5MnMnIGJlY2F1c2UgaXQgaXMgbG9ja2VkIHdpdGggTE9DSyBUQUJMRVMARmFsc2NoZXIgU3BhbHRlbm5hbWUgJyUtLjEwMHMnAERpZSB2ZXJ3ZW5kZXRlIFNwZWljaGVyLUVuZ2luZSBrYW5uIGRpZSBTcGFsdGUgJyUtLjE5MnMnIG5pY2h0IGluZGl6aWVyZW4ATmljaHQgYWxsZSBUYWJlbGxlbiBpbiBkZXIgTUVSR0UtVGFiZWxsZSBzaW5kIGdsZWljaCBkZWZpbmllcnQAU2NocmVpYmVuIGluIFRhYmVsbGUgJyUtLjE5MnMnIG5pY2h0IG3DtmdsaWNoIHdlZ2VuIGVpbmVyIEVpbmRldXRpZ2tlaXRzYmVzY2hyw6Rua3VuZyAodW5pcXVlIGNvbnN0cmFpbnQpAEJMT0ItIG9kZXIgVEVYVC1TcGFsdGUgJyUtLjE5MnMnIHdpcmQgaW4gZGVyIFNjaGzDvHNzZWxkZWZpbml0aW9uIG9obmUgU2NobMO8c3NlbGzDpG5nZW5hbmdhYmUgdmVyd2VuZGV0AEFsbGUgVGVpbGUgZWluZXMgUFJJTUFSWSBLRVkgbcO8c3NlbiBhbHMgTk9UIE5VTEwgZGVmaW5pZXJ0IHNlaW4uIFdlbm4gTlVMTCBpbiBlaW5lbSBTY2hsw7xzc2VsIGJlbsO2dGlndCB3aXJkLCBtdXNzIGVpbiBVTklRVUUtU2NobMO8c3NlbCB2ZXJ3ZW5kZXQgd2VyZGVuAEVyZ2VibmlzIGJlc3RlaHQgYXVzIG1laHIgYWxzIGVpbmVyIFplaWxlAERpZXNlciBUYWJlbGxlbnR5cCBiZW7DtnRpZ3QgZWluZW4gUHJpbcOkcnNjaGzDvHNzZWwgKFBSSU1BUlkgS0VZKQBEaWVzZSBNeVNRTC1WZXJzaW9uIGlzdCBuaWNodCBtaXQgUkFJRC1VbnRlcnN0w7x0enVuZyBrb21waWxpZXJ0AE15U1FMIGzDpHVmdCBpbSBzaWNoZXJlbiBBa3R1YWxpc2llcnVuZ3Ntb2R1cyAoc2FmZSB1cGRhdGUgbW9kZSkuIFNpZSBoYWJlbiB2ZXJzdWNodCwgZWluZSBUYWJlbGxlIHp1IGFrdHVhbGlzaWVyZW4sIG9obmUgaW4gZGVyIFdIRVJFLUtsYXVzZWwgZWluIEtFWS1GZWxkIGFuenVnZWJlbi4gJXMAU2NobMO8c3NlbCAnJS0uMTkycycgZXhpc3RpZXJ0IGluIGRlciBUYWJlbGxlICclLS4xOTJzJyBuaWNodABLYW5uIFRhYmVsbGUgbmljaHQgw7ZmZm5lbgBEaWUgU3BlaWNoZXItRW5naW5lIGbDvHIgZGllc2UgVGFiZWxsZSB1bnRlcnN0w7x0enQga2VpbiAlcwBTaWUgZMO8cmZlbiBkaWVzZW4gQmVmZWhsIG5pY2h0IGluIGVpbmVyIFRyYW5zYWt0aW9uIGF1c2bDvGhyZW4ARmVobGVyICVkIC0gJyUtLjE5MnMnIGJlaW0gQ09NTUlUAEZlaGxlciAlZCAtICclLS4xOTJzJyBiZWltIFJPTExCQUNLAEZlaGxlciAlZCBiZWkgRkxVU0hfTE9HUwBGZWhsZXIgJWQgYmVpIENIRUNLUE9JTlQAQWJicnVjaCBkZXIgVmVyYmluZHVuZyAldSB6dXIgRGF0ZW5iYW5rICclLS4xOTJzJy4gQmVudXR6ZXI6ICclLS40OHMnLCBIb3N0OiAnJS0uMjU1cycgKCUtLjY0cykARGllIFNwZWljaGVyLUVuZ2luZSBmw7xyIGRpZSBUYWJlbGxlIHVudGVyc3TDvHR6dCBrZWluZW4gYmluw6RyZW4gVGFiZWxsZW4tRHVtcABCaW5sb2cgZ2VzY2hsb3NzZW4uIEthbm4gUkVTRVQgTUFTVEVSIG5pY2h0IGF1c2bDvGhyZW4ATmV1ZXJzdGVsbHVuZyBkZXMgSW5kZXggZGVyIER1bXAtVGFiZWxsZSAnJS0uMTkycycgZmVobGdlc2NobGFnZW4ARmVobGVyIHZvbSBNYXN0ZXI6ICclLS42NHMnAE5ldHpmZWhsZXIgYmVpbSBMZXNlbiB2b20gTWFzdGVyAE5ldHpmZWhsZXIgYmVpbSBTY2hyZWliZW4genVtIE1hc3RlcgBLYW5uIGtlaW5lbiBGVUxMVEVYVC1JbmRleCBmaW5kZW4sIGRlciBkZXIgRmVsZGxpc3RlIGVudHNwcmljaHQAS2FubiBkZW4gYW5nZWdlYmVuZW4gQmVmZWhsIHdlZ2VuIGVpbmVyIGFrdGl2ZW4gVGFiZWxsZW5zcGVycmUgb2RlciBlaW5lciBha3RpdmVuIFRyYW5zYWt0aW9uIG5pY2h0IGF1c2bDvGhyZW4AVW5iZWthbm50ZSBTeXN0ZW12YXJpYWJsZSAnJS0uNjRzJwBUYWJlbGxlICclLS4xOTJzJyBpc3QgYWxzIGRlZmVrdCBtYXJraWVydCB1bmQgc29sbHRlIHJlcGFyaWVydCB3ZXJkZW4AVGFiZWxsZSAnJS0uMTkycycgaXN0IGFscyBkZWZla3QgbWFya2llcnQgdW5kIGRlciBsZXR6dGUgKGF1dG9tYXRpc2NoZT8pIFJlcGFyYXR1cnZlcnN1Y2ggc2NobHVnIGZlaGwAw4RuZGVydW5nZW4gYW4gZWluaWdlbiBuaWNodCB0cmFuc2FrdGlvbmFsZW4gVGFiZWxsZW4ga29ubnRlbiBuaWNodCB6dXLDvGNrZ2Vyb2xsdCB3ZXJkZW4AVHJhbnNha3Rpb25lbiwgZGllIGF1cyBtZWhyZXJlbiBCZWZlaGxlbiBiZXN0ZWhlbiwgYmVuw7Z0aWd0ZW4gbWVociBhbHMgJ21heF9iaW5sb2dfY2FjaGVfc2l6ZScgQnl0ZXMgYW4gU3BlaWNoZXIuIEJ0dGUgdmVyZ3LDtnNzZXJuIFNpZSBkaWVzZSBTZXJ2ZXItVmFyaWFibGUgdmVyc3VjaGVuIFNpZSBlcyBub2NoIGVpbm1hbABEaWVzZSBPcGVyYXRpb24ga2FubiBiZWkgZWluZW0gYWt0aXZlbiBTbGF2ZSBuaWNodCBkdXJjaGdlZsO8aHJ0IHdlcmRlbi4gQml0dGUgenVlcnN0IFNUT1AgU0xBVkUgYXVzZsO8aHJlbgBEaWVzZSBPcGVyYXRpb24gYmVuw7Z0aWd0IGVpbmVuIGFrdGl2ZW4gU2xhdmUuIEJpdHRlIFNsYXZlIGtvbmZpZ3VyaWVyZW4gdW5kIG1pdHRlbHMgU1RBUlQgU0xBVkUgYWt0aXZpZXJlbgBEZXIgU2VydmVyIGlzdCBuaWNodCBhbHMgU2xhdmUga29uZmlndXJpZXJ0LiBCaXR0ZSBpbiBkZXIgS29uZmlndXJhdGlvbnNkYXRlaSBvZGVyIG1pdHRlbHMgQ0hBTkdFIE1BU1RFUiBUTyBiZWhlYmVuAEtvbm50ZSBNYXN0ZXItSW5mby1TdHJ1a3R1ciBuaWNodCBpbml0aWFsaXNpZXJlbi4gV2VpdGVyZSBGZWhsZXJtZWxkdW5nZW4ga8O2bm5lbiBpbSBNeVNRTC1FcnJvci1Mb2cgZWluZ2VzZWhlbiB3ZXJkZW4AS29ubnRlIFNsYXZlLVRocmVhZCBuaWNodCBzdGFydGVuLiBCaXR0ZSBTeXN0ZW0tUmVzc291cmNlbiDDvGJlcnByw7xmZW4AQmVudXR6ZXIgJyUtLjY0cycgaGF0IG1laHIgYWxzICdtYXhfdXNlcl9jb25uZWN0aW9ucycgYWt0aXZlIFZlcmJpbmR1bmdlbgBCZWkgU0VUIGTDvHJmZW4gbnVyIGtvbnN0YW50ZSBBdXNkcsO8Y2tlIHZlcndlbmRldCB3ZXJkZW4AQmVpbSBXYXJ0ZW4gYXVmIGVpbmUgU3BlcnJlIHd1cmRlIGRpZSB6dWzDpHNzaWdlIFdhcnRlemVpdCDDvGJlcnNjaHJpdHRlbi4gQml0dGUgdmVyc3VjaGVuIFNpZSwgZGllIFRyYW5zYWt0aW9uIG5ldSB6dSBzdGFydGVuAERpZSBHZXNhbXR6YWhsIGRlciBTcGVycmVuIMO8YmVyc2NocmVpdGV0IGRpZSBHcsO2w59lIGRlciBTcGVycnRhYmVsbGUAV8OkaHJlbmQgZWluZXIgUkVBRC1VTkNPTU1JVFRFRC1UcmFuc2FrdGlvbiBrw7ZubmVuIGtlaW5lIFVQREFURS1TcGVycmVuIGFuZ2Vmb3JkZXJ0IHdlcmRlbgBEUk9QIERBVEFCQVNFIGlzdCBuaWNodCBlcmxhdWJ0LCBzb2xhbmdlIGRlciBUaHJlYWQgZWluZSBnbG9iYWxlIExlc2VzcGVycmUgaMOkbHQAQ1JFQVRFIERBVEFCQVNFIGlzdCBuaWNodCBlcmxhdWJ0LCBzb2xhbmdlIGRlciBUaHJlYWQgZWluZSBnbG9iYWxlIExlc2VzcGVycmUgaMOkbHQARmFsc2NoZSBBcmd1bWVudGUgZsO8ciAlcwAnJS0uNDhzJ0AnJS0uNjRzJyBpc3QgbmljaHQgYmVyZWNodGlndCwgbmV1ZSBCZW51dHplciBoaW56dXp1ZsO8Z2VuAEZhbHNjaGUgVGFiZWxsZW5kZWZpbml0aW9uLiBBbGxlIE1FUkdFLVRhYmVsbGVuIG3DvHNzZW4gc2ljaCBpbiBkZXJzZWxiZW4gRGF0ZW5iYW5rIGJlZmluZGVuAEJlaW0gVmVyc3VjaCwgZWluZSBTcGVycmUgYW56dWZvcmRlcm4sIGlzdCBlaW4gRGVhZGxvY2sgYXVmZ2V0cmV0ZW4uIFZlcnN1Y2hlbiBTaWUsIGRpZSBUcmFuc2FrdGlvbiBuZXUgenUgc3RhcnRlbgBEZXIgdmVyd2VuZGV0ZSBUYWJlbGxlbnR5cCB1bnRlcnN0w7x0enQga2VpbmUgRlVMTFRFWFQtSW5kaXplcwBGcmVtZHNjaGzDvHNzZWwtQmVzY2hyw6Rua3VuZyBrYW5uIG5pY2h0IGhpbnp1Z2Vmw7xndCB3ZXJkZW4ASGluenVmw7xnZW4gb2RlciBBa3R1YWxpc2llcmVuIGVpbmVzIEtpbmQtRGF0ZW5zYXR6ZXMgc2NobHVnIGF1ZmdydW5kIGVpbmVyIEZyZW1kc2NobMO8c3NlbC1CZXNjaHLDpG5rdW5nIGZlaGwATMO2c2NoZW4gb2RlciBBa3R1YWxpc2llcmVuIGVpbmVzIEVsdGVybi1EYXRlbnNhdHplcyBzY2hsdWcgYXVmZ3J1bmQgZWluZXIgRnJlbWRzY2hsw7xzc2VsLUJlc2NocsOkbmt1bmcgZmVobABGZWhsZXIgYmVpIGRlciBWZXJiaW5kdW5nIHp1bSBNYXN0ZXI6ICUtLjEyOHMAQmVpbSBBdXNmw7xocmVuIGVpbmVyIEFiZnJhZ2UgYXVmIGRlbSBNYXN0ZXIgdHJhdCBlaW4gRmVobGVyIGF1ZjogJS0uMTI4cwBGZWhsZXIgYmVpbSBBdXNmw7xocmVuIGRlcyBCZWZlaGxzICVzOiAlLS4xMjhzAEZhbHNjaGUgVmVyd2VuZHVuZyB2b24gJXMgdW5kICVzAERpZSB2ZXJ3ZW5kZXRlbiBTRUxFQ1QtQmVmZWhsZSBsaWVmZXJuIHVudGVyc2NoaWVkbGljaGUgQW56YWhsZW4gdm9uIEZlbGRlcm4genVyw7xjawBBdWdydW5kIGVpbmVzIFJFQUQtTE9DSy1Lb25mbGlrdHMga2FubiBkaWUgQWJmcmFnZSBuaWNodCBhdXNnZWbDvGhydCB3ZXJkZW4ARGllIGdsZWljaHplaXRpZ2UgVmVyd2VuZHVuZyB2b24gVGFiZWxsZW4gbWl0IHVuZCBvaG5lIFRyYW5zYWt0aW9uc3VudGVyc3TDvHR6dW5nIGlzdCBkZWFrdGl2aWVydABPcHRpb24gJyVzJyB3aXJkIGltIEJlZmVobCB6d2VpbWFsIHZlcndlbmRldABCZW51dHplciAnJS0uNjRzJyBoYXQgZGllIFJlc3NvdXJjZW5iZXNjaHLDpG5rdW5nICclcycgw7xiZXJzY2hyaXR0ZW4gKGFrdHVlbGxlciBXZXJ0OiAlbGQpAEtlaW4gWnVncmlmZi4gSGllcmbDvHIgd2lyZCBkaWUgQmVyZWNodGlndW5nICUtLjEyOHMgYmVuw7Z0aWd0AFZhcmlhYmxlICclLS42NHMnIGlzdCBlaW5lIGxva2FsZSBWYXJpYWJsZSB1bmQga2FubiBuaWNodCBtaXQgU0VUIEdMT0JBTCB2ZXLDpG5kZXJ0IHdlcmRlbgBWYXJpYWJsZSAnJS0uNjRzJyBpc3QgZWluZSBnbG9iYWxlIFZhcmlhYmxlIHVuZCBtdXNzIG1pdCBTRVQgR0xPQkFMIHZlcsOkbmRlcnQgd2VyZGVuAFZhcmlhYmxlICclLS42NHMnIGhhdCBrZWluZW4gVm9yZ2FiZXdlcnQAVmFyaWFibGUgJyUtLjY0cycga2FubiBuaWNodCBhdWYgJyUtLjIwMHMnIGdlc2V0enQgd2VyZGVuAEZhbHNjaGVyIEFyZ3VtZW50dHlwIGbDvHIgVmFyaWFibGUgJyUtLjY0cycAVmFyaWFibGUgJyUtLjY0cycga2FubiBudXIgdmVyw6RuZGVydCwgbmljaHQgZ2VsZXNlbiB3ZXJkZW4ARmFsc2NoZSBWZXJ3ZW5kdW5nIG9kZXIgUGxhdHppZXJ1bmcgdm9uICclcycARGllc2UgTXlTUUwtVmVyc2lvbiB1bnRlcnN0w7x0enQgJyVzJyBuaWNodABTY2h3ZXJlciBGZWhsZXIgJWQ6ICclLS41MTJzIHZvbSBNYXN0ZXIgYmVpbSBMZXNlbiBkZXMgYmluw6RyZW4gTG9ncwBTbGF2ZS1TUUwtVGhyZWFkIGhhdCBkaWUgQWJmcmFnZSBhdWZncnVuZCB2b24gcmVwbGljYXRlLSotdGFibGUtUmVnZWxuIGlnbm9yaWVydABWYXJpYWJsZSAnJS0uMTkycycgaXN0IGVpbmUgJXMtVmFyaWFibGUARmFsc2NoZSBGcmVtZHNjaGzDvHNzZWwtRGVmaW5pdGlvbiBmw7xyICclLS4xOTJzJzogJXMAU2NobMO8c3NlbC0gdW5kIFRhYmVsbGVudmVyd2VpcyBwYXNzZW4gbmljaHQgenVzYW1tZW4AT3BlcmFuZCBzb2xsdGUgJWQgU3BhbHRlKG4pIGVudGhhbHRlbgBVbnRlcmFiZnJhZ2UgbGllZmVydGUgbWVociBhbHMgZWluZW4gRGF0ZW5zYXR6IHp1csO8Y2sAVW5iZWthbm50ZXIgUHJlcGFyZWQtU3RhdGVtZW50LUhhbmRsZXIgKCUuKnMpIGbDvHIgJXMgYW5nZWdlYmVuAERpZSBIaWxmZS1EYXRlbmJhbmsgaXN0IGJlc2Now6RkaWd0IG9kZXIgZXhpc3RpZXJ0IG5pY2h0AFp5a2xpc2NoZXIgVmVyd2VpcyBpbiBVbnRlcmFiZnJhZ2VuAEZlbGQgJyVzJyB3aXJkIHZvbiAlcyBuYWNoICVzIHVtZ2V3YW5kZWx0AFZlcndlaXMgJyUtLjY0cycgd2lyZCBuaWNodCB1bnRlcnN0w7x0enQgKCVzKQBGw7xyIGplZGUgYWJnZWxlaXRldGUgVGFiZWxsZSBtdXNzIGVpbiBlaWdlbmVyIEFsaWFzIGFuZ2VnZWJlbiB3ZXJkZW4AU2VsZWN0ICV1IHd1cmRlIHfDpGhyZW5kIGRlciBPcHRpbWllcnVuZyByZWR1emllcnQAVGFiZWxsZSAnJS0uMTkycycsIGRpZSBpbiBlaW5lbSBkZXIgU0VMRUNULUJlZmVobGUgdmVyd2VuZGV0IHd1cmRlLCBrYW5uIG5pY2h0IGluICUtLjMycyB2ZXJ3ZW5kZXQgd2VyZGVuAENsaWVudCB1bnRlcnN0w7x0enQgZGFzIHZvbSBTZXJ2ZXIgZXJ3YXJ0ZXRlIEF1dGhlbnRpZml6aWVydW5nc3Byb3Rva29sbCBuaWNodC4gQml0dGUgYWt0dWFsaXNpZXJlbiBTaWUgSWhyZW4gTXlTUUwtQ2xpZW50AEFsbGUgVGVpbGUgZWluZXMgU1BBVElBTC1JbmRleCBtw7xzc2VuIGFscyBOT1QgTlVMTCBkZWtsYXJpZXJ0IHNlaW4AQ09MTEFUSU9OICclcycgaXN0IGbDvHIgQ0hBUkFDVEVSIFNFVCAnJXMnIHVuZ8O8bHRpZwBTbGF2ZSBsw6R1ZnQgYmVyZWl0cwBTbGF2ZSB3dXJkZSBiZXJlaXRzIGFuZ2VoYWx0ZW4AVW5rb21wcmltaWVydGUgRGF0ZW4gc2luZCB6dSBncm/Dny4gRGllIG1heGltYWxlIEdyw7bDn2UgYmV0csOkZ3QgJWQgKHdhaHJzY2hlaW5saWNoIHd1cmRlIGRpZSBMw6RuZ2UgZGVyIHVua29tcHJpbWllcnRlbiBEYXRlbiBiZXNjaMOkZGlndCkAWkxJQjogTmljaHQgZ2VudWcgU3BlaWNoZXIAWkxJQjogSW0gQXVzZ2FiZXB1ZmZlciBpc3QgbmljaHQgZ2VudWcgUGxhdHogdm9yaGFuZGVuICh3YWhyc2NoZWlubGljaCB3dXJkZSBkaWUgTMOkbmdlIGRlciB1bmtvbXByaW1pZXJ0ZW4gRGF0ZW4gYmVzY2jDpGRpZ3QpAFpMSUI6IEVpbmdhYmVkYXRlbiBiZXNjaMOkZGlndABSb3cgJXUgd2FzIGN1dCBieSBHUk9VUF9DT05DQVQoKQBaZWlsZSAlbGQgZW50aMOkbHQgbmljaHQgZsO8ciBhbGxlIEZlbGRlciBEYXRlbgBaZWlsZSAlbGQgZ2Vrw7xyenQsIGRpZSBaZWlsZSBlbnRoaWVsdCBtZWhyIERhdGVuLCBhbHMgZXMgRWluZ2FiZWZlbGRlciBnaWJ0AEZlbGQgYXVmIFZvcmdhYmV3ZXJ0IGdlc2V0enQsIGRhIE5VTEwgZsO8ciBOT1QtTlVMTC1GZWxkICclcycgaW4gWmVpbGUgJWxkIGFuZ2VnZWJlbgBPdXQgb2YgcmFuZ2UgdmFsdWUgZm9yIGNvbHVtbiAnJXMnIGF0IHJvdyAlbGQARGF0ZW4gYWJnZXNjaG5pdHRlbiBmw7xyIEZlbGQgJyVzJyBpbiBaZWlsZSAlbGQARsO8ciBUYWJlbGxlICclcycgd2lyZCBTcGVpY2hlci1FbmdpbmUgJXMgYmVudXR6dABVbmVybGF1YnRlIE1pc2NodW5nIHZvbiBTb3J0aWVycmVpaGVuZm9sZ2VuICglcywgJXMpIHVuZCAoJXMsICVzKSBmw7xyIE9wZXJhdGlvbiAnJXMnAEthbm4gZWluZW4gb2RlciBtZWhyZXJlIGRlciBhbmdlZ2ViZW5lbiBCZW51dHplciBuaWNodCBsw7ZzY2hlbgBLYW5uIG5pY2h0IGFsbGUgQmVyZWNodGlndW5nZW4gd2lkZXJydWZlbiwgZGllIGbDvHIgZWluZW4gb2RlciBtZWhyZXJlIEJlbnV0emVyIGdld8OkaHJ0IHd1cmRlbgBVbmVybGF1YnRlIE1pc2NodW5nIHZvbiBTb3J0aWVycmVpaGVuZm9sZ2VuICglcywgJXMpLCAoJXMsICVzKSwgKCVzLCAlcykgZsO8ciBPcGVyYXRpb24gJyVzJwBVbmVybGF1YnRlIE1pc2NodW5nIHZvbiBTb3J0aWVycmVpaGVuZm9sZ2VuIGbDvHIgT3BlcmF0aW9uICclcycAVmFyaWFibGUgJyUtLjY0cycgaXN0IGtlaW5lIFZhcmlhYmxlbi1Lb21wb25lbnRlIChrYW5uIG5pY2h0IGFscyBYWFhYLnZhcmlhYmxlbl9uYW1lIHZlcndlbmRldCB3ZXJkZW4pAFVuYmVrYW5udGUgU29ydGllcnJlaWhlbmZvbGdlOiAnJS0uNjRzJwBTU0wtUGFyYW1ldGVyIGluIENIQU5HRSBNQVNURVIgd2VyZGVuIGlnbm9yaWVydCwgd2VpbCBkaWVzZXIgTXlTUUwtU2xhdmUgb2huZSBTU0wtVW50ZXJzdMO8dHp1bmcga29tcGlsaWVydCB3dXJkZS4gU2llIGvDtm5uZW4gYWJlciBzcMOkdGVyIHZlcndlbmRldCB3ZXJkZW4sIHdlbm4gZWluIE15U1FMLVNsYXZlIG1pdCBTU0wgZ2VzdGFydGV0IHdpcmQAU2VydmVyIGzDpHVmdCBpbSBNb2R1cyAtLXNlY3VyZS1hdXRoLCBhYmVyICclcydAJyVzJyBoYXQgZWluIFBhc3N3b3J0IGltIGFsdGVuIEZvcm1hdC4gQml0dGUgUGFzc3dvcnQgaW5zIG5ldWUgRm9ybWF0IMOkbmRlcm4ARmVsZCBvZGVyIFZlcndlaXMgJyUtLjE5MnMlcyUtLjE5MnMlcyUtLjE5MnMnIGltIFNFTEVDVC1CZWZlaGwgTnIuICVkIHd1cmRlIGltIFNFTEVDVC1CZWZlaGwgTnIuICVkIGF1ZmdlbMO2c3QARmFsc2NoZXIgUGFyYW1ldGVyIG9kZXIgZmFsc2NoZSBLb21iaW5hdGlvbiB2b24gUGFyYW1ldGVybiBmw7xyIFNUQVJUIFNMQVZFIFVOVElMAEVzIHdpcmQgZW1wZm9obGVuLCBtaXQgLS1za2lwLXJlcGxpY2Etc3RhcnQgenUgc3RhcnRlbiwgd2VubiBtaXQgU1RBUlQgU0xBVkUgVU5USUwgZWluZSBTY2hyaXR0LWbDvHItU2Nocml0dC1SZXBsaWthdGlvbiBhdXNnZWbDvGhydCB3aXJkLiBBbnNvbnN0ZW4gZ2lidCBlcyBQcm9ibGVtZSwgd2VubiBlaW4gU2xhdmUtU2VydmVyIHVuZXJ3YXJ0ZXQgbmV1IHN0YXJ0ZXQAU1FMLVRocmVhZCBzb2xsIG5pY2h0IGdlc3RhcnRldCB3ZXJkZW4uIERhaGVyIHdlcmRlbiBVTlRJTC1PcHRpb25lbiBpZ25vcmllcnQARmFsc2NoZXIgSW5kZXhuYW1lICclLS4xMDBzJwBGYWxzY2hlciBLYXRhbG9nbmFtZSAnJS0uMTAwcycAw4RuZGVydW5nIGRlciBRdWVyeS1DYWNoZS1HcsO2w59lIGF1ZiAlbHUgZmVobGdlc2NobGFnZW47IG5ldWUgUXVlcnktQ2FjaGUtR3LDtsOfZSBpc3QgJWx1AEZlbGQgJyUtLjE5MnMnIGthbm4gbmljaHQgVGVpbCBlaW5lcyBGVUxMVEVYVC1JbmRleCBzZWluAFVuYmVrYW5udGVyIFNjaGzDvHNzZWwtQ2FjaGUgJyUtLjEwMHMnAE15U1FMIHd1cmRlIG1pdCAtLXNraXAtbmFtZS1yZXNvbHZlIGdlc3RhcnRldC4gRGllc2UgT3B0aW9uIGRhcmYgbmljaHQgdmVyd2VuZGV0IHdlcmRlbiwgZGFtaXQgZGllc2UgUmVjaHRldmVyZ2FiZSBtw7ZnbGljaCBpc3QAVW5iZWthbm50ZSBTcGVpY2hlci1FbmdpbmUgJyVzJwAnJXMnIGlzdCB2ZXJhbHRldC4gQml0dGUgYmVudXR6ZW4gU2llICclcycARGllIFppZWx0YWJlbGxlICUtLjEwMHMgdm9uICVzIGlzdCBuaWNodCBha3R1YWxpc2llcmJhcgBEYXMgRmVhdHVyZSAnJXMnIGlzdCBhdXNnZXNjaGFsdGV0LCBTaWUgbcO8c3NlbiBNeVNRTCBtaXQgJyVzJyDDvGJlcnNldHplbiwgZGFtaXQgZXMgdmVyZsO8Z2JhciBpc3QARGVyIE15U1FMLVNlcnZlciBsw6R1ZnQgbWl0IGRlciBPcHRpb24gJXMgdW5kIGthbm4gZGllc2UgQW53ZWlzdW5nIGRlc3dlZ2VuIG5pY2h0IGF1c2bDvGhyZW4ARmVsZCAnJS0uMTAwcycgaGF0IGRvcHBlbHRlbiBXZXJ0ICclLS42NHMnIGluICVzAEZhbHNjaGVyICUtLjY0cy1XZXJ0IGdla8O8cnp0OiAnJS0uMTI4cycARmVobGVyaGFmdGUgVGFiZWxsZW5kZWZpbml0aW9uLiBFcyBrYW5uIG51ciBlaW5lIGVpbnppZ2UgVElNRVNUQU1QLVNwYWx0ZSBtaXQgQ1VSUkVOVF9USU1FU1RBTVAgYWxzIERFRkFVTFQgb2RlciBpbiBlaW5lciBPTi1VUERBVEUtS2xhdXNlbCBnZWJlbgBVbmfDvGx0aWdlIE9OLVVQREFURS1LbGF1c2VsIGbDvHIgU3BhbHRlICclLS4xOTJzJwBEaWVzZXIgQmVmZWhsIHdpcmQgaW0gUHJvdG9rb2xsIGbDvHIgdm9yYmVyZWl0ZXRlIEFud2Vpc3VuZ2VuIG5vY2ggbmljaHQgdW50ZXJzdMO8dHp0AEZlaGxlciAlZCAnJS0uMTAwcycgdm9uICVzAFRlbXBvcsOkcmVyIEZlaGxlciAlZCAnJS0uMTAwcycgdm9uICVzAFVuYmVrYW5udGUgb2RlciBmYWxzY2hlIFplaXR6b25lOiAnJS0uNjRzJwBVbmfDvGx0aWdlciBUSU1FU1RBTVAtV2VydCBpbiBGZWxkICclcycsIFplaWxlICVsZABVbmfDvGx0aWdlciAlcy1aZWljaGVuLVN0cmluZzogJyUuNjRzJwBFcmdlYm5pcyB2b24gJXMoKSB3YXIgZ3LDtsOfZXIgYWxzIG1heF9hbGxvd2VkX3BhY2tldCAoJWxkKSBCeXRlcyB1bmQgd3VyZGUgZGVzaGFsYiBnZWvDvHJ6dABXaWRlcnNwcsO8Y2hsaWNoZSBEZWtsYXJhdGlvbmVuOiAnJXMlcycgdW5kICclcyVzJwBLYW5uIGtlaW4gJXMgaW5uZXJoYWxiIGVpbmVyIGFuZGVyZW4gZ2VzcGVpY2hlcnRlbiBSb3V0aW5lIGVyemV1Z2VuACVzICVzIGV4aXN0aWVydCBiZXJlaXRzACVzICVzIGV4aXN0aWVydCBuaWNodABEUk9QICVzICVzIGlzdCBmZWhsZ2VzY2hsYWdlbgBDUkVBVEUgJXMgJXMgaXN0IGZlaGxnZXNjaGxhZ2VuACVzIG9obmUgcGFzc2VuZGUgTWFya2U6ICVzAE5ldWRlZmluaXRpb24gZGVyIE1hcmtlICVzAEVuZGUtTWFya2UgJXMgb2huZSB6dWdlaMO2cmlnZW4gQW5mYW5nAFp1Z3JpZmYgYXVmIG5pY2h0aW5pdGlhbGlzaWVydGUgVmFyaWFibGUgJXMAUFJPQ0VEVVJFICVzIGthbm4gaW0gZ2VnZWJlbmVuIEtvbnRleHQga2VpbmUgRXJnZWJuaXNtZW5nZSB6dXLDvGNrZ2ViZW4AUkVUVVJOIGlzdCBudXIgaW5uZXJoYWxiIGVpbmVyIEZVTkNUSU9OIGVybGF1YnQAJXMgaXN0IGluIGdlc3BlaWNoZXJ0ZW4gUHJvemVkdXJlbiBuaWNodCBlcmxhdWJ0AERhcyBVcGRhdGUtTG9nIGlzdCB2ZXJhbHRldCB1bmQgd3VyZGUgZHVyY2ggZGFzIEJpbsOkci1Mb2cgZXJzZXR6dC4gU0VUIFNRTF9MT0dfVVBEQVRFIHdpcmQgaWdub3JpZXJ0LgBEYXMgVXBkYXRlLUxvZyBpc3QgdmVyYWx0ZXQgdW5kIHd1cmRlIGR1cmNoIGRhcyBCaW7DpHItTG9nIGVyc2V0enQuIFNFVCBTUUxfTE9HX1VQREFURSB3dXJkZSBpbiBTRVQgU1FMX0xPR19CSU4gw7xiZXJzZXR6dC4AQXVzZsO8aHJ1bmcgZGVyIEFiZnJhZ2Ugd3VyZGUgdW50ZXJicm9jaGVuAEZhbHNjaGUgQW56YWhsIHZvbiBBcmd1bWVudGVuIGbDvHIgJXMgJXM7IGVyd2FydGUgJXUsIGVyaGFsdGUgJXUAVW5kZWZpbmllcnRlIENPTkRJVElPTjogJXMAS2VpbiBSRVRVUk4gaW4gRlVOQ1RJT04gJXMgZ2VmdW5kZW4ARlVOQ1RJT04gJXMgZW5kZXRlIG9obmUgUkVUVVJOAEN1cnNvci1BbndlaXN1bmcgbXVzcyBlaW4gU0VMRUNUIHNlaW4AQ3Vyc29yLVNFTEVDVCBkYXJmIGtlaW4gSU5UTyBoYWJlbgBVbmRlZmluaWVydGVyIENVUlNPUjogJXMAQ3Vyc29yIGlzdCBzY2hvbiBnZcO2ZmZuZXQAQ3Vyc29yIGlzdCBuaWNodCBnZcO2ZmZuZXQATmljaHQgZGVrbGFyaWVydGUgVmFyaWFibGU6ICVzAEZhbHNjaGUgQW56YWhsIHZvbiBGRVRDSC1WYXJpYWJsZW4AS2VpbmUgRGF0ZW4gLSBudWxsIFplaWxlbiBnZWhvbHQgKGZldGNoKSwgYXVzZ2V3w6RobHQgb2RlciB2ZXJhcmJlaXRldABEb3BwZWx0ZXIgUGFyYW1ldGVyOiAlcwBEb3BwZWx0ZSBWYXJpYWJsZTogJXMARG9wcGVsdGUgQmVkaW5ndW5nOiAlcwBEb3BwZWx0ZXIgQ3Vyc29yOiAlcwBBTFRFUiAlcyAlcyBmZWhsZ2VzY2hsYWdlbgBTdWJxdWVyeS1XZXJ0IHdpcmQgbmljaHQgdW50ZXJzdMO8dHp0ACVzIGlzdCBpbiBnZXNwZWljaGVydGVuIEZ1bmt0aW9uZW4gdW5kIGluIFRyaWdnZXJuIG5pY2h0IGVybGF1YnQARGVrbGFyYXRpb24gZWluZXIgVmFyaWFibGVuIG9kZXIgZWluZXIgQmVkaW5ndW5nIG5hY2ggZGVyIERla2xhcmF0aW9uIGVpbmVzIEN1cnNvcnMgb2RlciBlaW5lcyBIYW5kbGVycwBEZWtsYXJhdGlvbiBlaW5lcyBDdXJzb3JzIG5hY2ggZGVyIERla2xhcmF0aW9uIGVpbmVzIEhhbmRsZXJzAEZhbGwgZsO8ciBDQVNFLUFud2Vpc3VuZyBuaWNodCBnZWZ1bmRlbgBLb25maWd1cmF0aW9uc2RhdGVpICclLS4xOTJzJyBpc3QgenUgZ3Jvw58ATmljaHQgd29obGdlZm9ybXRlciBEYXRlaXR5cC1IZWFkZXIgaW4gRGF0ZWkgJyUtLjE5MnMnAFVuZXJ3YXJ0ZXRlcyBEYXRlaWVuZGUgYmVpbSBQYXJzZW4gZGVzIEtvbW1lbnRhcnMgJyUtLjIwMHMnAEZlaGxlciBiZWltIFBhcnNlbiBkZXMgUGFyYW1ldGVycyAnJS0uMTkycycgKFplaWxlOiAnJS0uMTkycycpAFVuZXJ3YXJ0ZXRlcyBEYXRlaWVuZGUgYmVpbSDDnGJlcnNwcmluZ2VuIGRlcyB1bmJla2FubnRlbiBQYXJhbWV0ZXJzICclLS4xOTJzJwBFWFBMQUlOL1NIT1cga2FubiBuaWNodCB2ZXJsYW5ndCB3ZXJkZW4uIFJlY2h0ZSBmw7xyIHp1Z3J1bmRlIGxpZWdlbmRlIFRhYmVsbGUgZmVobGVuAERhdGVpICclLS4xOTJzJyBoYXQgdW5iZWthbm50ZW4gVHlwICclLS42NHMnIGltIEhlYWRlcgAnJS0uMTkycy4lLS4xOTJzJyBpc3QgbmljaHQgJXMARmVsZCAnJS0uMTkycycgaXN0IG5pY2h0IGFrdHVhbGlzaWVyYmFyAFNFTEVDVCBkZXIgVmlldyBlbnRow6RsdCBlaW5lIFN1YnF1ZXJ5IGluIGRlciBGUk9NLUtsYXVzZWwAU0VMRUNUIGRlciBWaWV3IGVudGjDpGx0IGVpbmUgJyVzJy1LbGF1c2VsAFNFTEVDVCBkZXIgVmlldyBlbnRow6RsdCBlaW5lIFZhcmlhYmxlIG9kZXIgZWluZW4gUGFyYW1ldGVyAFNFTEVDVCBkZXIgVmlldyB2ZXJ3ZWlzdCBhdWYgZWluZSB0ZW1wb3LDpHJlIFRhYmVsbGUgJyUtLjE5MnMnAFNFTEVDVC0gdW5kIEZlbGRsaXN0ZSBkZXIgVmlld3MgaGFiZW4gdW50ZXJzY2hpZWRsaWNoZSBBbnphaGxlbiB2b24gU3BhbHRlbgBWaWV3LU1lcmdlLUFsZ29yaXRobXVzIGthbm4gaGllciBtb21lbnRhbiBuaWNodCB2ZXJ3ZW5kZXQgd2VyZGVuICh1bmRlZmluaWVydGVyIEFsZ29yaXRobXVzIHdpcmQgYW5nZW5vbW1lbikARGllIGFrdHVhbGlzaWVydGUgVmlldyBlbnRow6RsdCBuaWNodCBkZW4gdm9sbHN0w6RuZGlnZW4gU2NobMO8c3NlbCBkZXIgenVncnVuZGUgbGllZ2VuZGVuIFRhYmVsbGUAVmlldyAnJS0uMTkycy4lLS4xOTJzJyByZWZlcmVuY2VzIGludmFsaWQgdGFibGUocykgb3IgY29sdW1uKHMpIG9yIGZ1bmN0aW9uKHMpIG9yIGRlZmluZXIvaW52b2tlciBvZiB2aWV3IGxhY2sgcmlnaHRzIHRvIHVzZSB0aGVtAEthbm4gZWluZSAlcyBuaWNodCB2b24gaW5uZXJoYWxiIGVpbmVyIGFuZGVyZW4gZ2VzcGVpY2hlcnRlbiBSb3V0aW5lIGzDtnNjaGVuIG9kZXIgw6RuZGVybgBHT1RPIGlzdCBpbSBIYW5kbGVyIGVpbmVyIGdlc3BlaWNoZXJ0ZW4gUHJvemVkdXIgbmljaHQgZXJsYXVidABUcmlnZ2VyIGV4aXN0aWVydCBiZXJlaXRzAFRyaWdnZXIgZXhpc3RpZXJ0IG5pY2h0ACclLS4xOTJzJyBkZXMgVHJpZ2dlcnMgaXN0IFZpZXcgb2RlciB0ZW1wb3LDpHJlIFRhYmVsbGUAQWt0dWFsaXNpZXJlbiBlaW5lciAlcy1aZWlsZSBpc3QgaW4gZWluZW0gJXMtVHJpZ2dlciBuaWNodCBlcmxhdWJ0AEVzIGdpYnQga2VpbmUgJXMtWmVpbGUgaW0gJXMtVHJpZ2dlcgBGZWxkICclLS4xOTJzJyBoYXQga2VpbmVuIFZvcmdhYmV3ZXJ0AERpdmlzaW9uIGR1cmNoIDAARmFsc2NoZXIgJS0uMzJzLVdlcnQ6ICclLS4xMjhzJyBmw7xyIEZlbGQgJyUuMTkycycgaW4gWmVpbGUgJWxkAE5pY2h0IHp1bMOkc3NpZ2VyICVzLVdlcnQgJyUtLjE5MnMnIGJlaW0gUGFyc2VuIGdlZnVuZGVuAENIRUNLIE9QVElPTiBhdWYgbmljaHQtYWt0dWFsaXNpZXJiYXJlbSBWaWV3ICclLS4xOTJzLiUtLjE5MnMnAENIRUNLIE9QVElPTiBmZWhsZ2VzY2hsYWdlbjogJyUtLjE5MnMuJS0uMTkycycAQmVmZWhsICUtLjE2cyBuaWNodCB6dWzDpHNzaWcgZsO8ciBCZW51dHplciAnJS0uNDhzJ0AnJS0uNjRzJyBpbiBSb3V0aW5lICclLS4xOTJzJwBCZXJlaW5pZ2VuIGFsdGVyIFJlbGFpcy1Mb2dzIGZlaGxnZXNjaGxhZ2VuOiAlcwBQYXNzd29ydC1IYXNoIHNvbGx0ZSBlaW5lIEhleGRhZXppbWFsemFobCBtaXQgJWQgU3RlbGxlbiBzZWluAFppZWwtTG9nIGltIEJpbmxvZy1JbmRleCBuaWNodCBnZWZ1bmRlbgBGZWhsZXIgYmVpbSBMZXNlbiBkZXIgTG9nLUluZGV4LURhdGVpAFNlcnZlci1Lb25maWd1cmF0aW9uIGVybGF1YnQga2VpbmUgQmlubG9nLUJlcmVpbmlndW5nAGZzZWVrKCkgZmVobGdlc2NobGFnZW4AU2Nod2Vyd2llZ2VuZGVyIEZlaGxlciBiZWkgZGVyIExvZy1CZXJlaW5pZ3VuZwBFaW4genUgYmVyZWluaWdlbmRlcyBMb2cgd2lyZCBnZXJhZGUgYmVudXR6dCwgZGFoZXIga2VpbmUgQmVyZWluaWd1bmcAVW5iZWthbm50ZXIgRmVobGVyIGJlaSBMb2ctQmVyZWluaWd1bmcASW5pdGlhbGlzaWVydW5nIGRlciBSZWxhaXMtTG9nLVBvc2l0aW9uIGZlaGxnZXNjaGxhZ2VuOiAlcwBTaWUgdmVyd2VuZGVuIGtlaW5lIEJpbsOkcmxvZ3MARGllIFNjaHJlaWJ3ZWlzZSAnJS0uNjRzJyBpc3QgZsO8ciBpbnRlcm5lIFp3ZWNrZSBkZXMgTXlTUUwtU2VydmVycyByZXNlcnZpZXJ0AFdTQVN0YXJ0dXAgZmVobGdlc2NobGFnZW4AS2FubiBQcm96ZWR1cmVuIG1pdCB1bnRlcnNjaGllZGxpY2hlbiBHcnVwcGVuIG5vY2ggbmljaHQgdmVyYXJiZWl0ZW4AU0VMRUNUIG11c3MgYmVpIGRpZXNlciBQcm96ZWR1ciBlaW4gR1JPVVAgQlkgaGFiZW4AS2FubiBiZWkgZGllc2VyIFByb3plZHVyIGtlaW5lIE9SREVSLUJZLUtsYXVzZWwgdmVyd2VuZGVuAEJpbsOkcmxvZ3MgdW5kIFJlcGxpa2F0aW9uIHZlcmhpbmRlcm4gV2VjaHNlbCBkZXMgZ2xvYmFsZW4gU2VydmVycyAlcwBLYW5uIERhdGVpIG5pY2h0IGFiYmlsZGVuOiAlLS4yMDBzLCBGZWhsZXI6ICVkAEZhbHNjaGUgbWFnaXNjaGUgWmFobGVuIGluICUtLjY0cwBWb3JiZXJlaXRldGUgQW53ZWlzdW5nIGVudGjDpGx0IHp1IHZpZWxlIFBsYXR6aGFsdGVyAEzDpG5nZSBkZXMgU2NobMO8c3NlbHRlaWxzICclLS4xOTJzJyBrYW5uIG5pY2h0IDAgc2VpbgBWaWV3LVRleHQtUHLDvGZzdW1tZSBmZWhsZ2VzY2hsYWdlbgBLYW5uIG5pY2h0IG1laHIgYWxzIGVpbmUgQmFzaXN0YWJlbGxlIMO8YmVyIEpvaW4tVmlldyAnJS0uMTkycy4lLS4xOTJzJyDDpG5kZXJuAEthbm4gbmljaHQgb2huZSBGZWxkbGlzdGUgaW4gSm9pbi1WaWV3ICclLS4xOTJzLiUtLjE5MnMnIGVpbmbDvGdlbgBLYW5uIG5pY2h0IGF1cyBKb2luLVZpZXcgJyUtLjE5MnMuJS0uMTkycycgbMO2c2NoZW4AT3BlcmF0aW9uICVzIHNjaGx1ZyBmZWhsIGbDvHIgJS4yNTZzAFhBRVJfTk9UQTogVW5iZWthbm50ZSBYSUQAWEFFUl9JTlZBTDogVW5nw7xsdGlnZSBBcmd1bWVudGUgKG9kZXIgbmljaHQgdW50ZXJzdMO8dHp0ZXIgQmVmZWhsKQBYQUVSX1JNRkFJTDogREVyIEJlZmVobCBrYW5uIG5pY2h0IGF1c2dlZsO8aHJ0IHdlcmRlbiwgd2VubiBkaWUgZ2xvYmFsZSBUcmFuc2FrdGlvbiBpbSBadXN0YW5kICUuNjRzIGlzdABYQUVSX09VVFNJREU6IEVpbmlnZSBBcmJlaXRlbiB3ZXJkZW4gYXXDn2VyaGFsYiBkZXIgZ2xvYmFsZW4gVHJhbnNha3Rpb24gdmVycmljaHRldABYQUVSX1JNRVJSOiBTY2h3ZXJ3aWVnZW5kZXIgRmVobGVyIGltIFRyYW5zYWt0aW9uc3p3ZWlnIC0gcHLDvGZlbiBTaWUgSWhyZSBEYXRlbiBhdWYgS29uc2lzdGVuegBYQV9SQlJPTExCQUNLOiBUcmFuc2FrdGlvbnN6d2VpZyB3dXJkZSB6dXLDvGNrZ2Vyb2xsdABFcyBnaWJ0IGRpZXNlIEJlcmVjaHRpZ3VuZyBmw7xyIEJlbnV0emVyICclLS40OHMnIGF1ZiBIb3N0ICclLS4yNTVzJyBmw7xyIFJvdXRpbmUgJyUtLjE5MnMnIG5pY2h0AEdld8OkaHJ1bmcgdm9uIEVYRUNVVEUtIHVuZCBBTFRFUi1ST1VUSU5FLVJlY2h0ZW4gZmVobGdlc2NobGFnZW4AUsO8Y2tuYWhtZSBhbGxlciBSZWNodGUgZsO8ciBkaWUgZ2Vsw7ZzY2h0ZSBSb3V0aW5lIGZlaGxnZXNjaGxhZ2VuAERhdGVuIHp1IGxhbmcgZsO8ciBGZWxkICclcycgaW4gWmVpbGUgJWxkAFVuZ8O8bHRpZ2VyIFNRTFNUQVRFOiAnJXMnACVzOiBiZXJlaXQgZsO8ciBWZXJiaW5kdW5nZW4uIFZlcnNpb246ICclcycgIFNvY2tldDogJyVzJyAgUG9ydDogJWQgICVzAEthbm4gV2VydCBhdXMgRGF0ZWkgbWl0IFplaWxlbiBmZXN0ZXIgR3LDtsOfZSBuaWNodCBpbiBWYXJpYWJsZSBsYWRlbgBTaWUgZMO8cmZlbiBrZWluZW4gQmVudXR6ZXIgbWl0IEdSQU5UIGFubGVnZW4ARmFsc2NoZXIgJS0uMzJzLVdlcnQ6ICclLS4xMjhzJyBmw7xyIEZ1bmt0aW9uICUtLjMycwBUYWJlbGxlbmRlZmluaXRpb24gd3VyZGUgZ2XDpG5kZXJ0LCBiaXR0ZSBzdGFydGVuIFNpZSBkaWUgVHJhbnNha3Rpb24gbmV1AERvcHBlbHRlciBIYW5kbGVyIGltIHNlbGJlbiBCbG9jayBkZWtsYXJpZXJ0AE9VVC0gb2RlciBJTk9VVC1Bcmd1bWVudCAlZCBmw7xyIFJvdXRpbmUgJXMgaXN0IGtlaW5lIFZhcmlhYmxlAFLDvGNrZ2FiZSBlaW5lciBFcmdlYm5pc21lbmdlIGF1cyBlaW5lciAlcyBpc3QgbmljaHQgZXJsYXVidABLYW5uIGtlaW4gR2VvbWV0cmllb2JqZWt0IGF1cyBkZW4gRGF0ZW4gbWFjaGVuLCBkaWUgU2llIGRlbSBHRU9NRVRSWS1GZWxkIMO8YmVyZ2ViZW4gaGFiZW4ARWluZSBSb3V0aW5lLCBkaWUgd2VkZXIgTk8gU1FMIG5vY2ggUkVBRFMgU1FMIERBVEEgaW4gZGVyIERla2xhcmF0aW9uIGhhdCwgc2NobHVnIGZlaGwgdW5kIEJpbsOkcmxvZ2dpbmcgaXN0IGFrdGl2LiBXZW5uIE5pY2h0LVRyYW5zYWt0aW9ucy1UYWJlbGxlbiBha3R1YWxpc2llcnQgd3VyZGVuLCBlbnRow6RsdCBkYXMgQmluw6RybG9nIGlocmUgw4RuZGVydW5nZW4gbmljaHQARGllc2UgUm91dGluZSBoYXQgd2VkZXIgREVURVJNSU5JU1RJQywgTk8gU1FMIG5vY2ggUkVBRFMgU1FMIERBVEEgaW4gZGVyIERla2xhcmF0aW9uIHVuZCBCaW7DpHJsb2dnaW5nIGlzdCBha3RpdiAoKnZpZWxsZWljaHQqIHNvbGx0ZW4gU2llIGRpZSB3ZW5pZ2VyIHNpY2hlcmUgVmFyaWFibGUgbG9nX2Jpbl90cnVzdF9mdW5jdGlvbl9jcmVhdG9ycyB2ZXJ3ZW5kZW4pAFNpZSBoYWJlbiBrZWluZSBTVVBFUi1CZXJlY2h0aWd1bmcgdW5kIEJpbsOkcmxvZ2dpbmcgaXN0IGFrdGl2ICgqdmllbGxlaWNodCogc29sbHRlbiBTaWUgZGllIHdlbmlnZXIgc2ljaGVyZSBWYXJpYWJsZSBsb2dfYmluX3RydXN0X2Z1bmN0aW9uX2NyZWF0b3JzIHZlcndlbmRlbikAU2llIGvDtm5uZW4ga2VpbmUgdm9yYmVyZWl0ZXRlIEFud2Vpc3VuZyBhdXNmw7xocmVuLCBkaWUgbWl0IGVpbmVtIGdlw7ZmZm5ldGVuIEN1cnNvciB2ZXJrbsO8cGZ0IGlzdC4gU2V0emVuIFNpZSBkaWUgQW53ZWlzdW5nIHp1csO8Y2ssIHVtIHNpZSBuZXUgYXVzenVmw7xocmVuAERpZSBBbndlaXN1bmcgKCVsdSkgaGF0IGtlaW5lbiBnZcO2ZmZuZXRlbiBDdXJzb3IARXhwbGl6aXRlcyBvZGVyIGltcGxpeml0ZXMgQ29tbWl0IGlzdCBpbiBnZXNwZWljaGVydGVuIEZ1bmt0aW9uZW4gdW5kIGluIFRyaWdnZXJuIG5pY2h0IGVybGF1YnQARWluIEZlbGQgZGVyIGRlbSBWaWV3ICclLS4xOTJzLiUtLjE5MnMnIHp1Z3J1bmRlbGllZ2VuZGVuIFRhYmVsbGUgaGF0IGtlaW5lbiBWb3JnYWJld2VydABSZWt1cnNpdmUgZ2VzcGVpY2hlcnRlIFJvdXRpbmVuIHVuZCBUcmlnZ2VycyBzaW5kIG5pY2h0IGVybGF1YnQAWnUgZ3Jvw59lciBTa2FsaWVydW5nc2Zha3RvciAlZCBmw7xyIEZlbGQgJyUtLjE5MnMnIGFuZ2VnZWJlbi4gTWF4aW11bSBpc3QgJWx1AFp1IGdyb8OfZSBHZW5hdWlna2VpdCAlZCBmw7xyIEZlbGQgJyUtLjE5MnMnIGFuZ2VnZWJlbi4gTWF4aW11bSBpc3QgJWx1AEbDvHIgRkxPQVQoTSxEKSwgRE9VQkxFKE0sRCkgb2RlciBERUNJTUFMKE0sRCkgbXVzcyBNID49IEQgc2VpbiAoRmVsZCAnJS0uMTkycycpAFNpZSBrw7ZubmVuIFNjaHJlaWJzcGVycmVuIGF1ZiBkZXIgU3lzdGVtdGFiZWxsZSBuaWNodCBtaXQgYW5kZXJlbiBUYWJlbGxlbiBrb21iaW5pZXJlbgBLYW5uIG5pY2h0IG1pdCBGcmVtZGRhdGVucXVlbGxlIHZlcmJpbmRlbjogJS42NHMAQmVpIGRlciBWZXJhcmJlaXR1bmcgZGVyIEFiZnJhZ2UgaXN0IGluIGRlciBGcmVtZGRhdGVucXVlbGxlIGVpbiBQcm9ibGVtIGF1ZmdldHJldGVuLiBEYXRlbnF1ZWxsZW5mZWhsZXJtZWxkdW5nOiAlLS42NHMARGllIEZyZW1kZGF0ZW5xdWVsbGUsIGF1ZiBkaWUgU2llIHp1Z3JlaWZlbiB3b2xsZW4sIGV4aXN0aWVydCBuaWNodC4gRGF0ZW5xdWVsbGVuZmVobGVybWVsZHVuZzogICUtLjY0cwBLYW5uIGbDtmRlcmllcnRlIFRhYmVsbGUgbmljaHQgZXJ6ZXVnZW4uIERlciBEYXRlbnF1ZWxsZW4tVmVyYmluZHVuZ3NzdHJpbmcgJyUtLjY0cycgaGF0IGtlaW4ga29ycmVrdGVzIEZvcm1hdABEZXIgRGF0ZW5xdWVsbGVuLVZlcmJpbmR1bmdzc3RyaW5nICclLS42NHMnIGhhdCBrZWluIGtvcnJla3RlcyBGb3JtYXQAS2FubiBmw7ZkZXJpZXJ0ZSBUYWJlbGxlIG5pY2h0IGVyemV1Z2VuLiBGcmVtZGRhdGVucXVlbGxlbmZlaGxlcm1lbGR1bmc6ICAlLS42NHMAVHJpZ2dlciBpbSBmYWxzY2hlbiBTY2hlbWEAVGhyZWFkLVN0YWNrLcOcYmVybGF1ZjogJWxkIEJ5dGVzIGVpbmVzICVsZC1CeXRlLVN0YWNrcyBpbiBWZXJ3ZW5kdW5nLCB1bmQgJWxkIEJ5dGVzIGJlbsO2dGlndC4gVmVyd2VuZGVuIFNpZSAnbXlzcWxkIC0tdGhyZWFkX3N0YWNrPSMnLCB1bSBlaW5lbiBncsO2w59lcmVuIFN0YWNrIGFuenVnZWJlbgBSb3V0aW5lbi1Cb2R5IGbDvHIgJyUtLjEwMHMnIGlzdCB6dSBsYW5nAERlciB2b3JnYWJlbcOkw59pZ2UgU2NobMO8c3NlbC1DYWNoZSBrYW5uIG5pY2h0IGdlbMO2c2NodCB3ZXJkZW4AQW56ZWlnZWJyZWl0ZSBhdcOfZXJoYWxiIGRlcyB6dWzDpHNzaWdlbiBCZXJlaWNocyBmw7xyIFNwYWx0ZSAnJS0uMTkycycgKE1heGltdW06ICVsdSkAWEFFUl9EVVBJRDogRGllIFhJRCBleGlzdGllcnQgYmVyZWl0cwBEYXRldGltZS1GdW5rdGlvbjogJS0uMzJzIEZlbGTDvGJlcmxhdWYAS2FubiBUYWJlbGxlICclLS4xOTJzJyBpbiBnZXNwZWljaGVydGVyIEZ1bmt0aW9uIG9kZXIgVHJpZ2dlciBuaWNodCBha3R1YWxpc2llcmVuLCB3ZWlsIHNpZSBiZXJlaXRzIHZvbiBkZXIgQW53ZWlzdW5nIHZlcndlbmRldCB3aXJkLCBkaWUgZGllc2UgZ2VzcGVpY2hlcnRlIEZ1bmt0aW9uIG9kZXIgZGVuIFRyaWdnZXIgYXVmcmllZgBEaWUgRGVmaW5pdGlvbiBkZXIgVGFiZWxsZSAnJS0uMTkycycgdmVyaGluZGVydCBkaWUgT3BlcmF0aW9uICUuMTkycyBhdWYgVGFiZWxsZSAnJS0uMTkycycARGllIHZvcmJlcmVpdGV0ZSBBbndlaXN1bmcgZW50aMOkbHQgZWluZW4gQXVmcnVmIGVpbmVyIGdlc3BlaWNoZXJ0ZW4gUm91dGluZSwgZGllIGF1ZiBlYmVuIGRpZXNlbGJlIEFud2Vpc3VuZyB2ZXJ3ZWlzdC4gRXMgaXN0IG5pY2h0IGVybGF1YnQsIGVpbmUgdm9yYmVyZWl0ZXRlIEFud2Vpc3VuZyBpbiBzb2xjaCByZWt1cnNpdmVyIFdlaXNlIGF1c3p1ZsO8aHJlbgBFcyBpc3QgbmljaHQgZXJsYXVidCwgaW5uZXJoYWxiIGVpbmVyIGdlc3BlaWNoZXJ0ZW4gRnVua3Rpb24gb2RlciBlaW5lcyBUcmlnZ2VycyBBVVRPQ09NTUlUIHp1IHNldHplbgBEZWZpbmllcmVyIGRlcyBWaWV3IGlzdCBuaWNodCB2b2xsc3TDpG5kaWcgc3BlemlmaXppZXJ0AFZpZXcgJyUtLjE5MnMnLiclLS4xOTJzJyBoYXQga2VpbmUgRGVmaW5pZXJlci1JbmZvcm1hdGlvbiAoYWx0ZXMgVGFiZWxsZW5mb3JtYXQpLiBEZXIgYWt0dWVsbGUgQmVudXR6ZXIgd2lyZCBhbHMgRGVmaW5pZXJlciB2ZXJ3ZW5kZXQuIEJpdHRlIGVyc3RlbGxlbiBTaWUgZGVuIFZpZXcgbmV1AFNpZSBicmF1Y2hlbiBkaWUgU1VQRVItQmVyZWNodGlndW5nLCB1bSBlaW5lbiBWaWV3IG1pdCBkZW0gRGVmaW5pZXJlciAnJS0uMTkycydAJyUtLjE5MnMnIHp1IGVyemV1Z2VuAERlciBhbHMgRGVmaW5pZXJlciBhbmdlZ2ViZW5lIEJlbnV0emVyICgnJS0uNjRzJ0AnJS0uNjRzJykgZXhpc3RpZXJ0IG5pY2h0AFdlY2hzZWwgZGVzIFNjaGVtYXMgdm9uICclLS4xOTJzJyBhdWYgJyUtLjE5MnMnIGlzdCBuaWNodCBlcmxhdWJ0AEthbm4gRWx0ZXJuLVplaWxlIG5pY2h0IGzDtnNjaGVuIG9kZXIgYWt0dWFsaXNpZXJlbjogZWluZSBGcmVtZHNjaGzDvHNzZWxiZWRpbmd1bmcgc2NobMOkZ3QgZmVobCUuMTkycwBLYW5uIEtpbmQtWmVpbGUgbmljaHQgaGluenVmw7xnZW4gb2RlciBha3R1YWxpc2llcmVuOiBlaW5lIEZyZW1kc2NobMO8c3NlbGJlZGluZ3VuZyBzY2hsw6RndCBmZWhsJS4xOTJzAFZhcmlhYmxlICclLS42NHMnIG11c3MgbWl0IGAuLi5gIGdlc2Now7x0enQgb2RlciBhYmVyIHVtYmVuYW5udCB3ZXJkZW4ATm8gZGVmaW5lciBhdHRyaWJ1dGUgZm9yIHRyaWdnZXIgJyUtLjE5MnMnLiclLS4xOTJzJy4gSXQncyBkaXNhbGxvd2VkIHRvIGNyZWF0ZSB0cmlnZ2VyIHdpdGhvdXQgZGVmaW5lci4AJyUtLjE5MnMnIGhhdCBhbHRlcyBGb3JtYXQsIFNpZSBzb2xsdGVuIGRpZSAnJXMnLU9iamVrdChlKSBuZXUgZXJ6ZXVnZW4AUmVrdXJzaW9uc2dyZW56ZSAlZCAoZHVyY2ggVmFyaWFibGUgbWF4X3NwX3JlY3Vyc2lvbl9kZXB0aCBnZWdlYmVuKSB3dXJkZSBmw7xyIFJvdXRpbmUgJS4xOTJzIMO8YmVyc2Nocml0dGVuAFJvdXRpbmUgJS0uMTkycyBrb25udGUgbmljaHQgZ2VsYWRlbiB3ZXJkZW4uIERpZSBkYXRhIGRpY3Rpb25hcnkgVGFiZWxsZSBmZWhsdCwgaXN0IGJlc2Now6RkaWd0LCBvZGVyIGVudGjDpGx0IGZlaGxlcmhhZnRlbiBEYXRlbiAoaW50ZXJuZXIgQ29kZTogJWQpAFVuZ8O8bHRpZ2VyIFJvdXRpbmVubmFtZSAnJS0uMTkycycAVGFiZWxsZW5ha3R1YWxpc2llcnVuZyBlcmZvcmRlcmxpY2guIEJpdHRlIHp1bSBSZXBhcmllcmVuICJSRVBBSVIgVEFCTEUgYCUtLjY0c2AiIGVpbmdlYmVuIQBBR0dSRUdBVEUgd2lyZCBiZWkgZ2VzcGVpY2hlcnRlbiBGdW5rdGlvbmVuIG5pY2h0IHVudGVyc3TDvHR6dABLYW5uIG5pY2h0IG1laHIgQW53ZWlzdW5nZW4gYWxzIG1heF9wcmVwYXJlZF9zdG10X2NvdW50IGVyemV1Z2VuIChha3R1ZWxsZXIgV2VydDogJWx1KQBgJS0uMTkyc2AuYCUtLjE5MnNgIGVudGjDpGx0IFZpZXctUmVrdXJzaW9uAEluIGRlciAlLS4xOTJzLUtsYXVzZWwgd2lyZCBkYXMgZGllIE5pY2h0LUdydXBwaWVydW5nc3NwYWx0ZSAnJS0uNjRzJyB2ZXJ3ZW5kZXQARGVyIHZlcndlbmRldGUgVGFiZWxsZW50eXAgdW50ZXJzdMO8dHp0IGtlaW5lIFNQQVRJQUwtSW5kaXplcwBUcmlnZ2VyIGvDtm5uZW4gbmljaHQgYXVmIFN5c3RlbXRhYmVsbGVuIGVyemV1Z3Qgd2VyZGVuAEbDvGhyZW5kZSBMZWVyemVpY2hlbiB3ZXJkZW4gYXVzIGRlbSBOYW1lbiAnJXMnIGVudGZlcm50AExlc2VuIGRlcyBBdXRvaW5jcmVtZW50LVdlcnRzIHZvbiBkZXIgU3BlaWNoZXItRW5naW5lIGZlaGxnZXNjaGxhZ2VuAEJlbnV0emVybmFtZQBIb3N0bmFtZQBTdHJpbmcgJyUtLjcwcycgaXN0IHp1IGxhbmcgZsO8ciAlcyAoc29sbHRlIG5pY2h0IGzDpG5nZXIgc2VpbiBhbHMgJWQpAERpZSBaaWVsdGFiZWxsZSAlLS4xMDBzIHZvbiAlcyBpc3QgbmljaHQgZWluZsO8Z2JhcgBUYWJlbGxlICclLS42NHMnIGlzdCB1bnRlcnNjaGllZGxpY2ggZGVmaW5pZXJ0LCBuaWNodCB2b20gVHlwIE15SVNBTSBvZGVyIGV4aXN0aWVydCBuaWNodABadSB0aWVmIHZlcnNjaGFjaHRlbHRlIFNFTEVDVC1BbndlaXN1bmdlbgBOYW1lICclLS42NHMnIHd1cmRlIHp1ICcnAERhcyBlcnN0ZSBaZWljaGVuIGRlciBaZWljaGVua2V0dGUgRklFTERTIFRFUk1JTkFURUQgaXN0IG1laHJkZXV0aWc7IGJpdHRlIGJlbnV0emVuIFNpZSBuaWNodCBvcHRpb25hbGUgdW5kIG5pY2h0IGxlZXJlIEZJRUxEUyBFTkNMT1NFRCBCWQBEZXIgZW50ZmVybnRlIFNlcnZlciAlcywgZGVuIFNpZSB2ZXJzdWNoZW4genUgZXJ6ZXVnZW4sIGV4aXN0aWVydCBzY2hvbi4ARGllIGV4dGVybmUgVmVyYmluZHVuZywgYXVmIGRpZSBTaWUgenVncmVpZmVuIHdvbGxlbiwgZXhpc3RpZXJ0IG5pY2h0LiBEYXRlbnF1ZWxsZW5mZWhsZXJtZWxkdW5nOiAgJS0uNjRzAFNwZWljaGVyLUVuZ2luZSAnJS0uNjRzJyBkZXIgVGFiZWxsZSB1bnRlcnN0w7x0enQgZGllIE9wdGlvbiAnJS42NHMnIG5pY2h0AEZlaGxlciBpbiBkZXIgU1FMLVN5bnRheDogJS0uNjRzLVBBUlRJVElPTmllcnVuZyBlcmZvcmRlcnQgRGVmaW5pdGlvbiB2b24gVkFMVUVTICUtLjY0cyBmw7xyIGplZGUgUGFydGl0aW9uAE51ciAlLS42NHMtUEFSVElUSU9OaWVydW5nIGthbm4gVkFMVUVTICUtLjY0cyBpbiBkZXIgUGFydGl0aW9uc2RlZmluaXRpb24gdmVyd2VuZGVuAE1BWFZBTFVFIGthbm4gbnVyIGbDvHIgZGllIERlZmluaXRpb24gZGVyIGxldHp0ZW4gUGFydGl0aW9uIHZlcndlbmRldCB3ZXJkZW4AVW50ZXJwYXJ0aXRpb25lbiBkw7xyZmVuIG51ciBIQVNILSBvZGVyIEtFWS1QYXJ0aXRpb25lbiBzZWluAFdlbm4gU2llIFVudGVycGFydGl0aW9uZW4gYXVmIGVpbmVyIFBhcnRpdGlvbiBkZWZpbmllcmVuLCBtw7xzc2VuIFNpZSBkYXMgZsO8ciBhbGxlIFBhcnRpdGlvbmVuIHR1bgBGYWxzY2hlIEFuemFobCB2b24gUGFydGl0aW9uZW4gZGVmaW5pZXJ0LCBzdGltbXQgbmljaHQgbWl0IHZvcmhlcmlnZW4gRWluc3RlbGx1bmdlbiDDvGJlcmVpbgBGYWxzY2hlIEFuemFobCB2b24gVW50ZXJwYXJ0aXRpb25lbiBkZWZpbmllcnQsIHN0aW1tdCBuaWNodCBtaXQgdm9yaGVyaWdlbiBFaW5zdGVsbHVuZ2VuIMO8YmVyZWluAEtvbnN0YW50ZSBvZGVyIFJhbmRvbS1BdXNkcsO8Y2tlIGluIChVbnRlci0pUGFydGl0aW9uc2Z1bmt0aW9uZW4gc2luZCBuaWNodCBlcmxhdWJ0AEF1c2Ryw7xja2UgaW4gUkFOR0UvTElTVCBWQUxVRVMgbcO8c3NlbiBrb25zdGFudCBzZWluAEZlbGRlciBpbiBkZXIgRmVsZGxpc3RlIGRlciBQYXJ0aXRpb25pZXJ1bmdzZnVua3Rpb24gd3VyZGVuIGluIGRlciBUYWJlbGxlIG5pY2h0IGdlZnVuZGVuAEVpbmUgRmVsZGxpc3RlIGlzdCBudXIgaW4gS0VZLVBhcnRpdGlvbmVuIGVybGF1YnQARGllIFBhcnRpdGlvbmllcnVuZ3NpbmZvcm1hdGlvbmVuIGluIGRlciBmcm0tRGF0ZWkgc3RpbW1lbiBuaWNodCBtaXQgZGVtIMO8YmVyZWluLCB3YXMgaW4gZGllIGZybS1EYXRlaSBnZXNjaHJpZWJlbiB3ZXJkZW4ga2FubgBEaWUgJS0uMTkycy1GdW5rdGlvbiBnaWJ0IGVpbmVuIGZhbHNjaGVuIFR5cCB6dXLDvGNrAEbDvHIgJS0uNjRzLVBhcnRpdGlvbmVuIG11c3MgamVkZSBQYXJ0aXRpb24gZGVmaW5pZXJ0IHNlaW4AV2VydGUgaW4gVkFMVUVTIExFU1MgVEhBTiBtw7xzc2VuIGbDvHIgamVkZSBQYXJ0aXRpb24gc3RyaWt0IGF1ZnN0ZWlnZW5kIHNlaW4AVkFMVUVTLVdlcnRlIG3DvHNzZW4gdm9tIHNlbGJlbiBUeXAgd2llIGRpZSBQYXJ0aXRpb25pZXJ1bmdzZnVua3Rpb24gc2VpbgBNZWhyZmFjaGRlZmluaXRpb24gZGVyc2VsYmVuIEtvbnN0YW50ZSBiZWkgTGlzdGVuLVBhcnRpdGlvbmllcnVuZwBQYXJ0aXRpb25pZXJ1bmcga2FubiBpbiBlaW5lciBBYmZyYWdlIG5pY2h0IGFsbGVpbnN0ZWhlbmQgYmVudXR6dCB3ZXJkZW4ARGFzIFZlcm1pc2NoZW4gdm9uIEhhbmRsZXJuIGluIFBhcnRpdGlvbmVuIGlzdCBpbiBkaWVzZXIgVmVyc2lvbiB2b24gTXlTUUwgbmljaHQgZXJsYXVidABGw7xyIGRpZSBwYXJ0aXRpb25pZXJ0ZSBFbmdpbmUgbcO8c3NlbiBhbGxlICUtLjY0cyBkZWZpbmllcnQgc2VpbgBFcyB3dXJkZW4genUgdmllbGVuIFBhcnRpdGlvbmVuIChlaW5zY2hsaWXDn2xpY2ggVW50ZXJwYXJ0aXRpb25lbikgZGVmaW5pZXJ0AFJBTkdFL0xJU1QtUGFydGl0aW9uaWVydW5nIGthbm4gYmVpIFVudGVycGFydGl0aW9uZW4gbnVyIHp1c2FtbWVuIG1pdCBIQVNIL0tFWS1QYXJ0aXRpb25pZXJ1bmcgdmVyd2VuZGV0IHdlcmRlbgBFcnpldWdlbiBlaW5lciBzcGV6aWZpc2NoZW4gSGFuZGxlci1EYXRlaSBmZWhsZ2VzY2hsYWdlbgBJbiBkZXIgUGFydGl0aW9uaWVydW5nc2Z1bmt0aW9uIHNpbmQgQkxPQi1TcGFsdGVuIG5pY2h0IGVybGF1YnQAQSAlLS4xOTJzIG11c3QgaW5jbHVkZSBhbGwgY29sdW1ucyBpbiB0aGUgdGFibGUncyBwYXJ0aXRpb25pbmcgZnVuY3Rpb24gKHByZWZpeGVkIGNvbHVtbnMgYXJlIG5vdCBjb25zaWRlcmVkKS4ARWluZSBBbnphaGwgdm9uICUtLjY0cyA9IDAgaXN0IGtlaW4gZXJsYXVidGVyIFdlcnQAUGFydGl0aW9uc3ZlcndhbHR1bmcgZWluZXIgbmljaHQgcGFydGl0aW9uaWVydGVuIFRhYmVsbGUgaXN0IG5pY2h0IG3DtmdsaWNoAEZyZW1kc2NobMO8c3NlbC1CZXNjaHLDpG5rdW5nZW4gc2luZCBpbSBadXNhbW1lbmhhbmcgbWl0IFBhcnRpdGlvbmllcnVuZyBuaWNodCB6dWzDpHNzaWcARmVobGVyIGluIGRlciBQYXJ0aXRpb25zbGlzdGUgYmVpICUtLjY0cwBFcyBsYXNzZW4gc2ljaCBuaWNodCBzw6RtdGxpY2hlIFBhcnRpdGlvbmVuIGzDtnNjaGVuLCBiZW51dHplbiBTaWUgc3RhdHQgZGVzc2VuIERST1AgVEFCTEUAQ09BTEVTQ0UgUEFSVElUSU9OIGthbm4gbnVyIGF1ZiBIQVNILSBvZGVyIEtFWS1QYXJ0aXRpb25lbiBiZW51dHp0IHdlcmRlbgBSRU9SR0FOSVpFIFBBUlRJVElPTiBrYW5uIG51ciB6dXIgUmVvcmdhbmlzYXRpb24gdm9uIFBhcnRpdGlvbmVuIHZlcndlbmRldCB3ZXJkZW4sIG5pY2h0LCB1bSBpaHJlIE51bW1lcm4genUgw6RuZGVybgBSRU9SR0FOSVpFIFBBUlRJVElPTiBvaG5lIFBhcmFtZXRlciBrYW5uIG51ciBmw7xyIGF1dG8tcGFydGl0aW9uaWVydGUgVGFiZWxsZW4gdmVyd2VuZGV0IHdlcmRlbiwgZGllIEhBU0gtUGFydGl0aW9uaWVydW5nIGJlbnV0emVuACUtLjY0cyBQQVJUSVRJT04ga2FubiBudXIgZsO8ciBSQU5HRS0gb2RlciBMSVNULVBhcnRpdGlvbmVuIHZlcndlbmRldCB3ZXJkZW4ARXMgd3VyZGUgdmVyc3VjaHQsIGVpbmUgb2RlciBtZWhyZXJlIFBhcnRpdGlvbmVuIG1pdCBkZXIgZmFsc2NoZW4gQW56YWhsIHZvbiBVbnRlcnBhcnRpdGlvbmVuIGhpbnp1enVmw7xnZW4ARXMgbXVzcyB6dW1pbmRlc3QgZWluZSBQYXJ0aXRpb24gaGluenVnZWbDvGd0IHdlcmRlbgBadW1pbmRlc3QgZWluZSBQYXJ0aXRpb24gbXVzcyBtaXQgQ09BTEVTQ0UgUEFSVElUSU9OIHp1c2FtbWVuZ2Vmw7xndCB3ZXJkZW4ARXMgd3VyZGUgdmVyc3VjaHQsIG1laHIgUGFydGl0aW9uZW4gYWxzIHZvcmhhbmRlbiB6dSByZW9yZ2FuaXNpZXJlbgBEb3BwZWx0ZXIgUGFydGl0aW9uc25hbWU6ICUtLjE5MnMARXMgZXMgbmljaHQgZXJsYXVidCwgYmVpIGRpZXNlbSBCZWZlaGwgYmlubG9nIGFienVzY2hhbHRlbgBCZWkgZGVyIFJlb3JnYW5pc2F0aW9uIGVpbmVzIFNhdHplcyB2b24gUGFydGl0aW9uZW4gbcO8c3NlbiBkaWVzZSBpbiBnZW9yZG5ldGVyIFJlaWhlbmZvbGdlIHZvcmxpZWdlbgBEaWUgUmVvcmdhbmlzYXRpb24gdm9uIFJBTkdFLVBhcnRpdGlvbmVuIGthbm4gR2VzYW10YmVyZWljaGUgbmljaHQgdmVyw6RuZGVybiwgbWl0IEF1c25haG1lIGRlciBsZXR6dGVuIFBhcnRpdGlvbiwgZGllIGRlbiBCZXJlaWNoIGVyd2VpdGVybiBrYW5uAFBhcnRpdGlvbnNmdW5rdGlvbiBpbiBkaWVzZXIgVmVyc2lvbiBkaWVzZXMgSGFuZGxlcnMgbmljaHQgdW50ZXJzdMO8dHp0AFBhcnRpdGlvbnN6dXN0YW5kIGthbm4gbmljaHQgdm9uIENSRUFURSBvZGVyIEFMVEVSIFRBQkxFIGF1cyBkZWZpbmllcnQgd2VyZGVuAERlciBIYW5kbGVyICUtLjY0cyB1bnRlcnN0w7x0enQgaW4gVkFMVUVTIG51ciAzMi1CaXQtSW50ZWdlcnMAUGx1Z2luICclLS4xOTJzJyBpc3QgbmljaHQgZ2VsYWRlbgBGYWxzY2hlciAlLS4zMnMtV2VydDogJyUtLjEyOHMnAFRhYmVsbGUgaGF0IGbDvHIgZGVuIFdlcnQgJS0uNjRzIGtlaW5lIFBhcnRpdGlvbgAlcyBkYXJmIG5pY2h0IG1laHIgYWxzIGVpbm1hbCBhbmdlZ2VnZWJlbiB3ZXJkZW4AQW5sZWdlbiB2b24gJXMgZmVobGdlc2NobGFnZW4ATMO2c2NoZW4gdm9uICVzIGZlaGxnZXNjaGxhZ2VuAERlciBIYW5kbGVyIHVudGVyc3TDvHR6dCBrZWluZSBhdXRvbWF0aXNjaGUgRXJ3ZWl0ZXJ1bmcgKEF1dG9leHRlbmQpIHZvbiBUYWJsZXNwYWNlcwBFaW4gR3LDtsOfZW4tUGFyYW1ldGVyIHd1cmRlIHVua29ycmVrdCBhbmdlZ2ViZW4sIG11c3MgZW50d2VkZXIgWmFobCBzZWluIG9kZXIgaW0gRm9ybWF0IDEwTQBEaWUgWmFobCBmw7xyIGRpZSBHcsO2w59lIHdhciBrb3JyZWt0LCBhYmVyIGRlciBaYWhsYW50ZWlsIGRhcmYgbmljaHQgZ3LDtsOfZXIgYWxzIDIgTWlsbGlhcmRlbiBzZWluAMOEbmRlcnVuZyB2b24gJXMgZmVobGdlc2NobGFnZW4AU2NocmVpYmVuIGVpbmVyIFplaWxlbiBpbnMgemVpbGVuYmFzaWVydGUgQmluw6RybG9nIGZlaGxnZXNjaGxhZ2VuAFRhYmVsbGVuZGVmaW5pdGlvbiBhdWYgTWFzdGVyIHVuZCBTbGF2ZSBzdGltbXQgbmljaHQgw7xiZXJlaW46ICVzAFNsYXZlLCBkaWUgbWl0IC0tbG9nLXJlcGxpY2EtdXBkYXRlcyBsYXVmZW4sIG3DvHNzZW4gemVpbGVuYmFzaWVydGVzIExvZ2dlbiB2ZXJ3ZW5kZW4sIHVtIHplaWxlbmJhc2llcnRlIEJpbsOkcmxvZy1FcmVpZ25pc3NlIGxvZ2dlbiB6dSBrw7ZubmVuAEV2ZW50ICclLS4xOTJzJyBleGlzdGllcnQgYmVyZWl0cwBTcGVpY2hlcm4gdm9uIEV2ZW50ICVzIGZlaGxnZXNjaGxhZ2VuLiBGZWhsZXJjb2RlIGRlciBTcGVpY2hlci1FbmdpbmU6ICVkAFVuYmVrYW5udGVzIEV2ZW50ICclLS4xOTJzJwDDhG5kZXJuIGRlcyBFdmVudHMgJyUtLjE5MnMnIGZlaGxnZXNjaGxhZ2VuAEzDtnNjaGVuIHZvbiAlcyBmZWhsZ2VzY2hsYWdlbgBJTlRFUlZBTCBpc3QgZW50d2VkZXIgbmljaHQgcG9zaXRpdiBvZGVyIHp1IGdyb8OfAEVORFMgaXN0IGVudHdlZGVyIHVuZ8O8bHRpZyBvZGVyIGxpZWd0IHZvciBTVEFSVFMAQXVzZsO8aHJ1bmdzemVpdCBkZXMgRXZlbnRzIGxpZWd0IGluIGRlciBWZXJnYW5nZW5oZWl0LiBFdmVudCB3dXJkZSBkZWFrdGl2aWVydADDlmZmbmVuIHZvbiBteXNxbC5ldmVudCBmZWhsZ2VzY2hsYWdlbgBLZWluIERBVEVUSU1FLUF1c2RydWNrIGFuZ2VnZWJlbgBTcGFsdGVuYW56YWhsIHZvbiBteXNxbC4lcyBmYWxzY2guICVkIGVyd2FydGV0LCBhYmVyICVkIGdlZnVuZGVuLiBUYWJlbGxlIGlzdCB3YWhyc2NoZWlubGljaCBiZXNjaMOkZGlndABLYW5uIG15c3FsLiVzIG5pY2h0IGVpbmxlc2VuLiBUYWJlbGxlIGlzdCB3YWhyc2NoZWlubGljaCBiZXNjaMOkZGlndABMw7ZzY2hlbiBkZXMgRXZlbnRzIGF1cyBteXNxbC5ldmVudCBmZWhsZ2VzY2hsYWdlbgBGZWhsZXIgYmVpbSBLb21waWxpZXJlbiBkZXMgRXZlbnQtQm9keXMAQWx0ZXIgdW5kIG5ldWVyIEV2ZW50LU5hbWUgc2luZCBnbGVpY2gARGF0ZW4gZGVyIFNwYWx0ZSAnJXMnIHp1IGxhbmcAS2FubiBJbmRleCAnJS0uMTkycycgbmljaHQgbMO2c2NoZW46IHdpcmQgZsO8ciBlaW5lIEZyZW1kc2NobMO8c3NlbGJlc2NocsOkbmt1bmcgYmVuw7Z0aWd0AERpZSBTeW50YXggJyVzJyBpc3QgdmVyYWx0ZXQgdW5kIHdpcmQgaW4gTXlTUUwgJXMgZW50ZmVybnQuIEJpdHRlIGJlbnV0emVuIFNpZSBzdGF0dCBkZXNzZW4gJXMARWluZSBMb2ctVGFiZWxsZSBrYW5uIG5pY2h0IHNjaHJlaWJnZXNwZXJydCB3ZXJkZW4uIEVzIGlzdCBvaG5laGluIG51ciBMZXNlenVncmlmZiBtw7ZnbGljaABMb2ctVGFiZWxsZW4ga8O2bm5lbiBuaWNodCBnZXNwZXJydCB3ZXJkZW4uAFVwaG9sZGluZyBmb3JlaWduIGtleSBjb25zdHJhaW50cyBmb3IgdGFibGUgJyUuMTkycycsIGVudHJ5ICclLS4xOTJzJywga2V5ICVkIHdvdWxkIGxlYWQgdG8gYSBkdXBsaWNhdGUgZW50cnkAU3BhbHRlbmFuemFobCB2b24gbXlzcWwuJXMgZmFsc2NoLiAlZCBlcndhcnRldCwgYWJlciAlZCBlcmhhbHRlbi4gRXJ6ZXVndCBtaXQgTXlTUUwgJWQsIGpldHp0IHVudGVyICVkLiBCaXR0ZSB2ZXJ3ZW5kZW4gU2llIGRpZSBNeVNRTC1VcGdyYWRlLVByb3plZHVyLCB1bSBkZW4gRmVobGVyIHp1IGJlaGViZW4uAEthbm4gbmljaHQgYXVzIGRlbSB6ZWlsZW5iYXNpZXJ0ZW4gQmluw6RybG9nLUZvcm1hdCBoZXJhdXN3ZWNoc2Vsbiwgd2VubiBkaWUgU2l0enVuZyBvZmZlbmUgdGVtcG9yw6RyZSBUYWJlbGxlbiBoYXQARGFzIEJpbsOkcmxvZy1Gb3JtYXQga2FubiBpbm5lcmhhbGIgZWluZXIgZ2VzcGVpY2hlcnRlbiBGdW5rdGlvbiBvZGVyIGVpbmVzIFRyaWdnZXJzIG5pY2h0IGdlw6RuZGVydCB3ZXJkZW4ARGllIFNwZWljaGVyLUVuZ2luZSBOREIgQ2x1c3RlciB1bnRlcnN0w7x0enQgZGFzIMOEbmRlcm4gZGVzIEJpbsOkcmxvZy1Gb3JtYXRzIHp1ciBMYXVmemVpdCBub2NoIG5pY2h0AEFubGVnZW4gdGVtcG9yw6RyZXIgVGFiZWxsZW4gbWl0IFBhcnRpdGlvbmVuIG5pY2h0IG3DtmdsaWNoAFBhcnRpdGlvbnNrb25zdGFudGUgbGllZ3QgYXXDn2VyaGFsYiBkZXIgUGFydGl0aW9uc2Z1bmt0aW9uc2RvbcOkbmUARGllc2UgUGFydGl0aW9uaWVydW5nc2Z1bmt0aW9uIGlzdCBuaWNodCBlcmxhdWJ0AEZlaGxlciBpbSBEREwtTG9nAEluIFZBTFVFUyBMRVNTIFRIQU4gZMO8cmZlbiBrZWluZSBOVUxMLVdlcnRlIHZlcndlbmRldCB3ZXJkZW4ARmFsc2NoZXIgUGFydGl0aW9uc25hbWUAVHJhbnNhY3Rpb24gY2hhcmFjdGVyaXN0aWNzIGNhbid0IGJlIGNoYW5nZWQgd2hpbGUgYSB0cmFuc2FjdGlvbiBpcyBpbiBwcm9ncmVzcwBBTFRFUiBUQUJMRSBmw7xocnQgenVyIE5ldXNlcXVlbnppZXJ1bmcgdm9uIGF1dG9faW5jcmVtZW50LCB3b2R1cmNoIGRlciBkb3BwZWx0ZSBFaW50cmFnICclLS4xOTJzJyBmw7xyIFNjaGzDvHNzZWwgJyUtLjE5MnMnIGF1ZnRyaXR0AEludGVybmVyIFNjaGVkdWxlci1GZWhsZXIgJWQARmVobGVyIHfDpGhyZW5kIGRlcyBTdGFydGVucyBvZGVyIEFuaGFsdGVuIGRlcyBTY2hlZHVsZXJzLiBGZWhsZXJjb2RlICV1AEVuZ2luZSBrYW5uIGluIHBhcnRpdGlvbmllcnRlbiBUYWJlbGxlbiBuaWNodCB2ZXJ3ZW5kZXQgd2VyZGVuAEthbm4gTG9nZGF0ZWkgJyUtLjY0cycgbmljaHQgYWt0aXZpZXJlbgBEZXIgU2VydmVyIHd1cmRlIG5pY2h0IG1pdCB6ZWlsZW5iYXNpZXJ0ZXIgUmVwbGlrYXRpb24gZ2ViYXV0AERlciBTZXJ2ZXIgaGF0IGtlaW5lIHplaWxlbmJhc2llcnRlIFJlcGxpa2F0aW9uAFJla3Vyc2l2aXTDpHQgdm9uIEVWRU5ULURETC1BbndlaXN1bmdlbiBpc3QgdW56dWzDpHNzaWcgd2VubiBlaW4gSGF1cHR0ZWlsIChCb2R5KSBleGlzdGllcnQAS2FubiBuaWNodCB3ZWl0ZXJtYWNoZW4sIHdlaWwgZGllIFRhYmVsbGVuLCBkaWUgdm9uIEV2ZW50cyB2ZXJ3ZW5kZXQgd2VyZGVuLCBiZWltIFNlcnZlcnN0YXJ0IGFscyBiZXNjaMOkZGlndCBtYXJraWVydCB3dXJkZW4AQW4gZGllc2VyIFN0ZWxsZSBzaW5kIG51ciBHYW56emFobGVuIHp1bMOkc3NpZwBEaWVzZSBTcGVpY2hlci1FbmdpbmUga2FubiBmw7xyIExvZ3RhYmVsbGVuIG5pY2h0IHZlcndlbmRldCB3ZXJkZW4AU2llIGvDtm5uZW4gZWluZSBMb2d0YWJlbGxlIG5pY2h0ICclcycsIHdlbm4gTG9nZ2VuIGFuZ2VzY2hhbHRldCBpc3QAS2FubiAnJXMnIG5pY2h0IHVtYmVuZW5uZW4uIFdlbm4gTG9nZ2VuIGFuZ2VzY2hhbHRldCBpc3QsIG3DvHNzZW4gendlaSBUYWJlbGxlbiB1bWJlbmFubnQgd2VyZGVuOiBkaWUgTG9ndGFiZWxsZSB6dSBlaW5lciBBcmNoaXZ0YWJlbGxlLCB1bmQgZWluZSB3ZWl0ZXJlIFRhYmVsbGUgenUgJyVzJwBGYWxzY2hlIEFuemFobCB2b24gUGFyYW1ldGVybiBiZWltIEF1ZnJ1ZiBkZXIgbmF0aXZlbiBGdW5rdGlvbiAnJS0uMTkycycARmFsc2NoZXIgUGFyYW1ldGVyIGJlaW0gQXVmcnVmIGRlciBuYXRpdmVuIEZ1bmt0aW9uICclLS4xOTJzJwBGYWxzY2hlIFBhcmFtZXRlciBiZWltIEF1ZnJ1ZiBkZXIgZ2VzcGVpY2hlcnRlbiBGdW5rdGlvbiAlLS4xOTJzAERpZSBGdW5rdGlvbiAnJS0uMTkycycgaGF0IGRlbnNlbGJlbiBOYW1lbiB3aWUgZWluZSBuYXRpdmUgRnVua3Rpb24ARG9wcGVsdGVyIEVpbnRyYWcgJyUtLjY0cycgZsO8ciBTY2hsw7xzc2VsICclLS4zODVzJwBadSB2aWVsZSBvZmZlbmUgRGF0ZWllbiwgYml0dGUgZsO8aHJlbiBTaWUgZGVuIEJlZmVobCBub2NoIGVpbm1hbCBhdXMAQXVzZsO8aHJ1bmdzemVpdCBkZXMgRXZlbnRzIGxpZWd0IGluIGRlciBWZXJnYW5nZW5oZWl0LCB1bmQgZXMgd3VyZGUgT04gQ09NUExFVElPTiBOT1QgUFJFU0VSVkUgZ2VzZXR6dC4gRGFzIEV2ZW50IHd1cmRlIHVubWl0dGVsYmFyIG5hY2ggRXJ6ZXVndW5nIGdlbMO2c2NodC4ARXhlY3V0aW9uIFplaXRwdW5rdCBkZXMgRXJlaWduaXNzZXMgaW4gZGVyIFZlcmdhbmdlbmhlaXQgbGllZ3QsIHVuZCBlcyB3YXIgTkFDSCBBQlNDSExVU1MgU2V0IG5pY2h0IGVyaGFsdGVuLiBEaWUgVmVyYW5zdGFsdHVuZyB3dXJkZSBuaWNodCB2ZXLDpG5kZXJ0LiBHZWJlbiBTaWUgZWluZW4gWmVpdHB1bmt0IGluIGRlciBadWt1bmZ0LgBEZXIgVm9yZmFsbCAlcyBwYXNzaWVydGUgYXVmIGRlbSBNYXN0ZXIuIE1lbGR1bmc6ICVzAFRhYmVsbGUgaGF0IGbDvHIgZWluaWdlIGJlc3RlaGVuZGUgV2VydGUga2VpbmUgUGFydGl0aW9uAFVuc2ljaGVyZSBBbndlaXN1bmcgaW5zIEJpbsOkcmxvZyBnZXNjaHJpZWJlbiwgd2VpbCBBbndlaXN1bmdzZm9ybWF0IEJJTkxPR19GT1JNQVQgPSBTVEFURU1FTlQuICVzAEZhdGFsZXIgRmVobGVyOiAlcwBSZWxheWxvZy1MZXNlZmVobGVyOiAlcwBSZWxheWxvZy1TY2hyZWliZmVobGVyOiAlcwBFcnpldWdlbiB2b24gJXMgZmVobGdlc2NobGFnZW4ATWFzdGVyLUJlZmVobCAlcyBmZWhsZ2VzY2hsYWdlbjogJXMAQmluw6RybG9nZ2luZyBuaWNodCBtw7ZnbGljaC4gTWVsZHVuZzogJXMAVmlldyBgJS0uNjRzYC5gJS0uNjRzYCBoYXQga2VpbmVuIEVyemV1Z3VuZ3Nrb250ZXh0AEVyemV1Z3VuZ3Nrb250ZXh0IGRlcyBWaWV3c2AlLS42NHNgLmAlLS42NHMnIGlzdCB1bmfDvGx0aWcARXJ6ZXVndW5nc2tvbnRleHQgZGVyIGdlc3BlaWNoZXJ0ZW4gUm91dGluZWAlLS42NHNgLmAlLS42NHNgIGlzdCB1bmfDvGx0aWcAQmVzY2jDpGRpZ3RlIFRSRy1EYXRlaSBmw7xyIFRhYmVsbGUgYCUtLjY0c2AuYCUtLjY0c2AAVHJpZ2dlciBmw7xyIFRhYmVsbGUgYCUtLjY0c2AuYCUtLjY0c2AgaGFiZW4ga2VpbmVuIEVyemV1Z3VuZ3Nrb250ZXh0AFRyaWdnZXItRXJ6ZXVndW5nc2tvbnRleHQgZGVyIFRhYmVsbGUgYCUtLjY0c2AuYCUtLjY0c2AgaXN0IHVuZ8O8bHRpZwBFcnpldWd1bmdza29udGV4dCBkZXMgRXZlbnRzIGAlLS42NHNgLmAlLS42NHNgIGlzdCB1bmfDvGx0aWcAS2FubiBUYWJlbGxlIGbDvHIgZGVuIFRyaWdnZXIgYCUtLjY0c2AuYCUtLjY0c2AgbmljaHQgw7ZmZm5lbgBLYW5uIGdlc3BlaWNoZXJ0ZSBSb3V0aW5lIGAlLS42NHNgIG5pY2h0IGVyemV1Z2VuLiBCZWFjaHRlbiBTaWUgZGllIFdhcm51bmdlbgBNZWhyZGV1dGlnZSBLb21iaW5hdGlvbiB2b24gU2xhdmUtTW9kaS4gJXMARGVyIEJJTkxPRy1BbndlaXN1bmcgdm9tIFR5cCBgJXNgIGdpbmcga2VpbmUgQklOTE9HLUFud2Vpc3VuZyB6dXIgRm9ybWF0YmVzY2hyZWlidW5nIHZvcmFuLgBCZXNjaMOkZGlndGVzIFJlcGxpa2F0aW9uc2VyZWlnbmlzIGVudGRlY2t0AFVuZ8O8bHRpZ2UgU3BhbHRlbnJlZmVyZW56ICglLS42NHMpIGJlaSBMT0FEIERBVEEAWnUgYmVyZWluaWdlbmRlIExvZ2RhdGVpICVzIHd1cmRlIG5pY2h0IGdlZnVuZGVuAFhBX1JCVElNRU9VVDogVHJhbnNha3Rpb25zendlaWcgd3VyZGUgenVyw7xja2dlcm9sbHQ6IFplaXTDvGJlcnNjaHJlaXR1bmcAWEFfUkJERUFETE9DSzogVHJhbnNha3Rpb25zendlaWcgd3VyZGUgenVyw7xja2dlcm9sbHQ6IERlYWRsb2NrIGVudGRlY2t0AFZvcmJlcmVpdGV0ZSBBbndlaXN1bmdlbiBtw7xzc2VuIG5vY2ggZWlubWFsIHZvcmJlcmVpdGV0IHdlcmRlbgBEaWUgREVMQVlFRC1PcHRpb24gd2lyZCBmw7xyIFRhYmVsbGUgJyUtLjE5MnMnIG5pY2h0IHVudGVyc3TDvHR6dABEaWUgTWFzdGVyLUluZm8tU3RydWt0dXIgZXhpc3RpZXJ0IG5pY2h0AE9wdGlvbiA8JS0uNjRzPiBpZ25vcmllcnQARWluZ2ViYXV0ZSBQbHVnaW5zIGvDtm5uZW4gbmljaHQgZ2Vsw7ZzY2h0IHdlcmRlbgBQbHVnaW4gd2lyZCB2ZXJ3ZW5kZXQgdW5kIHdpcmQgZXJzdCBiZWltIEhlcnVudGVyZmFocmVuIGRlaW5zdGFsbGllcnQAJXMgVmFyaWFibGUgJyVzJyBpc3QgbnVyIGxlc2Jhci4gQmVudXR6ZW4gU2llIFNFVCAlcywgdW0gZWluZW4gV2VydCB6dXp1d2Vpc2VuAFNwZWljaGVyLUVuZ2luZSAlcyB1bnRlcnN0w7x0enQgZsO8ciBkaWVzZSBBbndlaXN1bmcga2VpbiBSb2xsYmFjay4gVHJhbnNha3Rpb24gd3VyZGUgenVyw7xja2dlcm9sbHQgdW5kIG11c3MgbmV1IGdlc3RhcnRldCB3ZXJkZW4AVW5lcndhcnRldGUgRGF0ZW4gdm9tIEhlYXJ0YmVhdCBkZXMgTWFzdGVyczogJXMAVGhlIHJlcXVlc3RlZCB2YWx1ZSBmb3IgdGhlIGhlYXJ0YmVhdCBwZXJpb2QgaXMgZWl0aGVyIG5lZ2F0aXZlIG9yIGV4Y2VlZHMgdGhlIG1heGltdW0gYWxsb3dlZCAoJXMgc2Vjb25kcykuAEZlaGxlcmhhZnRlcyBTY2hlbWEgZsO8ciBteXNxbC5uZGJfcmVwbGljYXRpb24gdGFibGUuIE1lbGR1bmc6ICUtLjY0cwBGZWhsZXIgYmVpbSBQYXJzZW4gZWluZXIgS29uZmxpa3QtRnVua3Rpb24uIE1lbGR1bmc6ICUtLjY0cwBTY2hyZWliZW4gaW4gQXVzbmFobWUtVGFiZWxsZSBmZWhsZ2VzY2hsYWdlbi4gTWVsZHVuZzogJS0uMTI4cwBLb21tZW50YXIgZsO8ciBUYWJlbGxlICclLS42NHMnIGlzdCB6dSBsYW5nIChtYXggPSAlbHUpAEtvbW1lbnRhciBmw7xyIEZlbGQgJyUtLjY0cycgaXN0IHp1IGxhbmcgKG1heCA9ICVsdSkARlVOQ1RJT04gJXMgZXhpc3RpZXJ0IG5pY2h0LiBFcmzDpHV0ZXJ1bmdlbiBpbSBBYnNjaG5pdHQgJ0Z1bmN0aW9uIE5hbWUgUGFyc2luZyBhbmQgUmVzb2x1dGlvbicgaW0gUmVmZXJlbnpoYW5kYnVjaABEYXRlbmJhbmsAVGFiZWxsZQBQYXJ0aXRpb24AVW50ZXJwYXJ0aXRpb24AVGVtcG9yw6RyAFVtYmVuYW5udABadSB2aWVsZSBha3RpdmUgc2ltdWx0YW5lIFRyYW5zYWt0aW9uZW4ATmljaHQtQVNDSUktVHJlbm5hcmd1bWVudGUgd2VyZGVuIG5pY2h0IHZvbGxzdMOkbmRpZyB1bnRlcnN0w7x0enQARGVidWcgU3luYyBQb2ludCBXYXJ0ZXplaXQgw7xiZXJzY2hyaXR0ZW4ARGVidWcgU3luYyBQb2ludCBIaXQgTGltaXQgZXJyZWljaHQASW5mb3JtYXRpb25zZWxlbWVudCAnJXMnIGbDvHIgRHVwbGlrYXRiZWRpbmd1bmcAVW5iZWhhbmRlbHRlIGJlbnV0emVyZGVmaW5pZXJ0ZSBXYXJuYmVkaW5ndW5nAFVuYmVoYW5kZWx0ZSBiZW51dHplcmRlZmluaWVydGUgTmljaHQtZ2VmdW5kZW4tQmVkaW5ndW5nAFVuYmVoYW5kZWx0ZSBiZW51dHplcmRlZmluaWVydGUgQXVzbmFobWViZWRpbmd1bmcAUkVTSUdOQUwgYmVpIG5pY2h0IGFrdGl2ZW0gSGFuZGxlcgBTSUdOQUwvUkVTSUdOQUwga2FubiBudXIgbWl0IGVpbmVyIEJlZGluZ3VuZyAoQ09ORElUSU9OKSBiZW51dHp0IHdlcmRlbiwgZGllIGJlaSBTUUxTVEFURSBkZWZpbmllcnQgd3VyZGUARGF0ZW4gZ2Vrw7xyenQgZsO8ciBCZWRpbmd1bmdzZWxlbWVudCAnJXMnAERhdGVuIHp1IGxhbmcgZsO8ciBCZWRpbmd1bmdzZWxlbWVudCAnJXMnAFVuYmVrYW5udGUgTG9jYWxlOiAnJS0uNjRzJwBEaWUgYW5nZWZvcmRlcnRlIFNlcnZlci1JRCAlZCBzdGVodCBpbSBLb25mbGlrdCBtaXQgZGVyIFN0YXJ0b3B0aW9uIC0tcmVwbGljYXRlLXNhbWUtc2VydmVyLWlkIGbDvHIgZGVuIFNsYXZlAEFiZnJhZ2VuLUNhY2hlIGlzdCBkZWFrdGl2aWVydC4gU3RhcnRlbiBTaWUgZGVuIFNlcnZlciBuZXUgbWl0IHF1ZXJ5X2NhY2hlX3R5cGU9MSwgdW0gaWhuIHp1IGFrdGl2aWVyZW4AUGFydGl0aW9uc2ZlbGQgJyUtLjE5MnMnIGlzdCBlaW4gRHVwbGlrYXQASW5rb25zaXN0ZW56IGJlaSBkZXIgQmVudXR6dW5nIHZvbiBTcGFsdGVubGlzdGVuIGbDvHIgUGFydGl0aW9uaWVydW5nAFBhcnRpdGlvbnNzcGFsdGVud2VydGUgc2luZCB2b20gZmFsc2NoZW4gVHlwAFp1IHZpZWxlIEZlbGRlciBpbiAnJS0uMTkycycATUFYVkFMVUUga2FubiBuaWNodCBhbHMgV2VydCBpbiBWQUxVRVMgSU4gdmVyd2VuZGV0IHdlcmRlbgBGw7xyIGRlbiBQYXJ0aW9uaWVydW5nc3R5cCAlLS42NHMgZGFyZiBlcyBuaWNodCBtZWhyIGFscyBlaW5lbiBXZXJ0IGdlYmVuAFplaWxlbmF1c2Ryw7xja2UgaW4gVkFMVUVTIElOIHNpbmQgbnVyIGbDvHIgTWVocmZlbGQtU3BhbHRlbnBhcnRpb25pZXJ1bmcgZXJsYXVidABGZWxkICclLS4xOTJzJyBpc3QgZsO8ciBkaWVzZSBBcnQgdm9uIFBhcnRpdGlvbmllcnVuZyB2b24gZWluZW0gbmljaHQgenVsw6Rzc2lnZW4gVHlwAERpZSBHZXNhbXRsw6RuZ2UgZGVyIFBhcnRpdGlvbnNmZWxkZXIgaXN0IHp1IGdyb8OfAENhbm5vdCBleGVjdXRlIHN0YXRlbWVudDogaW1wb3NzaWJsZSB0byB3cml0ZSB0byBiaW5hcnkgbG9nIHNpbmNlIGJvdGggcm93LWluY2FwYWJsZSBlbmdpbmVzIGFuZCBzdGF0ZW1lbnQtaW5jYXBhYmxlIGVuZ2luZXMgYXJlIGludm9sdmVkLgBDYW5ub3QgZXhlY3V0ZSBzdGF0ZW1lbnQ6IGltcG9zc2libGUgdG8gd3JpdGUgdG8gYmluYXJ5IGxvZyBzaW5jZSBCSU5MT0dfRk9STUFUID0gUk9XIGFuZCBhdCBsZWFzdCBvbmUgdGFibGUgdXNlcyBhIHN0b3JhZ2UgZW5naW5lIGxpbWl0ZWQgdG8gc3RhdGVtZW50LWJhc2VkIGxvZ2dpbmcuAENhbm5vdCBleGVjdXRlIHN0YXRlbWVudDogaW1wb3NzaWJsZSB0byB3cml0ZSB0byBiaW5hcnkgbG9nIHNpbmNlIHN0YXRlbWVudCBpcyB1bnNhZmUsIHN0b3JhZ2UgZW5naW5lIGlzIGxpbWl0ZWQgdG8gc3RhdGVtZW50LWJhc2VkIGxvZ2dpbmcsIGFuZCBCSU5MT0dfRk9STUFUID0gTUlYRUQuICVzAENhbm5vdCBleGVjdXRlIHN0YXRlbWVudDogaW1wb3NzaWJsZSB0byB3cml0ZSB0byBiaW5hcnkgbG9nIHNpbmNlIHN0YXRlbWVudCBpcyBpbiByb3cgZm9ybWF0IGFuZCBhdCBsZWFzdCBvbmUgdGFibGUgdXNlcyBhIHN0b3JhZ2UgZW5naW5lIGxpbWl0ZWQgdG8gc3RhdGVtZW50LWJhc2VkIGxvZ2dpbmcuAENhbm5vdCBleGVjdXRlIHN0YXRlbWVudDogaW1wb3NzaWJsZSB0byB3cml0ZSB0byBiaW5hcnkgbG9nIHNpbmNlIEJJTkxPR19GT1JNQVQgPSBTVEFURU1FTlQgYW5kIGF0IGxlYXN0IG9uZSB0YWJsZSB1c2VzIGEgc3RvcmFnZSBlbmdpbmUgbGltaXRlZCB0byByb3ctYmFzZWQgbG9nZ2luZy4lcwBDYW5ub3QgZXhlY3V0ZSBzdGF0ZW1lbnQ6IGltcG9zc2libGUgdG8gd3JpdGUgdG8gYmluYXJ5IGxvZyBzaW5jZSBzdGF0ZW1lbnQgaXMgaW4gcm93IGZvcm1hdCBhbmQgQklOTE9HX0ZPUk1BVCA9IFNUQVRFTUVOVC4AQ2Fubm90IGV4ZWN1dGUgc3RhdGVtZW50OiBpbXBvc3NpYmxlIHRvIHdyaXRlIHRvIGJpbmFyeSBsb2cgc2luY2UgbW9yZSB0aGFuIG9uZSBlbmdpbmUgaXMgaW52b2x2ZWQgYW5kIGF0IGxlYXN0IG9uZSBlbmdpbmUgaXMgc2VsZi1sb2dnaW5nLgBUaGUgc3RhdGVtZW50IGlzIHVuc2FmZSBiZWNhdXNlIGl0IHVzZXMgYSBMSU1JVCBjbGF1c2UuIFRoaXMgaXMgdW5zYWZlIGJlY2F1c2UgdGhlIHNldCBvZiByb3dzIGluY2x1ZGVkIGNhbm5vdCBiZSBwcmVkaWN0ZWQuAFRoZSBzdGF0ZW1lbnQgaXMgdW5zYWZlIGJlY2F1c2UgaXQgdXNlcyBJTlNFUlQgREVMQVlFRC4gVGhpcyBpcyB1bnNhZmUgYmVjYXVzZSB0aGUgdGltZXMgd2hlbiByb3dzIGFyZSBpbnNlcnRlZCBjYW5ub3QgYmUgcHJlZGljdGVkLgBUaGUgc3RhdGVtZW50IGlzIHVuc2FmZSBiZWNhdXNlIGl0IHVzZXMgdGhlIGdlbmVyYWwgbG9nLCBzbG93IHF1ZXJ5IGxvZywgb3IgcGVyZm9ybWFuY2Vfc2NoZW1hIHRhYmxlKHMpLiBUaGlzIGlzIHVuc2FmZSBiZWNhdXNlIHN5c3RlbSB0YWJsZXMgbWF5IGRpZmZlciBvbiByZXBsaWNhcy4AU3RhdGVtZW50IGlzIHVuc2FmZSBiZWNhdXNlIGl0IGludm9rZXMgYSB0cmlnZ2VyIG9yIGEgc3RvcmVkIGZ1bmN0aW9uIHRoYXQgaW5zZXJ0cyBpbnRvIGFuIEFVVE9fSU5DUkVNRU5UIGNvbHVtbi4gSW5zZXJ0ZWQgdmFsdWVzIGNhbm5vdCBiZSBsb2dnZWQgY29ycmVjdGx5LgBTdGF0ZW1lbnQgaXMgdW5zYWZlIGJlY2F1c2UgaXQgdXNlcyBhIFVERiB3aGljaCBtYXkgbm90IHJldHVybiB0aGUgc2FtZSB2YWx1ZSBvbiB0aGUgcmVwbGljYS4AU3RhdGVtZW50IGlzIHVuc2FmZSBiZWNhdXNlIGl0IHVzZXMgYSBzeXN0ZW0gdmFyaWFibGUgdGhhdCBtYXkgaGF2ZSBhIGRpZmZlcmVudCB2YWx1ZSBvbiB0aGUgcmVwbGljYS4AU3RhdGVtZW50IGlzIHVuc2FmZSBiZWNhdXNlIGl0IHVzZXMgYSBzeXN0ZW0gZnVuY3Rpb24gdGhhdCBtYXkgcmV0dXJuIGEgZGlmZmVyZW50IHZhbHVlIG9uIHRoZSByZXBsaWNhLgBTdGF0ZW1lbnQgaXMgdW5zYWZlIGJlY2F1c2UgaXQgYWNjZXNzZXMgYSBub24tdHJhbnNhY3Rpb25hbCB0YWJsZSBhZnRlciBhY2Nlc3NpbmcgYSB0cmFuc2FjdGlvbmFsIHRhYmxlIHdpdGhpbiB0aGUgc2FtZSB0cmFuc2FjdGlvbi4AJXMgU3RhdGVtZW50OiAlcwBDb2x1bW4gJWQgb2YgdGFibGUgJyUtLjE5MnMuJS0uMTkycycgY2Fubm90IGJlIGNvbnZlcnRlZCBmcm9tIHR5cGUgJyUtLjMycycgdG8gdHlwZSAnJS0uMzJzJwBDYW4ndCBjcmVhdGUgY29udmVyc2lvbiB0YWJsZSBmb3IgdGFibGUgJyUtLjE5MnMuJS0uMTkycycAQ2Fubm90IG1vZGlmeSBAQHNlc3Npb24uYmlubG9nX2Zvcm1hdCBpbnNpZGUgYSB0cmFuc2FjdGlvbgBUaGUgcGF0aCBzcGVjaWZpZWQgZm9yICUuNjRzIGlzIHRvbyBsb25nLgAnJXMnIGlzdCB2ZXJhbHRldCB1bmQgd2lyZCBpbiBlaW5lciB6dWvDvG5mdGlnZW4gVmVyc2lvbiBlbnRmZXJudCB3ZXJkZW4uAE5hdGl2ZSB0YWJsZSAnJS0uNjRzJy4nJS0uNjRzJyBoYXMgdGhlIHdyb25nIHN0cnVjdHVyZQBJbnZhbGlkIHBlcmZvcm1hbmNlX3NjaGVtYSB1c2FnZS4AVGFibGUgJyVzJy4nJXMnIHdhcyBza2lwcGVkIHNpbmNlIGl0cyBkZWZpbml0aW9uIGlzIGJlaW5nIG1vZGlmaWVkIGJ5IGNvbmN1cnJlbnQgRERMIHN0YXRlbWVudABDYW5ub3QgbW9kaWZ5IEBAc2Vzc2lvbi5iaW5sb2dfZGlyZWN0X25vbl90cmFuc2FjdGlvbmFsX3VwZGF0ZXMgaW5zaWRlIGEgdHJhbnNhY3Rpb24AQ2Fubm90IGNoYW5nZSB0aGUgYmlubG9nIGRpcmVjdCBmbGFnIGluc2lkZSBhIHN0b3JlZCBmdW5jdGlvbiBvciB0cmlnZ2VyAEVpbiByYXVtYmV6b2dlbmVyIEluZGV4IChTUEFUSUFMKSBkYXJmIG51ciBTcGFsdGVuIGdlb21ldHJpc2NoZW4gVHlwcyBlbnRoYWx0ZW4AQ29tbWVudCBmb3IgaW5kZXggJyUtLjY0cycgaXMgdG9vIGxvbmcgKG1heCA9ICVsdSkAV2FpdCBvbiBhIGxvY2sgd2FzIGFib3J0ZWQgZHVlIHRvIGEgcGVuZGluZyBleGNsdXNpdmUgbG9jawAlcyB2YWx1ZSBpcyBvdXQgb2YgcmFuZ2UgaW4gJyVzJwBBIHZhcmlhYmxlIG9mIGEgbm9uLWludGVnZXIgYmFzZWQgdHlwZSBpbiBMSU1JVCBjbGF1c2UATWl4aW5nIHNlbGYtbG9nZ2luZyBhbmQgbm9uLXNlbGYtbG9nZ2luZyBlbmdpbmVzIGluIGEgc3RhdGVtZW50IGlzIHVuc2FmZS4AU3RhdGVtZW50IGFjY2Vzc2VzIG5vbnRyYW5zYWN0aW9uYWwgdGFibGUgYXMgd2VsbCBhcyB0cmFuc2FjdGlvbmFsIG9yIHRlbXBvcmFyeSB0YWJsZSwgYW5kIHdyaXRlcyB0byBhbnkgb2YgdGhlbS4AQ2Fubm90IG1vZGlmeSBAQHNlc3Npb24uc3FsX2xvZ19iaW4gaW5zaWRlIGEgdHJhbnNhY3Rpb24AQ2Fubm90IGNoYW5nZSB0aGUgc3FsX2xvZ19iaW4gaW5zaWRlIGEgc3RvcmVkIGZ1bmN0aW9uIG9yIHRyaWdnZXIARmFpbGVkIHRvIHJlYWQgZnJvbSB0aGUgLnBhciBmaWxlAFZBTFVFUyB2YWx1ZSBmb3IgcGFydGl0aW9uICclLS42NHMnIG11c3QgaGF2ZSB0eXBlIElOVABCZW51dHplciAnJS0uNDhzJ0AnJS0uNjRzJyBoYXQga2VpbmUgWnVncmlmZnNiZXJlY2h0aWd1bmcAU0VUIFBBU1NXT1JEIGhhcyBubyBzaWduaWZpY2FuY2UgZm9yIHVzZXJzIGF1dGhlbnRpY2F0aW5nIHZpYSBwbHVnaW5zAEdSQU5UIHdpdGggSURFTlRJRklFRCBXSVRIIGlzIGlsbGVnYWwgYmVjYXVzZSB0aGUgdXNlciAlLS4qcyBhbHJlYWR5IGV4aXN0cwBDYW5ub3QgdHJ1bmNhdGUgYSB0YWJsZSByZWZlcmVuY2VkIGluIGEgZm9yZWlnbiBrZXkgY29uc3RyYWludCAoJS4xOTJzKQBQbHVnaW4gJyVzJyBpcyBmb3JjZV9wbHVzX3Blcm1hbmVudCBhbmQgY2FuIG5vdCBiZSB1bmxvYWRlZABUaGUgcmVxdWVzdGVkIHZhbHVlIGZvciB0aGUgaGVhcnRiZWF0IHBlcmlvZCBpcyBsZXNzIHRoYW4gMSBtaWxsaXNlY29uZC4gVGhlIHZhbHVlIGlzIHJlc2V0IHRvIDAsIG1lYW5pbmcgdGhhdCBoZWFydGJlYXRpbmcgd2lsbCBlZmZlY3RpdmVseSBiZSBkaXNhYmxlZC4AVGhlIHJlcXVlc3RlZCB2YWx1ZSBmb3IgdGhlIGhlYXJ0YmVhdCBwZXJpb2QgZXhjZWVkcyB0aGUgdmFsdWUgb2YgYHJlcGxpY2FfbmV0X3RpbWVvdXQnIHNlY29uZHMuIEEgc2Vuc2libGUgdmFsdWUgZm9yIHRoZSBwZXJpb2Qgc2hvdWxkIGJlIGxlc3MgdGhhbiB0aGUgdGltZW91dC4ATXVsdGktcm93IHN0YXRlbWVudHMgcmVxdWlyZWQgbW9yZSB0aGFuICdtYXhfYmlubG9nX3N0bXRfY2FjaGVfc2l6ZScgYnl0ZXMgb2Ygc3RvcmFnZTsgaW5jcmVhc2UgdGhpcyBteXNxbGQgdmFyaWFibGUgYW5kIHRyeSBhZ2FpbgBQcmltYXJ5IGtleS9wYXJ0aXRpb24ga2V5IHVwZGF0ZSBpcyBub3QgYWxsb3dlZCBzaW5jZSB0aGUgdGFibGUgaXMgdXBkYXRlZCBib3RoIGFzICclLS4xOTJzJyBhbmQgJyUtLjE5MnMnLgBUYWJsZSByZWJ1aWxkIHJlcXVpcmVkLiBQbGVhc2UgZG8gIkFMVEVSIFRBQkxFIGAlLS42NHNgIEZPUkNFIiBvciBkdW1wL3JlbG9hZCB0byBmaXggaXQhAFRoZSB2YWx1ZSBvZiAnJXMnIHNob3VsZCBiZSBubyBsZXNzIHRoYW4gdGhlIHZhbHVlIG9mICclcycASW5kZXggY29sdW1uIHNpemUgdG9vIGxhcmdlLiBUaGUgbWF4aW11bSBjb2x1bW4gc2l6ZSBpcyAlbHUgYnl0ZXMuAFRyaWdnZXIgJyUtLjY0cycgaGFzIGFuIGVycm9yIGluIGl0cyBib2R5OiAnJS0uMjU2cycAVW5rbm93biB0cmlnZ2VyIGhhcyBhbiBlcnJvciBpbiBpdHMgYm9keTogJyUtLjI1NnMnAEluZGV4ICVzIGlzIGNvcnJ1cHRlZABVbmRvIGxvZyByZWNvcmQgaXMgdG9vIGJpZy4ASU5TRVJUIElHTk9SRS4uLiBTRUxFQ1QgaXMgdW5zYWZlIGJlY2F1c2UgdGhlIG9yZGVyIGluIHdoaWNoIHJvd3MgYXJlIHJldHJpZXZlZCBieSB0aGUgU0VMRUNUIGRldGVybWluZXMgd2hpY2ggKGlmIGFueSkgcm93cyBhcmUgaWdub3JlZC4gVGhpcyBvcmRlciBjYW5ub3QgYmUgcHJlZGljdGVkIGFuZCBtYXkgZGlmZmVyIG9uIHNvdXJjZSBhbmQgdGhlIHJlcGxpY2EuAElOU0VSVC4uLiBTRUxFQ1QuLi4gT04gRFVQTElDQVRFIEtFWSBVUERBVEUgaXMgdW5zYWZlIGJlY2F1c2UgdGhlIG9yZGVyIGluIHdoaWNoIHJvd3MgYXJlIHJldHJpZXZlZCBieSB0aGUgU0VMRUNUIGRldGVybWluZXMgd2hpY2ggKGlmIGFueSkgcm93cyBhcmUgdXBkYXRlZC4gVGhpcyBvcmRlciBjYW5ub3QgYmUgcHJlZGljdGVkIGFuZCBtYXkgZGlmZmVyIG9uIHNvdXJjZSBhbmQgdGhlIHJlcGxpY2EuAFJFUExBQ0UuLi4gU0VMRUNUIGlzIHVuc2FmZSBiZWNhdXNlIHRoZSBvcmRlciBpbiB3aGljaCByb3dzIGFyZSByZXRyaWV2ZWQgYnkgdGhlIFNFTEVDVCBkZXRlcm1pbmVzIHdoaWNoIChpZiBhbnkpIHJvd3MgYXJlIHJlcGxhY2VkLiBUaGlzIG9yZGVyIGNhbm5vdCBiZSBwcmVkaWN0ZWQgYW5kIG1heSBkaWZmZXIgb24gc291cmNlIGFuZCB0aGUgcmVwbGljYS4AQ1JFQVRFLi4uIElHTk9SRSBTRUxFQ1QgaXMgdW5zYWZlIGJlY2F1c2UgdGhlIG9yZGVyIGluIHdoaWNoIHJvd3MgYXJlIHJldHJpZXZlZCBieSB0aGUgU0VMRUNUIGRldGVybWluZXMgd2hpY2ggKGlmIGFueSkgcm93cyBhcmUgaWdub3JlZC4gVGhpcyBvcmRlciBjYW5ub3QgYmUgcHJlZGljdGVkIGFuZCBtYXkgZGlmZmVyIG9uIHNvdXJjZSBhbmQgdGhlIHJlcGxpY2EuAENSRUFURS4uLiBSRVBMQUNFIFNFTEVDVCBpcyB1bnNhZmUgYmVjYXVzZSB0aGUgb3JkZXIgaW4gd2hpY2ggcm93cyBhcmUgcmV0cmlldmVkIGJ5IHRoZSBTRUxFQ1QgZGV0ZXJtaW5lcyB3aGljaCAoaWYgYW55KSByb3dzIGFyZSByZXBsYWNlZC4gVGhpcyBvcmRlciBjYW5ub3QgYmUgcHJlZGljdGVkIGFuZCBtYXkgZGlmZmVyIG9uIHNvdXJjZSBhbmQgdGhlIHJlcGxpY2EuAFVQREFURSBJR05PUkUgaXMgdW5zYWZlIGJlY2F1c2UgdGhlIG9yZGVyIGluIHdoaWNoIHJvd3MgYXJlIHVwZGF0ZWQgZGV0ZXJtaW5lcyB3aGljaCAoaWYgYW55KSByb3dzIGFyZSBpZ25vcmVkLiBUaGlzIG9yZGVyIGNhbm5vdCBiZSBwcmVkaWN0ZWQgYW5kIG1heSBkaWZmZXIgb24gc291cmNlIGFuZCB0aGUgcmVwbGljYS4AUGx1Z2luICclcycgaXMgbWFya2VkIGFzIG5vdCBkeW5hbWljYWxseSB1bmluc3RhbGxhYmxlLiBZb3UgaGF2ZSB0byBzdG9wIHRoZSBzZXJ2ZXIgdG8gdW5pbnN0YWxsIGl0LgBQbHVnaW4gJyVzJyBpcyBtYXJrZWQgYXMgbm90IGR5bmFtaWNhbGx5IGluc3RhbGxhYmxlLiBZb3UgaGF2ZSB0byBzdG9wIHRoZSBzZXJ2ZXIgdG8gaW5zdGFsbCBpdC4AU3RhdGVtZW50cyB3cml0aW5nIHRvIGEgdGFibGUgd2l0aCBhbiBhdXRvLWluY3JlbWVudCBjb2x1bW4gYWZ0ZXIgc2VsZWN0aW5nIGZyb20gYW5vdGhlciB0YWJsZSBhcmUgdW5zYWZlIGJlY2F1c2UgdGhlIG9yZGVyIGluIHdoaWNoIHJvd3MgYXJlIHJldHJpZXZlZCBkZXRlcm1pbmVzIHdoYXQgKGlmIGFueSkgcm93cyB3aWxsIGJlIHdyaXR0ZW4uIFRoaXMgb3JkZXIgY2Fubm90IGJlIHByZWRpY3RlZCBhbmQgbWF5IGRpZmZlciBvbiBzb3VyY2UgYW5kIHRoZSByZXBsaWNhLgBDUkVBVEUgVEFCTEUuLi4gU0VMRUNULi4uICBvbiBhIHRhYmxlIHdpdGggYW4gYXV0by1pbmNyZW1lbnQgY29sdW1uIGlzIHVuc2FmZSBiZWNhdXNlIHRoZSBvcmRlciBpbiB3aGljaCByb3dzIGFyZSByZXRyaWV2ZWQgYnkgdGhlIFNFTEVDVCBkZXRlcm1pbmVzIHdoaWNoIChpZiBhbnkpIHJvd3MgYXJlIGluc2VydGVkLiBUaGlzIG9yZGVyIGNhbm5vdCBiZSBwcmVkaWN0ZWQgYW5kIG1heSBkaWZmZXIgb24gc291cmNlIGFuZCB0aGUgcmVwbGljYS4ASU5TRVJULi4uIE9OIERVUExJQ0FURSBLRVkgVVBEQVRFICBvbiBhIHRhYmxlIHdpdGggbW9yZSB0aGFuIG9uZSBVTklRVUUgS0VZIGlzIHVuc2FmZQBUYWJsZSBpcyBiZWluZyB1c2VkIGluIGZvcmVpZ24ga2V5IGNoZWNrLgBTdG9yYWdlIGVuZ2luZSAnJXMnIGRvZXMgbm90IHN1cHBvcnQgc3lzdGVtIHRhYmxlcy4gWyVzLiVzXQBJTlNFUlQgaW50byBhdXRvaW5jcmVtZW50IGZpZWxkIHdoaWNoIGlzIG5vdCB0aGUgZmlyc3QgcGFydCBpbiB0aGUgY29tcG9zZWQgcHJpbWFyeSBrZXkgaXMgdW5zYWZlLgBLYW5uICVzLiVzIG5pY2h0IGVpbmxlc2VuLiBUYWJlbGxlIGlzdCB3YWhyc2NoZWlubGljaCBiZXNjaMOkZGlndABUaGUgcmVxdWVzdGVkIHZhbHVlICVzIGZvciB0aGUgc291cmNlIGRlbGF5IGV4Y2VlZHMgdGhlIG1heGltdW0gJXUAT25seSBGb3JtYXRfZGVzY3JpcHRpb25fbG9nX2V2ZW50IGFuZCByb3cgZXZlbnRzIGFyZSBhbGxvd2VkIGluIEJJTkxPRyBzdGF0ZW1lbnRzIChidXQgJXMgd2FzIHByb3ZpZGVkKQBOb24gbWF0Y2hpbmcgYXR0cmlidXRlICclLS42NHMnIGJldHdlZW4gcGFydGl0aW9uIGFuZCB0YWJsZQBUYWJsZSB0byBleGNoYW5nZSB3aXRoIHBhcnRpdGlvbiBpcyBwYXJ0aXRpb25lZDogJyUtLjY0cycAVGFibGUgdG8gZXhjaGFuZ2Ugd2l0aCBwYXJ0aXRpb24gaXMgdGVtcG9yYXJ5OiAnJS0uNjRzJwBTdWJwYXJ0aXRpb25lZCB0YWJsZSwgdXNlIHN1YnBhcnRpdGlvbiBpbnN0ZWFkIG9mIHBhcnRpdGlvbgBVbmtub3duIHBhcnRpdGlvbiAnJS0uNjRzJyBpbiB0YWJsZSAnJS0uNjRzJwBUYWJsZXMgaGF2ZSBkaWZmZXJlbnQgZGVmaW5pdGlvbnMARm91bmQgYSByb3cgdGhhdCBkb2VzIG5vdCBtYXRjaCB0aGUgcGFydGl0aW9uAE9wdGlvbiBiaW5sb2dfY2FjaGVfc2l6ZSAoJWx1KSBpcyBncmVhdGVyIHRoYW4gbWF4X2JpbmxvZ19jYWNoZV9zaXplICglbHUpOyBzZXR0aW5nIGJpbmxvZ19jYWNoZV9zaXplIGVxdWFsIHRvIG1heF9iaW5sb2dfY2FjaGVfc2l6ZS4AQ2Fubm90IHVzZSAlLS42NHMgYWNjZXNzIG9uIGluZGV4ICclLS42NHMnIGR1ZSB0byB0eXBlIG9yIGNvbGxhdGlvbiBjb252ZXJzaW9uIG9uIGZpZWxkICclLS42NHMnAFRhYmxlIHRvIGV4Y2hhbmdlIHdpdGggcGFydGl0aW9uIGhhcyBmb3JlaWduIGtleSByZWZlcmVuY2VzOiAnJS0uNjRzJwBLZXkgdmFsdWUgJyUtLjE5MnMnIHdhcyBub3QgZm91bmQgaW4gdGFibGUgJyUtLjE5MnMuJS0uMTkycycARGF0YSBmb3IgY29sdW1uICclcycgdG9vIGxvbmcAUmVwbGljYXRpb24gZXZlbnQgY2hlY2tzdW0gdmVyaWZpY2F0aW9uIGZhaWxlZCB3aGlsZSByZWFkaW5nIGZyb20gbmV0d29yay4AUmVwbGljYXRpb24gZXZlbnQgY2hlY2tzdW0gdmVyaWZpY2F0aW9uIGZhaWxlZCB3aGlsZSByZWFkaW5nIGZyb20gYSBsb2cgZmlsZS4AT3B0aW9uIGJpbmxvZ19zdG10X2NhY2hlX3NpemUgKCVsdSkgaXMgZ3JlYXRlciB0aGFuIG1heF9iaW5sb2dfc3RtdF9jYWNoZV9zaXplICglbHUpOyBzZXR0aW5nIGJpbmxvZ19zdG10X2NhY2hlX3NpemUgZXF1YWwgdG8gbWF4X2JpbmxvZ19zdG10X2NhY2hlX3NpemUuAENhbid0IHVwZGF0ZSB0YWJsZSAnJS0uMTkycycgd2hpbGUgJyUtLjE5MnMnIGlzIGJlaW5nIGNyZWF0ZWQuAFBBUlRJVElPTiAoKSBjbGF1c2Ugb24gbm9uIHBhcnRpdGlvbmVkIHRhYmxlAEZvdW5kIGEgcm93IG5vdCBtYXRjaGluZyB0aGUgZ2l2ZW4gcGFydGl0aW9uIHNldABEaWUgcGFydGl0aW9uICclLS42NHMnIGV4aXN0aWVydCBuaWNodABGYWlsdXJlIHdoaWxlIGNoYW5naW5nIHRoZSB0eXBlIG9mIHJlcGxpY2F0aW9uIHJlcG9zaXRvcnk6ICVzLgBUaGUgY3JlYXRpb24gb2Ygc29tZSB0ZW1wb3JhcnkgdGFibGVzIGNvdWxkIG5vdCBiZSByb2xsZWQgYmFjay4AU29tZSB0ZW1wb3JhcnkgdGFibGVzIHdlcmUgZHJvcHBlZCwgYnV0IHRoZXNlIG9wZXJhdGlvbnMgY291bGQgbm90IGJlIHJvbGxlZCBiYWNrLgAlcyBpcyBub3Qgc3VwcG9ydGVkIGluIG11bHRpLXRocmVhZGVkIHJlcGxpY2EgbW9kZS4gJXMAVGhlIG51bWJlciBvZiBtb2RpZmllZCBkYXRhYmFzZXMgZXhjZWVkcyB0aGUgbWF4aW11bSAlZDsgdGhlIGRhdGFiYXNlIG5hbWVzIHdpbGwgbm90IGJlIGluY2x1ZGVkIGluIHRoZSByZXBsaWNhdGlvbiBldmVudCBtZXRhZGF0YS4AQ2Fubm90IGV4ZWN1dGUgdGhlIGN1cnJlbnQgZXZlbnQgZ3JvdXAgaW4gdGhlIHBhcmFsbGVsIG1vZGUuIEVuY291bnRlcmVkIGV2ZW50ICVzLCByZWxheS1sb2cgbmFtZSAlcywgcG9zaXRpb24gJXMgd2hpY2ggcHJldmVudHMgZXhlY3V0aW9uIG9mIHRoaXMgZXZlbnQgZ3JvdXAgaW4gcGFyYWxsZWwgbW9kZS4gUmVhc29uOiAlcy4AJXMARlVMTFRFWFQgaW5kZXggaXMgbm90IHN1cHBvcnRlZCBmb3IgcGFydGl0aW9uZWQgdGFibGVzLgBJbnZhbGlkIGNvbmRpdGlvbiBudW1iZXIAU2VuZGluZyBwYXNzd29yZHMgaW4gcGxhaW4gdGV4dCB3aXRob3V0IFNTTC9UTFMgaXMgZXh0cmVtZWx5IGluc2VjdXJlLgBTdG9yaW5nIE15U1FMIHVzZXIgbmFtZSBvciBwYXNzd29yZCBpbmZvcm1hdGlvbiBpbiB0aGUgY29ubmVjdGlvbiBtZXRhZGF0YSByZXBvc2l0b3J5IGlzIG5vdCBzZWN1cmUgYW5kIGlzIHRoZXJlZm9yZSBub3QgcmVjb21tZW5kZWQuIFBsZWFzZSBjb25zaWRlciB1c2luZyB0aGUgVVNFUiBhbmQgUEFTU1dPUkQgY29ubmVjdGlvbiBvcHRpb25zIGZvciBTVEFSVCBSRVBMSUNBOyBzZWUgdGhlICdTVEFSVCBSRVBMSUNBIFN5bnRheCcgaW4gdGhlIE15U1FMIE1hbnVhbCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4ARnJlbWRzY2hsw7xzc2VsLUJlc2NocsOkbmt1bmcgZsO8ciBUYWJlbGxlICclLjE5MnMnLCBEYXRlbnNhdHogJyUtLjE5MnMnIHfDvHJkZSB6dSBlaW5lbSBkb3BwZWx0ZW4gRWludHJhZyBpbiBUYWJlbGxlICclLjE5MnMnLCBTY2hsw7xzc2VsICclLjE5MnMnIGbDvGhyZW4ARnJlbWRzY2hsw7xzc2VsLUJlc2NocsOkbmt1bmcgZsO8ciBUYWJlbGxlICclLjE5MnMnLCBEYXRlbnNhdHogJyUtLjE5MnMnIHfDvHJkZSB6dSBlaW5lbSBkb3BwZWx0ZW4gRWludHJhZyBpbiBlaW5lciBLaW5kLVRhYmVsbGUgZsO8aHJlbgBTZXR0aW5nIGF1dGhlbnRpY2F0aW9uIG9wdGlvbnMgaXMgbm90IHBvc3NpYmxlIHdoZW4gb25seSB0aGUgUmVwbGljYSBTUUwgVGhyZWFkIGlzIGJlaW5nIHN0YXJ0ZWQuAFRoZSB0YWJsZSBkb2VzIG5vdCBoYXZlIEZVTExURVhUIGluZGV4IHRvIHN1cHBvcnQgdGhpcyBxdWVyeQBUaGUgc3lzdGVtIHZhcmlhYmxlICUuMjAwcyBjYW5ub3QgYmUgc2V0IGluIHN0b3JlZCBmdW5jdGlvbnMgb3IgdHJpZ2dlcnMuAFRoZSBzeXN0ZW0gdmFyaWFibGUgJS4yMDBzIGNhbm5vdCBiZSBzZXQgd2hlbiB0aGVyZSBpcyBhbiBvbmdvaW5nIHRyYW5zYWN0aW9uLgBUaGUgc3lzdGVtIHZhcmlhYmxlIEBAU0VTU0lPTi5HVElEX05FWFQgaGFzIHRoZSB2YWx1ZSAlLjIwMHMsIHdoaWNoIGlzIG5vdCBsaXN0ZWQgaW4gQEBTRVNTSU9OLkdUSURfTkVYVF9MSVNULgBUaGUgc3lzdGVtIHZhcmlhYmxlIEBAU0VTU0lPTi5HVElEX05FWFQgY2Fubm90IGNoYW5nZSBpbnNpZGUgYSB0cmFuc2FjdGlvbi4AVGhlIHN0YXRlbWVudCAnU0VUICUuMjAwcycgY2Fubm90IGludm9rZSBhIHN0b3JlZCBmdW5jdGlvbi4AVGhlIHN5c3RlbSB2YXJpYWJsZSBAQFNFU1NJT04uR1RJRF9ORVhUIGNhbm5vdCBiZSAnQVVUT01BVElDJyB3aGVuIEBAU0VTU0lPTi5HVElEX05FWFRfTElTVCBpcyBub24tTlVMTC4AU2tpcHBpbmcgdHJhbnNhY3Rpb24gJS4yMDBzIGJlY2F1c2UgaXQgaGFzIGFscmVhZHkgYmVlbiBleGVjdXRlZCBhbmQgbG9nZ2VkLgBNYWxmb3JtZWQgR1RJRCBzZXQgc3BlY2lmaWNhdGlvbiAnJS4yMDBzJy4ATWFsZm9ybWVkIEdUSUQgc2V0IGVuY29kaW5nLgBNYWxmb3JtZWQgR1RJRCBzcGVjaWZpY2F0aW9uICclLjIwMHMnLgBJbXBvc3NpYmxlIHRvIGdlbmVyYXRlIEdUSUQ6IHRoZSBpbnRlZ2VyIGNvbXBvbmVudCByZWFjaGVkIHRoZSBtYXhpbXVtIHZhbHVlLiBSZXN0YXJ0IHRoZSBzZXJ2ZXIgd2l0aCBhIG5ldyBzZXJ2ZXJfdXVpZC4AUGFyYW1ldGVycyBTT1VSQ0VfTE9HX0ZJTEUsIFNPVVJDRV9MT0dfUE9TLCBSRUxBWV9MT0dfRklMRSBhbmQgUkVMQVlfTE9HX1BPUyBjYW5ub3QgYmUgc2V0IHdoZW4gU09VUkNFX0FVVE9fUE9TSVRJT04gaXMgYWN0aXZlLgBDSEFOR0UgUkVQTElDQVRJT04gU09VUkNFIFRPIFNPVVJDRV9BVVRPX1BPU0lUSU9OID0gMSBjYW5ub3QgYmUgZXhlY3V0ZWQgYmVjYXVzZSBAQEdMT0JBTC5HVElEX01PREUgPSBPRkYuAENhbm5vdCBleGVjdXRlIHN0YXRlbWVudHMgd2l0aCBpbXBsaWNpdCBjb21taXQgaW5zaWRlIGEgdHJhbnNhY3Rpb24gd2hlbiBAQFNFU1NJT04uR1RJRF9ORVhUID09ICdVVUlEOk5VTUJFUicuAEdUSURfTU9ERSA9IE9OIHJlcXVpcmVzIEVORk9SQ0VfR1RJRF9DT05TSVNURU5DWSA9IE9OLgBAQEdMT0JBTC5HVElEX01PREUgPSBPTiBvciBPTl9QRVJNSVNTSVZFIG9yIE9GRl9QRVJNSVNTSVZFIHJlcXVpcmVzIC0tbG9nLWJpbiBhbmQgLS1sb2ctcmVwbGljYS11cGRhdGVzLgBAQFNFU1NJT04uR1RJRF9ORVhUIGNhbm5vdCBiZSBzZXQgdG8gVVVJRDpOVU1CRVIgd2hlbiBAQEdMT0JBTC5HVElEX01PREUgPSBPRkYuAEBAU0VTU0lPTi5HVElEX05FWFQgY2Fubm90IGJlIHNldCB0byBBTk9OWU1PVVMgd2hlbiBAQEdMT0JBTC5HVElEX01PREUgPSBPTi4AQEBTRVNTSU9OLkdUSURfTkVYVF9MSVNUIGNhbm5vdCBiZSBzZXQgdG8gYSBub24tTlVMTCB2YWx1ZSB3aGVuIEBAR0xPQkFMLkdUSURfTU9ERSA9IE9GRi4ARm91bmQgYSBHdGlkX2xvZ19ldmVudCB3aGVuIEBAR0xPQkFMLkdUSURfTU9ERSA9IE9GRi4AU3RhdGVtZW50IHZpb2xhdGVzIEdUSUQgY29uc2lzdGVuY3k6IFVwZGF0ZXMgdG8gbm9uLXRyYW5zYWN0aW9uYWwgdGFibGVzIGNhbiBvbmx5IGJlIGRvbmUgaW4gZWl0aGVyIGF1dG9jb21taXR0ZWQgc3RhdGVtZW50cyBvciBzaW5nbGUtc3RhdGVtZW50IHRyYW5zYWN0aW9ucywgYW5kIG5ldmVyIGluIHRoZSBzYW1lIHN0YXRlbWVudCBhcyB1cGRhdGVzIHRvIHRyYW5zYWN0aW9uYWwgdGFibGVzLgBTdGF0ZW1lbnQgdmlvbGF0ZXMgR1RJRCBjb25zaXN0ZW5jeTogQ1JFQVRFIFRBQkxFIC4uLiBTRUxFQ1QuAFN0YXRlbWVudCB2aW9sYXRlcyBHVElEIGNvbnNpc3RlbmN5OiBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFIGFuZCBEUk9QIFRFTVBPUkFSWSBUQUJMRSBjYW4gb25seSBiZSBleGVjdXRlZCBvdXRzaWRlIHRyYW5zYWN0aW9uYWwgY29udGV4dC4gIFRoZXNlIHN0YXRlbWVudHMgYXJlIGFsc28gbm90IGFsbG93ZWQgaW4gYSBmdW5jdGlvbiBvciB0cmlnZ2VyIGJlY2F1c2UgZnVuY3Rpb25zIGFuZCB0cmlnZ2VycyBhcmUgYWxzbyBjb25zaWRlcmVkIHRvIGJlIG11bHRpLXN0YXRlbWVudCB0cmFuc2FjdGlvbnMuAFRoZSB2YWx1ZSBvZiBAQEdMT0JBTC5HVElEX01PREUgY2FuIG9ubHkgYmUgY2hhbmdlZCBvbmUgc3RlcCBhdCBhIHRpbWU6IE9GRiA8LT4gT0ZGX1BFUk1JU1NJVkUgPC0+IE9OX1BFUk1JU1NJVkUgPC0+IE9OLiBBbHNvIG5vdGUgdGhhdCB0aGlzIHZhbHVlIG11c3QgYmUgc3RlcHBlZCB1cCBvciBkb3duIHNpbXVsdGFuZW91c2x5IG9uIGFsbCBzZXJ2ZXJzLiBTZWUgdGhlIE1hbnVhbCBmb3IgaW5zdHJ1Y3Rpb25zLgBDYW5ub3QgcmVwbGljYXRlIGJlY2F1c2UgdGhlIHNvdXJjZSBwdXJnZWQgcmVxdWlyZWQgYmluYXJ5IGxvZ3MuIFJlcGxpY2F0ZSB0aGUgbWlzc2luZyB0cmFuc2FjdGlvbnMgZnJvbSBlbHNld2hlcmUsIG9yIHByb3Zpc2lvbiBhIG5ldyByZXBsaWNhIGZyb20gYmFja3VwLiBDb25zaWRlciBpbmNyZWFzaW5nIHRoZSBzb3VyY2UncyBiaW5hcnkgbG9nIGV4cGlyYXRpb24gcGVyaW9kLiAlcwBAQFNFU1NJT04uR1RJRF9ORVhUIGNhbm5vdCBiZSBjaGFuZ2VkIGJ5IGEgY2xpZW50IHRoYXQgb3ducyBhIEdUSUQuIFRoZSBjbGllbnQgb3ducyAlcy4gT3duZXJzaGlwIGlzIHJlbGVhc2VkIG9uIENPTU1JVCBvciBST0xMQkFDSy4AVW5rbm93biBFWFBMQUlOIGZvcm1hdCBuYW1lOiAnJXMnAENhbm5vdCBleGVjdXRlIHN0YXRlbWVudCBpbiBhIFJFQUQgT05MWSB0cmFuc2FjdGlvbi4AQ29tbWVudCBmb3IgdGFibGUgcGFydGl0aW9uICclLS42NHMnIGlzIHRvbyBsb25nIChtYXggPSAlbHUpAFJlcGxpY2EgaXMgbm90IGNvbmZpZ3VyZWQgb3IgZmFpbGVkIHRvIGluaXRpYWxpemUgcHJvcGVybHkuIFlvdSBtdXN0IGF0IGxlYXN0IHNldCAtLXNlcnZlci1pZCB0byBlbmFibGUgZWl0aGVyIGEgc291cmNlIG9yIGEgcmVwbGljYS4gQWRkaXRpb25hbCBlcnJvciBtZXNzYWdlcyBjYW4gYmUgZm91bmQgaW4gdGhlIE15U1FMIGVycm9yIGxvZy4ASW5ub0RCIHByZXNlbnRseSBzdXBwb3J0cyBvbmUgRlVMTFRFWFQgaW5kZXggY3JlYXRpb24gYXQgYSB0aW1lAENhbm5vdCBjcmVhdGUgRlVMTFRFWFQgaW5kZXggb24gdGVtcG9yYXJ5IElubm9EQiB0YWJsZQBDb2x1bW4gJyUtLjE5MnMnIGlzIG9mIHdyb25nIHR5cGUgZm9yIGFuIElubm9EQiBGVUxMVEVYVCBpbmRleABJbmRleCAnJS0uMTkycycgaXMgb2Ygd3JvbmcgdHlwZSBmb3IgYW4gSW5ub0RCIEZVTExURVhUIGluZGV4AENyZWF0aW5nIGluZGV4ICclLS4xOTJzJyByZXF1aXJlZCBtb3JlIHRoYW4gJ2lubm9kYl9vbmxpbmVfYWx0ZXJfbG9nX21heF9zaXplJyBieXRlcyBvZiBtb2RpZmljYXRpb24gbG9nLiBQbGVhc2UgdHJ5IGFnYWluLgBVbmtub3duIEFMR09SSVRITSAnJXMnAFVua25vd24gTE9DSyB0eXBlICclcycAQ0hBTkdFIFJFUExJQ0FUSU9OIFNPVVJDRSBjYW5ub3QgYmUgZXhlY3V0ZWQgd2hlbiB0aGUgcmVwbGljYSB3YXMgc3RvcHBlZCB3aXRoIGFuIGVycm9yIG9yIGtpbGxlZCBpbiBNVEEgbW9kZS4gQ29uc2lkZXIgdXNpbmcgUkVTRVQgUkVQTElDQSBvciBTVEFSVCBSRVBMSUNBIFVOVElMLgBDYW5ub3QgcmVjb3ZlciBhZnRlciBSRVBMSUNBIGVycm9yZWQgb3V0IGluIHBhcmFsbGVsIGV4ZWN1dGlvbiBtb2RlLiBBZGRpdGlvbmFsIGVycm9yIG1lc3NhZ2VzIGNhbiBiZSBmb3VuZCBpbiB0aGUgTXlTUUwgZXJyb3IgbG9nLgBDYW5ub3QgY2xlYW4gdXAgd29ya2VyIGluZm8gdGFibGVzLiBBZGRpdGlvbmFsIGVycm9yIG1lc3NhZ2VzIGNhbiBiZSBmb3VuZCBpbiB0aGUgTXlTUUwgZXJyb3IgbG9nLgBTcGFsdGVuYW56YWhsIHZvbiAlcy4lcyBmYWxzY2guICVkIGVyd2FydGV0LCBhYmVyICVkIGdlZnVuZGVuLiBUYWJlbGxlIGlzdCB3YWhyc2NoZWlubGljaCBiZXNjaMOkZGlndABSZXBsaWNhIG11c3Qgc2lsZW50bHkgcmV0cnkgY3VycmVudCB0cmFuc2FjdGlvbgBUaGVyZSBpcyBhIGZvcmVpZ24ga2V5IGNoZWNrIHJ1bm5pbmcgb24gdGFibGUgJyUtLjE5MnMnLiBDYW5ub3QgZGlzY2FyZCB0aGUgdGFibGUuAFNjaGVtYSBtaXNtYXRjaCAoJXMpAFRhYmxlICclLS4xOTJzJyBpbiBzeXN0ZW0gdGFibGVzcGFjZQBJTyBSZWFkIGVycm9yOiAoJWx1LCAlcykgJXMASU8gV3JpdGUgZXJyb3I6ICglbHUsICVzKSAlcwBUYWJsZXNwYWNlIGlzIG1pc3NpbmcgZm9yIHRhYmxlICVzLgBUYWJsZXNwYWNlICclLS4xOTJzJyBleGlzdHMuAFRhYmxlc3BhY2UgaGFzIGJlZW4gZGlzY2FyZGVkIGZvciB0YWJsZSAnJS0uMTkycycASW50ZXJuYWwgZXJyb3I6ICVzAEFMVEVSIFRBQkxFICUtLjE5MnMgSU1QT1JUIFRBQkxFU1BBQ0UgZmFpbGVkIHdpdGggZXJyb3IgJWx1IDogJyVzJwBJbmRleCBjb3JydXB0OiAlcwBJbnZhbGlkIGRpc3BsYXkgd2lkdGguIFVzZSBZRUFSIGluc3RlYWQuAFlvdXIgcGFzc3dvcmQgZG9lcyBub3Qgc2F0aXNmeSB0aGUgY3VycmVudCBwb2xpY3kgcmVxdWlyZW1lbnRzAFlvdSBtdXN0IHJlc2V0IHlvdXIgcGFzc3dvcmQgdXNpbmcgQUxURVIgVVNFUiBzdGF0ZW1lbnQgYmVmb3JlIGV4ZWN1dGluZyB0aGlzIHN0YXRlbWVudC4ARmFpbGVkIHRvIGFkZCB0aGUgZm9yZWlnbiBrZXkgY29uc3RyYWludC4gTWlzc2luZyBpbmRleCBmb3IgY29uc3RyYWludCAnJXMnIGluIHRoZSBmb3JlaWduIHRhYmxlICclcycARmFpbGVkIHRvIGFkZCB0aGUgZm9yZWlnbiBrZXkgY29uc3RyYWludC4gTWlzc2luZyBpbmRleCBmb3IgY29uc3RyYWludCAnJXMnIGluIHRoZSByZWZlcmVuY2VkIHRhYmxlICclcycARmFpbGVkIHRvIGFkZCB0aGUgZm9yZWlnbiBrZXkgY29uc3RyYWludCAnJXMnIHRvIHN5c3RlbSB0YWJsZXMARmFpbGVkIHRvIG9wZW4gdGhlIHJlZmVyZW5jZWQgdGFibGUgJyVzJwBGYWlsZWQgdG8gYWRkIHRoZSBmb3JlaWduIGtleSBjb25zdHJhaW50IG9uIHRhYmxlICclcycuIEluY29ycmVjdCBvcHRpb25zIGluIEZPUkVJR04gS0VZIGNvbnN0cmFpbnQgJyVzJwBEdXBsaWNhdGUgZm9yZWlnbiBrZXkgY29uc3RyYWludCBuYW1lICclcycAVGhlIHBhc3N3b3JkIGhhc2ggZG9lc24ndCBoYXZlIHRoZSBleHBlY3RlZCBmb3JtYXQuAEthbm4gU3BhbHRlICclLS4xOTJzJyBuaWNodCBsw7ZzY2hlbjogd2lyZCBmw7xyIGVpbmUgRnJlbWRzY2hsw7xzc2VsYmVzY2hyw6Rua3VuZyAnJS0uMTkycycgYmVuw7Z0aWd0AEthbm4gU3BhbHRlICclLS4xOTJzJyBuaWNodCBsw7ZzY2hlbjogd2lyZCBmw7xyIGVpbmUgRnJlbWRzY2hsw7xzc2VsYmVzY2hyw6Rua3VuZyAnJS0uMTkycycgZGVyIFRhYmVsbGUgJyUtLjE5MnMnIGJlbsO2dGlndABTcGFsdGUgJyUtLjE5MnMnIGthbm4gbmljaHQgTk9UIE5VTEwgc2Vpbjogd2lyZCBmw7xyIGVpbmUgRnJlbWRzY2hsw7xzc2VsYmVzY2hyw6Rua3VuZyAnJS0uMTkycycgU0VUIE5VTEwgYmVuw7Z0aWd0AER1cGxpY2F0ZSBpbmRleCAnJS0uNjRzJyBkZWZpbmVkIG9uIHRoZSB0YWJsZSAnJS0uNjRzLiUtLjY0cycuIFRoaXMgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBkaXNhbGxvd2VkIGluIGEgZnV0dXJlIHJlbGVhc2UuAENhbm5vdCBjaGFuZ2UgY29sdW1uICclLS4xOTJzJzogdXNlZCBpbiBhIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgJyUtLjE5MnMnAENhbm5vdCBjaGFuZ2UgY29sdW1uICclLS4xOTJzJzogdXNlZCBpbiBhIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgJyUtLjE5MnMnIG9mIHRhYmxlICclLS4xOTJzJwBDYW5ub3QgZGVsZXRlIHJvd3MgZnJvbSB0YWJsZSB3aGljaCBpcyBwYXJlbnQgaW4gYSBmb3JlaWduIGtleSBjb25zdHJhaW50ICclLS4xOTJzJyBvZiB0YWJsZSAnJS0uMTkycycATWFsZm9ybWVkIGNvbW11bmljYXRpb24gcGFja2V0LgBSdW5uaW5nIGluIHJlYWQtb25seSBtb2RlAFdoZW4gQEBTRVNTSU9OLkdUSURfTkVYVCBpcyBzZXQgdG8gYSBHVElELCB5b3UgbXVzdCBleHBsaWNpdGx5IHNldCBpdCB0byBhIGRpZmZlcmVudCB2YWx1ZSBhZnRlciBhIENPTU1JVCBvciBST0xMQkFDSy4gUGxlYXNlIGNoZWNrIEdUSURfTkVYVCB2YXJpYWJsZSBtYW51YWwgcGFnZSBmb3IgZGV0YWlsZWQgZXhwbGFuYXRpb24uIEN1cnJlbnQgQEBTRVNTSU9OLkdUSURfTkVYVCBpcyAnJXMnLgBUaGUgc3lzdGVtIHZhcmlhYmxlICUuMjAwcyBjYW5ub3QgYmUgc2V0IGluIHN0b3JlZCBwcm9jZWR1cmVzLgBAQEdMT0JBTC5HVElEX1BVUkdFRCBjYW4gb25seSBiZSBzZXQgd2hlbiBAQEdMT0JBTC5HVElEX01PREUgPSBPTi4AQEBHTE9CQUwuR1RJRF9QVVJHRUQgY2FuIG9ubHkgYmUgc2V0IHdoZW4gQEBHTE9CQUwuR1RJRF9FWEVDVVRFRCBpcyBlbXB0eS4AQEBHTE9CQUwuR1RJRF9QVVJHRUQgY2FuIG9ubHkgYmUgc2V0IHdoZW4gdGhlcmUgYXJlIG5vIG9uZ29pbmcgdHJhbnNhY3Rpb25zIChub3QgZXZlbiBpbiBvdGhlciBjbGllbnRzKS4AQEBHTE9CQUwuR1RJRF9QVVJHRUQgd2FzIGNoYW5nZWQgZnJvbSAnJXMnIHRvICclcycuAEBAR0xPQkFMLkdUSURfRVhFQ1VURUQgd2FzIGNoYW5nZWQgZnJvbSAnJXMnIHRvICclcycuAENhbm5vdCBleGVjdXRlIHN0YXRlbWVudDogaW1wb3NzaWJsZSB0byB3cml0ZSB0byBiaW5hcnkgbG9nIHNpbmNlIEJJTkxPR19GT1JNQVQgPSBTVEFURU1FTlQsIGFuZCBib3RoIHJlcGxpY2F0ZWQgYW5kIG5vbiByZXBsaWNhdGVkIHRhYmxlcyBhcmUgd3JpdHRlbiB0by4AJXMgaXMgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBvcGVyYXRpb24uIFRyeSAlcy4AJXMgaXMgbm90IHN1cHBvcnRlZC4gUmVhc29uOiAlcy4gVHJ5ICVzLgBDT1BZIGFsZ29yaXRobSByZXF1aXJlcyBhIGxvY2sAUGFydGl0aW9uIHNwZWNpZmljIG9wZXJhdGlvbnMgZG8gbm90IHlldCBzdXBwb3J0IExPQ0svQUxHT1JJVEhNAENvbHVtbnMgcGFydGljaXBhdGluZyBpbiBhIGZvcmVpZ24ga2V5IGFyZSByZW5hbWVkAENhbm5vdCBjaGFuZ2UgY29sdW1uIHR5cGUgSU5QTEFDRQBBZGRpbmcgZm9yZWlnbiBrZXlzIG5lZWRzIGZvcmVpZ25fa2V5X2NoZWNrcz1PRkYAQ3JlYXRpbmcgdW5pcXVlIGluZGV4ZXMgd2l0aCBJR05PUkUgcmVxdWlyZXMgQ09QWSBhbGdvcml0aG0gdG8gcmVtb3ZlIGR1cGxpY2F0ZSByb3dzAERyb3BwaW5nIGEgcHJpbWFyeSBrZXkgaXMgbm90IGFsbG93ZWQgd2l0aG91dCBhbHNvIGFkZGluZyBhIG5ldyBwcmltYXJ5IGtleQBBZGRpbmcgYW4gYXV0by1pbmNyZW1lbnQgY29sdW1uIHJlcXVpcmVzIGEgbG9jawBDYW5ub3QgcmVwbGFjZSBoaWRkZW4gRlRTX0RPQ19JRCB3aXRoIGEgdXNlci12aXNpYmxlIG9uZQBDYW5ub3QgZHJvcCBvciByZW5hbWUgRlRTX0RPQ19JRABGdWxsdGV4dCBpbmRleCBjcmVhdGlvbiByZXF1aXJlcyBhIGxvY2sAc3FsX3JlcGxpY2Ffc2tpcF9jb3VudGVyIGNhbiBub3QgYmUgc2V0IHdoZW4gdGhlIHNlcnZlciBpcyBydW5uaW5nIHdpdGggQEBHTE9CQUwuR1RJRF9NT0RFID0gT04uIEluc3RlYWQsIGZvciBlYWNoIHRyYW5zYWN0aW9uIHRoYXQgeW91IHdhbnQgdG8gc2tpcCwgZ2VuZXJhdGUgYW4gZW1wdHkgdHJhbnNhY3Rpb24gd2l0aCB0aGUgc2FtZSBHVElEIGFzIHRoZSB0cmFuc2FjdGlvbgBEb3BwZWx0ZXIgRWludHJhZyBmw7xyIFNjaGzDvHNzZWwgJyUtLjE5MnMnAExvbmcgZGF0YWJhc2UgbmFtZSBhbmQgaWRlbnRpZmllciBmb3Igb2JqZWN0IHJlc3VsdGVkIGluIHBhdGggbGVuZ3RoIGV4Y2VlZGluZyAlZCBjaGFyYWN0ZXJzLiBQYXRoOiAnJXMnLgBjYW5ub3Qgc2lsZW50bHkgY29udmVydCBOVUxMIHZhbHVlcywgYXMgcmVxdWlyZWQgaW4gdGhpcyBTUUxfTU9ERQBZb3VyIHBhc3N3b3JkIGhhcyBleHBpcmVkLiBUbyBsb2cgaW4geW91IG11c3QgY2hhbmdlIGl0IHVzaW5nIGEgY2xpZW50IHRoYXQgc3VwcG9ydHMgZXhwaXJlZCBwYXNzd29yZHMuAEZvdW5kIGEgcm93IGluIHdyb25nIHBhcnRpdGlvbiAlcwBDYW5ub3Qgc2NoZWR1bGUgZXZlbnQgJXMsIHJlbGF5LWxvZyBuYW1lICVzLCBwb3NpdGlvbiAlcyB0byBXb3JrZXIgdGhyZWFkIGJlY2F1c2UgaXRzIHNpemUgJWx1IGV4Y2VlZHMgJWx1IG9mIHJlcGxpY2FfcGVuZGluZ19qb2JzX3NpemVfbWF4LgBDYW5ub3QgQ1JFQVRFIEZVTExURVhUIElOREVYIFdJVEggUEFSU0VSIG9uIElubm9EQiB0YWJsZQBUaGUgYmluYXJ5IGxvZyBmaWxlICclcycgaXMgbG9naWNhbGx5IGNvcnJ1cHRlZDogJXMAZmlsZSAlcyB3YXMgbm90IHB1cmdlZCBiZWNhdXNlIGl0IHdhcyBiZWluZyByZWFkIGJ5ICVkIHRocmVhZChzKSwgcHVyZ2VkIG9ubHkgJWQgb3V0IG9mICVkIGZpbGVzLgBmaWxlICVzIHdhcyBub3QgcHVyZ2VkIGJlY2F1c2UgaXQgaXMgdGhlIGFjdGl2ZSBsb2cgZmlsZS4AQXV0by1pbmNyZW1lbnQgdmFsdWUgaW4gVVBEQVRFIGNvbmZsaWN0cyB3aXRoIGludGVybmFsbHkgZ2VuZXJhdGVkIHZhbHVlcwBSb3cgZXZlbnRzIGFyZSBub3QgbG9nZ2VkIGZvciAlcyBzdGF0ZW1lbnRzIHRoYXQgbW9kaWZ5IEJMQUNLSE9MRSB0YWJsZXMgaW4gcm93IGZvcm1hdC4gVGFibGUocyk6ICclLS4xOTJzJwBSZXBsaWNhIGZhaWxlZCB0byBpbml0aWFsaXplIGNvbm5lY3Rpb24gbWV0YWRhdGEgc3RydWN0dXJlIGZyb20gdGhlIHJlcG9zaXRvcnkAUmVwbGljYSBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBhcHBsaWVyIG1ldGFkYXRhIHN0cnVjdHVyZSBmcm9tIHRoZSByZXBvc2l0b3J5AEFjY2VzcyBkZW5pZWQgdHJ5aW5nIHRvIGNoYW5nZSB0byB1c2VyICclLS40OHMnQCclLS42NHMnICh1c2luZyBwYXNzd29yZDogJXMpLiBEaXNjb25uZWN0aW5nLgBJbm5vREIgaXMgaW4gcmVhZCBvbmx5IG1vZGUuAFNUT1AgUkVQTElDQSBjb21tYW5kIGV4ZWN1dGlvbiBpcyBpbmNvbXBsZXRlOiBSZXBsaWNhIFNRTCB0aHJlYWQgZ290IHRoZSBzdG9wIHNpZ25hbCwgdGhyZWFkIGlzIGJ1c3ksIFNRTCB0aHJlYWQgd2lsbCBzdG9wIG9uY2UgdGhlIGN1cnJlbnQgdGFzayBpcyBjb21wbGV0ZS4AU1RPUCBSRVBMSUNBIGNvbW1hbmQgZXhlY3V0aW9uIGlzIGluY29tcGxldGU6IFJlcGxpY2EgSU8gdGhyZWFkIGdvdCB0aGUgc3RvcCBzaWduYWwsIHRocmVhZCBpcyBidXN5LCBJTyB0aHJlYWQgd2lsbCBzdG9wIG9uY2UgdGhlIGN1cnJlbnQgdGFzayBpcyBjb21wbGV0ZS4AT3BlcmF0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQuIFRoZSB0YWJsZSAnJS0uNjRzLiUtLjY0cycgaXMgbWlzc2luZywgY29ycnVwdCBvciBjb250YWlucyBiYWQgZGF0YS4AVGVtcG9yYXJ5IGZpbGUgd3JpdGUgZmFpbHVyZS4AVXBncmFkZSBpbmRleCBuYW1lIGZhaWxlZCwgcGxlYXNlIHVzZSBjcmVhdGUgaW5kZXgoYWx0ZXIgdGFibGUpIGFsZ29yaXRobSBjb3B5IHRvIHJlYnVpbGQgaW5kZXguAFRJTUUvVElNRVNUQU1QL0RBVEVUSU1FIGNvbHVtbnMgb2Ygb2xkIGZvcm1hdCBoYXZlIGJlZW4gdXBncmFkZWQgdG8gdGhlIG5ldyBmb3JtYXQuAE9wZXJhdGlvbiBub3QgYWxsb3dlZCB3aGVuIGlubm9kYl9mb3JjZV9yZWNvdmVyeSA+IDAuAFRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3Igc3VwcGxpZWQgdG8gJXMgaXMgdG9vIHNob3J0LiBNdXN0IGJlIGF0IGxlYXN0ICVkIGJ5dGVzIGxvbmcAUGx1Z2luICclcycgY2Fubm90IGJlIHVuaW5zdGFsbGVkIG5vdy4gJXMAQ2Fubm90IGV4ZWN1dGUgc3RhdGVtZW50IGJlY2F1c2UgaXQgbmVlZHMgdG8gYmUgd3JpdHRlbiB0byB0aGUgYmluYXJ5IGxvZyBhcyBtdWx0aXBsZSBzdGF0ZW1lbnRzLCBhbmQgdGhpcyBpcyBub3QgYWxsb3dlZCB3aGVuIEBAU0VTU0lPTi5HVElEX05FWFQgPT0gJ1VVSUQ6TlVNQkVSJy4AUmVwbGljYSBoYXMgbW9yZSBHVElEcyB0aGFuIHRoZSBzb3VyY2UgaGFzLCB1c2luZyB0aGUgc291cmNlJ3MgU0VSVkVSX1VVSUQuIFRoaXMgbWF5IGluZGljYXRlIHRoYXQgdGhlIHRoZSBsYXN0IGJpbmFyeSBsb2cgZmlsZSB3YXMgdHJ1bmNhdGVkIG9yIGxvc3QsIGUuZy4sIGFmdGVyIGEgcG93ZXIgZmFpbHVyZSB3aGVuIHN5bmNfYmlubG9nICE9IDEuIFRoZSBzb3VyY2UgbWF5IGhhdmUgcm9sbGVkIGJhY2sgdHJhbnNhY3Rpb25zIHRoYXQgd2VyZSBhbHJlYWR5IHJlcGxpY2F0ZWQgdG8gdGhlIHJlcGxpY2EuIFJlcGxpY2F0ZSBhbnkgdHJhbnNhY3Rpb25zIHRoYXQgc291cmNlIGhhcyByb2xsZWQgYmFjayBmcm9tIHJlcGxpY2EgdG8gc291cmNlLCBhbmQvb3IgY29tbWl0IGVtcHR5IHRyYW5zYWN0aW9ucyBvbiBzb3VyY2UgdG8gYWNjb3VudCBmb3IgdHJhbnNhY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIGNvbW1pdHRlZCBvbiBzb3VyY2UgYnV0IGFyZSBub3QgaW5jbHVkZWQgaW4gR1RJRF9FWEVDVVRFRC4AVGhlIHRhYmxlICclcy4lcycgZG9lcyBub3QgaGF2ZSB0aGUgbmVjZXNzYXJ5IGtleShzKSBkZWZpbmVkIG9uIGl0LiBQbGVhc2UgY2hlY2sgdGhlIHRhYmxlIGRlZmluaXRpb24gYW5kIGNyZWF0ZSBpbmRleChzKSBhY2NvcmRpbmdseS4AU2V0dGluZyBuYW1lZF9waXBlX2Z1bGxfYWNjZXNzX2dyb3VwPSclcycgaXMgaW5zZWN1cmUuIENvbnNpZGVyIHVzaW5nIGEgV2luZG93cyBncm91cCB3aXRoIGZld2VyIG1lbWJlcnMuAEZpbGUgJXMgaXMgY29ycnVwdGVkAFF1ZXJ5IHBhcnRpYWxseSBjb21wbGV0ZWQgb24gdGhlIHNvdXJjZSAoZXJyb3Igb24gc291cmNlOiAlZCkgYW5kIHdhcyBhYm9ydGVkLiBUaGVyZSBpcyBhIGNoYW5jZSB0aGF0IHlvdXIgc291cmNlIGlzIGluY29uc2lzdGVudCBhdCB0aGlzIHBvaW50LiBJZiB5b3UgYXJlIHN1cmUgdGhhdCB5b3VyIHNvdXJjZSBpcyBvaywgcnVuIHRoaXMgcXVlcnkgbWFudWFsbHkgb24gdGhlIHJlcGxpY2EgYW5kIHRoZW4gcmVzdGFydCB0aGUgcmVwbGljYSB3aXRoIFNFVCBHTE9CQUwgU1FMX1JFUExJQ0FfU0tJUF9DT1VOVEVSPTE7IFNUQVJUIFJFUExJQ0E7LiBRdWVyeTonJXMnAFF1ZXJ5IGNhdXNlZCBkaWZmZXJlbnQgZXJyb3JzIG9uIHNvdXJjZSBhbmQgcmVwbGljYS4gRXJyb3Igb24gc291cmNlOiBtZXNzYWdlIChmb3JtYXQpPSclcycgZXJyb3IgY29kZT0lZDsgRXJyb3Igb24gcmVwbGljYTphY3R1YWwgbWVzc2FnZT0nJXMnLCBlcnJvciBjb2RlPSVkLiBEZWZhdWx0IGRhdGFiYXNlOiclcycuIFF1ZXJ5OiclcycAU3RvcmFnZSBlbmdpbmUgZm9yIHRhYmxlICclcycuJyVzJyBpcyBub3QgbG9hZGVkLgBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyB3aGVuIGhhbmRsZXIgbm90IGFjdGl2ZQAlcyBpcyBubyBsb25nZXIgc3VwcG9ydGVkLiBUaGUgc3RhdGVtZW50IHdhcyBjb252ZXJ0ZWQgdG8gJXMuAFN0YXRlbWVudCBpcyB1bnNhZmUgYmVjYXVzZSBpdCB1c2VzIGEgZnVsbHRleHQgcGFyc2VyIHBsdWdpbiB3aGljaCBtYXkgbm90IHJldHVybiB0aGUgc2FtZSB2YWx1ZSBvbiB0aGUgcmVwbGljYS4AQ2Fubm90IERJU0NBUkQvSU1QT1JUIHRhYmxlc3BhY2UgYXNzb2NpYXRlZCB3aXRoIHRlbXBvcmFyeSB0YWJsZQBGb3JlaWduIGtleSBjYXNjYWRlIGRlbGV0ZS91cGRhdGUgZXhjZWVkcyBtYXggZGVwdGggb2YgJWQuAFNwYWx0ZW5hbnphaGwgdm9uICVzLiVzIGZhbHNjaC4gJWQgZXJ3YXJ0ZXQsIGFiZXIgJWQgZXJoYWx0ZW4uIEVyemV1Z3QgbWl0IE15U1FMICVkLCBqZXR6dCB1bnRlciAlZC4gQml0dGUgdmVyd2VuZGVuIFNpZSBkaWUgTXlTUUwtVXBncmFkZS1Qcm96ZWR1ciwgdW0gZGVuIEZlaGxlciB6dSBiZWhlYmVuLgBUcmlnZ2VyICVzLiVzLiVzIGRvZXMgbm90IGhhdmUgQ1JFQVRFRCBhdHRyaWJ1dGUuAFJlZmVyZW5jZWQgdHJpZ2dlciAnJXMnIGZvciB0aGUgZ2l2ZW4gYWN0aW9uIHRpbWUgYW5kIGV2ZW50IHR5cGUgZG9lcyBub3QgZXhpc3QuAEVYUExBSU4gRk9SIENPTk5FQ1RJT04gY29tbWFuZCBpcyBzdXBwb3J0ZWQgb25seSBmb3IgU0VMRUNUL1VQREFURS9JTlNFUlQvREVMRVRFL1JFUExBQ0UASW52YWxpZCBzaXplIGZvciBjb2x1bW4gJyUtLjE5MnMnLgBUYWJsZSBzdG9yYWdlIGVuZ2luZSAnJS0uNjRzJyBmb3VuZCByZXF1aXJlZCBjcmVhdGUgb3B0aW9uIG1pc3NpbmcAT3V0IG9mIG1lbW9yeSBpbiBzdG9yYWdlIGVuZ2luZSAnJS0uNjRzJy4AVGhlIHBhc3N3b3JkIGZvciBhbm9ueW1vdXMgdXNlciBjYW5ub3QgYmUgZXhwaXJlZC4AVGhpcyBvcGVyYXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZCB3aXRoIGEgcnVubmluZyByZXBsaWNhIHNxbCB0aHJlYWQ7IHJ1biBTVE9QIFJFUExJQ0EgU1FMX1RIUkVBRCBmaXJzdABDYW5ub3QgY3JlYXRlIEZVTExURVhUIGluZGV4IG9uIG1hdGVyaWFsaXplZCBzdWJxdWVyeQBVbmRvIExvZyBlcnJvcjogJXMASW52YWxpZCBhcmd1bWVudCBmb3IgbG9nYXJpdGhtAFRoaXMgb3BlcmF0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQgd2l0aCBhIHJ1bm5pbmcgcmVwbGljYSBpbyB0aHJlYWQ7IHJ1biBTVE9QIFJFUExJQ0EgSU9fVEhSRUFEIEZPUiBDSEFOTkVMICclcycgZmlyc3QuAFRoaXMgb3BlcmF0aW9uIG1heSBub3QgYmUgc2FmZSB3aGVuIHRoZSByZXBsaWNhIGhhcyB0ZW1wb3JhcnkgdGFibGVzLiBUaGUgdGFibGVzIHdpbGwgYmUga2VwdCBvcGVuIHVudGlsIHRoZSBzZXJ2ZXIgcmVzdGFydHMgb3IgdW50aWwgdGhlIHRhYmxlcyBhcmUgZGVsZXRlZCBieSBhbnkgcmVwbGljYXRlZCBEUk9QIHN0YXRlbWVudC4gU3VnZ2VzdCB0byB3YWl0IHVudGlsIHJlcGxpY2Ffb3Blbl90ZW1wX3RhYmxlcyA9IDAuAENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gd2l0aCBhIFNPVVJDRV9MT0dfRklMRSBjbGF1c2UgYnV0IG5vIFNPVVJDRV9MT0dfUE9TIGNsYXVzZSBtYXkgbm90IGJlIHNhZmUuIFRoZSBvbGQgcG9zaXRpb24gdmFsdWUgbWF5IG5vdCBiZSB2YWxpZCBmb3IgdGhlIG5ldyBiaW5hcnkgbG9nIGZpbGUuAFF1ZXJ5IGV4ZWN1dGlvbiB3YXMgaW50ZXJydXB0ZWQsIG1heGltdW0gc3RhdGVtZW50IGV4ZWN1dGlvbiB0aW1lIGV4Y2VlZGVkAFNlbGVjdCBpcyBub3QgYSByZWFkIG9ubHkgc3RhdGVtZW50LCBkaXNhYmxpbmcgdGltZXIARHVwbGljYXRlIGVudHJ5ICclLS4xOTJzJy4AJyVzJyBtb2RlIG5vIGxvbmdlciBoYXMgYW55IGVmZmVjdC4gVXNlIFNUUklDVF9BTExfVEFCTEVTIG9yIFNUUklDVF9UUkFOU19UQUJMRVMgaW5zdGVhZC4ARXhwcmVzc2lvbiAjJXUgb2YgT1JERVIgQlkgY29udGFpbnMgYWdncmVnYXRlIGZ1bmN0aW9uIGFuZCBhcHBsaWVzIHRvIGEgVU5JT04sIEVYQ0VQVCBvciBJTlRFUlNFQ1QARXhwcmVzc2lvbiAjJXUgb2YgT1JERVIgQlkgY29udGFpbnMgYWdncmVnYXRlIGZ1bmN0aW9uIGFuZCBhcHBsaWVzIHRvIHRoZSByZXN1bHQgb2YgYSBub24tYWdncmVnYXRlZCBxdWVyeQBSZXBsaWNhIHdvcmtlciBoYXMgc3RvcHBlZCBhZnRlciBhdCBsZWFzdCBvbmUgcHJldmlvdXMgd29ya2VyIGVuY291bnRlcmVkIGFuIGVycm9yIHdoZW4gcmVwbGljYS1wcmVzZXJ2ZS1jb21taXQtb3JkZXIgd2FzIGVuYWJsZWQuIFRvIHByZXNlcnZlIGNvbW1pdCBvcmRlciwgdGhlIGxhc3QgdHJhbnNhY3Rpb24gZXhlY3V0ZWQgYnkgdGhpcyB0aHJlYWQgaGFzIG5vdCBiZWVuIGNvbW1pdHRlZC4gV2hlbiByZXN0YXJ0aW5nIHRoZSByZXBsaWNhIGFmdGVyIGZpeGluZyBhbnkgZmFpbGVkIHRocmVhZHMsIHlvdSBzaG91bGQgZml4IHRoaXMgd29ya2VyIGFzIHdlbGwuAHJlcGxpY2FfcHJlc2VydmVfY29tbWl0X29yZGVyIGlzIG5vdCBzdXBwb3J0ZWQgJXMuAFRoZSBzZXJ2ZXIgaXMgY3VycmVudGx5IGluIG9mZmxpbmUgbW9kZQBCaW5hcnkgZ2VvbWV0cnkgZnVuY3Rpb24gJXMgZ2l2ZW4gdHdvIGdlb21ldHJpZXMgb2YgZGlmZmVyZW50IHNyaWRzOiAldSBhbmQgJXUsIHdoaWNoIHNob3VsZCBoYXZlIGJlZW4gaWRlbnRpY2FsLgBDYWxsaW5nIGdlb21ldHJ5IGZ1bmN0aW9uICVzIHdpdGggdW5zdXBwb3J0ZWQgdHlwZXMgb2YgYXJndW1lbnRzLgBVbmtub3duIEdJUyBlcnJvciBvY2N1cnJlZCBpbiBmdW5jdGlvbiAlcy4AVW5rbm93biBleGNlcHRpb24gY2F1Z2h0IGluIEdJUyBmdW5jdGlvbiAlcy4ASW52YWxpZCBHSVMgZGF0YSBwcm92aWRlZCB0byBmdW5jdGlvbiAlcy4AVGhlIGdlb21ldHJ5IGhhcyBubyBkYXRhIGluIGZ1bmN0aW9uICVzLgBVbmFibGUgdG8gY2FsY3VsYXRlIGNlbnRyb2lkIGJlY2F1c2UgZ2VvbWV0cnkgaXMgZW1wdHkgaW4gZnVuY3Rpb24gJXMuAEdlb21ldHJ5IG92ZXJsYXkgY2FsY3VsYXRpb24gZXJyb3I6IGdlb21ldHJ5IGRhdGEgaXMgaW52YWxpZCBpbiBmdW5jdGlvbiAlcy4AR2VvbWV0cnkgdHVybiBpbmZvIGNhbGN1bGF0aW9uIGVycm9yOiBnZW9tZXRyeSBkYXRhIGlzIGludmFsaWQgaW4gZnVuY3Rpb24gJXMuAEFuYWx5c2lzIHByb2NlZHVyZXMgb2YgaW50ZXJzZWN0aW9uIHBvaW50cyBpbnRlcnJ1cHRlZCB1bmV4cGVjdGVkbHkgaW4gZnVuY3Rpb24gJXMuAFVua25vd24gZXhjZXB0aW9uIHRocm93biBpbiBmdW5jdGlvbiAlcy4ATWVtb3J5IGFsbG9jYXRpb24gZXJyb3I6ICUtLjI1NnMgaW4gZnVuY3Rpb24gJXMuAERvbWFpbiBlcnJvcjogJS0uMjU2cyBpbiBmdW5jdGlvbiAlcy4ATGVuZ3RoIGVycm9yOiAlLS4yNTZzIGluIGZ1bmN0aW9uICVzLgBJbnZhbGlkIGFyZ3VtZW50IGVycm9yOiAlLS4yNTZzIGluIGZ1bmN0aW9uICVzLgBPdXQgb2YgcmFuZ2UgZXJyb3I6ICUtLjI1NnMgaW4gZnVuY3Rpb24gJXMuAE92ZXJmbG93IGVycm9yOiAlLS4yNTZzIGluIGZ1bmN0aW9uICVzLgBSYW5nZSBlcnJvcjogJS0uMjU2cyBpbiBmdW5jdGlvbiAlcy4AVW5kZXJmbG93IGVycm9yOiAlLS4yNTZzIGluIGZ1bmN0aW9uICVzLgBMb2dpYyBlcnJvcjogJS0uMjU2cyBpbiBmdW5jdGlvbiAlcy4AUnVudGltZSBlcnJvcjogJS0uMjU2cyBpbiBmdW5jdGlvbiAlcy4AVW5rbm93biBleGNlcHRpb246ICUtLjM4NHMgaW4gZnVuY3Rpb24gJXMuAEdlb21ldHJ5IGJ5dGUgc3RyaW5nIG11c3QgYmUgbGl0dGxlIGVuZGlhbi4AVGhlIHBhc3N3b3JkIHByb3ZpZGVkIGZvciB0aGUgcmVwbGljYXRpb24gdXNlciBleGNlZWRzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiAzMiBjaGFyYWN0ZXJzAEluY29ycmVjdCB1c2VyLWxldmVsIGxvY2sgbmFtZSAnJS0uMTkycycuIFRoZSBuYW1lIGlzIGVtcHR5LCBOVUxMLCBvciBjYW4gbm90IGJlIGV4cHJlc3NlZCBpbiB0aGUgY3VycmVudCBjaGFyYWN0ZXItc2V0LgBEZWFkbG9jayBmb3VuZCB3aGVuIHRyeWluZyB0byBnZXQgdXNlci1sZXZlbCBsb2NrOyB0cnkgcm9sbGluZyBiYWNrIHRyYW5zYWN0aW9uL3JlbGVhc2luZyBsb2NrcyBhbmQgcmVzdGFydGluZyBsb2NrIGFjcXVpc2l0aW9uLgBSRVBMQUNFIGNhbm5vdCBiZSBleGVjdXRlZCBhcyBpdCByZXF1aXJlcyBkZWxldGluZyByb3dzIHRoYXQgYXJlIG5vdCBpbiB0aGUgdmlldwBEbyBub3Qgc3VwcG9ydCBvbmxpbmUgb3BlcmF0aW9uIG9uIHRhYmxlIHdpdGggR0lTIGluZGV4AFVzZXIgdmFyaWFibGUgbmFtZSAnJS0uMTAwcycgaXMgaWxsZWdhbABDYW5ub3QgJXMgd2hlbiBHVElEX01PREUgPSBPRkYuAENhbm5vdCAlcyBmcm9tIGEgcmVwbGljYSB0aHJlYWQuAEluY29ycmVjdCB0eXBlIGZvciBhcmd1bWVudCAlcyBpbiBmdW5jdGlvbiAlcy4ARXhwcmVzc2lvbiAjJXUgb2YgT1JERVIgQlkgY2xhdXNlIGlzIG5vdCBpbiBTRUxFQ1QgbGlzdCwgcmVmZXJlbmNlcyBjb2x1bW4gJyUtLjE5MnMnIHdoaWNoIGlzIG5vdCBpbiBTRUxFQ1QgbGlzdDsgdGhpcyBpcyBpbmNvbXBhdGlibGUgd2l0aCAlcwBFeHByZXNzaW9uICMldSBvZiBPUkRFUiBCWSBjbGF1c2UgaXMgbm90IGluIFNFTEVDVCBsaXN0LCBjb250YWlucyBhZ2dyZWdhdGUgZnVuY3Rpb247IHRoaXMgaXMgaW5jb21wYXRpYmxlIHdpdGggJXMAU3VwcGxpZWQgZmlsdGVyIGxpc3QgY29udGFpbnMgYSB2YWx1ZSB3aGljaCBpcyBub3QgaW4gdGhlIHJlcXVpcmVkIGZvcm1hdCAnZGJfcGF0dGVybi50YWJsZV9wYXR0ZXJuJwBPSyBwYWNrZXQgdG9vIGxhcmdlAEludmFsaWQgSlNPTiBkYXRhIHByb3ZpZGVkIHRvIGZ1bmN0aW9uICVzOiAlcwBJbnZhbGlkIEdlb0pTT04gZGF0YSBwcm92aWRlZCB0byBmdW5jdGlvbiAlczogTWlzc2luZyByZXF1aXJlZCBtZW1iZXIgJyVzJwBJbnZhbGlkIEdlb0pTT04gZGF0YSBwcm92aWRlZCB0byBmdW5jdGlvbiAlczogTWVtYmVyICclcycgbXVzdCBiZSBvZiB0eXBlICclcycASW52YWxpZCBHZW9KU09OIGRhdGEgcHJvdmlkZWQgdG8gZnVuY3Rpb24gJXMAVW5zdXBwb3J0ZWQgbnVtYmVyIG9mIGNvb3JkaW5hdGUgZGltZW5zaW9ucyBpbiBmdW5jdGlvbiAlczogRm91bmQgJXUsIGV4cGVjdGVkICV1AFJlcGxpY2EgY2hhbm5lbCAnJXMnIGRvZXMgbm90IGV4aXN0LgBBIHJlcGxpY2EgY2hhbm5lbCAnJXMnIGFscmVhZHkgZXhpc3RzIGZvciB0aGUgZ2l2ZW4gaG9zdCBhbmQgcG9ydCBjb21iaW5hdGlvbi4AQ291bGRuJ3QgY3JlYXRlIGNoYW5uZWw6IENoYW5uZWwgbmFtZSBpcyBlaXRoZXIgaW52YWxpZCBvciB0b28gbG9uZy4AVG8gaGF2ZSBtdWx0aXBsZSBjaGFubmVscywgcmVwb3NpdG9yeSBjYW5ub3QgYmUgb2YgdHlwZSBGSUxFOyBQbGVhc2UgY2hlY2sgdGhlIHJlcG9zaXRvcnkgY29uZmlndXJhdGlvbiBhbmQgY29udmVydCB0aGVtIHRvIFRBQkxFLgBDYW5ub3QgZGVsZXRlIHJlcGxpY2EgaW5mbyBvYmplY3RzIGZvciBjaGFubmVsICclcycuAE11bHRpcGxlIGNoYW5uZWxzIGV4aXN0IG9uIHRoZSByZXBsaWNhLiBQbGVhc2UgcHJvdmlkZSBjaGFubmVsIG5hbWUgYXMgYW4gYXJndW1lbnQuAE1heGltdW0gbnVtYmVyIG9mIHJlcGxpY2F0aW9uIGNoYW5uZWxzIGFsbG93ZWQgZXhjZWVkZWQuAFRoaXMgb3BlcmF0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQgd2l0aCBydW5uaW5nIHJlcGxpY2F0aW9uIHRocmVhZHM7IHJ1biBTVE9QIFJFUExJQ0EgRk9SIENIQU5ORUwgJyVzJyBmaXJzdABUaGlzIG9wZXJhdGlvbiByZXF1aXJlcyBydW5uaW5nIHJlcGxpY2F0aW9uIHRocmVhZHM7IGNvbmZpZ3VyZSByZXBsaWNhIGFuZCBydW4gU1RBUlQgUkVQTElDQSBGT1IgQ0hBTk5FTCAnJXMnAFJlcGxpY2F0aW9uIHRocmVhZChzKSBmb3IgY2hhbm5lbCAnJXMnIGFyZSBhbHJlYWR5IHJ1bm5uaW5nLgBSZXBsaWNhdGlvbiB0aHJlYWQocykgZm9yIGNoYW5uZWwgJyVzJyBhcmUgYWxyZWFkeSBzdG9wcGVkLgBUaGlzIG9wZXJhdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkIHdpdGggYSBydW5uaW5nIHJlcGxpY2Egc3FsIHRocmVhZDsgcnVuIFNUT1AgUkVQTElDQSBTUUxfVEhSRUFEIEZPUiBDSEFOTkVMICclcycgZmlyc3QuAFdoZW4gc3FsX3JlcGxpY2Ffc2tpcF9jb3VudGVyID4gMCwgaXQgaXMgbm90IGFsbG93ZWQgdG8gc3RhcnQgbW9yZSB0aGFuIG9uZSBTUUwgdGhyZWFkIGJ5IHVzaW5nICdTVEFSVCBSRVBMSUNBIFtTUUxfVEhSRUFEXScuIFZhbHVlIG9mIHNxbF9yZXBsaWNhX3NraXBfY291bnRlciBjYW4gb25seSBiZSB1c2VkIGJ5IG9uZSBTUUwgdGhyZWFkIGF0IGEgdGltZS4gUGxlYXNlIHVzZSAnU1RBUlQgUkVQTElDQSBbU1FMX1RIUkVBRF0gRk9SIENIQU5ORUwnIHRvIHN0YXJ0IHRoZSBTUUwgdGhyZWFkIHdoaWNoIHdpbGwgdXNlIHRoZSB2YWx1ZSBvZiBzcWxfcmVwbGljYV9za2lwX2NvdW50ZXIuAEV4cHJlc3Npb24gIyV1IG9mICVzIGlzIG5vdCBpbiBHUk9VUCBCWSBjbGF1c2UgYW5kIGNvbnRhaW5zIG5vbmFnZ3JlZ2F0ZWQgY29sdW1uICclLS4xOTJzJyB3aGljaCBpcyBub3QgZnVuY3Rpb25hbGx5IGRlcGVuZGVudCBvbiBjb2x1bW5zIGluIEdST1VQIEJZIGNsYXVzZTsgdGhpcyBpcyBpbmNvbXBhdGlibGUgd2l0aCBzcWxfbW9kZT1vbmx5X2Z1bGxfZ3JvdXBfYnkASW4gYWdncmVnYXRlZCBxdWVyeSB3aXRob3V0IEdST1VQIEJZLCBleHByZXNzaW9uICMldSBvZiAlcyBjb250YWlucyBub25hZ2dyZWdhdGVkIGNvbHVtbiAnJS0uMTkycyc7IHRoaXMgaXMgaW5jb21wYXRpYmxlIHdpdGggc3FsX21vZGU9b25seV9mdWxsX2dyb3VwX2J5AFVwZGF0aW5nICclcycgaXMgZGVwcmVjYXRlZC4gSXQgd2lsbCBiZSBtYWRlIHJlYWQtb25seSBpbiBhIGZ1dHVyZSByZWxlYXNlLgBDaGFuZ2luZyBzcWwgbW9kZSAnJXMnIGlzIGRlcHJlY2F0ZWQuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgBEUk9QIERBVEFCQVNFIGZhaWxlZDsgc29tZSB0YWJsZXMgbWF5IGhhdmUgYmVlbiBkcm9wcGVkIGJ1dCB0aGUgZGF0YWJhc2UgZGlyZWN0b3J5IHJlbWFpbnMuIFRoZSBHVElEIGhhcyBub3QgYmVlbiBhZGRlZCB0byBHVElEX0VYRUNVVEVEIGFuZCB0aGUgc3RhdGVtZW50IHdhcyBub3Qgd3JpdHRlbiB0byB0aGUgYmluYXJ5IGxvZy4gRml4IHRoaXMgYXMgZm9sbG93czogKDEpIHJlbW92ZSBhbGwgZmlsZXMgZnJvbSB0aGUgZGF0YWJhc2UgZGlyZWN0b3J5ICUtLjE5MnM7ICgyKSBTRVQgR1RJRF9ORVhUPSclLS4xOTJzJzsgKDMpIERST1AgREFUQUJBU0UgYCUtLjE5MnNgLgBUaGUgc2VydmVyIGlzIG5vdCBjb25maWd1cmVkIHByb3Blcmx5IHRvIGJlIGFuIGFjdGl2ZSBtZW1iZXIgb2YgdGhlIGdyb3VwLiBQbGVhc2Ugc2VlIG1vcmUgZGV0YWlscyBvbiBlcnJvciBsb2cuAFRoZSBTVEFSVCBHUk9VUF9SRVBMSUNBVElPTiBjb21tYW5kIGZhaWxlZCBzaW5jZSB0aGUgZ3JvdXAgaXMgYWxyZWFkeSBydW5uaW5nLgBUaGUgU1RBUlQgR1JPVVBfUkVQTElDQVRJT04gY29tbWFuZCBmYWlsZWQgYXMgdGhlIGFwcGxpZXIgbW9kdWxlIGZhaWxlZCB0byBzdGFydC4AVGhlIFNUT1AgR1JPVVBfUkVQTElDQVRJT04gY29tbWFuZCBleGVjdXRpb24gaXMgaW5jb21wbGV0ZTogVGhlIGFwcGxpZXIgdGhyZWFkIGdvdCB0aGUgc3RvcCBzaWduYWwgd2hpbGUgaXQgd2FzIGJ1c3kuIFRoZSBhcHBsaWVyIHRocmVhZCB3aWxsIHN0b3Agb25jZSB0aGUgY3VycmVudCB0YXNrIGlzIGNvbXBsZXRlLgBUaGUgU1RBUlQgR1JPVVBfUkVQTElDQVRJT04gY29tbWFuZCBmYWlsZWQgYXMgdGhlcmUgd2FzIGFuIGVycm9yIHdoZW4gaW5pdGlhbGl6aW5nIHRoZSBncm91cCBjb21tdW5pY2F0aW9uIGxheWVyLgBUaGUgU1RBUlQgR1JPVVBfUkVQTElDQVRJT04gY29tbWFuZCBmYWlsZWQgYXMgdGhlcmUgd2FzIGFuIGVycm9yIHdoZW4gam9pbmluZyB0aGUgY29tbXVuaWNhdGlvbiBncm91cC4AVGhlIHRhYmxlIGRvZXMgbm90IGNvbXBseSB3aXRoIHRoZSByZXF1aXJlbWVudHMgYnkgYW4gZXh0ZXJuYWwgcGx1Z2luLgBDYW5ub3QgY2hhbmdlIHRoZSB2YWx1ZSBvZiB2YXJpYWJsZSAlcyB3aXRob3V0IGJpbmFyeSBsb2cgZm9ybWF0IGFzIFJPVy4ARXJyb3Igb24gb2JzZXJ2ZXIgd2hpbGUgcnVubmluZyByZXBsaWNhdGlvbiBob29rICclcycuAFBsdWdpbiBpbnN0cnVjdGVkIHRoZSBzZXJ2ZXIgdG8gcm9sbGJhY2sgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24uAEV4cHJlc3Npb24gb2YgZ2VuZXJhdGVkIGNvbHVtbiAnJXMnIGNvbnRhaW5zIGEgZGlzYWxsb3dlZCBmdW5jdGlvbi4ASU5QTEFDRSBBREQgb3IgRFJPUCBvZiB2aXJ0dWFsIGNvbHVtbnMgY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgQUxURVIgVEFCTEUgYWN0aW9ucwBDYW5ub3QgZGVmaW5lIGZvcmVpZ24ga2V5IHdpdGggJXMgY2xhdXNlIG9uIGEgZ2VuZXJhdGVkIGNvbHVtbi4AVGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgZ2VuZXJhdGVkIGNvbHVtbiAnJXMnIGluIHRhYmxlICclcycgaXMgbm90IGFsbG93ZWQuACclcycgaXMgbm90IHN1cHBvcnRlZCBmb3IgZ2VuZXJhdGVkIGNvbHVtbnMuAEdlbmVyYXRlZCBjb2x1bW4gY2FuIHJlZmVyIG9ubHkgdG8gZ2VuZXJhdGVkIGNvbHVtbnMgZGVmaW5lZCBwcmlvciB0byBpdC4AQ29sdW1uICclcycgaGFzIGEgZ2VuZXJhdGVkIGNvbHVtbiBkZXBlbmRlbmN5LgBHZW5lcmF0ZWQgY29sdW1uICclcycgY2Fubm90IHJlZmVyIHRvIGF1dG8taW5jcmVtZW50IGNvbHVtbi4AVGhlICclLS42NHMnIGZlYXR1cmUgaXMgbm90IGF2YWlsYWJsZTsgeW91IG5lZWQgdG8gcmVtb3ZlICclLS42NHMnIG9yIHVzZSBNeVNRTCBidWlsdCB3aXRoICclLS42NHMnAFNFVCBAQEdMT0JBTC5HVElEX01PREUgPSAlLS42NHMgaXMgbm90IGFsbG93ZWQgYmVjYXVzZSAlLS4zODRzLgBUaGUgcmVwbGljYXRpb24gcmVjZWl2ZXIgdGhyZWFkJS0uMTkycyBjYW5ub3Qgc3RhcnQgaW4gQVVUT19QT1NJVElPTiBtb2RlOiB0aGlzIHNlcnZlciB1c2VzIEBAR0xPQkFMLkdUSURfTU9ERSA9IE9GRi4AQ2Fubm90IHJlcGxpY2F0ZSBhbm9ueW1vdXMgdHJhbnNhY3Rpb24gd2hlbiBBVVRPX1BPU0lUSU9OID0gMSwgYXQgZmlsZSAlLjUxMnMsIHBvc2l0aW9uICVsbGQuAENhbm5vdCByZXBsaWNhdGUgYW5vbnltb3VzIHRyYW5zYWN0aW9uIHdoZW4gQEBHTE9CQUwuR1RJRF9NT0RFID0gT04sIGF0IGZpbGUgJS41MTJzLCBwb3NpdGlvbiAlbGxkLgBDYW5ub3QgcmVwbGljYXRlIEdUSUQtdHJhbnNhY3Rpb24gd2hlbiBAQEdMT0JBTC5HVElEX01PREUgPSBPRkYsIGF0IGZpbGUgJS41MTJzLCBwb3NpdGlvbiAlbGxkLgBDYW5ub3Qgc2V0IEVORk9SQ0VfR1RJRF9DT05TSVNURU5DWSA9IE9OIGJlY2F1c2UgdGhlcmUgYXJlIG9uZ29pbmcgdHJhbnNhY3Rpb25zIHRoYXQgdmlvbGF0ZSBHVElEIGNvbnNpc3RlbmN5LgBUaGVyZSBhcmUgb25nb2luZyB0cmFuc2FjdGlvbnMgdGhhdCB2aW9sYXRlIEdUSUQgY29uc2lzdGVuY3kuAEFjY2VzcyBkZW5pZWQgZm9yIHVzZXIgJyUtLjQ4cydAJyUtLjY0cycuIEFjY291bnQgaXMgbG9ja2VkLgBJbmNvcnJlY3QgdGFibGVzcGFjZSBuYW1lIGAlLS4xOTJzYABUYWJsZXNwYWNlIGAlLS4xOTJzYCBpcyBub3QgZW1wdHkuAEluY29ycmVjdCBGaWxlIE5hbWUgJyVzJy4ASW5jb25zaXN0ZW50IGludGVyc2VjdGlvbiBwb2ludHMuAE9wdGltaXplciBoaW50IHN5bnRheCBlcnJvcgBVbnN1cHBvcnRlZCBNQVhfRVhFQ1VUSU9OX1RJTUUATUFYX0VYRUNVVElPTl9USU1FIGhpbnQgaXMgc3VwcG9ydGVkIGJ5IHRvcC1sZXZlbCBzdGFuZGFsb25lIFNFTEVDVCBzdGF0ZW1lbnRzIG9ubHkASGludCAlcyBpcyBpZ25vcmVkIGFzIGNvbmZsaWN0aW5nL2R1cGxpY2F0ZWQAUXVlcnkgYmxvY2sgbmFtZSAlcyBpcyBub3QgZm91bmQgZm9yICVzIGhpbnQAVW5yZXNvbHZlZCBuYW1lICVzIGZvciAlcyBoaW50AFBsZWFzZSBkbyBub3QgbW9kaWZ5IHRoZSAlcyB0YWJsZS4gVGhpcyBpcyBhIG15c3FsIGludGVybmFsIHN5c3RlbSB0YWJsZSB0byBzdG9yZSBHVElEcyBmb3IgY29tbWl0dGVkIHRyYW5zYWN0aW9ucy4gTW9kaWZ5aW5nIGl0IGNhbiBsZWFkIHRvIGFuIGluY29uc2lzdGVudCBHVElEIHN0YXRlLgBDb21tYW5kIG5vdCBzdXBwb3J0ZWQgYnkgcGx1Z2dhYmxlIHByb3RvY29scwBJbmNvcnJlY3QgbG9ja2luZyBzZXJ2aWNlIGxvY2sgbmFtZSAnJS0uMTkycycuAERlYWRsb2NrIGZvdW5kIHdoZW4gdHJ5aW5nIHRvIGdldCBsb2NraW5nIHNlcnZpY2UgbG9jazsgdHJ5IHJlbGVhc2luZyBsb2NrcyBhbmQgcmVzdGFydGluZyBsb2NrIGFjcXVpc2l0aW9uLgBTZXJ2aWNlIGxvY2sgd2FpdCB0aW1lb3V0IGV4Y2VlZGVkLgBQYXJhbWV0ZXIgJXMgZXhjZWVkcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgcG9pbnRzIGluIGEgZ2VvbWV0cnkgKCVsdSkgaW4gZnVuY3Rpb24gJXMuACdOT19aRVJPX0RBVEUnLCAnTk9fWkVST19JTl9EQVRFJyBhbmQgJ0VSUk9SX0ZPUl9ESVZJU0lPTl9CWV9aRVJPJyBzcWwgbW9kZXMgc2hvdWxkIGJlIHVzZWQgd2l0aCBzdHJpY3QgbW9kZS4gVGhleSB3aWxsIGJlIG1lcmdlZCB3aXRoIHN0cmljdCBtb2RlIGluIGEgZnV0dXJlIHJlbGVhc2UuAFZlcnNpb24gdG9rZW4gbWlzbWF0Y2ggZm9yICUuKnMuIENvcnJlY3QgdmFsdWUgJS4qcwBWZXJzaW9uIHRva2VuICUuKnMgbm90IGZvdW5kLgBWYXJpYWJsZSAlLS4xOTJzIGNhbm5vdCBiZSBjaGFuZ2VkIGJ5IGEgY2xpZW50IHRoYXQgb3ducyBhIEdUSUQuIFRoZSBjbGllbnQgb3ducyAlcy4gT3duZXJzaGlwIGlzIHJlbGVhc2VkIG9uIENPTU1JVCBvciBST0xMQkFDSy4AJS0uMTkycyBjYW5ub3QgYmUgcGVyZm9ybWVkIG9uIGNoYW5uZWwgJyUtLjE5MnMnLgBJbnZhbGlkIEpTT04gdGV4dDogIiVzIiBhdCBwb3NpdGlvbiAldSBpbiB2YWx1ZSBmb3IgY29sdW1uICclLS4yMDBzJyBhdCByb3cgJWxkLgBJbnZhbGlkIEpTT04gdGV4dCBpbiBhcmd1bWVudCAldSB0byBmdW5jdGlvbiAlczogIiVzIiBhdCBwb3NpdGlvbiAldS4lLS4wcwBUaGUgSlNPTiBiaW5hcnkgdmFsdWUgY29udGFpbnMgaW52YWxpZCBkYXRhLgBJbnZhbGlkIEpTT04gcGF0aCBleHByZXNzaW9uLiBUaGUgZXJyb3IgaXMgYXJvdW5kIGNoYXJhY3RlciBwb3NpdGlvbiAldS4lLS4yMDBzAENhbm5vdCBjcmVhdGUgYSBKU09OIHZhbHVlIGZyb20gYSBzdHJpbmcgd2l0aCBDSEFSQUNURVIgU0VUICclcycuAEludmFsaWQgSlNPTiBjaGFyYWN0ZXIgZGF0YSBwcm92aWRlZCB0byBmdW5jdGlvbiAlczogJyVzJzsgdXRmOCBpcyByZXF1aXJlZC4ASW52YWxpZCBkYXRhIHR5cGUgZm9yIEpTT04gZGF0YSBpbiBhcmd1bWVudCAldSB0byBmdW5jdGlvbiAlczsgYSBKU09OIHN0cmluZyBvciBKU09OIHR5cGUgaXMgcmVxdWlyZWQuAENhbm5vdCBDQVNUIHZhbHVlIHRvIEpTT04uAEEgcGF0aCBleHByZXNzaW9uIG11c3QgYmUgZW5jb2RlZCBpbiB0aGUgdXRmOCBjaGFyYWN0ZXIgc2V0LiBUaGUgcGF0aCBleHByZXNzaW9uICclLS4yMDBzJyBpcyBlbmNvZGVkIGluIGNoYXJhY3RlciBzZXQgJyUtLjIwMHMnLgBJbiB0aGlzIHNpdHVhdGlvbiwgcGF0aCBleHByZXNzaW9ucyBtYXkgbm90IGNvbnRhaW4gdGhlICogYW5kICoqIHRva2VucyBvciBhbiBhcnJheSByYW5nZS4AVGhlIEpTT04gdmFsdWUgaXMgdG9vIGJpZyB0byBiZSBzdG9yZWQgaW4gYSBKU09OIGNvbHVtbi4AVGhlIEpTT04gb2JqZWN0IGNvbnRhaW5zIGEga2V5IG5hbWUgdGhhdCBpcyB0b28gbG9uZy4ASlNPTiBjb2x1bW4gJyUtLjE5MnMnIHN1cHBvcnRzIGluZGV4aW5nIG9ubHkgdmlhIGdlbmVyYXRlZCBjb2x1bW5zIG9uIGEgc3BlY2lmaWVkIEpTT04gcGF0aC4AVGhlIHBhdGggZXhwcmVzc2lvbiAnJCcgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LgBUaGUgb25lT3JBbGwgYXJndW1lbnQgdG8gJXMgbWF5IHRha2UgdGhlc2UgdmFsdWVzOiAnb25lJyBvciAnYWxsJy4AT3V0IG9mIHJhbmdlIEpTT04gdmFsdWUgZm9yIENBU1QgdG8gJXMlLS4wcyBmcm9tIGNvbHVtbiAlcyBhdCByb3cgJWxkAEludmFsaWQgSlNPTiB2YWx1ZSBmb3IgQ0FTVCB0byAlcyUtLjBzIGZyb20gY29sdW1uICVzIGF0IHJvdyAlbGQAVGhlIEpTT04gZG9jdW1lbnQgZXhjZWVkcyB0aGUgbWF4aW11bSBkZXB0aC4ASlNPTiBkb2N1bWVudHMgbWF5IG5vdCBjb250YWluIE5VTEwgbWVtYmVyIG5hbWVzLgBDb25uZWN0aW9ucyB1c2luZyBpbnNlY3VyZSB0cmFuc3BvcnQgYXJlIHByb2hpYml0ZWQgd2hpbGUgLS1yZXF1aXJlX3NlY3VyZV90cmFuc3BvcnQ9T04uAE5vIHNlY3VyZSB0cmFuc3BvcnRzIChTU0wgb3IgU2hhcmVkIE1lbW9yeSkgYXJlIGNvbmZpZ3VyZWQsIHVuYWJsZSB0byBzZXQgLS1yZXF1aXJlX3NlY3VyZV90cmFuc3BvcnQ9T04uAFN0b3JhZ2UgZW5naW5lICVzIGlzIGRpc2FibGVkIChUYWJsZSBjcmVhdGlvbiBpcyBkaXNhbGxvd2VkKS4AQXV0aG9yaXphdGlvbiBJRCAlcyBkb2VzIG5vdCBleGlzdC4AQXV0aG9yaXphdGlvbiBJRCAlcyBhbHJlYWR5IGV4aXN0cy4AQWJvcnRlZCBieSBBdWRpdCBBUEkgKCclLS40OHMnOyVkKS4AQSBwYXRoIGV4cHJlc3Npb24gaXMgbm90IGEgcGF0aCB0byBhIGNlbGwgaW4gYW4gYXJyYXkuAEFub3RoZXIgYnVmZmVyIHBvb2wgcmVzaXplIGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3MuAFRoZSAnJXMnIGZlYXR1cmUgaXMgZGlzYWJsZWQ7IHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgJyVzJwBTZXJ2ZXIgaXNuJ3QgYXZhaWxhYmxlAFNlc3Npb24gd2FzIGtpbGxlZABNZW1vcnkgY2FwYWNpdHkgb2YgJWxsdSBieXRlcyBmb3IgJyVzJyBleGNlZWRlZC4gJXMAUmFuZ2Ugb3B0aW1pemF0aW9uIHdhcyBub3QgZG9uZSBmb3IgdGhpcyBxdWVyeS4AUGFydGl0aW9uaW5nIHVwZ3JhZGUgcmVxdWlyZWQuIFBsZWFzZSBkdW1wL3JlbG9hZCB0byBmaXggaXQgb3IgZG86IEFMVEVSIFRBQkxFIGAlLS4xOTJzYC5gJS0uMTkyc2AgVVBHUkFERSBQQVJUSVRJT05JTkcAVGhlIGNsaWVudCBob2xkcyBvd25lcnNoaXAgb2YgdGhlIEdUSUQgJXMuIFRoZXJlZm9yZSwgV0FJVF9GT1JfRVhFQ1VURURfR1RJRF9TRVQgY2Fubm90IHdhaXQgZm9yIHRoaXMgR1RJRC4AQ2Fubm90IGFkZCBmb3JlaWduIGtleSBvbiB0aGUgYmFzZSBjb2x1bW4gb2YgaW5kZXhlZCB2aXJ0dWFsIGNvbHVtbi4AQ2Fubm90IGNyZWF0ZSBpbmRleCBvbiB2aXJ0dWFsIGNvbHVtbiB3aG9zZSBiYXNlIGNvbHVtbiBoYXMgZm9yZWlnbiBjb25zdHJhaW50LgBQbGVhc2UgZG8gbm90IG1vZGlmeSB0aGUgJXMgdGFibGUgd2l0aCBhbiBYQSB0cmFuc2FjdGlvbi4gVGhpcyBpcyBhbiBpbnRlcm5hbCBzeXN0ZW0gdGFibGUgdXNlZCB0byBzdG9yZSBHVElEcyBmb3IgY29tbWl0dGVkIHRyYW5zYWN0aW9ucy4gQWx0aG91Z2ggbW9kaWZ5aW5nIGl0IGNhbiBsZWFkIHRvIGFuIGluY29uc2lzdGVudCBHVElEIHN0YXRlLCBpZiBuZWNlc3NhcnkgeW91IGNhbiBtb2RpZnkgaXQgd2l0aCBhIG5vbi1YQSB0cmFuc2FjdGlvbi4ATG9jayBhY3F1aXNpdGlvbiByZWZ1c2VkIGJ5IHN0b3JhZ2UgZW5naW5lLgBBREQgQ09MVU1OIGNvbC4uLlZJUlRVQUwsIEFERCBJTkRFWChjb2wpAE1hc3RlciBrZXkgcm90YXRpb24gaXMgbm90IHN1cHBvcnRlZCBieSBzdG9yYWdlIGVuZ2luZS4ARW5jcnlwdGlvbiBrZXkgcm90YXRpb24gZXJyb3IgcmVwb3J0ZWQgYnkgU0U6ICVzAFdyaXRlIHRvIGJpbmxvZyBmYWlsZWQuIEhvd2V2ZXIsIG1hc3RlciBrZXkgcm90YXRpb24gaGFzIGJlZW4gY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4AU3RvcmFnZSBlbmdpbmUgaXMgbm90IGF2YWlsYWJsZS4AVGhpcyB0YWJsZXNwYWNlIGNhbid0IGJlIGVuY3J5cHRlZC4ASW52YWxpZCBlbmNyeXB0aW9uIG9wdGlvbi4AQ2FuJ3QgZmluZCBtYXN0ZXIga2V5IGZyb20ga2V5cmluZywgcGxlYXNlIGNoZWNrIGluIHRoZSBzZXJ2ZXIgbG9nIGlmIGEga2V5cmluZyBpcyBsb2FkZWQgYW5kIGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseS4AUGFyc2VyIGJhaWxlZCBvdXQgZm9yIHRoaXMgcXVlcnkuAENhbm5vdCBhbHRlciBlbmNyeXB0aW9uIGF0dHJpYnV0ZSBieSBpbnBsYWNlIGFsZ29yaXRobS4ARnVuY3Rpb24gJyVzJyBmYWlsZWQgYmVjYXVzZSB1bmRlcmx5aW5nIGtleXJpbmcgc2VydmljZSByZXR1cm5lZCBhbiBlcnJvci4gUGxlYXNlIGNoZWNrIGlmIGEga2V5cmluZyBpcyBpbnN0YWxsZWQgYW5kIHRoYXQgcHJvdmlkZWQgYXJndW1lbnRzIGFyZSB2YWxpZCBmb3IgdGhlIGtleXJpbmcgeW91IGFyZSB1c2luZy4ASXQgc2VlbXMgdGhhdCB5b3VyIGRiIHNjaGVtYSBpcyBvbGQuIFRoZSAlcyBjb2x1bW4gaXMgNzcgY2hhcmFjdGVycyBsb25nIGFuZCBzaG91bGQgYmUgOTMgY2hhcmFjdGVycyBsb25nLiBQbGVhc2UgcGVyZm9ybSB0aGUgTXlTUUwgdXBncmFkZSBwcm9jZWR1cmUuAFJFU0VUIEJJTkFSWSBMT0dTIEFORCBHVElEUyBpcyBub3QgYWxsb3dlZCBiZWNhdXNlICUtLjM4NHMuAFRoZSBTVEFSVCBHUk9VUF9SRVBMSUNBVElPTiBjb21tYW5kIGZhaWxlZCBzaW5jZSB0aGUgZ3JvdXAgYWxyZWFkeSBoYXMgOSBtZW1iZXJzLgBDYW5ub3QgYWRkIGZvcmVpZ24ga2V5IG9uIHRoZSBiYXNlIGNvbHVtbiBvZiBzdG9yZWQgY29sdW1uLiAAQ2Fubm90IGNvbXBsZXRlIHRoZSBvcGVyYXRpb24gYmVjYXVzZSB0YWJsZSBpcyByZWZlcmVuY2VkIGJ5IGFub3RoZXIgY29ubmVjdGlvbi4AVGhlIHBhcnRpdGlvbiBlbmdpbmUsIHVzZWQgYnkgdGFibGUgJyUtLjE5MnMuJS0uMTkycycsIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBQbGVhc2UgdXNlIG5hdGl2ZSBwYXJ0aXRpb25pbmcgaW5zdGVhZC4AJS4xOTJzKGdlb21ldHJ5KSBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlcGxhY2VkIGJ5IHN0X3NyaWQoZ2VvbWV0cnksIDApIGluIGEgZnV0dXJlIHZlcnNpb24uIFVzZSAlLjE5MnMoc3RfYXN3a2IoZ2VvbWV0cnkpLCAwKSBpbnN0ZWFkLgAlLjE5MnMoZ2VvbWV0cnksIHNyaWQpIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVwbGFjZWQgYnkgc3Rfc3JpZChnZW9tZXRyeSwgc3JpZCkgaW4gYSBmdXR1cmUgdmVyc2lvbi4gVXNlICUuMTkycyhzdF9hc3drYihnZW9tZXRyeSksIHNyaWQpIGluc3RlYWQuAFRoZSByZXNvdXJjZSBtYW5hZ2VyIGlzIG5vdCBhYmxlIHRvIGNvbW1pdCB0aGUgdHJhbnNhY3Rpb24gYnJhbmNoIGF0IHRoaXMgdGltZS4gUGxlYXNlIHJldHJ5IGxhdGVyLgBGdW5jdGlvbiAlcyBmYWlsZWQgZHVlIHRvOiAlcy4AU3RhdGVtZW50IGlzIHVuc2FmZSBiZWNhdXNlIGl0IGlzIGJlaW5nIHVzZWQgaW5zaWRlIGEgWEEgdHJhbnNhY3Rpb24uIENvbmN1cnJlbnQgWEEgdHJhbnNhY3Rpb25zIG1heSBkZWFkbG9jayBvbiByZXBsaWNhcyB3aGVuIHJlcGxpY2F0ZWQgdXNpbmcgc3RhdGVtZW50cy4AJXMgVURGIGZhaWxlZDsgJXMAQ2FuIG5vdCBwZXJmb3JtIGtleXJpbmcgbWlncmF0aW9uIDogJXMAQWNjZXNzIGRlbmllZDsgeW91IG5lZWQgJS0uMTI4cyBwcml2aWxlZ2VzIGZvciB0aGlzIG9wZXJhdGlvbgBLZXlyaW5nIG1pZ3JhdGlvbiAlcy4ARmFpbGVkIHRvIG9wZW4gdGhlICVzIGZpbHRlciB0YWJsZXMuAEZhaWxlZCB0byBvcGVuICclcy4lcycgJXMgdGFibGUuAE5vIGtleXJpbmcgcGx1Z2luIGluc3RhbGxlZC4AQXVkaXQgbG9nIGVuY3J5cHRpb24gcGFzc3dvcmQgaGFzIG5vdCBiZWVuIHNldDsgaXQgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseS4gVXNlIGF1ZGl0X2xvZ19lbmNyeXB0aW9uX3Bhc3N3b3JkX2dldCB0byBvYnRhaW4gdGhlIHBhc3N3b3JkIG9yIGF1ZGl0X2xvZ19lbmNyeXB0aW9uX3Bhc3N3b3JkX3NldCB0byBzZXQgYSBuZXcgb25lLgBDb3VsZCBub3QgY3JlYXRlIEFFUyBrZXkuIE9wZW5TU0wncyBFVlBfQnl0ZXNUb0tleSBmdW5jdGlvbiBmYWlsZWQuAEF1ZGl0IGxvZyBlbmNyeXB0aW9uIHBhc3N3b3JkIGNhbm5vdCBiZSBmZXRjaGVkIGZyb20gdGhlIGtleXJpbmcuIFBhc3N3b3JkIHVzZWQgc28gZmFyIGlzIHVzZWQgZm9yIGVuY3J5cHRpb24uAEF1ZGl0IExvZyBmaWx0ZXJpbmcgaGFzIG5vdCBiZWVuIGluc3RhbGxlZC4AUmVxdWVzdCBpZ25vcmVkIGZvciAnJXMnQCclcycuIFNVUEVSIHByaXZpbGVnZSBvciBBVURJVF9BRE1JTiByb2xlIG5lZWRlZCB0byBwZXJmb3JtIG9wZXJhdGlvbgBTVVBFUiBwcml2aWxlZ2Ugb3IgQVVESVRfQURNSU4gcm9sZSByZXF1aXJlZCBmb3IgJyVzJ0AnJXMnIHVzZXIuAENvdWxkIG5vdCByZWluaXRpYWxpemUgYXVkaXQgbG9nIGZpbHRlcnMuAEludmFsaWQgYXJndW1lbnQgdHlwZQBJbnZhbGlkIGFyZ3VtZW50IGNvdW50AGF1ZGl0X2xvZyBwbHVnaW4gaGFzIG5vdCBiZWVuIGluc3RhbGxlZCB1c2luZyBJTlNUQUxMIFBMVUdJTiBzeW50YXguAEludmFsaWQgIm1heF9hcnJheV9sZW5ndGgiIGFyZ3VtZW50IHR5cGUuAEludmFsaWQgIm1heF9hcnJheV9sZW5ndGgiIGFyZ3VtZW50IHZhbHVlLgAlcwBGaWx0ZXIgbmFtZSBjYW5ub3QgYmUgZW1wdHkuAFVzZXIgY2Fubm90IGJlIGVtcHR5LgBTcGVjaWZpZWQgZmlsdGVyIGhhcyBub3QgYmVlbiBmb3VuZC4ARmlyc3QgY2hhcmFjdGVyIG9mIHRoZSB1c2VyIG5hbWUgbXVzdCBiZSBhbHBoYW51bWVyaWMuAEludmFsaWQgY2hhcmFjdGVyIGluIHRoZSB1c2VyIG5hbWUuAEludmFsaWQgY2hhcmFjdGVyIGluIHRoZSBob3N0IG5hbWUuAFdpdGggdGhlIE1BWERCIFNRTCBtb2RlIGVuYWJsZWQsIFRJTUVTVEFNUCBpcyBpZGVudGljYWwgd2l0aCBEQVRFVElNRS4gVGhlIE1BWERCIFNRTCBtb2RlIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBQbGVhc2UgZGlzYWJsZSB0aGUgTUFYREIgU1FMIG1vZGUgYW5kIHVzZSBEQVRFVElNRSBpbnN0ZWFkLgBUaGUgdXNlIG9mIHJlcGxpY2F0aW9uIGZpbHRlcnMgd2l0aCBYQSB0cmFuc2FjdGlvbnMgaXMgbm90IHN1cHBvcnRlZCwgYW5kIGNhbiBsZWFkIHRvIGFuIHVuZGVmaW5lZCBzdGF0ZSBpbiB0aGUgcmVwbGljYS4AQ291bGQgbm90IG9wZW4gZmlsZSAnJXMnIGZvciBlcnJvciBsb2dnaW5nJXMlcwBHcm91cGluZyBvbiB0ZW1wb3JhbCBpcyBub24tZGV0ZXJtaW5pc3RpYyBmb3IgdGltZXpvbmVzIGhhdmluZyBEU1QuIFBsZWFzZSBjb25zaWRlciBzd2l0Y2hpbmcgdG8gVVRDIGZvciB0aGlzIHF1ZXJ5LgBDYW4ndCBzdGFydCBzZXJ2ZXIgOiBOYW1lZCBQaXBlICIlcyIgYWxyZWFkeSBpbiB1c2UuAFRoZSBzaXplIG9mIHdyaXRlc2V0IGRhdGEgZm9yIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIGV4Y2VlZHMgYSBsaW1pdCBpbXBvc2VkIGJ5IGFuIGV4dGVybmFsIGNvbXBvbmVudC4gSWYgdXNpbmcgR3JvdXAgUmVwbGljYXRpb24gY2hlY2sgJ2dyb3VwX3JlcGxpY2F0aW9uX3RyYW5zYWN0aW9uX3NpemVfbGltaXQnLgBBY2NlcHRlZCBhIGNvbm5lY3Rpb24gd2l0aCBkZXByZWNhdGVkIHByb3RvY29sICclcycgZm9yIGFjY291bnQgYCVzYEBgJXNgIGZyb20gaG9zdCBgJXNgLiBDbGllbnQgc3VwcGxpZWQgdXNlcm5hbWUgYCVzYABBIGRlcHJlY2F0ZWQgVExTIHZlcnNpb24gJXMgaXMgZW5hYmxlZC4gUGxlYXNlIHVzZSBUTFN2MS4yIG9yIGhpZ2hlci4AT3B0aW9uYWwgbmF0aXZlIHRhYmxlICclLS42NHMnLiclLS42NHMnIGhhcyB0aGUgd3Jvbmcgc3RydWN0dXJlIG9yIGlzIG1pc3NpbmcuAEtERiBtZXRob2QgbmFtZSBpcyBub3QgdmFsaWQuIFBsZWFzZSB1c2UgaGtkZiBvciBwYmtkZjJfaG1hYyBtZXRob2QgbmFtZQBGb3IgS0RGIG1ldGhvZCBwYmtkZjJfaG1hYyBpdGVyYXRpb25zIHZhbHVlIGxlc3MgdGhhbiAxMDAwIG9yIG1vcmUgdGhhbiA2NTUzNSBpcyBub3QgYWxsb3dlZCBkdWUgdG8gc2VjdXJpdHkgcmVhc29ucy4gUGxlYXNlIHByb3ZpZGUgaXRlcmF0aW9ucyA+PSAxMDAwIGFuZCBpdGVyYXRpb25zIDwgNjU1MzUAQUVTIGtleSBzaXplIHNob3VsZCBiZSAlZCBieXRlcyBsZW5ndGggb3Igc2VjdXJlIEtERiBtZXRob2RzIGhrZGYgb3IgcGJrZGYyX2htYWMgc2hvdWxkIGJlIHVzZWQsIHBsZWFzZSBwcm92aWRlIGV4YWN0IEFFUyBrZXkgc2l6ZSBvciB1c2UgS0RGIG1ldGhvZHMgZm9yIGJldHRlciBzZWN1cml0eS4AS0RGIG9wdGlvbiBzaXplIGlzIGludmFsaWQsIHBsZWFzZSBwcm92aWRlIHZhbGlkIHNpemUgPCAlZCBieXRlcyBhbmQgbm90IE5VTEwAQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRSBpcyBub3QgYWxsb3dlZCB3aXRoIFJPV19GT1JNQVQ9Q09NUFJFU1NFRCBvciBLRVlfQkxPQ0tfU0laRS4AVGhlIEFDTCBvcGVyYXRpb24gZmFpbGVkIGR1ZSB0byB0aGUgZm9sbG93aW5nIGVycm9yIGZyb20gU0U6IGVycmNvZGUgJWQgLSAlLjI1NnMAVGhpcyBzdG9yYWdlIGVuZ2luZSBkb2VzIG5vdCBzdXBwb3J0IHRoZSAlcyBpbmRleCBhbGdvcml0aG0sIHN0b3JhZ2UgZW5naW5lIGRlZmF1bHQgd2FzIHVzZWQgaW5zdGVhZC4ARGF0YWJhc2UgJyUtLjE5MnMnIGRvZXNuJ3QgZXhpc3QAVG9vIG1hbnkgZW51bWVyYXRpb24gdmFsdWVzIGZvciBjb2x1bW4gJS4xOTJzLgBUb28gbG9uZyBlbnVtZXJhdGlvbi9zZXQgdmFsdWUgZm9yIGNvbHVtbiAlLjE5MnMuACVzIGRpY3Rpb25hcnkgb2JqZWN0IGlzIGludmFsaWQuICglLjE5MnMpAEZhaWxlZCB0byB1cGRhdGUgJS4xOTJzIGRpY3Rpb25hcnkgb2JqZWN0LgBEaWN0aW9uYXJ5IG9iamVjdCBpZCAoJWx1KSBkb2VzIG5vdCBleGlzdC4ARGljdGlvbmFyeSBvYmplY3QgbmFtZSAnJXMnIGlzIGludmFsaWQuICglLjE5MnMpAFRhYmxlc3BhY2UgJS0uMTkycyBkb2Vzbid0IGV4aXN0LgBDb21tZW50IGZvciByb3V0aW5lICclLS42NHMnIGlzIHRvbyBsb25nIChtYXggPSAlbHUpAEZhaWxlZCB0byBsb2FkIHJvdXRpbmUgJyUtLjY0cycuAEJpbmFyeSBvcGVyYW5kcyBvZiBiaXR3aXNlIG9wZXJhdG9ycyBtdXN0IGJlIG9mIGVxdWFsIGxlbmd0aABBZ2dyZWdhdGUgYml0d2lzZSBmdW5jdGlvbnMgY2Fubm90IGFjY2VwdCBhcmd1bWVudHMgbG9uZ2VyIHRoYW4gNTExIGJ5dGVzOyBjb25zaWRlciB1c2luZyB0aGUgU1VCU1RSSU5HKCkgZnVuY3Rpb24ASGludHMgYXJlbid0IHN1cHBvcnRlZCBpbiAlcwAlLjY0cyB2YWx1ZSBpcyBhIGdlb21ldHJ5IG9mIHVuZXhwZWN0ZWQgdHlwZSAlLjY0cyBpbiAlLjY0cy4AQ2FuJ3QgcGFyc2UgdGhlIHNwYXRpYWwgcmVmZXJlbmNlIHN5c3RlbSBkZWZpbml0aW9uIG9mIFNSSUQgJXUuAFRoZSBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW0gZGVmaW5pdGlvbiBmb3IgU1JJRCAldSBkb2VzIG5vdCBzcGVjaWZ5IHRoZSBtYW5kYXRvcnkgJXMgKEVQU0cgJXUpIHByb2plY3Rpb24gcGFyYW1ldGVyLgBUaGVyZSdzIG5vIHNwYXRpYWwgcmVmZXJlbmNlIHN5c3RlbSB3aXRoIFNSSUQgJXUuAEZ1bmN0aW9uICVzIGlzIG9ubHkgZGVmaW5lZCBmb3IgQ2FydGVzaWFuIHNwYXRpYWwgcmVmZXJlbmNlIHN5c3RlbXMsIGJ1dCBvbmUgb2YgaXRzIGFyZ3VtZW50cyBpcyBpbiBTUklEICV1LCB3aGljaCBpcyBub3QgQ2FydGVzaWFuLgBGdW5jdGlvbiAlcyBpcyBvbmx5IGRlZmluZWQgZm9yIENhcnRlc2lhbiBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW1zLCBidXQgb25lIG9mIGl0cyBhcmd1bWVudHMgaXMgaW4gU1JJRCAldSwgd2hpY2ggaGFzIG5vdCBiZWVuIGRlZmluZWQuAEEgcHJpbWFyeSBrZXkgaW5kZXggY2Fubm90IGJlIGludmlzaWJsZQBVbmtub3duIGF1dGhvcml6YXRpb24gSUQgYCUuNjRzYEBgJS42NHNgAEZhaWxlZCB0byBncmFudCAlLjkwc2AgdG8gJS45MHMARmFpbGVkIHRvIG9wZW4gdGhlIHNlY3VyaXR5IHN5c3RlbSB0YWJsZXMARmFpbGVkIHRvIHNldCBkZWZhdWx0IHJvbGVzAENhbm5vdCBmaW5kIHNjaGVtYSBpbiBzcGVjaWZpZWQgVVJOOiAnJS4xOTJzJy4AQ2Fubm90IGFjcXVpcmUgc2NoZW1lIGxvYWQgc2VydmljZSBpbXBsZW1lbnRhdGlvbiBmb3Igc2NoZW1hICclLjE5MnMnIGluIHNwZWNpZmllZCBVUk46ICclLjE5MnMnLgBDYW5ub3QgbG9hZCBjb21wb25lbnQgZnJvbSBzcGVjaWZpZWQgVVJOOiAnJS4xOTJzJy4AYCUuNjRzYEBgJS42NHNgIGlzIG5vdCBncmFudGVkIHRvIGAlLjY0c2BAYCUuNjRzYABDb3VsZCBub3QgcmV2b2tlIHJvbGUgZnJvbSBgJS42NHNgQGAlLjY0c2AAUmVuYW1pbmcgb2YgYSByb2xlIGlkZW50aWZpZXIgaXMgZm9yYmlkZGVuAENhbm5vdCBhY3F1aXJlIHNwZWNpZmllZCBzZXJ2aWNlIGltcGxlbWVudGF0aW9uOiAnJS4xOTJzJy4AQ2Fubm90IHNhdGlzZnkgZGVwZW5kZW5jeSBmb3Igc2VydmljZSAnJS4xOTJzJyByZXF1aXJlZCBieSBjb21wb25lbnQgJyUuMTkycycuAENhbm5vdCByZWdpc3RlciBzZXJ2aWNlIGltcGxlbWVudGF0aW9uICclLjE5MnMnIHByb3ZpZGVkIGJ5IGNvbXBvbmVudCAnJS4xOTJzJy4ASW5pdGlhbGl6YXRpb24gbWV0aG9kIHByb3ZpZGVkIGJ5IGNvbXBvbmVudCAnJS4xOTJzJyBmYWlsZWQuAENvbXBvbmVudCBzcGVjaWZpZWQgYnkgVVJOICclLjE5MnMnIHRvIHVubG9hZCBoYXMgbm90IGJlZW4gbG9hZGVkIGJlZm9yZS4ARGUtaW5pdGlhbGl6YXRpb24gbWV0aG9kIHByb3ZpZGVkIGJ5IGNvbXBvbmVudCAnJS4xOTJzJyBmYWlsZWQuAFJlbGVhc2Ugb2YgcHJldmlvdXNseSBhY3F1aXJlZCBzZXJ2aWNlIGltcGxlbWVudGF0aW9uIGZhaWxlZC4AVW5yZWdpc3RyYXRpb24gb2Ygc2VydmljZSBpbXBsZW1lbnRhdGlvbiAnJS4xOTJzJyBwcm92aWRlZCBieSBjb21wb25lbnQgJyUuMTkycycgZmFpbGVkIGR1cmluZyB1bmxvYWRpbmcgb2YgdGhlIGNvbXBvbmVudC4AQ2Fubm90IHVubG9hZCBjb21wb25lbnQgZnJvbSBzcGVjaWZpZWQgVVJOOiAnJS4xOTJzJy4AVGhlIFBlcnNpc3RlbnQgRHluYW1pYyBMb2FkZXIgd2FzIHVzZWQgdG8gdW5sb2FkIGEgY29tcG9uZW50ICclLjE5MnMnLCBidXQgaXQgd2FzIG5vdCB1c2VkIHRvIGxvYWQgdGhhdCBjb21wb25lbnQgYmVmb3JlLgBUaGUgbXlzcWwuY29tcG9uZW50IHRhYmxlIGlzIG1pc3Npbmcgb3IgaGFzIGFuIGluY29ycmVjdCBkZWZpbml0aW9uLgBGYWlsZWQgdG8gbWFuaXB1bGF0ZSBjb21wb25lbnQgJyUuMTkycycgcGVyc2lzdGVuY2UgZGF0YS4gRXJyb3IgY29kZSAlZCBmcm9tIHN0b3JhZ2UgZW5naW5lLgBUaGUgY29tcG9uZW50IHdpdGggc3BlY2lmaWVkIFVSTjogJyUuMTkycycgd2FzIHNwZWNpZmllZCBpbiBncm91cCBtb3JlIHRoYW4gb25jZS4AQEBHTE9CQUwuR1RJRF9QVVJHRUQgY2Fubm90IGJlIGNoYW5nZWQ6ICVzAENhbiBub3QgbG9jayB1c2VyIG1hbmFnZW1lbnQgY2FjaGVzIGZvciBwcm9jZXNzaW5nLgBUaGVyZSdzIG5vIHNwYXRpYWwgcmVmZXJlbmNlIHN5c3RlbSB3aXRoIFNSSUQgJXUuAFZhcmlhYmxlcyBjYW5ub3QgYmUgcGVyc2lzdGVkLiBQbGVhc2UgcmV0cnkuAEluZm9ybWF0aW9uIHNjaGVtYSBxdWVyaWVzIGRvIG5vdCBzdXBwb3J0IHRoZSAnJXMnIGNsYXVzZS4AVW5hYmxlIHRvIHN0b3JlIGR5bmFtaWMgJXMgc3RhdGlzdGljcyBpbnRvIGRhdGEgZGljdGlvbmFyeS4AQWNjZXNzIHRvIHN5c3RlbSBzY2hlbWEgJyUuNjRzJyBpcyByZWplY3RlZC4AQWNjZXNzIHRvIHN5c3RlbSB0YWJsZXNwYWNlICclLjY0cycgaXMgcmVqZWN0ZWQuAEFjY2VzcyB0byAlLjY0cyAnJS42NHMuJS42NHMnIGlzIHJlamVjdGVkLgBkYXRhIGRpY3Rpb25hcnkgdGFibGUAc3lzdGVtIHRhYmxlAHRhYmxlAEludmFsaWQgb3B0aW9uIGtleSAnJS4xOTJzJyBpbiBmdW5jdGlvbiAlLjE5MnMuAEludmFsaWQgdmFsdWUgJyUuMTkycycgZm9yIG9wdGlvbiAnJS4xOTJzJyBpbiBmdW5jdGlvbiAnJS4xOTJzJy4AVGhlIHN0cmluZyAnJS4xOTJzJyBpcyBub3QgYSB2YWxpZCBrZXkgJWMgdmFsdWUgcGFpciBpbiBmdW5jdGlvbiAlLjE5MnMuAFRoZSBvcHRpb25zIGFyZ3VtZW50IGluIGZ1bmN0aW9uICUuMTkycyBzdGFydHMgd2l0aCB0aGUgaW52YWxpZCBjaGFyYWN0ZXIgJyVjJy4AVGhlIG9wdGlvbnMgYXJndW1lbnQgaW4gZnVuY3Rpb24gJS4xOTJzIGVuZHMgd2l0aCB0aGUgaW52YWxpZCBjaGFyYWN0ZXIgJyVjJy4AVGhlIG9wdGlvbnMgYXJndW1lbnQgaW4gZnVuY3Rpb24gJS4xOTJzIGNvbnRhaW5zIHRoZSBpbnZhbGlkIGNoYXJhY3RlciBzZXF1ZW5jZSAnJS4xOTJzJy4ARHVwbGljYXRlIG9wdGlvbiBrZXkgJyUuMTkycycgaW4gZnVudGlvbiAnJS4xOTJzJy4AVGhlcmUncyBubyBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW0gd2l0aCBTUklEICV1LiBUaGUgYXhpcyBvcmRlciBpcyB1bmtub3duLgBBY2Nlc3MgdG8gbmF0aXZlIGZ1bmN0aW9uICclLjY0cycgaXMgcmVqZWN0ZWQuAFRoZSByZXF1ZXN0ZWQgdmFsdWUgJyVsbHUnIGZvciB0aGUgbmV4dCBiaW5hcnkgbG9nIGluZGV4IGlzIG91dCBvZiByYW5nZS4gUGxlYXNlIHVzZSBhIHZhbHVlIGJldHdlZW4gJzEnIGFuZCAnJWx1Jy4AVW5yZXNvbHZlZCB0YWJsZSBuYW1lICVzIGluIGxvY2tpbmcgY2xhdXNlLgBUYWJsZSAlcyBhcHBlYXJzIGluIG11bHRpcGxlIGxvY2tpbmcgY2xhdXNlcy4AU3RhdGVtZW50IGlzIHVuc2FmZSBiZWNhdXNlIGl0IHVzZXMgU0tJUCBMT0NLRUQuIFRoZSBzZXQgb2YgaW5zZXJ0ZWQgdmFsdWVzIGlzIG5vbi1kZXRlcm1pbmlzdGljLgBTdGF0ZW1lbnQgaXMgdW5zYWZlIGJlY2F1c2UgaXQgdXNlcyBOT1dBSVQuIFdoZXRoZXIgdGhlIGNvbW1hbmQgd2lsbCBzdWNjZWVkIG9yIGZhaWwgaXMgbm90IGRldGVybWluaXN0aWMuAFN0YXRlbWVudCBhYm9ydGVkIGJlY2F1c2UgbG9jayhzKSBjb3VsZCBub3QgYmUgYWNxdWlyZWQgaW1tZWRpYXRlbHkgYW5kIE5PV0FJVCBpcyBzZXQuAFJlY3Vyc2l2ZSBDb21tb24gVGFibGUgRXhwcmVzc2lvbiAnJXMnIHNob3VsZCBjb250YWluIGEgVU5JT04AUmVjdXJzaXZlIENvbW1vbiBUYWJsZSBFeHByZXNzaW9uICclcycgc2hvdWxkIGhhdmUgb25lIG9yIG1vcmUgbm9uLXJlY3Vyc2l2ZSBxdWVyeSBibG9ja3MgZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUgcmVjdXJzaXZlIG9uZXMAUmVjdXJzaXZlIENvbW1vbiBUYWJsZSBFeHByZXNzaW9uICclcycgY2FuIGNvbnRhaW4gbmVpdGhlciBhZ2dyZWdhdGlvbiBub3Igd2luZG93IGZ1bmN0aW9ucyBpbiByZWN1cnNpdmUgcXVlcnkgYmxvY2sASW4gcmVjdXJzaXZlIHF1ZXJ5IGJsb2NrIG9mIFJlY3Vyc2l2ZSBDb21tb24gVGFibGUgRXhwcmVzc2lvbiAnJXMnLCB0aGUgcmVjdXJzaXZlIHRhYmxlIG11c3QgbmVpdGhlciBiZSBpbiB0aGUgcmlnaHQgYXJndW1lbnQgb2YgYSBMRUZUIEpPSU4sIG5vciBiZSBmb3JjZWQgdG8gYmUgbm9uLWZpcnN0IHdpdGggam9pbiBvcmRlciBoaW50cwBJbiByZWN1cnNpdmUgcXVlcnkgYmxvY2sgb2YgUmVjdXJzaXZlIENvbW1vbiBUYWJsZSBFeHByZXNzaW9uICclcycsIHRoZSByZWN1cnNpdmUgdGFibGUgbXVzdCBiZSByZWZlcmVuY2VkIG9ubHkgb25jZSwgYW5kIG5vdCBpbiBhbnkgc3VicXVlcnkAJyVzJyByZXF1aXJlcyBAQGludGVybmFsX3RtcF9kaXNrX3N0b3JhZ2VfZW5naW5lPUlubm9EQgBXaW5kb3cgbmFtZSAnJXMnIGlzIG5vdCBkZWZpbmVkLgBUaGVyZSBpcyBhIGNpcmN1bGFyaXR5IGluIHRoZSB3aW5kb3cgZGVwZW5kZW5jeSBncmFwaC4AQSB3aW5kb3cgd2hpY2ggZGVwZW5kcyBvbiBhbm90aGVyIGNhbm5vdCBkZWZpbmUgcGFydGl0aW9uaW5nLgBXaW5kb3cgJyVzJyBoYXMgYSBmcmFtZSBkZWZpbml0aW9uLCBzbyBjYW5ub3QgYmUgcmVmZXJlbmNlZCBieSBhbm90aGVyIHdpbmRvdy4AV2luZG93ICclcycgY2Fubm90IGluaGVyaXQgJyVzJyBzaW5jZSBib3RoIGNvbnRhaW4gYW4gT1JERVIgQlkgY2xhdXNlLgBXaW5kb3cgJyVzJzogZnJhbWUgc3RhcnQgY2Fubm90IGJlIFVOQk9VTkRFRCBGT0xMT1dJTkcuAFdpbmRvdyAnJXMnOiBmcmFtZSBlbmQgY2Fubm90IGJlIFVOQk9VTkRFRCBQUkVDRURJTkcuAFdpbmRvdyAnJXMnOiBmcmFtZSBzdGFydCBvciBlbmQgaXMgbmVnYXRpdmUsIE5VTEwgb3Igb2Ygbm9uLWludGVncmFsIHR5cGUAV2luZG93ICclcycgd2l0aCBSQU5HRSBOIFBSRUNFRElORy9GT0xMT1dJTkcgZnJhbWUgcmVxdWlyZXMgZXhhY3RseSBvbmUgT1JERVIgQlkgZXhwcmVzc2lvbiwgb2YgbnVtZXJpYyBvciB0ZW1wb3JhbCB0eXBlAFdpbmRvdyAnJXMnIHdpdGggUkFOR0UgZnJhbWUgaGFzIE9SREVSIEJZIGV4cHJlc3Npb24gb2YgZGF0ZXRpbWUgdHlwZS4gT25seSBJTlRFUlZBTCBib3VuZCB2YWx1ZSBhbGxvd2VkLgBXaW5kb3cgJyVzJyB3aXRoIFJBTkdFIGZyYW1lIGhhcyBPUkRFUiBCWSBleHByZXNzaW9uIG9mIG51bWVyaWMgdHlwZSwgSU5URVJWQUwgYm91bmQgdmFsdWUgbm90IGFsbG93ZWQuAFdpbmRvdyAnJXMnIGhhcyBhIG5vbi1jb25zdGFudCBmcmFtZSBib3VuZC4AV2luZG93ICclcycgaXMgZGVmaW5lZCB0d2ljZS4AV2luZG93ICclcyc6IE9SREVSIEJZIG9yIFBBUlRJVElPTiBCWSB1c2VzIGxlZ2FjeSBwb3NpdGlvbiBpbmRpY2F0aW9uIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQsIHVzZSBleHByZXNzaW9uLgBZb3UgY2Fubm90IHVzZSB0aGUgd2luZG93IGZ1bmN0aW9uICclcycgaW4gdGhpcyBjb250ZXh0LicAWW91IGNhbm5vdCB1c2UgdGhlIGFsaWFzICclcycgb2YgYW4gZXhwcmVzc2lvbiBjb250YWluaW5nIGEgd2luZG93IGZ1bmN0aW9uIGluIHRoaXMgY29udGV4dC4nAFlvdSBjYW5ub3QgbmVzdCBhIHdpbmRvdyBmdW5jdGlvbiBpbiB0aGUgc3BlY2lmaWNhdGlvbiBvZiB3aW5kb3cgJyVzJy4AV2luZG93ICclcyc6IElOVEVSVkFMIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBSQU5HRSBmcmFtZXMuAEFTQyBvciBERVNDIHdpdGggR1JPVVAgQlkgaXNuJ3QgYWxsb3dlZCB3aXRoIHdpbmRvdyBmdW5jdGlvbnM7IHB1dCBBU0Mgb3IgREVTQyBpbiBPUkRFUiBCWQBUbyBnZXQgaW5mb3JtYXRpb24gYWJvdXQgd2luZG93IGZ1bmN0aW9ucyB1c2UgRVhQTEFJTiBGT1JNQVQ9SlNPTgBXaW5kb3cgZnVuY3Rpb24gJyVzJyBpZ25vcmVzIHRoZSBmcmFtZSBjbGF1c2Ugb2Ygd2luZG93ICclcycgYW5kIGFnZ3JlZ2F0ZXMgb3ZlciB0aGUgd2hvbGUgcGFydGl0aW9uAFdpbmRvd2luZyByZXF1aXJlcyBAQGludGVybmFsX3RtcF9tZW1fc3RvcmFnZV9lbmdpbmU9VGVtcFRhYmxlLgBUb28gbWFueSBhcmd1bWVudHMgZm9yIGZ1bmN0aW9uICVzOiAlbHU7IG1heGltdW0gYWxsb3dlZCBpcyAlcy4AQXJndW1lbnQgIyV1IG9mIEdST1VQSU5HIGZ1bmN0aW9uIGlzIG5vdCBpbiBHUk9VUCBCWQBDb21tZW50IGZvciB0YWJsZXNwYWNlICclLS42NHMnIGlzIHRvbyBsb25nIChtYXggPSAlbHUpAFN0b3JhZ2UgZW5naW5lIGNhbid0IGRyb3AgdGFibGUgJyUtLjEyOXMnAFN0b3JhZ2UgZW5naW5lIGNhbid0IGRyb3AgdGFibGUgJyUtLjEyOXMnIGJlY2F1c2UgaXQgaXMgbWlzc2luZy4gVXNlIERST1AgVEFCTEUgSUYgRVhJU1RTIHRvIHJlbW92ZSBpdCBmcm9tIGRhdGEtZGljdGlvbmFyeS4ARHVwbGljYXRlIGZpbGUgbmFtZSBmb3IgdGFibGVzcGFjZSAnJS0uNjRzJwBQcm9ibGVtIHdoaWxlIGRyb3BwaW5nIGRhdGFiYXNlLiBDYW4ndCByZW1vdmUgZGF0YWJhc2UgZGlyZWN0b3J5ICglcykuIFBsZWFzZSByZW1vdmUgaXQgbWFudWFsbHkuAE5vIFNESSBmaWxlcyBtYXRjaGVkIHRoZSBwYXR0ZXJuICclcycAU2NoZW1hICclLjI1NnMnLCByZWZlcmVuY2VkIGluIFNESSwgZG9lcyBub3QgZXhpc3QuAFRhYmxlICclLjI1NnMuJS4yNTZzJywgcmVmZXJlbmNlZCBpbiBTREksIGFscmVhZHkgZXhpc3RzLgBJbXBvcnRlZCBteXNxbGRfdmVyc2lvbiAoJWxsdSkgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBjdXJyZW50ICglbGx1KQBJbXBvcnRlZCBkZCB2ZXJzaW9uICgldSkgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBjdXJyZW50ICgldSkASW1wb3J0ZWQgc2RpIHZlcnNpb24gKCVsbHUpIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggY3VycmVudCAoJWxsdSkASW52YWxpZCBudW1iZXIgb2YgYXJndW1lbnRzIGZvciBoaW50ICVzAFZhcmlhYmxlICVzIGRvZXMgbm90IGV4aXN0IGluIHBlcnNpc3RlZCBjb25maWcgZmlsZQBMb25naXR1ZGUgJWYgaXMgb3V0IG9mIHJhbmdlIGluIGZ1bmN0aW9uICUuMTkycy4gSXQgbXVzdCBiZSB3aXRoaW4gKCVmLCAlZl0uAExhdGl0dWRlICVmIGlzIG91dCBvZiByYW5nZSBpbiBmdW5jdGlvbiAlLjE5MnMuIEl0IG11c3QgYmUgd2l0aGluIFslZiwgJWZdLgAlLjE5MnMoJS44MHMpIGhhcyBub3QgYmVlbiBpbXBsZW1lbnRlZCBmb3IgZ2VvZ3JhcGhpYyBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW1zLgBJbGxlZ2FsIHByaXZpbGVnZSBsZXZlbCBzcGVjaWZpZWQgZm9yICVzAEFjY2VzcyB0byBzeXN0ZW0gdmlldyBJTkZPUk1BVElPTl9TQ0hFTUEuJyUuNjRzJyBpcyByZWplY3RlZC4ARGVyIExvZ2ZpbHRlciAiJXMiIHd1bmRlcnRlIHNpY2ggdWViZXIgIiVzIiAuLi4AUGFydGl0aW9uaW5nIGV4cHJlc3Npb24gaXMgdG9vIGxvbmcuAERST1AgRlVOQ1RJT04gY2FuJ3QgZHJvcCBhIGR5bmFtaWNhbGx5IHJlZ2lzdGVyZWQgdXNlciBkZWZpbmVkIGZ1bmN0aW9uAFVuYWJsZSB0byBzdG9yZSBjb2x1bW4gc3RhdGlzdGljcyBmb3IgY29sdW1uICclLjY0cycgaW4gdGFibGUgJyUuNjRzJy4nJS42NHMnAFVuYWJsZSB0byB1cGRhdGUgY29sdW1uIHN0YXRpc3RpY3MgZm9yIGNvbHVtbiAnJS42NHMnIGluIHRhYmxlICclLjY0cycuJyUuNjRzJwBVbmFibGUgdG8gcmVtb3ZlIGNvbHVtbiBzdGF0aXN0aWNzIGZvciBjb2x1bW4gJyUuNjRzJyBpbiB0YWJsZSAnJS42NHMnLiclLjY0cycAVW5hYmxlIHRvIGJ1aWxkIGhpc3RvZ3JhbSBzdGF0aXN0aWNzIGZvciBjb2x1bW4gJyUuNjRzJyBpbiB0YWJsZSAnJS42NHMnLiclLjY0cycAVGhlIHJvbGUgJXMgaXMgYSBtYW5kYXRvcnkgcm9sZSBhbmQgY2FuJ3QgYmUgcmV2b2tlZCBvciBkcm9wcGVkLiBUaGUgcmVzdHJpY3Rpb24gY2FuIGJlIGxpZnRlZCBieSBleGNsdWRpbmcgdGhlIHJvbGUgaWRlbnRpZmllciBmcm9tIHRoZSBnbG9iYWwgdmFyaWFibGUgbWFuZGF0b3J5X3JvbGVzLgBUYWJsZXNwYWNlICclLjE5MnMnIGRvZXMgbm90IGhhdmUgYSBmaWxlIG5hbWVkICclLjE5MnMnAEFjY2VzcyBkZW5pZWQ7IHlvdSBuZWVkICUtLjEyOHMgcHJpdmlsZWdlcyBmb3IgdGhpcyBvcGVyYXRpb24AWW91IG5lZWQgdGhlIFNVUEVSIHByaXZpbGVnZSBmb3IgY29tbWFuZCAnJS0uMTkycycAUGF0aCBpcyB3aXRoaW4gdGhlIGN1cnJlbnQgZGF0YSBkaXJlY3RvcnkgJyUtLjE5MnMnAENvbmN1cnJlbnQgRERMIGlzIHBlcmZvcm1lZCBkdXJpbmcgY2xvbmUgb3BlcmF0aW9uLiBQbGVhc2UgdHJ5IGFnYWluLgBUb28gbWFueSBjb25jdXJyZW50IGNsb25lIG9wZXJhdGlvbnMuIE1heGltdW0gYWxsb3dlZCAtICVkLgBUaGUgdGFibGUgaW4gdHJhbnNhY3Rpb24gJXMgZG9lcyBub3QgY29tcGx5IHdpdGggdGhlIHJlcXVpcmVtZW50cyBieSBhbiBleHRlcm5hbCBwbHVnaW4uAFJlY3Vyc2l2ZSBxdWVyeSBhYm9ydGVkIGFmdGVyICV1IGl0ZXJhdGlvbnMuIFRyeSBpbmNyZWFzaW5nIEBAY3RlX21heF9yZWN1cnNpb25fZGVwdGggdG8gYSBsYXJnZXIgdmFsdWUuAFZhcmlhYmxlICVzIGNhbm5vdCBiZSBzZXQgdXNpbmcgU0VUX1ZBUiBoaW50LgBDYW5ub3QgdXNlIHRoZXNlIGNyZWRlbnRpYWxzIGZvciAnJS4qc0AlLipzJyBiZWNhdXNlIHRoZXkgY29udHJhZGljdCB0aGUgcGFzc3dvcmQgaGlzdG9yeSBwb2xpY3kATm9uLXplcm8gcGFzc3dvcmQgaGlzdG9yeSBjbGF1c2VzIGlnbm9yZWQgZm9yIHVzZXIgJyVzJ0AnJXMnIGFzIGl0cyBhdXRoZW50aWNhdGlvbiBwbHVnaW4gJXMgZG9lcyBub3Qgc3VwcG9ydCBwYXNzd29yZCBoaXN0b3J5AFRoZSBjbGllbnQgZG9lc24ndCBzdXBwb3J0ICVzAFRhYmxlc3BhY2UgJyVzJyB3YXMgc2tpcHBlZCBzaW5jZSBpdHMgZGVmaW5pdGlvbiBpcyBiZWluZyBtb2RpZmllZCBieSBjb25jdXJyZW50IERETCBzdGF0ZW1lbnQARW5naW5lICclLjE5MnMnIGRvZXMgbm90IG1hdGNoIHN0b3JlZCBlbmdpbmUgJyUuMTkycycgZm9yIHRhYmxlc3BhY2UgJyUuMTkycycAVGhlIFNSSUQgb2YgdGhlIGdlb21ldHJ5IGRvZXMgbm90IG1hdGNoIHRoZSBTUklEIG9mIHRoZSBjb2x1bW4gJyUuNjRzJy4gVGhlIFNSSUQgb2YgdGhlIGdlb21ldHJ5IGlzICVsdSwgYnV0IHRoZSBTUklEIG9mIHRoZSBjb2x1bW4gaXMgJWx1LiBDb25zaWRlciBjaGFuZ2luZyB0aGUgU1JJRCBvZiB0aGUgZ2VvbWV0cnkgb3IgdGhlIFNSSUQgcHJvcGVydHkgb2YgdGhlIGNvbHVtbi4AVGhlIFNSSUQgc3BlY2lmaWNhdGlvbiBvbiB0aGUgY29sdW1uICclLjY0cycgY2Fubm90IGJlIGNoYW5nZWQgYmVjYXVzZSB0aGVyZSBpcyBhIHNwYXRpYWwgaW5kZXggb24gdGhlIGNvbHVtbi4gUGxlYXNlIHJlbW92ZSB0aGUgc3BhdGlhbCBpbmRleCBiZWZvcmUgYWx0ZXJpbmcgdGhlIFNSSUQgc3BlY2lmaWNhdGlvbi4AV2hlbiAlLjE5MnMsIHRoZSBvcHRpb24gYmlubG9nX3Jvd192YWx1ZV9vcHRpb25zPSUuMTkycyB3aWxsIGJlIGlnbm9yZWQgYW5kIHVwZGF0ZXMgd2lsbCBiZSB3cml0dGVuIGluIGZ1bGwgZm9ybWF0IHRvIGJpbmFyeSBsb2cuAFdoZW4gJS4xOTJzLCB0aGUgb3B0aW9uIGxvZ19iaW5fdXNlX3YxX3Jvd19ldmVudHM9MSB3aWxsIGJlIGlnbm9yZWQgYW5kIHJvdyBldmVudHMgd2lsbCBiZSB3cml0dGVuIGluIG5ldyBmb3JtYXQgdG8gYmluYXJ5IGxvZy4AV2hlbiAlLjE5MnMsIHRoZSBvcHRpb24gYmlubG9nX3Jvd192YWx1ZV9vcHRpb25zPSUuMTkycyB3aWxsIGJlIHVzZWQgb25seSBmb3IgdGhlIGFmdGVyLWltYWdlLiBGdWxsIHZhbHVlcyB3aWxsIGJlIHdyaXR0ZW4gaW4gdGhlIGJlZm9yZS1pbWFnZSwgc28gdGhlIHNhdmluZyBpbiBkaXNrIHNwYWNlIGR1ZSB0byBiaW5sb2dfcm93X3ZhbHVlX29wdGlvbnMgaXMgbGltaXRlZCB0byBsZXNzIHRoYW4gNTAlJS4AQ291bGQgbm90IGFwcGx5IEpTT04gZGlmZiBpbiB0YWJsZSAlLipzLCBjb2x1bW4gJXMuAENvcnJ1cHRlZCBKU09OIGRpZmYgZm9yIHRhYmxlICUuKnMsIGNvbHVtbiAlcy4AUmVzb3VyY2UgR3JvdXAgJyUtLjE5MnMnIGV4aXN0cwBSZXNvdXJjZSBHcm91cCAnJS0uMTkycycgZG9lcyBub3QgZXhpc3QuAEludmFsaWQgY3B1IGlkICV1AEludmFsaWQgVkNQVSByYW5nZSAldS0ldQBJbnZhbGlkIHRocmVhZCBwcmlvcml0eSB2YWx1ZSAlZCBmb3IgJXMgcmVzb3VyY2UgZ3JvdXAgJXMuIEFsbG93ZWQgcmFuZ2UgaXMgWyVkLCAlZF0uACVzIG9wZXJhdGlvbiBpcyBkaXNhbGxvd2VkIG9uICVzAFJlc291cmNlIGdyb3VwICVzIGlzIGJ1c3kuAFJlc291cmNlIGdyb3VwICVzIGlzIGRpc2FibGVkLgBGZWF0dXJlICVzIGlzIHVuc3VwcG9ydGVkICglcykuAEF0dHJpYnV0ZSAlcyBpcyBpZ25vcmVkICglcykuAEludmFsaWQgdGhyZWFkIGlkICglbGx1KS4AVW5hYmxlIHRvIGJpbmQgcmVzb3VyY2UgZ3JvdXAgJXMgd2l0aCB0aHJlYWQgaWQgKCVsbHUpLiglcykuAE9wdGlvbiBGT1JDRSBpbnZhbGlkIGFzIERJU0FCTEUgb3B0aW9uIGlzIG5vdCBzcGVjaWZpZWQuAFRoZSAlcyBjb21tYW5kIGVuY291bnRlcmVkIGEgZmFpbHVyZS4gJXMARmFpbGVkIHRvICVzIFNESSAnJS4xOTJzLiUuMTkycycgaW4gdGFibGVzcGFjZSAnJS4xOTJzJy4ATWlzc2luZyB2YWx1ZSBmb3IgSlNPTl9UQUJMRSBjb2x1bW4gJyUuMTkycycAQ2FuJ3Qgc3RvcmUgYW4gYXJyYXkgb3IgYW4gb2JqZWN0IGluIHRoZSBzY2FsYXIgSlNPTl9UQUJMRSBjb2x1bW4gJyUuMTkycycARXZlcnkgdGFibGUgZnVuY3Rpb24gbXVzdCBoYXZlIGFuIGFsaWFzAElOTkVSIG9yIExFRlQgSk9JTiBtdXN0IGJlIHVzZWQgZm9yIExBVEVSQUwgcmVmZXJlbmNlcyBtYWRlIGJ5ICclLjE5MnMnAFZhbHVlIGlzIG91dCBvZiByYW5nZSBmb3IgSlNPTl9UQUJMRSdzIGNvbHVtbiAnJS4xOTJzJwBNb3JlIHRoYW4gc3VwcG9ydGVkICV1IE5FU1RFRCBQQVRIcyB3ZXJlIGZvdW5kIGluIEpTT05fVEFCTEUgJyUuMTkycycAVGhlIHNlbGVjdGVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCAlLipzIGRvZXMgbm90IHN1cHBvcnQgcGFzc3dvcmQgZXhwaXJhdGlvbgBJbnZhbGlkIEdlb0pTT04gZGF0YSBwcm92aWRlZCB0byBmdW5jdGlvbiAlczogTWVtYmVyICdjcnMnIG11c3QgYmUgc3BlY2lmaWVkIGluIHRoZSB0b3AgbGV2ZWwgb2JqZWN0LgBDb2x1bW4gJyUtLjE5MnMnIGNhbm5vdCBiZSBudWxsAFRoZSBzcGF0aWFsIGluZGV4IG9uIGNvbHVtbiAnJS42NHMnIHdpbGwgbm90IGJlIHVzZWQgYnkgdGhlIHF1ZXJ5IG9wdGltaXplciBzaW5jZSB0aGUgY29sdW1uIGRvZXMgbm90IGhhdmUgYW4gU1JJRCBhdHRyaWJ1dGUuIENvbnNpZGVyIGFkZGluZyBhbiBTUklEIGF0dHJpYnV0ZSB0byB0aGUgY29sdW1uLgBDcmVhdGUgdGFibGUvdGFibGVzcGFjZSAnJS0uMTkycycgZmFpbGVkLCBhcyBkaXNrIGlzIGZ1bGwAQ291bGQgbm90IHBhcnNlIGFyZ3VtZW50IHRvIGRpZ2VzdCBmdW5jdGlvbjogIiVzIi4AQ291bGQgbm90IHBhcnNlIGFyZ3VtZW50IHRvIGRpZ2VzdCBmdW5jdGlvbi4AU2NoZW1hIGRpcmVjdG9yeSAnJS4xOTJzJyBhbHJlYWR5IGV4aXN0cy4gVGhpcyBtdXN0IGJlIHJlc29sdmVkIG1hbnVhbGx5IChlLmcuIGJ5IG1vdmluZyB0aGUgc2NoZW1hIGRpcmVjdG9yeSB0byBhbm90aGVyIGxvY2F0aW9uKS4AU2NoZW1hIGRpcmVjdG9yeSAnJS4xOTJzJyBkb2VzIG5vdCBleGlzdABGYWlsZWQgdG8gY3JlYXRlIHNjaGVtYSBkaXJlY3RvcnkgJyUuMTkycycgKGVycm5vOiAlZCAtICVzKQBTY2hlbWEgJyUuMTkycycgZG9lcyBub3QgZXhpc3QsIGJ1dCBzY2hlbWEgZGlyZWN0b3J5ICclLjE5MnMnIHdhcyBmb3VuZC4gVGhpcyBtdXN0IGJlIHJlc29sdmVkIG1hbnVhbGx5IChlLmcuIGJ5IG1vdmluZyB0aGUgc2NoZW1hIGRpcmVjdG9yeSB0byBhbm90aGVyIGxvY2F0aW9uKS4ARnVuY3Rpb24gJS4xOTJzIGlzIG9ubHkgZGVmaW5lZCBmb3IgU1JJRCAwIGFuZCBTUklEIDQzMjYuAFRoZSBvcHRpb24gZXhwaXJlX2xvZ3NfZGF5cyBhbmQgYmlubG9nX2V4cGlyZV9sb2dzX3NlY29uZHMgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIuIFBsZWFzZSB1c2UgYmlubG9nX2V4cGlyZV9sb2dzX3NlY29uZHMgdG8gc2V0IHRoZSBleHBpcmUgdGltZSAoZXhwaXJlX2xvZ3NfZGF5cyBpcyBkZXByZWNhdGVkKQBUaGUgcmVzdWx0IHN0cmluZyBpcyBsYXJnZXIgdGhhbiB0aGUgcmVzdWx0IGJ1ZmZlci4ASWxsZWdhbCBhcmd1bWVudCB0byBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4ASW5kZXggb3V0IG9mIGJvdW5kcyBpbiByZWd1bGFyIGV4cHJlc3Npb24gc2VhcmNoLgBJbnRlcm5hbCBlcnJvciBpbiB0aGUgcmVndWxhciBleHByZXNzaW9uIGxpYnJhcnkuAFN5bnRheCBlcnJvciBpbiByZWd1bGFyIGV4cHJlc3Npb24gb24gbGluZSAldSwgY2hhcmFjdGVyICV1LgBVbnJlY29nbml6ZWQgZXNjYXBlIHNlcXVlbmNlIGluIHJlZ3VsYXIgZXhwcmVzc2lvbi4AVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBjb250YWlucyBhIGZlYXR1cmUgdGhhdCBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBsaWJyYXJ5IHZlcnNpb24uAE1pc21hdGNoZWQgcGFyZW50aGVzaXMgaW4gcmVndWxhciBleHByZXNzaW9uLgBJbmNvcnJlY3QgZGVzY3JpcHRpb24gb2YgYSB7bWluLG1heH0gaW50ZXJ2YWwuAFRoZSBtYXhpbXVtIGlzIGxlc3MgdGhhbiB0aGUgbWludW11bSBpbiBhIHttaW4sbWF4fSBpbnRlcnZhbC4ASW52YWxpZCBiYWNrLXJlZmVyZW5jZSBpbiByZWd1bGFyIGV4cHJlc3Npb24uAFRoZSBsb29rLWJlaGluZCBhc3NlcnRpb24gZXhjZWVkcyB0aGUgbGltaXQgaW4gcmVndWxhciBleHByZXNzaW9uLgBUaGUgcmVndWxhciBleHByZXNzaW9uIGNvbnRhaW5zIGFuIHVuY2xvc2VkIGJyYWNrZXQgZXhwcmVzc2lvbi4AVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBjb250YWlucyBhbiBbeC15XSBjaGFyYWN0ZXIgcmFuZ2Ugd2hlcmUgeCBjb21lcyBhZnRlciB5LgBPdmVyZmxvdyBpbiB0aGUgcmVndWxhciBleHByZXNzaW9uIGJhY2t0cmFjayBzdGFjay4AVGltZW91dCBleGNlZWRlZCBpbiByZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2guAFRoZSByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybiBleGNlZWRzIGxpbWl0cyBvbiBzaXplIG9yIGNvbXBsZXhpdHkuAFZhbHVlIGZvciAlcyBnb3QgY29uZnVzaW5nIGF0IG9yIGFyb3VuZCAiJXMiLiBTeW50YXggbWF5IGJlIHdyb25nLCBjb21wb25lbnQgbWF5IG5vdCBiZSBJTlNUQUxMZWQsIG9yIGEgY29tcG9uZW50IHRoYXQgZG9lcyBub3Qgc3VwcG9ydCBpbnN0YW5jZXMgbWF5IGJlIGxpc3RlZCBtb3JlIHRoYW4gb25jZS4AU2V0dGluZyBhbiBlbXB0eSAlcyBwaXBlbGluZSBkaXNhYmxlcyBlcnJvciBsb2dnaW5nIQBmaWx0ZXIgJXM6ICVzACUuMTkycyglLjgwcykgaGFzIG5vdCBiZWVuIGltcGxlbWVudGVkIGZvciBDYXJ0ZXNpYW4gc3BhdGlhbCByZWZlcmVuY2Ugc3lzdGVtcy4AJS4xOTJzKCUuODBzKSBoYXMgbm90IGJlZW4gaW1wbGVtZW50ZWQgZm9yIHByb2plY3RlZCBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW1zLgBJbnZhbGlkIHJhZGl1cyBwcm92aWRlZCB0byBmdW5jdGlvbiAlczogUmFkaXVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uAFJlc3RhcnQgc2VydmVyIGZhaWxlZCAoJXMpLgBNaXNzaW5nIG1hbmRhdG9yeSBhdHRyaWJ1dGUgJXMuAE11bHRpcGxlIGRlZmluaXRpb25zIG9mIGF0dHJpYnV0ZSAlcy4AVGhlIHNwYXRpYWwgcmVmZXJlbmNlIHN5c3RlbSBuYW1lIGNhbid0IGJlIGFuIGVtcHR5IHN0cmluZyBvciBzdGFydCBvciBlbmQgd2l0aCB3aGl0ZXNwYWNlLgBUaGUgb3JnYW5pemF0aW9uIG5hbWUgY2FuJ3QgYmUgYW4gZW1wdHkgc3RyaW5nIG9yIHN0YXJ0IG9yIGVuZCB3aXRoIHdoaXRlc3BhY2UuAFRoZXJlIGlzIGFscmVhZHkgYSBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW0gd2l0aCBTUklEICV1LgBUaGVyZSBpcyBhbHJlYWR5IGEgc3BhdGlhbCByZWZlcmVuY2Ugc3lzdGVtIHdpdGggU1JJRCAldS4AU1JJRCAwIGlzIG5vdCBtb2RpZmlhYmxlLgBUaGUgU1JJRCByYW5nZSBbJXUsICV1XSBoYXMgYmVlbiByZXNlcnZlZCBmb3Igc3lzdGVtIHVzZS4gU1JTcyBpbiB0aGlzIHJhbmdlIG1heSBiZSBhZGRlZCwgbW9kaWZpZWQgb3IgcmVtb3ZlZCB3aXRob3V0IHdhcm5pbmcgZHVyaW5nIHVwZ3JhZGUuAENhbid0IG1vZGlmeSBTUklEICV1LiBUaGVyZSBpcyBhdCBsZWFzdCBvbmUgY29sdW1uIGRlcGVuZGluZyBvbiBpdC4ASW52YWxpZCBjaGFyYWN0ZXIgaW4gYXR0cmlidXRlICVzLgBBdHRyaWJ1dGUgJXMgaXMgdG9vIGxvbmcuIFRoZSBtYXhpbXVtIGxlbmd0aCBpcyAldSBjaGFyYWN0ZXJzLgAndXRmOCcgaXMgY3VycmVudGx5IGFuIGFsaWFzIGZvciB0aGUgY2hhcmFjdGVyIHNldCBVVEY4TUIzLCBidXQgd2lsbCBiZSBhbiBhbGlhcyBmb3IgVVRGOE1CNCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBQbGVhc2UgY29uc2lkZXIgdXNpbmcgVVRGOE1CNCBpbiBvcmRlciB0byBiZSB1bmFtYmlndW91cy4ATkFUSU9OQUwvTkNIQVIvTlZBUkNIQVIgaW1wbGllcyB0aGUgY2hhcmFjdGVyIHNldCBVVEY4TUIzLCB3aGljaCB3aWxsIGJlIHJlcGxhY2VkIGJ5IFVURjhNQjQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gUGxlYXNlIGNvbnNpZGVyIHVzaW5nIENIQVIoeCkgQ0hBUkFDVEVSIFNFVCBVVEY4TUI0IGluIG9yZGVyIHRvIGJlIHVuYW1iaWd1b3VzLgBJbnZhbGlkIGRlZmF1bHQgY29sbGF0aW9uICVzOiB1dGY4bWI0XzA5MDBfYWlfY2kgb3IgdXRmOG1iNF9nZW5lcmFsX2NpIGV4cGVjdGVkAFVuYWJsZSB0byBjb2xsZWN0IGluZm9ybWF0aW9uIGZvciBjb2x1bW4gJyUtLjE5MnMnOiAlLS4xOTJzLgBUaGUgdGFibGUgJyUtLjE5MnMnIG1heSBub3QgYmUgY3JlYXRlZCBpbiB0aGUgcmVzZXJ2ZWQgdGFibGVzcGFjZSAnJS0uMTkycycuAFRoaXMgb3B0aW9uIGNhbm5vdCBiZSBzZXQgJXMuAEEgY29tbWl0IGZvciBhbiBhdG9taWMgRERMIHN0YXRlbWVudCB3YXMgdW5zdWNjZXNzZnVsIG9uIHRoZSBzb3VyY2UgYW5kIHRoZSByZXBsaWNhLiBUaGUgcmVwbGljYSBzdXBwb3J0cyBhdG9taWMgRERMIHN0YXRlbWVudHMgYnV0IHRoZSBzb3VyY2UgZG9lcyBub3QsIHNvIHRoZSBhY3Rpb24gdGFrZW4gYnkgdGhlIHJlcGxpY2EgYW5kIHNvdXJjZSBtaWdodCBkaWZmZXIuIENoZWNrIHRoYXQgdGhlaXIgc3RhdGVzIGhhdmUgbm90IGRpdmVyZ2VkIGJlZm9yZSBwcm9jZWVkaW5nLgBGdW5jdGlvbiAlcyBpcyBvbmx5IGRlZmluZWQgZm9yIGdlb2dyYXBoaWMgc3BhdGlhbCByZWZlcmVuY2Ugc3lzdGVtcywgYnV0IG9uZSBvZiBpdHMgYXJndW1lbnRzIGlzIGluIFNSSUQgJXUsIHdoaWNoIGlzIG5vdCBnZW9ncmFwaGljLgBGdW5jdGlvbiAlcyBlbmNvdW50ZXJlZCBhIHBvbHlnb24gdGhhdCB3YXMgdG9vIGxhcmdlLiBQb2x5Z29ucyBtdXN0IGNvdmVyIGxlc3MgdGhhbiBoYWxmIHRoZSBwbGFuZXQuAFNwYXRpYWwgaW5kZXhlcyBjYW4ndCBiZSBwcmltYXJ5IG9yIHVuaXF1ZSBpbmRleGVzLgBUaGUgaW5kZXggdHlwZSAlLjIwcyBpcyBub3Qgc3VwcG9ydGVkIGZvciBzcGF0aWFsIGluZGV4ZXMuAENhbm5vdCBkcm9wIHRhYmxlICclcycgcmVmZXJlbmNlZCBieSBhIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgJyVzJyBvbiB0YWJsZSAnJXMnLgBBIHBhcmFtZXRlciBvZiBmdW5jdGlvbiAlLjE5MnMgY29udGFpbnMgYSBnZW9tZXRyeSB3aXRoIGxvbmdpdHVkZSAlZiwgd2hpY2ggaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIHdpdGhpbiAoJWYsICVmXS4AQSBwYXJhbWV0ZXIgb2YgZnVuY3Rpb24gJS4xOTJzIGNvbnRhaW5zIGEgZ2VvbWV0cnkgd2l0aCBsYXRpdHVkZSAlZiwgd2hpY2ggaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIHdpdGhpbiBbJWYsICVmXS4ARm9yZWlnbiBrZXkgJyVzJyB1c2VzIHZpcnR1YWwgY29sdW1uICclcycgd2hpY2ggaXMgbm90IHN1cHBvcnRlZC4ARmFpbGVkIHRvIGFkZCB0aGUgZm9yZWlnbiBrZXkgY29uc3RyYWludC4gTWlzc2luZyBjb2x1bW4gJyVzJyBmb3IgY29uc3RyYWludCAnJXMnIGluIHRoZSByZWZlcmVuY2VkIHRhYmxlICclcycAJXM6IENvdWxkIG5vdCBhZGQgc3VwcHJlc3Npb24gcnVsZSBmb3IgY29kZSAiJXMiLiBSdWxlLXNldCBtYXkgYmUgZnVsbCwgb3IgY29kZSBtYXkgbm90IGNvcnJlc3BvbmQgdG8gYW4gZXJyb3ItbG9nIG1lc3NhZ2UuAFRoZSBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW0gZGVmaW5pdGlvbiBmb3IgU1JJRCAldSBzcGVjaWZpZXMgaW52YWxpZCBnZW9ncmFwaGljIGF4ZXMgJyUuMjBzJyBhbmQgJyUuMjBzJy4gT25lIGF4aXMgbXVzdCBiZSBOT1JUSCBvciBTT1VUSCBhbmQgdGhlIG90aGVyIG11c3QgYmUgRUFTVCBvciBXRVNULgBUaGUgbGVuZ3RoIG9mIHRoZSBzZW1pLW1ham9yIGF4aXMgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlci4AVGhlIGludmVyc2UgZmxhdHRlbmluZyBtdXN0IGJlIGxhcmdlciB0aGFuIDEuMCwgb3IgMC4wIGlmIHRoZSBlbGxpcHNvaWQgaXMgYSBzcGhlcmUuAFRoZSBhbmd1bGFyIHVuaXQgY29udmVyc2lvbiBmYWN0b3IgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlci4AVGhlIHByaW1lIG1lcmlkaWFuIG11c3QgYmUgd2l0aGluICgtMTgwLCAxODBdIGRlZ3JlZXMsIHNwZWNpZmllZCBpbiB0aGUgU1JTIGFuZ3VsYXIgdW5pdC4AVHJhbnNmb3JtYXRpb24gZnJvbSBTUklEICV1IGlzIG5vdCBzdXBwb3J0ZWQuAFRyYW5zZm9ybWF0aW9uIHRvIFNSSUQgJXUgaXMgbm90IHN1cHBvcnRlZC4AVHJhbnNmb3JtYXRpb24gZnJvbSBTUklEICV1IGlzIG5vdCBzdXBwb3J0ZWQuIFRoZSBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW0gaGFzIG5vIFRPV0dTODQgY2xhdXNlLgBUcmFuc2Zvcm1hdGlvbiB0byBTUklEICV1IGlzIG5vdCBzdXBwb3J0ZWQuIFRoZSBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW0gaGFzIG5vIFRPV0dTODQgY2xhdXNlLgBDaGFuZ2luZyBAQHNlc3Npb24uYmlubG9nX2Zvcm1hdCBpcyBkaXNhbGxvd2VkIHdoZW4gdGhlIHNlc3Npb24gaGFzIG9wZW4gdGVtcG9yYXJ5IHRhYmxlKHMpLiBZb3UgY291bGQgd2FpdCB1bnRpbCB0aGVzZSB0ZW1wb3JhcnkgdGFibGUocykgYXJlIGRyb3BwZWQgYW5kIHRyeSBhZ2Fpbi4AQ2hhbmdpbmcgQEBnbG9iYWwuYmlubG9nX2Zvcm1hdCBvciBAQHBlcnNpc3QuYmlubG9nX2Zvcm1hdCBpcyBkaXNhbGxvd2VkIHdoZW4gYW55IHJlcGxpY2F0aW9uIGNoYW5uZWwgaGFzIG9wZW4gdGVtcG9yYXJ5IHRhYmxlKHMpLiBZb3UgY291bGQgd2FpdCB1bnRpbCBSZXBsaWNhX29wZW5fdGVtcF90YWJsZXMgPSAwIGFuZCB0cnkgYWdhaW4AQ2hhbmdpbmcgQEBnbG9iYWwuYmlubG9nX2Zvcm1hdCBvciBAQHBlcnNpc3QuYmlubG9nX2Zvcm1hdCBpcyBkaXNhbGxvd2VkIHdoZW4gYW55IHJlcGxpY2F0aW9uIGNoYW5uZWwgYXBwbGllciB0aHJlYWQgaXMgcnVubmluZy4gWW91IGNvdWxkIGV4ZWN1dGUgU1RPUCBSRVBMSUNBIFNRTF9USFJFQUQgYW5kIHRyeSBhZ2Fpbi4AU3RhdGVtZW50IHZpb2xhdGVzIEdUSUQgY29uc2lzdGVuY3k6IENSRUFURSBURU1QT1JBUlkgVEFCTEUgYW5kIERST1AgVEVNUE9SQVJZIFRBQkxFIGFyZSBub3QgYWxsb3dlZCBpbnNpZGUgYSB0cmFuc2FjdGlvbiBvciBpbnNpZGUgYSBwcm9jZWR1cmUgaW4gYSB0cmFuc2FjdGlvbmFsIGNvbnRleHQgd2hlbiBAQHNlc3Npb24uYmlubG9nX2Zvcm1hdD1TVEFURU1FTlQuAFhBOiBGYWlsZWQgdG8gdGFrZSBNREwgTG9jayBiYWNrdXAgb2YgUFJFUEFSRUQgWEEgdHJhbnNhY3Rpb24gZHVyaW5nIGNsaWVudCBkaXNjb25uZWN0LgBVbmFibGUgdG8gY3JlYXRlIG9yIGNoYW5nZSBhIHRhYmxlIHdpdGhvdXQgYSBwcmltYXJ5IGtleSwgd2hlbiB0aGUgc3lzdGVtIHZhcmlhYmxlICdzcWxfcmVxdWlyZV9wcmltYXJ5X2tleScgaXMgc2V0LiBBZGQgYSBwcmltYXJ5IGtleSB0byB0aGUgdGFibGUgb3IgdW5zZXQgdGhpcyB2YXJpYWJsZSB0byBhdm9pZCB0aGlzIG1lc3NhZ2UuIE5vdGUgdGhhdCB0YWJsZXMgd2l0aG91dCBhIHByaW1hcnkga2V5IGNhbiBjYXVzZSBwZXJmb3JtYW5jZSBwcm9ibGVtcyBpbiByb3ctYmFzZWQgcmVwbGljYXRpb24sIHNvIHBsZWFzZSBjb25zdWx0IHlvdXIgREJBIGJlZm9yZSBjaGFuZ2luZyB0aGlzIHNldHRpbmcuAERhdGEgdHJ1bmNhdGVkIGZvciBmdW5jdGlvbmFsIGluZGV4ICclcycgYXQgcm93ICVsZABWYWx1ZSBpcyBvdXQgb2YgcmFuZ2UgZm9yIGZ1bmN0aW9uYWwgaW5kZXggJyVzJyBhdCByb3cgJWxkAENhbm5vdCBjcmVhdGUgYSBmdW5jdGlvbmFsIGluZGV4IG9uIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgSlNPTiBvciBHRU9NRVRSWSB2YWx1ZS4ARnVuY3Rpb25hbCBpbmRleCAnJS42NHMnIGNhbm5vdCByZWZlciB0byBhbiBhdXRvLWluY3JlbWVudCBjb2x1bW4uAENhbm5vdCBkcm9wIGNvbHVtbiAnJS0uNjRzJyBiZWNhdXNlIGl0IGlzIHVzZWQgYnkgYSBmdW5jdGlvbmFsIGluZGV4LiBJbiBvcmRlciB0byBkcm9wIHRoZSBjb2x1bW4sIHlvdSBtdXN0IHJlbW92ZSB0aGUgZnVuY3Rpb25hbCBpbmRleC4AVGhlIHByaW1hcnkga2V5IGNhbm5vdCBiZSBhIGZ1bmN0aW9uYWwgaW5kZXgAQ2Fubm90IGNyZWF0ZSBhIGZ1bmN0aW9uYWwgaW5kZXggb24gYW4gZXhwcmVzc2lvbiB0aGF0IHJldHVybnMgYSBCTE9CIG9yIFRFWFQuIFBsZWFzZSBjb25zaWRlciB1c2luZyBDQVNULgBFeHByZXNzaW9uIG9mIGZ1bmN0aW9uYWwgaW5kZXggJyVzJyBjb250YWlucyBhIGRpc2FsbG93ZWQgZnVuY3Rpb24uAEZ1bGx0ZXh0IGZ1bmN0aW9uYWwgaW5kZXggaXMgbm90IHN1cHBvcnRlZC4AU3BhdGlhbCBmdW5jdGlvbmFsIGluZGV4IGlzIG5vdCBzdXBwb3J0ZWQuAFRoZSB1c2VkIHN0b3JhZ2UgZW5naW5lIGNhbm5vdCBpbmRleCB0aGUgZXhwcmVzc2lvbiAnJXMnLgBGdW5jdGlvbmFsIGluZGV4IG9uIGEgY29sdW1uIGlzIG5vdCBzdXBwb3J0ZWQuIENvbnNpZGVyIHVzaW5nIGEgcmVndWxhciBpbmRleCBpbnN0ZWFkLgBFeHByZXNzaW9uIG9mIGdlbmVyYXRlZCBjb2x1bW4gJyVzJyBjb250YWlucyBhIGRpc2FsbG93ZWQgZnVuY3Rpb246ICVzLgBFeHByZXNzaW9uIG9mIGdlbmVyYXRlZCBjb2x1bW4gJyVzJyBjYW5ub3QgcmVmZXIgdG8gYSByb3cgdmFsdWUuAEV4cHJlc3Npb24gb2YgZ2VuZXJhdGVkIGNvbHVtbiAnJXMnIGNhbm5vdCByZWZlciB1c2VyIG9yIHN5c3RlbSB2YXJpYWJsZXMuAENvbHVtbiAnJXMnIG9mIHRhYmxlICclcycgaGFzIGEgZGVmYXVsdCB2YWx1ZSBleHByZXNzaW9uIGRlcGVuZGVuY3kgYW5kIGNhbm5vdCBiZSBkcm9wcGVkIG9yIHJlbmFtZWQuAERlZmF1bHQgdmFsdWUgZXhwcmVzc2lvbiBvZiBjb2x1bW4gJyVzJyBjYW5ub3QgcmVmZXIgdG8gYSBjb2x1bW4gZGVmaW5lZCBhZnRlciBpdCBpZiB0aGF0IGNvbHVtbiBpcyBhIGdlbmVyYXRlZCBjb2x1bW4gb3IgaGFzIGFuIGV4cHJlc3Npb24gYXMgZGVmYXVsdCB2YWx1ZS4ARGVmYXVsdCB2YWx1ZSBleHByZXNzaW9uIG9mIGNvbHVtbiAnJXMnIGNhbm5vdCByZWZlciB0byBhbiBhdXRvLWluY3JlbWVudCBjb2x1bW4uAERlZmF1bHQgdmFsdWUgZXhwcmVzc2lvbiBvZiBjb2x1bW4gJyVzJyBjb250YWlucyBhIGRpc2FsbG93ZWQgZnVuY3Rpb24uAERlZmF1bHQgdmFsdWUgZXhwcmVzc2lvbiBvZiBjb2x1bW4gJyVzJyBjb250YWlucyBhIGRpc2FsbG93ZWQgZnVuY3Rpb246ICVzLgBEZWZhdWx0IHZhbHVlIGV4cHJlc3Npb24gb2YgY29sdW1uICclcycgY2Fubm90IHJlZmVyIHRvIGEgcm93IHZhbHVlLgBEZWZhdWx0IHZhbHVlIGV4cHJlc3Npb24gb2YgY29sdW1uICclcycgY2Fubm90IHJlZmVyIHVzZXIgb3Igc3lzdGVtIHZhcmlhYmxlcy4AREVGQVVMVCBmdW5jdGlvbiBjYW5ub3QgYmUgdXNlZCB3aXRoIGRlZmF1bHQgdmFsdWUgZXhwcmVzc2lvbnMAJyVzJyBpcyBub3Qgc3VwcG9ydGVkIGZvciBkZWZhdWx0IHZhbHVlIGV4cHJlc3Npb25zLgBTdGF0ZW1lbnQgdmlvbGF0ZXMgR1RJRCBjb25zaXN0ZW5jeTogQUxURVIgVEFCTEUgLi4uIEFERCBDT0xVTU4gLi4gd2l0aCBleHByZXNzaW9uIGFzIERFRkFVTFQuAENhbm5vdCBjaGFuZ2UgdGFibGUncyBzdG9yYWdlIGVuZ2luZSBiZWNhdXNlIHRoZSB0YWJsZSBwYXJ0aWNpcGF0ZXMgaW4gYSBmb3JlaWduIGtleSBjb25zdHJhaW50LgBTZXR0aW5nIHVzZXIgdmFyaWFibGVzIHdpdGhpbiBleHByZXNzaW9ucyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gQ29uc2lkZXIgYWx0ZXJuYXRpdmVzOiAnU0VUIHZhcmlhYmxlPWV4cHJlc3Npb24sIC4uLicsIG9yICdTRUxFQ1QgZXhwcmVzc2lvbihzKSBJTlRPIHZhcmlhYmxlcyhzKScuACclLS42NHMnIGlzIGEgY29sbGF0aW9uIG9mIHRoZSBkZXByZWNhdGVkIGNoYXJhY3RlciBzZXQgVVRGOE1CMy4gUGxlYXNlIGNvbnNpZGVyIHVzaW5nIFVURjhNQjQgd2l0aCBhbiBhcHByb3ByaWF0ZSBjb2xsYXRpb24gaW5zdGVhZC4ATmVzdGVkIGNvbW1lbnQgc3ludGF4IGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgBSZWZlcmVuY2luZyBjb2x1bW4gJyVzJyBhbmQgcmVmZXJlbmNlZCBjb2x1bW4gJyVzJyBpbiBmb3JlaWduIGtleSBjb25zdHJhaW50ICclcycgYXJlIGluY29tcGF0aWJsZS4AVGltZW91dCBleGNlZWRlZCBmb3IgaGVsZCBzdGF0ZW1lbnQgd2hpbGUgbmV3IEdyb3VwIFJlcGxpY2F0aW9uIHByaW1hcnkgbWVtYmVyIGlzIGFwcGx5aW5nIGJhY2tsb2cuAEhlbGQgc3RhdGVtZW50IGFib3J0ZWQgYmVjYXVzZSBHcm91cCBSZXBsaWNhdGlvbiBwbHVnaW4gZ290IHNodXQgZG93biBvciB0aHJlYWQgd2FzIGtpbGxlZCB3aGlsZSBuZXcgcHJpbWFyeSBtZW1iZXIgd2FzIGFwcGx5aW5nIGJhY2tsb2cuAEhlbGQgc3RhdGVtZW50IHdhcyBhYm9ydGVkIGR1ZSB0byBtZW1iZXIgYmVpbmcgaW4gZXJyb3Igc3RhdGUsIHdoaWxlIGJhY2tsb2cgaXMgYmVpbmcgYXBwbGllZCBkdXJpbmcgR3JvdXAgUmVwbGljYXRpb24gcHJpbWFyeSBlbGVjdGlvbi4ARmFpbGVkIHRvIGZldGNoIGtleSBmcm9tIGtleXJpbmcsIHBsZWFzZSBjaGVjayBpZiBrZXlyaW5nIGlzIGxvYWRlZC4AQ2FuJ3QgZmluZCBrZXkgZnJvbSBrZXlyaW5nLCBwbGVhc2UgY2hlY2sgaW4gdGhlIHNlcnZlciBsb2cgaWYgYSBrZXlyaW5nIGlzIGxvYWRlZCBhbmQgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5LgBGZXRjaGVkIGFuIGludmFsaWQga2V5IGZyb20ga2V5cmluZy4ARXJyb3IgcmVhZGluZyBhIHJlcGxpY2F0aW9uIGxvZyBlbmNyeXB0aW9uIGhlYWRlcjogJXMuAEZhaWxlZCB0byByb3RhdGUgc29tZSBsb2dzIGFmdGVyIGNoYW5naW5nIGJpbmxvZyBlbmNyeXB0aW9uIHNldHRpbmdzLiBQbGVhc2UgZml4IHRoZSBwcm9ibGVtIGFuZCByb3RhdGUgdGhlIGxvZ3MgbWFudWFsbHkuAEtleSAlcyBleGlzdHMgdW5leHBlY3RlZC4ARmFpbGVkIHRvIGdlbmVyYXRlIGtleSwgcGxlYXNlIGNoZWNrIGlmIGtleXJpbmcgaXMgbG9hZGVkLgBGYWlsZWQgdG8gc3RvcmUga2V5LCBwbGVhc2UgY2hlY2sgaWYga2V5cmluZyBpcyBsb2FkZWQuAEZhaWxlZCB0byByZW1vdmUga2V5LCBwbGVhc2UgY2hlY2sgaWYga2V5cmluZyBpcyBsb2FkZWQuAEZhaWxlZCB0byBjaGFuZ2UgYmlubG9nX2VuY3J5cHRpb24gdmFsdWUuICUtLjgwcy4AVW5hYmxlIHRvIHJlY292ZXIgYmlubG9nIGVuY3J5cHRpb24gbWFzdGVyIGtleSwgcGxlYXNlIGNoZWNrIGlmIGtleXJpbmcgaXMgbG9hZGVkLgBzbG93IHF1ZXJ5IGxvZyBmaWxlIGZvcm1hdCBjaGFuZ2VkIGFzIHJlcXVlc3RlZCwgYnV0IHNldHRpbmcgd2lsbCBoYXZlIG5vIGVmZmVjdCB3aGVuIG5vdCBhY3R1YWxseSBsb2dnaW5nIHRvIGEgZmlsZS4AVGhlIG9wdGlvbiBncm91cF9yZXBsaWNhdGlvbl9jb25zaXN0ZW5jeSBjYW5ub3QgYmUgdXNlZCBvbiB0aGUgY3VycmVudCBtZW1iZXIgc3RhdGUuAEVycm9yIHdoaWxlIHdhaXRpbmcgZm9yIGdyb3VwIHRyYW5zYWN0aW9ucyBjb21taXQgb24gZ3JvdXBfcmVwbGljYXRpb25fY29uc2lzdGVuY3k9ICdCRUZPUkUnLgBFcnJvciB3aGlsZSB3YWl0aW5nIGZvciB0cmFuc2FjdGlvbnMgd2l0aCBncm91cF9yZXBsaWNhdGlvbl9jb25zaXN0ZW5jeT0gJ0FGVEVSJyB0byBjb21taXQuAFRoZSBHcm91cCBSZXBsaWNhdGlvbiBwbHVnaW4gaXMgc3RvcHBpbmcsIHRoZXJlZm9yZSBuZXcgdHJhbnNhY3Rpb25zIGFyZSBub3QgYWxsb3dlZCB0byBzdGFydC4ARXhwcmVzc2lvbiBvZiBmdW5jdGlvbmFsIGluZGV4ICclcycgY2Fubm90IHJlZmVyIHRvIGEgcm93IHZhbHVlLgBGYWlsZWQgdG8gZW5jcnlwdCBjb250ZW50IHRvIHdyaXRlIGludG8gYmlubG9nIGZpbGU6ICVzLgBQYWdlIFRyYWNraW5nIGlzIG5vdCBzdGFydGVkIHlldC4AVHJhY2tpbmcgd2FzIG5vdCBlbmFibGVkIGZvciB0aGUgTFNOIHJhbmdlIHNwZWNpZmllZABDYW5ub3QgcHVyZ2UgZGF0YSB3aGVuIGNvbmN1cnJlbnQgY2xvbmUgaXMgaW4gcHJvZ3Jlc3MuIFRyeSBsYXRlci4AQ2Fubm90IHJvdGF0ZSBiaW5hcnkgbG9nIG1hc3RlciBrZXkgd2hlbiAnYmlubG9nLWVuY3J5cHRpb24nIGlzIG9mZi4AVW5hYmxlIHRvIHJlY292ZXIgYmluYXJ5IGxvZyBtYXN0ZXIga2V5LCB0aGUgY29tYmluYXRpb24gb2YgbmV3X21hc3Rlcl9rZXlfc2Vxbm89JXUsIG1hc3Rlcl9rZXlfc2Vxbm89JXUgYW5kIG9sZF9tYXN0ZXJfa2V5X3NlcW5vPSV1IGFyZSB3cm9uZy4ARmFpbGVkIHRvIG9wZXJhdGUgYmluYXJ5IGxvZyBtYXN0ZXIga2V5IG9uIGtleXJpbmcsIHBsZWFzZSBjaGVjayBpZiBrZXlyaW5nIGlzIGxvYWRlZC4gVGhlIHN0YXRlbWVudCBoYWQgbm8gZWZmZWN0OiB0aGUgb2xkIGJpbmFyeSBsb2cgbWFzdGVyIGtleSBpcyBzdGlsbCBpbiB1c2UsIHRoZSBrZXlyaW5nLCBiaW5hcnkgYW5kIHJlbGF5IGxvZyBmaWxlcyBhcmUgdW5jaGFuZ2VkLCBhbmQgdGhlIHNlcnZlciBjb3VsZCBub3Qgc3RhcnQgdXNpbmcgYSBuZXcgYmluYXJ5IGxvZyBtYXN0ZXIga2V5IGZvciBlbmNyeXB0aW5nIG5ldyBiaW5hcnkgYW5kIHJlbGF5IGxvZyBmaWxlcy4ARmFpbGVkIHRvIHJvdGF0ZSBvbmUgb3IgbW9yZSBiaW5hcnkgb3IgcmVsYXkgbG9nIGZpbGVzLiBBIG5ldyBiaW5hcnkgbG9nIG1hc3RlciBrZXkgd2FzIGdlbmVyYXRlZCBhbmQgd2lsbCBiZSB1c2VkIHRvIGVuY3J5cHQgbmV3IGJpbmFyeSBhbmQgcmVsYXkgbG9nIGZpbGVzLiBUaGVyZSBtYXkgc3RpbGwgZXhpc3QgYmluYXJ5IG9yIHJlbGF5IGxvZyBmaWxlcyB1c2luZyB0aGUgcHJldmlvdXMgYmluYXJ5IGxvZyBtYXN0ZXIga2V5LgAlcy4gQSBuZXcgYmluYXJ5IGxvZyBtYXN0ZXIga2V5IHdhcyBnZW5lcmF0ZWQgYW5kIHdpbGwgYmUgdXNlZCB0byBlbmNyeXB0IG5ldyBiaW5hcnkgYW5kIHJlbGF5IGxvZyBmaWxlcy4gVGhlcmUgbWF5IHN0aWxsIGV4aXN0IGJpbmFyeSBvciByZWxheSBsb2cgZmlsZXMgdXNpbmcgdGhlIHByZXZpb3VzIGJpbmFyeSBsb2cgbWFzdGVyIGtleS4ARmFpbGVkIHRvIHJlbW92ZSB1bnVzZWQgYmluYXJ5IGxvZyBlbmNyeXB0aW9uIGtleXMgZnJvbSB0aGUga2V5cmluZywgcGxlYXNlIGNoZWNrIGlmIGtleXJpbmcgaXMgbG9hZGVkLiBUaGUgdW51c2VkIGJpbmFyeSBsb2cgZW5jcnlwdGlvbiBrZXlzIG1heSBzdGlsbCBleGlzdCBpbiB0aGUga2V5cmluZywgYW5kIHRoZXkgd2lsbCBiZSByZW1vdmVkIHVwb24gc2VydmVyIHJlc3RhcnQgb3IgbmV4dCAnQUxURVIgSU5TVEFOQ0UgUk9UQVRFIEJJTkxPRyBNQVNURVIgS0VZJyBleGVjdXRpb24uAEZhaWxlZCB0byByZW1vdmUgYXV4aWxpYXJ5IGJpbmFyeSBsb2cgZW5jcnlwdGlvbiBrZXkgZnJvbSBrZXlyaW5nLCBwbGVhc2UgY2hlY2sgaWYga2V5cmluZyBpcyBsb2FkZWQuIFRoZSBjbGVhbnVwIG9mIHRoZSBiaW5hcnkgbG9nIG1hc3RlciBrZXkgcm90YXRpb24gcHJvY2VzcyBkaWQgbm90IGZpbmlzaCBhcyBleHBlY3RlZCBhbmQgdGhlIGNsZWFudXAgd2lsbCB0YWtlIHBsYWNlIHVwb24gc2VydmVyIHJlc3RhcnQgb3IgbmV4dCAnQUxURVIgSU5TVEFOQ0UgUk9UQVRFIEJJTkxPRyBNQVNURVIgS0VZJyBleGVjdXRpb24uAEFuIGV4cHJlc3Npb24gb2Ygbm9uLWJvb2xlYW4gdHlwZSBzcGVjaWZpZWQgdG8gYSBjaGVjayBjb25zdHJhaW50ICclLS4xOTJzJy4AQ29sdW1uIGNoZWNrIGNvbnN0cmFpbnQgJyUtLjE5MnMnIHJlZmVyZW5jZXMgb3RoZXIgY29sdW1uLgBBbiBleHByZXNzaW9uIG9mIGEgY2hlY2sgY29uc3RyYWludCAnJS0uMTkycycgY29udGFpbnMgZGlzYWxsb3dlZCBmdW5jdGlvbjogJXMuAEFuIGV4cHJlc3Npb24gb2YgYSBjaGVjayBjb25zdHJhaW50ICclLS4xOTJzJyBjb250YWlucyBkaXNhbGxvd2VkIGZ1bmN0aW9uLgBBbiBleHByZXNzaW9uIG9mIGEgY2hlY2sgY29uc3RyYWludCAnJS0uMTkycycgY2Fubm90IHJlZmVyIHRvIGEgdXNlciBvciBzeXN0ZW0gdmFyaWFibGUuAENoZWNrIGNvbnN0cmFpbnQgJyUtLjE5MnMnIGNhbm5vdCByZWZlciB0byBhIHJvdyB2YWx1ZS4AQ2hlY2sgY29uc3RyYWludCAnJS0uMTkycycgY2Fubm90IHJlZmVyIHRvIGFuIGF1dG8taW5jcmVtZW50IGNvbHVtbi4AQ2hlY2sgY29uc3RyYWludCAnJS0uMTkycycgaXMgdmlvbGF0ZWQuAENoZWNrIGNvbnN0cmFpbnQgJyUtLjE5MnMnIHJlZmVycyB0byBub24tZXhpc3RpbmcgY29sdW1uICclLS4xOTJzJy4AQ2hlY2sgY29uc3RyYWludCAnJS0uMTkycycgaXMgbm90IGZvdW5kIGluIHRoZSB0YWJsZS4ARHVwbGljYXRlIGNoZWNrIGNvbnN0cmFpbnQgbmFtZSAnJS0uMTkycycuAENvbHVtbiAnJS0uMTkycycgY2Fubm90IGJlIHVzZWQgaW4gYSBjaGVjayBjb25zdHJhaW50ICclLS4xOTJzJzogbmVlZGVkIGluIGEgZm9yZWlnbiBrZXkgY29uc3RyYWludCAnJS0uMTkycycgcmVmZXJlbnRpYWwgYWN0aW9uLgBDcmVhdGluZyBhbiB1bmVuY3J5cHRlZCB0YWJsZSBpbiBhIGRhdGFiYXNlIHdpdGggZGVmYXVsdCBlbmNyeXB0aW9uIGVuYWJsZWQuAFJlcXVlc3QgdG8gY3JlYXRlICVzIHRhYmxlIHdoaWxlIHVzaW5nIGFuICVzIHRhYmxlc3BhY2UuAFRhYmxlIGVuY3J5cHRpb24gZGlmZmVyIGZyb20gaXRzIGRhdGFiYXNlIGRlZmF1bHQgZW5jcnlwdGlvbiwgYW5kIHVzZXIgZG9lc24ndCBoYXZlIGVub3VnaCBwcml2aWxlZ2UuAERhdGFiYXNlIGRlZmF1bHQgZW5jcnlwdGlvbiBkaWZmZXIgZnJvbSAnZGVmYXVsdF90YWJsZV9lbmNyeXB0aW9uJyBzZXR0aW5nLCBhbmQgdXNlciBkb2Vzbid0IGhhdmUgZW5vdWdoIHByaXZpbGVnZS4AVGFibGVzcGFjZSBlbmNyeXB0aW9uIGRpZmZlciBmcm9tICdkZWZhdWx0X3RhYmxlX2VuY3J5cHRpb24nIHNldHRpbmcsIGFuZCB1c2VyIGRvZXNuJ3QgaGF2ZSBlbm91Z2ggcHJpdmlsZWdlLgBUaGlzIHRhYmxlc3BhY2UgY2FuJ3QgYmUgZW5jcnlwdGVkLCBiZWNhdXNlIG9uZSBvZiB0YWJsZSdzIHNjaGVtYSBoYXMgZGVmYXVsdCBlbmNyeXB0aW9uIE9GRiBhbmQgdXNlciBkb2Vzbid0IGhhdmUgZW5vdWdoIHByaXZpbGVnZS4AVGhpcyB0YWJsZXNwYWNlIGNhbid0IGJlIGRlY3J5cHRlZCwgYmVjYXVzZSBvbmUgb2YgdGFibGUncyBzY2hlbWEgaGFzIGRlZmF1bHQgZW5jcnlwdGlvbiBPTiBhbmQgdXNlciBkb2Vzbid0IGhhdmUgZW5vdWdoIHByaXZpbGVnZS4AQ2Fubm90IGRldGVybWluZSB0aGUgdHlwZSBvZiB0aGUgdGFibGVzcGFjZSBuYW1lZCAnJXMnLgBTb3VyY2UgdGFibGVzcGFjZSBpcyBlbmNyeXB0ZWQgYnV0IHRhcmdldCB0YWJsZXNwYWNlIGlzIG5vdC4ARU5DUllQVElPTiBjbGF1c2UgaXMgbm90IHZhbGlkIGZvciAlcyB0YWJsZXNwYWNlLgBNdWx0aXBsZSAlcyBjbGF1c2VzAEdSQU5UIC4uLiBBUyBpcyBjdXJyZW50bHkgc3VwcG9ydGVkIG9ubHkgZm9yIGdsb2JhbCBwcml2aWxlZ2VzLgBFaXRoZXIgc29tZSBvZiB0aGUgYXV0aG9yaXphdGlvbiBJRHMgaW4gdGhlIEFTIGNsYXVzZSBhcmUgaW52YWxpZCBvciB0aGUgY3VycmVudCB1c2VyIGxhY2tzIHByaXZpbGVnZXMgdG8gZXhlY3V0ZSB0aGUgc3RhdGVtZW50LgBDb2x1bW4gJyVzJyBoYXMgYSBmdW5jdGlvbmFsIGluZGV4IGRlcGVuZGVuY3kgYW5kIGNhbm5vdCBiZSBkcm9wcGVkIG9yIHJlbmFtZWQuAFBsdWdpbiAnJXMnIGlzIG5vdCB0byBiZSB1c2VkIGFzIGFuICJlYXJseSIgcGx1Z2luLiBEb24ndCBhZGQgaXQgdG8gLS1lYXJseS1wbHVnaW4tbG9hZCwga2V5cmluZyBtaWdyYXRpb24gZXRjLgBSZWRvIGxvZyBhcmNoaXZpbmcgc3RhcnQgcHJvaGliaXRzIHBhdGggbmFtZSBpbiAnc3ViZGlyJyBhcmd1bWVudABSZWRvIGxvZyBhcmNoaXZpbmcgc3RhcnQgdGltZWQgb3V0AFNlcnZlciB2YXJpYWJsZSAnaW5ub2RiX3JlZG9fbG9nX2FyY2hpdmVfZGlycycgaXMgTlVMTCBvciBlbXB0eQBMYWJlbCAnJS4xOTJzJyBub3QgZm91bmQgaW4gc2VydmVyIHZhcmlhYmxlICdpbm5vZGJfcmVkb19sb2dfYXJjaGl2ZV9kaXJzJwBEaXJlY3RvcnkgaXMgZW1wdHkgYWZ0ZXIgbGFiZWwgJyUuMTkycycgaW4gc2VydmVyIHZhcmlhYmxlICdpbm5vZGJfcmVkb19sb2dfYXJjaGl2ZV9kaXJzJwBSZWRvIGxvZyBhcmNoaXZlIGRpcmVjdG9yeSAnJS4xOTJzJyBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgYSBkaXJlY3RvcnkAUmVkbyBsb2cgYXJjaGl2ZSBkaXJlY3RvcnkgJyUuMTkycycgaXMgaW4sIHVuZGVyLCBvciBvdmVyIHNlcnZlciBkaXJlY3RvcnkgJyUuMTkycycgLSAnJS4xOTJzJwBSZWRvIGxvZyBhcmNoaXZlIGRpcmVjdG9yeSAnJS4xOTJzJyBpcyBhY2Nlc3NpYmxlIHRvIGFsbCBPUyB1c2VycwBDYW5ub3QgY3JlYXRlIHJlZG8gbG9nIGFyY2hpdmUgZmlsZSAnJS41MTJzJyAoT1MgZXJybm86ICVkIC0gJS4xMjhzKQBSZWRvIGxvZyBhcmNoaXZpbmcgaGFzIGJlZW4gc3RhcnRlZCBvbiAnJS41MTJzJyAtIENhbGwgaW5ub2RiX3JlZG9fbG9nX2FyY2hpdmVfc3RvcCgpIGZpcnN0AFJlZG8gbG9nIGFyY2hpdmluZyBpcyBub3QgYWN0aXZlAFJlZG8gbG9nIGFyY2hpdmluZyBmYWlsZWQ6ICUuNTEycwBSZWRvIGxvZyBhcmNoaXZpbmcgaGFzIG5vdCBiZWVuIHN0YXJ0ZWQgYnkgdGhpcyBzZXNzaW9uAFJlZ2V4IGVycm9yOiAlLS4yNTZzIGluIGZ1bmN0aW9uICVzLgBJbnZhbGlkIEpTT04gdHlwZSBpbiBhcmd1bWVudCAldSB0byBmdW5jdGlvbiAlczsgYW4gJXMgaXMgcmVxdWlyZWQuAENhbm5vdCBjb252ZXJ0IHN0cmluZyAnJS42NHMnIGZyb20gJXMgdG8gJXMAQ29sdW1uICclcycgaGFzIGEgcGFydGl0aW9uaW5nIGZ1bmN0aW9uIGRlcGVuZGVuY3kgYW5kIGNhbm5vdCBiZSBkcm9wcGVkIG9yIHJlbmFtZWQuAEFVVE9fSU5DUkVNRU5UIHN1cHBvcnQgZm9yIEZMT0FUL0RPVUJMRSBjb2x1bW5zIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBDb25zaWRlciByZW1vdmluZyBBVVRPX0lOQ1JFTUVOVCBmcm9tIGNvbHVtbiAnJS0uMTkycycuAENhbm5vdCBzdG9wIHRoZSByZXBsaWNhIFNRTCB0aHJlYWQgd2hpbGUgdGhlIGluc3RhbmNlIGlzIGxvY2tlZCBmb3IgYmFja3VwLiBUcnkgcnVubmluZyBgVU5MT0NLIElOU1RBTkNFYCBmaXJzdC4AU3BlY2lmeWluZyBudW1iZXIgb2YgZGlnaXRzIGZvciBmbG9hdGluZyBwb2ludCBkYXRhIHR5cGVzIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgBVTlNJR05FRCBmb3IgZGVjaW1hbCBhbmQgZmxvYXRpbmcgcG9pbnQgZGF0YSB0eXBlcyBpcyBkZXByZWNhdGVkIGFuZCBzdXBwb3J0IGZvciBpdCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4ASW50ZWdlciBkaXNwbGF5IHdpZHRoIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgBUaGUgWkVST0ZJTEwgYXR0cmlidXRlIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBVc2UgdGhlIExQQUQgZnVuY3Rpb24gdG8gemVyby1wYWQgbnVtYmVycywgb3Igc3RvcmUgdGhlIGZvcm1hdHRlZCBudW1iZXJzIGluIGEgQ0hBUiBjb2x1bW4uAENsb25lIERvbm9yIEVycm9yOiAlLjUxMnMuAENsb25lIHJlY2VpdmVkIHVuZXhwZWN0ZWQgcmVzcG9uc2UgZnJvbSBEb25vciA6ICUuNTEycy4AQ2xvbmUgRG9ub3IgTXlTUUwgdmVyc2lvbjogJS42NHMgaXMgZGlmZmVyZW50IGZyb20gUmVjaXBpZW50IE15U1FMIHZlcnNpb24gJS42NHMuAENsb25lIERvbm9yIE9TOiAlLjY0cyBpcyBkaWZmZXJlbnQgZnJvbSBSZWNpcGllbnQgT1M6ICUuNjRzLgBDbG9uZSBEb25vciBwbGF0Zm9ybTogJS42NHMgaXMgZGlmZmVyZW50IGZyb20gUmVjaXBpZW50IHBsYXRmb3JtOiAlLjY0cy4AQ2xvbmUgRG9ub3IgY29sbGF0aW9uOiAlLjEyOHMgaXMgdW5hdmFpbGFibGUgaW4gUmVjaXBpZW50LgBDbG9uZSBDb25maWd1cmF0aW9uICUuMTI4czogRG9ub3IgdmFsdWU6ICUuMTI4cyBpcyBkaWZmZXJlbnQgZnJvbSBSZWNpcGllbnQgdmFsdWU6ICUuMTI4cy4AQ2xvbmUgc3lzdGVtIGNvbmZpZ3VyYXRpb246ICUuNTEycwBDbG9uZSBEb25vciBwbHVnaW4gJS4xMjhzIGlzIG5vdCBhY3RpdmUgaW4gUmVjaXBpZW50LgBDbG9uZSBjYW5ub3QgdXNlIGxvb3AgYmFjayBjb25uZWN0aW9uIHdoaWxlIGNsb25pbmcgaW50byBjdXJyZW50IGRhdGEgZGlyZWN0b3J5LgBDbG9uZSBuZWVkcyBTU0wgY29ubmVjdGlvbiBmb3IgZW5jcnlwdGVkIHRhYmxlLgBDbG9uZSBlc3RpbWF0ZWQgZGF0YWJhc2Ugc2l6ZSBpcyAlLjY0cy4gQXZhaWxhYmxlIHNwYWNlICUuNjRzIGlzIG5vdCBlbm91Z2guAENvbmN1cnJlbnQgY2xvbmUgaW4gcHJvZ3Jlc3MuIFBsZWFzZSB0cnkgYWZ0ZXIgY2xvbmUgaXMgY29tcGxldGUuAFRoZSBjbG9uZSBvcGVyYXRpb24gY2Fubm90IGJlIGV4ZWN1dGVkIHdoZW4gJXMuAENhbm5vdCBncmFudCByb2xlcyB0byBhbiBhbm9ueW1vdXMgdXNlci4AJXMARW1wdHkgcGFzc3dvcmQgY2FuIG5vdCBiZSByZXRhaW5lZCBhcyBzZWNvbmQgcGFzc3dvcmQgZm9yIHVzZXIgJyVzJ0AnJXMnLgBBY2Nlc3MgZGVuaWVkIGZvciBBdXRoSWQgYCUuNjRzYEBgJS42NHNgIHRvIGRhdGFiYXNlICclLS4xOTJzJy4AQ2Fubm90IHNldCBtYW5kYXRvcnlfcm9sZXM6IEF1dGhJZCBgJS42NHNgQGAlLjY0c2AgaGFzICclcycgcHJpdmlsZWdlLgBHdGlkIHRhYmxlIGlzIG5vdCByZWFkeSB0byBiZSB1c2VkLiBUYWJsZSAnJXMuJXMnIGNhbm5vdCBiZSBvcGVuZWQuAFRoZSBnZW9tZXRyeSBwYXNzZWQgdG8gZnVuY3Rpb24gJXMgaXMgaW4gU1JJRCAwLCB3aGljaCBkb2Vzbid0IHNwZWNpZnkgYSBsZW5ndGggdW5pdC4gQ2FuJ3QgY29udmVydCB0byAnJXMnLgBFcnJvciBpbnN0YWxsaW5nIHBsdWdpbiAnJXMnOiAlcwBTdG9yYWdlIGVuZ2luZSBjb3VsZCBub3QgYWxsb2NhdGUgdGVtcG9yYXJ5IHRhYmxlc3BhY2UgZm9yIHRoaXMgc2Vzc2lvbi4AR290IHVua25vd24gZXJyb3I6ICVkAENvdWxkIG5vdCBjaGFuZ2UgY29sdW1uICclcycgb2YgdGFibGUgJyVzJy4gVGhlIHJlc3VsdGluZyBzaXplIG9mIGluZGV4ICclcycgd291bGQgZXhjZWVkIHRoZSBtYXgga2V5IGxlbmd0aCBvZiAlZCBieXRlcy4AQSBjYXB0dXJlIGdyb3VwIGhhcyBhbiBpbnZhbGlkIG5hbWUuAEZhaWxlZCB0byBzZXQgdXAgU1NMIGJlY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBTU0wgbGlicmFyeSBlcnJvcjogJXMAU2Vjb25kYXJ5IGVuZ2luZSBvcGVyYXRpb24gZmFpbGVkLiAlcy4ARERMcyBvbiBhIHRhYmxlIHdpdGggYSBzZWNvbmRhcnkgZW5naW5lIGRlZmluZWQgYXJlIG5vdCBhbGxvd2VkLgBJbmNvcnJlY3QgY3VycmVudCBwYXNzd29yZC4gU3BlY2lmeSB0aGUgY29ycmVjdCBwYXNzd29yZCB3aGljaCBoYXMgdG8gYmUgcmVwbGFjZWQuAEN1cnJlbnQgcGFzc3dvcmQgbmVlZHMgdG8gYmUgc3BlY2lmaWVkIGluIHRoZSBSRVBMQUNFIGNsYXVzZSBpbiBvcmRlciB0byBjaGFuZ2UgaXQuAERvIG5vdCBzcGVjaWZ5IHRoZSBjdXJyZW50IHBhc3N3b3JkIHdoaWxlIGNoYW5naW5nIGl0IGZvciBvdGhlciB1c2Vycy4AQ3VycmVudCBwYXNzd29yZCBjYW4gbm90IGJlIHJldGFpbmVkIGZvciB1c2VyICclcydAJyVzJyBiZWNhdXNlIGF1dGhlbnRpY2F0aW9uIHBsdWdpbiBpcyBiZWluZyBjaGFuZ2VkLgBDdXJyZW50IHBhc3N3b3JkIGNhbiBub3QgYmUgcmV0YWluZWQgZm9yIHVzZXIgJyVzJ0AnJXMnIGJlY2F1c2UgbmV3IHBhc3N3b3JkIGlzIGVtcHR5LgBBdCBsZWFzdCBvbmUgcGFydGlhbCByZXZva2UgZXhpc3RzIG9uIGEgZGF0YWJhc2UuIFRoZSBzeXN0ZW0gdmFyaWFibGUgJ0BAcGFydGlhbF9yZXZva2VzJyBtdXN0IGJlIHNldCB0byBPTi4AQXV0aElkIGAlLjY0c2BAYCUuNjRzYCBpcyBzZXQgYXMgbWFuZGF0b3J5X3JvbGVzLiBDYW5ub3QgZ3JhbnQgdGhlICclcycgcHJpdmlsZWdlLgBUaGUgdXNlIG9mIHJlcGxpY2F0aW9uIGZpbHRlcnMgd2l0aCBYQSB0cmFuc2FjdGlvbnMgaXMgbm90IHN1cHBvcnRlZCwgYW5kIGNhbiBsZWFkIHRvIGFuIHVuZGVmaW5lZCBzdGF0ZSBpbiB0aGUgcmVwbGljYS4Ac3FsX21vZGU9MHglMDh4IGlzIG5vdCBzdXBwb3J0ZWQuAEludmFsaWQgbWF0Y2ggbW9kZSBmbGFnIGluIHJlZ3VsYXIgZXhwcmVzc2lvbi4AJyVzJyBwcml2aWxlZ2UgZm9yIGRhdGFiYXNlICclcycgZXhpc3RzIGJvdGggYXMgcGFydGlhbCByZXZva2UgYW5kIG15c3FsLmRiIHNpbXVsdGFuZW91c2x5LiBJdCBjb3VsZCBtZWFuIHRoYXQgdGhlICdteXNxbCcgc2NoZW1hIGlzIGNvcnJ1cHRlZC4AVGhlcmUncyBubyB1bml0IG9mIG1lYXN1cmUgbmFtZWQgJyVzJy4ASW52YWxpZCBKU09OIHZhbHVlIGZvciBDQVNUIGZvciBmdW5jdGlvbmFsIGluZGV4ICclLS42NHMnLgBPdXQgb2YgcmFuZ2UgSlNPTiB2YWx1ZSBmb3IgQ0FTVCBmb3IgZnVuY3Rpb25hbCBpbmRleCAnJS0uNjRzJy4ARXhjZWVkZWQgbWF4IG51bWJlciBvZiB2YWx1ZXMgcGVyIHJlY29yZCBmb3IgbXVsdGktdmFsdWVkIGluZGV4ICclLS42NHMnIGJ5ICV1IHZhbHVlKHMpLgBFeGNlZWRlZCBtYXggdG90YWwgbGVuZ3RoIG9mIHZhbHVlcyBwZXIgcmVjb3JkIGZvciBtdWx0aS12YWx1ZWQgaW5kZXggJyUtLjY0cycgYnkgJXUgYnl0ZXMuAERhdGEgdG9vIGxvbmcgZm9yIGZ1bmN0aW9uYWwgaW5kZXggJyUtLjY0cycuAENhbm5vdCBzdG9yZSBhbiBhcnJheSBvciBhbiBvYmplY3QgaW4gYSBzY2FsYXIga2V5IHBhcnQgb2YgdGhlIGluZGV4ICclLjE5MnMnLgBDYW5ub3QgdXNlIGZ1bmN0aW9uYWwgaW5kZXggJyUtLjY0cycgZHVlIHRvIHR5cGUgb3IgY29sbGF0aW9uIGNvbnZlcnNpb24uAFRoZSBmdW5jdGlvbiAnJXMnIGZhaWxlZC4gJXMAQ2Fubm90IHVwZGF0ZSBHVElEX1BVUkdFRCB3aXRoIHRoZSBHcm91cCBSZXBsaWNhdGlvbiBwbHVnaW4gcnVubmluZwBHcm91cGluZyBvbiB0ZW1wb3JhbCBpcyBub24tZGV0ZXJtaW5pc3RpYyBmb3IgdGltZXpvbmVzIGhhdmluZyBEU1QuIFBsZWFzZSBjb25zaWRlciBzd2l0Y2hpbmcgdG8gVVRDIGZvciB0aGlzIHF1ZXJ5LgBMb25nIGRhdGFiYXNlIG5hbWUgYW5kIGlkZW50aWZpZXIgZm9yIG9iamVjdCByZXN1bHRlZCBpbiBhIHBhdGggbGVuZ3RoIHRvbyBsb25nIGZvciB0YWJsZSAnJXMnLiBQbGVhc2UgY2hlY2sgdGhlIHBhdGggbGltaXQgZm9yIHlvdXIgT1MuAFJlcXVlc3QgaWdub3JlZCBmb3IgJyUuNjRzJ0AnJS42NHMnLiBSb2xlIG5lZWRlZCB0byBwZXJmb3JtIG9wZXJhdGlvbjogJyUuMzJzJwAnYXVkaXRfbG9nJyBwYXNzd29yZCBoYXMgYmVlbiBjb3BpZWQgaW50byAnJS4zMnMnIGFuZCB3aWxsIGJlIHJlbW92ZWQgd2l0aCBmaXJzdCBwdXJnZWQgcGFzc3dvcmQuAFN0YXJ0ZWQgYXV0by1yZWpvaW4gcHJvY2VkdXJlIGF0dGVtcHQgJWx1IG9mICVsdQBBIHBsdWdpbiB3YXMgbG9hZGVkIG9yIHVubG9hZGVkIGR1cmluZyBhIHF1ZXJ5LCBhIHN5c3RlbSB2YXJpYWJsZSB0YWJsZSB3YXMgY2hhbmdlZC4AQSBwbHVnaW4gd2FzIGxvYWRlZCBvciB1bmxvYWRlZCBkdXJpbmcgYSBxdWVyeSwgYSBnbG9iYWwgc3RhdHVzIHZhcmlhYmxlIHdhcyBjaGFuZ2VkLgBUaGUgU1RBUlQgR1JPVVBfUkVQTElDQVRJT04gY29tbWFuZCBmYWlsZWQgdG8gc3RhcnQgaXRzIG1lc3NhZ2Ugc2VydmljZS4ASW52YWxpZCBTT1VSQ0VfQ09NUFJFU1NJT05fQUxHT1JJVEhNUyAnJS4xOTJzJyBmb3IgY2hhbm5lbCAnJS4xOTJzJy4ASW52YWxpZCBTT1VSQ0VfWlNURF9DT01QUkVTU0lPTl9MRVZFTCAldSBmb3IgY2hhbm5lbCAnJS4xOTJzJy4ASW52YWxpZCBjb21wcmVzc2lvbiBhbGdvcml0aG0gJyUuMTkycycuAEludmFsaWQgenN0ZCBjb21wcmVzc2lvbiBsZXZlbCBmb3IgYWxnb3JpdGhtICclLjE5MnMnLgBTcGVjaWZpZWQgY29tcHJlc3Npb24gYWxnb3JpdGhtIGxpc3QgJyUuMTkycycgZXhjZWVkcyB0b3RhbCBjb3VudCBvZiAzIGZvciBjaGFubmVsICclLjE5MnMnLgBQUklWSUxFR0VfQ0hFQ0tTX1VTRVIgZm9yIHJlcGxpY2F0aW9uIGNoYW5uZWwgJyUuMTkycycgd2FzIHNldCB0byBgYEBgJS4yNTVzYCwgYnV0IGFub255bW91cyB1c2VycyBhcmUgZGlzYWxsb3dlZCBmb3IgUFJJVklMRUdFX0NIRUNLU19VU0VSLgBQUklWSUxFR0VfQ0hFQ0tTX1VTRVIgZm9yIHJlcGxpY2F0aW9uIGNoYW5uZWwgJyUuMTkycycgd2FzIHNldCB0byBgJS42NHNgQGAlLjI1NXNgLCBidXQgdGhpcyBpcyBub3QgYW4gZXhpc3RpbmcgdXNlci4ASW52YWxpZCwgY29ycnVwdGVkIFBSSVZJTEVHRV9DSEVDS1NfVVNFUiB3YXMgZm91bmQgaW4gdGhlIHJlcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gcmVwb3NpdG9yeSBmb3IgY2hhbm5lbCAnJS4xOTJzJy4gVXNlIENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gUFJJVklMRUdFX0NIRUNLU19VU0VSIHRvIGNvcnJlY3QgdGhlIGNvbmZpZ3VyYXRpb24uAFBSSVZJTEVHRV9DSEVDS1NfVVNFUiBmb3IgcmVwbGljYXRpb24gY2hhbm5lbCAnJS4xOTJzJyB3YXMgc2V0IHRvIGAlLjY0c2BAYCUuMjU1c2AsIGJ1dCB0aGlzIHVzZXIgZG9lcyBub3QgaGF2ZSBSRVBMSUNBVElPTl9BUFBMSUVSIHByaXZpbGVnZS4ARHluYW1pYyBwcml2aWxlZ2UgJyVzJyBpcyBub3QgcmVnaXN0ZXJlZCB3aXRoIHRoZSBzZXJ2ZXIuAEZ1bmN0aW9uICclcycgZmFpbGVkIGJlY2F1c2Uga2V5IGlzIGludmFsaWQuAEZ1bmN0aW9uICclcycgZmFpbGVkIGJlY2F1c2Uga2V5IHR5cGUgaXMgaW52YWxpZC4ARnVuY3Rpb24gJyVzJyBmYWlsZWQgYmVjYXVzZSBrZXkgbGVuZ3RoIGlzIHRvbyBsb25nLgBGdW5jdGlvbiAnJXMnIGZhaWxlZCBiZWNhdXNlIGtleSB0eXBlIGlzIHRvbyBsb25nLgAlcy4ASW52YWxpZCBjaGFyYWN0ZXIgc2V0ICclcycgd2FzIHNwZWNpZmllZC4gSXQgbXVzdCBiZSBlaXRoZXIgY2hhcmFjdGVyIHNldCBuYW1lIG9yIGNvbGxhdGlvbiBuYW1lIGFzIHN1cHBvcnRlZCBieSBzZXJ2ZXIuAEludmFsaWQgY2hhcmFjdGVyIHNldCAnJXMnIHdhcyBzcGVjaWZpZWQuIEl0IG11c3QgYmUgYSBjaGFyYWN0ZXIgc2V0IG5hbWUgYXMgc3VwcG9ydGVkIGJ5IHNlcnZlci4ASW52YWxpZCBjb2xsYXRpb24gJyVzJyB3YXMgc3BlY2lmaWVkLiBJdCBtdXN0IGJlIGEgY29sbGF0aW9uIG5hbWUgYXMgc3VwcG9ydGVkIGJ5IHNlcnZlci4ASW52YWxpZCBleHRlbnNpb24gYXJndW1lbnQgdHlwZSAnJXMnIHdhcyBzcGVjaWZpZWQuIFJlZmVyIHRoZSBNeVNRTCBtYW51YWwgZm9yIHRoZSB2YWxpZCBVREYgZXh0ZW5zaW9uIGFyZ3VtZW50cyB0eXBlLgBUYWJsZSBoYXMgbXVsdGlwbGUgY29uc3RyYWludHMgd2l0aCB0aGUgbmFtZSAnJS0uMTkycycuIFBsZWFzZSB1c2UgY29uc3RyYWludCBzcGVjaWZpYyAnJXMnIGNsYXVzZS4AQ29uc3RyYWludCAnJS0uMTkycycgZG9lcyBub3QgZXhpc3QuAEFsdGVyaW5nIGNvbnN0cmFpbnQgZW5mb3JjZW1lbnQgaXMgbm90IHN1cHBvcnRlZCBmb3IgdGhlIGNvbnN0cmFpbnQgJyUtLjE5MnMnLiBFbmZvcmNlbWVudCBzdGF0ZSBhbHRlciBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGUgUFJJTUFSWSwgVU5JUVVFIGFuZCBGT1JFSUdOIEtFWSB0eXBlIGNvbnN0cmFpbnRzLgBFYWNoIHJvdyBvZiBhIFZBTFVFUyBjbGF1c2UgbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBjb2x1bW4sIHVubGVzcyB3aGVuIHVzZWQgYXMgc291cmNlIGluIGFuIElOU0VSVCBzdGF0ZW1lbnQuAEEgVkFMVUVTIGNsYXVzZSBjYW5ub3QgdXNlIERFRkFVTFQgdmFsdWVzLCB1bmxlc3MgdXNlZCBhcyBhIHNvdXJjZSBpbiBhbiBJTlNFUlQgc3RhdGVtZW50LgBUaGUgcXVlcnkgZG9lcyBub3QgY29tcGx5IHdpdGggdmFyaWFibGUgcmVxdWlyZV9yb3dfZm9ybWF0IHJlc3RyaWN0aW9ucy4AVGhlIHJlcXVlc3RlZCB2YWx1ZSAlcyBpcyBpbnZhbGlkIGZvciBSRVFVSVJFX1JPV19GT1JNQVQsIG11c3QgYmUgZWl0aGVyIDAgb3IgMS4ARmFpbGVkIHRvIGFjcXVpcmUgbG9jayBvbiB1c2VyIG1hbmFnZW1lbnQgc2VydmljZSwgdW5hYmxlIHRvIGRldGVybWluZSBpZiByb2xlIGAlc2BAYCVzYCBpcyBtYW5kYXRvcnkARmFpbGVkIHRvIGFjcXVpcmUgbG9jayBvbiB1c2VyIG1hbmFnZW1lbnQgc2VydmljZSwgdW5hYmxlIHRvIGZldGNoIG1hbmRhdG9yeSByb2xlIGxpc3QATG9hZGluZyBsb2NhbCBkYXRhIGlzIGRpc2FibGVkOyB0aGlzIG11c3QgYmUgZW5hYmxlZCBvbiBib3RoIHRoZSBjbGllbnQgYW5kIHNlcnZlciBzaWRlcwBGYWlsZWQgdG8gaW1wb3J0ICVzIGJlY2F1c2UgdGhlIENGRyBmaWxlIHZlcnNpb24gKCV1KSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBjdXJyZW50IHZlcnNpb24gKCV1KQBPdXQgb2YgbWVtb3J5AENoYXJhY3RlciBzZXQgY2FuIGJlIHNldCBvbmx5IGZvciB0aGUgVURGIGFyZ3VtZW50IHR5cGUgU1RSSU5HLgBDaGFyYWN0ZXIgc2V0IGNhbiBiZSBzZXQgb25seSBmb3IgdGhlIFVERiBSRVRVUk4gdHlwZSBTVFJJTkcuAE11bHRpcGxlIElOVE8gY2xhdXNlcyBpbiBvbmUgcXVlcnkgYmxvY2suAE1pc3BsYWNlZCBJTlRPIGNsYXVzZSwgSU5UTyBpcyBub3QgYWxsb3dlZCBpbnNpZGUgc3VicXVlcmllcywgYW5kIG11c3QgYmUgcGxhY2VkIGF0IGVuZCBvZiBVTklPTiBjbGF1c2VzLgBBY2Nlc3MgZGVuaWVkIGZvciB1c2VyICclLS40OHMnQCclLS42NHMnLiBBY2NvdW50IGlzIGJsb2NrZWQgZm9yICVzIGRheShzKSAoJXMgZGF5KHMpIHJlbWFpbmluZykgZHVlIHRvICV1IGNvbnNlY3V0aXZlIGZhaWxlZCBsb2dpbnMuAFVOU0lHTkVEIGZvciB0aGUgWUVBUiBkYXRhIHR5cGUgaXMgZGVwcmVjYXRlZCBhbmQgc3VwcG9ydCBmb3IgaXQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuAENsb25lIG5lZWRzIG1heF9hbGxvd2VkX3BhY2tldCB2YWx1ZSB0byBiZSAldSBvciBtb3JlLiBDdXJyZW50IHZhbHVlIGlzICV1AEZhaWxlZCB0byAlcyBzZGkgZm9yICVzLiVzIGluICVzIGR1ZSB0byBtaXNzaW5nIHJlY29yZC4AQ2hlY2sgY29uc3RyYWludCAnJS0uMTkycycgdXNlcyBjb2x1bW4gJyUtLjE5MnMnLCBoZW5jZSBjb2x1bW4gY2Fubm90IGJlIGRyb3BwZWQgb3IgcmVuYW1lZC4AVGhpcyBvcGVyYXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZCB3aGlsZSBHcm91cCBSZXBsaWNhdGlvbiBpcyBydW5uaW5nOyBydW4gU1RPUCBHUk9VUF9SRVBMSUNBVElPTiBmaXJzdABTcGVjaWZ5aW5nIGFuIE9OIEVNUFRZIGNsYXVzZSBhZnRlciB0aGUgT04gRVJST1IgY2xhdXNlIGluIGEgSlNPTl9UQUJMRSBjb2x1bW4gZGVmaW5pdGlvbiBpcyBkZXByZWNhdGVkIHN5bnRheCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuIFNwZWNpZnkgT04gRU1QVFkgYmVmb3JlIE9OIEVSUk9SIGluc3RlYWQuAFRoZSBJTlRPIGNsYXVzZSBpcyBkZXByZWNhdGVkIGluc2lkZSBxdWVyeSBibG9ja3Mgb2YgcXVlcnkgZXhwcmVzc2lvbnMgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBQbGVhc2UgbW92ZSB0aGUgSU5UTyBjbGF1c2UgdG8gdGhlIGVuZCBvZiBzdGF0ZW1lbnQgaW5zdGVhZC4AVGhlIFZBTFVFUyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gSXQgYWx3YXlzIHJldHVybnMgTlVMTCBpbiB0aGlzIGNvbnRleHQuIElmIHlvdSBtZWFudCB0byBhY2Nlc3MgYSB2YWx1ZSBmcm9tIHRoZSBWQUxVRVMgY2xhdXNlIG9mIHRoZSBJTlNFUlQgc3RhdGVtZW50LCBjb25zaWRlciB1c2luZyBhbiBhbGlhcyAoSU5TRVJUIElOVE8gLi4uIFZBTFVFUyAoLi4uKSBBUyBhbGlhcykgYW5kIHJlZmVyZW5jZSBhbGlhcy5jb2wgaW5zdGVhZCBvZiBWQUxVRVMoY29sKSBpbiB0aGUgT04gRFVQTElDQVRFIEtFWSBVUERBVEUgY2xhdXNlLgBTUUxfQ0FMQ19GT1VORF9ST1dTIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBDb25zaWRlciB1c2luZyB0d28gc2VwYXJhdGUgcXVlcmllcyBpbnN0ZWFkLgBGT1VORF9ST1dTKCkgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuIENvbnNpZGVyIHVzaW5nIENPVU5UKCopIGluc3RlYWQuAE5vIHZhbHVlIHdhcyBmb3VuZCBieSAnJS4xOTJzJyBvbiB0aGUgc3BlY2lmaWVkIHBhdGguAE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kIGJ5ICclLjE5MnMnIG9uIHRoZSBzcGVjaWZpZWQgcGF0aC4ASG9zdG5hbWUgY2Fubm90IGJlIGxvbmdlciB0aGFuICVkIGNoYXJhY3RlcnMuAENvbHVtbiAnJS42NHMuJS42NHMuJS42NHMnIGhhdmluZyBwcmVmaXgga2V5IHBhcnQgJyUuNjRzKCV1KScgaXMgaWdub3JlZCBieSB0aGUgcGFydGl0aW9uaW5nIGZ1bmN0aW9uLiBVc2Ugb2YgcHJlZml4ZWQgY29sdW1ucyBpbiB0aGUgUEFSVElUSU9OIEJZIEtFWSgpIGNsYXVzZSBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4AVGhlIFNUQVJUIEdST1VQX1JFUExJQ0FUSU9OIGNvbW1hbmQgZmFpbGVkIHNpbmNlIHRoZSB1c2VybmFtZSBwcm92aWRlZCBmb3IgcmVjb3ZlcnkgY2hhbm5lbCBpcyBlbXB0eS4AVGhlIFNUQVJUIEdST1VQX1JFUExJQ0FUSU9OIGNvbW1hbmQgZmFpbGVkIHNpbmNlIHRoZSBVU0VSIG9wdGlvbiB3YXMgbm90IHByb3ZpZGVkIHdpdGggUEFTU1dPUkQgZm9yIHJlY292ZXJ5IGNoYW5uZWwuAFRoZSBTVEFSVCBHUk9VUF9SRVBMSUNBVElPTiBjb21tYW5kIGZhaWxlZCBzaW5jZSB0aGUgcGFzc3dvcmQgcHJvdmlkZWQgZm9yIHRoZSByZWNvdmVyeSBjaGFubmVsIGV4Y2VlZHMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIDMyIGNoYXJhY3RlcnMuAFN0YXRlbWVudCByZXF1aXJlcyBhIHRyYW5zZm9ybSBvZiBhIHN1YnF1ZXJ5IHRvIGEgbm9uLVNFVCBvcGVyYXRpb24gKGxpa2UgSU4yRVhJU1RTLCBvciBzdWJxdWVyeS10by1MQVRFUkFMLWRlcml2ZWQtdGFibGUpLiBUaGlzIGlzIG5vdCBhbGxvd2VkIHdpdGggb3B0aW1pemVyIHN3aXRjaCAnc3VicXVlcnlfdG9fZGVyaXZlZCcgb24uAEludmFsaWQgaW5wdXQgdmFsdWUgZm9yIHJlY292ZXJ5IHNvY2tldCBlbmRwb2ludHMgJyVzJy4gUGxlYXNlLCBwcm92aWRlIGEgdmFsaWQsIGNvbW1hIHNlcGFyYXRlZCwgbGlzdCBvZiBlbmRwb2ludHMgKElQOnBvcnQpLgBUaGUgc2VydmVyIGlzIG5vdCBsaXN0ZW5pbmcgb24gZW5kcG9pbnQgJyVzJy4gT25seSBlbmRwb2ludHMgdGhhdCB0aGUgc2VydmVyIGlzIGxpc3RlbmluZyBvbiBhcmUgdmFsaWQgcmVjb3ZlcnkgZW5kcG9pbnRzLgBWYXJpYWJsZSAnJS0uNjRzJyBjYW5ub3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSBvZiAnJS0uMjAwcycuICUtLjIwMHMAT25seSBCSU5MT0cgSU5TRVJULCBDT01NSVQgYW5kIFJPTExCQUNLIHN0YXRlbWVudHMgYXJlIGFsbG93ZWQgYWZ0ZXIgQ1JFQVRFIFRBQkxFIHdpdGggU1RBUlQgVFJBTlNBQ1RJT04gc3RhdGVtZW50LgBGb3JlaWduIGtleSBjcmVhdGlvbiBpcyBub3QgYWxsb3dlZCB3aXRoIENSRUFURSBUQUJMRSBhcyBTRUxFQ1QgYW5kIENSRUFURSBUQUJMRSB3aXRoIFNUQVJUIFRSQU5TQUNUSU9OIHN0YXRlbWVudC4AU1RBUlQgVFJBTlNBQ1RJT04gY2xhdXNlIGNhbm5vdCBiZSB1c2VkICUuMTI4cwBJbnZhbGlkIGpzb24gYXR0cmlidXRlLCBlcnJvcjogIiVzIiBhdCBwb3MgJXU6ICclcycAU3RvcmFnZSBlbmdpbmUgJyVzJyBkb2VzIG5vdCBzdXBwb3J0IEVOR0lORV9BVFRSSUJVVEUuAFRoZSB1c2VyIGF0dHJpYnV0ZSBtdXN0IGJlIGEgdmFsaWQgSlNPTiBvYmplY3QAQ2Fubm90IHBlcmZvcm0gb3BlcmF0aW9uIGFzIElubm9EQiByZWRvIGxvZ2dpbmcgaXMgZGlzYWJsZWQuIFBsZWFzZSByZXRyeSBhZnRlciBlbmFibGluZyByZWRvIGxvZyB3aXRoIEFMVEVSIElOU1RBTkNFAENhbm5vdCBwZXJmb3JtIG9wZXJhdGlvbiBhcyBJbm5vREIgaXMgYXJjaGl2aW5nIHJlZG8gbG9nLiBQbGVhc2UgcmV0cnkgYWZ0ZXIgc3RvcHBpbmcgcmVkbyBhcmNoaXZlIGJ5IGludm9raW5nIGlubm9kYl9yZWRvX2xvZ19hcmNoaXZlX3N0b3AoKQBOb3QgZW5vdWdoIHJlc291cmNlcyB0byBjb21wbGV0ZSBsb2NrIHJlcXVlc3QuAEV2YWx1YXRpbmcgYSBKU09OIHZhbHVlIGluIFNRTCBib29sZWFuIGNvbnRleHQgZG9lcyBhbiBpbXBsaWNpdCBjb21wYXJpc29uIGFnYWluc3QgSlNPTiBpbnRlZ2VyIDA7IGlmIHRoaXMgaXMgbm90IHdoYXQgeW91IHdhbnQsIGNvbnNpZGVyIGNvbnZlcnRpbmcgSlNPTiB0byBhIFNRTCBudW1lcmljIHR5cGUgd2l0aCBKU09OX1ZBTFVFIFJFVFVSTklORwBUaGUgZnVuY3Rpb24gJXMgZG9lcyBub3Qgc3VwcG9ydCB0aGUgY2hhcmFjdGVyIHNldCAnJXMnLgBDb252ZXJzaW9uIGZyb20gY29sbGF0aW9uICVzIGludG8gJXMgaW1wb3NzaWJsZSBmb3IgJXMAU2NoZW1hICclcycgaXMgaW4gcmVhZCBvbmx5IG1vZGUuAEZhaWxlZCB0byBlbmFibGUgQXN5bmNocm9ub3VzIFJlcGxpY2F0aW9uIENvbm5lY3Rpb24gRmFpbG92ZXIgZmVhdHVyZS4gVGhlIENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gU09VUkNFX0NPTk5FQ1RJT05fQVVUT19GQUlMT1ZFUiA9IDEgY2FuIG9ubHkgYmUgc2V0IHdoZW4gQEBHTE9CQUwuR1RJRF9NT0RFID0gT04uAEZhaWxlZCB0byBlbmFibGUgQXN5bmNocm9ub3VzIFJlcGxpY2F0aW9uIENvbm5lY3Rpb24gRmFpbG92ZXIgZmVhdHVyZS4gVGhlIENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gU09VUkNFX0NPTk5FQ1RJT05fQVVUT19GQUlMT1ZFUiA9IDEgY2FuIG9ubHkgYmUgc2V0IHdoZW4gU09VUkNFX0FVVE9fUE9TSVRJT04gb3B0aW9uIG9mIENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gaXMgZW5hYmxlZC4AVGhlIEBAR0xPQkFMLkdUSURfTU9ERSA9ICUtLjY0cyBjYW5ub3QgYmUgZXhlY3V0ZWQgYmVjYXVzZSBBc3luY2hyb25vdXMgUmVwbGljYXRpb24gQ29ubmVjdGlvbiBGYWlsb3ZlciBpcyBlbmFibGVkIGkuZS4gQ0hBTkdFIFJFUExJQ0FUSU9OIFNPVVJDRSBUTyBTT1VSQ0VfQ09OTkVDVElPTl9BVVRPX0ZBSUxPVkVSID0gMS4AQ0hBTkdFIFJFUExJQ0FUSU9OIFNPVVJDRSBUTyBTT1VSQ0VfQVVUT19QT1NJVElPTiA9IDAgY2Fubm90IGJlIGV4ZWN1dGVkIGJlY2F1c2UgQXN5bmNocm9ub3VzIFJlcGxpY2F0aW9uIENvbm5lY3Rpb24gRmFpbG92ZXIgaXMgZW5hYmxlZCBpLmUuIENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gU09VUkNFX0NPTk5FQ1RJT05fQVVUT19GQUlMT1ZFUiA9IDEuAEludmFsaWQgdXNlIG9mIHBhcmFtZXRlcnMgaW4gJyVzJwBDaGFyYWN0ZXIgc2V0ICclcycgY2Fubm90IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCAnJXMnIGluIGNhbGwgdG8gJXMuAENoYW5naW5nICVzIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybS4gRmFsbGluZyBiYWNrIHRvIHRoZSBkZWZhdWx0LgBJbnZhbGlkIHRpbWUgem9uZSBpbnRlcnZhbDogJyVzJwBDYW5ub3QgY2FzdCB2YWx1ZSB0byAlcy4AVGhlIGh5cGVyZ3JhcGggb3B0aW1pemVyIGRvZXMgbm90IHlldCBzdXBwb3J0ICclcycAVGhlIGh5cGVyZ3JhcGggb3B0aW1pemVyIGlzIGhpZ2hseSBleHBlcmltZW50YWwgYW5kIGlzIG1lYW50IGZvciB0ZXN0aW5nIG9ubHkuIERvIG5vdCBlbmFibGUgaXQgdW5sZXNzIHlvdSBhcmUgYSBNeVNRTCBkZXZlbG9wZXIuAE5vbmUgb2YgdGhlIGxvZy1zaW5rcyBzZWxlY3RlZCB3aXRoIC0tbG9nLWVycm9yLXNlcnZpY2VzPS4uLiBwcm92aWRlcyBhIGxvZy1wYXJzZXIuIFRoZSBzZXJ2ZXIgd2lsbCBub3QgYmUgYWJsZSB0byBtYWtlIHRoZSBwcmV2aW91cyBydW5zJyBlcnJvci1sb2dzIGF2YWlsYWJsZSBpbiBwZXJmb3JtYW5jZV9zY2hlbWEuZXJyb3JfbG9nLgBOb25lIG9mIHRoZSBsb2ctc2lua3Mgc2VsZWN0ZWQgaW4gQEBnbG9iYWwubG9nX2Vycm9yX3NlcnZpY2VzIHN1cHBvcnRzIHdyaXRpbmcgdG8gdGhlIHBlcmZvcm1hbmNlIHNjaGVtYS4gVGhlIHNlcnZlciB3aWxsIG5vdCBiZSBhYmxlIHRvIG1ha2UgdGhlIGN1cnJlbnQgcnVucycgZXJyb3IgZXZlbnRzIGF2YWlsYWJsZSBpbiBwZXJmb3JtYW5jZV9zY2hlbWEuZXJyb3JfbG9nLiBUbyBjaGFuZ2UgdGhpcywgYWRkIGEgbG9nLXNpbmsgdGhhdCBzdXBwb3J0cyB0aGUgcGVyZm9ybWFuY2Ugc2NoZW1hIHRvIEBAZ2xvYmFsLmxvZ19lcnJvcl9zZXJ2aWNlcy4AQEBnbG9iYWwubG9nX2Vycm9yX3NlcnZpY2VzIGxpc3RzIG1vcmUgdGhhbiBvbmUgbG9nLWZpbHRlciBzZXJ2aWNlLiBUaGlzIGlzIGRpc2NvdXJhZ2VkIGFzIGl0IHdpbGwgbWFrZSBpdCBoYXJkIHRvIHVuZGVyc3RhbmQgd2hpY2ggcnVsZSBpbiB3aGljaCBmaWx0ZXIgYWZmZWN0ZWQgYSBsb2ctZXZlbnQuAENvdWxkIG5vdCBvcGVuIGZpbGUgJyVzJyBmb3IgZXJyb3IgbG9nZ2luZyVzJXMAVXNlciAlLjI1NnMgaXMgcmVmZXJlbmNlZCBhcyBhIGRlZmluZXIgYWNjb3VudCBpbiAlcy4AT3BlcmF0aW9uICVzIGZhaWxlZCBmb3IgJS4yNTZzIGFzIGl0IGlzIHJlZmVyZW5jZWQgYXMgYSBkZWZpbmVyIGFjY291bnQgaW4gJXMuAERlY2ltYWwgbnVtYmVyIGluIHJlZ3VsYXIgZXhwcmVzc2lvbiBpcyB0b28gbGFyZ2UuAFRoZSB2YXJpYWJsZSAiJXMiIGhhcyBhIG5vbi1pbnRlZ2VyIGJhc2VkIHR5cGUAUmVhZHMgd2l0aCBzZXJpYWxpemFibGUgaXNvbGF0aW9uL1NFTEVDVCBGT1IgU0hBUkUgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIEFDTCB0YWJsZXMuAFRoZSBzdGF0ZW1lbnQgaXMgdW5zYWZlIGJlY2F1c2UgaXQgdXBkYXRlcyBhIHRhYmxlIGRlcGVuZGluZyBvbiBBQ0wgdGFibGUgcmVhZCBvcGVyYXRpb24uIEFzIHN0b3JhZ2UgZW5naW5lIHJvdyBsb2NrcyBhcmUgc2tpcHBlZCBmb3IgQUNMIHRhYmxlLCBpdCBtYXkgbm90IGhhdmUgc2FtZSBlZmZlY3Qgb24gc291cmNlIGFuZCByZXBsaWNhLgBTVE9QIFJFUExJQ0EgY29tbWFuZCBleGVjdXRpb24gaXMgaW5jb21wbGV0ZTogUmVwbGljYSBNb25pdG9yIHRocmVhZCBnb3QgdGhlIHN0b3Agc2lnbmFsLCB0aHJlYWQgaXMgYnVzeSwgTW9uaXRvciB0aHJlYWQgd2lsbCBzdG9wIG9uY2UgdGhlIGN1cnJlbnQgdGFzayBpcyBjb21wbGV0ZS4AVGhlIFJlcGxpY2EgTW9uaXRvciB0aHJlYWQgZmFpbGVkIHRvIHN0YXJ0LgBSZXBsaWNhdGlvbiBjYW5ub3Qgc3RhcnQlLjE5MnMgd2l0aCBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUyA9IExPQ0FMfDxVVUlEPiBhcyB0aGlzIHNlcnZlciB1c2VzIEBAR0xPQkFMLkdUSURfTU9ERSA8PiBPTi4AVGhlIG9wdGlvbnMgQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlMgPSBMT0NBTHw8VVVJRD4gYW5kIFNPVVJDRV9BVVRPX1BPU0lUSU9OID0gMSBjYW5ub3QgYmUgdXNlZCB0b2dldGhlci4AQ0hBTkdFIFJFUExJQ0FUSU9OIFNPVVJDRSBUTyBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUyA9IExPQ0FMfDxVVUlEPiBjYW5ub3QgYmUgZXhlY3V0ZWQgYmVjYXVzZSBAQEdMT0JBTC5HVElEX01PREUgPD4gT04uAFRoZSB2YWx1ZSBvZiBzcWxfcmVwbGljYV9za2lwX2NvdW50ZXIgd2lsbCBvbmx5IHRha2UgZWZmZWN0IGZvciBjaGFubmVscyBydW5uaW5nIHdpdGggQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlMgPD4gT0ZGLgBVc2luZyBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUyBjcmVhdGVzIGxpbWl0YXRpb25zIG9uIHRoZSByZXBsaWNhdGlvbiB0b3BvbG9neSAtIHlvdSBjYW5ub3QgZmFpbCBvdmVyIGJldHdlZW4gZG93bnN0cmVhbSBhbmQgdXBzdHJlYW0gc2VydmVycy4gT25seSB1c2UgdGhpcyBvcHRpb24gaWYgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGVuYWJsZSBHVElEcyBvbiB0aGUgc291cmNlLCBmb3IgaW5zdGFuY2UsIGJlY2F1c2Ugb2YgbGFjayBvZiBwZXJtaXNzaW9ucy4gSWYgcG9zc2libGUsIHVzZSB0aGUgcHJvY2VkdXJlIGZvciBlbmFibGluZyBHVElEIHRyYW5zYWN0aW9ucyBvbmxpbmUgaW5zdGVhZCwgYXMgZGVzY3JpYmVkIGluIHRoZSBkb2N1bWVudGF0aW9uLgBXQUlUX1VOVElMX1NRTF9USFJFQURfQUZURVJfR1RJRFMgY2Fubm90IGJlIHVzZWQgb24gYSBjaGFubmVsIGNvbmZpZ3VyZWQgd2l0aCBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUyA9IExPQ0FMfDxVVUlEPgBUaGUgU1FMX0FGVEVSX0dUSURTIG9yIFNRTF9CRUZPUkVfR1RJRFMgY2xhdXNlcyBmb3IgU1RBUlQgUkVQTElDQSBjYW5ub3QgYmUgdXNlZCB3aGVuIHRoZSByZXBsaWNhdGlvbiBjaGFubmVsIGlzIGNvbmZpZ3VyZWQgd2l0aCBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUyA9IExPQ0FMfDxVVUlEPi4AUmVwbGljYXRpb24gJyUuMTkycycgaXMgY29uZmlndXJlZCB3aXRoIEFTU0lHTl9HVElEU19UT19BTk9OWU1PVVNfVFJBTlNBQ1RJT05TID0gPFVVSUQ+IHdoZXJlIHRoZSBVVUlEIHZhbHVlIGlzIGVxdWFsIHRvIHRoZSBncm91cF9yZXBsaWNhdGlvbl9ncm91cF9uYW1lAENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlMgPSA8VVVJRD4gY2Fubm90IGJlIGV4ZWN1dGVkIGJlY2F1c2UgdGhlIFVVSUQgdmFsdWUgaXMgZXF1YWwgdG8gdGhlIGdyb3VwX3JlcGxpY2F0aW9uX2dyb3VwX25hbWUuAFRoZSBncm91cF9yZXBsaWNhdGlvbl9yZWNvdmVyeSBjaGFubmVsIGlzIHN0aWxsIHJ1bm5pbmcsIG1vc3QgbGlrZWx5IGl0IGlzIHdhaXRpbmcgZm9yIGEgZGF0YWJhc2UvdGFibGUgbG9jaywgd2hpY2ggaXMgcHJldmVudGluZyB0aGUgY2hhbm5lbCBmcm9tIHN0b3BwaW5nLiBQbGVhc2UgY2hlY2sgZGF0YWJhc2UvdGFibGUgbG9ja3MsIGluY2x1ZGluZyB0aGUgb25lcyBjcmVhdGVkIGJ5IGJhY2t1cCB0b29scy4AQVVUT0VYVEVORF9TSVpFIHNob3VsZCBiZSBhIG11bHRpcGxlIG9mICV1TQBJbm5vREI6ICIlcyIgbm90IGFsbG93ZWQgd2l0aCBnZW5lcmFsIHRhYmxlc3BhY2VzAEFVVE9FWFRFTkRfU0laRSB2YWx1ZSBzaG91bGQgYmUgYmV0d2VlbiAldU0gYW5kICV1TQBBVVRPRVhURU5EX1NJWkUgY2xhdXNlIGlzIG5vdCB2YWxpZCBmb3IgJXMgdGFibGVzcGFjZS4AVXNlciBhY2NvdW50ICVzIGlzIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgZ3JhbnRlZCB0byB0aGUgcm9sZSAlcy4gVGhlIEdSQU5UIHdvdWxkIGNyZWF0ZSBhIGxvb3AAQSB0YWJsZSBtdXN0IGhhdmUgYXQgbGVhc3Qgb25lIHZpc2libGUgY29sdW1uLgBDb21wcmVzc2lvbiBmYWlsZWQgd2l0aCB0aGUgZm9sbG93aW5nIGVycm9yIDogJXMAVGhlIHBhcmFtZXRlciBuZXR3b3JrX25hbWVzcGFjZSBpcyByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZS4gUGxlYXNlIHVzZSB0aGUgQ0hBTkdFIFJFUExJQ0FUSU9OIFNPVVJDRSBjb21tYW5kIHRvIHNldCBjaGFubmVsIG5ldHdvcmtfbmFtZXNwYWNlIHBhcmFtZXRlci4AVGhlIGNsaWVudCB3YXMgZGlzY29ubmVjdGVkIGJ5IHRoZSBzZXJ2ZXIgYmVjYXVzZSBvZiBpbmFjdGl2aXR5LiBTZWUgd2FpdF90aW1lb3V0IGFuZCBpbnRlcmFjdGl2ZV90aW1lb3V0IGZvciBjb25maWd1cmluZyB0aGlzIGJlaGF2aW9yLgBJbnZhbGlkIGNhc3QgZnJvbSAlcyB0byAlcy4ASW52YWxpZCBjYXN0IGZyb20gJXMgdG8gJXMuIEEgcG9seWdvbiByaW5nIGlzIGluIHRoZSB3cm9uZyBkaXJlY3Rpb24uAEFyZ3VtZW50cyB0byBmdW5jdGlvbiAlcyBjb250YWlucyBnZW9tZXRyaWVzIHdpdGggZGlmZmVyZW50IFNSSURzOiAldSBhbmQgJXUuIEFsbCBnZW9tZXRyaWVzIG11c3QgaGF2ZSB0aGUgc2FtZSBTUklELgBLZXlyaW5nIHJlbG9hZCBmYWlsZWQuIFBsZWFzZSBjaGVjayBlcnJvciBsb2cgZm9yIG1vcmUgZGV0YWlscy4AVGFibGVzcGFjZSAnJS4xOTJzJyBpcyBpbnZhbGlkIGZvciBTREkgb3BlcmF0aW9ucy4AVmFsdWUgdG9vIGxvbmcgc2V0dGluZyBTT1VSQ0VfQ09NUFJFU1NJT05fQUxHT1JJVEhNUyBvcHRpb24gdG8gYSAlZCBjaGFycyBsb25nIHN0cmluZyBmb3IgY2hhbm5lbCAnJS4xOTJzJy4AQSBkZXByZWNhdGVkIFRMUyB2ZXJzaW9uICVzIGlzIGVuYWJsZWQgZm9yIGNoYW5uZWwgJXMuIFBsZWFzZSB1c2UgVExTdjEuMiBvciBoaWdoZXIuAENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlMgPSA8VVVJRD4gY2Fubm90IGJlIGV4ZWN1dGVkIGJlY2F1c2UgdGhlIFVVSUQgdmFsdWUgaXMgZXF1YWwgdG8gdGhlIGdyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQuAFJlcGxpY2F0aW9uICclLjE5MnMnIGlzIGNvbmZpZ3VyZWQgd2l0aCBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUyA9IDxVVUlEPiB3aGVyZSB0aGUgVVVJRCB2YWx1ZSBpcyBlcXVhbCB0byB0aGUgZ3JvdXBfcmVwbGljYXRpb25fdmlld19jaGFuZ2VfdXVpZABVbmFibGUgdG8gcmV0cmlldmUgZ3JvdXBfcmVwbGljYXRpb25fdmlld19jaGFuZ2VfdXVpZCB2YXJpYWJsZSBkdXJpbmcgc2VydmVyIGNoZWNrcyBvbiByZXBsaWNhdGlvbiBvcGVyYXRpb25zLgBCb3RoIGF1ZGl0X2xvZ19tYXhfc2l6ZSBhbmQgYXVkaXRfbG9nX3BydW5lX3NlY29uZHMgYXJlIHNldCB0byBub24temVyby4gYXVkaXRfbG9nX21heF9zaXplIHRha2VzIHByZWNlZGVuY2UgYW5kIGF1ZGl0X2xvZ19wcnVuZV9zZWNvbmRzIGlzIGlnbm9yZWQAYXVkaXRfbG9nX3JvdGF0ZV9vbl9zaXplIGlzIG5vdCBncmFudWxhciBlbm91Z2ggZm9yIHRoZSB2YWx1ZSBvZiBhdWRpdF9sb2dfbWF4X3NpemUgc3VwcGxpZWQuIFNob3VsZCBiZSBhdCBsZWFzdCAlZCB0aW1lcyBzbWFsbGVyLgBDcmVhdGUvQWx0ZXIgdXNlciBoYXMgZmFpbGVkLCBDb25maWd1cmVkIHVzZXIgcmVhbG0gYXMgYXV0aGVudGljYXRpb24gc3RyaW5nIGlzIGVtcHR5LCBQbGVhc2UgbWFrZSBzdXJlIHRvIGNvbmZpZ3VyZSBhdXRoZW50aWNhdGlvbiBzdHJpbmcgYXMgdXNlciByZWFsbS4AQ2Fubm90IGluc3RhbGwgdGhlICUuMTkycyBwbHVnaW4gd2hlbiB0aGUgJS4xOTJzIHBsdWdpbiBpcyBpbnN0YWxsZWQuACVkIGVycm9yIGxvZ2dpbmcgY29tcG9uZW50KHMpIGZhaWxlZCB0byBmbHVzaC4gRm9yIGZpbGUtYmFzZWQgbG9ncyB0aGlzIGNhbiBoYXBwZW4gd2hlbiB0aGUgcGF0aCBvciBwZXJtaXNzaW9ucyBvZiB0aGUgbG9nLWZpbGUgaGF2ZSBjaGFuZ2VkLiBGYWlsdXJlIHRvIGZsdXNoIGZpbGVkLWJhc2VkIGxvZ3MgbWF5IGFmZmVjdCBsb2ctcm90YXRpb24uAFRoZSB1bnRpbCBjbGF1c2UgU1FMX0FGVEVSX01UU19HQVBTIGlzIGJlaW5nIHVzZWQgZm9yIGNoYW5uZWwgJyUuMTkycycgd2hlbiBHVElEX01PREUgPSBPTiBhbmQgU09VUkNFX0FVVE9fUE9TSVRJT049MSBtZWFuaW5nIHRoZSBzZXJ2ZXIgZGlkIG5vdCBjb21wdXRlIGludGVybmFsbHkgd2hhdCBnYXBzIG1heSBleGlzdCBpbiB0aGUgcmVsYXkgbG9nIHRyYW5zYWN0aW9uIGV4ZWN1dGlvbi4gVG8gY2xvc2UgYW55IGV4ZWN1dGlvbiBnYXBzIHVzZSBlaXRoZXIgdGhlIFNRTF9CRUZPUkVfR1RJRFMgb3IgU1FMX0FGVEVSX0dUSURTIHVudGlsIGNsYXVzZS4ASW52YWxpZCB0YXJnZXQgZm9yIGFzc2lnbm1lbnQgaW4gSU5TRVJUIG9yIFVQREFURSBzdGF0ZW1lbnQgJyUuMTkycycuAFRoaXMgb3BlcmF0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQgb24gYSBHcm91cCBSZXBsaWNhdGlvbiBzZWNvbmRhcnkgbWVtYmVyLCBpdCBtdXN0IGJlIGRvbmUgb24gdGhlIGdyb3VwIHByaW1hcnkuAFVuYWJsZSB0byBwcm9wYWdhdGUgdGhlIFNPVVJDRV9DT05ORUNUSU9OX0FVVE9fRkFJTE9WRVIgdmFsdWUgZm9yIGNoYW5uZWwgJyVzJyB0byBncm91cCByZXBsaWNhdGlvbiBtZW1iZXJzLiBQbGVhc2UgcmV0cnkgdGhlIG9wZXJhdGlvbi4AYXVkaXRfbG9nX2Zvcm1hdF91bml4X3RpbWVzdGFtcCBpcyBhcHBsaWNhYmxlIG9ubHkgd2hlbiBhdWRpdF9sb2dfZm9ybWF0ID0gSlNPTi4ASW52YWxpZCBwbHVnaW4gIiVzIiBzcGVjaWZpZWQgYXMgJWQgZmFjdG9yIGR1cmluZyAiJXMiLgBJREVOVElGSUVEIEJZIGNsYXVzZSBkdXJpbmcgIiVzIiBub3Qgc3VwcG9ydGVkIGZvciBwbHVnaW4gIiVzIi4AVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgcGx1Z2luICIlcyIuAEF1dGhlbnRpY2F0aW9uIHBsdWdpbiByZXF1aXJlcyByZWdpc3RyYXRpb24uIFBsZWFzZSByZWZlciBBTFRFUiBVU0VSIHN5bnRheCBvciBzZXQgLS1yZWdpc3Rlci1mYWN0b3IgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBkbyByZWdpc3RyYXRpb24uACVkIGZhY3RvciBhdXRoZW50aWNhdGlvbiBtZXRob2QgZXhpc3RzLiBQbGVhc2UgZG8gQUxURVIgVVNFUi4uLiBEUk9QICVkIGZhY3RvciBiZWZvcmUgZG9pbmcgdGhpcyBvcGVyYXRpb24gT1IgZG8gQUxURVIgVVNFUi4uLiBNT0RJRlkgJWQgZmFjdG9yLi4uIHRvIG1vZGlmeSBleGlzdGluZyAlZCBmYWN0b3IgYXV0aGVudGljYXRpb24gbWV0aG9kLgAlZCBmYWN0b3IgYXV0aGVudGljYXRpb24gbWV0aG9kIGRvZXNuJ3QgZXhpc3QuIFBsZWFzZSBkbyBBTFRFUiBVU0VSLi4uIEFERCAlZCBmYWN0b3IuLi4gYmVmb3JlIGRvaW5nIHRoaXMgb3BlcmF0aW9uLgAlZCBmYWN0b3IgYXV0aGVudGljYXRpb24gbWV0aG9kIGRvZXMgbm90IG1hdGNoIGFnYWluc3QgYXV0aGVudGljYXRpb24gcG9saWN5LiBQbGVhc2UgcmVmZXIgQEBhdXRoZW50aWNhdGlvbl9wb2xpY3kgc3lzdGVtIHZhcmlhYmxlLgBUaGUgcmVnaXN0cmF0aW9uIGZvciAlZCBmYWN0b3IgYXV0aGVudGljYXRpb24gbWV0aG9kIGlzIGFscmVhZHkgY29tcGxldGVkLiBZb3UgY2Fubm90IHBlcmZvcm0gcmVnaXN0cmF0aW9uIG11bHRpcGxlIHRpbWVzLgBUaGUgcmVnaXN0cmF0aW9uIG9wZXJhdGlvbiBpcyBub3QgYWxsb3dlZCBmb3IgdXNlciAnJXMnQCclcycuIFRoZSBvcGVyYXRpb24gY2FuIG9ubHkgYmUgcGVyZm9ybWVkIGluIHVzZXIncyBvd24gc2Vzc2lvbi4AQXV0aGVudGljYXRpb24gcGx1Z2luJ3MgcmVnaXN0cmF0aW9uIGZhaWxlZC4AJWQgZmFjdG9yIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCBzaG91bGQgYmUgYWRkZWQgYmVmb3JlICVkIGZhY3RvciBhdXRoZW50aWNhdGlvbiBtZXRob2QuAEF1dGhlbnRpY2F0aW9uIGZhY3RvciBzaG91bGQgYmUgZGlmZmVyZW50LgBUaGUgb3BlcmF0aW9uICIlcyIgY2Fubm90IGJlIHBlcmZvcm1lZCBmb3IgdXNlciAnJXMnQCclcycgY29uZmlndXJlZCB0byBjb25uZWN0IHdpdGhvdXQgYSBwYXNzd29yZC4AR1RJRF9PTkxZIGNhbm5vdCBiZSBlbmFibGVkIGZvciByZXBsaWNhdGlvbiBjaGFubmVsICclLjE5MnMnLiBZb3UgbmVlZCBHVElEX01PREUgPSBPTiwgU09VUkNFX0FVVE9fUE9TSVRJT04gPSAxIGFuZCBSRVFVSVJFX1JPV19GT1JNQVQgPSAxLgBSRVFVSVJFX1JPV19GT1JNQVQgY2Fubm90IGJlIGRpc2FibGVkIGZvciByZXBsaWNhdGlvbiBjaGFubmVsICclLjE5MnMnIHdoZW4gR1RJRF9PTkxZPTEuAFNPVVJDRV9BVVRPX1BPU0lUSU9OIGNhbm5vdCBiZSBkaXNhYmxlZCBmb3IgcmVwbGljYXRpb24gY2hhbm5lbCAnJS4xOTJzJyB3aGVuIEdUSURfT05MWT0xLgBXaGVuIGRpc2FibGluZyBHVElEX09OTFkgYW5kIFNPVVJDRV9BVVRPX1BPU0lUSU9OIEZPUiBDSEFOTkVMICclLjE5MnMnIHlvdSBtdXN0IHByb3ZpZGUgU09VUkNFX0xPR19GSUxFIGFuZCBTT1VSQ0VfTE9HX1BPUyBhcyBzb3VyY2UgcG9zaXRpb25zIGFyZSBpbnZhbGlkLgBXaGVuIGRpc2FibGluZyBTT1VSQ0VfQVVUT19QT1NJVElPTiBGT1IgQ0hBTk5FTCAnJS4xOTJzJyB5b3UgbXVzdCBwcm92aWRlIFNPVVJDRV9MT0dfRklMRSBhbmQgU09VUkNFX0xPR19QT1MgYXMgc291cmNlIHBvc2l0aW9ucyBhcmUgaW52YWxpZC4AV2hlbiBjb25maWd1cmluZyBhIGdyb3VwIHJlcGxpY2F0aW9uIGNoYW5uZWwgeW91IG11c3QgZG8gaXQgd2hlbiBHVElEX01PREUgPSBPTi4AUmVwbGljYXRpb24gY2Fubm90IHN0YXJ0JS4xOTJzIHdpdGggR1RJRF9PTkxZID0gMSBhcyB0aGlzIHNlcnZlciB1c2VzIEBAR0xPQkFMLkdUSURfTU9ERSA8PiBPTi4AVGhlIHJlcGxpY2F0aW9uIHBvc2l0aW9ucyByZWxhdGl2ZSB0byB0aGUgc291cmNlIG1heSBiZSBvdXQtb2YtZGF0ZSBvbiBjaGFubmVsICclLjE5MnMnLCBkdWUgdG8gdGhlIHVzZSBvZiBHVElEX09OTFk9MS4gVGhlIG91dC1vZi1kYXRlIHBvc2l0aW9ucyBjYW4gc3RpbGwgYmUgdXNlZCBpbiBzb21lIGNhc2VzIHNvLCBpbiBvcmRlciB0byB1cGRhdGUgdGhlbSwgd2Ugc3VnZ2VzdCB0aGF0IHlvdSBzdGFydCB0aGUgcmVwbGljYXRpb24gdG8gcmVjZWl2ZSBhbmQgYXBwbHkgYXQgbGVhc3Qgb25lIHRyYW5zYWN0aW9uLCB3aGljaCB3aWxsIHNldCB0aGUgcG9zaXRpb25zIHRvIHZhbGlkIHZhbHVlcy4AU1NMIGZpcHMgbW9kZSBlcnJvcjogJXMAJXM9JWxsdSBpcyBvdXRzaWRlIHRoZSB2YWxpZCByYW5nZSBbJWxsdSwlbGx1XS4gJWxsdSB3aWxsIGJlIHVzZWQuAE1BVENIIGRvZXMgbm90IHN1cHBvcnQgUk9MTFVQIGNvbHVtbnMuAE1pc3NpbmcgbG9jYWxlIHJlc291cmNlIGluIHJlZ3VsYXIgZXhwcmVzc2lvbiBsaWJyYXJ5LgBSZWd1bGFyIGV4cHJlc3Npb24gbGlicmFyeSB1c2VkIGRlZmF1bHQgKHJvb3QpIGxvY2FsZS4ATWlzc2luZyBkYXRhIGZpbGUgaW4gcmVndWxhciBleHByZXNzaW9uIGxpYnJhcnkuACclLS42NHMnIGlzIGEgY29sbGF0aW9uIG9mIHRoZSBkZXByZWNhdGVkIGNoYXJhY3RlciBzZXQgJXMuIFBsZWFzZSBjb25zaWRlciB1c2luZyAlcyB3aXRoIGFuIGFwcHJvcHJpYXRlIGNvbGxhdGlvbiBpbnN0ZWFkLgBUaGUgJXMgd2FzIGNhbGxlZCB3aGVuIHRoZXJlIHdhcyBhbHJlYWR5IGFub3RoZXIgY29uY3VycmVudCBjYWxsIHRvIHRoaXMgcHJvY2VkdXJlLiBObyBhY3Rpb24gd2FzIHRha2VuLiBXYWl0IGZvciBvdGhlciBjYWxscyB0byAlcyB0byBmaW5pc2ggYmVmb3JlIHJldHJ5aW5nLgBDb25uZWN0aW9uIGNsb3NlZC4gR2xvYmFsIGNvbm5lY3Rpb24gbWVtb3J5IGxpbWl0ICVsbHUgYnl0ZXMgZXhjZWVkZWQuIENvbnN1bWVkICVsbHUgYnl0ZXMuAENvbm5lY3Rpb24gY2xvc2VkLiBDb25uZWN0aW9uIG1lbW9yeSBsaW1pdCAlbGx1IGJ5dGVzIGV4Y2VlZGVkLiBDb25zdW1lZCAlbGx1IGJ5dGVzLgBOZWVkIHRvIHJlYnVpbGQgdGhlIHRhYmxlIHRvIGNoYW5nZSBjb2x1bW4gdHlwZQBUaGlzIGZ1bmN0aW9uICclLS4xOTJzJyBoYXMgdGhlIHNhbWUgbmFtZSBhcyBhIGxvYWRhYmxlIGZ1bmN0aW9uIChVREYpLiBUbyBpbnZva2UgdGhlIHN0b3JlZCBmdW5jdGlvbiwgaXQgaXMgbmVjZXNzYXJ5IHRvIHF1YWxpZnkgaXQgd2l0aCB0aGUgc2NoZW1hIG5hbWUuAENvdWxkIG5vdCBwdXJnZSBiaW5hcnkgbG9ncyBzaW5jZSBhbm90aGVyIHNlc3Npb24gaXMgZXhlY3V0aW5nIExPQ0sgSU5TVEFOQ0UgRk9SIEJBQ0tVUC4gV2FpdCBmb3IgdGhhdCBzZXNzaW9uIHRvIHJlbGVhc2UgdGhlIGxvY2suAFRvbyBtYW55IHdpbmRvd3MgaW4gU0VMRUNUOiAlZC4gTWF4aW11bSBhbGxvd2VkIGlzICVkLiBVc2UgbmFtZWQgd2luZG93cyB0byBzaGFyZSB3aW5kb3dzIGJldHdlZW4gd2luZG93IGZ1bmN0aW9ucy4AJXMAQ29tbWVudCBmb3IgJXMgJyVzJyBjb250YWlucyBhbiBpbnZhbGlkICVzIGNoYXJhY3RlciBzdHJpbmc6ICclLjY0cycuAERlZmluaXRpb24gb2YgJXMgJyUtLjE5MnMuJS0uMTkycycgY29udGFpbnMgYW4gaW52YWxpZCAlcyBjaGFyYWN0ZXIgc3RyaW5nOiAnJS42NHMnLgBDYW4ndCBleGVjdXRlIHRoZSBnaXZlbiBjb21tYW5kIHdoZW4gQEBTRVNTSU9OLkdUSURfTkVYVCA9PSAnVVVJRDpOVU1CRVInLgBYQTogVGVtcG9yYXJ5IHRhYmxlcyBjYW5ub3QgYmUgYWNjZXNzZWQgaW5zaWRlIFhBIHRyYW5zYWN0aW9ucyB3aGVuIHhhX2RldGFjaF9vbl9wcmVwYXJlPU9OAE1heGltdW0gcm93IHZlcnNpb25zIHJlYWNoZWQgZm9yIHRhYmxlICVzLiBObyBtb3JlIGNvbHVtbnMgY2FuIGJlIGFkZGVkIG9yIGRyb3BwZWQgaW5zdGFudGx5LiBQbGVhc2UgdXNlIENPUFkvSU5QTEFDRS4AQ29sdW1uIGNhbid0IGJlIGFkZGVkIHdpdGggQUxHT1JJVEhNPUlOU1RBTlQgYXMgYWZ0ZXIgdGhpcyBtYXggcG9zc2libGUgcm93IHNpemUgY3Jvc3NlcyBtYXggcGVybWlzc2libGUgcm93IHNpemUuIFRyeSBBTEdPUklUSE09SU5QTEFDRS9DT1BZLgBBbGwgcXVlcmllcyBoYXZlIGJlZW4gYmxvY2tlZCB3aGlsZSBmdW5jdGlvbiAnZ3JvdXBfcmVwbGljYXRpb25fc2V0X2FzX3ByaW1hcnkoKScgaXMgZXhlY3V0aW5nLiBQbGVhc2UgcmVmZXIgdGltZW91dCBwYXJhbWV0ZXIgb2YgZnVuY3Rpb24gJ2dyb3VwX3JlcGxpY2F0aW9uX3NldF9hc19wcmltYXJ5KCknLgBEZWxpbWl0ZXIgJyVzJyBpbiBwb3NpdGlvbiAlZCBpbiBkYXRldGltZSB2YWx1ZSAnJXMnIGF0IHJvdyAlZCBpcyBkZXByZWNhdGVkLiBQcmVmZXIgdGhlIHN0YW5kYXJkICclYycuAERlbGltaXRlciAnJXMnIGluIHBvc2l0aW9uICVkIGluIGRhdGV0aW1lIHZhbHVlICclcycgYXQgcm93ICVkIGlzIHN1cGVyZmx1b3VzIGFuZCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgcmVtb3ZlLgBDYW5ub3QgcGVyc2lzdCBTRU5TSVRJVkUgc3lzdGVtIHZhcmlhYmxlICclcycgYmVjYXVzZSBrZXlyaW5nIGNvbXBvbmVudCBzdXBwb3J0IGlzIHVuYXZhaWxhYmxlLgBTRU5TSVRJVkUgc3lzdGVtIHZhcmlhYmxlICclcycgd2FzIHBlcnNpc3RlZCB3aXRob3V0IGVuY3J5cHRpb24uIENvbnNpZGVyIHJlc3RhcnRpbmcgc2VydmVyIHdpdGgga2V5cmluZyBjb21wb25lbnQgc3VwcG9ydCB0byBwZXJzaXN0IFNFTlNJVElWRSB2YXJpYWJsZXMgc2VjdXJlbHkuAFRyaWdnZXIgJyUtLjE5MnMnIGFscmVhZHkgZXhpc3RzIG9uIHRoZSB0YWJsZSAnJS0uMTkycycuJyUtLjE5MnMnLgBUcmlnZ2VyICclLS4xOTJzJy4nJS0uMTkycycgYWxyZWFkeSBleGlzdHMgb24gYSBkaWZmZXJlbnQgdGFibGUuIFRoZSAnSUYgTk9UIEVYSVNUUycgY2xhdXNlIGlzIG9ubHkgc3VwcG9ydGVkIGZvciB0cmlnZ2VycyBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgdGFibGUuAFRoaXMgZnVuY3Rpb24gJyUtLjE5MnMnIGhhcyB0aGUgc2FtZSBuYW1lIGFzIGEgbmF0aXZlIGZ1bmN0aW9uLiBUaGUgJ0lGIE5PVCBFWElTVFMnIGNsYXVzZSBpcyBub3Qgc3VwcG9ydGVkIHdoaWxlIGNyZWF0aW5nIGEgbG9hZGFibGUgZnVuY3Rpb24gd2l0aCB0aGUgc2FtZSBuYW1lIGFzIGEgbmF0aXZlIGZ1bmN0aW9uLgBTRVQgUEFTU1dPUkQgaGFzIG5vIHNpZ25pZmljYW5jZSBmb3IgdXNlciAnJXMnQCclcycgYXMgdGhlIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCB1c2VkIGRvZXNuJ3Qgc3RvcmUgYXV0aGVudGljYXRpb24gZGF0YSBpbiB0aGUgTXlTUUwgc2VydmVyLiBQbGVhc2UgY29uc2lkZXIgdXNpbmcgQUxURVIgVVNFUiBpbnN0ZWFkIGlmIHlvdSB3YW50IHRvIGNoYW5nZSBhdXRoZW50aWNhdGlvbiBwYXJhbWV0ZXJzLgBDYW5ub3QgcmVjb3ZlciBmcm9tIGRldGVjdF9vbmx5IGRvdWJsZXdyaXRlIGJ1ZmZlciBhcyBwYWdlICV1IGZyb20gYmF0Y2ggZG91Ymxld3JpdGUgZmlsZSBpcyBjb3JydXB0ZWQuAERhdGFiYXNlIHBhZ2UgY29ycnVwdGlvbiBvZiB0YWJsZXNwYWNlICVzIHNwYWNlX2lkOiAldSBwYWdlX251bTogJXUuIENhbm5vdCByZWNvdmVyIGl0IGZyb20gdGhlIGRvdWJsZXdyaXRlIGJ1ZmZlciBiZWNhdXNlIGl0IHdhcyB3cml0dGVuIGluIGRldGVjdF9vbmx5LWRvdWJsZXdyaXRlIG1vZGUuAExhdGl0dWRlIG9mIG9yaWdpbiBtdXN0IGJlIHdpdGhpbiBbLTkwLCA5MF0gZGVncmVlcywgc3BlY2lmaWVkIGluIHRoZSBTUlMgYW5ndWxhciB1bml0LgBMb25naXR1ZGUgb2Ygb3JpZ2luIG11c3QgYmUgd2l0aGluICgtMTgwLCAxODBdIGRlZ3JlZXMsIHNwZWNpZmllZCBpbiB0aGUgU1JTIGFuZ3VsYXIgdW5pdC4AVGhlIHNwYXRpYWwgcmVmZXJlbmNlIHN5c3RlbSBkZWZpbml0aW9uIGZvciBTUklEICV1IGNvbnRhaW5zIHVudXNlZCBwcm9qZWN0aW9uIHBhcmFtZXRlciAiJXMiLgBGYWlsZWQgdG8gZ2VuZXJhdGUgaW52aXNpYmxlIHByaW1hcnkga2V5LiBDb2x1bW4gJ215X3Jvd19pZCcgYWxyZWFkeSBleGlzdHMuAEZhaWxlZCB0byBnZW5lcmF0ZSBpbnZpc2libGUgcHJpbWFyeSBrZXkuIEF1dG8taW5jcmVtZW50IGNvbHVtbiBhbHJlYWR5IGV4aXN0cy4AQWx0ZXJpbmcgZ2VuZXJhdGVkIGludmlzaWJsZSBwcmltYXJ5IGtleSBjb2x1bW4gJ215X3Jvd19pZCcgaXMgbm90IGFsbG93ZWQuAFBsZWFzZSBkcm9wIHByaW1hcnkga2V5IGNvbHVtbiB0byBiZSBhYmxlIHRvIGRyb3AgZ2VuZXJhdGVkIGludmlzaWJsZSBwcmltYXJ5IGtleS4AR2VuZXJhdGluZyBhbiBpbnZpc2libGUgcHJpbWFyeSBrZXkgZm9yIGEgdGFibGUgY3JlYXRlZCB1c2luZyBDUkVBVEUgVEFCTEUgLi4uIFNFTEVDVCAuLi4gaXMgZGlzYWxsb3dlZCB3aGVuIGJpbmxvZ19mb3JtYXQ9U1RBVEVNRU5ULiBJdCBjYW5ub3QgYmUgZ3VhcmFudGVlZCB0aGF0IHRoZSBTRUxFQ1QgcmV0cmlldmVzIHJvd3MgaW4gdGhlIHNhbWUgb3JkZXIgb24gc291cmNlIGFuZCByZXBsaWNhLiBUaGVyZWZvcmUsIGl0IGNhbm5vdCBiZSBndWFyYW50ZWVkIHRoYXQgdGhlIHZhbHVlIGdlbmVyYXRlZCBmb3IgdGhlIGdlbmVyYXRlZCBpbXBsaWNpdCBwcmltYXJ5IGtleSBjb2x1bW4gd2lsbCBiZSB0aGUgc2FtZSBvbiBzb3VyY2UgYW5kIHJlcGxpY2EgZm9yIGFsbCByb3dzLiBVc2UgYmlubG9nX2Zvcm1hdD1ST1cgb3IgTUlYRUQgdG8gZXhlY3V0ZSB0aGlzIHN0YXRlbWVudC4AVGhlIG9wdGlvbiBleHBpcmVfbG9nc19kYXlzIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggb3B0aW9uIGJpbmxvZ19leHBpcmVfbG9nc19zZWNvbmRzLiBUbyBzZXQgb25lLCBmaXJzdCB1bnNldCB0aGUgb3RoZXIgYnkgc2V0dGluZyBpdCB0byAwLgBSZWN1cnNpdmUgdGFibGUgcmVmZXJlbmNlIGluIEVYQ0VQVCBvciBJTlRFUlNFQ1Qgb3BlcmFuZCBpcyBub3QgYWxsb3dlZC4ARXJyb3Igd2hlbiB0cnlpbmcgdG8gZmV0Y2ggaW5mb3JtYXRpb24gZnJvbSBzZWN1cml0eSBjb250ZXh0IG9iamVjdCwgd2hlbiB0cnlpbmcgdG8gY29ubmVjdCB0aGUgc2VydmVyLgBFcnJvciBpbiBjb21tYW5kIHNlcnZpY2UgYmFja2VuZCBpbnRlcmZhY2UsIGJlY2F1c2Ugb2YgOiAiJXMiAFRoZSBQUklWSUxFR0VfQ0hFQ0tTX1VTRVIgZm9yIGNoYW5uZWwgJyUuMTkycycgd291bGQgbmVlZCBGSUxFIHByaXZpbGVnZSB0byBleGVjdXRlIGEgTE9BRCBEQVRBIElORklMRSBzdGF0ZW1lbnQgcmVwbGljYXRlZCBpbiBzdGF0ZW1lbnQgZm9ybWF0LiBDb25zaWRlciB1c2luZyBiaW5sb2dfZm9ybWF0PVJPVyBvbiBzb3VyY2UuIElmIHRoZSByZXBsaWNhdGVkIGV2ZW50cyBhcmUgdHJ1c3RlZCwgcmVjb3ZlciBmcm9tIHRoZSBmYWlsdXJlIGJ5IHRlbXBvcmFyaWx5IGdyYW50aW5nIEZJTEUgdG8gdGhlIFBSSVZJTEVHRV9DSEVDS1NfVVNFUi4AVGhlICdTRVQgR0xPQkFMIGdyb3VwX3JlcGxpY2F0aW9uX2ZvcmNlX21lbWJlcnM9JXMnIGNvbW1hbmQgZW5jb3VudGVyZWQgYSBmYWlsdXJlLiAlcwBVc2luZyAlcyBhcyB1bnF1b3RlZCBpZGVudGlmaWVyIGlzIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgcXVvdGVzIG9yIHJlbmFtZSB0aGUgaWRlbnRpZmllci4ATWF4IG51bWJlciBvZiBkdXBsaWNhdGUgcm93cyBpbiBJTlRFUlNFQ1QgQUxMIGV4Y2VlZGVkLgBRdWVyeSB0aHJlYWRzIGNvdW50KCV1KSBleGNlZWRzIHRyYW5zYWN0aW9uIHRocmVhZHMgbGltaXQoJXUpIHBlciBncm91cC4gUGxlYXNlIHVzZSBxdWVyeSB0aHJlYWRzIGNvdW50IHBlciBncm91cCBzbWFsbGVyIG9yIGVxdWFsIHRvIG1heCB0cmFuc2FjdGlvbiB0aHJlYWRzIGxpbWl0IHBlciBncm91cABJbnZhbGlkIHRpbWVzdGFtcCBmb3JtYXQgaW4gJXMgdWRmAFNIQVBFX1BSRURJQ1RJT04gVURGICVzIGdvdCBlcnJvciBiZWNhdXNlIG9mICVzLgBIZWlnaHQgcGFyYW1ldGVyIG11c3QgYmUgbm9uIG5lZ2F0aXZlLgBTY2FsaW5nIHBhcmFtZXRlciBtdXN0IGJlIG5vbiBuZWdhdGl2ZS4AWm9uZSB3aWR0aCBwYXJhbWV0ZXIgbXVzdCBiZSBhbiBpbnRlZ2VyIGJldHdlZW4gMS02MC4ATGF0aXR1ZGUgb2Ygb3JpZ2luIG11c3QgYmUgKy05MCBkZWdyZWVzLCBzcGVjaWZpZWQgaW4gdGhlIFNSUyBhbmd1bGFyIHVuaXQsIGluIFBvbGFyIFN0ZXJlb2dyYXBoaWMgKHZhcmlhbnQgQSkgcHJvamVjdGlvbiBtZXRob2QgKEVQU0c6OTgxMCkuAFRoZSBjbGllbnQgaXMgdXNpbmcgYSBkZXByZWNhdGVkIENMSUVOVF9OT19TQ0hFTUEgY2xpZW50IG9wdGlvbi4gQ0xJRU5UX05PX1NDSEVNQSB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4AVGFibGUgJyUtLjE5MnMnIGlzIG5vdCBlbXB0eS4AVGFibGUgJyUtLjE5MnMnIGhhcyBubyBwcmltYXJ5IGtleS4AVGFibGUgJyUtLjE5MnMnIGlzIGluIGEgc2hhcmVkIHRhYmxlc3BhY2UuAFRhYmxlICclLS4xOTJzJyBoYXMgaW5kZXhlcyBvdGhlciB0aGFuIHByaW1hcnkga2V5LgBbSU4gUFJJTUFSWSBLRVkgT1JERVJdIHNwZWNpZmllZCBidXQgZGF0YSBub3Qgc29ydGVkOiAnJS0uNjRzJwBCdWxrIGV4ZWN1dG9yIGVycm9yOiAlcwBCdWxrIHJlYWRlciBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBsaWJjdXJsAEJ1bGsgcmVhZGVyIGdvdCBsaWJjdXJsIGVycm9yOiAlcwBCdWxrIHJlYWRlciBnb3QgZXJyb3IgcmVzcG9uc2UgZnJvbSBzZXJ2ZXI6ICVsZABCdWxrIHJlYWRlciBnb3QgZXJyb3IgaW4gY29tbXVuaWNhdGlvbiB3aXRoIHNvdXJjZSBzZXJ2ZXIsIGNoZWNrIHRoZSBlcnJvciBsb2cgZm9yIGFkZGl0aW9uYWwgZGV0YWlscy4AQnVsayBsb2FkZXIgZmFpbGVkIGluIElubm9kYiBzdG9yYWdlIGVuZ2luZSwgY2hlY2sgdGhlIGVycm9yIGxvZyBmb3IgYWRkaXRpb25hbCBkZXRhaWxzLgBDU1YgY29sdW1uIHRvbyBiaWcgZm9yIGxlZnRvdmVyIGJ1ZmZlci4AQnVsayBsb2FkZXIgY29tcG9uZW50IGVycm9yOiAlcwBUaGUgZmlyc3QgZmlsZSBiZWluZyBsb2FkZWQgY29udGFpbmVkIGxlc3MgbGluZXMgdGhhbiB0aGUgaWdub3JlIGNsYXVzZQBNaXNzaW5nIEVOQ0xPU0VEIEJZIGNoYXJhY3RlciBhdCByb3cgJWxkIGluIGZpbGUgJyVzJy4gQWRkIE9QVElPTkFMTFkgdG8gdGhlIEVOQ0xPU0VEIEJZIGNsYXVzZSB0byBhbGxvdyB0aGlzIGlucHV0LgBUaGUgbnVtYmVyIG9mIGlucHV0IGNvbHVtbnMgdGhhdCBuZWVkIHRvIGJlIGJ1ZmZlcmVkIGZvciBwYXJzaW5nIGV4Y2VlZGVkIHByZWRlZmluZWQgYnVmZmVyIG1heCBzaXplIGZvciBmaWxlICclcycuAFRoZSBjb2x1bW4gZGF0YSB0aGF0IG5lZWRlZCB0byBiZSBjb3BpZWQgZHVlIHRvIGVzY2FwZWQgY2hhcmFjdGVycyBleGNlZWRlZCB0aGUgc2l6ZSBvZiB0aGUgaW50ZXJuYWwgY29weSBidWZmZXIgZm9yIGZpbGUgJyVzJy4AVW5leHBlY3RlZCBlbmQgb2YgaW5wdXQgZm91bmQgYXQgcm93ICVsZCBpbiBmaWxlICclcycuIERhdGEgZm9yIHNvbWUgY29sdW1ucyBpcyBtaXNzaW5nLgBVbmV4cGVjdGVkIHJvdyB0ZXJtaW5hdG9yIGZvdW5kIGF0IHJvdyAlbGQgaW4gZmlsZSAnJXMnLiBEYXRhIGZvciBzb21lIGNvbHVtbnMgaXMgbWlzc2luZy4AVW5leHBlY3RlZCBjaGFyYWN0ZXJzIGFmdGVyIGVuZGluZyBFTkNMT1NFRCBCWSBjaGFyYWN0ZXIgZm91bmQgYXQgcm93ICVsZCBpbiBmaWxlICclcycuAFVuZXhwZWN0ZWQgY2hhcmFjdGVycyBhZnRlciBOVUxMIGVzY2FwZSAoXE4pIGZvdW5kIGF0IHJvdyAlbGQgaW4gZmlsZSAnJXMnLgBVbmV4cGVjdGVkIGNoYXJhY3RlcnMgYWZ0ZXIgY29sdW1uIHRlcm1pbmF0b3IgZm91bmQgYXQgcm93ICVsZCBpbiBmaWxlICclcycuAFVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0IGZvdW5kIGF0IHJvdyAlbGQgaW4gZmlsZSAnJXMnIHJlc3VsdGluZyBpbiBpbmNvbXBsZXRlIGVzY2FwZSBzZXF1ZW5jZS4ATE9BRCBCVUxLIERBVEEgaW50byB0YWJsZSAnJS0uMTkycycgZmFpbGVkOiAlcwBJbmNvcnJlY3QgJS0uMzJzIHZhbHVlOiAnJS0uMTI4cycgZm9yIGNvbHVtbiAnJS0uMTkycycgYXQgcm93ICVsZCBpbiBmaWxlICclLS4xOTJzJwBOVUxMIHN1cHBsaWVkIHRvIE5PVCBOVUxMIGNvbHVtbiAnJXMnIGF0IHJvdyAlbGQgaW4gZmlsZSAnJS0uMTkycycAT24gYSBHcm91cCBSZXBsaWNhdGlvbiBjaGFubmVsLCBzZXR0aW5nIFJFUVVJUkVfVEFCTEVfUFJJTUFSWV9LRVlfQ0hFQ0sgdG8gJ0dFTkVSQVRFJyBpcyBub3QgYWxsb3dlZC4AQ2Fubm90IGNoYW5nZSB0aGUgJyVzJyBzeXN0ZW0gdmFyaWFibGUgaW4gcmVhZC1vbmx5IG1vZGUuAENvbHVtbiBjYW4ndCBiZSBhZGRlZCBvciBkcm9wcGVkIHdpdGggQUxHT1JJVEhNPUlOU1RBTlQgYXMgZWl0aGVyIG1heCBwb3NzaWJsZSByb3cgc2l6ZSBhbHJlYWR5IGNyb3NzZXMgbWF4IHBlcm1pc3NpYmxlIHJvdyBzaXplIG9yIG1heSBjcm9zcyBpdCBhZnRlciBhZGQuIFRyeSBBTEdPUklUSE09SU5QTEFDRS9DT1BZLgBDb2x1bW4gY2FuJ3QgYmUgYWRkZWQgdG8gJyVzJyB3aXRoIEFMR09SSVRITT1JTlNUQU5UIGFueW1vcmUuIFBsZWFzZSB0cnkgQUxHT1JJVEhNPUlOUExBQ0UvQ09QWS4ARmFpbGVkIHRvIHNldCBwZXJzaXN0ZWQgb3B0aW9ucy4AVGhlIHZhbHVlIHN1cHBsaWVkIGZvciAlcyBpbiB0aGUgU0VUIGxpc3QgY2Fubm90IGJlIG51bGwAVGhlIGFzc2lnbm1lbnQgb2YgJXMgaW4gU0VUIGRvZXNuJ3QgbWF0Y2ggYW55IG9mIHRoZSB2YXJpYWJsZXMgcmVnaXN0ZXJlZCBieSB0aGUgY29tcG9uZW50KHMpACclcycgaXMgYSB1c2VyIGRlZmluZWQgY29sbGF0aW9uLiBVc2VyIGRlZmluZWQgY29sbGF0aW9ucyBhcmUgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuIENvbnNpZGVyIHVzaW5nIGEgY29tcGlsZWQgY29sbGF0aW9uIGluc3RlYWQuAFVzZXItbGV2ZWwgbG9jayBuYW1lICclLS4xOTJzJyBzaG91bGQgbm90IGV4Y2VlZCAlZCBjaGFyYWN0ZXJzLgBJbW1lZGlhdGVseSBzdGFydGluZyB0aGUgdmVyc2lvbiBjb21tZW50IGFmdGVyIHRoZSB2ZXJzaW9uIG51bWJlciBpcyBkZXByZWNhdGVkIGFuZCBtYXkgY2hhbmdlIGJlaGF2aW9yIGluIGEgZnV0dXJlIHJlbGVhc2UuIFBsZWFzZSBpbnNlcnQgYSB3aGl0ZS1zcGFjZSBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIHZlcnNpb24gbnVtYmVyLgBUaGUgbmV3IHBhc3N3b3JkIG11c3QgaGF2ZSBhdCBsZWFzdCAnJXUnIGNoYXJhY3RlcnMgdGhhdCBhcmUgZGlmZmVyZW50IGZyb20gdGhlIG9sZCBwYXNzd29yZC4gSXQgaGFzIG9ubHkgJyV1JyBjaGFyYWN0ZXIocykgZGlmZmVyZW50LiBGb3IgdGhpcyBjb21wYXJpc29uLCB1cHBlcmNhc2UgbGV0dGVycyBhbmQgbG93ZXJjYXNlIGxldHRlcnMgYXJlIGNvbnNpZGVyZWQgdG8gYmUgZXF1YWwuACclcycgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuICVzAFJ1bm5pbmcgcmVjdXJzaXZlIGNhbGxzIHRvIFNRTCBleGVjdXRpb24gc2VydmljZSBpcyBub3Qgc3VwcG9ydGVkACVzAExhbmd1YWdlIGNvbXBvbmVudDogTm90IGF2YWlsYWJsZS4ATGFuZ3VhZ2UgY29tcG9uZW50OiBVbnN1cHBvcnRlZCBsYW5ndWFnZSAnJXMnAExhbmd1YWdlIGNvbXBvbmVudDogQ2Fubm90IHVuaW5zdGFsbCBkdWUgdG8gY29ubmVjdGVkIHNlc3Npb25zLiBQbGVhc2UgZGlzY29ubmVjdCBhbGwgc2Vzc2lvbnMgYW5kIHRyeSBhZ2Fpbi4AQWx0ZXJpbmcgdGhlIGxhbmd1YWdlIG9mIGFuIGV4aXN0aW5nIHJvdXRpbmUgaXMgbm90IHBvc3NpYmxlLgBFWFBMQUlOIEFOQUxZWkUgZG9lcyBub3Qgc3VwcG9ydCB0aGUgSU5UTyBjbGF1c2UuAEVYUExBSU4gSU5UTyBkb2VzIG5vdCBzdXBwb3J0IGltcGxpY2l0IEZPUk1BVC4ARVhQTEFJTiBJTlRPIGRvZXMgbm90IHN1cHBvcnQgRk9STUFUPSVzLgBUcnlpbmcgdG8gcGVyc2lzdCBhIE5VTEwgaW50byBhIHZhcmlhYmxlICclLS4xOTJzJyB0aGF0J3Mgc2V0dGFibGUgb25seSBvbiBjb21tYW5kIGxpbmUgaXMgbm90IHN1cHBvcnRlZABFWFBMQUlOIEZPUiBDT05ORUNUSU9OIGRvZXMgbm90IHN1cHBvcnQgdGhlIElOVE8gY2xhdXNlLgBFbnVtIGVsZW1lbnQgbmFtZSBsZW5ndGggJWx1LCBpcyBpbnZhbGlkIGZvciBjb2x1bW4gJXMATnVtYmVyIG9mIGluZGV4ZXMgaW4gbWV0YS1kYXRhIGZpbGUgaXMgMABOdW1iZXIgb2YgaW5kZXhlcyBpbiBtZXRhLWRhdGEgZmlsZSBpcyB0b28gaGlnaDogJWxsdQBERCBtZXRhZGF0YSBmb3IgSU5TVEFOVCBEUk9QIGNvbHVtbiAlcyBpbiB0YXJnZXQgdGFibGUgZG9lc24ndCBtYXRjaCB3aXRoIENGRy4ARW51bS9TZXQgZWxlbWVudCBuYW1lIG1pc3NpbmcgbnVsbCB0ZXJtaW5hdG9yIGZvciBjb2x1bW4gJyVzJwAlcyAlcyAlenUuAFRoZSBwcml2aWxlZ2UgJyVzJyBpcyBkZXByZWNhdGVkLgBCdWxrIE11bHRpIFJlYWRlcjogRmFpbGVkIHRvIG9wZW4gZmlsZQBCdWxrIE11bHRpIFJlYWRlcjogRmFpbGVkIHRvIHJlYWQgZmlsZQBCdWxrIE1lcmdlIExvYWRlcjogSW52YWxpZCBDaHVuawBCdWxrIE1lcmdlIExvYWRlcjogTm90IGFsbCBjaHVua3MgY29uc3VtZWQAQnVsayB3cml0ZXIgZmFpbGVkIHRvIGluaXRpYWxpemUgbGliY3VybABCdWxrIHdyaXRlciBnb3QgbGliY3VybCBlcnJvcjogJXMAQnVsayBTb3J0aW5nIExvYWRlcjogRmFpbGVkIHRvIHdyaXRlIGRhdGEgdG8gdGVtcG9yYXJ5IGZpbGUAQnVsayBTb3J0aW5nIExvYWRlcjogSW50ZXJydXB0ZWQgd2hpbGUgd2FpdGluZwBCdWxrIFJlYWRlcjogRmFpbGVkIHRvIGFjY2VzcyBmaWxlICVzAEJ1bGsgTG9hZGVyOiBUYWJsZSAnJS0uMTkycycgaGFzIGluc3RhbnRseSBhZGRlZC9kcm9wcGVkIGNvbHVtbnMuIFBsZWFzZSBUUlVOQ0FURSBUQUJMRSBhbmQgcmV0cnkuAEJ1bGsgTG9hZGVyOiBOb3QgZW5vdWdoIG1lbW9yeSBhdmFpbGFibGUuIE1lbW9yeSBuZWVkZWQgZm9yIGxvYWRpbmcgJXMgZGF0YTogJXMgZm9yICV1IHRocmVhZHMsICVzIHdpdGggbWluaW1hbCBjb25maWd1cmF0aW9uLiBUb3RhbCBjb25maWd1cmVkIG1lbW9yeSBpcyAlcywgQXZhaWxhYmxlIG1lbW9yeSBpcyAlcy4ATE9BRCBEQVRBIHdpdGggQlVMSyBBbGdvcml0aG0gaXMgbm90IHN1cHBvcnRlZCBvbiBhIHRhYmxlIHdpdGggc2Vjb25kYXJ5IGVuZ2luZS4AQnVsayByZWFkZXIgZXJyb3I6ICVzAEZpbGUgbm90IGZvdW5kLCBjaGVjayB3aGV0aGVyIGl0IGV4aXN0czogJXMAQ291bGRuJ3QgcmVzb2x2ZSBob3N0OiAlcwBDYW5ub3Qgc3RhcnQgcmVwbGljYXRpb24gY2hhbm5lbCAnJXMnIGJlY2F1c2UgJXMuACclcycgaXMgbm90IHN1cHBvcnRlZAAnJXMnIGlzIHN1cHBvcnRlZCB3aXRoIG1heGltdW0gJWQgZWxlbWVudHMgaW4gdGhlIEdST1VQIEJZIGxpc3QAJyVzJyBmb3IgJyVzJyBzdG9yYWdlIGVuZ2luZSBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4AUVVBTElGWSBjbGF1c2UgY2Fubm90IGJlIHVzZWQgd2l0aG91dCBhIHdpbmRvdyBmdW5jdGlvbi4AJyVzJyBjYW4gYmUgdXNlZCBvbmx5IGlmIHRoZSBoeXBlcmdyYXBoIG9wdGltaXplciBpcyBlbmFibGVkLgBBY2Nlc3MgZGVuaWVkOyB5b3UgbmVlZCAlLS4yNTZzIHByaXZpbGVnZShzKSBmb3IgdGhpcyBvcGVyYXRpb24AQEBTRVNTSU9OLkdUSURfTkVYVCBjYW5ub3QgYmUgc2V0IHRvIEFVVE9NQVRJQzo8VEFHPiB3aGVuIEBAR0xPQkFMLkdUSURfTU9ERSA9IE9GRiBvciBPRkZfUEVSTUlTU0lWRQBAQFNFU1NJT04uR1RJRF9ORVhUIGNhbm5vdCBiZSBzZXQgdG8gVVVJRDpUQUc6TlVNQkVSIHdoZW4gQEBHTE9CQUwuR1RJRF9NT0RFID0gT0ZGLgBDb2x1bW4gJWQgb2YgJXMgOiBDb2x1bW4gY29udGFpbnMgbnVsbCBidXQgaXQgaXMgbm90IG51bGxhYmxlLgBDb2x1bW4gJWQgb2YgJXMgOiBDb2x1bW4gaXMgbWlzc2luZywgYnV0IGl0IGlzIG5vdCBudWxsYWJsZSBhbmQgbm8gZXhwbGljaXQgZGVmYXVsdCB2YWx1ZSBpcyBwcm92aWRlZC4AQ29sdW1uICVkIG9mICVzIDogQ29sdW1uIGlzIGVtcHR5LgBDb2x1bW4gJWQgb2YgJXMgOiBDb2x1bW4gaXMgZW1wdHksIHNldHRpbmcgZGVmYXVsdCB2YWx1ZS4AQ29sdW1uICVkIG9mICVzIDogSW52YWxpZCAlcyB2YWx1ZS4AQ29sdW1uICVkIG9mICVzIDogVW5rbm93biBlcnJvciB3aGlsZSBwYXJzaW5nIGRlY2ltYWwuAENvbHVtbiAlZCBvZiAlcyA6IE91dCBvZiBtZW1vcnkgbG9hZGluZyBkZWNpbWFsLgBDb2x1bW4gJWQgb2YgJXMgOiBGcmFjdGlvbiBleGNlZWRzIHNjaGVtYSwgcm91bmRpbmcgdmFsdWUuAENvbHVtbiAlZCBvZiAlcyA6IGRlY2ltYWwgcHJlY2lzaW9uIGV4Y2VlZHMgc2NoZW1hLgBDb2x1bW4gJWQgb2YgJXMgOiAlcyBleGNlZWRzIG1pbi4AQ29sdW1uICVkIG9mICVzIDogJXMgZXhjZWVkcyBtYXguAENvbHVtbiAlZCBvZiAlcyA6ICVzIGV4Y2VlZHMgbWluLCBzZXR0aW5nIHRvIG1pbiB2YWx1ZSBwb3NzaWJsZS4AQ29sdW1uICVkIG9mICVzIDogJXMgZXhjZWVkcyBtYXgsIHNldHRpbmcgdG8gbWF4IHZhbHVlIHBvc3NpYmxlLgBDb2x1bW4gJWQgb2YgJXMgOiBSZWFsIHZhbHVlIGlzIE5hTi4AQ29sdW1uICVkIG9mICVzIDogJXMgdmFsdWUgaXMgb3V0IG9mIHJhbmdlLgBDb2x1bW4gJWQgb2YgJXMgOiBFcnJvciB3aGlsZSBhcHBseWluZyAlcyBmb3JtYXQuAENvbHVtbiAlZCBvZiAlcyA6ICVzIHZhbHVlIHdhcyB0cnVuY2F0ZWQuAENvbHVtbiAlZCBvZiAlcyA6IENhbm5vdCBjb252ZXJ0IHN0cmluZyAlcy4AUmVzb3VyY2UgcHJpbmNpcGFsIGVycm9yLgBBV1MgYXV0aGVudGljYXRpb24gZXJyb3IuACVzOiVsdTogUGFyc2luZyBlcnJvciBmb3VuZC4gJXMuACVzOiBNaXNtYXRjaCBpbiB0aGUgbnVtYmVyIG9mIGNvbHVtbnMuIEV4cGVjdGVkICV1LCBmb3VuZCAldS4AJXM6IE1vcmUgdGhhbiAldSBjb2x1bW4ocykgZm91bmQuAENvbHVtbiAlZCBpbiAlczogQ2hhcnNldCBpcyBub3Qgc3VwcG9ydGVkLgBDb2x1bW4gJWQgaW4gJXM6IERlY2ltYWwgY29udmVyc2lvbiBlcnJvci4AQ29sdW1uICVkIGluICVzOiBTdHJpbmcgaXMgdG9vIGxvbmcuAFJlc291cmNlIFByaW5jaXBhbCBlbmRwb2ludCBpcyBub3QgY29uZmlndXJlZC4gQ2Fubm90IGFjY2VzcyBmb2xsb3dpbmcgYnVja2V0czogJXMuAE5vIGZpbGVzIGZvdW5kIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZvbGxvd2luZyBkYXRhIGxvY2F0aW9uczogJXMuAEZpbGUgJXMgaXMgZW1wdHkuAEZpbGUgJXMgd2FzIG5vdCBwcm9jZXNzZWQgKGR1cGxpY2F0ZSkuAEZpbGUgJXM6IEF2cm8gc2NoZW1hIGRlcHRoIGV4Y2VlZHMgbWF4IGFsbG93ZWQgZGVwdGguAEZpbGUgJXM6IEhlYWRlciBkb2VzIG5vdCBtYXRjaCBvdGhlciBmaWxlcy4ARmlsZSAlczogRW51bSBzeW1ib2wgY2FuJ3QgY29udmVydCB0byBjb2x1bW4gY2hhcnNldC4ARmlsZSAlczogRW51bSBzeW1ib2xzIGFyZSBub3QgdGhlIHNhbWUsIG9yIGFyZSBub3QgaW4gdGhlIHNhbWUgb3JkZXIuAENvbHVtbiAlZCBpbiAlczogQXZybyB2YWx1ZSBvZiBwaHlzaWNhbCB0eXBlICUuKnMgbG9naWNhbCB0eXBlICUuKnMgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBteXNxbCB0eXBlICVzLgBGaWxlICUuKnM6IEVuZHMgdW5leHBlY3RlZGx5LgBGaWxlICUuKnM6IEZpbGUgZGF0YSBtaWdodCBiZSBjb3JydXB0LgBDb2x1bW4gJWQgaW4gJXM6IEludmFsaWQgdW5pb24gZW5jb3VudGVyZWQuIFVuaW9ucyBhcmUgb25seSBzdXBwb3J0ZWQgdG8gcmVwcmVzZW50IG51bGxhYmxlIGNvbHVtbnMuIE9uZSBvZiB0aGUgdHdvIHR5cGVzIG9mIHRoZSB1bmlvbiBtdXN0IGJlIG51bGwuAEZpbGUgJS4qczogSW52YWxpZCBhdnJvIGJsb2NrIHNpemUuAEZpbGUgJS4qczogSW52YWxpZCBBdnJvIGJsb2NrIHJlY29yZCBjb3VudC4ARmlsZSAlLipzOiBDYW5ub3QgbG9jYXRlICVzIHNwZWNpZmljIG1ldGFkYXRhLiBFaXRoZXIgdGhlIGZpbGUgaXMgY29ycnVwdGVkIG9yIHRoaXMgaXMgbm90IGFuICVzIGZpbGUuAEZpbGUgJS4qczogQ291bGQgbm90IHByb2Nlc3MgQXZybyBoZWFkZXIgbWV0YWRhdGEuIFRoZSBtZXRhZGF0YSBpcyBjb3JydXB0ZWQgb3IgaW52YWxpZC4ARmlsZSAlLipzOiBObyBzY2hlbWEgaW4gQXZybyBoZWFkZXIgbWV0YWRhdGEuAEZpbGUgJS4qczogTm8gY29kZWMgaW4gQXZybyBoZWFkZXIgbWV0YWRhdGEuAEZpbGUgJS4qczogSW52YWxpZCBuYW1lIGluIEF2cm8gc2NoZW1hLgBGaWxlICUuKnM6IEVycm9yIGRlY29kaW5nIEF2cm8gJS4qcy4gJXMAQ29sdW1uICVkIGluICVzOiBTdHJpbmcgd2l0aCBub24tdXRmOCBmaWxlIGVuY29kaW5nLgBEaWZmZXJlbmNlIGluIHNjaGVtYSBhbW9uZyBQYXJxdWV0IGZpbGVzLgBGaWxlICVzOiBTaXplIG9mIHJvdyBncm91cCAlbGQgaXMgbGFyZ2VyIHRoYW4gbWF4aW11bSBhbGxvd2VkIHNpemUgKCVkKS4ARmlsZSAlczogQ2Fubm90IGxvY2F0ZSBvZmZzZXQgb2Ygcm93IGdyb3VwICVsZCBpbiBtZXRhZGF0YS4AQ29sdW1uICVkIGluIHBhcnF1ZXQgdGFibGUgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBteXNxbCBmb3JtYXQuAENhbm5vdCBsb2NhdGUgc2NoZW1hIGluICVzLgBGb3VuZCBmaWxlcyB3aXRoIG1pc21hdGNoZWQgc2NoZW1hcy4ASW5zdWZmaWNpZW50IG1lbW9yeS4AU2tpcHBlZCAlbHUgbGluZShzKSBkdWUgdG8gbWlzbWF0Y2hlZCBudW0gb2YgY29scy4AU2tpcHBlZCAlbHUgZmlsZShzKSBkdWUgdG8gbWlzbWF0Y2hlZCBudW0gb2YgY29scy4ARmlsZSAlcyBpcyBza2lwcGVkIGJlY2F1c2UgaXQgaGFzIG5vIHZhbGlkIGRhdGEuIEZpbGUgaXMgZWl0aGVyIGVtcHR5IG9yIGFsbCByb3dzIGFyZSBza2lwcGVkLgBObyB2YWxpZCBkYXRhIGZvdW5kIGZvciBwcm9jZXNzaW5nLgBObyB2YWxpZCBmaWxlcyBmb3VuZCBmb3IgcHJvY2Vzc2luZy4AVXNlZCBkZWZhdWx0IGNvbHVtbiBuYW1lcyBmb3IgY29sdW1uIGluZGV4KHMpICVzIGFzIHRoZXkgYXJlICVzLgBGaWxlICVzOiBVbmFibGUgdG8gcmVhZCBQYXJxdWV0IGhlYWRlci4AR290IGFuIGV4Y2VwdGlvbiB3aGlsZSB0cnlpbmcgdG8gcHJvY2VzcyBmaWxlIHRhc2suAEZpbGUgJS4qczogQ291bGQgbm90IHBhcnNlIGF2cm8gaGVhZGVyLiBQcm9iYWJseSBjb3JydXB0ZWQgYXZybyBmaWxlLgBQYXJxdWV0IHJlYWRlciBjYW5ub3Qgb3BlbiAlcy4gJXMARmlsZSAlLipzOiAlcwBGaWxlICUuKnM6ICVzAFRhYmxlc2FtcGxlIHBlcmNlbnRhZ2Ugc2hvdWxkIHJhbmdlIGJldHdlZW4gMCBhbmQgMTAwLgBUYWJsZXNhbXBsZSBjYW4gYmUgYXBwbGllZCBvbmx5IG9uIGJhc2UgdGFibGVzLgBQYXJhbWV0ZXIgaW5kZXggJWxsdSBpcyBvdXQgb2YgcmFuZ2UAUmVzdWx0IHNpemUgbGltaXQgZXhjZWVkZWQuAExhbmd1YWdlIGNvbXBvbmVudDogSW50ZXJuYWwgZXJyb3IuAExhbmd1YWdlIGNvbXBvbmVudDogQ29uY3VycmVuY3kgbGltaXQgKCVzKSBoYXMgYmVlbiByZWFjaGVkLgAlcz4gJXMAJXM+IFRpbWUgem9uZSAlcyBpcyBub3Qgc3VwcG9ydGVkLgAlcz4gVGhlIGlkZW50aWZpZXIgJyVzJyBpcyBhIHJlc2VydmVkIHdvcmQuAExhbmd1YWdlIGNvbXBvbmVudDogU3lzdGVtIHZhcmlhYmxlICclcycgY2Fubm90IGJlIGNvbmZpZ3VyZWQgd2hlbiBjb21wb25lbnQgaXMgYWN0aXZlLgAlcz4gJXMAJXM+ICVzAFN0b3JlZCBwcm9ncmFtIHN0YXRlbWVudCBpcyBwYXJ0aWFsbHkgY29tcGxldGVkLiBSZXN1bHQgc2V0IG1pZ2h0IG5vdCBjb250YWluIGFsbCB0aGUgcm93cy4ARXhlY3V0aW5nIFNRTCBzdGF0ZW1lbnQgdXNpbmcgJXMgU3RhdGVtZW50IEhhbmRsZSBJbnRlcmZhY2UgaXMgbm90IGFsbG93ZWQgd2l0aGluIHN0b3JlZCBmdW5jdGlvbiwgdHJpZ2dlciBvciBsb2FkYWJsZSBmdW5jdGlvbiAoVURGKS4AQ29sdW1uICVkIG9mICVzIDogJXMARW5naW5lICVzIGNhbm5vdCBiZSBzZXQgYXMgZGVmYXVsdF9zdG9yYWdlX2VuZ2luZS4AQ29sdW1uICclLjY0cy4lLjY0cy4lLjY0cycgaGF2aW5nIHByZWZpeCBrZXkgcGFydCAnJS42NHMoJXUpJyBpbiB0aGUgUEFSVElUSU9OIEJZIEtFWSgpIGNsYXVzZSBpcyBub3Qgc3VwcG9ydGVkLgBGb3JlaWduIGtleSAnJS42NHMnIHJlZmVycyB0byBub24tdW5pcXVlIGtleSBvciBwYXJ0aWFsIGtleS4gVGhpcyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4ARmFpbGVkIHRvIGFkZCB0aGUgZm9yZWlnbiBrZXkgY29uc3RyYWludC4gTWlzc2luZyB1bmlxdWUga2V5IGZvciBjb25zdHJhaW50ICclcycgaW4gdGhlIHJlZmVyZW5jZWQgdGFibGUgJyVzJwBBY2Nlc3MgZGVuaWVkIGZvciB1c2VyICclLS40OHMnQCclLS42NHMnLCBtaXNzaW5nIHByb3h5IHByaXZpbGVnZS4AQWNjZXNzIGRlbmllZCBmb3IgdXNlciAnJS0uNDhzJ0AnJS0uNjRzJywgcHJveGllZCB1c2VyIGRvZXNuJ3QgZXhpc3QuAFVuYWJsZSB0byBhY2Nlc3MgdGhlIGZvbGxvd2luZyBkYXRhIGxvY2F0aW9uczogJXMAWlNURCBkZWNvbXByZXNzaW9uIGZhaWxlZDogJXMAJXMASW52YWxpZCBqc29uIGZpbGUgZm9ybWF0IHNjaGVtYTogJXMASW5mZXJyZWQgaW52YWxpZCBzY2hlbWEuIEEgc2luZ2xlIGNvbHVtbiB3aXRoIEpTT04gdHlwZSBpcyB0aGUgb25seSB2YWxpZCBzY2hlbWEgZm9yIEpTT04gZmlsZSBmb3JtYXQuAEFsdGVyZWQgdGhlIGluZmVycmVkIHNjaGVtYSB0byBhIHNpbmdsZSBKU09OIGNvbHVtbi4ATm9uLXNjYWxhciAoZS5nLiwgdmVjdG9yKSBjb2x1bW4gJyUuNjRzJyBjYW5ub3QgYmUgdXNlZCBhcyBrZXkuAENvbHVtbnMgYWdncmVnYXRlZCB3aXRoIGluY29tcGF0aWJsZSB0eXBlczogJyUuNjRzJywgJyUuNjRzJy4AVmFsdWUgb2YgdHlwZSAnJS4xNnMsIHNpemU6ICV6dScgY2Fubm90IGJlIGNvbnZlcnRlZCB0byAndmVjdG9yJyB0eXBlLgBEYXRhIHNpemUgKCV6dSBCeXRlcywgJXUgZGltZW5zaW9ucykgZXhjZWVkcyBWRUNUT1IgbWF4ICglenUgQnl0ZXMsICV1IGRpbWVuc2lvbnMpIGZvciBjb2x1bW46ICclLjY0cycARGF0YSBjYW5ub3QgYmUgY29udmVydGVkIHRvIGEgdmFsaWQgdmVjdG9yOiAnJS4qcycAVGhpcyBzdG9yYWdlIGVuZ2luZSBpZ25vcmVzIHRoZSAlcyBpbmRleCBhbGdvcml0aG0uAFRoZSB2YXJpYWJsZSB0aHJlYWRfcG9vbF9tYXhfdHJhbnNhY3Rpb25zX2xpbWl0IGNhbm5vdCBiZSBzZXQgdG8gMCB3aGVuIHRocmVhZF9wb29sX2RlZGljYXRlZF9saXN0ZXJuZXMgaXMgT04uAENhbid0IGV4ZWN1dGUgdGhlIHF1ZXJ5IGJlY2F1c2UgeW91IGhhdmUgYSBjb25mbGljdGluZyBiYWNrdXAgbG9jawBDb21wcmVzc2VkIGNvbHVtbiAnJS0uMTkycycgaXMgbm90IGFsbG93ZWQgaW4gdGhlIGtleSBsaXN0AENhbiBub3QgZGVmaW5lIGNvbHVtbiAnJS0uMTkycycgaW4gY29tcHJlc3NlZCBmb3JtYXQAQ29tcHJlc3Npb24gZGljdGlvbmFyeSAnJS0uMTkycycgYWxyZWFkeSBleGlzdHMAQ29tcHJlc3Npb24gZGljdGlvbmFyeSAnJS0uMTkycycgZG9lcyBub3QgZXhpc3QAQ29tcHJlc3Npb24gZGljdGlvbmFyeSBuYW1lICclLS4xOTJzJyBpcyB0b28gbG9uZyAobWF4IGxlbmd0aCA9ICVsdSkARGF0YSBmb3IgY29tcHJlc3Npb24gZGljdGlvbmFyeSAnJS0uMTkycycgaXMgdG9vIGxvbmcgKG1heCBsZW5ndGggPSAlbHUpAENvbXByZXNzaW9uIGRpY3Rpb25hcnkgJyUtLjE5MnMnIGlzIGluIHVzZQBSZWRvIGxvZyBlbmNyeXB0aW9uIG1vZGUgY2FuJ3QgYmUgc3dpdGNoZWQgd2l0aG91dCBzdG9wcGluZyB0aGUgc2VydmVyIGFuZCByZWNyZWF0aW5nIHRoZSByZWRvIGxvZ3MuIEN1cnJlbnQgbW9kZSBpcyAlcywgcmVxdWVzdGVkICVzLgBSZWRvIGxvZyBrZXkgZ2VuZXJhdGlvbiBmYWlsZWQuAEZhaWxlZCB0byBsb2FkIHJlZG8ga2V5IHZlcnNpb24gJXUAQ291bGRuJ3QgZmV0Y2ggbmV3bHkgZ2VuZXJhdGVkIHJlZG8ga2V5LgBDb3VsZG4ndCBwYXJzZSBzeXN0ZW0ga2V5OiAlcwBSZWRvIGxvZyBjYW5ub3QgYmUgZW5jcnlwdGVkIGlmIHRoZSBrZXlyaW5nIGlzIG5vdCBsb2FkZWQuAFVuZG8gbG9nIGNhbid0IGJlIGVuY3J5cHRlZCBpZiB0aGUga2V5cmluZyBpcyBub3QgbG9hZGVkLgBUYWJsZSAlcyBpcyBlbmNyeXB0ZWQgYnV0IGRlY3J5cHRpb24gZmFpbGVkLiBTZWVtcyB0aGF0IHRoZSBlbmNyeXB0aW9uIGtleSBmZXRjaGVkIGZyb20ga2V5cmluZyBpcyBub3QgdGhlIGNvcnJlY3Qgb25lLiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IGtleXJpbmc/AFRhYmxlc3BhY2UgJXMgaXMgZnVsbHkgb3IgcGFydGlhbGx5IGVuY3J5cHRlZCBieSBlbmNyeXB0aW9uIHRocmVhZHMgYW5kIHRodXMgY2Fubm90IGJlIGV4Y2x1ZGVkIGZyb20gZW5jcnlwdGlvbiB0aHJlYWRzLiBQbGVhc2UgZmlyc3QgZmluaXNoIG9mZiBlbmNyeXB0aW9uL2RlY3J5cHRpb24gYW5kIHRyeSBhZ2Fpbi4AVGFibGVzcGFjZSAlcyBpcyBlbmNyeXB0ZWQgYnkgZW5jcnlwdGlvbiB0aHJlYWRzIGFuZCBjYW5ub3QgYmUgZXhwbGljaXRseSBkZWNyeXB0ZWQuIFBsZWFzZSB1c2UgZGVmYXVsdC10YWJsZS1lbmNyeXB0aW9uPU9OTElORV9GUk9NX0tFWVJJTkdfVE9fVU5FTkNSWVBURUQgdG8gZGVjeXB0IHRoZSB0YWJsZXNwYWNlLgBUYWJsZXNwYWNlICVzIGlzIGVuY3J5cHRlZCBieSBlbmNyeXB0aW9uIHRocmVhZHMgYW5kIGNhbm5vdCBiZSBBTFRFUmVkIHRvIE1hc3RlciBLZXkgZW5jcnlwdGlvbi4gSW4gb3JkZXIgdG8gZW5jcnlwdCB0aGlzIHRhYmxlc3BhY2Ugd2l0aCBNYXN0ZXIgS2V5IGVuY3J5cHRpb24sIGZpcnN0IGRlY3J5cHQgdGhpcyB0YWJsZXNwYWNlIHdpdGggZW5jcnlwdGlvbiB0aHJlYWRzLgBEYXRhYmFzZSBkZWZhdWx0IGVuY3J5cHRpb24gY2Fubm90IGJlIHNldCB0byBZIChNYXN0ZXIgS2V5IGVuY3J5cHRpb24pIHdoaWxlIGRlZmF1bHRfdGFibGVfZW5jcnlwdGlvbiBpcyBzZXQgdG8gT05MSU5FX1RPX0tFWVJJTkcuIEl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgdG8gY3JlYXRlIG5ldyBNYXN0ZXIgS2V5IGVuY3J5cHRlZCB0YWJsZXMgaWYgdGhlIGludGVudGlvbiBpcyB0byByZS1lbmNyeXB0IHRoZW0gdG8gS0VZUklORyBlbmNyeXB0aW9uLgBEYXRhYmFzZSBkZWZhdWx0IGVuY3J5cHRpb24gY2Fubm90IGJlIHNldCB0byBOIChleHBsaWNpdGx5IHJlcXVlc3QgZm9yIHRhYmxlcyBpbiBkYXRhYmFzZSB0byBiZSB1bmVuY3J5cHRlZCkgd2hpbGUgZGVmYXVsdF90YWJsZV9lbmNyeXB0aW9uIGlzIHNldCB0byBPTkxJTkVfVE9fS0VZUklORy4gSWYgeW91IHdhbnQgdG8gZXhjbHVkZSB0YWJsZSBmcm9tIGJlaW5nIGVuY3J5cHRlZCBieSBlbmNyeXB0aW9uIHRocmVhZHMgeW91IGNhbiBzdGlsbCBkbyBpdCB3aGlsZSBjcmVhdGluZyB0YWJsZS4gRm9yIHRoYXQgeW91IG5lZWQgdG8gZXhwbGljaXRseSBzcGVjaWZ5IEVOQ1JZUFRJT049J04nIHdoaWxlIGNyZWF0aW5nIGEgdGFibGUuAFRhYmxlc3BhY2UgJXMgY2Fubm90IGhhdmUgaXRzIEVOQ1JZUFRJT04gYWx0ZXJlZCBhcyBpdCBpcyBiZWluZyBjdXJyZW50bHkgZW5jcnlwdGVkL2RlY3J5cHRlZCBieSBlbmNyeXB0aW9uIHRocmVhZHMuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuAEVuY3J5cHRpb24gb3B0aW9uIGlzIG5vdCBhbGxvd2VkLiAlcwBUaGUgbnVtYmVyIG9mIHJlY29yZHMgZ2VuZXJhdGVkIGJ5IFBFUkNPTkFfU0VRVUVOQ0VfVEFCTEUoKSBjYW5ub3QgZXhjZWVkICVsbHUgKCVsbHUgcmVxdWVzdGVkKS4gVHJ5IGluY3JlYXNpbmcgQEB0Zl9zZXF1ZW5jZV90YWJsZV9tYXhfdXBwZXJfYm91bmQgdG8gYSBsYXJnZXIgdmFsdWUuAElubm9EQiBzeXN0ZW0ga2V5ICVsdSBjYW5ub3QgYmUgcm90YXRlZCwgYmVjYXVzZSBpdCBkb2VzIG5vdCBleGlzdC4ASW5ub0RCIHN5c3RlbSBrZXkgY2Fubm90IGhhdmUgdmFsdWUgZ3JlYXRlciB0aGFuIDQyOTQ5NjcyOTQuAENhbm5vdCBnZW5lcmF0ZSBuZXcgdmVyc2lvbiBvZiBzeXN0ZW0ga2V5ICVsdS4gS2V5cmluZyByZXBvcnRlZCBhbiBlcnJvci4gUGxlYXNlIGNoZWNrIGlmIGtleXJpbmcgaXMgYXZhaWxhYmxlLgBUaGUgcmVxdWVzdGVkIHZhbHVlICVsdSBmb3IgdGhlIGVuY3J5cHRpb25fa2V5X2lkIGV4Y2VlZHMgdGhlIG1heGltdW0gYWxsb3dlZCAlbHUAV3JhcHBlZCBVREYgZXhjZXB0aW9uIGluIGZ1bmN0aW9uICclLS4xOTJzJzsgJS0uODBzAE11bHRpIHRhYmxlIGRyb3AgaXMgbm90IHN1cHBvcnRlZCB3aGVuICclcycgb3B0aW9uIGlzIGVuYWJsZWQAVGhlIG51bWJlciBvZiBwcm92aWRlZCBlcnJvciBjb2RlcyBleGNlZWRzIHRoZSBtYXhpbXVtIGFsbG93ZWQgJWx1AFByb3ZpZGVkIGVycm9yIGNvZGUgaXMgYmlnZ2VyIHRoYW4gbWF4aW11bSBhbGxvd2VkICVsdQBUaGUgcm9sZSAlcyBpcyBhIGR5bmFtaWMgcm9sZSBhbmQgY2FuJ3QgYmUgcmV2b2tlZCBvciBkcm9wcGVkLiBJdCBzaG91bGQgYmUgbWFuYWdlZCBieSB0aGUgZXh0ZXJuYWwgYXV0aGVudGljYXRpb24gcGx1Z2luIGluc3RlYWQuAFRoZSAtLXNlY3VyZS1maWxlLXBhdGggaXMgY29uZmlndXJlZCwgJXMgbXVzdCBiZSBzZXQgYWNjb3JkaW5nbHkuAEtleXMgYXJlIG91dCBvcmRlciBkdXJpbmcgYnVsayBsb2FkAEJ1bGsgbG9hZCByb3dzIG92ZXJsYXAgZXhpc3Rpbmcgcm93cwBDYW4ndCBleGVjdXRlIHVwZGF0ZXMgb24gbWFzdGVyIHdpdGggYmlubG9nX2Zvcm1hdCAhPSBST1cuAE15Um9ja3Mgc3VwcG9ydHMgb25seSBSRUFEIENPTU1JVFRFRCBhbmQgUkVQRUFUQUJMRSBSRUFEIGlzb2xhdGlvbiBsZXZlbHMuIFBsZWFzZSBjaGFuZ2UgZnJvbSBjdXJyZW50IGlzb2xhdGlvbiBsZXZlbCAlcwBXaGVuIHVuaXF1ZSBjaGVja2luZyBpcyBkaXNhYmxlZCBpbiBNeVJvY2tzLCBJTlNFUlQsVVBEQVRFLExPQUQgc3RhdGVtZW50cyB3aXRoIGNsYXVzZXMgdGhhdCB1cGRhdGUgb3IgcmVwbGFjZSB0aGUga2V5IChpLmUuIElOU0VSVCBPTiBEVVBMSUNBVEUgS0VZIFVQREFURSwgUkVQTEFDRSkgYXJlIG5vdCBhbGxvd2VkLiBRdWVyeTogJXMAQ2FuJ3QgZXhlY3V0ZSB1cGRhdGVzIHdoZW4geW91IHN0YXJ0ZWQgYSB0cmFuc2FjdGlvbiB3aXRoIFNUQVJUIFRSQU5TQUNUSU9OIFdJVEggQ09OU0lTVEVOVCBbUk9DS1NEQl0gU05BUFNIT1QuAFRoaXMgdHJhbnNhY3Rpb24gd2FzIHJvbGxlZCBiYWNrIGFuZCBjYW5ub3QgYmUgY29tbWl0dGVkLiBPbmx5IHN1cHBvcnRlZCBvcGVyYXRpb24gaXMgdG8gcm9sbCBpdCBiYWNrLCBzbyBhbGwgcGVuZGluZyBjaGFuZ2VzIHdpbGwgYmUgZGlzY2FyZGVkLiBQbGVhc2UgcmVzdGFydCBhbm90aGVyIHRyYW5zYWN0aW9uLgBNeVJvY2tzIGN1cnJlbnRseSBkb2VzIG5vdCBzdXBwb3J0IFJPTExCQUNLIFRPIFNBVkVQT0lOVCBpZiBtb2RpZnlpbmcgcm93cy4AT25seSBSRVBFQVRBQkxFIFJFQUQgaXNvbGF0aW9uIGxldmVsIGlzIHN1cHBvcnRlZCBmb3IgU1RBUlQgVFJBTlNBQ1RJT04gV0lUSCBDT05TSVNURU5UIFNOQVBTSE9UIGluIFJvY2tzREIgU3RvcmFnZSBFbmdpbmUuAFVuc3VwcG9ydGVkIGNvbGxhdGlvbiBvbiBzdHJpbmcgaW5kZXhlZCBjb2x1bW4gJXMuJXMgVXNlIGJpbmFyeSBjb2xsYXRpb24gKCVzKS4AVGFibGUgJyVzJyBkb2VzIG5vdCBleGlzdCwgYnV0IG1ldGFkYXRhIGluZm9ybWF0aW9uIGV4aXN0cyBpbnNpZGUgTXlSb2Nrcy4gVGhpcyBpcyBhIHNpZ24gb2YgZGF0YSBpbmNvbnNpc3RlbmN5LgBNeVJvY2tzIGZhaWxlZCBjcmVhdGluZyBuZXcga2V5IGRlZmluaXRpb25zIGR1cmluZyBhbHRlci4ATXlSb2NrcyBmYWlsZWQgcG9wdWxhdGluZyBzZWNvbmRhcnkga2V5IGR1cmluZyBhbHRlci4AQ29sdW1uIGZhbWlseSAoJyUuKnMnKSBmbGFnICglZCkgaXMgZGlmZmVyZW50IGZyb20gYW4gZXhpc3RpbmcgZmxhZyAoJWQpLiBBc3NpZ24gYSBuZXcgQ0YgZmxhZywgb3IgZG8gbm90IGNoYW5nZSBleGlzdGluZyBDRiBmbGFnLgBUVEwgc3VwcG9ydCBpcyBjdXJyZW50bHkgZGlzYWJsZWQgd2hlbiB0YWJsZSBoYXMgYSBoaWRkZW4gUEsuAFRUTCBjb2x1bW4gKCVzKSBpbiBNeVJvY2tzIG11c3QgYmUgYW4gdW5zaWduZWQgbm9uLW51bGwgNjQtYml0IGludGVnZXIgb3Igbm9uLW51bGwgdGltZXN0YW1wLCBleGlzdCBpbnNpZGUgdGhlIHRhYmxlLCBhbmQgaGF2ZSBhbiBhY2NvbXBhbnlpbmcgdHRsIGR1cmF0aW9uLgBUVEwgZHVyYXRpb24gKCVzKSBpbiBNeVJvY2tzIG11c3QgYmUgYW4gdW5zaWduZWQgbm9uLW51bGwgNjQtYml0IGludGVnZXIuAFRoZSBwZXItaW5kZXggY29sdW1uIGZhbWlseSBvcHRpb24gaGFzIGJlZW4gZGVwcmVjYXRlZC4AQ29sdW1uIGZhbWlseSAoJyVzJykgaXMgYmVpbmcgZHJvcHBlZC4AQ2Fubm90IGRyb3AgQ29sdW1uIGZhbWlseSAoJyVzJykgYmVjYXVzZSBpdCBpcyBpbiB1c2Ugb3IgZG9lcyBub3QgZXhpc3QuAFBhcnNlciBzYXc6ICVzAENhbid0IGNyZWF0ZSB0aHJlYWQgdG8gaGFuZGxlIGJvb3RzdHJhcCAoZXJybm86ICVkKQBUcmlnZ2VyIGZvciB0YWJsZSAnJXMnLiclcyc6IGludmFsaWQgJXMgdmFsdWUgKCVzKS4AV3JvbmcgdHJlZTogJXMARXJyb3I6IEludmFsaWQgJXMAU2tpcCByZS1wb3B1bGF0aW5nIGNvbGxhdGlvbnMgYW5kIGNoYXJhY3RlciBzZXRzIHRhYmxlcyBpbiAlcyVzcmVhZC1vbmx5IG1vZGUuAFVzaW5nIGRhdGEgZGljdGlvbmFyeSB3aXRoIHZlcnNpb24gJyVkJy4ASW5zdGFsbGVkIGRhdGEgZGljdGlvbmFyeSB3aXRoIHZlcnNpb24gJWQARGF0YSBEaWN0aW9uYXJ5IHZlcnNpb24gJyVkJyBub3Qgc3VwcG9ydGVkLgBGYWlsZWQgdG8gc2V0IHN5c2xvZyBmYWNpbGl0eSB0byAiJXMiLCBzZXR0aW5nIHRvICIlcyIgKCVkKSBpbnN0ZWFkLgBDYW5ub3Qgb3BlbiAlczsgY2hlY2sgcHJpdmlsZWdlcywgb3IgcmVtb3ZlIHN5c2V2ZW50bG9nIGZyb20gLS1sb2ctZXJyb3Itc2VydmljZXMhACBlaXRoZXIgcmVzdGFydCB0aGUgcXVlcnkgbG9nZ2luZyBieSB1c2luZyAiU0VUIEdMT0JBTCBTTE9XX1FVRVJZX0xPRz1PTiIgb3IAIGVpdGhlciByZXN0YXJ0IHRoZSBxdWVyeSBsb2dnaW5nIGJ5IHVzaW5nICJTRVQgR0xPQkFMIEdFTkVSQUxfTE9HPU9OIiBvcgBGYWlsZWQgdG8gd3JpdGUgdG8gJXM6ICVzAFdoaWxlIGluaXRpYWxpemluZyBkdW1wIHRocmVhZCBmb3IgcmVwbGljYSB3aXRoICVzIDwlcz4sIGZvdW5kIGEgem9tYmllIGR1bXAgdGhyZWFkIHdpdGggdGhlIHNhbWUgJXMuIFNvdXJjZSBpcyBraWxsaW5nIHRoZSB6b21iaWUgZHVtcCB0aHJlYWQoJXUpLgBHdGlkIHRhYmxlIGlzIG5vdCByZWFkeSB0byBiZSB1c2VkLiBUYWJsZSAnJXMuJXMnIGNhbm5vdCBiZSBvcGVuZWQuAFN5c3RlbSBzY2hlbWEgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0LgBFcnJvciBpbiBpbml0aWFsaXppbmcgZGljdGlvbmFyeSwgdXBncmFkZSB3aWxsIGRvIGEgY2xlYW51cCBhbmQgZXhpdABWaWV3ICclcycuJyVzJzogdW5rbm93biBjaGFyc2V0IG5hbWUgYW5kL29yIGNvbGxhdGlvbiBuYW1lIChjbGllbnQ6ICclcyc7IGNvbm5lY3Rpb246ICclcycpLgBFcnJvciBpbiBhbGxvY2F0aW5nIG1lbW9yeSBmb3IgY2hhcmFjdGVyIHNldCBuYW1lIGZvciB2aWV3ICVzLiVzLgBEYXRhIERpY3Rpb25hcnkgaW5pdGlhbGl6YXRpb24gZmFpbGVkLgBGYWlsZWQgdG8gdXBkYXRlIHBsdWdpbiBtZXRhZGF0YSBpbiBkaWN0aW9uYXJ5IHRhYmxlcy4ARmFpbGVkIHRvIFBvcHVsYXRlIEREIHRhYmxlcy4ARXJyb3IgaW4gQ3JlYXRpbmcgVmlldyAlcy4lcwBVbmFibGUgdG8gc3RhcnQgc2VydmVyLiBDYW5ub3QgZmluZCB0aGUgbWV0YSBkYXRhIGZvciBkYXRhIGRpY3Rpb25hcnkgdGFibGUgJyVzJy4ARGljdGlvbmFyeSBjYWNoZSBub3QgZW1wdHkgYXQgc2h1dGRvd24uAERpY3Rpb25hcnkgb2JqZWN0cyB1c2VkIGJ1dCBub3QgcmVsZWFzZWQuAERpY3Rpb25hcnkgb2JqZWN0cyBsZWZ0IGluIGRlZmF1bHQgcmVsZWFzZXIuAERpY3Rpb25hcnkgb2JqZWN0IGF1dG8gcmVsZWFzZXIgbm90IGRlbGV0ZWQARXJyb3I6IFVuYWJsZSB0byBjcmVhdGUgcHJpbWFyeSBvYmplY3Qga2V5AEVycm9yOiBVbmFibGUgdG8gY3JlYXRlIG9iamVjdCBrZXkAQ2FuJ3QgY3JlYXRlIGhhbmRsZV9tYW5hZ2VyIHRocmVhZCAoZXJybm89ICVkKQBJdCBpcyBub3QgcG9zc2libGUgdG8gY2hhbmdlIHRoZSB0eXBlIG9mIHRoZSByZWxheSBsb2cncyByZXBvc2l0b3J5IGJlY2F1c2UgdGhlcmUgYXJlIHdvcmtlcnMnIHJlcG9zaXRvcmllcyB3aXRoIGdhcHMuIFBsZWFzZSwgZml4IHRoZSBnYXBzIGZpcnN0IGJlZm9yZSBkb2luZyBzdWNoIGNoYW5nZS4Ab3B0aW9uICdlbmZvcmNlLWd0aWQtY29uc2lzdGVuY3knOiB2YWx1ZSAnJXMnIHdhcyBub3QgcmVjb2duaXplZC4gU2V0dGluZyBlbmZvcmNlLWd0aWQtY29uc2lzdGVuY3kgdG8gT0ZGLgBDaGFuZ2VkIEVORk9SQ0VfR1RJRF9DT05TSVNURU5DWSBmcm9tICVzIHRvICVzLgBDaGFuZ2VkIEdUSURfTU9ERSBmcm9tICVzIHRvICVzLgAlcyBpcyBzZXQgdG8gYSBkaXNhYmxlZCBzdG9yYWdlIGVuZ2luZSAlcy4ARGVidWcgc3luYyBwb2ludHMgaGl0OiAgICAgICAgICAgICAgICAgICAlMjJzAERlYnVnIHN5bmMgcG9pbnRzIGV4ZWN1dGVkOiAgICAgICAgICAgICAgJTIycwBEZWJ1ZyBzeW5jIHBvaW50cyBtYXggYWN0aXZlIHBlciB0aHJlYWQ6ICUyMnMARGVidWcgU3luYyBGYWNpbGl0eSBkaXNhYmxlZCBkdWUgdG8gbGFjayBvZiBtZW1vcnkuAENhbid0IGluaXQgdGMgbG9nAEV2ZW50IFNjaGVkdWxlcjogQ2FuJ3QgaW5pdGlhbGl6ZSB0aGUgZXhlY3V0aW9uIHF1ZXVlAEV2ZW50IFNjaGVkdWxlcjogUHVyZ2luZyB0aGUgcXVldWUuICV1IGV2ZW50cwBFdmVudCBTY2hlZHVsZXI6IExhc3QgZXhlY3V0aW9uIG9mICVzLiVzLiAlcwAlKnMARXZlbnQgU2NoZWR1bGVyOiBbJXNdLlslcy4lc10gZXZlbnQgZXhlY3V0aW9uIGZhaWxlZC4ARXZlbnQgU2NoZWR1bGVyOiBDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2NoZWR1bGVyIHRocmVhZABFdmVudCBTY2hlZHVsZXI6IFN0b3BwZWQARXZlbnQgc2NoZWR1bGVyOiBGYWlsZWQgdG8gc3RhcnQgc2NoZWR1bGVyLCBDYW4gbm90IGNyZWF0ZSB0aHJlYWQgZm9yIGV2ZW50IHNjaGVkdWxlciAoZXJybm89JWQpAEV2ZW50IFNjaGVkdWxlcjogV2FpdGluZyBmb3IgdGhlIHNjaGVkdWxlciB0aHJlYWQgdG8gcmVwbHkARXZlbnQgU2NoZWR1bGVyOiBzY2hlZHVsZXIgdGhyZWFkIHN0YXJ0ZWQgd2l0aCBpZCAldQBFdmVudCBTY2hlZHVsZXI6IFNlcmlvdXMgZXJyb3IgZHVyaW5nIGdldHRpbmcgbmV4dCBldmVudCB0byBleGVjdXRlLiBTdG9wcGluZwBFdmVudF9zY2hlZHVsZXI6OmV4ZWN1dGVfdG9wOiBDYW4gbm90IGNyZWF0ZSBldmVudCB3b3JrZXIgdGhyZWFkIChlcnJubz0lZCkuIFN0b3BwaW5nIGV2ZW50IHNjaGVkdWxlcgBFdmVudCBTY2hlZHVsZXI6IEtpbGxpbmcgdGhlIHNjaGVkdWxlciB0aHJlYWQsIHRocmVhZCBpZCAldQBJUCBhZGRyZXNzICclcycgY291bGQgbm90IGJlIHJlc29sdmVkOiAlcwBIb3N0IG5hbWUgJyVzJyBjb3VsZCBub3QgYmUgcmVzb2x2ZWQ6ICVzAElQIGFkZHJlc3MgJyVzJyBoYXMgYmVlbiByZXNvbHZlZCB0byB0aGUgaG9zdCBuYW1lICclcycsIHdoaWNoIHJlc2VtYmxlcyBJUHY0LWFkZHJlc3MgaXRzZWxmLgBIb3N0bmFtZSAnJXMnIGRvZXMgbm90IHJlc29sdmUgdG8gJyVzJy4ASG9zdG5hbWUgJyVzJyBoYXMgdGhlIGZvbGxvd2luZyBJUCBhZGRyZXNzZXM6ACAtICVzAERlZmluZXIgY2xhdXNlIGlzIG1pc3NpbmcgaW4gVHJpZ2dlciBvZiBUYWJsZSAlcy4gUmVidWlsZCBUcmlnZ2VyIHRvIGZpeCBkZWZpbmVyLgBDbGllbnQgY2hhcmFjdGVyIHNldCBpcyBtaXNzaW5nIGZvciB0cmlnZ2VyIG9mIHRhYmxlICVzLiBVc2luZyBkZWZhdWx0IGNoYXJhY3RlciBzZXQuAEVycm9yIGluIHBhcnNpbmcgdmlldyAlcy4lcwBGYWlsZWQgdG8gYm9vdHN0cmFwIGNvbXBvbmVudHMgaW5mcmFzdHJ1Y3R1cmUuAEZhaWxlZCB0byBzaHV0ZG93biBjb21wb25lbnRzIGluZnJhc3RydWN0dXJlLgBGYWlsZWQgdG8gYm9vdHN0cmFwIHBlcnNpc3RlbnQgY29tcG9uZW50cyBsb2FkZXIuAEdpdmluZyAlZCBjbGllbnQgdGhyZWFkcyBhIGNoYW5jZSB0byBkaWUgZ3JhY2VmdWxseQBDQSBjZXJ0aWZpY2F0ZSAlcyBpcyBzZWxmIHNpZ25lZC4ARmFpbGVkIHRvIHNldCB1cCBTU0wgYmVjYXVzZSBvZiB0aGUgZm9sbG93aW5nIFNTTCBsaWJyYXJ5IGVycm9yOiAlcwBGYWlsZWQgdG8gZ2VuZXJhdGUgYSBzZXJ2ZXIgVVVJRCBiZWNhdXNlIGl0IGlzIGZhaWxlZCB0byBhbGxvY2F0ZSB0aGUgVEhELgBTYWx0aW5nIHV1aWQgZ2VuZXJhdG9yIHZhcmlhYmxlcywgY3VycmVudF9waWQ6ICVsdSwgc2VydmVyX3N0YXJ0X3RpbWU6ICVsdSwgYnl0ZXNfc2VudDogJWxsdSwgAEdlbmVyYXRlZCB1dWlkOiAnJXMnLCBzZXJ2ZXJfc3RhcnRfdGltZTogJWx1LCBieXRlc19zZW50OiAlbGx1AFRoZSBzZXJ2ZXJfdXVpZCBzdG9yZWQgaW4gYXV0by5jbmYgZmlsZSBpcyBub3QgYSB2YWxpZCBVVUlELgBHYXJiYWdlIGNoYXJhY3RlcnMgZm91bmQgYXQgdGhlIGVuZCBvZiB0aGUgc2VydmVyX3V1aWQgdmFsdWUgaW4gYXV0by5jbmYgZmlsZS4gSXQgc2hvdWxkIGJlIG9mIGxlbmd0aCAnJWQnIChVVUlEX0xFTkdUSCkuIENsZWFyIGl0IGFuZCByZXN0YXJ0IHRoZSBzZXJ2ZXIuIABObyBleGlzdGluZyBVVUlEIGhhcyBiZWVuIGZvdW5kLCBzbyB3ZSBhc3N1bWUgdGhhdCB0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIHRoYXQgdGhpcyBzZXJ2ZXIgaGFzIGJlZW4gc3RhcnRlZC4gR2VuZXJhdGluZyBhIG5ldyBVVUlEOiAlcy4ASW5pdGlhbGl6YXRpb24gb2YgdGhlIHNlcnZlcidzIFVVSUQgZmFpbGVkIGJlY2F1c2UgaXQgY291bGQgbm90IGJlIHJlYWQgZnJvbSB0aGUgYXV0by5jbmYgZmlsZS4gSWYgdGhpcyBpcyBhIG5ldyBzZXJ2ZXIsIHRoZSBpbml0aWFsaXphdGlvbiBmYWlsZWQgYmVjYXVzZSBpdCB3YXMgbm90IHBvc3NpYmxlIHRvIGdlbmVyYXRlIGEgbmV3IFVVSUQuAFVua25vd24vdW5zdXBwb3J0ZWQgc3RvcmFnZSBlbmdpbmU6ICVzAFVuc3VwcG9ydGVkIHZhbHVlIDAgZm9yIHNlY3VyZS1hdXRoAEludmFsaWQgaW5zdHJ1bWVudCBuYW1lIG9yIHZhbHVlIGZvciBwZXJmb3JtYW5jZV9zY2hlbWFfaW5zdHJ1bWVudCAnJXMnLgBUaGUgdXNlIG9mIElubm9EQiBpcyBtYW5kYXRvcnkgc2luY2UgTXlTUUwgNS43LiBUaGUgZm9ybWVyIG9wdGlvbnMgbGlrZSAnLS1pbm5vZGI9MC8xL09GRi9PTicgb3IgJy0tc2tpcC1pbm5vZGInIGFyZSBpZ25vcmVkLgBpZ25vcmUtYnVpbHRpbi1pbm5vZGIgaXMgaWdub3JlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGZ1dHVyZSByZWxlYXNlcy4ASW52YWxpZCBvbGRfcGFzc3dvcmRzIG1vZGU6IDEuIFZhbGlkIHZhbHVlcyBhcmUgMiBhbmQgMAAtLXZlcmJvc2UgaXMgZm9yIHVzZSB3aXRoIC0taGVscDsgZGlkIHlvdSBtZWFuIC0tbG9nLWVycm9yLXZlcmJvc2l0eT8Ab3B0aW9ucyAtLWxvZy1zbG93LWFkbWluLXN0YXRlbWVudHMsIC0tbG9nLXF1ZXJpZXMtbm90LXVzaW5nLWluZGV4ZXMsIC0tbG9nLXNsb3ctcmVwbGljYS1zdGF0ZW1lbnRzIGFuZCAtLWxvZy1xdWVyeS1lcnJvcnMgaGF2ZSBubyBlZmZlY3QgaWYgLS1zbG93LXF1ZXJ5LWxvZyBpcyBub3Qgc2V0AG5ldF9idWZmZXJfbGVuZ3RoICglbHUpIGlzIHNldCB0byBiZSBsYXJnZXIgdGhhbiBtYXhfYWxsb3dlZF9wYWNrZXQgKCVsdSkuIFBsZWFzZSByZWN0aWZ5LgBUSU1FU1RBTVAgd2l0aCBpbXBsaWNpdCBERUZBVUxUIHZhbHVlIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgLS1leHBsaWNpdF9kZWZhdWx0c19mb3JfdGltZXN0YW1wIHNlcnZlciBvcHRpb24gKHNlZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMpLgBJbnZhbGlkIGZ0LWJvb2xlYW4tc3ludGF4IHN0cmluZzogJXMAJ05PX0FVVE9fQ1JFQVRFX1VTRVInIHNxbCBtb2RlIHdhcyBub3Qgc2V0LgBDb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciBjb25uZWN0aW9uIGhhbmRsaW5nAENvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIHRocmVhZCBoYW5kbGluZwBDYW4ndCBjcmVhdGUgdGVzdCBmaWxlICVzAENhbid0IHN0YXJ0IHNlcnZlcjogY2FuJ3QgY3JlYXRlIFBJRCBmaWxlOiAlcwBVbmFibGUgdG8gZGVsZXRlIHBpZCBmaWxlOiAlcwBDYW4ndCBjcmVhdGUgdGhyZWFkIHRvIGhhbmRsZSBzaHV0ZG93biByZXF1ZXN0cyAoZXJybm89ICVkKQBGYWlsZWQgdG8gYWNjZXNzIGRpcmVjdG9yeSBmb3IgLS0lcy4gUGxlYXNlIG1ha2Ugc3VyZSB0aGF0IGRpcmVjdG9yeSBleGlzdHMgYW5kIGlzIGFjY2Vzc2libGUgYnkgTXlTUUwgU2VydmVyLiBTdXBwbGllZCB2YWx1ZSA6ICVzAElnbm9yaW5nIC0tJXMgdmFsdWUgYXMgc2VydmVyIGlzIHJ1bm5pbmcgd2l0aCAtLWluaXRpYWxpemUoLWluc2VjdXJlKS4ASW5zZWN1cmUgY29uZmlndXJhdGlvbiBmb3IgLS0lczogQ3VycmVudCB2YWx1ZSBkb2VzIG5vdCByZXN0cmljdCBsb2NhdGlvbiBvZiBnZW5lcmF0ZWQgZmlsZXMuIENvbnNpZGVyIHNldHRpbmcgaXQgdG8gYSB2YWxpZCwgbm9uLWVtcHR5IHBhdGguAC0tJXMgaXMgc2V0IHRvIE5VTEwuIE9wZXJhdGlvbnMgcmVsYXRlZCB0byBpbXBvcnRpbmcgYW5kIGV4cG9ydGluZyBkYXRhIGFyZSBkaXNhYmxlZABJbnNlY3VyZSBjb25maWd1cmF0aW9uIGZvciAtLSVzOiAlcyBpcyBhY2Nlc3NpYmxlIHRocm91Z2ggLS0lcy4gQ29uc2lkZXIgY2hvb3NpbmcgYSBkaWZmZXJlbnQgZGlyZWN0b3J5LgBGYWlsZWQgdG8gZ2V0IHN0YXQgZm9yIGRpcmVjdG9yeSBwb2ludGVkIG91dCBieSAtLSVzAEluc2VjdXJlIGNvbmZpZ3VyYXRpb24gZm9yIC0tJXM6IExvY2F0aW9uIGlzIGFjY2Vzc2libGUgdG8gYWxsIE9TIHVzZXJzLiBDb25zaWRlciBjaG9vc2luZyBhIGRpZmZlcmVudCBkaXJlY3RvcnkuAFZhbHVlIGZvciAtLSVzIGlzIGxvbmdlciB0aGFuIG1heGltdW0gbGltaXQgb2YgJWQAQ2FuJ3QgY3JlYXRlIHRocmVhZCB0byBoYW5kbGUgbmFtZWQgcGlwZXMgKGVycm5vPSAlZCkAQ2FuJ3QgY3JlYXRlIHRocmVhZCB0byBoYW5kbGUgVENQL0lQIChlcnJubz0gJWQpAENhbid0IGNyZWF0ZSB0aHJlYWQgdG8gaGFuZGxlIHNoYXJlZCBtZW1vcnkgKGVycm5vPSAlZCkAQ2FuJ3QgY3JlYXRlIGludGVycnVwdC10aHJlYWQgKGVycm9yICVkLCBlcnJubzogJWQpAFdvcmxkLXdyaXRhYmxlIGNvbmZpZyBmaWxlICclcycgaGFzIGJlZW4gcmVtb3ZlZC4Ac2V0cmxpbWl0IGNvdWxkIG5vdCBjaGFuZ2UgdGhlIHNpemUgb2YgY29yZSBmaWxlcyB0byAnaW5maW5pdHknOyAgV2UgbWF5IG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIGEgY29yZSBmaWxlIG9uIHNpZ25hbHMAV3JvbmcgZGF0ZS90aW1lIGZvcm1hdCBzcGVjaWZpZXI6ICVzAENvdWxkIG5vdCBhbGxvY2F0ZSByZXBsaWNhdGlvbiBhbmQgYmlubG9nIGZpbHRlcnM6ICVzAENhbm5vdCBhbGxvY2F0ZSB0aGUga2V5Y2FjaGUAQ3VycmVudCB0aW1lIGhhcyBnb3QgcGFzdCB5ZWFyIDIwMzguIFZhbGlkYXRpbmcgY3VycmVudCB0aW1lIHdpdGggJWQgaXRlcmF0aW9ucyBiZWZvcmUgaW5pdGlhdGluZyB0aGUgbm9ybWFsIHNlcnZlciBzaHV0ZG93biBwcm9jZXNzLgBJdGVyYXRpb24gJWQ6IE9idGFpbmVkIHZhbGlkIGN1cnJlbnQgdGltZSBmcm9tIHN5c3RlbQBJdGVyYXRpb24gJWQ6IEN1cnJlbnQgdGltZSBvYnRhaW5lZCBmcm9tIHN5c3RlbSBpcyBncmVhdGVyIHRoYW4gMjAzOABUaGlzIE15U1FMIHNlcnZlciBkb2Vzbid0IHN1cHBvcnQgZGF0ZXMgbGF0ZXIgdGhlbiAyMDM4ACVzIChteXNxbGQgJXMpIHN0YXJ0aW5nIGFzIHByb2Nlc3MgJWx1AFNodXR0aW5nIGRvd24gcmVwbGljYSB0aHJlYWRzAEZvcmNlZnVsbHkgZGlzY29ubmVjdGluZyAlZCByZW1haW5pbmcgY2xpZW50cwBBYm9ydGluZwBCaW5sb2cgZW5kAGdldGhvc3RuYW1lIGZhaWxlZCwgdXNpbmcgJyVzJyBhcyBob3N0bmFtZQBPbmUgY2FuIG9ubHkgdXNlIHRoZSAtLXVzZXIgc3dpdGNoIGlmIHJ1bm5pbmcgYXMgcm9vdABGYXRhbCBlcnJvcjogUGxlYXNlIHJlYWQgIlNlY3VyaXR5IiBzZWN0aW9uIG9mIHRoZSBtYW51YWwgdG8gZmluZCBvdXQgaG93IHRvIHJ1biBteXNxbGQgYXMgcm9vdCEARmF0YWwgZXJyb3I6IENhbid0IGNoYW5nZSB0byBydW4gYXMgdXNlciAnJXMnIDsgIFBsZWFzZSBjaGVjayB0aGF0IHRoZSB1c2VyIGV4aXN0cyEAU2VydmVyIGlzIHN0YXJ0ZWQgd2l0aCAtLXJlcXVpcmUtc2VjdXJlLXRyYW5zcG9ydD1PTiBidXQgbm8gc2VjdXJlIHRyYW5zcG9ydHMgKFNTTCBvciBTaGFyZWQgTWVtb3J5KSBhcmUgY29uZmlndXJlZC4Ac2V0Z2lkOiAlcwBzZXR1aWQ6ICVzAHNldHJlZ2lkOiAlcwBzZXRyZXVpZDogJXMAY2hyb290OiAlcwBUQ1AvSVAsIC0tc2hhcmVkLW1lbW9yeSwgb3IgLS1uYW1lZC1waXBlIHNob3VsZCBiZSBjb25maWd1cmVkIG9uIE5UIE9TAENUUkwtQyBpZ25vcmVkIGR1cmluZyBzdGFydHVwACclcycgY2FuIG5vdCBiZSB1c2VkIGFzIGNsaWVudCBjaGFyYWN0ZXIgc2V0LiAnJXMnIHdpbGwgYmUgdXNlZCBhcyBkZWZhdWx0IGNsaWVudCBjaGFyYWN0ZXIgc2V0LgBPdXQgb2YgbWVtb3J5AEZhaWxlZCB0byBsb2NrIG1lbW9yeS4gRXJybm86ICVkAG15X2luaXQoKSBmYWlsZWQuAEV4ZWN1dGlvbiBvZiBpbml0X2ZpbGUgJyVzJyBzdGFydGVkLgBFeGVjdXRpb24gb2YgaW5pdF9maWxlICclcycgZW5kZWQuAENoYW5nZWQgbGltaXRzOiBtYXhfb3Blbl9maWxlczogJWx1IChyZXF1ZXN0ZWQgJWx1KQBDb3VsZCBub3QgaW5jcmVhc2UgbnVtYmVyIG9mIG1heF9vcGVuX2ZpbGVzIHRvIG1vcmUgdGhhbiAlbHUgKHJlcXVlc3Q6ICVsdSkAQ2hhbmdlZCBsaW1pdHM6IG1heF9jb25uZWN0aW9uczogJWx1IChyZXF1ZXN0ZWQgJWx1KQBDaGFuZ2VkIGxpbWl0czogdGFibGVfb3Blbl9jYWNoZTogJWx1IChyZXF1ZXN0ZWQgJWx1KQBJZ25vcmluZyB1c2VyIGNoYW5nZSB0byAnJXMnIGJlY2F1c2UgdGhlIHVzZXIgd2FzIHNldCB0byAnJXMnIGVhcmxpZXIgb24gdGhlIGNvbW1hbmQgbGluZQBDb3VsZCBub3QgYWRkIGRvIHRhYmxlIHJ1bGUgJyVzJyEAQ291bGQgbm90IGFkZCBpZ25vcmUgdGFibGUgcnVsZSAnJXMnIQBUaGUgdmFyaWFibGUgc2Vzc2lvbl90cmFja19zeXN0ZW1fdmFyaWFibGVzIGVpdGhlciBoYXMgZHVwbGljYXRlIHZhbHVlcyBvciBpbnZhbGlkIHZhbHVlcy4AVG9vIG1hbnkgYXJndW1lbnRzIChmaXJzdCBleHRyYSBpcyAnJXMnKS4AVXNlIC0tdmVyYm9zZSAtLWhlbHAgdG8gZ2V0IGEgbGlzdCBvZiBhdmFpbGFibGUgb3B0aW9ucyEAVW5hYmxlIHRvIHJlYWQgZXJybXNnLnN5cyBmaWxlAENhbid0IGluaXQgZGF0YWJhc2VzAFRoZXJlIHdlcmUgb3RoZXIgdmFsdWVzIHNwZWNpZmllZCB0byBsb2ctb3V0cHV0IGJlc2lkZXMgTk9ORS4gRGlzYWJsaW5nIHNsb3cgYW5kIGdlbmVyYWwgbG9ncyBhbnl3YXkuAENTViBlbmdpbmUgaXMgbm90IHByZXNlbnQsIGZhbGxpbmcgYmFjayB0byB0aGUgbG9nIGZpbGVzAEJhZCBzeW50YXggaW4gcmVwbGljYXRlLXJld3JpdGUtZGIgLSBtaXNzaW5nICctPichAEJhZCBzeW50YXggaW4gcmVwbGljYXRlLXJld3JpdGUtZGIgLSBlbXB0eSBGUk9NIGRiIQBCYWQgc3ludGF4IGluIHJlcGxpY2F0ZS1yZXdyaXRlLWRiIC0gZW1wdHkgVE8gZGIhAEFsdGhvdWdoIGEgcGF0aCB3YXMgc3BlY2lmaWVkIGZvciB0aGUgJXMsIGxvZyB0YWJsZXMgYXJlIHVzZWQuIFRvIGVuYWJsZSBsb2dnaW5nIHRvIGZpbGVzIHVzZSB0aGUgLS1sb2ctb3V0cHV0PWZpbGUgb3B0aW9uLgBJbnZhbGlkIHZhbHVlIGZvciAlczogJXMAVGhlIHNlcnZlciBvcHRpb24gJ2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMnIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIGNhc2Ugc2Vuc2l0aXZlIHRhYmxlIG5hbWVzIGJ1dCB0aGUgZGF0YSBkaXJlY3RvcnkgaXMgb24gYSBjYXNlLWluc2Vuc2l0aXZlIGZpbGUgc3lzdGVtIHdoaWNoIGlzIGFuIHVuc3VwcG9ydGVkIGNvbWJpbmF0aW9uLiBQbGVhc2UgY29uc2lkZXIgZWl0aGVyIHVzaW5nIGEgY2FzZSBzZW5zaXRpdmUgZmlsZSBzeXN0ZW0gZm9yIHlvdXIgZGF0YSBkaXJlY3Rvcnkgb3Igc3dpdGNoaW5nIHRvIGEgY2FzZS1pbnNlbnNpdGl2ZSB0YWJsZSBuYW1lIG1vZGUuAFNldHRpbmcgbG93ZXJfY2FzZV90YWJsZV9uYW1lcz0yIGJlY2F1c2UgZmlsZSBzeXN0ZW0gZm9yICVzIGlzIGNhc2UgaW5zZW5zaXRpdmUAbG93ZXJfY2FzZV90YWJsZV9uYW1lcyB3YXMgc2V0IHRvIDIsIGV2ZW4gdGhvdWdoIHlvdXIgdGhlIGZpbGUgc3lzdGVtICclcycgaXMgY2FzZSBzZW5zaXRpdmUuICBOb3cgc2V0dGluZyBsb3dlcl9jYXNlX3RhYmxlX25hbWVzIHRvIDAgdG8gYXZvaWQgZnV0dXJlIHByb2JsZW1zLgBZb3UgbmVlZCB0byB1c2UgLS1sb2ctYmluIHRvIG1ha2UgJXMgd29yay4AUGF0aCAnJXMnIGlzIGEgZGlyZWN0b3J5IG5hbWUsIHBsZWFzZSBzcGVjaWZ5IGEgZmlsZSBuYW1lIGZvciAlcyBvcHRpb24ATm8gYXJndW1lbnQgd2FzIHByb3ZpZGVkIHRvIC0tbG9nLWJpbiwgYW5kIC0tbG9nLWJpbi1pbmRleCB3YXMgbm90IHVzZWQ7IHNvIHJlcGxpY2F0aW9uIG1heSBicmVhayB3aGVuIHRoaXMgTXlTUUwgc2VydmVyIGFjdHMgYXMgYSBzb3VyY2UgYW5kIGhhcyBoaXMgaG9zdG5hbWUgY2hhbmdlZCEhIFBsZWFzZSB1c2UgJy0tbG9nLWJpbj0lcycgdG8gYXZvaWQgdGhpcyBwcm9ibGVtLgBZb3UgaGF2ZSBlbmFibGVkIHRoZSBiaW5hcnkgbG9nLCBidXQgeW91IGhhdmVuJ3QgcHJvdmlkZWQgdGhlIG1hbmRhdG9yeSBzZXJ2ZXItaWQuIFBsZWFzZSByZWZlciB0byB0aGUgcHJvcGVyIHNlcnZlciBzdGFydC11cCBwYXJhbWV0ZXJzIGRvY3VtZW50YXRpb24AVW5hYmxlIHRvIGNyZWF0ZSByZXBsaWNhdGlvbiBwYXRoIG5hbWVzOiBvdXQgb2YgbWVtb3J5IG9yIHBhdGggbmFtZXMgdG9vIGxvbmcgKHBhdGggbmFtZSBleGNlZWRzICVkIG9yIGZpbGUgbmFtZSBleGNlZWRzICVkKS4ARmFpbGVkIHRvIGluaXRpYWxpemUgR1RJRCBzdHJ1Y3R1cmVzLgBGYWlsZWQgdG8gaW5pdGlhbGl6ZSBlYXJseSBwbHVnaW5zLgBGYWlsZWQgdG8gaW5pdGlhbGl6ZSBidWlsdGluIHBsdWdpbnMuAEZhaWxlZCB0byBpbml0aWFsaXplIGR5bmFtaWMgcGx1Z2lucy4AUGVyZm9ybWFuY2Ugc2NoZW1hIGRpc2FibGVkIChyZWFzb246IGluaXQgZmFpbGVkKS4AQXNrZWQgZm9yICVsdSB0aHJlYWQgc3RhY2ssIGJ1dCBnb3QgJWxkAGZhaWxlZCB0byBzZXQgZGF0YWRpciB0byAlcwBDYW4ndCByZWFkIGRhdGEgZGlyZWN0b3J5J3Mgc3RhdHMgKCVkKTogJXMuIEFzc3VtaW5nIHRoYXQgaXQncyBub3Qgb3duZWQgYnkgdGhlIHNhbWUgdXNlci9ncm91cABDYW4ndCBjaGFuZ2UgZGF0YSBkaXJlY3Rvcnkgb3duZXIgdG8gJXMAU2V0dGluZyBwZXJzaXN0ZW50IG9wdGlvbnMgZmFpbGVkLgBGYWlsZWQgdG8gc2F2ZSB0aGUgc2V0IG9mIEdsb2JhbCBUcmFuc2FjdGlvbiBJZGVudGlmaWVycyBvZiB0aGUgbGFzdCBiaW5hcnkgbG9nIGludG8gdGhlIG15c3FsLmd0aWRfZXhlY3V0ZWQgdGFibGUgd2hpbGUgdGhlIHNlcnZlciB3YXMgc2h1dHRpbmcgZG93bi4gVGhlIG5leHQgc2VydmVyIHJlc3RhcnQgd2lsbCBtYWtlIGFub3RoZXIgYXR0ZW1wdCB0byBzYXZlIEdsb2JhbCBUcmFuc2FjdGlvbiBJZGVudGlmaWVycyBpbnRvIHRoZSB0YWJsZS4AQ2FuJ3Qgc3RhcnQgc2VydmVyOiBJbnZhbGlkIHZhbHVlIGZvciAtLWRlZmF1bHQtYXV0aGVudGljYXRpb24tcGx1Z2luAENvdWxkIG5vdCBqb2luICVzdGhyZWFkLiBlcnJvcjolZABBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBidWlsZGluZyBkb190YWJsZSBhbmQgaWdub3JlX3RhYmxlIHJ1bGVzIHRvIGhhc2hlcyBmb3IgZ2xvYmFsIHJlcGxpY2F0aW9uIGZpbHRlci4ARXJyb3Igb3BlbmluZyBDQSBjZXJ0aWZpY2F0ZSBmaWxlAEVycm9yIGFjY2Vzc2luZyBkaXJlY3RvcnkgcG9pbnRlZCBieSAtLXNzbC1jYXBhdGgARm91bmQgJXMsICVzIGFuZCAlcyBpbiBkYXRhIGRpcmVjdG9yeS4gVHJ5aW5nIHRvIGVuYWJsZSBTU0wgc3VwcG9ydCB1c2luZyB0aGVtLgBGYWlsZWQgdG8gY3JlYXRlICVzKGZpbGU6ICclcycsIGVycm5vICVkKQBGYWlsZWQgdG8gaW5pdGlhbGl6ZSB0aW1lciBjb21wb25lbnQgKGVycm5vICVkKS4Ac2VydmVyLWlkIGNvbmZpZ3VyZWQgaXMgdG9vIGxhcmdlIHRvIHJlcHJlc2VudCB3aXRoIHNlcnZlci1pZC1iaXRzIGNvbmZpZ3VyZWQuAERlZmF1bHQlcyBzdG9yYWdlIGVuZ2luZSAoJXMpIGlzIG5vdCBhdmFpbGFibGUAQ291bGQgbm90IG9wZW4gZmlsZSAnJXMnIGZvciBlcnJvciBsb2dnaW5nJXMlcwBJbnZhbGlkIGxvZyBmaWxlIG5hbWUgYWZ0ZXIgZXhwYW5kaW5nIHN5bWxpbmtzOiAnJXMnAHVzaW5nIC0tcmVwbGljYXRlLXNhbWUtc2VydmVyLWlkIGluIGNvbmp1bmN0aW9uIHdpdGggLS1sb2ctcmVwbGljYS11cGRhdGVzIGlzIGltcG9zc2libGUsIGl0IHdvdWxkIGxlYWQgdG8gaW5maW5pdGUgbG9vcHMgaW4gdGhpcyBzZXJ2ZXIuAHVzaW5nIC0tcmVwbGljYXRlLXNhbWUtc2VydmVyLWlkIGluIGNvbmp1bmN0aW9uIHdpdGggLS1sb2ctcmVwbGljYS11cGRhdGVzIHdvdWxkIGxlYWQgdG8gaW5maW5pdGUgbG9vcHMgaW4gdGhpcyBzZXJ2ZXIuIEhvd2V2ZXIgdGhpcyB3aWxsIGJlIGlnbm9yZWQgYXMgdGhlIC0tbG9nLWJpbiBvcHRpb24gaXMgbm90IGRlZmluZWQgb3IgeW91ciBzZXJ2ZXIgaXMgcnVubmluZyB3aXRoIGdsb2JhbCB0cmFuc2FjdGlvbiBpZGVudGllcnMgZW5hYmxlZC4ATkRCIDogVGFibGVzIG5vdCBhdmFpbGFibGUgYWZ0ZXIgJWx1IHNlY29uZHMuIENvbnNpZGVyIGluY3JlYXNpbmcgLS1uZGItd2FpdC1zZXR1cCB2YWx1ZQAlcwBVbmFibGUgdG8gc3RhcnQgc2VydmVyLiBUaGUgZGF0YSBkaWN0aW9uYXJ5IHRhYmxlc3BhY2UgJyVzJyBkb2VzIG5vdCBleGlzdC4AQ29ubmVjdGlvbiBjb2xsYXRpb24gaXMgbWlzc2luZyBmb3IgdHJpZ2dlciBvZiB0YWJsZSAlcy4gVXNpbmcgZGVmYXVsdCBjb25uZWN0aW9uIGNvbGxhdGlvbi4ARGF0YWJhc2UgY29sbGF0aW9uIGlzIG1pc3NpbmcgZm9yIHRyaWdnZXIgb2YgdGFibGUgJXMuIFVzaW5nIERlZmF1bHQgY2hhcmFjdGVyIHNldC4ARXJyb3IgaW4gTWVtb3J5IGFsbG9jYXRpb24gZm9yIERlZmluZXIgJXMgZm9yIFRyaWdnZXIuAEVycm9yIGluIHJlYWRpbmcgJXMuVFJHIGZpbGUuAEVycm9yIGluIHBhcnNpbmcgVHJpZ2dlcnMgZnJvbSAlcy5UUkcgZmlsZS4ARXJyb3IgaW4gY3JlYXRpbmcgREQgZW50cnkgZm9yIFRyaWdnZXIgJXMuJXMAUmVzb2x2aW5nIGRlcGVuZGVuY3kgZm9yIHRoZSB2aWV3ICclcy4lcycgZmFpbGVkLiBWaWV3IGlzIG5vIG1vcmUgdmFsaWQgdG8gdXNlACVzLiVzIGhhcyBubyBkZWZpbmVyIChhcyBwZXIgYW4gb2xkIHZpZXcgZm9ybWF0KS4gQ3VycmVudCB1c2VyIGlzIHVzZWQgYXMgZGVmaW5lci4gUGxlYXNlIHJlY3JlYXRlIHRoZSB2aWV3LgBQbHVnaW4gJyVzJyBpbml0IGZ1bmN0aW9uIHJldHVybmVkIGVycm9yLgBJbml0aWFsaXphdGlvbiBvZiB0cmFuc2FjdGlvbiBkZWxlZ2F0ZXMgZmFpbGVkLiBQbGVhc2UgcmVwb3J0IGEgYnVnLgBJbml0aWFsaXphdGlvbiBiaW5sb2cgc3RvcmFnZSBkZWxlZ2F0ZXMgZmFpbGVkLiBQbGVhc2UgcmVwb3J0IGEgYnVnLgBJbml0aWFsaXphdGlvbiBvZiBiaW5sb2cgdHJhbnNtaXQgZGVsZWdhdGVzIGZhaWxlZC4gUGxlYXNlIHJlcG9ydCBhIGJ1Zy4ASW5pdGlhbGl6YXRpb24gYmlubG9nIHJlbGF5IElPIGRlbGVnYXRlcyBmYWlsZWQuIFBsZWFzZSByZXBvcnQgYSBidWcuAFJ1biBmdW5jdGlvbiAnLi4uJyBpbiBwbHVnaW4gJyVzJyBmYWlsZWQAbXlzcWxfaGFfcmVhZDogR290IGVycm9yICVkIHdoZW4gcmVhZGluZyB0YWJsZSAnJXMnAFN0b3JlZCByb3V0aW5lICclcycuJyVzJzogaW52YWxpZCB2YWx1ZSBpbiBjb2x1bW4gJXMuAEludmFsaWQgY3JlYXRpb24gY29udGV4dCAnJXMuJXMnLgBHb3QgZXJyb3IgJWQgd2hlbiByZWFkaW5nIHRhYmxlICclcycAbG9hZF9kZXNfZmlsZTogIEZvdW5kIHdyb25nIGtleV9udW1iZXI6ICVjAEZhaWxlZCB0byBzZXQgcGVyc2lzdGVkIG9wdGlvbnMuAFBlcnNpc3RlZCBjb25maWcgZmlsZSBpcyBjb3JydXB0LiBQbGVhc2UgZW5zdXJlIG15c3FsZC1hdXRvLmNuZiBmaWxlIGlzIHZhbGlkIEpTT04uAEZvdW5kIG9wdGlvbiB3aXRob3V0IHByZWNlZGluZyBncm91cCBpbiBjb25maWcgZmlsZQBWQUxHUklORF9ET19RVUlDS19MRUFLX0NIRUNLAFZBTEdSSU5EX0NPVU5UX0xFQUtTIHJlcG9ydHMgJWx1IGxlYWtlZCBieXRlcyBmb3IgcXVlcnkgJyUuKnMnAExPQUQgREFUQSBJTkZJTEUgaW4gdGhlIHJlcGxpY2EgU1FMIFRocmVhZCBjYW4gb25seSByZWFkIGZyb20gLS1yZXBsaWNhLWxvYWQtdG1wZGlyLiBQbGVhc2UsIHJlcG9ydCBhIGJ1Zy4AR290IHVua25vd24gZXJyb3I6ICVkAENhbid0IGFsbG9jYXRlIG1lbW9yeSBmb3IgdWRmIHN0cnVjdHVyZXMAQ2FuJ3QgYWxsb2MgbWVtb3J5IGZvciB1ZGYgZnVuY3Rpb246ICclLjY0cycASW52YWxpZCByb3cgaW4gbXlzcWwuZnVuYyB0YWJsZSBmb3IgZnVuY3Rpb24gJyUuNjRzJwBDb3VsZCBub3Qgb3BlbiB0aGUgbXlzcWwuZnVuYyB0YWJsZS4gUGxlYXNlIHBlcmZvcm0gdGhlIE15U1FMIHVwZ3JhZGUgcHJvY2VkdXJlLgBGb3VuZCAlZCBwcmVwYXJlZCB0cmFuc2FjdGlvbihzKSBpbiAlcwBGb3VuZCAlZCBwcmVwYXJlZCBYQSB0cmFuc2FjdGlvbnMAaWdub3JlIHhpZCAlcwBjb21taXQgeGlkICVzAHJvbGxiYWNrIHhpZCAlcwBTdGFydGluZyBYQSBjcmFzaCByZWNvdmVyeS4uLgAtLXRjLWhldXJpc3RpYy1yZWNvdmVyIHJvbGxiYWNrIHN0cmF0ZWd5IGlzIG5vdCBzYWZlIG9uIHN5c3RlbXMgd2l0aCBtb3JlIHRoYW4gb25lIDItcGhhc2UtY29tbWl0LWNhcGFibGUgc3RvcmFnZSBlbmdpbmUuIEFib3J0aW5nIGNyYXNoIHJlY292ZXJ5LgBGb3VuZCAlZCBwcmVwYXJlZCB0cmFuc2FjdGlvbnMhIEl0IG1lYW5zIHRoYXQgbXlzcWxkIHdhcyBub3Qgc2h1dCBkb3duIHByb3Blcmx5IGxhc3QgdGltZSBhbmQgY3JpdGljYWwgcmVjb3ZlcnkgaW5mb3JtYXRpb24gKGxhc3QgYmlubG9nIG9yICVzIGZpbGUpIHdhcyBtYW51YWxseSBkZWxldGVkIGFmdGVyIGEgY3Jhc2guIFlvdSBoYXZlIHRvIHN0YXJ0IG15c3FsZCB3aXRoIC0tdGMtaGV1cmlzdGljLXJlY292ZXIgc3dpdGNoIHRvIGNvbW1pdCBvciByb2xsYmFjayBwZW5kaW5nIHRyYW5zYWN0aW9ucy4AWEEgY3Jhc2ggcmVjb3ZlcnkgZmluaXNoZWQuAEZhaWxlZCB0byBjb2xsZWN0IEdUSUQgdG8gc2VuZCBpbiB0aGUgcmVzcG9uc2UgcGFja2V0IQBNWVNRTC5ERUZBVUxUX1JPTEVTIGNvdWxkbid0IGJlIHVwZGF0ZWQgZm9yIGF1dGhvcml6YXRpb24gaWRlbnRpZmllciAlcwBGb2xsb3dpbmcgdXNlcnMgd2VyZSBzcGVjaWZpZWQgaW4gQ1JFQVRFIFVTRVIgSUYgTk9UIEVYSVNUUyBidXQgdGhleSBhbHJlYWR5IGV4aXN0LiBDb3JyZXNwb25kaW5nIGVudHJ5IGluIGJpbmFyeSBsb2cgdXNlZCBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIHBsdWdpbiAnJXMnIHRvIHJld3JpdGUgYXV0aGVudGljYXRpb24gaW5mb3JtYXRpb24gKGlmIGFueSkgZm9yIHRoZW06ICVzAEZvbGxvd2luZyB1c2VycyB3ZXJlIHNwZWNpZmllZCBpbiBBTFRFUiBVU0VSIElGIEVYSVNUUyBidXQgdGhleSBkbyBub3QgZXhpc3QuIENvcnJlc3BvbmRpbmcgZW50cnkgaW4gYmluYXJ5IGxvZyB1c2VkIGRlZmF1bHQgYXV0aGVudGljYXRpb24gcGx1Z2luICclcycgdG8gcmV3cml0ZSBhdXRoZW50aWNhdGlvbiBpbmZvcm1hdGlvbiAoaWYgYW55KSBmb3IgdGhlbTogJXMAVGFibGUgJyUtMTkycycgY29ycnVwdGVkOiByb3cgaW4gd3JvbmcgcGFydGl0aW9uOiAlcyAtLSBQbGVhc2UgUkVQQUlSIHRoZSB0YWJsZSEAR290IGFuIGVycm9yIGZyb20gdGhyZWFkX2lkPSV1LCAlczolZABHb3QgYW4gZXJyb3IgZnJvbSB1bmtub3duIHRocmVhZCwgJXM6JWQAVG9vIG1hbnkgc3RvcmFnZSBlbmdpbmVzIQBTdG9yYWdlIGVuZ2luZSAnJXMnIGhhcyBjb25mbGljdGluZyB0eXBlY29kZS4gQXNzaWduaW5nIHZhbHVlICVkLgBPdXQgb2YgbWVtb3J5IG9uIHRyYW5zYWN0aW9uIHdyaXRlIHNldCBleHRyYWN0aW9uAFVuYWJsZSB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIHBsdWdpbiAnJXMnIGhhbmRsZXJ0b24uAFNoYXJlZCBtZW1vcnkgc2V0dGluZyB1cCBsaXN0ZW5lcgBDYW4ndCBjcmVhdGUgc2hhcmVkIG1lbW9yeSBzZXJ2aWNlOiAlcy4gOiAlcwBDYW4ndCBjcmVhdGUgc2hhcmVkIG1lbW9yeSBjb25uZWN0aW9uOiAlcy4gOiAlcwBDYW4ndCBjcmVhdGUgZXZlbnQsIGxhc3QgZXJyb3I9JXUAQ2FuJ3QgY3JlYXRlIG5ldyBuYW1lZCBwaXBlITogJXMAQ2FuJ3QgY3JlYXRlIHRocmVhZCB0byBoYW5kbGUgbmV3IGNvbm5lY3Rpb24oZXJybm89ICVkKQBGYWlsZWQgdG8gY3JlYXRlIGEgc29ja2V0IGZvciAlcyAnJXMnOiBlcnJubzogJWQuAFNlcnZlciBzb2NrZXQgY3JlYXRlZCBvbiBJUDogJyVzJy4AU2VydmVyIGhvc3RuYW1lIChiaW5kLWFkZHJlc3MpOiAnJXMnOyBwb3J0OiAlZABJUHY2IGlzIGF2YWlsYWJsZS4ASVB2NiBpcyBub3QgYXZhaWxhYmxlLgBDYW4ndCBjcmVhdGUgSVAgc29ja2V0OiAlcwBDYW4ndCBzdGFydCBzZXJ2ZXI6IGNhbm5vdCByZXNvbHZlIGhvc3RuYW1lIQBEbyB5b3UgYWxyZWFkeSBoYXZlIGFub3RoZXIgbXlzcWxkIHNlcnZlciBydW5uaW5nIG9uIHBvcnQ6ICVkID8ARG8geW91IGFscmVhZHkgaGF2ZSBhbm90aGVyIG15c3FsZCBzZXJ2ZXIgcnVubmluZyBvbiBzb2NrZXQ6ICVzID8AQW5vdGhlciBwcm9jZXNzIHdpdGggcGlkICVkIGlzIHVzaW5nIHVuaXggc29ja2V0IGZpbGUuAEZhaWxlZCB0byByZXNldCBJUFY2X1Y2T05MWSBmbGFnIChlcnJvcjogJWQpLiBUaGUgc2VydmVyIHdpbGwgbGlzdGVuIHRvIElQdjYgYWRkcmVzc2VzIG9ubHkuAFJldHJ5aW5nIGJpbmQgb24gVENQL0lQIHBvcnQgJXUAQ2FuJ3Qgc3RhcnQgc2VydmVyOiBCaW5kIG9uIFRDUC9JUCBwb3J0OiAlcwBGYWlscyB0byBwcmludCBvdXQgSVAtYWRkcmVzcy4AICAtICclcycgcmVzb2x2ZXMgdG8gJyVzJzsAQ2FuJ3Qgc3RhcnQgc2VydmVyOiBsaXN0ZW4oKSBvbiBUQ1AvSVAgcG9ydDogJXMAbGlzdGVuKCkgb24gVENQL0lQIGZhaWxlZCB3aXRoIGVycm9yICVkAFRoZSBzb2NrZXQgZmlsZSBwYXRoIGlzIHRvbyBsb25nICg+ICV1KTogJXMAVW5hYmxlIHRvIHNldHVwIHVuaXggc29ja2V0IGxvY2sgZmlsZS4AQ2FuJ3Qgc3RhcnQgc2VydmVyOiBVTklYIFNvY2tldCA6ICVzAENhbid0IHN0YXJ0IHNlcnZlciA6IEJpbmQgb24gdW5peCBzb2NrZXQ6ICVzAGxpc3RlbigpIG9uIFVuaXggc29ja2V0IGZhaWxlZCB3aXRoIGVycm9yICVkAFVuYWJsZSB0byBjcmVhdGUgdW5peCBzb2NrZXQgbG9jayBmaWxlICVzIGFmdGVyIHJldHJpZXMuAENvdWxkIG5vdCBjcmVhdGUgdW5peCBzb2NrZXQgbG9jayBmaWxlICVzLgBDb3VsZCBub3Qgb3BlbiB1bml4IHNvY2tldCBsb2NrIGZpbGUgJXMuAENvdWxkIG5vdCByZWFkIHVuaXggc29ja2V0IGxvY2sgZmlsZSAlcy4AVW5peCBzb2NrZXQgbG9jayBmaWxlIGlzIGVtcHR5ICVzLgBJbnZhbGlkIHBpZCBpbiB1bml4IHNvY2tldCBsb2NrIGZpbGUgJXMuAENvdWxkIG5vdCB3cml0ZSB1bml4IHNvY2tldCBsb2NrIGZpbGUgJXMgZXJybm8gJWQuAENvdWxkIG5vdCByZW1vdmUgdW5peCBzb2NrZXQgbG9jayBmaWxlICVzIGVycm5vICVkLgBDb3VsZCBub3Qgc3luYyB1bml4IHNvY2tldCBsb2NrIGZpbGUgJXMgZXJybm8gJWQuAENvdWxkIG5vdCBjbG9zZSB1bml4IHNvY2tldCBsb2NrIGZpbGUgJXMgZXJybm8gJWQuAG15c3FsZDogR290IGVycm9yICVkIGZyb20gc2VsZWN0AEVycm9yIGluIGFjY2VwdDogJXMAUlNBICVzIGtleSBmaWxlIG5vdCBmb3VuZDogJXMuIFNvbWUgYXV0aGVudGljYXRpb24gcGx1Z2lucyB3aWxsIG5vdCB3b3JrLgBGYWlsdXJlIHRvIHBhcnNlIFJTQSAlcyBrZXkgKGZpbGUgZXhpc3RzKTogJXM6ICVzAEZhaWx1cmUgdG8gcmVhZCBrZXkgZmlsZTogJXMAUlNBIGtleSBmaWxlcyBub3QgZm91bmQuIFNvbWUgYXV0aGVudGljYXRpb24gcGx1Z2lucyB3aWxsIG5vdCB3b3JrLgBDb25uZWN0aW9uIGF0dHJpYnV0ZXMgb2YgbGVuZ3RoICVsdSB3ZXJlIHRydW5jYXRlZCAoJWQgYnl0ZXMgbG9zdCkgZm9yIGNvbm5lY3Rpb24gJWxsdSwgdXNlciAlc0AlcyAoYXMgJXMpLCBhdXRoOiAlcwBYLjUwOSBjaXBoZXJzIG1pc21hdGNoOiBzaG91bGQgYmUgJyVzJyBidXQgaXMgJyVzJwBYLjUwOSBpc3N1ZXIgbWlzbWF0Y2g6IHNob3VsZCBiZSAnJXMnIGJ1dCBpcyAnJXMnAFguNTA5IHN1YmplY3QgbWlzbWF0Y2g6IHNob3VsZCBiZSAnJXMnIGJ1dCBpcyAnJXMnAEZhaWxlZCB0byBhY3RpdmF0ZSBkZWZhdWx0IHJvbGUgJXMgZm9yICVzAENvdWxkIG5vdCBnZW5lcmF0ZSBSU0EgcHJpdmF0ZSBrZXkgcmVxdWlyZWQgZm9yIFguNTA5IGNlcnRpZmljYXRlLgBDb3VsZCBub3Qgd3JpdGUga2V5IGZpbGU6ICVzAENvdWxkIG5vdCBzZXQgZmlsZSBwZXJtaXNzaW9uIGZvciAlcwBDb3VsZCBub3QgcmVhZCBDQSBrZXkgZmlsZTogJXMAQ291bGQgbm90IHJlYWQgQ0EgY2VydGlmaWNhdGUgZmlsZTogJXMAQ291bGQgbm90IGdlbmVyYXRlIFguNTA5IGNlcnRpZmljYXRlLgBDb3VsZCBub3Qgd3JpdGUgY2VydGlmaWNhdGUgZmlsZTogJXMAQ291bGQgbm90IGdlbmVyYXRlIFJTQSBQcml2YXRlL1B1YmxpYyBrZXkgcGFpcgBDb3VsZCBub3Qgd3JpdGUgcHJpdmF0ZSBrZXkgZmlsZTogJXMAQ291bGQgbm90IHdyaXRlIHB1YmxpYyBrZXkgZmlsZTogJXMAU2tpcHBpbmcgZ2VuZXJhdGlvbiBvZiBTU0wgY2VydGlmaWNhdGVzIGFzIG9wdGlvbnMgcmVsYXRlZCB0byBTU0wgYXJlIHNwZWNpZmllZC4AU2tpcHBpbmcgZ2VuZXJhdGlvbiBvZiBTU0wgY2VydGlmaWNhdGVzIGFzIGNlcnRpZmljYXRlIGZpbGVzIGFyZSBwcmVzZW50IGluIGRhdGEgZGlyZWN0b3J5LgBBdXRvIGdlbmVyYXRlZCBTU0wgY2VydGlmaWNhdGVzIGFyZSBwbGFjZWQgaW4gZGF0YSBkaXJlY3RvcnkuAFNraXBwaW5nIGdlbmVyYXRpb24gb2YgU1NMIGNlcnRpZmljYXRlcyBhcyAtLWF1dG9fZ2VuZXJhdGVfY2VydHMgaXMgc2V0IHRvIE9GRi4AU2tpcHBpbmcgZ2VuZXJhdGlvbiBvZiBSU0Ega2V5IHBhaXIgdGhyb3VnaCAlcyBhcyBvcHRpb25zIHJlbGF0ZWQgdG8gUlNBIGtleXMgYXJlIHNwZWNpZmllZC4AU2tpcHBpbmcgZ2VuZXJhdGlvbiBvZiBSU0Ega2V5IHBhaXIgdGhyb3VnaCAlcyBhcyBrZXkgZmlsZXMgYXJlIHByZXNlbnQgaW4gZGF0YSBkaXJlY3RvcnkuAEF1dG8gZ2VuZXJhdGVkIFJTQSBrZXkgZmlsZXMgdGhyb3VnaCAlcyBhcmUgcGxhY2VkIGluIGRhdGEgZGlyZWN0b3J5LgBTa2lwcGluZyBnZW5lcmF0aW9uIG9mIFJTQSBrZXkgcGFpciBhcyAlcyBpcyBzZXQgdG8gT0ZGLgAncHJveGllc19wcml2JyBlbnRyeSAnJXNAJXMgJXNAJXMnIGlnbm9yZWQgaW4gLS1za2lwLW5hbWUtcmVzb2x2ZSBtb2RlLgBUaGUgcGx1Z2luICclLipzJyB1c2VkIHRvIGF1dGhlbnRpY2F0ZSB1c2VyICclcydAJyUuKnMnIGlzIG5vdCBsb2FkZWQuIE5vYm9keSBjYW4gY3VycmVudGx5IGxvZ2luIHVzaW5nIHRoaXMgYWNjb3VudC4AVGhlIHBsdWdpbiAnJXMnIGlzIHVzZWQgdG8gYXV0aGVudGljYXRlIHVzZXIgJyVzJ0AnJS4qcycsICVzIGNvbmZpZ3VyZWQuIE5vYm9keSBjYW4gY3VycmVudGx5IGxvZ2luIHVzaW5nIHRoaXMgYWNjb3VudC4AQ291bGQgbm90IGxvYWQgbXlzcWwucm9sZV9lZGdlcyBhbmQgbXlzcWwuZGVmYXVsdF9yb2xlcyB0YWJsZXMuIEFDTCBERExzIHdpbGwgbm90IHdvcmsgdW5sZXNzIHRoZSBNeVNRTCB1cGdyYWRlIHByb2NlZHVyZSBpcyBwZXJmb3JtZWQuACd1c2VyJyBlbnRyeSAnJXNAJXMnIGlnbm9yZWQgaW4gLS1za2lwLW5hbWUtcmVzb2x2ZSBtb2RlLgBGYXRhbCBlcnJvcjogQ291bGQgbm90IHJlYWQgdGhlIGNvbHVtbiAnYXV0aGVudGljYXRpb25fc3RyaW5nJyBmcm9tIHRhYmxlICdteXNxbC51c2VyJy4gUGxlYXNlIHBlcmZvcm0gdGhlIE15U1FMIHVwZ3JhZGUgcHJvY2VkdXJlLgBVc2VyIGVudHJ5ICclcydAJyVzJyBoYXMgYSBkZXByZWNhdGVkIHByZS00LjEgcGFzc3dvcmQuIFRoZSB1c2VyIHdpbGwgYmUgaWdub3JlZCBhbmQgbm8gb25lIGNhbiBsb2dpbiB3aXRoIHRoaXMgdXNlciBhbnltb3JlLgBVc2VyIGVudHJ5ICclcydAJyVzJyBoYXMgYW4gZW1wdHkgcGx1Z2luIHZhbHVlLiBUaGUgdXNlciB3aWxsIGJlIGlnbm9yZWQgYW5kIG5vIG9uZSBjYW4gbG9naW4gd2l0aCB0aGlzIHVzZXIgYW55bW9yZS4ARm91bmQgaW52YWxpZCBwYXNzd29yZCBmb3IgdXNlcjogJyVzQCVzJzsgSWdub3JpbmcgdXNlcgAndXNlcicgZW50cnkgJyVzQCVzJyBoYXMgdGhlIHBhc3N3b3JkIGlnbm9yZSBmbGFnIHJhaXNlZCwgYnV0IGl0cyBhdXRoZW50aWNhdGlvbiBwbHVnaW4gZG9lc24ndCBzdXBwb3J0IHBhc3N3b3JkIGV4cGlyYXRpb24uIFRoZSB1c2VyIGlkIHdpbGwgYmUgaWdub3JlZC4AU29tZSBvZiB0aGUgdXNlciBhY2NvdW50cyB3aXRoIFNVUEVSIHByaXZpbGVnZXMgd2VyZSBkaXNhYmxlZCBiZWNhdXNlIG9mIGVtcHR5IG15c3FsLnVzZXIucGx1Z2luIHZhbHVlLiBJZiB5b3UgYXJlIHVwZ3JhZGluZyBmcm9tIE15U1FMIDUuNiB0byBNeVNRTCA1LjcgaXQgbWVhbnMgdGhhdCBzdWJzdGl0dXRpb24gZm9yIHRoZSBlbXB0eSBwbHVnaW4gY29sdW1uIHdhcyBub3QgcG9zc2libGUuIFByb2JhYmx5IGJlY2F1c2Ugb2YgcHJlIDQuMSBwYXNzd29yZCBoYXNoLiBJZiB5b3VyIGFjY291bnQgaXMgZGlzYWJsZWQgeW91IHdpbGwgbmVlZCB0byBwZXJmb3JtIHRoZSBNeVNRTCB1cGdyYWRlIHByb2NlZHVyZS4gRm9yIGNvbXBsZXRlIGluc3RydWN0aW9ucyBvbiBob3cgdG8gdXBncmFkZSBNeVNRTCB0byBhIG5ldyB2ZXJzaW9uIHBsZWFzZSBzZWUgdGhlICdVcGdyYWRpbmcgTXlTUUwnIHNlY3Rpb24gZnJvbSB0aGUgTXlTUUwgbWFudWFsLgBGb3VuZCBhbiBlbnRyeSBpbiB0aGUgJ2RiJyB0YWJsZSB3aXRoIGVtcHR5IGRhdGFiYXNlIG5hbWU7IFNraXBwZWQAJ2RiJyBlbnRyeSAnJXMgJXNAJXMnIGlnbm9yZWQgaW4gLS1za2lwLW5hbWUtcmVzb2x2ZSBtb2RlLgAnZGInIGVudHJ5ICclcyAlc0AlcycgaGFkIGRhdGFiYXNlIGluIG1peGVkIGNhc2UgdGhhdCBoYXMgYmVlbiBmb3JjZWQgdG8gbG93ZXJjYXNlIGJlY2F1c2UgbG93ZXJfY2FzZV90YWJsZV9uYW1lcyBpcyBzZXQuIEl0IHdpbGwgbm90IGJlIHBvc3NpYmxlIHRvIHJlbW92ZSB0aGlzIHByaXZpbGVnZSB1c2luZyBSRVZPS0UuAFRoZSBzeXN0ZW0gdGFibGUgbXlzcWwucHJveGllc19wcml2IGlzIG1pc3NpbmcuIFBsZWFzZSBwZXJmb3JtIHRoZSBNeVNRTCB1cGdyYWRlIHByb2NlZHVyZS4ARmF0YWwgZXJyb3I6IENhbid0IG9wZW4gYW5kIGxvY2sgcHJpdmlsZWdlIHRhYmxlczogJXMARmF0YWw6IGNhbid0IGluaXRpYWxpemUgZ3JhbnQgc3Vic3lzdGVtIC0gJyVzJwAncHJvY3NfcHJpdicgZW50cnkgJyVzICVzQCVzJyBpZ25vcmVkIGluIC0tc2tpcC1uYW1lLXJlc29sdmUgbW9kZS4AJ3Byb2NzX3ByaXYnIGVudHJ5ICclcycgaWdub3JlZCwgYmFkIHJvdXRpbmUgdHlwZQAndGFibGVzX3ByaXYnIGVudHJ5ICclcyAlc0AlcycgaWdub3JlZCBpbiAtLXNraXAtbmFtZS1yZXNvbHZlIG1vZGUuAEZhaWxlZCB0byBhZGQgJXMgaW4gZXh0cmFfdXNlcnMuIEJpbmFyeSBsb2cgZW50cnkgbWF5IG1pc3Mgc29tZSBvZiB0aGUgdXNlcnMuAFVuYWJsZSB0byBzdGFydCBzZXJ2ZXIuIFRoZSBkYXRhIGRpY3Rpb25hcnkgc2NoZW1hICclcycgZG9lcyBub3QgZXhpc3QuAFVuYWJsZSB0byBzdGFydCBzZXJ2ZXIuIFRoZSBkYXRhIGRpY3Rpb25hcnkgdGFibGUgJyVzJyBkb2VzIG5vdCBleGlzdC4ARmFpbGVkIHRvIGluaXRpYWxpemUgREQgU3RvcmFnZSBFbmdpbmUARm91bmQgcGFydGlhbGx5IHVwZ3JhZGVkIERELiBBYm9ydGluZyB1cGdyYWRlIGFuZCBkZWxldGluZyBhbGwgREQgdGFibGVzLiBTdGFydCB0aGUgdXBncmFkZSBwcm9jZXNzIGFnYWluLgBGb3VuZCAuZnJtIGZpbGUgd2l0aCBzYW1lIG5hbWUgYXMgb25lIG9mIHRoZSBEaWN0aW9uYXJ5IFRhYmxlcy4AQ3JlYXRlZCBEYXRhIERpY3Rpb25hcnkgZm9yIHVwZ3JhZGUAQ2FuJ3QgZmluZCBlcnJvci1tZXNzYWdlIGZpbGUgJyVzJy4gQ2hlY2sgZXJyb3ItbWVzc2FnZSBmaWxlIGxvY2F0aW9uIGFuZCAnbGMtbWVzc2FnZXMtZGlyJyBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZS4AVXNpbmcgcHJlIDUuNSBzZW1hbnRpY3MgdG8gbG9hZCBlcnJvciBtZXNzYWdlcyBmcm9tICVzLiBJZiB0aGlzIGlzIG5vdCBpbnRlbmRlZCwgcmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHZhbGlkIHVzYWdlIG9mIC0tbGMtbWVzc2FnZXMtZGlyIGFuZCAtLWxhbmd1YWdlIHBhcmFtZXRlcnMuAEVycm9yIG1lc3NhZ2UgZmlsZSAnJXMnIGhhZCBvbmx5ICVkIGVycm9yIG1lc3NhZ2VzLCBidXQgaXQgc2hvdWxkIGNvbnRhaW4gYXQgbGVhc3QgJWQgZXJyb3IgbWVzc2FnZXMuIENoZWNrIHRoYXQgdGhlIGFib3ZlIGZpbGUgaXMgdGhlIHJpZ2h0IHZlcnNpb24gZm9yIHRoaXMgcHJvZ3JhbSEATm90IGVub3VnaCBtZW1vcnkgZm9yIG1lc3NhZ2VmaWxlICclcycAQ2FuJ3QgcmVhZCBmcm9tIG1lc3NhZ2VmaWxlICclcycARm91bmQgaW5jb21wYXRpYmxlIERFQ0lNQUwgZmllbGQgJyVzJyBpbiAlczsgUGxlYXNlIGRvICJBTFRFUiBUQUJMRSBgJXNgIEZPUkNFIiB0byBmaXggaXQhAEZvdW5kIGluY29tcGF0aWJsZSBZRUFSKHgpIGZpZWxkICclcycgaW4gJXM7IFBsZWFzZSBkbyAiQUxURVIgVEFCTEUgYCVzYCBGT1JDRSIgdG8gZml4IGl0IQAnJXMnIGhhZCBubyBvciBpbnZhbGlkIGNoYXJhY3RlciBzZXQsIGFuZCBkZWZhdWx0IGNoYXJhY3RlciBzZXQgaXMgbXVsdGktYnl0ZSwgc28gY2hhcmFjdGVyIGNvbHVtbiBzaXplcyBtYXkgaGF2ZSBjaGFuZ2VkAEZvdW5kIHdyb25nIGtleSBkZWZpbml0aW9uIGluICVzOyBQbGVhc2UgZG8gIkFMVEVSIFRBQkxFIGAlc2AgRk9SQ0UgIiB0byBmaXggaXQhAFVuYWJsZSB0byBvcGVuIGZpbGUgJXMARXJyb3IgaW4gcmVhZGluZyBmaWxlICVzAFRhYmxlICclcycgd2FzIGNyZWF0ZWQgd2l0aCBhIGRpZmZlcmVudCB2ZXJzaW9uIG9mIE15U1FMIGFuZCBjYW5ub3QgYmUgcmVhZABVbmFibGUgdG8gcmVhZCB2aWV3ICVzAEZpbGUgJXMgaGFzIHVua25vd24gdHlwZSBpbiBpdHMgaGVhZGVyLgBJbmNvcnJlY3QgaW5mb3JtYXRpb24gaW4gZmlsZSAlcwBDYW4ndCBvcGVuIGFuZCBsb2NrIHByaXZpbGVnZSB0YWJsZXM6ICVzAFBsdWdpbiAnJXMnIGNhbm5vdCBzdWJzY3JpYmUgdG8gTVlTUUxfQVVESVRfQVVUSE9SSVpBVElPTiBldmVudHMuIEN1cnJlbnRseSBub3Qgc3VwcG9ydGVkLgBQbHVnaW4gJyVzJyBoYXMgaW52YWxpZCBkYXRhLgBGYXRhbCBlcnJvcjogT09NIHdoaWxlIGluaXRpYWxpemluZyB0aW1lIHpvbmVzAENhbid0IG9wZW4gYW5kIGxvY2sgdGltZSB6b25lIHRhYmxlOiAlcyB0cnlpbmcgdG8gbGl2ZSB3aXRob3V0IHRoZW0ARmF0YWwgZXJyb3I6IE91dCBvZiBtZW1vcnkgd2hpbGUgbG9hZGluZyBteXNxbC50aW1lX3pvbmVfbGVhcF9zZWNvbmQgdGFibGUARmF0YWwgZXJyb3I6IFdoaWxlIGxvYWRpbmcgbXlzcWwudGltZV96b25lX2xlYXBfc2Vjb25kIHRhYmxlOiB0b28gbXVjaCBsZWFwcwBGYXRhbCBlcnJvcjogRXJyb3Igd2hpbGUgbG9hZGluZyBteXNxbC50aW1lX3pvbmVfbGVhcF9zZWNvbmQgdGFibGUARmF0YWwgZXJyb3I6IElsbGVnYWwgb3IgdW5rbm93biBkZWZhdWx0IHRpbWUgem9uZSAnJXMnAENhbid0IGZpbmQgZGVzY3JpcHRpb24gb2YgdGltZSB6b25lICclLipzJwBDYW4ndCBmaW5kIGRlc2NyaXB0aW9uIG9mIHRpbWUgem9uZSAnJXUnAEVycm9yIHdoaWxlIGxvYWRpbmcgdGltZSB6b25lIGRlc2NyaXB0aW9uIGZyb20gbXlzcWwudGltZV96b25lX3RyYW5zaXRpb25fdHlwZSB0YWJsZTogdG9vIGJpZyB0cmFuc2l0aW9uIHR5cGUgaWQARXJyb3Igd2hpbGUgbG9hZGluZyB0aW1lIHpvbmUgZGVzY3JpcHRpb24gZnJvbSBteXNxbC50aW1lX3pvbmVfdHJhbnNpdGlvbl90eXBlIHRhYmxlOiBub3QgZW5vdWdoIHJvb20gZm9yIGFiYnJldmlhdGlvbnMARXJyb3Igd2hpbGUgbG9hZGluZyB0aW1lIHpvbmUgZGVzY3JpcHRpb24gZnJvbSBteXNxbC50aW1lX3pvbmVfdHJhbnNpdGlvbl90eXBlIHRhYmxlAEVycm9yIHdoaWxlIGxvYWRpbmcgdGltZSB6b25lIGRlc2NyaXB0aW9uIGZyb20gbXlzcWwudGltZV96b25lX3RyYW5zaXRpb24gdGFibGU6IHRvbyBtdWNoIHRyYW5zaXRpb25zAEVycm9yIHdoaWxlIGxvYWRpbmcgdGltZSB6b25lIGRlc2NyaXB0aW9uIGZyb20gbXlzcWwudGltZV96b25lX3RyYW5zaXRpb24gdGFibGU6IGJhZCB0cmFuc2l0aW9uIHR5cGUgaWQARXJyb3Igd2hpbGUgbG9hZGluZyB0aW1lIHpvbmUgZGVzY3JpcHRpb24gZnJvbSBteXNxbC50aW1lX3pvbmVfdHJhbnNpdGlvbiB0YWJsZQBsb2FkaW5nIHRpbWUgem9uZSB3aXRob3V0IHRyYW5zaXRpb24gdHlwZXMAT3V0IG9mIG1lbW9yeSB3aGlsZSBsb2FkaW5nIHRpbWUgem9uZSBkZXNjcmlwdGlvbgBVbmFibGUgdG8gYnVpbGQgbWt0aW1lIG1hcCBmb3IgdGltZSB6b25lAE91dCBvZiBtZW1vcnkgd2hpbGUgbG9hZGluZyB0aW1lIHpvbmUARmF0YWwgZXJyb3I6IE91dCBvZiBtZW1vcnkgd2hpbGUgc2V0dGluZyBuZXcgdGltZSB6b25lAFJlcGxpY2EgU1FMIHRocmVhZCBpcyBzdG9wcGVkIGJlY2F1c2UgVU5USUwgY29uZGl0aW9uIGlzIGJhZCglczolbGx1KS4AUmVwbGljYSBTUUwgdGhyZWFkIHN0b3BwZWQgYmVjYXVzZSBpdCByZWFjaGVkIGl0cyBVTlRJTCBwb3NpdGlvbiAlbGx1AFJlcGxpY2EgU1FMIHRocmVhZCBzdG9wcGVkIGJlY2F1c2UgVU5USUwgU1FMX0JFRk9SRV9HVElEUyAlcyBpcyBhbHJlYWR5IGFwcGxpZWQAUmVwbGljYSBTUUwgdGhyZWFkIHN0b3BwZWQgYmVjYXVzZSBpdCByZWFjaGVkIFVOVElMIFNRTF9CRUZPUkVfR1RJRFMgJXMAUmVwbGljYSBTUUwgdGhyZWFkIHN0b3BwZWQgYmVjYXVzZSBpdCByZWFjaGVkIFVOVElMIFNRTF9BRlRFUl9HVElEUyAlcwBSZXBsaWNhIFNRTCB0aHJlYWQgc3RvcHBlZCBhY2NvcmRpbmcgdG8gVU5USUwgU1FMX0FGVEVSX01UU19HQVBTIGFzIGl0IGhhcyBwcm9jZXNzZWQgYWxsIGdhcCB0cmFuc2FjdGlvbnMgbGVmdCBmcm9tIHRoZSBwcmV2aW91cyByZXBsaWNhIHNlc3Npb24uAEdyb3VwIFJlcGxpY2F0aW9uIHBsdWdpbiBpcyBub3QgaW5zdGFsbGVkLgBUaGUgdHJhbnNhY3Rpb24gb3duZWQgR1RJRCBpcyBhbHJlYWR5IGluIHRoZSAlcyB0YWJsZSwgd2hpY2ggaXMgY2F1c2VkIGJ5IGFuIGV4cGxpY2l0IG1vZGlmeWluZyBmcm9tIHVzZXIgY2xpZW50LgBGYWlsZWQgdG8gZGVsZXRlIHRoZSByb3c6ICclcycgZnJvbSB0aGUgZ3RpZF9leGVjdXRlZCB0YWJsZS4ARmFpbGVkIHRvIGNvbXByZXNzIHRoZSBndGlkX2V4ZWN1dGVkIHRhYmxlLgBGYWlsZWQgdG8gY29tcHJlc3MgdGhlIGd0aWRfZXhlY3V0ZWQgdGFibGUsIGJlY2F1c2UgaXQgaXMgZmFpbGVkIHRvIGFsbG9jYXRlIHRoZSBUSEQuAEZhaWxlZCB0byBpbml0aWFsaXplIHRocmVhZCBhdHRyaWJ1dGUgd2hlbiBjcmVhdGluZyBjb21wcmVzc2lvbiB0aHJlYWQuAENhbiBub3QgY3JlYXRlIHRocmVhZCB0byBjb21wcmVzcyBndGlkX2V4ZWN1dGVkIHRhYmxlIChlcnJubz0gJWQpAENvdWxkIG5vdCBqb2luIGd0aWRfZXhlY3V0ZWQgdGFibGUgY29tcHJlc3Npb24gdGhyZWFkLiBlcnJvcjolZABDYW4ndCBzdGFydCBzZXJ2ZXIgOiBJbml0aWFsaXplIHNlY3VyaXR5IGRlc2NyaXB0b3I6ICVzAENhbid0IHN0YXJ0IHNlcnZlciA6IFNldCBzZWN1cml0eSBkZXNjcmlwdG9yOiAlcwBDYW4ndCBzdGFydCBzZXJ2ZXIgOiBOYW1lZCBQaXBlICIlcyIgYWxyZWFkeSBpbiB1c2UuAE5EQiBSZXBsaWNhIDogQXQgU1FMIHRocmVhZCBzdGFydCBhcHBseWluZyBlcG9jaCAlbGx1LyVsbHUgKCVsbHUpIGZyb20gU291cmNlIFNlcnZlcklkICV1IHdoaWNoIGlzIGxvd2VyIHRoYW4gcHJldmlvdXNseSBhcHBsaWVkIGVwb2NoICVsbHUvJWxsdSAoJWxsdSkuICBHcm91cCBTb3VyY2UgTG9nIDogJXMgIEdyb3VwIFNvdXJjZSBMb2cgUG9zIDogJWxsdS4gIENoZWNrIHJlcGxpY2EgcG9zaXRpb25pbmcuAE5EQiBSZXBsaWNhIDogU1FMIHRocmVhZCBzdG9wcGVkIGFzIGFwcGx5aW5nIGVwb2NoICVsbHUvJWxsdSAoJWxsdSkgZnJvbSBTb3VyY2UgU2VydmVySWQgJXUgd2hpY2ggaXMgbG93ZXIgdGhhbiBwcmV2aW91c2x5IGFwcGxpZWQgZXBvY2ggJWxsdS8lbGx1ICglbGx1KS4gIEdyb3VwIFNvdXJjZSBMb2cgOiAlcyAgR3JvdXAgU291cmNlIExvZyBQb3MgOiAlbGx1AE5EQiBSZXBsaWNhIDogU1FMIHRocmVhZCBzdG9wcGVkIGFzIGF0dGVtcHRlZCB0byByZWFwcGx5IGFscmVhZHkgY29tbWl0dGVkIGVwb2NoICVsbHUvJWxsdSAoJWxsdSkgZnJvbSBzZXJ2ZXIgaWQgJXUuICBHcm91cCBTb3VyY2UgTG9nIDogJXMgIEdyb3VwIFNvdXJjZSBMb2cgUG9zIDogJWxsdS4ATkRCIFJlcGxpY2EgOiBTUUwgdGhyZWFkIHN0b3BwZWQgYXMgYXR0ZW1wdGluZyB0byBhcHBseSBuZXcgZXBvY2ggJWxsdS8lbGx1ICglbGx1KSB3aGlsZSBsb3dlciByZWNlaXZlZCBlcG9jaCAlbGx1LyVsbHUgKCVsbHUpIGhhcyBub3QgYmVlbiBjb21taXR0ZWQuICBTb3VyY2Ugc2VydmVyIGlkIDogJXUuICBHcm91cCBTb3VyY2UgTG9nIDogJXMgIEdyb3VwIFNvdXJjZSBMb2cgUG9zIDogJWxsdS4ATkRCIFJlcGxpY2E6IG1pc3NpbmcgZGF0YSBmb3IgJXMgdGltZXN0YW1wIGNvbHVtbiAldS4ATkRCIFJlcGxpY2E6IFRhYmxlICVzLiVzIGxvZ2dpbmcgZXhjZXB0aW9ucyB0byAlcy4lcwBOREIgUmVwbGljYTogVGFibGUgJXMuJXMgOiAlcywgbG93IGVwb2NoIHJlc29sdXRpb24ARm91bmQgdW5leHBlY3RlZCBmaWVsZCB0eXBlICV1AEZhaWxlZCB0byBjcmVhdGUgTmRiSW5mbwBGYWlsZWQgdG8gaW5pdCBOZGJJbmZvAG5kYl9zZXJpYWxpemVfY29uZDogVW5leHBlY3RlZCBtaXNtYXRjaCBvZiBmb3VuZCBhbmQgZXhwZWN0ZWQgbnVtYmVyIG9mIGZ1bmN0aW9uIGFyZ3VtZW50cyAldQAlcyAtICVzLiVzACVzAEluZm8gdGFibGUgaXMgbm90IHJlYWR5IHRvIGJlIHVzZWQuIFRhYmxlICclcy4lcycgY2Fubm90IGJlIG9wZW5lZC4ASW5mbyB0YWJsZSBpcyBub3QgcmVhZHkgdG8gYmUgdXNlZC4gVGFibGUgJyVzLiVzJyBjYW5ub3QgYmUgc2Nhbm5lZC4AQ29ycnVwdGVkIHRhYmxlICVzLiVzLiBDaGVjayBvdXQgdGFibGUgZGVmaW5pdGlvbi4ASW5mbyB0YWJsZSBoYXMgYSBwcm9ibGVtIHdpdGggaXRzIGtleSBmaWVsZChzKS4gVGFibGUgJyVzLiVzJyBleHBlY3RlZCBmaWVsZCAjJXUgdG8gYmUgJyVzJyBidXQgZm91bmQgJyVzJyBpbnN0ZWFkLgBDaG9vc2luZyB3b3JrZXIgaWQgJWx1LCB0aGUgZm9sbG93aW5nIGlzIGdvaW5nIHRvIGJlICVsdQBUcmFuc2FjdGlvbiBpcyB0YWdnZWQgd2l0aCBpbmNvbnNpc3RlbnQgbG9naWNhbCB0aW1lc3RhbXBzOiBzZXF1ZW5jZV9udW1iZXIgKCVsbGQpIDw9IGxhc3RfY29tbWl0dGVkICglbGxkKQBUcmFuc2FjdGlvbidzIHNlcXVlbmNlIG51bWJlciBpcyBpbmNvbnNpc3RlbnQgd2l0aCB0aGF0IG9mIGEgcHJlY2VkaW5nIG9uZTogc2VxdWVuY2VfbnVtYmVyICglbGxkKSA8PSBwcmV2aW91cyBzZXF1ZW5jZV9udW1iZXIgKCVsbGQpAEZvciB0aGUgY3JlYXRpb24gb2YgcmVwbGljYXRpb24gY2hhbm5lbHMgdGhlIGNvbm5lY3Rpb24gbWV0YWRhdGEgYW5kIGFwcGxpZXIgbWV0YWRhdGEgcmVwb3NpdG9yaWVzIG11c3QgYmUgc2V0IHRvIFRBQkxFAEZvciB0aGUgY3JlYXRpb24gb2YgcmVwbGljYXRpb24gY2hhbm5lbHMgdGhlIHNlcnZlciBpZCBtdXN0IGJlIGRpZmZlcmVudCBmcm9tIDAAUmVwbGljYTogV3JvbmcgcmVwb3NpdG9yeS4gUmVwb3NpdG9yeSBzaG91bGQgYmUgVEFCTEUARXJyb3IgY3JlYXRpbmcgY29ubmVjdGlvbiBtZXRhZGF0YTogJXMuAEVycm9yIGNoYW5naW5nIHRoZSB0eXBlIG9mIGNvbm5lY3Rpb24gbWV0YWRhdGEncyByZXBvc2l0b3J5OiAlcy4ASXQgaXMgbm90IHBvc3NpYmxlIHRvIGNoYW5nZSB0aGUgdHlwZSBvZiB0aGUgcmVsYXkgbG9nIHJlcG9zaXRvcnkgYmVjYXVzZSB0aGVyZSBhcmUgd29ya2VycyByZXBvc2l0b3JpZXMgd2l0aCBwb3NzaWJsZSBleGVjdXRpb24gZ2Fwcy4gVGhlIHZhbHVlIG9mIC0tcmVsYXlfbG9nX2luZm9fcmVwb3NpdG9yeSBpcyBhbHRlcmVkIHRvIG9uZSBvZiB0aGUgZm91bmQgV29ya2VyIHJlcG9zaXRvcmllcy4gVGhlIGdhcHMgaGF2ZSB0byBiZSBzb3J0ZWQgb3V0IGJlZm9yZSByZXN1bWluZyB3aXRoIHRoZSB0eXBlIGNoYW5nZS4ARXJyb3IgY3JlYXRpbmcgYXBwbGllciBtZXRhZGF0YTogJXMuAEVycm9yIGNoYW5naW5nIHRoZSB0eXBlIG9mIGFwcGxpZXIgbWV0YWRhdGEncyByZXBvc2l0b3J5OiAlcy4AQ291bGQgbm90IGRlbGV0ZSBmcm9tIFJlcGxpY2EgV29ya2VycyBpbmZvIHJlcG9zaXRvcnkuAENvdWxkIG5vdCBzdG9yZSB0aGUgcmVzZXQgUmVwbGljYSBXb3JrZXIgc3RhdGUgaW50byB0aGUgcmVwbGljYSBpbmZvIHJlcG9zaXRvcnkuAEVycm9yIGluIGNoZWNraW5nICVzIHJlcG9zaXRvcnkuAFJlcGxpY2E6ICVzAFJlcGxpY2E6IENvdWxkIG5vdCBjcmVhdGUgY2hhbm5lbCBsaXN0AFJlcGxpY2E6IFRoaXMgcmVwbGljYSB3YXMgYSBtdWx0aXNvdXJjZWQgcmVwbGljYSBwcmV2aW91c2x5IHdoaWNoIGlzIHN1cHBvcnRlZCBvbmx5IGJ5IGJvdGggVEFCTEUgYmFzZWQgY29ubmVjdGlvbiBtZXRhZGF0YSBhbmQgYXBwbGllciBtZXRhZGF0YSByZXBvc2l0b3JpZXMuIEZvdW5kIG9uZSBvciBib3RoIG9mIHRoZSBpbmZvIHJlcG9zIHRvIGJlIHR5cGUgRklMRS4gU2V0IGJvdGggcmVwb3MgdG8gdHlwZSBUQUJMRS4AUmVwbGljYTogRmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIGNvbm5lY3Rpb24gbWV0YWRhdGEgc3RydWN0dXJlIGZvciBjaGFubmVsICclcyc7IGl0cyByZWNvcmQgbWF5IHN0aWxsIGJlIHByZXNlbnQgaW4gdGhlIGFwcGxpZXIgbWV0YWRhdGEgcmVwb3NpdG9yeSwgY29uc2lkZXIgZGVsZXRpbmcgaXQuAEZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBjb25uZWN0aW9uIG1ldGFkYXRhIHN0cnVjdHVyZSVzAFJlcGxpY2E6IEZhaWxlZCB0byBjcmVhdGUgYSBjaGFubmVsIGZyb20gY29ubmVjdGlvbiBtZXRhZGF0YSByZXBvc2l0b3J5LgBGYWlsZWQgdG8gY3JlYXRlIGEgbmV3IGluZm8gZmlsZSAoZmlsZSAnJXMnLCBlcnJubyAlZCkARmFpbGVkIHRvIGNyZWF0ZSBhIGNhY2hlIG9uIGluZm8gZmlsZSAoZmlsZSAnJXMnKQBGYWlsZWQgdG8gb3BlbiB0aGUgZXhpc3RpbmcgaW5mbyBmaWxlIChmaWxlICclcycsIGVycm5vICVkKQBTZXJ2ZXIgb3ZlcmNvbWVzIHRoZSB0ZW1wb3JhcnkgJ291dCBvZiBtZW1vcnknIGluICclZCcgdHJpZXMgd2hpbGUgYWxsb2NhdGluZyBhIG5ldyBjaHVuayBvZiBpbnRlcnZhbHMgZm9yIHN0b3JpbmcgR1RJRHMuAFVua25vd24gY29zdCBjb25zdGFudCAiJXMiIGluIG15c3FsLnNlcnZlcl9jb3N0IHRhYmxlAEludmFsaWQgdmFsdWUgZm9yIGNvc3QgY29uc3RhbnQgIiVzIiBpbiBteXNxbC5zZXJ2ZXJfY29zdCB0YWJsZTogJS4xZgBVbmtub3duIGNvc3QgY29uc3RhbnQgIiVzIiBpbiBteXNxbC5lbmdpbmVfY29zdCB0YWJsZQBVbmtub3duIHN0b3JhZ2UgZW5naW5lICIlcyIgaW4gbXlzcWwuZW5naW5lX2Nvc3QgdGFibGUASW52YWxpZCBkZXZpY2UgdHlwZSAlZCBmb3IgIiVzIiBzdG9yYWdlIGVuZ2luZSBmb3IgY29zdCBjb25zdGFudCAiJXMiIGluIG15c3FsLmVuZ2luZV9jb3N0IHRhYmxlAEludmFsaWQgdmFsdWUgZm9yIGNvc3QgY29uc3RhbnQgIiVzIiBmb3IgIiVzIiBzdG9yYWdlIGVuZ2luZSBhbmQgZGV2aWNlIHR5cGUgJWQgaW4gbXlzcWwuZW5naW5lX2Nvc3QgdGFibGU6ICUuMWYARXJyb3Igd2hpbGUgcmVhZGluZyBmcm9tIG15c3FsLnNlcnZlcl9jb3N0IHRhYmxlLgBFcnJvciB3aGlsZSByZWFkaW5nIGZyb20gbXlzcWwuZW5naW5lX2Nvc3QgdGFibGUuAEZhaWxlZCB0byBvcGVuIG9wdGltaXplciBjb3N0IGNvbnN0YW50IHRhYmxlcwBVbnN1cHBvcnRlZCBub24taWdub3JhYmxlIGV2ZW50IGZlZCBpbnRvIHRoZSBldmVudCBzdHJlYW0uAEdUSURfTE9HX0VWRU5ULCBHVElEX1RBR0dFRF9MT0dfRVZFTlQgb3IgQU5PTllNT1VTX0dUSURfTE9HX0VWRU5UIGlzIG5vdCBleHBlY3RlZCBpbiBhbiBldmVudCBzdHJlYW0gJXMuAFFVRVJZKEJFR0lOKSBpcyBub3QgZXhwZWN0ZWQgaW4gYW4gZXZlbnQgc3RyZWFtIGluIHRoZSBtaWRkbGUgb2YgYSAlcy4AUVVFUlkoQ09NTUlUIG9yIFJPTExCQUNLKSBvciBYSURfTE9HX0VWRU5UIGlzIG5vdCBleHBlY3RlZCBpbiBhbiBldmVudCBzdHJlYW0gJXMuAFFVRVJZKFhBIFJPTExCQUNLKSBpcyBub3QgZXhwZWN0ZWQgaW4gYW4gZXZlbnQgc3RyZWFtICVzLgBFdmVudCBTY2hlZHVsZXI6IFslc10uWyVzLiVzXSBleGVjdXRpb24gZmFpbGVkLCBmYWlsZWQgdG8gYXV0aGVudGljYXRlIHRoZSB1c2VyLgBFdmVudCBTY2hlZHVsZXI6IFslc10uWyVzLiVzXSBleGVjdXRpb24gZmFpbGVkLCB1c2VyIG5vIGxvbmdlciBoYXMgRVZFTlQgcHJpdmlsZWdlLgBFdmVudCBTY2hlZHVsZXI6ICVzZXJyb3IgZHVyaW5nIGNvbXBpbGF0aW9uIG9mICVzLiVzAEV2ZW50IFNjaGVkdWxlcjogRHJvcHBpbmcgJXMuJXMATmRiIHNjaGVtYVslcy4lc106ICVzAEluIFJCUiBtb2RlLCBSZXBsaWNhIHJlY2VpdmVkIGluY29tcGF0aWJsZSBERUNJTUFMIGZpZWxkIChvbGQtc3R5bGUgZGVjaW1hbCBmaWVsZCkgZnJvbSBTb3VyY2Ugd2hpbGUgY3JlYXRpbmcgY29udmVyc2lvbiB0YWJsZS4gUGxlYXNlIGNvbnNpZGVyIGNoYW5naW5nIGRhdGF0eXBlIG9uIFNvdXJjZSB0byBuZXcgc3R5bGUgZGVjaW1hbCBieSBleGVjdXRpbmcgQUxURVIgY29tbWFuZCBmb3IgY29sdW1uIE5hbWU6ICVzLiVzLiVzLgByb290QGxvY2FsaG9zdCBpcyBjcmVhdGVkIHdpdGggYW4gZW1wdHkgcGFzc3dvcmQgISBQbGVhc2UgY29uc2lkZXIgc3dpdGNoaW5nIG9mZiB0aGUgLS1pbml0aWFsaXplLWluc2VjdXJlIG9wdGlvbi4AQSB0ZW1wb3JhcnkgcGFzc3dvcmQgaXMgZ2VuZXJhdGVkIGZvciByb290QGxvY2FsaG9zdDogJXMARmFpbGVkIHRvIG9wZW4gdGhlIGJvb3RzdHJhcCBmaWxlICVzAEJvb3RzdHJhcHBpbmcgY29tcGxldGUALS1pbml0aWFsaXplIHNwZWNpZmllZCBidXQgdGhlIGRhdGEgZGlyZWN0b3J5IGhhcyBmaWxlcyBpbiBpdC4gQWJvcnRpbmcuAC0taW5pdGlhbGl6ZSBzcGVjaWZpZWQgb24gYW4gZXhpc3RpbmcgZGF0YSBkaXJlY3RvcnkuAC0taW5pdGlhbGl6ZSBzcGVjaWZpZWQgYnV0IHRoZSBkYXRhIGRpcmVjdG9yeSBleGlzdHMgYW5kIHRoZSBwYXRoIGlzIHRvbyBsb25nLiBBYm9ydGluZy4ALS1pbml0aWFsaXplIHNwZWNpZmllZCBidXQgdGhlIGRhdGEgZGlyZWN0b3J5IGV4aXN0cyBhbmQgaXMgbm90IHdyaXRhYmxlLiBBYm9ydGluZy4AQ3JlYXRpbmcgdGhlIGRhdGEgZGlyZWN0b3J5ICVzAFN0YXJ0IGJpbmxvZ19kdW1wIHRvIHNvdXJjZV90aHJlYWRfaWQoJXUpIHJlcGxpY2Ffc2VydmVyKCV1KSwgcG9zKCVzLCAlbGx1KQBzb3VyY2Ugc2VuZHMgaGVhcnRiZWF0IG1lc3NhZ2UAdGhlIHJlc3Qgb2YgaGVhcnRiZWF0IGluZm8gc2tpcHBlZCAuLi4AU291cmNlIGlzIGNvbmZpZ3VyZWQgdG8gbG9nIHJlcGxpY2F0aW9uIGV2ZW50cyB3aXRoIGNoZWNrc3VtLCBidXQgd2lsbCBub3Qgc2VuZCBzdWNoIGV2ZW50cyB0byByZXBsaWNhcyB0aGF0IGNhbm5vdCBwcm9jZXNzIHRoZW0ATkRCOiBRdWVyeSAnJXMnIGZhaWxlZCwgZXJyb3I6ICVkOiAlcwBLaWxsaW5nIHRocmVhZCAlbHUAUGx1Z2luICVzIGlzIGRlaW5pdGlhbGl6aW5nIGEgdGhyZWFkIGJ1dCBsZWZ0IGEgc2Vzc2lvbiBhdHRhY2hlZC4gRGV0YWNoaW5nIGl0IGZvcmNlZnVsbHkuAEZhaWxlZCB0byBkZXRhY2ggdGhlIHNlc3Npb24uAENsb3NlZCBmb3JjZWZ1bGx5ICV1IHNlc3Npb24lcyBsZWZ0IG9wZW5lZCBieSBwbHVnaW4gJXMARmFpbGVkIHRvIGRlY3JlbWVudCB0aGUgbnVtYmVyIG9mIHRocmVhZHMAUGx1Z2luICVzIGRpZCBub3QgZGVpbml0aWFsaXplICV1IHRocmVhZHMAS2lsbGVkICV1IHRocmVhZHMgb2YgcGx1Z2luICVzAE5EQiBSZXBsaWNhIDogQ291bGQgbm90IGRldGVybWluZSBtYXhpbXVtIHJlcGxpY2F0ZWQgZXBvY2ggZnJvbSAlcy4lcyBhdCBSZXBsaWNhIHN0YXJ0LCBlcnJvciAldSAlcwBOREIgUmVwbGljYSA6IE1heFJlcGxpY2F0ZWRFcG9jaCBzZXQgdG8gJWxsdSAoJXUvJXUpIGF0IFJlcGxpY2Egc3RhcnQATkRCOiBOb2RlSUQgaXMgJWx1LCBtYW5hZ2VtZW50IHNlcnZlciAnJXM6JWx1JwB0aWQgJXU6IG5vZGVbJXVdIHRyYW5zYWN0aW9uX2hpbnQ9JXUsIHRyYW5zYWN0aW9uX25vX2hpbnQ9JXUATkRCIEludGVybmFsIGVycm9yOiBEZWZhdWx0IHZhbHVlcyBkaWZmZXIgZm9yIGNvbHVtbiAldSwgbmRiX2RlZmF1bHQ6ICVkAE5EQiBJbnRlcm5hbCBlcnJvcjogQ29sdW1uICV1IGhhcyBuYXRpdmUgZGVmYXVsdCwgYnV0IHNob3VsZG4ndC4gRmxhZ3M9JXUsIHR5cGU9JXUAZmllbGRbIG5hbWU6ICclcycsIHR5cGU6ICV1LCByZWFsX3R5cGU6ICV1LCBmbGFnczogMHgleCwgaXNfbnVsbDogJWRdAG5kYkNvbFtuYW1lOiAnJXMnLCB0eXBlOiAldSwgY29sdW1uX25vOiAlZCwgbnVsbGFibGU6ICVkXQBmaXhfdW5pcXVlX2luZGV4X2F0dHJfb3JkZXI6IG15X21hbGxvYygldSkgZmFpbHVyZQBOREIgUmVwbGljYSA6IE1hbGZvcm1lZCBldmVudCByZWNlaXZlZCBvbiB0YWJsZSAlcyBjYW5ub3QgcGFyc2UuICBTdG9wcGluZyBSZXBsaWNhLgBOREIgUmVwbGljYSA6IENvbmZsaWN0IGZ1bmN0aW9uICVzIGRlZmluZWQgb24gdGFibGUgJXMgcmVxdWlyZXMgbmRiX3JlcGxpY2FfY29uZmxpY3Rfcm9sZSB2YXJpYWJsZSB0byBiZSBzZXQuICBTdG9wcGluZyByZXBsaWNhLgBOREIgUmVwbGljYSA6IFRyYW5zYWN0aW9uYWwgY29uZmxpY3QgZGV0ZWN0aW9uIGRlZmluZWQgb24gdGFibGUgJXMsIGJ1dCBldmVudHMgcmVjZWl2ZWQgd2l0aG91dCB0cmFuc2FjdGlvbiBpZHMuICBDaGVjayAtLW5kYi1sb2ctdHJhbnNhY3Rpb24taWQgc2V0dGluZyBvbiB1cHN0cmVhbSBDbHVzdGVyLgBOREIgUmVwbGljYSA6IEJpbmxvZyBldmVudCBvbiB0YWJsZSAlcyBtaXNzaW5nIGluZm8gbmVjZXNzYXJ5IGZvciBjb25mbGljdCBkZXRlY3Rpb24uICBDaGVjayBiaW5sb2cgZm9ybWF0IG9wdGlvbnMgb24gdXBzdHJlYW0gY2x1c3Rlci4ARXJyb3IgJWx1IGluIHJlYWRBdXRvSW5jcmVtZW50VmFsdWUoKTogJXMAZm91bmQgdW5jb21taXR0ZWQgYXV0b2NvbW1pdCtyYndyIHRyYW5zYWN0aW9uLCBjb21taXQgc3RhdHVzOiAlZABOZGIgcmVwbGljYSByZXRyaWVkIHRyYW5zYWN0aW9uICV1IHRpbWUocykgaW4gdmFpbi4gIEdpdmluZyB1cC4ARXJyb3IgJWx1IGluIDo6dXBkYXRlX2NyZWF0ZV9pbmZvKCk6ICVzAE5EQjogYWxsb2NhdGluZyB0YWJsZSBzaGFyZSBmb3IgJXMgZmFpbGVkAE5EQiBCaW5sb2c6ICglZCklcwBOREIgQmlubG9nOiBDUkVBVEUgVEFCTEUgRXZlbnQ6ICVzAE5EQiBCaW5sb2c6IEZBSUxFRCBDUkVBVEUgVEFCTEUgZXZlbnQgb3BlcmF0aW9ucy4gRXZlbnQ6ICVzAE5EQiBCaW5sb2c6IFJFTkFNRSBFdmVudDogJXMATkRCIEJpbmxvZzogRkFJTEVEIGNyZWF0ZSBldmVudCBvcGVyYXRpb25zIGR1cmluZyBSRU5BTUUuIEV2ZW50ICVzAFVuZXhwZWN0ZWQgcmVuYW1lIGNhc2UgZGV0ZWN0ZWQsIHNxbF9jb21tYW5kOiAlZABFcnJvciAlbHUgaW4gOjpnZXRfYXV0b19pbmNyZW1lbnQoKTogJXMAQ2FsbGluZyBuZGJjbHVzdGVyX2NyZWF0ZV9iaW5sb2dfc2V0dXAoJXMpIGluIDo6b3BlbgB0YWJsZSAnJXMnIG9wZW5lZCByZWFkIG9ubHkATkRCOiAnLS1pbml0aWFsaXplJyAtPiBuZGJjbHVzdGVyIHBsdWdpbiBkaXNhYmxlZABOREI6IENoYW5nZWQgZ2xvYmFsIHZhbHVlIG9mIGJpbmxvZ19mb3JtYXQgZnJvbSBTVEFURU1FTlQgdG8gTUlYRUQATkRCX1NIQVJFOiB0cmFpbGluZyBzaGFyZSAlcywgcmVsZWFzZWQgYnkgY2xvc2VfY2FjaGVkX3RhYmxlcwBOREJfU0hBUkU6ICVzIGFscmVhZHkgZXhpc3RzIHVzZV9jb3VudD0lZC4gTW92aW5nIGF3YXkgZm9yIHNhZmV0eSwgYnV0IHBvc3NpYmxlIG1lbWxlYWsuAGhhbmRsZV90cmFpbGluZ19zaGFyZTogJXMgdXNlX2NvdW50OiAldQBuZGJjbHVzdGVyX2dldF9zaGFyZTogJXMgdXNlX2NvdW50OiAldQBuZGJjbHVzdGVyX3JlYWxfZnJlZV9zaGFyZTogJXMgdXNlX2NvdW50OiAldQBuZGJjbHVzdGVyX3JlYWxfZnJlZV9zaGFyZTogJXMsIHN0aWxsIG9wZW4gLSBpZ25vcmVkICdmcmVlJyAobGVha2VkPykAbmRiY2x1c3Rlcl9mcmVlX3NoYXJlOiAlcyB1c2VfY291bnQ6ICV1AG5kYmNsdXN0ZXJfbWFya19zaGFyZV9kcm9wcGVkOiAlcyB1c2VfY291bnQ6ICV1AG5kYmNsdXN0ZXJfbWFya19zaGFyZV9kcm9wcGVkOiBkZXN0cm95cyBzaGFyZSAlcwBDb3VsZCBub3QgYWxsb2NhdGUgVGhkX25kYiBvYmplY3QATkRCIEJpbmxvZzogTmRiIHRhYmxlcyBpbml0aWFsbHkgcmVhZCBvbmx5LgBuZGIgdXRpbCB0aHJlYWQ6IG1hbGxvYyBmYWlsdXJlLCBxdWVyeSBjYWNoZSBub3QgbWFpbnRhaW5lZCBwcm9wZXJseQBUcnlpbmcgdG8gc2V0IG5kYl9yZWN2X3RocmVhZF9jcHVfbWFzayB0byBpbGxlZ2FsIHZhbHVlID0gJXMsIGlnbm9yZWQAVHJ5aW5nIHRvIHNldCB0b28gbWFueSBDUFUncyBpbiBuZGJfcmVjdl90aHJlYWRfY3B1X21hc2ssIGlnbm9yZWQgdGhpcyB2YXJpYWJsZSwgZXJyb25ldXMgdmFsdWUgPSAlcwBkYnVnX2NoZWNrX3NoYXJlcyBvcGVuOgAgICVzLiVzOiBzdGF0ZTogJXMoJXUpIHVzZV9jb3VudDogJXUAZGJ1Z19jaGVja19zaGFyZXMgZHJvcHBlZDoASW52YWxpZCAob2xkPykgdGFibGUgb3IgZGF0YWJhc2UgbmFtZSAnJXMnAFJlY292ZXJpbmcgYWZ0ZXIgYSBjcmFzaCB1c2luZyAlcwBDYW5ub3QgcGVyZm9ybSBhdXRvbWF0aWMgY3Jhc2ggcmVjb3Zlcnkgd2hlbiAtLXRjLWhldXJpc3RpYy1yZWNvdmVyIGlzIHVzZWQAQmFkIG1hZ2ljIGhlYWRlciBpbiB0YyBsb2cAUmVjb3ZlcnkgZmFpbGVkISBZb3UgbXVzdCBlbmFibGUgZXhhY3RseSAlZCBzdG9yYWdlIGVuZ2luZXMgdGhhdCBzdXBwb3J0IHR3by1waGFzZSBjb21taXQgcHJvdG9jb2wAQ3Jhc2ggcmVjb3ZlcnkgZmFpbGVkLiBFaXRoZXIgY29ycmVjdCB0aGUgcHJvYmxlbSAoaWYgaXQncywgZm9yIGV4YW1wbGUsIG91dCBvZiBtZW1vcnkgZXJyb3IpIGFuZCByZXN0YXJ0LCBvciBkZWxldGUgdGMgbG9nIGFuZCBzdGFydCBteXNxbGQgd2l0aCAtLXRjLWhldXJpc3RpYy1yZWNvdmVyPXtjb21taXR8cm9sbGJhY2t9AEhldXJpc3RpYyBjcmFzaCByZWNvdmVyeSBtb2RlAEhldXJpc3RpYyBjcmFzaCByZWNvdmVyeSBmYWlsZWQAUGxlYXNlIHJlc3RhcnQgbXlzcWxkIHdpdGhvdXQgLS10Yy1oZXVyaXN0aWMtcmVjb3ZlcgBGYWlsZWQgdG8gY3JlYXRlIG9yIHJlY292ZXIgcmVwbGljYXRpb24gaW5mbyByZXBvc2l0b3JpZXMuAERldGVjdGVkIG1pc2NvbmZpZ3VyYXRpb246IHJlcGxpY2F0aW9uIGNoYW5uZWwgJyUuMTkycycgd2FzIGNvbmZpZ3VyZWQgd2l0aCBBVVRPX1BPU0lUSU9OID0gMSwgYnV0IHRoZSBzZXJ2ZXIgd2FzIHN0YXJ0ZWQgd2l0aCAtLWd0aWQtbW9kZT1vZmYuIEVpdGhlciByZWNvbmZpZ3VyZSByZXBsaWNhdGlvbiB1c2luZyBDSEFOR0UgUkVQTElDQVRJT04gU09VUkNFIFRPIFNPVVJDRV9BVVRPX1BPU0lUSU9OID0gMCBGT1IgQ0hBTk5FTCAnJS4xOTJzJywgb3IgY2hhbmdlIEdUSURfTU9ERSB0byBzb21lIHZhbHVlIG90aGVyIHRoYW4gT0ZGLCBiZWZvcmUgc3RhcnRpbmcgdGhlIHJlcGxpY2EgcmVjZWl2ZXIgdGhyZWFkLgBSZXBsaWNhOiBDb3VsZCBub3Qgc3RhcnQgcmVwbGljYSBmb3IgY2hhbm5lbCAnJXMnLiBvcGVyYXRpb24gZGlzY29udGludWVkAFJlcGxpY2E6IENvdWxkIG5vdCBzdG9wIHJlcGxpY2EgZm9yIGNoYW5uZWwgJyVzJyBvcGVyYXRpb24gZGlzY29udGludWVkAEVycm9yIGR1cmluZyAtLXJlbGF5LWxvZy1yZWNvdmVyeTogQ291bGQgbm90IGxvY2F0ZSByb3RhdGUgZXZlbnQgZnJvbSB0aGUgc291cmNlLgBFcnJvciBkdXJpbmcgLS1yZWxheS1sb2ctcmVjb3Zlcnk6IEVycm9yIHJlYWRpbmcgZXZlbnRzIGZyb20gcmVsYXkgbG9nOiAlZABFcnJvciBkdXJpbmcgLS1yZWxheS1sb2ctcmVjb3Zlcnk6IEVycm9yIHdoaWxlIGZyZWVpbmcgSU9fQ0FDSEUgb2JqZWN0AFJlbGF5IGxvZyByZWNvdmVyeSBza2lwcGVkIGZvciBncm91cCByZXBsaWNhdGlvbiBjaGFubmVsLgBFcnJvciBkdXJpbmcgLS1yZWxheS1sb2ctcmVjb3Zlcnk6ICVzAEVycm9yIGR1cmluZyAtLXJlbGF5LWxvZy1yZWNvdmVyeTogQ291bGQgbm90IHJlYWQgcmVsYXkgbG9nIGluZGV4IGZpbGUgZHVlIHRvIGFuIElPIGVycm9yLgBSZWNvdmVyeSBmcm9tIHNvdXJjZSBwb3MgJWxkIGFuZCBmaWxlICVzJXMuIFByZXZpb3VzIHJlbGF5IGxvZyBwb3MgYW5kIHJlbGF5IGxvZyBmaWxlIGhhZCBiZWVuIHNldCB0byAlbGxkLCAlcyByZXNwZWN0aXZlbHkuAEVycm9yIGR1cmluZyAtLXJlbGF5LWxvZy1yZWNvdmVyeTogcmVwbGljYXRlX3NhbWVfc2VydmVyX2lkIGlzIGluIHVzZSBhbmQgc3FsIHRocmVhZCdzIHBvc2l0aW9ucyBhcmUgbm90IGluaXRpYWxpemVkLCBoZW5jZSByZWxheSBsb2cgcmVjb3ZlcnkgY2Fubm90IGhhcHBlbi4ATVRBIHJlY292ZXJ5OiBzdGFydGluZyBjb29yZGluYXRvciB0aHJlYWQgdG8gZmlsbCBNVEEgZ2Fwcy4ATVRBIHJlY292ZXJ5OiBmYWlsZWQgdG8gc3RhcnQgdGhlIGNvb3JkaW5hdG9yIHRocmVhZC4gQ2hlY2sgdGhlIGVycm9yIGxvZyBmb3IgYWRkaXRpb25hbCBkZXRhaWxzLgBNVEEgcmVjb3Zlcnk6IGF1dG9tYXRpYyByZWNvdmVyeSBmYWlsZWQuIEVpdGhlciB0aGUgcmVwbGljYSBzZXJ2ZXIgaGFkIHN0b3BwZWQgZHVlIHRvIGFuIGVycm9yIGR1cmluZyBhbiBlYXJsaWVyIHNlc3Npb24gb3IgcmVsYXkgbG9ncyBhcmUgY29ycnVwdGVkLkZpeCB0aGUgY2F1c2Ugb2YgdGhlIHJlcGxpY2Egc2lkZSBlcnJvciBhbmQgcmVzdGFydCB0aGUgcmVwbGljYSBzZXJ2ZXIgb3IgY29uc2lkZXIgdXNpbmcgUkVTRVQgUkVQTElDQS4ARmFpbGVkIHRvIG9wZW4gdGhlIHJlbGF5IGxvZyAnJXMnIChyZWxheV9sb2dfcG9zICVzKS4ATVRBIHJlY292ZXJ5OiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LgBTZXJ2ZXIgaWQgbm90IHNldCwgd2lsbCBub3Qgc3RhcnQgcmVwbGljYSVzAENhbid0IGNyZWF0ZSByZXBsaWNhIHRocmVhZCVzLgBUaGUgcmVwbGljYSBJTyB0aHJlYWQlcyB3YXMga2lsbGVkIHdoaWxlIGV4ZWN1dGluZyBpbml0aWFsaXphdGlvbiBxdWVyeSAnJXMnAFRoZSBzb3VyY2UncyBVVUlEIGhhcyBjaGFuZ2VkLCBhbHRob3VnaCB0aGlzIHNob3VsZCBub3QgaGFwcGVuIHVubGVzcyB5b3UgaGF2ZSBjaGFuZ2VkIGl0IG1hbnVhbGx5LiBUaGUgb2xkIFVVSUQgd2FzICVzLgBGb3VuZCBhIHNvdXJjZSB3aXRoIE15U1FMIHNlcnZlciB2ZXJzaW9uIG9sZGVyIHRoYW4gNS4wLiBXaXRoIGNoZWNrc3VtcyBlbmFibGVkIG9uIHRoZSByZXBsaWNhLCByZXBsaWNhdGlvbiBtaWdodCBub3Qgd29yayBjb3JyZWN0bHkuIFRvIGVuc3VyZSBjb3JyZWN0IHJlcGxpY2F0aW9uLCByZXN0YXJ0IHRoZSByZXBsaWNhIHNlcnZlciB3aXRoIC0tcmVwbGljYV9zcWxfdmVyaWZ5X2NoZWNrc3VtPTAuACJTRUxFQ1QgVU5JWF9USU1FU1RBTVAoKSIgZmFpbGVkIG9uIHNvdXJjZSwgZG8gbm90IHRydXN0IGNvbHVtbiBTZWNvbmRzX0JlaGluZF9Tb3VyY2Ugb2YgU0hPVyBSRVBMSUNBIFNUQVRVUy4gRXJyb3I6ICVzICglZCkARmFpbGVkIHRvIGZsdXNoIGNvbm5lY3Rpb24gbWV0YWRhdGEgcmVwb3NpdG9yeS4AVGhlIGxlbmd0aCBvZiByZXBvcnRfaG9zdCBpcyAlenUuIEl0IGlzIGxhcmdlciB0aGFuIHRoZSBtYXggbGVuZ3RoKCVkKSwgc28gdGhpcyByZXBsaWNhIGNhbm5vdCBiZSByZWdpc3RlcmVkIHRvIHRoZSBzb3VyY2Ulcy4AVGhlIGxlbmd0aCBvZiByZXBvcnRfdXNlciBpcyAlenUuIEl0IGlzIGxhcmdlciB0aGFuIHRoZSBtYXggbGVuZ3RoKCVkKSwgc28gdGhpcyByZXBsaWNhIGNhbm5vdCBiZSByZWdpc3RlcmVkIHRvIHRoZSBzb3VyY2Ulcy4AVGhlIGxlbmd0aCBvZiByZXBvcnRfcGFzc3dvcmQgaXMgJXp1LiBJdCBpcyBsYXJnZXIgdGhhbiB0aGUgbWF4IGxlbmd0aCglZCksIHNvIHRoaXMgcmVwbGljYSBjYW5ub3QgYmUgcmVnaXN0ZXJlZCB0byB0aGUgc291cmNlJXMuAEVycm9yIG9uICVzOiAlZCAgJXMsIHdpbGwgcmV0cnkgaW4gJWQgc2VjcwBFcnJvciByZWFkaW5nIHBhY2tldCBmcm9tIHNlcnZlciVzOiAlcyAoc2VydmVyX2Vycm5vPSVkKQBSZXBsaWNhJXM6IHJlY2VpdmVkIGVuZCBwYWNrZXQgZnJvbSBzZXJ2ZXIgZHVlIHRvIGR1bXAgdGhyZWFkIGJlaW5nIGtpbGxlZCBvbiBzb3VyY2UuIER1bXAgdGhyZWFkcyBhcmUga2lsbGVkIGZvciBleGFtcGxlIGR1cmluZyBzb3VyY2Ugc2h1dGRvd24sIGV4cGxpY2l0bHkgYnkgYSB1c2VyLCBvciB3aGVuIHRoZSBzb3VyY2UgcmVjZWl2ZXMgYSBiaW5sb2cgc2VuZCByZXF1ZXN0IGZyb20gYSBkdXBsaWNhdGUgc2VydmVyIFVVSUQgPCVzPiA6IEVycm9yICVzAE11bHRpLXRocmVhZGVkIHJlcGxpY2Egc3RhdGlzdGljcyVzOiBzZWNvbmRzIGVsYXBzZWQgPSAlbHU7IGV2ZW50cyBhc3NpZ25lZCA9ICVsbHU7IHdvcmtlciBxdWV1ZXMgZmlsbGVkIG92ZXIgb3ZlcnJ1biBsZXZlbCA9ICVsdTsgd2FpdGVkIGR1ZSBhIFdvcmtlciBxdWV1ZSBmdWxsID0gJWx1OyB3YWl0ZWQgZHVlIHRoZSB0b3RhbCBzaXplID0gJWx1OyB3YWl0ZWQgYXQgY2xvY2sgY29uZmxpY3RzID0gJWxsdSB3YWl0ZWQgKGNvdW50KSB3aGVuIFdvcmtlcnMgb2NjdXBpZWQgPSAlbHUgd2FpdGVkIHdoZW4gV29ya2VycyBvY2N1cGllZCA9ICVsbHUAUmVwbGljYSVzOiBNVEEgUmVjb3ZlcnkgaGFzIGNvbXBsZXRlZCBhdCByZWxheSBsb2cgJXMsIHBvc2l0aW9uICVsbHUgc291cmNlIGxvZyAlcywgcG9zaXRpb24gJWxsdS4ARXJyb3IgaW5pdGlhbGl6aW5nIHJlbGF5IGxvZyBwb3NpdGlvbiVzOiAlcwBSZXBsaWNhIEkvTyB0aHJlYWQlczogY29ubmVjdGVkIHRvIHNvdXJjZSAnJXNAJXM6JWQnLHJlcGxpY2F0aW9uIHN0YXJ0ZWQgaW4gbG9nICclcycgYXQgcG9zaXRpb24gJXMAUmVwbGljYSBJL08gdGhyZWFkJXMga2lsbGVkIHdoaWxlIGNvbm5lY3RpbmcgdG8gc291cmNlAFJlcGxpY2EgSS9PIHRocmVhZCBjb3VsZG4ndCByZWdpc3RlciBvbiBzb3VyY2UARm9yY2luZyB0byByZWNvbm5lY3QgcmVwbGljYSBJL08gdGhyZWFkJXMARmFpbGVkIG9uIHJlcXVlc3RfZHVtcCgpJXMATG9nIGVudHJ5IG9uIHNvdXJjZSBpcyBsb25nZXIgdGhhbiByZXBsaWNhX21heF9hbGxvd2VkX3BhY2tldCAoJWx1KSBvbiByZXBsaWNhLiBJZiB0aGUgZW50cnkgaXMgY29ycmVjdCwgcmVzdGFydCB0aGUgc2VydmVyIHdpdGggYSBoaWdoZXIgdmFsdWUgb2YgcmVwbGljYV9tYXhfYWxsb3dlZF9wYWNrZXQAU3RvcHBpbmcgcmVwbGljYSBJL08gdGhyZWFkIGR1ZSB0byBvdXQtb2YtbWVtb3J5IGVycm9yIGZyb20gc291cmNlAFJlcGxpY2EgSS9PIHRocmVhZCBhYm9ydGVkIHdoaWxlIHdhaXRpbmcgZm9yIHJlbGF5IGxvZyBzcGFjZQBSZXBsaWNhIEkvTyB0aHJlYWQgZXhpdGluZyVzLCByZWFkIHVwIHRvIGxvZyAnJXMnLCBwb3NpdGlvbiAlcwBGYWlsZWQgZHVyaW5nIHJlcGxpY2Egd29ya2VyIGluaXRpYWxpemF0aW9uJXMAUmVwbGljYTogTVRBIGdyb3VwIHJlY292ZXJ5IGFwcGxpZXIgbWV0YWRhdGEgYmFzZWQgb24gV29ya2VyLUlkICVsdSwgZ3JvdXBfcmVsYXlfbG9nX25hbWUgJXMsIGdyb3VwX3JlbGF5X2xvZ19wb3MgJWxsdSBncm91cF9zb3VyY2VfbG9nX25hbWUgJXMsIGdyb3VwX3NvdXJjZV9sb2dfcG9zICVsbHUARXJyb3IgbG9va2luZyBmb3IgJXMuAFJlcGxpY2E6IE1UQSBncm91cCByZWNvdmVyeSBhcHBsaWVyIG1ldGFkYXRhIGdyb3VwX3NvdXJjZV9sb2dfbmFtZSAlcywgZXZlbnRfc291cmNlX2xvZ19wb3MgJWxsdS4ARXJyb3IgbG9va2luZyBmb3IgZmlsZSBhZnRlciAlcy4AVGhpcyBhbiBlcnJvciBjbnQgIT0gbXRhX2NoZWNrcG9pbnRfcGVyaW9kAEZhaWxlZCBkdXJpbmcgcmVwbGljYSB3b3JrZXIgdGhyZWFkIGNyZWF0aW9uJXMARmFpbGVkIGR1cmluZyByZXBsaWNhIHdvcmtlciB0aHJlYWQgY3JlYXRpb24lcyAoZXJybm89ICVkKQBGYWlsZWQgdG8gaW5pdCBwYXJ0aXRpb25zIGhhc2gAUmVwbGljYSBTUUwgdGhyZWFkIDogTkRCIDogVGFibGVzIG5vdCBhdmFpbGFibGUgYWZ0ZXIgJWx1IHNlY29uZHMuIENvbnNpZGVyIGluY3JlYXNpbmcgLS1uZGItd2FpdC1zZXR1cCB2YWx1ZQBSZXBsaWNhIFNRTCB0aHJlYWQlcyBpbml0aWFsaXplZCwgc3RhcnRpbmcgcmVwbGljYXRpb24gaW4gbG9nICclcycgYXQgcG9zaXRpb24gJXMsIHJlbGF5IGxvZyAnJXMnIHBvc2l0aW9uOiAlcwAnU1FMX1JFUExJQ0FfU0tJUF9DT1VOVEVSPSVsZCcgZXhlY3V0ZWQgYXQgcmVsYXlfbG9nX2ZpbGU9JyVzJywgcmVsYXlfbG9nX3Bvcz0nJWxkJywgc291cmNlX2xvZ19uYW1lPSclcycsIHNvdXJjZV9sb2dfcG9zPSclbGQnIGFuZCBuZXcgcG9zaXRpb24gYXQgcmVsYXlfbG9nX2ZpbGU9JyVzJywgcmVsYXlfbG9nX3Bvcz0nJWxkJywgc291cmNlX2xvZ19uYW1lPSclcycsIHNvdXJjZV9sb2dfcG9zPSclbGQnIABSZXBsaWNhIChhZGRpdGlvbmFsIGluZm8pOiAlcyBFcnJvcl9jb2RlOiBNWS0lMDZkAFJlcGxpY2E6ICVzIEVycm9yX2NvZGU6IE1ZLSUwNmQARXJyb3IgbG9hZGluZyB1c2VyLWRlZmluZWQgbGlicmFyeSwgcmVwbGljYSBTUUwgdGhyZWFkIGFib3J0ZWQuIEluc3RhbGwgdGhlIG1pc3NpbmcgbGlicmFyeSwgYW5kIHJlc3RhcnQgdGhlIHJlcGxpY2EgU1FMIHRocmVhZCB3aXRoICJTVEFSVCBSRVBMSUNBIi4gV2Ugc3RvcHBlZCBhdCBsb2cgJyVzJyBwb3NpdGlvbiAlcwBFcnJvciBydW5uaW5nIHF1ZXJ5LCByZXBsaWNhIFNRTCB0aHJlYWQgYWJvcnRlZC4gRml4IHRoZSBwcm9ibGVtLCBhbmQgcmVzdGFydCB0aGUgcmVwbGljYSBTUUwgdGhyZWFkIHdpdGggIlNUQVJUIFJFUExJQ0EiLiBXZSBzdG9wcGVkIGF0IGxvZyAnJXMnIHBvc2l0aW9uICVzAFJlcGxpY2EgU1FMIHRocmVhZCVzIGV4aXRpbmcsIHJlcGxpY2F0aW9uIHN0b3BwZWQgaW4gbG9nICclcycgYXQgcG9zaXRpb24gJXMAUmVhZCBpbnZhbGlkIGV2ZW50IGZyb20gc291cmNlOiAnJXMnLCBzb3VyY2UgY291bGQgYmUgY29ycnVwdCBidXQgYSBtb3JlIGxpa2VseSBjYXVzZSBvZiB0aGlzIGlzIGEgYnVnAFRoZSBxdWV1ZSBldmVudCBmYWlsZWQgZm9yIGNoYW5uZWwgJyVzJyBhcyBpdHMgY29uZmlndXJhdGlvbiBpcyBpbnZhbGlkLgBBbiB1bmV4cGVjdGVkIGV2ZW50IHNlcXVlbmNlIHdhcyBkZXRlY3RlZCBieSB0aGUgSU8gdGhyZWFkIHdoaWxlIHF1ZXVpbmcgdGhlIGV2ZW50IHJlY2VpdmVkIGZyb20gc291cmNlICclcycgYmluYXJ5IGxvZyBmaWxlLCBhdCBwb3NpdGlvbiAlbGx1LgAnJXMnIGNhbiBub3QgYmUgdXNlZCBhcyBjbGllbnQgY2hhcmFjdGVyIHNldC4gJyVzJyB3aWxsIGJlIHVzZWQgYXMgZGVmYXVsdCBjbGllbnQgY2hhcmFjdGVyIHNldCB3aGlsZSBjb25uZWN0aW5nIHRvIHNvdXJjZS4AUmVwbGljYSVzOiBjb25uZWN0ZWQgdG8gc291cmNlICclc0AlczolZCcscmVwbGljYXRpb24gcmVzdW1lZCBpbiBsb2cgJyVzJyBhdCBwb3NpdGlvbiAlcwBuZXh0IGxvZyAnJXMnIGlzIGFjdGl2ZQBuZXh0IGxvZyAnJXMnIGlzIG5vdCBhY3RpdmUAUmVwbGljYSBTUUwgdGhyZWFkJXM6IEkvTyBlcnJvciByZWFkaW5nIGV2ZW50IChlcnJubzogJWQgIGN1cl9sb2ctPmVycm9yOiAlZCkARXJyb3IgcmVhZGluZyByZWxheSBsb2cgZXZlbnQlczogJXMAJ0NIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8lcyBleGVjdXRlZCcuIFByZXZpb3VzIHN0YXRlIHNvdXJjZV9ob3N0PSclcycsIHNvdXJjZV9wb3J0PSAldSwgc291cmNlX2xvZ19maWxlPSclcycsIHNvdXJjZV9sb2dfcG9zPSAlbGQsIHNvdXJjZV9iaW5kPSclcycuIE5ldyBzdGF0ZSBzb3VyY2VfaG9zdD0nJXMnLCBzb3VyY2VfcG9ydD0gJXUsIHNvdXJjZV9sb2dfZmlsZT0nJXMnLCBzb3VyY2VfbG9nX3Bvcz0gJWxkLCBzb3VyY2VfYmluZD0nJXMnLgBSZXBsaWNhOiBDYW5ub3QgY3JlYXRlIG5ldyBjb25uZWN0aW9uIG1ldGFkYXRhIHN0cnVjdHVyZSB3aGVuIHJlcG9zaXRvcmllcyBhcmUgb2YgdHlwZSBGSUxFLiBDb252ZXJ0IHJlcGxpY2EgcmVwb3NpdG9yaWVzIHRvIFRBQkxFIHRvIHJlcGxpY2F0ZSBmcm9tIG11bHRpcGxlIHNvdXJjZXMuAGxvZyAlcyBsaXN0ZWQgaW4gdGhlIGluZGV4LCBidXQgZmFpbGVkIHRvIHN0YXQuAENvdWxkIG5vdCBmaW5kIGZpcnN0IGxvZyB3aGlsZSBjb3VudGluZyByZWxheSBsb2cgc3BhY2UuAFVuYWJsZSB0byB1c2UgcmVwbGljYSdzIHRlbXBvcmFyeSBkaXJlY3RvcnkgJyVzJy4AUGF0aCAnJXMnIGlzIGEgZGlyZWN0b3J5IG5hbWUsIHBsZWFzZSBzcGVjaWZ5IGEgZmlsZSBuYW1lIGZvciAtLXJlbGF5LWxvZyBvcHRpb24uAFBhdGggJyVzJyBpcyBhIGRpcmVjdG9yeSBuYW1lLCBwbGVhc2Ugc3BlY2lmeSBhIGZpbGUgbmFtZSBmb3IgLS1yZWxheS1sb2ctaW5kZXggb3B0aW9uLgBOZWl0aGVyIC0tcmVsYXktbG9nIG5vciAtLXJlbGF5LWxvZy1pbmRleCB3ZXJlIHVzZWQ7IHNvIHJlcGxpY2F0aW9uIG1heSBicmVhayB3aGVuIHRoaXMgTXlTUUwgc2VydmVyIGFjdHMgYXMgYSByZXBsaWNhIGFuZCBoYXMgaGlzIGhvc3RuYW1lIGNoYW5nZWQhISBQbGVhc2UgdXNlICctLXJlbGF5LWxvZz0lcycgdG8gYXZvaWQgdGhpcyBwcm9ibGVtLgBGYWlsZWQgaW4gb3Blbl9pbmRleF9maWxlKCkgY2FsbGVkIGZyb20gUmVsYXlfbG9nX2luZm86OnJsaV9pbml0X2luZm8oKS4ARmFpbGVkIGluIGluaXRfZ3RpZF9zZXRzKCkgY2FsbGVkIGZyb20gUmVsYXlfbG9nX2luZm86OnJsaV9pbml0X2luZm8oKS4ARmFpbGVkIGluIG9wZW5fbG9nKCkgY2FsbGVkIGZyb20gUmVsYXlfbG9nX2luZm86OnJsaV9pbml0X2luZm8oKS4ARXJyb3Igd3JpdGluZyByZWxheSBsb2cgY29uZmlndXJhdGlvbi4AZ2V0X25kYl9ibG9ic192YWx1ZTogbXlfbWFsbG9jKCV1KSBmYWlsZWQATkRCOiBUaHJlYWQgaWQgJXUgdGltZWQgb3V0ICgzMHMpIHdhaXRpbmcgZm9yIGVwb2NoICV1LyV1IHRvIGJlIGhhbmRsZWQuICBQcm9ncmVzcyA6ICV1LyV1IC0+ICV1LyV1LgBOREI6IEluY29uc2lzdGVuY3kgZGV0ZWN0ZWQgaW4gZGlzdHJpYnV0ZWQgcHJpdmlsZWdlIHRhYmxlcy4gVGFibGUgJyVzLiVzJyBpcyBub3QgZGlzdHJpYnV0ZWQATkRCOiBDcmVhdGluZyAlcy4lcwBOREI6IEZsdXNoaW5nICVzLiVzAE5EQjogQ2xlYW5pbmcgc3RyYXkgdGFibGVzIGZyb20gZGF0YWJhc2UgJyVzJwBOREI6IERpc2NvdmVyZWQgbWlzc2luZyBkYXRhYmFzZSAnJXMnAE5EQjogRGlzY292ZXJlZCByZW1haW5pbmcgZGF0YWJhc2UgJyVzJwBOREI6IG5kYmNsdXN0ZXJfZmluZF9hbGxfZGF0YWJhc2VzIHJldHJ5OiAldSAtICVzAE5EQjogbmRiY2x1c3Rlcl9maW5kX2FsbF9kYXRhYmFzZXMgZmFpbDogJXUgLSAlcwBOREI6IHNraXBwaW5nIHNldHVwIHRhYmxlICVzLiVzLCBpbiBzdGF0ZSAlZABOREI6IGZhaWxlZCB0byBzZXR1cCB0YWJsZSAlcy4lcywgZXJyb3I6ICVkLCAlcwBOREI6IG1pc3NpbmcgZnJtIGZvciAlcy4lcywgZGlzY292ZXJpbmcuLi4ATkRCOiBtaXNtYXRjaCBpbiBmcm0gZm9yICVzLiVzLCBkaXNjb3ZlcmluZy4uLgBuZGJfYmlubG9nX3NldHVwOiBDbGVhbiB1cCBsZWZ0b3ZlcnMATkRCICVzOiB3YWl0aW5nIG1heCAldSBzZWMgZm9yICVzICVzLiAgZXBvY2hzOiAoJXUvJXUsJXUvJXUsJXUvJXUpICBpbmplY3RvciBwcm9jX2luZm86ICVzAE5EQiAlczogd2FpdGluZyBtYXggJXUgc2VjIGZvciAlcyAlcy4gIGVwb2NoczogKCV1LyV1LCV1LyV1LCV1LyV1KSAgaW5qZWN0b3IgcHJvY19pbmZvOiAlcyBtYXA6ICV4JTA4eABOREIgJXM6IGRpc3RyaWJ1dGluZyAlcyB0aW1lZCBvdXQuIElnbm9yaW5nLi4uAE5EQiAlczogbm90IHdhaXRpbmcgZm9yIGRpc3RyaWJ1dGluZyAlcwBOREI6IGRpc3RyaWJ1dGVkICVzLiVzKCV1LyV1KSB0eXBlOiAlcygldSkgcXVlcnk6ICclcycgdG8gJXglMDh4AE5EQjogZGlzdHJpYnV0aW9uIG9mICVzLiVzKCV1LyV1KSB0eXBlOiAlcygldSkgcXVlcnk6ICclcycgLSBjb21wbGV0ZSEATkRCIFNjaGVtYSBkaXN0OiBEYXRhIG5vZGU6ICVkIGZhaWxlZCwgc3Vic2NyaWJlciBiaXRtYXNrICV4JTA4eABOREIgU2NoZW1hIGRpc3Q6IERhdGEgbm9kZTogJWQgcmVwb3J0cyBzdWJzY3JpYmUgZnJvbSBub2RlICVkLCBzdWJzY3JpYmVyIGJpdG1hc2sgJXglMDh4AE5EQiBTY2hlbWEgZGlzdDogRGF0YSBub2RlOiAlZCByZXBvcnRzIHVuc3Vic2NyaWJlIGZyb20gbm9kZSAlZCwgc3Vic2NyaWJlciBiaXRtYXNrICV4JTA4eABOREIgQmlubG9nOiBDb3VsZCBub3QgZGlzY292ZXIgdGFibGUgJyVzLiVzJyBmcm9tIGJpbmxvZyBzY2hlbWEgZXZlbnQgJyVzJyBmcm9tIG5vZGUgJWQuIG15X2Vycm5vOiAlZABOREI6IHVua25vd24gdmFsdWUgZm9yIGJpbmxvZyBzaWduYWxsaW5nIDB4JVgsICVzIG5vdCBsb2dnZWQATkRCOiByZXBseSB0byAlcy4lcygldS8ldSkgZnJvbSAlcyB0byAleCUwOHgATkRCOiBDb3VsZCBub3QgcmVsZWFzZSBzbG9jayBvbiAnJXMuJXMnLCBFcnJvciBjb2RlOiAlZCBNZXNzYWdlOiAlcwBOREIgc2NoZW1hOiBDb3VsZCBub3QgZmluZCB0YWJsZSAnJXMuJXMnIGluIE5EQgBOREI6IERpc2NhcmRpbmcgZXZlbnQuLi5ubyBvYmo6ICVzICgldS8ldSkATkRCOiBEaXNjYXJkaW5nIGV2ZW50Li4ua2V5OiAlcyBub24gbWF0Y2hpbmcgaWQvdmVyc2lvbiBbJXUvJXVdICE9IFsldS8ldV0ATkRCOiBDTEVBUl9TTE9DSyBrZXk6ICVzKCV1LyV1KSAleCUwOHgsIGZyb20gJXMgdG8gJXglMDh4AE5EQiBCaW5sb2c6IFNraXBwaW5nIGxvY2FsbHkgZGVmaW5lZCB0YWJsZSAnJXMuJXMnIGZyb20gYmlubG9nIHNjaGVtYSBldmVudCAnJXMnIGZyb20gbm9kZSAlZC4ATkRCIEJpbmxvZzogaGFuZGxpbmcgb25saW5lIGFsdGVyL3JlbmFtZQBOREIgQmlubG9nOiBGYWlsZWQgdG8gcmUtb3BlbiBzaGFkb3cgdGFibGUgJXMuJXMATkRCIEJpbmxvZzogaGFuZGxpbmcgb25saW5lIGFsdGVyL3JlbmFtZSBkb25lAE5EQiBCaW5sb2c6IFNraXBwaW5nIGRyb3Agb2YgbG9jYWxseSBkZWZpbmVkIHRhYmxlICclcy4lcycgZnJvbSBiaW5sb2cgc2NoZW1hIGV2ZW50ICclcycgZnJvbSBub2RlICVkLiAATkRCIEJpbmxvZzogU2tpcHBpbmcgcmVuYW1pbmcgbG9jYWxseSBkZWZpbmVkIHRhYmxlICclcy4lcycgZnJvbSBiaW5sb2cgc2NoZW1hIGV2ZW50ICclcycgZnJvbSBub2RlICVkLiAATkRCIEJpbmxvZzogU2tpcHBpbmcgZHJvcCBkYXRhYmFzZSAnJXMnIHNpbmNlIGl0IGNvbnRhaW5lZCBsb2NhbCB0YWJsZXMgYmlubG9nIHNjaGVtYSBldmVudCAnJXMnIGZyb20gbm9kZSAlZC4gAEdvdCBkaXN0X3ByaXYgZXZlbnQ6ICVzLCBmbHVzaGluZyBwcml2aWxlZ2VzAE5EQjogZ290IHNjaGVtYSBldmVudCBvbiAlcy4lcygldS8ldSkgcXVlcnk6ICclcycgdHlwZTogJXMoJWQpIG5vZGU6ICV1IHNsb2NrOiAleCUwOHgATkRCIHNjaGVtYTogU2tpcHBpbmcgb2xkIHNjaGVtYSBvcGVyYXRpb24oUkVOQU1FX1RBQkxFX05FVykgb24gJXMuJXMATkRCIFNjaGVtYSBkaXN0OiBjbHVzdGVyIGZhaWx1cmUgYXQgZXBvY2ggJXUvJXUuAE5EQiBCaW5sb2c6IG5kYiB0YWJsZXMgaW5pdGlhbGx5IHJlYWQgb25seSBvbiByZWNvbm5lY3QuAE5EQiBTY2hlbWEgZGlzdDogdW5rbm93biBldmVudCAldSwgaWdub3JpbmcuLi4ATkRCIEJpbmxvZzogT3BlbmluZyBuZGJfYmlubG9nX2luZGV4OiAlZCwgJyVzJwBOREIgQmlubG9nOiBVbmFibGUgdG8gbG9jayB0YWJsZSBuZGJfYmlubG9nX2luZGV4AE5EQiBCaW5sb2c6IEluamVjdGluZyByYW5kb20gd3JpdGUgZmFpbHVyZQBOREIgQmlubG9nOiBGYWlsZWQgd3JpdGluZyB0byBuZGJfYmlubG9nX2luZGV4IGZvciBlcG9jaCAldS8ldSAgb3JpZ19zZXJ2ZXJfaWQgJXUgb3JpZ19lcG9jaCAldS8ldSB3aXRoIGVycm9yICVkLgBOREIgQmlubG9nOiBXcml0aW5nIHJvdyAoJXMpIHRvIG5kYl9iaW5sb2dfaW5kZXggLSAlcwBOREIgQmlubG9nOiBGYWlsZWQgY29tbWl0dGluZyB0cmFuc2FjdGlvbiB0byBuZGJfYmlubG9nX2luZGV4IHdpdGggZXJyb3IgJWQuAE5EQiBCaW5sb2c6IEZhaWxlZCB3cml0aW5nIHRvIG5kYl9iaW5sb2dfaW5kZXggdGFibGUgd2hpbGUgcmV0cnlpbmcgYWZ0ZXIga2lsbCBkdXJpbmcgc2h1dGRvd24ATkRCOiBzZXJ2ZXIgaWQgc2V0IHRvIHplcm8gLSBjaGFuZ2VzIGxvZ2dlZCB0byBiaW4gbG9nIHdpdGggc2VydmVyIGlkIHplcm8gd2lsbCBiZSBsb2dnZWQgd2l0aCBhbm90aGVyIHNlcnZlciBpZCBieSByZXBsaWNhIG15c3FsZHMATkRCOiBzZXJ2ZXIgaWQgcHJvdmlkZWQgaXMgdG9vIGxhcmdlIHRvIGJlIHJlcHJlc2VudGVkIGluIG9wdF9zZXJ2ZXJfaWRfYml0cyBvciBpcyByZXNlcnZlZABOREI6IC0tbmRiLWxvZy10cmFuc2FjdGlvbi1pZCByZXF1aXJlcyB2MiBCaW5sb2cgcm93IGV2ZW50cyBidXQgc2VydmVyIGlzIHVzaW5nIHYxLgBOREI6IG5kYi1sb2ctYXBwbHktc3RhdHVzIGZvcmNpbmcgJXMuJXMgdG8gRlVMTCBVU0VfV1JJVEUATkRCIEJpbmxvZzogJXMAJXMAJXMATkRCIFJlcGxpY2E6IFRhYmxlICVzLiVzIDogUGFyc2UgZXJyb3Igb24gY29uZmxpY3QgZm4gOiAlcwBOREIgUmVwbGljYTogVGFibGUgJXMuJXMgOiAlcwBOREIgQmlubG9nOiBGYWlsZWQgdG8gZ2V0IHRhYmxlICVzIGZyb20gbmRiOiAlcywgJWQATkRCIEJpbmxvZzogTk9UIGxvZ2dpbmcgJXMATkRCIEJpbmxvZzogRkFJTEVEIENSRUFURSAoRElTQ09WRVIpIFRBQkxFIEV2ZW50OiAlcwBOREIgQmlubG9nOiBDUkVBVEUgKERJU0NPVkVSKSBUQUJMRSBFdmVudDogJXMATkRCIEJpbmxvZzogRElTQ09WRVIgVEFCTEUgRXZlbnQ6ICVzAE5EQiBCaW5sb2c6IGxvZ2dpbmcgb2YgdGFibGUgJXMgd2l0aCBCTE9CIGF0dHJpYnV0ZSBhbmQgbm8gUEsgaXMgbm90IHN1cHBvcnRlZABOREIgQmlubG9nOiBVbmFibGUgdG8gY3JlYXRlIGV2ZW50IGluIGRhdGFiYXNlLiBFdmVudDogJXMgIEVycm9yIENvZGU6ICVkICBNZXNzYWdlOiAlcwBOREIgQmlubG9nOiBVbmFibGUgdG8gY3JlYXRlIGV2ZW50IGluIGRhdGFiYXNlLiAgQXR0ZW1wdCB0byBjb3JyZWN0IHdpdGggZHJvcCBmYWlsZWQuIEV2ZW50OiAlcyBFcnJvciBDb2RlOiAlZCBNZXNzYWdlOiAlcwBOREIgQmlubG9nOiBVbmFibGUgdG8gY3JlYXRlIGV2ZW50IGluIGRhdGFiYXNlLiAgQXR0ZW1wdCB0byBjb3JyZWN0IHdpdGggZHJvcCBvaywgYnV0IGNyZWF0ZSBmYWlsZWQuIEV2ZW50OiAlcyBFcnJvciBDb2RlOiAlZCBNZXNzYWdlOiAlcwBOREIgQmlubG9nOiBkaXNjb3ZlciByZXVzaW5nIG9sZCBldiBvcABOREIgQmlubG9nOiBDcmVhdGluZyBOZGJFdmVudE9wZXJhdGlvbiBmYWlsZWQgZm9yICVzAE5EQiBCaW5sb2c6IENyZWF0aW5nIE5kYkV2ZW50T3BlcmF0aW9uIGJsb2IgZmllbGQgJXUgaGFuZGxlcyBmYWlsZWQgKGNvZGU9JWQpIGZvciAlcwBOREIgQmlubG9nOiBuZGJldmVudC0+ZXhlY3V0ZSBmYWlsZWQgZm9yICVzOyAlZCAlcwBOREIgQmlubG9nOiBsb2dnaW5nICVzICglcywlcykATkRCIEJpbmxvZzogVW5hYmxlIHRvIGRyb3AgZXZlbnQgaW4gZGF0YWJhc2UuIEV2ZW50OiAlcyBFcnJvciBDb2RlOiAlZCBNZXNzYWdlOiAlcwBOREIgJXM6ICVzIHRpbWVkIG91dC4gSWdub3JpbmcuLi4ATkRCIEJpbmxvZzogdW5oYW5kbGVkIGVycm9yICVkIGZvciB0YWJsZSAlcwBOREIgQmlubG9nOiBjbHVzdGVyIGZhaWx1cmUgZm9yICVzIGF0IGVwb2NoICV1LyV1LgBOREIgQmlubG9nOiB1bmtub3duIG5vbiBkYXRhIGV2ZW50ICVkIGZvciAlcy4gSWdub3JpbmcuLi4ATkRCOiBCaW5sb2cgSW5qZWN0b3IgZGlzY2FyZGluZyByb3cgZXZlbnQgbWV0YSBkYXRhIGFzIHNlcnZlciBpcyB1c2luZyB2MSByb3cgZXZlbnRzLiAoJXUgJXgpAHJlbW92ZV9hbGxfZXZlbnRfb3BlcmF0aW9uczogUmVtYWluaW5nIG9wZW4gdGFibGVzOiAAICAlcy4lcywgdXNlX2NvdW50OiAldQBOREI6IENvdWxkIG5vdCBnZXQgYXBwbHkgc3RhdHVzIHNoYXJlAE5EQiBCaW5sb2c6IFNlcnZlciBzaHV0ZG93biBkZXRlY3RlZCB3aGlsZSB3YWl0aW5nIGZvciBuZGJjbHVzdGVyIHRvIHN0YXJ0Li4uAE5EQiBCaW5sb2c6IGNsdXN0ZXIgaGFzIGJlZW4gcmVzdGFydGVkIC0taW5pdGlhbCBvciB3aXRoIG9sZGVyIGZpbGVzeXN0ZW0uIG5kYl9sYXRlc3RfaGFuZGxlZF9iaW5sb2dfZXBvY2g6ICV1LyV1LCB3aGlsZSBjdXJyZW50IGVwb2NoOiAldS8ldS4gUkVTRVQgQklOQVJZIExPR1MgQU5EIEdUSURTIHNob3VsZCBiZSBpc3N1ZWQuIFJlc2V0dGluZyBuZGJfbGF0ZXN0X2hhbmRsZWRfYmlubG9nX2Vwb2NoLgBOREIgQmlubG9nOiBjbHVzdGVyIGhhcyByZWNvbm5lY3RlZC4gQ2hhbmdlcyB0byB0aGUgZGF0YWJhc2UgdGhhdCBvY2N1cnJlZCB3aGlsZSBkaXNjb25uZWN0ZWQgd2lsbCBub3QgYmUgaW4gdGhlIGJpbmxvZwBOREIgQmlubG9nOiBzdGFydGluZyBsb2cgYXQgZXBvY2ggJXUvJXUATkRCIEJpbmxvZzogbmRiIHRhYmxlcyB3cml0YWJsZQBOREIgQmlubG9nOiBTZXJ2ZXIgc2h1dGRvd24gZGV0ZWN0ZWQuLi4ATkRCIEJpbmxvZzogSnVzdCBsb3N0IHNjaGVtYSBjb25uZWN0aW9uLCBoYW5naW5nIGFyb3VuZABOREIgQmlubG9nOiAuLi5hbmQgb24gb3VyIHdheQBOREI6IGVycm9yICVsdSAoJXMpIG9uIGhhbmRsaW5nIGJpbmxvZyBzY2hlbWEgZXZlbnQATkRCIEJpbmxvZzogRmFpbGVkIHRvIGluamVjdCBhcHBseSBzdGF0dXMgd3JpdGUgcm93AE5EQiBCaW5sb2c6IEVycm9yIGR1cmluZyBST0xMQkFDSyBvZiBHQ0kgJXUvJXUuIEVycm9yOiAlZABOREIgQmlubG9nOiBFcnJvciBkdXJpbmcgQ09NTUlUIG9mIEdDSS4gRXJyb3I6ICVkAE5EQiBCaW5sb2c6IGxhdGVzdCB0cmFuc2FjdGlvbiBpbiBlcG9jaCAldS8ldSBub3QgaW4gYmlubG9nIGFzIGxhdGVzdCBoYW5kbGVkIGVwb2NoIGlzICV1LyV1AE5EQiBCaW5sb2c6IFJlbGVhc2UgZXh0cmEgc2hhcmUgcmVmZXJlbmNlcwBOREIgQmlubG9nOiByZW1haW5pbmcgb3BlbiB0YWJsZXM6IAAgICVzLiVzIHN0YXRlOiAldSB1c2VfY291bnQ6ICV1AFdyb25nIHRyZWU6IFBhcmVudCBkb2Vzbid0IHBvaW50IGF0IHBhcmVudABXcm9uZyB0cmVlOiBSb290IHNob3VsZCBiZSBibGFjawBXcm9uZyB0cmVlOiBGb3VuZCB0d28gcmVkIGluIGEgcm93AFdyb25nIHRyZWU6IEZvdW5kIHJpZ2h0ID09IGxlZnQAV3JvbmcgdHJlZTogSW5jb3JyZWN0IGJsYWNrLWNvdW50OiAlZCAtICVkAFVzZV9jb3VudDogV3JvbmcgY291bnQgJWx1IGZvciBvcmlnaW4gJXAAVXNlX2NvdW50OiBXcm9uZyBjb3VudCBmb3Iga2V5IGF0ICVwLCAlbHUgc2hvdWxkIGJlICVsdQBXcm9uZyBudW1iZXIgb2YgZWxlbWVudHM6ICV1IChzaG91bGQgYmUgJXUpIGZvciB0cmVlIGF0ICVwAEVycm9yIHJlYWRpbmcgcmVwbGljYSB3b3JrZXIgY29uZmlndXJhdGlvbgBFcnJvciB3cml0aW5nIHJlcGxpY2Egd29ya2VyIGNvbmZpZ3VyYXRpb24ARmFpbGVkIHRvIG9wZW4gcmVsYXkgbG9nICVzLCBlcnJvcjogJXMARXJyb3Igd2hlbiB3b3JrZXIgcmVhZCByZWxheSBsb2cgZXZlbnRzLHJlbGF5IGxvZyBuYW1lICVzLCBwb3NpdGlvbiAlbGx1AEZhaWxlZCB0byBmaW5kIG5leHQgcmVsYXkgbG9nIHdoZW4gcmV0cnlpbmcgdGhlIHRyYW5zYWN0aW9uLCBjdXJyZW50IHJlbGF5IGxvZyBpcyAlcwBNdWx0aS10aHJlYWRlZCByZXBsaWNhOiBDb29yZGluYXRvciBoYXMgd2FpdGVkICVsdSB0aW1lcyBoaXR0aW5nIHJlcGxpY2FfcGVuZGluZ19qb2JzX3NpemVfbWF4OyBjdXJyZW50IGV2ZW50IHNpemUgPSAlenUuAEZhaWxlZCB0byB3cml0ZSB0aGUgRFJPUCBzdGF0ZW1lbnQgZm9yIHRlbXBvcmFyeSB0YWJsZXMgdG8gYmluYXJ5IGxvZwBXaGVuIG9wZW5pbmcgSEVBUCB0YWJsZSwgY291bGQgbm90IGFsbG9jYXRlIG1lbW9yeSB0byB3cml0ZSAnREVMRVRFIEZST00gYCVzYC5gJXNgJyB0byB0aGUgYmluYXJ5IGxvZwBDb3VsZG4ndCByZXBhaXIgdGFibGU6ICVzLiVzAENvdWxkIG5vdCByZW1vdmUgdGVtcG9yYXJ5IHRhYmxlOiAnJXMnLCBlcnJvcjogJWQAU3lzdGVtIHRhYmxlICclLipzJyBpcyBleHBlY3RlZCB0byBiZSB0cmFuc2FjdGlvbmFsLgBFcnJvciB3cml0aW5nIHNvdXJjZSBjb25maWd1cmF0aW9uLgBFcnJvciByZWFkaW5nIHNvdXJjZSBjb25maWd1cmF0aW9uLgBTU0wgaW5mb3JtYXRpb24gaW4gdGhlIGNvbm5lY3Rpb24gbWV0YWRhdGEgcmVwb3NpdG9yeSBhcmUgaWdub3JlZCBiZWNhdXNlIHRoaXMgTXlTUUwgcmVwbGljYSB3YXMgY29tcGlsZWQgd2l0aG91dCBTU0wgc3VwcG9ydC4AUGx1Z2luICclcycgb2YgdHlwZSAlcyBmYWlsZWQgZGVpbml0aWFsaXphdGlvbgBQbHVnaW4gJyVzJyBoYXMgcmVmX2NvdW50PSVkIGFmdGVyIGRlaW5pdGlhbGl6YXRpb24uAFNodXR0aW5nIGRvd24gcGx1Z2luICclcycAUGx1Z2luICclcycgcmVnaXN0cmF0aW9uIGFzIGEgJXMgZmFpbGVkLgBDb3VsZCBub3Qgb3BlbiB0aGUgbXlzcWwucGx1Z2luIHRhYmxlLiBQbGVhc2UgcGVyZm9ybSB0aGUgTXlTUUwgdXBncmFkZSBwcm9jZWR1cmUuAENvdWxkbid0IGxvYWQgcGx1Z2luIG5hbWVkICclcycgd2l0aCBzb25hbWUgJyVzJy4AcGx1Z2luLWxvYWQgcGFyYW1ldGVyIHRvbyBsb25nAFBsdWdpbiAnJXMnIHdpbGwgYmUgZm9yY2VkIHRvIHNodXRkb3duAFBsdWdpbiAnJXMnIGhhcyByZWZfY291bnQ9JWQgYWZ0ZXIgc2h1dGRvd24uAFVua25vd24gdmFyaWFibGUgdHlwZSBjb2RlIDB4JXggaW4gcGx1Z2luICclcycuAFNlcnZlciB2YXJpYWJsZSAlcyBvZiBwbHVnaW4gJXMgd2FzIGZvcmNlZCB0byBiZSByZWFkLW9ubHk6IHN0cmluZyB2YXJpYWJsZSB3aXRob3V0IHVwZGF0ZV9mdW5jIGFuZCBQTFVHSU5fVkFSX01FTUFMTE9DIGZsYWcATWlzc2luZyB2YXJpYWJsZSBuYW1lIGluIHBsdWdpbiAnJXMnLgBUaHJlYWQgbG9jYWwgdmFyaWFibGUgJyVzJyBub3QgYWxsb2NhdGVkIGluIHBsdWdpbiAnJXMnLgBPdXQgb2YgbWVtb3J5IGZvciBwbHVnaW4gJyVzJy4AQmFkIG9wdGlvbnMgZm9yIHBsdWdpbiAnJXMnLgBQYXJzaW5nIG9wdGlvbnMgZm9yIHBsdWdpbiAnJXMnIGZhaWxlZC4AUGx1Z2luICclcycgaXMgZGlzYWJsZWQuAFBsdWdpbiAnJXMnIGhhcyBjb25mbGljdGluZyBzeXN0ZW0gdmFyaWFibGVzAFNldHRpbmcgcGVyc2lzdGVudCBvcHRpb25zIGZvciBwbHVnaW4gJyVzJyBmYWlsZWQuAEZhaWxlZCBvbiBteV9uZXRfd3JpdGUsIHdyaXRpbmcgdG8gc3RkZXJyIGluc3RlYWQ6ICVzAFJldHJ5aW5nIHJlcGFpciBvZjogJyVzJyB3aXRob3V0IHF1aWNrAFJldHJ5aW5nIHJlcGFpciBvZjogJyVzJyB3aXRoIGtleWNhY2hlAEZvdW5kICVzIG9mICVzIHJvd3Mgd2hlbiByZXBhaXJpbmcgJyVzJwBXYXJuaW5nOiBPcHRpbWl6ZSB0YWJsZSBnb3QgZXJybm8gJWQgb24gJXMuJXMsIHJldHJ5aW5nAFdhcm5pbmc6IEVuYWJsaW5nIGtleXMgZ290IGVycm5vICVkIG9uICVzLiVzLCByZXRyeWluZwBDaGVja2luZyB0YWJsZTogICAnJXMnAFJlY292ZXJpbmcgdGFibGU6ICclcycARXJyb3IgaW4gY3JlYXRpbmcgVEFCTEVfU0hBUkUgZnJvbSAlcy5mcm0gZmlsZS4AVW5hYmxlIHRvIGFjcXVpcmUgbG9jayBvbiAlcy4lcwBFcnJvciBpbiBhbGxvY2F0aW9uIG1lbW9yeSBmb3IgVEFCTEUgb2JqZWN0LgBFcnJvciBpbiBjcmVhdGluZyBoYW5kbGVyIG9iamVjdCBmb3IgdGFibGUgJXMuJXMARXJyb3IgaW4gc2V0dGluZyBoYW5kbGVyIHJlZmVyZW5jZSBmb3IgdGFibGUgJXMuJXMAVW5hYmxlIHRvIGFjcXVpcmUgbG9jayBvbiB0YWJsZXNwYWNlIG5hbWUgJXMARXJyb3IgaW4gcHJvY2Vzc2luZyBnZW5lcmF0ZWQgY29sdW1ucyBmb3IgdGFibGUgJXMuJXMARXJyb3IgaW4gQ3JlYXRpbmcgREQgZW50cnkgZm9yICVzLiVzAEVycm9yIGluIGZldGNoaW5nICVzLiVzIHRhYmxlIGRhdGEgZnJvbSBkaWN0aW9uYXJ5AEVycm9yIGluIGZpeGluZyBTRSBkYXRhIGZvciAlcy4lcwBFcnJvciBpbiBjcmVhdGluZyBzdG9yZWQgcHJvZ3JhbSAnJXMuJXMnAFVuYWJsZSB0byBvcGVuIGRiLm9wdCBmaWxlICVzLiBVc2luZyBkZWZhdWx0IENoYXJhY3RlciBzZXQuAFVuYWJsZSB0byBpbnRpYWxpemUgSU8gY2FjaGUgdG8gb3BlbiBkYi5vcHQgZmlsZSAlcy4gAFVuYWJsZSB0byBpZGVudGlmeSB0aGUgY2hhcnNldCBpbiAlcy4gVXNpbmcgZGVmYXVsdCBjaGFyYWN0ZXIgc2V0LgBkYi5vcHQgZmlsZSBub3QgZm91bmQgZm9yICVzIGRhdGFiYXNlLiBVc2luZyBkZWZhdWx0IENoYXJhY3RlciBzZXQuAEV2ZW50ICclcycuJyVzJzogaW52YWxpZCB2YWx1ZSBpbiBjb2x1bW4gbXlzcWwuZXZlbnQudGltZV96b25lLgBFdmVudCAnJXMnLiclcyc6IGhhcyBpbnZhbGlkIHRpbWUgem9uZSB2YWx1ZSAARXZlbnQgJyVzJy4nJXMnOiBpbnZhbGlkIHZhbHVlIGluIGNvbHVtbiBteXNxbC5ldmVudC5jaGFyYWN0ZXJfc2V0X2NsaWVudC4ARXZlbnQgJyVzJy4nJXMnOiBpbnZhbGlkIHZhbHVlIGluIGNvbHVtbiBteXNxbC5ldmVudC5jb2xsYXRpb25fY29ubmVjdGlvbi4ARmFpbGVkIHRvIG9wZW4gbXlzcWwuZXZlbnQgVGFibGUuAFBhcnNpbmcgJyVzLiVzJyByb3V0aW5lIGJvZHkgZmFpbGVkLiVzAEZhaWxlZCB0byBvcGVuIG15c3FsLnByb2MgVGFibGUuAEZhaWxlZCB0byByZWFkIG15c3FsLnByb2MgdGFibGUuAEZvdW5kICVzIGZpbGUgaW4gbXlzcWwgc2NoZW1hLiBERCB3aWxsIGNyZWF0ZSAuaWJkIGZpbGUgd2l0aCBzYW1lIG5hbWUuIFBsZWFzZSByZW5hbWUgdGFibGUgYW5kIHN0YXJ0IHVwZ3JhZGUgcHJvY2VzcyBhZ2Fpbi4AVW5hYmxlIHRvIG9wZW4gdGhlIGRhdGEgZGlyZWN0b3J5ICVzIGR1cmluZyBjbGVhbiB1cCBhZnRlciB1cGdyYWRlIGZhaWxlZABGYWlsZWQgdG8gc2V0IHBhdGggJXMARmFpbGVkIHRvIG9wZW4gZGlyICVzAE5EQjogRm91bmQgZW1wdHkgbm9kZWlkIHNwZWNpZmllZCBpbiAtLW5kYi1jbHVzdGVyLWNvbm5lY3Rpb24tcG9vbC1ub2RlaWRzPSclcycuAE5EQjogQ291bGQgbm90IHBhcnNlICclcycgaW4gLS1uZGItY2x1c3Rlci1jb25uZWN0aW9uLXBvb2wtbm9kZWlkcz0nJXMnLgBOREI6IEludmFsaWQgbm9kZWlkICVkIGluIC0tbmRiLWNsdXN0ZXItY29ubmVjdGlvbi1wb29sLW5vZGVpZHM9JyVzJy4ATkRCOiBGb3VuZCBkdXBsaWNhdGUgbm9kZWlkICVkIGluIC0tbmRiLWNsdXN0ZXItY29ubmVjdGlvbi1wb29sLW5vZGVpZHM9JyVzJy4ATkRCOiBUaGUgc2l6ZSBvZiB0aGUgY2x1c3RlciBjb25uZWN0aW9uIHBvb2wgbXVzdCBiZSBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIG5vZGVpZHMgaW4gLS1uZGItY2x1c3Rlci1jb25uZWN0aW9uLXBvb2wtbm9kZWlkcz0nJXMnLgBOREI6IFRoZSBub2RlaWQgc3BlY2lmaWVkIGJ5IC0tbmRiLW5vZGVpZCBtdXN0IGJlIGVxdWFsIHRvIHRoZSBmaXJzdCBub2RlaWQgaW4gLS1uZGItY2x1c3Rlci1jb25uZWN0aW9uLXBvb2wtbm9kZWlkcz0nJXMnLgBOREI6IHVzaW5nIG5vZGVpZCAldQBOREI6IGZhaWxlZCB0byBhbGxvY2F0ZSBnbG9iYWwgbmRiIGNsdXN0ZXIgY29ubmVjdGlvbgBOREI6IGZhaWxlZCB0byBhbGxvY2F0ZSBnbG9iYWwgbmRiIG9iamVjdABOREJbJXVdOiB1c2luZyBub2RlaWQgJXUATkRCWyV1XTogZmFpbGVkIHRvIGFsbG9jYXRlIGNsdXN0ZXIgY29ubmVjdCBvYmplY3QATkRCWyV1XTogc3RhcnRpbmcgY29ubmVjdCB0aHJlYWQATkRCWyV1XTogTm9kZUlEOiAlZCwgJXMATkRCWyV1XTogZmFpbGVkIHRvIHN0YXJ0IGNvbm5lY3QgdGhyZWFkAE5EQjogZXJyb3IgKCV1KSAlcwBJZ25vcmVkIHJlY2VpdmUgdGhyZWFkIENQVSBtYXNrLCBtYXNrIHRvbyBzaG9ydCwgJXUgQ1BVcyBuZWVkZWQgaW4gbWFzaywgb25seSAldSBDUFVzIHByb3ZpZGVkAEV2ZW50IEVycm9yOiBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBjcmVhdGluZyBxdWVyeSBzdHJpbmcsIGJlZm9yZSB3cml0aW5nIGl0IGludG8gYmluYXJ5IGxvZy4ARXZlbnQgU2NoZWR1bGVyOiBFcnJvciB3aGlsZSBsb2FkaW5nIGZyb20gZGlzay4ARXZlbnQgU2NoZWR1bGVyOiBFcnJvciBnZXR0aW5nIGV2ZW50IG9iamVjdC4ARXZlbnQgU2NoZWR1bGVyOiBFcnJvciB3aGlsZSBsb2FkaW5nIGV2ZW50cyBmcm9tIG15c3FsLmV2ZW50cy5UaGUgdGFibGUgcHJvYmFibHkgY29udGFpbnMgYmFkIGRhdGEgb3IgaXMgY29ycnVwdGVkAFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZHJvcHBpbmcgZXZlbnQgJXMgZnJvbSBzY2hlbWEgJXMAVW5hYmxlIHRvIGRyb3AgZXZlbnQgJXMgZnJvbSBzY2hlbWEgJXMAU2VydmVyIG92ZXJjb21lcyB0aGUgdGVtcG9yYXJ5ICdvdXQgb2YgbWVtb3J5JyBpbiAnJWQnIHRyaWVzIHdoaWxlIGF0dGFjaGluZyB0byBzZXNzaW9uIHRocmVhZCBkdXJpbmcgdGhlIGdyb3VwIGNvbW1pdCBwaGFzZS4AVW5hYmxlIHRvIHJlc2l6ZSBiaW5sb2cgSU9DQUNIRSBhdXhpbGlhcnkgZmlsZQBmaWxlICVzIHdhcyBub3QgcHVyZ2VkIGJlY2F1c2UgaXQgd2FzIGJlaW5nIHJlYWQgYnkgdGhyZWFkIG51bWJlciAldQBJL08gZXJyb3IgcmVhZGluZyB0aGUgaGVhZGVyIGZyb20gdGhlIGJpbmFyeSBsb2csIGVycm5vPSVkLCBpbyBjYWNoZSBjb2RlPSVkAEZhaWxlZCB0byBvcGVuIGxvZyAoZmlsZSAnJXMnLCBlcnJubyAlZCkARmFpbGVkIHRvIGNyZWF0ZSBhIGNhY2hlIG9uIGxvZyAoZmlsZSAnJXMnKQBMb2cgZmlsZW5hbWUgZXh0ZW5zaW9uIG51bWJlciBleGhhdXN0ZWQ6ICUwNmx1LiBQbGVhc2UgZml4IHRoaXMgYnkgYXJjaGl2aW5nIG9sZCBsb2dzIGFuZCB1cGRhdGluZyB0aGUgaW5kZXggZmlsZXMuAExvZyBmaWxlbmFtZSB0b28gbGFyZ2U6ICVzJXMgKCV6dSkuIFBsZWFzZSBmaXggdGhpcyBieSBhcmNoaXZpbmcgb2xkIGxvZ3MgYW5kIHVwZGF0aW5nIHRoZSBpbmRleCBmaWxlcy4ATmV4dCBsb2cgZXh0ZW5zaW9uOiAlbHUuIFJlbWFpbmluZyBsb2cgZmlsZW5hbWUgZXh0ZW5zaW9uczogJWx1LiBQbGVhc2UgY29uc2lkZXIgYXJjaGl2aW5nIHNvbWUgbG9ncy4AQ291bGQgbm90IG9wZW4gJXMgZm9yIGxvZ2dpbmcgKGVycm9yICVkKS4gVHVybmluZyBsb2dnaW5nIG9mZiBmb3IgdGhlIHdob2xlIGR1cmF0aW9uIG9mIHRoZSBNeVNRTCBzZXJ2ZXIgcHJvY2Vzcy4gVG8gdHVybiBpdCBvbiBhZ2FpbjogZml4IHRoZSBjYXVzZSwgc2h1dGRvd24gdGhlIE15U1FMIHNlcnZlciBhbmQgcmVzdGFydCBpdC4ATVlTUUxfQklOX0xPRzo6b3Blbl9pbmRleF9maWxlIGZhaWxlZCB0byBzeW5jIHRoZSBpbmRleCBmaWxlLgBFcnJvciByZWFkaW5nIEdUSURzIGZyb20gcmVsYXlsb2c6ICVkACVsdSBldmVudHMgcmVhZCBpbiByZWxheWxvZyBmaWxlICclcycgZm9yIHVwZGF0aW5nIFJldHJpZXZlZF9HdGlkX1NldCBhbmQvb3IgSU8gdGhyZWFkIHRyYW5zYWN0aW9uIHBhcnNlciBzdGF0ZS4ARXJyb3IgcmVhZGluZyBHVElEcyBmcm9tIGJpbmFyeSBsb2c6ICVkAFJlYWQgJWx1IGV2ZW50cyBmcm9tIGJpbmFyeSBsb2cgZmlsZSAnJXMnIHRvIGRldGVybWluZSB0aGUgR1RJRHMgcHVyZ2VkIGZyb20gYmluYXJ5IGxvZ3MuAE1ZU1FMX0JJTl9MT0c6Om9wZW4gZmFpbGVkIHRvIGdlbmVyYXRlIG5ldyBmaWxlIG5hbWUuAE1ZU1FMX0JJTl9MT0c6Om9wZW4gZmFpbGVkIHRvIHN5bmMgdGhlIGluZGV4IGZpbGUuAENvdWxkIG5vdCB1c2UgJXMgZm9yIGxvZ2dpbmcgKGVycm9yICVkKS4gVHVybmluZyBsb2dnaW5nIG9mZiBmb3IgdGhlIHdob2xlIGR1cmF0aW9uIG9mIHRoZSBNeVNRTCBzZXJ2ZXIgcHJvY2Vzcy4gVG8gdHVybiBpdCBvbiBhZ2FpbjogZml4IHRoZSBjYXVzZSwgc2h1dGRvd24gdGhlIE15U1FMIHNlcnZlciBhbmQgcmVzdGFydCBpdC4AV2hpbGUgcmVidWlsZGluZyBpbmRleCBmaWxlICVzOiBGYWlsZWQgdG8gY2xvc2UgdGhlIGluZGV4IGZpbGUuAFdoaWxlIHJlYnVpbGRpbmcgaW5kZXggZmlsZSAlczogRmFpbGVkIHRvIGRlbGV0ZSB0aGUgZXhpc3RpbmcgaW5kZXggZmlsZS4gSXQgY291bGQgYmUgdGhhdCBmaWxlIGlzIGJlaW5nIHVzZWQgYnkgc29tZSBvdGhlciBwcm9jZXNzLgBXaGlsZSByZWJ1aWxkaW5nIGluZGV4IGZpbGUgJXM6IEZhaWxlZCB0byByZW5hbWUgdGhlIG5ldyBpbmRleCBmaWxlIHRvIHRoZSBleGlzdGluZyBpbmRleCBmaWxlLgBBZnRlciByZWJ1aWxkaW5nIHRoZSBpbmRleCBmaWxlICVzOiBGYWlsZWQgdG8gb3BlbiB0aGUgaW5kZXggZmlsZS4ATVlTUUxfQklOX0xPRzo6YWRkX2xvZ190b19pbmRleCBmYWlsZWQgdG8gYXBwZW5kIGxvZyBmaWxlIG5hbWU6ICVzLCB0byBjcmFzaCBzYWZlIGluZGV4IGZpbGUuAEZhaWxlZCB0byBsb2NhdGUgb2xkIGJpbmxvZyBvciByZWxheSBsb2cgZmlsZXMARmFpbGVkIHRvIGRlbGV0ZSBmaWxlICclcycATVlTUUxfQklOX0xPRzo6c2V0X2NyYXNoX3NhZmVfaW5kZXhfZmlsZV9uYW1lIGZhaWxlZCB0byBzZXQgZmlsZSBuYW1lLgBNWVNRTF9CSU5fTE9HOjpvcGVuX2NyYXNoX3NhZmVfaW5kZXhfZmlsZSBmYWlsZWQgdG8gb3BlbiB0ZW1wb3JhcnkgaW5kZXggZmlsZS4AbmV4dCBsb2cgZXJyb3I6ICVkICBvZmZzZXQ6ICVzICBsb2c6ICVzIGluY2x1ZGVkOiAlZAAlcyBmYWlsZWQgdG8gb3BlbiB0aGUgY3Jhc2ggc2FmZSBpbmRleCBmaWxlLgAlcyBmYWlsZWQgdG8gY29weSBpbmRleCBmaWxlIHRvIGNyYXNoIHNhZmUgaW5kZXggZmlsZS4AJXMgZmFpbGVkIHRvIGNsb3NlIHRoZSBjcmFzaCBzYWZlIGluZGV4IGZpbGUuACVzIGZhaWxlZCB0byBtb3ZlIGNyYXNoIHNhZmUgaW5kZXggZmlsZSB0byBpbmRleCBmaWxlLgBNWVNRTF9CSU5fTE9HOjpwdXJnZV9sb2dzIHdhcyBjYWxsZWQgd2l0aCBmaWxlICVzIG5vdCBsaXN0ZWQgaW4gdGhlIGluZGV4LgBNWVNRTF9CSU5fTE9HOjpwdXJnZV9sb2dzIGZhaWxlZCB0byBzeW5jIHRoZSBpbmRleCBmaWxlLgBNWVNRTF9CSU5fTE9HOjpwdXJnZV9sb2dzIGZhaWxlZCB0byBjb3B5ICVzIHRvIHJlZ2lzdGVyIGZpbGUuAE1ZU1FMX0JJTl9MT0c6OnB1cmdlX2xvZ3MgZmFpbGVkIHRvIGZsdXNoIHJlZ2lzdGVyIGZpbGUuAE1ZU1FMX0JJTl9MT0c6OnB1cmdlX2xvZ3MgZmFpbGVkIHRvIHVwZGF0ZSB0aGUgaW5kZXggZmlsZQBNWVNRTF9CSU5fTE9HOjpwdXJnZV9sb2dzIGZhaWxlZCB0byBwcm9jZXNzIHJlZ2lzdGVyZWQgZmlsZXMgdGhhdCB3b3VsZCBiZSBwdXJnZWQuAE1ZU1FMX0JJTl9MT0c6OnNldF9wdXJnZV9pbmRleF9maWxlX25hbWUgZmFpbGVkIHRvIHNldCBmaWxlIG5hbWUuAE1ZU1FMX0JJTl9MT0c6Om9wZW5fcHVyZ2VfaW5kZXhfZmlsZSBmYWlsZWQgdG8gb3BlbiByZWdpc3RlciBmaWxlLgBNWVNRTF9CSU5fTE9HOjpwdXJnZV9pbmRleF9lbnRyeSBmYWlsZWQgdG8gcmVpbml0IHJlZ2lzdGVyIGZpbGUgZm9yIHJlYWQATVlTUUxfQklOX0xPRzo6cHVyZ2VfaW5kZXhfZW50cnkgZXJyb3IgJWQgcmVhZGluZyBmcm9tIHJlZ2lzdGVyIGZpbGUuAEZhaWxlZCB0byBleGVjdXRlIG15c3FsX2ZpbGVfc3RhdCBvbiBmaWxlICclcycARmFpbGVkIHRvIGRlbGV0ZSBsb2cgZmlsZSAnJXMnOyBjb25zaWRlciBleGFtaW5pbmcgY29ycmVzcG9uZGVuY2Ugb2YgeW91ciBiaW5sb2cgaW5kZXggZmlsZSB0byB0aGUgYWN0dWFsIGJpbmxvZyBmaWxlcwBGYWlsZWQgdG8gZGVsZXRlIGZpbGUgJyVzJyBhbmQgcmVhZCB0aGUgYmlubG9nIGluZGV4IGZpbGUARmFpbGVkIHRvIGRlbGV0ZSBsb2cgZmlsZSAnJXMnACVzIEFuIGluY2lkZW50IGV2ZW50IGhhcyBiZWVuIHdyaXR0ZW4gdG8gdGhlIGJpbmFyeSBsb2cgd2hpY2ggd2lsbCBzdG9wIHRoZSByZXBsaWNhcy4AZmluZF9sb2dfcG9zKCkgZmFpbGVkIChlcnJvcjogJWQpAFJlY292ZXJpbmcgYWZ0ZXIgYSBjcmFzaCB1c2luZyAlcwBGYWlsZWQgdG8gb3BlbiB0aGUgY3Jhc2hlZCBiaW5sb2cgZmlsZSB3aGVuIHNvdXJjZSBzZXJ2ZXIgaXMgcmVjb3ZlcmluZyBpdC4ARmFpbGVkIHRvIHRyaW0gdGhlIGNyYXNoZWQgYmlubG9nIGZpbGUgd2hlbiBzb3VyY2Ugc2VydmVyIGlzIHJlY292ZXJpbmcgaXQuAENyYXNoZWQgYmlubG9nIGZpbGUgJXMgc2l6ZSBpcyAlbGx1LCBidXQgcmVjb3ZlcmVkIHVwIHRvICVsbHUuIEJpbmxvZyB0cmltbWVkIHRvICVsbHUgYnl0ZXMuAEZhaWxlZCB0byBjbGVhciBMT0dfRVZFTlRfQklOTE9HX0lOX1VTRV9GIGZvciB0aGUgY3Jhc2hlZCBiaW5sb2cgZmlsZSB3aGVuIHNvdXJjZSBzZXJ2ZXIgaXMgcmVjb3ZlcmluZyBpdC4ARmFpbGVkIHRvIHJ1biAnYWZ0ZXJfc3luYycgaG9va3MAJXMgSGVuY2UgdHVybmluZyBsb2dnaW5nIG9mZiBmb3IgdGhlIHdob2xlIGR1cmF0aW9uIG9mIHRoZSBNeVNRTCBzZXJ2ZXIgcHJvY2Vzcy4gVG8gdHVybiBpdCBvbiBhZ2FpbjogZml4IHRoZSBjYXVzZSwgc2h1dGRvd24gdGhlIE15U1FMIHNlcnZlciBhbmQgcmVzdGFydCBpdC4ARmFpbGVkIHRvIHJ1biAnYWZ0ZXJfZmx1c2gnIGhvb2tzAENyYXNoIHJlY292ZXJ5IGZhaWxlZC4gRWl0aGVyIGNvcnJlY3QgdGhlIHByb2JsZW0gKGlmIGl0J3MsIGZvciBleGFtcGxlLCBvdXQgb2YgbWVtb3J5IGVycm9yKSBhbmQgcmVzdGFydCwgb3IgZGVsZXRlIChvciByZW5hbWUpIGJpbmFyeSBsb2cgYW5kIHN0YXJ0IG15c3FsZCB3aXRoIC0tdGMtaGV1cmlzdGljLXJlY292ZXI9e2NvbW1pdHxyb2xsYmFja30AVGhlIGZvbGxvd2luZyB3YXJuaW5nIHdhcyBzdXBwcmVzc2VkICVkIHRpbWVzIGR1cmluZyB0aGUgbGFzdCAlZCBzZWNvbmRzIGluIHRoZSBlcnJvciBsb2cATkRCOiAlcwBOREIgJXM6ICVzAE5EQjogVW5hYmxlIHRvIHB1cmdlICVzLiVzIEZpbGU9JXMgKGZhaWxlZCB0byBzZXR1cCB0aGQpAFVua25vd24gY29sbGF0aW9uICMlbHUuAHN5bnRheCBlcnJvciBpbiBpbm5vZGJfbG9nX2dyb3VwX2hvbWVfZGlyAHN5bnRheCBlcnJvciBpbiBpbm5vZGJfdW5kb19kaXJlY3RvcnkASW5ub0RCOiBpbm5vZGJfYnVmZmVyX3Bvb2xfZmlsZW5hbWUgY2Fubm90IGhhdmUgY29sb24gKDopIGluIHRoZSBmaWxlIG5hbWUuAElubm9EQjogSW52YWxpZCBwYWdlIHNpemU9JWx1LgBJbm5vREI6IGlubm9kYl9tYXhfZGlydHlfcGFnZXNfcGN0X2x3bSBjYW5ub3QgYmUgc2V0IGhpZ2hlciB0aGFuIGlubm9kYl9tYXhfZGlydHlfcGFnZXNfcGN0LiBTZXR0aW5nIGlubm9kYl9tYXhfZGlydHlfcGFnZXNfcGN0X2x3bSB0byAlbGYASW5ub0RCOiBpbm5vZGJfaW9fY2FwYWNpdHkgY2Fubm90IGJlIHNldCBoaWdoZXIgdGhhbiBpbm5vZGJfaW9fY2FwYWNpdHlfbWF4LiBTZXR0aW5nIGlubm9kYl9pb19jYXBhY2l0eSB0byAlbHUAJXMgYW5kICVzIGZpbGUgbmFtZXMgc2VlbSB0byBiZSB0aGUgc2FtZS4AVHJhbnNhY3Rpb24gbm90IHJlZ2lzdGVyZWQgZm9yIE15U1FMIDJQQywgYnV0IHRyYW5zYWN0aW9uIGlzIGFjdGl2ZQBNeVNRTCBpcyBjbG9zaW5nIGEgY29ubmVjdGlvbiB0aGF0IGhhcyBhbiBhY3RpdmUgSW5ub0RCIHRyYW5zYWN0aW9uLiAlbGx1IHJvdyBtb2RpZmljYXRpb25zIHdpbGwgcm9sbCBiYWNrLgBJbm5vREI6IGZhaWwgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBpbmRleCB0cmFuc2xhdGlvbiB0YWJsZS4gTnVtYmVyIG9mIEluZGV4OiVsdSwgYXJyYXkgc2l6ZTolbHUAQ2Fubm90IGZpbmQgaW5kZXggJXMgaW4gSW5ub0RCIGluZGV4IGRpY3Rpb25hcnkuAEZvdW5kIGluZGV4ICVzIHdob3NlIGNvbHVtbiBpbmZvIGRvZXMgbm90IG1hdGNoIHRoYXQgb2YgTXlTUUwuAEZhaWxlZCB0byBvcGVuIHRhYmxlICVzLgBCdWlsZCBJbm5vREIgaW5kZXggdHJhbnNsYXRpb24gdGFibGUgZm9yIFRhYmxlICVzIGZhaWxlZABUYWJsZSAlcyBoYXMgYSBwcmltYXJ5IGtleSBpbiBJbm5vREIgZGF0YSBkaWN0aW9uYXJ5LCBidXQgbm90IGluIE15U1FMIQBUYWJsZSAlcyBoYXMgbm8gcHJpbWFyeSBrZXkgaW4gSW5ub0RCIGRhdGEgZGljdGlvbmFyeSwgYnV0IGhhcyBvbmUgaW4gTXlTUUwhIElmIHlvdSBjcmVhdGVkIHRoZSB0YWJsZSB3aXRoIGEgTXlTUUwgdmVyc2lvbiA8IDMuMjMuNTQgYW5kIGRpZCBub3QgZGVmaW5lIGEgcHJpbWFyeSBrZXksIGJ1dCBkZWZpbmVkIGEgdW5pcXVlIGtleSB3aXRoIGFsbCBub24tTlVMTCBjb2x1bW5zLCB0aGVuIE15U1FMIGludGVybmFsbHkgdHJlYXRzIHRoYXQga2V5IGFzIHRoZSBwcmltYXJ5IGtleS4gWW91IGNhbiBmaXggdGhpcyBlcnJvciBieSBkdW1wICsgRFJPUCArIENSRUFURSArIHJlaW1wb3J0IG9mIHRoZSB0YWJsZS4AVGFibGUgJXMga2V5X3VzZWRfb25fc2NhbiBpcyAlbHUgZXZlbiB0aG91Z2ggdGhlcmUgaXMgbm8gcHJpbWFyeSBrZXkgaW5zaWRlIElubm9EQi4AUGFydGl0aW9uIHRhYmxlICVzIG9wZW5lZCBhZnRlciBjb252ZXJ0aW5nIHRvIGxvd2VyIGNhc2UuIFRoZSB0YWJsZSBtYXkgaGF2ZSBiZWVuIG1vdmVkIGZyb20gYSBjYXNlLWluc2Vuc2l0aXZlIGZpbGUgc3lzdGVtLiBQbGVhc2UgcmVjcmVhdGUgdGhlIHRhYmxlIGluIHRoZSBjdXJyZW50IGZpbGUgc3lzdGVtLgBDYW5ub3QgcmVwbGFjZSBlcnJvciBtZXNzYWdlICglcywlcywlcykgIiVzIiB3aXRoICIlcyI7IHdyb25nIG51bWJlciBvciB0eXBlIG9mICUlIHN1YnNpdHV0aW9ucy4AVGFibGUgZm9yIGVycm9yIG1lc3NhZ2UgcmVwbGFjZW1lbnRzIGNvdWxkIG5vdCBiZSBmb3VuZCBvciByZWFkLCBvciBvbmUgb3IgbW9yZSByZXBsYWNlbWVudHMgY291bGQgbm90IGJlIGFwcGxpZWQuACVzOiAlcwBUYWJsZSAnJS0xOTJzJzogRGVsZXRlIGZyb20gcGFydCAlZCBmYWlsZWQgd2l0aCBlcnJvciAlZC4gQnV0IGl0IHdhcyBhbHJlYWR5IGluc2VydGVkIGludG8gcGFydCAlZCwgd2hlbiBtb3ZpbmcgdGhlIG1pc3BsYWNlZCByb3chIFBsZWFzZSBtYW51YWxseSBmaXggdGhlIGR1cGxpY2F0ZSByb3c6ICVzAENvbW1hbmQgJyVzJyBjYW5ub3QgYmUgYWJvcnRlZC4gVGhlIHRyaWdnZXIgZXJyb3Igd2FzICglZCkgWyVzXTogJXMARXZlbnQgJyVzJyBjYW5ub3QgYmUgYWJvcnRlZC4gVGhlIHRyaWdnZXIgZXJyb3Igd2FzICglZCkgWyVzXTogJXMAJXMuIFRoZSB0cmlnZ2VyIGVycm9yIHdhcyAoJWQpIFslc106ICVzAFJlcGxpY2EgU1FMOiBDb25maWd1cmF0aW9uIHdpdGggbnVtYmVyIG9mIHJlcGxpY2F0aW9uIHNvdXJjZXMgPSAldScgaXMgbm90IHN1cHBvcnRlZCB3aGVuIGFwcGx5aW5nIHRvIE5kYgBSZXBsaWNhIFNRTDogQ29uZmlndXJhdGlvbiAncmVwbGljYV9wYXJhbGxlbF93b3JrZXJzID0gJWx1JyBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gYXBwbHlpbmcgdG8gTmRiAE5EQiAlczogZGlzdHJpYnV0aW5nICVzIGVycjogJXUAU3RvcmluZyBNeVNRTCB1c2VyIG5hbWUgb3IgcGFzc3dvcmQgaW5mb3JtYXRpb24gaW4gdGhlIGNvbm5lY3Rpb24gbWV0YWRhdGEgcmVwb3NpdG9yeSBpcyBub3Qgc2VjdXJlIGFuZCBpcyB0aGVyZWZvcmUgbm90IHJlY29tbWVuZGVkLiBQbGVhc2UgY29uc2lkZXIgdXNpbmcgdGhlIFVTRVIgYW5kIFBBU1NXT1JEIGNvbm5lY3Rpb24gb3B0aW9ucyBmb3IgU1RBUlQgUkVQTElDQTsgc2VlIHRoZSAnU1RBUlQgUkVQTElDQSBTeW50YXgnIGluIHRoZSBNeVNRTCBNYW51YWwgZm9yIG1vcmUgaW5mb3JtYXRpb24uAEZMVVNIIFJFTEFZIExPR1MgY2Fubm90IGJlIHBlcmZvcm1lZCBvbiBjaGFubmVsICclLS4xOTJzJy4AUmVwbGljYSBjaGFubmVsICclcycgZG9lcyBub3QgZXhpc3QuAENhbid0IGZpbmQgc3ltYm9sICclLS4xMjhzJyBpbiBsaWJyYXJ5LgBDYW4ndCBvcGVuIHNoYXJlZCBsaWJyYXJ5ICclLS4xOTJzJyAoZXJybm86ICVkICUtLjE5MnMpLgBUaHJlYWQgcHJpb3JpdHkgYXR0cmlidXRlIHNldHRpbmcgaW4gUmVzb3VyY2UgR3JvdXAgU1FMIHNoYWxsIGJlIGlnbm9yZWQgZHVlIHRvIHVuc3VwcG9ydGVkIHBsYXRmb3JtIG9yIGluc3VmZmljaWVudCBwcml2aWxlZ2UuAE9wdGlvbiBiaW5sb2dfY2FjaGVfc2l6ZSAoJWx1KSBpcyBncmVhdGVyIHRoYW4gbWF4X2JpbmxvZ19jYWNoZV9zaXplICglbHUpOyBzZXR0aW5nIGJpbmxvZ19jYWNoZV9zaXplIGVxdWFsIHRvIG1heF9iaW5sb2dfY2FjaGVfc2l6ZS4AT3B0aW9uIGJpbmxvZ19zdG10X2NhY2hlX3NpemUgKCVsdSkgaXMgZ3JlYXRlciB0aGFuIG1heF9iaW5sb2dfc3RtdF9jYWNoZV9zaXplICglbHUpOyBzZXR0aW5nIGJpbmxvZ19zdG10X2NhY2hlX3NpemUgZXF1YWwgdG8gbWF4X2JpbmxvZ19zdG10X2NhY2hlX3NpemUuAENhbid0IGdlbmVyYXRlIGEgdW5pcXVlIGxvZy1maWxlbmFtZSAlLS4yMDBzLigxLTk5OSkuAEVycm9yIHJlYWRpbmcgZmlsZSAnJS0uMjAwcycgKGVycm5vOiAlZCAtICVzKQBFcnJvciB3cml0aW5nIGZpbGUgJyUtLjIwMHMnIChlcnJubzogJWQgLSAlcykAJXMgU3RhdGVtZW50OiAlcwAlczogRm9yY2luZyBjbG9zZSBvZiB0aHJlYWQgJWxkICB1c2VyOiAnJS0uNDhzJy4AJXM6IFNodXRkb3duIGNvbXBsZXRlIChteXNxbGQgJXMpICAlcy4AQ2Fubm90IGhhdmUgc2FtZSBiYXNlIG5hbWUgJyVzJyBmb3IgYm90aCBiaW5hcnkgYW5kIHJlbGF5IGxvZ3MuIFBsZWFzZSBjaGVjayAlcyAoZGVmYXVsdCAnJXMnIGlmIC0tbG9nLWJpbiBvcHRpb24gaXMgbm90IHVzZWQsIGRlZmF1bHQgJyVzJyBpZiAtLWxvZy1iaW4gb3B0aW9uIGlzIHVzZWQgd2l0aG91dCBhcmd1bWVudCkgYW5kICVzIChkZWZhdWx0ICclcycpIG9wdGlvbnMgdG8gZW5zdXJlIHRoZXkgZG8gbm90IGNvbmZsaWN0LgBHVElEX01PREUgPSBPTiByZXF1aXJlcyBFTkZPUkNFX0dUSURfQ09OU0lTVEVOQ1kgPSBPTi4AWW91IGhhdmUgbm90IHByb3ZpZGVkIGEgbWFuZGF0b3J5IHNlcnZlci1pZC4gU2VydmVycyBpbiBhIHJlcGxpY2F0aW9uIHRvcG9sb2d5IG11c3QgaGF2ZSB1bmlxdWUgc2VydmVyLWlkcy4gUGxlYXNlIHJlZmVyIHRvIHRoZSBwcm9wZXIgc2VydmVyIHN0YXJ0LXVwIHBhcmFtZXRlcnMgZG9jdW1lbnRhdGlvbi4AQWJvcnRlZCBjb25uZWN0aW9uICV1IHRvIGRiOiAnJS0uMTkycycgdXNlcjogJyUtLjQ4cycgaG9zdDogJyUtLjI1NXMnICglLS42NHMpLgAnTk9fWkVST19EQVRFJywgJ05PX1pFUk9fSU5fREFURScgYW5kICdFUlJPUl9GT1JfRElWSVNJT05fQllfWkVSTycgc3FsIG1vZGVzIHNob3VsZCBiZSB1c2VkIHdpdGggc3RyaWN0IG1vZGUuIFRoZXkgd2lsbCBiZSBtZXJnZWQgd2l0aCBzdHJpY3QgbW9kZSBpbiBhIGZ1dHVyZSByZWxlYXNlLgBAQEdMT0JBTC5HVElEX1BVUkdFRCB3YXMgY2hhbmdlZCBmcm9tICclcycgdG8gJyVzJy4AQEBHTE9CQUwuR1RJRF9FWEVDVVRFRCB3YXMgY2hhbmdlZCBmcm9tICclcycgdG8gJyVzJy4AJyVzJyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gUGxlYXNlIHVzZSAlcyBpbnN0ZWFkLgBUcmlnZ2VycyBmb3IgdGFibGUgYCUtLjY0c2AuYCUtLjY0c2AgaGF2ZSBubyBjcmVhdGlvbiBjb250ZXh0ACclLS4xOTJzJyBoYXMgYW4gb2xkIGZvcm1hdCwgeW91IHNob3VsZCByZS1jcmVhdGUgdGhlICclcycgb2JqZWN0KHMpAFZpZXcgYCUtLjY0c2AuYCUtLjY0c2AgaGFzIG5vIGNyZWF0aW9uIGNvbnRleHQATG9uZyBkYXRhYmFzZSBuYW1lIGFuZCBpZGVudGlmaWVyIGZvciBvYmplY3QgcmVzdWx0ZWQgaW4gYSBwYXRoIGxlbmd0aCB0b28gbG9uZyBmb3IgdGFibGUgJyVzJy4gUGxlYXNlIGNoZWNrIHRoZSBwYXRoIGxpbWl0IGZvciB5b3VyIE9TLgBUYWJsZSB1cGdyYWRlIHJlcXVpcmVkLiBQbGVhc2UgZG8gIlJFUEFJUiBUQUJMRSBgJS0uNjRzYCIgb3IgZHVtcC9yZWxvYWQgdG8gZml4IGl0IQBHb3QgZXJyb3IgJWQgLSAnJS0uMTkycycgZnJvbSBzdG9yYWdlIGVuZ2luZS4AQWNjZXNzIGRlbmllZCBmb3IgdXNlciAnJS0uNDhzJ0AnJS0uNjRzJwBBY2Nlc3MgZGVuaWVkIGZvciB1c2VyICclLS40OHMnQCclLS42NHMnICh1c2luZyBwYXNzd29yZDogJXMpAEFjY2VzcyBkZW5pZWQgZm9yIHVzZXIgJyUtLjQ4cydAJyUtLjY0cycuIEFjY291bnQgaXMgbG9ja2VkLgBZb3VyIHBhc3N3b3JkIGhhcyBleHBpcmVkLiBUbyBsb2cgaW4geW91IG11c3QgY2hhbmdlIGl0IHVzaW5nIGEgY2xpZW50IHRoYXQgc3VwcG9ydHMgZXhwaXJlZCBwYXNzd29yZHMuAFN0b3JhZ2UgZW5naW5lICclcycgZG9lcyBub3Qgc3VwcG9ydCBzeXN0ZW0gdGFibGVzLiBbJXMuJXNdLgBTb3J0IGFib3J0ZWQAJXM6IHJlYWR5IGZvciBjb25uZWN0aW9ucy4gVmVyc2lvbjogJyVzJyAgc29ja2V0OiAnJXMnICBwb3J0OiAlZCAgJXMuAFVua25vd24gbG9jYWxlOiAnJS0uNjRzJy4AVW5rbm93biBjb2xsYXRpb246ICclLS42NHMnLgBPdXQgb2YgbWVtb3J5OyBjaGVjayBpZiBteXNxbGQgb3Igc29tZSBvdGhlciBwcm9jZXNzIHVzZXMgYWxsIGF2YWlsYWJsZSBtZW1vcnk7IGlmIG5vdCwgeW91IG1heSBoYXZlIHRvIHVzZSAndWxpbWl0JyB0byBhbGxvdyBteXNxbGQgdG8gdXNlIG1vcmUgbWVtb3J5IG9yIHlvdSBjYW4gYWRkIG1vcmUgc3dhcCBzcGFjZQBPdXQgb2YgbWVtb3J5OyByZXN0YXJ0IHNlcnZlciBhbmQgdHJ5IGFnYWluIChuZWVkZWQgJWQgYnl0ZXMpAENPTExBVElPTiAnJXMnIGlzIG5vdCB2YWxpZCBmb3IgQ0hBUkFDVEVSIFNFVCAnJXMnAEZhaWxlZCB0byBzZXQgJXMgYXQgb3IgYXJvdW5kICIlcyIgLS0gc2VydmljZSBpcyB2YWxpZCwgYnV0IGNhbiBub3QgYmUgaW5pdGlhbGl6ZWQ7IHBsZWFzZSBjaGVjayBpdHMgY29uZmlndXJhdGlvbiBhbmQgbWFrZSBzdXJlIGl0IGNhbiByZWFkIGl0cyBpbnB1dChzKSBhbmQgd3JpdGUgdG8gaXRzIG91dHB1dChzKS4AR2VuZXJhdGluZyBhIG5ldyBVVUlEOiAlcy4ARmFpbGVkIHRvIGdldCBhYnNvbHV0ZSBwYXRoIG9mIHByb2dyYW0gZXhlY3V0YWJsZSAlcwBGYWlsZWQgdG8gYm9vdHN0cmFwIHBlcmZvcm1hbmNlIHNjaGVtYSBjb21wb25lbnRzIGluZnJhc3RydWN0dXJlLgBGYWlsZWQgdG8gZGVpbml0IHBlcmZvcm1hbmNlIHNjaGVtYSBjb21wb25lbnRzIGluZnJhc3RydWN0dXJlLgBDb3VsZCBub3Qgb3BlbiBkdXBsaWNhdGUgZmQgZm9yICVzOiAlcy4AU3lzdGVtIHZpZXdzIGluaXRpYWxpemF0aW9uIGZhaWxlZC4AUmVzb3VyY2UgZ3JvdXAgcG9zdCBpbml0aWFsaXphdGlvbiBmYWlsZWQuAFJlc291cmNlIEdyb3VwIHN1YnN5c3RlbSBpbml0aWFsaXphdGlvbiBmYWlsZWQuAEZhaWxlZCB0byBzdGFydCBteXNxbGQgZGFlbW9uLiBDaGVjayBteXNxbGQgZXJyb3IgbG9nLgBDYW5ub3QgY2hhbmdlIHRvIHJvb3QgZGlyZWN0b3J5OiAlcy4ARmFpbGVkIHRvIGJvb3RzdHJhcCBwZXJzaXN0ZW50IHByaXZpbGVnZXMuAEJhc2VkaXIgc2V0IHRvICVzLgBDb3VsZCBub3QgYWRkIHdpbGQgZG8gdGFibGUgcnVsZSAnJXMnIQBDb3VsZCBub3QgYWRkIHdpbGQgaWdub3JlIHRhYmxlIHJ1bGUgJyVzJyEAVGhlIHByaXZpbGVnZSBzeXN0ZW0gZmFpbGVkIHRvIGluaXRpYWxpemUgY29ycmVjdGx5LiBGb3IgY29tcGxldGUgaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byB1cGdyYWRlIE15U1FMIHRvIGEgbmV3IHZlcnNpb24gcGxlYXNlIHNlZSB0aGUgJ1VwZ3JhZGluZyBNeVNRTCcgc2VjdGlvbiBmcm9tIHRoZSBNeVNRTCBtYW51YWwuAENhbm5vdCBzZXQgc2VydmljZXMgIiVzIiByZXF1ZXN0ZWQgaW4gLS1sb2ctZXJyb3Itc2VydmljZXMsIHVzaW5nIGRlZmF1bHRzLgBQZXJmb3JtYW5jZSBzY2hlbWEgdGFibGVzIGluaXRpYWxpemF0aW9uIGZhaWxlZC4AVGhlIHRyYW5zYWN0aW9uX3dyaXRlX3NldF9leHRyYWN0aW9uIG11c3QgYmUgc2V0IHRvICVzIHdoZW4gYmlubG9nX3RyYW5zYWN0aW9uX2RlcGVuZGVuY3lfdHJhY2tpbmcgaXMgJXMuAEludmFsaWQgcmVwbGljYXRpb24gdGltZXN0YW1wczogb3JpZ2luYWwgY29tbWl0IHRpbWVzdGFtcCBpcyBtb3JlIHJlY2VudCB0aGFuIHRoZSBpbW1lZGlhdGUgY29tbWl0IHRpbWVzdGFtcC4gVGhpcyBtYXkgYmUgYW4gaXNzdWUgaWYgZGVsYXllZCByZXBsaWNhdGlvbiBpcyBhY3RpdmUuIE1ha2Ugc3VyZSB0aGF0IHNlcnZlcnMgaGF2ZSB0aGVpciBjbG9ja3Mgc2V0IHRvIHRoZSBjb3JyZWN0IHRpbWUuIE5vIGZ1cnRoZXIgbWVzc2FnZSB3aWxsIGJlIGVtaXR0ZWQgdW50aWwgYWZ0ZXIgdGltZXN0YW1wcyBiZWNvbWUgdmFsaWQgYWdhaW4uAFRoZSByZXBsaWNhdGlvbiB0aW1lc3RhbXBzIGhhdmUgcmV0dXJuZWQgdG8gbm9ybWFsIHZhbHVlcy4AJXMuAEZhaWxlZCB0byB3cml0ZSBhbiBpbmNpZGVudCBldmVudCBpbnRvIHN0bXRfY2FjaGUuAFJlbGF5bG9nIGZpbGUgJXMgc2l6ZSB3YXMgJWxsdSwgYnV0IHdhcyB0cnVuY2F0ZWQgYXQgJWxsdS4AVW5hYmxlIHRvIHB1cmdlIHJlbGF5IGxvZyBmaWxlcy4gJXM6JXMuAFJlcGxpY2E6IGZhaWxlZCBpbiBjcmVhdGluZyBmaWx0ZXIgZm9yIGNoYW5uZWwgJyVzJy4AUmVwbGljYTogZmFpbGVkIGluIGNvcHlpbmcgdGhlIGdsb2JhbCBmaWx0ZXJzIHRvIGl0cyBvd24gcGVyLWNoYW5uZWwgZmlsdGVycyBvbiBjb25maWd1cmF0aW9uIGZvciBjaGFubmVsICclcycuAFRoZXJlIGFyZSBwZXItY2hhbm5lbCByZXBsaWNhdGlvbiBmaWx0ZXIocykgY29uZmlndXJlZCBmb3IgY2hhbm5lbCAnJS4xOTJzJyB3aGljaCBkb2VzIG5vdCBleGlzdC4gVGhlIGZpbHRlcihzKSBoYXZlIGJlZW4gZGlzY2FyZGVkLgBUaGUgc3lzdGVtIHRhYmxlIG15c3FsLmdsb2JhbF9ncmFudHMgaXMgbWlzc2luZy4gUGxlYXNlIHBlcmZvcm0gdGhlIE15U1FMIHVwZ3JhZGUgcHJvY2VkdXJlLgBBQ0wgdGFibGUgbXlzcWwuJS4qcyBtaXNzaW5nLiBTb21lIG9wZXJhdGlvbnMgbWF5IGZhaWwuAENhbid0IHNldCBtYW5kYXRvcnlfcm9sZSAlc0AlczogQW5vbnltb3VzIGF1dGhvcml6YXRpb24gSURzIGFyZSBub3QgYWxsb3dlZCBhcyByb2xlcy4AQ2FuJ3Qgc2V0IG1hbmRhdG9yeV9yb2xlOiBUaGVyZSdzIG5vIHN1Y2ggYXV0aG9yaXphdGlvbiBJRCAlc0Alcy4AVGFibGUgJyUtMTkycycgZmFpbGVkIHRvIG1vdmUvaW5zZXJ0IGEgcm93IGZyb20gcGFydCAlZCBpbnRvIHBhcnQgJWQ6ICVzLgBTa2lwcGVkIHVwZGF0aW5nIHJlc291cmNlIGdyb3VwIG1ldGFkYXRhIGluIElubm9EQiByZWFkIG9ubHkgbW9kZS4ARmFpbGVkIHRvIHBlcnNpc3QgcmVzb3VyY2UgZ3JvdXAgJXMgdG8gRGF0YSBEaWN0aW9uYXJ5LgBGYWlsZWQgdG8gZGVzZXJpYWxpemUgcmVzb3VyY2UgZ3JvdXAgJXMuAFVwZGF0ZSBvZiByZXNvdXJjZSBncm91cCAlcyBmYWlsZWQuAFZhbGlkYXRpb24gb2YgcmVzb3VyY2UgZ3JvdXAgJXMgZmFpbGVkLiBSZXNvdXJjZSBncm91cCBpcyBkaXNhYmxlZC4AVW5hYmxlIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgUmVzb3VyY2UgR3JvdXAgJXMuAEZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIHJlc291cmNlIGdyb3VwIGhhc2guAEZhaWxlZCB0byBhZGQgcmVzb3VyY2UgZ3JvdXAgJXMgdG8gcmVzb3VyY2UgZ3JvdXAgbWFwLgBSZXNvdXJjZSBncm91cCBmZWF0dXJlIGlzIGRpc2FibGVkLiAoU2VydmVyIGlzIGNvbXBpbGVkIHdpdGggRElTQUJMRV9QU0lfVEhSRUFEKS4AVW5hYmxlIHRvIGFwcGx5IHJlc291cmNlIGdyb3VwIGNvbnRyb2xsZXIgJXMuAFVuYWJsZSB0byBhY3F1aXJlIGxvY2sgb24gdGhlIHJlc291cmNlIGdyb3VwICVzLiBIaW50IHRvIHN3aXRjaCByZXNvdXJjZSBncm91cCBzaGFsbCBiZSBpZ25vcmVkLgBQRlMgJXMgbm90aWZpY2F0aW9uIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbiBmYWlsZWQuAFVuYWJsZSB0byBiaW5kIHRocmVhZCBpZCAlbGx1IHRvIGNwdSBpZCAldSAoZXJyb3IgY29kZSAlZCAtICUtLjE5MnMpLgBVbmFibGUgdG8gYmluZCB0aHJlYWQgaWQgJWxsdSB0byBjcHUgaWRzIChlcnJvciBjb2RlICVkIC0gJS0uMTkycykuAFVuYmluZCB0aHJlYWQgaWQgJWxsdSBmYWlsZWQuIChlcnJvciBjb2RlICVkIC0gJS0uMTkycykuAFNldHRpbmcgdGhyZWFkIHByaW9yaXR5ICVkIHRvIHRocmVhZCBpZCAlbGx1IGZhaWxlZC4gKGVycm9yIGNvZGUgJWQgLSAlLS4xOTJzKS4AVW5hYmxlIHRvIGRldGVybWluZSBDQVBfU1lTX05JQ0UgY2FwYWJpbGl0eS4AJXMgZmFpbGVkOiBGYWlsZWQgdG8gZ2V0IGhhbmRsZSBmb3IgdGhyZWFkICVsbHUuAFJldHJpZXZhbCBvZiB0aHJlYWQgcHJpb3JpdHkgdW5zdXBwb3J0ZWQgb24gJXMuAFVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIG51bWJlciBvZiBDUFVzLgBSZXNvdXJjZSBncm91cCBmZWF0dXJlIHNoYWxsIG5vdCBiZSBhdmFpbGFibGUuIEluY29tcGF0aWJsZSB0aHJlYWQgaGFuZGxpbmcgb3B0aW9uLgBJbnZhbGlkIHRocmVhZCBwcmlvcml0eSAlZCBmb3IgYSAlcyByZXNvdXJjZSBncm91cC4gQWxsb3dlZCByYW5nZSBpcyBbJWQsICVkXS4AYmluZF90b19jcHUgZmFpbGVkOiBwcm9jZXNzb3JfYmluZCBmb3IgY3B1aWQgJXUgZmFpbGVkIChlcnJvciBjb2RlICVkIC0gJS0uMTkycykuAGJpbmRfdG9fY3B1IGZhaWxlZDogcHJvY2Vzc29yX2JpbmQgZm9yIHRocmVhZCAlJWxseCB3aXRoIGNwdSBpZCAldSAoZXJyb3IgY29kZSAlZCAtICUtLjE5MnMpLgAlcyBmYWlsZWQ6IHByb2Nlc3Nvcl9hZmZpbml0eSBmYWlsZWQgKGVycm9yIGNvZGUgJWQgLSAlLS4xOTJzKS4ARXJyb3IgaW4gcmVuYW1pbmcgbXlzcWxfaW5kZXhfc3RhdHMuaWJkLgBFcnJvciBpbiBvcGVuaW5nIGRhdGEgZGlyZWN0b3J5ICVzLgBFcnJvciBpbiBmZXRjaGluZyBsaXN0IG9mIHRhYmxlc3BhY2VzLgBFcnJvciBpbiBhY3F1aXJpbmcgVGFibGVzcGFjZSBmb3IgU0RJIGluc2VydGlvbiAlcy4ARXJyb3IgaW4gcmVzb2x2aW5nIEVuZ2luZSBuYW1lIGZvciB0YWJsZXNwYWNlICVzIHdpdGggZW5naW5lICVzLgBFcnJvciBpbiBjcmVhdGluZyBTREkgZm9yICVzIHRhYmxlc3BhY2UuAEVycm9yIGluIHN0b3JpbmcgU0RJIGZvciAlcyB0YWJsZXNwYWNlLgBFcnJvciBpbiBmZXRjaGluZyBsaXN0IG9mIHRhYmxlcy4ARmluaXNoZWQgcG9wdWxhdGluZyBEYXRhIERpY3Rpb25hcnkgdGFibGVzIHdpdGggZGF0YS4AQ291bGQgbm90IG9wZW4gdGhlIHVwZ3JhZGUgaW5mbyBmaWxlICclcycgaW4gdGhlIE15U1FMIHNlcnZlcnMgZGF0YWRpciwgZXJybm86ICVkLgBDb3VsZCBub3QgY2xvc2UgdGhlIHVwZ3JhZGUgaW5mbyBmaWxlICclcycgaW4gdGhlIE15U1FMIHNlcnZlcnMgZGF0YWRpciwgZXJybm86ICVkLgBHb3QgZXJyb3IgJWQgZnJvbSBTRSB3aGlsZSBtaWdyYXRpbmcgdGFibGVzcGFjZXMuAEVycm9yIGluIGNyZWF0aW5nIFRBQkxFIHN0YXRpc3RpY3MgZW50cnkuIEZpeCBzdGF0aXN0aWNzIGRhdGEgYnkgdXNpbmcgQU5BTFlaRSBjb21tYW5kLgBGaW5pc2hlZCBtaWdyYXRpbmcgVEFCTEUgc3RhdGlzdGljcyBkYXRhLgBFcnJvciBpbiBjcmVhdGluZyBJbmRleCBzdGF0aXN0aWNzIGVudHJ5LiBGaXggc3RhdGlzdGljcyBkYXRhIGJ5IHVzaW5nIEFOQUxZWkUgY29tbWFuZC4ARmluaXNoZWQgbWlncmF0aW5nIElOREVYIHN0YXRpc3RpY3MgZGF0YS4ARmFpbGVkIHRvIGZpbmQgdmFsaWQgZGF0YSBkaXJlY3RvcnkuAFN0YXJ0aW5nIHVwZ3JhZGUgb2YgZGF0YSBkaXJlY3RvcnkuAEZhaWxlZCB0byBpbml0aWFsaXplIEREIFN0b3JhZ2UgRW5naW5lLgBGb3VuZCBwYXJ0aWFsbHkgdXBncmFkZWQgREQuIEFib3J0aW5nIHVwZ3JhZGUgYW5kIGRlbGV0aW5nIGFsbCBERCB0YWJsZXMuIFN0YXJ0IHRoZSB1cGdyYWRlIHByb2Nlc3MgYWdhaW4uAEZvdW5kIHBhcnRpYWxseSB1cGdyYWRlZCBERC4gVXBncmFkZSB3aWxsIGNvbnRpbnVlIGFuZCBzdGFydCB0aGUgc2VydmVyLgBFcnJvciBpbiB1cGdyYWRpbmcgZW5naW5lIGxvZ3MuAEVycm9yIGluIHVwZGF0aW5nIFNESSBpbmZvcm1hdGlvbi4AU2tpcCB1cGRhdGluZyAlcyBtZXRhZGF0YSBpbiBJbm5vREIgcmVhZC1vbmx5IG1vZGUuAENyZWF0ZWQgc3lzdGVtIHZpZXdzIHdpdGggSV9TIHZlcnNpb24gJWQuAFVua25vd24gZXJyb3IgZGV0ZWN0ZWQgJWQgaW4gaGFuZGxlci4ARXJyb3IgaW4gTG9nX2V2ZW50OjpyZWFkX2xvZ19ldmVudCgpOiAnJXMnLCBkYXRhX2xlbjogJWx1LCBldmVudF90eXBlOiAlZC4AVGhlIHJvdyBkYXRhIGlzIGdyZWF0ZXIgdGhhbiA0R0IsIHdoaWNoIGlzIHRvbyBiaWcgdG8gd3JpdGUgdG8gdGhlIGJpbmFyeSBsb2cuAFVuYWJsZSB0byBjb25zdHJ1Y3QgRFJPUCBFVkVOVCBTUUwgcXVlcnkgc3RyaW5nLgBVbmFibGUgdG8gYmlubG9nIGRyb3AgZXZlbnQgJXMuJXMuAEZhaWxlZCB0byBzdGFydCByZXBsaWNhIHRocmVhZHMgZm9yIGNoYW5uZWwgJyVzJy4AJXMlcy4ARmFpbGVkIHJlZ2lzdGVyaW5nIG9uIHNvdXJjZSwgcmVjb25uZWN0aW5nIHRvIHRyeSBhZ2FpbiwgbG9nICclcycgYXQgcG9zaXRpb24gJXMuICVzLgBSZXBsaWNhIEkvTyB0aHJlYWQga2lsbGVkIGR1cmluZyBvciBhZnRlciByZWNvbm5lY3QuAFNvbWUgb2YgdGhlIGNoYW5uZWxzIGFyZSBub3QgY3JlYXRlZC9pbml0aWFsaXplZCBwcm9wZXJseS4gQ2hlY2sgZm9yIGFkZGl0aW9uYWwgbWVzc2FnZXMgYWJvdmUuIFlvdSB3aWxsIG5vdCBiZSBhYmxlIHRvIHN0YXJ0IHJlcGxpY2F0aW9uIG9uIHRob3NlIGNoYW5uZWxzIHVudGlsIHRoZSBpc3N1ZSBpcyByZXNvbHZlZCBhbmQgdGhlIHNlcnZlciByZXN0YXJ0ZWQuAEZhaWxlZCB0byBhZGQgYSByZXBsaWNhdGlvbiBmaWx0ZXIgaW50byBmaWx0ZXIgbWFwIGZvciBjaGFubmVsICclLjE5MnMnLgBUaGVyZSBhcmUgcGVyLWNoYW5uZWwgcmVwbGljYXRpb24gZmlsdGVyKHMpIGNvbmZpZ3VyZWQgZm9yIGdyb3VwIHJlcGxpY2F0aW9uIGNoYW5uZWwgJyUuMTkycycgd2hpY2ggaXMgZGlzYWxsb3dlZC4gVGhlIGZpbHRlcihzKSBoYXZlIGJlZW4gZGlzY2FyZGVkLgBUaGVyZSBhcmUgcGVyLWNoYW5uZWwgcmVwbGljYXRpb24gZmlsdGVyKHMpIGNvbmZpZ3VyZWQgZm9yIGNoYW5uZWwgJyUuMTkycycgd2hpY2ggZG9lcyBub3QgZXhpc3QuIFRoZSBmaWx0ZXIocykgaGF2ZSBiZWVuIGRpc2NhcmRlZC4AQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgYnVpbGRpbmcgZG9fdGFibGUgYW5kIGlnbm9yZV90YWJsZSBydWxlcyB0byBoYXNoZXMgZm9yIHBlci1jaGFubmVsIGZpbHRlci4AQ2xvbmUgcGx1Z2luIGNhbm5vdCBiZSBsb2FkZWQuAENsb25lIEhhbmRsZXIgZXhpc3RzLgBDb3VsZCBub3QgY3JlYXRlIENsb25lIEhhbmRsZXIuAFRoZSBDWUNMRSB0aW1lciBpcyBub3QgYXZhaWxhYmxlLiBXQUlUIGV2ZW50cyBpbiB0aGUgcGVyZm9ybWFuY2Vfc2NoZW1hIHdpbGwgbm90IGJlIHRpbWVkLgBUaGUgTkFOT1NFQ09ORCB0aW1lciBpcyBub3QgYXZhaWxhYmxlLiBJRExFL1NUQUdFL1NUQVRFTUVOVC9UUkFOU0FDVElPTiBldmVudHMgaW4gdGhlIHBlcmZvcm1hbmNlX3NjaGVtYSB3aWxsIG5vdCBiZSB0aW1lZC4AVGhlIE1JQ1JPU0VDT05EIHRpbWVyIGlzIG5vdCBhdmFpbGFibGUuIElETEUvU1RBR0UvU1RBVEVNRU5UL1RSQU5TQUNUSU9OIGV2ZW50cyBpbiB0aGUgcGVyZm9ybWFuY2Vfc2NoZW1hIHdpbGwgbm90IGJlIHRpbWVkLgBGYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciAlenUgY2h1bmtzIGVhY2ggb2Ygc2l6ZSAlenUgZm9yIGJ1ZmZlciAnJXMnIGR1ZSB0byBvdmVyZmxvdy4ARmFpbGVkIHRvIGFsbG9jYXRlICV6dSBieXRlcyBmb3IgYnVmZmVyICclcycgZHVlIHRvIG91dC1vZi1tZW1vcnkuAElubm9EQiBjb3VsZCBub3QgZmluZCBpbmRleCAlcyBrZXkgbm8gJXUgZm9yIHRhYmxlICVzIHRocm91Z2ggaXRzIGluZGV4IHRyYW5zbGF0aW9uIHRhYmxlLgBDYW5ub3QgZmluZCBpbmRleCAlcyBpbiBJbm5vREIgaW5kZXggdHJhbnNsYXRpb24gdGFibGUuAElubm9EQiBjb3VsZCBub3QgZmluZCBrZXkgbm8gJXUgd2l0aCBuYW1lICVzIGZyb20gZGljdCBjYWNoZSBmb3IgdGFibGUgJXMuAElubm9EQjogY2hhbmdlX2FjdGl2ZV9pbmRleCgldSkgZmFpbGVkLgBTdG9yZWQgcmVmIGxlbiBpcyAlbHUsIGJ1dCB0YWJsZSByZWYgbGVuIGlzICVsdS4ATXlTUUwgaXMgdHJ5aW5nIHRvIGNyZWF0ZSBhIGNvbHVtbiBwcmVmaXggaW5kZXggZmllbGQsIG9uIGFuIGluYXBwcm9wcmlhdGUgZGF0YSB0eXBlLiBUYWJsZSBuYW1lICVzLCBjb2x1bW4gbmFtZSAlcy4AQ2Fubm90IGNyZWF0ZSB0YWJsZSAlcy4ARm91bmQgaW5kZXggJXMgaW4gSW5ub0RCIGluZGV4IGxpc3QgYnV0IG5vdCBpdHMgTXlTUUwgaW5kZXggbnVtYmVyLiBJdCBjb3VsZCBiZSBhbiBJbm5vREIgaW50ZXJuYWwgaW5kZXguAElubm9EQjogVGFibGUgJXMgY29udGFpbnMgJWx1IGluZGV4ZXMgaW5zaWRlIElubm9EQiwgd2hpY2ggaXMgZGlmZmVyZW50IGZyb20gdGhlIG51bWJlciBvZiBpbmRleGVzICV1IGRlZmluZWQgaW4gTXlTUUwuAFRhYmxlICVzIGNvbnRhaW5zIGZld2VyIGluZGV4ZXMgaW5zaWRlIElubm9EQiB0aGFuIGFyZSBkZWZpbmVkIGluIHRoZSBNeVNRTC4gSGF2ZSB5b3UgbWl4ZWQgdXAgd2l0aCBkYXRhIGRpY3Rpb25hcnkgZnJvbSBkaWZmZXJlbnQgaW5zdGFsbGF0aW9uPwBJbmRleCAlcyBvZiAlcyBoYXMgJWx1IGNvbHVtbnMgdW5pcXVlIGluc2lkZSBJbm5vREIsIGJ1dCBNeVNRTCBpcyBhc2tpbmcgc3RhdGlzdGljcyBmb3IgJWx1IGNvbHVtbnMuIEhhdmUgeW91IG1peGVkIGRhdGEgZGljdGlvbmFyeSBmcm9tIGRpZmZlcmVudCBpbnN0YWxsYXRpb24/AE1vbml0b3IgY291bnRlciAnJXMnIGNhbm5vdCBiZSB0dXJuZWQgb24vb2ZmIGluZGl2aWR1YWxseS4gUGxlYXNlIHVzZSBpdHMgbW9kdWxlIG5hbWUgdG8gdHVybiBvbi9vZmYgdGhlIGNvdW50ZXJzIGluIHRoZSBtb2R1bGUgYXMgYSBncm91cC4ARGVmYXVsdCB2YWx1ZSBpcyBub3QgZGVmaW5lZCBmb3IgdGhpcyBzZXQgb3B0aW9uLiBQbGVhc2Ugc3BlY2lmeSBjb3JyZWN0IGNvdW50ZXIgb3IgbW9kdWxlIG5hbWUuAElubm9EQjogTW9uaXRvciAlcyBpcyBhbHJlYWR5IGVuYWJsZWQuAEludmFsaWQgbW9uaXRvciBjb3VudGVyIDogJXMuAExvYWRMaWJyYXJ5KCIlcyIpIGZhaWxlZDogR2V0TGFzdEVycm9yIHJldHVybnMgJWx1LgAlcy4AJXMuACVzLgAlcy4AJXMuACVzLgBVbmFibGUgdG8gd2FpdCBmb3IgcHJvY2VzcyAlbGxkLgBVbmFibGUgdG8gZGV0ZXJtaW5lIGlmIGRhZW1vbiBpcyBydW5uaW5nOiAlcyAocmM9JWQpLgAlcwBbRkFUQUxdIElubm9EQjogJXMAVGhlIHN5bnRheCAnJXMnIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBQbGVhc2UgdXNlICVzIGluc3RlYWQuAFRoZSBzeW50YXggJyVzJyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4AJyVzJyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4AJXMAQmluYXJ5IGxvZ2dpbmcgbm90IHBvc3NpYmxlLiBNZXNzYWdlOiAlcy4ARmFpbGVkIHRvIHNldCBwZXJzaXN0ZWQgb3B0aW9ucy4AQ2Fubm90IGFjcXVpcmUgc3BlY2lmaWVkIHNlcnZpY2UgaW1wbGVtZW50YXRpb246ICclLjE5MnMnLgBJbnZhbGlkIFZDUFUgcmFuZ2UgJXUtJXUuAEludmFsaWQgY3B1IGlkICV1LgBHb3QgZXJyb3IgJWQgZHVyaW5nIEZMVVNIX0xPR1MuAFByb2JsZW0gd2hpbGUgZHJvcHBpbmcgZGF0YWJhc2UuIENhbid0IHJlbW92ZSBkYXRhYmFzZSBkaXJlY3RvcnkgKCVzKS4gUGxlYXNlIHJlbW92ZSBpdCBtYW51YWxseS4AVGhlIG9wdGlvbiBleHBpcmVfbG9nc19kYXlzIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggb3B0aW9uIGJpbmxvZ19leHBpcmVfbG9nc19zZWNvbmRzLiBUaGVyZWZvcmUsIHZhbHVlIG9mIGV4cGlyZV9sb2dzX2RheXMgaXMgaWdub3JlZC4AbWFsZm9ybWVkIG9yIHZlcnkgb2xkIHJlbGF5IGxvZyB3aGljaCBkb2VzIG5vdCBoYXZlIEZvcm1hdERlc2NyaXB0b3IuAFVwZ3JhZGUgb2YgdmlldyAnJXMuJXMnIGZhaWxlZC4gUmUtY3JlYXRlIHRoZSB2aWV3IHdpdGggdGhlIGV4cGxpY2l0IGNvbHVtbiBuYW1lIGxlc3NlciB0aGFuIDY0IGNoYXJhY3RlcnMuAFRhYmxlIHVwZ3JhZGUgcmVxdWlyZWQgZm9yIGAlLS42NHNgLmAlLS42NHNgLiBQbGVhc2UgZHVtcC9yZWxvYWQgdGFibGUgdG8gZml4IGl0IQBFcnJvciBpbiB1cGRhdGluZyB2ZXJzaW9uIG51bWJlciBpbiAlcyB0YWJsZXNwYWNlLgBLZXlyaW5nIG1pZ3JhdGlvbiBmYWlsZWQuAEtleXJpbmcgbWlncmF0aW9uIHN1Y2Nlc3NmdWwuAFJlY2VpdmVkIFJFU1RBUlQgZnJvbSB1c2VyICVzLiAgUmVzdGFydGluZyBteXNxbGQgKFZlcnNpb246ICVzKS4ARGlmZmVyZW50IGxvd2VyX2Nhc2VfdGFibGVfbmFtZXMgc2V0dGluZ3MgZm9yIHNlcnZlciAoJyV1JykgYW5kIGRhdGEgZGljdGlvbmFyeSAoJyV1JykuAERhdGEgZGljdGlvbmFyeSBpbml0aWFsaXppbmcgdmVyc2lvbiAnJXUnLgBEYXRhIGRpY3Rpb25hcnkgcmVzdGFydGluZyB2ZXJzaW9uICcldScuAERhdGEgZGljdGlvbmFyeSB1cGdyYWRpbmcgZnJvbSB2ZXJzaW9uICcldScgdG8gJyV1Jy4ARGF0YSBkaWN0aW9uYXJ5IHVwZ3JhZGUgcHJvaGliaXRlZCBieSB0aGUgY29tbWFuZCBsaW5lIG9wdGlvbiAnLS1ub19kZF91cGdyYWRlJy4AVXBncmFkaW5nIHRoZSBkYXRhIGRpY3Rpb25hcnkgZnJvbSBkaWN0aW9uYXJ5IHZlcnNpb24gJyV1JyBpcyBub3Qgc3VwcG9ydGVkLgBVcGdyYWRpbmcgdGhlIGRhdGEgZGljdGlvbmFyeSBmYWlsZWQsIHRlbXBvcmFyeSBzY2hlbWEgbmFtZSAnJS0uMTkycycgbm90IGF2YWlsYWJsZS4ARGF0YSBkaWN0aW9uYXJ5IG1pbm9yIGRvd25ncmFkZSBmcm9tIHZlcnNpb24gJyV1JyB0byAnJXUnLgBNaW5vciBkb3duZ3JhZGUgb2YgdGhlIERhdGEgZGljdGlvbmFyeSBmcm9tIGRpY3Rpb25hcnkgdmVyc2lvbiAnJXUnIGlzIG5vdCBzdXBwb3J0ZWQuAE5vIGRhdGEgZGljdGlvbmFyeSB2ZXJzaW9uIG51bWJlciBmb3VuZC4AVGhyZWFkIHBvb2wgbm90IHN1cHBvcnRlZCwgcmVxdWlyZXMgYSBtaW5pbXVtIG9mICVzLgB0aHJlYWRfcG9vbF9zaXplPTAgbWVhbnMgdGhyZWFkIHBvb2wgZGlzYWJsZWQsIEFsbG93ZWQgcmFuZ2Ugb2YgdGhyZWFkX3Bvb2xfc2l6ZSBpcyAlZC0lZC4AdGhyZWFkX3Bvb2xfc2l6ZT0lbHUgaXMgdG9vIGhpZ2gsICVkIGlzIG1heGltdW0sIHRocmVhZCBwb29sIGlzIGRpc2FibGVkLiBBbGxvd2VkIHJhbmdlIG9mIHRocmVhZF9wb29sX3NpemUgaXMgJWQtJWQuAHRocmVhZF9wb29sX2FsZ29yaXRobSBjYW4gYmUgc2V0IHRvIDAgYW5kIDEsIDAgaW5kaWNhdGVzIHRoZSBkZWZhdWx0IGxvdyBjb25jdXJyZW5jeSBhbGdvcml0aG0sIDEgbWVhbnMgYSBoaWdoIGNvbmN1cnJlbmN5IGFsZ29yaXRobS4AdGhyZWFkX3Bvb2xfc3RhbGxfbGltaXQgY2FuIGJlICVkIGF0IG1pbmltdW0gYW5kICVkIGF0IG1heGltdW0sIHNtYWxsZXIgdmFsdWVzIHdvdWxkIHJlbmRlciB0aGUgdGhyZWFkIHBvb2wgZmFpcmx5IHVzZWxlc3MgYW5kIGhpZ2hlciB2YWx1ZXMgY291bGQgbWFrZSBpdCBwb3NzaWJsZSB0byBoYXZlIHVuZGV0ZWN0ZWQgZGVhZGxvY2sgaXNzdWVzIGluIHRoZSBNeVNRTCBTZXJ2ZXIuAEludmFsaWQgdmFsdWUgb2YgdGhyZWFkX3Bvb2xfcHJpb19raWNrdXBfdGltZXIgc3BlY2lmaWVkLiBWYWx1ZSBvZiB0aHJlYWRfcG9vbF9wcmlvX2tpY2t1cF90aW1lciBzaG91bGQgYmUgaW4gcmFuZ2UgMC00Mjk0OTY3Mjk0LgB0aHJlYWRfcG9vbF9tYXhfdW51c2VkX3RocmVhZHMgY2Fubm90IGJlIHNldCBoaWdoZXIgdGhhbiAlZC4ARmFpbGVkIHRvIGluc3RhbnRpYXRlIHRoZSBjb25uZWN0aW9uIGhhbmRsZXIgb2JqZWN0LgBGYWlsZWQgdG8gaW5pdGlhbGl6ZSB0aHJlYWQgcG9vbCBwbHVnaW4uAFRocmVhZCBwb29sIHBsdWdpbiBzdGFydGVkIHN1Y2Nlc3NmdWxseSB3aXRoIHBhcmFtZXRlcnM6IHRocmVhZF9wb29sX3NpemUgPSAlbHUsIHRocmVhZF9wb29sX2FsZ29yaXRobSA9ICVzLCB0aHJlYWRfcG9vbF9zdGFsbF9saW1pdCA9ICV1LCB0aHJlYWRfcG9vbF9wcmlvX2tpY2t1cF90aW1lciA9ICV1LCB0aHJlYWRfcG9vbF9tYXhfdW51c2VkX3RocmVhZHMgPSAldSwgdGhyZWFkX3Bvb2xfaGlnaF9wcmlvcml0eV9jb25uZWN0aW9uID0gJWQuAENhbid0IHNldHVwIGNvbm5lY3Rpb24gdGVhcmRvd24gdGhyZWFkLXNwZWNpZmljIGRhdGEuAENyZWF0aW9uIG9mIGNvbm5lY3QgaGFuZGxlciB0aHJlYWQgZmFpbGVkLgBGYWlsZWQgdG8gY3JlYXRlIHRoZCBhbmQgYXV0aGVudGljYXRlIGNvbm5lY3Rpb24uAEZhaWxlZCB0byBwcm9jZXNzIGNvbm5lY3Rpb24gZXZlbnQuAENhbid0IGNyZWF0ZSBwb29sIHRocmVhZCAoZXJyb3IgJWQsIGVycm5vOiAlZCkuACUuKnMuAHRwX2dyb3VwX2xvd19sZXZlbF9pbml0KCkgZmFpbGVkLgBSZWFybSBmYWlsZWQgZXZlbiBhZnRlciAzMCBzZWNvbmRzLCBjYW4ndCBjb250aW51ZSB3aXRob3V0IG5vdGlmeSBzb2NrZXQuACVzOiAlcyBidWZmZXIgaXMgdG9vIHNtYWxsAE1lY2FiIHYlcyBpcyBub3Qgc3VwcG9ydGVkLCB0aGUgbG93ZXN0IHZlcnNpb24gc3VwcG9ydGVkIGlzIHYlcy4ATWVjYWIgdiVzIGlzIG5vdCB2ZXJpZmllZCwgdGhlIGhpZ2hlc3QgdmVyc2lvbiBzdXBwb3J0ZWQgaXMgdiVzLgBNZWNhYjogVHJ5aW5nIGNyZWF0ZU1vZGVsKCVzKS4ATWVjYWI6IGNyZWF0ZU1vZGVsKCkgZmFpbGVkOiAlcy4ATWVjYWI6IGNyZWF0ZVRhZ2dlcigpIGZhaWxlZDogJXMuAE1lY2FiOiBVbnN1cHBvcnRlZCBkaWN0aW9uYXJ5IGNoYXJzZXQgJXMuAE1lY2FiOiBMb2FkZWQgZGljdGlvbmFyeSBjaGFyc2V0IGlzICVzLgBNZWNhYjogcGFyc2UoKSBmYWlsZWQ6ICVzLgBNZWNhYjogcGFyc2UoKSBmYWlsZWQ6IG91dCBvZiBtZW1vcnkuAE1lY2FiOiBjcmVhdGVMYXR0aWNlKCkgZmFpbGVkOiAlcy4ALS0tPiAlcyBlbnRlci4APC0tLSAlcyBleGl0ICglZCkuADwtLS0gJXMgZXhpdCAoJXMpLgA8LS0tICVzIGV4aXQuAFNlbWktc3luYyByZXBsaWNhdGlvbiBpbml0aWFsaXplZCBmb3IgdHJhbnNhY3Rpb25zLgAlczogdHJhbnNhY3Rpb24gbm9kZSBhbGxvY2F0aW9uIGZhaWxlZCBmb3I6ICglcywgJWx1KS4AJXM6IGJpbmxvZyB3cml0ZSBvdXQtb2Ytb3JkZXIsIHRhaWwgKCVzLCAlbHUpLCBuZXcgbm9kZSAoJXMsICVsdSkuACVzOiBpbnNlcnQgKCVzLCAlbHUpIGluIGVudHJ5KCV1KS4AJXM6IHByb2JlICglcywgJWx1KSBpbiBlbnRyeSgldSkuACVzOiBjbGVhcmVkIGFsbCBub2Rlcy4AJXM6IGNsZWFyZWQgJWQgbm9kZXMgYmFjayB1bnRpbCBwb3MgKCVzLCAlbHUpLgBSZWFkIHNlbWktc3luYyByZXBseSBtYWdpYyBudW1iZXIgZXJyb3IuAFJlYWQgc2VtaS1zeW5jIHJlcGx5IGxlbmd0aCBlcnJvcjogcGFja2V0IGlzIHRvbyBzbWFsbC4AUmVhZCBzZW1pLXN5bmMgcmVwbHkgYmlubG9nIGZpbGUgbGVuZ3RoIHRvbyBsYXJnZS4AJXM6IEdvdCByZXBseSglcywgJWx1KSBmcm9tIHNlcnZlciAldS4AJXMgY2FsbGVkIHR3aWNlLgBTZW1pLXN5bmMgcmVwbGljYXRpb24gZW5hYmxlZCBvbiB0aGUgc291cmNlLgBDYW5ub3QgYWxsb2NhdGUgbWVtb3J5IHRvIGVuYWJsZSBzZW1pLXN5bmMgb24gdGhlIHNvdXJjZS4AU2VtaS1zeW5jIHJlcGxpY2F0aW9uIGRpc2FibGVkIG9uIHRoZSBzb3VyY2UuAFNFTUlTWU5DOiBGb3JjZWQgc2h1dGRvd24uIFNvbWUgdXBkYXRlcyBtaWdodCBub3QgYmUgcmVwbGljYXRlZC4AJXM6IEdvdCByZXBseSBhdCAoJXMsICVsdSkuACVzOiBzaWduYWwgYWxsIHdhaXRpbmcgdGhyZWFkcy4AJXM6IHdhaXQgcG9zICglcywgJWx1KSwgcmVwbCglZCkuACVzOiBCaW5sb2cgcmVwbHkgaXMgYWhlYWQgKCVzLCAlbHUpLgAlczogbW92ZSBiYWNrIHdhaXQgcG9zaXRpb24gKCVzLCAlbHUpLgAlczogaW5pdCB3YWl0IHBvc2l0aW9uICglcywgJWx1KS4AJXM6IHdhaXQgJWx1IG1zIGZvciBiaW5sb2cgc2VudCAoJXMsICVsdSkuAFRpbWVvdXQgd2FpdGluZyBmb3IgcmVwbHkgb2YgYmlubG9nIChmaWxlOiAlcywgcG9zOiAlbHUpLCBzZW1pLXN5bmMgdXAgdG8gZmlsZSAlcywgcG9zaXRpb24gJWx1LgBBc3Nlc3NtZW50IG9mIHdhaXRpbmcgdGltZSBmb3IgY29tbWl0VHJ4IGZhaWxlZCBhdCB3YWl0IHBvc2l0aW9uICglcywgJWx1KS4AU2VtaS1zeW5jIHJlcGxpY2F0aW9uIHN3aXRjaGVkIE9GRi4AU2VtaS1zeW5jIHJlcGxpY2F0aW9uIHN3aXRjaGVkIE9OIGF0ICglcywgJWx1KS4ATm8gZW5vdWdoIHNwYWNlIGluIHRoZSBwYWNrZXQgZm9yIHNlbWktc3luYyBleHRyYSBoZWFkZXIsIHNlbWktc3luYyByZXBsaWNhdGlvbiBkaXNhYmxlZC4AJXM6IHNlcnZlciglZCksICglcywgJWx1KSBzeW5jKCVkKSwgcmVwbCglZCkuAFNlbWktc3luYyBmYWlsZWQgdG8gaW5zZXJ0IHRyYW54X25vZGUgZm9yIGJpbmxvZyBmaWxlOiAlcywgcG9zaXRpb246ICVsdS4AJXM6IFRyYW5zYWN0aW9uIHNraXBwZWQgYXQgKCVzLCAlbHUpLgBTZW1pLXN5bmMgc291cmNlIGZhaWxlZCBvbiBuZXRfZmx1c2goKSBiZWZvcmUgd2FpdGluZyBmb3IgcmVwbGljYSByZXBseS4AVGhlIHJlY2VpdmVkIGFjayBpcyBzbWFsbGVyIHRoYW4gbV9ncmVhdGVzdF9hY2suAEFkZCB0aGUgYWNrIGludG8gc2xvdCAldS4AVXBkYXRlIGFuIGV4c2l0aW5nIGFjayBpbiBzbG90ICV1LgBGYWlsZWQgdG8gc3RhcnQgc2VtaS1zeW5jIEFDSyByZWNlaXZlciB0aHJlYWQsICBjb3VsZCBub3QgY3JlYXRlIHRocmVhZChlcnJubzolZCkuAFN0YXJ0aW5nIGFjayByZWNlaXZlciB0aHJlYWQuAEZhaWxlZCB0byB3YWl0IG9uIHNlbWktc3luYyBkdW1wIHNvY2tldHMsIGVycm9yOiBlcnJubz0lZC4AU3RvcHBpbmcgYWNrIHJlY2VpdmVyIHRocmVhZC4ARmFpbGVkIHRvIHJlZ2lzdGVyIHJlcGxpY2EgdG8gc2VtaS1zeW5jIEFDSyByZWNlaXZlciB0aHJlYWQuAFN0YXJ0ICVzIGJpbmxvZ19kdW1wIHRvIHJlcGxpY2EgKHNlcnZlcl9pZDogJWQpLCBwb3MoJXMsICVsdSkuAFN0b3AgJXMgYmlubG9nX2R1bXAgdG8gcmVwbGljYSAoc2VydmVyX2lkOiAlZCkuAHVucmVnaXN0ZXJfdHJhbnNfb2JzZXJ2ZXIgZmFpbGVkLgB1bnJlZ2lzdGVyX2JpbmxvZ19zdG9yYWdlX29ic2VydmVyIGZhaWxlZC4AdW5yZWdpc3Rlcl9iaW5sb2dfdHJhbnNtaXRfb2JzZXJ2ZXIgZmFpbGVkLgB1bnJlZ2lzdGVyX3JlcGxpY2F0b3IgT0suAFNlbWlzeW5jIHJlcGxpY2Egc29ja2V0IGZkIGlzICV1LiBzZWxlY3QoKSBjYW5ub3QgaGFuZGxlIGlmIHRoZSBzb2NrZXQgZmQgaXMgYmlnZ2VyIHRoYW4gJXUgKEZEX1NFVFNJWkUpLgAlczogcmVwbHkgLSAlZC4ATWlzc2luZyBtYWdpYyBudW1iZXIgZm9yIHNlbWktc3luYyBwYWNrZXQsIHBhY2tldCBsZW46ICVsdS4AUmVwbGljYSBJL08gdGhyZWFkOiBTdGFydCAlcyByZXBsaWNhdGlvbiB0byBzb3VyY2UgJyVzQCVzOiVkJyBpbiBsb2cgJyVzJyBhdCBwb3NpdGlvbiAlbHUuACVzOiByZXBseSAoJXMsICVsdSkuAFNlbWktc3luYyByZXBsaWNhIG5ldF9mbHVzaCgpIHJlcGx5IGZhaWxlZC4AU2VtaS1zeW5jIHJlcGxpY2Egc2VuZCByZXBseSBmYWlsZWQ6ICVzICglZCkuAEV4ZWN1dGlvbiBmYWlsZWQgb24gc291cmNlOiAlczsgZXJyb3IgJWQAU291cmNlIHNlcnZlciBkb2VzIG5vdCBzdXBwb3J0IHNlbWktc3luYywgZmFsbGJhY2sgdG8gYXN5bmNocm9ub3VzIHJlcGxpY2F0aW9uAFNldCAncnBsX3NlbWlfc3luY19yZXBsaWNhPTEnIG9uIHNvdXJjZSBmYWlsZWQARmFpbGVkIHRvIHN0b3AgYWNrIHJlY2VpdmVyIHRocmVhZCBvbiBteV90aHJlYWRfam9pbiwgZXJybm8oJWQpLgBGYWlsZWQgdG8gcmVhZCB0aGUgZmlyZXdhbGwgdGFibGVzAEZhaWxlZCB0byByZWdpc3RlciBkeW5hbWljIHByaXZpbGVnZXMAU3RhdGVtZW50IHdhcyB0cnVuY2F0ZWQgYW5kIG5vdCByZWNvcmRlZDogJXMAU3RhdGVtZW50IHdpdGggbm8gdGV4dCB3YXMgbm90IHJlY29yZGVkAFNVU1BJQ0lPVVMgU1RBVEVNRU5UIGZyb20gJyVzJy4gUmVhc29uOiAlcyBTdGF0ZW1lbnQ6ICVzAEFDQ0VTUyBERU5JRUQgZm9yICclcycuIFJlYXNvbjogJXMgU3RhdGVtZW50OiAlcwBTa2lwcGVkIHVua25vd24gdXNlciBtb2RlICclcycAUmVsb2FkaW5nIGNhY2hlIGZyb20gZGlzawBGSVJFV0FMTCBSRVNFVCBmb3IgJyVzJwBDb3VudGVycyBhcmUgcmVzZXQgdG8gemVybwAlcwBBdWRpdCBMb2cgcGx1Z2luIHN1cHBvcnRzIGZpbHRlcmluZyBtb2RlLCB3aGljaCBoYXMgbm90IGJlZW4gaW5zdGFsbGVkIHlldC4gQXVkaXQgTG9nIHBsdWdpbiB3aWxsIHJ1biBpbiB0aGUgbGVnYWN5IG1vZGUsIHdoaWNoIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCByZWxlYXNlLgBQcmV2aW91c2x5IGV4Y2x1ZGUgbGlzdCBpcyB1c2VkLCBub3cgd2Ugc3RhcnQgdXNpbmcgaW5jbHVkZSBsaXN0LCBleGNsdWRlIGxpc3QgaXMgc2V0IHRvIE5VTEwuAENhbm5vdCBzZXQgYXVkaXRfbG9nX3BvbGljeSBzaW11bHRhbmVvdXNseSB3aXRoIGVpdGhlciBhdWRpdF9sb2dfY29ubmVjdGlvbl9wb2xpY3kgb3IgIGF1ZGl0X2xvZ19zdGF0ZW1lbnRfcG9saWN5LCBzZXR0aW5nIGF1ZGl0X2xvZ19jb25uZWN0aW9uX3BvbGljeSBhbmQgYXVkaXRfbG9nX3N0YXRlbWVudF9wb2xpY3kgYmFzZWQgb24gYXVkaXRfbG9nX3BvbGljeS4AQm90aCBpbmNsdWRlIGFuZCBleGNsdWRlIGxpc3RzIHByb3ZpZGVkLCBpbmNsdWRlIGxpc3QgaXMgcHJlZmVycmVkLCBleGNsdWRlIGxpc3QgaXMgc2V0IHRvIE5VTEwuAENvdWxkIG5vdCBhY2Nlc3MgJyVzJyBkaXJlY3RvcnkuAENvdWxkIG5vdCByZW5hbWUgZmlsZSBmcm9tICclcycgdG8gJyVzJy4ARmlsZSAnJXMnIHNob3VsZCBub3QgZXhpc3QuIEl0IG1heSBiZSBpbmNvbXBsZXRlLiBUaGUgc2VydmVyIGNyYXNoZWQuAENvdWxkIG5vdCByZW5hbWUgZmlsZSBmcm9tICclcycgdG8gJyVzJy4gUmVtb3ZlIHRoZSBmaWxlIG1hbnVhbGx5LgBJbmNvbXBsZXRlIGZpbGUgcmVuYW1lZCBmcm9tICclcycgdG8gJyVzJy4ARXJyb3Igd3JpdGluZyBmaWxlICclLS4yMDBzJyAoZXJybm86ICVkIC0gJXMpLgBDb3VsZCBub3QgaW5pdGlhbGl6ZSBhdWRpdCBsb2cgZmlsZSBlbmNyeXB0aW9uLgBDb3VsZCBub3QgaW5pdGlhbGl6ZSBhdWRpdCBsb2cgZmlsZSBjb21wcmVzc2lvbi4AQ291bGQgbm90IGNyZWF0ZSAnJXMnIGZpbGUgZm9yIGF1ZGl0IGxvZ2dpbmcuAEF1ZGl0IGxvZyBmaWxlICglcykgbXVzdCBiZSBtYW51YWxseSByZW5hbWVkIGJlZm9yZSBhdWRpdF9sb2dfZmx1c2ggaXMgc2V0IHRvIHRydWUuACVzAEVycm9yIHBhcnNpbmcgSlNPTiBldmVudC4gRXZlbnQgbm90IGFjY2Vzc2libGUuAEJ1ZmZlciBpcyB0b28gc21hbGwgdG8gaG9sZCBKU09OIGV2ZW50LiBOdW1iZXIgb2YgZXZlbnRzIHNraXBwZWQ6ICV6dS4AQ291bGQgbm90IG9wZW4gSlNPTiBmaWxlIGZvciByZWFkaW5nLiBSZWFkaW5nIG5leHQgZmlsZSBpZiBleGlzdHMuAEpTT04gZmlsZSBwYXJzaW5nIGVycm9yLiBSZWFkaW5nIG5leHQgZmlsZSBpZiBleGlzdHMASW52YWxpZCBjb2x1bW4gY291bnQgaW4gdGhlICclcy4lcycgdGFibGUuAEludmFsaWQgY29sdW1uIGRlZmluaXRpb24gb2YgdGhlICclcy4lcycgdGFibGUuAENvdWxkIG5vdCBzdG9yZSBmaWVsZCBvZiB0aGUgJXMgdGFibGUuAENvdWxkIG5vdCB1cGRhdGUgJXMgdGFibGUuAENvdWxkIG5vdCBpbnNlcnQgaW50byAlcyB0YWJsZS4AQ291bGQgbm90IGRlbGV0ZSBmcm9tICVzIHRhYmxlLgBDb3VsZCBub3QgaW5pdGlhbGl6ZSAlcyB0YWJsZSBmb3IgcmVhZGluZy4AQ291bGQgbm90IHJlYWQgJXMgdGFibGUuAENvdWxkIG5vdCBjbG9zZSAlcyB0YWJsZSByZWFkaW5nLgBCb3RoIHVzZXIgYW5kIGhvc3QgY29sdW1ucyBvZiAlcyB0YWJsZSBjYW5ub3QgYmUgZW1wdHkuAEZpbHRlcm5hbWUgY29sdW1uIG9mICVzIHRhYmxlIGNhbm5vdCBiZSBlbXB0eS4ARGljdGlvbmFyeSBmaWxlIG5vdCBzcGVjaWZpZWQARGljdGlvbmFyeSBmaWxlIG5vdCBsb2FkZWQARGljdGlvbmFyeSBmaWxlIHNpemUgZXhjZWVkZWQgTUFYX0RJQ1RJT05BUllfRklMRV9MRU5HVEgsIG5vdCBsb2FkZWQARXhjZXB0aW9uIHdoaWxlIHJlYWRpbmcgdGhlIGRpY3Rpb25hcnkgZmlsZQBDYW4ndCByZXRyaWV2ZSB0aGUgJXMgZnJvbSB0aGUgc2VjdXJpdHkgY29udGV4dABDYW4ndCByZXRyaWV2ZSB0aGUgc2VjdXJpdHkgY29udGV4dABFZmZlY3RpdmUgdmFsdWUgb2YgdmFsaWRhdGVfcGFzc3dvcmRfbGVuZ3RoIGlzIGNoYW5nZWQuIE5ldyB2YWx1ZSBpcyAlZAAlcwBSZXdyaXR0ZW4gcXVlcnkgZmFpbGVkIHRvIHBhcnNlOiVzAFN0YXJ0dXAgZmFpbGVkIHdpdGggZXJyb3IgIiVzIgBFeGl0aW5nAEV4aXQgZG9uZQBVc2luZyBTU0wgY29uZmlndXJhdGlvbiBmcm9tIE15U1FMIFNlcnZlcgBVc2luZyBTU0wgY29uZmlndXJhdGlvbiBmcm9tIE15c3FseCBQbHVnaW4ATmVpdGhlciBNeVNRTCBTZXJ2ZXIgbm9yIE15c3FseCBQbHVnaW4gaGFzIHZhbGlkIFNTTCBjb25maWd1cmF0aW9uAFVzaW5nICVzIGZvciBUTFMgY29ubmVjdGlvbnMARm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSBzZWUgdGhlIFVzaW5nIFNlY3VyZSBDb25uZWN0aW9ucyB3aXRoIFggUGx1Z2luIHNlY3Rpb24gaW4gdGhlIE15U1FMIGRvY3VtZW50YXRpb24AJXMARmFpbGVkIHRvIHBhcnNlIHN0b3JlZCBhdXRoZW50aWNhdGlvbiBzdHJpbmcgZm9yICVzLiBQbGVhc2UgY2hlY2sgaWYgbXlzcWwudXNlciB0YWJsZSBub3QgY29ycnVwdGVkAEVycm9yIGluIGdlbmVyYXRpbmcgbXVsdGktcm91bmQgaGFzaCBmb3IgJXMuIFBsdWdpbiBjYW4gbm90IHBlcmZvcm0gYXV0aGVudGljYXRpb24gd2l0aG91dCBpdC4gVGhpcyBtYXkgYmUgYSB0cmFuc2llbnQgcHJvYmxlbQBBdXRoZW50aWNhdGlvbiByZXF1aXJlcyBlaXRoZXIgUlNBIGtleXMgb3IgU1NMIGVuY3J5cHRpb24AUlNBIGtleSBjaXBoZXIgbGVuZ3RoIG9mICV1IGlzIHRvbyBsb25nLiBNYXggdmFsdWUgaXMgJXUARmFpbGVkIHRvIG9wZW4gdGhlICVzIGZpbHRlciB0YWJsZXMARmFpbGVkIHRvIG9wZW4gJyVzLiVzJyAlcyB0YWJsZQAlcwAlcwAlcwBQYXNzd29yZCBzYWx0IGZvciB1c2VyICclcycgaXMgY29ycnVwdABPdXQgb2YgbWVtb3J5IGZvciBjb21wb25lbnQgc3lzdGVtIHZhcmlhYmxlICclcycuAHZhcmlhYmxlICVzIG9mIGNvbXBvbmVudCAlcyB3YXMgZm9yY2VkIHRvIGJlIHJlYWQtb25seTogc3RyaW5nIHZhcmlhYmxlIHdpdGhvdXQgdXBkYXRlX2Z1bmMgYW5kIFBMVUdJTl9WQVJfTUVNQUxMT0MgZmxhZy4AVW5rbm93biB2YXJpYWJsZSB0eXBlIGNvZGUgMHgleCBpbiBjb21wb25lbnQgJyVzJy4AUGFyc2luZyBvcHRpb25zIGZvciB2YXJpYWJsZSAnJXMnIGZhaWxlZC4AU2V0dGluZyBwZXJzaXN0ZW50IG9wdGlvbnMgZm9yIGNvbXBvbmVudCB2YXJpYWJsZSAnJXMnIGZhaWxlZC4AVGhlIGxvZy1maWx0ZXIgY29tcG9uZW50ICIlcyIgZ290IGNvbmZ1c2VkIGF0ICIlcyIgKHN0YXRlOiAlcykgLi4uAFdhaXRpbmcgdW50aWwgSS9PIHRocmVhZCBmb3IgY2hhbm5lbCAnJXMnIGZpbmlzaCB3cml0aW5nIHRvIGRpc2sgYmVmb3JlIHN0b3BwaW5nLiBGcmVlIHNvbWUgZGlzayBzcGFjZSBvciB1c2UgJ0tJTEwnIHRvIGFib3J0IEkvTyB0aHJlYWQgb3BlcmF0aW9uLiBOb3RpY2UgdGhhdCBhYm9ydGluZyB0aGUgSS9PIHRocmVhZCB3aGlsZSByb3RhdGluZyB0aGUgcmVsYXkgbG9nIG1pZ2h0IGNvcnJ1cHQgdGhlIHJlbGF5IGxvZ3MsIHJlcXVpcmluZyBhIHNlcnZlciByZXN0YXJ0IHRvIGZpeCBpdC4AQ291bGQgbm90IHVzZSAlcyBmb3IgbG9nZ2luZyAoZXJyb3IgJWQgLSAlcykuIFR1cm5pbmcgbG9nZ2luZyBvZmYgZm9yIHRoZSBzZXJ2ZXIgcHJvY2Vzcy4gVG8gdHVybiBpdCBvbiBhZ2FpbjogZml4IHRoZSBjYXVzZSwgdGhlbiVzIHJlc3RhcnQgdGhlIE15U1FMIHNlcnZlci4AVW5hYmxlIHRvIGNvbGxlY3QgaW5mb3JtYXRpb24gZm9yIGNvbHVtbiAnJS0uMTkycyc6ICUtLjE5MnMuACd1dGY4JyBpcyBjdXJyZW50bHkgYW4gYWxpYXMgZm9yIHRoZSBjaGFyYWN0ZXIgc2V0IFVURjhNQjMsIHdoaWNoIHdpbGwgYmUgcmVwbGFjZWQgYnkgVVRGOE1CNCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBQbGVhc2UgY29uc2lkZXIgdXNpbmcgVVRGOE1CNCBpbiBvcmRlciB0byBiZSB1bmFtYmlndW91cy4ATkFUSU9OQUwvTkNIQVIvTlZBUkNIQVIgaW1wbGllcyB0aGUgY2hhcmFjdGVyIHNldCBVVEY4TUIzLCB3aGljaCB3aWxsIGJlIHJlcGxhY2VkIGJ5IFVURjhNQjQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gUGxlYXNlIGNvbnNpZGVyIHVzaW5nIENIQVIoeCkgQ0hBUkFDVEVSIFNFVCBVVEY4TUI0IGluIG9yZGVyIHRvIGJlIHVuYW1iaWd1b3VzLgBBIGNvbW1pdCBmb3IgYW4gYXRvbWljIERETCBzdGF0ZW1lbnQgd2FzIHVuc3VjY2Vzc2Z1bCBvbiB0aGUgc291cmNlIGFuZCB0aGUgcmVwbGljYS4gVGhlIHJlcGxpY2Egc3VwcG9ydHMgYXRvbWljIERETCBzdGF0ZW1lbnRzIGJ1dCB0aGUgc291cmNlIGRvZXMgbm90LCBzbyB0aGUgYWN0aW9uIHRha2VuIGJ5IHRoZSByZXBsaWNhIGFuZCBzb3VyY2UgbWlnaHQgZGlmZmVyLiBDaGVjayB0aGF0IHRoZWlyIHN0YXRlcyBoYXZlIG5vdCBkaXZlcmdlZCBiZWZvcmUgcHJvY2VlZGluZy4AQ29uZmlndXJpbmcgcGVyc2lzdGVkIG9wdGlvbnMgZmFpbGVkOiAiJXMiLgBUaGUgc3RvcmFnZSBlbmdpbmUgJyUtLjE5MnMnIGRvZXMgbm90IHByb3ZpZGUgZHluYW1pYyB0YWJsZSBzdGF0aXN0aWNzAFRoaXMgb3B0aW9uIGNhbm5vdCBiZSBzZXQgJXMuAFRoZSB0YWJsZSAnJS0uMTkycycgbWF5IG5vdCBiZSBjcmVhdGVkIGluIHRoZSByZXNlcnZlZCB0YWJsZXNwYWNlICclLS4xOTJzJy4AU1NMIGZpcHMgbW9kZSBlcnJvcjogJXMAaW5pdF9jb25uZWN0IHZhcmlhYmxlIGlzIGlnbm9yZWQgZm9yIHVzZXI6ICVzIGhvc3Q6ICVzIGR1ZSB0byBleHBpcmVkIHBhc3N3b3JkLgBzcWxfbW9kZT0weCUwOHggaXMgbm90IHN1cHBvcnRlZABPdXQgb2YgbWVtb3J5LgBXcm9uZyBjb2x1bW4gY291bnQgb3IgbmFtZXMgd2hlbiBsb2FkaW5nIHJ1bGVzLgBTb21lIHJ1bGVzIGZhaWxlZCB0byBsb2FkLgBHb3QgZXJyb3IgZnJvbSBzdG9yYWdlIGVuZ2luZSB3aGlsZSByZWZyZXNoaW5nIHJld3JpdGUgcnVsZXMuAEZhaWxlZCB0byBpbml0aWFsaXplIENvbm5lY3Rpb25fZXZlbnRfY29vcmRpbmF0b3IARmFpbGVkIHRvIHVwZGF0ZSBjb25uZWN0aW9uIGRlbGF5IHRyaWdnZXJlZCBzdGF0cwBGYWlsZWQgdG8gcmVzZXQgY29ubmVjdGlvbiBkZWxheSB0cmlnZ2VyZWQgc3RhdHMAVW5leHBlY3RlZCBvcHRpb24gdHlwZSBmb3IgY29ubmVjdGlvbiBkZWxheS4ARmFpbGVkIHRvIGluaXRpYWxpemUgQ29ubmVjdGlvbl9kZWxheV9hY3Rpb24AQ291bGQgbm90IHNldCAlcyBkZWxheSBmb3IgY29ubmVjdGlvbiBkZWxheS4ARmFpbGVkIHRvIHVwZGF0ZSBjb25uZWN0aW9uIGRlbGF5IGhhc2ggZm9yIGFjY291bnQgOiAlcwAlczogRm9yY2Ugc3RvcHBpbmcgY2xpZW50IGJlY2F1c2UgZXhjZXB0aW9uIG9jY3VycmVkOiAlcwAlcy4ldTogTWF4aW11bSBudW1iZXIgb2YgYXV0aGVudGljYXRpb24gYXR0ZW1wdHMgcmVhY2hlZCwgbG9naW4gZmFpbGVkLgBFcnJvciBhbGxvY2F0aW5nIEJ1ZmZlcl9wYWdlOiAlcwBEZXRlY3RlZCAldSBoYW5naW5nIGNsaWVudChzKQBFcnJvciBhY2NlcHRpbmcgY2xpZW50AEludGVybmFsIGVycm9yIHNjaGVkdWxpbmcgY2xpZW50IGZvciBleGVjdXRpb24AUHJlcGFyYXRpb24gb2YgSS9PIGludGVyZmFjZXMgZmFpbGVkLCBYIFByb3RvY29sIHdvbid0IGJlIGFjY2Vzc2libGUAc3J2X3Nlc3Npb25faW5pdF90aHJlYWQgcmV0dXJuZWQgZXJyb3IAVW5hYmxlIHRvIHVzZSB1c2VyIG15c3FsLnNlc3Npb24gYWNjb3VudCB3aGVuIGNvbm5lY3RpbmcgdGhlIHNlcnZlciBmb3IgaW50ZXJuYWwgcGx1Z2luIHJlcXVlc3RzLgBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHNlZSB0aGUgWCBQbHVnaW4gVXNlciBBY2NvdW50IHNlY3Rpb24gaW4gdGhlIE15U1FMIGRvY3VtZW50YXRpb24AJXM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIGRpc3BhdGNoaW5nIGNvbW1hbmQ6ICVzAEV4Y2VwdGlvbiBpbiBwb3N0OiAlcwBJbnRlcm5hbCBlcnJvciBzY2hlZHVsaW5nIHRhc2sARXhjZXB0aW9uIGluIGV2ZW50IGxvb3A6ICIlcyI6ICVzAFNldHVwIG9mICVzIGZhaWxlZCwgJXMAJXMARmFpbGVkIGF0IFNTTCBjb25maWd1cmF0aW9uOiAiJXMiAEVycm9yIGR1cmluZyBTU0wgaGFuZHNoYWtlIGZvciBjbGllbnQgY29ubmVjdGlvbiAoJWkpACVzOiBFcnJvciBkdXJpbmcgU1NMIGhhbmRzaGFrZQAlczogRXJyb3IgY3JlYXRpbmcgc2Vzc2lvbiBmb3IgY29ubmVjdGlvbiBmcm9tICVzACVzOiBFcnJvciBpbml0aWFsaXppbmcgc2Vzc2lvbiBmb3IgY29ubmVjdGlvbjogJXMAJXM6IE1lc3NhZ2Ugb2Ygc2l6ZSAldSByZWNlaXZlZCwgZXhjZWVkaW5nIHRoZSBsaW1pdCBvZiAlaQBNZXNzYWdlIGlzIG5vdCBwcm9wZXJseSBpbml0aWFsaXplZDogJXMAVW5hYmxlIHRvIHNldCBtaW5pbWFsIG51bWJlciBvZiB3b3JrZXJzIHRvICV1OyBhY3R1YWwgdmFsdWUgaXMgJWkAVW5hYmxlIHRvIGFjY2VwdCBjb25uZWN0aW9uLCBkaXNjb25uZWN0aW5nIGNsaWVudABBbGwgSS9PIGludGVyZmFjZXMgYXJlIGRpc2FibGVkLCBYIFByb3RvY29sIHdvbid0IGJlIGFjY2Vzc2libGUAJXM6IEludmFsaWQgbWVzc2FnZSAlaSByZWNlaXZlZCBkdXJpbmcgY2xpZW50IGluaXRpYWxpemF0aW9uACVzOiBjbG9zaW5nIGNsaWVudCBiZWNhdXNlIG9mIHNodXRkb3duIChzdGF0ZTogJWkpACVzOiBFcnJvciByZWFkaW5nIGZyb20gc29ja2V0ICVzICglaSkAJXM6IHBlZXIgZGlzY29ubmVjdGVkIHdoaWxlIHJlYWRpbmcgbWVzc2FnZSBib2R5AGNsaWVudF9pZDolcyAtICVzIHdoaWxlIHJlYWRpbmcgZnJvbSBzb2NrZXQsIGNsb3NpbmcgY29ubmVjdGlvbgAlcy4ldTogSW52YWxpZCBhdXRoZW50aWNhdGlvbiBtZXRob2QgJXMAJXM6IFVuZXhwZWN0ZWQgbWVzc2FnZSBvZiB0eXBlICVpIHJlY2VpdmVkIGR1cmluZyBhdXRoZW50aWNhdGlvbgBFcnJvciB3cml0aW5nIHRvIGNsaWVudDogJXMgKCVpKQBTY2hlZHVsZXIgIiVzIiBzdGFydGVkLgBTY2hlZHVsZXIgIiVzIiBzdG9wcGVkLgBQbGVhc2Ugc2VlIHRoZSBNeVNRTCBkb2N1bWVudGF0aW9uIGZvciAnJXMnIHN5c3RlbSB2YXJpYWJsZXMgdG8gZml4IHRoZSBlcnJvcgBYIFBsdWdpbiByZWFkeSBmb3IgY29ubmVjdGlvbnMuICVzAFJldHJ5aW5nIGBiaW5kKClgIG9uIFRDUC9JUCBwb3J0ICVpAFNodXRkb3duIHRyaWdnZXJlZCBieSBteXNxbGQgYWJvcnQgZmxhZwBVc2luZyAlcyBhY2NvdW50IGZvciBhdXRoZW50aWNhdGlvbiB3aGljaCBoYXMgYWxsIHJlcXVpcmVkIHBlcm1pc3Npb25zAFVzaW5nIGV4aXN0aW5nICVzIGFjY291bnQgZm9yIGF1dGhlbnRpY2F0aW9uLiBJbmNvbXBsZXRlIGdyYW50cyB3aWxsIGJlIGZpeGVkAFNlcnZlciBzdGFydHMgaGFuZGxpbmcgaW5jb21pbmcgY29ubmVjdGlvbnMAU3RvcHBlZCBoYW5kbGluZyBpbmNvbWluZyBjb25uZWN0aW9ucwAlczogQ291bGQgbm90IGludGVycnVwdCBjbGllbnQgc2Vzc2lvbgAlczogcmVsZWFzZSB0cmlnZ2VyZWQgYnkgdGltZW91dCBpbiBzdGF0ZTolaQBJUHY2IGlzIGF2YWlsYWJsZQBVTklYIHNvY2tldCBub3QgY29uZmlndXJlZABLaWxsIGNsaWVudDogJWkgJXMAQ291bGQgbm90IGdldCBzZWN1cml0eSBjb250ZXh0IGZvciBzZXNzaW9uAFVuYWJsZSB0byBzd2l0Y2ggc2VjdXJpdHkgY29udGV4dCB0byByb290AEVycm9yIGNsb3NpbmcgU1FMIHNlc3Npb24ARXJyb3IgZXhlY3V0aW5nIGFkbWluIGNvbW1hbmQgJXM6ICVzAEVycm9yIGV4ZWN1dGluZyBlbXB0eSBhZG1pbiBjb21tYW5kAFVuYWJsZSB0byByZXRyaWV2ZSBzeXN0ZW0gdmFyaWFibGUgJyVzJwBVbmFibGUgdG8gZ2V0IGNyZWF0aW9uIHN0bXQgZm9yIGNvbGxlY3Rpb24gJyVzJzsgcXVlcnkgcmVzdWx0IHNpemU6ICVsdQBVbmFibGUgdG8gZ2V0IGVuZ2luZSBpbmZvIGZvciBjb2xsZWN0aW9uICclcyc7IGNyZWF0aW9uIHN0bXQ6ICVzAEVycm9yIGdldHRpbmcgcmVzdWx0IGRhdGE6ICVzAENhcGFiaWxpdHkgZXhwaXJlZCBwYXNzd29yZCBmYWlsZWQgd2l0aCBlcnJvcjogJXMARmFpbGVkIHRvIHNldCBTT19SRVVTRUFERFIgZmxhZyAoZXJyb3I6ICVkKS4AQ291bGQgbm90IG9wZW4gaW50ZXJuYWwgTXlTUUwgc2Vzc2lvbgBVbmFibGUgdG8gc3dpdGNoIGNvbnRleHQgdG8gdXNlciAlcwBDYW4ndCB1bnJlZ2lzdGVyICclcycgdXNlciBkZWZpbmVkIGZ1bmN0aW9uACVzOiBnZXQgcGVlciBhZGRyZXNzIGZhaWxlZCwgY2FuJ3QgcmVzb2x2ZSBJUCB0byBob3N0bmFtZQBDYXBhYmlsaXR5IGNsaWVudCBpbnRlcmFjdGl2ZSBmYWlsZWQgd2l0aCBlcnJvcjogJXMARmFpbGVkIHRvIHJlc2V0IElQVjZfVjZPTkxZIGZsYWcgKGVycm9yOiAlZCkuIFRoZSBzZXJ2ZXIgd2lsbCBsaXN0ZW4gdG8gSVB2NiBhZGRyZXNzZXMgb25seS4ASW52YWxpZCBrZXkgdHlwZQBJbnZhbGlkIGtleSBsZW5ndGggZm9yIGdpdmVuIGJsb2NrIGNpcGhlcgBDb3VsZCBub3QgY3JlYXRlIGtleXJpbmcgZGlyZWN0b3J5LiBUaGUga2V5cmluZ19maWxlIHdpbGwgc3RheSB1bnVzYWJsZSB1bnRpbCBjb3JyZWN0IHBhdGggdG8gdGhlIGtleXJpbmcgZGlyZWN0b3J5IGdldHMgcHJvdmlkZWQAa2V5cmluZ19maWxlIGluaXRpYWxpemF0aW9uIGZhaWx1cmUuIFBsZWFzZSBjaGVjayBpZiB0aGUga2V5cmluZ19maWxlX2RhdGEgcG9pbnRzIHRvIHJlYWRhYmxlIGtleXJpbmcgZmlsZSBvciBrZXlyaW5nIGZpbGUgY2FuIGJlIGNyZWF0ZWQgaW4gdGhlIHNwZWNpZmllZCBsb2NhdGlvbi4gVGhlIGtleXJpbmdfZmlsZSB3aWxsIHN0YXkgdW51c2FibGUgdW50aWwgY29ycmVjdCBwYXRoIHRvIHRoZSBrZXlyaW5nIGZpbGUgZ2V0cyBwcm92aWRlZABrZXlyaW5nX2ZpbGUgaW5pdGlhbGl6YXRpb24gZmFpbHVyZSBkdWUgdG8gaW50ZXJuYWwgZXhjZXB0aW9uIGluc2lkZSB0aGUgcGx1Z2luLgBGYWlsZWQgdG8gZ2VuZXJhdGUgYSBrZXkgZHVlIHRvIGludGVybmFsIGV4Y2VwdGlvbiBpbnNpZGUga2V5cmluZ19maWxlIHBsdWdpbgBFcnJvciB3aGlsZSAlcyBrZXk6IGludmFsaWQga2V5X3R5cGUARXJyb3Igd2hpbGUgJXMga2V5OiBrZXlfaWQgY2Fubm90IGJlIGVtcHR5AEZhaWxlZCB0byAlcyBkdWUgdG8gaW50ZXJuYWwgZXhjZXB0aW9uIGluc2lkZSAlcyBwbHVnaW4ASW5jb3JyZWN0IEtleXJpbmcgZmlsZQBGb3VuZCBtYWxmb3JtZWQga2V5cmluZyBiYWNrdXAgZmlsZSAtIHJlbW92aW5nIGl0AEVycm9yIHdoaWxlIHJlc3RvcmluZyBrZXlyaW5nIGZyb20gYmFja3VwIGZpbGUgY2Fubm90IG92ZXJ3cml0ZSBrZXlyaW5nIHdpdGggYmFja3VwAEVycm9yIHdoaWxlIGZsdXNoaW5nIGluLW1lbW9yeSBrZXlyaW5nIGludG8ga2V5cmluZyBmaWxlAEVycm9yIHdoaWxlIHJlYWRpbmcgc3RhdCBmb3IgJXMuUGxlYXNlIGNoZWNrIGlmIGZpbGUgJXMgd2FzIG5vdCByZW1vdmVkLiBPUyByZXR1cm5lZCB0aGlzIGVycm9yOiAlcwBDb3VsZCBub3QgcmVtb3ZlIGZpbGUgJXMgT1MgcmV0dW5lZCB0aGlzIGVycm9yOiAlcwBDb3VsZCBub3QgdHJ1bmNhdGUgZmlsZSAlcy4gT1MgcmV0dW5lZCB0aGlzIGVycm9yOiAlcwBVbmtub3duIGVycm9yICVkAGtleXJpbmdfZmlsZV9kYXRhIGNhbm5vdCBiZSBzZXQgdG8gbmV3IHZhbHVlIGFzIHRoZSBrZXlyaW5nIGZpbGUgY2Fubm90IGJlIGNyZWF0ZWQvYWNjZXNzZWQgaW4gdGhlIHByb3ZpZGVkIHBhdGgAJXMARXJyb3Igd2hpbGUgbG9hZGluZyBrZXlyaW5nIGNvbnRlbnQuIFRoZSBrZXlyaW5nIG1pZ2h0IGJlIG1hbGZvcm1lZABDb3VsZCBub3QgZmx1c2gga2V5cyB0byBrZXlyaW5nAENvdWxkIG5vdCBmbHVzaCBrZXlzIHRvIGtleXJpbmcncyBiYWNrdXAARXJyb3Igd2hpbGUgZmV0Y2hpbmcga2V5OiBrZXlfaWQgY2Fubm90IGJlIGVtcHR5AEVycm9yIHdoaWxlIHJlbW92aW5nIGtleToga2V5X2lkIGNhbm5vdCBiZSBlbXB0eQBGb3Iga2V5cmluZ19va3YgdG8gYmUgaW5pdGlhbGl6ZWQsIHBsZWFzZSBwb2ludCBrZXlyaW5nX29rdl9jb25mX2RpciB2YXJpYWJsZSB0byBhIGRpcmVjdG9yeSB3aXRoIE9yYWNsZSBLZXkgVmF1bHQgY29uZmlndXJhdGlvbiBmaWxlIGFuZCBzc2wgbWF0ZXJpYWxzAGtleXJpbmdfb2t2IGluaXRpYWxpemF0aW9uIGZhaWx1cmUuIFBsZWFzZSBjaGVjayB0aGF0IHRoZSBrZXlyaW5nX29rdl9jb25mX2RpciBwb2ludHMgdG8gYSByZWFkYWJsZSBkaXJlY3RvcnkgYW5kIHRoYXQgdGhlIGRpcmVjdG9yeSBjb250YWlucyBPcmFjbGUgS2V5IFZhdWx0IGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgc3NsIG1hdGVyaWFscy4gUGxlYXNlIGFsc28gY2hlY2sgdGhhdCBPcmFjbGUgS2V5IFZhdWx0IGlzIHVwIGFuZCBydW5uaW5nLgBrZXlyaW5nX29rdiBpbml0aWFsaXphdGlvbiBmYWlsdXJlIGR1ZSB0byBpbnRlcm5hbCBleGNlcHRpb24gaW5zaWRlIHRoZSBwbHVnaW4ASW52YWxpZCBrZXkgdHlwZQBJbnZhbGlkIGtleSBsZW5ndGggZm9yIGdpdmVuIGJsb2NrIGNpcGhlcgBGYWlsZWQgdG8gZ2VuZXJhdGUgYSBrZXkgZHVlIHRvIGludGVybmFsIGV4Y2VwdGlvbiBpbnNpZGUga2V5cmluZ19va3YgcGx1Z2luAENvdWxkIG5vdCBmaW5kIGVudHJ5IGZvciBzZXJ2ZXIgaW4gY29uZmlndXJhdGlvbiBmaWxlICVzAENvdWxkIG5vdCBmaW5kIGVudHJ5IGZvciBzdGFuZGJ5IHNlcnZlciBpbiBjb25maWd1cmF0aW9uIGZpbGUgJXMAQ291bGQgbm90IHBhcnNlIHRoZSAlcyBmaWxlIHByb3ZpZGVkAENvdWxkIG5vdCBsb2FkIGtleXMnIHVpZHMgZnJvbSB0aGUgT0tWIHNlcnZlcgBDb3VsZCBub3QgaW5pdGlhbGl6ZSBzc2wgbGF5ZXIAQ291bGQgbm90IGluaXRpYWxpemUgT0tWIGNsaWVudABDb3VsZCBub3QgY29ubmVjdCB0byB0aGUgT0tWIHNlcnZlcgBDb3VsZCBub3QgcmVtb3ZlIHRoZSBrZXkAQ291bGQgbm90IGFkZCBhdHRyaWJ1dGUsIGF0dHJpYnV0ZV9uYW1lPSVzIGF0dHJpYnV0ZSB2YWx1ZT0lcwBDb3VsZCBub3QgZ2VuZXJhdGUgdGhlIGtleS4AQ291bGQgbm90IHN0b3JlIHRoZSBrZXkuAENvdWxkIG5vdCBhY3RpdmF0ZSB0aGUga2V5LgBDb3VsZCBub3QgZmV0Y2ggZ2VuZXJhdGVkIGtleQBDb3VsZCBub3Qgc3RvcmUvZ2VuZXJhdGUgdGhlIGtleSAtIGZhaWxlZCB0byBzZXQga2V5IGF0dHJpYnV0ZSB4LWtleS1yZWFkeQBDb3VsZCBub3QgcmV0cmlldmUga2V5IHNpZ25hdHVyZSBmcm9tIGN1c3RvbSBhdHRyaWJ1dGVzAENvdWxkIG5vdCByZXRyaWV2ZSBrZXkgZnJvbSBPS1YARXJyb3IgbG9hZGluZyB0cnVzdCBzdG9yZQBFcnJvciBzZXR0aW5nIHRoZSBjZXJ0aWZpY2F0ZSBmaWxlLgBFcnJvciBzZXR0aW5nIHRoZSBrZXkgZmlsZS4AUHJpdmF0ZSBrZXkgZG9lcyBub3QgbWF0Y2ggdGhlIGNlcnRpZmljYXRlIHB1YmxpYyBrZXkASW5jb3JyZWN0IEtleXJpbmcgZmlsZQBLZXlyaW5nX2VuY3J5cHRlZF9maWxlIGRlY3J5cHRpb24gZmFpbGVkLiBQbGVhc2UgdmVyaWZ5IC0ta2V5cmluZy1lbmNyeXB0ZWQtZmlsZS1wYXNzd29yZCBvcHRpb24gdmFsdWUuAEZvdW5kIG1hbGZvcm1lZCBrZXlyaW5nIGJhY2t1cCBmaWxlIC0gcmVtb3ZpbmcgaXQARXJyb3Igd2hpbGUgcmVzdG9yaW5nIGtleXJpbmcgZnJvbSBiYWNrdXAgZmlsZSBjYW5ub3Qgb3ZlcndyaXRlIGtleXJpbmcgd2l0aCBiYWNrdXAARXJyb3Igd2hpbGUgZmx1c2hpbmcgaW4tbWVtb3J5IGtleXJpbmcgaW50byBrZXlyaW5nIGZpbGUAS2V5cmluZ19lbmNyeXB0ZWRfZmlsZSBlbmNyeXB0aW9uIGZhaWxlZC4gUGxlYXNlIHZlcmlmeSAtLWtleXJpbmctZW5jcnlwdGVkLWZpbGUtcGFzc3dvcmQgb3B0aW9uIHZhbHVlLgBrZXlyaW5nX2VuY3J5cHRlZF9maWxlX2RhdGEgY2Fubm90IGJlIHNldCB0byBuZXcgdmFsdWUgYXMgdGhlIGtleXJpbmcgZmlsZSBjYW5ub3QgYmUgY3JlYXRlZC9hY2Nlc3NlZCBpbiB0aGUgcHJvdmlkZWQgcGF0aABDb3VsZCBub3QgY3JlYXRlIGtleXJpbmcgZGlyZWN0b3J5IFRoZSBrZXlyaW5nX2VuY3J5cHRlZF9maWxlIHdpbGwgc3RheSB1bnVzYWJsZSB1bnRpbCBjb3JyZWN0IHBhdGggdG8gdGhlIGtleXJpbmcgZGlyZWN0b3J5IGdldHMgcHJvdmlkZWQAVGhlIGtleXJpbmdfZW5jcnlwdGVkX2ZpbGVfcGFzc3dvcmQgbXVzdCBiZSBzZXQgdG8gYSB2YWxpZCB2YWx1ZS4AVG9vIGxvbmcga2V5cmluZ19lbmNyeXB0ZWRfZmlsZV9wYXNzd29yZCB2YWx1ZS4Aa2V5cmluZ19lbmNyeXB0ZWRfZmlsZSBpbml0aWFsaXphdGlvbiBmYWlsdXJlLiBQbGVhc2UgY2hlY2sgaWYgdGhlIGtleXJpbmdfZW5jcnlwdGVkX2ZpbGVfZGF0YSBwb2ludHMgdG8gcmVhZGFibGUga2V5cmluZyBmaWxlIG9yIGtleXJpbmcgZmlsZSBjYW4gYmUgY3JlYXRlZCBpbiB0aGUgc3BlY2lmaWVkIGxvY2F0aW9uIG9yIHBhc3N3b3JkIHRvIGRlY3J5cHQga2V5cmluZyBmaWxlIGlzIGNvcnJlY3QuAGtleXJpbmdfZW5jcnlwdGVkX2ZpbGUgaW5pdGlhbGl6YXRpb24gZmFpbHVyZSBkdWUgdG8gaW50ZXJuYWwgZXhjZXB0aW9uIGluc2lkZSB0aGUgcGx1Z2luAEZhaWxlZCB0byBnZW5lcmF0ZSBhIGtleSBkdWUgdG8gaW50ZXJuYWwgZXhjZXB0aW9uIGluc2lkZSBrZXlyaW5nX2VuY3J5cHRlZF9maWxlIHBsdWdpbgBrZXlyaW5nX2F3c19jbWtfaWQgY2Fubm90IGJlIHNldCB0byB0aGUgbmV3IHZhbHVlIGFzIEFXUyBLTVMgc2VlbXMgdG8gbm90IHVuZGVyc3RhbmQgdGhlIGlkIHByb3ZpZGVkLiBQbGVhc2UgY2hlY2sgdGhhdCBDTUsgaWQgcHJvdmlkZWQgaXMgY29ycmVjdC4Aa2V5cmluZ19hd3NfcmVnaW9uIGNhbm5vdCBiZSBzZXQgdG8gdGhlIG5ldyB2YWx1ZSBhcyBBV1MgS01TIHNlZW1zIHRvIG5vdCB1bmRlcnN0YW5kIHRoZSByZWdpb24gcHJvdmlkZWQuIFBsZWFzZSBjaGVjayB0aGF0IHJlZ2lvbiBwcm92aWRlZCBpcyBjb3JyZWN0LgBDb3VsZCBub3Qgb3BlbiBrZXlyaW5nX2F3cyBjb25maWd1cmF0aW9uIGZpbGU6ICVzLiBPUyByZXR1cm5lZCB0aGlzIGVycm9yOiAlcwBDb3VsZCBub3QgcmVhZCBBV1MgYWNjZXNzIGtleSBpZCBmcm9tIGtleXJpbmdfYXdzIGNvbmZpZ3VyYXRpb24gZmlsZTogJXMuIE9TIHJldHVybmVkIHRoaXMgZXJyb3I6ICVzAENvdWxkIG5vdCByZWFkIEFXUyBhY2Nlc3Mga2V5IGZyb20ga2V5cmluZ19hd3MgY29uZmlndXJhdGlvbiBmaWxlOiAlcy4gT1MgcmV0dXJuZWQgdGhpcyBlcnJvcjogJXMAUGF0aCB0byBrZXlyaW5nIGF3cyBjb25maWd1cmF0aW9uIGZpbGUgY2Fubm90IGJlIGVtcHR5AFBhdGggdG8ga2V5cmluZ19hd3Mgc3RvcmFnZSBmaWxlIGNhbm5vdCBiZSBlbXB0eS4AVW5hYmxlIHRvIGNyZWF0ZS9hY2Nlc3Mga2V5cmluZyBkaXJlY3RvcnkuAFVuYWJsZSB0byBjcmVhdGUvYWNjZXNzIGtleXJpbmdfYXdzIHN0b3JhZ2UgZmlsZS4gUGxlYXNlIGNoZWNrIGlmIGtleXJpbmdfYXdzX2RhdGFfZmlsZSBwb2ludHMgdG8gbG9jYXRpb24gd2hlcmUga2V5cmluZyBmaWxlIGNhbiBiZSBjcmVhdGVkL2FjY2Vzc2VkLiBQbGVhc2UgYWxzbyBtYWtlIHN1cmUgdGhhdCBNeVNRTCBzZXJ2ZXIncyB1c2VyIGhhcyBoaWdoIGVub3VnaCBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGlzIGxvY2F0aW9uLgBrZXlyaW5nX2F3cyBpbml0aWFsaXphdGlvbiBmYWlsZWQgZHVlIHRvIGludGVybmFsIGVycm9yIHdoZW4gaW5pdGlhbGl6aW5nIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmUgLSAlcy4gT1MgcmV0dXJuZWQgdGhpcyBlcnJvcjogJXM6AENvdWxkIG5vdCBhY2Nlc3Mga2V5cmluZ19hd3Mgc3RvcmFnZSBmaWxlIGluIHRoZSBwYXRoIHByb3ZpZGVkLiBQbGVhc2UgY2hlY2sgaWYgdGhlIGtleXJpbmdfYXdzIGRpcmVjdG9yeSBjYW4gYmUgYWNjZXNzZWQgYnkgTXlTUUwgU2VydmVyAGtleXJpbmdfYXdzX2Nta19pZCBoYXMgdG8gYmUgc2V0AENvdWxkIG5vdCBnZXQgQVdTIEtNUyBjcmVkZW50aWFscyBmcm9tIHRoZSBjb25maWd1cmF0aW9uIGZpbGUAa2V5cmluZ19hd3MgaW5pdGlhbGl6YXRpb24gZmFpbHVyZS4Aa2V5cmluZ19hd3MgaW5pdGlhbGl6YXRpb24gZmFpbHVyZSBkdWUgdG8gaW50ZXJuYWwgZXhjZXB0aW9uIGluc2lkZSB0aGUgcGx1Z2luAEludmFsaWQga2V5IGxlbmd0aCBmb3IgZ2l2ZW4gYmxvY2sgY2lwaGVyAEZhaWxlZCB0byBnZW5lcmF0ZSBhIGtleSBkdWUgdG8gaW50ZXJuYWwgZXhjZXB0aW9uIGluc2lkZSBrZXlyaW5nX2ZpbGUgcGx1Z2luAEluY29ycmVjdCBLZXlyaW5nIGZpbGUARm91bmQgbWFsZm9ybWVkIGtleXJpbmcgYmFja3VwIGZpbGUgLSByZW1vdmluZyBpdABFcnJvciB3aGlsZSByZXN0b3Jpbmcga2V5cmluZyBmcm9tIGJhY2t1cCBmaWxlIGNhbm5vdCBvdmVyd3JpdGUga2V5cmluZyB3aXRoIGJhY2t1cABFcnJvciB3aGlsZSBmbHVzaGluZyBpbi1tZW1vcnkga2V5cmluZyBpbnRvIGtleXJpbmcgZmlsZQBXcm9uZyByZWdpb24AQ291bGQgbm90IGNvbm5lY3QgdG8gQVdTIEtNUyB3aXRoIHRoZSBjcmVkZW50aWFscyBwcm92aWRlZC4gUGxlYXNlIG1ha2Ugc3VyZSB0aGV5IGFyZSBjb3JyZWN0LiBBV1MgS01TIHJldHVybmVkIHRoaXMgZXJyb3I6ICVzAENvdWxkIG5vdCBnZW5lcmF0ZSBhIG5ldyBrZXkuIEFXUyBLTVMgcmV0dXJuZWQgdGhpcyBlcnJvcjogJXMAQ291bGQgbm90IGVuY3J5cHQga2V5LiBBV1MgS01TIHJldHVybmVkIHRoaXMgZXJyb3I6ICVzAENvdWxkIG5vdCByZS1lbmNyeXB0IGtleS4gQVdTIEtNUyByZXR1cm5lZCB0aGlzIGVycm9yOiAlcwBDb3VsZCBub3QgZGVjcnlwdCBrZXkuIEFXUyBLTVMgcmV0dXJuZWQgdGhpcyBlcnJvcjogJXMAQ291bGQgbm90IHJvdGF0ZSB0aGUgQ01LLiBBV1MgS01TIHJldHVybmVkIHRoaXMgZXJyb3I6ICVzAFRoZSByZXF1ZXN0ZWQgR1RJRCAnJXM6JWxsZCcgd2FzIGFscmVhZHkgdXNlZCwgdGhlIHRyYW5zYWN0aW9uIHdpbGwgcm9sbGJhY2suAFRoZSBncm91cCByZXBsaWNhdGlvbiBhcHBsaWVyIHRocmVhZCB3YXMga2lsbGVkLgBFcnJvciBhdCBldmVudCBoYW5kbGluZyEgR290IGVycm9yOiAlZC4ARXJyb3Igd2hlbiBleHRyYWN0aW5nIGdyb3VwIEdUSUQgZXhlY3V0aW9uIGluZm9ybWF0aW9uLCBzb21lIHJlY292ZXJ5IG9wZXJhdGlvbnMgbWF5IGZhY2UgZnV0dXJlIGlzc3Vlcy4AQW4gZXJyb3Igb2NjdXJyZWQgd2hlbiB0cnlpbmcgdG8gcmVkdWNlIHRoZSBDZXJ0aWZpY2F0aW9uIGluZm9ybWF0aW9uIHNpemUgZm9yIHRyYW5zbWlzc2lvbi4ARmFpbGVkIHRvIGNyZWF0ZSBncm91cCByZXBsaWNhdGlvbiBwaXBlbGluZSBhcHBsaWVyIGNhY2hlIQBVbmJsb2NraW5nIHRoZSBncm91cCByZXBsaWNhdGlvbiB0aHJlYWQgd2FpdGluZyBmb3IgYXBwbGllciB0byBzdGFydCwgYXMgdGhlIHN0YXJ0IGdyb3VwIHJlcGxpY2F0aW9uIHdhcyBraWxsZWQuAFRoZSBncm91cCByZXBsaWNhdGlvbiBhcHBsaWVyIHBpcGVsaW5lIHdhcyBub3QgcHJvcGVybHkgZGlzcG9zZWQuIENoZWNrIHRoZSBlcnJvciBsb2cgZm9yIGZ1cnRoZXIgaW5mby4AVGhlIGFwcGxpZXIgdGhyZWFkIGV4ZWN1dGlvbiB3YXMgYWJvcnRlZC4gVW5hYmxlIHRvIHByb2Nlc3MgbW9yZSB0cmFuc2FjdGlvbnMsIHRoaXMgbWVtYmVyIHdpbGwgbm93IGxlYXZlIHRoZSBncm91cC4ARmF0YWwgZXJyb3IgZHVyaW5nIGV4ZWN1dGlvbiBvbiB0aGUgQXBwbGllciBwcm9jZXNzIG9mIEdyb3VwIFJlcGxpY2F0aW9uLiBUaGUgc2VydmVyIHdpbGwgbm93IGxlYXZlIHRoZSBncm91cC4ARXJyb3Igc3RvcHBpbmcgYWxsIHJlcGxpY2F0aW9uIGNoYW5uZWxzIHdoaWxlIHNlcnZlciB3YXMgbGVhdmluZyB0aGUgZ3JvdXAuICVzAEVycm9yIHNlbmRpbmcgc2luZ2xlIHByaW1hcnkgbWVzc2FnZSBpbmZvcm1pbmcgdGhhdCBwcmltYXJ5IGRpZCBhcHBseSByZWxheSBsb2dzLgBFcnJvciB1cGRhdGluZyB0cmFuc2FjdGlvbiBzbmFwc2hvdCB2ZXJzaW9uIGFmdGVyIHRyYW5zYWN0aW9uIGJlaW5nIHBvc2l0aXZlbHkgY2VydGlmaWVkLgBFcnJvciBmZXRjaGluZyB0cmFuc2FjdGlvbiBzaWRubyBhZnRlciB0cmFuc2FjdGlvbiBiZWluZyBwb3NpdGl2ZWx5IGNlcnRpZmllZC4AQnJvYWRjYXN0IG9mIGNvbW1pdHRlZCB0cmFuc2FjdGlvbnMgbWVzc2FnZSBmYWlsZWQuAFVuYWJsZSB0byBwYXJzZSB0aGUgZ3JvdXBfcmVwbGljYXRpb25fZ3JvdXBfbmFtZSBkdXJpbmcgdGhlIENlcnRpZmljYXRpb24gbW9kdWxlIGluaXRpYWxpemF0aW9uLgBVbmFibGUgdG8gYWRkIHRoZSBncm91cF9zaWQgaW4gdGhlIGdyb3VwX2d0aWRfc2lkX21hcCBkdXJpbmcgdGhlIENlcnRpZmljYXRpb24gbW9kdWxlIGluaXRpYWxpemF0aW9uLgBFcnJvciB1cGRhdGluZyBncm91cF9ndGlkX2V4ZWN1dGVkIEdJVEQgc2V0IGR1cmluZyB0aGUgQ2VydGlmaWNhdGlvbiBtb2R1bGUgaW5pdGlhbGl6YXRpb24uAFVuYWJsZSB0byBoYW5kbGUgdGhlIGRvbm9yJ3MgdHJhbnNhY3Rpb24gaW5mb3JtYXRpb24gd2hlbiBpbml0aWFsaXppbmcgdGhlIGNvbmZsaWN0IGRldGVjdGlvbiBjb21wb25lbnQuIFBvc3NpYmxlIG91dCBvZiBtZW1vcnkgZXJyb3IuAEVycm9yIHdoZW4gZXN0YWJsaXNoaW5nIGEgc2VydmVyIGNvbm5lY3Rpb24gZHVyaW5nIHRoZSBDZXJ0aWZpY2F0aW9uIG1vZHVsZSBpbml0aWFsaXphdGlvbi4ARXJyb3Igd2hlbiBleHRyYWN0aW5nIHRoaXMgbWVtYmVyIEdUSUQgZXhlY3V0ZWQgc2V0LiBDZXJ0aWZpY2F0aW9uIG1vZHVsZSBjYW4ndCBiZSBwcm9wZXJseSBpbml0aWFsaXplZC4ARXJyb3Igd2hpbGUgYWRkaW5nIHRoZSBzZXJ2ZXIgR1RJRCBFWEVDVVRFRCBzZXQgdG8gdGhlIGdyb3VwX2d0aWRfZXhlY3V0ZSBkdXJpbmcgdGhlIENlcnRpZmljYXRpb24gbW9kdWxlIGluaXRpYWxpemF0aW9uLgBFcnJvciB3aGVuIGV4dHJhY3RpbmcgdGhpcyBtZW1iZXIgcmV0cmlldmVkIHNldCBmb3IgaXRzIGFwcGxpZXIuIENlcnRpZmljYXRpb24gbW9kdWxlIGNhbid0IGJlIHByb3Blcmx5IGluaXRpYWxpemVkLgBFcnJvciB3aGlsZSBhZGRpbmcgdGhlIG1lbWJlciByZXRyaWV2ZWQgc2V0IHRvIHRoZSBncm91cF9ndGlkX2V4ZWN1dGVkIGR1cmluZyB0aGUgQ2VydGlmaWNhdGlvbiBtb2R1bGUgaW5pdGlhbGl6YXRpb24uAEVycm9yIGR1cmluZyBDZXJ0aWZpY2F0aW9uIG1vZHVsZSBpbml0aWFsaXphdGlvbi4AVW5hYmxlIHRvIHVwZGF0ZSBsYXN0IGNvbmZsaWN0IGZyZWUgdHJhbnNhY3Rpb24sIHRoaXMgdHJhbnNhY3Rpb24gd2lsbCBub3QgYmUgdHJhY2tlZCBvbiBwZXJmb3JtYW5jZV9zY2hlbWEucmVwbGljYXRpb25fZ3JvdXBfbWVtYmVyX3N0YXRzLmxhc3RfY29uZmxpY3RfZnJlZV90cmFuc2FjdGlvbi4ARXJyb3IgdXBkYXRpbmcgdHJhbnNhY3Rpb24gc25hcHNob3QgdmVyc2lvbiByZWZlcmVuY2UgZm9yIGludGVybmFsIHN0b3JhZ2UuAEVycm9yIGZldGNoaW5nIHRyYW5zYWN0aW9uIHNpZG5vIHdoaWxlIGFkZGluZyB0byB0aGUgZ3JvdXBfZ3RpZF9leGVjdXRlZCBzZXQuAEVycm9yIHdoaWxlIGVuc3VyaW5nIHRoZSBzaWRubyBiZSBwcmVzZW50IGluIHRoZSBncm91cF9ndGlkX2V4ZWN1dGVkLgBJbXBvc3NpYmxlIHRvIGdlbmVyYXRlIEdsb2JhbCBUcmFuc2FjdGlvbiBJZGVudGlmaWVyOiB0aGUgaW50ZWdlciBjb21wb25lbnQgcmVhY2hlZCB0aGUgbWF4aW1hbCB2YWx1ZS4gUmVzdGFydCB0aGUgZ3JvdXAgd2l0aCBhIG5ldyBncm91cF9yZXBsaWNhdGlvbl9ncm91cF9uYW1lLgBJbnZhbGlkIHN0YWJsZSB0cmFuc2FjdGlvbnMgc2V0LgBFcnJvciB1cGRhdGluZyBzdGFibGUgdHJhbnNhY3Rpb25zIHNldC4AVGhlcmUgd2FzIGFuIGVycm9yIHdoZW4gZmlsbGluZyB0aGUgbWlzc2luZyBHVElEcyBvbiB0aGUgYXBwbGllciBjaGFubmVsIHJlY2VpdmVkIHNldC4gRGVzcGl0ZSBub3QgY3JpdGljYWwsIG9uIHRoZSBsb25nIHJ1biB0aGlzIG1heSBjYXVzZSBwZXJmb3JtYW5jZSBpc3N1ZXMuAFNraXBwaW5nIHRoZSBjb21wdXRhdGlvbiBvZiB0aGUgVHJhbnNhY3Rpb25zX2NvbW1pdHRlZF9hbGxfbWVtYmVycyBmaWVsZCBhcyBhbiBvbGRlciBpbnN0YW5jZSBvZiB0aGlzIGNvbXB1dGF0aW9uIGlzIHN0aWxsIG9uZ29pbmcuAE51bGwgcGFja2V0IG9uIGNlcnRpZmllcidzIHF1ZXVlLgBFcnJvciByZWFkaW5nIEdUSURzIGZyb20gdGhlIG1lc3NhZ2UuAEVycm9yIHByb2Nlc3Npbmcgc3RhYmxlIHRyYW5zYWN0aW9ucyBzZXQuAEVycm9yIHByb2Nlc3NpbmcgaW50ZXJzZWN0aW9uIG9mIHN0YWJsZSB0cmFuc2FjdGlvbnMgc2V0LgBFcnJvciBzZXR0aW5nIHN0YWJsZSB0cmFuc2FjdGlvbnMgc2V0LgBFcnJvciByZWFkaW5nIGdyb3VwX2d0aWRfZXh0cmFjdGVkIGZyb20gdGhlIFZpZXdfY2hhbmdlX2xvZ19ldmVudC4ARXJyb3IgcmVhZGluZyB0aGUgd3JpdGUgc2V0IGl0ZW0gJyVzJyBmcm9tIHRoZSBWaWV3X2NoYW5nZV9sb2dfZXZlbnQuAEVycm9yIGR1cmluZyBjZXJ0aWZpY2F0aW9uX2luZm8gaW5pdGlhbGl6YXRpb24uAFByaW1hcnkgaGFkIGFwcGxpZWQgYWxsIHJlbGF5IGxvZ3MsIGRpc2FibGVkIGNvbmZsaWN0IGRldGVjdGlvbi4ATWVzc2FnZSByZWNlaXZlZCB3aGlsZSB0aGUgcGx1Z2luIGlzIG5vdCByZWFkeSwgbWVzc2FnZSBkaXNjYXJkZWQuAE1lc3NhZ2UgcmVjZWl2ZWQgd2l0aG91dCBhIHByb3BlciBncm91cCByZXBsaWNhdGlvbiBhcHBsaWVyLgBFcnJvciBwcm9jZXNzaW5nIG1lc3NhZ2UgaW4gQ2VydGlmaWVyLgBUaGlzIHNlcnZlciB3YXMgbm90IGRlY2xhcmVkIG9ubGluZSBzaW5jZSBpdCBpcyBvbiBzdGF0dXMgJXMuAFRoaXMgc2VydmVyIHdhcyBkZWNsYXJlZCBvbmxpbmUgd2l0aGluIHRoZSByZXBsaWNhdGlvbiBncm91cC4AV2hlbiBkZWNsYXJpbmcgdGhlIHBsdWdpbiBvbmxpbmUgaXQgd2FzIG5vdCBwb3NzaWJsZSB0byBkaXNhYmxlIHRoZSBzZXJ2ZXIgcmVhZCBtb2RlIHNldHRpbmdzLiBUcnkgdG8gZGlzYWJsZSBpdCBtYW51YWxseS4AVGhlIG1lbWJlciB3aXRoIGFkZHJlc3MgJXM6JXUgd2FzIGRlY2xhcmVkIG9ubGluZSB3aXRoaW4gdGhlIHJlcGxpY2F0aW9uIGdyb3VwLgBNZW1iZXIgd2l0aCBhZGRyZXNzICVzOiV1IGhhcyBiZWNvbWUgdW5yZWFjaGFibGUuAE1lbWJlciB3aXRoIGFkZHJlc3MgJXM6JXUgaXMgcmVhY2hhYmxlIGFnYWluLgBUaGlzIHNlcnZlciBpcyBub3QgYWJsZSB0byByZWFjaCBhIG1ham9yaXR5IG9mIG1lbWJlcnMgaW4gdGhlIGdyb3VwLiBUaGlzIHNlcnZlciB3aWxsIG5vdyBibG9jayBhbGwgdXBkYXRlcy4gVGhlIHNlcnZlciB3aWxsIHJlbWFpbiBibG9ja2VkIHVudGlsIGNvbnRhY3Qgd2l0aCB0aGUgbWFqb3JpdHkgaXMgcmVzdG9yZWQuIEl0IGlzIHBvc3NpYmxlIHRvIHVzZSBncm91cF9yZXBsaWNhdGlvbl9mb3JjZV9tZW1iZXJzIHRvIGZvcmNlIGEgbmV3IGdyb3VwIG1lbWJlcnNoaXAuAFRoaXMgc2VydmVyIGlzIG5vdCBhYmxlIHRvIHJlYWNoIGEgbWFqb3JpdHkgb2YgbWVtYmVycyBpbiB0aGUgZ3JvdXAuIFRoaXMgc2VydmVyIHdpbGwgbm93IGJsb2NrIGFsbCB1cGRhdGVzLiBUaGUgc2VydmVyIHdpbGwgcmVtYWluIGJsb2NrZWQgZm9yIHRoZSBuZXh0ICVsdSBzZWNvbmRzLiBVbmxlc3MgY29udGFjdCB3aXRoIHRoZSBtYWpvcml0eSBpcyByZXN0b3JlZCwgYWZ0ZXIgdGhpcyB0aW1lIHRoZSBtZW1iZXIgd2lsbCBlcnJvciBvdXQgYW5kIGxlYXZlIHRoZSBncm91cC4gSXQgaXMgcG9zc2libGUgdG8gdXNlIGdyb3VwX3JlcGxpY2F0aW9uX2ZvcmNlX21lbWJlcnMgdG8gZm9yY2UgYSBuZXcgZ3JvdXAgbWVtYmVyc2hpcC4AQSBncm91cCBtZW1iZXJzaGlwIGNoYW5nZSB3YXMgcmVjZWl2ZWQgYnV0IHRoZSBwbHVnaW4gaXMgYWxyZWFkeSBsZWF2aW5nIGR1ZSB0byB0aGUgY29uZmlndXJlZCB0aW1lb3V0IG9uIGdyb3VwX3JlcGxpY2F0aW9uX3VucmVhY2hhYmxlX21ham9yaXR5X3RpbWVvdXQgb3B0aW9uLgBUaGUgbWVtYmVyIGhhcyByZXN1bWVkIGNvbnRhY3Qgd2l0aCBhIG1ham9yaXR5IG9mIHRoZSBtZW1iZXJzIGluIHRoZSBncm91cC4gUmVndWxhciBvcGVyYXRpb24gaXMgcmVzdG9yZWQgYW5kIHRyYW5zYWN0aW9ucyBhcmUgdW5ibG9ja2VkLgBNZW1iZXJzIHJlbW92ZWQgZnJvbSB0aGUgZ3JvdXA6ICVzAFByaW1hcnkgc2VydmVyIHdpdGggYWRkcmVzcyAlcyBsZWZ0IHRoZSBncm91cC4gRWxlY3RpbmcgbmV3IFByaW1hcnkuAE1lbWJlcnMgam9pbmVkIHRoZSBncm91cDogJXMAVGhlcmUgd2FzIGEgcHJldmlvdXMgcGx1Z2luIGVycm9yIHdoaWxlIHRoZSBtZW1iZXIgam9pbmVkIHRoZSBncm91cC4gVGhlIG1lbWJlciB3aWxsIG5vdyBleGl0IHRoZSBncm91cC4AR3JvdXAgbWVtYmVyc2hpcCBjaGFuZ2VkIHRvICVzIG9uIHZpZXcgJXMuAEdyb3VwIG1lbWJlcnNoaXAgY2hhbmdlZDogVGhpcyBtZW1iZXIgaGFzIGxlZnQgdGhlIGdyb3VwLgBNZW1iZXIgd2FzIGV4cGVsbGVkIGZyb20gdGhlIGdyb3VwIGR1ZSB0byBuZXR3b3JrIGZhaWx1cmVzLCBjaGFuZ2luZyBtZW1iZXIgc3RhdHVzIHRvIEVSUk9SLgBVbmFibGUgdG8gb3BlbiBzZXNzaW9uIHRvIChyZSlzZXQgcmVhZCBvbmx5IG1vZGUuIFNraXBwaW5nLgBBIG5ldyBwcmltYXJ5IHdpdGggYWRkcmVzcyAlczoldSB3YXMgZWxlY3RlZC4gJXMAVW5hYmxlIHRvIGRpc2FibGUgc3VwZXIgcmVhZCBvbmx5IGZsYWcuIFRyeSB0byBkaXNhYmxlIGl0IG1hbnVhbGx5AFVuYWJsZSB0byBzZXQgc3VwZXIgcmVhZCBvbmx5IGZsYWcuIFRyeSB0byBzZXQgaXQgbWFudWFsbHkuAFRoaXMgc2VydmVyIGlzIHdvcmtpbmcgYXMgcHJpbWFyeSBtZW1iZXIuAFRoaXMgc2VydmVyIGlzIHdvcmtpbmcgYXMgc2Vjb25kYXJ5IG1lbWJlciB3aXRoIHByaW1hcnkgbWVtYmVyIGFkZHJlc3MgJXM6JXUuAFVuYWJsZSB0byBzZXQgYW55IG1lbWJlciBhcyBwcmltYXJ5LiBObyBzdWl0YWJsZSBjYW5kaWRhdGUuAEVycm9yIHdoZW4gYWN0aXZhdGluZyBzdXBlcl9yZWFkX29ubHkgbW9kZSBvbiBzdGFydC4gVGhlIG1lbWJlciB3aWxsIG5vdyBleGl0IHRoZSBncm91cC4AR3JvdXAgY29udGFpbnMgJWx1IG1lbWJlcnMgd2hpY2ggaXMgZ3JlYXRlciB0aGFuIGdyb3VwX3JlcGxpY2F0aW9uX2F1dG9faW5jcmVtZW50X2luY3JlbWVudCB2YWx1ZSBvZiAlbHUuIFRoaXMgY2FuIGxlYWQgdG8gYSBoaWdoZXIgdHJhbnNhY3Rpb25hbCBhYm9ydCByYXRlLgBNZW1iZXIgd2l0aCBhZGRyZXNzICclczoldScgZGlkbid0IHByb3ZpZGUgYW55IGRhdGEgZHVyaW5nIHRoZSBsYXN0IGdyb3VwIGNoYW5nZS4gR3JvdXAgaW5mb3JtYXRpb24gY2FuIGJlIG91dGRhdGVkIGFuZCBsZWFkIHRvIGVycm9ycyBvbiByZWNvdmVyeS4AVGhlcmUgaXMgYWxyZWFkeSBhIG1lbWJlciB3aXRoIHNlcnZlcl91dWlkICVzLiBUaGUgbWVtYmVyIHdpbGwgbm93IGV4aXQgdGhlIGdyb3VwLgBFcnJvciB3aGVuIGV4dHJhY3RpbmcgaW5mb3JtYXRpb24gZm9yIGdyb3VwIGNoYW5nZS4gT3BlcmF0aW9ucyBhbmQgY2hlY2tzIG1hZGUgdG8gZ3JvdXAgam9pbmVycyBtYXkgYmUgaW5jb21wbGV0ZS4ARXJyb3Igd2hlbiBleHRyYWN0aW5nIHRoaXMgbWVtYmVyIEdUSUQgZXhlY3V0ZWQgc2V0LiBPcGVyYXRpb25zIGFuZCBjaGVja3MgbWFkZSB0byBncm91cCBqb2luZXJzIG1heSBiZSBpbmNvbXBsZXRlLgBFcnJvciB3aGVuIGV4dHJhY3RpbmcgdGhpcyBtZW1iZXIgcmV0cmlldmVkIHNldCBmb3IgaXRzIGFwcGxpZXIuIE9wZXJhdGlvbnMgYW5kIGNoZWNrcyBtYWRlIHRvIGdyb3VwIGpvaW5lcnMgbWF5IGJlIGluY29tcGxldGUuAFRoZSBTVEFSVCBHUk9VUF9SRVBMSUNBVElPTiBjb21tYW5kIGZhaWxlZCBzaW5jZSB0aGUgZ3JvdXAgYWxyZWFkeSBoYXMgOSBtZW1iZXJzLgBNZW1iZXIgdmVyc2lvbiBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgZ3JvdXAuAFRoZSBtZW1iZXIgY29udGFpbnMgdHJhbnNhY3Rpb25zIG5vdCBwcmVzZW50IGluIHRoZSBncm91cC4gVGhlIG1lbWJlciB3aWxsIG5vdyBleGl0IHRoZSBncm91cC4ASXQgd2FzIG5vdCBwb3NzaWJsZSB0byBhc3Nlc3MgaWYgdGhlIG1lbWJlciBoYXMgbW9yZSB0cmFuc2FjdGlvbnMgdGhhbiB0aGUgZ3JvdXAuIFRoZSBtZW1iZXIgd2lsbCBub3cgZXhpdCB0aGUgZ3JvdXAuAE1lbWJlciB2ZXJzaW9uIGlzIGxvd2VyIHRoYW4gc29tZSBncm91cCBtZW1iZXIsIGJ1dCBzaW5jZSBvcHRpb24gJ2dyb3VwX3JlcGxpY2F0aW9uX2FsbG93X2xvY2FsX2xvd2VyX3ZlcnNpb25fam9pbiBpcyBlbmFibGVkLCBtZW1iZXIgd2lsbCBiZSBhbGxvd2VkIHRvIGpvaW4uAEVycm9yIHByb2Nlc3NpbmcgbG9jYWwgR1RJRCBzZXRzIHdoZW4gY29tcGFyaW5nIHRoaXMgbWVtYmVyIHRyYW5zYWN0aW9ucyBhZ2FpbnN0IHRoZSBncm91cC4AVGhpcyBtZW1iZXIgaGFzIG1vcmUgZXhlY3V0ZWQgdHJhbnNhY3Rpb25zIHRoYW4gdGhvc2UgcHJlc2VudCBpbiB0aGUgZ3JvdXAuIExvY2FsIHRyYW5zYWN0aW9uczogJXMgPiBHcm91cCB0cmFuc2FjdGlvbnM6ICVzAFRoZSBtZW1iZXIgaXMgY29uZmlndXJlZCB3aXRoIGEgZ3JvdXBfcmVwbGljYXRpb25fZ3RpZF9hc3NpZ25tZW50X2Jsb2NrX3NpemUgb3B0aW9uIHZhbHVlICclbGx1JyBkaWZmZXJlbnQgZnJvbSB0aGUgZ3JvdXAgJyVsbHUnLiBUaGUgbWVtYmVyIHdpbGwgbm93IGV4aXQgdGhlIGdyb3VwLgBUaGUgbWVtYmVyIGlzIGNvbmZpZ3VyZWQgd2l0aCBhIHRyYW5zYWN0aW9uLXdyaXRlLXNldC1leHRyYWN0aW9uIG9wdGlvbiB2YWx1ZSAnJXMnIGRpZmZlcmVudCBmcm9tIHRoZSBncm91cCAnJXMnLiBUaGUgbWVtYmVyIHdpbGwgbm93IGV4aXQgdGhlIGdyb3VwLgBUaGUgbWVtYmVyIGNvbmZpZ3VyYXRpb24gaXMgbm90IGNvbXBhdGlibGUgd2l0aCB0aGUgZ3JvdXAgY29uZmlndXJhdGlvbi4gVmFyaWFibGVzIHN1Y2ggYXMgZ3JvdXBfcmVwbGljYXRpb25fc2luZ2xlX3ByaW1hcnlfbW9kZSBvciBncm91cF9yZXBsaWNhdGlvbl9lbmZvcmNlX3VwZGF0ZV9ldmVyeXdoZXJlX2NoZWNrcyBtdXN0IGhhdmUgdGhlIHNhbWUgdmFsdWUgb24gZXZlcnkgc2VydmVyIGluIHRoZSBncm91cC4gKG1lbWJlciBjb25maWd1cmF0aW9uIG9wdGlvbjogWyVzXSwgZ3JvdXAgY29uZmlndXJhdGlvbiBvcHRpb246IFslc10pLgBFcnJvciBzdG9wcGluZyBhbGwgcmVwbGljYXRpb24gY2hhbm5lbHMgd2hpbGUgc2VydmVyIHdhcyBsZWF2aW5nIHRoZSBncm91cC4gJXMARGV0ZWN0ZWQgcHJldmlvdXMgUkVTRVQgQklOQVJZIExPR1MgQU5EIEdUSURTIGludm9jYXRpb24gb3IgYW4gaXNzdWUgZXhpc3RzIGluIHRoZSBncm91cCByZXBsaWNhdGlvbiBhcHBsaWVyIHJlbGF5IGxvZy4gUHVyZ2luZyBleGlzdGluZyBhcHBsaWVyIGxvZ3MuAFVua25vd24gZXJyb3Igb2NjdXJyZWQgd2hpbGUgcmVzZXR0aW5nIGFwcGxpZXIncyBtb2R1bGUgbG9ncy4ARmFpbGVkIHRvIHNldHVwIHRoZSBncm91cCByZXBsaWNhdGlvbiBhcHBsaWVyIHRocmVhZC4ARXJyb3Igd2hpbGUgc3RhcnRpbmcgdGhlIGdyb3VwIHJlcGxpY2F0aW9uIGFwcGxpZXIgdGhyZWFkAEZhaWxlZCB0byBzdG9wIHRoZSBncm91cCByZXBsaWNhdGlvbiBhcHBsaWVyIHRocmVhZC4ARmFpbGVkIHRvIGZldGNoIHRyYW5zYWN0aW9uIGRhdGEgY29udGFpbmluZyByZXF1aXJlZCB0cmFuc2FjdGlvbiBpbmZvIGZvciBhcHBsaWVyAENhbid0IHN0YXJ0IHJlcGxpY2EgSU8gVEhSRUFEIG9mIGNoYW5uZWwgJyVzJyB3aGVuIGdyb3VwIHJlcGxpY2F0aW9uIGlzIHJ1bm5pbmcgd2l0aCBzaW5nbGUtcHJpbWFyeSBtb2RlIGFuZCB0aGUgcHJpbWFyeSBtZW1iZXIgaXMgbm90IGtub3duLgBDYW4ndCBzdGFydCByZXBsaWNhIElPIFRIUkVBRCBvZiBjaGFubmVsICclcycgd2hlbiBncm91cCByZXBsaWNhdGlvbiBpcyBydW5uaW5nIHdpdGggc2luZ2xlLXByaW1hcnkgbW9kZSBvbiBhIHNlY29uZGFyeSBtZW1iZXIuAENhbid0IHN0YXJ0IHJlcGxpY2EgU1FMIFRIUkVBRCBvZiBjaGFubmVsICclcycgd2hlbiBncm91cCByZXBsaWNhdGlvbiBpcyBydW5uaW5nIHdpdGggc2luZ2xlLXByaW1hcnkgbW9kZSBhbmQgdGhlIHByaW1hcnkgbWVtYmVyIGlzIG5vdCBrbm93bi4AQ2FuJ3Qgc3RhcnQgcmVwbGljYSBTUUwgVEhSRUFEIG9mIGNoYW5uZWwgJyVzJyB3aGVuIGdyb3VwIHJlcGxpY2F0aW9uIGlzIHJ1bm5pbmcgd2l0aCBzaW5nbGUtcHJpbWFyeSBtb2RlIG9uIGEgc2Vjb25kYXJ5IG1lbWJlci4AVGFibGUgJXMgZG9lcyBub3QgdXNlIHRoZSBJbm5vREIgc3RvcmFnZSBlbmdpbmUuIFRoaXMgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBHcm91cCBSZXBsaWNhdGlvbi4AVGFibGUgJXMgZG9lcyBub3QgaGF2ZSBhbnkgUFJJTUFSWSBLRVkuIFRoaXMgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBHcm91cCBSZXBsaWNhdGlvbi4AVGFibGUgJXMgaGFzIGEgZm9yZWlnbiBrZXkgd2l0aCAnQ0FTQ0FERScsICdTRVQgTlVMTCcgb3IgJ1NFVCBERUZBVUxUJyBjbGF1c2UuIFRoaXMgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBHcm91cCBSZXBsaWNhdGlvbi4AZ3JvdXBfcmVwbGljYXRpb25fYXV0b19pbmNyZW1lbnRfaW5jcmVtZW50IGlzIHJlc2V0IHRvICVsdQBhdXRvX2luY3JlbWVudF9vZmZzZXQgaXMgcmVzZXQgdG8gJWx1AGdyb3VwX3JlcGxpY2F0aW9uX2F1dG9faW5jcmVtZW50X2luY3JlbWVudCBpcyBzZXQgdG8gJWx1AGF1dG9faW5jcmVtZW50X29mZnNldCBpcyBzZXQgdG8gJWx1AEZhaWxlZCB0byBmZXRjaCB0cmFuc2FjdGlvbiBjb250ZXh0IGNvbnRhaW5pbmcgcmVxdWlyZWQgdHJhbnNhY3Rpb24gaW5mbyBmb3IgY2VydGlmaWNhdGlvbgBGYWlsZWQgdG8gZmV0Y2ggRm9ybWF0X2Rlc2NyaXB0aW9uX2xvZ19ldmVudCBjb250YWluaW5nIHJlcXVpcmVkIHNlcnZlciBpbmZvIGZvciBhcHBsaWVyAEZhaWxlZCB0byBmZXRjaCBUcmFuc2FjdGlvbl9jb250ZXh0X2xvZ19ldmVudCBjb250YWluaW5nIHJlcXVpcmVkIHRyYW5zYWN0aW9uIGluZm8gZm9yIGNlcnRpZmljYXRpb24ARmFpbGVkIHRvIHJlYWQgc25hcHNob3QgdmVyc2lvbiBmcm9tIHRyYW5zYWN0aW9uIGNvbnRleHQgZXZlbnQgcmVxdWlyZWQgZm9yIGNlcnRpZmljYXRpb24ARmFpbGVkIHRvIGZldGNoIEd0aWRfbG9nX2V2ZW50IGNvbnRhaW5pbmcgcmVxdWlyZWQgdHJhbnNhY3Rpb24gaW5mbyBmb3IgY2VydGlmaWNhdGlvbgBVbmFibGUgdG8gdXBkYXRlIGNlcnRpZmljYXRpb24gcmVzdWx0IG9uIHNlcnZlciBzaWRlLCB0aHJlYWRfaWQ6ICVsdQBVbmFibGUgdG8gYWRkIGd0aWQgaW5mb3JtYXRpb24gdG8gdGhlIGdyb3VwX2d0aWRfZXhlY3V0ZWQgc2V0IHdoZW4gZ3RpZCB3YXMgcHJvdmlkZWQgZm9yIGxvY2FsIHRyYW5zYWN0aW9ucwBVbmFibGUgdG8gYWRkIGd0aWQgaW5mb3JtYXRpb24gdG8gdGhlIGdyb3VwX2d0aWRfZXhlY3V0ZWQgc2V0IHdoZW4gbm8gZ3RpZCB3YXMgcHJvdmlkZWQgZm9yIGxvY2FsIHRyYW5zYWN0aW9ucwBGYWlsZWQgdG8gbm90aWZ5IGNlcnRpZmljYXRpb24gb3V0Y29tZQBVbmFibGUgdG8gYWRkIGd0aWQgaW5mb3JtYXRpb24gdG8gdGhlIGdyb3VwX2d0aWRfZXhlY3V0ZWQgc2V0IHdoZW4gZ3RpZCB3YXMgcHJvdmlkZWQgZm9yIHJlbW90ZSB0cmFuc2FjdGlvbnMAVW5hYmxlIHRvIGFkZCBndGlkIGluZm9ybWF0aW9uIHRvIHRoZSBncm91cF9ndGlkX2V4ZWN1dGVkIHNldCB3aGVuIGd0aWQgd2FzIG5vdCBwcm92aWRlZCBmb3IgcmVtb3RlIHRyYW5zYWN0aW9ucwBGYWlsZWQgdG8gZmV0Y2ggVmlld19jaGFuZ2VfbG9nX2V2ZW50IGNvbnRhaW5pbmcgcmVxdWlyZWQgaW5mbyBmb3IgY2VydGlmaWNhdGlvbgBFcnJvciB3aGVuIGNvbnRhY3RpbmcgdGhlIHNlcnZlciB0byBlbnN1cmUgdGhlIHByb3BlciBsb2dnaW5nIG9mIGEgZ3JvdXAgY2hhbmdlIGluIHRoZSBiaW5sb2cAVGltZW91dCB3aGVuIHdhaXRpbmcgZm9yIHRoZSBzZXJ2ZXIgdG8gZXhlY3V0ZSBsb2NhbCB0cmFuc2FjdGlvbnMgaW4gb3JkZXIgYXNzdXJlIHRoZSBncm91cCBjaGFuZ2UgcHJvcGVyIGxvZ2dpbmcARmFpbGVkIHRvIGZldGNoIExvZ19ldmVudCBjb250YWluaW5nIHJlcXVpcmVkIHNlcnZlciBpbmZvIGZvciBhcHBsaWVyAFVuYWJsZSB0byBzdGFydCBHcm91cCBSZXBsaWNhdGlvbi4gUmVwbGljYXRpb24gYXBwbGllciBpbmZyYXN0cnVjdHVyZSBpcyBub3QgaW5pdGlhbGl6ZWQgc2luY2UgdGhlIHNlcnZlciB3YXMgc3RhcnRlZCB3aXRoIC0taW5pdGlhbGl6ZSwgLS1pbml0aWFsaXplLWluc2VjdXJlIG9yIC0tdXBncmFkZT1NSU5JTUFMIG9uIGEgc2VydmVyIHVwZ3JhZGUuAEZhaWxlZCB0byBlc3RhYmxpc2ggYW4gaW50ZXJuYWwgc2VydmVyIGNvbm5lY3Rpb24gdG8gZXhlY3V0ZSBwbHVnaW4gb3BlcmF0aW9ucwBTZXR0aW5nIHN1cGVyX3JlYWRfb25seT1PTi4AU2V0dGluZyBzdXBlcl9yZWFkX29ubHk9T0ZGLgBraWxsZWQgc2Vzc2lvbiBpZDogJWQgc3RhdHVzOiAlZABraWxsZWQgZmFpbGVkIGlkOiAlZCBmYWlsZWQ6ICVkAEludGVybmFsIHF1ZXJ5OiAlcyByZXN1bHQgaW4gZXJyb3IuIEVycm9yIG51bWJlcjogJWxkAEVycm9yIGNvcHlpbmcgZnJvbSBlbXB0eSBzdHJpbmcgAFF1ZXJ5IGV4ZWN1dGlvbiByZXN1bHRlZCBpbiBmYWlsdXJlLiBlcnJubzogJWQAVW5hYmxlIHRvIGNyZWF0ZSBhIHNlc3Npb24gZm9yIGV4ZWN1dGluZyB0aGUgcXVlcmllcyBvbiB0aGUgc2VydmVyAFRoZSBtZW1iZXIgd2l0aCBhZGRyZXNzICVzOiV1IGhhcyB1bmV4cGVjdGVkbHkgZGlzYXBwZWFyZWQsIGtpbGxpbmcgdGhlIGN1cnJlbnQgZ3JvdXAgcmVwbGljYXRpb24gcmVjb3ZlcnkgY29ubmVjdGlvbgBNYXhpbXVtIG51bWJlciBvZiByZXRyaWVzIHdoZW4gdHJ5aW5nIHRvIGNvbm5lY3QgdG8gYSBkb25vciByZWFjaGVkLiBBYm9ydGluZyBncm91cCByZXBsaWNhdGlvbiBpbmNyZW1lbnRhbCByZWNvdmVyeS4AQWxsIGRvbm9ycyBsZWZ0LiBBYm9ydGluZyBncm91cCByZXBsaWNhdGlvbiBpbmNyZW1lbnRhbCByZWNvdmVyeS4ARXN0YWJsaXNoaW5nIGdyb3VwIHJlY292ZXJ5IGNvbm5lY3Rpb24gd2l0aCBhIHBvc3NpYmxlIGRvbm9yLiBBdHRlbXB0ICVkLyVkAFJldHJ5aW5nIGdyb3VwIHJlY292ZXJ5IGNvbm5lY3Rpb24gd2l0aCBhbm90aGVyIGRvbm9yLiBBdHRlbXB0ICVkLyVkAE5vIHZhbGlkIGRvbm9ycyBleGlzdCBpbiB0aGUgZ3JvdXAsIHJldHJ5aW5nAEVycm9yIHdoZW4gY29uZmlndXJpbmcgdGhlIGFzeW5jaHJvbm91cyByZWNvdmVyeSBjaGFubmVsIGNvbm5lY3Rpb24gdG8gdGhlIGRvbm9yLgBFc3RhYmxpc2hpbmcgY29ubmVjdGlvbiB0byBhIGdyb3VwIHJlcGxpY2F0aW9uIHJlY292ZXJ5IGRvbm9yICVzIGF0ICVzIHBvcnQ6ICVkLgBFcnJvciB3aGlsZSBjcmVhdGluZyB0aGUgZ3JvdXAgcmVwbGljYXRpb24gcmVjb3ZlcnkgY2hhbm5lbCB3aXRoIGRvbm9yICVzIGF0ICVzIHBvcnQ6ICVkLgBUaGVyZSB3YXMgYW4gZXJyb3Igd2hlbiBjb25uZWN0aW5nIHRvIHRoZSBkb25vciBzZXJ2ZXIuIFBsZWFzZSBjaGVjayB0aGF0IGdyb3VwX3JlcGxpY2F0aW9uX3JlY292ZXJ5IGNoYW5uZWwgY3JlZGVudGlhbHMgYW5kIGFsbCBNRU1CRVJfSE9TVCBjb2x1bW4gdmFsdWVzIG9mIHBlcmZvcm1hbmNlX3NjaGVtYS5yZXBsaWNhdGlvbl9ncm91cF9tZW1iZXJzIHRhYmxlIGFyZSBjb3JyZWN0IGFuZCBETlMgcmVzb2x2YWJsZS4ARm9yIGRldGFpbHMgcGxlYXNlIGNoZWNrIHBlcmZvcm1hbmNlX3NjaGVtYS5yZXBsaWNhdGlvbl9jb25uZWN0aW9uX3N0YXR1cyB0YWJsZSBhbmQgZXJyb3IgbG9nIG1lc3NhZ2VzIG9mIFJlcGxpY2EgSS9PIGZvciBjaGFubmVsIGdyb3VwX3JlcGxpY2F0aW9uX3JlY292ZXJ5LgBFcnJvciB3aGlsZSBzdGFydGluZyB0aGUgZ3JvdXAgcmVwbGljYXRpb24gaW5jcmVtZW50YWwgcmVjb3ZlcnkgcmVjZWl2ZXIvYXBwbGllciB0aHJlYWRzAFRlcm1pbmF0aW5nIGV4aXN0aW5nIGdyb3VwIHJlcGxpY2F0aW9uIGRvbm9yIGNvbm5lY3Rpb24gYW5kIHB1cmdpbmcgdGhlIGNvcnJlc3BvbmRpbmcgbG9ncy4ARXJyb3Igd2hlbiBzdG9wcGluZyB0aGUgZ3JvdXAgcmVwbGljYXRpb24gaW5jcmVtZW50YWwgcmVjb3ZlcnkncyBkb25vciBjb25uZWN0aW9uAEVycm9yIHdoZW4gcHVyZ2luZyB0aGUgZ3JvdXAgcmVwbGljYXRpb24gcmVjb3ZlcnkncyByZWxheSBsb2dzAFVuYWJsZSB0byBraWxsIHRoZSBjdXJyZW50IGdyb3VwIHJlcGxpY2F0aW9uIHJlY292ZXJ5IGRvbm9yIGNvbm5lY3Rpb24gYWZ0ZXIgYW4gYXBwbGllciBlcnJvci4gSW5jcmVtZW50YWwgcmVjb3Zlcnkgd2lsbCBzaHV0ZG93bi4AVW5hYmxlIHRvIGtpbGwgdGhlIGN1cnJlbnQgZ3JvdXAgcmVwbGljYXRpb24gcmVjb3ZlcnkgZG9ub3IgY29ubmVjdGlvbiBkdXJpbmcgZmFpbG92ZXIuIEluY3JlbWVudGFsIHJlY292ZXJ5IHdpbGwgc2h1dGRvd24uAFVuZXhwZWN0ZWQgZXJyb3Igd2hlbiBub3RpZnlpbmcgYW4gaW50ZXJuYWwgY29tcG9uZW50IG5hbWVkICVzIHJlZ2FyZGluZyBhIGdyb3VwIG1lbWJlcnNoaXAgZXZlbnQuAEFuIHVuZGVmaW5lZCBlcnJvciB3YXMgZm91bmQgd2hpbGUgYnJvYWRjYXN0aW5nIGFuIGludGVybmFsIGdyb3VwIG1lbWJlcnNoaXAgbm90aWZpY2F0aW9uISBUaGlzIGlzIGxpa2VseSB0byBoYXBwZW4gaWYgeW91ciBjb21wb25lbnRzIG9yIHBsdWdpbnMgYXJlIG5vdCBwcm9wZXJseSBsb2FkZWQgb3IgYXJlIG1hbGZ1bmN0aW9uaW5nIQBBbiB1bmRlZmluZWQgZXJyb3Igd2FzIGZvdW5kIHdoaWxlIGJyb2FkY2FzdGluZyBhbiBpbnRlcm5hbCBncm91cCBtZW1iZXIgc3RhdHVzIG5vdGlmaWNhdGlvbiEgVGhpcyBpcyBsaWtlbHkgdG8gaGFwcGVuIGlmIHlvdXIgY29tcG9uZW50cyBvciBwbHVnaW5zIGFyZSBub3QgcHJvcGVybHkgbG9hZGVkIG9yIGFyZSBtYWxmdW5jdGlvbmluZyEATm8gbWVtb3J5IHRvIGdlbmVyYXRlIHdyaXRlIGlkZW50aWZpY2F0aW9uIGhhc2gAQmFzZSA2NCBlbmNvZGluZyBvZiB0aGUgd3JpdGUgaWRlbnRpZmljYXRpb24gaGFzaCBmYWlsZWQAQmlubG9nIGZvcm1hdCBzaG91bGQgYmUgUk9XIGZvciBHcm91cCBSZXBsaWNhdGlvbgBiaW5sb2dfY2hlY2tzdW0gc2hvdWxkIGJlIE5PTkUgZm9yIEdyb3VwIFJlcGxpY2F0aW9uAEEgdHJhbnNhY3Rpb25fd3JpdGVfc2V0X2V4dHJhY3Rpb24gYWxnb3JpdGhtIHNob3VsZCBiZSBzZWxlY3RlZCB3aGVuIHJ1bm5pbmcgR3JvdXAgUmVwbGljYXRpb24AVHJhbnNhY3Rpb24gaXNvbGF0aW9uIGxldmVsICh0eF9pc29sYXRpb24pIGlzIHNldCB0byBTRVJJQUxJWkFCTEUsIHdoaWNoIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggR3JvdXAgUmVwbGljYXRpb24AVHJhbnNhY3Rpb24gY2Fubm90IGJlIGV4ZWN1dGVkIHdoaWxlIEdyb3VwIFJlcGxpY2F0aW9uIGlzIHN0b3BwaW5nLgBUcmFuc2FjdGlvbiBjYW5ub3QgYmUgZXhlY3V0ZWQgd2hpbGUgR3JvdXAgUmVwbGljYXRpb24gaXMgcmVjb3ZlcmluZy4gVHJ5IGFnYWluIHdoZW4gdGhlIHNlcnZlciBpcyBPTkxJTkUuAFRyYW5zYWN0aW9uIGNhbm5vdCBiZSBleGVjdXRlZCB3aGlsZSBHcm91cCBSZXBsaWNhdGlvbiBpcyBvbiBFUlJPUiBzdGF0ZS4gQ2hlY2sgZm9yIGVycm9ycyBhbmQgcmVzdGFydCB0aGUgcGx1Z2luAFRyYW5zYWN0aW9uIGNhbm5vdCBiZSBleGVjdXRlZCB3aGlsZSBHcm91cCBSZXBsaWNhdGlvbiBpcyBPRkZMSU5FLiBDaGVjayBmb3IgZXJyb3JzIGFuZCByZXN0YXJ0IHRoZSBwbHVnaW4AV2UgY2FuIG9ubHkgdXNlIG9uZSBjYWNoZSB0eXBlIGF0IGEgdGltZSBvbiBzZXNzaW9uICV1AEZhaWxlZCB0byByZWluaXQgYmlubG9nIGNhY2hlIGxvZyBmb3IgcmVhZCBvbiBzZXNzaW9uICV1AEZhaWxlZCB0byBjcmVhdGUgdGhlIGNvbnRleHQgb2YgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gb24gc2Vzc2lvbiAldQBGYWlsZWQgdG8gZXh0cmFjdCB0aGUgc2V0IG9mIGl0ZW1zIHdyaXR0ZW4gZHVyaW5nIHRoZSBleGVjdXRpb24gb2YgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gb24gc2Vzc2lvbiAldQBGYWlsZWQgdG8gZ2F0aGVyIHRoZSBzZXQgb2YgaXRlbXMgd3JpdHRlbiBkdXJpbmcgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgY3VycmVudCB0cmFuc2FjdGlvbiBvbiBzZXNzaW9uICV1AEVycm9yIG9uIHNlc3Npb24gJXUuIFRyYW5zYWN0aW9uIG9mIHNpemUgJWxsdSBleGNlZWRzIHNwZWNpZmllZCBsaW1pdCAlbHUuIFRvIGluY3JlYXNlIHRoZSBsaW1pdCBwbGVhc2UgYWRqdXN0IGdyb3VwX3JlcGxpY2F0aW9uX3RyYW5zYWN0aW9uX3NpemVfbGltaXQgb3B0aW9uLgBFcnJvciB3aGlsZSByZS1pbml0aWFsaXppbmcgYW4gaW50ZXJuYWwgY2FjaGUsIGZvciByZWFkIG9wZXJhdGlvbnMsIG9uIHNlc3Npb24gJXUARXJyb3Igd2hpbGUgYXBwZW5kaW5nIGRhdGEgdG8gYW4gaW50ZXJuYWwgY2FjaGUgb24gc2Vzc2lvbiAldQBFcnJvciB3aGlsZSB3cml0aW5nIHRvIHRyYW5zYWN0aW9uIG1lc3NhZ2Ugb24gc2Vzc2lvbiAldQBVbmFibGUgdG8gcmVnaXN0ZXIgZm9yIGdldHRpbmcgbm90aWZpY2F0aW9ucyByZWdhcmRpbmcgdGhlIG91dGNvbWUgb2YgdGhlIHRyYW5zYWN0aW9uIG9uIHNlc3Npb24gJXUARXJyb3IgYnJvYWRjYXN0aW5nIHRyYW5zYWN0aW9uIHRvIHRoZSBncm91cCBvbiBzZXNzaW9uICV1LiBNZXNzYWdlIGlzIHRvbyBiaWcuAEVycm9yIHdoaWxlIGJyb2FkY2FzdGluZyB0aGUgdHJhbnNhY3Rpb24gdG8gdGhlIGdyb3VwIG9uIHNlc3Npb24gJXUARXJyb3Igd2hpbGUgd2FpdGluZyBmb3IgY29uZmxpY3QgZGV0ZWN0aW9uIHByb2NlZHVyZSB0byBmaW5pc2ggb24gc2Vzc2lvbiAldQBFcnJvciB3aGlsZSByZS1pbml0aWFsaXppbmcgYW4gaW50ZXJuYWwgY2FjaGUsIGZvciB3cml0ZSBvcGVyYXRpb25zLCBvbiBzZXNzaW9uICV1AEZhaWxlZCB0byBjcmVhdGUgZ3JvdXAgcmVwbGljYXRpb24gY29tbWl0IGNhY2hlIG9uIHNlc3Npb24gJXUARmFpbGVkIHRvIHJlaW5pdCBncm91cCByZXBsaWNhdGlvbiBjb21taXQgY2FjaGUgZm9yIHdyaXRlIG9uIHNlc3Npb24gJXUAQSBwcmV2aW91cyByZWNvdmVyeSBzZXNzaW9uIGlzIHN0aWxsIHJ1bm5pbmcuIFBsZWFzZSBzdG9wIHRoZSBncm91cCByZXBsaWNhdGlvbiBwbHVnaW4gYW5kIHdhaXQgZm9yIGl0IHRvIHN0b3AARmF0YWwgZXJyb3IgZHVyaW5nIHRoZSBpbmNyZW1lbnRhbCByZWNvdmVyeSBwcm9jZXNzIG9mIEdyb3VwIFJlcGxpY2F0aW9uLiBUaGUgc2VydmVyIHdpbGwgbGVhdmUgdGhlIGdyb3VwLgBFcnJvciBzdG9wcGluZyBhbGwgcmVwbGljYXRpb24gY2hhbm5lbHMgd2hpbGUgc2VydmVyIHdhcyBsZWF2aW5nIHRoZSBncm91cC4gJXMAVW5hYmxlIHRvIGV2YWx1YXRlIHRoZSBncm91cCByZXBsaWNhdGlvbiBhcHBsaWVyIGV4ZWN1dGlvbiBzdGF0dXMuIEdyb3VwIHJlcGxpY2F0aW9uIHJlY292ZXJ5IHdpbGwgc2h1dGRvd24gdG8gYXZvaWQgZGF0YSBjb3JydXB0aW9uLgBPbmx5IG9uZSBzZXJ2ZXIgYWxpdmUuIERlY2xhcmluZyB0aGlzIHNlcnZlciBhcyBvbmxpbmUgd2l0aGluIHRoZSByZXBsaWNhdGlvbiBncm91cABFcnJvciB3aGVuIHByb2Nlc3NpbmcgY2VydGlmaWNhdGlvbiBpbmZvcm1hdGlvbiBpbiB0aGUgaW5jcmVtZW50YWwgcmVjb3ZlcnkgcHJvY2VzcwBVbmFibGUgdG8gZW5zdXJlIHRoZSBleGVjdXRpb24gb2YgZ3JvdXAgdHJhbnNhY3Rpb25zIHJlY2VpdmVkIGR1cmluZyByZWNvdmVyeS4ARXJyb3Igd2hpbGUgc2VuZGluZyBtZXNzYWdlIGluIHRoZSBncm91cCByZXBsaWNhdGlvbiBpbmNyZW1lbnRhbCByZWNvdmVyeSBwcm9jZXNzLgBVbmFibGUgdG8gcmVhZCB0aGUgc2VydmVyIHZhbHVlIGZvciB0aGUgc3VwZXJfcmVhZF9vbmx5IHZhcmlhYmxlLgBVbmFibGUgdG8gcmVhZCB0aGUgc2VydmVyIHZhbHVlcyBmb3IgdGhlIHJlYWRfb25seSBhbmQgc3VwZXJfcmVhZF9vbmx5IHZhcmlhYmxlcy4AVW5hYmxlIHRvIHJlc2V0IHRoZSBzZXJ2ZXIgcmVhZCBtb2RlIHNldHRpbmdzLiBUcnkgdG8gcmVzZXQgdGhlbSBtYW51YWxseS4ARHVlIHRvIGEgcGx1Z2luIGVycm9yLCBzb21lIHRyYW5zYWN0aW9ucyB3ZXJlIHVuYWJsZSB0byBiZSBjZXJ0aWZpZWQgYW5kIHdpbGwgbm93IHJvbGxiYWNrLgBFcnJvciB3aGVuIHRyeWluZyB0byB1bmJsb2NrIG5vbiBjZXJ0aWZpZWQgb3IgY29uc2lzdGVudCB0cmFuc2FjdGlvbnMuIENoZWNrIGZvciBjb25zaXN0ZW5jeSBlcnJvcnMgd2hlbiByZXN0YXJ0aW5nIHRoZSBzZXJ2aWNlAFRoaXMgc2VydmVyIGlzIHdvcmtpbmcgYXMgc2Vjb25kYXJ5IG1lbWJlciB3aXRoIHByaW1hcnkgbWVtYmVyIGFkZHJlc3MgJXM6JXUuAFVuYWJsZSB0byBzdGFydCBHcm91cCBSZXBsaWNhdGlvbi4gUmVwbGljYXRpb24gYXBwbGllciBpbmZyYXN0cnVjdHVyZSBpcyBub3QgaW5pdGlhbGl6ZWQgc2luY2UgdGhlIHNlcnZlciB3YXMgc3RhcnRlZCB3aXRoIHNlcnZlcl9pZD0wLiBQbGVhc2UsIHJlc3RhcnQgdGhlIHNlcnZlciB3aXRoIHNlcnZlcl9pZCBsYXJnZXIgdGhhbiAwLgBncm91cF9yZXBsaWNhdGlvbl9mb3JjZV9tZW1iZXJzIG11c3QgYmUgZW1wdHkgb24gZ3JvdXAgc3RhcnQuIEN1cnJlbnQgdmFsdWU6ICclcycASXQgd2FzIG5vdCBwb3NzaWJsZSB0byBndWFyYW50ZWUgdGhlIGluaXRpYWxpemF0aW9uIG9mIHBsdWdpbiBzdHJ1Y3R1cmVzIG9uIHNlcnZlciBzdGFydABDb3VsZCBub3QgZW5hYmxlIHRoZSBzZXJ2ZXIgcmVhZCBvbmx5IG1vZGUgYW5kIGd1YXJhbnRlZSBhIHNhZmUgcmVjb3ZlcnkgZXhlY3V0aW9uAEVycm9yIG9uIGdyb3VwIGNvbW11bmljYXRpb24gZW5naW5lIGluaXRpYWxpemF0aW9uAENhbid0IHN0YXJ0IGdyb3VwIHJlcGxpY2F0aW9uIG9uIHNlY29uZGFyeSBtZW1iZXIgd2l0aCBzaW5nbGUtcHJpbWFyeSBtb2RlIHdoaWxlIGFzeW5jaHJvbm91cyByZXBsaWNhdGlvbiBjaGFubmVscyBhcmUgcnVubmluZy4ARXJyb3Igb24gZ3JvdXAgY29tbXVuaWNhdGlvbiBlbmdpbmUgc3RhcnQAVGltZW91dCBvbiB3YWl0IGZvciB2aWV3IGFmdGVyIGpvaW5pbmcgZ3JvdXAARXJyb3IgY2FsbGluZyBncm91cCBjb21tdW5pY2F0aW9uIGludGVyZmFjZXMATWVtYmVyIHNlcnZlcl91dWlkIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBncm91cC4gU2VydmVyX3V1aWQgJXMgbWF0Y2hlcyBncm91cF9yZXBsaWNhdGlvbl9ncm91cF9uYW1lICVzLgBNZW1iZXIgY29uZmlndXJhdGlvbjogbWVtYmVyX2lkOiAlbHU7IG1lbWJlcl91dWlkOiAiJXMiOyBzaW5nbGUtcHJpbWFyeSBtb2RlOiAiJXMiOyBncm91cF9yZXBsaWNhdGlvbl9hdXRvX2luY3JlbWVudF9pbmNyZW1lbnQ6ICVsdTsgZ3JvdXBfcmVwbGljYXRpb25fdmlld19jaGFuZ2VfdXVpZDogIiVzIjsAVW5hYmxlIHRvIGNvbmZpcm0gd2hldGhlciB0aGUgc2VydmVyIGhhcyBsZWZ0IHRoZSBncm91cCBvciBub3QuIENoZWNrIHBlcmZvcm1hbmNlX3NjaGVtYS5yZXBsaWNhdGlvbl9ncm91cF9tZW1iZXJzIHRvIGNoZWNrIGdyb3VwIG1lbWJlcnNoaXAgaW5mb3JtYXRpb24uAFNraXBwaW5nIGxlYXZlIG9wZXJhdGlvbjogY29uY3VycmVudCBhdHRlbXB0IHRvIGxlYXZlIHRoZSBncm91cCBpcyBvbi1nb2luZy4AU2tpcHBpbmcgbGVhdmUgb3BlcmF0aW9uOiBtZW1iZXIgYWxyZWFkeSBsZWZ0IHRoZSBncm91cC4AR29pbmcgdG8gd2FpdCBmb3IgdmlldyBtb2RpZmljYXRpb24AV2hpbGUgbGVhdmluZyB0aGUgZ3JvdXAgZHVlIHRvIGEgc3RvcCwgc2h1dGRvd24gb3IgZmFpbHVyZSB0aGVyZSB3YXMgYSB0aW1lb3V0IHJlY2VpdmluZyBhIHZpZXcgY2hhbmdlLiBUaGlzIGNhbiBsZWFkIHRvIGEgcG9zc2libGUgaW5jb25zaXN0ZW50IHN0YXRlLiBDaGVjayB0aGUgbG9nIGZvciBtb3JlIGRldGFpbHMAUmVxdWVzdGluZyB0byBsZWF2ZSB0aGUgZ3JvdXAgZGVzcGl0ZSBvZiBub3QgYmVpbmcgYSBtZW1iZXIAUGx1Z2luICdncm91cF9yZXBsaWNhdGlvbicgaXMgc3RvcHBpbmcuAFBsdWdpbiAnZ3JvdXBfcmVwbGljYXRpb24nIGhhcyBiZWVuIHN0b3BwZWQuAE9uIHBsdWdpbiBzaHV0ZG93biBpdCB3YXMgbm90IHBvc3NpYmxlIHRvIGVuYWJsZSB0aGUgc2VydmVyIHJlYWQgb25seSBtb2RlLiBMb2NhbCB0cmFuc2FjdGlvbnMgd2lsbCBiZSBhY2NlcHRlZCBhbmQgY29tbWl0dGVkLgBPbiBzaHV0ZG93biB0aGVyZSB3YXMgYSB0aW1lb3V0IG9uIHRoZSBHcm91cCBSZXBsaWNhdGlvbiByZWNvdmVyeSBtb2R1bGUgdGVybWluYXRpb24uIENoZWNrIHRoZSBsb2cgZm9yIG1vcmUgZGV0YWlscwBPbiBzaHV0ZG93biB0aGVyZSB3YXMgYSB0aW1lb3V0IG9uIHRoZSBHcm91cCBSZXBsaWNhdGlvbiBhcHBsaWVyIHRlcm1pbmF0aW9uLgBVbmV4cGVjdGVkIGZhaWx1cmUgd2hpbGUgc2h1dHRpbmcgZG93biByZWdpc3RyeSBtb2R1bGUhAEZhaWx1cmUgZHVyaW5nIEdyb3VwIFJlcGxpY2F0aW9uIGhhbmRsZXIgaW5pdGlhbGl6YXRpb24ARmFpbHVyZSB3aGVuIHJlZ2lzdGVyaW5nIHRoZSBzZXJ2ZXIgc3RhdGUgb2JzZXJ2ZXJzAEZhaWx1cmUgd2hlbiByZWdpc3RlcmluZyB0aGUgdHJhbnNhY3Rpb25zIHN0YXRlIG9ic2VydmVycwBGYWlsdXJlIHdoZW4gcmVnaXN0ZXJpbmcgdGhlIGJpbmxvZyBzdGF0ZSBvYnNlcnZlcnMAVW5hYmxlIHRvIHN0YXJ0IEdyb3VwIFJlcGxpY2F0aW9uIG9uIGJvb3QARmFpbHVyZSB3aGVuIHN0b3BwaW5nIEdyb3VwIFJlcGxpY2F0aW9uIG9uIHBsdWdpbiB1bmluc3RhbGwARmFpbHVyZSB3aGVuIHVucmVnaXN0ZXJpbmcgdGhlIHNlcnZlciBzdGF0ZSBvYnNlcnZlcnMARmFpbHVyZSB3aGVuIHVucmVnaXN0ZXJpbmcgdGhlIHRyYW5zYWN0aW9ucyBzdGF0ZSBvYnNlcnZlcnMARmFpbHVyZSB3aGVuIHVucmVnaXN0ZXJpbmcgdGhlIGJpbmxvZyBzdGF0ZSBvYnNlcnZlcnMAQWxsIEdyb3VwIFJlcGxpY2F0aW9uIHNlcnZlciBvYnNlcnZlcnMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSB1bnJlZ2lzdGVyZWQAVW5hYmxlIHRvIHBhcnNlIHRoZSBncm91cF9yZXBsaWNhdGlvbl9ncm91cF9uYW1lLgBVbmFibGUgdG8gcGFyc2UgdGhlIGdyb3VwX3JlcGxpY2F0aW9uX2dyb3VwX25hbWUuAENhbm5vdCBzdGFydCB0aGUgR3JvdXAgUmVwbGljYXRpb24gYXBwbGllciBhcyBhIHByZXZpb3VzIHNodXRkb3duIGlzIHN0aWxsIHJ1bm5pbmc6IFRoZSB0aHJlYWQgd2lsbCBzdG9wIG9uY2UgaXRzIHRhc2sgaXMgY29tcGxldGUuAFVuYWJsZSB0byBpbml0aWFsaXplIHRoZSBHcm91cCBSZXBsaWNhdGlvbiBhcHBsaWVyIG1vZHVsZS4AR3JvdXAgUmVwbGljYXRpb24gYXBwbGllciBtb2R1bGUgc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkIQBHcm91cCBjb21tdW5pY2F0aW9uIFNTTCBjb25maWd1cmF0aW9uOiBncm91cF9yZXBsaWNhdGlvbl9zc2xfbW9kZTogIiVzIjsgc2VydmVyX2tleV9maWxlOiAiJXMiOyBzZXJ2ZXJfY2VydF9maWxlOiAiJXMiOyBjbGllbnRfa2V5X2ZpbGU6ICIlcyI7IGNsaWVudF9jZXJ0X2ZpbGU6ICIlcyI7IGNhX2ZpbGU6ICIlcyI7IGNhX3BhdGg6ICIlcyI7IGNpcGhlcjogIiVzIjsgdGxzX3ZlcnNpb246ICIlcyI7IHRsc19jaXBoZXJzdWl0ZXM6ICIlcyI7IGNybF9maWxlOiAiJXMiOyBjcmxfcGF0aDogIiVzIjsgc3NsX2ZpcHNfbW9kZTogIiVzIgBNeVNRTCBzZXJ2ZXIgZG9lcyBub3QgaGF2ZSBTU0wgc3VwcG9ydCBhbmQgZ3JvdXBfcmVwbGljYXRpb25fc3NsX21vZGUgaXMgIiVzIiwgU1RBUlQgR1JPVVBfUkVQTElDQVRJT04gd2lsbCBhYm9ydABHcm91cCBjb21tdW5pY2F0aW9uIFNTTCBjb25maWd1cmF0aW9uOiBncm91cF9yZXBsaWNhdGlvbl9zc2xfbW9kZTogIiVzIgBVbmFibGUgdG8gaW5pdGlhbGl6ZSB0aGUgZ3JvdXAgY29tbXVuaWNhdGlvbiBlbmdpbmUAQmlubG9nIG11c3QgYmUgZW5hYmxlZCBmb3IgR3JvdXAgUmVwbGljYXRpb24AR3RpZCBtb2RlIHNob3VsZCBiZSBPTiBmb3IgR3JvdXAgUmVwbGljYXRpb24ATE9HX1JFUExJQ0FfVVBEQVRFUyBzaG91bGQgYmUgT04gZm9yIEdyb3VwIFJlcGxpY2F0aW9uAEV4dHJhY3Rpb24gb2YgdHJhbnNhY3Rpb24gd3JpdGUgc2V0cyByZXF1aXJlcyBhbiBoYXNoIGFsZ29yaXRobSBjb25maWd1cmF0aW9uLiBQbGVhc2UsIGRvdWJsZSBjaGVjayB0aGF0IHRoZSBwYXJhbWV0ZXIgdHJhbnNhY3Rpb24td3JpdGUtc2V0LWV4dHJhY3Rpb24gaXMgc2V0IHRvIGEgdmFsaWQgYWxnb3JpdGhtLgBBcHBsaWVyIG1ldGFkYXRhIHJlcG9zaXRvcnkgbXVzdCBiZSBzZXQgdG8gVEFCTEUAQ29ubmVjdGlvbiBtZXRhZGF0YSByZXBvc2l0b3J5IG11c3QgYmUgc2V0IHRvIFRBQkxFLgBJbiBvcmRlciB0byB1c2UgcGFyYWxsZWwgYXBwbGllciBvbiBHcm91cCBSZXBsaWNhdGlvbiwgcGFyYW1ldGVyIHJlcGxpY2EtcGFyYWxsZWwtdHlwZSBtdXN0IGJlIHNldCB0byAnTE9HSUNBTF9DTE9DSycuAEdyb3VwIFJlcGxpY2F0aW9uIHJlcXVpcmVzIHJlcGxpY2EtcHJlc2VydmUtY29tbWl0LW9yZGVyIHRvIGJlIHNldCB0byBPTiB3aGVuIHVzaW5nIG1vcmUgdGhhbiAxIGFwcGxpZXIgdGhyZWFkcy4ASXQgaXMgbm90IGFsbG93ZWQgdG8gcnVuIHNpbmdsZSBwcmltYXJ5IG1vZGUgd2l0aCAnZ3JvdXBfcmVwbGljYXRpb25fZW5mb3JjZV91cGRhdGVfZXZlcnl3aGVyZV9jaGVja3MnIGVuYWJsZWQuAGVycm9yX21lc3NhZ2U6ICVzAFRoZSBncm91cF9yZXBsaWNhdGlvbl9ncm91cF9uYW1lIG9wdGlvbiBpcyBtYW5kYXRvcnkAVGhlIGdyb3VwX3JlcGxpY2F0aW9uX2dyb3VwX25hbWUgJyVzJyBpcyBub3QgYSB2YWxpZCBVVUlELCBpdHMgbGVuZ3RoIGlzIHRvbyBiaWcAVGhlIGdyb3VwX3JlcGxpY2F0aW9uX2dyb3VwX25hbWUgJyVzJyBpcyBub3QgYSB2YWxpZCBVVUlEAGdyb3VwX3JlcGxpY2F0aW9uX2Zsb3dfY29udHJvbF9taW5fcXVvdGEgY2Fubm90IGJlIGxhcmdlciB0aGFuIGdyb3VwX3JlcGxpY2F0aW9uX2Zsb3dfY29udHJvbF9tYXhfcXVvdGEAZ3JvdXBfcmVwbGljYXRpb25fZmxvd19jb250cm9sX21pbl9yZWNvdmVyeV9xdW90YSBjYW5ub3QgYmUgbGFyZ2VyIHRoYW4gZ3JvdXBfcmVwbGljYXRpb25fZmxvd19jb250cm9sX21heF9xdW90YQBncm91cF9yZXBsaWNhdGlvbl9mbG93X2NvbnRyb2xfbWF4X3F1b3RhIGNhbm5vdCBiZSBzbWFsbGVyIHRoYW4gZ3JvdXBfcmVwbGljYXRpb25fZmxvd19jb250cm9sX21pbl9xdW90YSBvciBncm91cF9yZXBsaWNhdGlvbl9mbG93X2NvbnRyb2xfbWluX3JlY292ZXJ5X3F1b3RhAFRoZSBnaXZlbiB2YWx1ZSBmb3IgcmVjb3Zlcnkgc3NsIG9wdGlvbiAnZ3JvdXBfcmVwbGljYXRpb25fJXMnIGlzIGludmFsaWQgYXMgaXRzIGxlbmd0aCBpcyBiZXlvbmQgdGhlIGxpbWl0AFRoZXJlIGlzIG9uZSBncm91cF9yZXBsaWNhdGlvbl9mb3JjZV9tZW1iZXJzIG9wZXJhdGlvbiBhbHJlYWR5IG9uZ29pbmcAZ3JvdXBfcmVwbGljYXRpb25fZm9yY2VfbWVtYmVycyBjYW4gb25seSBiZSB1cGRhdGVkIHdoZW4gR3JvdXAgUmVwbGljYXRpb24gaXMgcnVubmluZyBhbmQgYSBtYWpvcml0eSBvZiB0aGUgbWVtYmVycyBhcmUgdW5yZWFjaGFibGUASW5pdGlhbGl6ZWQgZ3JvdXAgY29tbXVuaWNhdGlvbiB3aXRoIGNvbmZpZ3VyYXRpb246IGdyb3VwX3JlcGxpY2F0aW9uX2dyb3VwX25hbWU6ICclcyc7IGdyb3VwX3JlcGxpY2F0aW9uX2xvY2FsX2FkZHJlc3M6ICclcyc7IGdyb3VwX3JlcGxpY2F0aW9uX2dyb3VwX3NlZWRzOiAnJXMnOyBncm91cF9yZXBsaWNhdGlvbl9ib290c3RyYXBfZ3JvdXA6ICclcyc7IGdyb3VwX3JlcGxpY2F0aW9uX3BvbGxfc3Bpbl9sb29wczogJWx1OyBncm91cF9yZXBsaWNhdGlvbl9jb21wcmVzc2lvbl90aHJlc2hvbGQ6ICVsdTsgZ3JvdXBfcmVwbGljYXRpb25faXBfYWxsb3dsaXN0OiAnJXMnOyBncm91cF9yZXBsaWNhdGlvbl9jb21tdW5pY2F0aW9uX2RlYnVnX29wdGlvbnM6ICclcyc7IGdyb3VwX3JlcGxpY2F0aW9uX21lbWJlcl9leHBlbF90aW1lb3V0OiAnJWx1JzsgZ3JvdXBfcmVwbGljYXRpb25fY29tbXVuaWNhdGlvbl9tYXhfbWVzc2FnZV9zaXplOiAlbHU7IGdyb3VwX3JlcGxpY2F0aW9uX21lc3NhZ2VfY2FjaGVfc2l6ZTogJyVsdXU7IGdyb3VwX3JlcGxpY2F0aW9uX2NvbW11bmljYXRpb25fc3RhY2s6ICclbHUnAFVua25vd24gZ3JvdXAgcmVwbGljYXRpb24gYXBwbGllciBwaXBlbGluZSByZXF1ZXN0ZWQAVW5hYmxlIHRvIGJvb3RzdHJhcCBncm91cCByZXBsaWNhdGlvbiBldmVudCBoYW5kbGluZyBpbmZyYXN0cnVjdHVyZS4gVW5rbm93biBoYW5kbGVyIHR5cGU6ICVkAE9uZSBvZiB0aGUgZ3JvdXAgcmVwbGljYXRpb24gYXBwbGllciBoYW5kbGVycyBpcyBudWxsIGR1ZSB0byBhbiBpbml0aWFsaXphdGlvbiBlcnJvcgBBIGdyb3VwIHJlcGxpY2F0aW9uIGFwcGxpZXIgaGFuZGxlciwgbWFya2VkIGFzIHVuaXF1ZSwgaXMgYWxyZWFkeSBpbiB1c2UuAEEgZ3JvdXAgcmVwbGljYXRpb24gYXBwbGllciBoYW5kbGVyIHJvbGUsIHRoYXQgd2FzIG1hcmtlZCBhcyB1bmlxdWUsIGlzIGFscmVhZHkgaW4gdXNlLgBFcnJvciBvbiBncm91cCByZXBsaWNhdGlvbiBhcHBsaWVyIGhhbmRsZXIgaW5pdGlhbGl6YXRpb24ARXJyb3Igd2hlbiBpbml0aWFsaXppbmcgYSBzZXNzaW9uIHRocmVhZCBmb3IgaW50ZXJuYWwgc2VydmVyIGNvbm5lY3Rpb24uAEVycm9yIHJ1bm5pbmcgaW50ZXJuYWwgU1FMIHF1ZXJ5OiAlcy4gVGhlIGludGVybmFsIHNlcnZlciBjb21tdW5pY2F0aW9uIHNlc3Npb24gaXMgbm90IGluaXRpYWxpemVkAEVycm9yIHJ1bm5pbmcgaW50ZXJuYWwgU1FMIHF1ZXJ5OiAlcy4gVGhlIGludGVybmFsIHNlcnZlciBzZXNzaW9uIHdhcyBraWxsZWQgb3Igc2VydmVyIGlzIHNodXR0aW5nIGRvd24uAEVycm9yIHJ1bm5pbmcgaW50ZXJuYWwgU1FMIHF1ZXJ5OiAlcy4gR290IGludGVybmFsIFNRTCBlcnJvcjogJXMoJWQpAEVycm9yIHJ1bm5pbmcgaW50ZXJuYWwgU1FMIHF1ZXJ5OiAlcy4gSW50ZXJuYWwgZmFpbHVyZS4ARXJyb3IsIG1heGltdW0gbnVtYmVyIG9mIHJldHJpZXMgZXhjZWVkZWQgd2hlbiB3YWl0aW5nIGZvciB0aGUgaW50ZXJuYWwgc2VydmVyIHNlc3Npb24gc3RhdGUgdG8gYmUgb3BlcmF0aW5nAEVycm9yIHdoZW4gdHJ5aW5nIHRvIGZldGNoIHNlY3VyaXR5IGNvbnRleHQgd2hlbiBjb250YWN0aW5nIHRoZSBzZXJ2ZXIgZm9yIGludGVybmFsIHBsdWdpbiByZXF1ZXN0cy4AVGhlcmUgd2FzIGFuIGVycm9yIHdoZW4gdHJ5aW5nIHRvIGFjY2VzcyB0aGUgc2VydmVyIHdpdGggdXNlcjogJXMuIE1ha2Ugc3VyZSB0aGUgdXNlciBpcyBwcmVzZW50IGluIHRoZSBzZXJ2ZXIgYW5kIHRoYXQgdGhlIE15U1FMIHVwZ3JhZGUgcHJvY2VkdXJlIHdhcyBydW4gY29ycmVjdGx5LgBGYWlsZWQgdG8gZXN0YWJsaXNoIGFuIGludGVybmFsIHNlcnZlciBjb25uZWN0aW9uIHRvIGV4ZWN1dGUgcGx1Z2luIG9wZXJhdGlvbnMgc2luY2UgdGhlIHNlcnZlciBkb2VzIG5vdCBoYXZlIGF2YWlsYWJsZSBjb25uZWN0aW9ucywgcGxlYXNlIGluY3JlYXNlIEBAR0xPQkFMLk1BWF9DT05ORUNUSU9OUy4gU2VydmVyIGVycm9yOiAlaS4ARmFpbGVkIHRvIGVzdGFibGlzaCBhbiBpbnRlcm5hbCBzZXJ2ZXIgY29ubmVjdGlvbiB0byBleGVjdXRlIHBsdWdpbiBvcGVyYXRpb25zLiBTZXJ2ZXIgZXJyb3I6ICVpLiBTZXJ2ZXIgZXJyb3IgbWVzc2FnZTogJXMAVGhpcyBtZW1iZXIgY291bGQgbm90IHJlYWNoIGEgbWFqb3JpdHkgb2YgdGhlIG1lbWJlcnMgZm9yIG1vcmUgdGhhbiAlbGQgc2Vjb25kcy4gVGhlIG1lbWJlciB3aWxsIG5vdyBsZWF2ZSB0aGUgZ3JvdXAgYXMgaW5zdHJ1Y3RlZCBieSB0aGUgZ3JvdXBfcmVwbGljYXRpb25fdW5yZWFjaGFibGVfbWFqb3JpdHlfdGltZW91dCBvcHRpb24uAFRoZSBzZXJ2ZXIgd2FzIGF1dG9tYXRpY2FsbHkgc2V0IGludG8gcmVhZCBvbmx5IG1vZGUgYWZ0ZXIgYW4gZXJyb3Igd2FzIGRldGVjdGVkLgBVbmFibGUgdG8gbG9nIG5vdGlmaWNhdGlvbiB0byB0YWJsZSAoZXJybm86ICVsdSkgKHJlczogJWQpISBNZXNzYWdlOiAlcwBGYWlsdXJlIGluIGdyb3VwIGNvbW11bmljYXRpb24gZW5naW5lICclcycgaW5pdGlhbGl6YXRpb24AVW5hYmxlIHRvIHNldCB0aGUgZ3JvdXAgY29tbXVuaWNhdGlvbiBlbmdpbmUgbG9nZ2VyAEN1cnJlbnQgZGVidWcgb3B0aW9ucyBhcmU6ICclcycuAFNvbWUgZGVidWcgb3B0aW9ucyBpbiAnJXMnIGFyZSBub3QgdmFsaWQuAEVycm9yIGNhbGxpbmcgZ3JvdXAgY29tbXVuaWNhdGlvbiBpbnRlcmZhY2VzIHdoaWxlIHRyeWluZyB0byBsZWF2ZSB0aGUgZ3JvdXAATWVtYmVyIGlzIG5vdCBPTkxJTkUsIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBmb3JjZSBhIG5ldyBncm91cCBtZW1iZXJzaGlwAEVycm9yIGNhbGxpbmcgZ3JvdXAgY29tbXVuaWNhdGlvbiBpbnRlcmZhY2VzAEVycm9yIHNldHRpbmcgZ3JvdXBfcmVwbGljYXRpb25fZm9yY2VfbWVtYmVycyB2YWx1ZSAnJXMnIG9uIGdyb3VwIGNvbW11bmljYXRpb24gaW50ZXJmYWNlcwBUaGUgZ3JvdXBfcmVwbGljYXRpb25fZm9yY2VfbWVtYmVycyB2YWx1ZSAnJXMnIHdhcyBzZXQgaW4gdGhlIGdyb3VwIGNvbW11bmljYXRpb24gaW50ZXJmYWNlcwBUaW1lb3V0IG9uIHdhaXQgZm9yIHZpZXcgYWZ0ZXIgc2V0dGluZyBncm91cF9yZXBsaWNhdGlvbl9mb3JjZV9tZW1iZXJzIHZhbHVlICclcycgaW50byBncm91cCBjb21tdW5pY2F0aW9uIGludGVyZmFjZXMAQnJvYWRjYXN0IG9mIGNvbW1pdHRlZCB0cmFuc2FjdGlvbnMgbWVzc2FnZSBmYWlsZWQuIE1lc3NhZ2UgaXMgdG9vIGJpZy4ARXJyb3Igd2hpbGUgc2VuZGluZyBzdGF0cyBtZXNzYWdlAEZsb3cgY29udHJvbCAtIHVwZGF0ZSBtZW1iZXIgc3RhdHM6ICVzIHN0YXRzIGNlcnRpZmllcl9xdWV1ZSAlZCwgYXBwbGllcl9xdWV1ZSAlZCBjZXJ0aWZpZWQgJWxkICglbGQpLCBhcHBsaWVkICVsZCAoJWxkKSwgbG9jYWwgJWxkICglbGQpLCBxdW90YSAlbGQgKCVsZCkgbW9kZT0lZABGbG93IGNvbnRyb2w6IHRocm90dGxpbmcgdG8gJWxkIGNvbW1pdHMgcGVyICVsZCBzZWMsIHdpdGggJWQgd3JpdGluZyBhbmQgJWQgbm9uLXJlY292ZXJpbmcgbWVtYmVycywgbWluIGNhcGFjaXR5ICVsbGQsIGxpbSB0aHJvdHRsZSAlbGxkAFVuYWJsZSB0byBjb252ZXJ0IGEgcGFja2V0IGludG8gYW4gZXZlbnQgb24gdGhlIGFwcGxpZXIuIEVycm9yOiAlcwBGYWlsZWQgdG8gY3JlYXRlIGdyb3VwIHJlcGxpY2F0aW9uIHBpcGVsaW5lIGNhY2hlLgBGYWlsZWQgdG8gcmVpbml0IGdyb3VwIHJlcGxpY2F0aW9uIHBpcGVsaW5lIGNhY2hlIGZvciB3cml0ZS4AVW5hYmxlIHRvIGNvbnZlcnQgdGhlIGV2ZW50IGludG8gYSBwYWNrZXQgb24gdGhlIGFwcGxpZXIuIEVycm9yOiAlcwBGYWlsZWQgdG8gZmx1c2ggZ3JvdXAgcmVwbGljYXRpb24gcGlwZWxpbmUgY2FjaGUuAEZhaWxlZCB0byByZWluaXQgZ3JvdXAgcmVwbGljYXRpb24gcGlwZWxpbmUgY2FjaGUgZm9yIHJlYWQuAEVycm9yIHN0b3BwaW5nIGFsbCByZXBsaWNhdGlvbiBjaGFubmVscyB3aGlsZSBzZXJ2ZXIgd2FzIGxlYXZpbmcgdGhlIGdyb3VwLiBHb3QgZXJyb3I6ICVkLiBQbGVhc2UgY2hlY2sgdGhlIGVycm9yIGxvZyBmb3IgbW9yZSBkZXRhaWxzLgAlcwBUaGUgcmVwbGljYSBJTyB0aHJlYWQgb2YgY2hhbm5lbCAnJXMnIGlzIHVuYmxvY2tlZCBhcyB0aGUgbWVtYmVyIGlzIGRlY2xhcmVkIE9OTElORSBub3cuAFRoZSByZXBsaWNhIElPIHRocmVhZCBvZiBjaGFubmVsICclcycgd2lsbCBlcnJvciBvdXQgYXMgdGhlIG1lbWJlciBmYWlsZWQgdG8gY29tZSBPTkxJTkUuAFRoZSByZXBsaWNhIGFwcGxpZXIgdGhyZWFkIG9mIGNoYW5uZWwgJyVzJyBpcyB1bmJsb2NrZWQgYXMgdGhlIG1lbWJlciBpcyBkZWNsYXJlZCBPTkxJTkUgbm93LgBUaGUgcmVwbGljYSBhcHBsaWVyIHRocmVhZCBvZiBjaGFubmVsICclcycgd2lsbCBlcnJvciBvdXQgYXMgdGhlIG1lbWJlciBmYWlsZWQgdG8gY29tZSBPTkxJTkUuAExEQVAgYXV0aGVudGljYXRpb24gaW5pdGlhbGl6ZTogZmFpbGVkIHRvIGNyZWF0ZS8gZ2V0IGNvbm5lY3Rpb24gZnJvbSB0aGUgcG9vbC4gAExEQVAgYXV0aGVudGljYXRpb24gZGVfaW5pdGlhbGl6ZSBGYWlsZWQAU2tpcHBpbmcgZ3JvdXAgc2VhcmNoLCBObyBncm91cCBhdHRyaWJ1dGUgbWVudGlvbmVkAFBvb2wgbWF4IHNpemUgaXMgMCwgY29ubmVjdGlvbiBwb29sIGlzIGRpc2FibGVkAENvbm5lY3Rpb24gcG9vbCBpbml0aWFsaXphdGlvbiwgZmFpbGVkIHRvIGNyZWF0ZSBMREFQIG9iamVjdCBjcmVhdG9yAENvbm5lY3Rpb24gcG9vbCBpbml0aWFsaXphdGlvbiwgZmFpbGVkIHRvIGNyZWF0ZSBMREFQIG9iamVjdABMREFQIFRMUyBjb25maWd1cmF0aW9uAExEQVAgVExTIGNvbm5lY3Rpb24ATERBUCBwb29sIGlzIG5vdCBjcmVhdGVkLgBMREFQIHBvb2wgaXMgaW5pdGlhbGl6aW5nAExEQVAgcG9vbCBpcyBkZS1pbml0aWFsaXppbmcAUG9vbCBtYXggc2l6ZSBvbGQgYW5kIG5ldyB2YWx1ZXMgYXJlIDAATERBUCBwb29sIGlzIHJlLWluaXRpYWxpemluZwBQbHVnLWluIGhhcyBmYWlsZWQgdG8gd3JpdGUgdGhlIHBhY2tldC4AU2V0dGluZyBMREFQIHVzZXIgbmFtZSBhcyA6ICVzAFVzZXIgYXV0aGVudGljYXRpb24gZGF0YTogJXMgc2l6ZTogJWx1AFVzZXIgaXMgYXV0aGVudGljYXRlZCBhczogJXMgZXh0ZXJuYWwgdXNlcjogJXMAR3JvdXAgc2VhcmNoIGluZm9ybWF0aW9uIGJhc2UgRE46ICVzIHNjb3BlOiAlZCBmaWx0ZXI6ICVzIGF0dHJpYnV0ZTogJXMAU3BlY2lhbCBoYW5kbGluZyBmb3IgZ3JvdXAgc2VhcmNoLCB7R0F9IGZvdW5kAEdyb3VwIHNlYXJjaCBzcGVjaWFsIGhhbmRsaW5nLCBncm91cCBmdWxsIEROIGZvdW5kLiAAVXNlciAlcyBpcyBub3QgbWVtYmVyIG9mIGFueSBncm91cC4AVXNlciAlcyBpcyBtZW1iZXIgb2YgbW9yZSB0aGFuIG9uZSBncm91cABGb3IgdXNlciAlcyBoYXMgbXVsdGlwbGUgdXNlciBncm91cCBuYW1lcy4gUGxlYXNlIGNoZWNrIGlmIGdyb3VwIGF0dHJpYnV0ZSBuYW1lIGlzIGNvcnJlY3QAU2VhcmNoZWQgZ3JvdXAgbmFtZTogJXMATERBUCBhdXRoZW50aWNhdGlvbiBvYmplY3QgY3JlYXRpb24gdGltZV9zdGFtcDogJXMgZG46ICVzAENlcnRpZmljYXRlIG5hbWU6ICVzAEZhaWxlZCB0byBwb29sIGRlLWluaXRpYWxpemVkOiBwb29sIGlzIGFscmVhZHkgcmVjb25zdHJ1Y3RpbmcAUG9vbCBpbml0aWFsaXphdGlvbiBmYWlsZWQ6IHBvb2wgaXMgYWxyZWFkeSBpbml0aWFsaXplZABQb29sIGluaXRpYWxpemF0aW9uIGZhaWxlZDogcG9vbCBpcyBpbml0aWFsaXppbmcAUG9vbCBpbml0aWFsaXphdGlvbiBmYWlsZWQ6IHBvb2wgaXMgZGUtaW5pdGlhbGl6aW5nAEZhaWxlZCB0byBwb29sIGRlaW5pdGlhbGl6ZWQ6IHBvb2wgaXMgYWxyZWFkeSByZWNvbnN0cnVjdGluZwBGYWlsZWQgdG8gcG9vbCBkZWluaXRpYWxpemVkIDogcG9vbCBpcyBub3QgcmVhZHkATGRhcF9jb25uZWN0aW9uX3Bvb2w6OmdldDogRmFpbGVkIHRvIHJldHVybiBjb25uZWN0aW9uIGFzIHBsdWctaW4gaXMgbm90IHJlYWR5L2luaXRpYWxpemluZy9kZS1pbml0aWFsaXppbmcAQ29ubmVjdGlvbiBwb29sIGhhcyBmYWlsZWQgdG8gaW5pdGlhbGl6ZWQATGRhcF9jb25uZXRpb25fcG9vbDo6Z2V0IExEQVAgbWF4aW11bSBjb25uZWN0aW9uIGFsbG93ZWQgc2l6ZSBpcyByZWFjaGVkLiBJbmNyZWFzZSB0aGUgbWF4aW11bSBsaW1pdC4AU2V0IG1heCBwb29sIHNpemUgZmFpbGVkLgBQbHVnLWluIGhhcyBmYWlsZWQgdG8gcmVhZCB0aGUgcGFja2V0IGZyb20gY2xpZW50AExkYXBfYXV0aGVudGljYXRpb246OmluaXRpYWxpemU6IGNyZWF0aW5nIG5ldyBMREFQIGNvbm5lY3Rpb24uIABMZGFwX2F1dGhlbnRpY2F0aW9uOjppbml0aWFsaXplOiBnZXR0aW5nIGNvbm5lY3Rpb24gZnJvbSBwb29sLiAATGRhcF9hdXRoZW50aWNhdGlvbjo6ZGVfaW5pdGlhbGl6ZSBwdXR0aW5nIGJhY2sgY29ubmVjdGlvbiBpbiB0aGUgcG9vbABMZGFwX2F1dGhlbnRpY2F0aW9uOjpzZWFyY2hfdXNlcl9ncm91cCBubyBncm91cCBhdHRyaWJ1dGUgZm91bmQATGRhcF9jb25uZXRpb25fcG9vbDo6cHV0IGxkYXAgaW5mbyBudWxsAExkYXBfY29ubmVjdGlvbl9wb29sOjpwdXQgY29ubmVjdGlvbiBpcyBmcmVlaW5nLiAATGRhcF9jb25uZWN0aW9uX3Bvb2w6OnB1dCBjb25uZWN0aW9uIGluIHB1c2hlZCBpbiB0aGUgcG9vbABMZGFwX2Nvbm5lY3Rpb25fY3JlYXRvcjo6TGRhcF9jb25uZWN0aW9uX2NyZWF0b3IAc3RhcnRpbmcgVExTAExkYXBfY29ubmVjdGlvbl9wb29sOjpnZXQ6IChsZGFwX2luZm8gPT0gTlVMTCl8fCAoKmxkYXBfaW5mbykATGRhcF9jb25uZWN0aW9uX3Bvb2w6OmRlaW5pdDogZGVsZXRpbmcgY29ubmVjdGlvbiBrZXkgJXMAIExkYXBfY29ubmVjdGlvbl9wb29sOjpnZXQgcG9vbGVkIGNvbm5lY3Rpb24ga2V5OiAlcwBMZGFwX2Nvbm5lY3Rpb25fcG9vbDo6Z2V0IGNyZWF0ZSBjb25uZWN0aW9uIGtleTogJXMATERBUCBjb21tdW5pY2F0aW9uIGhvc3QgJXMgcG9ydCAldQBTZW5kaW5nIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCB0byBjbGllbnQgOiAlcwBTQVNMIHJlcXVlc3QgcmVjZWl2ZWQgZnJvbSBteXNxbCBjbGllbnQ6ICVzAExkYXBfc2FzbF9hdXRoZW50aWNhdGlvbjo6cHJvY2Vzc19zYXNsIHJjOiAlcwBMZGFwX3Nhc2xfYXV0aGVudGljYXRpb246OnByb2Nlc3Nfc2FzbCBzYXNsIGJpbmQgc3VjY2VlZC4gZG46ICVzIG1ldGhvZDogJXMgc2VydmVyIGNyZWRlbnRpYWw6ICVzAExEQVAgYXV0aGVudGljYXRpb24gc3RhcnRlZCBmb3IgdXNlciBuYW1lOiAlcwAlcwBMREFQIGF1dGhlbnRpY2F0aW9uIGluaXRpYWxpemUgaXMgZmFpbGVkIHdpdGg6ICVzAExEQVAgYXV0aGVudGljYXRpb24gZmFpbGVkIG9yIGdyb3VwIHJldHJpZXZhbCBmYWlsZWQ6ICVzAFNlYXJjaCB1c2VyIGdyb3VwIGhhcyBmYWlsZWQ6ICVzAExEQVAgdXNlciBiaW5kIGhhcyBmYWlsZWQ6ICVzAENvbm5lY3Rpb24gcG9vbCBnZXQ6IEZhaWxlZCB0byBjcmVhdGUgTERBUCBjb25uZWN0aW9uLiAlcwBGYWlsZWQgdG8gY3JlYXRlIG5ldyBMREFQIGNvbm5lY3Rpb246ICAlcwBGYWlsZWQgdG8gZXN0YWJsaXNoIFRMUyBjb25uZWN0aW9uOiAgJXMARmFpbGVkIHRvIHNlYXJjaCB1c2VyIGZ1bGwgZG46ICVzAExkYXBfY29ubmVjdGlvbl9wb29sOjpyZWluaXQAVGhlIHBhdGggJyVzJywgZnJvbSB0aGUgTk9USUZZX1NPQ0tFVCBlbnZpcm9ubWVudCB2YXJpYWJsZSwgaXMgdG9vIGxvbmcuIEF0ICV1IGJ5dGVzIGl0IGV4Y2VlZHMgdGhlIGxpbWl0IG9mICV1IGJ5dGVzIGZvciBhbiBBRl9VTklYIHNvY2tldC4ARmFpbGVkIHRvIGNvbm5lY3QgdG8gc3lzdGVtZCBub3RpZmljYXRpb24gc29ja2V0IG5hbWVkICVzLiBFcnJvcjogJyVzJwBGYWlsZWQgdG8gd3JpdGUgJyVzJyB0byBzeXN0ZW1kIG5vdGlmaWNhdGlvbi4gRXJyb3I6ICclcycAQ2Fubm90IHJlcGxpY2F0ZSB0byBzZXJ2ZXIgd2l0aCBzZXJ2ZXJfdXVpZD0nJS4zNnMnIGJlY2F1c2UgdGhlIHByZXNlbnQgc2VydmVyIGhhcyBwdXJnZWQgcmVxdWlyZWQgYmluYXJ5IGxvZ3MuIFRoZSBjb25uZWN0aW5nIHNlcnZlciBuZWVkcyB0byByZXBsaWNhdGUgdGhlIG1pc3NpbmcgdHJhbnNhY3Rpb25zIGZyb20gZWxzZXdoZXJlLCBvciBiZSByZXBsYWNlZCBieSBhIG5ldyBzZXJ2ZXIgY3JlYXRlZCBmcm9tIGEgbW9yZSByZWNlbnQgYmFja3VwLiBUbyBwcmV2ZW50IHRoaXMgZXJyb3IgaW4gdGhlIGZ1dHVyZSwgY29uc2lkZXIgaW5jcmVhc2luZyB0aGUgYmluYXJ5IGxvZyBleHBpcmF0aW9uIHBlcmlvZCBvbiB0aGUgcHJlc2VudCBzZXJ2ZXIuICVzLgBJbnNlY3VyZSBjb25maWd1cmF0aW9uIGZvciAtLXBpZC1maWxlOiBMb2NhdGlvbiAnJXMnIGluIHRoZSBwYXRoIGlzIGFjY2Vzc2libGUgdG8gYWxsIE9TIHVzZXJzLiBDb25zaWRlciBjaG9vc2luZyBhIGRpZmZlcmVudCBkaXJlY3RvcnkuAENhbid0IHN0YXJ0IHNlcnZlcjogY2FuJ3QgY2hlY2sgUElEIGZpbGVwYXRoOiAlcwB2YWxpZGF0ZV9wYXNzd29yZCBzdGF0dXMgdmFyaWFibGVzIHJlZ2lzdHJhdGlvbiBmYWlsZWQuAHZhbGlkYXRlX3Bhc3N3b3JkIHN0YXR1cyB2YXJpYWJsZXMgdW5yZWdpc3RyYXRpb24gZmFpbGVkLgBEaWN0aW9uYXJ5IGZpbGUgb3BlbiBmYWlsZWQAZ2l2ZW4gcGFzc3dvcmQgc3RyaW5nIGNvdWxkIGJlIG51bGwAZmFpbGVkIHRvIGNvbnZlcnQgdGhlIHBhc3N3b3JkIHN0cmluZyB0byBsb3dlciBjYXNlAGZhaWxlZCB0byBjb252ZXJ0IHRoZSBwYXNzd29yZCBzdHJpbmcgaW50byBhIGJ1ZmZlcgBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQgZm9yIHN0cmluZyBoYW5kbGVyAFNpbmNlIHRoZSB2YWxpZGF0ZV9wYXNzd29yZF9wb2xpY3kgaXMgbWVudGlvbmVkIGFzIFN0cm9uZywgZGljdGlvbmFyeSBmaWxlIG11c3QgYmUgc3BlY2lmaWVkAGNvbnZlcnRfdG9fYnVmZmVyIHNlcnZpY2UgZmFpbGVkACVzIHZhcmlhYmxlIHJlZ2lzdHJhdGlvbiBmYWlsZWQuACVzIHZhcmlhYmxlIHVucmVnaXN0cmF0aW9uIGZhaWxlZC4AUGxlYXNlIHNwZWNpZnkgb3B0aW9ucyBzcGVjaWZpYyB0byBrZXlyaW5nIG1pZ3JhdGlvbi4gQW55IGFkZGl0aW9uYWwgb3B0aW9ucyBjYW4gYmUgaWdub3JlZC4gTk9URTogQWx0aG91Z2ggc29tZSBvcHRpb25zIGFyZSB2YWxpZCwgbWlncmF0aW9uIHRvb2wgY2FuIHN0aWxsIHJlcG9ydCBlcnJvciBleGFtcGxlOiBwbHVnaW4gdmFyaWFibGVzIGZvciB3aGljaCBwbHVnaW4gaXMgbm90IGxvYWRlZCB5ZXQuAEludmFsaWQgZGVmYXVsdCBjb2xsYXRpb24gJXM6IHV0ZjhtYjRfMDkwMF9haV9jaSBvciB1dGY4bWI0X2dlbmVyYWxfY2kgZXhwZWN0ZWQAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMARmFpbGVkIHRvIHNldCBOVU1BIG1lbW9yeSBwb2xpY3kgb2YgYnVmZmVyIHBvb2wgcGFnZSBmcmFtZXMgd2l0aCBtYmluZCglcCwlenUsJXMsLi4uLC4uLiwlcykgZmFpbGVkIHdpdGggJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAUGFnZSBzdGlsbCBmaXhlZCBvciBkaXJ0eSBhdCBzaHV0ZG93bi4gJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAV2FpdGVkIGZvciAldSBzZWNzIGZvciBoYXNoIGluZGV4IHJlZl9jb3VudCAoJXp1KSB0byBkcm9wIHRvIDAuIGluZGV4OiAiJXMiIHRhYmxlOiAiJXMiACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzAFRhYmxlIGZsYWdzIGFyZSAweCVseCBpbiB0aGUgZGF0YSBkaWN0aW9uYXJ5IGJ1dCB0aGUgZmxhZ3MgaW4gZmlsZSAlcyAgYXJlIDB4JWxseCEAQ2FuJ3QgcmVhZCBlbmNyeXB0aW9uIGtleSBmcm9tIGZpbGUgJXMhAENhbm5vdCBjbG9zZSBmaWxlICVzLCBiZWNhdXNlIG5fcGVuZGluZ19mbHVzaGVzICV6dQBDYW5ub3QgY2xvc2UgZmlsZSAlcywgYmVjYXVzZSBtb2RpZmljYXRpb24gY291bnQgJWxsZCAhPSBmbHVzaCBjb3VudCAlbGxkAENhbm5vdCBjbG9zZSBmaWxlICVzLCBiZWNhdXNlIGl0IGlzIGluIHVzZQBPcGVuIGZpbGUgbGlzdCBsZW4gaW4gc2hhcmQgJXp1IGlzICVsbHUAVGFibGVzcGFjZSAlcywgd2FpdGluZyBmb3IgSU8gdG8gc3RvcCBmb3IgJWxsZCBzZWNvbmRzACVzACVzACVzACVzACVzAFlvdSBtdXN0IHJhaXNlIHRoZSB2YWx1ZSBvZiBpbm5vZGJfb3Blbl9maWxlcyBpbiBteS5jbmYhIFJlbWVtYmVyIHRoYXQgSW5ub0RCIGtlZXBzIGFsbCByZWRvIGxvZyBmaWxlcyBhbmQgYWxsIHN5c3RlbSB0YWJsZXNwYWNlIGZpbGVzIG9wZW4gZm9yIHRoZSB3aG9sZSB0aW1lIG15c3FsZCBpcyBydW5uaW5nLCBhbmQgbmVlZHMgdG8gb3BlbiBhbHNvIHNvbWUgLmliZCBmaWxlcyBpZiB0aGUgZmlsZS1wZXItdGFibGUgc3RvcmFnZSBtb2RlbCBpcyB1c2VkLiBDdXJyZW50IG9wZW4gZmlsZXMgJXp1LCBtYXggYWxsb3dlZCBvcGVuIGZpbGVzICV6dS4ATWF4IHRhYmxlc3BhY2UgaWQgaXMgdG9vIGhpZ2gsICVsdQBUcnlpbmcgdG8gYWNjZXNzIG1pc3NpbmcgdGFibGVzcGFjZSAlbHUAVHJ5aW5nIHRvIGNsb3NlL2RlbGV0ZSB0YWJsZXNwYWNlICclcycgYnV0IHRoZXJlIGFyZSAlbHUgcGVuZGluZyBvcGVyYXRpb25zIG9uIGl0LgBUcnlpbmcgdG8gZGVsZXRlL2Nsb3NlIHRhYmxlc3BhY2UgJyVzJyBidXQgdGhlcmUgYXJlICVsdSBmbHVzaGVzIGFuZCAlenUgcGVuZGluZyBJL08ncyBvbiBpdC4AJXMAQ2Fubm90IGRlbGV0ZSB0YWJsZXNwYWNlICVsdSBiZWNhdXNlIGl0IGlzIG5vdCBmb3VuZCBpbiB0aGUgdGFibGVzcGFjZSBtZW1vcnkgY2FjaGUuAFdoaWxlIGRlbGV0aW5nIHRhYmxlc3BhY2UgJWx1IGluIERJU0NBUkQgVEFCTEVTUEFDRS4gRmlsZSByZW5hbWUvZGVsZXRlIGZhaWxlZDogJXMAQ2Fubm90IGRlbGV0ZSB0YWJsZXNwYWNlICVsdSBpbiBESVNDQVJEIFRBQkxFU1BBQ0U6ICVzAENhbm5vdCByZW5hbWUgJyVzJyB0byAnJXMnIGZvciBzcGFjZSBJRCAlbHUgYmVjYXVzZSB0aGUgc291cmNlIGZpbGUgZG9lcyBub3QgZXhpc3QuAENhbm5vdCByZW5hbWUgJyVzJyB0byAnJXMnIGZvciBzcGFjZSBJRCAlbHUgYmVjYXVzZSB0aGUgdGFyZ2V0IGZpbGUgZXhpc3RzLiBSZW1vdmUgdGhlIHRhcmdldCBmaWxlIGFuZCB0cnkgYWdhaW4uAENhbm5vdCByZW5hbWUgZmlsZSAnJXMnIChzcGFjZSBpZCAlbHUpIHJldHJpZWQgJWxsdSB0aW1lcy4gVGhlcmUgYXJlIGVpdGhlciBwZW5kaW5nIElPcyBvciBmbHVzaGVzIG9yIHRoZSBmaWxlIGlzIGJlaW5nIGV4dGVuZGVkLgBDYW5ub3QgZmluZCBzcGFjZSBpZCAlbHUgaW4gdGhlIHRhYmxlc3BhY2UgbWVtb3J5IGNhY2hlLCB0aG91Z2ggdGhlIGZpbGUgJyVzJyBpbiBhIHJlbmFtZSBvcGVyYXRpb24gc2hvdWxkIGhhdmUgdGhhdCBJRC4AUmVuYW1lIHdhaXRpbmcgZm9yIElPIHRvIHJlc3VtZQBDYW5ub3QgZmluZCB0YWJsZXNwYWNlIGZvciAnJXMnIGluIHRoZSB0YWJsZXNwYWNlIG1lbW9yeSBjYWNoZQBDYW5ub3QgZmluZCB0YWJsZXNwYWNlIGZvciAnJXMnIGluIHRoZSB0YWJsZXNwYWNlIG1lbW9yeSBjYWNoZQBUYWJsZXNwYWNlICclcycgaXMgYWxyZWFkeSBpbiB0aGUgdGFibGVzcGFjZSBtZW1vcnkgY2FjaGUAQ2Fubm90IGNyZWF0ZSBmaWxlICclcycAVGhlIGZpbGUgJyVzJyBhbHJlYWR5IGV4aXN0cyB0aG91Z2ggdGhlIGNvcnJlc3BvbmRpbmcgdGFibGUgZGlkIG5vdCBleGlzdC4gSGF2ZSB5b3UgbW92ZWQgSW5ub0RCIC5pYmQgZmlsZXMgYXJvdW5kIHdpdGhvdXQgdXNpbmcgdGhlIFNRTCBjb21tYW5kcyBESVNDQVJEIFRBQkxFU1BBQ0UgYW5kIElNUE9SVCBUQUJMRVNQQUNFLCBvciBkaWQgbXlzcWxkIGNyYXNoIGluIHRoZSBtaWRkbGUgb2YgQ1JFQVRFIFRBQkxFPyBZb3UgY2FuIHJlc29sdmUgdGhlIHByb2JsZW0gYnkgcmVtb3ZpbmcgdGhlIGZpbGUgJyVzJyB1bmRlciB0aGUgJ2RhdGFkaXInIG9mIE15U1FMLgBwb3NpeF9mYWxsb2NhdGUoKTogRmFpbGVkIHRvIHByZWFsbG9jYXRlIGRhdGEgZm9yIGZpbGUgJXMsIGRlc2lyZWQgc2l6ZSAlbGx1IE9wZXJhdGluZyBzeXN0ZW0gZXJyb3IgbnVtYmVyICVkIC0gJXMuIENoZWNrIHRoYXQgdGhlIGRpc2sgaXMgbm90IGZ1bGwgb3IgYSBkaXNrIHF1b3RhIGV4Y2VlZGVkLiBNYWtlIHN1cmUgdGhlIGZpbGUgc3lzdGVtIHN1cHBvcnRzIHRoaXMgZnVuY3Rpb24uIFJlZmVyIHRvIHlvdXIgb3BlcmF0aW5nIHN5c3RlbSBkb2N1bWVudGF0aW9uIGZvciBvcGVyYXRpbmcgc3lzdGVtIGVycm9yIGNvZGUgaW5mb3JtYXRpb24uAENvdWxkIG5vdCB3cml0ZSB0aGUgZmlyc3QgcGFnZSB0byB0YWJsZXNwYWNlICclcycARmlsZSBmbHVzaCBvZiB0YWJsZXNwYWNlICclcycgZmFpbGVkAENvdWxkIG5vdCBmaW5kIGEgdmFsaWQgdGFibGVzcGFjZSBmaWxlIGZvciBgJXNgLiAlcwBJZ25vcmluZyBkYXRhIGZpbGUgJyVzJyB3aXRoIHNwYWNlIElEICVsdS4gQW5vdGhlciBkYXRhIGZpbGUgY2FsbGVkICclcycgZXhpc3RzIHdpdGggdGhlIHNhbWUgc3BhY2UgSUQAJXMAJXMAJXMAJXMAQ2FuJ3Qgc2V0IGVuY3J5cHRpb24gaW5mb3JtYXRpb24gZm9yIHRhYmxlc3BhY2UgJXMhACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzAFRoZSBkYXRhZmlsZSAnJXMnIGZvciB0YWJsZXNwYWNlICVzIGlzIGluIGFuIHVucHJvdGVjdGVkIGxvY2F0aW9uLiBUaGlzIGZpbGUgY2Fubm90IGJlIHJlY292ZXJlZCBhZnRlciBhIGNyYXNoIHVudGlsIHRoaXMgbG9jYXRpb24gaXMgYWRkZWQgdG8gaW5ub2RiX2RpcmVjdG9yaWVzLgAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBTY2FuIHBhdGggJyVzJyBpcyBpZ25vcmVkIGJlY2F1c2UgJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAQSBnZW5lcmFsIHRhYmxlc3BhY2UgY2Fubm90IGJlIGxvY2F0ZWQgdW5kZXIgdGhlIGRhdGFkaXIuIENhbm5vdCBvcGVuIGZpbGUgJyVzJy4AQSBmaWxlLXBlci10YWJsZSB0YWJsZXNwYWNlIGNhbm5vdCBiZSBsb2NhdGVkIGluIHRoZSBkYXRhZGlyLiBDYW5ub3Qgb3BlbiBmaWxlICclcycuACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzAENhbm5vdCBjcmVhdGUgYSB0YWJsZXNwYWNlIGZvciB0YWJsZSAlcyBiZWNhdXNlIHRoZSBkaXJlY3RvcnkgaXMgbm90IGEgdmFsaWQgbG9jYXRpb24uICVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzAGlidWYgY3Vyc29yIHJlc3RvcmF0aW9uIGZhaWxzIS4gaWJ1ZiByZWNvcmQgaW5zZXJ0ZWQgdG8gcGFnZSAlczolcwAlcwBGYWlsZWQgdG8gcmVzdG9yZSBpYnVmIHBvc2l0aW9uLgAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBCbG9ja2VkIEhpZ2ggUHJpb3JpdHkgVHJhbnNhY3Rpb24gKElEICVsbHUsIFRocmVhZCBJRCAlcykgZm9yY2VzIHJvbGxiYWNrIG9mIHRoZSBibG9ja2luZyB0cmFuc2FjdGlvbiAoSUQgJWxsdSAtICVzKS4AJXMAJXMAQmxvY2tlZCBIaWdoIFByaW9yaXR5IFRyYW5zYWN0aW9uIChUaHJlYWQgSUQgJXMpIHdha2luZyB1cCB0aGUgYmxvY2tpbmcgdHJhbnNhY3Rpb24gKElEICVsbHUpIGJ5IHByZXRlbmRpbmcgaXQncyBhIGRlYWRsb2NrIHZpY3RpbS4AJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAVGhlIHRyYW5zYWN0aW9uIGxvZyBzaXplIGlzIHRvbyBsYXJnZSBmb3IgaW5ub2RiX2xvZ19idWZmZXJfc2l6ZSAoJWx1ID49ICVsdSAvIDIpLiBUcnlpbmcgdG8gZXh0ZW5kIGl0LgBpbm5vZGJfbG9nX2J1ZmZlcl9zaXplIHdhcyBleHRlbmRlZCB0byAlbHUgYnl0ZXMuAFRoZSB0cmFuc2FjdGlvbiBsb2cgZmlsZXMgYXJlIHRvbyBzbWFsbCBmb3IgdGhlIHNpbmdsZSB0cmFuc2FjdGlvbiBsb2cgKHNpemU9JWx1KS4gU28sIHRoZSBsYXN0IGNoZWNrcG9pbnQgYWdlIG1pZ2h0IGV4Y2VlZCB0aGUgbG9nIGdyb3VwIGNhcGFjaXR5ICVsbHUuAFRoZSBhZ2Ugb2YgdGhlIGxhc3QgY2hlY2twb2ludCBpcyAlbGx1LCB3aGljaCBleGNlZWRzIHRoZSBsb2cgZ3JvdXAgY2FwYWNpdHkgJWxsdS4AQ2Fubm90IGNvbnRpbnVlIG9wZXJhdGlvbi4gaWJfbG9nZmlsZXMgYXJlIHRvbyBzbWFsbCBmb3IgaW5ub2RiX3RocmVhZF9jb25jdXJyZW5jeSAlbHUuIFRoZSBjb21iaW5lZCBzaXplIG9mIGliX2xvZ2ZpbGVzIHNob3VsZCBiZSBiaWdnZXIgdGhhbiAyMDAga0IgKiBpbm5vZGJfdGhyZWFkX2NvbmN1cnJlbmN5LiBUbyBnZXQgbXlzcWxkIHRvIHN0YXJ0IHVwLCBzZXQgaW5ub2RiX3RocmVhZF9jb25jdXJyZW5jeSBpbiBteS5jbmYgdG8gYSBsb3dlciB2YWx1ZSwgZm9yIGV4YW1wbGUsIHRvIDguIEFmdGVyIGFuIEVSUk9SLUZSRUUgc2h1dGRvd24gb2YgbXlzcWxkIHlvdSBjYW4gYWRqdXN0IHRoZSBzaXplIG9mIGliX2xvZ2ZpbGVzLiAlcwBSZWRvIGxvZyB3YXMgZW5jcnlwdGVkLCBidXQga2V5cmluZyBwbHVnaW4gaXMgbm90IGxvYWRlZC4AUmVhZCByZWRvIGxvZyBlbmNyeXB0aW9uIG1ldGFkYXRhIHN1Y2Nlc3NmdWwuAENhbid0IHNldCByZWRvIGxvZyB0YWJsZXNwYWNlIGVuY3J5cHRpb24gbWV0YWRhdGEuAENhbm5vdCByZWFkIHRoZSBlbmNyeXB0aW9uIGluZm9ybWF0aW9uIGluIGxvZyBmaWxlIGhlYWRlciwgcGxlYXNlIGNoZWNrIGlmIGtleXJpbmcgcGx1Z2luIGxvYWRlZCBhbmQgdGhlIGtleSBmaWxlIGV4aXN0cy4AQ2FuJ3Qgc2V0IHJlZG8gbG9nIHRhYmxlc3BhY2UgdG8gYmUgZW5jcnlwdGVkIGluIHJlYWQtb25seSBtb2RlLgBDYW4ndCBzZXQgcmVkbyBsb2cgdGFibGVzcGFjZSB0byBiZSBlbmNyeXB0ZWQuAENhbid0IHNldCByZWRvIGxvZyB0YWJsZXNwYWNlIHRvIGJlIGVuY3J5cHRlZC4AUmVkbyBsb2cgZW5jcnlwdGlvbiBpcyBlbmFibGVkLgBGbHVzaCB3YWl0aW5nIGZvciBhcmNoaXZlciB0byBjYXRjaCB1cCBsYWcgTFNOOiAlbGx1AEZsdXNoIG92ZXJ3cml0aW5nIGRhdGEgdG8gYXJjaGl2ZSAtIHdhaXQgdG9vIGxvbmcgKDEgbWludXRlKSBsYWcgTFNOOiAlbGx1ACVzAFN0YXJ0aW5nIHNodXRkb3duLi4uAFdhaXRpbmcgZm9yICVzIHRvIGV4aXQAV2FpdGluZyBmb3IgJWx1IGFjdGl2ZSB0cmFuc2FjdGlvbnMgdG8gZmluaXNoAFdhaXRpbmcgZm9yIG1hc3RlciB0aHJlYWQgdG8gYmUgc3VzcGVuZGVkAFdhaXRpbmcgZm9yIHBhZ2VfY2xlYW5lciB0byBmaW5pc2ggZmx1c2hpbmcgb2YgYnVmZmVyIHBvb2wAUGVuZGluZyBjaGVja3BvaW50X3dyaXRlczogJWx1LiBQZW5kaW5nIGxvZyBmbHVzaCB3cml0ZXM6ICVsdS4AV2FpdGluZyBmb3IgJWx1IGJ1ZmZlciBwYWdlIEkvT3MgdG8gY29tcGxldGUATXlTUUwgaGFzIHJlcXVlc3RlZCBhIHZlcnkgZmFzdCBzaHV0ZG93biB3aXRob3V0IGZsdXNoaW5nIHRoZSBJbm5vREIgYnVmZmVyIHBvb2wgdG8gZGF0YSBmaWxlcy4gQXQgdGhlIG5leHQgbXlzcWxkIHN0YXJ0dXAgSW5ub0RCIHdpbGwgZG8gYSBjcmFzaCByZWNvdmVyeSEAQmFja2dyb3VuZCB0aHJlYWQgJXMgd29rZSB1cCBkdXJpbmcgc2h1dGRvd24AV2FpdGluZyBmb3IgYXJjaGl2ZXIgdG8gZmluaXNoIGFyY2hpdmluZyBwYWdlIGFuZCBsb2cAQmFja2dyb3VuZCB0aHJlYWQgJXMgd29rZSB1cCBkdXJpbmcgc2h1dGRvd24AV2FpdGluZyBmb3IgZGlydHkgYnVmZmVyIHBhZ2VzIHRvIGJlIGZsdXNoZWQATG9nIHNlcXVlbmNlIG51bWJlciBhdCBzaHV0ZG93biAlbGx1IGlzIGxvd2VyIHRoYW4gYXQgc3RhcnR1cCAlbGx1IQBXYWl0aW5nIGZvciBhcmNoaXZlciB0byBmaW5pc2ggYXJjaGl2aW5nIHBhZ2UgYW5kIGxvZwAjIyMjIyMjIyMjIyMjIyMgQ09SUlVQVCBMT0cgUkVDT1JEIEZPVU5EICMjIyMjIyMjIyMjIyMjIwBMb2cgcmVjb3JkIHR5cGUgJWQsIHBhZ2UgJWx1OiVsdS4gTG9nIHBhcnNpbmcgcHJvY2VlZGVkIHN1Y2Nlc3NmdWxseSB1cCB0byAlbGx1LiBQcmV2aW91cyBsb2cgcmVjb3JkIHR5cGUgJWQsIGlzIG11bHRpICVsbHUgUmVjdiBvZmZzZXQgJXpkLCBwcmV2ICVsbHUASGV4IGR1bXAgc3RhcnRpbmcgJWxsdSBieXRlcyBiZWZvcmUgYW5kIGVuZGluZyAlbGx1IGJ5dGVzIGFmdGVyIHRoZSBjb3JydXB0ZWQgcmVjb3JkOgBTZXQgaW5ub2RiX2ZvcmNlX3JlY292ZXJ5IHRvIGlnbm9yZSB0aGlzIGVycm9yLgBUaGUgcmVkbyBsb2cgZmlsZSBtYXkgaGF2ZSBiZWVuIGNvcnJ1cHQgYW5kIGl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIGxvZyBzY2FuIGRpZCBub3QgcHJvY2VlZCBmYXIgZW5vdWdoIGluIHJlY292ZXJ5ISBQbGVhc2UgcnVuIENIRUNLIFRBQkxFIG9uIHlvdXIgSW5ub0RCIHRhYmxlcyB0byBjaGVjayB0aGF0IHRoZXkgYXJlIG9rISBJZiBteXNxbGQgY3Jhc2hlcyBhZnRlciB0aGlzIHJlY292ZXJ5OyAlcwAlbGx1IHBhZ2VzIHdpdGggbG9nIHJlY29yZHMgd2VyZSBsZWZ0IHVucHJvY2Vzc2VkIQBVcGdyYWRlIGFmdGVyIGEgY3Jhc2ggaXMgbm90IHN1cHBvcnRlZC4gVGhpcyByZWRvIGxvZyB3YXMgY3JlYXRlZCB3aXRoICVzLCBhbmQgaXQgYXBwZWFycyBjb3JydXB0ZWQuIFBsZWFzZSBmb2xsb3cgdGhlIGluc3RydWN0aW9ucyBhdCAlcwBVcGdyYWRlIGlzIG5vdCBzdXBwb3J0ZWQgYWZ0ZXIgYSBjcmFzaCBvciBzaHV0ZG93biB3aXRoIGlubm9kYl9mYXN0X3NodXRkb3duID0gMi4gVGhpcyByZWRvIGxvZyB3YXMgY3JlYXRlZCB3aXRoICVzLCBhbmQgaXQgYXBwZWFycyBsb2dpY2FsbHkgbm9uIGVtcHR5LiBQbGVhc2UgZm9sbG93IHRoZSBpbnN0cnVjdGlvbnMgYXQgJXMAJXMAJXMAUmVkbyBsb2cgZm9ybWF0IGlzIHYlbHUuIFRoZSByZWRvIGxvZyB3YXMgY3JlYXRlZCBiZWZvcmUgTXlTUUwgOC4wLjMwLgBVbmtub3duIHJlZG8gbG9nIGZvcm1hdCAodiVsdSkgaW4gZmlsZSAlcy4gUGxlYXNlIGZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGF0ICVzAE5vIHZhbGlkIGNoZWNrcG9pbnQgZm91bmQgKGNvcnJ1cHRlZCByZWRvIGxvZykuIFlvdSBjYW4gdHJ5IC0taW5ub2RiLWZvcmNlLXJlY292ZXJ5PTYgYXMgYSBsYXN0IHJlc29ydC4AQXBwbHlpbmcgYSBiYXRjaCBvZiAlbGx1IHJlZG8gbG9nIHJlY29yZHMgLi4uACVzACVzAEFwcGx5IGJhdGNoIGNvbXBsZXRlZCEAJXMAJXMAJXMAJXMAJXMAJXMAQW4gb3B0aW1pemVkICh3aXRob3V0IHJlZG8gbG9nZ2luZykgRERMIG9wZXJhdGlvbiBoYXMgYmVlbiBwZXJmb3JtZWQuIEFsbCBtb2RpZmllZCBwYWdlcyBtYXkgbm90IGhhdmUgYmVlbiBmbHVzaGVkIHRvIHRoZSBkaXNrIHlldC4gVGhpcyBvZmZsaW5lIGJhY2t1cCBtYXkgbm90IGJlIGNvbnNpc3RlbnQuAEV4dGVuZGluZyB0YWJsZXNwYWNlIDogJWx1IHNwYWNlIG5hbWU6ICVzIHRvIG5ldyBzaXplOiAlbHUgcGFnZXMgZHVyaW5nIHJlY292ZXJ5LgBDb3VsZCBub3QgZXh0ZW5kIHRhYmxlc3BhY2U6ICVsdSBzcGFjZSBuYW1lOiAlcyB0byBuZXcgc2l6ZTogJWx1IHBhZ2VzIGR1cmluZyByZWNvdmVyeS4ATG9nIGJsb2NrICVsdSBhdCBsc24gJWxsdSBoYXMgdmFsaWQgaGVhZGVyLCBidXQgY2hlY2tzdW0gZmllbGQgY29udGFpbnMgJWx1LCBzaG91bGQgYmUgJWx1LgBTa2lwcGVkIG5lY2Vzc2FyeSByZWRvIGxvZyBhcHBseWluZywgLS1pbm5vZGItcmVhZC1vbmx5IHNldCEATG9nIHNjYW4gcHJvZ3Jlc3NlZCBwYXN0IHRoZSBjaGVja3BvaW50IExTTiAlbGx1LgBMb2cgcGFyc2luZyBidWZmZXIgb3ZlcmZsb3cuIFJlY292ZXJ5IG1heSBoYXZlIGZhaWxlZCEgUGxlYXNlIHNldCBsb2dfYnVmZmVyX3NpemUgdG8gYSB2YWx1ZSBoaWdoZXIgdGhhbiAlbHUuAFNldCBpbm5vZGJfZm9yY2VfcmVjb3ZlcnkgdG8gaWdub3JlIHRoaXMgZXJyb3IuAERvaW5nIHJlY292ZXJ5OiBzY2FubmVkIHVwIHRvIGxvZyBzZXF1ZW5jZSBudW1iZXIgJWxsdQBEYXRhYmFzZSB3YXMgbm90IHNodXRkb3duIG5vcm1hbGx5IQBTdGFydGluZyBjcmFzaCByZWNvdmVyeS4AVGhlIHVzZXIgaGFzIHNldCBTUlZfRk9SQ0VfTk9fTE9HX1JFRE8gb24sIHNraXBwaW5nIGxvZyByZWRvAENhbm5vdCByZXN0b3JlIGZyb20gbXlzcWxiYWNrdXAsIElubm9EQiBydW5uaW5nIGluIHJlYWQtb25seSBtb2RlIQBUaGUgcmVkbyBsb2cgZmlsZSB3YXMgY3JlYXRlZCBieSBteXNxbGJhY2t1cCAtLWFwcGx5LWxvZyBhdCAlcy4gVGhlIGZvbGxvd2luZyBjcmFzaCByZWNvdmVyeSBpcyBwYXJ0IG9mIGEgbm9ybWFsIHJlc3RvcmUuAE9wZW5pbmcgY2xvbmVkIGRhdGFiYXNlAFJlZG8gbG9nIGlzIGZyb20gYW4gZWFybGllciB2ZXJzaW9uLCB2JWx1LgBSZWRvIGxvZyBmb3JtYXQgdiVsdSBub3Qgc3VwcG9ydGVkLiBDdXJyZW50IHN1cHBvcnRlZCBmb3JtYXQgaXMgdiVsdS4AQXJlIHlvdSBzdXJlIHlvdSBhcmUgdXNpbmcgdGhlIHJpZ2h0IHJlZG8gbG9nIGZpbGVzIHRvIHN0YXJ0IHVwIHRoZSBkYXRhYmFzZT8gTG9nIHNlcXVlbmNlIG51bWJlciBpbiB0aGUgcmVkbyBsb2cgZmlsZXMgaXMgJWxsdSwgbGVzcyB0aGFuIHRoZSBsb2cgc2VxdWVuY2UgbnVtYmVyIGluIHRoZSBmaXJzdCBzeXN0ZW0gdGFibGVzcGFjZSBmaWxlIGhlYWRlciwgJWxsdS4AVGhlIGxvZyBzZXF1ZW5jZSBudW1iZXIgJWxsdSBpbiB0aGUgc3lzdGVtIHRhYmxlc3BhY2UgZG9lcyBub3QgbWF0Y2ggdGhlIGxvZyBzZXF1ZW5jZSBudW1iZXIgJWxsdSBpbiB0aGUgcmVkbyBsb2cgZmlsZXMhAENhbid0IGluaXRpYXRlIGRhdGFiYXNlIHJlY292ZXJ5LCBydW5uaW5nIGluIHJlYWQtb25seS1tb2RlLgBXZSBzY2FubmVkIHRoZSBsb2cgdXAgdG8gJWxsdS4gQSBjaGVja3BvaW50IHdhcyBhdCAlbGx1IGFuZCB0aGUgbWF4aW11bSBMU04gb24gYSBkYXRhYmFzZSBwYWdlIHdhcyAlbGx1LiBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBkYXRhYmFzZSBpcyBub3cgY29ycnVwdCEAV2FpdGluZyBmb3IgcmVjdl93cml0ZXIgdG8gZmluaXNoIGZsdXNoaW5nIG9mIGJ1ZmZlciBwb29sAFJlY292ZXJ5IHBhcnNpbmcgYnVmZmVyIGV4dGVuZGVkIHRvICV6dS4AT3V0IG9mIG1lbW9yeSB3aGlsZSByZXNpemluZyByZWNvdmVyeSBwYXJzaW5nIGJ1ZmZlci4AJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAQ2FuJ3QgZW5jcnlwdCBkYXRhIG9mIHJlZG8gbG9nACVzACVzAERlY3J5cHRpb24gb2YgcmVkbyBsb2cgYmxvY2sgYXQgb2Zmc2V0ICVsbHUgaW4gZmlsZSAlcyBmYWlsZWQgYmVjYXVzZSB0aGVyZSdzIG5vIGtleXJpbmcgY29uZmlndXJlZAAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBJTyBFcnJvcjogJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAV3JpdGluZyB0YWJsZSBtZXRhZGF0YSB0byAnJXMnACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzAE9sZCBsb2cgc2VxdWVuY2UgbnVtYmVyICVsbHUgd2FzIGdyZWF0ZXIgdGhhbiB0aGUgbmV3IGxvZyBzZXF1ZW5jZSBudW1iZXIgJWxsdS4gUGxlYXNlIHN1Ym1pdCBhIGJ1ZyByZXBvcnQgdG8gaHR0cDovL2J1Z3MubXlzcWwuY29tAFNlbWFwaG9yZSB3YWl0IGhhcyBsYXN0ZWQgPiAlbGx1IHNlY29uZHMuIFdlIGludGVudGlvbmFsbHkgY3Jhc2ggdGhlIHNlcnZlciBiZWNhdXNlIGl0IGFwcGVhcnMgdG8gYmUgaHVuZy4AV2FpdGluZyBmb3IgJWxsdSB0YWJsZShzKSB0byBiZSBkcm9wcGVkAFdhaXRpbmcgZm9yIGNoYW5nZSBidWZmZXIgbWVyZ2UgdG8gY29tcGxldGUgbnVtYmVyIG9mIGJ5dGVzIG9mIGNoYW5nZSBidWZmZXIganVzdCBtZXJnZWQ6ICVsbHUAQ2FuJ3Qgc2V0IHVuZG8gdGFibGVzcGFjZShzKSB0byBiZSBlbmNyeXB0ZWQgc2luY2UgLS1pbm5vZGJfdW5kb190YWJsZXNwYWNlcz0wLgBDYW4ndCBzZXQgdW5kbyB0YWJsZXNwYWNlKHMpIHRvIGJlIGVuY3J5cHRlZCBpbiByZWFkLW9ubHktbW9kZS4AQ2FuJ3Qgc2V0IHVuZG8gdGFibGVzcGFjZSAnJXMnIHRvIGJlIGVuY3J5cHRlZC4AQ2FuJ3Qgc2V0IHVuZG8gdGFibGVzcGFjZSAnJXMnIHRvIGJlIGVuY3J5cHRlZC4gRmFpbGVkIHRvIHdyaXRlIGhlYWRlciBwYWdlLgBDYW4ndCBzZXQgdW5kbyB0YWJsZXNwYWNlICclcycgdG8gYmUgZW5jcnlwdGVkLiBFcnJvciAlZCAtICVzAEVuY3J5cHRpb24gaXMgZW5hYmxlZCBmb3IgdW5kbyB0YWJsZXNwYWNlICclcycuAENhbid0IHJvdGF0ZSBlbmNyeXB0aW9uIG9uIHVuZG8gdGFibGVzcGFjZSAnJXMnLgBFbmNyeXB0aW9uIGlzIGVuYWJsZWQgZm9yIHVuZG8gdGFibGVzcGFjZSAnJXMnLgBvc19maWxlX2dldF9zdGF0dXMoKSBmYWlsZWQgb24gJyVzJy4gQ2FuJ3QgZGV0ZXJtaW5lIGZpbGUgcGVybWlzc2lvbnMuACVzIGNhbid0IGJlIG9wZW5lZCBpbiAlcyBtb2RlLgAnJXMnIG5vdCBhIHJlZ3VsYXIgZmlsZS4AQ2Fubm90IGNyZWF0ZSAlcwBTZXR0aW5nIGZpbGUgJXMgc2l6ZSB0byAlbGx1IE1CLiBQcm9ncmVzcyA6ICV1JSUAQ2Fubm90IHJlc2l6ZSByZWRvIGxvZyBmaWxlICVzIHRvICVsbHUgTUIgKCVzKQBDYW5ub3QgY3JlYXRlIHJlZG8gbG9nIGZpbGVzIGluIHJlYWQtb25seSBtb2RlICgtLWlubm9kYi1yZWFkLW9ubHkpLgBSZWRvIGxvZyBlbmNyeXB0aW9uIGlzIGVuYWJsZWQsIGJ1dCB0aGUga2V5cmluZyBpcyBub3QgbG9hZGVkLgBGYWlsZWQgdG8gY3JlYXRlIHJlZG8gbG9nIGZpbGUgJXMgKGVycm9yOiAlZCkgZm9yIHN0YXJ0IExTTiAlbGx1AFJlbmFtaW5nIGxvZyBmaWxlICVzIHRvICVzAE5ldyByZWRvIGxvZyBmaWxlcyBjcmVhdGVkLCBMU049JWxsdQBVbmFibGUgdG8gb3BlbiAnJXMnIChlcnJvcjogJWQpLgBDYW5ub3QgY3JlYXRlIGNvbnN0cnVjdGlvbiBsb2cgZmlsZSAnJXMnIGZvciB1bmRvIHRhYmxlc3BhY2UgJyVzJy4AQ3JlYXRpbmcgVU5ETyBUYWJsZXNwYWNlICVzAFNldHRpbmcgZmlsZSAlcyBzaXplIHRvICVsbHUgTUIAUGh5c2ljYWxseSB3cml0aW5nIHRoZSBmaWxlIGZ1bGwARXJyb3IgaW4gY3JlYXRpbmcgJXM6IHByb2JhYmx5IG91dCBvZiBkaXNrIHNwYWNlAENhbid0IHNldCBlbmNyeXB0aW9uIG1ldGFkYXRhIGZvciBzcGFjZSAlcwBDYW5ub3QgcmVhZCBmaXJzdCBwYWdlIG9mICclcycgLSAlcwBVbmRvIHRhYmxlc3BhY2UgbnVtYmVyICVsdSB3YXMgYmVpbmcgdHJ1bmNhdGVkIHdoZW4gbXlzcWxkIHF1aXQuAENhbm5vdCByZWNvdmVyIGEgdHJ1bmNhdGVkIHVuZG8gdGFibGVzcGFjZSBpbiByZWFkLW9ubHkgbW9kZQBSZWNvbnN0cnVjdGluZyB1bmRvIHRhYmxlc3BhY2UgbnVtYmVyICVsdS4AQ2Fubm90IGNyZWF0ZSAlcyBiZWNhdXNlICVzIGFscmVhZHkgdXNlcyBTcGFjZSBJRD0lbHUhIERpZCB5b3UgY2hhbmdlIGlubm9kYl91bmRvX2RpcmVjdG9yeT8AVU5ETyB0YWJsZXNwYWNlICVzIG11c3QgYmUgJXMARXJyb3IgY3JlYXRpbmcgZmlsZSBmb3IgJXMARXJyb3IgcmVhZGluZyBlbmNyeXB0aW9uIGZvciAlcwBVbmFibGUgdG8gb3BlbiB1bmRvIHRhYmxlc3BhY2UgbnVtYmVyICVsdQBPcGVuZWQgJWxsdSBleGlzdGluZyB1bmRvIHRhYmxlc3BhY2VzLgBDYW5ub3QgY3JlYXRlIHVuZG8gdGFibGVzcGFjZXMgc2luY2UgaW5ub2RiXyVzIGhhcyBiZWVuIHNldC4gVXNpbmcgJWxsdSBleGlzdGluZyB1bmRvIHRhYmxlc3BhY2VzLgBDYW5ub3QgY29udGludWUgSW5ub0RCIHN0YXJ0dXAgaW4gJXMgbW9kZSBiZWNhdXNlIHRoZXJlIGFyZSBubyBleGlzdGluZyB1bmRvIHRhYmxlc3BhY2VzIGZvdW5kLgBDb3VsZCBub3QgY3JlYXRlIHVuZG8gdGFibGVzcGFjZSAnJXMnLgBFcnJvciAlZCAtICVzIC0gb3BlbmluZyBuZXdseSBjcmVhdGVkIHVuZG8gdGFibGVzcGFjZSAnJXMnLgBDcmVhdGVkICVsbHUgdW5kbyB0YWJsZXNwYWNlcy4AVW5hYmxlIHRvIGNyZWF0ZSBlbmNyeXB0ZWQgdW5kbyB0YWJsZXNwYWNlIG51bWJlciAlbHUuIHBsZWFzZSBjaGVjayBpZiB0aGUga2V5cmluZyBpcyBpbml0aWFsaXplZCBjb3JyZWN0bHkARW5jcnlwdGlvbiBpcyBlbmFibGVkIGZvciB1bmRvIHRhYmxlc3BhY2UgbnVtYmVyICVsdS4AVW5hYmxlIHRvIGluaXRpYWxpemUgdGhlIGhlYWRlciBwYWdlIGluIHVuZG8gdGFibGVzcGFjZSBudW1iZXIgJWx1LgBDYW5ub3QgZGVsZXRlIG9sZCB1bmRvIHRhYmxlc3BhY2VzIGJlY2F1c2UgdGhleSBjb250YWluIHVuZG8gbG9ncyBmb3IgWEEgUFJFUEFSRUQgdHJhbnNhY3Rpb25zLgBVcGdyYWRpbmcgJXp1IGV4aXN0aW5nIHVuZG8gdGFibGVzcGFjZXMgdGhhdCB3ZXJlIHRyYWNrZWQgaW4gdGhlIHN5c3RlbSB0YWJsZXNwYWNlIHRvICVsdSBuZXcgaW5kZXBlbmRlbnQgdW5kbyB0YWJsZXNwYWNlcy4ARGVsZXRpbmcgJWxsdSBuZXcgaW5kZXBlbmRlbnQgdW5kbyB0YWJsZXNwYWNlcyB0aGF0IHdlIGp1c3QgY3JlYXRlZC4AV2FpdGluZyBmb3IgcHVyZ2UgdG8gc3RhcnQAQ3JlYXRpbmcgc2hhcmVkIHRhYmxlc3BhY2UgZm9yIHRlbXBvcmFyeSB0YWJsZXMAVGhlICVzIGRhdGEgZmlsZSBtdXN0IGJlIHdyaXRhYmxlIQBDb3VsZCBub3QgY3JlYXRlIHRoZSBzaGFyZWQgJXMuAFVuYWJsZSB0byBjcmVhdGUgdGhlIHNoYXJlZCAlcy4AVGhlICVzIGRhdGEgZmlsZSBjYW5ub3QgYmUgcmUtb3BlbmVkIGFmdGVyIGNoZWNrX2ZpbGVfc3BlYygpIHN1Y2NlZWRlZCEAJWQgdGhyZWFkcyBjcmVhdGVkIGJ5IElubm9EQiBoYWQgbm90IGV4aXRlZCBhdCBzaHV0ZG93biEASW5ub0RCIERhdGFiYXNlIGNyZWF0aW9uIHdhcyBhYm9ydGVkICVzd2l0aCBlcnJvciAlcy4gWW91IG1heSBuZWVkIHRvIGRlbGV0ZSB0aGUgaWJkYXRhMSBmaWxlIGJlZm9yZSB0cnlpbmcgdG8gc3RhcnQgdXAgYWdhaW4uAFBsdWdpbiBpbml0aWFsaXphdGlvbiBhYm9ydGVkICVzd2l0aCBlcnJvciAlcy4AV2FpdGluZyBmb3IgJXp1IGJ1ZmZlciBwYWdlIEkvT3MgdG8gY29tcGxldGUuAFBVTkNIIEhPTEUgc3VwcG9ydCBhdmFpbGFibGUAUFVOQ0ggSE9MRSBzdXBwb3J0IG5vdCBhdmFpbGFibGUAU2l6ZSBvZiBJbm5vREIncyB1bGludCBpcyAlenUgYnV0IHNpemUgb2Ygdm9pZCogaXMgJXp1LiBUaGUgc2l6ZXMgc2hvdWxkIGJlIHRoZSBzYW1lIHNvIHRoYXQgb24gYSA2NC1iaXQgcGxhdGZvcm1zIHlvdSBjYW4gYWxsb2NhdGUgbW9yZSB0aGFuIDQgR0Igb2YgbWVtb3J5LgBEYXRhYmFzZSB1cGdyYWRlIGNhbm5vdCBiZSBhY2NvbXBsaXNoZWQgaW4gcmVhZC1vbmx5IG1vZGUuAERhdGFiYXNlIHVwZ3JhZGUgY2Fubm90IGJlIGFjY29tcGxpc2hlZCB3aXRoIGlubm9kYl9mb3JjZV9yZWNvdmVyeSA+IDAAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMATXlTUUwgd2FzIGJ1aWx0IHdpdGhvdXQgYSBtZW1vcnkgYmFycmllciBjYXBhYmlsaXR5IG9uIHRoaXMgYXJjaGl0ZWN0dXJlLCB3aGljaCBtaWdodCBhbGxvdyBhIG11dGV4L3J3X2xvY2sgdmlvbGF0aW9uIHVuZGVyIGhpZ2ggdGhyZWFkIGNvbmN1cnJlbmN5LiBUaGlzIG1heSBjYXVzZSBhIGhhbmcuAENvbXByZXNzZWQgdGFibGVzIHVzZSB6bGliICVzACVzAFN0YXJ0dXAgY2FsbGVkIHNlY29uZCB0aW1lIGR1cmluZyB0aGUgcHJvY2VzcyBsaWZldGltZS4gSW4gdGhlIE15U1FMIEVtYmVkZGVkIFNlcnZlciBMaWJyYXJ5IHlvdSBjYW5ub3QgY2FsbCBzZXJ2ZXJfaW5pdCgpIG1vcmUgdGhhbiBvbmNlIGR1cmluZyB0aGUgcHJvY2VzcyBsaWZldGltZS4AJXMAVW5hYmxlIHRvIGNyZWF0ZSBtb25pdG9yIGZpbGUgJXM6ICVzAERpc2FibGluZyBiYWNrZ3JvdW5kIGlidWYgSU8gcmVhZCB0aHJlYWRzLgBDYW5ub3QgaW5pdGlhbGl6ZSBBSU8gc3ViLXN5c3RlbQBJbml0aWFsaXppbmcgYnVmZmVyIHBvb2wsIHRvdGFsIHNpemUgPSAlbGYlYywgaW5zdGFuY2VzID0gJWx1LCBjaHVuayBzaXplID0lbGYlYyAAQ2Fubm90IGFsbG9jYXRlIG1lbW9yeSBmb3IgdGhlIGJ1ZmZlciBwb29sAENvbXBsZXRlZCBpbml0aWFsaXphdGlvbiBvZiBidWZmZXIgcG9vbABTbWFsbCBidWZmZXIgcG9vbCBzaXplICglbGx1TSksIHRoZSBmbHN0X3ZhbGlkYXRlKCkgZGVidWcgZnVuY3Rpb24gY2FuIGNhdXNlIGEgZGVhZGxvY2sgaWYgdGhlIGJ1ZmZlciBwb29sIGZpbGxzIHVwLgBDb3VsZCBub3Qgb3BlbiBvciBjcmVhdGUgdGhlIHN5c3RlbSB0YWJsZXNwYWNlLiBJZiB5b3UgdHJpZWQgdG8gYWRkIG5ldyBkYXRhIGZpbGVzIHRvIHRoZSBzeXN0ZW0gdGFibGVzcGFjZSwgYW5kIGl0IGZhaWxlZCBoZXJlLCB5b3Ugc2hvdWxkIG5vdyBlZGl0IGlubm9kYl9kYXRhX2ZpbGVfcGF0aCBpbiBteS5jbmYgYmFjayB0byB3aGF0IGl0IHdhcywgYW5kIHJlbW92ZSB0aGUgbmV3IGliZGF0YSBmaWxlcyBJbm5vREIgY3JlYXRlZCBpbiB0aGlzIGZhaWxlZCBhdHRlbXB0LiBJbm5vREIgb25seSB3cm90ZSB0aG9zZSBmaWxlcyBmdWxsIG9mIHplcm9zLCBidXQgZGlkIG5vdCB5ZXQgdXNlIHRoZW0gaW4gYW55IHdheS4gQnV0IGJlIGNhcmVmdWw6IGRvIG5vdCByZW1vdmUgb2xkIGRhdGEgZmlsZXMgd2hpY2ggY29udGFpbiB5b3VyIHByZWNpb3VzIGRhdGEhAENhbm5vdCBjcmVhdGUgcmVkbyBsb2cgZmlsZXMgYmVjYXVzZSBkYXRhIGZpbGVzIGFyZSBjb3JydXB0IG9yIHRoZSBkYXRhYmFzZSB3YXMgbm90IHNodXQgZG93biBjbGVhbmx5IGFmdGVyIGNyZWF0aW5nIHRoZSBkYXRhIGZpbGVzLgBPbmx5IG9uZSByZWRvIGxvZyBmaWxlIGZvdW5kAFRoZSByZWRvIGxvZyBmaWxlICVzIHNpemUgJWxsdSBpcyBub3QgYSBtdWx0aXBsZSBvZiBpbm5vZGJfcGFnZV9zaXplAFRoZSByZWRvIGxvZyBmaWxlICVzIGlzIG9mIGRpZmZlcmVudCBzaXplICVsbHUgYnl0ZXMgdGhhbiBvdGhlciBsb2cgZmlsZXMgJWxsdSBieXRlcyEAVXNlIC0taW5ub2RiLWRpcmVjdG9yaWVzIHRvIGZpbmQgdGhlIHRhYmxlc3BhY2UgZmlsZXMuIElmIHRoYXQgZmFpbHMgdGhlbiB1c2UgLS1pbm5vZGItZm9yY2UtcmVjb3Zlcnk9MSB0byBpZ25vcmUgdGhpcyBhbmQgdG8gcGVybWFuZW50bHkgbG9zZSBhbGwgY2hhbmdlcyB0byB0aGUgbWlzc2luZyB0YWJsZXNwYWNlKHMpAFRoZSByZWRvIGxvZyBmaWxlIG1heSBoYXZlIGJlZW4gY29ycnVwdCBhbmQgaXQgaXMgcG9zc2libGUgdGhhdCB0aGUgbG9nIHNjYW4gb3IgcGFyc2luZyBkaWQgbm90IHByb2NlZWQgZmFyIGVub3VnaCBpbiByZWNvdmVyeS4gUGxlYXNlIHJ1biBDSEVDSyBUQUJMRSBvbiB5b3VyIElubm9EQiB0YWJsZXMgdG8gY2hlY2sgdGhhdCB0aGV5IGFyZSBvayEgSXQgbWF5IGJlIHNhZmVzdCB0byByZWNvdmVyIHlvdXIgSW5ub0RCIGRhdGFiYXNlIGZyb20gYSBiYWNrdXAhAENhbm5vdCByZXNpemUgcmVkbyBsb2cgZmlsZXMgaW4gcmVhZC1vbmx5IG1vZGUuIFByb3ZpZGUgLS1pbm5vZGJfcmVkb19sb2dfY2FwYWNpdHkgPj0gJWxsdU1CIG9yIHN0YXJ0IHdpdGhvdXQgLS1pbm5vZGItcmVhZC1vbmx5LgBDYW5ub3Qgb3BlbiBERCB0YWJsZXNwYWNlLgBTdGFydGluZyB0byBkZWxldGUgYW5kIHJld3JpdGUgcmVkbyBsb2cgZmlsZXMuAFVuZG8gZnJvbSA1LjcgZm91bmQuIEl0IHdpbGwgYmUgcHVyZ2VkACVzACVzAFRhYmxlc3BhY2Ugc2l6ZSBzdG9yZWQgaW4gaGVhZGVyIGlzICVsdSBwYWdlcywgYnV0IHRoZSBzdW0gb2YgZGF0YSBmaWxlIHNpemVzIGlzICVsdSBwYWdlcwBDYW5ub3Qgc3RhcnQgSW5ub0RCLiBUaGUgdGFpbCBvZiB0aGUgc3lzdGVtIHRhYmxlc3BhY2UgaXMgbWlzc2luZy4gSGF2ZSB5b3UgZWRpdGVkIGlubm9kYl9kYXRhX2ZpbGVfcGF0aCBpbiBteS5jbmYgaW4gYW4gaW5hcHByb3ByaWF0ZSB3YXksIHJlbW92aW5nIGliZGF0YSBmaWxlcyBmcm9tIHRoZXJlPyBZb3UgY2FuIHNldCBpbm5vZGJfZm9yY2VfcmVjb3Zlcnk9MSBpbiBteS5jbmYgdG8gZm9yY2UgYSBzdGFydHVwIGlmIHlvdSBhcmUgdHJ5aW5nIHRvIHJlY292ZXIgYSBiYWRseSBjb3JydXB0IGRhdGFiYXNlLgBUYWJsZXNwYWNlIHNpemUgc3RvcmVkIGluIGhlYWRlciBpcyAlbHUgcGFnZXMsIGJ1dCB0aGUgc3VtIG9mIGRhdGEgZmlsZSBzaXplcyBpcyBvbmx5ICVsdSBwYWdlcwBDYW5ub3Qgc3RhcnQgSW5ub0RCLiBUaGUgdGFpbCBvZiB0aGUgc3lzdGVtIHRhYmxlc3BhY2UgaXMgbWlzc2luZy4gSGF2ZSB5b3UgZWRpdGVkIGlubm9kYl9kYXRhX2ZpbGVfcGF0aCBpbiBteS5jbmYgaW4gYW4gSW5ub0RCOiBpbmFwcHJvcHJpYXRlIHdheSwgcmVtb3ZpbmcgaWJkYXRhIGZpbGVzIGZyb20gdGhlcmU/IFlvdSBjYW4gc2V0IGlubm9kYl9mb3JjZV9yZWNvdmVyeT0xIGluIG15LmNuZiB0byBmb3JjZSBJbm5vREI6IGEgc3RhcnR1cCBpZiB5b3UgYXJlIHRyeWluZyB0byByZWNvdmVyIGEgYmFkbHkgY29ycnVwdCBkYXRhYmFzZS4AJXMgc3RhcnRlZDsgbG9nIHNlcXVlbmNlIG51bWJlciAlbGx1AFdhaXRpbmcgZm9yIHB1cmdlIHRvIGNvbXBsZXRlAFdhaXRpbmcgZm9yIGRpY3Rfc3RhdHNfdGhyZWFkIHRvIGV4aXQAUXVlcnkgY291bnRlciBzaG93cyAlbGxkIHF1ZXJpZXMgc3RpbGwgaW5zaWRlIElubm9EQiBhdCBzaHV0ZG93bgBTaHV0ZG93biBjb21wbGV0ZWQ7IGxvZyBzZXF1ZW5jZSBudW1iZXIgJWxsdQBDYW5ub3QgY29udGludWUgb3BlcmF0aW9uLgAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBVbmFibGUgdG8gcmVhZCB0aGUgZXhpc3RpbmcgdW5kbyB0cnVuY2F0ZSBsb2cgZmlsZSAnJXMnLiBUaGUgZXJyb3IgaXMgJXMAVW5kbyB0YWJsZXNwYWNlICVzIGlzIG1hcmtlZCBmb3IgdHJ1bmNhdGUAJXMAVHJ1bmNhdGluZyBVTkRPIHRhYmxlc3BhY2UgJXMAJXMAQ2Fubm90IGNyZWF0ZSB0cnVuY2F0ZSBsb2cgZm9yIHVuZG8gdGFibGVzcGFjZSAnJXMnLgAlcwBGYWlsZWQgdG8gdHJ1bmNhdGUgdW5kbyB0YWJsZXNwYWNlICclcycuACVzAENvbXBsZXRlZCB0cnVuY2F0ZSBvZiB1bmRvIHRhYmxlc3BhY2UgJXMuACVzACVzACVzACVzACVzACVzACVzACVzAFRyeWluZyB0byBhY2Nlc3MgdXBkYXRlIHVuZG8gcmVjIGZpZWxkICVsbHUgaW4gaW5kZXggJXMgb2YgdGFibGUgJXMgYnV0IGluZGV4IGhhcyBvbmx5ICVsbHUgZmllbGRzLiAlcy4gUnVuIGFsc28gQ0hFQ0sgVEFCTEUgJXMuIG5fZmllbGRzID0gJWxsdSwgaSA9ICVsbHUsIHB0ciA9ICVwLgAlcwAlcwAlcwAlcwAlcwBSb2xsYmFjayBvZiBub24tcHJlcGFyZWQgdHJhbnNhY3Rpb25zIGNvbXBsZXRlZAAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBCbG9ja2VkIEhpZ2ggUHJpb3JpdHkgVHJhbnNhY3Rpb24gKElEICVsbHUsIFRocmVhZCBJRCAlcykga2lsbGVkIHRoZSBibG9ja2luZyB0cmFuc2FjdGlvbiAoSUQgJWxsdSAtICVzKSBieSByb2xsaW5nIGl0IGJhY2suACVzAGdldHRpbWVvZmRheSgpIGZhaWxlZDogJXMAQ2FuJ3QgY3JlYXRlIFVORE8gdGFibGVzcGFjZSAlcyAlcwAlcwBSZXNpemluZyByZWRvIGxvZyBmcm9tICVsbHVNIHRvICVsbHVNIChMU049JWxsdSkgc3luY2hyb25vdXNseS4gSWYgdGhpcyB0YWtlcyB0b28gbG9uZywgY29uc2lkZXIgc3RhcnRpbmcgdGhlIHNlcnZlciB3aXRoIGxhcmdlIC0taW5ub2RiX3JlZG9fbG9nX2NhcGFjaXR5LCBhbmQgcmVzaXppbmcgdGhlIHJlZG8gbG9nIG9ubGluZSB1c2luZyBTRVQuACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzAE91dCBvZiBzcGFjZSBpbiB0aGUgcmVkbyBsb2cuIENoZWNrcG9pbnQgTFNOOiAlbGx1LiBDb25zaWRlciBpbmNyZWFzaW5nIGlubm9kYl9yZWRvX2xvZ19jYXBhY2l0eS4AJXMATG9nIHdyaXRlciB3YWl0ZWQgdG9vIGxvbmcgZm9yIHJlZG8tYXJjaGl2ZXIgdG8gYWR2YW5jZSAoMSBzZWNvbmQpLiBUaGVyZSBhcmUgdW5hcmNoaXZlZDogJWxsdSBieXRlcy4gQXJjaGl2ZXIgTFNOOiAlbGx1LiBBYm9ydGVkIHRoZSByZWRvLWFyY2hpdmVyLiBDb25zaWRlciBpbmNyZWFzaW5nIGlubm9kYl9yZWRvX2xvZ19jYXBhY2l0eS4ATG9nIHdyaXRlciBpcyB3YWl0aW5nIGZvciByZWRvLWFyY2hpdmVyIHRvIGNhdGNoIHVwIHVuYXJjaGl2ZWQ6ICVsbHUgYnl0ZXMuIEFyY2hpdmVyIExTTjogJWxsdS4gQ29uc2lkZXIgaW5jcmVhc2luZyBpbm5vZGJfcmVkb19sb2dfY2FwYWNpdHkuACVzACVzACVzACVzAENhbid0IHNldCByZWRvIGxvZyBmaWxlcyB0byBiZSBlbmNyeXB0ZWQgaW4gcmVhZC1vbmx5IG1vZGUuAENhbid0IHNldCByZWRvIGxvZyBmaWxlcyB0byBiZSBlbmNyeXB0ZWQuAENhbid0IHNldCByZWRvIGxvZyB0YWJsZXNwYWNlIHRvIGJlIGVuY3J5cHRlZC4AUmVkbyBsb2cgZW5jcnlwdGlvbiBpcyBlbmFibGVkLgBXYWl0aW5nIGZvciBhcmNoaXZlciB0byBmaW5pc2ggYXJjaGl2aW5nIHBhZ2UgYW5kIGxvZwBTdGFydGluZyBzaHV0ZG93bi4uLgBXYWl0aW5nIGZvciAlcyB0byBleGl0LgBXYWl0aW5nIGZvciByb2xsYmFjayBvZiAlenUgcmVjb3ZlcmVkIHRyYW5zYWN0aW9ucywgYmVmb3JlIHNodXRkb3duLgBXYWl0aW5nIGZvciBtYXN0ZXIgdGhyZWFkIHRvIGJlIHN1c3BlbmRlZC4AV2FpdGluZyBmb3IgcGFnZV9jbGVhbmVyIHRvIGZpbmlzaCBmbHVzaGluZyBvZiBidWZmZXIgcG9vbC4AU2h1dGRvd24gaXMgd2FpdGluZyBmb3IgJXp1IGJ1ZmZlciBwYWdlIEkvT3MgdG8gY29tcGxldGUuAE15U1FMIGhhcyByZXF1ZXN0ZWQgYSB2ZXJ5IGZhc3Qgc2h1dGRvd24gd2l0aG91dCBmbHVzaGluZyB0aGUgSW5ub0RCIGJ1ZmZlciBwb29sIHRvIGRhdGEgZmlsZXMuIEF0IHRoZSBuZXh0IG15c3FsZCBzdGFydHVwIElubm9EQiB3aWxsIGRvIGEgY3Jhc2ggcmVjb3ZlcnkhACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzAEludmFsaWQgcmVkbyBsb2cgaGVhZGVyIGNoZWNrc3VtLgBVbnN1cHBvcnRlZCByZWRvIGxvZyBmb3JtYXQgKHYlbHUpLiBUaGUgcmVkbyBsb2cgd2FzIGNyZWF0ZWQgYmVmb3JlIE15U1FMIDUuNy45ACVzAENhbm5vdCBjb250aW51ZSBvcGVyYXRpb24uIFRoZSBpbm5vZGJfcmVkb19sb2dfY2FwYWNpdHk9JWxsdU0gaXMgdG9vIHNtYWxsIGZvciB0aGUgaW5ub2RiX3RocmVhZF9jb25jdXJyZW5jeT0lbHUuIFRoZSBjYXBhY2l0eSBvZiByZWRvIHNob3VsZCBiZSA+PSAlbGx1TS4gVG8gZ2V0IG15c3FsZCBydW5uaW5nLCBzZXQgaW5ub2RiX3RocmVhZF9jb25jdXJyZW5jeSB0byBhIHNtYWxsZXIgdmFsdWUgb3IgaW5jcmVhc2UgaW5ub2RiX3JlZG9fbG9nX2NhcGFjaXR5LiAlcwAlcwAlcwBVc2VyIGhhcyBzZXQgaW5ub2RiX3RocmVhZF9jb25jdXJyZW5jeSB0byAlbHUuAFNUT1AgUkVQTElDQSBjb21tYW5kIGV4ZWN1dGlvbiBpcyBpbmNvbXBsZXRlOiBSZXBsaWNhIFNRTCB0aHJlYWQgZ290IHRoZSBzdG9wIHNpZ25hbCwgdGhyZWFkIGlzIGJ1c3ksIFNRTCB0aHJlYWQgd2lsbCBzdG9wIG9uY2UgdGhlIGN1cnJlbnQgdGFzayBpcyBjb21wbGV0ZS4AU1RPUCBSRVBMSUNBIGNvbW1hbmQgZXhlY3V0aW9uIGlzIGluY29tcGxldGU6IFJlcGxpY2EgSU8gdGhyZWFkIGdvdCB0aGUgc3RvcCBzaWduYWwsIHRocmVhZCBpcyBidXN5LCBJTyB0aHJlYWQgd2lsbCBzdG9wIG9uY2UgdGhlIGN1cnJlbnQgdGFzayBpcyBjb21wbGV0ZS4AU3RhdGVtZW50IHZpb2xhdGVzIEdUSUQgY29uc2lzdGVuY3k6IFVwZGF0ZXMgdG8gbm9uLXRyYW5zYWN0aW9uYWwgdGFibGVzIGNhbiBvbmx5IGJlIGRvbmUgaW4gZWl0aGVyIGF1dG9jb21taXR0ZWQgc3RhdGVtZW50cyBvciBzaW5nbGUtc3RhdGVtZW50IHRyYW5zYWN0aW9ucywgYW5kIG5ldmVyIGluIHRoZSBzYW1lIHN0YXRlbWVudCBhcyB1cGRhdGVzIHRvIHRyYW5zYWN0aW9uYWwgdGFibGVzLgBTdGF0ZW1lbnQgdmlvbGF0ZXMgR1RJRCBjb25zaXN0ZW5jeTogQ1JFQVRFIFRBQkxFIC4uLiBTRUxFQ1QuAFN0YXRlbWVudCB2aW9sYXRlcyBHVElEIGNvbnNpc3RlbmN5OiBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFIGFuZCBEUk9QIFRFTVBPUkFSWSBUQUJMRSBjYW4gb25seSBiZSBleGVjdXRlZCBvdXRzaWRlIHRyYW5zYWN0aW9uYWwgY29udGV4dC4gIFRoZXNlIHN0YXRlbWVudHMgYXJlIGFsc28gbm90IGFsbG93ZWQgaW4gYSBmdW5jdGlvbiBvciB0cmlnZ2VyIGJlY2F1c2UgZnVuY3Rpb25zIGFuZCB0cmlnZ2VycyBhcmUgYWxzbyBjb25zaWRlcmVkIHRvIGJlIG11bHRpLXN0YXRlbWVudCB0cmFuc2FjdGlvbnMuAFdoZW4gJS4xOTJzLCB0aGUgb3B0aW9uIGJpbmxvZ19yb3dfdmFsdWVfb3B0aW9ucz0lLjE5MnMgd2lsbCBiZSBpZ25vcmVkIGFuZCB1cGRhdGVzIHdpbGwgYmUgd3JpdHRlbiBpbiBmdWxsIGZvcm1hdCB0byBiaW5hcnkgbG9nLgBXaGVuICUuMTkycywgdGhlIG9wdGlvbiBsb2dfYmluX3VzZV92MV9yb3dfZXZlbnRzPTEgd2lsbCBiZSBpZ25vcmVkIGFuZCByb3cgZXZlbnRzIHdpbGwgYmUgd3JpdHRlbiBpbiBuZXcgZm9ybWF0IHRvIGJpbmFyeSBsb2cuAFdoZW4gJS4xOTJzLCB0aGUgb3B0aW9uIGJpbmxvZ19yb3dfdmFsdWVfb3B0aW9ucz0lLjE5MnMgd2lsbCBiZSB1c2VkIG9ubHkgZm9yIHRoZSBhZnRlci1pbWFnZS4gRnVsbCB2YWx1ZXMgd2lsbCBiZSB3cml0dGVuIGluIHRoZSBiZWZvcmUtaW1hZ2UsIHNvIHRoZSBzYXZpbmcgaW4gZGlzayBzcGFjZSBkdWUgdG8gYmlubG9nX3Jvd192YWx1ZV9vcHRpb25zIGlzIGxpbWl0ZWQgdG8gbGVzcyB0aGFuIDUwJSUuAEFib3J0ZWQgY29ubmVjdGlvbiAldSB0byBkYjogJyUtLjE5MnMnIHVzZXI6ICclLS40OHMnIGhvc3Q6ICclLS4yNTVzJyAoJS0uNjRzKS4AJXM6IE5vcm1hbCBzaHV0ZG93bi4AQ2FuIG5vdCBwZXJmb3JtIGtleXJpbmcgbWlncmF0aW9uIDogJXMuAFRoZSBtZW1iZXIgaXMgY29uZmlndXJlZCB3aXRoIGEgbG93ZXJfY2FzZV90YWJsZV9uYW1lcyBvcHRpb24gdmFsdWUgJyV1JyBkaWZmZXJlbnQgZnJvbSB0aGUgZ3JvdXAgJyV1Jy4gVGhlIG1lbWJlciB3aWxsIG5vdyBleGl0IHRoZSBncm91cC4gSWYgdGhlcmUgaXMgZXhpc3RpbmcgZGF0YSBvbiBtZW1iZXIsIGl0IG1heSBiZSBpbmNvbXBhdGlibGUgd2l0aCBncm91cCBpZiBpdCB3YXMgY3JlYXRlZCB3aXRoIGEgbG93ZXJfY2FzZV90YWJsZV9uYW1lcyB2YWx1ZSBkaWZmZXJlbnQgZnJvbSB0aGUgZ3JvdXAuAEFuIG91dC1vZi1tZW1vcnkgZXJyb3Igb2NjdXJyZWQgd2hpbGUgc2F2aW5nIHRoZSBzZXQgb2YgR1RJRHMgZnJvbSB0aGUgbGFzdCBiaW5hcnkgbG9nIGludG8gdGhlIG15c3FsLmd0aWRfZXhlY3V0ZWQgdGFibGUAVGhlIGxvd2VyX2Nhc2VfdGFibGVfbmFtZXMgc2V0dGluZyBmb3IgdGhlIGRhdGEgZGljdGlvbmFyeSB3YXMgbm90IGZvdW5kLiBTdGFydGluZyB0aGUgc2VydmVyIHVzaW5nIGxvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPSAnJXUnLgBBIGNhcHR1cmUgZ3JvdXAgaGFzIGFuIGludmFsaWQgbmFtZS4AVmFyaWFibGUgJyUtLjY0cycgY2FuJ3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSBvZiAnJS0uMjAwcycAU3RvcHBpbmcgc2VydmljZXMgZmFpbGVkIHdpdGggZXJyb3IgIiVzIgBRdWVyeSBjYXVzZWQgZGlmZmVyZW50IGVycm9ycyBvbiBzb3VyY2UgYW5kIHJlcGxpY2EuIEVycm9yIG9uIHNvdXJjZTogbWVzc2FnZSAoZm9ybWF0KT0nJXMnIGVycm9yIGNvZGU9JWQ7IEVycm9yIG9uIHJlcGxpY2E6YWN0dWFsIG1lc3NhZ2U9JyVzJywgZXJyb3IgY29kZT0lZC4gRGVmYXVsdCBkYXRhYmFzZTonJXMnLiBRdWVyeTonJXMnAEdvdCBmYXRhbCBlcnJvciAlZCBmcm9tIHNvdXJjZSB3aGVuIHJlYWRpbmcgZGF0YSBmcm9tIGJpbmFyeSBsb2c6ICclLS41MTJzJwBSZXBsaWNhdGlvbiBldmVudCBjaGVja3N1bSB2ZXJpZmljYXRpb24gZmFpbGVkIHdoaWxlIHJlYWRpbmcgZnJvbSBuZXR3b3JrLgBGYWlsZWQgdG8gY3JlYXRlICVzAEZhdGFsIGVycm9yOiAlcwBVbmV4cGVjdGVkIHNvdXJjZSdzIGhlYXJ0YmVhdCBkYXRhOiAlcwBUaGUgaW5jaWRlbnQgJXMgb2NjdXJyZWQgb24gdGhlIHNvdXJjZS4gTWVzc2FnZTogJXMAU291cmNlIGNvbW1hbmQgJXMgZmFpbGVkOiAlcwBSZWxheSBsb2cgcmVhZCBmYWlsdXJlOiAlcwBSZWxheSBsb2cgd3JpdGUgZmFpbHVyZTogJXMAUmVwbGljYSBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBjb25uZWN0aW9uIG1ldGFkYXRhIHN0cnVjdHVyZSBmcm9tIHRoZSByZXBvc2l0b3J5AFJlcGxpY2EgZmFpbGVkIHRvIGluaXRpYWxpemUgYXBwbGllciBtZXRhZGF0YSBzdHJ1Y3R1cmUgZnJvbSB0aGUgcmVwb3NpdG9yeQBHb3QgYSBwYWNrZXQgYmlnZ2VyIHRoYW4gJ21heF9hbGxvd2VkX3BhY2tldCcgYnl0ZXMAQWNjZXNzIHRvICUuNjRzICclLjY0cy4lLjY0cycgaXMgcmVqZWN0ZWQuAFVua25vd24gZXJyb3IAVW5rbm93biBzeXN0ZW0gdmFyaWFibGUgJyUtLjY0cycAQSBtZXNzYWdlIGludGVuZGVkIGZvciBhIGNsaWVudCBjYW5ub3QgYmUgc2VudCB0aGVyZSBhcyBubyBjbGllbnQtc2Vzc2lvbiBpcyBhdHRhY2hlZC4gVGhlcmVmb3JlLCB3ZSdyZSBzZW5kaW5nIHRoZSBpbmZvcm1hdGlvbiB0byB0aGUgZXJyb3ItbG9nIGluc3RlYWQ6IE1ZLSUwNmQgLSAlcwBBYm9ydGVkIGNvbm5lY3Rpb24gJXUgdG8gZGI6ICclLS4xOTJzJyB1c2VyOiAnJS0uNDhzJyBob3N0OiAnJS0uMjU1cycgKCUtLjY0czsgZGlhZ25vc3RpY3MgYXJlYTogTVktJTA2ZCAtICUtLjY0cykAT3V0IG9mIHNvcnQgbWVtb3J5LCBjb25zaWRlciBpbmNyZWFzaW5nIHNlcnZlciBzb3J0IGJ1ZmZlciBzaXplIQBUaGUgdGFibGUgJyUtLjE5MnMnIGlzIGZ1bGwhAENyZWF0ZSB0YWJsZS90YWJsZXNwYWNlICclLS4xOTJzJyBmYWlsZWQsIGFzIGRpc2sgaXMgZnVsbC4ASGFuZGxlciByZXBvcnRlZCBlcnJvciAlZCAtICVzAEluY29ycmVjdCBpbmZvcm1hdGlvbiBpbiBmaWxlOiAnJS0uMjAwcycAQ2FuJ3Qgb3BlbiBmaWxlOiAnJS0uMjAwcycgKE9TIGVycm5vOiAlZCAtICVzKQBDYW4ndCBmaW5kIGZpbGU6ICclLS4yMDBzJyAoT1MgZXJybm86ICVkIC0gJXMpACclLS4xOTJzJyBpcyBsb2NrZWQgYWdhaW5zdCBjaGFuZ2UgKE9TIGVycm5vOiAlZCAtICVzKQBDYW5ub3QgbG9hZCBmcm9tICVzLiVzLiBUaGUgdGFibGUgaXMgcHJvYmFibHkgY29ycnVwdGVkIQBFcnJvciBpbiBkaWFnbm9zdGljcyBhcmVhOiBNWS0lMDZkIC0gJXMASW5jb3JyZWN0IGRlZmluaXRpb24gb2YgdGFibGUgJXMuJXM6IGV4cGVjdGVkIGNvbHVtbiAnJXMnIGF0IHBvc2l0aW9uICVkLCBmb3VuZCAnJXMnLgBUaGUgY29sdW1uIGNvdW50IG9mICVzLiVzIGlzIHdyb25nLiBFeHBlY3RlZCAlZCwgZm91bmQgJWQuIENyZWF0ZWQgd2l0aCBNeVNRTCAlZCwgbm93IHJ1bm5pbmcgJWQuIFBsZWFzZSBwZXJmb3JtIHRoZSBNeVNRTCB1cGdyYWRlIHByb2NlZHVyZS4AQ29sdW1uIGNvdW50IG9mICVzLiVzIGlzIHdyb25nLiBFeHBlY3RlZCAlZCwgZm91bmQgJWQuIFRoZSB0YWJsZSBpcyBwcm9iYWJseSBjb3JydXB0ZWQuAABSZXBsaWNhIFNRTCB0aHJlYWQgYWJvcnRlZC4gQ2FuJ3QgZXhlY3V0ZSBpbml0X3JlcGxpY2EgcXVlcnksIE1ZLSUwNmQgLSAnJXMnAENvbHVtbiAlZCBvZiB0YWJsZSAnJS0uMTkycy4lLS4xOTJzJyBjYW5ub3QgYmUgY29udmVydGVkIGZyb20gdHlwZSAnJS0uMzJzJyB0byB0eXBlICclLS4zMnMnAFJlcGxpY2EgU1FMIHRocmVhZCBpZ25vcmVkIHRoZSBxdWVyeSBiZWNhdXNlIG9mIHJlcGxpY2F0ZS0qLXRhYmxlIHJ1bGVzAENhbm5vdCByZXBsaWNhdGUgYW5vbnltb3VzIHRyYW5zYWN0aW9uIHdoZW4gQVVUT19QT1NJVElPTiA9IDEsIGF0IGZpbGUgJS40MDBzLCBwb3NpdGlvbiAlbGxkLgBDYW5ub3QgcmVwbGljYXRlIGFub255bW91cyB0cmFuc2FjdGlvbiB3aGVuIEBAR0xPQkFMLkdUSURfTU9ERSA9IE9OLCBhdCBmaWxlICUuNDAwcywgcG9zaXRpb24gJWxsZC4AQ2Fubm90IHJlcGxpY2F0ZSBHVElELXRyYW5zYWN0aW9uIHdoZW4gQEBHTE9CQUwuR1RJRF9NT0RFID0gT0ZGLCBhdCBmaWxlICUuNDAwcywgcG9zaXRpb24gJWxsZC4AU2ltdWxhdGVkIGVycm9yACVzAEF1ZGl0IExvZyBmaWx0ZXJpbmcgaGFzIG5vdCBiZWVuIGluc3RhbGxlZC4ARmFpbGVkIHRvIG9wZW4gdGhlICVzIGZpbHRlciB0YWJsZXMuAEZhaWxlZCB0byBvcGVuICclcy4lcycgJXMgdGFibGUuAEZpbHRlciBuYW1lIGNhbm5vdCBiZSBlbXB0eS4ASW52YWxpZCBjaGFyYWN0ZXIgaW4gdGhlIHVzZXIgbmFtZS4AUmVxdWVzdCBpZ25vcmVkIGZvciAnJXMnQCclcycuIFNVUEVSIG9yIEFVRElUX0FETUlOIG5lZWRlZCB0byBwZXJmb3JtIG9wZXJhdGlvbgBObyBrZXlyaW5nIGluc3RhbGxlZC4ASW52YWxpZCBjaGFyYWN0ZXIgaW4gdGhlIGhvc3QgbmFtZS4AQXVkaXQgbG9nIGVuY3J5cHRpb24gcGFzc3dvcmQgaGFzIG5vdCBiZWVuIHNldDsgaXQgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseS4gVXNlIGF1ZGl0X2xvZ19lbmNyeXB0aW9uX3Bhc3N3b3JkX2dldCB0byBvYnRhaW4gdGhlIHBhc3N3b3JkIG9yIGF1ZGl0X2xvZ19lbmNyeXB0aW9uX3Bhc3N3b3JkX3NldCB0byBzZXQgYSBuZXcgb25lLgBDb3VsZCBub3QgY3JlYXRlIEFFUyBrZXkuIE9wZW5TU0wncyBFVlBfQnl0ZXNUb0tleSBmdW5jdGlvbiBmYWlsZWQuAEF1ZGl0IGxvZyBlbmNyeXB0aW9uIHBhc3N3b3JkIGNhbm5vdCBiZSBmZXRjaGVkIGZyb20gdGhlIGtleXJpbmcuIFBhc3N3b3JkIHVzZWQgc28gZmFyIGlzIHVzZWQgZm9yIGVuY3J5cHRpb24uAENvdWxkIG5vdCByZWluaXRpYWxpemUgYXVkaXQgbG9nIGZpbHRlcnMuAFVzZXIgY2Fubm90IGJlIGVtcHR5LgBGaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHVzZXIgbmFtZSBtdXN0IGJlIGFscGhhbnVtZXJpYy4AU3BlY2lmaWVkIGZpbHRlciBoYXMgbm90IGJlZW4gZm91bmQuAENhbm5vdCB1cGdyYWRlIHNlcnZlciBlYXJsaWVyIHRoYW4gNS43IHRvIDguMAAlcyAobXlzcWxkICVzKSBpbml0aWFsaXppbmcgb2Ygc2VydmVyIGluIHByb2dyZXNzIGFzIHByb2Nlc3MgJWx1ACVzIChteXNxbGQgJXMpIGluaXRpYWxpemluZyBvZiBzZXJ2ZXIgaGFzIGNvbXBsZXRlZABDYW5ub3QgYm9vdCBzZXJ2ZXIgdmVyc2lvbiAlbHUgb24gZGF0YSBkaXJlY3RvcnkgYnVpbHQgYnkgdmVyc2lvbiAlbGx1LiBEb3duZ3JhZGUgaXMgbm90IHN1cHBvcnRlZABSZWNlaXZlZCBTSFVURE9XTiBmcm9tIHVzZXIgJXMuIFNodXR0aW5nIGRvd24gbXlzcWxkIChWZXJzaW9uOiAlcykuAFRoZSBwbHVnaW4gZW5jb3VudGVyZWQgYSBjcml0aWNhbCBlcnJvciBhbmQgd2lsbCBhYm9ydDogJXMASW52YWxpZCBtYXRjaCBtb2RlIGZsYWcgaW4gcmVndWxhciBleHByZXNzaW9uLgBUaGUgdXNlIG9mIHJlcGxpY2F0aW9uIGZpbHRlcnMgd2l0aCBYQSB0cmFuc2FjdGlvbnMgaXMgbm90IHN1cHBvcnRlZCwgYW5kIGNhbiBsZWFkIHRvIGFuIHVuZGVmaW5lZCBzdGF0ZSBpbiB0aGUgcmVwbGljYS4AQ2Fubm90IHVwZGF0ZSBHVElEX1BVUkdFRCB3aXRoIHRoZSBHcm91cCBSZXBsaWNhdGlvbiBwbHVnaW4gcnVubmluZwAnJXMuJXMnIHRhYmxlIGRlZmluaXRpb24gaGFzIG5vdCBiZWVuIHVwZ3JhZGVkOyBQbGVhc2UgcGVyZm9ybSB0aGUgTXlTUUwgdXBncmFkZSBwcm9jZWR1cmUuAEV4ZWN1dGlvbiBvZiBzZXJ2ZXItc2lkZSBTUUwgc3RhdGVtZW50ICclcycgZmFpbGVkIHdpdGggZXJyb3IgY29kZSA9ICVkLCBlcnJvciBtZXNzYWdlID0gJyVzJy4ATm8gcGF0aHMgYWxsb3dlZCBmb3Igc2hhcmVkIGxpYnJhcnkuAEZ1bmN0aW9uICclLS4xOTJzJyBhbHJlYWR5IGV4aXN0cy4AR290IEVycm9yOiAlbGQgZnJvbSBTZXRFdmVudC4ARXJyb3IgYWxsb2NhdGluZyBTU0wgQklPLgAlcwBPbmUgb3Igc2V2ZXJhbCBsb2NhdGlvbnMgd2VyZSBpbmFjY2Vzc2libGUgd2hpbGUgY2hlY2tpbmcgUElEIGZpbGVwYXRoLgBDdXJyZW50bHkgdW5rbm93biB2YXJpYWJsZSAnJXMnIHdhcyByZWFkIGZyb20gdGhlIHBlcnNpc3RlZCBjb25maWcgZmlsZS4ARmF0YWwgZXJyb3IgaW4gZGVmYXVsdHMgaGFuZGxpbmcuIFByb2dyYW0gYWJvcnRlZCEARHVwbGljYXRlIHZhcmlhYmxlIG5hbWUgJyVzJy4ARmFpbGVkIHRvIGluaXRpYWxpemUgc3lzdGVtIHZhcmlhYmxlcy4AVmFyaWFibGUgbmFtZSAnJXMnIG5vdCBmb3VuZC4AU29tZSAoJWQpIHRocmVhZHMgYXJlIHN0aWxsIGFjdGl2ZQAlcwBTb3VyY2UgdGFibGVzcGFjZSBpcyBlbmNyeXB0ZWQgYnV0IHRhcmdldCB0YWJsZXNwYWNlIGlzIG5vdC4AV2FpdGluZyBmb3IgdGFibGVzcGFjZV9hbHRlcl9lbmNyeXB0X3RocmVhZCB0byBleGl0ACVzACVzACVzACVzACVzACVzACVzACVzACVzOiBDb3VsZCBub3QgYWRkIHN1cHByZXNzaW9uIHJ1bGUgZm9yIGNvZGUgIiVzIi4gUnVsZS1zZXQgbWF5IGJlIGZ1bGwsIG9yIGNvZGUgbWF5IG5vdCBjb3JyZXNwb25kIHRvIGFuIGVycm9yLWxvZyBtZXNzYWdlLgBJbnZhbGlkIHZhbHVlIGZvciBjb21tYW5kIGxpbmUgb3B0aW9uIGJpbmQtYWRkcmVzc2VzOiAnJXMnAElnbm9yaW5nIHRoZSBAQGdsb2JhbC5yZWxheV9sb2dfc3BhY2VfbGltaXQgb3B0aW9uIGJlY2F1c2UgQEBnbG9iYWwucmVsYXlfbG9nX3B1cmdlIGlzIGRpc2FibGVkLgBFcnJvciB3aGVuIGV4dHJhY3RpbmcgR1RJRCBleGVjdXRpb24gaW5mb3JtYXRpb246ICVzAE1lc3NhZ2UgcmVjZWl2ZWQgd2l0aG91dCBhIHByb3BlciBncm91cCBjb29yZGluYXRvciBtb2R1bGUuAEEgbWVtYmVyIGNhbm5vdCBqb2luIHRoZSBncm91cCB3aGlsZSBhIGdyb3VwIGNvbmZpZ3VyYXRpb24gb3BlcmF0aW9uICclcycgaXMgcnVubmluZyBpbml0aWF0ZWQgYnkgJyVzJy4AQSBtZW1iZXIgaXMgam9pbmluZyB0aGUgZ3JvdXAgd2hpbGUgYSBncm91cCBjb25maWd1cmF0aW9uIG9wZXJhdGlvbiAnJXMnIGlzIHJ1bm5pbmcgaW5pdGlhdGVkIGJ5ICclcycuIFRoZSBtZW1iZXIgd2lsbCBub3cgbGVhdmUgdGhlIGdyb3VwLgBDYW4ndCBzdGFydCAlcyBmb3IgY2hhbm5lbCAnJXMnIHdoZW4gZ3JvdXAgcmVwbGljYXRpb24gaXMgcnVubmluZyBhIGdyb3VwIGNvbmZpZ3VyYXRpb24gb3BlcmF0aW9uICclcycgaW5pdGlhdGVkIGJ5ICclcycuAEEgcHJpbWFyeSBlbGVjdGlvbiB3YXMgaW52b2tlZCBidXQgdGhlIHJlcXVlc3RlZCBwcmltYXJ5IG1lbWJlciBpcyBub3QgaW4gdGhlIGdyb3VwLiBSZXF1ZXN0IGlnbm9yZWQuAEVycm9yIHdoaWxlIHNlbmRpbmcgbWVzc2FnZS4gQ29udGV4dDogJXMARXJyb3Igd2hpbGUgZXhlY3V0aW5nIGEgZ3JvdXAgY29uZmlndXJhdGlvbiBvcGVyYXRpb246ICVzAENvbmZpZ3VyYXRpb24gb3BlcmF0aW9uICclcycgdGVybWluYXRlZC4gJXMAU3RhcnRpbmcgZ3JvdXAgb3BlcmF0aW9uIGxvY2FsIGV4ZWN1dGlvbjogJXMAVGVybWluYXRpb24gb2YgZ3JvdXAgb3BlcmF0aW9uIGxvY2FsIGV4ZWN1dGlvbjogJXMAQSBjb25maWd1cmF0aW9uIGNoYW5nZSB3YXMga2lsbGVkIGluIHRoaXMgbWVtYmVyLiBUaGUgbWVtYmVyIHdpbGwgbm93IGxlYXZlIHRoZSBncm91cCBhcyBpdHMgY29uZmlndXJhdGlvbiBtYXkgaGF2ZSBkaXZlcmdlZC4AVGhlcmUgd2FzIGFuIGlzc3VlIG9uIHRoZSBwcmltYXJ5IGVsZWN0aW9uIHByb2Nlc3M6ICVzIFRoZSBtZW1iZXIgd2lsbCBub3cgbGVhdmUgdGhlIGdyb3VwLgBUaGVyZSB3YXMgYW4gaXNzdWUgd2hlbiBzdG9wcGluZyBhIHByZXZpb3VzIGVsZWN0aW9uIHByb2Nlc3M6ICVzAEl0IHdhcyBub3QgcG9zc2libGUgdG8gaW5pdGlhbGl6ZSBzdGFnZSBsb2dnaW5nIGZvciB0aGlzIHRhc2suIFRoZSBvcGVyYXRpb24gd2lsbCBzdGlsbCBydW4gd2l0aG91dCBzdGFnZSB0cmFja2luZy4AQ291bGQgbm90IGV4ZWN1dGUgdGhlIGluc3RhbGxhdGlvbiBvZiBHcm91cCBSZXBsaWNhdGlvbiBVREYgZnVuY3Rpb246ICVzLiBDaGVjayBpZiB0aGUgZnVuY3Rpb24gaXMgYWxyZWFkeSBwcmVzZW50LCBpZiBzbywgdHJ5IHRvIHJlbW92ZSBpdABDb3VsZCBub3QgdW5pbnN0YWxsIEdyb3VwIFJlcGxpY2F0aW9uIFVERiBmdW5jdGlvbnMuIFRyeSB0byByZW1vdmUgdGhlbSBtYW51YWxseSBpZiBwcmVzZW50LgBDb3VsZCBub3QgZXhlY3V0ZSB0aGUgaW5zdGFsbGF0aW9uIG9mIEdyb3VwIFJlcGxpY2F0aW9uIFVERiBmdW5jdGlvbnMuIENoZWNrIGZvciBvdGhlciBlcnJvcnMgaW4gdGhlIGxvZyBhbmQgdHJ5IHRvIHJlaW5zdGFsbCB0aGUgcGx1Z2luAFRoZSBmdW5jdGlvbiAnJXMnIGZhaWxlZC4gJXMARG8gbm90IHNwZWNpZnkgdGhlIGN1cnJlbnQgcGFzc3dvcmQgd2hpbGUgY2hhbmdpbmcgaXQgZm9yIG90aGVyIHVzZXJzLgBJbmNvcnJlY3QgY3VycmVudCBwYXNzd29yZC4gU3BlY2lmeSB0aGUgY29ycmVjdCBwYXNzd29yZCB3aGljaCBoYXMgdG8gYmUgcmVwbGFjZWQuAEN1cnJlbnQgcGFzc3dvcmQgbmVlZHMgdG8gYmUgc3BlY2lmaWVkIGluIHRoZSBSRVBMQUNFIGNsYXVzZSBpbiBvcmRlciB0byBjaGFuZ2UgaXQuAFZhcmlhYmxlICclLS42NHMnIGNhbid0IGJlIHNldCB0byB0aGUgdmFsdWUgb2YgJyUtLjIwMHMnACVzIHdhcyB1bmFibGUgdG8gY3JlYXRlIGEgbmV3IFdpbmRvd3MgcmVnaXN0cnkga2V5ICVzIGZvciAlczsgY29udGludWluZyB0byB1c2UgdGhlIHByZXZpb3VzIGlkZW50LgBTdGF0ZW1lbnQgdmlvbGF0ZXMgR1RJRCBjb25zaXN0ZW5jeTogQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRSBhbmQgRFJPUCBURU1QT1JBUlkgVEFCTEUgYXJlIG5vdCBhbGxvd2VkIGluc2lkZSBhIHRyYW5zYWN0aW9uIG9yIGluc2lkZSBhIHByb2NlZHVyZSBpbiBhIHRyYW5zYWN0aW9uYWwgY29udGV4dCB3aGVuIEBAc2Vzc2lvbi5iaW5sb2dfZm9ybWF0PVNUQVRFTUVOVC4AU2Vjb25kYXJ5IGVuZ2luZSBvcGVyYXRpb24gZmFpbGVkLiAlcy4ARERMcyBvbiBhIHRhYmxlIHdpdGggYSBzZWNvbmRhcnkgZW5naW5lIGRlZmluZWQgYXJlIG5vdCBhbGxvd2VkLgBVbmFibGUgdG8gYWxsb2NhdGUgdGVtcG9yYXJ5IHRhYmxlc3BhY2UgZm9yIHRoaXMgc2Vzc2lvbgBVbmFibGUgdG8gc3dpdGNoIHNlY3VyaXR5IGNvbnRleHQgdG8gdXNlcjogJXMAU3RhdGVtZW50IHZpb2xhdGVzIEdUSUQgY29uc2lzdGVuY3k6IEFMVEVSIFRBQkxFIC4uLiBBREQgQ09MVU1OIC4uIHdpdGggZXhwcmVzc2lvbiBhcyBERUZBVUxULgBFcnJvciBpbiBwYXJzaW5nICVzICclcycuJyVzJyBkdXJpbmcgdXBncmFkZS4gJXMAVGhlIGRlc2lnbmF0ZWQgZGF0YSBkaXJlY3RvcnkgJXMgaXMgdW51c2FibGUuIFlvdSBjYW4gcmVtb3ZlIGFsbCBmaWxlcyB0aGF0IHRoZSBzZXJ2ZXIgYWRkZWQgdG8gaXQuAEdyb3VwIHNlYXJjaCByZWJpbmRpbmcgdmlhIHJvb3QgRE46ICVzIABFcnJvciBpbnN0YWxsaW5nIHBsdWdpbiAnJXMnOiAlcwBFcnJvciB1bmluc3RhbGxpbmcgcGx1Z2luICclcyc6ICVzAFBhcnRpdGlvbmVkIHRhYmxlICclcycgaXMgbm90IGFsbG93ZWQgdG8gdXNlIHNoYXJlZCB0YWJsZXNwYWNlICclcycuIFBsZWFzZSBtb3ZlIGFsbCBwYXJ0aXRpb25zIHRvIGZpbGUtcGVyLXRhYmxlIHRhYmxlc3BhY2VzIGJlZm9yZSB1cGdyYWRlLgBDYW5ub3QgZGV0ZXJtaW5lIHRoZSB0eXBlIG9mIHRoZSB0YWJsZXNwYWNlIG5hbWVkICclcycuACVzOiAndXRmOCcgaXMgY3VycmVudGx5IGFuIGFsaWFzIGZvciB0aGUgY2hhcmFjdGVyIHNldCBVVEY4TUIzLCBidXQgd2lsbCBiZSBhbiBhbGlhcyBmb3IgVVRGOE1CNCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBQbGVhc2UgY29uc2lkZXIgdXNpbmcgVVRGOE1CNCBpbiBvcmRlciB0byBiZSB1bmFtYmlndW91cy4AJXM6IFRoZSBjaGFyYWN0ZXIgc2V0IFVURjhNQjMgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuIFBsZWFzZSBjb25zaWRlciB1c2luZyBVVEY4TUI0IGluc3RlYWQuACVzOiAnJS0uNjRzJyBpcyBhIGNvbGxhdGlvbiBvZiB0aGUgZGVwcmVjYXRlZCBjaGFyYWN0ZXIgc2V0IFVURjhNQjMuIFBsZWFzZSBjb25zaWRlciB1c2luZyBVVEY4TUI0IHdpdGggYW4gYXBwcm9wcmlhdGUgY29sbGF0aW9uIGluc3RlYWQuAFRoZSBTU0wgbGlicmFyeSBmdW5jdGlvbiAlcyBmYWlsZWQuIFRoaXMgaXMgdHlwaWNhbGx5IGNhdXNlZCBieSB0aGUgU1NMIGxpYnJhcnkgYWxyZWFkeSBiZWluZyB1c2VkLiBBcyBhIHJlc3VsdCB0aGUgU1NMIG1lbW9yeSBhbGxvY2F0aW9uIHdpbGwgbm90IGJlIGluc3RydW1lbnRlZC4ARGlzYWJsaW5nIEBAY29yZV9maWxlIGJlY2F1c2UgQEBpbm5vZGJfYnVmZmVyX3Bvb2xfaW5fY29yZV9maWxlIGlzIGRpc2FibGVkLCB5ZXQgTUFEVl9ET05URFVNUCBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0ARGlzYWJsaW5nIEBAY29yZV9maWxlIGJlY2F1c2UgQEBpbm5vZGJfYnVmZmVyX3Bvb2xfaW5fY29yZV9maWxlIGlzIGRpc2FibGVkLCB5ZXQgbWFkdmlzZSglcCwlenUsJXMpIGZhaWxlZCB3aXRoICVzAENvdWxkIG5vdCBjaGFuZ2UgY29sdW1uICclcycgb2YgdGFibGUgJyVzJy4gVGhlIHJlc3VsdGluZyBzaXplIG9mIGluZGV4ICclcycgd291bGQgZXhjZWVkIHRoZSBtYXgga2V5IGxlbmd0aCBvZiAlZCBieXRlcy4Ac3FsX21vZGU9MHglMDh4IGhhcyBiZWVuIHJlbW92ZWQgYW5kIHdpbGwgYmUgaWdub3JlZABGYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBhIHBvb2wgb2Ygc2l6ZSAlenUgYnl0ZXMuIFdpbGwgd2FpdCBmb3IgJXp1IHNlY29uZHMgZm9yIGEgdGhyZWFkIHRvIGZyZWUgYSByZXNvdXJjZS4ATnVtYmVyIG9mIHBvb2xzOiAlenUAVXNpbmcgdW5kbyB0YWJsZXNwYWNlICclcycuACVzIFVuYWJsZSB0byBzYXZlIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRhYmxlc3BhY2UgJyVzJyB0byB0aGUgZGF0YSBkaWN0aW9uYXJ5AENhbm5vdCBjcmVhdGUgdW5kbyB0YWJsZXNwYWNlICVzIGF0ICVzIGJlY2F1c2UgJWQgdW5kbyB0YWJsZXNwYWNlcyBhbHJlYWR5IGV4aXN0LgBFcnJvciAlZCBvcGVuaW5nIG5ld2x5IGNyZWF0ZWQgdW5kbyB0YWJsZXNwYWNlICVzLgBTREkgQ29tcHJlc3Npb24gZmFpbGVkLCBaX0JVRl9FUlJPUgBTREkgQ29tcHJlc3Npb24gZmFpbGVkLCBaX01FTV9FUlJPUgBTREkgQ29tcHJlc3Npb24gZmFpbGVkLCBaX1NUUkVBTV9FUlJPUgAlcwBFeHBlY3RlZCB0byBmaW5kIHVuZG8gdGFibGVzcGFjZSAnJXMnIGZvciBTcGFjZSBJRD0lbHUsIGJ1dCBmb3VuZCAnJXMnIGluc3RlYWQhICBEaWQgeW91IGNoYW5nZSBpbm5vZGJfdW5kb19kaXJlY3Rvcnk/AENhbm5vdCB1c2UgJXMgYXMgYW4gdW5kbyB0YWJsZXNwYWNlIGJlY2F1c2UgaXQgZG9lcyBub3QgZW5kIHdpdGggJy5pYnUnLgBpYl91bmRvX3RydW5jX2VtcHR5X2ZpbGUAaWJfdW5kb190cnVuY19iZWZvcmVfZGRfdXBkYXRlAGliX3VuZG9fdHJ1bmNfYmVmb3JlX2RvbmVfbG9nZ2luZwBpYl91bmRvX3RydW5jX2JlZm9yZV9yc2VncwAlcyBGYWlsZWQgdG8gZmluaXNoIHRydW5jYXRpbmcgVW5kbyBUYWJsZXNwYWNlICclcycAVGhlIHNldHRpbmcgSU5OT0RCX1VORE9fVEFCTEVTUEFDRVMgaXMgZGVwcmVjYXRlZCBhbmQgaXMgbm8gbG9uZ2VyIHVzZWQuICBJbm5vREIgYWx3YXlzIGNyZWF0ZXMgMiB1bmRvIHRhYmxlc3BhY2VzIHRvIHN0YXJ0IHdpdGguIElmIHlvdSBuZWVkIG1vcmUsIHBsZWFzZSB1c2UgQ1JFQVRFIFVORE8gVEFCTEVTUEFDRS4AVGhlIGRpcmVjdG9yeSBmb3IgdGFibGVzcGFjZSAlcyBkb2VzIG5vdCBleGlzdCBvciBpcyBpbmNvcnJlY3QuACVzAENsb25lIGRvbm9yIHJlcG9ydGVkIDogJS41MTJzLgBDbG9uZSByZWNlaXZlZCB1bmV4cGVjdGVkIHJlc3BvbnNlIGZyb20gZG9ub3IgOiAlLjUxMnMuAENsaWVudDogJS41MTJzLgBTZXJ2ZXI6ICUuNTEycy4ARmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIHBlcmZvcm1hbmNlIHNjaGVtYSB0YWJsZXMgc2VydmljZS4ARmFpbGVkIHRvIGFkZCB0aHJlYWQgcG9vbCBwZXJmb3JtYW5jZSBzY2hlbWEgdGFibGVzLgBGYWlsZWQgdG8gc2V0IGRhdGFkaXIgdG8gJyUtLjIwMHMnIChPUyBlcnJubzogJWQgLSAlcykAVGhlIGlubm9kYl91bmRvX2RpcmVjdG9yeSBpcyBub3QgYWxsb3dlZCB0byBiZSBhbiBhbmNlc3RvciBvZiB0aGUgZGF0YWRpci4ARmFpbGVkIHRvIGZldGNoIGtleSBmcm9tIGtleXJpbmcsIHBsZWFzZSBjaGVjayBpZiBrZXlyaW5nIGlzIGxvYWRlZC4AQ2FuJ3QgZmluZCBrZXkgZnJvbSBrZXlyaW5nLCBwbGVhc2UgY2hlY2sgaW4gdGhlIHNlcnZlciBsb2cgaWYgYSBrZXlyaW5nIGlzIGxvYWRlZCBhbmQgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5LgBGZXRjaGVkIGFuIGludmFsaWQga2V5IGZyb20ga2V5cmluZy4ARXJyb3IgcmVhZGluZyBhIHJlcGxpY2F0aW9uIGxvZyBlbmNyeXB0aW9uIGhlYWRlcjogJXMuAEZhaWxlZCB0byByb3RhdGUgc29tZSBsb2dzIGFmdGVyIGNoYW5naW5nIGJpbmxvZyBlbmNyeXB0aW9uIHNldHRpbmdzLiBQbGVhc2UgZml4IHRoZSBwcm9ibGVtIGFuZCByb3RhdGUgdGhlIGxvZ3MgbWFudWFsbHkuAEtleSAlcyBleGlzdHMgdW5leHBlY3RlZC4ARmFpbGVkIHRvIGdlbmVyYXRlIGtleSwgcGxlYXNlIGNoZWNrIGlmIGtleXJpbmcgaXMgbG9hZGVkLgBGYWlsZWQgdG8gc3RvcmUga2V5LCBwbGVhc2UgY2hlY2sgaWYga2V5cmluZyBpcyBsb2FkZWQuAEZhaWxlZCB0byByZW1vdmUga2V5LCBwbGVhc2UgY2hlY2sgaWYga2V5cmluZyBpcyBsb2FkZWQuAFVuYWJsZSB0byByZWNvdmVyIGJpbmxvZyBlbmNyeXB0aW9uIG1hc3RlciBrZXksIHBsZWFzZSBjaGVjayBpZiBrZXlyaW5nIGlzIGxvYWRlZC4ARmFpbGVkIHRvIGluaXRpYWxpemUgYmlubG9nIGVuY3J5cHRpb24sIHBsZWFzZSBjaGVjayBpZiBrZXlyaW5nIGlzIGxvYWRlZC4ARmFpbGVkIHRvIHJvdGF0ZSBiaW5sb2cgZW5jcnlwdGlvbiBtYXN0ZXIga2V5IGF0IHN0YXJ0dXAsIHBsZWFzZSBjaGVjayBpZiBrZXlyaW5nIGlzIGxvYWRlZC4ASWdub3JpbmcgYmlubG9nX3JvdGF0ZV9lbmNyeXB0aW9uX21hc3Rlcl9rZXlfYXRfc3RhcnR1cCBiZWNhdXNlIGJpbmxvZ19lbmNyeXB0aW9uIG9wdGlvbiBpcyBkaXNhYmxlZC4ASW52YWxpZCB2YWx1ZSBmb3IgY29tbWFuZCBsaW5lIG9wdGlvbiBhZG1pbi1hZGRyZXNzOiAnJXMnAEFkbWluIGludGVyZmFjZSByZWFkeSBmb3IgY29ubmVjdGlvbnMsIGFkZHJlc3M6ICclcycgIHBvcnQ6ICVkAENhbid0IGNyZWF0ZSB0aHJlYWQgdG8gaGFuZGxlIGFkbWluIGNvbm5lY3Rpb25zIChlcnJubz0gJWQpAFJFVEFJTiBDVVJSRU5UIFBBU1NXT1JEIGlnbm9yZWQgZm9yIHVzZXIgJyVzJ0AnJXMnIGFzIGl0cyBhdXRoZW50aWNhdGlvbiBwbHVnaW4gJXMgZG9lcyBub3Qgc3VwcG9ydCBtdWx0aXBsZSBwYXNzd29yZHMuAERJU0NBUkQgT0xEIFBBU1NXT1JEIGlnbm9yZWQgZm9yIHVzZXIgJyVzJ0AnJXMnIGFzIGl0cyBhdXRoZW50aWNhdGlvbiBwbHVnaW4gJXMgZG9lcyBub3Qgc3VwcG9ydCBtdWx0aXBsZSBwYXNzd29yZHMuAEVtcHR5IHBhc3N3b3JkIGNhbiBub3QgYmUgcmV0YWluZWQgYXMgc2Vjb25kIHBhc3N3b3JkIGZvciB1c2VyICclcydAJyVzJy4AQ3VycmVudCBwYXNzd29yZCBjYW4gbm90IGJlIHJldGFpbmVkIGZvciB1c2VyICclcydAJyVzJyBiZWNhdXNlIGF1dGhlbnRpY2F0aW9uIHBsdWdpbiBpcyBiZWluZyBjaGFuZ2VkLgBDdXJyZW50IHBhc3N3b3JkIGNhbiBub3QgYmUgcmV0YWluZWQgZm9yIHVzZXIgJyVzJ0AnJXMnIGJlY2F1c2UgbmV3IHBhc3N3b3JkIGlzIGVtcHR5LgBDYW4gbm90IHJlYWQgYW5kIHByb2Nlc3MgdmFsdWUgb2YgVXNlcl9hdHRyaWJ1dGVzIGNvbHVtbiBmcm9tIG15c3FsLnVzZXIgdGFibGUgZm9yIHVzZXI6ICclc0Alcyc7IElnbm9yaW5nIHVzZXIuAFNlY29uZCBwYXNzd29yZCB3YXMgdXNlZCBmb3IgbG9naW4gYnkgdXNlcjogJyVzJ0AnJXMnLgBTZWNvbmQgcGFzc3dvcmQgd2FzIHVzZWQgZm9yIGxvZ2luIGJ5IHVzZXI6ICclcydAJyVzJy4AU2Vjb25kIHBhc3N3b3JkIHdhcyB1c2VkIGZvciBsb2dpbiBieSB1c2VyOiAnJXMnQCclcycuAEVycm9yIHNlbmRpbmcgdHJhbnNhY3Rpb24gJyVzOiVsbGQnIHByZXBhcmVkIG1lc3NhZ2UgZnJvbSBzZXNzaW9uICcldScuAEVycm9yIHJlbGVhc2luZyB0cmFuc2FjdGlvbiAnJXM6JWxsZCcgZm9yIGNvbW1pdCBvbiBzZXNzaW9uICcldScgYWZ0ZXIgYmVpbmcgcHJlcGFyZWQgb24gYWxsIGdyb3VwIG1lbWJlcnMuAFRyYW5zYWN0aW9uICclczolbGxkJyBhbHJlYWR5IGV4aXN0cyBvbiBHcm91cCBSZXBsaWNhdGlvbiBjb25zaXN0ZW5jeSBtYW5hZ2VyIHdoaWxlIGJlaW5nIHJlZ2lzdGVyZWQgYWZ0ZXIgY29uZmxpY3QgZGV0ZWN0aW9uLgBFcnJvciByZWdpc3RlcmluZyB0cmFuc2FjdGlvbiAnJXM6JWxsZCcgb24gR3JvdXAgUmVwbGljYXRpb24gY29uc2lzdGVuY3kgbWFuYWdlciBhZnRlciBjb25mbGljdCBkZXRlY3Rpb24uAEVycm9yIHJlZ2lzdGVyaW5nIHRyYW5zYWN0aW9uICclczolbGxkJyBmcm9tIHNlc3Npb24gJyV1JyB0byB3YWl0IGZvciBiZWluZyBwcmVwYXJlZCBvbiBhbGwgZ3JvdXAgbWVtYmVycy4ARXJyb3Igb24gdHJhbnNhY3Rpb24gJyVzOiVsbGQnIGZyb20gc2Vzc2lvbiAnJXUnIHdoaWxlIHdhaXRpbmcgZm9yIGJlaW5nIHByZXBhcmVkIG9uIGFsbCBncm91cCBtZW1iZXJzLgBUcmFuc2FjdGlvbiAnJXM6JWxsZCcgZG9lcyBub3QgZXhpc3Qgb24gR3JvdXAgUmVwbGljYXRpb24gY29uc2lzdGVuY3kgbWFuYWdlciB3aGlsZSByZWNlaXZpbmcgcmVtb3RlIHRyYW5zYWN0aW9uIHByZXBhcmUuAEVycm9yIHJlbGVhc2luZyB0cmFuc2FjdGlvbiAnJXM6JWxsZCcgZm9yIGV4ZWN1dGlvbiBvbiBzZXNzaW9uICcldScgYWZ0ZXIgaXRzIGRlcGVuZGVuY2llcyBkaWQgY29tcGxldGUgY29tbWl0LgBFcnJvciByZWdpc3RlcmluZyB0cmFuc2FjdGlvbiBmcm9tIHNlc3Npb24gJyV1JyB0byB3YWl0IGZvciBpdHMgZGVwZW5kZW5jaWVzIHRvIGNvbXBsZXRlIGNvbW1pdC4ARXJyb3Igb24gc2Vzc2lvbiAnJXUnIHdoaWxlIHdhaXRpbmcgZm9yIGl0cyBkZXBlbmRlbmNpZXMgdG8gY29tcGxldGUgY29tbWl0LgBFcnJvciByZWdpc3RlcmluZyB0cmFuc2FjdGlvbiBmcm9tIHNlc3Npb24gJyV1JyB0byB3YWl0IGZvciBzeW5jIGJlZm9yZSBleGVjdXRpb24uAEVycm9yIHNlbmRpbmcgc3luYyBiZWZvcmUgZXhlY3V0aW9uIG1lc3NhZ2UgZnJvbSBzZXNzaW9uICcldScuAEVycm9yIG9uIHRyYW5zYWN0aW9uIGZyb20gc2Vzc2lvbiAnJXUnIHdoaWxlIHdhaXRpbmcgZm9yIHN5bmMgYmVmb3JlIGV4ZWN1dGlvbi4ARXJyb3IgcmVsZWFzaW5nIHRyYW5zYWN0aW9uIGZvciBleGVjdXRpb24gb24gc2Vzc2lvbiAnJXUnIGFmdGVyIHdhaXQgZm9yIHN5bmMgYmVmb3JlIGV4ZWN1dGlvbi4ARXJyb3Igd2FpdGluZyBmb3IgZ3JvdXAgZXhlY3V0ZWQgdHJhbnNhY3Rpb25zIGNvbW1pdCBvbiBzZXNzaW9uICcldScuAFRoZXJlJ3Mgbm8gdW5pdCBvZiBtZWFzdXJlIG5hbWVkICclcycuAFRoZSBmdW5jdGlvbiAlcyB1c2VzICVzIGFzIGEgdW5pdCwgYnV0IHdhcyBwYXNzZWQgZ2VvbWV0cnkgd2l0aG91dCB1bml0cyAoIlNSSUQgMCIpLiBDb252ZXJzaW9uIGlzIG5vdCBwb3NzaWJsZS4AQ291bGQgbm90IHBhcnNlIGtleS12YWx1ZSBwYWlycyBpbiBwcm9wZXJ0eSBzdHJpbmcgJyVzJwBQcm9wZXJ0eSBrZXkgJyVzJyBpcyBpbnZhbGlkLgBFcnJvciB3aGVuIGV4dHJhY3RpbmcgdGhlIGdyb3VwX3JlcGxpY2F0aW9uX2FwcGxpZXIgY2hhbm5lbCByZWNlaXZlZCB0cmFuc2FjdGlvbnMgc2V0LiBVbmFibGUgdG8gZW5zdXJlIHRoZSBleGVjdXRpb24gb2YgZ3JvdXAgdHJhbnNhY3Rpb25zIHJlY2VpdmVkIGR1cmluZyByZWNvdmVyeS4ARmFpbGVkIHRvIGVuY3J5cHQgY29udGVudCB0byB3cml0ZSBpbnRvIGJpbmxvZyBmaWxlOiAlcy4AQ2Fubm90IGdldCB0aGUgc2VydmVyIHZlcnNpb24gbnVtYmVyIGZyb20gdGhlIGRpY3Rpb25hcnkgdGFibGVzcGFjZSBoZWFkZXIuAENhbm5vdCBzZXQgdGhlIHNlcnZlciB2ZXJzaW9uIG51bWJlciBpbiB0aGUgZGljdGlvbmFyeSB0YWJsZXNwYWNlIGhlYWRlci4AVXBncmFkaW5nIHRoZSBzZXJ2ZXIgZnJvbSBzZXJ2ZXIgdmVyc2lvbiAnJXUnIGlzIG5vdCBzdXBwb3J0ZWQuAE15U1FMIHNlcnZlciB1cGdyYWRpbmcgZnJvbSB2ZXJzaW9uICcldScgdG8gJyV1Jy4AVGhlIGNlcnRpZmljYXRpb24gaW5mb3JtYXRpb24gY291bGQgbm90IGJlIHNldCBpbiB0aGlzIHNlcnZlcjogJyVzJwBBIHJlcXVlc3QgdG8gZm9yY2UgYSBuZXcgZ3JvdXAgbWVtYmVyc2hpcCB3YXMgaXNzdWVkIHdoZW4gdGhlIG1lbWJlciBpcyBsZWF2aW5nIHRoZSBncm91cC4AVHJpZ2dlciAlcy4lcyBmb3IgdGFibGUgJXMuJXMgaXMgbGlzdGVkIGluIHdyb25nIG9yZGVyLiBQbGVhc2UgZHJvcCBhbmQgcmVjcmVhdGUgYWxsIHRyaWdnZXJzIGZvciB0aGUgdGFibGUuACVzAFNwZWNpYWwgaGFuZGxpbmcgZm9yIGdyb3VwIHNlYXJjaCwge0dBfSBub3QgZm91bmQAVXNlciBncm91cCByZXRyaWV2YWw6IFVzZXIgb2JqZWN0IGhhcyBncm91cCBpbmZvcm1hdGlvbgBHcm91cCBpbmZvcm1hdGlvbiBmb3VuZCBpbiBtdWx0aXBsZSB1c2VyIG9iamVjdHMuIFNlYXJjaCBmaWx0ZXIgY29uZmlndXJhdGlvbiBpcyBpbmNvcnJlY3QuAFVzZXIgZ3JvdXAgcmV0cmlldmFsOiBubyBncm91cCBhdHRyaWJ1dGUgZm91bmQuIEluY29ycmVjdCBncm91cCBzZWFyY2ggYXR0cmlidXRlLiAAVXNlciBncm91cCByZXRyaWV2YWw6IEdyb3VwIGF0dHJpYnV0ZSB2YWx1ZXMgaXMgTlVMTC4gAFVzZXIgZ3JvdXAgcmV0cmlldmFsOiBwYXJzaW5nIEROIGZhaWxlZC4gAFVzZXIgZ3JvdXAgcmV0cmlldmFsOiBHcm91cCBvYmplY3QgaGFzIHVzZXIgaW5mb3JtYXRpb24AUmVzZXJ2ZWQgcG9ydCBmb3IgbGRhcHMgdXNpbmcgbGRhcHMAR2V0IHVzZXIgcHJveHkAR2V0IHVzZXIgcHJveHk6IFVzZXIgZG9lc24ndCBiZWxvbmdzIHRvIGFueSBncm91cCwgdXNlciBuYW1lIHdpbGwgYmUgdHJlYXRlZCBhcyBhdXRoZW50aWNhdGVkIHVzZXIuAEdldCB1c2VyIHByb3h5OiBjb25maWd1cmVkIG1hcHBpbmcgaW5mbzogJXMAR2V0IHVzZXIgcHJveHk6IFVzZXIgZG9lc24ndCBoYXZlIGdyb3VwIG1hcHBpbmcgaW5mb3JtYXRpb24sIEZpcnN0IExEQVAgZ3JvdXAgd2lsbCBiZSB0cmVhdGVkIGFzIGF1dGhlbnRpY2F0ZWQgdXNlci4AUHJvY2VzcyBncm91cCBwcm94eSBtYXBwaW5nAENoZWNrIGRlbGltaXRlciBhZnRlciBxdW90ZQBQcm9jZXNzaW5nIGRlbGltaXRlcgBQcm9jZXNzaW5nIGRlbGltaXRlciwgc2VwYXJhdG9yID0gbm90IGZvdW5kLCByZXNldHRpbmcgcG9zaXRpb24AUHJvY2Vzc2luZyBkZWxpbWl0ZXIsIGZhaWxlZCB0byBnZXQgZGF0YSBmb3IgPSBzZXBhcmF0b3IgdHJ5IGZvciBzZXBhcmF0b3IgLC4AUHJvY2Vzc2luZyBkZWxpbWl0ZXIsIHNlcGFyYXRvciAsIG5vdCBmb3VuZCwgcmVzZXR0aW5nIHBvc2l0aW9uAFByb2Nlc3NpbmcgZGVsaW1pdGVyOiBObyBtYXBwaW5nIHNlcGFyYXRvciBpcyBmb3VuZCwgZW5kIG9mIGdyb3VwIGluZm9ybWF0aW9uAEdldHRpbmcgbmV4dCBtYXBwaW5nIGluZm9ybWF0aW9uAFBhcnNpbmcgbWFwcGluZywgY3VycmVudCBzdGF0ZTogJWQgIGRlbGltaXRlciBjaGFyOiAlYyAAUGFyc2luZyBtYXBwaW5nIGluZm8sIExEQVAgZ3JvdXA6ICVzIE15U1FMIHByb3h5OiAlcwBNYXBwaW5nIHBhcnNpbmcgZXJyb3IAVHJpbW1pbmcgbGVmdCBzcGFjZXMAQ2hlY2tpbmcgaWYgY3VycmVudCBjaGFyYWN0ZXJzIGlzIHF1b3RlAE5vdCBkZXNpcmVkIHN0YXRlIG9yIHVuLWRlZmluZWQgc3RhdGVzLgBJbnZhbGlkIHZhbHVlIGZvciBuYW1lZF9waXBlX2Z1bGxfYWNjZXNzX2dyb3VwLgBSZXRyeSB0aGUgc3RhdGVtZW50IHVzaW5nIGEgc2Vjb25kYXJ5IHN0b3JhZ2UgZW5naW5lLgAnJXMnIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBQbGVhc2UgdXNlICVzIGluc3RlYWQAQ2Fubm90IHNldCBtYW5kYXRvcnlfcm9sZXM6IEF1dGhJZCBgJS42NHNgQGAlLjY0c2AgaGFzICclcycgcHJpdmlsZWdlLgBVbmFibGUgdG8gcmVjb3ZlciBiaW5hcnkgbG9nIG1hc3RlciBrZXksIHRoZSBjb21iaW5hdGlvbiBvZiBuZXdfbWFzdGVyX2tleV9zZXFubz0ldSwgbWFzdGVyX2tleV9zZXFubz0ldSBhbmQgb2xkX21hc3Rlcl9rZXlfc2Vxbm89JXUgYXJlIHdyb25nLgBGYWlsZWQgdG8gcmVtb3ZlIGF1eGlsaWFyeSBiaW5hcnkgbG9nIGVuY3J5cHRpb24ga2V5IGZyb20ga2V5cmluZywgcGxlYXNlIGNoZWNrIGlmIGtleXJpbmcgaXMgbG9hZGVkLiBUaGUgY2xlYW51cCBvZiB0aGUgYmluYXJ5IGxvZyBtYXN0ZXIga2V5IHJvdGF0aW9uIHByb2Nlc3MgZGlkIG5vdCBmaW5pc2ggYXMgZXhwZWN0ZWQgYW5kIHRoZSBjbGVhbnVwIHdpbGwgdGFrZSBwbGFjZSB1cG9uIHNlcnZlciByZXN0YXJ0IG9yIG5leHQgJ0FMVEVSIElOU1RBTkNFIFJPVEFURSBCSU5MT0cgTUFTVEVSIEtFWScgZXhlY3V0aW9uLgBBdXRoSWQgYCUuNjRzYEBgJS42NHNgIGlzIHNldCBhcyBtYW5kYXRvcnlfcm9sZXMuIENhbm5vdCBncmFudCB0aGUgJyVzJyBwcml2aWxlZ2UuACclcycgcHJpdmlsZWdlIGZvciBkYXRhYmFzZSAnJXMnIGV4aXN0cyBib3RoIGFzIHBhcnRpYWwgcmV2b2tlIGFuZCBteXNxbC5kYiBzaW11bHRhbmVvdXNseS4gSXQgY291bGQgbWVhbiAnbXlzcWwnIHNjaGVtYSBpcyBjb3JydXB0ZWQuAEFjY2VzcyBkZW5pZWQgZm9yIEF1dGhJZCBgJS42NHNgQGAlLjY0c2AgdG8gZGF0YWJhc2UgJyUtLjE5MnMnLgBBdCBsZWFzdCBvbmUgcGFydGlhbCByZXZva2UgZXhpc3RzIG9uIGEgZGF0YWJhc2UuIFRoZSBzeXN0ZW0gdmFyaWFibGUgJ0BAcGFydGlhbF9yZXZva2VzJyBtdXN0IGJlIHNldCB0byBPTi4AQXQgbGVhc3Qgb25lIHBhcnRpYWwgcmV2b2tlIGV4aXN0cyBvbiBhIGRhdGFiYXNlLiBUdXJuaW5nIE9OIHRoZSBzeXN0ZW0gdmFyaWFibGUgJ0BAcGFydGlhbF9yZXZva2VzJy4ARm9yIHVzZXIgJyVzJ0AnJXMnLCBvbmUgb3IgbW9yZSBwcml2aWxlZ2VzIGdyYW50ZWQgdGhyb3VnaCBteXNxbC5kYiBmb3IgZGF0YWJhc2UgJyVzJywgY29uZmxpY3Qgd2l0aCBwYXJ0aWFsIHJldm9rZS4gSXQgY291bGQgbWVhbiAnbXlzcWwnIHNjaGVtYSBpcyBjb3JydXB0ZWQuAEZvciB1c2VyICVzLCBpZ25vcmVkIHJlc3RyaWN0aW9ucyBmb3IgcHJpdmlsZWdlKHMpICclcycgZm9yIGRhdGFiYXNlICclcycgYXMgdGhlc2UgYXJlIG5vdCB2YWxpZCBkYXRhYmFzZSBwcml2aWxlZ2VzLgBGb3IgdXNlciAlcywgaWdub3JlZCByZXN0cmljdGlvbnMgZm9yIHByaXZpbGVnZShzKSAnJXMnIGZvciBkYXRhYmFzZSAnJXMnIGFzIGNvcnJlc3BvbmRpbmcgZ2xvYmFsIHByaXZpbGVnZShzKSBhcmUgbm90IGdyYW50ZWQuACclcycgaXMgYW4gaW52YWxpZCB2YWx1ZSBmb3IgZ3JvdXBfcmVwbGljYXRpb25fY29tbXVuaWNhdGlvbl9wcm90b2NvbF9qb2luLCBwbGVhc2UgdXNlIGEgTXlTUUwgdmVyc2lvbiBiZXR3ZWVuIDUuNy4xNCBhbmQgdGhpcyBzZXJ2ZXIncyB2ZXJzaW9uAFN0YXJ0ZWQgYXV0by1yZWpvaW4gcHJvY2VkdXJlIGF0dGVtcHQgJWx1IG9mICVsdQBUaW1lb3V0IHdoaWxlIHdhaXRpbmcgZm9yIGEgdmlldyBjaGFuZ2UgZXZlbnQgZHVyaW5nIHRoZSBhdXRvLXJlam9pbiBwcm9jZWR1cmUAQXV0by1yZWpvaW4gcHJvY2VkdXJlIGF0dGVtcHQgJWx1IG9mICVsdSBmaW5pc2hlZC4gTWVtYmVyIHdhcyVzIGFibGUgdG8gam9pbiB0aGUgZ3JvdXAuAFRoZSBtZW1iZXIgaXMgY29uZmlndXJlZCB3aXRoIGEgZGVmYXVsdF90YWJsZV9lbmNyeXB0aW9uIG9wdGlvbiB2YWx1ZSAnJWQnIGRpZmZlcmVudCBmcm9tIHRoZSBncm91cCAnJWQnLiBUaGUgbWVtYmVyIHdpbGwgbm93IGV4aXQgdGhlIGdyb3VwLgBTZXJ2ZXIgc2h1dHRpbmcgZG93biBiZWNhdXNlIHVwZ3JhZGUgaXMgcmVxdWlyZWQsIHlldCBwcm9oaWJpdGVkIGJ5IHRoZSBjb21tYW5kIGxpbmUgb3B0aW9uICctLXVwZ3JhZGU9Tk9ORScuAFNlcnZlciB1cGdyYWRlIGlzIHJlcXVpcmVkLCBidXQgc2tpcHBlZCBieSBjb21tYW5kIGxpbmUgb3B0aW9uICctLXVwZ3JhZGU9TUlOSU1BTCcuAFNlcnZlciB1cGdyYWRlIHN0YXJ0ZWQgd2l0aCB2ZXJzaW9uICVkLCBidXQgc2VydmVyIHVwZ3JhZGUgb2YgdmVyc2lvbiAlZCBpcyBzdGlsbCBwZW5kaW5nLgBGYWlsZWQgdG8gdXBncmFkZSBzZXJ2ZXIuAFNlcnZlciB1cGdyYWRlIGZyb20gJyVkJyB0byAnJWQnICVzLgBUYWJsZSAnJXMnIHJlcXVpcmVzIHJlcGFpci4AVGFibGUgJyVzJyByZXBhaXIgJXMuAENvdWxkIG5vdCBvcGVuIHNlcnZlciB1cGdyYWRlIGluZm8gZmlsZSAnJXMnIGZvciB3cml0aW5nLiBQbGVhc2UgbWFrZSBzdXJlIHRoZSBmaWxlIGlzIHdyaXRhYmxlLgBVcGdyYWRpbmcgdGhlIHN5cyBzY2hlbWEuAFJ1bm5pbmcgcXVlcmllcyB0byB1cGdyYWRlIE15U1FMIHNlcnZlci4AVXBncmFkaW5nIHN5c3RlbSB0YWJsZSBkYXRhLgBGb3VuZCBlbXB0eSBzeXMgZGF0YWJhc2UuIEluc3RhbGxpbmcgdGhlIHN5cyBzY2hlbWEuAEEgc3lzIHNjaGVtYSBleGlzdHMgd2l0aCBubyBzeXMudmVyc2lvbiB2aWV3LiBJZiB5b3UgaGF2ZSBhIHVzZXIgY3JlYXRlZCBzeXMgc2NoZW1hLCB0aGlzIG11c3QgYmUgcmVuYW1lZCBmb3IgdGhlIHVwZ3JhZGUgdG8gc3VjY2VlZC4AQSBzeXMgc2NoZW1hIGV4aXN0cyB3aXRoIGEgc3lzLnZlcnNpb24gdmlldywgYnV0IGl0IHJldHVybnMgbm8gcmVzdWx0cy4ARm91bmQgb3V0ZGF0ZWQgc3lzIHNjaGVtYSB2ZXJzaW9uICVzLgBUaGUgc3lzIHNjaGVtYSBpcyBhbHJlYWR5IHVwIHRvIGRhdGUgKHZlcnNpb24gJXMpLgBGb3VuZCAlZCBzeXMgJXMsIGJ1dCBleHBlY3RlZCAlZC4gUmUtaW5zdGFsbGluZyB0aGUgc3lzIHNjaGVtYS4AQ2hlY2tpbmcgJyVzJyBzY2hlbWEuAFRvbyBtYW55IGNvbmN1cnJlbnQgdHJhbnNhY3Rpb25zIHdoaWxlIGNsZWFyaW5nIHRoZSBEREwgTG9nLiBQbGVhc2UgaW5jcmVhc2UgdGhlIG51bWJlciBvZiBSb2xsYmFjayBTZWdtZW50cy4ARXJyb3IgaW4gRERMIExvZyByZWNvdmVyeSBkdXJpbmcgUG9zdC1SZWNvdmVyeSBwcm9jZXNzaW5nLgBFcnJvciBpbiBQb3N0LVRhYmxlc3BhY2UtRW5jcnlwdGlvbiBkdXJpbmcgUG9zdC1SZWNvdmVyeSBwcm9jZXNzaW5nLgBFcnJvciBpbiBETEwgTG9nIGNsZWFudXAgZHVyaW5nIFBvc3QtRERMIHByb2Nlc3NpbmcuACclcycgc3RhdGVtZW50IGlzIHVuc2FmZSBiZWNhdXNlIGl0IHVzZXMgYSBzeXN0ZW0gZnVuY3Rpb24gdGhhdCBtYXkgcmV0dXJuIGEgZGlmZmVyZW50IHZhbHVlIG9uIHRoZSByZXBsaWNhLgBVcGdyYWRlIG9mIGhlbHAgdGFibGVzICVzLgBFcnJvciB3aGVuIHdhaXRpbmcgZm9yIHRoZSBzZXJ2ZXIgdG8gZXhlY3V0ZSBsb2NhbCB0cmFuc2FjdGlvbnMgaW4gb3JkZXIgYXNzdXJlIHRoZSBncm91cCBjaGFuZ2UgcHJvcGVyIGxvZ2dpbmcAVW5hYmxlIHRvIGxvZyB0aGUgZ3JvdXAgY2hhbmdlIFZpZXcgbG9nIGV2ZW50IGluIGl0cyBleGFjdGlvbiBwb3NpdGlvbiBpbiB0aGUgbG9nLiBUaGlzIHdpbGwgbm90IGhvd2V2ZXIgYWZmZWN0IHRoZSBncm91cCByZXBsaWNhdGlvbiByZWNvdmVyeSBwcm9jZXNzIG9yIHRoZSBvdmVyYWxsIHBsdWdpbiBwcm9jZXNzLgBDYW5ub3QgZ3JhbnQgcm9sZXMgdG8gYW4gYW5vbnltb3VzIHVzZXIuAFVuYWJsZSB0byBjcmVhdGUgYSBuZXcgYmlubG9nIGZpbGU6IFRhYmxlIGBteXNxbC5ndGlkX2V4ZWN1dGVkYCBjb3VsZG4ndCBiZSBvcGVuZWQuICVzAE5ldHdvcmsgTmFtZXNwYWNlcyBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0AVW5rbm93biBuZXR3b3JrIG5hbWVzcGFjZSAnJXMnAE5ldHdvcmsgbmFtZXNwYWNlIG5vdCBhbGxvd2VkIGZvciB3aWxkY2FyZCBpbnRlcmZhY2UgYWRkcmVzcwBzZXRucygpIGZhaWxlZCB3aXRoIGVycm9yICclcycAV2lsZGNhcmQgYWRkcmVzcyB2YWx1ZSBub3QgYWxsb3dlZCBmb3IgbXVsdGl2YWx1ZWQgYmluZCBhZGRyZXNzAFRoZSBwYXRoIHRvIGEgc3BlY2lhbCBuZXR3b3JrIG5hbWVzcGFjZSBmaWxlIGlzIHRvbyBsb25nLiAoZ290ICV1ID4gbWF4ICV1KQBDYW5ub3QgY3JlYXRlIHRhYmxlc3BhY2UgJyVzJy4gVGhlIGZpbGVwYXRoIGlzIHRvbyBsb25nIGZvciB0aGlzIE9TLgBUaGUgbGFzdCBibG9jayBvZiByZWRvIGhhZCBjb3JydXB0ZWQgZmlyc3RfcmVjX2dyb3VwIGFuZCBiZWNhbWUgZml4ZWQgKCV1IC0+ICV1KS4ARGF0YSBkaWN0aW9uYXJ5IHVwZ3JhZGUgZnJvbSB2ZXJzaW9uICcldScgdG8gJyV1JyBjb21wbGV0ZWQuAFNlcnZlciBTU0wgY2VydGlmaWNhdGUgZG9lc24ndCB2ZXJpZnk6ICVzAFRydW5jYXRlZCBhIHVzZXIgbmFtZSBmb3IgJXMgdGhhdCB3YXMgdG9vIGxvbmcgd2hpbGUgcmVhZGluZyB0aGUgcGVyc2lzdGVkIHZhcmlhYmxlcyBmaWxlAFRydW5jYXRlZCBhIGhvc3QgbmFtZSBmb3IgJXMgdGhhdCB3YXMgdG9vIGxvbmcgd2hpbGUgcmVhZGluZyB0aGUgcGVyc2lzdGVkIHZhcmlhYmxlcyBmaWxlAFRoZSB3YWl0X3RpbWVvdXQgcGVyaW9kIHdhcyBleGNlZWRlZCwgdGhlIGlkbGUgdGltZSBzaW5jZSBsYXN0IGNvbW1hbmQgd2FzIHRvbyBsb25nLgAnJXMnIGZvdW5kIG5vdCBlbmNyeXB0ZWQgd2hpbGUgJyVzJyBpcyBPTi4gVHJ5aW5nIHRvIGVuY3J5cHQgaXQgbm93LgBDTE9DS19NT05PVE9OSUMgaXMgdW5zdXBwb3J0ZWQsIHNvIGRvIG5vdCBjaGFuZ2UgdGhlIHN5c3RlbSB0aW1lIHdoZW4gTXlTUUwgaXMgcnVubmluZyAhAGNsb2NrX2dldHRpbWUoKSBmYWlsZWQ6ICVzAFBsdWdpbiAnJXMnIGlzIG5vdCB0byBiZSB1c2VkIGFzIGFuICJlYXJseSIgcGx1Z2luLiBEb24ndCBhZGQgaXQgdG8gLS1lYXJseS1wbHVnaW4tbG9hZCwga2V5cmluZyBtaWdyYXRpb24gZXRjLgBQbHVnaW4gJyVzJyBpcyBtYXJrZWQgYXMgbm90IGR5bmFtaWNhbGx5IGluc3RhbGxhYmxlLiBZb3UgaGF2ZSB0byBzdG9wIHRoZSBzZXJ2ZXIgdG8gaW5zdGFsbCBpdC4AU1FMX0NBTENfRk9VTkRfUk9XUyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gQ29uc2lkZXIgdXNpbmcgdHdvIHNlcGFyYXRlIHF1ZXJpZXMgaW5zdGVhZC4ARk9VTkRfUk9XUygpIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBDb25zaWRlciB1c2luZyBDT1VOVCgqKSBpbnN0ZWFkLgBUaGUgc3RhdGVtZW50IGlzIHVuc2FmZSBiZWNhdXNlIGl0IGludm9rZXMgYSB0cmlnZ2VyIG9yIGEgc3RvcmVkIGZ1bmN0aW9uIHRoYXQgbW9kaWZpZXMgYSB0YWJsZSB0aGF0IGhhcyBhIGNvbHVtbiB3aXRoIGEgREVGQVVMVCBleHByZXNzaW9uIHRoYXQgbWF5IHJldHVybiBhIGRpZmZlcmVudCB2YWx1ZSBvbiB0aGUgcmVwbGljYS4ATWVtYmVyIHZlcnNpb24gaXMgcmVhZCBjb21wYXRpYmxlIHdpdGggdGhlIGdyb3VwLgBMb2NrIG9yZGVyIGRpc2FibGVkIChyZWFzb246IGluaXQgZmFpbGVkKS4AS2V5cmluZyBJRCB0aW1lc3RhbXAgdmFsdWUgaXMgaW52YWxpZDogJyVzJwBDYW5ub3QgcHJvY2VzcyBhdWRpdCBsb2cgZmlsZS4gRmlsZSBuYW1lIHRpbWVzdGFtcCB2YWx1ZSBpcyBtaXNzaW5nIG9yIGludmFsaWQ6ICclcycAQ2Fubm90IHByb2Nlc3MgYXVkaXQgbG9nIGZpbGUuIEZpbGUgbmFtZSBkb2VzIG5vdCBoYXZlIHJlcXVpcmVkIGZvcm1hdDogJyVzJwBDYW5ub3QgcHJvY2VzcyBhdWRpdCBsb2cgZmlsZS4gRmlsZSBuYW1lIGtleXJpbmcgSUQgdmFsdWUgaXMgbWlzc2luZzogJyVzJwBBdWRpdCBsb2cgZmlsZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgcHJvY2Vzc2VkOiAnJXMnAENvdWxkIG5vdCBvcGVuIGF1ZGl0IGxvZyBmaWxlIGZvciByZWFkaW5nOiAnJXMnAEludmFsaWQgYXVkaXQgbG9nIGZpbGUgY29udGVudDogJyVzJwBDYW5ub3QgcmVhZCBwYXNzd29yZDogJyUuMzJzJy4AQ2Fubm90IHN0b3JlIHBhc3N3b3JkOiAnJS4zMnMnLgBDYW5ub3QgcmVtb3ZlIHBhc3N3b3JkOiAnJS4zMnMnLgAnYXVkaXRfbG9nJyBwYXNzd29yZCBoYXMgYmVlbiBjb3BpZWQgaW50byAnJS4zMnMnIGFuZCB3aWxsIGJlIHJlbW92ZWQgd2l0aCBmaXJzdCBwdXJnZWQgcGFzc3dvcmQuAFJlcXVlc3QgaWdub3JlZCBmb3IgJyUuNjRzJ0AnJS42NHMnLiBSb2xlIG5lZWRlZCB0byBwZXJmb3JtIG9wZXJhdGlvbjogJyUuMzJzJwBDYW4ndCBzdG9yZSBhbiBhcnJheSBvciBhbiBvYmplY3QgaW4gYSBzY2FsYXIga2V5IHBhcnQgb2YgdGhlIGluZGV4ICclLjE5MnMnAENhbm5vdCB1c2UgZnVuY3Rpb25hbCBpbmRleCAnJS0uNjRzJyBkdWUgdG8gdHlwZSBvciBjb2xsYXRpb24gY29udmVyc2lvbgBFeGNlZWRlZCBtYXggbnVtYmVyIG9mIHZhbHVlcyBwZXIgcmVjb3JkIGZvciBtdWx0aS12YWx1ZWQgaW5kZXggJyUtLjY0cycgYnkgJXUgdmFsdWUocykARXhjZWVkZWQgbWF4IHRvdGFsIGxlbmd0aCBvZiB2YWx1ZXMgcGVyIHJlY29yZCBmb3IgbXVsdGktdmFsdWVkIGluZGV4ICclLS42NHMnIGJ5ICV1IGJ5dGVzAERhdGEgdG9vIGxvbmcgZm9yIGZ1bmN0aW9uYWwgaW5kZXggJyUtLjY0cycASW52YWxpZCBKU09OIHZhbHVlIGZvciBDQVNUIGZvciBmdW5jdGlvbmFsIGluZGV4ICclLS42NHMnAE91dCBvZiByYW5nZSBKU09OIHZhbHVlIGZvciBDQVNUIGZvciBmdW5jdGlvbmFsIGluZGV4ICclLS42NHMnAEVtcHR5IHVzZXIgZG4gb3IgcGFzc3dvcmQgaXMgbm90IGFsbG93ZWQsIG5vdCBhdHRlbXB0aW5nIExEQVAgYmluZC4AR3JvdXBpbmcgb24gdGVtcG9yYWwgaXMgbm9uLWRldGVybWluaXN0aWMgZm9yIHRpbWV6b25lcyBoYXZpbmcgRFNULiBQbGVhc2UgY29uc2lkZXIgc3dpdGNoaW5nIHRvIFVUQyBmb3IgdGhpcyBxdWVyeS4AVGhlIGN1cnJlbnQgbGF5b3V0IG9mIHRoZSBBQ0wgdGFibGVzIGRvZXMgbm90IGNvbmZvcm0gdG8gdGhlIHNlcnZlcidzIGV4cGVjdGVkIGxheW91dC4gVGhleSdyZSBlaXRoZXIgYWx0ZXJlZCwgbWlzc2luZyBvciBub3QgdXBncmFkZWQgZnJvbSBhIHByZXZpb3VzIHZlcnNpb24uIEhvd2V2ZXIgYSBiZXN0IGVmZm9ydCBhdHRlbXB0IHRvIHJlYWQgZGF0YSBmcm9tIHRoZXNlIHRhYmxlcyB3aWxsIHN0aWxsIGJlIG1hZGUuAExPQ0tfT1JERVI6IEZhaWxlZCB0byB3cml0ZSB0byBmaWxlIDwlcz4uAExPQ0tfT1JERVI6IEZhaWxlZCB0byByZWFkIGZyb20gZmlsZSA8JXM+LgBMT0NLX09SREVSIG1lc3NhZ2U6ICVzAExvY2sgb3JkZXIgZGVwZW5kZW5jaWVzIGZpbGUgPCVzPiAoJWQ6JWQpIC0gKCVkOiVkKSA6ICVzAExvY2sgb3JkZXIgc2Nhbm5lcjogKCVkOiVkKSAtICglZDolZCkgOiAlcwBUaGUgbmV3bHkgY3JlYXRlZCBkYXRhIGRpcmVjdG9yeSAlcyBieSAtLWluaXRpYWxpemUgaXMgdW51c2FibGUuIFlvdSBjYW4gcmVtb3ZlIGl0LgBOby4gb2YgQi10cmVlIGxldmVsIGNyZWF0ZWQgZm9yIGluZGV4ICVzIGhhcyBjcm9zc2VkIHRoZSBwZXJtaXNzaWJsZSBsaW1pdC4gSWYgZGVidWcgb3B0aW9uIGlubm9kYl9saW1pdF9vcHRpbWlzdGljX2luc2VydF9kZWJ1ZyBpcyBiZWluZyB1c2VkIHRyeSB0d2Vha2luZyBpdCB0byBpbmNsdWRlIG1vcmUgcmVjb3JkcyBpbiBhIHBhZ2UuACVzACVzACVzAENsb25lIHJlbW92aW5nIGFsbCB1c2VyIGRhdGEgZm9yIHByb3Zpc2lvbmluZzogJXMATm9uIGlubm9kYiB0YWJsZTogJXMuJXMgaXMgbm90IGNsb25lZCBhbmQgaXMgZW1wdHkuAENsb25lIHNodXR0aW5nIGRvd24gc2VydmVyIGFzIFJFU1RBUlQgZmFpbGVkLiBQbGVhc2Ugc3RhcnQgc2VydmVyIHRvIGNvbXBsZXRlIGNsb25lIG9wZXJhdGlvbi4ARXJyb3Igd2hlbiBleHRyYWN0aW5nIHRoaXMgbWVtYmVyIEdUSUQgcHVyZ2VkIHNldC4gT3BlcmF0aW9ucyBhbmQgY2hlY2tzIG1hZGUgdG8gZ3JvdXAgam9pbmVycyBtYXkgYmUgaW5jb21wbGV0ZS4AVGhlcmUgd2FzIGFuIGlzc3VlIHdoZW4gY29uZmlndXJpbmcgdGhlIHJlbW90ZSBjbG9uaW5nIHByb2Nlc3M6ICVzAFRoZXJlIHdhcyBhbiBpc3N1ZSB3aGVuIGNsb25pbmcgZnJvbSBhbm90aGVyIHNlcnZlcjogJXMAVGhlcmUgd2FzIGFuIGlzc3VlIHdoZW4gdHJ5aW5nIHRvIGV2YWx1YXRlIHRoZSBiZXN0IGRpc3RyaWJ1dGVkIHJlY292ZXJ5IHN0cmF0ZWd5IHdoaWxlIGpvaW5pbmcuJXMATm8gdmFsaWQgb3IgT05MSU5FIG1lbWJlcnMgZXhpc3QgdG8gZ2V0IHRoZSBtaXNzaW5nIGRhdGEgZnJvbSB0aGUgZ3JvdXAuIEZvciBjbG9uaW5nIGNoZWNrIGlmIGRvbm9ycyBvZiB0aGUgc2FtZSB2ZXJzaW9uIGFuZCB3aXRoIGNsb25lIHBsdWdpbiBpbnN0YWxsZWQgZXhpc3QuIEZvciBpbmNyZW1lbnRhbCByZWNvdmVyeSBjaGVjayBpZiB5b3UgaGF2ZSBkb25vcnMgd2hlcmUgdGhlIHJlcXVpcmVkIGRhdGEgd2FzIG5vdCBwdXJnZWQgZnJvbSB0aGUgYmluYXJ5IGxvZ3MuAFRoZSBncm91cCByZXBsaWNhdGlvbiBwbHVnaW4gY291bGQgbm90IGtpbGwgdGhlIHBsdWdpbiByb3V0aW5lIGZvciAlcy4gJXMAVGhpcyBtZW1iZXIgd2lsbCBzdGFydCBkaXN0cmlidXRlZCByZWNvdmVyeSB1c2luZyBjbG9uZS4gSXQgaXMgZHVlIHRvIHRoZSBudW1iZXIgb2YgbWlzc2luZyB0cmFuc2FjdGlvbnMgYmVpbmcgaGlnaGVyIHRoYW4gdGhlIGNvbmZpZ3VyZWQgdGhyZXNob2xkIG9mICVsbHUuAFRoaXMgbWVtYmVyIHdpbGwgc3RhcnQgZGlzdHJpYnV0ZWQgcmVjb3ZlcnkgdXNpbmcgY2xvbmUuIEl0IGlzIGR1ZSB0byBubyBPTkxJTkUgbWVtYmVyIGhhcyB0aGUgbWlzc2luZyBkYXRhIGZvciByZWNvdmVyaW5nIGluIGl0cyBiaW5hcnkgbG9ncy4ARGlzdHJpYnV0ZWQgcmVjb3Zlcnkgd2lsbCB0cmFuc2ZlciBkYXRhIHVzaW5nOiAlcwBEdWUgdG8gc29tZSBpc3N1ZSBvbiB0aGUgcHJldmlvdXMgc3RlcCBkaXN0cmlidXRlZCByZWNvdmVyeSBpcyBub3cgZXhlY3V0aW5nOiAlcwBEdWUgdG8gYSBjcml0aWNhbCBjbG9uaW5nIGVycm9yIG9yIGxhY2sgb2YgZG9ub3JzLCBkaXN0cmlidXRlZCByZWNvdmVyeSBjYW5ub3QgYmUgZXhlY3V0ZWQuIFRoZSBtZW1iZXIgd2lsbCBub3cgbGVhdmUgdGhlIGdyb3VwLgBUaGUgJyVzJyB0aHJlYWQgb2YgY2hhbm5lbCAnJXMnIHdpbGwgZXJyb3Igb3V0IGFzIHRoZSBzZXJ2ZXIgd2lsbCBhdHRlbXB0IHRvIGNsb25lIGFub3RoZXIgc2VydmVyAFVua25vd24gdGFibGUgJyUtLjEyOXMnAExvbmcgZGF0YWJhc2UgbmFtZSBhbmQgaWRlbnRpZmllciBmb3Igb2JqZWN0IHJlc3VsdGVkIGluIHBhdGggbGVuZ3RoIGV4Y2VlZGluZyAlZCBjaGFyYWN0ZXJzLiBQYXRoOiAnJXMnLgBYQTogRmFpbGVkIHRvIHRha2UgTURMIExvY2sgYmFja3VwIG9mIFBSRVBBUkVEIFhBIHRyYW5zYWN0aW9uIGR1cmluZyBjbGllbnQgZGlzY29ubmVjdC4AU1VQRVIgcHJpdmlsZWdlIG9yIEFVRElUX0FETUlOIHJvbGUgcmVxdWlyZWQgZm9yICclcydAJyVzJyB1c2VyLgBJbnZhbGlkIGFyZ3VtZW50IHR5cGUASW52YWxpZCBhcmd1bWVudCBjb3VudABhdWRpdF9sb2cgcGx1Z2luIGhhcyBub3QgYmVlbiBpbnN0YWxsZWQgdXNpbmcgSU5TVEFMTCBQTFVHSU4gc3ludGF4LgBJbnZhbGlkICJtYXhfYXJyYXlfbGVuZ3RoIiBhcmd1bWVudCB0eXBlLgBGYWlsZWQgdG8gd3JpdGUgdG8gJXM6ICVzICglcykAVXBncmFkaW5nIGZyb20gc2VydmVyIHZlcnNpb24gJWQgd2l0aCBwYXJ0aXRpb25lZCB0YWJsZXMgYW5kIGxvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPT0gMSBvbiBhIGNhc2Ugc2Vuc2l0aXZlIGZpbGUgc3lzdGVtIG1heSBjYXVzZSBpc3N1ZXMsIGFuZCBpcyB0aGVyZWZvcmUgcHJvaGliaXRlZC4gVG8gdXBncmFkZSBhbnl3YXksIHJlc3RhcnQgdGhlIG5ldyBzZXJ2ZXIgdmVyc2lvbiB3aXRoIHRoZSBjb21tYW5kIGxpbmUgb3B0aW9uICd1cGdyYWRlPUZPUkNFJy4gV2hlbiB1cGdyYWRlIGlzIGNvbXBsZXRlZCwgcGxlYXNlIGV4ZWN1dGUgJ1JFTkFNRSBUQUJMRSA8cGFydF90YWJsZV9uYW1lPiBUTyA8bmV3X3RhYmxlX25hbWU+OyBSRU5BTUUgVEFCTEUgPG5ld190YWJsZV9uYW1lPiBUTyA8cGFydF90YWJsZV9uYW1lPjsnIGZvciBlYWNoIG9mIHRoZSBwYXJ0aXRpb25lZCB0YWJsZXMuIFBsZWFzZSBzZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24uAEluY29ycmVjdCBlbnZpcm9ubWVudCB2YXJpYWJsZSAlcywgaW52YWxpZCBwb3J0OiAlcwBUaGUgc2VydmVyIHdhcyBhdXRvbWF0aWNhbGx5IHNldCBpbnRvIG9mZmxpbmUgbW9kZSBhZnRlciBhbiBlcnJvciB3YXMgZGV0ZWN0ZWQuAEEgbWVzc2FnZSBzZW50IHRocm91Z2ggdGhlIEdyb3VwIFJlcGxpY2F0aW9uIG1lc3NhZ2UgZGVsaXZlciBzZXJ2aWNlIHdhcyBub3QgZGVsaXZlcmVkIHN1Y2Nlc3NmdWxseS4gVGhlIHNlcnZlciB3aWxsIG5vdyBsZWF2ZSB0aGUgZ3JvdXAuIFRyeSB0byBhZGQgdGhlIHNlcnZlciBiYWNrIHRvIHRoZSBncm91cCBhbmQgY2hlY2sgaWYgdGhlIHByb2JsZW0gcGVyc2lzdHMsIG9yIGNoZWNrIHByZXZpb3VzIG1lc3NhZ2VzIGluIHRoZSBsb2cgZm9yIGhpbnRzIG9mIHdoYXQgY291bGQgYmUgdGhlIHByb2JsZW0uAEludmFsaWQgU09VUkNFX0NPTVBSRVNTSU9OX0FMR09SSVRITVMgJyUuMTkycycgZm91bmQgaW4gcmVwb3NpdG9yeSBmb3IgY2hhbm5lbCAnJS4xOTJzJy4gUmVzZXR0aW5nIHRvICd1bmNvbXByZXNzZWQnIChubyBjb21wcmVzc2lvbikuAEludmFsaWQgU09VUkNFX1pTVERfQ09NUFJFU1NJT05fTEVWRUwgZm91bmQgaW4gcmVwb3NpdG9yeSBmb3IgY2hhbm5lbCAnJS4xOTJzJy4gUmVzZXR0aW5nIHRvICV1LgBPcHRpb24gLS1wcm90b2NvbC1jb21wcmVzc2lvbi1hbGdvcml0aG1zIGlzIHJlc2V0IHRvIGRlZmF1bHQgdmFsdWUuAEZhdGFsIGVycm9yIHdoaWxlIGNvbXByZXNzaW5nIG91dGdvaW5nIGRhdGEgLSAlcwAlcwBVbmtub3duIGtleXJpbmdfYXdzX3JlZ2lvbiAnJS4xOTJzJy4gQ29ubmVjdGlvbiB0byBBV1MgS01TIG1heSBmYWlsLgBQUklWSUxFR0VfQ0hFQ0tTX1VTRVIgZm9yIHJlcGxpY2F0aW9uIGNoYW5uZWwgJyUuMTkycycgd2FzIHNldCB0byBgJS42NHNgQGAlLjI1NXNgLCBidXQgdGhpcyBpcyBub3QgYW4gZXhpc3RpbmcgdXNlci4gQ29ycmVjdCB0aGlzIGJlZm9yZSBzdGFydGluZyByZXBsaWNhdGlvbiB0aHJlYWRzLgBJbnZhbGlkLCBjb3JydXB0ZWQgUFJJVklMRUdFX0NIRUNLU19VU0VSIHdhcyBmb3VuZCBpbiB0aGUgcmVwbGljYXRpb24gY29uZmlndXJhdGlvbiByZXBvc2l0b3J5IGZvciBjaGFubmVsICclLjE5MnMnLiBVc2UgQ0hBTkdFIFJFUExJQ0FUSU9OIFNPVVJDRSBUTyBQUklWSUxFR0VfQ0hFQ0tTX1VTRVIgdG8gY29ycmVjdCB0aGUgY29uZmlndXJhdGlvbi4AUFJJVklMRUdFX0NIRUNLU19VU0VSIGZvciByZXBsaWNhdGlvbiBjaGFubmVsICclLjE5MnMnIHdhcyBzZXQgdG8gYCUuNjRzYEBgJS4yNTVzYCwgYnV0IHRoaXMgdXNlciBkb2VzIG5vdCBoYXZlIFJFUExJQ0FUSU9OX0FQUExJRVIgcHJpdmlsZWdlLiBDb3JyZWN0IHRoaXMgYmVmb3JlIHN0YXJ0aW5nIHRoZSByZXBsaWNhdGlvbiB0aHJlYWRzLgBUaGUgUFJJVklMRUdFX0NIRUNLU19VU0VSIGZvciBjaGFubmVsICclLjE5MnMnIHdvdWxkIG5lZWQgRklMRSBwcml2aWxlZ2UgdG8gZXhlY3V0ZSBhIExPQUQgREFUQSBJTkZJTEUgc3RhdGVtZW50IHJlcGxpY2F0ZWQgaW4gc3RhdGVtZW50IGZvcm1hdC4gQ29uc2lkZXIgdXNpbmcgYmlubG9nX2Zvcm1hdD1ST1cgb24gc291cmNlLiBJZiB0aGUgcmVwbGljYXRlZCBldmVudHMgYXJlIHRydXN0ZWQsIHJlY292ZXIgZnJvbSB0aGUgZmFpbHVyZSBieSB0ZW1wb3JhcmlseSBncmFudGluZyBGSUxFIHRvIHRoZSBQUklWSUxFR0VfQ0hFQ0tTX1VTRVIuAFJlcGxpY2EgU1FMIHRocmVhZCVzIGluaXRpYWxpemVkLCBzdGFydGluZyByZXBsaWNhdGlvbiBpbiBsb2cgJyVzJyBhdCBwb3NpdGlvbiAlcywgcmVsYXkgbG9nICclcycgcG9zaXRpb246ICVzLCB1c2VyOiAnJS42NHMnQCclLjI1NXMnLCByb2xlczogJS41MTJzAENhbm5vdCBnZW5lcmF0ZSBwYXNzd29yZDogJyUuMzJzJwBGYWlsZWQgdG8gZ2VuZXJhdGUgYSByYW5kb20gcGFzc3dvcmQgZm9yIHJvb3QuIFByb2JhYmFibHkgbm90IGVub3VnaCBlbnRocm9weS4ASWdub3JpbmcgLS1wbHVnaW4tbG9hZFtfYWRkXSBsaXN0IGFzIHRoZSBzZXJ2ZXIgaXMgcnVubmluZyB3aXRoIC0taW5pdGlhbGl6ZSgtaW5zZWN1cmUpLgBDYW5ub3Qgc2V0IG1hbmRhdG9yeV9yb2xlczogQXV0aElkIGAlLjY0c2BAYCUuNjRzYCBoYXMgJyVzJyBwcml2aWxlZ2UuIEF1dGhJZChzKSBzZXQgaW4gdGhlIG1hbmRhdG9yeV9yb2xlcyBhcmUgaWdub3JlZC4ARGlyZWN0b3J5ICclcycgd2lsbCBub3QgYmUgc2Nhbm5lZCBiZWNhdXNlIGl0IGlzIGEgaGlkZGVuIGRpcmVjdG9yeS4AU2VydmVyIHdhcyBub3QgYWJsZSB0byBmaW5kIGEgcm90YXRlIGV2ZW50IGZyb20gc291cmNlIHNlcnZlciB0byBpbml0aWFsaXplIHJlbGF5IGxvZyByZWNvdmVyeSBmb3IgY2hhbm5lbCAnJXMnLiBTa2lwcGluZyByZWxheSBsb2cgcmVjb3ZlcnkgZm9yIHRoZSBjaGFubmVsLgBSb2xsaW5nIGJhY2sgTE9CIGZvciB0cmFuc2FjdGlvbiAlbGx1IHVuZG8gbnVtYmVyICVsbHUgOiBjdXJyZW50IGluZGV4IGxlbmd0aCAlbGx1LiAoaXRlcmF0aW9uICVsbHUpAEVycm9yIGluIHByb2Nlc3NpbmcgKHBvc3NpYmx5IGRlcHJlY2F0ZWQpIGV4cHJlc3Npb24gb3IgZnVuY3Rpb24gJyUuMTI4cycgZm9yIGdlbmVyYXRlZCBjb2x1bW4gJS42NHMuJS42NHMuJS42NHMAVGhlIHF1ZXVlIGV2ZW50IGZhaWxlZCBmb3IgY2hhbm5lbCAnJXMnIGFzIGFuIGludmFsaWQgZXZlbnQgYWNjb3JkaW5nIHRvIFJFUVVJUkVfUk9XX0ZPUk1BVCB3YXMgZm91bmQuAFRoZSBhcHBsaWNhdGlvbiBvZiByZWxheSBldmVudHMgZmFpbGVkIGZvciBjaGFubmVsICclcycgYXMgYW4gaW52YWxpZCBldmVudCBhY2NvcmRpbmcgdG8gUkVRVUlSRV9ST1dfRk9STUFUIHdhcyBmb3VuZC4AUFJJVklMRUdFX0NIRUNLU19VU0VSIGZvciByZXBsaWNhdGlvbiBjaGFubmVsICclLjE5MnMnIGNhbid0IGJlIHNldCB0byBgJS42NHNgQGAlLjI1NXNgIHVubGVzcyBSRVFVSVJFX1JPV19GT1JNQVQgaXMgYWxzbyBzZXQgdG8gJWQuAEFuIHVuZXhwZWN0ZWQgZXZlbnQgc2VxdWVuY2Ugd2FzIGRldGVjdGVkIGJ5IHRoZSBTUUwgdGhyZWFkIHdoaWxlIGFwcGx5aW5nIGFuIGV2ZW50LgBVcGRhdGluZyBwYXJ0aXRpb24gZmlsZSBuYW1lICclcycgdG8gJyVzJyBhbmQgYWxsIG90aGVyIHBhcnRpdGlvbiBmaWxlcyBkdXJpbmcgdXBncmFkZQBVcGRhdGluZyBwYXJ0aXRpb24gZmlsZSBuYW1lICclcycgdG8gJyVzJyBhbmQgYWxsIG90aGVyIHBhcnRpdGlvbiBmaWxlcyBkdXJpbmcgZG93bmdyYWRlAFVwZGF0aW5nIHBhcnRpdGlvbiBmaWxlIG5hbWUgJyVzJyB0byAnJXMnIGZvciBpbXBvcnQAVW5hYmxlIHRvIG9wZW4gcGFydGl0aW9uIGZpbGUgd2l0aCBuZXcgbmFtZSAnJXMnLiBQbGVhc2UgY2hlY2sgaWYgaW5ub2RiX2RpcmVjdG9yaWVzIGlzIHNldCB0byBpbmNsdWRlIGFsbCBleHRlcm5hbCBmaWxlIHBhdGhzACVzIEREIElEOiAlbGx1IC0gUGFydGl0aW9uIHRhYmxlc3BhY2UgJXUsIG5hbWUgJyVzJyBpcyBjb3JyZWN0ZWQgdG8gJyVzJwAlcyBERCBJRDogJWxsdSAtIFRhYmxlc3BhY2UgJXUsIG5hbWUgJyVzJywgJyVzJyBpcyBtb3ZlZCB0byAnJXMnACVzIEREIElEOiAlbGx1IC0gUGFydGl0aW9uIHRhYmxlc3BhY2UgJXUsIG5hbWUgJyVzJywgJyVzJyBpcyB1cGRhdGVkIHRvICclcycAJXMgVG9vIG1hbnkgZmlsZXMgaGF2ZSBiZWVuIG1vdmVkLCBkaXNhYmxpbmcgbG9nZ2luZyBvZiBkZXRhaWxlZCBtZXNzYWdlcwBFbGVjdGVkIHByaW1hcnkgbWVtYmVyICVzOiAlcwBTY2hlbWEgbmFtZSAnJXMnIGNvbnRhaW5pbmcgdXBwZXIgY2FzZSBjaGFyYWN0ZXJzIGlzIG5vdCBhbGxvd2VkIHdpdGggbG93ZXJfY2FzZV90YWJsZV9uYW1lcyA9IDEuAFRhYmxlIG5hbWUgJyVzLiVzJyBjb250YWluaW5nIHVwcGVyIGNhc2UgY2hhcmFjdGVycyBpcyBub3QgYWxsb3dlZCB3aXRoIGxvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPSAxLgBTY2hlbWEgbmFtZSAnJXMnIGNvbnRhaW5pbmcgdXBwZXIgY2FzZSBjaGFyYWN0ZXJzLCB1c2VkIGJ5IGZvcmVpZ24ga2V5ICclcycgaW4gdGFibGUgJyVzLiVzJywgaXMgbm90IGFsbG93ZWQgd2l0aCBsb3dlcl9jYXNlX3RhYmxlX25hbWVzID0gMS4AVGFibGUgbmFtZSAnJXMuJXMnIGNvbnRhaW5pbmcgdXBwZXIgY2FzZSBjaGFyYWN0ZXJzLCB1c2VkIGJ5IGZvcmVpZ24ga2V5ICclcycgaW4gdGFibGUgJyVzLiVzJywgaXMgbm90IGFsbG93ZWQgd2l0aCBsb3dlcl9jYXNlX3RhYmxlX25hbWVzID0gMS4AVGFibGUgUGFydGl0aW9uOiAlcyBpcyBub3QgZm91bmQgaW4gSW5ub0RCIGRpY3Rpb25hcnkAQWNjZXNzIGRlbmllZCBmb3IgdXNlciAnJS0uNDhzJ0AnJS0uNjRzJy4gQWNjb3VudCBpcyBibG9ja2VkIGZvciAlcyBkYXkocykgKCVzIGRheShzKSByZW1haW5pbmcpIGR1ZSB0byAldSBjb25zZWN1dGl2ZSBmYWlsZWQgbG9naW5zLiBVc2UgRkxVU0ggUFJJVklMRUdFUyBvciBBTFRFUiBVU0VSIHRvIHJlc2V0LgAlcwBVcGdyYWRlIGNhbm5vdCBwcm9jZWVkIGR1ZSB0byBhbiBleGlzdGluZyBwcmVwYXJlZCBYQSB0cmFuc2FjdGlvbi4AQ291bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3Iga2V5X2luZm8gd2hlbiBtaWdyYXRpbmcgdGFibGUgJXMuJXMAQXBwbGllciBtZXRhZGF0YSBpbmZvcm1hdGlvbiBmb3IgY2hhbm5lbCAnJXMnIHdhcyBmb3VuZCBhZnRlciBhIGNsb25lIG9wZXJhdGlvbi4gUmVsYXkgbG9nIHJlY292ZXJ5IHdpbGwgYmUgZXhlY3V0ZWQgdG8gYWRqdXN0IHBvc2l0aW9ucyBhbmQgZmlsZSBpbmZvcm1hdGlvbiBmb3IgdGhpcyBuZXcgc2VydmVyLiBTaG91bGQgdGhhdCBhdXRvbWF0aWMgcHJvY2VkdXJlIGZhaWwgcGxlYXNlIGFkanVzdCB0aGUgcG9zaXRpb25zIHRocm91Z2ggJ0NIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8nAEZhaWxlZCB0byBkZWxldGUgNS43IHVuZG8gdGFibGVzcGFjZTogJXMgZHVyaW5nIHVwZ3JhZGUARW1wdHkgZG91Ymxld3JpdGUgZmlsZTogJXMAVXNpbmcgJyVzJyBmb3IgZG91Ymxld3JpdGUARXJyb3IgcmVhZGluZyBkb3VibGV3cml0ZSBidWZmZXIgZnJvbSB0aGUgc3lzdGVtIHRhYmxlc3BhY2UAQ2Fubm90IGNyZWF0ZSBkb3VibGV3cml0ZSBidWZmZXI6IHlvdSBtdXN0IGluY3JlYXNlIHlvdXIgYnVmZmVyIHBvb2wgc2l6ZS4gQ2Fubm90IGNvbnRpbnVlIG9wZXJhdGlvbi4AVGhlIHBhZ2UgaW4gdGhlIGRvdWJsZXdyaXRlIGZpbGUgaXMgY29ycnVwdC4gQ2Fubm90IGNvbnRpbnVlIG9wZXJhdGlvbi4gWW91IGNhbiB0cnkgdG8gcmVjb3ZlciB0aGUgZGF0YWJhc2Ugd2l0aCBpbm5vZGJfZm9yY2VfcmVjb3Zlcnk9NgBUaGUgZG91Ymxld3JpdGUgZmlsZW5hbWUgJyVzJyBpcyBpbmNvcnJlY3QuACVzAERvdWJsZXdyaXRlIGZpbGUgY3JlYXRlIGZhaWxlZDogJXMAREJMV1JUaHJlYWQ6IHB0aHJlYWRfc2V0YWZmaW5pdHkoKSBmYWlsZWQhACVzACVzAERvdWJsZXdyaXRlIGZpbGUgcmVhZCBmYWlsZWQ6ICVzAER1bXAgb2YgdGhlIGRhdGEgZmlsZSBwYWdlOgAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBEb3VibGV3cml0ZSBsb2FkIGZpbGUgJXMgc2l6ZSAlbGx1IGlzIG5vdCBhIG11bHRpcGxlIG9mIHRoZSBjb25maWd1cmVkIHBhZ2Ugc2l6ZSAlenUARG91Ymxld3JpdGUgZmlsZSAlcyB0cnVuY2F0ZSBmYWlsZWQARG91Ymxld3JpdGUgZmlsZSAlcyBmYWlsZWQgdG8gd3JpdCB6ZXJvcwBEb3VibGV3cml0ZSBvcGVuIG9yIGNyZWF0ZSBmaWxlICVzIHNpemUgJWxsdSBpcyBub3QgYSBtdWx0aXBsZSBvZiB0aGUgY29uZmlndXJlZCBwYWdlIHNpemUgJXp1ACVzACVzACVzACVzACVzAENvdWxkIG5vdCBmbHVzaCBhbGwgR1RJRHMgZHVyaW5nIHNsb3cgc2h1dGRvd24uIFdpbGwgcmVjb3ZlciBHVElEcyB3aGVuIHNlcnZlciByZXN0YXJ0cy4ARmFpbGVkIHRvIGRlbGV0ZSA1Ljcgc3RhdCB0YWJsZXNwYWNlOiAlcyBkdXJpbmcgdXBncmFkZQBJbnN0YWxsaW5nIG5kYmluZm8gc2NoZW1hIHZlcnNpb24gJXMASW5zdGFsbGVkIG5kYmluZm8gc2NoZW1hIGlzIGN1cnJlbnQuIE5vdCB1cGdyYWRpbmcuAEZhaWxlZCB0byB1cGdyYWRlIG5kYmluZm8gc2NoZW1hLgAlcwBJbm5vREIgaW5pdGlhbGl6YXRpb24gaGFzIHN0YXJ0ZWQuAElubm9EQiBpbml0aWFsaXphdGlvbiBoYXMgZW5kZWQuAENvdWxkIG5vdCBmaW5kIGFwcHJvcHJpYXRlIHJlc2V0IHBvaW50cy4AVW5hYmxlIHRvIGZsdXNoLiBQYWdlIGFyY2hpdmluZyBkYXRhIG1heSBiZSBjb3JydXB0IGluIGNhc2Ugb2YgYSBjcmFzaC4AUGFnZSBhcmNoaXZlcidzIGRvdWJsZXdyaXRlIGJ1ZmZlciBmb3IgJWxkIGlzIG5vdCB2YWxpZC4AUGFnZSBhcmNoaXZlciBzeXN0ZW0ncyByZWNvdmVyeSBmYWlsZWQuAEludmFsaWQgYXJjaGl2ZWQgZmlsZSBuYW1lIGZvcm1hdC4gVGhlIGFyY2hpdmVkIGZpbGUgaXMgc3VwcG9zZWQgdG8gaGF2ZSB0aGUgZm9ybWF0ICVzICsgWzAtOV0qLgBYIFBsdWdpbnMgVU5JWCBzb2NrZXQgbXVzdCB1c2UgZGlmZmVyZW50IGZpbGUgdGhhbiBNeVNRTCBzZXJ2ZXIuIFggUGx1Z2luIHdvbid0IGJlIGFjY2Vzc2libGUgdGhyb3VnaCBVTklYIHNvY2tldAAlcwBDb2x1bW4gJyUuNjRzLiUuNjRzLiUuNjRzJyBoYXZpbmcgcHJlZml4IGtleSBwYXJ0ICclLjY0cygldSknIGlzIGlnbm9yZWQgYnkgdGhlIHBhcnRpdGlvbmluZyBmdW5jdGlvbi4gVXNlIG9mIHByZWZpeGVkIGNvbHVtbnMgaW4gdGhlIFBBUlRJVElPTiBCWSBLRVkoKSBjbGF1c2UgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuAFVuZG8gVHJ1bmNhdGlvbiBpcyBvY2N1cnJpbmcgdG9vIG9mdGVuLiBDb25zaWRlciBpbmNyZWFzaW5nIC0taW5ub2RiLW1heC11bmRvLWxvZy1zaXplLgBQbHVnaW4gJ2dyb3VwX3JlcGxpY2F0aW9uJyBpcyBzdGFydGluZy4AQ2Fubm90IGNyZWF0ZSB0YWJsZXNwYWNlICVzIGJlY2F1c2UgdGhlIGRpcmVjdG9yeSBpcyBub3QgYSB2YWxpZCBsb2NhdGlvbi4gJXMAU2Nhbm5lZCBmaWxlICclcycgZm9yIHRhYmxlc3BhY2UgJXMgY2Fubm90IGJlIG9wZW5lZCBiZWNhdXNlIGl0IGlzIG5vdCBpbiBhIHN1Yi1kaXJlY3RvcnkgbmFtZWQgZm9yIHRoZSBzY2hlbWEuAENhbm5vdCBmaW5kIHVuZG8gdGFibGVzcGFjZSAlcyB3aXRoIGZpbGVuYW1lICclcycgYXMgaW5kaWNhdGVkIGJ5IHRoZSBEYXRhIERpY3Rpb25hcnkuIERpZCB5b3UgbW92ZSBvciBkZWxldGUgdGhpcyB0YWJsZXNwYWNlPyBBbnkgdW5kbyBsb2dzIGluIGl0IGNhbm5vdCBiZSB1c2VkLgBJbnZhbGlkIGlucHV0IHZhbHVlIGZvciByZWNvdmVyeSBzb2NrZXQgZW5kcG9pbnRzICclcycuIFBsZWFzZSwgcHJvdmlkZSBhIHZhbGlkLCBjb21tYSBzZXBhcmF0ZWQsIGxpc3Qgb2YgZW5kcG9pbnRzIChJUDpwb3J0KS4AVGhlIHNlcnZlciBpcyBub3QgbGlzdGVuaW5nIG9uIGVuZHBvaW50ICclcycuIE9ubHkgZW5kcG9pbnRzIHRoYXQgdGhlIHNlcnZlciBpcyBsaXN0ZW5pbmcgb24gYXJlIHZhbGlkIHJlY292ZXJ5IGVuZHBvaW50cy4AUmVjZWl2ZWQgaW52YWxpZCByZWNvdmVyeSBlbmRwb2ludHMgY29uZmlndXJhdGlvbiBmcm9tIGRvbm9yLiBUaGlzIG1lbWJlciBpcyBub3QgYSB2YWxpZCBkb25vciBmb3IgcmVjb3ZlcnksIHNvIGl0IHdpbGwgYmUgc2tpcHBlZC4ARmFpbGVkIHRvIHJldHJpZXZlIElQIGFkZHJlc3NlcyBmcm9tIGVuYWJsZWQgaG9zdCBuZXR3b3JrIGludGVyZmFjZXMuAEZhaWxlZCB0byBpbml0aWFsaXplIFRMUyBmb3IgY2hhbm5lbDogJXMuIFNlZSBiZWxvdyBmb3IgdGhlIGRlc2NyaXB0aW9uIG9mIGV4YWN0IGlzc3VlLgBWYWxpZGF0aW9uIG9mIHZhbHVlICclcycgc2V0IHRvIGBNeXNxbHhfYmluZF9hZGRyZXNzYCBmYWlsZWQ6ICVzLiBTa2lwcGluZyB0aGlzIHZhbHVlLgBWYWx1ZSAnJXMnIHNldCB0byBgTXlzcWx4X2JpbmRfYWRkcmVzc2AsIFggUGx1Z2luIGNhbid0IGJpbmQgdG8gaXQuIFNraXBwaW5nIHRoaXMgdmFsdWUuAFNlcnZlciB3YXMga2lsbGVkIHdoZW4gSW5ub0RCIHJlZG8gbG9nZ2luZyB3YXMgZGlzYWJsZWQuIERhdGEgZmlsZXMgY291bGQgYmUgY29ycnVwdC4gWW91IGNhbiB0cnkgdG8gcmVzdGFydCB0aGUgZGF0YWJhc2Ugd2l0aCBpbm5vZGJfZm9yY2VfcmVjb3Zlcnk9NgBJbm5vREIgY2Fubm90IGRvIGNvbGQgc2h1dGRvd24gJ2lubm9kYl9mYXN0X3NodXRkb3duID0gMicgYW5kIGlzIGZvcmNpbmcgJ2lubm9kYl9mYXN0X3NodXRkb3duID0gMScgYXMgcmVkbyBsb2dnaW5nIGlzIGRpc2FibGVkLiBJbm5vREIgd291bGQgZmx1c2ggYWxsIGRpcnR5IHBhZ2VzIHRvIGVuc3VyZSBwaHlzaWNhbCBkYXRhIGNvbnNpc3RlbmN5LgBJbm5vREIgcmVkbyBsb2dnaW5nIGlzIGRpc2FibGVkLiBBbGwgZGF0YSBjb3VsZCBiZSBsb3N0IGluIGNhc2Ugb2YgYSBzZXJ2ZXIgY3Jhc2guAElubm9EQiByZWRvIGxvZ2dpbmcgaXMgZW5hYmxlZC4gRGF0YSBpcyBub3cgc2FmZSBhbmQgY2FuIGJlIHJlY292ZXJlZCBpbiBjYXNlIG9mIGEgc2VydmVyIGNyYXNoLgBDaGFubmVsICVzIGNvbmZpZ3VyZWQgdG8gc3VwcG9ydCBUTFMuIEVuY3J5cHRlZCBjb25uZWN0aW9ucyBhcmUgbm93IHN1cHBvcnRlZCBmb3IgdGhpcyBjaGFubmVsLgBObyBUTFMgY29uZmlndXJhdGlvbiB3YXMgZ2l2ZW4gZm9yIGNoYW5uZWwgJXM7IHJlLXVzaW5nIFRMUyBjb25maWd1cmF0aW9uIG9mIGNoYW5uZWwgJXMuAFNraXBwaW5nIElubm9EQiB0YWJsZXNwYWNlIHBhdGggdmFsaWRhdGlvbi4gTWFudWFsbHkgbW92ZWQgdGFibGVzcGFjZSBmaWxlcyB3aWxsIG5vdCBiZSBkZXRlY3RlZCEAVXBncmFkZSBmYWlsZWQgYmVjYXVzZSBkYXRhYmFzZSBjb250YWlucyBkaXNjYXJkZWQgdGFibGVzcGFjZXMuAFRoZSB1c2VyIG5hbWUgJyVzJyBleGNlZWRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBhbGxvd2VkIGNoYXJhY3RlcnMgJWQgYW5kIGlzIHRydW5rYXRlZC4AVGhlIGhvc3QgbmFtZSAnJXMnIGV4Y2VlZHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGFsbG93ZWQgY2hhcmFjdGVycyAlZCBhbmQgaXMgdHJ1bmthdGVkLgBSb2xsYmFjayBvZiBub24tcHJlcGFyZWQgdHJhbnNhY3Rpb25zIG5vdCBjb21wbGV0ZWQsIGR1ZSB0byBmYXN0IHNodXRkb3duAEZvdW5kIGFuIGVudHJ5IGluIHRoZSAncm9sZV9lZGdlcycgdGFibGUgd2l0aCBlbXB0eSBhdXRob3JpemF0aW9uIElEOyBTa2lwcGVkAEZvdW5kIGFuIGVudHJ5IGluIHRoZSAncm9sZV9lZGdlcycgdGFibGUgd2l0aCB1bmtub3duIGF1dGhvcml6YXRpb24gSUQgJyVzJzsgU2tpcHBlZABGb3VuZCBhbiBlbnRyeSBpbiB0aGUgJ2RlZmF1bHRfcm9sZXMnIHRhYmxlIHdpdGggZW1wdHkgYXV0aG9yaXphdGlvbiBJRDsgU2tpcHBlZABGb3VuZCBhbiBlbnRyeSBpbiB0aGUgJ2RlZmF1bHRfcm9sZXMnIHRhYmxlIHdpdGggdW5rbm93biBhdXRob3JpemF0aW9uIElEICclcyc7IFNraXBwZWQAQ291bGRuJ3QgaW5zZXJ0IGVudHJ5IGluIGRkbCBsb2cgZm9yIGRkbC4AJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAVGhlIHN0YXRlIG9mIHVuZG8gdGFibGVzcGFjZSAlcyBpcyBzZXQgdG8gYWN0aXZlIGltcGxpY2l0bHkuAFRoZSBzdGF0ZSBvZiB1bmRvIHRhYmxlc3BhY2UgJXMgaXMgc2V0IHRvICdhY3RpdmUnIGJ5IEFMVEVSIFRBQkxFU1BBQ0UuAFRoZSBzdGF0ZSBvZiB1bmRvIHRhYmxlc3BhY2UgJXMgaXMgc2V0IHRvICdpbmFjdGl2ZScgYnkgQUxURVIgVEFCTEVTUEFDRS4AVGhlIHN0YXRlIG9mIHVuZG8gdGFibGVzcGFjZSAlcyBpcyBzZXQgdG8gJ2VtcHR5Jy4ARGVsYXlpbmcgdHJ1bmNhdGUgb2YgdW5kbyB0YWJsZXNwYWNlICVzIGR1ZSB0byBjbG9uZSBhY3Rpdml0eS4ARGVsYXlpbmcgdHJ1bmNhdGUgb2YgdW5kbyB0YWJsZXNwYWNlICVzIGR1ZSB0byBhIG1ldGFkYXRhIGxvY2suAEluamVjdGVkIGRlYnVnIGNyYXNoIHBvaW50OiAlcwBJbmplY3RlZCBkZWJ1ZyBmYWlsdXJlIHBvaW50OiAlcwBUaW1lb3V0IHdoaWxlIHdhaXRpbmcgZm9yIGEgdmlldyBjaGFuZ2UgZXZlbnQgZHVyaW5nIHRoZSBsZWF2ZSBzdGVwIGJlZm9yZSBhIGF1dG8tcmVqb2luIGF0dGVtcHQuAEZhaWxlZCB0byBhdXRvbWF0aWNhbGx5IHJlLWNvbm5lY3QgdG8gYSBkaWZmZXJlbnQgc291cmNlLCBmb3IgY2hhbm5lbCAnJXMnLCBiZWNhdXNlICVzLiBUbyBmaXggdGhpcyAlcy4AQ291bGQgbm90IGV4ZWN1dGUgdGhlIGluc3RhbGxhdGlvbiBvZiBVREYgZnVuY3Rpb25zLiBDaGVjayBmb3Igb3RoZXIgZXJyb3JzIGluIHRoZSBsb2cAQ291bGQgbm90IGV4ZWN1dGUgdGhlIGluc3RhbGxhdGlvbiBvZiBVREYgZnVuY3Rpb246ICVzLiBDaGVjayBpZiB0aGUgZnVuY3Rpb24gaXMgYWxyZWFkeSBwcmVzZW50LCBpZiBzbywgdHJ5IHRvIHJlbW92ZSBpdC4AQ291bGQgbm90IHVuaW5zdGFsbCBVREYgZnVuY3Rpb25zLiBUcnkgdG8gcmVtb3ZlIHRoZW0gbWFudWFsbHkgaWYgcHJlc2VudC4AQW4gZW1wdHkgb3IgaWxsZWdhbCBwcml2aWxlZ2UgaWRlbnRpZmllciB3YXMgaWdub3JlZCB3aGVuIGdsb2JhbCBwcml2aWxlZ2VzIHdlcmUgcmVhZCBmcm9tIGRpc2suACVzAEEgdG1wZGlyIHRlbXBvcmFyeSBwYXRoICIlcyIgaXMgdG9vIGxvbmcgKD4gJXp1KSBmb3IgdGhpcyBPUy4gVGhpcyB3b3VsZCBub3QgbGVhdmUgZW5vdWdoIHNwYWNlIGZvciBhIHRlbXBvcmFyeSBmaWxlbmFtZSBvZiBsZW5ndGggJXp1IHdpdGhpbiBpdC4ARXJyb3ItbG9nIGRlc3RpbmF0aW9uICIlcyIgaXMgbm90IGEgZmlsZS4gQ2FuIG5vdCByZXN0b3JlIGVycm9yIGxvZyBtZXNzYWdlcyBmcm9tIHByZXZpb3VzIHJ1bi4ATm9uZSBvZiB0aGUgbG9nLXNpbmtzIHNlbGVjdGVkIHdpdGggLS1sb2ctZXJyb3Itc2VydmljZXM9Li4uIHByb3ZpZGVzIGEgbG9nLXBhcnNlci4gVGhlIHNlcnZlciB3aWxsIG5vdCBiZSBhYmxlIHRvIG1ha2UgdGhlIHByZXZpb3VzIHJ1bnMnIGVycm9yLWxvZ3MgYXZhaWxhYmxlIGluIHBlcmZvcm1hbmNlX3NjaGVtYS5lcnJvcl9sb2cuAFRoZSBzY2hlbWEgIiUuNjRzIiByZWZlcmVuY2VkIGJ5ICUuMTZzICIlLjEyOHMiIGRvZXMgbm90IGV4aXN0LiBQbGVhc2UgY2xlYW4gdXAgYW55IG9ycGhhbiAlLjE2cyBiZWZvcmUgdXBncmFkaW5nLgBDcmVhdGVkIHVuZG8gdGFibGVzcGFjZSAnJXMnLgBEcm9wcGVkIHVuZG8gdGFibGVzcGFjZSAnJXMnLgBUaGUgSW5ub0RCIEVuY3J5cHRpb24gTWFzdGVyIEtleSBoYXMgYmVlbiByb3RhdGVkIGluICVkIHRhYmxlc3BhY2VzLgBGYWlsZWQgdG8gZGVjb21wcmVzcyBhIERCTFdSIHBhZ2UgKGVycj0lZCkuICBUaGUgb3JpZ2luYWwgc2l6ZSBpcyAlZC4gUmVwb3J0aW5nIHRoZSBkYmx3ciBwYWdlIGFzIGNvcnJ1cHRlZC4ARGVjcnlwdGluZyBhIHBhZ2UgaW4gZG91Ymxld3JpdGUgZmlsZSBmYWlsZWQ6ICVzLgBFbmNyeXB0aW9uIGtleSBtaXNzaW5nOiAlcy4ASS9PIGVycm9yIHdoaWxlIHdyaXRpbmcgdG8gZmlsZTogJXMuIFJldHJ5aW5nIC4uLgBGYWlsZWQgdG8gd3JpdGUgZGF0YSB0byBmaWxlOiAlcwBMb2cgY29tcG9uZW50ICVzIGZhaWxlZCB0byBpbml0aWFsaXplLgBUaGUgTW9uaXRvciBJTyB0aHJlYWQgZmFpbGVkIHRvIGNvbm5lY3QgdG8gdGhlIHNvdXJjZSAoaG9zdDolcyBwb3J0OiV1IG5ldHdvcmtfbmFtZXNwYWNlOiVzKSBmb3IgY2hhbm5lbCAnJXMnLCB0aGVuY2UgaXQgd2lsbCB0cnkgdG8gY29ubmVjdCB0byBhbm90aGVyIHNvdXJjZS4AVGhlIHNvdXJjZSAoaG9zdDolcyBwb3J0OiV1IG5ldHdvcmtfbmFtZXNwYWNlOiVzKSBmb3IgY2hhbm5lbCAnJXMnIGhhcyBqb2luZWQgdGhlIGdyb3VwIChncm91cF9uYW1lOiAlcyksIGFuZCBzbyBhZGRlZCBpdHMgZW50cnkgaW50byByZXBsaWNhdGlvbl9hc3luY2hyb25vdXNfY29ubmVjdGlvbl9mYWlsb3ZlciB0YWJsZS4AVGhlIHNvdXJjZSAoaG9zdDolcyBwb3J0OiV1IG5ldHdvcmtfbmFtZXNwYWNlOiVzKSBmb3IgY2hhbm5lbCAnJXMnIGhhcyBsZWZ0IHRoZSBncm91cCAoZ3JvdXBfbmFtZTogJXMpLCBhbmQgc28gcmVtb3ZlZCBpdHMgZW50cnkgZnJvbSByZXBsaWNhdGlvbl9hc3luY2hyb25vdXNfY29ubmVjdGlvbl9mYWlsb3ZlciB0YWJsZS4AVGhlIE1vbml0b3IgSU8gdGhyZWFkIGRldGVjdGVkIHRoYXQgdGhlIHNvdXJjZSAoaG9zdDolcyBwb3J0OiV1IG5ldHdvcmtfbmFtZXNwYWNlOiVzKSBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdyb3VwIG1ham9yaXR5LCB0aGVuY2UgdGhlIGNoYW5uZWwgJyVzJyB3aWxsIHRyeSB0byBjb25uZWN0IHRvIGFub3RoZXIgc291cmNlLgBUaGUgSU8gdGhyZWFkIGRldGVjdGVkIHRoYXQgdGhlIHNvdXJjZSAoaG9zdDolcyBwb3J0OiV1IG5ldHdvcmtfbmFtZXNwYWNlOiVzKSBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdyb3VwIG1ham9yaXR5LCB0aGVuY2UgdGhlIGNoYW5uZWwgJyVzJyB3aWxsIHRyeSB0byBjb25uZWN0IHRvIGFub3RoZXIgc291cmNlLgAlcyBvbiB0aGUgc291cmNlIChob3N0OiVzIHBvcnQ6JXUgbmV0d29ya19uYW1lc3BhY2U6JXMpIGZvciBjaGFubmVsICclcycuAFJlcGxpY2EgTW9uaXRvciBJTyB0aHJlYWQgZXhpdGluZy4AVGhlIGdyb3VwIChncm91cF9uYW1lOiAlcykgZm9yIHRoZSBjaGFubmVsICclcycgaGFzIGJlZW4gcmVtb3ZlZCwgYW5kIHNvIHJlbW92ZWQgaXRzIGVudHJ5IGZyb20gcmVwbGljYXRpb25fYXN5bmNocm9ub3VzX2Nvbm5lY3Rpb25fZmFpbG92ZXJfbWFuYWdlZCBhbmQgYWxsIHRoZSBncm91cCBtZW1iZXJzIGZyb20gcmVwbGljYXRpb25fYXN5bmNocm9ub3VzX2Nvbm5lY3Rpb25fZmFpbG92ZXIgdGFibGUuAFRoZSBncm91cCAoZ3JvdXBfbmFtZTogJXMpIGZvciB0aGUgY2hhbm5lbCAnJXMnIGhhcyBiZWVuIGFkZGVkLCBhbmQgc28gYWRkZWQgaXRzIGVudHJ5IGluIHJlcGxpY2F0aW9uX2FzeW5jaHJvbm91c19jb25uZWN0aW9uX2ZhaWxvdmVyX21hbmFnZWQgYW5kIHNvdXJjZSB0byByZXBsaWNhdGlvbl9hc3luY2hyb25vdXNfY29ubmVjdGlvbl9mYWlsb3ZlciB0YWJsZS4ARXJyb3IgcmVhZGluZyBmYWlsb3ZlciBzb3VyY2VzIGZvciBjaGFubmVsICclcycgZnJvbSByZXBsaWNhdGlvbl9hc3luY2hyb25vdXNfY29ubmVjdGlvbl9mYWlsb3ZlciB0YWJsZS4ARXJyb3IgJXMgdGhlIGNoYW5uZWwgJyVzJywgdGhlIG9wZXJhdGlvbiB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgcmV0cmllZC4AUmVwbGljYXRpb24gY2hhbm5lbCAnJS4xOTJzJyBpcyBjb25maWd1cmVkIHdpdGggQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlM9JyVzJywgd2hpY2ggaXMgaW52YWxpZCB3aGVuIEdUSURfTU9ERSA8PiBPTi4gSWYgeW91IGludGVuZCB0byB1c2UgR1RJRF9NT0RFID0gT04gZXZlcnl3aGVyZSwgY2hhbmdlIHRvIEFTU0lHTl9HVElEU19UT19BTk9OWU1PVVNfVFJBTlNBQ1RJT05TID0gT0ZGIGFuZCB1c2UgdGhlIHByb2NlZHVyZSBmb3IgZW5hYmxpbmcgR1RJRHMgb25saW5lIChzZWUgdGhlIGRvY3VtZW50YXRpb24pLiBJZiB5b3UgaW50ZW5kIHRvIHVzZSBHVElEcyBvbiB0aGlzIHJlcGxpY2EgYW5kIGNhbm5vdCBlbmFibGUgR1RJRHMgb24gdGhlIHNvdXJjZSwgZW5hYmxlIEdUSURfTU9ERSA9IE9OIGFuZCBsZWF2ZSBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUyA9IExPQ0FMfDxVVUlEPi4gSWYgeW91IGludGVuZCB0byBub3QgdXNlIEdUSURzIGF0IGFsbCBpbiB0aGUgcmVwbGljYXRpb24gdG9wb2xvZ3ksIGNoYW5nZSB0byBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUz1PRkYgYW5kIGxlYXZlIEdUSURfTU9ERSA9ICclcycuAFJlcGxpY2F0aW9uIGNoYW5uZWwgJyUuMTkycycgaXMgY29uZmlndXJlZCB3aXRoIEFTU0lHTl9HVElEU19UT19BTk9OWU1PVVNfVFJBTlNBQ1RJT05TPSclcycgd2hpY2ggaXMgZXF1YWwgdG8gZ3JvdXBfcmVwbGljYXRpb25fZ3JvdXBfbmFtZS4gVG8gZml4IHRoaXMgaXNzdWUsIGVpdGhlciBjaGFuZ2UgdGhlIGdyb3VwX3JlcGxpY2F0aW9uX2dyb3VwX25hbWUgIG9yIHVzZSBhIGRpZmZlcmVudCB2YWx1ZSBmb3IgQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlMuAFRoZSBncm91cF9yZXBsaWNhdGlvbl9ncm91cF9uYW1lICclcycgaXMgdGhlIHNhbWUgYXMgdGhlIFVVSUQgdmFsdWUgZm9yIEFTU0lHTl9HVElEU19UT19BTk9OWU1PVVNfVFJBTlNBQ1RJT05TIGluIGEgc2VydmVyIGNoYW5uZWwAVGhlIGludGVnZXIgY29tcG9uZW50IG9mIHRoZSBHVElEIG51bWJlciBpcyBoaWdoLiBTdWdnZXN0IHJlc3RhcnRpbmcgdGhlIHNlcnZlciB3aXRoIGEgbmV3IHNlcnZlcl91dWlkIHRvIHByZXZlbnQgaXQgZnJvbSByZWFjaGluZyB0aGUgbWF4aW11bSBudW1iZXIgMl42My0xLCB3aGljaCB3aWxsIG1ha2UgaXQgaW1wb3NzaWJsZSB0byB3cml0ZSB0aGUgYmluYXJ5IGxvZyBhbmQgaW52b2tlIHRoZSBiZWhhdmlvciBzcGVjaWZpZWQgYnkgYmlubG9nX2Vycm9yX2FjdGlvbi4AJXMAJXMAJXMAJXM6IFdhcm5pbmcgTGV2ZWwgMSAoJWxsdSBNaUIpOiBtb3VudCBwb2ludCA9ICclcycsIGF2YWlsYWJsZSA9ICVsbHUgTWlCLCB0b3RhbCA9ICVsbHUgTWlCLCB1c2VkID0gJS4yZiUlLCBsb3cgbGltaXQgPSAlbGx1IE1pQiwgY3JpdGljYWwgbGV2ZWwgPSAlbGx1IE1pQgAlczogV2FybmluZyBMZXZlbCAyICglbGx1IE1pQik6IG1vdW50IHBvaW50ID0gJyVzJywgYXZhaWxhYmxlID0gJWxsdSBNaUIsIHRvdGFsID0gJWxsdSBNaUIsIHVzZWQgPSAlLjJmJSUsIGxvdyBsaW1pdCA9ICVsbHUgTWlCLCBjcml0aWNhbCBsZXZlbCA9ICVsbHUgTWlCACVzOiBXYXJuaW5nIExldmVsIDMgKCVsbHUgTWlCKTogbW91bnQgcG9pbnQgPSAnJXMnLCBhdmFpbGFibGUgPSAlbGx1IE1pQiwgdG90YWwgPSAlbGx1IE1pQiwgdXNlZCA9ICUuMmYlJSwgbG93IGxpbWl0ID0gJWxsdSBNaUIsIGNyaXRpY2FsIGxldmVsID0gJWxsdSBNaUIASW5ub0RCOiBTaXplIG9mIHRhYmxlc3BhY2UgJXMgaXMgbW9yZSB0aGFuIHRoZSBtYXhpbXVtIHNpemUgYWxsb3dlZC4AVGhlIGdyb3VwX3JlcGxpY2F0aW9uX2FwcGxpZXIgY2hhbm5lbCBpcyBzdGlsbCBydW5uaW5nLCBtb3N0IGxpa2VseSBpdCBpcyB3YWl0aW5nIGZvciBhIGRhdGFiYXNlL3RhYmxlIGxvY2ssIHdoaWNoIGlzIHByZXZlbnRpbmcgdGhlIGNoYW5uZWwgZnJvbSBzdG9wcGluZy4gUGxlYXNlIGNoZWNrIGRhdGFiYXNlL3RhYmxlIGxvY2tzLCBpbmNsdWRpbmcgdGhlIG9uZXMgY3JlYXRlZCBieSBiYWNrdXAgdG9vbHMuAERldGVjdGVkIG1pc2NvbmZpZ3VyYXRpb246IHJlcGxpY2F0aW9uIGNoYW5uZWwgJyUuMTkycycgd2FzIGNvbmZpZ3VyZWQgd2l0aCBTT1VSQ0VfQ09OTkVDVElPTl9BVVRPX0ZBSUxPVkVSID0gMSwgYnV0IHRoZSBzZXJ2ZXIgd2FzIHN0YXJ0ZWQgd2l0aCBhIHZhbHVlIG90aGVyIHRoZW4gLS1ndGlkLW1vZGUgPSBPTi4gRWl0aGVyIHJlY29uZmlndXJlIHJlcGxpY2F0aW9uIHVzaW5nIENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gU09VUkNFX0NPTk5FQ1RJT05fQVVUT19GQUlMT1ZFUiA9IDAgRk9SIENIQU5ORUwgJyUuMTkycycsIG9yIGNoYW5nZSBHVElEX01PREUgdG8gdmFsdWUgT04sIGJlZm9yZSBzdGFydGluZyB0aGUgcmVwbGljYSByZWNlaXZlciB0aHJlYWQuAENvdWxkIG5vdCBhY3F1aXJlIHJlcXVpcmVkIGNvbXBvbmVudCBzZXJ2aWNlcy4AQXV0b21hdGljIHJlZ2lzdHJhdGlvbiBvZiBmdW5jdGlvbihzKSBmYWlsZWQuAEF1dG9tYXRpYyByZWdpc3RyYXRpb24gb2YgUGVyZm9ybWFuY2Ugc2NoZW1hIHRhYmxlKHMpIGZhaWxlZC4AJXMARmFpbGVkIHRvIGF1dG8tcHJ1bmUgZmlsZSAnJXMnLCBFcnJvciAoJWQpOiAlcwBGaWxlICclcycgYXV0by1wcnVuZWQAUmVjZWl2ZWQgYW4gZXJyb3Igd2hpbGUgcHJvY2Vzc2luZyBjb21wb25lbnRzIGZyb20gbWFuaWZlc3QgZmlsZTogJXMAUmVjZWl2ZWQgYW4gZXJyb3Igd2hpbGUgdW5sb2FkaW5nIGNvbXBvbmVudHMgcmVhZCBmcm9tIG1hbmlmZXN0IGZpbGU6ICVzAE1hbmlmZXN0IGZpbGUgJyVzJyBpcyBub3QgcmVhZC1vbmx5LiBGb3IgYmV0dGVyIHNlY3VyaXR5LCBwbGVhc2UgbWFrZSBzdXJlIHRoYXQgdGhlIGZpbGUgaXMgcmVhZC1vbmx5LgBObyBzdWl0YWJsZSAnJXMnIHNlcnZpY2UgaW1wbGVtZW50YXRpb24gZm91bmQgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC4AS2V5cmluZyBjb21wb25lbnQgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5LgBUaGUgY29tcG9uZW50IGlzIG5vdCBpbml0aWFsaXplZCBwcm9wZXJseS4gRXJyb3I6ICVzLiBNYWtlIHN1cmUgdGhhdCBjb25maWd1cmF0aW9uIGlzIHByb3BlciBhbmQgdXNlIEFMVEVSIElOU1RBTkNFIFJFTE9BRCBLRVlSSU5HIHRvIHJlaW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50LgBLZXlyaW5nIGNvbXBvbmVudCBlbmNvdW50ZXJlZCBhbiBleGNlcHRpb24gd2hpbGUgZXhlY3V0aW5nIDogJyVzJyBBUEkgb2Ygc2VydmljZTogJyVzJwBGYWlsZWQgdG8gYWxsb2NhdGVkIG1lbW9yeSBmb3IgJyVzJyB3aGlsZSBleGVjdXRpbmc6ICclcycgQVBJIG9mIHNlcnZpY2U6ICclcycARW1wdHkgb3IgMCB2YWx1ZXMgZm9yIEFFUyBlbmNyeXB0aW9uIG1vZGUgYW5kL29yIGJsb2NrIHNpemUgYXJlIG5vdCBwZXJtaXR0ZWQuAEEgdmFsaWQgZGF0YSBpZGVudGlmaWVyIGlzIHJlcXVpcmVkIGluIG9yZGVyIHRvIGZldGNoIHRoZSBrZXkgcmVxdWlyZWQgZm9yIHRoZSBBRVMgb3BlcmF0aW9uLgBLZXkgaWRlbnRpZmllZCBieSBEYXRhIElEOiAnJXMnIGFuZCBBdXRoIElEOiAnJXMnIGlzIG5vdCBvZiB0eXBlIEFFUy4ARW5jb3VudGVyZWQgZXJyb3I6ICclcycgd2hpbGUgZXhlY3V0aW5nICclcycgQVBJIG9mIGtleXJpbmdfYWVzIHNlcnZpY2UuIEtleSBkZXRhaWxzIGFyZSBEYXRhIElEOiAnJXMnIGFuZCBBdXRoIElEOiAnJXMnLgBDb3VsZCBub3QgZmluZCB0aGUgZGF0YSBjb3JyZXNwb25kaW5nIHRvIERhdGEgSUQ6ICclcycsIEF1dGggSUQ6ICclcycuAE1heGltdW0gcGVybWlzc2libGUgc2l6ZSBvZiBkYXRhIGlzICclenUnIGJpdHMARXJyb3Igd3JpdGluZyBkYXRhIGZvciBEYXRhIElEOiAnJXMnLCBBdXRoIElEOiAnJXMnLiBFaXRoZXIgZGF0YSBhbHJlYWR5IGV4aXN0cyB3aXRoIHNhbWUgaWRlbnRpZmllciBvciBrZXlyaW5nIGJhY2tlbmQgZW5jb3VudGVyZWQgYW4gZXJyb3IuAEVycm9yIHJlbW92aW5nIGRhdGEgZm9yIERhdGEgSUQ6ICclcycsIEF1dGggSUQ6ICclcycuIEVpdGhlciBkYXRhIGRvZXMgbm90IGV4aXN0cyB3aXRoIHNhbWUgaWRlbnRpZmllciBvciBrZXlyaW5nIGJhY2tlbmQgZW5jb3VudGVyZWQgYW4gZXJyb3IuAEVycm9yIGdlbmVyYXRpbmcgZGF0YSBmb3IgRGF0YSBJRDogJyVzJywgQXV0aCBJRDogJyVzJy4gRWl0aGVyIGRhdGEgYWxyZWFkeSBleGlzdHMgd2l0aCBzYW1lIGlkZW50aWZpZXIgb3Iga2V5cmluZyBiYWNrZW5kIGVuY291bnRlcmVkIGFuIGVycm9yLgBGYWlsZWQgdG8gZ2V0IG1ldGFkYXRhIGZyb20gY3VycmVudCBrZXlzIG1ldGFkYXRhIGl0ZXJhdG9yIHBvc2l0aW9uLgBLZXkgYW5kIHZhbHVlIGxlbmd0aCBwYXJhbWV0ZXJzIG11c3Qgbm90IGJlIG51bGwuAElubm9kYiBjb3VsZCBub3QgYWNxdWlyZSBzZXJ2aWNlIDogJXMAQ29sdW1uICVzIG9mIHR5cGUgR0VPTUVUUlkgaXMgaW4gb2xkICg1LjYpIGZvcm1hdCB3aGljaCBjb3VsZCBiZSBkZXByZWNhdGVkIGluIHRoZSBmdXR1cmUuIFRvIGNoYW5nZSB0aGUgZm9ybWF0IHRvIGxhdGVzdCwgcGxlYXNlIGNvbnNpZGVyIHJlYnVpbGRpbmcgdGhlIHRhYmxlIGFmdGVyIHRoZSB1cGdyYWRlLgAnd2FpdF90aW1lb3V0JyBwZXJpb2Qgb2YgJXMgc2Vjb25kcyB3YXMgZXhjZWVkZWQgZm9yICVzLiBUaGUgaWRsZSB0aW1lIHNpbmNlIGxhc3QgY29tbWFuZCB3YXMgdG9vIGxvbmcuAFRoZSBtZW1iZXIgYWN0aW9uICIlcyIgZm9yIGV2ZW50ICIlcyIgd2l0aCBwcmlvcml0eSAiJXUiIHdpbGwgYmUgcnVuLgBUaGUgbWVtYmVyIGFjdGlvbiAiJXMiIGZvciBldmVudCAiJXMiIHdpdGggcHJpb3JpdHkgIiV1IiBmYWlsZWQsIHRoaXMgZXJyb3IgaXMgaWdub3JlZCBhcyBpbnN0cnVjdGVkLiBQbGVhc2UgY2hlY2sgcHJldmlvdXMgbWVzc2FnZXMgaW4gdGhlIGVycm9yIGxvZyBmb3IgaGludHMgYWJvdXQgd2hhdCBjb3VsZCBoYXZlIGNhdXNlZCB0aGlzIGZhaWx1cmUuAFRoZSBtZW1iZXIgYWN0aW9uICIlcyIgZm9yIGV2ZW50ICIlcyIgd2l0aCBwcmlvcml0eSAiJXUiIGZhaWxlZC4gUGxlYXNlIGNoZWNrIHByZXZpb3VzIG1lc3NhZ2VzIGluIHRoZSBlcnJvciBsb2cgZm9yIGhpbnRzIGFib3V0IHdoYXQgY291bGQgaGF2ZSBjYXVzZWQgdGhpcyBmYWlsdXJlLgBVbmFibGUgdG8gcGFyc2UgdGhlIG1lbWJlciBhY3Rpb25zIGNvbmZpZ3VyYXRpb24gc2VudCBieSB0aGUgcHJpbWFyeS4AVW5hYmxlIHRvIHVwZGF0ZSB0aGUgbWVtYmVyIGFjdGlvbnMgY29uZmlndXJhdGlvbiB3aXRoIHRoZSBvbmUgc2VudCBieSB0aGUgcHJpbWFyeS4gUGxlYXNlIGNoZWNrIHRoZSB0YWJsZXMgJ215c3FsLnJlcGxpY2F0aW9uX2dyb3VwX21lbWJlcl9hY3Rpb25zJyBhbmQgJ215c3FsLnJlcGxpY2F0aW9uX2dyb3VwX2NvbmZpZ3VyYXRpb25fdmVyc2lvbicuAFVuYWJsZSB0byByZWFkIHRoZSBtZW1iZXIgYWN0aW9ucyBjb25maWd1cmF0aW9uIGR1cmluZyBncm91cCBtZW1iZXJzaGlwIGNoYW5nZS4gUGxlYXNlIGNoZWNrIHRoZSB0YWJsZXMgJ215c3FsLnJlcGxpY2F0aW9uX2dyb3VwX21lbWJlcl9hY3Rpb25zJyBhbmQgJ215c3FsLnJlcGxpY2F0aW9uX2dyb3VwX2NvbmZpZ3VyYXRpb25fdmVyc2lvbicuAFRoaXMgbWVtYmVyIGpvaW5lZCBhIGdyb3VwIG9uIHdoaWNoIGFsbCBtZW1iZXJzIGRvIG5vdCBzdXBwb3J0IG1lbWJlciBhY3Rpb25zLCBhcyBzdWNoIGl0IGRpZCByZXNldCBpdHMgbWVtYmVyIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGRlZmF1bHQgb25lLgBVbmFibGUgdG8gcmVzZXQgdG8gbWVtYmVyIGFjdGlvbnMgZGVmYXVsdCBjb25maWd1cmF0aW9uIG9uIG1lbWJlciBqb2luLiBQbGVhc2UgY2hlY2sgdGhlIHRhYmxlcyAnbXlzcWwucmVwbGljYXRpb25fZ3JvdXBfbWVtYmVyX2FjdGlvbnMnIGFuZCAnbXlzcWwucmVwbGljYXRpb25fZ3JvdXBfY29uZmlndXJhdGlvbl92ZXJzaW9uJy4AVW5hYmxlIHRvIHBhcnNlIHRoZSBtZW1iZXIgYWN0aW9ucyBjb25maWd1cmF0aW9uIHNlbnQgYnkgdGhlIGdyb3VwIG9uIG1lbWJlciBqb2luLgBVbmFibGUgdG8gdXBkYXRlIHRoZSBtZW1iZXIgYWN0aW9ucyBjb25maWd1cmF0aW9uIG9uIG1lbWJlciBqb2luLiBQbGVhc2UgY2hlY2sgdGhlIHRhYmxlcyAnbXlzcWwucmVwbGljYXRpb25fZ3JvdXBfbWVtYmVyX2FjdGlvbnMnIGFuZCAnbXlzcWwucmVwbGljYXRpb25fZ3JvdXBfY29uZmlndXJhdGlvbl92ZXJzaW9uJy4AVGhlIGdyb3VwIG1lbWJlcnMgd2VyZSB1bmFibGUgdG8gc2VuZCB0aGVpciBtZW1iZXIgYWN0aW9ucyBjb25maWd1cmF0aW9uLiBQbGVhc2UgY2hlY2sgdGhlIHRhYmxlcyAnbXlzcWwucmVwbGljYXRpb25fZ3JvdXBfbWVtYmVyX2FjdGlvbnMnIGFuZCAnbXlzcWwucmVwbGljYXRpb25fZ3JvdXBfY29uZmlndXJhdGlvbl92ZXJzaW9uJyBvbiBhbGwgbWVtYmVycy4ATWVtYmVyIGFjdGlvbiBlbmFibGVkOiAiJXMiLCB0eXBlOiAiJXMiLCBldmVudDogIiVzIiwgcHJpb3JpdHk6ICIldSIsIGVycm9yX2hhbmRsaW5nOiAiJXMiLgBNZW1iZXIgYWN0aW9uIGRpc2FibGVkOiAiJXMiLCB0eXBlOiAiJXMiLCBldmVudDogIiVzIiwgcHJpb3JpdHk6ICIldSIsIGVycm9yX2hhbmRsaW5nOiAiJXMiLgBNZW1iZXIgYWN0aW9ucyBjb25maWd1cmF0aW9uIHdhcyByZXNldC4AQWNjZXB0ZWQgYSBjb25uZWN0aW9uIHdpdGggZGVwcmVjYXRlZCBwcm90b2NvbCAnJXMnIGZvciBhY2NvdW50IGAlc2BAYCVzYCBmcm9tIGhvc3QgYCVzYC4gQ2xpZW50IHN1cHBsaWVkIHVzZXJuYW1lIGAlc2AAQSBkZXByZWNhdGVkIFRMUyB2ZXJzaW9uICVzIGlzIGVuYWJsZWQgZm9yIGNoYW5uZWwgJXMAVXNlciBwcm9maWxlICclcycgbG9hZGVkLiBGaXJld2FsbCB1c2VyIHByb2ZpbGVzIGFyZSBkZXByZWNhdGVkLCBjb25zaWRlciBtaWdyYXRpbmcgdG8gZ3JvdXAgcHJvZmlsZXMuAEludmFsaWQgaW5wdXQgdmFsdWUgZm9yIGdyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQgJyVzJy4gUGxlYXNlLCBwcm92aWRlIGEgdmFsaWQgVVVJRC4AVmFyaWFibGUgJ2dyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQnIGNhbm5vdCBiZSBzZXQgdG8gdGhlIHZhbHVlIG9mICclcycuIElmIHlvdSB3YW50IHRvIHVzZSB0aGUgVVVJRCBvZiAnZ3JvdXBfcmVwbGljYXRpb25fZ3JvdXBfbmFtZScgZm9yIHRoZSBVVUlEIG9mIFZpZXdfY2hhbmdlX2xvZ19ldmVudHMsIHBsZWFzZSBzZXQgJ2dyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQnIHRvIEFVVE9NQVRJQy4AZ3JvdXBfcmVwbGljYXRpb25fZ3JvdXBfbmFtZSAnJXMnLCB3aGljaCBpcyB0aGUgc2FtZSBhcyBncm91cF9yZXBsaWNhdGlvbl92aWV3X2NoYW5nZV91dWlkLiBQbGVhc2UgY2hhbmdlIGdyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQgdG8gQVVUT01BVElDAFRoZSBncm91cF9yZXBsaWNhdGlvbl92aWV3X2NoYW5nZV91dWlkICclcycgaXMgdGhlIHNhbWUgYXMgdGhlIFVVSUQgdmFsdWUgZm9yIEFTU0lHTl9HVElEU19UT19BTk9OWU1PVVNfVFJBTlNBQ1RJT05TIGluIGEgc2VydmVyIGNoYW5uZWwAZ3JvdXBfcmVwbGljYXRpb25fdmlld19jaGFuZ2VfdXVpZCBpcyBpbmNvbXBhdGlibGUgd2l0aCBncm91cC4gZ3JvdXBfcmVwbGljYXRpb25fdmlld19jaGFuZ2VfdXVpZCAlcyBtYXRjaGVzIHNlcnZlcl91dWlkICVzLgBUaGUgbWVtYmVyIGlzIGNvbmZpZ3VyZWQgd2l0aCBhIGdyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQgb3B0aW9uIHZhbHVlICclcycgZGlmZmVyZW50IGZyb20gdGhlIGdyb3VwICclcycuIFRoZSBtZW1iZXIgd2lsbCBub3cgZXhpdCB0aGUgZ3JvdXAuAFJlcGxpY2F0aW9uIGNoYW5uZWwgJyUuMTkycycgaXMgY29uZmlndXJlZCB3aXRoIEFTU0lHTl9HVElEU19UT19BTk9OWU1PVVNfVFJBTlNBQ1RJT05TPSclcycgd2hpY2ggaXMgZXF1YWwgdG8gZ3JvdXBfcmVwbGljYXRpb25fdmlld19jaGFuZ2VfdXVpZC4gVG8gZml4IHRoaXMgaXNzdWUsIGVpdGhlciBjaGFuZ2UgdGhlIGdyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQgb3IgdXNlIGEgZGlmZmVyZW50IHZhbHVlIGZvciBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUy4AVW5hYmxlIHRvIHBhcnNlIHRoZSBncm91cF9yZXBsaWNhdGlvbl92aWV3X2NoYW5nZV91dWlkLgBVbmFibGUgdG8gZ2VuZXJhdGUgc2lkbm8gZm9yIGdyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQuAFVuYWJsZSB0byBwYXJzZSB0aGUgZ3JvdXBfcmVwbGljYXRpb25fdmlld19jaGFuZ2VfdXVpZCBkdXJpbmcgdGhlIENlcnRpZmljYXRpb24gbW9kdWxlIGluaXRpYWxpemF0aW9uLgBFcnJvciB1cGRhdGluZyBncm91cF9ndGlkX2V4ZWN1dGVkIEdUSUQgc2V0IHdpdGggdmlldyBjaGFuZ2UgdXVpZCBkdXJpbmcgdGhlIENlcnRpZmljYXRpb24gbW9kdWxlIGluaXRpYWxpemF0aW9uLgBVbmFibGUgdG8gYWRkIHRoZSBncm91cF9yZXBsaWNhdGlvbl92aWV3X2NoYW5nZV91dWlkIHNpZG5vIGluIHRoZSBncm91cF9ndGlkX3NpZF9tYXAgZHVyaW5nIHRoZSBDZXJ0aWZpY2F0aW9uIG1vZHVsZSBpbml0aWFsaXphdGlvbi4AVW5hYmxlIHRvIGhhbmRsZSB0aGUgZG9ub3IncyB2aWV3IGNoYW5nZSB1dWlkIHRyYW5zYWN0aW9uIGluZm9ybWF0aW9uIHdoZW4gaW5pdGlhbGl6aW5nIHRoZSBjb25mbGljdCBkZXRlY3Rpb24gY29tcG9uZW50LiBQb3NzaWJsZSBvdXQgb2YgbWVtb3J5IGVycm9yLgBVbmFibGUgdG8gcmV0cmlldmUgZ3JvdXBfcmVwbGljYXRpb25fdmlld19jaGFuZ2VfdXVpZCBkdXJpbmcgc2VydmVyIGNoZWNrcyBvbiByZXBsaWNhdGlvbiBvcGVyYXRpb25zLgBCb3RoIGF1ZGl0X2xvZ19tYXhfc2l6ZSBhbmQgYXVkaXRfbG9nX3BydW5lX3NlY29uZHMgYXJlIHNldCB0byBub24temVyby4gYXVkaXRfbG9nX21heF9zaXplIHRha2VzIHByZWNlZGVuY2UgYW5kIGF1ZGl0X2xvZ19wcnVuZV9zZWNvbmRzIGlzIGlnbm9yZWQAYXVkaXRfbG9nX3JvdGF0ZV9vbl9zaXplIGlzIG5vdCBncmFudWxhciBlbm91Z2ggZm9yIHRoZSB2YWx1ZSBvZiBhdWRpdF9sb2dfbWF4X3NpemUgc3VwcGxpZWQuIFNob3VsZCBiZSBhdCBsZWFzdCAlZCB0aW1lcyBzbWFsbGVyLgBJbnZhbGlkIHRhYmxlIGRlZmluaXRpb24gZm9yICclcy4lcycuACVzAENhbm5vdCBpbnN0YWxsIHRoZSAlLjE5MnMgcGx1Z2luIHdoZW4gdGhlICUuMTkycyBwbHVnaW4gaXMgaW5zdGFsbGVkLgBUaGUgdmFyaWFibGUgJXMgaGFzIGJlZW4gcmVuYW1lZCB0byAlcywgYW5kIHRoZSBvbGQgbmFtZSBkZXByZWNhdGVkLiBPbmx5IHRoZSBvbGQgbmFtZSB3YXMgZm91bmQgaW4gdGhlIHBlcnNpc3RlZCB2YXJpYWJsZSBmaWxlLiBOZXh0IHRpbWUgdGhlIGZpbGUgaXMgc2F2ZWQsIGJvdGggbmFtZXMgd2lsbCBiZSBzdG9yZWQuIElzc3VlIGFueSBTRVQgUEVSU0lTVCBjb21tYW5kIHRvIHNhdmUgdGhlIGZpbGUsIGdldCByaWQgb2YgdGhpcyB3YXJuaW5nLCBhbmQgcHJlcGFyZSB0aGUgcGVyc2lzdGVkIGNvbmZpZ3VyYXRpb24gZm9yIHdoZW4gdGhlIHZhcmlhYmxlIGlzIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4AJWQgZXJyb3IgbG9nZ2luZyBjb21wb25lbnQocykgZmFpbGVkIHRvIGZsdXNoLiBGb3IgZmlsZS1iYXNlZCBsb2dzIHRoaXMgY2FuIGhhcHBlbiB3aGVuIHRoZSBwYXRoIG9yIHBlcm1pc3Npb25zIG9mIHRoZSBsb2ctZmlsZSBoYXZlIGNoYW5nZWQuIEZhaWx1cmUgdG8gZmx1c2ggZmlsZWQtYmFzZWQgbG9ncyBtYXkgYWZmZWN0IGxvZy1yb3RhdGlvbi4AVGFibGVzcGFjZSBrZXkgZm9yICVzIGhhcyBiZWVuIHJlLWVuY3J5cHRlZCB1c2luZyB0aGUgbGF0ZXN0IElubm9EQiBtYXN0ZXIga2V5LiBIb3dldmVyLCB3ZSByZWNvbW1lbmQgdGhhdCB5b3UgcmVidWlsZCB0aGUgdGFibGUgZm9yIGJldHRlciBzZWN1cml0eS4AVGFibGVzcGFjZSBrZXkgZm9yICVzIGhhcyBiZWVuIHJlLWVuY3J5cHRlZCB1c2luZyB0aGUgbGF0ZXN0IElubm9EQiBtYXN0ZXIga2V5LiBIb3dldmVyLCB3ZSByZWNvbW1lbmQgdGhhdCB5b3UgcmVlbmNyeXB0IHRoZSB0YWJsZXNwYWNlIGZvciBiZXR0ZXIgc2VjdXJpdHkuAFBhZ2UgQXJjaGl2ZXIncyBkb3VibGV3cml0ZSBidWZmZXIgaW5pdGlhbGlzYXRpb24gZmFpbGVkLiBQYWdlIHRyYWNraW5nIGlzIGF0IHJpc2sgb2YgbG9zaW5nIHRyYWNrZWQgaW5mb3JtYXRpb24uAFRoZXJlIGlzIG5vdCBlbm91Z2ggZnJlZSBzcGFjZSBpbiB0aGUgcmVkbyBsb2cgZHVyaW5nIHJlY292ZXJ5IHRvIHBlcmZvcm0gcGVuZGluZyBpYnVmIG1lcmdlcy4gUGxlYXNlIHJldHJ5IHN0YXJ0aW5nIE15U1FMIHdpdGggLS1pbm5vZGItZm9yY2UtcmVjb3Zlcnk9NC4AVGhlcmUgaXMgbm90IGVub3VnaCBmcmVlIHNwYWNlIGluIHRoZSByZWRvIGxvZyBkdXJpbmcgcmVjb3ZlcnksIHJlc3RvcmUgZnJvbSBiYWNrdXAgKG9yIHJldHJ5IHdpdGggLS1pbm5vZGItZm9yY2UtcmVjb3Zlcnk9NikuAGF1ZGl0X2xvZ19mb3JtYXRfdW5peF90aW1lc3RhbXAgaXMgYXBwbGljYWJsZSBvbmx5IHdoZW4gYXVkaXRfbG9nX2Zvcm1hdCA9IEpTT04uAFJldHJ5IHRoZSBzdGF0ZW1lbnQgdXNpbmcgdGhlIHByaW1hcnkgc3RvcmFnZSBlbmdpbmUuAFBhcmFsbGVsIGluaXRpYWxpemF0aW9uIG9mIHJzZWcgY29tcGxldGUAVGltZSB0YWtlbiB0byBpbml0aWFsaXplIHJzZWcgdXNpbmcgJXUgdGhyZWFkOiAldSBtcy4ARERMIGZhaWxlZCB0byBjcmVhdGUgYSB0aHJlYWQgdG8gbG9hZCBhbiBpbmRleCwgZmFsbCBiYWNrIHRvIHNpbmdsZSB0aHJlYWQARGVidWdfY2hlY2tfbm9fbGF0Y2hpbmcgZmFpbGVkLCBzbG90LT50eXBlPSVkAEZhaWxlZCB0byBlc3RhYmxpc2ggTXlTUUwgY2xpZW50IGNvbm5lY3Rpb24gaW4gR3JvdXAgUmVwbGljYXRpb24uIEVycm9yIGVzdGFibGlzaGluZyBjb25uZWN0aW9uLiBQbGVhc2UgcmVmZXIgdG8gdGhlIG1hbnVhbCB0byBtYWtlIHN1cmUgdGhhdCB5b3UgY29uZmlndXJlZCBHcm91cCBSZXBsaWNhdGlvbiBwcm9wZXJseSB0byB3b3JrIHdpdGggTXlTUUwgUHJvdG9jb2wgY29ubmVjdGlvbnMuAEZhaWxlZCB0byBlc3RhYmxpc2ggTXlTUUwgY2xpZW50IGNvbm5lY3Rpb24gaW4gR3JvdXAgUmVwbGljYXRpb24uIEVycm9yIHNlbmRpbmcgY29ubmVjdGlvbiBkZWxlZ2F0aW9uIGNvbW1hbmQuIFBsZWFzZSByZWZlciB0byB0aGUgbWFudWFsIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdSBjb25maWd1cmVkIEdyb3VwIFJlcGxpY2F0aW9uIHByb3Blcmx5IHRvIHdvcmsgd2l0aCBNeVNRTCBQcm90b2NvbCBjb25uZWN0aW9ucy4AVW5hYmxlIHRvIHJlYWQgdGhlIHJlcGxpY2F0aW9uIGZhaWxvdmVyIGNoYW5uZWxzIGNvbmZpZ3VyYXRpb24gZHVyaW5nIGdyb3VwIG1lbWJlcnNoaXAgY2hhbmdlLiBQbGVhc2UgY2hlY2sgdGhlIHRhYmxlcyAnbXlzcWwucmVwbGljYXRpb25fYXN5bmNocm9ub3VzX2Nvbm5lY3Rpb25fZmFpbG92ZXInLCAnbXlzcWwucmVwbGljYXRpb25fYXN5bmNocm9ub3VzX2Nvbm5lY3Rpb25fZmFpbG92ZXJfbWFuYWdlZCcgYW5kICdteXNxbC5yZXBsaWNhdGlvbl9ncm91cF9jb25maWd1cmF0aW9uX3ZlcnNpb24nLgBUaGlzIG1lbWJlciBqb2luZWQgYSBncm91cCBvbiB3aGljaCBhbGwgbWVtYmVycyBkbyBub3Qgc3VwcG9ydCByZXBsaWNhdGlvbiBmYWlsb3ZlciBjaGFubmVscyBpbnRlZ3JhdGlvbiBvbiBHcm91cCBSZXBsaWNhdGlvbiwgYXMgc3VjaCBpdCBkaWQgcmVzZXQgaXRzIHJlcGxpY2F0aW9uIGZhaWxvdmVyIGNoYW5uZWxzIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGRlZmF1bHQgb25lLgBVbmFibGUgdG8gcmVzZXQgdG8gcmVwbGljYXRpb24gZmFpbG92ZXIgY2hhbm5lbHMgZGVmYXVsdCBjb25maWd1cmF0aW9uIG9uIG1lbWJlciBqb2luLiBQbGVhc2UgY2hlY2sgdGhlIHRhYmxlcyAnbXlzcWwucmVwbGljYXRpb25fYXN5bmNocm9ub3VzX2Nvbm5lY3Rpb25fZmFpbG92ZXInLCAnbXlzcWwucmVwbGljYXRpb25fYXN5bmNocm9ub3VzX2Nvbm5lY3Rpb25fZmFpbG92ZXJfbWFuYWdlZCcgYW5kICdteXNxbC5yZXBsaWNhdGlvbl9ncm91cF9jb25maWd1cmF0aW9uX3ZlcnNpb24nLgBVbmFibGUgdG8gcGFyc2UgdGhlIHJlcGxpY2F0aW9uIGZhaWxvdmVyIGNoYW5uZWxzIGNvbmZpZ3VyYXRpb24gc2VudCBieSB0aGUgZ3JvdXAgb24gbWVtYmVyIGpvaW4uAFVuYWJsZSB0byBzZXQgU09VUkNFX0NPTk5FQ1RJT05fQVVUT19GQUlMT1ZFUiBvbiBhIG5vbi1leGlzdGVudCBvciBtaXNjb25maWd1cmVkIHJlcGxpY2F0aW9uIGNoYW5uZWwgJyVzJywgcGxlYXNlIGNyZWF0ZSB0aGUgY2hhbm5lbCBhbmQgcmVqb2luIHRoZSBzZXJ2ZXIgdG8gdGhlIGdyb3VwLgBVbmFibGUgdG8gcmVnaXN0ZXIgdGhlIGxpc3RlbmVyICdyZXBsaWNhdGlvbl9hc3luY2hyb25vdXNfY29ubmVjdGlvbl9mYWlsb3Zlcl9jb25maWd1cmF0aW9uJyB0byB0aGUgc2VydmljZSAnZ3JvdXBfcmVwbGljYXRpb25fbWVzc2FnZV9zZXJ2aWNlX3JlY3YnLgBUaGlzIHNlcnZlciBpcyBub3QgYWJsZSB0byByZWFjaCBhIG1ham9yaXR5IG9mIG1lbWJlcnMgaW4gdGhlIGdyb3VwLiBUaGlzIHNlcnZlciB3aWxsIHNraXAgdGhlIHJlcGxpY2F0aW9uIGZhaWxvdmVyIGNoYW5uZWxzIGhhbmRsaW5nIHVudGlsIHRoaXMgc2VydmVyIGlzIGJhY2sgdG8gdGhlIGdyb3VwIG1ham9yaXR5LgBUaGlzIHNlcnZlciBpcyBiYWNrIHRvIHRoZSBncm91cCBtYWpvcml0eS4gUmVwbGljYXRpb24gZmFpbG92ZXIgY2hhbm5lbHMgaGFuZGxpbmcgaXMgcmVzdW1lZC4ARXJyb3IgaW5jcmVtZW50aW5nIG1lbWJlciBhY3Rpb24gY29uZmlndXJhdGlvbiB2ZXJzaW9uIGZvciAlcy4lcyB0YWJsZS4AVGhlICclcycgdGhyZWFkIG9mIGNoYW5uZWwgJyVzJyB3aWxsIGVycm9yIG91dCBhcyB0aGlzIHNlcnZlciBpcyBhIGdyb3VwIHNlY29uZGFyeS4AQ2xvbmUgRERMIE5vdGlmaWNhdGlvbjogJXMAQ2xvbmUgRERMIEFQUExZOiAlcwBDbG9uZSBEREwgSW52YWxpZGF0ZSA6ICVzAEVuY3J5cHRpb24ga2V5IGlzIGxvYWRlZCBmb3IgdW5kbyB0YWJsZXNwYWNlICclcycuAElnbm9yaW5nIGVuY3J5cHRpb24gSU5GTyBzaXplIGluIHJlZG8gbG9nOiAlenUsIGV4cGVjdGVkOiAlenUAT3B0aW9uIC0tYXV0aGVudGljYXRpb24tcG9saWN5IGlzIHNldCB0byBhbiBpbnZhbGlkIHZhbHVlLiBQbGVhc2UgY2hlY2sgaWYgdGhlIHNwZWNpZmllZCBhdXRoZW50aWNhdGlvbiBwbHVnaW5zIGFyZSB2YWxpZC4AU2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBmYWlsZWQgZHVyaW5nIHJlZ2lzdHJhdGlvbi4AQnVmZmVyIHRvbyBzbWFsbCB0byBob2xkIHJlZ2lzdHJhdGlvbiBjaGFsbGVuZ2UgcmVzcG9uc2UuAEZJRE8gZGV2aWNlIGF1dGhlbnRpY2F0b3IgZGF0YSBjb3JydXB0LgBGSURPIGRldmljZSBzaWduYXR1cmUgY29ycnVwdC4AU2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBmYWlsZWQgZHVyaW5nIGF1dGhlbnRpY2F0aW9uLgBPdXQgb2YgbWVtb3J5LgBDYW4ndCBpbml0aWFsaXplIGxvZ2dpbmcgc2VydmljZS4AUmVwbGljYXRpb24gY2hhbm5lbCAnJS4xOTJzJyBpcyBjb25maWd1cmVkIHdpdGggR1RJRF9PTkxZPTEsIHdoaWNoIGlzIGludmFsaWQgd2hlbiBHVElEX01PREUgPD4gT04uIElmIHlvdSBpbnRlbmQgdG8gZGlzYWJsZSBHVElEcyBpbiB0aGUgcmVwbGljYXRpb24gdG9wb2xvZ3ksIGNoYW5nZSBHVElEX09OTFkgdG8gMC4AVGhlIHJlcGxpY2F0aW9uIHBvc2l0aW9ucyByZWxhdGl2ZSB0byB0aGUgc291cmNlIG1heSBiZSBvdXQtb2YtZGF0ZSBvbiBjaGFubmVsICclLjE5MnMnLCBkdWUgdG8gdGhlIHVzZSBvZiBHVElEX09OTFk9MS4gVGhlIG91dC1vZi1kYXRlIHBvc2l0aW9ucyBjYW4gc3RpbGwgYmUgdXNlZCBpbiBzb21lIGNhc2VzIHNvLCBpbiBvcmRlciB0byB1cGRhdGUgdGhlbSwgd2Ugc3VnZ2VzdCB0aGF0IHlvdSBzdGFydCB0aGUgcmVwbGljYXRpb24gdG8gcmVjZWl2ZSBhbmQgYXBwbHkgYXQgbGVhc3Qgb25lIHRyYW5zYWN0aW9uLCB3aGljaCB3aWxsIHNldCB0aGUgcG9zaXRpb25zIHRvIHZhbGlkIHZhbHVlcy4AQ291bGQgbm90IG9wZW4gcmVsYXkgbG9nOiAlcwBBdXRoZW50aWNhdGlvbiBwbHVnaW4gbm90IGluaXRpYWxpemVkLgBDYW5ub3QgdXNlIHRoZSBnZW5lcmF0ZWQgcHJpdmF0ZSBrZXkgZmlsZS4AVW5hdmFpbGFibGUgcHVibGljIGtleSB3aXRoIGZpbmdlcnByaW50ICVzIGZvciB1c2VyICVzIGluIHRlbmFuY3kgJXMgLgBDYW5ub3Qgb2J0YWluIHRoZSBPQ0kgY29uZmlndXJhdGlvbiBmcm9tIHRoZSBJTURTIHNlcnZpY2UuAENhbm5vdCBpbml0aWFsaXplIHRoZSBJQU0gc2VydmljZS4ASW52YWxpZCBhdXRoZW50aWNhdGlvbiBzdHJpbmcgZGV0YWlscyBmb3IgdXNlcjogYCVzYEBgJXNgLgBOb25lIG9mIHRoZSBncm91cHMgcmV0dXJuZWQgYnkgSUFNIG1hdGNoZXMgYW55IG9mIHRoZSBlbnRyaWVzIGZyb20gYXV0aGVudGljYXRpb24gc3RyaW5nLgBVc2VyIGlzIG5vdCBwYXJ0IG9mIGFueSBncm91cHMuIEhvd2V2ZXIsIGFjY291bnQgaXMgY29uZmlndXJlZCB0byB1c2UgZ3JvdXAgbWFwcGluZy4AUmVjZWl2ZWQgT3BlblNTTCBlcnJvcjogJXMgd2hpbGUgYXV0aGVudGljYXRpbmcgdXNlciAlcyB3aXRoIGZpbmdlcnByaW50ICVzIGluIHRlbmFuY3kgJXMgLgAlczogV2FybmluZyBMZXZlbCAxICglbGx1IE1pQik6IGF2YWlsYWJsZT0lbGx1IE1pQiwgdG90YWw9JWxsdSBNaUIsIHVzZWQ9JS4yZiUlLCBteXNxbGQ9JWxsdSBNaUIAJXM6IFdhcm5pbmcgTGV2ZWwgMiAoJWxsdSBNaUIpOiBhdmFpbGFibGU9JWxsdSBNaUIsIHRvdGFsPSVsbHUgTWlCLCB1c2VkPSUuMmYlJSwgbXlzcWxkPSVsbHUgTWlCACVzOiBXYXJuaW5nIExldmVsIDMgKCVsbHUgTWlCKTogYXZhaWxhYmxlPSVsbHUgTWlCLCB0b3RhbD0lbGx1IE1pQiwgdXNlZD0lLjJmJSUsIG15c3FsZD0lbGx1IE1pQgBUaGUgbWVtYmVyICVzOiV1LCB3aXRoIFVVSUQ6ICVzLCB3YXMgc2V0IGFzIHRoZSBzaW5nbGUgcHJlZmVycmVkIGNvbnNlbnN1cyBsZWFkZXIuAFNvbWV0aGluZyB3ZW50IHdyb25nIHRyeWluZyB0byBzZXQgdGhlIG1lbWJlciAlczoldSwgd2l0aCBVVUlEOiAlcywgYXMgdGhlIHNpbmdsZSBwcmVmZXJyZWQgY29uc2Vuc3VzIGxlYWRlci4gUGxlYXNlIHF1ZXJ5IHRoZSBwZXJmb3JtYW5jZV9zY2hlbWEucmVwbGljYXRpb25fZ3JvdXBfY29tbXVuaWNhdGlvbl9pbmZvcm1hdGlvbiB0YWJsZSB0byBzZWUgd2hldGhlciB0aGUgb3BlcmF0aW9uIHRvb2sgZWZmZWN0LCBpLmUuIHdoZXRoZXIgdGhlIHByZWZlcnJlZCBjb25zZW5zdXMgbGVhZGVyIG1hdGNoZXMgdGhlIGN1cnJlbnQgcHJpbWFyeS4gSWYgbm90LCBjb25zaWRlciBlbGVjdGluZyBhIGRpZmZlcmVudCBwcmltYXJ5IHRvIHRyeSBhZ2Fpbi4gUGxlYXNlIGNoZWNrIHRoZSBlcnJvciBsb2cgYW5kIEdDU19ERUJVR19UUkFDRSBmb3IgbW9yZSBpbmZvcm1hdGlvbiB0aGF0IG1heSBoZWxwIHVuZGVyc3RhbmRpbmcgd2hhdCB3ZW50IHdyb25nLgBBbGwgbWVtYmVycyB3ZXJlIHNldCBhcyBjb25zZW5zdXMgbGVhZGVycy4AU29tZXRoaW5nIHdlbnQgd3JvbmcgdHJ5aW5nIHRvIHNldCBhbGwgbWVtYmVycyBhcyBjb25zZW5zdXMgbGVhZGVycy4gUGxlYXNlIHF1ZXJ5IHRoZSBwZXJmb3JtYW5jZV9zY2hlbWEucmVwbGljYXRpb25fZ3JvdXBfY29tbXVuaWNhdGlvbl9pbmZvcm1hdGlvbiB0YWJsZSB0byBzZWUgd2hldGhlciB0aGUgb3BlcmF0aW9uIHRvb2sgZWZmZWN0LCBpLmUuIHdoZXRoZXIgdGhlIGNvbnNlbnN1cyBsZWFkZXJzIG1hdGNoIGFsbCBtZW1iZXJzLiBJZiBub3QsIGNvbnNpZGVyIHJlc2V0dGluZyB0aGUgZ3JvdXAgY29tbXVuaWNhdGlvbiBwcm90b2NvbCB0byBhIHZlcnNpb24gPCA4LjAuMjIsIG9yIHN3aXRjaCB0byBzaW5nbGUtcHJpbWFyeSBtb2RlIGFuZCBiYWNrIGFnYWluIHRvIG11bHRpLXByaW1hcnkgbW9kZSwgdG8gdHJ5IGFnYWluLiBQbGVhc2UgY2hlY2sgdGhlIGVycm9yIGxvZyBhbmQgR0NTX0RFQlVHX1RSQUNFIGZvciBtb3JlIGluZm9ybWF0aW9uIHRoYXQgbWF5IGhlbHAgdW5kZXJzdGFuZGluZyB3aGF0IHdlbnQgd3JvbmcuAFRoaXMgbWVtYmVyIGlzIGNvbmZpZ3VyZWQgd2l0aCBhIGdyb3VwX3JlcGxpY2F0aW9uX3BheG9zX3NpbmdsZV9sZWFkZXIgb3B0aW9uIHZhbHVlIG9mICclZCcgdGhhdCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgZ3JvdXAncyB2YWx1ZSAoJyVkJykuIFRoaXMgbWVtYmVyIHdpbGwgbm93IGV4aXQgdGhlIGdyb3VwLgBJbnZhbGlkIGFuZC9vciBjb3JydXB0ZWQgbXVsdGkgZmFjdG9yIGF1dGhlbnRpY2F0aW9uIG1ldGhvZHMgaW4gVXNlcl9hdHRyaWJ1dGVzIGNvbHVtbiBpbiBteXNxbC51c2VyIHRhYmxlLiAiJXMiLgBQbHVnaW4gJyUtLjE5MnMnIGlzIG5vdCBsb2FkZWQ7IElnbm9yaW5nIHVzZXIAJXM6IFRoZSBjaGFyYWN0ZXIgc2V0ICVzIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBQbGVhc2UgY29uc2lkZXIgdXNpbmcgJXMgaW5zdGVhZC4AJXM6ICclLS42NHMnIGlzIGEgY29sbGF0aW9uIG9mIHRoZSBkZXByZWNhdGVkIGNoYXJhY3RlciBzZXQgJXMuIFBsZWFzZSBjb25zaWRlciB1c2luZyAlcyB3aXRoIGFuIGFwcHJvcHJpYXRlIGNvbGxhdGlvbiBpbnN0ZWFkLgBNaXNzaW5nIGRhdGEgZGlyZWN0b3J5IGZvciBJQ1UgcmVndWxhciBleHByZXNzaW9uczogJXMuAE1vcmUgdGhhbiA5MCUlIG9mIGZpbGVzIG9wZW5lZCBvdXQgb2YgdGhlIGlubm9kYl9vcGVuX2ZpbGVzIGxpbWl0IGFyZSBmaWxlcyB0aGF0IGFyZSBub3QgZWFzeSB0byBjbG9zZS4gVGhlIHBlcmZvcm1hbmNlIG9mIHN5c3RlbSBtYXkgZGVncmFkZS4gQ29uc2lkZXIgaW5jcmVhc2luZyB2YWx1ZSBvZiB0aGUgaW5ub2RiX29wZW5fZmlsZXMgc3lzdGVtIHZhcmlhYmxlLiBUaGVyZSBhcmUgJXp1IHN1Y2ggZmlsZXMgb3BlbmVkIG91dCBvZiB0aGUgdG90YWwgbGltaXQgZm9yIGFsbCBmaWxlcyBvcGVuZWQgb2YgJXp1LgBUcnlpbmcgdG8gb3BlbiBhIGZpbGUgZm9yICVsbGQgc2Vjb25kcy4gQ29uZmlndXJhdGlvbiBvbmx5IGFsbG93cyBmb3IgJXp1IG9wZW4gZmlsZXMuIENvbnNpZGVyIHNldHRpbmcgaW5ub2Jhc2Vfb3Blbl9maWxlcyBoaWdoZXIuAENvbm5lY3Rpb24gY2xvc2VkLiBHbG9iYWwgY29ubmVjdGlvbiBtZW1vcnkgbGltaXQgJWxsdSBieXRlcyBleGNlZWRlZC4gQ29uc3VtZWQgJWxsdSBieXRlcy4AQ29ubmVjdGlvbiBjbG9zZWQuIENvbm5lY3Rpb24gbWVtb3J5IGxpbWl0ICVsbHUgYnl0ZXMgZXhjZWVkZWQuIENvbnN1bWVkICVsbHUgYnl0ZXMuAEF1ZGl0IExvZyBpcyBkaXNhYmxlZC4gRW5hYmxlIGl0IHdpdGggYXVkaXRfbG9nX2Rpc2FibGUgPSBmYWxzZS4AT3B0aW9uIC0tdGxzLXZlcnNpb24gb3IgLS1hZG1pbi10bHMtdmVyc2lvbiBpcyBzZXQgdG8gYW4gaW52YWxpZCB2YWx1ZSAlcy4AUmVsYXkgbG9nIHJlY292ZXJ5IG9uIGNoYW5uZWwgd2l0aCBHVElEX09OTFk9MS4gVGhlIGNoYW5uZWwgd2lsbCBzd2l0Y2ggdG8gYSBuZXcgcmVsYXkgbG9nIGFuZCB0aGUgR1RJRCBwcm90b2NvbCB3aWxsIGJlIHVzZWQgdG8gcmVwbGljYXRlIHVuYXBwbGllZCB0cmFuc2FjdGlvbnMuAE51bWJlciBvZiBTVEFOREJZX1NFUlZFUiB2YWx1ZXMgZXhjZWVkZWQgbWF4aW11bSBsaW1pdCBvZiA2NC4AU291cmNlIGtleXJpbmcgZG9lcyBub3QgaGF2ZSBhbnkga2V5cyB0byBtaWdyYXRlLgBDYW5ub3QgcGVyc2lzdCBTRU5TSVRJVkUgc3lzdGVtIHZhcmlhYmxlcyBiZWNhdXNlIGtleXJpbmcgY29tcG9uZW50IHN1cHBvcnQgaXMgdW5hdmFpbGFibGUgYW5kIHBlcnNpc3Rfc2Vuc2l0aXZlX3ZhcmlhYmxlc19pbl9wbGFpbnRleHQgaXMgc2V0IHRvIE9GRi4gUGxlYXNlIG1ha2Ugc3VyZSB0aGF0IGtleXJpbmcgc2VydmljZXMgYXJlIGFjdGl2ZSBhbmQgcmVxdWlyZWQga2V5cyBhcmUgYXZhaWxhYmxlLgBDYW5ub3QgaW50ZXJwcmV0IHBlcnNpc3RlZCBTRU5TSVRJVkUgc3lzdGVtIHZhcmlhYmxlcy4gUGxlYXNlIG1ha2Ugc3VyZSB0aGF0IGtleXJpbmcgc2VydmljZXMgYXJlIGFjdGl2ZSBhbmQgcmVxdWlyZWQga2V5cyBhcmUgYXZhaWxhYmxlLgBLZXlyaW5nIGhhcyB0byBiZSBsb2FkZWQgdGhyb3VnaCBtYW5pZmVzdCBmaWxlIGluIG9yZGVyIHRvIHN1cHBvcnQgc2VjdXJlIHN0b3JhZ2UgZm9yIHBlcnNpc3RlZCB2YXJpYWJsZXMAQ291bGQgbm90IGZpbmQgbWFzdGVyIGtleSAlcyBpbiBrZXlyaW5nAEEgbmV3IG1hc3RlciBrZXkgJXMgY291bGQgbm90IGJlIGdlbmVyYXRlZABGYWlsZWQgdG8gZW5jcnlwdCAlcyB1c2luZyAlcwBGYWlsZWQgdG8gZGVjcnlwdCAlcyB1c2luZyAlcwBQZXJzaXN0aW5nIFNFTlNJVElWRSB2YXJpYWJsZXMgaW4gZW5jcnlwdGVkIGZvcm0gcmVxdWlyZXMga2V5cmluZyBjb21wb25lbnQgbG9hZGVkIHRocm91Z2ggbWFuaWZlc3QgZmlsZS4AVXNpbmcgamVtYWxsb2MuZGxsIGZvciBteV9tYWxsb2MgYW5kIHV0OjptYWxsb2MgZXRjLgAlcy4AJXMuACVzLgBQYXNzd29yZCBmb3IgdGhlIGFjY291bnQgJyUtLjQ4cydAJyUtLjY0cycgaGFzIGV4cGlyZWQuIFRvIGxvZyBpbiwgZWl0aGVyIGNoYW5nZSBpdCB1c2luZyBhIGNsaWVudCB0aGF0IHN1cHBvcnRzIGV4cGlyZWQgcGFzc3dvcmRzIG9yIHNlbmQgdGhlIGNoYW5nZSByZXF1ZXN0IHRvIGFuIGFkbWluaXN0cmF0b3IuAFRocmVhZCBwb29sIHBsdWdpbiBzdGFydGVkIHN1Y2Nlc3NmdWxseSB3aXRoIHBhcmFtZXRlcnM6ICVzAHRocmVhZF9wb29sX2RlZGljYXRlZF9saXN0ZW5lcnMgY2Fubm90IGJlIHNldCB1bmxlc3MgdGhyZWFkX3Bvb2xfbWF4X3RyYW5zYWN0aW9uc19saW1pdCA+IDAAJXMAJXMAVGhlIHJlZG8gbG9nIGZpbGUgJXMgaXMgZW1wdHksIHdoaWNoIGluZGljYXRlcyBpdCB3YXMgbm90IGdlbmVyYXRlZCBieSBJbm5vREIgb3IgYmVjb21lIGNvcnJ1cHRlZC4gUGxlYXNlIHJlc3RvcmUgdGhlIGNvcnJlY3QgZmlsZSBvciB0cnkgcmVjb3ZlcmluZyB3aXRob3V0IHRoZSByZWRvIGZpbGVzLCBpbiByZWFkLW9ubHkgbW9kZSwgYnkgcHJvdmlkaW5nIC0taW5ub2RiLWZvcmNlLXJlY292ZXJ5PTYuAFRoZSByZWRvIGxvZyBmaWxlICVzIGlzIHNtYWxsZXIgdGhhbiAlbGx1IGJ5dGVzLCB3aGljaCBpbmRpY2F0ZXMgaXQgd2FzIG5vdCBnZW5lcmF0ZWQgYnkgSW5ub0RCIG9yIGJlY29tZSBjb3JydXB0ZWQuIFBsZWFzZSByZXN0b3JlIHRoZSBjb3JyZWN0IGZpbGUuAFRoZSByZWRvIGxvZyBmaWxlICVzIGlzIGxhcmdlciB0aGFuICVsbHUgYnl0ZXMsIHdoaWNoIGluZGljYXRlcyBpdCB3YXMgbm90IGdlbmVyYXRlZCBieSBJbm5vREIgb3IgYmVjb21lIGNvcnJ1cHRlZC4gUGxlYXNlIHJlc3RvcmUgdGhlIGNvcnJlY3QgZmlsZS4ARmFpbGVkIHRvIHJlYWQgaGVhZGVyIG9mIHRoZSByZWRvIGxvZyBmaWxlICVzAC0taW5pdGlhbGl6ZSBzcGVjaWZpZWQgYnV0IHRoZSByZWRvIGxvZyBkaXJlY3RvcnkgJXMgaGFzIHJlZG8gbG9nIGZpbGVzIGluc2lkZS4gQWJvcnRpbmcuAEZhaWxlZCB0byBsaXN0IHJlZG8gbG9nIGZpbGVzIGluIHRoZSByZWRvIGxvZyBkaXJlY3RvcnkgJXMATmVpdGhlciBmb3VuZCAlcyBzdWJkaXJlY3RvcnksIG5vciAlcyogZmlsZXMgaW4gJXMAQ2Fubm90IHJlc3RvcmUgY2xvbmVkIGRhdGEgZGlyZWN0b3J5LCBJbm5vREIgcnVubmluZyBpbiByZWFkLW9ubHkgbW9kZSEARXJyb3IgJWQgZW5jb3VudGVyZWQgd2hlbiB3cml0aW5nIHRvIHRoZSByZWRvIGxvZyBmaWxlOiAlcy4AUmVkbyBsb2cgd3JpdGVyIGlzIHdhaXRpbmcgZm9yIGEgbmV3IHJlZG8gbG9nIGZpbGUuIENvbnNpZGVyIGluY3JlYXNpbmcgaW5ub2RiX3JlZG9fbG9nX2NhcGFjaXR5LgBGb3VuZCBjaGVja3BvaW50IExTTiAlbGx1IGluIGEgcmVkbyBsb2cgZmlsZSAlcywgYnV0IHRoZSBmaWxlIHJlcHJlc2VudHMgcmFuZ2Ugb2YgTFNOIHZhbHVlcyBbJWxsdSwgJWxsdSksIHNvIHRoZSBmaWxlIGlzIGNvcnJ1cHRlZC4AUmVkbyBsb2cgaXMgcnVubmluZyBvdXQgb2YgZnJlZSBzcGFjZSwgcGF1c2luZyB1c2VyIHRocmVhZHMuLi4gQ29uc2lkZXIgaW5jcmVhc2luZyBpbm5vZGJfcmVkb19sb2dfY2FwYWNpdHkuAFJlZG8gbG9nIHJlY2xhaW1lZCBzb21lIGZyZWUgc3BhY2UsIHJlc3VtaW5nIHVzZXIgdGhyZWFkcy4ASWdub3JlZCBkZXByZWNhdGVkIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIGlubm9kYl9sb2dfZmlsZV9zaXplLiBVc2VkIGlubm9kYl9yZWRvX2xvZ19jYXBhY2l0eSBpbnN0ZWFkLgBJZ25vcmVkIGRlcHJlY2F0ZWQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaW5ub2RiX2xvZ19maWxlc19pbl9ncm91cC4gVXNlZCBpbm5vZGJfcmVkb19sb2dfY2FwYWNpdHkgaW5zdGVhZC4AQ2Fubm90IHVwZ3JhZGUgZm9ybWF0ICh2JWx1KSBvZiByZWRvIGxvZyBmaWxlcyB3aGVuIGlubm9kYi1mb3JjZS1yZWNvdmVyeSA+IDAuAENhbm5vdCB1cGdyYWRlIGZvcm1hdCAodiVsdSkgb2YgcmVkbyBsb2cgZmlsZXMgaW4gcmVhZC1vbmx5IG1vZGUgKC0taW5ub2RiLXJlYWQtb25seSkuAENhbm5vdCB1cGdyYWRlIGZvcm1hdCAodiVsdSkgb2YgcmVkbyBsb2cgZmlsZXMgb24gY2xvbmVkIGRhdGEgZGlyZWN0b3J5LiBQbGVhc2UgdXNlIGFuIG9sZGVyIHZlcnNpb24gb2YgTXlTUUwgLSByZWNvdmVyIGFuZCBzaHV0ZG93biAod2l0aCBpbm5vZGItZmFzdC1zaHV0ZG93biA8IDIpLgBDYW5ub3QgdXBncmFkZSBmb3JtYXQgKHYlbHUpIG9mIHJlZG8gbG9nIGZpbGVzIGJlY2F1c2UgdGhleSBhcmUgbWFya2VkIGFzIHVuaW5pdGlhbGl6ZWQuIFBsZWFzZSB1c2UgYW4gb2xkZXIgdmVyc2lvbiBvZiBNeVNRTCAtIHJlY292ZXIgYW5kIHNodXRkb3duICh3aXRoIGlubm9kYi1mYXN0LXNodXRkb3duIDwgMikuAENhbm5vdCB1cGdyYWRlIGZvcm1hdCAodiVsdSkgb2YgcmVkbyBsb2cgZmlsZXMgd2hlbiB0aGUgcmVkbyBsb2cgaXMgY29ycnVwdGVkLiBQbGVhc2UgdXNlIGFuIG9sZGVyIHZlcnNpb24gb2YgTXlTUUwgLSByZWNvdmVyIGFuZCBzaHV0ZG93biAod2l0aCBpbm5vZGItZmFzdC1zaHV0ZG93biA8IDIpLgBDYW5ub3QgdXBncmFkZSBmb3JtYXQgKHYlbHUpIG9mIHJlZG8gbG9nIGZpbGVzIHdoZW4gdGhlcmUgaXMgbm9uLXBlcnNpc3RlZCBERCBtZXRhZGF0YSBpbiByZWRvLiBQbGVhc2UgdXNlIGFuIG9sZGVyIHZlcnNpb24gb2YgTXlTUUwgLSByZWNvdmVyIGFuZCBzaHV0ZG93biAod2l0aCBpbm5vZGItZmFzdC1zaHV0ZG93biA8IDIpLgBDYW5ub3QgdXBncmFkZSBmb3JtYXQgKHYlbHUpIG9mIHJlZG8gbG9nIGZpbGVzLCBiZWNhdXNlIElubm9EQiBmYWlsZWQgdG8gcmVhY2ggc3RhdGUgaW4gd2hpY2ggcmVkbyBsb2cgaXMgbG9naWNhbGx5IGVtcHR5LiBQbGVhc2UgdXNlIGFuIG9sZGVyIHZlcnNpb24gb2YgTXlTUUwgLSByZWNvdmVyIGFuZCBzaHV0ZG93biAod2l0aCBpbm5vZGItZmFzdC1zaHV0ZG93biA8IDIpLgBGYWlsZWQgdG8gcmVzaXplIHRoZSByZWRvIGxvZyBzeW5jaHJvbm91c2x5LCBiZWNhdXNlIElubm9EQiBmYWlsZWQgdG8gcmVhY2ggc3RhdGUgaW4gd2hpY2ggcmVkbyBsb2cgaXMgbG9naWNhbGx5IGVtcHR5LiBQbGVhc2UgdXNlIGFuIG9sZGVyIHZlcnNpb24gb2YgTXlTUUwgLSByZWNvdmVyIGFuZCBzaHV0ZG93biAod2l0aCBpbm5vZGItZmFzdC1zaHV0ZG93biA8IDIpLgBUaGUgcmVkbyBsb2cgZmlsZSAlcyBjb21lcyBmcm9tIG90aGVyIGRhdGEgZGlyZWN0b3J5IHRoYW4gcmVkbyBsb2cgZmlsZSAlcy4AVGhlIHJlZG8gbG9nIGZpbGUgJXMgaGFzIGludmFsaWQgc3RhcnRfbHNuICVsbHUuAFRoZSByZWRvIGxvZyBmaWxlICVzIGhhcyBzdGFydF9sc24gJWxsdSBidXQgZXhwZWN0ZWQgJWxsdSAoZW5kX2xzbiBvZiB0aGUgcHJldmlvdXMgcmVkbyBsb2cgZmlsZSkuAE1pc3NpbmcgcmVkbyBsb2cgZmlsZSAlcyAod2l0aCBzdGFydF9sc24gPSAlbGx1KS4AVGhlIGxhdGVzdCBmb3VuZCBjaGVja3BvaW50IGlzIGF0IGxzbiA9ICVsbHUgaW4gcmVkbyBsb2cgZmlsZSAlcy4AVXNlciBoYXMgc2V0IGlubm9kYl9yZWRvX2xvZ19jYXBhY2l0eSB0byAlbGx1TS4AUmVkbyBsb2cgaGFzIGJlZW4gcmVxdWVzdGVkIHRvIHJlc2l6ZSBmcm9tICVsbHVNIHRvICVsbHVNLgBSZWRvIGxvZyByZXNpemUgaGFzIGJlZW4gY2FuY2VsbGVkLgBSZWRvIGxvZyBoYXMgYmVlbiByZXNpemVkIHRvICVsbHVNLgBVcGdyYWRpbmcgcmVkbyBsb2c6ICVsbHVNLCBMU049JWxsdS4ATWFya2VkIHRoZSBjdXJyZW50IHJlZG8gbG9nIGZpbGUgJXMgYXMgaW5jb21wbGV0ZS4ARmFpbGVkIHRvIHJlbW92ZSByZWRvIGxvZyBmaWxlICVzLgBGYWlsZWQgdG8gcmVuYW1lICVzIHdoZW4gY3JlYXRpbmcgcmVkbyBsb2cgZmlsZSAlcyAoZXJyb3I6ICVkKQBSZWRvIGxvZyBmaWxlcyBjcmVhdGVkIGJ5IHVua25vd24gY3JlYXRvciAlcy4ARm91bmQgZXhpc3RpbmcgcmVkbyBsb2cgZmlsZXMsIGJ1dCBhdCBsZWFzdCBvbmUgaXMgbWlzc2luZy4gSXQgaXMgdW5rbm93biBpZiByZWNvdmVyeSBjb3VsZCByZWFjaCBwaHlzaWNhbGx5IGNvbnNpc3RlbnQgc3RhdGUuIFBsZWFzZSBjb25zaWRlciByZXN0b3JpbmcgZnJvbSBiYWNrdXAgb3IgcHJvdmlkaW5nIC0taW5ub2RiLWZvcmNlLXJlY292ZXJ5ID4gMC4ARm91bmQgcmVkbyBsb2cgZmlsZSAlcyB3aGljaCBoYXMgZm9ybWF0ICh2JWx1KSBhbmQgaXMgc3RvcmVkIG91dHNpZGUgI2lubm9kYl9yZWRvLgBGb3VuZCByZWRvIGxvZyBmaWxlICVzIHdoaWNoIGhhcyBmb3JtYXQgKHYlbHUpIGFuZCBpcyBzdG9yZWQgaW5zaWRlICNpbm5vZGJfcmVkby4ARm91bmQgcmVkbyBsb2cgZmlsZXMgd2l0aCBkaWZmZXJlbnQgZm9ybWF0czogJXMgaGFzIGZvcm1hdCB2JWx1LCAlcyBoYXMgZm9ybWF0IHYlbHUuAE1pc3NpbmcgaWJfbG9nZmlsZTAgaW4gdGhlIGRpcmVjdG9yeSAlcy4ARmFpbGVkIHRvIGluaXRpYWxpemUgc2VydmljZXMgcmVxdWlyZWQgdG8gaGFuZGxlIHJlZG8gbG9nIFBGUyB0YWJsZXMuAEZhaWxlZCB0byBjcmVhdGUgcmVkbyBsb2cgUEZTIHRhYmxlcy4AVHJ1bmNhdGluZyByZWRvIGxvZyBmaWxlICVzLi4uAEZhaWxlZCB0byByZXNpemUgdW51c2VkIHJlZG8gbG9nIGZpbGUgJXMgdG8gJWxsdSBNQiAoJXMpLgBGYWlsZWQgdG8gcmVtb3ZlIHVudXNlZCByZWRvIGxvZyBmaWxlICVzLgBGYWlsZWQgdG8gcmVuYW1lIHVudXNlZCByZWRvIGxvZyBmaWxlICVzIHRvICVzLgBGYWlsZWQgdG8gbWFyayB1bnVzZWQgcmVkbyBsb2cgZmlsZSAlcyBhcyBpbiB1c2UgKGJ5IHJlbmFtaW5nIHRvICVzKS4ARmFpbGVkIHRvIG1hcmsgcmVkbyBsb2cgZmlsZSAlcyBhcyB1bnVzZWQgKGJ5IHJlbmFtaW5nIHRvICVzKS4AT3B0aW9uIGlubm9kYl9kZWRpY2F0ZWRfc2VydmVyIGlzIGlnbm9yZWQgZm9yIGlubm9kYl9yZWRvX2xvZ19jYXBhY2l0eSwgYmVjYXVzZSBpbm5vZGJfcmVkb19sb2dfY2FwYWNpdHksIGlubm9kYl9sb2dfZmlsZV9zaXplIG9yIGlubm9kYl9sb2dfZmlsZXNfaW5fZ3JvdXAgaXMgc3BlY2lmaWVkIGV4cGxpY2l0bHkuIFJlZG8gbG9nIGNhcGFjaXR5OiAlbGx1TS4ARGVwcmVjYXRlZCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgaW5ub2RiX2xvZ19maWxlX3NpemUgYW5kL29yIGlubm9kYl9sb2dfZmlsZXNfaW5fZ3JvdXAgaGF2ZSBiZWVuIHVzZWQgdG8gY29tcHV0ZSBpbm5vZGJfcmVkb19sb2dfY2FwYWNpdHk9JWxsdS4gUGxlYXNlIHVzZSBpbm5vZGJfcmVkb19sb2dfY2FwYWNpdHkgaW5zdGVhZC4AVGhpcyBtZW1iZXIgd2FzIHVuYWJsZSB0byBsb2cgdGhlIFZpZXdfY2hhbmdlX2xvZ19ldmVudCBpbnRvIHRoZSBiaW5hcnkgbG9nLCBoZW5jZSBpdCB3aWxsIGxlYXZlIHRoZSBncm91cC4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlcmUgaXMgYXZhaWxhYmxlIGRpc2sgc3BhY2UgYW5kIGFkZCB0aGUgbWVtYmVyIGJhY2sgdG8gdGhlIGdyb3VwLgBGb3VuZCBpbnZhbGlkIGV2ZW50IHNlcXVlbmNlIHdoaWxlIHJlY292ZXJpbmcgZnJvbSBiaW5hcnkgbG9nIGZpbGUgJyVzJywgYmV0d2VlbiBwb3NpdGlvbnMgJWxsdSBhbmQgJWxsdTogJXMuIFRoZSByZWNvdmVyeSBwcm9jZXNzIHdhcyBzdG9wcGVkIGVhcmx5IGFuZCBubyB0cmFuc2FjdGlvbiB3YXMgcmVjb3ZlcmVkLiBTaWRlIGVmZmVjdHMgbWF5IGJlIHRyYW5zYWN0aW9ucyBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUgYmV0d2VlbiB0aGUgYmluYXJ5IGxvZyBhbmQgdGhlIHN0b3JhZ2UgZW5naW5lcywgb3IgdHJhbnNhY3Rpb25zIGtlcHQgYnkgc3RvcmFnZSBlbmdpbmVzIGluIGEgcHJlcGFyZWQgc3RhdGUgKHBvc3NpYmx5IGhvbGRpbmcgbG9ja3MpLiBFaXRoZXIgZml4IHRoZSBpc3N1ZXMgd2l0aCB0aGUgYmluYXJ5IGxvZyBvciwgdG8gcmVsZWFzZSBwb3NzaWJseSBhY3F1aXJlZCBsb2NrcywgZGlzYWJsZSB0aGUgYmluYXJ5IGxvZyBkdXJpbmcgc2VydmVyIHJlY292ZXJ5LiBOb3RlIHRoYXQgZGlzYWJsaW5nIHRoZSBiaW5hcnkgbG9nIG1heSBsZWFkIHRvIGxvc3Mgb2YgdHJhbnNhY3Rpb25zIHRoYXQgd2VyZSBhbHJlYWR5IGFja25vd2xlZGdlZCBhcyBzdWNjZXNzZnVsIHRvIGNsaWVudCBjb25uZWN0aW9ucyBhbmQgbWF5IGhhdmUgYmVlbiByZXBsaWNhdGVkIHRvIG90aGVyIHNlcnZlcnMgaW4gdGhlIHRvcG9sb2d5LgBTdG9yYWdlIGVuZ2luZXMgZmFpbGVkIHRvIHJlY292ZXIgb25lIG9yIG1vcmUgdHJhbnNhY3Rpb25zLiBUaGUgcmVjb3ZlcnkgcHJvY2VzcyB3YXMgc3RvcHBlZCBlYXJseSwgY2hlY2sgcHJldmlvdXMgbWVzc2FnZXMgZm9yIHRoZSBkZXRhaWxzIG9uIGZhaWxlZCB0cmFuc2FjdGlvbnMuIFNpZGUgZWZmZWN0cyBtYXkgYmUgdHJhbnNhY3Rpb25zIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZSBiZXR3ZWVuIHRoZSBiaW5hcnkgbG9nIGFuZCB0aGUgc3RvcmFnZSBlbmdpbmVzLCBvciB0cmFuc2FjdGlvbnMga2VwdCBieSBzdG9yYWdlIGVuZ2luZXMgaW4gYSBwcmVwYXJlZCBzdGF0ZSAocG9zc2libHkgaG9sZGluZyBsb2NrcykuIEVpdGhlciBmaXggdGhlIGlzc3VlcyB3aXRoIHRoZSBzdG9yYWdlIGVuZ2luZSAob3V0LW9mLW1lbW9yeSwgbm8gZGlzayBzcGFjZSwgZXRjKSBvciwgdG8gcmVsZWFzZSBwb3NzaWJseSBhY3F1aXJlZCBsb2NrcyBoZWxkIGJ5IFhBIHRyYW5zYWN0aW9ucywgZGlzYWJsZSB0aGUgYmluYXJ5IGxvZyBkdXJpbmcgc2VydmVyIHJlY292ZXJ5IGFuZCBjaGVjayBjb25zaXN0ZW5jeSBiZXR3ZWVuIHN0b3JhZ2UgZW5naW5lcyBhbmQgYmluYXJ5IGxvZyBmaWxlcy4AQ3Jhc2ggcmVjb3ZlcnkgZmluaXNoZWQgaW4gJXMgZW5naW5lLiAlcwBGYWlsZWQgdG8gY29tbWl0ICVzIGluICVzLCB3aXRoIGZhaWx1cmUgY29kZSAlcy4ARmFpbGVkIHRvIHJvbGxiYWNrICVzIGluICVzLCB3aXRoIGZhaWx1cmUgY29kZSAlcy4ARmFpbGVkIHRvIHByZXBhcmUgJXMgaW4gJXMsIHdpdGggZmFpbHVyZSBjb2RlICVzLgBDYW5ub3QgcmVnaXN0ZXIgdmFyaWFibGUgJyVzJy4gUGxlYXNlIGNoZWNrIGlmIGl0IGlzIG5vdCBhbHJlYWR5IHJlZ2lzdGVyZWQgYnkgYW5vdGhlciBjb21wb25lbnQuAENhbm5vdCB1bnJlZ2lzdGVyIHZhcmlhYmxlICclcycuIFBsZWFzZSBjaGVjayBpZiBpdCB3YXMgcmVnaXN0ZXJlZCBwcm9wZXJseSBpbiB0aGUgZmlyc3QgcGxhY2UuAENhbm5vdCByZWdpc3RlciBmdW5jdGlvbiAnJXMnLiBQbGVhc2UgY2hlY2sgaWYgaXQgaXMgbm90IGFscmVhZHkgcmVnaXN0ZXJlZC4AQ2Fubm90IHVucmVnaXN0ZXIgZnVuY3Rpb24gJyVzJy4gUGxlYXNlIGNoZWNrIGlmIGl0IHdhcyByZWdpc3RlcmVkIHByb3Blcmx5IGluIHRoZSBmaXJzdCBwbGFjZS4ASW52YWxpZCBhcmd1bWVudHMgdG8gZnVuY3Rpb24gJyVzJy4gRXhwZWN0ZWQgdmFsdWVzOiAlcy4ASW52YWxpZCBhbGdvcml0aG0gdmFsdWUgJyUuMjBzJyBpbiBmdW5jdGlvbiAlcy4ASW52YWxpZCBrZXkgbGVuZ3RoICclZCcgZm9yIGZ1bmN0aW9uICclcycgd2l0aCBhbGdvcml0aG0gJyUuMjBzJy4gUGxlYXNlIHByb3ZpZGUgYSB2YWx1ZSBiZXR3ZWVuIFslZCwgJWRdLgBGYWlsZWQgdG8gZ2VuZXJhdGUgcHJpdmF0ZSBrZXkgb2YgbGVuZ3RoICclZCcgd2l0aCBhbGdvcml0aG0gJyUuMjBzJyBpbiBmdW5jdGlvbiAnJXMnLiBNb3JlIGRldGFpbHMgYWJvdXQgdGhlIGVycm9yIHdvdWxkIGhhdmUgYmVlbiBsb2dnZWQgYmVmb3JlIHRoaXMgbWVzc2FnZS4ARmFpbGVkIHRvIGdlbmVyYXRlIHB1YmxpYyBrZXkgd2l0aCBhbGdvcml0aG0gJyUuMjBzJyBmb3IgZ2l2ZW4gcHJpdmF0ZSBrZXkgaW4gZnVuY3Rpb24gJyVzJy4gTW9yZSBkZXRhaWxzIGFib3V0IHRoZSBlcnJvciB3b3VsZCBoYXZlIGJlZW4gbG9nZ2VkIGJlZm9yZSB0aGlzIG1lc3NhZ2UuAEludmFsaWQgZGF0YSBsZW5ndGggJyVkJyAoaW4gYnl0ZXMpIGZvciBmdW5jdGlvbiAnJXMnIHdpdGggYWxnb3JpdGhtICclLjIwcycuIFRoZSBtYXhpbXVtIHN1cHBvcnQgZGF0YSBsZW5ndGggZm9yIGdpdmVuIHByaXZhdGUga2V5IGlzICVkIChpbiBieXRlcykuAENvdWxkIG5vdCBlbmNyeXB0IGRhdGEgaW4gZnVuY3Rpb24gJyVzJyB1c2luZyBhbGdvcml0aG0gJyUuMjBzJy4gRGF0YSBsZW5ndGggd2FzICclZCcgYnl0ZXMuIE1vcmUgZGV0YWlscyBhYm91dCB0aGUgZXJyb3Igd291bGQgaGF2ZSBiZWVuIGxvZ2dlZCBiZWZvcmUgdGhpcyBtZXNzYWdlLgBDb3VsZCBub3QgZGVjcnlwdCBkYXRhIGluIGZ1bmN0aW9uICclcycgdXNpbmcgYWxnb3JpdGhtICclLjIwcycuIERhdGEgbGVuZ3RoIHdhcyAnJWQnIGJ5dGVzLiBNb3JlIGRldGFpbHMgYWJvdXQgdGhlIGVycm9yIHdvdWxkIGhhdmUgYmVlbiBsb2dnZWQgYmVmb3JlIHRoaXMgbWVzc2FnZS4AQ291bGQgbm90IHNpZ24gZGF0YSBpbiBmdW5jdGlvbiAnJXMnIHVzaW5nIGFsZ29yaXRobSAnJS4yMHMnIGFuZCBkaWdlc3QgdHlwZSAnJS4yMHMnLiBNb3JlIGRldGFpbHMgYWJvdXQgdGhlIGVycm9yIHdvdWxkIGhhdmUgbG9nZ2VkIGJlZm9yZSB0aGlzIG1lc3NhZ2UuAFJlY2VpdmVkIE9wZW5TU0wgZXJyb3IgaW4gZnVuY3Rpb24gJyVzJyBmb3IgYWxnb3JpdGhtICclcyc6ICclcycASW4gZnVuY3Rpb24gJyVzJyB3aXRoIGFsZ29yaXRobSAnJXMnOiBpbnN1ZmZpY2llbnQgb3V0cHV0IGJ1ZmZlciBsZW5ndGggJyV6dScuIFJlcXVpcmVkIGxlbmd0aCAnJXp1Jy4AJXMlcwBTZXR0aW5nIHNlc3Npb24gdmFsdWVzIGZvciBzeXN0ZW0gdmFyaWFibGVzIG9ubHkgbWFrZXMgc2Vuc2UgaW4gYSB1c2VyIHNlc3Npb24gKGZhaWxlZCB0byBzZXQgJyUuMjU2cycpLgBCdWlsZElEW3NoYTFdPSVzAEZhaWxlZCB0byByZWdpc3RlciBkeW5hbWljIHByaXZpbGVnZSAlcy4AUmVkbyBsb2cgd3JpdGVyIGlzIHdhaXRpbmcgZm9yICVzIHJlZG8gbG9nIGNvbnN1bWVyIHdoaWNoIGlzIGN1cnJlbnRseSByZWFkaW5nIExTTj0lbGx1IHByZXZlbnRpbmcgcmVjbGFtYXRpb24gb2Ygc3Vic2VxdWVudCBwb3J0aW9uIG9mIHRoZSByZWRvIGxvZy4gQ29uc2lkZXIgaW5jcmVhc2luZyBpbm5vZGJfcmVkb19sb2dfY2FwYWNpdHkuACVzAFJlY292ZXJ5OiBHZW5lcmF0aW5nIGluZGV4IGluZm9ybWF0aW9uIGZvciBJTlNUQU5UIERETCBUYWJsZSBpbiA4LjAuMjkgZm9ybWF0AEZhaWxlZCB0byBzd2l0Y2ggcmVzb3VyY2UgZ3JvdXAuICVzAEZhaWxlZCB0byBzd2l0Y2ggcmVzb3VyY2UgZ3JvdXAuIENvdWxkIG5vdCBhY3F1aXJlIHJlc291cmNlIGdyb3VwcyBnbG9iYWwgbG9jay4ARmFpbGVkIHRvIHN3aXRjaCByZXNvdXJjZSBncm91cC4gQ291bGQgbm90IGFjcXVpcmUgbG9jayBvbiByZXNvdXJjZSBncm91cCAlcy4ARmFpbGVkIHRvIHN3aXRjaCByZXNvdXJjZSBncm91cC4gVW5hYmxlIHRvIGFwcGx5IHJlc291cmNlIGdyb3VwIGNvbnRyb2xsZXIgJXMuAEZhaWxlZCB0byBjbGVhciBpbnN0YW50IGRyb3AgY29sdW1uIG1ldGFkYXRhIGZvciB0YWJsZSAlcwBDYW5ub3Qgb3BlbiBzaWduaW5nIGtleSBmaWxlICVzLgBPdXQgb2YgbWVtb3J5ISBDYW5ub3QgY3JlYXRlIHByaXZhdGUga2V5LgBDYW5ub3QgcmVhZCBzaWduaW5nIGtleSBmaWxlICVzLgBJbmNvbXBsZXRlIGtleTogbWlzc2luZyBOYW1lL1R5cGUgZm9yIHRoZSBLZXk6ICVzLgBEdXBsaWNhdGUga2V5IGZvdW5kIGluIGtleXJpbmcgd2l0aCBOYW1lOiAlcyBhbmQgT3duZXI6ICVzLgBFcnJvciBwYXJzaW5nIEpTT04gcmVzcG9uc2UgJXMuAEludmFsaWQgSlNPTiByZXNwb25zZSEASFRUUCByZXF1ZXN0IGZhaWxlZCB3aXRoIGVycm9yOiAnJXMnAFZhcmlhYmxlIHRocmVhZF9wb29sLiVzIHdhcyB1cGRhdGVkOiAlcwAlcwBTdGF0dXMgY29kZSAldTogQ29tcGxldGVkAFN0YXR1cyBjb2RlICV1OiAldSUlIGNvbXBsZXRlAFN0YXR1cyBjb2RlICV1OiAlcwBJbnZhbGlkIHZhbHVlIHNldCB0byB0aHJlYWRfcG9vbF9xdWVyeV90aHJlYWRzX3Blcl9ncm91cC4gVmFsaWQgdmFsdWUgcmFuZ2UgaXMgJXUgLSAldS4AUXVlcnkgdGhyZWFkcyBjb3VudCgldSkgZXhjZWVkcyB0cmFuc2FjdGlvbiB0aHJlYWRzIGxpbWl0KCV1KSBwZXIgZ3JvdXAuIFBsZWFzZSB1c2UgcXVlcnkgdGhyZWFkcyBjb3VudCBwZXIgZ3JvdXAgc21hbGxlciBvciBlcXVhbCB0byBtYXggdHJhbnNhY3Rpb24gdGhyZWFkcyBsaW1pdCBwZXIgZ3JvdXAARm91bmQgcGFnZSB0eXBlIG1pc21hdGNoLiBFeHBlY3RlZCAldSwgZm91bmQgJXUsIGluIHBhZ2U6IHNwYWNlX2lkPSVsdSBwYWdlX25vPSAlbHUAcHJlYWRlcjogdGhyZWFkX2lkPSV6dSwgbl90aHJlYWRzPSV6dSwgbl9jdHg9JXp1LCBvbmVfcmFuZ2VfcGVyX3RocmVhZD0lcywgbl9pbmRleD0lenUsIGluZGV4X2xpc3Q9JXMsIGVycj0lenUAYnVsa2xvYWQ6IHNwYWNlX2lkPSV6dSwgdGFibGU9JXMsIGluZGV4PSVzLCBoZWlnaHQ9JXp1LCBuX2V4dGVudHM9JXp1LCBuX3BhZ2VzPSV6dQBidWxrZmx1c2hlcjogc2xlZXBfY291bnQ9JXp1LCBzbGVlcF9kdXJhdGlvbj0lenUgbWlsbGlzZWNvbmRzLCB0b3RhbF9zbGVlcD0lenUgbWlsbGlzZWNvbmRzLCBwYWdlc19mbHVzaGVkPSV6dQAlczogT3ZlciA2NyBwZXJjZW50IG9mIHRoZSBidWZmZXIgcG9vbCAoY3Vycl9zaXplPSV6dSBNQikgaXMgb2NjdXBpZWQgYnkgbG9jayBoZWFwcyBvciB0aGUgYWRhcHRpdmUgaGFzaCBpbmRleCBvciBCVUZfQkxPQ0tfTUVNT1JZIHBhZ2VzLiBDaGVjayB0aGF0IHlvdXIgdHJhbnNhY3Rpb25zIGRvIG5vdCBzZXQgdG9vIG1hbnkgcm93IGxvY2tzLiBNYXliZSB5b3Ugc2hvdWxkIG1ha2UgdGhlIGJ1ZmZlciBwb29sIGJpZ2dlcj8uIFN0YXJ0aW5nIHRoZSBJbm5vREIgTW9uaXRvciB0byBwcmludCBkaWFnbm9zdGljcy4AJXM6IE92ZXIgOTUgcGVyY2VudCBvZiB0aGUgYnVmZmVyIHBvb2wgKGN1cnJfc2l6ZT0lenUgTUIpIGlzIG9jY3VwaWVkIGJ5IGxvY2sgaGVhcHMgb3IgdGhlIGFkYXB0aXZlIGhhc2ggaW5kZXggb3IgQlVGX0JMT0NLX01FTU9SWSBwYWdlcy4gQ2hlY2sgdGhhdCB5b3VyIHRyYW5zYWN0aW9ucyBkbyBub3Qgc2V0IHRvbyBtYW55IHJvdyBsb2Nrcy4gTWF5YmUgeW91IHNob3VsZCBtYWtlIHRoZSBidWZmZXIgcG9vbCBiaWdnZXI/LiBXZSBpbnRlbnRpb25hbGx5IGdlbmVyYXRlIGEgc2VnIGZhdWx0IHRvIHByaW50IGEgc3RhY2sgdHJhY2Ugb24gTGludXghACVzOiB0YWJsZT0lcywgaW5kZXg9JXMsIG5fdW5pcT0lenUsIG5fZmllbGRzPSV6dSwgbGhzPSglcyksIHJocz0oJXMpAEZhaWxlZCB0byBhcHBseSByb3cgZXZlbnQgd2l0aCAlZCBjb2x1bW5zLCBvcmlnaW5hdGluZyBmcm9tIGEgc2VydmVyIG9mIHZlcnNpb24gJXMgb24gdGFibGUgJyUtLjE5MnMuJS0uMTkycycsIHdoaWNoIGhhcyAlZCBjb2x1bW5zLCBvbmUgb2Ygd2hpY2ggaXMgYSBnZW5lcmF0ZWQgaW1wbGljaXQgcHJpbWFyeSBrZXkuIFJlcGxpY2F0aW9uIGlzIHVuc3VwcG9ydGVkIHdoZW4gdGhlIHNvdXJjZSBzZXJ2ZXIgaXMgb2xkZXIgdGhhbiA4LjAuMzAsIHRoZSByZXBsaWNhIHRhYmxlIGhhcyBhIGdlbmVyYXRlZCBpbXBsaWNpdCBwcmltYXJ5IGtleSwgYW5kIHRoZXJlIGlzIGEgZGlmZmVyZW5jZSBpbiBjb2x1bW4gY291bnQsIG5vdCBjb3VudGluZyB0aGUgcmVwbGljYSdzIGdlbmVyYXRlZCBpbXBsaWNpdCBwcmltYXJ5IGtleS4gQWxpZ24gdGhlIHRhYmxlIHNjaGVtYXMgb24gc291cmNlIGFuZCByZXBsaWNhLCBhbmQgcmVzdGFydCByZXBsaWNhdGlvbi4AQnVsayBleGVjdXRvcjogJXMAQnVsayBsb2FkZXI6ICVzAFRoZSBmaXJzdCBmaWxlIGJlaW5nIGxvYWRlZCBjb250YWluZWQgbGVzcyBsaW5lcyB0aGFuIHRoZSBpZ25vcmUgY2xhdXNlAEJ1bGsgcmVhZGVyOiAlcwBCdWxrIHJlYWRlciBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBsaWJjdXJsAEJ1bGsgcmVhZGVyIGdvdCBsaWJjdXJsIGVycm9yOiAlcwBCdWxrIHJlYWRlciBnb3QgZXJyb3IgcmVzcG9uc2UgZnJvbSBzZXJ2ZXI6ICVsZABCdWxrIHJlYWRlciBnb3QgZXJyb3IgaW4gY29tbXVuaWNhdGlvbiB3aXRoIHNvdXJjZSBzZXJ2ZXIsIGNoZWNrIHRoZSBlcnJvciBsb2cgZm9yIGFkZGl0aW9uYWwgZGV0YWlscwBNaXNzaW5nIEVOQ0xPU0VEIEJZIGNoYXJhY3RlciBhdCByb3cgJWxkIGluIGZpbGUgJXMuIEFkZCBPUFRJT05BTExZIHRvIHRoZSBFTkNMT1NFRCBCWSBjbGF1c2UgdG8gYWxsb3cgdGhpcyBpbnB1dC4AVGhlIG51bWJlciBvZiBpbnB1dCBjb2x1bW5zIHRoYXQgbmVlZCB0byBiZSBidWZmZXJlZCBmb3IgcGFyc2luZyBleGNlZWRlZCBwcmVkZWZpbmVkIGJ1ZmZlciBtYXggc2l6ZSBmb3IgZmlsZSAnJXMnLgBUaGUgY29sdW1uIGRhdGEgdGhhdCBuZWVkZWQgdG8gYmUgY29waWVkIGR1ZSB0byBlc2NhcGVkIGNoYXJhY3RlcnMgZXhjZWVkZWQgdGhlIHNpemUgb2YgdGhlIGludGVybmFsIGNvcHkgYnVmZmVyIGZvciBmaWxlICclcycuAFVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0IGZvdW5kIGF0IHJvdyAlbGQgaW4gZmlsZSAnJXMnLiBEYXRhIGZvciBzb21lIGNvbHVtbnMgaXMgbWlzc2luZy4AVW5leHBlY3RlZCByb3cgdGVybWluYXRvciBmb3VuZCBhdCByb3cgJWxkIGluIGZpbGUgJyVzJy4gRGF0YSBmb3Igc29tZSBjb2x1bW5zIGlzIG1pc3NpbmcuAFVuZXhwZWN0ZWQgY2hhcmFjdGVycyBhZnRlciBlbmRpbmcgRU5DTE9TRUQgQlkgY2hhcmFjdGVyIGZvdW5kIGF0IHJvdyAlbGQgaW4gZmlsZSAnJXMnLgBVbmV4cGVjdGVkIGNoYXJhY3RlcnMgYWZ0ZXIgTlVMTCBlc2NhcGUgKFxOKSBmb3VuZCBhdCByb3cgJWxkIGluIGZpbGUgJyVzJy4AVW5leHBlY3RlZCBjaGFyYWN0ZXJzIGFmdGVyIGNvbHVtbiB0ZXJtaW5hdG9yIGZvdW5kIGF0IHJvdyAlbGQgaW4gZmlsZSAnJXMnLgBVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dCBmb3VuZCBhdCByb3cgJWxkIGluIGZpbGUgJyVzJyByZXN1bHRpbmcgaW4gaW5jb21wbGV0ZSBlc2NhcGUgc2VxdWVuY2UuAEluY29ycmVjdCAlLS4zMnMgdmFsdWU6ICclLS4xMjhzJyBmb3IgY29sdW1uICclLS4xOTJzJyBhdCByb3cgJWxkIGluIGZpbGUgJyUtLjE5MnMnAE5VTEwgc3VwcGxpZWQgdG8gTk9UIE5VTEwgY29sdW1uICclcycgYXQgcm93ICVsZCBpbiBmaWxlICclLS4xOTJzJwAlczogTE9BRCBCVUxLIERBVEEgdGhyZWFkIGZhaWx1cmUgKGVycj0lbHUpLCB0YWJsZT0lcywgaW5kZXg9JXMAJXM6IEZhaWxlZCB0byBtZXJnZSBzdWItdHJlZXMgaW4gTE9BRCBCVUxLIERBVEEsIHRhYmxlPSVzLCBpbmRleD0lcywgZGV0YWlscz0lcwBMT0FEIEJVTEsgREFUQTogQnVmZmVyIHBvb2wgc2l6ZSBpcyAlenUuIFJlZHVjaW5nIGNvbmN1cnJlbmN5IGZyb20gJXp1IHRvICV6dS4gdGFibGU9JXMuAEMrKyBFeGNlcHRpb24gY2F1Z2h0IHdoaWxlICVzIHRoZSAlcyBwbHVnaW46IFslc10AUmVwbGljYXRpb24gY29uZmlndXJhdGlvbiBhcHBlYXJzIHRvIGJlIGNvcnJ1cHRlZC4gT24gR3JvdXAgUmVwbGljYXRpb24gY2hhbm5lbCAnJXMnLCBzZXR0aW5nIFJFUVVJUkVfVEFCTEVfUFJJTUFSWV9LRVlfQ0hFQ0sgdG8gJ0dFTkVSQVRFJyBpcyBub3QgYWxsb3dlZC4gUnVuIFJFU0VUIFJFUExJQ0EgQUxMIHRvIHJlc2V0IGl0LgBSZWNvcmQgaGFzIGJvdGggaW5zdGFudCBhbmQgdmVyc2lvbiBiaXQgc2V0LgBUaGlzIG1lbWJlciBpcyBjb25maWd1cmVkIHdpdGggYSBncm91cF9yZXBsaWNhdGlvbl9wYXhvc19zaW5nbGVfbGVhZGVyIG9wdGlvbiB2YWx1ZSBvZiAxIGFuZCBpdCBpcyB0cnlpbmcgdG8gam9pbiBhIGdyb3VwIHdpdGggQ29tbXVuaWNhdGlvbiBQcm90b2NvbCBWZXJzaW9uIGJlbG93IDguMC4yNy4gSW4gb3JkZXIgdG8gam9pbiB0aGlzIGdyb3VwLCBncm91cF9yZXBsaWNhdGlvbl9wYXhvc19zaW5nbGVfbGVhZGVyIHZhbHVlIG11c3QgYmUgY29uZmlndXJlZCB0byB0aGUgdmFsdWUgMC4gVGhpcyBtZW1iZXIgd2lsbCBub3cgZXhpdCB0aGUgZ3JvdXAuAElnbm9yZWQgdGhlIGlubm9kYi1yZWRvLWxvZy1jYXBhY2l0eSBvcHRpb24gaW4gdGhlIElubm9kYiByZWFkLW9ubHkgbW9kZS4gU2VydmVyIGlzIHVzaW5nIGFjdGl2ZSByZWRvIGxvZyBmaWxlcy4AVW5leHBlY3RlZCBJTlNUQU5UTFkgQWRkZWQgLyBEcm9wcGVkIGNvbHVtbjogJyVzJyBhdCBwb3NpdGlvbiAlbHUgZm9yIFRhYmxlICclcycsIEluZGV4ICclcycgd2hpbGUgZ2V0dGluZyBQcmltYXJ5IEtleSBmb3Igcm93IGxvZ2dpbmcAJXMAQ29sdW1uIG5hbWUgJXMgYW5kIGludGVybmFsbHkgZ2VuZXJhdGVkIElOU1RBTlQgRFJPUCBjb2x1bW4gbmFtZSAlcyBpcyBjYXVzaW5nIGEgY29uZmxpY3QuAEZpZWxkIG51bWJlcjogJWxsdSB0b28gbGFyZ2UsIFRvdGFsIGZpZWxkcyBpbiBSZWNvcmQ6ICV6dS4AJXMAVGhlIGNvbm5lY3Rpb24gaGFzIHRpbWVkIG91dCBhZnRlciAlbHUgcmV0cmllcyBjb25uZWN0aW5nIHRvICclc0AlczolZCclcywgYW5kIHRoZXJlZm9yZSB0aGUgTXlTUUwgc2VydmVyIGlzIGdvaW5nIHRvIGF0dGVtcHQgYW4gYXN5bmNocm9ub3VzIHJlcGxpY2F0aW9uIGNvbm5lY3Rpb24gZmFpbG92ZXIsIHRvICclc0AlczolZCcAVGhlIFJlcGxpY2Egd2hpY2ggd2FzIGNvbm5lY3RlZCB0byBzb3VyY2UgJyVzOiVkJywgaXMgbm93IGNvbm5lY3RlZCB0byBuZXcgc291cmNlICclczolZCcsIGJ1dCBzdGlsbCBoYXMgdGhlIHNhbWUgc2VydmVyX3V1aWQgJXMuAFRoZSBzZXJ2ZXJfdXVpZCBmb3Igc291cmNlIHNlcnZlciAnJXM6JWQnIGhhcyBjaGFuZ2VkIGZyb20gJXMgdG8gJXMuIFRoaXMgc2hvdWxkIG5vdCBoYXBwZW4gdW5sZXNzIHlvdSBoYXZlIGNoYW5nZWQgaXQgbWFudWFsbHkuAFRoZSBzb3VyY2Ugc2VydmVyIGhhcyBjaGFuZ2VkIGZyb20gJyVzOiVkJyB3aXRoIHNlcnZlcl91dWlkICVzLCB0byAnJXM6JWQnIHdpdGggc2VydmVyX3V1aWQgJXMuAFJlcGxpY2EgcmVjZWl2ZXIgdGhyZWFkJXM6IGNvbm5lY3RlZCB0byBzb3VyY2UgJyVzQCVzOiVkJyB3aXRoIHNlcnZlcl91dWlkPSVzLCBzZXJ2ZXJfaWQ9JWQuIFN0YXJ0aW5nIHJlcGxpY2F0aW9uIGZyb20gZmlsZSAnJXMnLCBwb3NpdGlvbiAnJXMnLgBSZXBsaWNhIHJlY2VpdmVyIHRocmVhZCVzOiBjb25uZWN0ZWQgdG8gc291cmNlICclc0AlczolZCcgd2l0aCBzZXJ2ZXJfdXVpZD0lcywgc2VydmVyX2lkPSVkLiBTdGFydGluZyBHVElELWJhc2VkIHJlcGxpY2F0aW9uLgBMb2FkZXI6OmJ1aWxkX2FsbCgpOiBDb21wbGV0ZWQgYnVpbGRpbmcgJXp1IGluZGV4ZXMgZm9yIG9sZF90YWJsZT0lcywgbmV3X3RhYmxlPSVzLCBlcnI9JXp1LgBCdWlsZGVyOjpmaW5pc2goKTogQ29tcGxldGVkIGJ1aWxkaW5nIGluZGV4PSVzIG9mIHRhYmxlPSVzLCBlcnI9JXp1LgAlczogJyVzJyBpcyBhIHVzZXIgZGVmaW5lZCBjb2xsYXRpb24uIFVzZXIgZGVmaW5lZCBjb2xsYXRpb25zIGFyZSBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gQ29uc2lkZXIgdXNpbmcgYSBjb21waWxlZCBjb2xsYXRpb24gaW5zdGVhZC4AQnVpbGRlcjo6aW5pdCgpOiBJbml0aWFsaXplIGZvciBidWlsZGluZyBpbmRleD0lcyBvZiB0YWJsZT0lcywgbl90aHJlYWRzPSV6dSwgc29ydCBidWZmZXIgc2l6ZT0lenUgYnl0ZXMsIGkvbyBidWZmZXIgc2l6ZT0lenUgYnl0ZXMuAFNFTEVDVCBDT1VOVCgqKSBGUk9NIHRhYmxlPSVzLCBuX3RocmVhZHM9JXp1LCBuX3BhcnRpdGlvbnM9JXp1LgBJbmRleCBsb2cgdmVyc2lvbiAldSBkaWQgbm90IG1hdGNoLiBNYXggaW5kZXggdmVyc2lvbiBpcyAldS4gUmVjb3ZlcnkgY2FuJ3QgY29udGludWUuIFBsZWFzZSBtYWtlIHN1cmUgc2VydmVyIGlzIG5vdCBzdGFydGluZyB1cCB3aXRoIHRoZSBkYXRhZGlyIGdlbmVyYXRlZCBpbiBmdXR1cmUgdmVyc2lvbi4ATXVsdGlwbGUga2V5cmluZyBjb21wb25lbnQgVVJOcyAnJXMnIGZvdW5kIGluIG1hbmlmZXN0IGZpbGUgJyVzJy4gT25seSBvbmUga2V5cmluZyBjb21wb25lbnQgY2FuIGJlIGxvYWRlZCBhdCBhIHRpbWUuAFBsdWdpbiAnZ3JvdXBfcmVwbGljYXRpb24nIGhhcyBiZWVuIHN0YXJ0ZWQuAE1pbmltdW0gcmVjb3JkIGZsYWcgaXMgd3JvbmdseSBzZXQgdG8gcmVjIG9uIHBhZ2UgJyVsdScgYXQgbGV2ZWwgJyVsdScgZm9yIGluZGV4ICclcycgb2YgdGFibGUgJyVzJy4ATWluaW11bSByZWNvcmQgZmxhZyBpcyBub3Qgc2V0IHRvIGZpcnN0IHJlYyBvbiBwYWdlICclbHUnIGF0IGxldmVsICclbHUnIGZvciBpbmRleCAnJXMnIG9mIHRhYmxlICclcycuAFN1Y2Nlc3NmdWxseSByZWdpc3RlcmVkIHNsb3QgJyVkJyBmb3IgY29tcG9uZW50ICclcycuAFN1Y2Nlc3NmdWxseSBkZS1yZWdpc3RlcmVkIHNsb3QgJyVkJyBmcm9tIGNvbXBvbmVudCAnJXMnLgBDYW5ub3QgZnJlZSByZXNvdXJjZXMgc3RvcmVkIGJ5IGNvbXBvbmVudCAnJXMnIGluIHRocmVhZCB3aXRoIElEOiAnJWQnLiBDb21wb25lbnQgZmFpbGVkIHRvIGZyZWUgcmVxdWlyZWQgcmVzb3VyY2VzLgBUcmFuc2FjdGlvbiBJRDogJWx1IGZvdW5kIGZvciByZXN1cnJlY3RpbmcgaW5zZXJ0cwBUcmFuc2FjdGlvbiBJRDogJWx1IGZvdW5kIGZvciByZXN1cnJlY3RpbmcgdXBkYXRlcwBJZGVudGlmaWVkIHRhYmxlIElEOiAlbHUgdG8gYWNxdWlyZSBsb2NrAEFjcXVpcmVkIGxvY2sgb24gdGFibGUgSUQ6ICVsdSwgbmFtZTogJXMAUmVjb3JkcyByZWFkOiAlbHUgLSBQYWdlcyByZWFkOiAlbHUAVG90YWwgcmVjb3JkcyByZXN1cnJlY3RlZDogJWx1IC0gVG90YWwgcGFnZXMgcmVhZDogJWx1IC0gVG90YWwgdGFibGVzIGFjcXVpcmVkOiAlbHUAUmVzdXJyZWN0ZWQgJWx1IHRyYW5zYWN0aW9ucyBkb2luZyBpbnNlcnRzLgBSZXN1cnJlY3RlZCAlbHUgdHJhbnNhY3Rpb25zIGRvaW5nIHVwZGF0ZXMuAEludmFsaWQgc2VjdXJpdHkgdG9rZW4gcHJvdmlkZWQgYnkgJyVzJyBmb3IgJyVzJ0AnJXMnOiAlcy4AVW5rbm93biB1c2VyL3RlbmFuY3kgKHVzZXI6ICVzIHRlbmFuY3k6ICVzKSBmb3VuZCBpbiBzZWN1cml0eSB0b2tlbiBwcm92aWRlZCBieSAnJXMnIGZvciAnJXMnQCclcycuAFZlcmlmaWNhdGlvbiBmYWlsZWQgZm9yIHNlY3VyaXR5IHRva2VuIHByb3ZpZGVkIGJ5ICclcycgZm9yICclcydAJyVzJyA6ICVzLgBDb3VsZCBub3QgZG93bmxvYWQgSUREUCBQdWJsaWMga2V5LiBQbGVhc2UgY2hlY2sgaWYgc2VjdXJpdHkgdG9rZW4gcHJvdmlkZWQgYnkgJyVzJyBmb3IgJyVzJ0AnJXMnIGlzIHZhbGlkLgBOb25lIG9mIHRoZSBncm91cHMgZXh0cmFjdGVkIGZyb20gc2VjdXJpdHkgdG9rZW4gbWF0Y2hlcyBhbnkgb2YgdGhlIGVudHJpZXMgZnJvbSBhdXRoZW50aWNhdGlvbiBzdHJpbmcuAENhbm5vdCByZWdpc3RlciB2YXJpYWJsZSAnJXMnLiBQbGVhc2UgY2hlY2sgaWYgaXQgaXMgbm90IGFscmVhZHkgcmVnaXN0ZXJlZCBieSBhbm90aGVyIGNvbXBvbmVudC4AQ2Fubm90IHVucmVnaXN0ZXIgdmFyaWFibGUgJyVzJy4gUGxlYXNlIGNoZWNrIGlmIGl0IHdhcyByZWdpc3RlcmVkIHByb3Blcmx5IGluIHRoZSBmaXJzdCBwbGFjZS4AQ2Fubm90IHJlZ2lzdGVyIGZ1bmN0aW9uICclcycuIFBsZWFzZSBjaGVjayBpZiBpdCBpcyBub3QgYWxyZWFkeSByZWdpc3RlcmVkIGJ5IGFub3RoZXIgY29tcG9uZW50LgBDYW5ub3QgdW5yZWdpc3RlciBmdW5jdGlvbiAnJXMnLiBQbGVhc2UgY2hlY2sgaWYgaXQgd2FzIHJlZ2lzdGVyZWQgcHJvcGVybHkgaW4gdGhlIGZpcnN0IHBsYWNlLgBDYW5ub3QgcmVnaXN0ZXIgcHJpdmlsZWdlICclcycuIFBsZWFzZSBjaGVjayBpZiBpdCBpcyBub3QgYWxyZWFkeSByZWdpc3RlcmVkLgBDYW5ub3QgdW5yZWdpc3RlciBwcml2aWxlZ2UgJyVzJy4gUGxlYXNlIGNoZWNrIGlmIGl0IHdhcyByZWdpc3RlcmVkIHByb3Blcmx5IGluIHRoZSBmaXJzdCBwbGFjZS4ARXJyb3Igd2hpbGUgZXhlY3V0aW5nIFVERiAlcy4ARXJyb3Igd2hpbGUgZXhlY3V0aW5nIFVERiAlczogJXMuACVzIGZhaWxlZC4AJXMgZmFpbGVkIHdpdGggJXUuAExvY2sgZmFpbGVkIGF0ICVzIDogJXUuAExvY2sgZnJvbSAlcyA6ICV1IGZhaWxlZCB0byB1bmxvY2suAE1hc2tpbmcgY29tcG9uZW50IGVycm9yOiAnJXMnLgAlcyBmYWlsZWQuACVzIGZhaWxlZCBiZWNhdXNlICVzLgBDcmVhdGlvbiBvZiByYW5kb20gY29udGV4dCBmYWlsZWQuAENyZWF0aW9uIG9mIHJhbmRvbSBjb250ZXh0IGZhaWxlZCBiZWNhdXNlICVzLgBDYW5ub3QgYWNjZXNzICVzLiVzIHRhYmxlLgBDYW5ub3QgcmVjb3ZlciBmcm9tIGRldGVjdF9vbmx5IGRvdWJsZXdyaXRlIGJ1ZmZlciBhcyBwYWdlICV1IGZyb20gYmF0Y2ggZG91Ymxld3JpdGUgZmlsZSBpcyBjb3JydXB0ZWQuAERhdGFiYXNlIHBhZ2UgY29ycnVwdGlvbiBvZiB0YWJsZXNwYWNlICVzIHNwYWNlX2lkOiAldSBwYWdlX251bTogJXUuIENhbm5vdCByZWNvdmVyIGl0IGZyb20gdGhlIGRvdWJsZXdyaXRlIGJ1ZmZlciBiZWNhdXNlIGl0IHdhcyB3cml0dGVuIGluIGRldGVjdF9vbmx5LWRvdWJsZXdyaXRlIG1vZGUuAGluaXRfY29ubmVjdCB2YXJpYWJsZSBpcyBpZ25vcmVkIGZvciB1c2VyOiAlcyBob3N0OiAlcyBkdWUgdG8gbXVsdGktZmFjdG9yIHJlZ2lzdHJhdGlvbiByZXF1aXJlZCBzYW5kYm94aW5nAEV4ZWN1dGlvbiBvZiBhbHRlciB0YWJsZSAlcyAlcyBmYWlsZWQgYmVjYXVzZSAlcy4AVFAgY29ubiAocG9ydDogbWFuYWdlZChkZWx0YSksIGFjdGl2ZSwgb3BlbmVkLCBjbG9zZWQsIGFkZGVkLCBkcm9wcGVkKTogJXMAU2NoZWR1bGVkIHJ1biBvZiB0YXNrICVzIGZhaWxlZABJbnZhbGlkIGZsdXNoIGludGVydmFsIHNwZWNpZmllZDogJWx1LiBWYWxpZCB2YWx1ZXMgYXJlIDAgKG9mZikgb3IgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVkLiBBZGp1c3RpbmcgdG8gJWQAQ291bGQgbm90IHB1cmdlIGJpbmFyeSBsb2dzIHNpbmNlIGFub3RoZXIgc2Vzc2lvbiBpcyBleGVjdXRpbmcgTE9DSyBJTlNUQU5DRSBGT1IgQkFDS1VQLiBXYWl0IGZvciB0aGF0IHNlc3Npb24gdG8gcmVsZWFzZSB0aGUgbG9jay4ATXVsdGktdmFsdWVzIGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8gTXlTUUwgZm9ybWF0OiAlcwBIZWFwIHJlcXVpcmVkIHRvIGNvbnZlcnQgY29sdW1ucyBpcyBub3QgcHJlc2VudC4ATXlTUUwgc2VydmVyIGRvd25ncmFkaW5nIGZyb20gdmVyc2lvbiAnJXUnIHRvICcldScuAEludmFsaWQgTXlTUUwgc2VydmVyIGRvd25ncmFkZTogQ2Fubm90IGRvd25ncmFkZSBmcm9tICV1IHRvICV1LiBUYXJnZXQgTXlTUUwgc2VydmVyIHZlcnNpb24gaXMgbG93ZXIgdGhhbiB0aGUgc2VydmVyIGRvd25ncmFkZSB0aHJlc2hvbGQgJXUuAEludmFsaWQgTXlTUUwgc2VydmVyIHVwZ3JhZGU6IENhbm5vdCB1cGdyYWRlIGZyb20gJXUgdG8gJXUuIFRhcmdldCBNeVNRTCBzZXJ2ZXIgdmVyc2lvbiBpcyBsb3dlciB0aGFuIHRoZSBzZXJ2ZXIgdXBncmFkZSB0aHJlc2hvbGQgJXUuAEludmFsaWQgTXlTUUwgc2VydmVyIHVwZ3JhZGU6IENhbm5vdCB1cGdyYWRlIGZyb20gJXUgdG8gJXUuIFVwZ3JhZGUgdG8gbmV4dCBtYWpvciB2ZXJzaW9uIGlzIG9ubHkgYWxsb3dlZCBmcm9tIHRoZSBsYXN0IExUUyByZWxlYXNlLCB3aGljaCB2ZXJzaW9uICV1IGlzIG5vdC4ASW52YWxpZCBNeVNRTCBzZXJ2ZXIgZG93bmdyYWRlOiBDYW5ub3QgZG93bmdyYWRlIGZyb20gJXUgdG8gJXUuIERvd25ncmFkZSBpcyBvbmx5IHBlcm1pdHRlZCBiZXR3ZWVuIHBhdGNoIHJlbGVhc2VzLgBGYWlsZWQgdG8gZ2V0IHRoZSBkYXRhIGRpY3Rpb25hcnkgcHJvcGVydHkgJXMuAEZhaWxlZCB0byBzZXQgdGhlIGRhdGEgZGljdGlvbmFyeSBwcm9wZXJ0eSAlcy4AU2VydmVyIGRvd25ncmFkZSBmcm9tICclZCcgdG8gJyVkJyAlcy4AJXMgaW5mb3JtYXRpb24gc2NoZW1hIGZyb20gdmVyc2lvbiAldSB0byAldS4AJXMgcGVyZm9ybWFuY2Ugc2NoZW1hIGZyb20gdmVyc2lvbiAldSB0byAldS4AVmFsdWUgZm9yIG9wdGlvbiAnJXMnIGNvbnRhaW5zIGNpcGhlciAnJXMnIHRoYXQgaXMgZWl0aGVyIGJsb2NrZWQgb3IgZGVwcmVjYXRlZCAoYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlKS4gUGxlYXNlIHJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMuAERETCBmYWlsZWQgYXMgQnVpbGRlciBpcyBhbHJlYWR5IGZyZWVkLiBCdWlsZGVyOiBzdGF0ZT0ldSwgZXJyb3Jfc3RhdGU9JXUuIEluZGV4OiBpZD0lenUsIG5hbWU9JyVzJywgc3BhY2VfaWQ9JXUsIHBhZ2U9JXUuIFRhYmxlOiBvbGRfbmFtZT0nJXMnLCBuZXdfbmFtZT0nJXMnLgBNZW1iZXIgaWRlbnRpZmllZCAlczogJyVzJyBkb2VzIG5vdCBleGlzdCBvbiBHcm91cCBSZXBsaWNhdGlvbiBtZW1iZXJzaGlwIGR1cmluZyAlcy4ARGVwcmVjYXRlZCAnJXMnIHVzZWQgJXMgdGltZXMsIGxhc3QgdGltZSB1c2VkICclcycuAFdhaXRpbmcgZm9yICV1IGNvbm5lY3Rpb25zIHRvIGJlIGNsb3NlZC4AV2FpdGluZyBmb3IgVEhEcyBpbiBwYXJ0aXRpb24gJXUgdG8gYmUgY2xvc2VkLCAldSBzdGlsbCBsZWZ0LiAldSBUSERzIGxlZnQgaW4gdG90YWwgZm9yIGFsbCBwYXJ0aXRpb25zLgBJbmRleCAlcyBvZiAlcy4lcyBleGNlZWRzIGxpbWl0IG9mICVsdSBieXRlcyBwZXIgY29sdW1uLgBGYWlsZWQgdG8gdXBkYXRlIGRhdGEgZGlyZWN0b3J5IGZsYWcgZm9yIGRkIHRhYmxlIHdpdGggdGFibGVzcGFjZSBpZCAnJWxsdScgd2hlbiBpYmQgZmlsZSBmb3IgJyVzJyBpcyBtb3ZlZCB0byBuZXcgbG9jYXRpb24gJyVzJyBkdXJpbmcgc2VydmVyIHNodXRkb3duACVzIEREIElEOiAlbGx1IC0gVGFibGVzcGFjZSAldSwgbmFtZSAnJXMnLCBmb3VuZCBhdCAnJXMnIG91dHNpZGUgZGVmYXVsdCBkYXRhIGRpcmVjdG9yeS4gSXQgaXMgZWl0aGVyIG1vdmVkIG9yIGlzIGNyZWF0ZWQgd2l0aCAnREFUQSBESVJFQ1RPUlknAFVwb24gcmVjb25uZWN0aW9uIHdpdGggdGhlIHJlcGxpY2EsIHdoaWxlIGluaXRpYWxpemluZyB0aGUgZHVtcCB0aHJlYWQgZm9yICVzIDwlcz4sIGFuIGV4aXN0aW5nIGR1bXAgdGhyZWFkIHdpdGggdGhlIHNhbWUgJXMgd2FzIGRldGVjdGVkLiBUaGUgc291cmNlIGlzIHRlcm1pbmF0aW5nIHRoZSBwcmV2aW91cyBkdW1wIHRocmVhZCAoJXUpLCB3aGljaCBpcyBub3JtYWwgYW5kIGV4cGVjdGVkLgBUaGUgdHJhbnNhY3Rpb24gJyUtLjE5MnMnIHdpbGwgY29tbWl0IG91dCBvZiBvcmRlciB3aXRoIHJlc3BlY3QgdG8gaXRzIHNvdXJjZSB0byBmb2xsb3cgdGhlIGdyb3VwIGdsb2JhbCBvcmRlci4AQ2FuIG5vdCBvcGVuIHRhYmxlIGAlc2AuYCVzYDsgZnVuY3Rpb25zIGluIGNvbnN0cmFpbnRzLCBwYXJ0aXRpb25zLCBvciB2aXJ0dWFsIGNvbHVtbnMgbWF5IGhhdmUgZmFpbGVkLgAlcwBGYWlsZWQgdG8gY3JlYXRlIHRoZSBHcm91cCBSZXBsaWNhdGlvbiBjZXJ0aWZpZXIgYnJvYWRjYXN0IHRocmVhZCAoVEhEX2NlcnRpZmllcl9icm9hZGNhc3QpLgBUaGUgR3JvdXAgUmVwbGljYXRpb24gY2VydGlmaWVyIGJyb2FkY2FzdCB0aHJlYWQgKFRIRF9jZXJ0aWZpZXJfYnJvYWRjYXN0KSBzdGFydGVkLgBUaGUgR3JvdXAgUmVwbGljYXRpb24gY2VydGlmaWVyIGJyb2FkY2FzdCB0aHJlYWQgKFRIRF9jZXJ0aWZpZXJfYnJvYWRjYXN0KSBzdG9wcGVkLgBUaGUgZ3JvdXAgcmVwbGljYXRpb24gYXBwbGllciB0aHJlYWQgaGFzIHJlY2VpdmVkIEtJTEwgcmVxdWVzdC4AVGhyZWFkcyBhcmUgdW5hYmxlIHRvIHJlc2VydmUgc3BhY2UgaW4gcmVkbyBsb2cgd2hpY2ggY2FuJ3QgYmUgcmVjbGFpbWVkIGR1ZSB0byB0aGUgJyVzJyBjb25zdW1lciBzdGlsbCBsYWdnaW5nIGJlaGluZCBhdCBMU04gPSAlbGx1LiBDb25zaWRlciBpbmNyZWFzaW5nIGlubm9kYl9yZWRvX2xvZ19jYXBhY2l0eS4AVGhlIHJlZG8gbG9nIGFyY2hpdmVyIGlzIGFib3J0ZWQgYXMgaXQgd2FzIGxhZ2dpbmcgYmVoaW5kIGF0IExTTiA9ICVsbHUgYW5kIHVuYWJsZSB0byBhZHZhbmNlIGZvciBtb3JlIHRoYW4gMiBzZWNvbmRzLiBDb25zaWRlciBpbmNyZWFzaW5nIHRoZSBpbm5vZGJfcmVkb19sb2dfY2FwYWNpdHkuAFRyeWluZyB0byBhZGQgb3IgZHJvcCBjb2x1bW4ocykgaW4gdGFibGUgJyVzJyBmb3Igd2hpY2ggdGhlIGN1cnJlbnQgcmVjb3JkIHNpemUgaXMgJXp1IHdoaWNoIGlzIG1vcmUgdGhhbiB0aGUgbWF4aW11bSBhbGxvd2VkIHNpemUgKCV6dSkgZm9yIGEgcmVjb3JkLiBUaGVyZWZvcmUgQUREIG9yIERST1AgY29sdW1uIHdpdGggQUxHT1JJVEhNID0gSU5TVEFOVCBpcyBub3QgYWxsb3dlZC4AQ2Fubm90IGFkZCAlenUgZmllbGQocykgaW4gdGFibGUgJyVzJyBiZWNhdXNlIGFmdGVyIGFkZGluZyBpdCwgdGhlIHJlY29yZCBzaXplIHdvdWxkIGJlICV6dSB3aGljaCBpcyBtb3JlIHRoYW4gdGhlIG1heGltdW0gYWxsb3dlZCBzaXplICglenUpIGZvciBhIHJlY29yZC4AJXMAJXMAJXMAYnVsa2ZsdXNoZXI6IEZhaWxlZCB0byBwdW5jaCBob2xlOiB0YWJsZT0lcywgaW5kZXg9JXMsIHNwYWNlX2lkPSV6dSwgcGFnZV9ubz0lenUsIGRpc2tfcGFnZV9zaXplPSV6dSwgaG9sZV9zaXplPSV6dSwgZmlsZT0lcywgZXJyPSV6dQAlcyBhcyB0aGUgY2xpZW50IHNlc3Npb24gd2FzIGtpbGxlZC4AQ2Fubm90IG9wZW4gY2VydGlmaWNhdGUgJXMuIFBsZWFzZSBjaGVjayB0aGUgY2VyaWZpY2F0ZQBDZXJ0aWZpY2F0ZSB2YWxpZGF0aW9uIGhhcyBmYWlsZWQuIFN0b3BwaW5nIHRoZSBzZXJ2ZXIgYXMgdGxzLWNlcnRpZmljYXRlcy1lbmZvcmNlZC12YWxpZGF0aW9uIGlzIGVuYWJsZWQAQ0EgY2VydGlmaWNhdGUvY2VydGZpY2F0ZXMgaXMgaW52YWxpZC4gUGxlYXNlIGNoZWNrIGxvZ3MgZm9yIG1vcmUgZGV0YWlscy4ASW50ZXJuYWwgVExTIGVycm9yICVzOiVzOiVkOiVzAEZhaWxlZCB0byBzZXQgdXAgVExTLiBDaGVjayBsb2dzIGZvciBkZXRhaWxzAFNlcnZlciBjZXJ0aWZpY2F0ZSAlcyB2ZXJpZmljYXRpb24gaGFzIGZhaWxlZC4gQ2hlY2sgbG9ncyBmb3IgbW9yZSBkZXRhaWxzAEZhaWxlZCB0byB2YWxpZGF0ZSBjZXJ0aWZpY2F0ZSAlcyBiZWNhdXNlICVzACVzACVzACVzAE15U1FMIFNlcnZlciAtIHN0YXJ0LgBNeVNRTCBTZXJ2ZXIgLSBlbmQuAE15U1FMIFNlcnZlciBJbml0aWFsaXphdGlvbiAtIHN0YXJ0LgBNeVNRTCBTZXJ2ZXIgSW5pdGlhbGl6YXRpb24gLSBlbmQuAE15U1FMIFNlcnZlcjogUGx1Z2lucyBTaHV0ZG93biAtIHN0YXJ0LgBNeVNRTCBTZXJ2ZXI6IFBsdWdpbnMgU2h1dGRvd24gLSBlbmQuAE15U1FMIFNlcnZlcjogQ29tcG9uZW50cyBTaHV0ZG93biAtIHN0YXJ0LgBNeVNRTCBTZXJ2ZXI6IENvbXBvbmVudHMgU2h1dGRvd24gLSBlbmQgKHdpdGggcmV0dXJuIHZhbHVlID0gJWQpLgBNeVNRTCBTZXJ2ZXI6IENsb3NpbmcgQ29ubmVjdGlvbnMgLSBzdGFydC4ATXlTUUwgU2VydmVyOiBDbG9zaW5nIENvbm5lY3Rpb25zIC0gZW5kLgBXYWl0aW5nIGZvciBmb3JjZWZ1bCBkaXNjb25uZWN0aW9uIG9mIFRocmVhZCAoSUQgJWxkKSB0byBlbmQuAFdhaXRpbmcgZm9yIGZvcmNlZnVsIGRpc2Nvbm5lY3Rpb24gb2YgJWxkIHRocmVhZChzKSB0byBlbmQuAEZhaWxlZCB0byBhY2NlcHQgYSBNeVNRTCBjb25uZWN0aW9uIGZvciBHcm91cCBSZXBsaWNhdGlvbi4gJXMuIFBsZWFzZSByZXRyeS4ASW52YWxpZCB2YWx1ZSBvZiBhcmd1bWVudCAlcyAoJXMpLgBJZ25vcmluZyBhIG5vbi1kZWZhdWx0IHZhbHVlIGZvciAlcyBkdXJpbmcgLS1pbml0aWFsaXplLgBBdXRvbWF0aWMgcmVnaXN0cmF0aW9uIG9mIHRoZSBzY2hlZHVsZXIgZmFpbGVkLgBJbnZhbGlkIHJlbG9hZCBpbnRlcnZhbCBzcGVjaWZpZWQ6ICVsdS4gVmFsaWQgdmFsdWVzIGFyZSAwIChvZmYpIG9yIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlZC4gQWRqdXN0aW5nIHRvICVkLgAnJXMnIChncmFudGVkIHRvICclc0AlcycpIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgBCdWxrIE11bHRpIFJlYWRlcjogJXMAQnVsayBNZXJnZSBMb2FkZXI6ICVzAEJ1bGsgU29ydGluZyBMb2FkZXI6ICVzAEJ1bGsgV3JpdGVyOiAlcwBCdWxrIHdyaXRlciBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBsaWJjdXJsAEJ1bGsgd3JpdGVyIGdvdCBsaWJjdXJsIGVycm9yOiAlcwBEZXRlY3RlZCB3cm9uZyBwYWdlX2lkOiBidWZfYmxvY2tfdFtzcGFjZV9pZD0lenUsIHBhZ2Vfbm89JXp1XSwgYnVmX2ZyYW1lX3Rbc3BhY2VfaWQ9JXp1LCBwYWdlX25vPSV6dV0sIGZpbGU9JXMARml4ZWQgd3JvbmcgcGFnZV9pZCB3aXRoIHN5bmMgcmVhZDogYnVmX2Jsb2NrX3Rbc3BhY2VfaWQ9JXp1LCBwYWdlX25vPSV6dV0sIGJ1Zl9mcmFtZV90W3NwYWNlX2lkPSV6dSwgcGFnZV9ubz0lenVdLCBmaWxlPSVzLCByZXRyeT0lenUAV3JvbmcgcGFnZV9pZCBhZnRlciBzeW5jIHJlYWQ6IGJ1Zl9ibG9ja190W3NwYWNlX2lkPSV6dSwgcGFnZV9ubz0lenVdLCBidWZfZnJhbWVfdFtzcGFjZV9pZD0lenUsIHBhZ2Vfbm89JXp1XSwgZmlsZT0lcywgcmV0cnk9JXp1AFN5bmMgcmVhZCB0byBmaXggd3JvbmcgcGFnZV9pZCBmYWlsZWQ6IGJ1Zl9ibG9ja190W3NwYWNlX2lkPSV6dSwgcGFnZV9ubz0lenVdLCBmaWxlPSVzLCBlcnI9JXp1LCByZXRyeT0lenUAQ2Fubm90IHN0YXJ0IHJlcGxpY2F0aW9uIGNoYW5uZWwgJyVzJyBiZWNhdXNlICVzLgBUaGUgY2VydGlmaWNhdGlvbiBpbmZvcm1hdGlvbiwgcGFydCBvZiB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24gdG8gdGhlIG5ldyBtZW1iZXIgam9pbiB0aGUgZ3JvdXAsIGlzIHRvbyBiaWcgYW5kIGNhbm5vdCBiZSBzZW5kLiBQbGVhc2Ugd2FpdCB1bnRpbCB0aGUgdmFsdWUgb2YgdGhlIGNvbHVtbiBDT1VOVF9UUkFOU0FDVElPTlNfUk9XU19WQUxJREFUSU5HIG9mIHRoZSB0YWJsZSBwZXJmb3JtYW5jZV9zY2hlbWEucmVwbGljYXRpb25fZ3JvdXBfbWVtYmVyX3N0YXRzIGRlY3JlYXNlcyBhbmQgdHJ5IHRvIGpvaW4gdGhlIG5ldyBtZW1iZXIgYWdhaW4uAFRoZSBtZW1iZXIgJXM6JXUgd2lsbCBiZSB0aGUgb25lIHNlbmRpbmcgdGhlIHJlY292ZXJ5IG1ldGFkYXRhIG1lc3NhZ2UuAFRoaXMgbWVtYmVyICVzOiV1IHdpbGwgYmUgdGhlIG9uZSBzZW5kaW5nIHRoZSByZWNvdmVyeSBtZXRhZGF0YSBtZXNzYWdlLgBFcnJvciBpbml0aWFsaXppbmcgdGhlICVzIGNvbXByZXNzaW9uIGNvbnRleHQuIERhdGEgY2Fubm90IGJlIGNvbXByZXNzZWQuAEVycm9yIHdoaWxlIGNvbXByZXNzaW5nIGRhdGEgdXNpbmcgJXMgY29tcHJlc3Npb24uIERhdGEgY2Fubm90IGJlIGRlY29tcHJlc3NlZC4ARXJyb3IgdW5rbm93biBDb21wcmVzc2lvbiBMaWJyYXJ5IHJlcXVlc3RlZC4ARXJyb3Igd2hpbGUgY29tcHJlc3NpbmcgZGF0YSB1c2luZyAlcyBjb21wcmVzc2lvbi4gVGhlIG9wZXJhdGlvbiBjb3VsZCBub3QgYmUgcGVyZm9ybWVkIGFzIGJ1ZmZlciBzaXplIGV4Y2VlZGVkIGNvbmZpZ3VyZWQgbWF4aW11bSBzaXplLiBQbGVhc2Ugd2FpdCB1bnRpbCB0aGUgdmFsdWUgb2YgdGhlIGNvbHVtbiBDT1VOVF9UUkFOU0FDVElPTlNfUk9XU19WQUxJREFUSU5HIG9mIHRoZSB0YWJsZSBwZXJmb3JtYW5jZV9zY2hlbWEucmVwbGljYXRpb25fZ3JvdXBfbWVtYmVyX3N0YXRzIGRlY3JlYXNlcyBhbmQgdHJ5IHRvIGpvaW4gdGhlIG5ldyBtZW1iZXIgYWdhaW4uAEVycm9yIHdoaWxlIGNvbXByZXNzaW5nIGRhdGEgdXNpbmcgJXMgY29tcHJlc3Npb24uIFRoZSBvcGVyYXRpb24gY291bGQgbm90IGJlIHBlcmZvcm1lZCBhcyBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQuAEVycm9yIGluaXRpYWxpemluZyB0aGUgJXMgZGVjb21wcmVzc2lvbiBjb250ZXh0LiBEYXRhIGNhbm5vdCBiZSBkZWNvbXByZXNzZWQuAEVycm9yIHdoaWxlIGRlY29tcHJlc3NpbmcgZGF0YSB1c2luZyAlcyBjb21wcmVzc2lvbi4gVGhlIG9wZXJhdGlvbiBjb3VsZCBub3QgYmUgcGVyZm9ybWVkIGFzIGJ1ZmZlciBzaXplIGV4Y2VlZGVkIGNvbmZpZ3VyZWQgbWF4aW11bSBzaXplLiBQbGVhc2Ugd2FpdCB1bnRpbCB0aGUgdmFsdWUgb2YgdGhlIGNvbHVtbiBDT1VOVF9UUkFOU0FDVElPTlNfUk9XU19WQUxJREFUSU5HIG9mIHRoZSB0YWJsZSBwZXJmb3JtYW5jZV9zY2hlbWEucmVwbGljYXRpb25fZ3JvdXBfbWVtYmVyX3N0YXRzIGRlY3JlYXNlcyBhbmQgdHJ5IHRvIGpvaW4gdGhlIG5ldyBtZW1iZXIgYWdhaW4uAEVycm9yIHdoaWxlIGRlY29tcHJlc3NpbmcgZGF0YSB1c2luZyAlcyBjb21wcmVzc2lvbi4gVGhlIG9wZXJhdGlvbiBjb3VsZCBub3QgYmUgcGVyZm9ybWVkIGFzIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZC4ARXJyb3Igd2hpbGUgZGVjb21wcmVzc2luZyBkYXRhIHVzaW5nICVzIGNvbXByZXNzaW9uLiBUaGUgb3BlcmF0aW9uIGNvdWxkIG5vdCBiZSBwZXJmb3JtZWQgYXMgYWxsIHRoZSBpbnB1dCBwcm92aWRlZCB0byBkZWNvbXByZXNzIGlzIGNvbnN1bWVkLCBidXQgdGhlIGRlY29tcHJlc3NlZCBvdXRwdXQgcHJvZHVjZWQgaXMgbGVzcyB0aGFuIHJlcXVpcmVkLgBFcnJvciB3aGlsZSBkZWNvbXByZXNzaW5nIGRhdGEgdXNpbmcgJXMgY29tcHJlc3Npb24uIFRoZSBvcGVyYXRpb24gY291bGQgbm90IGJlIHBlcmZvcm1lZCBhcyB0aGUgY29tcHJlc3Npb24gbGlicmFyeSByZXBvcnRlZCBhbiBlcnJvci4ARXJyb3Igd2hpbGUgZGVjb21wcmVzc2luZyBkYXRhIHVzaW5nICVzIGNvbXByZXNzaW9uLiBUaGUgb3BlcmF0aW9uIGNvdWxkIG5vdCBiZSBwZXJmb3JtZWQgYXMgbm8gbW9yZSBpbnB1dCBieXRlcyByZW1haW5pbmcgdG8gZGVjb21wcmVzcy4gVGhlIGRlY29tcHJlc3NlZCBvdXRwdXQgaGFzIG5vdCBiZWVuIGNoYW5nZWQuAEVycm9yIHdoaWxlIGRlY29tcHJlc3NpbmcgZGF0YSB1c2luZyAlcyBjb21wcmVzc2lvbi4gRGF0YSBjYW5ub3QgYmUgZGVjb21wcmVzc2VkLgBWaWV3X2NoYW5nZV9sb2dfZXZlbnQgd2lsbCBub3QgYmUgbG9nZ2VkIGZ1cnRoZXIgb24gdGhlIGJpbmFyeSBsb2csIGFzIGFsbCBtZW1iZXJzIG9mIHRoZSBncm91cCBhcmUgOC4zLjAgb3IgZ3JlYXRlci4ARXJyb3Igd2hpbGUgcGFyc2luZyBzZXJpYWx6ZWQgQ2VydGlmaWNhdGlvbl9pbmZvIGZyb20gcmVjZWl2ZWQgUmVjb3ZlcnkgTWV0YWRhdGEgdG8gUHJvdG9idWYgZm9ybWF0IHVzaW5nIFByb3RvYnVmIGxpYnJhcnkuAEVycm9yIHdoaWxlIHNlcmlhbGl6aW5nICUgZGF0YSB1c2luZyBQcm90b2J1ZiBsaWJyYXJ5LgBFcnJvciByZWNlaXZlZCB3aGlsZSB0aGUgUmVjb3ZlcnkgdGhyZWFkIHdhcyB3YWl0aW5nIGZvciB0aGUgUmVjb3ZlcnkgTWV0YWRhdGEuIFRoZSBSZWNvdmVyeSB3aWxsIGJlIHRlcm1pbmF0ZWQuAEVycm9yIGZldGNoaW5nIEFGVEVSX0dUSURTIGZyb20gUmVjb3ZlcnkgTWV0YWRhdGEgYnkgUmVjb3ZlcnkgdGhyZWFkLiBUaGUgUmVjb3ZlcnkgdGhyZWFkIHRpbWVvdXQgYWZ0ZXIgd2FpdGluZyBmb3IgJWQgc2Vjb25kcy4gVGhlIFJlY292ZXJ5IHdpbGwgYmUgdGVybWluYXRlZC4ARXJyb3Igd2hpbGUgZGVjb2RpbmcgdGhlIHJlY2VpdmVkIFJlY292ZXJ5IE1ldGFkYXRhIE1lc3NhZ2UuIFRoZSByZWNlaXZlZCBwYXlsb2FkIGlzIGVtcHR5IHdoaWNoIGNvdWxkIGJlIGR1ZSB0byBlcnJvciBpbiBkZWNvZGluZyBvZiByZWNlaXZlZCBSZWNvdmVyeSBNZXRhZGF0YSBNZXNzYWdlLiBUaGUgam9pbmluZyBtZW1iZXIgd2lsbCBsZWF2ZSB0aGUgZ3JvdXAuAFRoZSAlcyBwYXlsb2FkIHR5cGUgb2YgdGhlIHJlY2VpdmVkIFJlY292ZXJ5IE1ldGFkYXRhIE1lc3NhZ2UgaXMgZW1wdHkuAEVycm9yIHJlYWRpbmcgZ3RpZF9leGVjdXRlZCBmcm9tIHRoZSByZWNlaXZlZCBSZWNvdmVyeSBNZXRhZGF0YSBNZXNzYWdlLgBFcnJvciB3aGlsZSBkZWNvZGluZyB0aGUgcmVjZWl2ZWQgUmVjb3ZlcnkgTWV0YWRhdGEgTWVzc2FnZS4AVGhlIGdyb3VwIHdhcyB1bmFibGUgdG8gc2VuZCB0aGUgUmVjb3ZlcnkgTWV0YWRhdGEgdG8gYSBqb2luaW5nIG1lbWJlci4ARXJyb3Igd2hpbGUgc2F2aW5nIGNvcHkgb2YgUmVjb3ZlcnkgTWV0YWRhdGEgTWVzc2FnZS4ARXJyb3Igd2hpbGUgcHJvY2Vzc2luZyByZWNlaXZlZCBDZXJ0aWZpY2F0aW9uIEluZm9ybWF0aW9uIGZyb20gdGhlIFJlY292ZXJ5IE1ldGFkYXRhIE1lc3NhZ2UuAEVycm9yIENlcnRpZmljYXRpb24gSW5mb3JtYXRpb24gcGFja2V0IGZyb20gdGhlIHJlY2VpdmVkIFJlY292ZXJ5IE1ldGFkYXRhIE1lc3NhZ2UgaXMgZW1wdHkuAEVycm9yIHdoaWxlIHNlbmRpbmcgUmVjb3ZlcnkgbWV0YWRhdGEgZXJyb3IgbWVzc2FnZS4gSWYgdGhpcyBpcyBhIHRlbXBvcmFyeSBmYWlsdXJlIG9mIHNlbmQgbWVzc2FnZSBhbmQgbWVtYmVyIGl0c2VsZiBoYXNuJ3QgbGVmdCB0aGUgZ3JvdXAsIHRoZW4gam9pbmVyIHdpbGwgdGltZW91dCB3YWl0aW5nIGZvciBSZWNvdmVyeSBtZXRhZGF0YSBtZXNzYWdlLiBJZiB0aGlzIGlzIGEgcGVybWFuZW50IGZhaWx1cmUsIHRoZSBtZW1iZXIgd2lsbCBsZWF2ZSB0aGUgZ3JvdXAgYW5kIGFub3RoZXIgbWVtYmVyIHdpbGwgc2VuZCB0aGUgUmVjb3ZlcnkgbWV0YWRhdGEgbWVzc2FnZS4ARXJyb3Igd2hlbiB0cmFuc2ZlcnJpbmcgUmVjb3ZlcnkgTWV0YWRhdGEgTWVzc2FnZSB0byBSZWNvdmVyeS4gVGhlIGpvaW5pbmcgbWVtYmVyIHdpbGwgbGVhdmUgdGhlIGdyb3VwLgBFcnJvciBDZXJ0aWZpY2F0aW9uIG1vZHVsZSB3YXNuJ3QgcHJvcGVybHkgaW5pdGlhbGl6ZWQuAEVycm9yIFJlY292ZXJ5IE1ldGFkYXRhIE1lc3NhZ2UgbW9kdWxlIHdhc24ndCBwcm9wZXJseSBpbml0aWFsaXplZC4ARXJyb3Igd2hpbGUgJXMuIFRoZSBvcGVyYXRpb24gY291bGQgbm90IGJlIHBlcmZvcm1lZCBhcyBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQuAFRoZSBncm91cCByZXBsaWNhdGlvbiByZWNvdmVyeSBpcyBza2lwcGVkIGFzIHRoZSBqb2luZXIncyBndGlkIGV4ZWN1dGVkIHNldCAlcyBhbHJlYWR5IGhhcyBhbGwgdGhlIHRyYW5zYWN0aW9ucyBvZiB0aGUgZG9ub3IncyBndGlkIHNldCAlcy4ARXJyb3IgaW4gR3JvdXAgUmVwbGljYXRpb24gUmVjb3Zlcnkgd2hpbGUgZ2V0dGluZyBtZW1iZXIncyBnbG9iYWwgR1RJRCBleGVjdXRlZCBzZXQuAEVycm9yIGluIEdyb3VwIFJlcGxpY2F0aW9uIFJlY292ZXJ5IHdoaWxlIGFkZGluZyBHVElEcyBpbiBzdHJpbmcgZm9ybWF0IHRvIEd0aWRfc2V0LgBFcnJvciBjb21wdXRpbmcgdGhlIGN1cnJlbnQgUmVjb3ZlcnkgbWV0YWRhdGEgc2VuZGVyLiBDaGVjayBpZiB0aGlzIE1FTUJFUiBpcyBub3QgbGVhdmluZyB0aGUgZ3JvdXAgYW5kIHRoZSBqb2luZXIgaXMgYWJsZSB0byBzdWNjZXNzZnVsbHkgZmV0Y2ggdGhlIHJlY292ZXJ5IG1ldGFkYXRhIG9yIG5vdC4ARXJyb3IgaW4gdGhlIHJlY2VpdmVkIFJlY292ZXJ5IE1ldGFkYXRhIE1lc3NhZ2UgdGhlIG51bWJlciBvZiBjb21wcmVzc2VkIENlcnRpZmljYXRpb24gSW5mb3JtYXRpb24gcGFja2V0IGNvdW50IG1pc21hdGNoIHdpdGggdGhlIG51bWJlciBvZiBzZW50IGNvbXByZXNzZWQgQ2VydGlmaWNhdGlvbiBJbmZvcm1hdGlvbiBwYWNrZXRzLgBFcnJvciB3aGlsZSBlbmNvZGluZyBDZXJ0aWZpY2F0aW9uIEluZm9ybWF0aW9uIGZvciB0aGUgUmVjb3ZlcnkgTWV0YWRhdGEgTWVzc2FnZS4AVGhlcmUgYXJlIG5vIHZhbGlkIHJlY292ZXJ5IG1ldGFkYXRhIGRvbm9ycy4gVGhlIGpvaW5pbmcgbWVtYmVyIHdpbGwgbGVhdmUgdGhlIGdyb3VwLgBObyBkb25vciBhdmFpbGFibGUgdG8gcHJvdmlkZSB0aGUgY2VydGlmaWNhdGlvbiBpbmZvcm1hdGlvbiwgcGFydCBvZiB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24gdG8gdGhlIG5ldyBtZW1iZXIgam9pbiB0aGUgZ3JvdXAuIFBsZWFzZSB3YWl0IHVudGlsIHRoZXJlIGFyZSBPTkxJTkUgbWVtYmVycyBvbiB0aGUgZ3JvdXAgYW5kIHRyeSB0byBqb2luIHRoZSBuZXcgbWVtYmVyIGFnYWluLgBUaGUgZ3JvdXAgcmVwbGljYXRpb24gcmVjb3ZlcnkgaXMgY29tcGxldGUsIGpvaW5lciBndGlkIGV4ZWN1dGVkIHNldCBoYXMgYWxsIHRoZSB0cmFuc2FjdGlvbnMgb2YgdGhlIGRvbm9yJ3MgZ3RpZCBzZXQgJXMuAFRoZSBNb25pdG9yIElPIHRocmVhZCBlbmNvdW50ZXJlZCBhbiBlcnJvciB3aGlsZSBleGVjdXRpbmcgdGhlIHF1ZXJ5IHRvIGNoZWNrIGNvbm5lY3Rpb24gdG8gdGhlIHNvdXJjZSBzZXJ2ZXIuIEVycm9yOiAlcy4gVGhlIHF1ZXJ5IGZhaWxlZCB0byBleGVjdXRlIG9uIHRoZSBzb3VyY2UgKGhvc3Q6JXMgcG9ydDoldSBuZXR3b3JrX25hbWVzcGFjZTolcykgZm9yIGNoYW5uZWwgJyVzJy4AVGhlIE1vbml0b3IgSU8gdGhyZWFkIGZhaWxlZCB0byBkZXRlY3QgaWYgdGhlIHNvdXJjZSBiZWxvbmdzIHRvIHRoZSBncm91cCBtYWpvcml0eS4gRXJyb3I6ICVzLiBUaGUgcXVlcnkgZmFpbGVkIHRvIGV4ZWN1dGUgb24gdGhlIHNvdXJjZSAoaG9zdDolcyBwb3J0OiV1IG5ldHdvcmtfbmFtZXNwYWNlOiVzKSBmb3IgY2hhbm5lbCAnJXMnLgBUaGUgcmVwbGljYSBJTyB0aHJlYWQgZmFpbGVkIHRvIGRldGVjdCBpZiB0aGUgc291cmNlIGJlbG9uZ3MgdG8gdGhlIGdyb3VwIG1ham9yaXR5LiBFcnJvcjogJXMuIFRoZSBxdWVyeSBmYWlsZWQgdG8gZXhlY3V0ZSBvbiB0aGUgc291cmNlIChob3N0OiVzIHBvcnQ6JXUgbmV0d29ya19uYW1lc3BhY2U6JXMpIGZvciBjaGFubmVsICclcycuAFRoZSBNb25pdG9yIElPIHRocmVhZCBmYWlsZWQgdG8gZ2V0IGdyb3VwIG1lbWJlcnNoaXAgZGV0YWlscy4gRXJyb3I6ICVzLiBUaGUgcXVlcnkgZmFpbGVkIHRvIGV4ZWN1dGUgb24gdGhlIHNvdXJjZSAoaG9zdDolcyBwb3J0OiV1IG5ldHdvcmtfbmFtZXNwYWNlOiVzKSBmb3IgY2hhbm5lbCAnJXMnLgBUYWJsZXNwYWNlICcldScgbWVudGlvbmVkIGluIHRoZSByZWRvIGxvZyBpcyBjb3JydXB0ZWQgaW4gYSB3YXkgaXQgaXMgdW5yZWNvdmVyYWJsZSBieSBkb3VibGUtd3JpdGUgYnVmZmVyLCBzbyBmdXJ0aGVyIHJlZG8gbG9nIHJlY292ZXJ5IGlzIG5vdCBwb3NzaWJsZSEAJXM6IEZhaWxlZCB0byBzYXZlIHN0YXRpc3RpY3MgZm9yIHRhYmxlPSVzIGVycj0lenUASW52YWxpZCBmbHVzaCBpbnRlcnZhbCBzcGVjaWZpZWQ6ICVsdS4gVmFsaWQgdmFsdWVzIGFyZSAwIChvZmYpIG9yIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlZC4gQWRqdXN0aW5nIHRvICVkLgBDYW5ub3QgcmVnaXN0ZXIgdmFyaWFibGUgJyVzJy4nJXMnLgBNYXNraW5nIGNvbXBvbmVudCBmYWlsZWQgdG8gcmVnaXN0ZXIgbm90aWZpY2F0aW9uIHNlcnZpY2UuIFBlcmlvZGljYWwgbWFza2luZyBkaWN0aW9uYXJpZXMgZmx1c2ggd2lsbCBub3Qgd29yay4ARmFpbGVkIHRvIGRlY29kZSBHcm91cCBSZXBsaWNhdGlvbiBtZXNzYWdlOiAlcy4gUmVhc29uIDogJXMAVGhlIEFwcGxpZXIgcHJvY2VzcyBvZiBHcm91cCBSZXBsaWNhdGlvbiBmb3VuZCBhbiBlcnJvciBhbmQgd2FzIHJlcXVlc3RlZCB0byBzdG9wOiAlcwBDYW5ub3QgaW5zdGFsbCB0aGUgY29tcG9uZW50LgBDYW5ub3QgdW5pbnN0YWxsIHRoZSBsYW5ndWFnZSBjb21wb25lbnQ6ICVzLgBDYWxsaW5nIGNvbXBvbmVudCBzZXJ2aWNlOiAlcy4ASW50ZXJuYWwgZXJyb3Igd2hpbGUgJXMuAEludGVybmFsIFZNIEFQSSBmdW5jdGlvbiBmYWlsZWQ6ICVzLgBJbnRlcm5hbCBWTSBlcnJvciB3aGlsZSAlcy4AVGhlIHJlc291cmNlIGxpbWl0IGhhcyBiZWVuIGV4Y2VlZGVkLiBEZXRhaWxzOiAlcy4AVmFsdWUgZm9yIG9wdGlvbiAnJXMnIGNvbnRhaW5zIGNpcGhlciAnJXMnIHRoYXQgaXMgYmxvY2tlZC4gUGxlYXNlIHJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciBhbGxvd2VkIGNpcGhlcnMuAEtleXJpbmcgZmlsZSBwYXRoIGlzIGVtcHR5IGluIGNvbmZpZ3VyYXRpb24gZmlsZS4ARmFpbGVkIHRvIHJlYWQga2V5cmluZyBmaWxlOiAlcy4ARmFpbGVkIHRvIGRlY3J5cHQga2V5cmluZyBmaWxlOiAlcy4AVGhlIGtleXJpbmcgZmlsZSBjb250ZW50IGlzIG5vdCBpbiBhIHZhbGlkIEpTT04gZm9ybWF0LgBGYWlsZWQgdG8gZXh0cmFjdCBhIHZhbGlkIEpTT04gZGF0YSBmcm9tIGtleXJpbmcgZmlsZS4ARmFpbGVkIHRvIGV4dHJhY3Qga2V5IGZyb20ga2V5cmluZyBmaWxlIEpTT04gZGF0YS4AS2V5cmluZyBjb21wb25lbnQgaXMgbm90IGluaXRpYWxpemVkLgBQcm92aWRlZCBEYXRhIElEIGlzIGVtcHR5LgBGYWlsZWQgdG8gaW5pdGlhbGl6ZSBtZXRhZGF0YSBpdGVyYXRvci4ARmFpbGVkIHRvIGluaXRpYWxpemUga2V5IHJlYWRlciBpdGVyYXRvci4ARmFpbGVkIHRvIHJlYWQga2V5IGZyb20ga2V5IHJlYWRlciBpdGVyYXRvci4AJSpzAFN1Ym1pdCBhIGRldGFpbGVkIGJ1ZyByZXBvcnQgdG8gaHR0cDovL2J1Z3MubXlzcWwuY29tAEFVVE9fSU5DUkVNRU5UIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBET1VCTEUvRkxPQVQgZmllbGQuIFBsZWFzZSBjb25zaWRlciBmaXhpbmcgKFNjaGVtYTolcywgVGFibGU6JXMsIENvbHVtbjolcykuAERvd25ncmFkaW5nIHRoZSBzeXMgc2NoZW1hLgBEb3duZ3JhZGUgb2YgaGVscCB0YWJsZXMgJXMuAENvdWxkIG5vdCBmaW5kIGRhdGEgcG9pbnRlZCBieSBkYXRhX2lkOiAlcywgYXV0aF9pZDogJXMuIFNraXBwaW5nLgBGYWlsZWQgdG8gZGVhbGxvY2F0ZSByZWFkZXJfb2JqZWN0LgBBIGNvbm5lY3Rpb24gZnJvbSAlcyB3YXMgY2xvc2VkIGJ5IHRoZSBzZXJ2ZXIgZHVlIHRvIGEgdGltZW91dCBpbiB0aGUgY29tbXVuaWNhdGlvbiBsYXllciAodmlvOiVkLCBwYWNrZXQ6JWQpICVsZCBzZWNvbmRzIGFmdGVyIHRoZSBsYXN0IGNvbW1hbmQgc3RhcnRlZC4gQ3VycmVudGx5IGNvbmZpZ3VyZWQgd2FpdF90aW1lb3V0IGlzICVsZCBzZWNvbmRzLgBUaGUgbWVtYmVyIGlzIGNvbmZpZ3VyZWQgd2l0aCBhIGdyb3VwX3JlcGxpY2F0aW9uX3ByZWVtcHRpdmVfZ2FyYmFnZV9jb2xsZWN0aW9uIG9wdGlvbiB2YWx1ZSAnJWQnIGRpZmZlcmVudCBmcm9tIHRoZSBncm91cCAnJWQnLiBUaGUgbWVtYmVyIHdpbGwgbm93IGV4aXQgdGhlIGdyb3VwLgBTdGlsbCByb2xsaW5nIGJhY2sgdHJhbnNhY3Rpb24gJWxsdTsgJWxsdSB1bmRvIHJlY29yZHMgcm9sbGVkIGJhY2sgb3V0IG9mICVsbHUgdG90YWwgKCVsdSUlIGNvbXBsZXRlKS4gVHJhbnNhY3Rpb24gaW5mbzogbGFzdCBzdGF0ZTogJXMAU3RpbGwgcm9sbGluZyBiYWNrIHRyYW5zYWN0aW9uICVsbHU7ICVsbHUgdW5kbyByZWNvcmRzIHJvbGxlZCBiYWNrIG91dCBvZiAlbGx1IHRvdGFsICglbHUlJSBjb21wbGV0ZSkuAEludmFsaWQgZm9ybWF0IG9mIGZpbGUgJyVzJy4AUmVsYXkgbG9nIHNhbml0aXphdGlvbjogJXMARm9yZWlnbiBrZXkgJyUuNjRzJyBvbiB0YWJsZSAnJS42NHMnLiclLjY0cycgcmVmZXJzIHRvIG5vbi11bmlxdWUga2V5IG9yIHBhcnRpYWwga2V5LiBUaGlzIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgBEaXNhYmxpbmcgTVRMIGluIHRocmVhZCBncm91cCAldSBzaW5jZSBpdCBoYXMgJXUgKD1NVEwgcGVyIGdyb3VwKSBsb25nIHJ1bm5pbmcgdHJhbnNhY3Rpb25zLgBSZS1lbmFibGluZyBNVEwgaW4gdGhyZWFkIGdyb3VwICV1IHNpbmNlIGl0IGlzIGRvd24gdG8gJXUgbG9uZyBydW5uaW5nIHRyYW5zYWN0aW9ucy4AQ29sdW1uICclLjY0cy4lLjY0cy4lLjY0cycgaGF2aW5nIHByZWZpeCBrZXkgcGFydCAnJS42NHMoJXUpJyBpbiB0aGUgUEFSVElUSU9OIEJZIEtFWSgpIGNsYXVzZSBpcyBub3Qgc3VwcG9ydGVkLgBMb2dpbiB1c2VyOiAlc0AlcyAoZXh0ZXJuYWw6ICVzKSBhdXRoZW50aWNhdGVkIGFzOiAlcwBBY2Nlc3MgZGVuaWVkIGZvciB1c2VyICclcydAJyVzJywgbWlzc2luZyBwcm94eSBwcml2aWxlZ2UgdG8gJyVzJy4AQWNjZXNzIGRlbmllZCBmb3IgdXNlciAnJXMnQCclcycsIHByb3hpZWQgdXNlciAnJXMnIGRvZXNuJ3QgZXhpc3QuAERpc3RyaWJ1dGVkIHJlY292ZXJ5IHdpbGwgd2FpdCB1bnRpbCB0aGUgdHJhbnNhY3Rpb25zICclcycgY29udGFpbmVkIG9uIHRoZSAnZ3JvdXBfcmVwbGljYXRpb25fYXBwbGllcicgY2hhbm5lbCBhcmUgYXBwbGllZC4ARGlzdHJpYnV0ZWQgcmVjb3ZlcnkgZmluaXNoZWQgYXBwbHlpbmcgdGhlIHRyYW5zYWN0aW9ucyAnJXMnIGNvbnRhaW5lZCBvbiB0aGUgJ2dyb3VwX3JlcGxpY2F0aW9uX2FwcGxpZXInIGNoYW5uZWwuAFpTVEQgZGVjb21wcmVzc2lvbiBmYWlsZWQ6ICVzACVzAFVzaW5nIGlubm9kYl9mbHVzaF9tZXRob2Q9JXMAQnVsayBTY2FubmVyOiAlcwBDb21iaW5pbmcgdGhlIHN0b3JhZ2UgZW5naW5lcyAlLjY0cyBhbmQgJS42NHMgaXMgZGVwcmVjYXRlZCwgYnV0IHRoZSBzdGF0ZW1lbnQgb3IgdHJhbnNhY3Rpb24gdXBkYXRlcyBib3RoIHRoZSAlLjY0cyB0YWJsZSAlLjY0cy4lLjY0cyBhbmQgdGhlICUuNjRzIHRhYmxlICUuNjRzLiUuNjRzLgBGYWlsZWQgdG8gdXBkYXRlIGRhdGEgZGlyZWN0b3J5IGZsYWcgZm9yIGRkIHRhYmxlIHdpdGggdGFibGVzcGFjZSBpZCAnJWxsdScgd2hlbiBpYmQgZmlsZSBmb3IgJyVzJyBpcyBtb3ZlZCB0byBuZXcgbG9jYXRpb24gJyVzJyBkdXJpbmcgc2VydmVyIHNodXRkb3duACVzIEREIElEOiAlbGx1IC0gVGFibGVzcGFjZSAldSwgbmFtZSAnJXMnLCBmb3VuZCBhdCAnJXMnIG91dHNpZGUgZGVmYXVsdCBkYXRhIGRpcmVjdG9yeSwgYnV0IEREIG1pc3NlcyBpbmZvIGFib3V0IERBVEEgRElSRUNUT1JZAFVwb24gcmVjb25uZWN0aW9uIHdpdGggdGhlIHJlcGxpY2EsIHdoaWxlIGluaXRpYWxpemluZyB0aGUgZHVtcCB0aHJlYWQgZm9yICVzIDwlcz4sIGFuIGV4aXN0aW5nIGR1bXAgdGhyZWFkIHdpdGggdGhlIHNhbWUgJXMgd2FzIGRldGVjdGVkLiBUaGUgc291cmNlIGlzIHRlcm1pbmF0aW5nIHRoZSBwcmV2aW91cyBkdW1wIHRocmVhZCAoJXUpLCB3aGljaCBpcyBub3JtYWwgYW5kIGV4cGVjdGVkLgBUaGUgdHJhbnNhY3Rpb24gJyUtLjE5MnMnIHdpbGwgY29tbWl0IG91dCBvZiBvcmRlciB3aXRoIHJlc3BlY3QgdG8gaXRzIHNvdXJjZSB0byBmb2xsb3cgdGhlIGdyb3VwIGdsb2JhbCBvcmRlci4AVGVtcHRhYmxlOiAlcwBGYWlsZWQgdG8gcmVjcmVhdGUgYSBjYWNoZSBvbiBpbmZvIGZpbGUgKGZpbGUgJyVzJykAJXMAJXMAQ2Fubm90IGNyZWF0ZSBjb21wcmVzc2lvbiBkaWN0aW9uYXJ5IHRhYmxlcyBpbiAlcyVzcmVhZC1vbmx5IG1vZGUuACVzACVzAFRhYmxlICVzIGlzIGVuY3J5cHRlZCBidXQgZGVjcnlwdGlvbiBmYWlsZWQuIFNlZW1zIHRoYXQgdGhlIGVuY3J5cHRpb24ga2V5IGZldGNoZWQgZnJvbSBrZXlyaW5nIGlzIG5vdCB0aGUgY29ycmVjdCBvbmUuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3Qga2V5cmluZz8AVGFibGVzcGFjZSBpZCAldSBpbiBmaWxlICVzIGlzIGVuY3J5cHRlZCBidXQga2V5cmluZyBvciB1c2VkIGtleV9pZCAldSBpcyBub3QgYXZhaWxhYmxlLiBDYW4ndCBjb250aW51ZSByZWFkaW5nIHRhYmxlLiBQbGVhc2UgcHJvdmlkZSB0aGUgY29ycmVjdCBrZXlyaW5nLgBXYWl0aW5nIGZvciBrZXlyaW5nIGVuY3J5cHRpb24gdGhyZWFkcyB0byBleGl0ACVzAEtleSByb3RhdGlvbiBvZiBlbmNyeXB0ZWQgc2Vzc2lvbiB0ZW1wb3JhcnkgdGFibGVzcGFjZSAlcyBmYWlsZWQAJXMAVXBncmFkZSBpcyBub3QgcG9zc2libGUgYXMgdGhlcmUgYXJlIHRhYmxlcyB0aGF0IGFyZSBLRVJZSU5HIGVuY3J5cHRlZC4gS0VZUklORyBlbmNyeXB0aW9uIGlzIHN0aWxsIGV4cGVyaW1lbnRhbCBmZWF0dXJlIGluIHRoZSB2ZXJzaW9uIHlvdSBhcmUgdXBncmFkaW5nIGZyb20uIFRvIHVwZ3JhZGUgcGxlYXNlIGRlY3J5cHQgdGhlIHRhYmxlcyBlbmNyeXB0ZWQgd2l0aCBLRVlSSU5HIGVuY3J5cHRpb24uAFJlZG8gbG9nIGVuY3J5cHRpb24gbW9kZSBjYW4ndCBiZSBzd2l0Y2hlZCB3aXRob3V0IHN0b3BwaW5nIHRoZSBzZXJ2ZXIgYW5kIHJlY3JlYXRpbmcgdGhlIHJlZG8gbG9ncy4gQ3VycmVudCBtb2RlIGlzICVzLCByZXF1ZXN0ZWQgJXMuAFJlZG8gbG9nIGtleSBnZW5lcmF0aW9uIGZhaWxlZC4ARmFpbGVkIHRvIGVuY3J5cHQgcmVkbyBsb2cgdGFibGVzcGFjZS4ARmFpbGVkIHRvIGxvYWQgcmVkbyBrZXkgdmVyc2lvbiAldQBDb3VsZG4ndCBmZXRjaCBuZXdseSBnZW5lcmF0ZWQgcmVkbyBrZXkuAENvdWxkbid0IHBhcnNlIHN5c3RlbSBrZXk6ICVzAFJlZG8gbG9nIGNhbm5vdCBiZSBlbmNyeXB0ZWQgaWYgdGhlIGtleXJpbmcgaXMgbm90IGxvYWRlZC4AVW5kbyBsb2cgY2FuJ3QgYmUgZW5jcnlwdGVkIGlmIHRoZSBrZXlyaW5nIGlzIG5vdCBsb2FkZWQuAENvdWxkbid0IGZldGNoIGRlZmF1bHQgcGVyY29uYV9yZWRvIGtleS4gUGxlYXNlIGNoZWNrIGlmIGtleXJpbmcgaXMgb3BlcmF0aW9uYWwuAFVwZ3JhZGUgY2Fubm90IGNvbnRpbnVlIGFzIHJlZG8gaXMgZW5jcnlwdGVkIHdpdGggb2xkLCBleHBlcmltZW50YWwgdmVyc2lvbiBvZiBLRVlSSU5HIGVuY3J5cHRpb24uIFBsZWFzZSBwZXJmb3JtIHNsb3cgc2h1dGRvd24gYW5kIHJlbW92ZSBvbGQgcmVkbyBsb2cgZmlsZXMgYmVmb3JlIHVwZ3JhZGluZy4AVGFibGVzcGFjZSBpZCAldSBpbiBmaWxlICVzIGlzIGVuY3J5cHRlZC4gQWx0aG91Z2ggc2VydmVyIG1hbmFnZWQgdG8gZmluZCBrZXlfaWQ9JXUgaW4ga2V5cmluZyB0byBkZWNyeXB0IGl0LCBzb21lIHZlcnNpb25zIG9mIHRoaXMga2V5LCB0aGF0IGFyZSBuZWVkZWQgdG8gZGVjcnlwdCB0aGlzIHNwYWNlLCBhcmUgbWlzc2luZy4gTWF5YmUgeW91IGFyZSB1c2luZyBhbiBvbGQga2V5cmluZz8gQ2FuJ3QgY29udGludWUgcmVhZGluZyB0YWJsZS4gUGxlYXNlIHByb3ZpZGUgdGhlIGNvcnJlY3Qga2V5cmluZy4AVGFibGVzcGFjZSBpZCAldSBpbiBmaWxlICVzIGlzIGVuY3J5cHRlZC4gQWx0aG91Z2ggc2VydmVyIG1hbmFnZWQgdG8gZmluZCBhbGwgbmVlZGVkIHZlcnNpb25zIG9mIGtleV9pZD0ldSBpbiBrZXlyaW5nIHRvIGRlY3J5cHQgaXQsIHRoZSBwcm92aWRlZCB2ZXJzaW9ucyBhcmUgZWl0aGVyIGluY29ycmVjdCBvciBjb3JydXB0ZWQuIENhbid0IGNvbnRpbnVlIHJlYWRpbmcgdGFibGUuIFBsZWFzZSBwcm92aWRlIHRoZSBjb3JyZWN0IGtleXJpbmcuAFRhYmxlc3BhY2UgaWQgJXUgaXMgZW5jcnlwdGVkIGJ1dCBrZXlyaW5nIG9yIHVzZWQga2V5X2lkICV1IGlzIG5vdCBhdmFpbGFibGUuIENhbid0IGNvbnRpbnVlIHJlYWRpbmcgdGFibGUuIFBsZWFzZSBwcm92aWRlIHRoZSBjb3JyZWN0IGtleXJpbmcuAFRhYmxlc3BhY2UgaWQgJXUgaXMgZW5jcnlwdGVkLiBBbHRob3VnaCBzZXJ2ZXIgbWFuYWdlZCB0byBmaW5kIGtleV9pZD0ldSBpbiBrZXlyaW5nIHRvIGRlY3J5cHQgaXQsIHNvbWUgdmVyc2lvbnMgb2YgdGhpcyBrZXksIHRoYXQgYXJlIG5lZWRlZCB0byBkZWNyeXB0IHRoaXMgc3BhY2UsIGFyZSBtaXNzaW5nLiBNYXliZSB5b3UgYXJlIHVzaW5nIGFuIG9sZCBrZXlyaW5nPyBDYW4ndCBjb250aW51ZSByZWFkaW5nIHRhYmxlLiBQbGVhc2UgcHJvdmlkZSB0aGUgY29ycmVjdCBrZXlyaW5nLgBUYWJsZXNwYWNlIGlkICV1IGlzIGVuY3J5cHRlZC4gQWx0aG91Z2ggc2VydmVyIG1hbmFnZWQgdG8gZmluZCBhbGwgbmVlZGVkIHZlcnNpb25zIG9mIGtleV9pZD0ldSBpbiBrZXlyaW5nIHRvIGRlY3J5cHQgaXQsIHRoZSBwcm92aWRlZCB2ZXJzaW9ucyBhcmUgZWl0aGVyIGluY29ycmVjdCBvciBjb3JydXB0ZWQuIENhbid0IGNvbnRpbnVlIHJlYWRpbmcgdGFibGUuIFBsZWFzZSBwcm92aWRlIHRoZSBjb3JyZWN0IGtleXJpbmcuAERlbGF5aW5nIHRydW5jYXRlIG9mIHVuZG8gdGFibGVzcGFjZSAlcyBkdWUgdG8gbG9jayB0YWJsZXMgZm9yIGJhY2t1cC4AWCBwbHVnaW4gZmFpbGVkIHRvIHJlZ2lzdGVyIFNTTCByZWxvYWQgY2FsbGJhY2suIEFMVEVSIElOU1RBTkNFIFJFTE9BRCBUTFMgd2lsbCBoYXZlIG5vIGVmZmVjdCBvbiB0aGUgcGx1Z2luLgBLZXlyaW5nIGNvbmZpZ3VyYXRpb24gZG9lc24ndCBleGlzdHM6ICVzAEtleXJpbmcgY29uZmlndXJhdGlvbiBKU09OIHBhcnNlIGVycm9yOiAlcyAoJWx1KQBUYWJsZSAnJXMuJXMnIHJlcXVpcmVzIHRoZSAnJXMnIHN0b3JhZ2UgZW5naW5lLCB3aGljaCB3YXMgcmVtb3ZlZCBpbiBQZXJjb25hIFNlcnZlciA4LjAuMjgALS0lcyBpcyBzZXQgdG8gTlVMTC4gRHluYW1pYyBsb2cgZmlsZXMgY2FuIGJlIHNhdmVkIGFueXdoZXJlLCBwb3NzaWJseSBvdmVyd3JpdGluZyBvdGhlciBmaWxlcy4AS01TIGNvbW11bmljYXRpb24gZXJyb3I6ICVzAFVwZ3JhZGUgZmFpbGVkLCByZWNyZWF0aW5nIHJlZG8gbG9ncyB3aXRoIHByZXZpb3VzIHZlcnNpb24AQ291bGQgbm90IGFkZCBldmVudCBydWxlICclcycgdG8gLS1yZXBsaWNhLWVuYWJsZS1ldmVudC4gJXMARmxvdyBjb250cm9sIGF1dG8gZXZpY3QgdGltZW91dCByZWFjaGVkLiBUaGUgc2VydmVyIHdpbGwgbm93IGxlYXZlIHRoZSBncm91cC4AVG1wX3RhYmxlX3NpemUgaXMgc2V0IGJlbG93IDFNaUIuIFRoZSBURU1QVEFCTEUgZW5naW5lIHJlcXVpcmVzIGF0IGxlYXN0IDFNaUIgdGFibGUgc2l6ZSwgYW5kIHdpbGwgdXNlIHRoYXQgdmFsdWUgaW5zdGVhZC4gUGxlYXNlIGluY3JlYXNlIHRoZSBsaW1pdCB0byBzaWxlbmNlIHRoaXMgd2FybmluZy4ARmFpbGluZyBjb25uZWN0aW9uIGF0dGVtcHRzIHRocmVzaG9sZCByZWFjaGVkIGZvciAlcwBGYWlsaW5nIGNvbm5lY3Rpb24gYXR0ZW1wdHMgdGhyZXNob2xkIHJlYWNoZWQgZm9yICVzLCBmdXJ0aGVyIG1lc3NhZ2VzIHdpbGwgYmUgc3VwcHJlc3NlZCBmb3IgbmV4dCAlbGx1IHNlY29uZHMARGVsYXllZCAlbGx1IGNvbm5lY3Rpb24gYXR0ZW1wdHMgZHVyaW5nIGxhc3QgJWxsdSBzZWNvbmRzAFRoZSAtLXNlY3VyZS1maWxlLXBhdGggaXMgY29uZmlndXJlZCwgJXMgbXVzdCBiZSBzZXQgYWNjb3JkaW5nbHkuAEluaXRpYWxpemluZyBBdWRpdCBFdmVudCBGaWx0ZXIuLi4AVW5pbnN0YWxsZWQgQXVkaXQgRXZlbnQgRmlsdGVyAEZhaWxlZCB0byBjaGVjay9nZW5lcmF0ZSBlbmNyeXB0aW9uIHBhc3N3b3JkAEZhaWxlZCB0byBpbml0IEFVRElUX0FCT1JUX0VYRU1QVCBwcml2aWxlZ2UARmFpbGVkIHRvIGNyZWF0ZSBVREZzIGhhbmRsZXIgaW5zdGFuY2UARmFpbGVkIHRvIGluaXQgVURGcwBGYWlsZWQgdG8gY3JlYXRlIGF1ZGl0IHJ1bGUgcmVnaXN0cnkgaW5zdGFuY2UARmFpbGVkIHRvIGluaXQgcmVjb3JkIGZvcm1hdHRlcgBGYWlsZWQgdG8gaW5pdCBsb2cgd3JpdGVyAENhbm5vdCBvcGVuIGxvZyB3cml0ZXIsIGVycm9yOiAlcwBGYWlsZWQgdG8gY3JlYXRlIGxvZyByZWFkZXIgaW5zdGFuY2UARmFpbGVkIHRvIGluaXQgY29tcG9uZW50AEF1ZGl0IExvZyBGaWx0ZXIgaXMgZGlzYWJsZWQuIEVuYWJsZSBpdCB3aXRoIGF1ZGl0X2xvZ19maWx0ZXIuZGlzYWJsZSA9IGZhbHNlLgBGYWlsZWQgdG8gY2hlY2sgZmlsdGVyaW5nIHJ1bGUgbmFtZSBleGlzdGVuY2UARmFpbGVkIHRvIHJlbW92ZSBmaWx0ZXIgJyVzJyBmcm9tIHVzZXJzIHRhYmxlAEZhaWxlZCB0byByZW1vdmUgZmlsdGVyICclcycARmFpbGVkIHRvIGNoZWNrIGZpbHRlcmluZyBydWxlIG5hbWUgZXhpc3RlbmNlAFVua25vd24gZmlsdGVyaW5nIHJ1bGUgbmFtZSAnJXMnAEZhaWxlZCB0byBzZXQgJyVzJyBmaWx0ZXJpbmcgcnVsZSBmb3IgdXNlciAnJXNAJXMnAEZhaWxlZCB0byByZW1vdmUgZmlsdGVyIGZvciB1c2VyICclc0AlcycgZnJvbSB1c2VycyB0YWJsZQBMb2cgcm90YXRpb24gZmFpbGVkOiAnJXMnAEZhaWxlZCB0byByZWdpc3RlciBzdGF0dXMgdmFyaWFibGVzAEZhaWxlZCB0byB1bnJlZ2lzdGVyIHN0YXR1cyB2YXJpYWJsZXMARmFpbGVkIHRvIHJlZ2lzdGVyICVzLiVzIHN5c3RlbSB2YXJpYWJsZQBGYWlsZWQgdG8gdW5yZWdpc3RlciAlcy4lcyBzeXN0ZW0gdmFyaWFibGUARmFpbGVkIHRvIGNoZWNrICVzIHZhcmlhYmxlIHNvdXJjZQBXcm9uZyBKU09OIGZpbHRlciAnJXMnIGZvcm1hdCwgdGhlICdsb2cnIG1lbWJlciBtdXN0IGJlIG9mIHR5cGUgYm9vbABXcm9uZyBKU09OIGZpbHRlciAnJXMnIGZvcm1hdCwgJ2NsYXNzJyBhcnJheSBlbGVtZW50IG11c3QgYmUgb2Ygb2JqZWN0IHR5cGUAV3JvbmcgSlNPTiBmaWx0ZXIgJyVzJyBmb3JtYXQsICdjbGFzcycgbXVzdCBiZSBhbiBvYmplY3Qgb3IgYW4gYXJyYXkAV3JvbmcgSlNPTiBmaWx0ZXIgJyVzJyBmb3JtYXQsIG5vIG5hbWUgcHJvdmlkZWQgZm9yIGV2ZW50IGNsYXNzAFdyb25nIEpTT04gZmlsdGVyICclcycgZm9ybWF0LCAnYWJvcnQnIGNvbmRpdGlvbiBzaG91bGQgYmUgc2V0IGZvciBzdWJjbGFzcyBvbmx5AFdyb25nIEpTT04gZmlsdGVyICclcycgZm9ybWF0LCAnbG9nJyBtdXN0IGJlIG9mIGJvb2wgdHlwZQBXcm9uZyBKU09OIGZpbHRlciAnJXMnIGZvcm1hdCwgZmFpbGVkIHRvIHBhcnNlICdwcmludCcgcmVwbGFjZW1lbnQgcnVsZQBXcm9uZyBKU09OIGZpbHRlciAnJXMnIGZvcm1hdCwgcmVwbGFjZW1lbnQgcnVsZSBub3QgZXhwZWN0ZWQgZm9yIGV2ZW50IGNsYXNzAFdyb25nIEpTT04gZmlsdGVyICclcycgZm9ybWF0LCB0aGVyZSBtdXN0IGJlIG5vICdldmVudCcgaW4gY2FzZSBjbGFzcyBuYW1lcyBwcm92aWRlZCBhcyBhbiBhcnJheSBvZiBzdHJpbmdzAFdyb25nIEpTT04gZmlsdGVyICclcycgZm9ybWF0LCBldmVudCBjbGFzcyBuYW1lIHdpdGhpbiBhbiBhcnJheSBzaG91bGQgYmUgb2YgYSBzdHJpbmcgdHlwZQBXcm9uZyBKU09OIGZpbHRlciAnJXMnIGZvcm1hdCwgZXZlbnQgY2xhc3MgbmFtZSB0eXBlIG11c3QgYmUgZWl0aGVyIHN0cmluZyBvciBhbiBhcnJheSBvZiBzdHJpbmdzAFdyb25nIEpTT04gZmlsdGVyICclcycgZm9ybWF0LCAnZXZlbnQnIGFycmF5IGVsZW1lbnQgbXVzdCBiZSBvZiBvYmplY3QgdHlwZQBXcm9uZyBKU09OIGZpbHRlciAnJXMnIGZvcm1hdCwgdHlwZSBvZiAnZXZlbnQnIG11c3QgYmUgZWl0aGVyIGFuIG9iamVjdCBvciBhbiBhcnJheSBvZiBvYmplY3RzAFdyb25nIEpTT04gZmlsdGVyICclcycgZm9ybWF0LCAnYWJvcnQnIG11c3QgYmUgb2YgYm9vbCBvciBvYmplY3QgdHlwZQBFdmVudCBmaWVsZCAnJXMnIGNhbm5vdCBiZSByZXBsYWNlZABXcm9uZyBKU09OIGZpbHRlciAnJXMnIGZvcm1hdCwgdGhlcmUgbXVzdCBiZSBvbmx5IG9uZSBjb25kaXRpb24gc3BlY2lmaWVkIGZvciAnbG9nJyBmaWVsZABXcm9uZyBKU09OIGZpbHRlciAnJXMnIGZvcm1hdCwgdGhlICdsb2cnIGNvbmRpdGlvbiBuYW1lIG11c3QgYmUgb2Ygc3RyaW5nIHR5cGUAV3JvbmcgSlNPTiBmaWx0ZXIgJyVzJyBmb3JtYXQsIHVua25vd24gJ2xvZycgY29uZGl0aW9uIG5hbWUgJyVzJwBXcm9uZyBKU09OIGZpbHRlciAnJXMnIGZvcm1hdCwgY29uZGl0aW9uIGRlZmluaXRpb24gJ2ZpZWxkJyBtdXN0IGJlIG9mIG9iamVjdCB0eXBlAFdyb25nIEpTT04gZmlsdGVyICclcycgZm9ybWF0LCBldmVudCBmaWVsZCBkZWZpbml0aW9uICdmaWVsZCcgbXVzdCBoYXZlIGZpZWxkICduYW1lJyBhbmQgJ3ZhbHVlJyBwcm92aWRlZCBhcyBzdHJpbmdzAFdyb25nIEpTT04gZmlsdGVyICclcycgZm9ybWF0LCBjb25kaXRpb24gZGVmaW5pdGlvbiAnYW5kJyBtdXN0IGJlIG9mIGFycmF5IHR5cGUAV3JvbmcgSlNPTiBmaWx0ZXIgJyVzJyBmb3JtYXQsIGEgbWVtYmVyIG9mICdhbmQnIGNvbmRpdGlvbiBtdXN0IGJlIG9mIG9iamVjdCB0eXBlAFdyb25nIEpTT04gZmlsdGVyICclcycgZm9ybWF0LCB0aGVyZSBzaG91bGQgYmUgYXQgbGVhc3QgdHdvIGZpZWxkcyBwcm92aWRlZCBmb3IgJ2FuZCcgY29uZGl0aW9uAFdyb25nIEpTT04gZmlsdGVyICclcycgZm9ybWF0LCBjb25kaXRpb24gZGVmaW5pdGlvbiAnb3InIG11c3QgYmUgb2YgYXJyYXkgdHlwZQBXcm9uZyBKU09OIGZpbHRlciAnJXMnIGZvcm1hdCwgYSBtZW1iZXIgb2YgJ29yJyBjb25kaXRpb24gbXVzdCBiZSBvZiBvYmplY3QgdHlwZQBXcm9uZyBKU09OIGZpbHRlciAnJXMnIGZvcm1hdCwgdGhlcmUgc2hvdWxkIGJlIGF0IGxlYXN0IHR3byBmaWVsZHMgcHJvdmlkZWQgZm9yICdvcicgY29uZGl0aW9uAFdyb25nIEpTT04gZmlsdGVyICclcycgZm9ybWF0LCBjb25kaXRpb24gZGVmaW5pdGlvbiAnbm90JyBtdXN0IGJlIG9mIG9iamVjdCB0eXBlAFdyb25nIEpTT04gZmlsdGVyICclcycgZm9ybWF0LCBjb25kaXRpb24gZGVmaW5pdGlvbiAndmFyaWFibGUnIG11c3QgYmUgb2Ygb2JqZWN0IHR5cGUAV3JvbmcgSlNPTiBmaWx0ZXIgJyVzJyBmb3JtYXQsIGV2ZW50IGZpZWxkIGRlZmluaXRpb24gJ3ZhcmlhYmxlJyBtdXN0IGhhdmUgZmllbGQgJ25hbWUnIGFuZCAndmFsdWUnIHByb3ZpZGVkIGFzIHN0cmluZ3MAV3JvbmcgSlNPTiBmaWx0ZXIgJyVzJyBmb3JtYXQsICdmdW5jdGlvbicgbXVzdCBiZSBvZiBvYmplY3QgdHlwZQBXcm9uZyBKU09OIGZpbHRlciAnJXMnIGZvcm1hdCwgbWlzc2luZyAnZnVuY3Rpb24nIG5hbWUgb3Igbm90IGEgc3RyaW5nAFdyb25nIEpTT04gZmlsdGVyICclcycgZm9ybWF0LCB1bmtub3duIGZ1bmN0aW9uIG5hbWUgJyVzJwBXcm9uZyBKU09OIGZpbHRlciAnJXMnIGZvcm1hdCwgd3JvbmcgZnVuY3Rpb24gYXJncyBmb3JtYXQgcHJvdmlkZWQAV3JvbmcgSlNPTiBmaWx0ZXIgJyVzJyBmb3JtYXQsIGludmFsaWQgYXJndW1lbnRzIGZvciAnJXMnIGZ1bmN0aW9uAFdyb25nIEpTT04gZmlsdGVyICclcycgZm9ybWF0LCBubyBuYW1lIHByb3ZpZGVkIGZvciBldmVudCBzdWJjbGFzcwBXcm9uZyBKU09OIGZpbHRlciAnJXMnIGZvcm1hdCwgZXZlbnQgc3ViY2xhc3MgbmFtZSB3aXRoaW4gYW4gYXJyYXkgc2hvdWxkIGJlIG9mIGEgc3RyaW5nIHR5cGUAV3JvbmcgSlNPTiBmaWx0ZXIgJyVzJyBmb3JtYXQsIGV2ZW50IHN1YmNsYXNzIG5hbWUgdHlwZSBtdXN0IGJlIGVpdGhlciBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncwBXcm9uZyBKU09OIGZpbHRlciAnJXMnIGZvcm1hdCwgdGhlcmUgbXVzdCBiZSBvbmx5IG9uZSBjb25kaXRpb24gcHJvdmlkZWQsICdsb2cnIG9yICdhYm9ydCcAV3JvbmcgSlNPTiBmaWx0ZXIgJyVzJyBmb3JtYXQsIHVua25vd24gdGFnICclcycAV3JvbmcgSlNPTiBmaWx0ZXIgJyVzJyBmb3JtYXQsIGJhZCBmb3JtYXQgZm9yICclcycgYWN0aW9uAFdyb25nIEpTT04gZmlsdGVyICclcycgZm9ybWF0LCBmYWlsZWQgdG8gcGFyc2UgJ2ZpbHRlcicgcmVwbGFjZW1lbnQgcnVsZQBFUlJPUjogSW50ZXJuYWwgZXJyb3IAV3JvbmcgYXJndW1lbnQ6IGluY29ycmVjdCBydWxlIGRlZmluaXRpb24gJyVzJwBGYWlsZWQgdG8gY2hlY2sgZmlsdGVyaW5nIHJ1bGUgbmFtZSBleGlzdGVuY2UARmlsdGVyaW5nIHJ1bGUgd2l0aCB0aGUgbmFtZSAnJXMnIGFscmVhZHkgZXhpc3RzAEZhaWxlZCB0byBpbnNlcnQgZmlsdGVyaW5nIHJ1bGUgJyVzJywgJyVzJwBVbmV4cGVjdGVkIGV2ZW50IHR5cGUgZm9yIHJlcGxhY2VfZmllbGQgYWN0aW9uAEEgRklQUy1hcHByb3ZlZCB2ZXJzaW9uIG9mIHRoZSBPcGVuU1NMIGNyeXB0b2dyYXBoaWMgbGlicmFyeSBoYXMgYmVlbiBkZXRlY3RlZCBpbiB0aGUgb3BlcmF0aW5nIHN5c3RlbSB3aXRoIGEgcHJvcGVybHkgY29uZmlndXJlZCBGSVBTIG1vZHVsZSBhdmFpbGFibGUgZm9yIGxvYWRpbmcuIFBlcmNvbmEgU2VydmVyIGZvciBNeVNRTCB3aWxsIGxvYWQgdGhpcyBtb2R1bGUgYW5kIHJ1biBpbiBGSVBTIG1vZGUuAA==
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 1
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
errmsg.sys
422.50 KB
lrw-r--r--
2025-12-16 08:06:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).